gnucash master: Multiple changes pushed

Christopher Lam clam at code.gnucash.org
Sun Nov 29 05:10:23 EST 2020


Updated	 via  https://github.com/Gnucash/gnucash/commit/15d3eb48 (commit)
	 via  https://github.com/Gnucash/gnucash/commit/979f6acf (commit)
	 via  https://github.com/Gnucash/gnucash/commit/161ab691 (commit)
	 via  https://github.com/Gnucash/gnucash/commit/72d742e2 (commit)
	 via  https://github.com/Gnucash/gnucash/commit/9d99ebe3 (commit)
	 via  https://github.com/Gnucash/gnucash/commit/93f500bd (commit)
	 via  https://github.com/Gnucash/gnucash/commit/ac631260 (commit)
	 via  https://github.com/Gnucash/gnucash/commit/1bf863d9 (commit)
	 via  https://github.com/Gnucash/gnucash/commit/a1c517b4 (commit)
	 via  https://github.com/Gnucash/gnucash/commit/8f329921 (commit)
	 via  https://github.com/Gnucash/gnucash/commit/d11bdb3e (commit)
	 via  https://github.com/Gnucash/gnucash/commit/72982de5 (commit)
	 via  https://github.com/Gnucash/gnucash/commit/8b5dd55d (commit)
	 via  https://github.com/Gnucash/gnucash/commit/b67bf4b7 (commit)
	 via  https://github.com/Gnucash/gnucash/commit/3be79359 (commit)
	 via  https://github.com/Gnucash/gnucash/commit/3676728d (commit)
	 via  https://github.com/Gnucash/gnucash/commit/c2f9c5bf (commit)
	 via  https://github.com/Gnucash/gnucash/commit/d518500a (commit)
	 via  https://github.com/Gnucash/gnucash/commit/faaa580d (commit)
	 via  https://github.com/Gnucash/gnucash/commit/02685612 (commit)
	 via  https://github.com/Gnucash/gnucash/commit/ae39df07 (commit)
	 via  https://github.com/Gnucash/gnucash/commit/562b4be2 (commit)
	 via  https://github.com/Gnucash/gnucash/commit/4332c584 (commit)
	 via  https://github.com/Gnucash/gnucash/commit/4b7bc94e (commit)
	 via  https://github.com/Gnucash/gnucash/commit/5de4fe5d (commit)
	 via  https://github.com/Gnucash/gnucash/commit/63580d91 (commit)
	 via  https://github.com/Gnucash/gnucash/commit/2bdc7dd1 (commit)
	 via  https://github.com/Gnucash/gnucash/commit/a2aca9da (commit)
	 via  https://github.com/Gnucash/gnucash/commit/f8dcd230 (commit)
	 via  https://github.com/Gnucash/gnucash/commit/573f7aaa (commit)
	 via  https://github.com/Gnucash/gnucash/commit/1cce12f8 (commit)
	 via  https://github.com/Gnucash/gnucash/commit/fdbbc130 (commit)
	 via  https://github.com/Gnucash/gnucash/commit/8ad9d0a2 (commit)
	 via  https://github.com/Gnucash/gnucash/commit/20f2efbe (commit)
	 via  https://github.com/Gnucash/gnucash/commit/ea78fa55 (commit)
	 via  https://github.com/Gnucash/gnucash/commit/3e2be271 (commit)
	 via  https://github.com/Gnucash/gnucash/commit/e9a117b2 (commit)
	 via  https://github.com/Gnucash/gnucash/commit/79951e09 (commit)
	 via  https://github.com/Gnucash/gnucash/commit/0b670680 (commit)
	 via  https://github.com/Gnucash/gnucash/commit/60f263e0 (commit)
	 via  https://github.com/Gnucash/gnucash/commit/d751913c (commit)
	 via  https://github.com/Gnucash/gnucash/commit/4e91a33b (commit)
	 via  https://github.com/Gnucash/gnucash/commit/31c9c5e0 (commit)
	 via  https://github.com/Gnucash/gnucash/commit/b22bf07b (commit)
	 via  https://github.com/Gnucash/gnucash/commit/a519b913 (commit)
	 via  https://github.com/Gnucash/gnucash/commit/49b3bdeb (commit)
	 via  https://github.com/Gnucash/gnucash/commit/4718604f (commit)
	 via  https://github.com/Gnucash/gnucash/commit/1aba0621 (commit)
	 via  https://github.com/Gnucash/gnucash/commit/08a0da8c (commit)
	 via  https://github.com/Gnucash/gnucash/commit/194a021d (commit)
	 via  https://github.com/Gnucash/gnucash/commit/6a6396ed (commit)
	 via  https://github.com/Gnucash/gnucash/commit/e09a26ba (commit)
	 via  https://github.com/Gnucash/gnucash/commit/26fa239f (commit)
	 via  https://github.com/Gnucash/gnucash/commit/bbc6887b (commit)
	 via  https://github.com/Gnucash/gnucash/commit/4c2df4c2 (commit)
	 via  https://github.com/Gnucash/gnucash/commit/69789b2b (commit)
	 via  https://github.com/Gnucash/gnucash/commit/f26215fe (commit)
	 via  https://github.com/Gnucash/gnucash/commit/2290fa7c (commit)
	 via  https://github.com/Gnucash/gnucash/commit/d03dc07b (commit)
	 via  https://github.com/Gnucash/gnucash/commit/3bcf57e7 (commit)
	 via  https://github.com/Gnucash/gnucash/commit/b6c0a62b (commit)
	 via  https://github.com/Gnucash/gnucash/commit/39ad1e9e (commit)
	 via  https://github.com/Gnucash/gnucash/commit/c0e13411 (commit)
	 via  https://github.com/Gnucash/gnucash/commit/5c48244e (commit)
	 via  https://github.com/Gnucash/gnucash/commit/b51a7067 (commit)
	 via  https://github.com/Gnucash/gnucash/commit/bf9b2672 (commit)
	 via  https://github.com/Gnucash/gnucash/commit/4b5202f5 (commit)
	 via  https://github.com/Gnucash/gnucash/commit/17ced7eb (commit)
	 via  https://github.com/Gnucash/gnucash/commit/65b7b8c4 (commit)
	 via  https://github.com/Gnucash/gnucash/commit/afcf1765 (commit)
	 via  https://github.com/Gnucash/gnucash/commit/7e4f120f (commit)
	 via  https://github.com/Gnucash/gnucash/commit/d1d46473 (commit)
	 via  https://github.com/Gnucash/gnucash/commit/54f614fe (commit)
	 via  https://github.com/Gnucash/gnucash/commit/d867a9d5 (commit)
	 via  https://github.com/Gnucash/gnucash/commit/0382859e (commit)
	 via  https://github.com/Gnucash/gnucash/commit/48fe2ea6 (commit)
	 via  https://github.com/Gnucash/gnucash/commit/bf483696 (commit)
	 via  https://github.com/Gnucash/gnucash/commit/aa71e469 (commit)
	 via  https://github.com/Gnucash/gnucash/commit/761797eb (commit)
	 via  https://github.com/Gnucash/gnucash/commit/504ca731 (commit)
	 via  https://github.com/Gnucash/gnucash/commit/c40ac765 (commit)
	 via  https://github.com/Gnucash/gnucash/commit/39827ce7 (commit)
	 via  https://github.com/Gnucash/gnucash/commit/7b06b932 (commit)
	 via  https://github.com/Gnucash/gnucash/commit/5ea17cb0 (commit)
	 via  https://github.com/Gnucash/gnucash/commit/36231588 (commit)
	 via  https://github.com/Gnucash/gnucash/commit/0862143b (commit)
	 via  https://github.com/Gnucash/gnucash/commit/6d6eff6b (commit)
	 via  https://github.com/Gnucash/gnucash/commit/e7a3ec56 (commit)
	 via  https://github.com/Gnucash/gnucash/commit/5ced4174 (commit)
	 via  https://github.com/Gnucash/gnucash/commit/ccc65318 (commit)
	 via  https://github.com/Gnucash/gnucash/commit/7e6cb470 (commit)
	 via  https://github.com/Gnucash/gnucash/commit/8628ffa9 (commit)
	 via  https://github.com/Gnucash/gnucash/commit/6637d6d2 (commit)
	 via  https://github.com/Gnucash/gnucash/commit/a10c0840 (commit)
	 via  https://github.com/Gnucash/gnucash/commit/25e4efc2 (commit)
	 via  https://github.com/Gnucash/gnucash/commit/e9d1e694 (commit)
	 via  https://github.com/Gnucash/gnucash/commit/d87c469e (commit)
	 via  https://github.com/Gnucash/gnucash/commit/9e70d7f4 (commit)
	 via  https://github.com/Gnucash/gnucash/commit/fa16a299 (commit)
	 via  https://github.com/Gnucash/gnucash/commit/e5378b20 (commit)
	 via  https://github.com/Gnucash/gnucash/commit/982cf86d (commit)
	 via  https://github.com/Gnucash/gnucash/commit/9d4c0b05 (commit)
	 via  https://github.com/Gnucash/gnucash/commit/1cf7defe (commit)
	 via  https://github.com/Gnucash/gnucash/commit/9bf550d3 (commit)
	 via  https://github.com/Gnucash/gnucash/commit/5cd777b6 (commit)
	 via  https://github.com/Gnucash/gnucash/commit/2faecb20 (commit)
	 via  https://github.com/Gnucash/gnucash/commit/a1806a2f (commit)
	 via  https://github.com/Gnucash/gnucash/commit/51715e45 (commit)
	 via  https://github.com/Gnucash/gnucash/commit/cebe6022 (commit)
	 via  https://github.com/Gnucash/gnucash/commit/5df7949a (commit)
	 via  https://github.com/Gnucash/gnucash/commit/f3ba8492 (commit)
	 via  https://github.com/Gnucash/gnucash/commit/6e3c98c2 (commit)
	 via  https://github.com/Gnucash/gnucash/commit/10032c17 (commit)
	 via  https://github.com/Gnucash/gnucash/commit/1915dfb0 (commit)
	 via  https://github.com/Gnucash/gnucash/commit/a6c8a806 (commit)
	 via  https://github.com/Gnucash/gnucash/commit/fedaa133 (commit)
	 via  https://github.com/Gnucash/gnucash/commit/946cbef9 (commit)
	 via  https://github.com/Gnucash/gnucash/commit/4ddd28a5 (commit)
	 via  https://github.com/Gnucash/gnucash/commit/676cc337 (commit)
	 via  https://github.com/Gnucash/gnucash/commit/974342bb (commit)
	 via  https://github.com/Gnucash/gnucash/commit/92f27278 (commit)
	 via  https://github.com/Gnucash/gnucash/commit/1a4f27f6 (commit)
	 via  https://github.com/Gnucash/gnucash/commit/89c0baee (commit)
	 via  https://github.com/Gnucash/gnucash/commit/4ff3355f (commit)
	 via  https://github.com/Gnucash/gnucash/commit/e7165507 (commit)
	 via  https://github.com/Gnucash/gnucash/commit/e833c8e1 (commit)
	 via  https://github.com/Gnucash/gnucash/commit/2ecdd70e (commit)
	 via  https://github.com/Gnucash/gnucash/commit/b675e17e (commit)
	 via  https://github.com/Gnucash/gnucash/commit/5671028b (commit)
	 via  https://github.com/Gnucash/gnucash/commit/4d63eb92 (commit)
	 via  https://github.com/Gnucash/gnucash/commit/26e7eada (commit)
	 via  https://github.com/Gnucash/gnucash/commit/78c8b03c (commit)
	 via  https://github.com/Gnucash/gnucash/commit/4bebfed9 (commit)
	 via  https://github.com/Gnucash/gnucash/commit/efb9226e (commit)
	 via  https://github.com/Gnucash/gnucash/commit/3c5066fe (commit)
	 via  https://github.com/Gnucash/gnucash/commit/e5886955 (commit)
	 via  https://github.com/Gnucash/gnucash/commit/f93f850f (commit)
	 via  https://github.com/Gnucash/gnucash/commit/c11f4db9 (commit)
	 via  https://github.com/Gnucash/gnucash/commit/8e5e3480 (commit)
	 via  https://github.com/Gnucash/gnucash/commit/794b31a9 (commit)
	 via  https://github.com/Gnucash/gnucash/commit/1be3b780 (commit)
	 via  https://github.com/Gnucash/gnucash/commit/122cd682 (commit)
	 via  https://github.com/Gnucash/gnucash/commit/6ee537e1 (commit)
	 via  https://github.com/Gnucash/gnucash/commit/94a68dca (commit)
	 via  https://github.com/Gnucash/gnucash/commit/e255a7bf (commit)
	 via  https://github.com/Gnucash/gnucash/commit/190d5f1a (commit)
	 via  https://github.com/Gnucash/gnucash/commit/6394b649 (commit)
	 via  https://github.com/Gnucash/gnucash/commit/feba6462 (commit)
	 via  https://github.com/Gnucash/gnucash/commit/e44cf9c6 (commit)
	 via  https://github.com/Gnucash/gnucash/commit/63969e86 (commit)
	 via  https://github.com/Gnucash/gnucash/commit/d673c32e (commit)
	 via  https://github.com/Gnucash/gnucash/commit/0e634c54 (commit)
	 via  https://github.com/Gnucash/gnucash/commit/99256c38 (commit)
	 via  https://github.com/Gnucash/gnucash/commit/833edd0b (commit)
	 via  https://github.com/Gnucash/gnucash/commit/bc80bbb3 (commit)
	 via  https://github.com/Gnucash/gnucash/commit/b0906b5e (commit)
	 via  https://github.com/Gnucash/gnucash/commit/5408854c (commit)
	 via  https://github.com/Gnucash/gnucash/commit/41c147a9 (commit)
	 via  https://github.com/Gnucash/gnucash/commit/df6621f2 (commit)
	 via  https://github.com/Gnucash/gnucash/commit/861a2482 (commit)
	 via  https://github.com/Gnucash/gnucash/commit/3d92d539 (commit)
	 via  https://github.com/Gnucash/gnucash/commit/1fa90a54 (commit)
	 via  https://github.com/Gnucash/gnucash/commit/af3353a1 (commit)
	 via  https://github.com/Gnucash/gnucash/commit/1e2236af (commit)
	 via  https://github.com/Gnucash/gnucash/commit/fa82a8bc (commit)
	 via  https://github.com/Gnucash/gnucash/commit/2639cdef (commit)
	 via  https://github.com/Gnucash/gnucash/commit/841111e3 (commit)
	 via  https://github.com/Gnucash/gnucash/commit/bbfc30d7 (commit)
	 via  https://github.com/Gnucash/gnucash/commit/8425af78 (commit)
	 via  https://github.com/Gnucash/gnucash/commit/766f88c0 (commit)
	 via  https://github.com/Gnucash/gnucash/commit/8ac640d5 (commit)
	 via  https://github.com/Gnucash/gnucash/commit/610bbda2 (commit)
	 via  https://github.com/Gnucash/gnucash/commit/53c294f9 (commit)
	 via  https://github.com/Gnucash/gnucash/commit/bb0088c4 (commit)
	 via  https://github.com/Gnucash/gnucash/commit/967cf0b4 (commit)
	 via  https://github.com/Gnucash/gnucash/commit/d0842798 (commit)
	 via  https://github.com/Gnucash/gnucash/commit/67f63053 (commit)
	 via  https://github.com/Gnucash/gnucash/commit/a9d85e8f (commit)
	from  https://github.com/Gnucash/gnucash/commit/415f625b (commit)



commit 15d3eb48dce6500dbc386cf9a0e7397a50bad935
Merge: 415f625be 979f6acf9
Author: Christopher Lam <christopher.lck at gmail.com>
Date:   Sun Nov 29 18:08:57 2020 +0800

    Merge branch 'maint'


commit 979f6acf91555300cb57efa3f412ac0268ae4e81
Author: Robert Fewell <14uBobIT at gmail.com>
Date:   Sat Nov 28 15:22:48 2020 +0000

    Change the mnemonic of '_Open with No File' to 'Open with _No File' to fix conflict.

diff --git a/gnucash/gnome-utils/gnc-file.c b/gnucash/gnome-utils/gnc-file.c
index dd22ea08c..1c20ea37b 100644
--- a/gnucash/gnome-utils/gnc-file.c
+++ b/gnucash/gnome-utils/gnc-file.c
@@ -848,7 +848,7 @@ RESTART:
 
         gnc_gtk_dialog_add_button(dialog, _("_Open Read-Only"),
                                   "emblem-readonly", RESPONSE_READONLY);
-        gnc_gtk_dialog_add_button(dialog, _("_Open with No File"),
+        gnc_gtk_dialog_add_button(dialog, _("Open with _No File"),
                                   "document-new-symbolic", RESPONSE_NO_FILE);
         gnc_gtk_dialog_add_button(dialog, _("Open _Anyway"),
                                   "document-open-symbolic", RESPONSE_OPEN);

commit 161ab691d68c80fa8b99b6250adbed2eda09040f
Author: Robert Fewell <14uBobIT at gmail.com>
Date:   Sat Nov 28 14:10:29 2020 +0000

    Bug 343647 - Keep scrolled report location
    
    If you have a large report and have scrolled down to the bottom and
    decide to tab to a different page and come back the report is back at
    the top. This was due to reloading the report before focusing so change
    this so it only loads once, if the report needs refreshing then there
    is the reload toolbar button.

diff --git a/gnucash/gnome/gnc-plugin-page-report.c b/gnucash/gnome/gnc-plugin-page-report.c
index e7f260e57..8cebd4f73 100644
--- a/gnucash/gnome/gnc-plugin-page-report.c
+++ b/gnucash/gnome/gnc-plugin-page-report.c
@@ -124,6 +124,7 @@ typedef struct GncPluginPageReportPrivate
 
     /* The page is in the process of reloading the html */
     gboolean	reloading;
+    gboolean    loaded;
 
     /// the gnc_html abstraction this PluginPage contains
 //        gnc_html *html;
@@ -255,7 +256,8 @@ gnc_plugin_page_report_focus_widget (GncPluginPage *report_plugin_page)
         {
             GtkWidget *widget = gnc_html_get_webview (priv->html);
 
-            gnc_plugin_page_report_load_uri (report_plugin_page);
+            if (!priv->loaded) // so we only do the load once
+                gnc_plugin_page_report_load_uri (report_plugin_page);
 
             if (GTK_IS_WIDGET(widget))
             {
@@ -384,6 +386,8 @@ gnc_plugin_page_report_load_uri (GncPluginPage *page)
     gnc_html_show_url(priv->html, type, url_location, url_label, 0);
     g_free(url_location);
 
+    priv->loaded = TRUE;
+
     gnc_plugin_page_report_set_progressbar( page, FALSE );
 
     // this resets the window for the progressbar to NULL
@@ -460,6 +464,7 @@ gnc_plugin_page_report_create_widget( GncPluginPage *page )
 //        priv->html = gnc_html_new( topLvl );
     priv->html = gnc_html_factory_create_html();
     gnc_html_set_parent( priv->html, topLvl );
+    priv->loaded = FALSE;
 
     gnc_html_history_set_node_destroy_cb(gnc_html_get_history(priv->html),
                                          gnc_plugin_page_report_history_destroy_cb,

commit 72d742e29b7f1c101122b76f55b82da58f41676a
Author: Robert Fewell <14uBobIT at gmail.com>
Date:   Sun Nov 22 10:57:12 2020 +0000

    Change the icons used for the file lock message

diff --git a/gnucash/gnome-utils/gnc-file.c b/gnucash/gnome-utils/gnc-file.c
index 37a0fc79b..dd22ea08c 100644
--- a/gnucash/gnome-utils/gnc-file.c
+++ b/gnucash/gnome-utils/gnc-file.c
@@ -847,11 +847,11 @@ RESTART:
         gtk_window_set_skip_taskbar_hint(GTK_WINDOW(dialog), FALSE);
 
         gnc_gtk_dialog_add_button(dialog, _("_Open Read-Only"),
-                                  "document-revert", RESPONSE_READONLY);
+                                  "emblem-readonly", RESPONSE_READONLY);
         gnc_gtk_dialog_add_button(dialog, _("_Open with No File"),
-                                  "document-new", RESPONSE_NO_FILE);
+                                  "document-new-symbolic", RESPONSE_NO_FILE);
         gnc_gtk_dialog_add_button(dialog, _("Open _Anyway"),
-                                  "document-open", RESPONSE_OPEN);
+                                  "document-open-symbolic", RESPONSE_OPEN);
         if (shutdown_cb)
             gtk_dialog_add_button(GTK_DIALOG(dialog),
                                   _("_Quit"), RESPONSE_QUIT);

commit 9d99ebe30cc1978ef769f4d19b25369b64f83c3b
Author: Robert Fewell <14uBobIT at gmail.com>
Date:   Sun Nov 22 10:52:45 2020 +0000

    Bug 309943 - When unable to obtain a lock, no option to open another file
    
    Currently when you get the message that GnuCash could not obtain a lock
    for the file to be opened you have four options...
    
    Open Read-Only, Create New File, Open Anyway, Quit
    
    This commit changes the 'Create new File' to 'Open with No File' which
    allows the user to then select...
    'File->New' to create a new file,
    'File->Open' to open a different file or one chosen from the history or
    'File->Quit' to exit.

diff --git a/gnucash/gnome-utils/gnc-file.c b/gnucash/gnome-utils/gnc-file.c
index 86b45725e..37a0fc79b 100644
--- a/gnucash/gnome-utils/gnc-file.c
+++ b/gnucash/gnome-utils/gnc-file.c
@@ -695,7 +695,7 @@ gnc_file_query_save (GtkWindow *parent, gboolean can_cancel)
 
 /* private utilities for file open; done in two stages */
 
-#define RESPONSE_NEW  1
+#define RESPONSE_NO_FILE 1
 #define RESPONSE_OPEN 2
 #define RESPONSE_QUIT 3
 #define RESPONSE_READONLY 4
@@ -848,8 +848,8 @@ RESTART:
 
         gnc_gtk_dialog_add_button(dialog, _("_Open Read-Only"),
                                   "document-revert", RESPONSE_READONLY);
-        gnc_gtk_dialog_add_button(dialog, _("_Create New File"),
-                                  "document-new", RESPONSE_NEW);
+        gnc_gtk_dialog_add_button(dialog, _("_Open with No File"),
+                                  "document-new", RESPONSE_NO_FILE);
         gnc_gtk_dialog_add_button(dialog, _("Open _Anyway"),
                                   "document-open", RESPONSE_OPEN);
         if (shutdown_cb)
@@ -861,7 +861,7 @@ RESTART:
 
         if (rc == GTK_RESPONSE_DELETE_EVENT)
         {
-            rc = shutdown_cb ? RESPONSE_QUIT : RESPONSE_NEW;
+            rc = shutdown_cb ? RESPONSE_QUIT : RESPONSE_NO_FILE;
         }
         switch (rc)
         {
@@ -881,10 +881,9 @@ RESTART:
             break;
         default:
             /* Can't use the given file, so just create a new
-             * database so that the user will get a window that
-             * they can click "Exit" on.
+             * Gnucash window so they can choose File->New, File->Open
+             * or just "Exit".
              */
-            gnc_file_new (parent);
             break;
         }
     }

commit 93f500bd4d312d279db7fe9add17de42403477c8
Author: Frank H. Ellenberger <frank.h.ellenberger at gmail.com>
Date:   Fri Nov 27 16:56:19 2020 +0100

    Move pt translation to Translation Project
    
    https://lists.gnucash.org/pipermail/gnucash-devel/2020-November/045581.html

diff --git a/po/CMakeLists.txt b/po/CMakeLists.txt
index 28622d07b..d2120782f 100644
--- a/po/CMakeLists.txt
+++ b/po/CMakeLists.txt
@@ -2,9 +2,9 @@ add_subdirectory(glossary)
 
 # Set of available languages:
 # * managed at the Translation Project (TP):
-set (TP_LINGUAS ca cs da eu fa ja ro rw sk sr sv tr uk zh_CN)
+set (TP_LINGUAS ca cs da eu fa ja pt ro rw sk sr sv tr uk zh_CN)
 # * already marked as external at TP or they have no language team:
-set (GC_LINGUAS ar as az bg brx de doi el en_GB es es_NI et fi fr gu he hi hr hu id it kn ko kok kok at latin ks lt lv mai mni mni at bengali mr nb ne nl pl pt pt_BR ru ta te ur vi zh_TW)
+set (GC_LINGUAS ar as az bg brx de doi el en_GB es es_NI et fi fr gu he hi hr hu id it kn ko kok kok at latin ks lt lv mai mni mni at bengali mr nb ne nl pl pt_BR ru ta te ur vi zh_TW)
 # * New or unmarked: The release manager should announce them to TP 
 # and when listed there move in the respective group above.
 set (NEW_LINGUAS)

commit ac6312608043314f456119698be6f59eaaa8ad86
Author: Frank H. Ellenberger <frank.h.ellenberger at gmail.com>
Date:   Thu Nov 26 14:51:49 2020 +0100

    L10N: Update Glossaries to commit 3d7e66d
    
    LANG, translated, fuzzy, untranslated messages:
    bg: 181, 10, 5
    ca: 175, 15, 6
    da: 169, 18, 9
    de: 196.
    de_CH: 175, 15, 6
    el: 10, 124, 62
    es: 158, 20, 18
    fi: 145, 2, 49
    fr: 184, 6, 6
    he: 192, 2, 2
    hr: 195, 1
    hu: 174, 16, 6
    id: 177, 6, 13
    it: 193, 1, 2
    lt: 182, 9, 5
    nb: 189, 7
    nl: 195, 1
    pl: 174, 15, 7
    pt: 192, 2, 2
    pt_BR: 174, 15, 7
    ru: 150, 24, 22
    rw: 7, 133, 56
    sk: 174, 15, 7
    sv: 168, 15, 13
    vi: 175, 15, 6
    zh_CN: 174, 16, 6
    zh_TW: 170, 14, 12

diff --git a/po/glossary/ar.po b/po/glossary/ar.po
index 74831a1b8..7b8d66122 100644
--- a/po/glossary/ar.po
+++ b/po/glossary/ar.po
@@ -5,7 +5,9 @@
 msgid ""
 msgstr ""
 "Project-Id-Version: GnuCash 2.6.8\n"
-"POT-Creation-Date: 2020-08-08 18:07+0200\n"
+"Report-Msgid-Bugs-To: https://bugs.gnucash.org/enter_bug.cgi?"
+"product=GnuCash&component=Translations\n"
+"POT-Creation-Date: 2020-11-26 14:29+0100\n"
 "PO-Revision-Date: \n"
 "Last-Translator: Frank H. Ellenberger <frank.h.ellenberger at gmail.com>\n"
 "Language-Team: None\n"
@@ -366,6 +368,10 @@ msgstr ""
 msgid "double entry"
 msgstr ""
 
+#. "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 ""
+
 #. "a person who works for somebody or a company in return for wages"
 msgid "employee"
 msgstr ""
diff --git a/po/glossary/bg.po b/po/glossary/bg.po
index 089cc896d..1c0c60c4e 100644
--- a/po/glossary/bg.po
+++ b/po/glossary/bg.po
@@ -6,8 +6,9 @@
 msgid ""
 msgstr ""
 "Project-Id-Version: gnucash 2.2.5\n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2020-08-08 18:07+0200\n"
+"Report-Msgid-Bugs-To: https://bugs.gnucash.org/enter_bug.cgi?"
+"product=GnuCash&component=Translations\n"
+"POT-Creation-Date: 2020-11-26 14:29+0100\n"
 "PO-Revision-Date: 2011-10-25 13:18+0200\n"
 "Last-Translator: Rosi Dimova <pocu at bk.ru>\n"
 "Language-Team: BG <bg at li.org>\n"
@@ -382,6 +383,10 @@ msgstr "отстъпка"
 msgid "double entry"
 msgstr "двустранно счетоводство"
 
+#. "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 ""
+
 #. "a person who works for somebody or a company in return for wages"
 msgid "employee"
 msgstr "служител"
diff --git a/po/glossary/ca.po b/po/glossary/ca.po
index d7150e797..be1a9c971 100644
--- a/po/glossary/ca.po
+++ b/po/glossary/ca.po
@@ -6,7 +6,9 @@
 msgid ""
 msgstr ""
 "Project-Id-Version: gnucash-glossary 2.2\n"
-"POT-Creation-Date: 2020-08-08 18:07+0200\n"
+"Report-Msgid-Bugs-To: https://bugs.gnucash.org/enter_bug.cgi?"
+"product=GnuCash&component=Translations\n"
+"POT-Creation-Date: 2020-11-26 14:29+0100\n"
 "PO-Revision-Date: 2008-08-03 16:43+0200\n"
 "Last-Translator: David Planella Molas <david.planella at gmail.com>\n"
 "Language-Team: Catalan <ca at li.org>\n"
@@ -379,6 +381,10 @@ msgstr "compte"
 msgid "double entry"
 msgstr "entrada doble"
 
+#. "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 ""
+
 #. "a person who works for somebody or a company in return for wages"
 msgid "employee"
 msgstr "treballador"
diff --git a/po/glossary/da.po b/po/glossary/da.po
index a678b7bc9..9f0cae9ac 100644
--- a/po/glossary/da.po
+++ b/po/glossary/da.po
@@ -7,7 +7,9 @@
 msgid ""
 msgstr ""
 "Project-Id-Version: gnucash-glossary 2.3.5\n"
-"POT-Creation-Date: 2020-08-08 18:07+0200\n"
+"Report-Msgid-Bugs-To: https://bugs.gnucash.org/enter_bug.cgi?"
+"product=GnuCash&component=Translations\n"
+"POT-Creation-Date: 2020-11-26 14:29+0100\n"
 "PO-Revision-Date: 2009-09-04 22:41+0200\n"
 "Last-Translator: Joe Hansen <joedalton2 at yahoo.dk>\n"
 "Language-Team: Danish <dansk at dansk-gruppen.dk>\n"
@@ -380,6 +382,10 @@ msgstr "konto"
 msgid "double entry"
 msgstr "dobbelt bogholderi"
 
+#. "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 ""
+
 #. "a person who works for somebody or a company in return for wages"
 msgid "employee"
 msgstr "medarbejder"
diff --git a/po/glossary/de_CH.po b/po/glossary/de_CH.po
index d134824e1..0349c05ca 100644
--- a/po/glossary/de_CH.po
+++ b/po/glossary/de_CH.po
@@ -5,7 +5,9 @@
 msgid ""
 msgstr ""
 "Project-Id-Version: gnucash 1.7\n"
-"POT-Creation-Date: 2020-08-08 18:07+0200\n"
+"Report-Msgid-Bugs-To: https://bugs.gnucash.org/enter_bug.cgi?"
+"product=GnuCash&component=Translations\n"
+"POT-Creation-Date: 2020-11-26 14:29+0100\n"
 "PO-Revision-Date: 2008-03-03 00:47+0100\n"
 "Last-Translator: Raffael Luthiger <r.luthiger at huanga.com>\n"
 "Language-Team: DE\n"
@@ -380,6 +382,10 @@ msgstr "Konto"
 msgid "double entry"
 msgstr "Doppelte Buchführung"
 
+#. "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 ""
+
 #. "a person who works for somebody or a company in return for wages"
 msgid "employee"
 msgstr "Angestellter<"
diff --git a/po/glossary/el.po b/po/glossary/el.po
index 86b09eaf3..4a9a2f0c8 100644
--- a/po/glossary/el.po
+++ b/po/glossary/el.po
@@ -5,7 +5,9 @@
 msgid ""
 msgstr ""
 "Project-Id-Version: gnucash-glossary 1.0\n"
-"POT-Creation-Date: 2020-08-08 18:07+0200\n"
+"Report-Msgid-Bugs-To: https://bugs.gnucash.org/enter_bug.cgi?"
+"product=GnuCash&component=Translations\n"
+"POT-Creation-Date: 2020-11-26 14:29+0100\n"
 "PO-Revision-Date: 2001-12-28 00:17+0000\n"
 "Last-Translator: Simos Xenitellis <simos at hellug.gr>\n"
 "Language-Team: Greek <nls at tux.hellug.gr>\n"
@@ -427,6 +429,10 @@ msgstr "λογαριασμός"
 msgid "double entry"
 msgstr "διπλό"
 
+#. "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 ""
+
 #. "a person who works for somebody or a company in return for wages"
 #, fuzzy
 msgid "employee"
diff --git a/po/glossary/es.po b/po/glossary/es.po
index e455f820d..92a8eaeed 100644
--- a/po/glossary/es.po
+++ b/po/glossary/es.po
@@ -8,8 +8,9 @@
 msgid ""
 msgstr ""
 "Project-Id-Version: gnucash-glossary 1.8.9\n"
-"Report-Msgid-Bugs-To: Eneko Lacunza <enlar at enlar.net>\n"
-"POT-Creation-Date: 2020-08-08 18:07+0200\n"
+"Report-Msgid-Bugs-To: https://bugs.gnucash.org/enter_bug.cgi?"
+"product=GnuCash&component=Translations\n"
+"POT-Creation-Date: 2020-11-26 14:29+0100\n"
 "PO-Revision-Date: 2004-11-23 22:19+0100\n"
 "Last-Translator: Eneko Lacunza <enlar at enlar.net>\n"
 "Language-Team: Spanish <es at li.org>\n"
@@ -381,6 +382,10 @@ msgstr "cuenta"
 msgid "double entry"
 msgstr "partida doble"
 
+#. "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 ""
+
 #. "a person who works for somebody or a company in return for wages"
 msgid "employee"
 msgstr "empleado"
diff --git a/po/glossary/fi.po b/po/glossary/fi.po
index 8dc7d2e4e..4780e96d7 100644
--- a/po/glossary/fi.po
+++ b/po/glossary/fi.po
@@ -5,7 +5,9 @@
 msgid ""
 msgstr ""
 "Project-Id-Version: GnuCash 3.10\n"
-"POT-Creation-Date: 2020-08-08 18:07+0200\n"
+"Report-Msgid-Bugs-To: https://bugs.gnucash.org/enter_bug.cgi?"
+"product=GnuCash&component=Translations\n"
+"POT-Creation-Date: 2020-11-26 14:29+0100\n"
 "PO-Revision-Date: 2020-04-18 20:54+0300\n"
 "Last-Translator: Marko Kohtala <marko.kohtala at gmail.com>\n"
 "Language-Team: \n"
@@ -368,6 +370,10 @@ msgstr "alennus"
 msgid "double entry"
 msgstr "kahdenkertainen"
 
+#. "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 ""
+
 #. "a person who works for somebody or a company in return for wages"
 msgid "employee"
 msgstr "työntekijä"
diff --git a/po/glossary/fr.po b/po/glossary/fr.po
index 33fa86e36..dbb52a6e4 100644
--- a/po/glossary/fr.po
+++ b/po/glossary/fr.po
@@ -7,7 +7,9 @@
 msgid ""
 msgstr ""
 "Project-Id-Version: gnucash 2.0\n"
-"POT-Creation-Date: 2020-08-08 18:07+0200\n"
+"Report-Msgid-Bugs-To: https://bugs.gnucash.org/enter_bug.cgi?"
+"product=GnuCash&component=Translations\n"
+"POT-Creation-Date: 2020-11-26 14:29+0100\n"
 "PO-Revision-Date: 2018-10-25 12:30+0200\n"
 "Last-Translator: La Boussole <yoann at laboussole.coop>\n"
 "Language-Team: français <yoann at laboussole.coop>\n"
@@ -378,6 +380,10 @@ msgstr "escompte"
 msgid "double entry"
 msgstr "entrée double"
 
+#. "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 ""
+
 #. "a person who works for somebody or a company in return for wages"
 msgid "employee"
 msgstr "employé(e)"
diff --git a/po/glossary/he.po b/po/glossary/he.po
index 543548974..d2a146e0d 100644
--- a/po/glossary/he.po
+++ b/po/glossary/he.po
@@ -6,7 +6,9 @@
 msgid ""
 msgstr ""
 "Project-Id-Version: gnucash 3.6\n"
-"POT-Creation-Date: 2020-08-08 18:07+0200\n"
+"Report-Msgid-Bugs-To: https://bugs.gnucash.org/enter_bug.cgi?"
+"product=GnuCash&component=Translations\n"
+"POT-Creation-Date: 2020-11-26 14:29+0100\n"
 "PO-Revision-Date: 2019-08-12 17:55+0300\n"
 "Last-Translator: Avi Markovitz <avi.markovitz at gmail.com>\n"
 "Language-Team: HE\n"
@@ -370,6 +372,10 @@ msgstr "×”× ×—×”"
 msgid "double entry"
 msgstr "הכנסה כפולה"
 
+#. "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 ""
+
 #. "a person who works for somebody or a company in return for wages"
 msgid "employee"
 msgstr "עובד"
diff --git a/po/glossary/hr.po b/po/glossary/hr.po
index 3f918fc10..527b54020 100644
--- a/po/glossary/hr.po
+++ b/po/glossary/hr.po
@@ -5,7 +5,9 @@
 msgid ""
 msgstr ""
 "Project-Id-Version: GnuCash Glossary 3.10\n"
-"POT-Creation-Date: 2020-08-08 18:07+0200\n"
+"Report-Msgid-Bugs-To: https://bugs.gnucash.org/enter_bug.cgi?"
+"product=GnuCash&component=Translations\n"
+"POT-Creation-Date: 2020-11-26 14:29+0100\n"
 "PO-Revision-Date: 2020-04-17 17:25+0200\n"
 "Last-Translator: Milo Ivir <mail at milotype.de>\n"
 "Language-Team: \n"
@@ -371,6 +373,10 @@ msgstr "skonto"
 msgid "double entry"
 msgstr "dvojno knjigovodstvo"
 
+#. "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 ""
+
 #. "a person who works for somebody or a company in return for wages"
 msgid "employee"
 msgstr "radnik"
diff --git a/po/glossary/hu.po b/po/glossary/hu.po
index 2b53a9a91..19aaf711a 100644
--- a/po/glossary/hu.po
+++ b/po/glossary/hu.po
@@ -5,7 +5,9 @@
 msgid ""
 msgstr ""
 "Project-Id-Version: @gnucash@\n"
-"POT-Creation-Date: 2020-08-08 18:07+0200\n"
+"Report-Msgid-Bugs-To: https://bugs.gnucash.org/enter_bug.cgi?"
+"product=GnuCash&component=Translations\n"
+"POT-Creation-Date: 2020-11-26 14:29+0100\n"
 "PO-Revision-Date: 2007-07-31 22:59+0200\n"
 "Last-Translator: Kornel Tako <takokornel at gmail.com>\n"
 "Language-Team: Hungarian <gnucash-devel-request at gnucash.org>\n"
@@ -380,6 +382,10 @@ msgstr "Számla "
 msgid "double entry"
 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 ""
+
 #. "a person who works for somebody or a company in return for wages"
 msgid "employee"
 msgstr "Munkatárs"
diff --git a/po/glossary/id.po b/po/glossary/id.po
index c3bcbc2b8..6c2920acc 100644
--- a/po/glossary/id.po
+++ b/po/glossary/id.po
@@ -9,7 +9,7 @@ msgstr ""
 "Project-Id-Version: GnuCash 4.1\n"
 "Report-Msgid-Bugs-To: https://bugs.gnucash.org/enter_bug.cgi?"
 "product=GnuCash&component=Translations\n"
-"POT-Creation-Date: 2020-08-13 14:52+0700\n"
+"POT-Creation-Date: 2020-11-26 14:29+0100\n"
 "PO-Revision-Date: 2020-08-15 21:20+0700\n"
 "Last-Translator: Triyan W. Nugroho <triyan.wn at gmail.com>\n"
 "Language-Team: Indonesian\n"
@@ -372,6 +372,10 @@ msgstr "diskon"
 msgid "double entry"
 msgstr "pembukuan ganda"
 
+#. "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 ""
+
 #. "a person who works for somebody or a company in return for wages"
 msgid "employee"
 msgstr "karyawan"
diff --git a/po/glossary/it.po b/po/glossary/it.po
index 941bf5f3a..07516e063 100644
--- a/po/glossary/it.po
+++ b/po/glossary/it.po
@@ -16,7 +16,9 @@
 msgid ""
 msgstr ""
 "Project-Id-Version: gnucash-glossary 1.7.4\n"
-"POT-Creation-Date: 2020-08-08 18:07+0200\n"
+"Report-Msgid-Bugs-To: https://bugs.gnucash.org/enter_bug.cgi?"
+"product=GnuCash&component=Translations\n"
+"POT-Creation-Date: 2020-11-26 14:29+0100\n"
 "PO-Revision-Date: 2020-07-09 03:18+0200\n"
 "Last-Translator: Giuseppe Foti <foti.giuseppe at gmail.com>\n"
 "Language-Team: Italian <tp at lists.linux.it>\n"
@@ -380,6 +382,10 @@ msgstr "sconto"
 msgid "double entry"
 msgstr "partita doppia"
 
+#. "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 ""
+
 #. "a person who works for somebody or a company in return for wages"
 msgid "employee"
 msgstr "lavoratore"
diff --git a/po/glossary/lt.po b/po/glossary/lt.po
index 99e38e090..734876b4e 100644
--- a/po/glossary/lt.po
+++ b/po/glossary/lt.po
@@ -4,8 +4,9 @@
 msgid ""
 msgstr ""
 "Project-Id-Version: lt\n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2020-08-08 18:07+0200\n"
+"Report-Msgid-Bugs-To: https://bugs.gnucash.org/enter_bug.cgi?"
+"product=GnuCash&component=Translations\n"
+"POT-Creation-Date: 2020-11-26 14:29+0100\n"
 "PO-Revision-Date: 2011-08-28 20:55+0300\n"
 "Last-Translator: Aurimas Fišeras <aurimas at members.fsf.org>\n"
 "Language-Team: komp_lt at konf.lt\n"
@@ -378,6 +379,10 @@ msgstr "nuolaida"
 msgid "double entry"
 msgstr "dvejybinis į́rašas"
 
+#. "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 ""
+
 #. "a person who works for somebody or a company in return for wages"
 msgid "employee"
 msgstr "darbuotojas"
diff --git a/po/glossary/nb.po b/po/glossary/nb.po
index 8ec6a7e9d..31af7c7fd 100644
--- a/po/glossary/nb.po
+++ b/po/glossary/nb.po
@@ -9,8 +9,9 @@
 msgid ""
 msgstr ""
 "Project-Id-Version: gnucash-glossary 0.1\n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2020-08-08 18:07+0200\n"
+"Report-Msgid-Bugs-To: https://bugs.gnucash.org/enter_bug.cgi?"
+"product=GnuCash&component=Translations\n"
+"POT-Creation-Date: 2020-11-26 14:29+0100\n"
 "PO-Revision-Date: 2020-08-16 18:02+0200\n"
 "Last-Translator: John Erling Blad <jeblad at gmail.com>\n"
 "Language-Team: Norwegian/Bokmaal <i18n-nb at lister.ping.uio.no>\n"
@@ -372,6 +373,10 @@ msgstr "rabatt"
 msgid "double entry"
 msgstr "dobbel bokføring"
 
+#. "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 ""
+
 #. "a person who works for somebody or a company in return for wages"
 msgid "employee"
 msgstr "arbeidstaker"
diff --git a/po/glossary/nl.po b/po/glossary/nl.po
index 67c63cf0c..19a15c880 100644
--- a/po/glossary/nl.po
+++ b/po/glossary/nl.po
@@ -6,7 +6,9 @@
 msgid ""
 msgstr ""
 "Project-Id-Version: GnuCash 4.1+\n"
-"POT-Creation-Date: 2020-08-08 18:07+0200\n"
+"Report-Msgid-Bugs-To: https://bugs.gnucash.org/enter_bug.cgi?"
+"product=GnuCash&component=Translations\n"
+"POT-Creation-Date: 2020-11-26 14:29+0100\n"
 "PO-Revision-Date: 2020-08-18 17:43+0200\n"
 "Last-Translator: Geert Janssens <geert at kobaltwit.be>\n"
 "Language-Team: NONE\n"
@@ -368,6 +370,10 @@ msgstr "korting"
 msgid "double entry"
 msgstr "dubbele boekhouding"
 
+#. "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 ""
+
 #. "a person who works for somebody or a company in return for wages"
 msgid "employee"
 msgstr "medewerker"
diff --git a/po/glossary/pl.po b/po/glossary/pl.po
index aa0d40734..c1b904eb2 100644
--- a/po/glossary/pl.po
+++ b/po/glossary/pl.po
@@ -6,8 +6,9 @@
 msgid ""
 msgstr ""
 "Project-Id-Version: GnuCash 2.2.x\n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2020-08-08 18:07+0200\n"
+"Report-Msgid-Bugs-To: https://bugs.gnucash.org/enter_bug.cgi?"
+"product=GnuCash&component=Translations\n"
+"POT-Creation-Date: 2020-11-26 14:29+0100\n"
 "PO-Revision-Date: 2010-09-06 12:20+0200\n"
 "Last-Translator: Radzisław Galler <rgaller at gazeta.pl>\n"
 "Language-Team: Polish <translators at gnomepl.org>\n"
@@ -379,6 +380,10 @@ msgstr "konto"
 msgid "double entry"
 msgstr "podwójny zapis"
 
+#. "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 ""
+
 #. "a person who works for somebody or a company in return for wages"
 msgid "employee"
 msgstr "pracownik"
diff --git a/po/glossary/pt.po b/po/glossary/pt.po
index 634a1cd16..402dde114 100644
--- a/po/glossary/pt.po
+++ b/po/glossary/pt.po
@@ -6,7 +6,9 @@
 msgid ""
 msgstr ""
 "Project-Id-Version: gnucash-2.4\n"
-"POT-Creation-Date: 2020-08-08 18:07+0200\n"
+"Report-Msgid-Bugs-To: https://bugs.gnucash.org/enter_bug.cgi?"
+"product=GnuCash&component=Translations\n"
+"POT-Creation-Date: 2020-11-26 14:29+0100\n"
 "PO-Revision-Date: 2018-10-09 09:47+0100\n"
 "Last-Translator: Tiago Neiva <tneiva at gmail.com>\n"
 "Language-Team: Portuguese <translation-team-pt at lists.sourceforge.net>\n"
@@ -373,6 +375,10 @@ msgstr "desconto"
 msgid "double entry"
 msgstr "dupla entrada"
 
+#. "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 ""
+
 #. "a person who works for somebody or a company in return for wages"
 msgid "employee"
 msgstr "empregado"
diff --git a/po/glossary/pt_BR.po b/po/glossary/pt_BR.po
index e83ac83ff..8c9951a1a 100644
--- a/po/glossary/pt_BR.po
+++ b/po/glossary/pt_BR.po
@@ -10,7 +10,9 @@
 msgid ""
 msgstr ""
 "Project-Id-Version: 1.8\n"
-"POT-Creation-Date: 2020-08-08 18:07+0200\n"
+"Report-Msgid-Bugs-To: https://bugs.gnucash.org/enter_bug.cgi?"
+"product=GnuCash&component=Translations\n"
+"POT-Creation-Date: 2020-11-26 14:29+0100\n"
 "PO-Revision-Date: 2007-07-08 00:44-0300\n"
 "Last-Translator: Leonardo Ferreira Fontenelle <leo.fontenelle at gmail.com>\n"
 "Language-Team: none\n"
@@ -382,6 +384,10 @@ msgstr "conta"
 msgid "double entry"
 msgstr "dupla entrada"
 
+#. "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 ""
+
 #. "a person who works for somebody or a company in return for wages"
 msgid "employee"
 msgstr "funcionário"
diff --git a/po/glossary/ru.po b/po/glossary/ru.po
index 35ab89e77..18740b2e8 100644
--- a/po/glossary/ru.po
+++ b/po/glossary/ru.po
@@ -5,7 +5,9 @@
 msgid ""
 msgstr ""
 "Project-Id-Version: ru\n"
-"POT-Creation-Date: 2020-08-08 18:07+0200\n"
+"Report-Msgid-Bugs-To: https://bugs.gnucash.org/enter_bug.cgi?"
+"product=GnuCash&component=Translations\n"
+"POT-Creation-Date: 2020-11-26 14:29+0100\n"
 "PO-Revision-Date: 2008-01-30 00:10+0300\n"
 "Last-Translator: Sergey Belyashov <Sergey.Belyashov at gmail.com>\n"
 "Language-Team: russian <ru at li.org>\n"
@@ -386,6 +388,10 @@ msgstr "счет"
 msgid "double entry"
 msgstr "двойная бухгалтерия"
 
+#. "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 ""
+
 #. "a person who works for somebody or a company in return for wages"
 msgid "employee"
 msgstr "сотрудник"
diff --git a/po/glossary/rw.po b/po/glossary/rw.po
index fd334a137..55f330562 100644
--- a/po/glossary/rw.po
+++ b/po/glossary/rw.po
@@ -14,7 +14,9 @@
 msgid ""
 msgstr ""
 "Project-Id-Version: gnucash-glossary 1.8.9\n"
-"POT-Creation-Date: 2020-08-08 18:07+0200\n"
+"Report-Msgid-Bugs-To: https://bugs.gnucash.org/enter_bug.cgi?"
+"product=GnuCash&component=Translations\n"
+"POT-Creation-Date: 2020-11-26 14:29+0100\n"
 "PO-Revision-Date: 2005-04-04 10:55-0700\n"
 "Last-Translator: Steven Michael Murphy <murf at e-tools.com>\n"
 "Language-Team: Kinyarwanda <translation-team-rw at lists.sourceforge.net>\n"
@@ -457,6 +459,10 @@ msgstr "Aderesi"
 msgid "double entry"
 msgstr "MAHARAKUBIRI Icyinjijwe"
 
+#. "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 ""
+
 #. "a person who works for somebody or a company in return for wages"
 msgid "employee"
 msgstr ""
diff --git a/po/glossary/sk.po b/po/glossary/sk.po
index 1dd1377ed..3fe0b83bb 100644
--- a/po/glossary/sk.po
+++ b/po/glossary/sk.po
@@ -7,7 +7,9 @@
 msgid ""
 msgstr ""
 "Project-Id-Version: gnucash-glossary\n"
-"POT-Creation-Date: 2020-08-08 18:07+0200\n"
+"Report-Msgid-Bugs-To: https://bugs.gnucash.org/enter_bug.cgi?"
+"product=GnuCash&component=Translations\n"
+"POT-Creation-Date: 2020-11-26 14:29+0100\n"
 "PO-Revision-Date: 2008-11-14 21:02+0100\n"
 "Last-Translator: Zdenko Podobny <zdenop at gmail.com>\n"
 "Language-Team: Slovak <sk-i18n at lists.linux.sk>\n"
@@ -381,6 +383,10 @@ msgstr "účet"
 msgid "double entry"
 msgstr "podvojnosť"
 
+#. "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 ""
+
 #. "a person who works for somebody or a company in return for wages"
 msgid "employee"
 msgstr "zamestnanec"
diff --git a/po/glossary/sv.po b/po/glossary/sv.po
index f5bfb2efc..0df6fcd88 100644
--- a/po/glossary/sv.po
+++ b/po/glossary/sv.po
@@ -8,7 +8,9 @@
 msgid ""
 msgstr ""
 "Project-Id-Version: gnucash-glossary 1.9.1\n"
-"POT-Creation-Date: 2020-08-08 18:07+0200\n"
+"Report-Msgid-Bugs-To: https://bugs.gnucash.org/enter_bug.cgi?"
+"product=GnuCash&component=Translations\n"
+"POT-Creation-Date: 2020-11-26 14:29+0100\n"
 "PO-Revision-Date: 2006-05-04 07:47+0200\n"
 "Last-Translator: Jonas Norling <norling at lysator.liu.se>\n"
 "Language-Team: Swedish <tp-sv at listor.tp-sv.se>\n"
@@ -381,6 +383,10 @@ msgstr "konto"
 msgid "double entry"
 msgstr "dubbel bokföring"
 
+#. "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 ""
+
 #. "a person who works for somebody or a company in return for wages"
 msgid "employee"
 msgstr "anställd"
diff --git a/po/glossary/vi.po b/po/glossary/vi.po
index dd34cf7ea..ba441bf00 100644
--- a/po/glossary/vi.po
+++ b/po/glossary/vi.po
@@ -5,8 +5,9 @@
 msgid ""
 msgstr ""
 "Project-Id-Version: gnucash-glossary-1.9.1\n"
-"Report-Msgid-Bugs-To: bug-gnucash at gnu.org\n"
-"POT-Creation-Date: 2020-08-08 18:07+0200\n"
+"Report-Msgid-Bugs-To: https://bugs.gnucash.org/enter_bug.cgi?"
+"product=GnuCash&component=Translations\n"
+"POT-Creation-Date: 2020-11-26 14:29+0100\n"
 "PO-Revision-Date: 2006-03-09 22:30+1030\n"
 "Last-Translator: Clytie Siddall <clytie at riverland.net.au>\n"
 "Language-Team: Vietnamese <gnomevi-list at lists.sourceforge.net>\n"
@@ -380,6 +381,10 @@ msgstr "tài khoản"
 msgid "double entry"
 msgstr "kế toán kép"
 
+#. "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 ""
+
 #. "a person who works for somebody or a company in return for wages"
 msgid "employee"
 msgstr "nhân viên"
diff --git a/po/glossary/zh_CN.po b/po/glossary/zh_CN.po
index 62e87bedf..d1288f56f 100644
--- a/po/glossary/zh_CN.po
+++ b/po/glossary/zh_CN.po
@@ -5,7 +5,9 @@
 msgid ""
 msgstr ""
 "Project-Id-Version: gnucash-glossary\n"
-"POT-Creation-Date: 2020-08-08 18:07+0200\n"
+"Report-Msgid-Bugs-To: https://bugs.gnucash.org/enter_bug.cgi?"
+"product=GnuCash&component=Translations\n"
+"POT-Creation-Date: 2020-11-26 14:29+0100\n"
 "PO-Revision-Date: 2010-05-05 13:47+1000\n"
 "Last-Translator: Tao Wang <dancefire at gmail.com>\n"
 "Language-Team: Simplified Chinese <LL at li.org>\n"
@@ -447,6 +449,10 @@ msgstr "会计科目"
 msgid "double entry"
 msgstr "复式记账"
 
+#. "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 ""
+
 # 为某个人或者某个公司工作并且赚取薪金的人
 #. "a person who works for somebody or a company in return for wages"
 msgid "employee"
diff --git a/po/glossary/zh_TW.po b/po/glossary/zh_TW.po
index f7eeb7be1..0a560e096 100644
--- a/po/glossary/zh_TW.po
+++ b/po/glossary/zh_TW.po
@@ -6,7 +6,9 @@
 msgid ""
 msgstr ""
 "Project-Id-Version: gnucash-glossary\n"
-"POT-Creation-Date: 2020-08-08 18:07+0200\n"
+"Report-Msgid-Bugs-To: https://bugs.gnucash.org/enter_bug.cgi?"
+"product=GnuCash&component=Translations\n"
+"POT-Creation-Date: 2020-11-26 14:29+0100\n"
 "PO-Revision-Date: 2011-03-10 22:11+0800\n"
 "Last-Translator: Kuang-che Wu <kcwu at csie.org>\n"
 "Language-Team: traditional Chinese <zh-l10n at linux.org.tw>\n"
@@ -377,6 +379,10 @@ msgstr "折扣"
 msgid "double entry"
 msgstr "複式簿記"
 
+#. "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 ""
+
 #. "a person who works for somebody or a company in return for wages"
 msgid "employee"
 msgstr "僱員"
diff --git a/po/pt.po b/po/pt.po
index 652061eb2..317e182c0 100644
--- a/po/pt.po
+++ b/po/pt.po
@@ -8,7 +8,7 @@ msgstr ""
 "Project-Id-Version: GnuCash 3.3\n"
 "Report-Msgid-Bugs-To: https://bugs.gnucash.org/enter_bug.cgi?"
 "product=GnuCash&component=Translations\n"
-"POT-Creation-Date: 2020-10-14 01:49+0200\n"
+"POT-Creation-Date: 2020-11-26 13:39+0100\n"
 "PO-Revision-Date: 2019-07-07 09:03+0100\n"
 "Last-Translator: Pedro Albuquerque <palbuquerque73 at gmail.com>\n"
 "Language-Team: Portuguese <translation-team-pt at lists.sourceforge.net>\n"
@@ -818,7 +818,7 @@ msgid "Selected"
 msgstr "Seleccionados"
 
 #: gnucash/gnome/assistant-hierarchy.c:767
-#: gnucash/gnome-utils/gnc-tree-view-account.c:2335
+#: gnucash/gnome-utils/gnc-tree-view-account.c:2366
 msgid "Account Types"
 msgstr "Tipos de conta"
 
@@ -855,16 +855,17 @@ msgid "No"
 msgstr "Não"
 
 #: gnucash/gnome/assistant-hierarchy.c:1335
-#: gnucash/gnome-utils/dialog-options.c:717
-#: gnucash/gnome-utils/gnc-tree-view-account.c:965
+#: gnucash/gnome-utils/dialog-options.c:729
+#: gnucash/gnome-utils/gnc-tree-view-account.c:988
 #: gnucash/gtkbuilder/dialog-account.glade:272
 msgid "Placeholder"
 msgstr "Marcador de posição"
 
 #: gnucash/gnome/assistant-hierarchy.c:1352
-#: gnucash/gnome-utils/dialog-account.c:313
-#: gnucash/gtkbuilder/dialog-account.glade:1838
-#: libgnucash/app-utils/gnc-ui-util.c:1072
+#: gnucash/gnome-utils/dialog-account.c:351
+#: gnucash/gnome-utils/gnc-tree-view-account.c:996
+#: gnucash/gtkbuilder/dialog-account.glade:1855
+#: libgnucash/app-utils/gnc-ui-util.c:1102
 msgid "Opening Balance"
 msgstr "Saldo inicial"
 
@@ -927,44 +928,44 @@ msgstr "Pagamentos diversos"
 
 #. Translators: %s is "Taxes",
 #. * "Insurance", or similar.
-#: gnucash/gnome/assistant-loan.cpp:763
+#: gnucash/gnome/assistant-loan.cpp:765
 #, c-format
 msgid "... pay \"%s\"?"
 msgstr "... pagar \"%s\"?"
 
-#: gnucash/gnome/assistant-loan.cpp:775
+#: gnucash/gnome/assistant-loan.cpp:777
 msgid "via Escrow account?"
 msgstr "usando uma conta de garantia?"
 
-#: gnucash/gnome/assistant-loan.cpp:922
+#: gnucash/gnome/assistant-loan.cpp:924
 #: gnucash/gnome-utils/gnc-tree-model-split-reg.c:2902
 #: gnucash/register/ledger-core/split-register.c:2667
 msgid "Loan"
 msgstr "Empréstimo"
 
 #. Translators: %s is "Taxes", or "Insurance", or similar
-#: gnucash/gnome/assistant-loan.cpp:1457
+#: gnucash/gnome/assistant-loan.cpp:1459
 #, c-format
 msgid "Loan Repayment Option: \"%s\""
 msgstr "Opção de pagamento de empréstimo: \"%s\""
 
 #. Translators: The following symbols will build the *
 #. * header line of exported CSV files:
-#: gnucash/gnome/assistant-loan.cpp:1859 gnucash/gnome/dialog-lot-viewer.c:937
+#: gnucash/gnome/assistant-loan.cpp:1861 gnucash/gnome/dialog-lot-viewer.c:937
 #: gnucash/gnome/gnc-split-reg.c:682 gnucash/gnome/reconcile-view.c:429
 #: gnucash/gnome-utils/gnc-tree-view-price.c:408
 #: gnucash/gtkbuilder/dialog-doclink.glade:612
 #: gnucash/gtkbuilder/dialog-payment.glade:253
 #: gnucash/gtkbuilder/dialog-payment.glade:374
 #: gnucash/gtkbuilder/dialog-transfer.glade:138
-#: gnucash/gtkbuilder/gnc-plugin-page-register2.glade:475
+#: gnucash/gtkbuilder/gnc-plugin-page-register2.glade:522
 #: gnucash/gtkbuilder/gnc-plugin-page-register.glade:366
 #: gnucash/import-export/bi-import/dialog-bi-import-gui.c:148
 #: gnucash/import-export/csv-exp/csv-transactions-export.c:613
 #: gnucash/import-export/csv-exp/csv-transactions-export.c:622
 #: gnucash/import-export/csv-imp/gnc-imp-props-price.cpp:49
 #: gnucash/import-export/csv-imp/gnc-imp-props-tx.cpp:58
-#: gnucash/import-export/import-main-matcher.c:1034
+#: gnucash/import-export/import-main-matcher.c:1087
 #: gnucash/import-export/import-match-picker.c:393
 #: gnucash/import-export/import-match-picker.c:433
 #: gnucash/import-export/qif-imp/assistant-qif-import.c:3700
@@ -992,7 +993,7 @@ msgstr "Opção de pagamento de empréstimo: \"%s\""
 #: gnucash/report/reports/standard/owner-report.scm:50
 #: gnucash/report/reports/standard/portfolio.scm:51
 #: gnucash/report/reports/standard/register.scm:130
-#: gnucash/report/reports/standard/register.scm:382
+#: gnucash/report/reports/standard/register.scm:353
 #: gnucash/report/reports/support/receipt.eguile.scm:143
 #: gnucash/report/reports/support/taxinvoice.eguile.scm:268
 #: gnucash/report/trep-engine.scm:161 gnucash/report/trep-engine.scm:940
@@ -1000,8 +1001,8 @@ msgstr "Opção de pagamento de empréstimo: \"%s\""
 msgid "Date"
 msgstr "Data"
 
-#: gnucash/gnome/assistant-loan.cpp:1865 gnucash/gnome/assistant-loan.cpp:2844
-#: gnucash/gnome/assistant-loan.cpp:2906 gnucash/gnome/assistant-loan.cpp:2919
+#: gnucash/gnome/assistant-loan.cpp:1867 gnucash/gnome/assistant-loan.cpp:2846
+#: gnucash/gnome/assistant-loan.cpp:2908 gnucash/gnome/assistant-loan.cpp:2921
 #: gnucash/gnome-utils/gnc-tree-model-split-reg.c:2863
 #: gnucash/gnome-utils/gnc-tree-model-split-reg.c:2904
 #: gnucash/gnome-utils/gnc-tree-model-split-reg.c:2909
@@ -1016,18 +1017,18 @@ msgstr "Data"
 #: gnucash/register/ledger-core/split-register.c:2685
 #: gnucash/report/reports/standard/new-owner-report.scm:294
 #: gnucash/report/reports/standard/owner-report.scm:357
-#: libgnucash/engine/Account.cpp:144 libgnucash/engine/Account.cpp:152
-#: libgnucash/engine/Account.cpp:173 libgnucash/engine/gncOwner.c:814
+#: libgnucash/engine/Account.cpp:145 libgnucash/engine/Account.cpp:153
+#: libgnucash/engine/Account.cpp:174 libgnucash/engine/gncOwner.c:814
 #: libgnucash/engine/gncOwner.c:847 libgnucash/engine/gncOwner.c:877
 #: libgnucash/engine/gncOwner.c:890
 msgid "Payment"
 msgstr "Pagamento"
 
-#: gnucash/gnome/assistant-loan.cpp:1871 gnucash/gnome/assistant-loan.cpp:2939
+#: gnucash/gnome/assistant-loan.cpp:1873 gnucash/gnome/assistant-loan.cpp:2941
 msgid "Principal"
 msgstr "Principal"
 
-#: gnucash/gnome/assistant-loan.cpp:1877 gnucash/gnome/assistant-loan.cpp:2959
+#: gnucash/gnome/assistant-loan.cpp:1879 gnucash/gnome/assistant-loan.cpp:2961
 #: gnucash/gnome-utils/gnc-tree-model-split-reg.c:2858
 #: gnucash/gnome-utils/gnc-tree-model-split-reg.c:2895
 #: gnucash/gnome-utils/gnc-tree-model-split-reg.c:2903
@@ -1044,7 +1045,7 @@ msgstr "Principal"
 msgid "Interest"
 msgstr "Juros"
 
-#: gnucash/gnome/assistant-loan.cpp:2845
+#: gnucash/gnome/assistant-loan.cpp:2847
 msgid "Escrow Payment"
 msgstr "Pagamentos de garantia"
 
@@ -1066,7 +1067,7 @@ msgstr "Erro ao adicionar cotação."
 #: gnucash/import-export/aqb/gnc-ab-utils.c:541
 #: gnucash/import-export/bi-import/dialog-bi-import-gui.c:151
 #: gnucash/import-export/csv-imp/gnc-imp-props-tx.cpp:65
-#: gnucash/import-export/import-main-matcher.c:1035
+#: gnucash/import-export/import-main-matcher.c:1088
 #: gnucash/import-export/import-match-picker.c:392
 #: gnucash/import-export/qif-imp/dialog-account-picker.c:433
 #: gnucash/register/ledger-core/split-register-model.c:341
@@ -1081,7 +1082,7 @@ msgstr "Erro ao adicionar cotação."
 #: gnucash/report/reports/standard/owner-report.scm:48
 #: gnucash/report/reports/standard/portfolio.scm:253
 #: gnucash/report/reports/standard/register.scm:143
-#: gnucash/report/reports/standard/register.scm:407
+#: gnucash/report/reports/standard/register.scm:378
 #: gnucash/report/trep-engine.scm:1218
 msgid "Account"
 msgstr "Conta"
@@ -1101,7 +1102,7 @@ msgstr "Símbolo"
 #: gnucash/report/reports/standard/general-ledger.scm:78
 #: gnucash/report/reports/standard/general-ledger.scm:98
 #: gnucash/report/reports/standard/register.scm:146
-#: gnucash/report/reports/standard/register.scm:412
+#: gnucash/report/reports/standard/register.scm:383
 #: gnucash/report/trep-engine.scm:953 gnucash/report/trep-engine.scm:1078
 #: gnucash/report/trep-engine.scm:1240
 msgid "Shares"
@@ -1112,8 +1113,8 @@ msgid "You don't have any stock accounts with balances!"
 msgstr "Não tem nenhuma conta de acções com saldos!"
 
 #: gnucash/gnome/business-gnome-utils.c:73
-#: gnucash/gnome/business-gnome-utils.c:260 gnucash/gnome/dialog-invoice.c:1462
-#: gnucash/gnome/dialog-invoice.c:1540
+#: gnucash/gnome/business-gnome-utils.c:260 gnucash/gnome/dialog-invoice.c:1476
+#: gnucash/gnome/dialog-invoice.c:1554
 #: gnucash/gnome-utils/gnc-general-select.c:220
 msgid "Select..."
 msgstr "Seleccionar..."
@@ -1124,28 +1125,28 @@ msgid "Edit..."
 msgstr "Editar..."
 
 #: gnucash/gnome/business-gnome-utils.c:219 gnucash/gnome/dialog-doclink.c:740
-#: gnucash/gnome/dialog-invoice.c:2586 gnucash/gnome/dialog-invoice.c:2811
-#: gnucash/gnome/dialog-invoice.c:2812 gnucash/gnome/dialog-invoice.c:3521
-#: gnucash/gnome-search/dialog-search.c:1064
+#: gnucash/gnome/dialog-invoice.c:2600 gnucash/gnome/dialog-invoice.c:2825
+#: gnucash/gnome/dialog-invoice.c:2826 gnucash/gnome/dialog-invoice.c:3535
+#: gnucash/gnome-search/dialog-search.c:1073
 #: gnucash/gnome-utils/gnc-tree-view-split-reg.c:2998
 #: gnucash/gtkbuilder/dialog-bi-import-gui.glade:147
 #: gnucash/report/reports/standard/invoice.scm:787
-#: libgnucash/engine/Account.cpp:172 libgnucash/engine/gncInvoice.c:1082
+#: libgnucash/engine/Account.cpp:173 libgnucash/engine/gncInvoice.c:1082
 msgid "Bill"
 msgstr "Pagamento"
 
 #: gnucash/gnome/business-gnome-utils.c:222 gnucash/gnome/dialog-doclink.c:744
-#: gnucash/gnome/dialog-invoice.c:2592 gnucash/gnome/dialog-invoice.c:2818
-#: gnucash/gnome/dialog-invoice.c:2819
+#: gnucash/gnome/dialog-invoice.c:2606 gnucash/gnome/dialog-invoice.c:2832
+#: gnucash/gnome/dialog-invoice.c:2833
 msgid "Voucher"
 msgstr "Vale"
 
 #: gnucash/gnome/business-gnome-utils.c:225 gnucash/gnome/dialog-doclink.c:748
-#: gnucash/gnome/dialog-invoice.c:3535
+#: gnucash/gnome/dialog-invoice.c:3549
 #: gnucash/gnome/gnc-plugin-page-invoice.c:570
 #: gnucash/gnome/gnc-plugin-page-register.c:633
-#: gnucash/gnome/gnc-plugin-page-report.c:1804
-#: gnucash/gnome-search/dialog-search.c:1080
+#: gnucash/gnome/gnc-plugin-page-report.c:1848
+#: gnucash/gnome-search/dialog-search.c:1089
 #: gnucash/gnome-utils/gnc-tree-model-split-reg.c:2908
 #: gnucash/gnome-utils/gnc-tree-view-split-reg.c:3073
 #: gnucash/gtkbuilder/dialog-bi-import-gui.glade:167
@@ -1161,7 +1162,7 @@ msgstr "Vale"
 #: gnucash/report/reports/standard/taxinvoice.scm:173
 #: gnucash/report/reports/support/receipt.eguile.scm:91
 #: gnucash/report/reports/support/taxinvoice.eguile.scm:106
-#: libgnucash/engine/Account.cpp:153 libgnucash/engine/gncInvoice.c:1080
+#: libgnucash/engine/Account.cpp:154 libgnucash/engine/gncInvoice.c:1080
 msgid "Invoice"
 msgstr "Factura"
 
@@ -1171,7 +1172,7 @@ msgstr "Factura"
 #: gnucash/import-export/csv-imp/gnc-imp-props-price.cpp:48
 #: gnucash/import-export/csv-imp/gnc-imp-props-tx.cpp:56
 #: gnucash/import-export/import-pending-matches.c:192
-#: gnucash/report/reports/standard/register.scm:228
+#: gnucash/report/reports/standard/register.scm:217
 #: gnucash/report/trep-engine.scm:258 gnucash/report/trep-engine.scm:291
 #: gnucash/report/trep-engine.scm:341 gnucash/report/trep-engine.scm:429
 #: gnucash/report/trep-engine.scm:1020 libgnucash/engine/gncOwner.c:213
@@ -1258,7 +1259,7 @@ msgid "Term \"%s\" is in use. You cannot delete it."
 msgstr "As condições \"%s\" estão em uso. Não as pode eliminar."
 
 #: gnucash/gnome/dialog-billterms.c:678
-#: gnucash/gnome-utils/dialog-tax-table.c:670
+#: gnucash/gnome-utils/dialog-tax-table.c:673
 #, c-format
 msgid "Are you sure you want to delete \"%s\"?"
 msgstr "Tem a certeza que quer eliminar \"%s\"?"
@@ -1307,21 +1308,23 @@ msgstr "Eliminar mercadoria?"
 #: gnucash/gnome/dialog-price-edit-db.c:206
 #: gnucash/gnome/dialog-price-editor.c:232 gnucash/gnome/dialog-tax-info.c:1189
 #: gnucash/gnome/gnc-plugin-budget.c:289
-#: gnucash/gnome/gnc-plugin-page-account-tree.c:1765
+#: gnucash/gnome/gnc-plugin-page-account-tree.c:1799
 #: gnucash/gnome/gnc-plugin-page-invoice.c:184
 #: gnucash/gnome/gnc-plugin-page-owner-tree.c:1111
 #: gnucash/gnome/gnc-plugin-page-register2.c:1630
-#: gnucash/gnome/gnc-plugin-page-register.c:1984
+#: gnucash/gnome/gnc-plugin-page-register.c:1990
 #: gnucash/gnome/gnc-split-reg.c:975 gnucash/gnome/gnc-split-reg.c:1013
 #: gnucash/gnome/gnc-split-reg.c:1235 gnucash/gnome/gnc-split-reg.c:1503
 #: gnucash/gnome/gnc-split-reg.c:1543 gnucash/gnome/window-reconcile2.c:2124
 #: gnucash/gnome/window-reconcile.c:2345
 #: gnucash/gnome-search/search-account.c:237
-#: gnucash/gnome-utils/dialog-account.c:679
-#: gnucash/gnome-utils/dialog-tax-table.c:600
+#: gnucash/gnome-utils/dialog-account.c:722
+#: gnucash/gnome-utils/dialog-options.c:224
+#: gnucash/gnome-utils/dialog-tax-table.c:603
 #: gnucash/gnome-utils/gnc-file.c:118 gnucash/gnome-utils/gnc-file.c:366
 #: gnucash/gnome-utils/gnc-file.c:664 gnucash/gnome-utils/gnc-gui-query.c:300
-#: gnucash/gnome-utils/gnc-main-window.c:1293
+#: gnucash/gnome-utils/gnc-main-window.c:1307
+#: gnucash/gnome-utils/gnc-main-window.c:1448
 #: gnucash/gnome-utils/gnc-tree-control-split-reg.c:886
 #: gnucash/gnome-utils/gnc-tree-control-split-reg.c:1023
 #: gnucash/gnome-utils/gnc-tree-control-split-reg.c:1063
@@ -1331,7 +1334,7 @@ msgstr "Eliminar mercadoria?"
 #: gnucash/gtkbuilder/dialog-account.glade:383
 #: gnucash/gtkbuilder/dialog-account.glade:817
 #: gnucash/gtkbuilder/dialog-account.glade:1133
-#: gnucash/gtkbuilder/dialog-account.glade:1901
+#: gnucash/gtkbuilder/dialog-account.glade:1918
 #: gnucash/gtkbuilder/dialog-account-picker.glade:174
 #: gnucash/gtkbuilder/dialog-bi-import-gui.glade:39
 #: gnucash/gtkbuilder/dialog-billterms.glade:791
@@ -1350,7 +1353,7 @@ msgstr "Eliminar mercadoria?"
 #: gnucash/gtkbuilder/dialog-fincalc.glade:122
 #: gnucash/gtkbuilder/dialog-import.glade:46
 #: gnucash/gtkbuilder/dialog-import.glade:334
-#: gnucash/gtkbuilder/dialog-import.glade:1018
+#: gnucash/gtkbuilder/dialog-import.glade:1034
 #: gnucash/gtkbuilder/dialog-invoice.glade:675
 #: gnucash/gtkbuilder/dialog-invoice.glade:1199
 #: gnucash/gtkbuilder/dialog-job.glade:41
@@ -1380,12 +1383,12 @@ msgstr "Eliminar mercadoria?"
 #: gnucash/gtkbuilder/gnc-plugin-page-budget.glade:437
 #: gnucash/gtkbuilder/gnc-plugin-page-budget.glade:882
 #: gnucash/gtkbuilder/gnc-plugin-page-register2.glade:30
-#: gnucash/gtkbuilder/gnc-plugin-page-register2.glade:184
-#: gnucash/gtkbuilder/gnc-plugin-page-register2.glade:691
+#: gnucash/gtkbuilder/gnc-plugin-page-register2.glade:231
+#: gnucash/gtkbuilder/gnc-plugin-page-register2.glade:738
 #: gnucash/gtkbuilder/gnc-plugin-page-register.glade:31
-#: gnucash/gtkbuilder/gnc-plugin-page-register.glade:588
-#: gnucash/gtkbuilder/gnc-plugin-page-register.glade:934
-#: gnucash/gtkbuilder/gnc-plugin-page-register.glade:1144
+#: gnucash/gtkbuilder/gnc-plugin-page-register.glade:582
+#: gnucash/gtkbuilder/gnc-plugin-page-register.glade:787
+#: gnucash/gtkbuilder/gnc-plugin-page-register.glade:1128
 #: gnucash/gtkbuilder/gnc-tree-view-owner.glade:24
 #: gnucash/gtkbuilder/window-autoclear.glade:22
 #: gnucash/gtkbuilder/window-reconcile.glade:21
@@ -1406,7 +1409,7 @@ msgstr "_Cancelar"
 
 #: gnucash/gnome/dialog-commodities.c:218
 #: gnucash/gnome/dialog-price-edit-db.c:207
-#: gnucash/gnome/gnc-plugin-page-account-tree.c:1766
+#: gnucash/gnome/gnc-plugin-page-account-tree.c:1800
 #: gnucash/gnome/gnc-plugin-page-invoice.c:189
 #: gnucash/gnome/gnc-plugin-page-owner-tree.c:1112
 #: gnucash/gnome/gnc-plugin-page-sx-list.c:162
@@ -1449,7 +1452,7 @@ msgstr "O crédito tem de ser um valor positivo, ou ficar em branco."
 
 #: gnucash/gnome/dialog-customer.c:432 gnucash/gnome/dialog-employee.c:287
 #: gnucash/gnome/dialog-job.c:242 gnucash/gnome/dialog-vendor.c:299
-#: gnucash/gnome-utils/dialog-account.c:1505
+#: gnucash/gnome-utils/dialog-account.c:1575
 msgid "<No name>"
 msgstr "<sem nome>"
 
@@ -1458,7 +1461,7 @@ msgid "Edit Customer"
 msgstr "Editar cliente"
 
 #: gnucash/gnome/dialog-customer.c:441
-#: gnucash/gnome-search/dialog-search.c:1070
+#: gnucash/gnome-search/dialog-search.c:1079
 #: gnucash/gtkbuilder/dialog-customer.glade:31
 msgid "New Customer"
 msgstr "Novo cliente"
@@ -1476,9 +1479,9 @@ msgid "Customer's Invoices"
 msgstr "Facturas do cliente"
 
 #: gnucash/gnome/dialog-customer.c:913 gnucash/gnome/dialog-employee.c:694
-#: gnucash/gnome/dialog-invoice.c:3287 gnucash/gnome/dialog-invoice.c:3296
-#: gnucash/gnome/dialog-invoice.c:3307 gnucash/gnome/dialog-invoice.c:3562
-#: gnucash/gnome/dialog-invoice.c:3568 gnucash/gnome/dialog-job.c:561
+#: gnucash/gnome/dialog-invoice.c:3301 gnucash/gnome/dialog-invoice.c:3310
+#: gnucash/gnome/dialog-invoice.c:3321 gnucash/gnome/dialog-invoice.c:3576
+#: gnucash/gnome/dialog-invoice.c:3582 gnucash/gnome/dialog-job.c:561
 #: gnucash/gnome/gnc-plugin-page-owner-tree.c:237
 #: gnucash/gnome/gnc-plugin-page-owner-tree.c:296
 #: gnucash/gtkbuilder/dialog-payment.glade:61
@@ -1511,8 +1514,8 @@ msgstr "Nome da empresa"
 msgid "Contact"
 msgstr "Contacto"
 
-#: gnucash/gnome/dialog-customer.c:938 gnucash/gnome/dialog-invoice.c:3432
-#: gnucash/gnome/dialog-invoice.c:3586 gnucash/gnome/dialog-job.c:591
+#: gnucash/gnome/dialog-customer.c:938 gnucash/gnome/dialog-invoice.c:3446
+#: gnucash/gnome/dialog-invoice.c:3600 gnucash/gnome/dialog-job.c:591
 #: gnucash/gnome/dialog-order.c:888 gnucash/gnome/dialog-vendor.c:741
 #: gnucash/import-export/customer-import/dialog-customer-import-gui.c:129
 #: gnucash/report/reports/aging.scm:537
@@ -1650,7 +1653,7 @@ msgstr "Detalhes da transacção"
 #: gnucash/gnome/dialog-lot-viewer.c:953 gnucash/gnome/dialog-tax-info.c:1397
 #: gnucash/gnome/gnc-split-reg.c:700 gnucash/gnome/reconcile-view.c:417
 #: gnucash/gnome-utils/gnc-tree-model-budget.c:102
-#: gnucash/gnome-utils/gnc-tree-view-account.c:805
+#: gnucash/gnome-utils/gnc-tree-view-account.c:828
 #: gnucash/gnome-utils/gnc-tree-view-split-reg.c:2812
 #: gnucash/gtkbuilder/dialog-book-close.glade:163
 #: gnucash/gtkbuilder/dialog-choose-owner.glade:97
@@ -1660,14 +1663,14 @@ msgstr "Detalhes da transacção"
 #: gnucash/import-export/csv-exp/csv-transactions-export.c:615
 #: gnucash/import-export/csv-exp/csv-transactions-export.c:624
 #: gnucash/import-export/csv-imp/gnc-imp-props-tx.cpp:60
-#: gnucash/import-export/import-main-matcher.c:1038
+#: gnucash/import-export/import-main-matcher.c:1091
 #: gnucash/import-export/import-match-picker.c:395
 #: gnucash/import-export/import-match-picker.c:435
 #: gnucash/import-export/qif-imp/assistant-qif-import.c:3710
 #: gnucash/import-export/qif-imp/assistant-qif-import.c:3761
 #: gnucash/register/ledger-core/gncEntryLedgerModel.c:67
 #: gnucash/register/ledger-core/split-register-model.c:295
-#: gnucash/report/reports/standard/account-summary.scm:408
+#: gnucash/report/reports/standard/account-summary.scm:409
 #: gnucash/report/reports/standard/customer-summary.scm:73
 #: gnucash/report/reports/standard/general-journal.scm:96
 #: gnucash/report/reports/standard/general-ledger.scm:70
@@ -1679,7 +1682,7 @@ msgstr "Detalhes da transacção"
 #: gnucash/report/reports/standard/new-owner-report.scm:240
 #: gnucash/report/reports/standard/owner-report.scm:54
 #: gnucash/report/reports/standard/register.scm:138
-#: gnucash/report/reports/standard/register.scm:397
+#: gnucash/report/reports/standard/register.scm:368
 #: gnucash/report/reports/support/taxinvoice.eguile.scm:270
 #: gnucash/report/trep-engine.scm:215 gnucash/report/trep-engine.scm:945
 #: gnucash/report/trep-engine.scm:1073 gnucash/report/trep-engine.scm:1198
@@ -1719,7 +1722,7 @@ msgid "Edit Employee"
 msgstr "Editar empregado"
 
 #: gnucash/gnome/dialog-employee.c:296
-#: gnucash/gnome-search/dialog-search.c:1074
+#: gnucash/gnome-search/dialog-search.c:1083
 #: gnucash/gtkbuilder/dialog-employee.glade:7
 msgid "New Employee"
 msgstr "Novo empregado"
@@ -1740,7 +1743,7 @@ msgstr "Número do empregado"
 msgid "Employee Username"
 msgstr "Nome de utilizador do empregado"
 
-#: gnucash/gnome/dialog-employee.c:707 gnucash/gnome/dialog-invoice.c:3412
+#: gnucash/gnome/dialog-employee.c:707 gnucash/gnome/dialog-invoice.c:3426
 #: gnucash/gnome-utils/gnc-tree-view-owner.c:364
 msgid "Employee Name"
 msgstr "Nome do empregado"
@@ -1777,7 +1780,7 @@ msgstr "Nome"
 msgid "Find Employee"
 msgstr "Procurar empregado"
 
-#: gnucash/gnome/dialog-fincalc.c:319
+#: gnucash/gnome/dialog-fincalc.c:328
 msgid ""
 "This program can only calculate one value at a time. You must enter values "
 "for all but one quantity."
@@ -1785,7 +1788,7 @@ msgstr ""
 "Este programa só pode calcular um valor de cada vez. Insira valores para "
 "todas menos uma quantidade."
 
-#: gnucash/gnome/dialog-fincalc.c:321
+#: gnucash/gnome/dialog-fincalc.c:330
 msgid ""
 "GnuCash cannot determine the value in one of the fields. You must enter a "
 "valid expression."
@@ -1793,15 +1796,15 @@ msgstr ""
 "O GnuCash não pode determinar o valor de um dos campos. Tem de inserir uma "
 "expressão válida."
 
-#: gnucash/gnome/dialog-fincalc.c:360
+#: gnucash/gnome/dialog-fincalc.c:373
 msgid "The interest rate cannot be zero."
 msgstr "A taxa de juro não pode ser zero."
 
-#: gnucash/gnome/dialog-fincalc.c:379
+#: gnucash/gnome/dialog-fincalc.c:401
 msgid "The number of payments cannot be zero."
 msgstr "O número de prestações não pode ser zero."
 
-#: gnucash/gnome/dialog-fincalc.c:384
+#: gnucash/gnome/dialog-fincalc.c:406
 msgid "The number of payments cannot be negative."
 msgstr "O número de prestações não pode ser negativo."
 
@@ -1814,7 +1817,7 @@ msgid "Place Holder"
 msgstr "Marcador de posição"
 
 #: gnucash/gnome/dialog-find-account.c:388
-#: gnucash/gnome-utils/gnc-tree-view-account.c:957
+#: gnucash/gnome-utils/gnc-tree-view-account.c:980
 #: gnucash/gtkbuilder/dialog-account.glade:322
 msgid "Hidden"
 msgstr "Oculta"
@@ -1871,7 +1874,7 @@ msgid "Share Price"
 msgstr "Cotação de acção"
 
 #: gnucash/gnome/dialog-find-transactions2.c:124
-#: gnucash/gnome/dialog-invoice.c:3581 gnucash/gnome/dialog-lot-viewer.c:967
+#: gnucash/gnome/dialog-invoice.c:3595 gnucash/gnome/dialog-lot-viewer.c:967
 #: gnucash/gnome/gnc-split-reg.c:694 gnucash/gnome/reconcile-view.c:413
 #: gnucash/gnome-utils/gnc-tree-view-split-reg.c:2892
 #: gnucash/gnome-utils/gnc-tree-view-split-reg.c:2904
@@ -1880,7 +1883,7 @@ msgstr "Cotação de acção"
 #: gnucash/gtkbuilder/assistant-loan.glade:764
 #: gnucash/gtkbuilder/dialog-transfer.glade:112
 #: gnucash/import-export/csv-imp/gnc-imp-props-price.cpp:50
-#: gnucash/import-export/import-main-matcher.c:1037
+#: gnucash/import-export/import-main-matcher.c:1090
 #: gnucash/import-export/import-match-picker.c:394
 #: gnucash/import-export/import-match-picker.c:434
 #: gnucash/import-export/qif-imp/assistant-qif-import.c:3721
@@ -1893,8 +1896,8 @@ msgstr "Cotação de acção"
 #: gnucash/report/reports/standard/job-report.scm:45
 #: gnucash/report/reports/standard/new-owner-report.scm:244
 #: gnucash/report/reports/standard/owner-report.scm:59
-#: gnucash/report/reports/standard/register.scm:427
-#: gnucash/report/reports/standard/register.scm:676
+#: gnucash/report/reports/standard/register.scm:398
+#: gnucash/report/reports/standard/register.scm:647
 #: gnucash/report/trep-engine.scm:207 gnucash/report/trep-engine.scm:1016
 #: gnucash/report/trep-engine.scm:1067 gnucash/report/trep-engine.scm:1348
 #: gnucash/report/trep-engine.scm:1364 gnucash/report/trep-engine.scm:2058
@@ -1911,14 +1914,14 @@ msgstr "Montante"
 #: gnucash/report/reports/standard/advanced-portfolio.scm:1080
 #: gnucash/report/reports/standard/portfolio.scm:258
 #: gnucash/report/reports/standard/register.scm:158
-#: gnucash/report/reports/standard/register.scm:436
+#: gnucash/report/reports/standard/register.scm:407
 msgid "Value"
 msgstr "Valor"
 
 #: gnucash/gnome/dialog-find-transactions2.c:128
 #: gnucash/gnome/dialog-find-transactions.c:126
-#: gnucash/gnome/dialog-invoice.c:3332 gnucash/gnome/dialog-invoice.c:3366
-#: gnucash/gnome/dialog-invoice.c:3400
+#: gnucash/gnome/dialog-invoice.c:3346 gnucash/gnome/dialog-invoice.c:3380
+#: gnucash/gnome/dialog-invoice.c:3414
 #: gnucash/gnome-utils/gnc-tree-view-split-reg.c:2720
 #: gnucash/gtkbuilder/dialog-invoice.glade:93
 #: gnucash/import-export/bi-import/dialog-bi-import-gui.c:161
@@ -1931,10 +1934,10 @@ msgstr "Data de emissão"
 #: gnucash/gnome/dialog-find-transactions.c:132
 #: gnucash/gnome/dialog-find-transactions.c:171
 #: gnucash/gnome/dialog-find-transactions.c:177
-#: gnucash/gnome/gnc-plugin-page-register.c:2476
-#: gnucash/gnome/gnc-plugin-page-register.c:4160
-#: gnucash/gnome-search/dialog-search.c:866
-#: gnucash/gnome-search/dialog-search.c:872
+#: gnucash/gnome/gnc-plugin-page-register.c:2482
+#: gnucash/gnome/gnc-plugin-page-register.c:4166
+#: gnucash/gnome-search/dialog-search.c:875
+#: gnucash/gnome-search/dialog-search.c:881
 #: gnucash/import-export/csv-exp/csv-transactions-export.c:626
 #: gnucash/report/trep-engine.scm:223
 msgid "Number/Action"
@@ -1946,9 +1949,9 @@ msgstr "Número/Acção"
 #: gnucash/gnome/dialog-find-transactions.c:133
 #: gnucash/gnome/dialog-find-transactions.c:170
 #: gnucash/gnome/dialog-find-transactions.c:178
-#: gnucash/gnome/gnc-plugin-page-register.c:2481
-#: gnucash/gnome/gnc-split-reg.c:703 gnucash/gnome-search/dialog-search.c:865
-#: gnucash/gnome-search/dialog-search.c:873
+#: gnucash/gnome/gnc-plugin-page-register.c:2487
+#: gnucash/gnome/gnc-split-reg.c:703 gnucash/gnome-search/dialog-search.c:874
+#: gnucash/gnome-search/dialog-search.c:882
 #: gnucash/gnome-utils/gnc-tree-view-split-reg.c:2749
 #: gnucash/gnome-utils/gnc-tree-view-split-reg.c:2751
 #: gnucash/gnome-utils/gnc-tree-view-split-reg.c:2769
@@ -1970,10 +1973,10 @@ msgstr "Acção"
 #: gnucash/gnome/dialog-find-transactions.c:136
 #: gnucash/gnome/dialog-find-transactions.c:173
 #: gnucash/gnome/dialog-find-transactions.c:179
-#: gnucash/gnome/gnc-plugin-page-register.c:2475
-#: gnucash/gnome/gnc-plugin-page-register.c:4159
-#: gnucash/gnome-search/dialog-search.c:868
-#: gnucash/gnome-search/dialog-search.c:874
+#: gnucash/gnome/gnc-plugin-page-register.c:2481
+#: gnucash/gnome/gnc-plugin-page-register.c:4165
+#: gnucash/gnome-search/dialog-search.c:877
+#: gnucash/gnome-search/dialog-search.c:883
 #: gnucash/import-export/csv-exp/csv-transactions-export.c:614
 #: gnucash/import-export/csv-exp/csv-transactions-export.c:623
 #: gnucash/report/trep-engine.scm:237
@@ -1986,9 +1989,9 @@ msgstr "Número de transacção"
 #: gnucash/gnome/dialog-find-transactions.c:137
 #: gnucash/gnome/dialog-find-transactions.c:172
 #: gnucash/gnome/dialog-find-transactions.c:180
-#: gnucash/gnome/gnc-plugin-page-register.c:2480
-#: gnucash/gnome/gnc-split-reg.c:691 gnucash/gnome-search/dialog-search.c:867
-#: gnucash/gnome-search/dialog-search.c:875
+#: gnucash/gnome/gnc-plugin-page-register.c:2486
+#: gnucash/gnome/gnc-split-reg.c:691 gnucash/gnome-search/dialog-search.c:876
+#: gnucash/gnome-search/dialog-search.c:884
 #: gnucash/gnome-utils/gnc-tree-view-split-reg.c:2765
 #: gnucash/gtkbuilder/dialog-payment.glade:264
 #: gnucash/gtkbuilder/gnc-date-format.glade:98
@@ -2015,14 +2018,14 @@ msgstr "Descrição, notas ou memorando"
 #: gnucash/gtkbuilder/dialog-transfer.glade:215
 #: gnucash/import-export/csv-exp/csv-transactions-export.c:626
 #: gnucash/import-export/csv-imp/gnc-imp-props-tx.cpp:69
-#: gnucash/import-export/import-main-matcher.c:1039
+#: gnucash/import-export/import-main-matcher.c:1092
 #: gnucash/import-export/import-match-picker.c:396
 #: gnucash/import-export/import-match-picker.c:436
 #: gnucash/register/ledger-core/split-register-model.c:355
 #: gnucash/report/reports/standard/general-ledger.scm:71
 #: gnucash/report/reports/standard/general-ledger.scm:91
 #: gnucash/report/reports/standard/register.scm:140
-#: gnucash/report/reports/standard/register.scm:402
+#: gnucash/report/reports/standard/register.scm:373
 #: gnucash/report/trep-engine.scm:244 gnucash/report/trep-engine.scm:971
 #: gnucash/report/trep-engine.scm:1095 gnucash/report/trep-engine.scm:1208
 #: gnucash/report/trep-engine.scm:1209
@@ -2032,7 +2035,7 @@ msgstr "Nota"
 #: gnucash/gnome/dialog-find-transactions2.c:155
 #: gnucash/gnome/dialog-find-transactions.c:155
 #: gnucash/gnome/gnc-split-reg.c:706
-#: gnucash/gnome-utils/gnc-tree-view-account.c:937
+#: gnucash/gnome-utils/gnc-tree-view-account.c:960
 #: gnucash/gnome-utils/gnc-tree-view-owner.c:473
 #: gnucash/gnome-utils/gnc-tree-view-split-reg.c:2814
 #: gnucash/gtkbuilder/assistant-acct-period.glade:155
@@ -2049,7 +2052,7 @@ msgstr "Nota"
 #: gnucash/import-export/csv-imp/gnc-imp-props-tx.cpp:61
 #: gnucash/import-export/customer-import/dialog-customer-import-gui.c:138
 #: gnucash/register/ledger-core/split-register-model.c:491
-#: gnucash/report/reports/standard/account-summary.scm:436
+#: gnucash/report/reports/standard/account-summary.scm:437
 #: gnucash/report/reports/standard/balsheet-eg.scm:195
 #: gnucash/report/reports/standard/receipt.scm:38
 #: gnucash/report/reports/standard/taxinvoice.scm:78
@@ -2061,7 +2064,7 @@ msgstr "Notas"
 
 #: gnucash/gnome/dialog-find-transactions2.c:229
 #: gnucash/gnome/dialog-find-transactions.c:229
-#: gnucash/gnome-search/dialog-search.c:1473
+#: gnucash/gnome-search/dialog-search.c:1482
 msgid "Find Transaction"
 msgstr "Localizar transacção"
 
@@ -2136,18 +2139,18 @@ msgstr "Id online"
 msgid "You need to supply Billing Information."
 msgstr "Tem de indicar a informação de facturação."
 
-#: gnucash/gnome/dialog-invoice.c:711
+#: gnucash/gnome/dialog-invoice.c:725
 msgid "Are you sure you want to delete the selected entry?"
 msgstr "Tem a certeza que quer eliminar a transacção seleccionada?"
 
-#: gnucash/gnome/dialog-invoice.c:713
+#: gnucash/gnome/dialog-invoice.c:727
 msgid ""
 "This entry is attached to an order and will be deleted from that as well!"
 msgstr ""
 "Esta transacção está inserida numa encomenda e será eliminada daí também!"
 
-#: gnucash/gnome/dialog-invoice.c:822 gnucash/gnome/dialog-invoice.c:3341
-#: gnucash/gnome/dialog-invoice.c:3375 gnucash/gnome/dialog-invoice.c:3409
+#: gnucash/gnome/dialog-invoice.c:836 gnucash/gnome/dialog-invoice.c:3355
+#: gnucash/gnome/dialog-invoice.c:3389 gnucash/gnome/dialog-invoice.c:3423
 #: gnucash/gnome-utils/gnc-tree-view-split-reg.c:2736
 #: gnucash/import-export/bi-import/dialog-bi-import-gui.c:162
 #: gnucash/register/ledger-core/split-register-model.c:239
@@ -2164,30 +2167,30 @@ msgstr ""
 msgid "Due Date"
 msgstr "Data de vencimento"
 
-#: gnucash/gnome/dialog-invoice.c:823 gnucash/report/reports/aging.scm:388
+#: gnucash/gnome/dialog-invoice.c:837 gnucash/report/reports/aging.scm:388
 #: gnucash/report/reports/standard/new-aging.scm:130
 #: gnucash/report/reports/standard/new-owner-report.scm:961
 #: gnucash/report/reports/standard/owner-report.scm:613
 msgid "Post Date"
 msgstr "Data de emissão"
 
-#: gnucash/gnome/dialog-invoice.c:824
+#: gnucash/gnome/dialog-invoice.c:838
 msgid "Post to Account"
 msgstr "Emitir para conta"
 
-#: gnucash/gnome/dialog-invoice.c:825
+#: gnucash/gnome/dialog-invoice.c:839
 msgid "Accumulate Splits?"
 msgstr "Acumular parcelas?"
 
-#: gnucash/gnome/dialog-invoice.c:917
+#: gnucash/gnome/dialog-invoice.c:931
 msgid "The Invoice must have at least one Entry."
 msgstr "A factura tem de ter pelo menos uma entrada."
 
-#: gnucash/gnome/dialog-invoice.c:937
+#: gnucash/gnome/dialog-invoice.c:951
 msgid "Do you really want to post the invoice?"
 msgstr "Tem a certeza que quer emitir a factura?"
 
-#: gnucash/gnome/dialog-invoice.c:955
+#: gnucash/gnome/dialog-invoice.c:969
 msgid ""
 "One or more of the entries are for accounts different from the invoice/bill "
 "currency. You will be asked a conversion rate for each."
@@ -2195,133 +2198,133 @@ msgstr ""
 "Uma ou mais das entradas são para contas com moeda diferente da da factura/"
 "nota. Ser-lhe-á pedida uma taxa de câmbio para cada uma."
 
-#: gnucash/gnome/dialog-invoice.c:1088
+#: gnucash/gnome/dialog-invoice.c:1102
 msgid "The post action was canceled because not all exchange rates were given."
 msgstr ""
 "A emissão foi cancelada porque nem todas as taxas de câmbio foram indicadas."
 
-#: gnucash/gnome/dialog-invoice.c:1372
+#: gnucash/gnome/dialog-invoice.c:1386
 msgid "Total:"
 msgstr "Total:"
 
-#: gnucash/gnome/dialog-invoice.c:1378
+#: gnucash/gnome/dialog-invoice.c:1392
 msgid "Subtotal:"
 msgstr "Sub-total:"
 
-#: gnucash/gnome/dialog-invoice.c:1379
+#: gnucash/gnome/dialog-invoice.c:1393
 msgid "Tax:"
 msgstr "Imposto:"
 
-#: gnucash/gnome/dialog-invoice.c:1383
+#: gnucash/gnome/dialog-invoice.c:1397
 msgid "Total Cash:"
 msgstr "Total em dinheiro:"
 
-#: gnucash/gnome/dialog-invoice.c:1384
+#: gnucash/gnome/dialog-invoice.c:1398
 msgid "Total Charge:"
 msgstr "Total de gastos:"
 
-#: gnucash/gnome/dialog-invoice.c:1853 gnucash/gnome/dialog-payment.c:1331
+#: gnucash/gnome/dialog-invoice.c:1867 gnucash/gnome/dialog-payment.c:1331
 #: gnucash/gtkbuilder/dialog-invoice.glade:857
 #: gnucash/report/reports/standard/invoice.scm:793
 #: libgnucash/engine/gncInvoice.c:1088
 msgid "Credit Note"
 msgstr "Nota de crédito"
 
-#: gnucash/gnome/dialog-invoice.c:2049
+#: gnucash/gnome/dialog-invoice.c:2063
 msgid "PAID"
 msgstr "PAGO"
 
-#: gnucash/gnome/dialog-invoice.c:2051
+#: gnucash/gnome/dialog-invoice.c:2065
 #: gnucash/report/reports/standard/new-owner-report.scm:577
 msgid "UNPAID"
 msgstr "POR PAGAR"
 
-#: gnucash/gnome/dialog-invoice.c:2099 gnucash/gnome/dialog-invoice.c:2118
-#: gnucash/gnome/dialog-invoice.c:2137
+#: gnucash/gnome/dialog-invoice.c:2113 gnucash/gnome/dialog-invoice.c:2132
+#: gnucash/gnome/dialog-invoice.c:2151
 msgid "New Credit Note"
 msgstr "Nova nota de crédito"
 
-#: gnucash/gnome/dialog-invoice.c:2100
+#: gnucash/gnome/dialog-invoice.c:2114
 #: gnucash/gnome/gnc-plugin-page-owner-tree.c:292
-#: gnucash/gnome-search/dialog-search.c:1082
+#: gnucash/gnome-search/dialog-search.c:1091
 #: gnucash/gtkbuilder/dialog-invoice.glade:642
 msgid "New Invoice"
 msgstr "Nova factura"
 
-#: gnucash/gnome/dialog-invoice.c:2105 gnucash/gnome/dialog-invoice.c:2124
-#: gnucash/gnome/dialog-invoice.c:2143
+#: gnucash/gnome/dialog-invoice.c:2119 gnucash/gnome/dialog-invoice.c:2138
+#: gnucash/gnome/dialog-invoice.c:2157
 msgid "Edit Credit Note"
 msgstr "Editar nota de crédito"
 
-#: gnucash/gnome/dialog-invoice.c:2106
+#: gnucash/gnome/dialog-invoice.c:2120
 msgid "Edit Invoice"
 msgstr "Editar factura"
 
-#: gnucash/gnome/dialog-invoice.c:2109 gnucash/gnome/dialog-invoice.c:2128
-#: gnucash/gnome/dialog-invoice.c:2147
+#: gnucash/gnome/dialog-invoice.c:2123 gnucash/gnome/dialog-invoice.c:2142
+#: gnucash/gnome/dialog-invoice.c:2161
 msgid "View Credit Note"
 msgstr "Ver nota de crédito"
 
-#: gnucash/gnome/dialog-invoice.c:2110
+#: gnucash/gnome/dialog-invoice.c:2124
 msgid "View Invoice"
 msgstr "Ver factura"
 
-#: gnucash/gnome/dialog-invoice.c:2119
+#: gnucash/gnome/dialog-invoice.c:2133
 #: gnucash/gnome/gnc-plugin-page-owner-tree.c:291
-#: gnucash/gnome-search/dialog-search.c:1066
+#: gnucash/gnome-search/dialog-search.c:1075
 msgid "New Bill"
 msgstr "Novo pagamento"
 
-#: gnucash/gnome/dialog-invoice.c:2125
+#: gnucash/gnome/dialog-invoice.c:2139
 msgid "Edit Bill"
 msgstr "Editar pagamento"
 
-#: gnucash/gnome/dialog-invoice.c:2129
+#: gnucash/gnome/dialog-invoice.c:2143
 msgid "View Bill"
 msgstr "Ver pagamento"
 
-#: gnucash/gnome/dialog-invoice.c:2138
-#: gnucash/gnome-search/dialog-search.c:1078
+#: gnucash/gnome/dialog-invoice.c:2152
+#: gnucash/gnome-search/dialog-search.c:1087
 msgid "New Expense Voucher"
 msgstr "Novo vale de despesa"
 
-#: gnucash/gnome/dialog-invoice.c:2144
+#: gnucash/gnome/dialog-invoice.c:2158
 msgid "Edit Expense Voucher"
 msgstr "Editar vale de despesa"
 
-#: gnucash/gnome/dialog-invoice.c:2148
+#: gnucash/gnome/dialog-invoice.c:2162
 msgid "View Expense Voucher"
 msgstr "Ver vale de despesa"
 
-#: gnucash/gnome/dialog-invoice.c:2471
+#: gnucash/gnome/dialog-invoice.c:2485
 #, fuzzy
 #| msgid "No Linked Account"
 msgid "Open Linked Document:"
 msgstr "Sem conta ligada"
 
-#: gnucash/gnome/dialog-invoice.c:2585 gnucash/gnome/dialog-invoice.c:2810
+#: gnucash/gnome/dialog-invoice.c:2599 gnucash/gnome/dialog-invoice.c:2824
 msgid "Bill Information"
 msgstr "Informação de facturação"
 
-#: gnucash/gnome/dialog-invoice.c:2587 gnucash/gnome/dialog-invoice.c:2813
-#: gnucash/gnome/dialog-invoice.c:3382
+#: gnucash/gnome/dialog-invoice.c:2601 gnucash/gnome/dialog-invoice.c:2827
+#: gnucash/gnome/dialog-invoice.c:3396
 msgid "Bill ID"
 msgstr "Número de pagamento"
 
-#: gnucash/gnome/dialog-invoice.c:2591 gnucash/gnome/dialog-invoice.c:2817
+#: gnucash/gnome/dialog-invoice.c:2605 gnucash/gnome/dialog-invoice.c:2831
 msgid "Voucher Information"
 msgstr "Informação do vale"
 
-#: gnucash/gnome/dialog-invoice.c:2593 gnucash/gnome/dialog-invoice.c:2820
-#: gnucash/gnome/dialog-invoice.c:3416
+#: gnucash/gnome/dialog-invoice.c:2607 gnucash/gnome/dialog-invoice.c:2834
+#: gnucash/gnome/dialog-invoice.c:3430
 msgid "Voucher ID"
 msgstr "Número de vale"
 
-#: gnucash/gnome/dialog-invoice.c:3149
+#: gnucash/gnome/dialog-invoice.c:3163
 msgid "Date of duplicated entries"
 msgstr "Data das entradas duplicadas"
 
-#: gnucash/gnome/dialog-invoice.c:3204
+#: gnucash/gnome/dialog-invoice.c:3218
 msgid ""
 "One or more selected invoices have already been posted.\n"
 "Re-check your selection."
@@ -2329,54 +2332,54 @@ msgstr ""
 "Uma ou mais facturas seleccionadas já foram emitidas.\n"
 "Reveja a sua selecção."
 
-#: gnucash/gnome/dialog-invoice.c:3208
+#: gnucash/gnome/dialog-invoice.c:3222
 msgid "Do you really want to post these invoices?"
 msgstr "Tem a certeza que quer emitir estas facturas?"
 
-#: gnucash/gnome/dialog-invoice.c:3286 gnucash/gnome/dialog-invoice.c:3567
+#: gnucash/gnome/dialog-invoice.c:3300 gnucash/gnome/dialog-invoice.c:3581
 msgid "View/Edit Invoice"
 msgstr "Ver/Editar factura"
 
-#: gnucash/gnome/dialog-invoice.c:3288 gnucash/gnome/dialog-invoice.c:3297
-#: gnucash/gnome/dialog-invoice.c:3308
+#: gnucash/gnome/dialog-invoice.c:3302 gnucash/gnome/dialog-invoice.c:3311
+#: gnucash/gnome/dialog-invoice.c:3322
 #: gnucash/gnome/gnc-plugin-page-invoice.c:455
 #: gnucash/gnome/gnc-plugin-page-register2.c:501
 #: gnucash/gnome/gnc-plugin-page-register.c:624
 msgid "Duplicate"
 msgstr "Duplicar"
 
-#: gnucash/gnome/dialog-invoice.c:3289 gnucash/gnome/dialog-invoice.c:3298
-#: gnucash/gnome/dialog-invoice.c:3309
+#: gnucash/gnome/dialog-invoice.c:3303 gnucash/gnome/dialog-invoice.c:3312
+#: gnucash/gnome/dialog-invoice.c:3323
 #: gnucash/gnome/gnc-plugin-page-invoice.c:459
 msgid "Post"
 msgstr "Emitir"
 
-#: gnucash/gnome/dialog-invoice.c:3290 gnucash/gnome/dialog-invoice.c:3299
-#: gnucash/gnome/dialog-invoice.c:3310
+#: gnucash/gnome/dialog-invoice.c:3304 gnucash/gnome/dialog-invoice.c:3313
+#: gnucash/gnome/dialog-invoice.c:3324
 msgid "Printable Report"
 msgstr "Relatório imprimível"
 
-#: gnucash/gnome/dialog-invoice.c:3295 gnucash/gnome/dialog-invoice.c:3561
+#: gnucash/gnome/dialog-invoice.c:3309 gnucash/gnome/dialog-invoice.c:3575
 msgid "View/Edit Bill"
 msgstr "Ver/Editar pagamento"
 
 #. Translators: The terms 'Voucher' and 'Expense Voucher' are used
 #. interchangeably in gnucash and mean the same thing.
-#: gnucash/gnome/dialog-invoice.c:3306
+#: gnucash/gnome/dialog-invoice.c:3320
 msgid "View/Edit Voucher"
 msgstr "Ver/Editar vale"
 
-#: gnucash/gnome/dialog-invoice.c:3320
+#: gnucash/gnome/dialog-invoice.c:3334
 msgid "Invoice Owner"
 msgstr "Títular da factura"
 
-#: gnucash/gnome/dialog-invoice.c:3323
+#: gnucash/gnome/dialog-invoice.c:3337
 #: gnucash/report/reports/standard/invoice.scm:327
 msgid "Invoice Notes"
 msgstr "Notas da factura"
 
-#: gnucash/gnome/dialog-invoice.c:3326 gnucash/gnome/dialog-invoice.c:3360
-#: gnucash/gnome/dialog-invoice.c:3394 gnucash/gnome/dialog-invoice.c:3423
+#: gnucash/gnome/dialog-invoice.c:3340 gnucash/gnome/dialog-invoice.c:3374
+#: gnucash/gnome/dialog-invoice.c:3408 gnucash/gnome/dialog-invoice.c:3437
 #: gnucash/gnome/dialog-job.c:574 gnucash/gnome/dialog-job.c:587
 #: gnucash/gnome/dialog-order.c:886 gnucash/gtkbuilder/dialog-invoice.glade:310
 #: gnucash/gtkbuilder/dialog-invoice.glade:944
@@ -2385,18 +2388,18 @@ msgstr "Notas da factura"
 msgid "Billing ID"
 msgstr "Número de pagamento"
 
-#: gnucash/gnome/dialog-invoice.c:3329 gnucash/gnome/dialog-invoice.c:3363
-#: gnucash/gnome/dialog-invoice.c:3397
+#: gnucash/gnome/dialog-invoice.c:3343 gnucash/gnome/dialog-invoice.c:3377
+#: gnucash/gnome/dialog-invoice.c:3411
 msgid "Is Paid?"
 msgstr "Está paga?"
 
-#: gnucash/gnome/dialog-invoice.c:3335 gnucash/gnome/dialog-invoice.c:3369
-#: gnucash/gnome/dialog-invoice.c:3403
+#: gnucash/gnome/dialog-invoice.c:3349 gnucash/gnome/dialog-invoice.c:3383
+#: gnucash/gnome/dialog-invoice.c:3417
 msgid "Is Posted?"
 msgstr "Está emitida?"
 
-#: gnucash/gnome/dialog-invoice.c:3338 gnucash/gnome/dialog-invoice.c:3372
-#: gnucash/gnome/dialog-invoice.c:3406 gnucash/gnome/dialog-order.c:875
+#: gnucash/gnome/dialog-invoice.c:3352 gnucash/gnome/dialog-invoice.c:3386
+#: gnucash/gnome/dialog-invoice.c:3420 gnucash/gnome/dialog-order.c:875
 #: gnucash/gtkbuilder/dialog-invoice.glade:67
 #: gnucash/gtkbuilder/dialog-invoice.glade:762
 #: gnucash/gtkbuilder/dialog-order.glade:135
@@ -2405,35 +2408,35 @@ msgstr "Está emitida?"
 msgid "Date Opened"
 msgstr "Data de abertura"
 
-#: gnucash/gnome/dialog-invoice.c:3344 gnucash/gnome/dialog-invoice.c:3378
+#: gnucash/gnome/dialog-invoice.c:3358 gnucash/gnome/dialog-invoice.c:3392
 msgid "Company Name "
 msgstr "Nome da empresa"
 
-#: gnucash/gnome/dialog-invoice.c:3348
+#: gnucash/gnome/dialog-invoice.c:3362
 #: gnucash/gtkbuilder/dialog-invoice.glade:41
 #: gnucash/gtkbuilder/dialog-invoice.glade:749
 msgid "Invoice ID"
 msgstr "Número de factura"
 
-#: gnucash/gnome/dialog-invoice.c:3354
+#: gnucash/gnome/dialog-invoice.c:3368
 msgid "Bill Owner"
 msgstr "Títular do pagamento"
 
-#: gnucash/gnome/dialog-invoice.c:3357
+#: gnucash/gnome/dialog-invoice.c:3371
 msgid "Bill Notes"
 msgstr "Notas do pagamento"
 
-#: gnucash/gnome/dialog-invoice.c:3388
+#: gnucash/gnome/dialog-invoice.c:3402
 msgid "Voucher Owner"
 msgstr "Títular do vale"
 
-#: gnucash/gnome/dialog-invoice.c:3391
+#: gnucash/gnome/dialog-invoice.c:3405
 msgid "Voucher Notes"
 msgstr "Notas do vale"
 
-#: gnucash/gnome/dialog-invoice.c:3425 gnucash/gnome/dialog-invoice.c:3584
+#: gnucash/gnome/dialog-invoice.c:3439 gnucash/gnome/dialog-invoice.c:3598
 #: gnucash/gnome/dialog-lot-viewer.c:860 gnucash/gnome/dialog-tax-info.c:1235
-#: gnucash/gnome-utils/gnc-tree-view-account.c:788
+#: gnucash/gnome-utils/gnc-tree-view-account.c:811
 #: gnucash/gnome-utils/gnc-tree-view-owner.c:401
 #: gnucash/gnome-utils/gnc-tree-view-price.c:420
 #: gnucash/gnome-utils/gnc-tree-view-split-reg.c:2872
@@ -2445,7 +2448,7 @@ msgstr "Notas do vale"
 #: gnucash/gtkbuilder/dialog-payment.glade:280
 #: gnucash/gtkbuilder/dialog-tax-info.glade:127
 #: gnucash/register/ledger-core/split-register-model.c:362
-#: gnucash/report/reports/standard/account-summary.scm:407
+#: gnucash/report/reports/standard/account-summary.scm:408
 #: gnucash/report/reports/standard/customer-summary.scm:72
 #: gnucash/report/reports/standard/job-report.scm:43
 #: gnucash/report/reports/standard/new-owner-report.scm:52
@@ -2454,26 +2457,26 @@ msgstr "Notas do vale"
 msgid "Type"
 msgstr "Tipo"
 
-#: gnucash/gnome/dialog-invoice.c:3427
+#: gnucash/gnome/dialog-invoice.c:3441
 #: gnucash/register/ledger-core/split-register-model.c:309
 #: gnucash/report/reports/standard/new-owner-report.scm:819
 msgid "Paid"
 msgstr "Paga"
 
-#: gnucash/gnome/dialog-invoice.c:3430
+#: gnucash/gnome/dialog-invoice.c:3444
 msgid "Posted"
 msgstr "Emitida"
 
-#: gnucash/gnome/dialog-invoice.c:3435 gnucash/gnome/dialog-invoice.c:3588
+#: gnucash/gnome/dialog-invoice.c:3449 gnucash/gnome/dialog-invoice.c:3602
 msgid "Due"
 msgstr "Devida"
 
-#: gnucash/gnome/dialog-invoice.c:3437 gnucash/gnome/dialog-lot-viewer.c:866
+#: gnucash/gnome/dialog-invoice.c:3451 gnucash/gnome/dialog-lot-viewer.c:866
 #: gnucash/gnome/dialog-order.c:893
 msgid "Opened"
 msgstr "Aberta"
 
-#: gnucash/gnome/dialog-invoice.c:3439 gnucash/gnome/dialog-lot-viewer.c:947
+#: gnucash/gnome/dialog-invoice.c:3453 gnucash/gnome/dialog-lot-viewer.c:947
 #: gnucash/gnome/dialog-order.c:895 gnucash/gnome/reconcile-view.c:421
 #: gnucash/gnome/reconcile-view.c:425
 #: gnucash/gtkbuilder/dialog-payment.glade:473
@@ -2484,53 +2487,53 @@ msgstr "Aberta"
 #: gnucash/report/reports/standard/general-journal.scm:95
 #: gnucash/report/reports/standard/general-ledger.scm:89
 #: gnucash/report/reports/standard/register.scm:136
-#: gnucash/report/reports/standard/register.scm:392
+#: gnucash/report/reports/standard/register.scm:363
 #: gnucash/report/trep-engine.scm:944 gnucash/report/trep-engine.scm:1072
 #: gnucash/report/trep-engine.scm:1180
 msgid "Num"
 msgstr "Nº."
 
-#: gnucash/gnome/dialog-invoice.c:3520
+#: gnucash/gnome/dialog-invoice.c:3534
 msgid "Find Bill"
 msgstr "Localizar pagamentos"
 
-#: gnucash/gnome/dialog-invoice.c:3527
+#: gnucash/gnome/dialog-invoice.c:3541
 msgid "Find Expense Voucher"
 msgstr "Localizar vale de despesa"
 
-#: gnucash/gnome/dialog-invoice.c:3528
-#: gnucash/gnome-search/dialog-search.c:1076
+#: gnucash/gnome/dialog-invoice.c:3542
+#: gnucash/gnome-search/dialog-search.c:1085
 #: gnucash/report/reports/standard/invoice.scm:789
 msgid "Expense Voucher"
 msgstr "Vale de despesa"
 
-#: gnucash/gnome/dialog-invoice.c:3534
+#: gnucash/gnome/dialog-invoice.c:3548
 msgid "Find Invoice"
 msgstr "Localizar factura"
 
 #. Translators: %d is the number of bills/credit notes due. This is a
 #. ngettext(3) message.
-#: gnucash/gnome/dialog-invoice.c:3668
+#: gnucash/gnome/dialog-invoice.c:3682
 #, c-format
 msgid "The following vendor document is due:"
 msgid_plural "The following %d vendor documents are due:"
 msgstr[0] "É devido o seguinte documento de fornecedor:"
 msgstr[1] "São devidos os seguintes %d documentos de fornecedor:"
 
-#: gnucash/gnome/dialog-invoice.c:3672
+#: gnucash/gnome/dialog-invoice.c:3686
 msgid "Due Bills Reminder"
 msgstr "Aviso de pagamentos devidos"
 
 #. Translators: %d is the number of invoices/credit notes due. This is a
 #. ngettext(3) message.
-#: gnucash/gnome/dialog-invoice.c:3679
+#: gnucash/gnome/dialog-invoice.c:3693
 #, c-format
 msgid "The following customer document is due:"
 msgid_plural "The following %d customer documents are due:"
 msgstr[0] "É devido o seguinte documento de cliente:"
 msgstr[1] "São devidos os seguintes %d documentos de cliente:"
 
-#: gnucash/gnome/dialog-invoice.c:3683
+#: gnucash/gnome/dialog-invoice.c:3697
 msgid "Due Invoices Reminder"
 msgstr "Lembrete de facturas devidas"
 
@@ -2546,7 +2549,7 @@ msgstr "Tem de escolher um titular para esta tarefa."
 msgid "Edit Job"
 msgstr "Editar tarefa"
 
-#: gnucash/gnome/dialog-job.c:251 gnucash/gnome-search/dialog-search.c:1086
+#: gnucash/gnome/dialog-job.c:251 gnucash/gnome-search/dialog-search.c:1095
 msgid "New Job"
 msgstr "Nova tarefa"
 
@@ -2603,19 +2606,19 @@ msgstr "Fechada"
 
 #: gnucash/gnome/dialog-lot-viewer.c:886
 #: gnucash/gtkbuilder/assistant-acct-period.glade:143
-#: gnucash/report/html-fonts.scm:69
-#: gnucash/report/reports/standard/register.scm:376
+#: gnucash/report/html-fonts.scm:93
+#: gnucash/report/reports/standard/register.scm:347
 msgid "Title"
 msgstr "Título"
 
 #: gnucash/gnome/dialog-lot-viewer.c:893 gnucash/gnome/dialog-lot-viewer.c:985
-#: gnucash/gnome-utils/gnc-tree-view-account.c:831
+#: gnucash/gnome-utils/gnc-tree-view-account.c:854
 #: gnucash/gnome-utils/gnc-tree-view-owner.c:457
 #: gnucash/gnome-utils/gnc-tree-view-owner.c:465
 #: gnucash/gnome-utils/gnc-tree-view-split-reg.c:3112
 #: gnucash/register/ledger-core/split-register-model.c:320
 #: gnucash/register/ledger-core/split-register-model.c:484
-#: gnucash/report/reports/standard/account-summary.scm:421
+#: gnucash/report/reports/standard/account-summary.scm:422
 #: gnucash/report/reports/standard/balance-forecast.scm:248
 #: gnucash/report/reports/standard/job-report.scm:206
 #: gnucash/report/reports/standard/new-owner-report.scm:58
@@ -2726,7 +2729,7 @@ msgstr ""
 "Por favor, especifique a taxa de câmbio."
 
 #: gnucash/gnome/dialog-payment.c:1269 gnucash/gnome/search-owner.c:211
-#: gnucash/gnome-search/dialog-search.c:1068
+#: gnucash/gnome-search/dialog-search.c:1077
 #: gnucash/gnome-utils/gnc-tree-view-split-reg.c:2783
 #: gnucash/gtkbuilder/dialog-customer.glade:479
 #: gnucash/gtkbuilder/dialog-customer-import-gui.glade:151
@@ -2745,7 +2748,7 @@ msgid "Customer"
 msgstr "Cliente"
 
 #: gnucash/gnome/dialog-payment.c:1273 gnucash/gnome/search-owner.c:212
-#: gnucash/gnome-search/dialog-search.c:1100
+#: gnucash/gnome-search/dialog-search.c:1109
 #: gnucash/gnome-utils/gnc-tree-view-split-reg.c:2794
 #: gnucash/gtkbuilder/dialog-customer-import-gui.glade:168
 #: gnucash/gtkbuilder/dialog-payment.glade:44
@@ -2759,7 +2762,7 @@ msgid "Vendor"
 msgstr "Fornecedor"
 
 #: gnucash/gnome/dialog-payment.c:1277 gnucash/gnome/search-owner.c:213
-#: gnucash/gnome-search/dialog-search.c:1072
+#: gnucash/gnome-search/dialog-search.c:1081
 #: gnucash/gtkbuilder/dialog-employee.glade:510
 #: gnucash/gtkbuilder/dialog-payment.glade:48
 #: gnucash/report/reports/standard/job-report.scm:513
@@ -2939,7 +2942,7 @@ msgid "Custom"
 msgstr "Personalizado"
 
 #: gnucash/gnome/dialog-print-check.c:2602
-#: gnucash/gtkbuilder/dialog-preferences.glade:3314
+#: gnucash/gtkbuilder/dialog-preferences.glade:3431
 #: gnucash/gtkbuilder/dialog-print-check.glade:264
 msgid "Top"
 msgstr "Topo"
@@ -2971,23 +2974,23 @@ msgstr "Linhas"
 msgid "Cols"
 msgstr "Colunas"
 
-#: gnucash/gnome/dialog-report-style-sheet.c:171
+#: gnucash/gnome/dialog-report-style-sheet.c:172
 #, c-format
 msgid "HTML Style Sheet Properties: %s"
 msgstr "Propriedades da folha de estilo HTML: %s"
 
-#: gnucash/gnome/dialog-report-style-sheet.c:265
+#: gnucash/gnome/dialog-report-style-sheet.c:269
 msgid "You must provide a name for the new style sheet."
 msgstr "Tem de fornecer um nome para a nova folha de estilo."
 
-#: gnucash/gnome/dialog-report-style-sheet.c:516
+#: gnucash/gnome/dialog-report-style-sheet.c:520
 msgid "Style Sheet Name"
 msgstr "Nome da folha de estilo"
 
 #: gnucash/gnome/dialog-sx-editor2.c:164 gnucash/gnome/dialog-sx-editor.c:167
 #: gnucash/gnome/gnc-plugin-page-sx-list.c:150
 #: gnucash/gnome/window-reconcile2.c:2161 gnucash/gnome/window-reconcile.c:2382
-#: gnucash/gnome-utils/gnc-main-window.c:270
+#: gnucash/gnome-utils/gnc-main-window.c:273
 #: gnucash/gtkbuilder/dialog-billterms.glade:677
 #: gnucash/gtkbuilder/dialog-commodities.glade:155
 #: gnucash/gtkbuilder/dialog-price.glade:872
@@ -3003,12 +3006,12 @@ msgid "_Transaction"
 msgstr "_Transacção"
 
 #: gnucash/gnome/dialog-sx-editor2.c:166 gnucash/gnome/dialog-sx-editor.c:169
-#: gnucash/gnome-utils/gnc-main-window.c:271
+#: gnucash/gnome-utils/gnc-main-window.c:274
 msgid "_View"
 msgstr "_Ver"
 
 #: gnucash/gnome/dialog-sx-editor2.c:167 gnucash/gnome/dialog-sx-editor.c:170
-#: gnucash/gnome-utils/gnc-main-window.c:272
+#: gnucash/gnome-utils/gnc-main-window.c:275
 msgid "_Actions"
 msgstr "_Acções"
 
@@ -3188,7 +3191,7 @@ msgid "Created"
 msgstr "Criada"
 
 #: gnucash/gnome/dialog-sx-since-last-run.c:468
-#: gnucash/gtkbuilder/dialog-preferences.glade:1590
+#: gnucash/gtkbuilder/dialog-preferences.glade:1707
 #: gnucash/report/reports/standard/balsheet-pnl.scm:241
 #: gnucash/report/trep-engine.scm:577
 msgid "Never"
@@ -3218,12 +3221,12 @@ msgstr[1] ""
 "(%d transacções criadas automaticamente)"
 
 #: gnucash/gnome/dialog-sx-since-last-run.c:1005
-#: gnucash/gnome-search/dialog-search.c:1092
+#: gnucash/gnome-search/dialog-search.c:1101
 msgid "Transaction"
 msgstr "Transacção"
 
 #: gnucash/gnome/dialog-sx-since-last-run.c:1021
-#: gnucash/gtkbuilder/gnc-plugin-page-register2.glade:617
+#: gnucash/gtkbuilder/gnc-plugin-page-register2.glade:664
 #: gnucash/gtkbuilder/gnc-plugin-page-register.glade:508
 msgid "Status"
 msgstr "Estado"
@@ -3241,7 +3244,7 @@ msgid "Form Line Data: "
 msgstr "Dados de linha de formulário:"
 
 #: gnucash/gnome/dialog-tax-info.c:291
-#: gnucash/report/reports/standard/account-summary.scm:406
+#: gnucash/report/reports/standard/account-summary.scm:407
 msgid "Code"
 msgstr "Código"
 
@@ -3293,7 +3296,7 @@ msgstr "Tem de indicar uma morada para pagamento."
 msgid "Edit Vendor"
 msgstr "Editar fornecedor"
 
-#: gnucash/gnome/dialog-vendor.c:308 gnucash/gnome-search/dialog-search.c:1102
+#: gnucash/gnome/dialog-vendor.c:308 gnucash/gnome-search/dialog-search.c:1111
 #: gnucash/gtkbuilder/dialog-vendor.glade:31
 msgid "New Vendor"
 msgstr "Novo fornecedor"
@@ -3336,17 +3339,17 @@ msgstr "Procurar fornecedor"
 #: gnucash/report/reports/standard/balsheet-pnl.scm:1264
 #: gnucash/report/reports/standard/net-charts.scm:350
 #: gnucash/report/reports/standard/net-charts.scm:420
-#: gnucash/report/report-utilities.scm:110 libgnucash/engine/Account.cpp:170
-#: libgnucash/engine/Account.cpp:4322 libgnucash/engine/Scrub.c:449
+#: gnucash/report/report-utilities.scm:122 libgnucash/engine/Account.cpp:171
+#: libgnucash/engine/Account.cpp:4369 libgnucash/engine/Scrub.c:464
 msgid "Income"
 msgstr "Receita"
 
 #: gnucash/gnome/gnc-budget-view.c:502
 #: gnucash/import-export/qif-imp/qif-dialog-utils.scm:80
 #: gnucash/import-export/qif-imp/qif-dialog-utils.scm:85
-#: gnucash/report/reports/standard/budget-income-statement.scm:520
+#: gnucash/report/reports/standard/budget-income-statement.scm:521
 #: gnucash/report/reports/standard/income-statement.scm:512
-#: gnucash/report/report-utilities.scm:111
+#: gnucash/report/report-utilities.scm:123
 msgid "Expenses"
 msgstr "Despesas"
 
@@ -3368,7 +3371,7 @@ msgstr "Abrir um orçamento existente"
 
 #: gnucash/gnome/gnc-budget-view.c:1652 gnucash/gnome/window-reconcile2.c:1069
 #: gnucash/gnome/window-reconcile.c:1122
-#: gnucash/gnome-utils/gnc-tree-view-account.c:900
+#: gnucash/gnome-utils/gnc-tree-view-account.c:923
 #: gnucash/report/html-acct-table.scm:793 gnucash/report/reports/aging.scm:543
 #: gnucash/report/reports/aging.scm:830
 #: gnucash/report/reports/locale-specific/de_DE/taxtxf.scm:294
@@ -3376,8 +3379,8 @@ msgstr "Abrir um orçamento existente"
 #: gnucash/report/reports/standard/budget-flow.scm:168
 #: gnucash/report/reports/standard/budget-flow.scm:247
 #: gnucash/report/reports/standard/budget.scm:511
-#: gnucash/report/reports/standard/customer-summary.scm:476
 #: gnucash/report/reports/standard/customer-summary.scm:478
+#: gnucash/report/reports/standard/customer-summary.scm:480
 #: gnucash/report/reports/standard/invoice.scm:104
 #: gnucash/report/reports/standard/invoice.scm:252
 #: gnucash/report/reports/standard/new-aging.scm:200
@@ -3415,7 +3418,7 @@ msgstr "Abrir um ficheiro existente do GnuCash"
 
 #: gnucash/gnome/gnc-plugin-basic-commands.c:121
 #: gnucash/gnome-utils/gnc-file.c:100 gnucash/gnome-utils/gnc-file.c:666
-#: gnucash/gnome-utils/gnc-main-window.c:1294
+#: gnucash/gnome-utils/gnc-main-window.c:1308
 #: gnucash/html/gnc-html-webkit1.c:1198
 msgid "_Save"
 msgstr "_Gravar"
@@ -3650,8 +3653,9 @@ msgstr "Seleccionar um orçamento"
 
 #: gnucash/gnome/gnc-plugin-budget.c:290
 #: gnucash/gnome-search/search-account.c:238
-#: gnucash/gnome-utils/dialog-account.c:680
+#: gnucash/gnome-utils/dialog-account.c:723
 #: gnucash/gnome-utils/gnc-gui-query.c:297
+#: gnucash/gnome-utils/gnc-main-window.c:1449
 #: gnucash/gtkbuilder/assistant-xml-encoding.glade:217
 #: gnucash/gtkbuilder/dialog-account.glade:35
 #: gnucash/gtkbuilder/dialog-account.glade:832
@@ -3674,7 +3678,7 @@ msgstr "Seleccionar um orçamento"
 #: gnucash/gtkbuilder/dialog-import.glade:61
 #: gnucash/gtkbuilder/dialog-import.glade:191
 #: gnucash/gtkbuilder/dialog-import.glade:349
-#: gnucash/gtkbuilder/dialog-import.glade:1034
+#: gnucash/gtkbuilder/dialog-import.glade:1050
 #: gnucash/gtkbuilder/dialog-invoice.glade:691
 #: gnucash/gtkbuilder/dialog-invoice.glade:1214
 #: gnucash/gtkbuilder/dialog-job.glade:57
@@ -3703,12 +3707,12 @@ msgstr "Seleccionar um orçamento"
 #: gnucash/gtkbuilder/gnc-plugin-page-budget.glade:451
 #: gnucash/gtkbuilder/gnc-plugin-page-budget.glade:897
 #: gnucash/gtkbuilder/gnc-plugin-page-register2.glade:45
-#: gnucash/gtkbuilder/gnc-plugin-page-register2.glade:199
-#: gnucash/gtkbuilder/gnc-plugin-page-register2.glade:706
+#: gnucash/gtkbuilder/gnc-plugin-page-register2.glade:246
+#: gnucash/gtkbuilder/gnc-plugin-page-register2.glade:753
 #: gnucash/gtkbuilder/gnc-plugin-page-register.glade:46
-#: gnucash/gtkbuilder/gnc-plugin-page-register.glade:603
-#: gnucash/gtkbuilder/gnc-plugin-page-register.glade:949
-#: gnucash/gtkbuilder/gnc-plugin-page-register.glade:1159
+#: gnucash/gtkbuilder/gnc-plugin-page-register.glade:597
+#: gnucash/gtkbuilder/gnc-plugin-page-register.glade:802
+#: gnucash/gtkbuilder/gnc-plugin-page-register.glade:1143
 #: gnucash/gtkbuilder/gnc-tree-view-owner.glade:39
 #: gnucash/gtkbuilder/window-autoclear.glade:38
 #: gnucash/gtkbuilder/window-reconcile.glade:36
@@ -4088,7 +4092,7 @@ msgstr "Renumerar os filhos da conta seleccionada"
 #: gnucash/gnome/gnc-plugin-page-owner-tree.c:185
 #: gnucash/gnome/gnc-plugin-page-register2.c:340
 #: gnucash/gnome/gnc-plugin-page-register.c:458
-#: gnucash/gnome-utils/gnc-main-window.c:342
+#: gnucash/gnome-utils/gnc-main-window.c:345
 msgid "_Filter By..."
 msgstr "_Filtrar por..."
 
@@ -4098,9 +4102,9 @@ msgstr "_Filtrar por..."
 #: gnucash/gnome/gnc-plugin-page-owner-tree.c:189
 #: gnucash/gnome/gnc-plugin-page-register2.c:344
 #: gnucash/gnome/gnc-plugin-page-register.c:462
-#: gnucash/gnome/gnc-plugin-page-report.c:1182
+#: gnucash/gnome/gnc-plugin-page-report.c:1226
 #: gnucash/gnome/gnc-plugin-page-sx-list.c:169
-#: gnucash/gnome-utils/gnc-main-window.c:346
+#: gnucash/gnome-utils/gnc-main-window.c:349
 msgid "_Refresh"
 msgstr "_Actualizar"
 
@@ -4109,9 +4113,9 @@ msgstr "_Actualizar"
 #: gnucash/gnome/gnc-plugin-page-owner-tree.c:190
 #: gnucash/gnome/gnc-plugin-page-register2.c:345
 #: gnucash/gnome/gnc-plugin-page-register.c:463
-#: gnucash/gnome/gnc-plugin-page-report.c:1183
+#: gnucash/gnome/gnc-plugin-page-report.c:1227
 #: gnucash/gnome/gnc-plugin-page-sx-list.c:170
-#: gnucash/gnome-utils/gnc-main-window.c:347
+#: gnucash/gnome-utils/gnc-main-window.c:350
 msgid "Refresh this window"
 msgstr "Actualizar esta janela"
 
@@ -4245,20 +4249,22 @@ msgstr "Nova"
 msgid "Delete"
 msgstr "Eliminar"
 
-#: gnucash/gnome/gnc-plugin-page-account-tree.c:440
-#: gnucash/gnome/gnc-plugin-page-register.c:1934
+#: gnucash/gnome/gnc-plugin-page-account-tree.c:454
+#: gnucash/gnome/gnc-plugin-page-account-tree.c:2001
+#: gnucash/gnome/gnc-plugin-page-register.c:1939
+#: gnucash/gnome/gnc-plugin-page-register.c:5022
 msgid "'Check & Repair' is currently running, do you want to abort it?"
 msgstr ""
 
-#: gnucash/gnome/gnc-plugin-page-account-tree.c:498
-#: gnucash/gnome/gnc-plugin-page-account-tree.c:504
+#: gnucash/gnome/gnc-plugin-page-account-tree.c:520
+#: gnucash/gnome/gnc-plugin-page-account-tree.c:526
 #: gnucash/gnome-utils/gnc-tree-view-split-reg.c:2829
 #: gnucash/gnome-utils/gnc-tree-view-split-reg.c:2831
 #: gnucash/gnome-utils/gnc-tree-view-split-reg.c:2833
 #: gnucash/gnome-utils/gnc-tree-view-split-reg.c:2835
 #: gnucash/gnome-utils/gnc-tree-view-split-reg.c:2846
 #: gnucash/gnome-utils/gnc-tree-view-split-reg.c:2850
-#: gnucash/gtkbuilder/dialog-preferences.glade:863
+#: gnucash/gtkbuilder/dialog-preferences.glade:980
 #: gnucash/report/report-core.scm:78
 #: gnucash/report/reports/example/average-balance.scm:92
 #: gnucash/report/reports/example/average-balance.scm:296
@@ -4284,7 +4290,7 @@ msgstr ""
 msgid "Accounts"
 msgstr "Contas"
 
-#: gnucash/gnome/gnc-plugin-page-account-tree.c:1407
+#: gnucash/gnome/gnc-plugin-page-account-tree.c:1429
 #, fuzzy, c-format
 msgid ""
 "Account %s does not have the same currency as the one you're moving "
@@ -4294,27 +4300,27 @@ msgstr ""
 "Está prestes a sobrescrever uma transacção existente. Tem a certeza que o "
 "quer fazer?"
 
-#: gnucash/gnome/gnc-plugin-page-account-tree.c:1415
+#: gnucash/gnome/gnc-plugin-page-account-tree.c:1437
 #, fuzzy
 msgid "_Pick another account"
 msgstr "_Seleccionar conta de transferência"
 
-#: gnucash/gnome/gnc-plugin-page-account-tree.c:1416
+#: gnucash/gnome/gnc-plugin-page-account-tree.c:1438
 msgid "_Do it anyway"
 msgstr ""
 
-#: gnucash/gnome/gnc-plugin-page-account-tree.c:1499
-#: gnucash/gnome/gnc-plugin-page-account-tree.c:1635
+#: gnucash/gnome/gnc-plugin-page-account-tree.c:1521
+#: gnucash/gnome/gnc-plugin-page-account-tree.c:1657
 #: gnucash/gnome/gnc-plugin-page-owner-tree.c:1094
 msgid "(no name)"
 msgstr "(sem nome)"
 
-#: gnucash/gnome/gnc-plugin-page-account-tree.c:1510
+#: gnucash/gnome/gnc-plugin-page-account-tree.c:1532
 #, c-format
 msgid "Deleting account %s"
 msgstr "A eliminar conta %s"
 
-#: gnucash/gnome/gnc-plugin-page-account-tree.c:1625
+#: gnucash/gnome/gnc-plugin-page-account-tree.c:1647
 msgid ""
 "The list below shows objects which make use of the account which you want to "
 "delete.\n"
@@ -4326,42 +4332,42 @@ msgstr ""
 "Primeiro tem de eliminar estes objectos ou modificá-los para que utilizem "
 "outra conta."
 
-#: gnucash/gnome/gnc-plugin-page-account-tree.c:1704
+#: gnucash/gnome/gnc-plugin-page-account-tree.c:1738
 #, c-format
 msgid "The account %s will be deleted."
 msgstr "A conta %s será eliminada."
 
-#: gnucash/gnome/gnc-plugin-page-account-tree.c:1713
+#: gnucash/gnome/gnc-plugin-page-account-tree.c:1747
 #, c-format
 msgid "All transactions in this account will be moved to the account %s."
 msgstr "Todas as transacções nesta conta serão movidas para a conta %s."
 
-#: gnucash/gnome/gnc-plugin-page-account-tree.c:1720
+#: gnucash/gnome/gnc-plugin-page-account-tree.c:1754
 #, c-format
 msgid "All transactions in this account will be deleted."
 msgstr "Todas as transacções nesta conta serão eliminadas."
 
-#: gnucash/gnome/gnc-plugin-page-account-tree.c:1729
+#: gnucash/gnome/gnc-plugin-page-account-tree.c:1763
 #, fuzzy, c-format
 msgid "Its sub-account will be moved to the account %s."
 msgstr "Todas as suas sub-contas serão movidas para a conta %s."
 
-#: gnucash/gnome/gnc-plugin-page-account-tree.c:1735
+#: gnucash/gnome/gnc-plugin-page-account-tree.c:1769
 #, fuzzy, c-format
 msgid "Its subaccount will be deleted."
 msgstr "Todas as suas sub-contas serão eliminadas."
 
-#: gnucash/gnome/gnc-plugin-page-account-tree.c:1739
+#: gnucash/gnome/gnc-plugin-page-account-tree.c:1773
 #, c-format
 msgid "All sub-account transactions will be moved to the account %s."
 msgstr "Todas as transacções da sub-conta serão movidas para a conta %s."
 
-#: gnucash/gnome/gnc-plugin-page-account-tree.c:1746
+#: gnucash/gnome/gnc-plugin-page-account-tree.c:1780
 #, c-format
 msgid "All sub-account transactions will be deleted."
 msgstr "Todas as transacções da sub-conta serão eliminadas."
 
-#: gnucash/gnome/gnc-plugin-page-account-tree.c:1752
+#: gnucash/gnome/gnc-plugin-page-account-tree.c:1786
 msgid "Are you sure you want to do this?"
 msgstr "Tem a certeza que quer eliminar esta linha?"
 
@@ -4437,7 +4443,7 @@ msgid "Refresh this window."
 msgstr "Actualizar esta janela"
 
 #: gnucash/gnome/gnc-plugin-page-budget.c:210
-#: gnucash/gnome/gnc-plugin-page-report.c:1088
+#: gnucash/gnome/gnc-plugin-page-report.c:1132
 #: gnucash/gtkbuilder/assistant-csv-export.glade:107
 #: gnucash/gtkbuilder/dialog-print-check.glade:643
 msgid "Options"
@@ -4509,8 +4515,8 @@ msgstr "Copiar"
 #: gnucash/gnome/gnc-plugin-page-invoice.c:135
 #: gnucash/gnome/gnc-plugin-page-register2.c:240
 #: gnucash/gnome/gnc-plugin-page-register.c:349
-#: gnucash/gnome/gnc-plugin-page-report.c:1177
-#: gnucash/gnome-utils/gnc-main-window.c:325
+#: gnucash/gnome/gnc-plugin-page-report.c:1221
+#: gnucash/gnome-utils/gnc-main-window.c:328
 msgid "_Paste"
 msgstr "Co_lar"
 
@@ -4572,12 +4578,12 @@ msgstr "Manter ordem normal de facturação"
 
 #: gnucash/gnome/gnc-plugin-page-invoice.c:248
 #: gnucash/gtkbuilder/assistant-stock-split.glade:123
-#: gnucash/gtkbuilder/dialog-account.glade:1744
+#: gnucash/gtkbuilder/dialog-account.glade:1761
 #: gnucash/gtkbuilder/dialog-price.glade:175
 #: gnucash/gtkbuilder/dialog-print-check.glade:701
-#: gnucash/gtkbuilder/gnc-plugin-page-register2.glade:79
-#: gnucash/gtkbuilder/gnc-plugin-page-register.glade:662
-#: gnucash/gtkbuilder/gnc-plugin-page-register.glade:985
+#: gnucash/gtkbuilder/gnc-plugin-page-register2.glade:94
+#: gnucash/gtkbuilder/gnc-plugin-page-register.glade:647
+#: gnucash/gtkbuilder/gnc-plugin-page-register.glade:861
 msgid "_Date"
 msgstr "_Data"
 
@@ -4586,7 +4592,7 @@ msgid "Sort by date"
 msgstr "Ordenar por data"
 
 #: gnucash/gnome/gnc-plugin-page-invoice.c:249
-#: gnucash/gtkbuilder/gnc-plugin-page-register.glade:681
+#: gnucash/gtkbuilder/gnc-plugin-page-register.glade:880
 msgid "Date of _Entry"
 msgstr "Data de _registo"
 
@@ -4616,7 +4622,7 @@ msgid "Sort by price"
 msgstr "Ordenar por preço"
 
 #: gnucash/gnome/gnc-plugin-page-invoice.c:252
-#: gnucash/gtkbuilder/gnc-plugin-page-register.glade:776
+#: gnucash/gtkbuilder/gnc-plugin-page-register.glade:975
 msgid "Descri_ption"
 msgstr "D_escrição"
 
@@ -5312,36 +5318,36 @@ msgstr "_Imprimir cheques..."
 
 #: gnucash/gnome/gnc-plugin-page-register2.c:230
 #: gnucash/gnome/gnc-plugin-page-register.c:339
-#: gnucash/gnome/gnc-plugin-page-report.c:1167
-#: gnucash/gnome-utils/gnc-main-window.c:315
+#: gnucash/gnome/gnc-plugin-page-report.c:1211
+#: gnucash/gnome-utils/gnc-main-window.c:318
 msgid "Cu_t"
 msgstr "Cor_tar"
 
 #: gnucash/gnome/gnc-plugin-page-register2.c:231
 #: gnucash/gnome/gnc-plugin-page-register.c:340
-#: gnucash/gnome/gnc-plugin-page-report.c:1168
-#: gnucash/gnome-utils/gnc-main-window.c:316
+#: gnucash/gnome/gnc-plugin-page-report.c:1212
+#: gnucash/gnome-utils/gnc-main-window.c:319
 msgid "Cut the current selection and copy it to clipboard"
 msgstr "Cortar a selecção actual para a área de transferência"
 
 #: gnucash/gnome/gnc-plugin-page-register2.c:235
 #: gnucash/gnome/gnc-plugin-page-register.c:344
-#: gnucash/gnome/gnc-plugin-page-report.c:1172
-#: gnucash/gnome-utils/gnc-main-window.c:320
+#: gnucash/gnome/gnc-plugin-page-report.c:1216
+#: gnucash/gnome-utils/gnc-main-window.c:323
 msgid "_Copy"
 msgstr "_Copiar"
 
 #: gnucash/gnome/gnc-plugin-page-register2.c:236
 #: gnucash/gnome/gnc-plugin-page-register.c:345
-#: gnucash/gnome/gnc-plugin-page-report.c:1173
-#: gnucash/gnome-utils/gnc-main-window.c:321
+#: gnucash/gnome/gnc-plugin-page-report.c:1217
+#: gnucash/gnome-utils/gnc-main-window.c:324
 msgid "Copy the current selection to clipboard"
 msgstr "Copiar a selecção actual para a área de transferência"
 
 #: gnucash/gnome/gnc-plugin-page-register2.c:241
 #: gnucash/gnome/gnc-plugin-page-register.c:350
-#: gnucash/gnome/gnc-plugin-page-report.c:1178
-#: gnucash/gnome-utils/gnc-main-window.c:326
+#: gnucash/gnome/gnc-plugin-page-report.c:1222
+#: gnucash/gnome-utils/gnc-main-window.c:329
 msgid "Paste the clipboard content at the cursor position"
 msgstr "Colar a área de transferência na posição do cursor"
 
@@ -5560,7 +5566,7 @@ msgstr ""
 
 #: gnucash/gnome/gnc-plugin-page-register2.c:458
 #: gnucash/gnome/gnc-plugin-page-register.c:581
-#: gnucash/gtkbuilder/dialog-preferences.glade:2657
+#: gnucash/gtkbuilder/dialog-preferences.glade:2774
 msgid "Transaction _Journal"
 msgstr "_Diário de transacções"
 
@@ -5571,7 +5577,7 @@ msgstr "Mostrar transacções expandidas com todas as parcelas"
 
 #: gnucash/gnome/gnc-plugin-page-register2.c:502
 #: gnucash/gnome/gnc-plugin-page-register.c:625
-#: gnucash/gnome-search/dialog-search.c:1096
+#: gnucash/gnome-search/dialog-search.c:1105
 msgid "Split"
 msgstr "Parcelas"
 
@@ -5589,7 +5595,7 @@ msgstr "Agendar"
 
 #: gnucash/gnome/gnc-plugin-page-register2.c:507
 #: gnucash/gnome/gnc-plugin-page-register.c:630
-#: gnucash/gnome/window-autoclear.c:91
+#: gnucash/gnome/window-autoclear.c:88
 msgid "Auto-clear"
 msgstr "Auto-confirmar"
 
@@ -5606,13 +5612,13 @@ msgstr "Diário geral 2"
 #. Translators: %s is the name
 #. of the tab page
 #: gnucash/gnome/gnc-plugin-page-register2.c:1620
-#: gnucash/gnome/gnc-plugin-page-register.c:1974
+#: gnucash/gnome/gnc-plugin-page-register.c:1980
 #, c-format
 msgid "Save changes to %s?"
 msgstr "Gravar alterações em %s?"
 
 #: gnucash/gnome/gnc-plugin-page-register2.c:1624
-#: gnucash/gnome/gnc-plugin-page-register.c:1978
+#: gnucash/gnome/gnc-plugin-page-register.c:1984
 msgid ""
 "This register has pending changes to a transaction. Would you like to save "
 "the changes to this transaction, discard the transaction, or cancel the "
@@ -5622,12 +5628,12 @@ msgstr ""
 "alterações a esta transacção, descartar a transacção ou cancelar a operação?"
 
 #: gnucash/gnome/gnc-plugin-page-register2.c:1627
-#: gnucash/gnome/gnc-plugin-page-register.c:1981
+#: gnucash/gnome/gnc-plugin-page-register.c:1987
 msgid "_Discard Transaction"
 msgstr "_Descartar transacção"
 
 #: gnucash/gnome/gnc-plugin-page-register2.c:1631
-#: gnucash/gnome/gnc-plugin-page-register.c:1985
+#: gnucash/gnome/gnc-plugin-page-register.c:1991
 msgid "_Save Transaction"
 msgstr "_Gravar transacção"
 
@@ -5636,35 +5642,35 @@ msgstr "_Gravar transacção"
 #: gnucash/gnome/gnc-plugin-page-register2.c:1707
 #: gnucash/gnome/gnc-plugin-page-register2.c:1730
 #: gnucash/gnome/gnc-plugin-page-register2.c:1778
-#: gnucash/gnome/gnc-plugin-page-register.c:2018
-#: gnucash/gnome/gnc-plugin-page-register.c:2053
-#: gnucash/gnome/gnc-plugin-page-register.c:2066
-#: gnucash/gnome/gnc-plugin-page-register.c:2129
-#: gnucash/gnome/gnc-plugin-page-register.c:2234
-#: gnucash/gnome/gnc-plugin-page-register.c:2372
+#: gnucash/gnome/gnc-plugin-page-register.c:2024
+#: gnucash/gnome/gnc-plugin-page-register.c:2059
+#: gnucash/gnome/gnc-plugin-page-register.c:2072
+#: gnucash/gnome/gnc-plugin-page-register.c:2135
+#: gnucash/gnome/gnc-plugin-page-register.c:2240
+#: gnucash/gnome/gnc-plugin-page-register.c:2378
 msgid "unknown"
 msgstr "desconhecido"
 
 #: gnucash/gnome/gnc-plugin-page-register2.c:1681
 #: gnucash/gnome/gnc-plugin-page-register2.c:2416
 #: gnucash/gnome/gnc-plugin-page-register.c:906
-#: gnucash/gnome/gnc-plugin-page-register.c:2039
-#: gnucash/gnome/gnc-plugin-page-register.c:3511
+#: gnucash/gnome/gnc-plugin-page-register.c:2045
+#: gnucash/gnome/gnc-plugin-page-register.c:3517
 #: gnucash/report/reports/standard/general-journal.scm:36
 msgid "General Journal"
 msgstr "Diário geral"
 
 #: gnucash/gnome/gnc-plugin-page-register2.c:1683
 #: gnucash/gnome/gnc-plugin-page-register2.c:2422
-#: gnucash/gnome/gnc-plugin-page-register.c:2041
-#: gnucash/gnome/gnc-plugin-page-register.c:3517
+#: gnucash/gnome/gnc-plugin-page-register.c:2047
+#: gnucash/gnome/gnc-plugin-page-register.c:3523
 msgid "Portfolio"
 msgstr "Portfólio"
 
 #: gnucash/gnome/gnc-plugin-page-register2.c:1685
 #: gnucash/gnome/gnc-plugin-page-register2.c:2428
-#: gnucash/gnome/gnc-plugin-page-register.c:2043
-#: gnucash/gnome/gnc-plugin-page-register.c:3523
+#: gnucash/gnome/gnc-plugin-page-register.c:2049
+#: gnucash/gnome/gnc-plugin-page-register.c:3529
 msgid "Search Results"
 msgstr "Resultados da procura"
 
@@ -5673,35 +5679,35 @@ msgid "General Journal Report"
 msgstr "Relatório do diário geral"
 
 #: gnucash/gnome/gnc-plugin-page-register2.c:2424
-#: gnucash/gnome/gnc-plugin-page-register.c:3519
+#: gnucash/gnome/gnc-plugin-page-register.c:3525
 msgid "Portfolio Report"
 msgstr "Relatório de Portfólio"
 
 #: gnucash/gnome/gnc-plugin-page-register2.c:2430
-#: gnucash/gnome/gnc-plugin-page-register.c:3525
+#: gnucash/gnome/gnc-plugin-page-register.c:3531
 msgid "Search Results Report"
 msgstr "Relatório de resultados da procura"
 
 #: gnucash/gnome/gnc-plugin-page-register2.c:2434
-#: gnucash/gnome/gnc-plugin-page-register.c:3529
-#: gnucash/gtkbuilder/dialog-preferences.glade:2567
+#: gnucash/gnome/gnc-plugin-page-register.c:3535
+#: gnucash/gtkbuilder/dialog-preferences.glade:2684
 #: gnucash/report/reports/standard/general-journal.scm:37
 #: gnucash/report/reports/standard/register.scm:64
 msgid "Register"
 msgstr "Diário"
 
 #: gnucash/gnome/gnc-plugin-page-register2.c:2436
-#: gnucash/report/reports/standard/register.scm:378
+#: gnucash/report/reports/standard/register.scm:349
 msgid "Register Report"
 msgstr "Relatório de registo"
 
 #: gnucash/gnome/gnc-plugin-page-register2.c:2452
-#: gnucash/gnome/gnc-plugin-page-register.c:3547
+#: gnucash/gnome/gnc-plugin-page-register.c:3553
 msgid "and subaccounts"
 msgstr "e sub-contas"
 
 #: gnucash/gnome/gnc-plugin-page-register2.c:2484
-#: gnucash/gnome/gnc-plugin-page-register.c:3576
+#: gnucash/gnome/gnc-plugin-page-register.c:3582
 #: gnucash/gnome-utils/gnc-tree-model-split-reg.c:2874
 #: gnucash/gnome-utils/gnc-tree-model-split-reg.c:2893
 #: gnucash/gnome-utils/gnc-tree-model-split-reg.c:2911
@@ -5713,34 +5719,34 @@ msgstr "e sub-contas"
 #: gnucash/register/ledger-core/split-register.c:2658
 #: gnucash/register/ledger-core/split-register.c:2676
 #: gnucash/report/reports/standard/general-journal.scm:83
-#: gnucash/report/reports/standard/register.scm:372
-#: gnucash/report/reports/standard/trial-balance.scm:595
+#: gnucash/report/reports/standard/register.scm:343
+#: gnucash/report/reports/standard/trial-balance.scm:596
 #: gnucash/report/trep-engine.scm:1357 gnucash/report/trep-engine.scm:1374
-#: libgnucash/engine/Account.cpp:177
+#: libgnucash/engine/Account.cpp:178
 msgid "Credit"
 msgstr "Crédito"
 
 #: gnucash/gnome/gnc-plugin-page-register2.c:2487
-#: gnucash/gnome/gnc-plugin-page-register.c:3580
+#: gnucash/gnome/gnc-plugin-page-register.c:3586
 #: gnucash/gnome-utils/gnc-tree-view-split-reg.c:3099
 #: gnucash/gnome-utils/gnc-tree-view-split-reg.c:3104
 #: gnucash/gtkbuilder/dialog-payment.glade:296
 #: gnucash/register/ledger-core/split-register.c:2521
 #: gnucash/report/reports/standard/general-journal.scm:82
-#: gnucash/report/reports/standard/register.scm:370
-#: gnucash/report/reports/standard/trial-balance.scm:592
+#: gnucash/report/reports/standard/register.scm:341
+#: gnucash/report/reports/standard/trial-balance.scm:593
 #: gnucash/report/trep-engine.scm:1354 gnucash/report/trep-engine.scm:1371
-#: libgnucash/engine/Account.cpp:157
+#: libgnucash/engine/Account.cpp:158
 msgid "Debit"
 msgstr "Débito"
 
 #: gnucash/gnome/gnc-plugin-page-register2.c:2653
-#: gnucash/gnome/gnc-plugin-page-register.c:3713
+#: gnucash/gnome/gnc-plugin-page-register.c:3719
 msgid "Print checks from multiple accounts?"
 msgstr "Imprimir cheques de múltiplas contas?"
 
 #: gnucash/gnome/gnc-plugin-page-register2.c:2655
-#: gnucash/gnome/gnc-plugin-page-register.c:3715
+#: gnucash/gnome/gnc-plugin-page-register.c:3721
 msgid ""
 "This search result contains splits from more than one account. Do you want "
 "to print the checks even though they are not all from the same account?"
@@ -5749,12 +5755,12 @@ msgstr ""
 "imprimir os cheques, mesmo que não sejam todos da mesma conta?"
 
 #: gnucash/gnome/gnc-plugin-page-register2.c:2665
-#: gnucash/gnome/gnc-plugin-page-register.c:3725
+#: gnucash/gnome/gnc-plugin-page-register.c:3731
 msgid "_Print checks"
 msgstr "_Imprimir cheques"
 
 #: gnucash/gnome/gnc-plugin-page-register2.c:2684
-#: gnucash/gnome/gnc-plugin-page-register.c:3744
+#: gnucash/gnome/gnc-plugin-page-register.c:3750
 msgid ""
 "You can only print checks from a bank account register or search results."
 msgstr ""
@@ -5762,15 +5768,15 @@ msgstr ""
 "procura."
 
 #: gnucash/gnome/gnc-plugin-page-register2.c:2896
-#: gnucash/gnome/gnc-plugin-page-register.c:3941
+#: gnucash/gnome/gnc-plugin-page-register.c:3947
 msgid "You cannot void a transaction with reconciled or cleared splits."
 msgstr ""
 "Não pode esvaziar uma transacção com parcelas recociliadas ou confirmadas."
 
 #. Translators: The %s is the name of the plugin page
 #: gnucash/gnome/gnc-plugin-page-register2.c:3039
-#: gnucash/gnome/gnc-plugin-page-register.c:4212
-#: gnucash/gnome-utils/gnc-tree-view-account.c:2296
+#: gnucash/gnome/gnc-plugin-page-register.c:4218
+#: gnucash/gnome-utils/gnc-tree-view-account.c:2327
 #: gnucash/gnome-utils/gnc-tree-view-owner.c:1175
 #, c-format
 msgid "Filter %s by..."
@@ -5804,7 +5810,7 @@ msgid "Remo_ve Other Splits"
 msgstr "Remo_ver outras parcelas"
 
 #: gnucash/gnome/gnc-plugin-page-register.c:454
-#: gnucash/gnome-utils/gnc-main-window.c:338
+#: gnucash/gnome-utils/gnc-main-window.c:341
 msgid "_Sort By..."
 msgstr "_Ordenar por..."
 
@@ -5827,71 +5833,71 @@ msgid ""
 msgstr ""
 "Tentou abrir uma conta no diário antigo enquanto está aberta no novo diário."
 
-#: gnucash/gnome/gnc-plugin-page-register.c:3378
+#: gnucash/gnome/gnc-plugin-page-register.c:3384
 msgid "Filter By:"
 msgstr "Filtrar por:"
 
-#: gnucash/gnome/gnc-plugin-page-register.c:3392
+#: gnucash/gnome/gnc-plugin-page-register.c:3398
 msgid "Start Date:"
 msgstr "Data inicial:"
 
-#: gnucash/gnome/gnc-plugin-page-register.c:3398
+#: gnucash/gnome/gnc-plugin-page-register.c:3404
 msgid "Show previous number of days:"
 msgstr "Mostrar número prévio de dias:"
 
-#: gnucash/gnome/gnc-plugin-page-register.c:3405
+#: gnucash/gnome/gnc-plugin-page-register.c:3411
 msgid "End Date:"
 msgstr "Data final:"
 
-#: gnucash/gnome/gnc-plugin-page-register.c:3415
+#: gnucash/gnome/gnc-plugin-page-register.c:3421
 #: gnucash/report/trep-engine.scm:124 gnucash/report/trep-engine.scm:398
 msgid "Unreconciled"
 msgstr "Não reconciliada"
 
-#: gnucash/gnome/gnc-plugin-page-register.c:3417
+#: gnucash/gnome/gnc-plugin-page-register.c:3423
 #: gnucash/gnome-search/search-reconciled.c:218
-#: gnucash/gnome-utils/gnc-tree-view-account.c:852
+#: gnucash/gnome-utils/gnc-tree-view-account.c:875
 #: gnucash/report/trep-engine.scm:125 gnucash/report/trep-engine.scm:403
 msgid "Cleared"
 msgstr "Confirmada"
 
-#: gnucash/gnome/gnc-plugin-page-register.c:3419
+#: gnucash/gnome/gnc-plugin-page-register.c:3425
 #: gnucash/gnome-search/search-reconciled.c:221
-#: gnucash/gnome-utils/gnc-tree-view-account.c:866
+#: gnucash/gnome-utils/gnc-tree-view-account.c:889
 #: gnucash/import-export/csv-imp/gnc-imp-props-tx.cpp:70
 #: gnucash/import-export/import-match-picker.c:437
 #: gnucash/report/trep-engine.scm:126 gnucash/report/trep-engine.scm:408
 msgid "Reconciled"
 msgstr "Reconciliada"
 
-#: gnucash/gnome/gnc-plugin-page-register.c:3421
+#: gnucash/gnome/gnc-plugin-page-register.c:3427
 #: gnucash/gnome-search/search-reconciled.c:224
 #: gnucash/report/trep-engine.scm:127
 msgid "Frozen"
 msgstr "Suspensa"
 
-#: gnucash/gnome/gnc-plugin-page-register.c:3423
+#: gnucash/gnome/gnc-plugin-page-register.c:3429
 #: gnucash/gnome-search/search-reconciled.c:227
 #: gnucash/report/trep-engine.scm:128
 msgid "Voided"
 msgstr "Esvaziada"
 
-#: gnucash/gnome/gnc-plugin-page-register.c:3427
-#: gnucash/gnome/gnc-plugin-page-register.c:3429
+#: gnucash/gnome/gnc-plugin-page-register.c:3433
+#: gnucash/gnome/gnc-plugin-page-register.c:3435
 msgid "Hide:"
 msgstr "Ocultar:"
 
-#: gnucash/gnome/gnc-plugin-page-register.c:3429
+#: gnucash/gnome/gnc-plugin-page-register.c:3435
 msgid "Show:"
 msgstr "Mostrar:"
 
-#: gnucash/gnome/gnc-plugin-page-register.c:3513
-#: gnucash/gnome/gnc-plugin-page-register.c:3531
+#: gnucash/gnome/gnc-plugin-page-register.c:3519
+#: gnucash/gnome/gnc-plugin-page-register.c:3537
 #: gnucash/report/reports/standard/transaction.scm:33
 msgid "Transaction Report"
 msgstr "Relatório de transacções"
 
-#: gnucash/gnome/gnc-plugin-page-register.c:3948
+#: gnucash/gnome/gnc-plugin-page-register.c:3954
 #: gnucash/gnome/gnc-split-reg.c:1160
 #: gnucash/gnome-utils/gnc-tree-control-split-reg.c:68
 #, c-format
@@ -5899,24 +5905,24 @@ msgid "This transaction is marked read-only with the comment: '%s'"
 msgstr ""
 "Esta transacção está marcada como só de leitura com o comentário: \"%s\""
 
-#: gnucash/gnome/gnc-plugin-page-register.c:4028
+#: gnucash/gnome/gnc-plugin-page-register.c:4034
 #: gnucash/gnome/gnc-split-reg.c:1131
 #: gnucash/gnome-utils/gnc-tree-control-split-reg.c:1121
 msgid "A reversing entry has already been created for this transaction."
 msgstr "Já foi criada uma entrada reversa para esta transacção."
 
-#: gnucash/gnome/gnc-plugin-page-register.c:4035
+#: gnucash/gnome/gnc-plugin-page-register.c:4041
 #, fuzzy
 msgid "Reverse Transaction"
 msgstr "Adicionar transacção _reversa"
 
-#: gnucash/gnome/gnc-plugin-page-register.c:4036
+#: gnucash/gnome/gnc-plugin-page-register.c:4042
 #, fuzzy
 msgid "New Transaction Information"
 msgstr "Informação da transacção"
 
 #. Translators: The %s is the name of the plugin page
-#: gnucash/gnome/gnc-plugin-page-register.c:4124
+#: gnucash/gnome/gnc-plugin-page-register.c:4130
 #, c-format
 msgid "Sort %s by..."
 msgstr "Ordenar %s por..."
@@ -5924,48 +5930,48 @@ msgstr "Ordenar %s por..."
 #. Translators: %s refer to the following in
 #. order: invoice type, invoice ID, owner name,
 #. posted date, amount
-#: gnucash/gnome/gnc-plugin-page-register.c:4702
+#: gnucash/gnome/gnc-plugin-page-register.c:4708
 #, c-format
 msgid "%s %s from %s, posted %s, amount %s"
 msgstr ""
 
-#: gnucash/gnome/gnc-plugin-page-register.c:4711
+#: gnucash/gnome/gnc-plugin-page-register.c:4717
 #, fuzzy
 #| msgid "Select Account"
 msgid "Select document"
 msgstr "Seleccionar conta"
 
-#: gnucash/gnome/gnc-plugin-page-register.c:4712
+#: gnucash/gnome/gnc-plugin-page-register.c:4718
 msgid "Several documents are linked with this transaction. Please choose one:"
 msgstr ""
 
-#: gnucash/gnome/gnc-plugin-page-register.c:4713
+#: gnucash/gnome/gnc-plugin-page-register.c:4719
 #: gnucash/gnome-search/dialog-search.c:323
 #: gnucash/gnome-utils/gnc-cell-renderer-date.c:172
 msgid "Select"
 msgstr "Seleccionar"
 
-#: gnucash/gnome/gnc-plugin-page-register.c:4761
+#: gnucash/gnome/gnc-plugin-page-register.c:4767
 #, fuzzy
 #| msgid "Post Date"
 msgid "Go to Date"
 msgstr "Data de emissão"
 
-#: gnucash/gnome/gnc-plugin-page-register.c:5016
+#: gnucash/gnome/gnc-plugin-page-register.c:5045
 #, c-format
 msgid "Checking splits in current register: %u of %u"
 msgstr "A verificar divisões no diário actual: %u de %u"
 
-#: gnucash/gnome/gnc-plugin-page-report.c:287
-#: gnucash/gnome/gnc-plugin-page-report.c:288
+#: gnucash/gnome/gnc-plugin-page-report.c:300
+#: gnucash/gnome/gnc-plugin-page-report.c:301
 msgid "The numeric ID of the report."
 msgstr "A ID numérica do relatório."
 
-#: gnucash/gnome/gnc-plugin-page-report.c:1086
+#: gnucash/gnome/gnc-plugin-page-report.c:1130
 msgid "Print"
 msgstr "Imprimir"
 
-#: gnucash/gnome/gnc-plugin-page-report.c:1087
+#: gnucash/gnome/gnc-plugin-page-report.c:1131
 #: gnucash/gnome-utils/dialog-file-access.c:319
 #: gnucash/gnome-utils/gnc-file.c:109 gnucash/gnome-utils/gnc-file.c:351
 msgid "Export"
@@ -5973,21 +5979,21 @@ msgstr "Exportar"
 
 #. Translators: This string is meant to be a short alternative for "Save Report Configuration"
 #. * to be used as toolbar button label.
-#: gnucash/gnome/gnc-plugin-page-report.c:1091
+#: gnucash/gnome/gnc-plugin-page-report.c:1135
 msgid "Save Config"
 msgstr "Gravar configuração"
 
 #. Translators: This string is meant to be a short alternative for "Save Report Configuration As..."
 #. * to be used as toolbar button label.
-#: gnucash/gnome/gnc-plugin-page-report.c:1094
+#: gnucash/gnome/gnc-plugin-page-report.c:1138
 msgid "Save Config As..."
 msgstr "Gravar configuração como..."
 
-#: gnucash/gnome/gnc-plugin-page-report.c:1095
+#: gnucash/gnome/gnc-plugin-page-report.c:1139
 msgid "Make Pdf"
 msgstr "Criar PDF"
 
-#: gnucash/gnome/gnc-plugin-page-report.c:1147
+#: gnucash/gnome/gnc-plugin-page-report.c:1191
 #, fuzzy, c-format
 msgid ""
 "Update the current report's saved configuration. The report configuration "
@@ -5996,7 +6002,7 @@ msgstr ""
 "Actualizar a configuração de relatório actualmente gravada. O relatório será "
 "gravado no ficheiro %s "
 
-#: gnucash/gnome/gnc-plugin-page-report.c:1150
+#: gnucash/gnome/gnc-plugin-page-report.c:1194
 #, fuzzy, c-format
 msgid ""
 "Add the current report's configuration to the `Reports->Saved Report "
@@ -6005,98 +6011,98 @@ msgstr ""
 "Adicionar a configuração de relatório ao menu \"Configurações de relatório "
 "gravadas\". O relatório será gravado no ficheiro %s "
 
-#: gnucash/gnome/gnc-plugin-page-report.c:1156
+#: gnucash/gnome/gnc-plugin-page-report.c:1200
 msgid "_Print Report..."
 msgstr "Im_primir relatório..."
 
-#: gnucash/gnome/gnc-plugin-page-report.c:1157
+#: gnucash/gnome/gnc-plugin-page-report.c:1201
 msgid "Print the current report"
 msgstr "Imprimir o relatório actual"
 
-#: gnucash/gnome/gnc-plugin-page-report.c:1161
+#: gnucash/gnome/gnc-plugin-page-report.c:1205
 msgid "Export as P_DF..."
 msgstr "Exportar como P_DF..."
 
-#: gnucash/gnome/gnc-plugin-page-report.c:1162
+#: gnucash/gnome/gnc-plugin-page-report.c:1206
 msgid "Export the current report as a PDF document"
 msgstr "Exportar o relatório actual como documento PDF"
 
-#: gnucash/gnome/gnc-plugin-page-report.c:1187
+#: gnucash/gnome/gnc-plugin-page-report.c:1231
 msgid "Save _Report Configuration"
 msgstr "Gravar configuração de _relatório"
 
-#: gnucash/gnome/gnc-plugin-page-report.c:1191
+#: gnucash/gnome/gnc-plugin-page-report.c:1235
 msgid "Save Report Configuration As..."
 msgstr "Gravar configuração de relatório como..."
 
-#: gnucash/gnome/gnc-plugin-page-report.c:1195
+#: gnucash/gnome/gnc-plugin-page-report.c:1239
 msgid "Export _Report"
 msgstr "Exportar _relatório"
 
-#: gnucash/gnome/gnc-plugin-page-report.c:1196
+#: gnucash/gnome/gnc-plugin-page-report.c:1240
 msgid "Export HTML-formatted report to file"
 msgstr "Exportar relatório em formato HTML para um ficheiro"
 
-#: gnucash/gnome/gnc-plugin-page-report.c:1200
+#: gnucash/gnome/gnc-plugin-page-report.c:1244
 msgid "_Report Options"
 msgstr "Opções do _relatório"
 
-#: gnucash/gnome/gnc-plugin-page-report.c:1201
-#: gnucash/report/html-utilities.scm:252
+#: gnucash/gnome/gnc-plugin-page-report.c:1245
+#: gnucash/report/html-utilities.scm:276
 msgid "Edit report options"
 msgstr "Editar opções do relatório"
 
-#: gnucash/gnome/gnc-plugin-page-report.c:1206
+#: gnucash/gnome/gnc-plugin-page-report.c:1250
 msgid "Back"
 msgstr "Recuar"
 
-#: gnucash/gnome/gnc-plugin-page-report.c:1207
+#: gnucash/gnome/gnc-plugin-page-report.c:1251
 msgid "Move back one step in the history"
 msgstr "Recuar um passo no histórico"
 
-#: gnucash/gnome/gnc-plugin-page-report.c:1211
+#: gnucash/gnome/gnc-plugin-page-report.c:1255
 msgid "Forward"
 msgstr "Avançar"
 
-#: gnucash/gnome/gnc-plugin-page-report.c:1212
+#: gnucash/gnome/gnc-plugin-page-report.c:1256
 msgid "Move forward one step in the history"
 msgstr "Avançar um passo no histórico"
 
-#: gnucash/gnome/gnc-plugin-page-report.c:1216
+#: gnucash/gnome/gnc-plugin-page-report.c:1260
 msgid "Reload"
 msgstr "Recarregar"
 
-#: gnucash/gnome/gnc-plugin-page-report.c:1217
+#: gnucash/gnome/gnc-plugin-page-report.c:1261
 msgid "Reload the current page"
 msgstr "Recarregar a página actual"
 
-#: gnucash/gnome/gnc-plugin-page-report.c:1221
+#: gnucash/gnome/gnc-plugin-page-report.c:1265
 msgid "Stop"
 msgstr "Parar"
 
-#: gnucash/gnome/gnc-plugin-page-report.c:1222
+#: gnucash/gnome/gnc-plugin-page-report.c:1266
 msgid "Cancel outstanding HTML requests"
 msgstr "Cancelar pedidos HTML pendentes"
 
-#: gnucash/gnome/gnc-plugin-page-report.c:1469
-#: gnucash/gnome/gnc-plugin-page-report.c:1502
+#: gnucash/gnome/gnc-plugin-page-report.c:1513
+#: gnucash/gnome/gnc-plugin-page-report.c:1546
 msgid "HTML"
 msgstr "HTML"
 
-#: gnucash/gnome/gnc-plugin-page-report.c:1472
+#: gnucash/gnome/gnc-plugin-page-report.c:1516
 msgid "Choose export format"
 msgstr "Escolha o formato de exportação"
 
-#: gnucash/gnome/gnc-plugin-page-report.c:1473
+#: gnucash/gnome/gnc-plugin-page-report.c:1517
 msgid "Choose the export format for this report:"
 msgstr "Escolha o formato de exportação para este relatório:"
 
-#: gnucash/gnome/gnc-plugin-page-report.c:1513
+#: gnucash/gnome/gnc-plugin-page-report.c:1557
 #, c-format
 msgid "Save %s To File"
 msgstr "Gravar %s num ficheiro"
 
-#: gnucash/gnome/gnc-plugin-page-report.c:1542
+#: gnucash/gnome/gnc-plugin-page-report.c:1586
 #, c-format
 msgid ""
 "You cannot save to that filename.\n"
@@ -6107,41 +6113,41 @@ msgstr ""
 "\n"
 "%s"
 
-#: gnucash/gnome/gnc-plugin-page-report.c:1552
+#: gnucash/gnome/gnc-plugin-page-report.c:1596
 msgid "You cannot save to that file."
 msgstr "Não pode gravar nesse ficheiro."
 
-#: gnucash/gnome/gnc-plugin-page-report.c:1561
+#: gnucash/gnome/gnc-plugin-page-report.c:1605
 #: gnucash/gnome-utils/gnc-file.c:1300 gnucash/gnome-utils/gnc-file.c:1547
 #: gnucash/import-export/csv-exp/assistant-csv-export.c:741
 #, c-format
 msgid "The file %s already exists. Are you sure you want to overwrite it?"
 msgstr "O ficheiro %s já existe. Tem a certeza que o quer sobrescrever?"
 
-#: gnucash/gnome/gnc-plugin-page-report.c:1676
-#: gnucash/gnome/gnc-plugin-page-report.c:1700 gnucash/gnucash-commands.cpp:224
+#: gnucash/gnome/gnc-plugin-page-report.c:1720
+#: gnucash/gnome/gnc-plugin-page-report.c:1744 gnucash/gnucash-commands.cpp:224
 #: gnucash/gnucash-commands.cpp:252
 msgid ""
 "This report must be upgraded to return a document object with export-string "
 "or export-error."
 msgstr ""
 
-#: gnucash/gnome/gnc-plugin-page-report.c:1710
+#: gnucash/gnome/gnc-plugin-page-report.c:1754
 #, c-format
 msgid "Could not open the file %s. The error is: %s"
 msgstr "Impossível abrir o ficheiro %s. O erro é: %s"
 
-#: gnucash/gnome/gnc-plugin-page-report.c:1750
+#: gnucash/gnome/gnc-plugin-page-report.c:1794
 msgid "GnuCash-Report"
 msgstr "Relatório GnuCash"
 
-#: gnucash/gnome/gnc-plugin-page-report.c:1796
+#: gnucash/gnome/gnc-plugin-page-report.c:1840
 #: gnucash/gtkbuilder/business-prefs.glade:26
 #: gnucash/report/reports/standard/invoice.scm:903
 msgid "Printable Invoice"
 msgstr "Factura imprimível"
 
-#: gnucash/gnome/gnc-plugin-page-report.c:1797
+#: gnucash/gnome/gnc-plugin-page-report.c:1841
 #: gnucash/gtkbuilder/business-prefs.glade:29
 #: gnucash/report/reports/standard/taxinvoice.scm:295
 #: gnucash/report/reports/standard/taxinvoice.scm:297
@@ -6150,13 +6156,13 @@ msgstr "Factura imprimível"
 msgid "Tax Invoice"
 msgstr "Factura de imposto"
 
-#: gnucash/gnome/gnc-plugin-page-report.c:1798
+#: gnucash/gnome/gnc-plugin-page-report.c:1842
 #: gnucash/gtkbuilder/business-prefs.glade:32
 #: gnucash/report/reports/standard/invoice.scm:912
 msgid "Easy Invoice"
 msgstr "Factura fácil"
 
-#: gnucash/gnome/gnc-plugin-page-report.c:1799
+#: gnucash/gnome/gnc-plugin-page-report.c:1843
 #: gnucash/gtkbuilder/business-prefs.glade:35
 #: gnucash/report/reports/standard/invoice.scm:921
 msgid "Fancy Invoice"
@@ -6674,7 +6680,7 @@ msgstr ""
 msgid "You have not selected an owner"
 msgstr "Não seleccionou um titular"
 
-#: gnucash/gnome/search-owner.c:214 gnucash/gnome-search/dialog-search.c:1084
+#: gnucash/gnome/search-owner.c:214 gnucash/gnome-search/dialog-search.c:1093
 #: gnucash/gtkbuilder/dialog-invoice.glade:284
 #: gnucash/gtkbuilder/dialog-invoice.glade:506
 #: gnucash/gtkbuilder/dialog-invoice.glade:931
@@ -6720,19 +6726,11 @@ msgstr "Preço não existe: %s"
 msgid "Business"
 msgstr "Negócios"
 
-#: gnucash/gnome/window-autoclear.c:138
-msgid "Searching for splits to clear ..."
-msgstr "A procurar parcelas para confirmar..."
-
-#: gnucash/gnome/window-autoclear.c:241
-msgid "Cannot uniquely clear splits. Found multiple possibilities."
-msgstr ""
-"Impossível confirmar parcelas exclusivamente. Encontradas múltiplas "
-"possibilidades."
-
-#: gnucash/gnome/window-autoclear.c:248
-msgid "The selected amount cannot be cleared."
-msgstr "O montante seleccionado não pode ser confirmado."
+#: gnucash/gnome/window-autoclear.c:115
+#, fuzzy
+#| msgid "Created Transactions"
+msgid "Cleared Transactions"
+msgstr "Transacções criadas"
 
 #: gnucash/gnome/window-reconcile2.c:417 gnucash/gnome/window-reconcile.c:458
 msgid "Interest Payment"
@@ -6799,7 +6797,7 @@ msgid "Reconciled Balance"
 msgstr "Saldo reconciliado"
 
 #: gnucash/gnome/window-reconcile2.c:1798 gnucash/gnome/window-reconcile.c:1991
-#: gnucash/report/reports/standard/cash-flow.scm:310
+#: gnucash/report/reports/standard/cash-flow.scm:312
 msgid "Difference"
 msgstr "Diferença"
 
@@ -6833,7 +6831,7 @@ msgstr "Cont_a"
 #: gnucash/gnome/window-reconcile2.c:2103
 #: gnucash/gnome/window-reconcile2.c:2184 gnucash/gnome/window-reconcile.c:2324
 #: gnucash/gnome/window-reconcile.c:2405
-#: gnucash/gnome-utils/gnc-main-window.c:278
+#: gnucash/gnome-utils/gnc-main-window.c:281
 #: gnucash/gtkbuilder/dialog-account.glade:1117
 #: gnucash/gtkbuilder/dialog-bi-import-gui.glade:23
 #: gnucash/gtkbuilder/dialog-book-close.glade:22
@@ -6842,13 +6840,13 @@ msgstr "Cont_a"
 #: gnucash/gtkbuilder/dialog-customer-import-gui.glade:25
 #: gnucash/gtkbuilder/dialog-custom-report.glade:28
 #: gnucash/gtkbuilder/dialog-employee.glade:23
-#: gnucash/gtkbuilder/dialog-import.glade:1001
+#: gnucash/gtkbuilder/dialog-import.glade:1017
 #: gnucash/gtkbuilder/dialog-invoice.glade:658
 #: gnucash/gtkbuilder/dialog-job.glade:24
 #: gnucash/gtkbuilder/dialog-options.glade:21
 #: gnucash/gtkbuilder/dialog-order.glade:25
 #: gnucash/gtkbuilder/dialog-order.glade:441
-#: gnucash/gtkbuilder/dialog-preferences.glade:142
+#: gnucash/gtkbuilder/dialog-preferences.glade:258
 #: gnucash/gtkbuilder/dialog-print-check.glade:316
 #: gnucash/gtkbuilder/dialog-search.glade:21
 #: gnucash/gtkbuilder/dialog-sx.glade:763
@@ -6905,12 +6903,12 @@ msgid "Edit the main account for this register"
 msgstr "Editar a conta principal deste diário"
 
 #: gnucash/gnome/window-reconcile2.c:2147 gnucash/gnome/window-reconcile.c:2368
-#: gnucash/gnome-utils/gnc-main-window.c:353
+#: gnucash/gnome-utils/gnc-main-window.c:356
 msgid "_Check & Repair"
 msgstr "Verificar & _Corrigir"
 
 #: gnucash/gnome/window-reconcile2.c:2156 gnucash/gnome/window-reconcile.c:2377
-#: gnucash/gtkbuilder/dialog-account.glade:1730
+#: gnucash/gtkbuilder/dialog-account.glade:1747
 msgid "_Balance"
 msgstr "_Saldo"
 
@@ -6994,7 +6992,7 @@ msgstr "Não há opções para este relatório."
 msgid "You must select an item from the list"
 msgstr "Tem de seleccionar um item da lista"
 
-#: gnucash/gnome-search/dialog-search.c:693
+#: gnucash/gnome-search/dialog-search.c:702
 #: gnucash/gnome-utils/gnc-recurrence.c:552
 #: gnucash/gtkbuilder/dialog-commodities.glade:137
 #: gnucash/gtkbuilder/dialog-doclink.glade:218
@@ -7002,24 +7000,24 @@ msgstr "Tem de seleccionar um item da lista"
 msgid "_Remove"
 msgstr "_Remover"
 
-#: gnucash/gnome-search/dialog-search.c:1088
+#: gnucash/gnome-search/dialog-search.c:1097
 msgid "Order"
 msgstr "Encomenda"
 
-#: gnucash/gnome-search/dialog-search.c:1090
+#: gnucash/gnome-search/dialog-search.c:1099
 #: gnucash/gtkbuilder/dialog-order.glade:425
 msgid "New Order"
 msgstr "Nova encomenda"
 
-#: gnucash/gnome-search/dialog-search.c:1094
+#: gnucash/gnome-search/dialog-search.c:1103
 msgid "New Transaction"
 msgstr "Nova transacção"
 
-#: gnucash/gnome-search/dialog-search.c:1098
+#: gnucash/gnome-search/dialog-search.c:1107
 msgid "New Split"
 msgstr "Nova parcela"
 
-#: gnucash/gnome-search/dialog-search.c:1107
+#: gnucash/gnome-search/dialog-search.c:1116
 #, fuzzy
 msgctxt ""
 "Item represents an unknown object type (in the sense of bill, customer, "
@@ -7027,18 +7025,18 @@ msgctxt ""
 msgid "New item"
 msgstr "_Novo item..."
 
-#: gnucash/gnome-search/dialog-search.c:1150
+#: gnucash/gnome-search/dialog-search.c:1159
 #: gnucash/gnome-utils/gnc-recurrence.c:549
 #: gnucash/gtkbuilder/dialog-commodities.glade:120
 #: gnucash/gtkbuilder/dialog-price.glade:837
 msgid "_Add"
 msgstr "_Adicionar"
 
-#: gnucash/gnome-search/dialog-search.c:1160
+#: gnucash/gnome-search/dialog-search.c:1169
 msgid "all criteria are met"
 msgstr "satisfaz todos os critérios"
 
-#: gnucash/gnome-search/dialog-search.c:1161
+#: gnucash/gnome-search/dialog-search.c:1170
 msgid "any criteria are met"
 msgstr "satisfaz qualquer critério"
 
@@ -7059,7 +7057,7 @@ msgid "matches no accounts"
 msgstr "igual a nenhuma conta"
 
 #: gnucash/gnome-search/search-account.c:195
-#: gnucash/report/reports/standard/cash-flow.scm:254
+#: gnucash/report/reports/standard/cash-flow.scm:256
 msgid "Selected Accounts"
 msgstr "Contas seleccionadas"
 
@@ -7397,15 +7395,15 @@ msgstr "A codificação já foi adicionada à lista."
 msgid "This is an invalid encoding."
 msgstr "Esta é uma codificação inválida."
 
-#: gnucash/gnome-utils/dialog-account.c:488
+#: gnucash/gnome-utils/dialog-account.c:531
 msgid "Could not create opening balance."
 msgstr "Impossível criar saldo inicial."
 
-#: gnucash/gnome-utils/dialog-account.c:696
+#: gnucash/gnome-utils/dialog-account.c:739
 msgid "Give the children the same type?"
 msgstr "Dar o mesmo tipo aos filhos?"
 
-#: gnucash/gnome-utils/dialog-account.c:707
+#: gnucash/gnome-utils/dialog-account.c:750
 #, c-format
 msgid ""
 "The children of the edited account have to be changed to type \"%s\" to make "
@@ -7414,27 +7412,27 @@ msgstr ""
 "Os filhos da conta editada têm de ser alterados para o tipo \"%s\" para os "
 "tornar compatíveis."
 
-#: gnucash/gnome-utils/dialog-account.c:718
+#: gnucash/gnome-utils/dialog-account.c:761
 msgid "_Show children accounts"
 msgstr "_Mostrar contas filho"
 
-#: gnucash/gnome-utils/dialog-account.c:788
+#: gnucash/gnome-utils/dialog-account.c:831
 msgid "The account must be given a name."
 msgstr "Tem de ser dado um nome à conta."
 
-#: gnucash/gnome-utils/dialog-account.c:814
+#: gnucash/gnome-utils/dialog-account.c:857
 msgid "There is already an account with that name."
 msgstr "Já existe uma conta com esse nome."
 
-#: gnucash/gnome-utils/dialog-account.c:823
+#: gnucash/gnome-utils/dialog-account.c:866
 msgid "You must choose a valid parent account."
 msgstr "Tem de escolher uma conta-mãe válida."
 
-#: gnucash/gnome-utils/dialog-account.c:832
+#: gnucash/gnome-utils/dialog-account.c:875
 msgid "You must select an account type."
 msgstr "Tem de seleccionar um tipo de conta."
 
-#: gnucash/gnome-utils/dialog-account.c:841
+#: gnucash/gnome-utils/dialog-account.c:884
 msgid ""
 "The selected account type is incompatible with the one of the selected "
 "parent."
@@ -7442,15 +7440,15 @@ msgstr ""
 "O tipo de conta seleccionada é incompatível com o tipo da conta-mãe "
 "seleccionada."
 
-#: gnucash/gnome-utils/dialog-account.c:853
+#: gnucash/gnome-utils/dialog-account.c:896
 msgid "You must choose a commodity."
 msgstr "Tem de escolher uma mercadoria."
 
-#: gnucash/gnome-utils/dialog-account.c:909
+#: gnucash/gnome-utils/dialog-account.c:955
 msgid "You must enter a valid opening balance or leave it blank."
 msgstr "Tem de inserir um saldo inicial válido ou deixar em branco."
 
-#: gnucash/gnome-utils/dialog-account.c:933
+#: gnucash/gnome-utils/dialog-account.c:979
 msgid ""
 "You must select a transfer account or choose the opening balances equity "
 "account."
@@ -7458,7 +7456,18 @@ msgstr ""
 "Tem de seleccionar uma conta de transferência ou escolher a conta de capital "
 "próprio para os saldos iniciais."
 
-#: gnucash/gnome-utils/dialog-account.c:1350
+#: gnucash/gnome-utils/dialog-account.c:1331
+msgid ""
+"An account with opening balance already exists for the desired currency."
+msgstr ""
+
+#: gnucash/gnome-utils/dialog-account.c:1332
+#, fuzzy
+#| msgid "Cancel the current entry"
+msgid "Cannot change currency"
+msgstr "Cancelar a transacção actual"
+
+#: gnucash/gnome-utils/dialog-account.c:1419
 msgid ""
 "This Account contains Transactions.\n"
 "Changing this option is not possible."
@@ -7466,22 +7475,22 @@ msgstr ""
 "Esta conta contém transacções.\n"
 "Não é possível alterar esta opção."
 
-#: gnucash/gnome-utils/dialog-account.c:1539
+#: gnucash/gnome-utils/dialog-account.c:1609
 msgid "Edit Account"
 msgstr "Editar conta"
 
-#: gnucash/gnome-utils/dialog-account.c:1542
+#: gnucash/gnome-utils/dialog-account.c:1612
 #, c-format
 msgid "(%d) New Accounts"
 msgstr "(%d) novas contas"
 
-#: gnucash/gnome-utils/dialog-account.c:1552
+#: gnucash/gnome-utils/dialog-account.c:1622
 #: gnucash/gtkbuilder/dialog-account.glade:1100
 #: gnucash/gtkbuilder/dialog-account-picker.glade:158
 msgid "New Account"
 msgstr "Nova conta"
 
-#: gnucash/gnome-utils/dialog-account.c:2113
+#: gnucash/gnome-utils/dialog-account.c:2183
 #, c-format
 msgid ""
 "Renumber the immediate sub-accounts of %s? This will replace the account "
@@ -7490,7 +7499,7 @@ msgstr ""
 "Renumerar as sub-contas imediatas de %s? Isto substitui o campo de código de "
 "conta para cada conta-filho com um código gerado de novo."
 
-#: gnucash/gnome-utils/dialog-account.c:2218
+#: gnucash/gnome-utils/dialog-account.c:2288
 #, fuzzy, c-format
 msgid ""
 "Set the account color for account '%s' including all sub-accounts to the "
@@ -7499,7 +7508,7 @@ msgstr ""
 "Definir a cor da conta para \"%s\" incluindo todas as sub-contas para a cor "
 "seleccionada:"
 
-#: gnucash/gnome-utils/dialog-account.c:2245
+#: gnucash/gnome-utils/dialog-account.c:2315
 #, fuzzy, c-format
 msgid ""
 "Set the account placeholder value for account '%s' including all sub-accounts"
@@ -7507,7 +7516,7 @@ msgstr ""
 "Definir a cor da conta para \"%s\" incluindo todas as sub-contas para a cor "
 "seleccionada:"
 
-#: gnucash/gnome-utils/dialog-account.c:2259
+#: gnucash/gnome-utils/dialog-account.c:2329
 #, fuzzy, c-format
 msgid ""
 "Set the account hidden value for account '%s' including all sub-accounts"
@@ -7592,7 +7601,7 @@ msgid "Cu_rrency"
 msgstr "_Moeda"
 
 #: gnucash/gnome-utils/dialog-commodity.c:773
-#: gnucash/gnome-utils/dialog-options.c:701
+#: gnucash/gnome-utils/dialog-options.c:713
 #: gnucash/gnome-utils/gnc-tree-view-owner.c:412
 #: gnucash/gnome-utils/gnc-tree-view-price.c:402
 #: gnucash/gtkbuilder/dialog-customer.glade:511
@@ -7600,7 +7609,7 @@ msgstr "_Moeda"
 #: gnucash/gtkbuilder/dialog-transfer.glade:424
 #: gnucash/gtkbuilder/dialog-transfer.glade:437
 #: gnucash/gtkbuilder/dialog-vendor.glade:507
-#: libgnucash/engine/Account.cpp:4321
+#: libgnucash/engine/Account.cpp:4368
 msgid "Currency"
 msgstr "Moeda"
 
@@ -7670,7 +7679,11 @@ msgstr "Início de caminho não definido, a usar \"%s\" para caminhos relativos"
 msgid "Existing"
 msgstr "Usar existente"
 
-#: gnucash/gnome-utils/dialog-dup-trans.c:250
+#: gnucash/gnome-utils/dialog-dup-trans.c:148
+msgid "Use +- keys to increment/decrement number"
+msgstr ""
+
+#: gnucash/gnome-utils/dialog-dup-trans.c:297
 msgid "Action/Number"
 msgstr "Acção/Número"
 
@@ -7696,7 +7709,33 @@ msgstr "Gravar como..."
 msgid "_Save As"
 msgstr "Gra_var como..."
 
-#: gnucash/gnome-utils/dialog-options.c:641
+#: gnucash/gnome-utils/dialog-options.c:226
+#: gnucash/gnome-utils/gnc-main-window.c:305
+#: gnucash/gtkbuilder/dialog-billterms.glade:729
+#: gnucash/gtkbuilder/dialog-commodities.glade:173
+#: gnucash/gtkbuilder/dialog-custom-report.glade:45
+#: gnucash/gtkbuilder/dialog-doclink.glade:546
+#: gnucash/gtkbuilder/dialog-fincalc.glade:107
+#: gnucash/gtkbuilder/dialog-find-account.glade:68
+#: gnucash/gtkbuilder/dialog-imap-editor.glade:80
+#: gnucash/gtkbuilder/dialog-import.glade:496
+#: gnucash/gtkbuilder/dialog-lot-viewer.glade:89
+#: gnucash/gtkbuilder/dialog-order.glade:42
+#: gnucash/gtkbuilder/dialog-preferences.glade:147
+#: gnucash/gtkbuilder/dialog-preferences.glade:274
+#: gnucash/gtkbuilder/dialog-price.glade:939
+#: gnucash/gtkbuilder/dialog-query-view.glade:22
+#: gnucash/gtkbuilder/dialog-report.glade:272
+#: gnucash/gtkbuilder/dialog-report.glade:679
+#: gnucash/gtkbuilder/dialog-search.glade:52
+#: gnucash/gtkbuilder/dialog-tax-table.glade:254
+#: gnucash/gtkbuilder/dialog-totd.glade:56
+#: gnucash/gtkbuilder/gnc-plugin-page-budget.glade:736
+#: gnucash/import-export/aqb/dialog-ab.glade:43
+msgid "_Close"
+msgstr "_Fechar"
+
+#: gnucash/gnome-utils/dialog-options.c:653
 msgid ""
 "Because no accounts have been set up yet, you will need to return to this "
 "dialog (via File->Properties), after account setup, if you want to set a "
@@ -7706,17 +7745,17 @@ msgstr ""
 "Ficheiro->Propriedades) após a definição das contas, se quiser predefinir "
 "uma conta de ganhos/perdas."
 
-#: gnucash/gnome-utils/dialog-options.c:685
+#: gnucash/gnome-utils/dialog-options.c:697
 msgid "Select no account"
 msgstr "Não seleccionar conta"
 
-#: gnucash/gnome-utils/dialog-options.c:718
-#: gnucash/gnome-utils/gnc-tree-view-account.c:966
+#: gnucash/gnome-utils/dialog-options.c:730
+#: gnucash/gnome-utils/gnc-tree-view-account.c:989
 msgctxt "Column header for 'Placeholder'"
 msgid "P"
 msgstr ""
 
-#: gnucash/gnome-utils/dialog-options.c:785
+#: gnucash/gnome-utils/dialog-options.c:797
 msgid ""
 "There are no income or expense accounts of the specified\n"
 "book currency; you will have to return to this dialog\n"
@@ -7728,7 +7767,7 @@ msgstr ""
 "após a definição das contas, se quiser definir uma conta\n"
 "predefinida de ganhos/perdas."
 
-#: gnucash/gnome-utils/dialog-options.c:854
+#: gnucash/gnome-utils/dialog-options.c:865
 #: gnucash/import-export/qif-imp/dialog-account-picker.c:299
 #, c-format
 msgid ""
@@ -7738,87 +7777,87 @@ msgstr ""
 "A conta %s é uma conta marcadora de posição e não permite transacções. Por "
 "favor, escolha outra conta."
 
-#: gnucash/gnome-utils/dialog-options.c:1284
+#: gnucash/gnome-utils/dialog-options.c:1292
 msgid "Book currency"
 msgstr "Moeda do livro"
 
-#: gnucash/gnome-utils/dialog-options.c:1309
+#: gnucash/gnome-utils/dialog-options.c:1317
 msgid "Default lot tracking policy"
 msgstr "Política predefinida de rastreio do lote"
 
-#: gnucash/gnome-utils/dialog-options.c:1333
+#: gnucash/gnome-utils/dialog-options.c:1340
 msgid "Default gain/loss account"
 msgstr "Conta predefinida de ganhos/perdas"
 
-#: gnucash/gnome-utils/dialog-options.c:1501
-#: gnucash/gnome-utils/dialog-options.c:1647
+#: gnucash/gnome-utils/dialog-options.c:1506
+#: gnucash/gnome-utils/dialog-options.c:1650
 msgid "Select All"
 msgstr "Seleccionar tudo"
 
-#: gnucash/gnome-utils/dialog-options.c:1503
+#: gnucash/gnome-utils/dialog-options.c:1508
 msgid "Select all accounts."
 msgstr "Seleccionar todas as contas."
 
-#: gnucash/gnome-utils/dialog-options.c:1508
-#: gnucash/gnome-utils/dialog-options.c:1654
+#: gnucash/gnome-utils/dialog-options.c:1513
+#: gnucash/gnome-utils/dialog-options.c:1657
 msgid "Clear All"
 msgstr "Limpar tudo"
 
-#: gnucash/gnome-utils/dialog-options.c:1510
+#: gnucash/gnome-utils/dialog-options.c:1515
 msgid "Clear the selection and unselect all accounts."
 msgstr "Limpar a selecção e remover a selecção de todas as contas."
 
-#: gnucash/gnome-utils/dialog-options.c:1515
+#: gnucash/gnome-utils/dialog-options.c:1520
 msgid "Select Children"
 msgstr "Seleccionar filhos"
 
-#: gnucash/gnome-utils/dialog-options.c:1517
+#: gnucash/gnome-utils/dialog-options.c:1522
 msgid "Select all descendents of selected account."
 msgstr "Seleccionar todas as contas-filho da conta seleccionada."
 
-#: gnucash/gnome-utils/dialog-options.c:1523
-#: gnucash/gnome-utils/dialog-options.c:1661
+#: gnucash/gnome-utils/dialog-options.c:1528
+#: gnucash/gnome-utils/dialog-options.c:1664
 msgid "Select Default"
 msgstr "Seleccionar predefinição"
 
-#: gnucash/gnome-utils/dialog-options.c:1525
+#: gnucash/gnome-utils/dialog-options.c:1530
 msgid "Select the default account selection."
 msgstr "Seleccionar a selecção predefinida de contas."
 
-#: gnucash/gnome-utils/dialog-options.c:1542
+#: gnucash/gnome-utils/dialog-options.c:1547
 msgid "Show Hidden Accounts"
 msgstr "Mostrar contas ocultas"
 
-#: gnucash/gnome-utils/dialog-options.c:1544
+#: gnucash/gnome-utils/dialog-options.c:1549
 msgid "Show accounts that have been marked hidden."
 msgstr "Mostrar contas que foram marcadas como ocultas."
 
-#: gnucash/gnome-utils/dialog-options.c:1649
+#: gnucash/gnome-utils/dialog-options.c:1652
 msgid "Select all entries."
 msgstr "Seleccionar todas as entradas."
 
-#: gnucash/gnome-utils/dialog-options.c:1656
+#: gnucash/gnome-utils/dialog-options.c:1659
 msgid "Clear the selection and unselect all entries."
 msgstr "Limpar a selecção e remover a selecção de todas as entradas."
 
-#: gnucash/gnome-utils/dialog-options.c:1663
+#: gnucash/gnome-utils/dialog-options.c:1666
 msgid "Select the default selection."
 msgstr "Seleccionar a selecção predefinida."
 
-#: gnucash/gnome-utils/dialog-options.c:1856
+#: gnucash/gnome-utils/dialog-options.c:1860
 msgid "Reset defaults"
 msgstr "Repor predefinições"
 
-#: gnucash/gnome-utils/dialog-options.c:1858
+#: gnucash/gnome-utils/dialog-options.c:1862
 msgid "Reset all values to their defaults."
 msgstr "Repor todos os valores nas predefinições."
 
-#: gnucash/gnome-utils/dialog-options.c:2253
+#: gnucash/gnome-utils/dialog-options.c:2263
 msgid "Page"
 msgstr "Página"
 
-#: gnucash/gnome-utils/dialog-options.c:2879
-#: gnucash/gnome-utils/dialog-preferences.c:1374
+#: gnucash/gnome-utils/dialog-options.c:2890
+#: gnucash/gnome-utils/dialog-preferences.c:1465
 #: gnucash/gtkbuilder/dialog-fincalc.glade:254
 #: gnucash/gtkbuilder/dialog-fincalc.glade:269
 #: gnucash/gtkbuilder/dialog-fincalc.glade:284
@@ -7827,23 +7866,23 @@ msgstr "Página"
 msgid "Clear"
 msgstr "Limpar"
 
-#: gnucash/gnome-utils/dialog-options.c:2880
+#: gnucash/gnome-utils/dialog-options.c:2891
 msgid "Clear any selected image file."
 msgstr "Limpar qualquer ficheiro de imagem seleccionado."
 
-#: gnucash/gnome-utils/dialog-options.c:2882
+#: gnucash/gnome-utils/dialog-options.c:2893
 msgid "Select image"
 msgstr "Seleccionar imagem"
 
-#: gnucash/gnome-utils/dialog-options.c:2884
+#: gnucash/gnome-utils/dialog-options.c:2895
 msgid "Select an image file."
 msgstr "Seleccionar um ficheiro de imagem."
 
-#: gnucash/gnome-utils/dialog-options.c:3065
+#: gnucash/gnome-utils/dialog-options.c:3075
 msgid "Pixels"
 msgstr "Pixels"
 
-#: gnucash/gnome-utils/dialog-options.c:3071
+#: gnucash/gnome-utils/dialog-options.c:3081
 msgid "Percent"
 msgstr "Percentagem"
 
@@ -7853,17 +7892,17 @@ msgstr "Percentagem"
 #. names with other account names that are more suitable for your
 #. language - just keep in mind to have exactly two %s in your
 #. translation.
-#: gnucash/gnome-utils/dialog-preferences.c:165
+#: gnucash/gnome-utils/dialog-preferences.c:166
 #, c-format
 msgid "Income%sSalary%sTaxable"
 msgstr "Receitas%sSalário%sTaxável"
 
-#: gnucash/gnome-utils/dialog-preferences.c:826
+#: gnucash/gnome-utils/dialog-preferences.c:899
 msgid "Path does not exist, "
 msgstr "Caminho inexistente, "
 
-#: gnucash/gnome-utils/dialog-preferences.c:882
-#: gnucash/gnome-utils/dialog-preferences.c:1371
+#: gnucash/gnome-utils/dialog-preferences.c:955
+#: gnucash/gnome-utils/dialog-preferences.c:1462
 msgid "Select a folder"
 msgstr "Seleccione uma pasta"
 
@@ -7888,30 +7927,30 @@ msgstr "Valor de percentagem tem que ser entre -100 e 100."
 msgid "You must choose a Tax Account."
 msgstr "Tem de escolher uma conta de impostos"
 
-#: gnucash/gnome-utils/dialog-tax-table.c:630
+#: gnucash/gnome-utils/dialog-tax-table.c:633
 msgid "Rename"
 msgstr "Renomear"
 
-#: gnucash/gnome-utils/dialog-tax-table.c:631
+#: gnucash/gnome-utils/dialog-tax-table.c:634
 msgid "Please enter new name"
 msgstr "Por favor, insira o novo nome"
 
-#: gnucash/gnome-utils/dialog-tax-table.c:632
+#: gnucash/gnome-utils/dialog-tax-table.c:635
 #: gnucash/gtkbuilder/dialog-tax-table.glade:72
 msgid "_Rename"
 msgstr "_Renomear"
 
-#: gnucash/gnome-utils/dialog-tax-table.c:638
+#: gnucash/gnome-utils/dialog-tax-table.c:641
 #, c-format
 msgid "Tax table name \"%s\" already exists."
 msgstr "A tabela de impostos \"%s\" já existe."
 
-#: gnucash/gnome-utils/dialog-tax-table.c:662
+#: gnucash/gnome-utils/dialog-tax-table.c:665
 #, c-format
 msgid "Tax table \"%s\" is in use. You cannot delete it."
 msgstr "A tabela de impostos \"%s\" está em uso. Não a pode eliminar."
 
-#: gnucash/gnome-utils/dialog-tax-table.c:710
+#: gnucash/gnome-utils/dialog-tax-table.c:713
 msgid ""
 "You cannot remove the last entry from the tax table. Try deleting the tax "
 "table if you want to do that."
@@ -7919,7 +7958,7 @@ msgstr ""
 "Não pode remover a última linha da tabela de impostos. Experimente antes "
 "eliminar a tabela de impostos se é isso que pretende."
 
-#: gnucash/gnome-utils/dialog-tax-table.c:717
+#: gnucash/gnome-utils/dialog-tax-table.c:720
 msgid "Are you sure you want to delete this entry?"
 msgstr "Tem a certeza que quer eliminar esta entrada?"
 
@@ -8038,7 +8077,7 @@ msgstr "Lembrar e não perguntar novamente nesta _sessão."
 msgid "Don't tell me again this _session."
 msgstr "Não me dizer novamente nesta _sessão."
 
-#: gnucash/gnome-utils/gnc-account-sel.c:475
+#: gnucash/gnome-utils/gnc-account-sel.c:454
 msgid "New..."
 msgstr "Novo..."
 
@@ -8193,14 +8232,14 @@ msgstr "Frequência"
 msgid "(unnamed)"
 msgstr "(sem nome)"
 
-#: gnucash/gnome-utils/gnc-file.c:94 gnucash/gnome-utils/gnc-main-window.c:282
+#: gnucash/gnome-utils/gnc-file.c:94 gnucash/gnome-utils/gnc-main-window.c:285
 #: gnucash/import-export/bi-import/gnc-plugin-bi-import.c:57
 #: gnucash/import-export/customer-import/gnc-plugin-customer-import.c:57
 msgid "_Import"
 msgstr "_Importar"
 
 #: gnucash/gnome-utils/gnc-file.c:96 gnucash/gnome-utils/gnc-file.c:335
-#: gnucash/gtkbuilder/dialog-preferences.glade:2151
+#: gnucash/gtkbuilder/dialog-preferences.glade:2268
 #: gnucash/import-export/qif-imp/gnc-plugin-qif-import.c:140
 msgid "Import"
 msgstr "Importar"
@@ -8210,7 +8249,7 @@ msgstr "Importar"
 msgid "Save"
 msgstr "Gravar"
 
-#: gnucash/gnome-utils/gnc-file.c:106 gnucash/gnome-utils/gnc-main-window.c:283
+#: gnucash/gnome-utils/gnc-file.c:106 gnucash/gnome-utils/gnc-main-window.c:286
 msgid "_Export"
 msgstr "_Exportar"
 
@@ -8497,7 +8536,7 @@ msgid "Save changes to the file?"
 msgstr "Gravar alterações ao ficheiro?"
 
 #: gnucash/gnome-utils/gnc-file.c:656
-#: gnucash/gnome-utils/gnc-main-window.c:1287
+#: gnucash/gnome-utils/gnc-main-window.c:1301
 #, c-format
 msgid "If you don't save, changes from the past %d minute will be discarded."
 msgid_plural ""
@@ -8546,7 +8585,7 @@ msgstr "_Criar novo ficheiro"
 msgid "Open _Anyway"
 msgstr "_Abrir mesmo assim"
 
-#: gnucash/gnome-utils/gnc-file.c:857 gnucash/gnome-utils/gnc-main-window.c:307
+#: gnucash/gnome-utils/gnc-file.c:857 gnucash/gnome-utils/gnc-main-window.c:310
 msgid "_Quit"
 msgstr "_Sair"
 
@@ -8591,7 +8630,7 @@ msgstr ""
 "continuar?"
 
 #: gnucash/gnome-utils/gnc-file.c:1680
-#: gnucash/gnome-utils/gnc-main-window.c:1255
+#: gnucash/gnome-utils/gnc-main-window.c:1269
 msgid "<unknown>"
 msgstr "<desconhecido>"
 
@@ -8619,14 +8658,14 @@ msgstr ""
 msgid "Expected location"
 msgstr "Localização antiga:"
 
-#: gnucash/gnome-utils/gnc-gnome-utils.c:446
-#: gnucash/gnome-utils/gnc-gnome-utils.c:486
+#: gnucash/gnome-utils/gnc-gnome-utils.c:460
+#: gnucash/gnome-utils/gnc-gnome-utils.c:500
 #, fuzzy
 #| msgid "GnuCash could not find the associated file."
 msgid "GnuCash could not find the linked document."
 msgstr "O GnuCash não conseguiu encontrar o ficheiro associado."
 
-#: gnucash/gnome-utils/gnc-gnome-utils.c:516
+#: gnucash/gnome-utils/gnc-gnome-utils.c:530
 #, fuzzy
 msgid "GnuCash could not open the linked document:"
 msgstr "O GnuCash não conseguiu abrir o URI associado:"
@@ -8638,235 +8677,211 @@ msgstr "O GnuCash não conseguiu abrir o URI associado:"
 msgid "Enter a user name and password to connect to: %s"
 msgstr "Insira o seu nome de utilizador e senha para ligar a: %s"
 
-#: gnucash/gnome-utils/gnc-main-window.c:130
+#: gnucash/gnome-utils/gnc-main-window.c:131
 #, c-format
 msgid "Changes will be saved automatically in %u seconds"
 msgstr "As alterações serão automaticamente gravadas em %u segundos"
 
-#: gnucash/gnome-utils/gnc-main-window.c:269
+#: gnucash/gnome-utils/gnc-main-window.c:272
 msgid "_File"
 msgstr "_Ficheiro"
 
-#: gnucash/gnome-utils/gnc-main-window.c:273
+#: gnucash/gnome-utils/gnc-main-window.c:276
 msgid "Tra_nsaction"
 msgstr "Tra_nsacção"
 
-#: gnucash/gnome-utils/gnc-main-window.c:274
+#: gnucash/gnome-utils/gnc-main-window.c:277
 msgid "_Reports"
 msgstr "_Relatórios"
 
-#: gnucash/gnome-utils/gnc-main-window.c:275
+#: gnucash/gnome-utils/gnc-main-window.c:278
 msgid "_Tools"
 msgstr "Ferramen_tas"
 
-#: gnucash/gnome-utils/gnc-main-window.c:276
+#: gnucash/gnome-utils/gnc-main-window.c:279
 msgid "E_xtensions"
 msgstr "E_xtensões"
 
-#: gnucash/gnome-utils/gnc-main-window.c:277
+#: gnucash/gnome-utils/gnc-main-window.c:280
 msgid "_Windows"
 msgstr "_Janelas"
 
-#: gnucash/gnome-utils/gnc-main-window.c:285
+#: gnucash/gnome-utils/gnc-main-window.c:288
 msgid "_Print..."
 msgstr "_Imprimir..."
 
-#: gnucash/gnome-utils/gnc-main-window.c:286
+#: gnucash/gnome-utils/gnc-main-window.c:289
 msgid "Print the currently active page"
 msgstr "Fechar página actualmente activa"
 
-#: gnucash/gnome-utils/gnc-main-window.c:292
+#: gnucash/gnome-utils/gnc-main-window.c:295
 msgid "Pa_ge Setup..."
 msgstr "Confi_gurar página..."
 
-#: gnucash/gnome-utils/gnc-main-window.c:293
+#: gnucash/gnome-utils/gnc-main-window.c:296
 msgid "Specify the page size and orientation for printing"
 msgstr "Especificar o tamanho e orientação da página para impressão"
 
-#: gnucash/gnome-utils/gnc-main-window.c:297
+#: gnucash/gnome-utils/gnc-main-window.c:300
 msgid "Proper_ties"
 msgstr "Proprie_dades"
 
-#: gnucash/gnome-utils/gnc-main-window.c:298
+#: gnucash/gnome-utils/gnc-main-window.c:301
 msgid "Edit the properties of the current file"
 msgstr "Editar as propriedades do ficheiro actual"
 
-#: gnucash/gnome-utils/gnc-main-window.c:302
-#: gnucash/gtkbuilder/dialog-billterms.glade:729
-#: gnucash/gtkbuilder/dialog-commodities.glade:173
-#: gnucash/gtkbuilder/dialog-custom-report.glade:45
-#: gnucash/gtkbuilder/dialog-doclink.glade:546
-#: gnucash/gtkbuilder/dialog-fincalc.glade:107
-#: gnucash/gtkbuilder/dialog-find-account.glade:68
-#: gnucash/gtkbuilder/dialog-imap-editor.glade:80
-#: gnucash/gtkbuilder/dialog-import.glade:496
-#: gnucash/gtkbuilder/dialog-lot-viewer.glade:89
-#: gnucash/gtkbuilder/dialog-order.glade:42
-#: gnucash/gtkbuilder/dialog-preferences.glade:158
-#: gnucash/gtkbuilder/dialog-price.glade:939
-#: gnucash/gtkbuilder/dialog-query-view.glade:22
-#: gnucash/gtkbuilder/dialog-report.glade:272
-#: gnucash/gtkbuilder/dialog-report.glade:679
-#: gnucash/gtkbuilder/dialog-search.glade:52
-#: gnucash/gtkbuilder/dialog-tax-table.glade:254
-#: gnucash/gtkbuilder/dialog-totd.glade:56
-#: gnucash/gtkbuilder/gnc-plugin-page-budget.glade:736
-#: gnucash/import-export/aqb/dialog-ab.glade:43
-msgid "_Close"
-msgstr "_Fechar"
-
-#: gnucash/gnome-utils/gnc-main-window.c:303
+#: gnucash/gnome-utils/gnc-main-window.c:306
 msgid "Close the currently active page"
 msgstr "Fechar a página actualmente activa"
 
-#: gnucash/gnome-utils/gnc-main-window.c:308
+#: gnucash/gnome-utils/gnc-main-window.c:311
 msgid "Quit this application"
 msgstr "Sair da aplicação"
 
-#: gnucash/gnome-utils/gnc-main-window.c:330
+#: gnucash/gnome-utils/gnc-main-window.c:333
 msgid "Pr_eferences"
 msgstr "Pr_eferências"
 
-#: gnucash/gnome-utils/gnc-main-window.c:331
+#: gnucash/gnome-utils/gnc-main-window.c:334
 msgid "Edit the global preferences of GnuCash"
 msgstr "Editar as preferências globais do GnuCash"
 
-#: gnucash/gnome-utils/gnc-main-window.c:339
+#: gnucash/gnome-utils/gnc-main-window.c:342
 msgid "Select sorting criteria for this page view"
 msgstr "Seleccionar critério de ordenação para esta página"
 
-#: gnucash/gnome-utils/gnc-main-window.c:343
+#: gnucash/gnome-utils/gnc-main-window.c:346
 msgid "Select the account types that should be displayed."
 msgstr "Seleccionar os tipos de contas a serem mostradas."
 
-#: gnucash/gnome-utils/gnc-main-window.c:355
+#: gnucash/gnome-utils/gnc-main-window.c:358
 msgid "Reset _Warnings..."
 msgstr "Repor _avisos..."
 
-#: gnucash/gnome-utils/gnc-main-window.c:356
+#: gnucash/gnome-utils/gnc-main-window.c:359
 msgid "Reset the state of all warning messages so they will be shown again."
 msgstr ""
 "Repor o estado de todos as mensagens de aviso para que sejam mostradas "
 "novamente."
 
-#: gnucash/gnome-utils/gnc-main-window.c:360
+#: gnucash/gnome-utils/gnc-main-window.c:363
 msgid "Re_name Page"
 msgstr "Re_nomear página"
 
-#: gnucash/gnome-utils/gnc-main-window.c:361
+#: gnucash/gnome-utils/gnc-main-window.c:364
 msgid "Rename this page."
 msgstr "Renomear esta página."
 
-#: gnucash/gnome-utils/gnc-main-window.c:368
+#: gnucash/gnome-utils/gnc-main-window.c:371
 msgid "_New Window"
 msgstr "_Nova janela"
 
-#: gnucash/gnome-utils/gnc-main-window.c:369
+#: gnucash/gnome-utils/gnc-main-window.c:372
 msgid "Open a new top-level GnuCash window."
 msgstr "Abrir uma nova janela de topo do GnuCash."
 
-#: gnucash/gnome-utils/gnc-main-window.c:373
+#: gnucash/gnome-utils/gnc-main-window.c:376
 msgid "New Window with _Page"
 msgstr "Nova janela com a _página"
 
-#: gnucash/gnome-utils/gnc-main-window.c:374
+#: gnucash/gnome-utils/gnc-main-window.c:377
 msgid "Move the current page to a new top-level GnuCash window."
 msgstr "Mover a página actual para uma nova janela de topo do GnuCash."
 
-#: gnucash/gnome-utils/gnc-main-window.c:381
+#: gnucash/gnome-utils/gnc-main-window.c:384
 msgid "Tutorial and Concepts _Guide"
 msgstr "Tutorial e _guia de conceitos"
 
-#: gnucash/gnome-utils/gnc-main-window.c:382
+#: gnucash/gnome-utils/gnc-main-window.c:385
 msgid "Open the GnuCash Tutorial"
 msgstr "Abrir o tutorial do GnuCash"
 
-#: gnucash/gnome-utils/gnc-main-window.c:386
+#: gnucash/gnome-utils/gnc-main-window.c:389
 msgid "_Contents"
 msgstr "_Conteúdos"
 
-#: gnucash/gnome-utils/gnc-main-window.c:387
+#: gnucash/gnome-utils/gnc-main-window.c:390
 msgid "Open the GnuCash Help"
 msgstr "Abrir a ajuda do GnuCash"
 
-#: gnucash/gnome-utils/gnc-main-window.c:391
+#: gnucash/gnome-utils/gnc-main-window.c:394
 msgid "_About"
 msgstr "_Sobre"
 
-#: gnucash/gnome-utils/gnc-main-window.c:392
+#: gnucash/gnome-utils/gnc-main-window.c:395
 msgid "About GnuCash"
 msgstr "Sobre o GnuCash"
 
-#: gnucash/gnome-utils/gnc-main-window.c:404
+#: gnucash/gnome-utils/gnc-main-window.c:407
 msgid "_Toolbar"
 msgstr "_Barra de ferramentas"
 
-#: gnucash/gnome-utils/gnc-main-window.c:405
+#: gnucash/gnome-utils/gnc-main-window.c:408
 msgid "Show/hide the toolbar on this window"
 msgstr "Mostrar/Ocultar a barra de ferramentas nesta janela"
 
-#: gnucash/gnome-utils/gnc-main-window.c:409
+#: gnucash/gnome-utils/gnc-main-window.c:412
 msgid "Su_mmary Bar"
 msgstr "Barra de su_mário"
 
-#: gnucash/gnome-utils/gnc-main-window.c:410
+#: gnucash/gnome-utils/gnc-main-window.c:413
 msgid "Show/hide the summary bar on this window"
 msgstr "Mostrar/Ocultar a barra de sumário nesta janela"
 
-#: gnucash/gnome-utils/gnc-main-window.c:414
+#: gnucash/gnome-utils/gnc-main-window.c:417
 msgid "Stat_us Bar"
 msgstr "Barra de estad_o"
 
-#: gnucash/gnome-utils/gnc-main-window.c:415
+#: gnucash/gnome-utils/gnc-main-window.c:418
 msgid "Show/hide the status bar on this window"
 msgstr "Mostrar/Ocultar a barra de estado nesta janela"
 
-#: gnucash/gnome-utils/gnc-main-window.c:427
+#: gnucash/gnome-utils/gnc-main-window.c:430
 msgid "Window _1"
 msgstr "Janela _1"
 
-#: gnucash/gnome-utils/gnc-main-window.c:428
+#: gnucash/gnome-utils/gnc-main-window.c:431
 msgid "Window _2"
 msgstr "Janela _2"
 
-#: gnucash/gnome-utils/gnc-main-window.c:429
+#: gnucash/gnome-utils/gnc-main-window.c:432
 msgid "Window _3"
 msgstr "Janela _3"
 
-#: gnucash/gnome-utils/gnc-main-window.c:430
+#: gnucash/gnome-utils/gnc-main-window.c:433
 msgid "Window _4"
 msgstr "Janela _4"
 
-#: gnucash/gnome-utils/gnc-main-window.c:431
+#: gnucash/gnome-utils/gnc-main-window.c:434
 msgid "Window _5"
 msgstr "Janela _5"
 
-#: gnucash/gnome-utils/gnc-main-window.c:432
+#: gnucash/gnome-utils/gnc-main-window.c:435
 msgid "Window _6"
 msgstr "Janela _6"
 
-#: gnucash/gnome-utils/gnc-main-window.c:433
+#: gnucash/gnome-utils/gnc-main-window.c:436
 msgid "Window _7"
 msgstr "Janela _7"
 
-#: gnucash/gnome-utils/gnc-main-window.c:434
+#: gnucash/gnome-utils/gnc-main-window.c:437
 msgid "Window _8"
 msgstr "Janela _8"
 
-#: gnucash/gnome-utils/gnc-main-window.c:435
+#: gnucash/gnome-utils/gnc-main-window.c:438
 msgid "Window _9"
 msgstr "Janela _9"
 
-#: gnucash/gnome-utils/gnc-main-window.c:436
+#: gnucash/gnome-utils/gnc-main-window.c:439
 msgid "Window _0"
 msgstr "Janela _0"
 
-#: gnucash/gnome-utils/gnc-main-window.c:1239
+#: gnucash/gnome-utils/gnc-main-window.c:1253
 #, c-format
 msgid "Save changes to file %s before closing?"
 msgstr "Gravar alterações ao ficheiro %s antes de sair?"
 
-#: gnucash/gnome-utils/gnc-main-window.c:1242
+#: gnucash/gnome-utils/gnc-main-window.c:1256
 #, c-format
 msgid ""
 "If you don't save, changes from the past %d hours and %d minutes will be "
@@ -8875,7 +8890,7 @@ msgstr ""
 "Se não gravar, as alterações das últimas %d horas e %d minutos serão "
 "descartadas."
 
-#: gnucash/gnome-utils/gnc-main-window.c:1244
+#: gnucash/gnome-utils/gnc-main-window.c:1258
 #, c-format
 msgid ""
 "If you don't save, changes from the past %d days and %d hours will be "
@@ -8884,59 +8899,74 @@ msgstr ""
 "Se não gravar, as alterações dos últimos %d dias e %d horas serão "
 "descartadas."
 
-#: gnucash/gnome-utils/gnc-main-window.c:1292
+#: gnucash/gnome-utils/gnc-main-window.c:1306
 msgid "Close _Without Saving"
 msgstr "Fechar _sem gravar"
 
+#: gnucash/gnome-utils/gnc-main-window.c:1437
+msgid "This window is closing and will not be restored."
+msgstr ""
+
+#: gnucash/gnome-utils/gnc-main-window.c:1443
+#, fuzzy
+#| msgid "Close this window"
+msgid "Close Window?"
+msgstr "Fechar esta janela"
+
 #. Translators: This string is shown in the window title if this
 #. document is, well, read-only.
-#: gnucash/gnome-utils/gnc-main-window.c:1523
+#: gnucash/gnome-utils/gnc-main-window.c:1569
 msgid "(read-only)"
 msgstr "(só de leitura)"
 
-#: gnucash/gnome-utils/gnc-main-window.c:1531
+#: gnucash/gnome-utils/gnc-main-window.c:1577
 msgid "Unsaved Book"
 msgstr "Livro por gravar"
 
-#: gnucash/gnome-utils/gnc-main-window.c:1691
+#: gnucash/gnome-utils/gnc-main-window.c:1737
 msgid "Last modified on %a, %b %d, %Y at %I:%M %p"
 msgstr "Última modificação a %a, %b %d, %Y às %I:%M %p"
 
 #. Translators: This message appears in the status bar after opening the file.
-#: gnucash/gnome-utils/gnc-main-window.c:1694
+#: gnucash/gnome-utils/gnc-main-window.c:1740
 #, c-format
 msgid "File %s opened. %s"
 msgstr "Ficheiro %s aberto. %s"
 
-#: gnucash/gnome-utils/gnc-main-window.c:2778
+#: gnucash/gnome-utils/gnc-main-window.c:2793
+msgctxt "lower case key for short cut to 'Accounts'"
+msgid "a"
+msgstr ""
+
+#: gnucash/gnome-utils/gnc-main-window.c:2883
 msgid "Unable to save to database."
 msgstr "Impossível gravar na base de dados."
 
-#: gnucash/gnome-utils/gnc-main-window.c:2780
+#: gnucash/gnome-utils/gnc-main-window.c:2885
 msgid "Unable to save to database: Book is marked read-only."
 msgstr "Impossível gravar na base de dados: livro só de leitura."
 
-#: gnucash/gnome-utils/gnc-main-window.c:4122
+#: gnucash/gnome-utils/gnc-main-window.c:4231
 msgid "Book Options"
 msgstr "Opções do livro"
 
 #. Translators: %s will be replaced with the current year
-#: gnucash/gnome-utils/gnc-main-window.c:4507
+#: gnucash/gnome-utils/gnc-main-window.c:4616
 #, c-format
 msgid "Copyright © 1997-%s The GnuCash contributors."
 msgstr "Copyright © 1997-%s The GnuCash contributors."
 
-#: gnucash/gnome-utils/gnc-main-window.c:4519
+#: gnucash/gnome-utils/gnc-main-window.c:4628
 #: gnucash/gnome-utils/gnc-splash.c:97
 msgid "Version"
 msgstr "Versão"
 
-#: gnucash/gnome-utils/gnc-main-window.c:4520
-#: gnucash/gnome-utils/gnc-splash.c:98 gnucash/gnucash-core-app.cpp:505
+#: gnucash/gnome-utils/gnc-main-window.c:4629
+#: gnucash/gnome-utils/gnc-splash.c:98 gnucash/gnucash-core-app.cpp:502
 msgid "Build ID"
 msgstr "ID de compilação"
 
-#: gnucash/gnome-utils/gnc-main-window.c:4528
+#: gnucash/gnome-utils/gnc-main-window.c:4637
 msgid "Accounting for personal and small business finance."
 msgstr "Contabilidade de finanças pessoais e de pequenos negócios."
 
@@ -8944,11 +8974,11 @@ msgstr "Contabilidade de finanças pessoais e de pequenos negócios."
 #. * Enter your name or that of your team and an email contact for feedback.
 #. * The string can have multiple rows, so you can also add a list of
 #. * contributors.
-#: gnucash/gnome-utils/gnc-main-window.c:4537
+#: gnucash/gnome-utils/gnc-main-window.c:4646
 msgid "translator-credits"
 msgstr "Pedro Albuquerque <palbuquerque73 at gmail.com>"
 
-#: gnucash/gnome-utils/gnc-main-window.c:4540
+#: gnucash/gnome-utils/gnc-main-window.c:4649
 msgid "Visit the GnuCash website."
 msgstr "Visite a página do GnuCash"
 
@@ -9228,7 +9258,7 @@ msgstr "A conta %s não existe. Deseja criá-la?"
 msgid "You can not paste from the general journal to a register."
 msgstr "Não pode colar de um livro razão geral para um diário."
 
-#: gnucash/gnome-utils/gnc-tree-model-account.c:753
+#: gnucash/gnome-utils/gnc-tree-model-account.c:754
 msgid "New top level account"
 msgstr "Nova conta de topo"
 
@@ -9274,7 +9304,7 @@ msgstr "Balcão"
 #: gnucash/register/ledger-core/gncEntryLedgerModel.c:529
 #: gnucash/register/ledger-core/gncEntryLedgerModel.c:1093
 #: gnucash/register/ledger-core/split-register.c:2627
-#: libgnucash/engine/Account.cpp:150 libgnucash/engine/Account.cpp:164
+#: libgnucash/engine/Account.cpp:151 libgnucash/engine/Account.cpp:165
 msgid "Charge"
 msgstr "A crédito"
 
@@ -9299,8 +9329,8 @@ msgstr "Recibo"
 #: gnucash/register/ledger-core/split-register.c:2680
 #: gnucash/register/ledger-core/split-register.c:2691
 #: gnucash/register/ledger-core/split-register.c:2723
-#: libgnucash/engine/Account.cpp:145 libgnucash/engine/Account.cpp:166
-#: libgnucash/engine/Account.cpp:174 libgnucash/engine/Account.cpp:175
+#: libgnucash/engine/Account.cpp:146 libgnucash/engine/Account.cpp:167
+#: libgnucash/engine/Account.cpp:175 libgnucash/engine/Account.cpp:176
 msgid "Increase"
 msgstr "Acréscimo"
 
@@ -9316,8 +9346,8 @@ msgstr "Acréscimo"
 #: gnucash/register/ledger-core/split-register.c:2681
 #: gnucash/register/ledger-core/split-register.c:2692
 #: gnucash/register/ledger-core/split-register.c:2724
-#: libgnucash/engine/Account.cpp:146 libgnucash/engine/Account.cpp:154
-#: libgnucash/engine/Account.cpp:155 libgnucash/engine/Account.cpp:165
+#: libgnucash/engine/Account.cpp:147 libgnucash/engine/Account.cpp:155
+#: libgnucash/engine/Account.cpp:156 libgnucash/engine/Account.cpp:166
 msgid "Decrease"
 msgstr "Decréscimo"
 
@@ -9380,8 +9410,8 @@ msgstr "Débito directo"
 #: gnucash/register/ledger-core/split-register.c:2693
 #: gnucash/register/ledger-core/split-register.c:2698
 #: gnucash/register/ledger-core/split-register.c:2725
-#: libgnucash/engine/Account.cpp:147 libgnucash/engine/Account.cpp:148
-#: libgnucash/engine/Account.cpp:149
+#: libgnucash/engine/Account.cpp:148 libgnucash/engine/Account.cpp:149
+#: libgnucash/engine/Account.cpp:150
 msgid "Buy"
 msgstr "Compra"
 
@@ -9403,8 +9433,8 @@ msgstr "Compra"
 #: gnucash/register/ledger-core/split-register.c:2694
 #: gnucash/register/ledger-core/split-register.c:2699
 #: gnucash/register/ledger-core/split-register.c:2726
-#: libgnucash/engine/Account.cpp:167 libgnucash/engine/Account.cpp:168
-#: libgnucash/engine/Account.cpp:169
+#: libgnucash/engine/Account.cpp:168 libgnucash/engine/Account.cpp:169
+#: libgnucash/engine/Account.cpp:170
 msgid "Sell"
 msgstr "Venda"
 
@@ -9424,7 +9454,7 @@ msgstr "Levantamento MB"
 #: gnucash/gnome-utils/gnc-tree-model-split-reg.c:2921
 #: gnucash/gnome-utils/gnc-tree-view-split-reg.c:2981
 #: gnucash/register/ledger-core/split-register.c:2686
-#: libgnucash/engine/Account.cpp:171
+#: libgnucash/engine/Account.cpp:172
 msgid "Rebate"
 msgstr "Reembolso"
 
@@ -9437,10 +9467,10 @@ msgstr "Cheque"
 #: gnucash/import-export/qif-imp/qif-dialog-utils.scm:72
 #: gnucash/import-export/qif-imp/qif-dialog-utils.scm:76
 #: gnucash/register/ledger-core/split-register.c:2700
-#: gnucash/report/reports/standard/balance-sheet.scm:502
+#: gnucash/report/reports/standard/balance-sheet.scm:503
 #: gnucash/report/reports/standard/balsheet-pnl.scm:1099
-#: gnucash/report/reports/standard/budget-balance-sheet.scm:723
-#: libgnucash/app-utils/gnc-ui-util.c:1017 libgnucash/engine/Account.cpp:4324
+#: gnucash/report/reports/standard/budget-balance-sheet.scm:724
+#: libgnucash/app-utils/gnc-ui-util.c:1044 libgnucash/engine/Account.cpp:4371
 msgid "Equity"
 msgstr "Capital próprio"
 
@@ -9461,7 +9491,7 @@ msgstr "Capital próprio"
 #: gnucash/report/reports/standard/price-scatter.scm:312
 #: gnucash/report/reports/standard/price-scatter.scm:326
 #: gnucash/report/reports/standard/register.scm:150
-#: gnucash/report/reports/standard/register.scm:422
+#: gnucash/report/reports/standard/register.scm:393
 #: gnucash/report/trep-engine.scm:955 gnucash/report/trep-engine.scm:1079
 #: gnucash/report/trep-engine.scm:1262
 msgid "Price"
@@ -9488,8 +9518,8 @@ msgid "Dist"
 msgstr "Dist"
 
 #: gnucash/gnome-utils/gnc-tree-util-split-reg.c:45
-#: gnucash/import-export/import-main-matcher.c:1344
-#: gnucash/report/reports/standard/register.scm:229
+#: gnucash/import-export/import-main-matcher.c:1395
+#: gnucash/report/reports/standard/register.scm:218
 #: libgnucash/engine/Split.c:1592 libgnucash/engine/Split.c:1609
 msgid "-- Split Transaction --"
 msgstr "-- Transacção com parcelas --"
@@ -9567,26 +9597,26 @@ msgstr "_Valor"
 msgid "_Recalculate"
 msgstr "_Recalcular"
 
-#: gnucash/gnome-utils/gnc-tree-view-account.c:782
+#: gnucash/gnome-utils/gnc-tree-view-account.c:805
 #: gnucash/gtkbuilder/assistant-csv-trans-import.glade:1005
 #: gnucash/import-export/csv-exp/csv-transactions-export.c:613
 #: gnucash/import-export/csv-exp/csv-transactions-export.c:627
 #: gnucash/report/reports/locale-specific/de_DE/taxtxf.scm:291
 #: gnucash/report/reports/standard/general-ledger.scm:72
 #: gnucash/report/reports/standard/general-ledger.scm:92
-#: gnucash/report/reports/standard/trial-balance.scm:598
+#: gnucash/report/reports/standard/trial-balance.scm:599
 #: gnucash/report/trep-engine.scm:147 gnucash/report/trep-engine.scm:981
 #: gnucash/report/trep-engine.scm:1074
 msgid "Account Name"
 msgstr "Nome da conta"
 
-#: gnucash/gnome-utils/gnc-tree-view-account.c:793
+#: gnucash/gnome-utils/gnc-tree-view-account.c:816
 #: gnucash/gnome-utils/gnc-tree-view-split-reg.c:2916
 #: gnucash/gtkbuilder/dialog-price.glade:574
 msgid "Commodity"
 msgstr "Mercadoria"
 
-#: gnucash/gnome-utils/gnc-tree-view-account.c:799
+#: gnucash/gnome-utils/gnc-tree-view-account.c:822
 #: gnucash/report/options-utilities.scm:197
 #: gnucash/report/reports/standard/account-summary.scm:115
 #: gnucash/report/reports/standard/general-ledger.scm:74
@@ -9596,108 +9626,115 @@ msgstr "Mercadoria"
 msgid "Account Code"
 msgstr "Código da conta"
 
-#: gnucash/gnome-utils/gnc-tree-view-account.c:811
+#: gnucash/gnome-utils/gnc-tree-view-account.c:834
 msgid "Last Num"
 msgstr "Último nº."
 
-#: gnucash/gnome-utils/gnc-tree-view-account.c:817
+#: gnucash/gnome-utils/gnc-tree-view-account.c:840
 msgid "Present"
 msgstr "Actual"
 
-#: gnucash/gnome-utils/gnc-tree-view-account.c:824
+#: gnucash/gnome-utils/gnc-tree-view-account.c:847
 msgid "Present (Report)"
 msgstr "Actual (relatório)"
 
-#: gnucash/gnome-utils/gnc-tree-view-account.c:838
+#: gnucash/gnome-utils/gnc-tree-view-account.c:861
 msgid "Balance (Report)"
 msgstr "Balanço (relatório)"
 
-#: gnucash/gnome-utils/gnc-tree-view-account.c:845
+#: gnucash/gnome-utils/gnc-tree-view-account.c:868
 msgid "Balance (Period)"
 msgstr "Balanço (período)"
 
-#: gnucash/gnome-utils/gnc-tree-view-account.c:859
+#: gnucash/gnome-utils/gnc-tree-view-account.c:882
 msgid "Cleared (Report)"
 msgstr "Confirmada (relatório)"
 
-#: gnucash/gnome-utils/gnc-tree-view-account.c:873
+#: gnucash/gnome-utils/gnc-tree-view-account.c:896
 msgid "Reconciled (Report)"
 msgstr "Reconciliada (relatório)"
 
-#: gnucash/gnome-utils/gnc-tree-view-account.c:880
+#: gnucash/gnome-utils/gnc-tree-view-account.c:903
 msgid "Last Reconcile Date"
 msgstr "Última data de reconciliação"
 
-#: gnucash/gnome-utils/gnc-tree-view-account.c:886
+#: gnucash/gnome-utils/gnc-tree-view-account.c:909
 msgid "Future Minimum"
 msgstr "Mínimo futuro"
 
-#: gnucash/gnome-utils/gnc-tree-view-account.c:893
+#: gnucash/gnome-utils/gnc-tree-view-account.c:916
 msgid "Future Minimum (Report)"
 msgstr "Mínimo futuro (relatório)"
 
-#: gnucash/gnome-utils/gnc-tree-view-account.c:907
+#: gnucash/gnome-utils/gnc-tree-view-account.c:930
 msgid "Total (Report)"
 msgstr "Total (relatório)"
 
-#: gnucash/gnome-utils/gnc-tree-view-account.c:914
+#: gnucash/gnome-utils/gnc-tree-view-account.c:937
 msgid "Total (Period)"
 msgstr "Total (período)"
 
-#: gnucash/gnome-utils/gnc-tree-view-account.c:923
+#: gnucash/gnome-utils/gnc-tree-view-account.c:946
 #, fuzzy
 #| msgid "C"
 msgctxt "Column header for 'Color'"
 msgid "C"
 msgstr "C"
 
-#: gnucash/gnome-utils/gnc-tree-view-account.c:931
-#: gnucash/gnome-utils/gnc-tree-view-account.c:934
+#: gnucash/gnome-utils/gnc-tree-view-account.c:954
+#: gnucash/gnome-utils/gnc-tree-view-account.c:957
 msgid "Account Color"
 msgstr "Cor da conta"
 
-#: gnucash/gnome-utils/gnc-tree-view-account.c:944
+#: gnucash/gnome-utils/gnc-tree-view-account.c:967
 msgid "Tax Info"
 msgstr "Informação de impostos"
 
-#: gnucash/gnome-utils/gnc-tree-view-account.c:958
+#: gnucash/gnome-utils/gnc-tree-view-account.c:981
 msgctxt "Column header for 'Hidden'"
 msgid "H"
 msgstr ""
 
+#: gnucash/gnome-utils/gnc-tree-view-account.c:997
+#, fuzzy
+#| msgid "OK"
+msgctxt "Column header for 'Opening Balance'"
+msgid "O"
+msgstr "Aceitar"
+
 #. Translators: %s is a currency mnemonic.
-#: gnucash/gnome-utils/gnc-tree-view-account.c:1787
+#: gnucash/gnome-utils/gnc-tree-view-account.c:1818
 #, c-format
 msgid "Present (%s)"
 msgstr "Actual (%s)"
 
 #. Translators: %s is a currency mnemonic.
-#: gnucash/gnome-utils/gnc-tree-view-account.c:1790
+#: gnucash/gnome-utils/gnc-tree-view-account.c:1821
 #: gnucash/gnome-utils/gnc-tree-view-owner.c:924
 #, c-format
 msgid "Balance (%s)"
 msgstr "Saldo (%s)"
 
 #. Translators: %s is a currency mnemonic.
-#: gnucash/gnome-utils/gnc-tree-view-account.c:1793
+#: gnucash/gnome-utils/gnc-tree-view-account.c:1824
 #, c-format
 msgid "Cleared (%s)"
 msgstr "Confirmada (%s)"
 
 #. Translators: %s is a currency mnemonic.
-#: gnucash/gnome-utils/gnc-tree-view-account.c:1796
+#: gnucash/gnome-utils/gnc-tree-view-account.c:1827
 #, c-format
 msgid "Reconciled (%s)"
 msgstr "Reconciliada (%s)"
 
 #. Translators: %s is a currency mnemonic.
-#: gnucash/gnome-utils/gnc-tree-view-account.c:1799
+#: gnucash/gnome-utils/gnc-tree-view-account.c:1830
 #, c-format
 msgid "Future Minimum (%s)"
 msgstr "Mínimo futuro (%s)"
 
 #. Translators: %s is a currency mnemonic.
-#: gnucash/gnome-utils/gnc-tree-view-account.c:1802
+#: gnucash/gnome-utils/gnc-tree-view-account.c:1833
 #, c-format
 msgid "Total (%s)"
 msgstr "Total (%s)"
@@ -9839,7 +9876,7 @@ msgstr "Barra de estado"
 
 #: gnucash/gnome-utils/gnc-tree-view-split-reg.c:1247
 #: gnucash/report/reports/standard/balsheet-eg.scm:386
-#: libgnucash/engine/Scrub.c:392
+#: libgnucash/engine/Scrub.c:407
 msgid "Imbalance"
 msgstr "Desequilíbrio"
 
@@ -9937,19 +9974,19 @@ msgstr "Montante/Valor"
 
 #: gnucash/gnome-utils/gnc-tree-view-split-reg.c:2948
 #: gnucash/import-export/csv-imp/gnc-imp-props-tx.cpp:67
-#: libgnucash/engine/Account.cpp:162
+#: libgnucash/engine/Account.cpp:163
 msgid "Withdrawal"
 msgstr "Levantamento"
 
 #: gnucash/gnome-utils/gnc-tree-view-split-reg.c:2953
-#: libgnucash/engine/Account.cpp:163
+#: libgnucash/engine/Account.cpp:164
 msgid "Spend"
 msgstr "Gastos"
 
 #: gnucash/gnome-utils/gnc-tree-view-split-reg.c:3003
 #: gnucash/gnome-utils/gnc-tree-view-split-reg.c:3010
 #: gnucash/report/reports/standard/reconcile-report.scm:89
-#: libgnucash/engine/Account.cpp:161
+#: libgnucash/engine/Account.cpp:162
 msgid "Funds Out"
 msgstr "Fundos saídos"
 
@@ -9960,12 +9997,12 @@ msgstr "Fórmula de crédito"
 
 #: gnucash/gnome-utils/gnc-tree-view-split-reg.c:3033
 #: gnucash/import-export/csv-imp/gnc-imp-props-tx.cpp:66
-#: libgnucash/engine/Account.cpp:142
+#: libgnucash/engine/Account.cpp:143
 msgid "Deposit"
 msgstr "Depósito"
 
 #: gnucash/gnome-utils/gnc-tree-view-split-reg.c:3038
-#: libgnucash/engine/Account.cpp:143
+#: libgnucash/engine/Account.cpp:144
 msgid "Receive"
 msgstr "Recebimento"
 
@@ -9975,7 +10012,7 @@ msgstr "Recebimento"
 #: gnucash/report/reports/standard/customer-summary.scm:326
 #: gnucash/report/reports/standard/net-charts.scm:371
 #: gnucash/report/reports/standard/net-charts.scm:420
-#: libgnucash/engine/Account.cpp:151 libgnucash/engine/Account.cpp:4323
+#: libgnucash/engine/Account.cpp:152 libgnucash/engine/Account.cpp:4370
 #: libgnucash/engine/gncInvoice.c:1084
 msgid "Expense"
 msgstr "Despesa"
@@ -9983,7 +10020,7 @@ msgstr "Despesa"
 #: gnucash/gnome-utils/gnc-tree-view-split-reg.c:3084
 #: gnucash/gnome-utils/gnc-tree-view-split-reg.c:3091
 #: gnucash/report/reports/standard/reconcile-report.scm:86
-#: libgnucash/engine/Account.cpp:141
+#: libgnucash/engine/Account.cpp:142
 msgid "Funds In"
 msgstr "Fundos entrados"
 
@@ -10095,7 +10132,7 @@ msgstr "Insira fórmula de débito para a transacção real"
 
 #: gnucash/gnome-utils/gnc-tree-view-sx-list.c:140
 #: gnucash/gtkbuilder/dialog-sx.glade:1041
-#: gnucash/report/html-utilities.scm:268
+#: gnucash/report/html-utilities.scm:292
 msgid "Enabled"
 msgstr "Activo"
 
@@ -10238,38 +10275,38 @@ msgstr "Pode também procurar e reportar erros em"
 msgid "To find the last stable version, please refer to {1}"
 msgstr "Para encontrar a última versão estável, por favor, veja em"
 
-#: gnucash/gnucash-core-app.cpp:467
+#: gnucash/gnucash-core-app.cpp:464
 msgid "- GnuCash, accounting for personal and small business finance"
 msgstr "- Gnucash, contabilidade para finanças pessoais e de pequenos negócios"
 
-#: gnucash/gnucash-core-app.cpp:469
+#: gnucash/gnucash-core-app.cpp:466
 msgid "{1} [options] [datafile]"
 msgstr ""
 
-#: gnucash/gnucash-core-app.cpp:497
+#: gnucash/gnucash-core-app.cpp:494
 #, fuzzy
 msgid "GnuCash {1}"
 msgstr "GnuCash "
 
-#: gnucash/gnucash-core-app.cpp:498
+#: gnucash/gnucash-core-app.cpp:495
 #, fuzzy
 msgid "GnuCash {1} development version"
 msgstr "Versão de desenvolvimento %s do GnuCash"
 
-#: gnucash/gnucash-core-app.cpp:526
+#: gnucash/gnucash-core-app.cpp:523
 #, fuzzy
 msgid "Common Options"
 msgstr "Opções do livro"
 
-#: gnucash/gnucash-core-app.cpp:529
+#: gnucash/gnucash-core-app.cpp:526
 msgid "Show this help message"
 msgstr ""
 
-#: gnucash/gnucash-core-app.cpp:531
+#: gnucash/gnucash-core-app.cpp:528
 msgid "Show GnuCash version"
 msgstr "Mostrar versão do GnuCash"
 
-#: gnucash/gnucash-core-app.cpp:533
+#: gnucash/gnucash-core-app.cpp:530
 msgid ""
 "Enable debugging mode: provide deep detail in the logs.\n"
 "This is equivalent to: --log \"=info\" --log \"qof=info\" --log \"gnc=info\""
@@ -10277,11 +10314,11 @@ msgstr ""
 "Activar modo de depuração: fornece detalhes profundos nos diários.\n"
 "É equivalente a: --log \"=info\" --log \"qof=info\" --log \"gnc=info\""
 
-#: gnucash/gnucash-core-app.cpp:535
+#: gnucash/gnucash-core-app.cpp:532
 msgid "Enable extra/development/debugging features."
 msgstr "Activar funcionalidades extra/de desenvolvimento/de depuração."
 
-#: gnucash/gnucash-core-app.cpp:537
+#: gnucash/gnucash-core-app.cpp:534
 msgid ""
 "Log level overrides, of the form \"modulename={debug,info,warn,crit,"
 "error}\"\n"
@@ -10293,7 +10330,7 @@ msgstr ""
 "Exemplos: \"--log qof=debug\" ou \"--log gnc.backend.file.sx=info\"\n"
 "Pode ser chamado múltiplas vezes."
 
-#: gnucash/gnucash-core-app.cpp:539
+#: gnucash/gnucash-core-app.cpp:536
 msgid ""
 "File to log into; defaults to \"/tmp/gnucash.trace\"; can be \"stderr\" or "
 "\"stdout\"."
@@ -10301,7 +10338,7 @@ msgstr ""
 "Ficheiro onde escrever; predefinido como \"/tmp/gnucash.trace\"; pode ser "
 "\"stderr\" ou \"stdout\"."
 
-#: gnucash/gnucash-core-app.cpp:541
+#: gnucash/gnucash-core-app.cpp:538
 msgid ""
 "Set the prefix for gsettings schemas for gsettings queries. This can be "
 "useful to have a different settings tree while debugging."
@@ -10309,12 +10346,12 @@ msgstr ""
 "Definir o prefixo para esquemas gsttings como consultas gsettings. Pode ser "
 "útil ter uma árvore de diferentes definições ao depurar"
 
-#: gnucash/gnucash-core-app.cpp:543
+#: gnucash/gnucash-core-app.cpp:540
 #, fuzzy
 msgid "Hidden Options"
 msgstr "Opções do orçamento"
 
-#: gnucash/gnucash-core-app.cpp:546
+#: gnucash/gnucash-core-app.cpp:543
 msgid "[datafile]"
 msgstr "[ficheirodados]"
 
@@ -11002,7 +11039,7 @@ msgid "Enable SKIP transaction action"
 msgstr "Activar acção SALTAR transacção"
 
 #: gnucash/gschemas/org.gnucash.dialogs.import.generic.gschema.xml.in:6
-#: gnucash/gtkbuilder/dialog-preferences.glade:1915
+#: gnucash/gtkbuilder/dialog-preferences.glade:2032
 msgid ""
 "Enable the SKIP action in the transaction matcher. If enabled, a transaction "
 "whose best match's score is in the yellow zone (above the Auto-ADD threshold "
@@ -11018,7 +11055,7 @@ msgid "Enable UPDATE match action"
 msgstr "Activar acção ACTUALIZAR comparação"
 
 #: gnucash/gschemas/org.gnucash.dialogs.import.generic.gschema.xml.in:11
-#: gnucash/gtkbuilder/dialog-preferences.glade:1934
+#: gnucash/gtkbuilder/dialog-preferences.glade:2051
 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 "
@@ -11118,12 +11155,12 @@ msgstr ""
 
 #. Preferences->Online Banking:Generic
 #: gnucash/gschemas/org.gnucash.dialogs.import.generic.gschema.xml.in:40
-#: gnucash/gtkbuilder/dialog-preferences.glade:2125
+#: gnucash/gtkbuilder/dialog-preferences.glade:2242
 msgid "Automatically create new commodities"
 msgstr "Criar automaticamente novas mercadorias"
 
 #: gnucash/gschemas/org.gnucash.dialogs.import.generic.gschema.xml.in:41
-#: gnucash/gtkbuilder/dialog-preferences.glade:2131
+#: gnucash/gtkbuilder/dialog-preferences.glade:2248
 msgid ""
 "Enables the automatic creation of new commodities if any unknown commodity "
 "is encountered during import. Otherwise the user will be asked what to do "
@@ -11330,13 +11367,13 @@ msgstr ""
 "mostrado, caso contrário não é."
 
 #: gnucash/gschemas/org.gnucash.general.finance-quote.gschema.xml.in:5
-#: gnucash/gtkbuilder/dialog-preferences.glade:3497
+#: gnucash/gtkbuilder/dialog-preferences.glade:3614
 msgid "Alpha Vantage API key"
 msgstr "Chave Alpha Vantage API"
 
 #: gnucash/gschemas/org.gnucash.general.finance-quote.gschema.xml.in:6
-#: gnucash/gtkbuilder/dialog-preferences.glade:3496
-#: gnucash/gtkbuilder/dialog-preferences.glade:3508
+#: gnucash/gtkbuilder/dialog-preferences.glade:3613
+#: gnucash/gtkbuilder/dialog-preferences.glade:3625
 msgid ""
 "To retrieve online quotes from Alphavantage, this key needs to be set. A key "
 "can be retrieved from the Alpha Vantage website."
@@ -11426,7 +11463,7 @@ msgid "Auto-save time interval"
 msgstr "Intervalo entre gravações automáticas"
 
 #: gnucash/gschemas/org.gnucash.gschema.xml.in:41
-#: gnucash/gtkbuilder/dialog-preferences.glade:1527
+#: gnucash/gtkbuilder/dialog-preferences.glade:1644
 msgid ""
 "The number of minutes until saving of the data file to harddisk will be "
 "started automatically. If zero, no saving will be started automatically."
@@ -11435,12 +11472,12 @@ msgstr ""
 "iniciada. Se for zero, não serão feitas gravações automáticas."
 
 #: gnucash/gschemas/org.gnucash.gschema.xml.in:45
-#: gnucash/gtkbuilder/dialog-preferences.glade:1644
+#: gnucash/gtkbuilder/dialog-preferences.glade:1761
 msgid "Enable timeout on \"Save changes on closing\" question"
 msgstr "Permitir expiração de tempo na questão \"Gravar alterações ao sair?\""
 
 #: gnucash/gschemas/org.gnucash.gschema.xml.in:46
-#: gnucash/gtkbuilder/dialog-preferences.glade:1648
+#: gnucash/gtkbuilder/dialog-preferences.glade:1765
 msgid ""
 "If enabled, the \"Save changes on closing\" question will only wait a "
 "limited number of seconds for an answer. If the user didn't answer within "
@@ -11456,7 +11493,7 @@ msgid "Time to wait for answer"
 msgstr "Tempo a esperar pela resposta"
 
 #: gnucash/gschemas/org.gnucash.gschema.xml.in:51
-#: gnucash/gtkbuilder/dialog-preferences.glade:1683
+#: gnucash/gtkbuilder/dialog-preferences.glade:1800
 msgid ""
 "The number of seconds to wait before the question window will be closed and "
 "the changes saved automatically."
@@ -11501,7 +11538,7 @@ msgstr ""
 "Forçar amostragem de cotações em decimais, mesmo as que serão arredondadas."
 
 #: gnucash/gschemas/org.gnucash.gschema.xml.in:71
-#: gnucash/gtkbuilder/dialog-preferences.glade:1087
+#: gnucash/gtkbuilder/dialog-preferences.glade:1204
 msgid ""
 "If active, GnuCash will round prices as necessary to display them as "
 "decimals instead of displaying the exact fraction if the fractional part "
@@ -11512,7 +11549,7 @@ msgstr ""
 "exactamente representada como decimal."
 
 #: gnucash/gschemas/org.gnucash.gschema.xml.in:75
-#: gnucash/gtkbuilder/dialog-preferences.glade:1596
+#: gnucash/gtkbuilder/dialog-preferences.glade:1713
 msgid "Do not create log/backup files."
 msgstr "Não criar ficheiros de diário/segurança."
 
@@ -11533,12 +11570,12 @@ msgstr ""
 "ficheiros um certo número de dias, definidos na chave \"retain-days\"."
 
 #: gnucash/gschemas/org.gnucash.gschema.xml.in:80
-#: gnucash/gtkbuilder/dialog-preferences.glade:1614
+#: gnucash/gtkbuilder/dialog-preferences.glade:1731
 msgid "Delete old log/backup files after this many days (0 = never)."
 msgstr "Eliminar ficheiros de diário/segurança após estes dias (0=nunca)."
 
 #: gnucash/gschemas/org.gnucash.gschema.xml.in:85
-#: gnucash/gtkbuilder/dialog-preferences.glade:1632
+#: gnucash/gtkbuilder/dialog-preferences.glade:1749
 msgid "Do not delete log/backup files."
 msgstr "Não eliminar ficheiros de diário/segurança."
 
@@ -11555,7 +11592,7 @@ msgstr ""
 "de diário/segurança serão eliminados (0=nunca)."
 
 #: gnucash/gschemas/org.gnucash.gschema.xml.in:95
-#: gnucash/gtkbuilder/dialog-preferences.glade:519
+#: gnucash/gtkbuilder/dialog-preferences.glade:636
 msgid "Don't sign reverse any accounts."
 msgstr "Não inverter o sinal de quaisquer contas."
 
@@ -11578,7 +11615,7 @@ msgstr ""
 "\"nenhuma\" não inverte o sinal de nenhum saldo."
 
 #: gnucash/gschemas/org.gnucash.gschema.xml.in:100
-#: gnucash/gtkbuilder/dialog-preferences.glade:538
+#: gnucash/gtkbuilder/dialog-preferences.glade:655
 msgid ""
 "Sign reverse balances on the following: Credit Card, Payable, Liability, "
 "Equity, and Income."
@@ -11587,7 +11624,7 @@ msgstr ""
 "próprio e receitas."
 
 #: gnucash/gschemas/org.gnucash.gschema.xml.in:105
-#: gnucash/gtkbuilder/dialog-preferences.glade:557
+#: gnucash/gtkbuilder/dialog-preferences.glade:674
 msgid "Sign reverse balances on income and expense accounts."
 msgstr "Inverter o sinal de balanços de contas de receitas e despesas."
 
@@ -11664,7 +11701,7 @@ msgstr ""
 "cortado ao meio e substituído por reticências."
 
 #: gnucash/gschemas/org.gnucash.gschema.xml.in:135
-#: gnucash/gtkbuilder/dialog-preferences.glade:803
+#: gnucash/gtkbuilder/dialog-preferences.glade:920
 msgid "Use the system locale currency for all newly created accounts."
 msgstr ""
 "Usar as configurações regionais de moeda para todas as contas recém-criadas."
@@ -11684,7 +11721,7 @@ msgstr ""
 "especificada na chave currency-other."
 
 #: gnucash/gschemas/org.gnucash.gschema.xml.in:140
-#: gnucash/gtkbuilder/dialog-preferences.glade:783
+#: gnucash/gtkbuilder/dialog-preferences.glade:900
 msgid "Use the specified currency for all newly created accounts."
 msgstr "Usar a moeda especificada para todas as contas recém-criadas."
 
@@ -11730,7 +11767,7 @@ msgstr ""
 "Estados Unidos."
 
 #: gnucash/gschemas/org.gnucash.gschema.xml.in:160
-#: gnucash/gtkbuilder/dialog-preferences.glade:981
+#: gnucash/gtkbuilder/dialog-preferences.glade:1098
 msgid "In the current calendar year"
 msgstr "completada com o ano de calendário actual"
 
@@ -11758,7 +11795,7 @@ msgid "Maximum number of months to go back."
 msgstr "Número máximo de meses a recuar."
 
 #: gnucash/gschemas/org.gnucash.gschema.xml.in:171
-#: gnucash/gtkbuilder/dialog-preferences.glade:1007
+#: gnucash/gtkbuilder/dialog-preferences.glade:1124
 msgid ""
 "Dates will be completed so that they are close to the current date. Enter "
 "the maximum number of months to go backwards in time when completing dates."
@@ -11803,7 +11840,7 @@ msgstr ""
 "mostrado."
 
 #: gnucash/gschemas/org.gnucash.gschema.xml.in:190
-#: gnucash/gtkbuilder/dialog-preferences.glade:3231
+#: gnucash/gtkbuilder/dialog-preferences.glade:3348
 msgid "Display the notebook tabs at the top of the window."
 msgstr "Mostrar os separadores do bloco de notas ao cimo da janela."
 
@@ -11821,22 +11858,22 @@ msgstr ""
 "\"Fundo\", \"Esquerda\" e \"Direita\". Predefinida como \"Topo\"."
 
 #: gnucash/gschemas/org.gnucash.gschema.xml.in:195
-#: gnucash/gtkbuilder/dialog-preferences.glade:3250
+#: gnucash/gtkbuilder/dialog-preferences.glade:3367
 msgid "Display the notebook tabs at the bottom of the window."
 msgstr "Mostrar os separadores do bloco de notas no fundo da janela."
 
 #: gnucash/gschemas/org.gnucash.gschema.xml.in:200
-#: gnucash/gtkbuilder/dialog-preferences.glade:3269
+#: gnucash/gtkbuilder/dialog-preferences.glade:3386
 msgid "Display the notebook tabs at the left of the window."
 msgstr "Mostrar os separadores do bloco de notas à esquerda da janela."
 
 #: gnucash/gschemas/org.gnucash.gschema.xml.in:205
-#: gnucash/gtkbuilder/dialog-preferences.glade:3288
+#: gnucash/gtkbuilder/dialog-preferences.glade:3405
 msgid "Display the notebook tabs at the right of the window."
 msgstr "Mostrar os separadores do bloco de notas à direita da janela."
 
 #: gnucash/gschemas/org.gnucash.gschema.xml.in:210
-#: gnucash/gtkbuilder/dialog-preferences.glade:3320
+#: gnucash/gtkbuilder/dialog-preferences.glade:3437
 msgid "Display the summary bar at the top of the page."
 msgstr "Mostrar a barra de resumo no topo da página."
 
@@ -11852,12 +11889,12 @@ msgstr ""
 "predefinição é \"Fundo\"."
 
 #: gnucash/gschemas/org.gnucash.gschema.xml.in:215
-#: gnucash/gtkbuilder/dialog-preferences.glade:3339
+#: gnucash/gtkbuilder/dialog-preferences.glade:3456
 msgid "Display the summary bar at the bottom of the page."
 msgstr "Mostrar a barra resumo no fundo da página."
 
 #: gnucash/gschemas/org.gnucash.gschema.xml.in:220
-#: gnucash/gtkbuilder/dialog-preferences.glade:3189
+#: gnucash/gtkbuilder/dialog-preferences.glade:3306
 msgid "Closing a tab moves to the most recently visited tab."
 msgstr "Fechar um separador move para o separador mais recentemente visitado."
 
@@ -11870,7 +11907,7 @@ msgstr ""
 "visitou. Senão, fechar um separador move o foco um separador à esquerda."
 
 #: gnucash/gschemas/org.gnucash.gschema.xml.in:225
-#: gnucash/gtkbuilder/dialog-preferences.glade:1292
+#: gnucash/gtkbuilder/dialog-preferences.glade:1409
 msgid ""
 "Set book option on new files to use split \"action\" field for \"Num\" field "
 "on registers/reports"
@@ -11879,7 +11916,7 @@ msgstr ""
 "campo \"Núm\" em diários/relatórios"
 
 #: gnucash/gschemas/org.gnucash.gschema.xml.in:226
-#: gnucash/gtkbuilder/dialog-preferences.glade:1298
+#: gnucash/gtkbuilder/dialog-preferences.glade:1415
 msgid ""
 "If selected, the default book option for new files is set so that the 'Num' "
 "cell on registers shows/updates the split 'action' field and the transaction "
@@ -12027,7 +12064,7 @@ msgstr ""
 "após todas as transacções."
 
 #: gnucash/gschemas/org.gnucash.gschema.xml.in:285
-#: gnucash/gtkbuilder/dialog-preferences.glade:2625
+#: gnucash/gtkbuilder/dialog-preferences.glade:2742
 msgid "Show all transactions on one line. (Two in double line mode.)"
 msgstr ""
 "Mostrar todas as transacções numa linha (duas, em modo de linha dupla)."
@@ -12052,7 +12089,7 @@ msgstr ""
 "todas as transacções de forma expandida."
 
 #: gnucash/gschemas/org.gnucash.gschema.xml.in:290
-#: gnucash/gtkbuilder/dialog-preferences.glade:2644
+#: gnucash/gtkbuilder/dialog-preferences.glade:2761
 msgid ""
 "Automatically expand the current transaction to show all splits. All other "
 "transactions are shown on one line. (Two in double line mode.)"
@@ -12062,7 +12099,7 @@ msgstr ""
 "dupla)."
 
 #: gnucash/gschemas/org.gnucash.gschema.xml.in:295
-#: gnucash/gtkbuilder/dialog-preferences.glade:2663
+#: gnucash/gtkbuilder/dialog-preferences.glade:2780
 msgid "All transactions are expanded to show all splits."
 msgstr "Todas as transacções são expandidas para mostrar todas as parcelas."
 
@@ -12106,7 +12143,7 @@ msgid "Show the entered and reconcile dates"
 msgstr "Mostrar as datas de entrada e reconciliada"
 
 #: gnucash/gschemas/org.gnucash.gschema.xml.in:311
-#: gnucash/gtkbuilder/dialog-preferences.glade:2807
+#: gnucash/gtkbuilder/dialog-preferences.glade:2924
 msgid ""
 "Show the date when the transaction was entered below the posted date and "
 "reconciled date on split row."
@@ -12119,7 +12156,7 @@ msgid "Show entered and reconciled dates on selection"
 msgstr "Mostrar datas de entrada e reconciliação na selecção"
 
 #: gnucash/gschemas/org.gnucash.gschema.xml.in:316
-#: gnucash/gtkbuilder/dialog-preferences.glade:2855
+#: gnucash/gtkbuilder/dialog-preferences.glade:2972
 msgid "Show the entered date and reconciled date on transaction selection."
 msgstr "Mostrar datas de entrada e reconciliação na selecção de transacção."
 
@@ -12128,7 +12165,7 @@ msgid "Show the calendar buttons"
 msgstr "Mostrar botões de calendário"
 
 #: gnucash/gschemas/org.gnucash.gschema.xml.in:321
-#: gnucash/gtkbuilder/dialog-preferences.glade:2823
+#: gnucash/gtkbuilder/dialog-preferences.glade:2940
 msgid "Show the calendar buttons Cancel, Today and Select."
 msgstr "Mostrar botões de calendário Cancelar, Hoje e Seleccionar."
 
@@ -12137,7 +12174,7 @@ msgid "Move the selection to the blank split on expand"
 msgstr "Mover a selecção para a parcela em branco ao expandir"
 
 #: gnucash/gschemas/org.gnucash.gschema.xml.in:326
-#: gnucash/gtkbuilder/dialog-preferences.glade:2839
+#: gnucash/gtkbuilder/dialog-preferences.glade:2956
 msgid ""
 "This will move the selection to the blank split when the transaction is "
 "expanded."
@@ -12150,7 +12187,7 @@ msgid "Number of transactions to show in a register."
 msgstr "Número de transacções a mostrar num diário."
 
 #: gnucash/gschemas/org.gnucash.gschema.xml.in:331
-#: gnucash/gtkbuilder/dialog-preferences.glade:2694
+#: gnucash/gtkbuilder/dialog-preferences.glade:2811
 msgid ""
 "Show this many transactions in a register. A value of zero means show all "
 "transactions."
@@ -12164,7 +12201,7 @@ msgstr "Número de caracteres para conclusão automática."
 
 #. Register2 feature
 #: gnucash/gschemas/org.gnucash.gschema.xml.in:336
-#: gnucash/gtkbuilder/dialog-preferences.glade:2784
+#: gnucash/gtkbuilder/dialog-preferences.glade:2901
 msgid ""
 "This sets the number of characters before auto complete starts for "
 "description, notes and memo fields."
@@ -12185,7 +12222,7 @@ msgstr ""
 "abrem como novos separadores na janela principal."
 
 #: gnucash/gschemas/org.gnucash.gschema.xml.in:348
-#: gnucash/gtkbuilder/dialog-preferences.glade:3058
+#: gnucash/gtkbuilder/dialog-preferences.glade:3175
 msgid "Use the system locale currency for all newly created reports."
 msgstr "Usar a configuração regional de moeda para novos relatórios."
 
@@ -12203,7 +12240,7 @@ msgstr ""
 "definida na chave currency-other."
 
 #: gnucash/gschemas/org.gnucash.gschema.xml.in:353
-#: gnucash/gtkbuilder/dialog-preferences.glade:3038
+#: gnucash/gtkbuilder/dialog-preferences.glade:3155
 msgid "Use the specified currency for all newly created reports."
 msgstr "Usar a moeda especificada para todos os novos relatórios."
 
@@ -12216,7 +12253,7 @@ msgid "Zoom factor to use by default for reports."
 msgstr "Factor de ampliação predefinido para todos os relatórios."
 
 #: gnucash/gschemas/org.gnucash.gschema.xml.in:364
-#: gnucash/gtkbuilder/dialog-preferences.glade:3073
+#: gnucash/gtkbuilder/dialog-preferences.glade:3190
 msgid ""
 "On high resolution screens reports tend to be hard to read. This option "
 "allows you to scale reports up by the set factor. For example setting this "
@@ -12335,12 +12372,12 @@ msgstr ""
 "recentemente aberto."
 
 #: gnucash/gschemas/org.gnucash.warnings.gschema.xml.in:9
-#: gnucash/gschemas/org.gnucash.warnings.gschema.xml.in:107
+#: gnucash/gschemas/org.gnucash.warnings.gschema.xml.in:112
 msgid "Print checks from multiple accounts"
 msgstr "Imprimir cheques de múltiplas contas"
 
 #: gnucash/gschemas/org.gnucash.warnings.gschema.xml.in:10
-#: gnucash/gschemas/org.gnucash.warnings.gschema.xml.in:108
+#: gnucash/gschemas/org.gnucash.warnings.gschema.xml.in:113
 msgid ""
 "This dialog is presented if you try to print checks from multiple accounts "
 "at the same time."
@@ -12349,12 +12386,24 @@ msgstr ""
 "mesmo tempo."
 
 #: gnucash/gschemas/org.gnucash.warnings.gschema.xml.in:14
-#: gnucash/gschemas/org.gnucash.warnings.gschema.xml.in:112
+#: gnucash/gschemas/org.gnucash.warnings.gschema.xml.in:117
+msgid "Confirm Window Close"
+msgstr ""
+
+#: gnucash/gschemas/org.gnucash.warnings.gschema.xml.in:15
+#: gnucash/gschemas/org.gnucash.warnings.gschema.xml.in:118
+#, fuzzy
+#| msgid "This dialog is presented when a read-only register is opened."
+msgid "This dialog is presented when there is more than one window."
+msgstr "Este diálogo é mostrado quando abre um diário só de leitura."
+
+#: gnucash/gschemas/org.gnucash.warnings.gschema.xml.in:19
+#: gnucash/gschemas/org.gnucash.warnings.gschema.xml.in:122
 msgid "Commit changes to a invoice entry"
 msgstr "Submeter alterações a uma entrada de factura"
 
-#: gnucash/gschemas/org.gnucash.warnings.gschema.xml.in:15
-#: gnucash/gschemas/org.gnucash.warnings.gschema.xml.in:113
+#: gnucash/gschemas/org.gnucash.warnings.gschema.xml.in:20
+#: gnucash/gschemas/org.gnucash.warnings.gschema.xml.in:123
 msgid ""
 "This dialog is presented when you attempt to move out of a modified invoice "
 "entry. The changed data must be either saved or discarded."
@@ -12362,13 +12411,13 @@ msgstr ""
 "Este diálogo é mostrado quando tenta sair de uma entrada de factura "
 "modificada. Os dados alterados têm de ser gravados ou descartados."
 
-#: gnucash/gschemas/org.gnucash.warnings.gschema.xml.in:19
-#: gnucash/gschemas/org.gnucash.warnings.gschema.xml.in:117
+#: gnucash/gschemas/org.gnucash.warnings.gschema.xml.in:24
+#: gnucash/gschemas/org.gnucash.warnings.gschema.xml.in:127
 msgid "Duplicating a changed invoice entry"
 msgstr "Duplicar uma entrada de factura alterada"
 
-#: gnucash/gschemas/org.gnucash.warnings.gschema.xml.in:20
-#: gnucash/gschemas/org.gnucash.warnings.gschema.xml.in:118
+#: gnucash/gschemas/org.gnucash.warnings.gschema.xml.in:25
+#: gnucash/gschemas/org.gnucash.warnings.gschema.xml.in:128
 msgid ""
 "This dialog is presented when you attempt to duplicate a modified invoice "
 "entry. The changed data must be saved or the duplication canceled."
@@ -12376,23 +12425,23 @@ msgstr ""
 "Este diálogo é mostrado quando tenta duplicar uma entrada de factura "
 "modificada. Os dados alterados têm de ser gravados ou a duplicação cancelada."
 
-#: gnucash/gschemas/org.gnucash.warnings.gschema.xml.in:24
-#: gnucash/gschemas/org.gnucash.warnings.gschema.xml.in:122
+#: gnucash/gschemas/org.gnucash.warnings.gschema.xml.in:29
+#: gnucash/gschemas/org.gnucash.warnings.gschema.xml.in:132
 msgid "Delete a commodity"
 msgstr "Eliminar uma mercadoria"
 
-#: gnucash/gschemas/org.gnucash.warnings.gschema.xml.in:25
-#: gnucash/gschemas/org.gnucash.warnings.gschema.xml.in:123
+#: gnucash/gschemas/org.gnucash.warnings.gschema.xml.in:30
+#: gnucash/gschemas/org.gnucash.warnings.gschema.xml.in:133
 msgid "This dialog is presented before allowing you to delete a commodity."
 msgstr "Este diálogo é mostrado antes de poder eliminar uma mercadoria."
 
-#: gnucash/gschemas/org.gnucash.warnings.gschema.xml.in:29
-#: gnucash/gschemas/org.gnucash.warnings.gschema.xml.in:127
+#: gnucash/gschemas/org.gnucash.warnings.gschema.xml.in:34
+#: gnucash/gschemas/org.gnucash.warnings.gschema.xml.in:137
 msgid "Delete a commodity with price quotes"
 msgstr "Eliminar uma mercadoria com cotações de preço"
 
-#: gnucash/gschemas/org.gnucash.warnings.gschema.xml.in:30
-#: gnucash/gschemas/org.gnucash.warnings.gschema.xml.in:128
+#: gnucash/gschemas/org.gnucash.warnings.gschema.xml.in:35
+#: gnucash/gschemas/org.gnucash.warnings.gschema.xml.in:138
 msgid ""
 "This dialog is presented before allowing you to delete a commodity that has "
 "price quotes attached. Deleting the commodity will delete the quotes as well."
@@ -12401,13 +12450,13 @@ msgstr ""
 "cotações de preço anexadas. Eliminar a mercadoria também eliminará as "
 "cotações."
 
-#: gnucash/gschemas/org.gnucash.warnings.gschema.xml.in:34
-#: gnucash/gschemas/org.gnucash.warnings.gschema.xml.in:132
+#: gnucash/gschemas/org.gnucash.warnings.gschema.xml.in:39
+#: gnucash/gschemas/org.gnucash.warnings.gschema.xml.in:142
 msgid "Delete multiple price quotes"
 msgstr "Eliminar múltiplas cotações de preços"
 
-#: gnucash/gschemas/org.gnucash.warnings.gschema.xml.in:35
-#: gnucash/gschemas/org.gnucash.warnings.gschema.xml.in:133
+#: gnucash/gschemas/org.gnucash.warnings.gschema.xml.in:40
+#: gnucash/gschemas/org.gnucash.warnings.gschema.xml.in:143
 msgid ""
 "This dialog is presented before allowing you to delete multiple price quotes "
 "at one time."
@@ -12415,25 +12464,25 @@ msgstr ""
 "Este diálogo é mostrado antes de poder eliminar múltiplas cotações de preço "
 "de uma só vez."
 
-#: gnucash/gschemas/org.gnucash.warnings.gschema.xml.in:39
-#: gnucash/gschemas/org.gnucash.warnings.gschema.xml.in:137
+#: gnucash/gschemas/org.gnucash.warnings.gschema.xml.in:44
+#: gnucash/gschemas/org.gnucash.warnings.gschema.xml.in:147
 msgid "Replace existing price"
 msgstr "Substituir cotação existente"
 
-#: gnucash/gschemas/org.gnucash.warnings.gschema.xml.in:40
-#: gnucash/gschemas/org.gnucash.warnings.gschema.xml.in:138
+#: gnucash/gschemas/org.gnucash.warnings.gschema.xml.in:45
+#: gnucash/gschemas/org.gnucash.warnings.gschema.xml.in:148
 msgid ""
 "This dialog is presented before allowing you to replace an existing price."
 msgstr ""
 "Este diálogo é mostrado antes de poder substituir uma cotação existente."
 
-#: gnucash/gschemas/org.gnucash.warnings.gschema.xml.in:44
-#: gnucash/gschemas/org.gnucash.warnings.gschema.xml.in:142
+#: gnucash/gschemas/org.gnucash.warnings.gschema.xml.in:49
+#: gnucash/gschemas/org.gnucash.warnings.gschema.xml.in:152
 msgid "Edit account payable/accounts receivable register"
 msgstr "Editar diário de conta a pagar/contas a receber"
 
-#: gnucash/gschemas/org.gnucash.warnings.gschema.xml.in:45
-#: gnucash/gschemas/org.gnucash.warnings.gschema.xml.in:143
+#: gnucash/gschemas/org.gnucash.warnings.gschema.xml.in:50
+#: gnucash/gschemas/org.gnucash.warnings.gschema.xml.in:153
 msgid ""
 "This dialog is presented before allowing you to edit an accounts payable/"
 "accounts receivable account. These account types are reserved for the "
@@ -12443,23 +12492,23 @@ msgstr ""
 "contas a receber. Estes tipos de contas estão reservados para "
 "funcionalidades de negócios e raramente devem ser manipuladas à mão."
 
-#: gnucash/gschemas/org.gnucash.warnings.gschema.xml.in:49
-#: gnucash/gschemas/org.gnucash.warnings.gschema.xml.in:147
+#: gnucash/gschemas/org.gnucash.warnings.gschema.xml.in:54
+#: gnucash/gschemas/org.gnucash.warnings.gschema.xml.in:157
 msgid "Read only register"
 msgstr "Diário só de leitura"
 
-#: gnucash/gschemas/org.gnucash.warnings.gschema.xml.in:50
-#: gnucash/gschemas/org.gnucash.warnings.gschema.xml.in:148
+#: gnucash/gschemas/org.gnucash.warnings.gschema.xml.in:55
+#: gnucash/gschemas/org.gnucash.warnings.gschema.xml.in:158
 msgid "This dialog is presented when a read-only register is opened."
 msgstr "Este diálogo é mostrado quando abre um diário só de leitura."
 
-#: gnucash/gschemas/org.gnucash.warnings.gschema.xml.in:54
-#: gnucash/gschemas/org.gnucash.warnings.gschema.xml.in:152
+#: gnucash/gschemas/org.gnucash.warnings.gschema.xml.in:59
+#: gnucash/gschemas/org.gnucash.warnings.gschema.xml.in:162
 msgid "Change contents of reconciled split"
 msgstr "Alterar conteúdo de uma parcela reconciliada"
 
-#: gnucash/gschemas/org.gnucash.warnings.gschema.xml.in:55
-#: gnucash/gschemas/org.gnucash.warnings.gschema.xml.in:153
+#: gnucash/gschemas/org.gnucash.warnings.gschema.xml.in:60
+#: gnucash/gschemas/org.gnucash.warnings.gschema.xml.in:163
 msgid ""
 "This dialog is presented before allowing you to change the contents of a "
 "reconciled split. Allowing these changes can make it hard to perform future "
@@ -12469,13 +12518,13 @@ msgstr ""
 "reconciliada. Permitir estas alterações pode tornar difícil fazer futuras "
 "reconciliações."
 
-#: gnucash/gschemas/org.gnucash.warnings.gschema.xml.in:59
-#: gnucash/gschemas/org.gnucash.warnings.gschema.xml.in:157
+#: gnucash/gschemas/org.gnucash.warnings.gschema.xml.in:64
+#: gnucash/gschemas/org.gnucash.warnings.gschema.xml.in:167
 msgid "Mark transaction split as unreconciled"
 msgstr "Marcar parcela da transacção como não reconciliada"
 
-#: gnucash/gschemas/org.gnucash.warnings.gschema.xml.in:60
-#: gnucash/gschemas/org.gnucash.warnings.gschema.xml.in:158
+#: gnucash/gschemas/org.gnucash.warnings.gschema.xml.in:65
+#: gnucash/gschemas/org.gnucash.warnings.gschema.xml.in:168
 msgid ""
 "This dialog is presented before allowing you to mark a transaction split as "
 "unreconciled. Doing so will throw off the reconciled value of the register "
@@ -12485,26 +12534,26 @@ msgstr ""
 "não reconciliada. Fazê-lo vai deitar fora o valor reconciliado no diário e "
 "pode tornar difícil fazer futuras reconciliações."
 
-#: gnucash/gschemas/org.gnucash.warnings.gschema.xml.in:64
-#: gnucash/gschemas/org.gnucash.warnings.gschema.xml.in:162
+#: gnucash/gschemas/org.gnucash.warnings.gschema.xml.in:69
+#: gnucash/gschemas/org.gnucash.warnings.gschema.xml.in:172
 msgid "Remove a split from a transaction"
 msgstr "Remover uma parcela de uma transacção"
 
-#: gnucash/gschemas/org.gnucash.warnings.gschema.xml.in:65
-#: gnucash/gschemas/org.gnucash.warnings.gschema.xml.in:163
+#: gnucash/gschemas/org.gnucash.warnings.gschema.xml.in:70
+#: gnucash/gschemas/org.gnucash.warnings.gschema.xml.in:173
 msgid ""
 "This dialog is presented before allowing you to remove a split from a "
 "transaction."
 msgstr ""
 "Este diálogo é mostrado antes de poder remover uma parcela de uma transacção."
 
-#: gnucash/gschemas/org.gnucash.warnings.gschema.xml.in:69
-#: gnucash/gschemas/org.gnucash.warnings.gschema.xml.in:167
+#: gnucash/gschemas/org.gnucash.warnings.gschema.xml.in:74
+#: gnucash/gschemas/org.gnucash.warnings.gschema.xml.in:177
 msgid "Remove a reconciled split from a transaction"
 msgstr "Remover uma parcela reconciliada de uma transacção"
 
-#: gnucash/gschemas/org.gnucash.warnings.gschema.xml.in:70
-#: gnucash/gschemas/org.gnucash.warnings.gschema.xml.in:168
+#: gnucash/gschemas/org.gnucash.warnings.gschema.xml.in:75
+#: gnucash/gschemas/org.gnucash.warnings.gschema.xml.in:178
 msgid ""
 "This dialog is presented before allowing you to remove a reconciled split "
 "from a transaction. Doing so will throw off the reconciled value of the "
@@ -12514,15 +12563,15 @@ msgstr ""
 "uma transacção. Fazê-lo vai deitar fora o valor reconciliado no diário e "
 "pode tornar difícil fazer futuras reconciliações."
 
-#: gnucash/gschemas/org.gnucash.warnings.gschema.xml.in:74
 #: gnucash/gschemas/org.gnucash.warnings.gschema.xml.in:79
-#: gnucash/gschemas/org.gnucash.warnings.gschema.xml.in:172
-#: gnucash/gschemas/org.gnucash.warnings.gschema.xml.in:177
+#: gnucash/gschemas/org.gnucash.warnings.gschema.xml.in:84
+#: gnucash/gschemas/org.gnucash.warnings.gschema.xml.in:182
+#: gnucash/gschemas/org.gnucash.warnings.gschema.xml.in:187
 msgid "Remove all the splits from a transaction"
 msgstr "Remover todas as parcelas de uma transacção"
 
-#: gnucash/gschemas/org.gnucash.warnings.gschema.xml.in:75
-#: gnucash/gschemas/org.gnucash.warnings.gschema.xml.in:173
+#: gnucash/gschemas/org.gnucash.warnings.gschema.xml.in:80
+#: gnucash/gschemas/org.gnucash.warnings.gschema.xml.in:183
 msgid ""
 "This dialog is presented before allowing you to remove all splits from a "
 "transaction."
@@ -12530,8 +12579,8 @@ msgstr ""
 "Este diálogo é mostrado antes de poder remover todas as parcelas de uma "
 "transacção."
 
-#: gnucash/gschemas/org.gnucash.warnings.gschema.xml.in:80
-#: gnucash/gschemas/org.gnucash.warnings.gschema.xml.in:178
+#: gnucash/gschemas/org.gnucash.warnings.gschema.xml.in:85
+#: gnucash/gschemas/org.gnucash.warnings.gschema.xml.in:188
 msgid ""
 "This dialog is presented before allowing you to remove all splits (including "
 "some reconciled splits) from a transaction. Doing so will throw off the "
@@ -12542,23 +12591,23 @@ msgstr ""
 "algumas reconciliadas) de uma transacção. Fazê-lo vai deitar fora o valor "
 "reconciliado no diário e pode tornar difícil fazer futuras reconciliações."
 
-#: gnucash/gschemas/org.gnucash.warnings.gschema.xml.in:84
-#: gnucash/gschemas/org.gnucash.warnings.gschema.xml.in:182
+#: gnucash/gschemas/org.gnucash.warnings.gschema.xml.in:89
+#: gnucash/gschemas/org.gnucash.warnings.gschema.xml.in:192
 msgid "Delete a transaction"
 msgstr "Eliminar uma transacção"
 
-#: gnucash/gschemas/org.gnucash.warnings.gschema.xml.in:85
-#: gnucash/gschemas/org.gnucash.warnings.gschema.xml.in:183
+#: gnucash/gschemas/org.gnucash.warnings.gschema.xml.in:90
+#: gnucash/gschemas/org.gnucash.warnings.gschema.xml.in:193
 msgid "This dialog is presented before allowing you to delete a transaction."
 msgstr "Este diálogo é mostrado antes de poder eliminar uma transacção."
 
-#: gnucash/gschemas/org.gnucash.warnings.gschema.xml.in:89
-#: gnucash/gschemas/org.gnucash.warnings.gschema.xml.in:187
+#: gnucash/gschemas/org.gnucash.warnings.gschema.xml.in:94
+#: gnucash/gschemas/org.gnucash.warnings.gschema.xml.in:197
 msgid "Delete a transaction with reconciled splits"
 msgstr "Eliminar uma transacção com parcelas reconciliadas"
 
-#: gnucash/gschemas/org.gnucash.warnings.gschema.xml.in:90
-#: gnucash/gschemas/org.gnucash.warnings.gschema.xml.in:188
+#: gnucash/gschemas/org.gnucash.warnings.gschema.xml.in:95
+#: gnucash/gschemas/org.gnucash.warnings.gschema.xml.in:198
 msgid ""
 "This dialog is presented before allowing you to delete a transaction that "
 "contains reconciled splits. Doing so will throw off the reconciled value of "
@@ -12568,13 +12617,13 @@ msgstr ""
 "parcelas reconciliadas. Fazê-lo vai deitar fora o valor reconciliado no "
 "diário e pode tornar difícil fazer futuras reconciliações."
 
-#: gnucash/gschemas/org.gnucash.warnings.gschema.xml.in:94
-#: gnucash/gschemas/org.gnucash.warnings.gschema.xml.in:192
+#: gnucash/gschemas/org.gnucash.warnings.gschema.xml.in:99
+#: gnucash/gschemas/org.gnucash.warnings.gschema.xml.in:202
 msgid "Duplicating a changed transaction"
 msgstr "Duplicar uma transacção alterada"
 
-#: gnucash/gschemas/org.gnucash.warnings.gschema.xml.in:95
-#: gnucash/gschemas/org.gnucash.warnings.gschema.xml.in:193
+#: gnucash/gschemas/org.gnucash.warnings.gschema.xml.in:100
+#: gnucash/gschemas/org.gnucash.warnings.gschema.xml.in:203
 msgid ""
 "This dialog is presented when you attempt to duplicate a modified "
 "transaction. The changed data must be saved or the duplication canceled."
@@ -12582,13 +12631,13 @@ msgstr ""
 "Este diálogo é mostrado quando tenta duplicar uma transacção modificada. Os "
 "dados alterados têm de ser gravados ou a duplicação cancelada."
 
-#: gnucash/gschemas/org.gnucash.warnings.gschema.xml.in:99
-#: gnucash/gschemas/org.gnucash.warnings.gschema.xml.in:197
+#: gnucash/gschemas/org.gnucash.warnings.gschema.xml.in:104
+#: gnucash/gschemas/org.gnucash.warnings.gschema.xml.in:207
 msgid "Commit changes to a transaction"
 msgstr "Submeter alterações a uma transacção"
 
-#: gnucash/gschemas/org.gnucash.warnings.gschema.xml.in:100
-#: gnucash/gschemas/org.gnucash.warnings.gschema.xml.in:198
+#: gnucash/gschemas/org.gnucash.warnings.gschema.xml.in:105
+#: gnucash/gschemas/org.gnucash.warnings.gschema.xml.in:208
 msgid ""
 "This dialog is presented when you attempt to move out of a modified "
 "transaction. The changed data must be either saved or discarded."
@@ -12960,6 +13009,7 @@ msgstr "Contas seleccionadas:"
 
 #: gnucash/gtkbuilder/assistant-csv-export.glade:339
 #: gnucash/gtkbuilder/dialog-tax-info.glade:384
+#: gnucash/gtkbuilder/gnc-plugin-page-register.glade:764
 msgid "0"
 msgstr "0"
 
@@ -12969,7 +13019,7 @@ msgid "_Select Subaccounts"
 msgstr "_Seleccionar sub-contas"
 
 #: gnucash/gtkbuilder/assistant-csv-export.glade:388
-#: gnucash/gtkbuilder/gnc-plugin-page-register2.glade:575
+#: gnucash/gtkbuilder/gnc-plugin-page-register2.glade:622
 #: gnucash/gtkbuilder/gnc-plugin-page-register.glade:466
 msgid "Select _All"
 msgstr "Seleccionar _tudo"
@@ -12989,13 +13039,13 @@ msgstr "Selecciona_r intervalo"
 
 #. Filter By Dialog, Date Tab, Start section
 #: gnucash/gtkbuilder/assistant-csv-export.glade:488
-#: gnucash/gtkbuilder/gnc-plugin-page-register2.glade:277
+#: gnucash/gtkbuilder/gnc-plugin-page-register2.glade:324
 #: gnucash/gtkbuilder/gnc-plugin-page-register.glade:168
 msgid "Start"
 msgstr "Início"
 
 #: gnucash/gtkbuilder/assistant-csv-export.glade:497
-#: gnucash/gtkbuilder/gnc-plugin-page-register2.glade:286
+#: gnucash/gtkbuilder/gnc-plugin-page-register2.glade:333
 #: gnucash/gtkbuilder/gnc-plugin-page-register.glade:177
 msgid "_Earliest"
 msgstr "Mais recent_e"
@@ -13005,13 +13055,13 @@ msgid "Cho_ose Date"
 msgstr "Esc_olher data"
 
 #: gnucash/gtkbuilder/assistant-csv-export.glade:531
-#: gnucash/gtkbuilder/gnc-plugin-page-register2.glade:318
+#: gnucash/gtkbuilder/gnc-plugin-page-register2.glade:365
 #: gnucash/gtkbuilder/gnc-plugin-page-register.glade:209
 msgid "Toda_y"
 msgstr "_Hoje"
 
 #: gnucash/gtkbuilder/assistant-csv-export.glade:548
-#: gnucash/gtkbuilder/gnc-plugin-page-register2.glade:335
+#: gnucash/gtkbuilder/gnc-plugin-page-register2.glade:382
 #: gnucash/gtkbuilder/gnc-plugin-page-register.glade:226
 msgid "_Latest"
 msgstr "Ú_ltima"
@@ -13020,19 +13070,19 @@ msgstr "Ú_ltima"
 #: gnucash/gtkbuilder/assistant-csv-export.glade:578
 #: gnucash/gtkbuilder/dialog-fincalc.glade:601
 #: gnucash/gtkbuilder/dialog-sx.glade:424
-#: gnucash/gtkbuilder/gnc-plugin-page-register2.glade:365
+#: gnucash/gtkbuilder/gnc-plugin-page-register2.glade:412
 #: gnucash/gtkbuilder/gnc-plugin-page-register.glade:256
 msgid "End"
 msgstr "Fim"
 
 #: gnucash/gtkbuilder/assistant-csv-export.glade:587
-#: gnucash/gtkbuilder/gnc-plugin-page-register2.glade:374
+#: gnucash/gtkbuilder/gnc-plugin-page-register2.glade:421
 #: gnucash/gtkbuilder/gnc-plugin-page-register.glade:265
 msgid "C_hoose Date"
 msgstr "Escol_her data"
 
 #: gnucash/gtkbuilder/assistant-csv-export.glade:604
-#: gnucash/gtkbuilder/gnc-plugin-page-register2.glade:391
+#: gnucash/gtkbuilder/gnc-plugin-page-register2.glade:438
 #: gnucash/gtkbuilder/gnc-plugin-page-register.glade:282
 msgid "_Today"
 msgstr "_Hoje"
@@ -14498,13 +14548,12 @@ msgstr "Mont_ante:"
 
 #: gnucash/gtkbuilder/assistant-stock-split.glade:300
 #: gnucash/gtkbuilder/dialog-print-check.glade:1129
-#: gnucash/gtkbuilder/gnc-plugin-page-register.glade:757
+#: gnucash/gtkbuilder/gnc-plugin-page-register.glade:956
 msgid "_Memo"
 msgstr "_Memorando"
 
 #. Default memo text for the remains of a stock split
 #: gnucash/gtkbuilder/assistant-stock-split.glade:316
-#| msgid "Cash in Lieu"
 msgid "Cash in lieu"
 msgstr "Montante auferido"
 
@@ -14587,8 +14636,8 @@ msgstr "Preferências"
 
 #. Preferences Dialog, General Tab
 #: gnucash/gtkbuilder/business-prefs.glade:55
-#: gnucash/gtkbuilder/dialog-preferences.glade:1264
-#: gnucash/gtkbuilder/dialog-preferences.glade:1950
+#: gnucash/gtkbuilder/dialog-preferences.glade:1381
+#: gnucash/gtkbuilder/dialog-preferences.glade:2067
 msgid "<b>General</b>"
 msgstr "<b>Geral</b>"
 
@@ -14934,20 +14983,32 @@ msgstr ""
 "Use Editar->Opções de relatório Impostos para definir a bandeira tax-related "
 "e atribuir um código de imposto a esta conta."
 
-#: gnucash/gtkbuilder/dialog-account.glade:1543
+#: gnucash/gtkbuilder/dialog-account.glade:1509
+#, fuzzy
+#| msgid "Opening Balance"
+msgid "Opening balance"
+msgstr "Saldo inicial"
+
+#: gnucash/gtkbuilder/dialog-account.glade:1513
+msgid ""
+"This account holds opening balance transactions. Only one account per "
+"commodity can hold opening balance transactions."
+msgstr ""
+
+#: gnucash/gtkbuilder/dialog-account.glade:1560
 msgid "<b>Acco_unt Type</b>"
 msgstr "<b>T_ipo de conta</b>"
 
-#: gnucash/gtkbuilder/dialog-account.glade:1569
+#: gnucash/gtkbuilder/dialog-account.glade:1586
 msgid "<b>_Parent Account</b>"
 msgstr "<b>_Conta-mãe</b>"
 
-#: gnucash/gtkbuilder/dialog-account.glade:1649
-#: gnucash/gtkbuilder/dialog-preferences.glade:1893
+#: gnucash/gtkbuilder/dialog-account.glade:1666
+#: gnucash/gtkbuilder/dialog-preferences.glade:2010
 #: gnucash/report/report-core.scm:77
 #: gnucash/report/reports/standard/equity-statement.scm:108
 #: gnucash/report/reports/standard/equity-statement.scm:112
-#: gnucash/report/reports/standard/register.scm:376
+#: gnucash/report/reports/standard/register.scm:347
 #: gnucash/report/reports/standard/trial-balance.scm:185
 #: gnucash/report/reports/standard/trial-balance.scm:189
 #: gnucash/report/reports/standard/view-column.scm:50
@@ -14978,39 +15039,39 @@ msgstr "<b>_Conta-mãe</b>"
 msgid "General"
 msgstr "Geral"
 
-#: gnucash/gtkbuilder/dialog-account.glade:1674
+#: gnucash/gtkbuilder/dialog-account.glade:1691
 msgid "<b>Balance Information</b>"
 msgstr "<b>Informação de saldo</b>"
 
-#: gnucash/gtkbuilder/dialog-account.glade:1688
+#: gnucash/gtkbuilder/dialog-account.glade:1705
 msgid "<b>Initial Balance Transfer</b>"
 msgstr "<b>Transferência de saldo inicial</b>"
 
-#: gnucash/gtkbuilder/dialog-account.glade:1755
+#: gnucash/gtkbuilder/dialog-account.glade:1772
 msgid "_Use equity 'Opening Balances' account"
 msgstr "_Usar a conta \"Capital próprio\""
 
-#: gnucash/gtkbuilder/dialog-account.glade:1772
+#: gnucash/gtkbuilder/dialog-account.glade:1789
 msgid "_Select transfer account"
 msgstr "_Seleccionar conta de transferência"
 
-#: gnucash/gtkbuilder/dialog-account.glade:1883
+#: gnucash/gtkbuilder/dialog-account.glade:1900
 msgid "Renumber sub-accounts"
 msgstr "Renumerar sub-contas"
 
-#: gnucash/gtkbuilder/dialog-account.glade:1916
+#: gnucash/gtkbuilder/dialog-account.glade:1933
 msgid "_Renumber"
 msgstr "_Renumerar"
 
-#: gnucash/gtkbuilder/dialog-account.glade:1948
+#: gnucash/gtkbuilder/dialog-account.glade:1965
 msgid "Prefix"
 msgstr "Prefixo"
 
-#: gnucash/gtkbuilder/dialog-account.glade:1986
+#: gnucash/gtkbuilder/dialog-account.glade:2003
 msgid "Examples"
 msgstr "Exemplos"
 
-#: gnucash/gtkbuilder/dialog-account.glade:1998
+#: gnucash/gtkbuilder/dialog-account.glade:2015
 #: gnucash/report/reports/standard/balance-forecast.scm:42
 msgid "Interval"
 msgstr "Intervalo"
@@ -15024,7 +15085,7 @@ msgid "_Show documentation"
 msgstr "_Mostrar documentação"
 
 #: gnucash/gtkbuilder/dialog-account-picker.glade:50
-#: gnucash/gtkbuilder/gnc-plugin-page-register2.glade:511
+#: gnucash/gtkbuilder/gnc-plugin-page-register2.glade:558
 #: gnucash/gtkbuilder/gnc-plugin-page-register.glade:402
 msgid "_Reconciled"
 msgstr "_Reconciliada"
@@ -16134,7 +16195,7 @@ msgid "<b>Colors</b>"
 msgstr "<b>Cores</b>"
 
 #: gnucash/gtkbuilder/dialog-import.glade:642
-#: gnucash/gtkbuilder/dialog-preferences.glade:2282
+#: gnucash/gtkbuilder/dialog-preferences.glade:2399
 msgid "<b>Actions</b>"
 msgstr "<b>Acções</b>"
 
@@ -16196,20 +16257,25 @@ msgstr "Lista de transacções transferidas (parcela origem mostrada)"
 
 #: gnucash/gtkbuilder/dialog-import.glade:929
 #, fuzzy
-msgid "Show the _Account column"
+msgid "Show _Account column"
 msgstr "Mostrar a coluna Conta fonte"
 
 #: gnucash/gtkbuilder/dialog-import.glade:945
 #, fuzzy
+msgid "Show _Memo column"
+msgstr "Mostrar a coluna Conta fonte"
+
+#: gnucash/gtkbuilder/dialog-import.glade:961
+#, fuzzy
 msgid "Show _matched information"
 msgstr "Informação do vale"
 
-#: gnucash/gtkbuilder/dialog-import.glade:960
+#: gnucash/gtkbuilder/dialog-import.glade:976
 #, fuzzy
 msgid "Reconcile after match"
 msgstr "Reconciliar correspondência (automático)"
 
-#: gnucash/gtkbuilder/dialog-import.glade:983
+#: gnucash/gtkbuilder/dialog-import.glade:999
 msgid "Generic import transaction matcher"
 msgstr "Comparador genérico de importação de transacções"
 
@@ -16571,30 +16637,48 @@ msgstr "2015-07-31"
 msgid "Locale"
 msgstr "Regional"
 
-#: gnucash/gtkbuilder/dialog-preferences.glade:125
+#: gnucash/gtkbuilder/dialog-preferences.glade:133
+#, fuzzy
+#| msgid "_Resume"
+msgid "_Reset"
+msgstr "_Continuar"
+
+#: gnucash/gtkbuilder/dialog-preferences.glade:178
+#: gnucash/gtkbuilder/dialog-preferences.glade:579
+msgid "<b>Separator Character</b>"
+msgstr "<b>Carácter separador</b>"
+
+#: gnucash/gtkbuilder/dialog-preferences.glade:204
+msgid ""
+"Press 'Reset' to use the original account separator and close the preference "
+"window\n"
+"Press 'Close' to return to the preference window\n"
+msgstr ""
+
+#: gnucash/gtkbuilder/dialog-preferences.glade:240
 msgid "GnuCash Preferences"
 msgstr "Preferências do GnuCash"
 
-#: gnucash/gtkbuilder/dialog-preferences.glade:198
+#: gnucash/gtkbuilder/dialog-preferences.glade:314
 msgid "<b>Summarybar Content</b>"
 msgstr "<b>Conteúdo da barra de sumário</b>"
 
-#: gnucash/gtkbuilder/dialog-preferences.glade:208
+#: gnucash/gtkbuilder/dialog-preferences.glade:324
 msgid "Include _grand total"
 msgstr "Incluir total _geral"
 
-#: gnucash/gtkbuilder/dialog-preferences.glade:214
+#: gnucash/gtkbuilder/dialog-preferences.glade:330
 msgid ""
 "Show a grand total of all accounts converted to the default report currency."
 msgstr ""
 "Mostrar um total geral de todas as contas, convertido para a moeda "
 "predefinida."
 
-#: gnucash/gtkbuilder/dialog-preferences.glade:226
+#: gnucash/gtkbuilder/dialog-preferences.glade:342
 msgid "Include _non-currency totals"
 msgstr "Incluir totais de _não moeda"
 
-#: gnucash/gtkbuilder/dialog-preferences.glade:232
+#: gnucash/gtkbuilder/dialog-preferences.glade:348
 msgid ""
 "If checked, non-currency commodities will be shown in the summary bar. If "
 "clear, only currencies will be shown."
@@ -16602,37 +16686,37 @@ msgstr ""
 "Se marcada, mercadorias não moeda serão mostradas na barra de sumário. Senão "
 "só são mostradas as moedas."
 
-#: gnucash/gtkbuilder/dialog-preferences.glade:247
+#: gnucash/gtkbuilder/dialog-preferences.glade:363
 msgid "<b>Start Date</b>"
 msgstr "<b>Data inicial</b>"
 
-#: gnucash/gtkbuilder/dialog-preferences.glade:260
+#: gnucash/gtkbuilder/dialog-preferences.glade:376
 msgid "<b>End Date</b>"
 msgstr "<b>Data final</b>"
 
-#: gnucash/gtkbuilder/dialog-preferences.glade:270
+#: gnucash/gtkbuilder/dialog-preferences.glade:386
 msgid "_Relative"
 msgstr "_Relativa"
 
-#: gnucash/gtkbuilder/dialog-preferences.glade:276
+#: gnucash/gtkbuilder/dialog-preferences.glade:392
 msgid "Use the specified relative starting date for profit/loss calculations."
 msgstr ""
 "Usar a data inicial relativa especificada para cálculo de lucros/perdas."
 
-#: gnucash/gtkbuilder/dialog-preferences.glade:289
+#: gnucash/gtkbuilder/dialog-preferences.glade:405
 msgid "_Absolute"
 msgstr "_Absoluta"
 
-#: gnucash/gtkbuilder/dialog-preferences.glade:295
+#: gnucash/gtkbuilder/dialog-preferences.glade:411
 msgid "Use the specified absolute starting date for profit/loss calculations."
 msgstr ""
 "Usar a data inicial absoluta especificada para cálculo de lucros/perdas."
 
-#: gnucash/gtkbuilder/dialog-preferences.glade:308
+#: gnucash/gtkbuilder/dialog-preferences.glade:424
 msgid "Re_lative"
 msgstr "Re_lativa"
 
-#: gnucash/gtkbuilder/dialog-preferences.glade:314
+#: gnucash/gtkbuilder/dialog-preferences.glade:430
 msgid ""
 "Use the specified relative ending date for profit/loss calculations. Also "
 "use this date for net assets calculations."
@@ -16640,11 +16724,11 @@ msgstr ""
 "Usar a data final relativa especificada para cálculo de lucros/perdas. Usar "
 "esta data também para cálculo de activos líquidos."
 
-#: gnucash/gtkbuilder/dialog-preferences.glade:327
+#: gnucash/gtkbuilder/dialog-preferences.glade:443
 msgid "Ab_solute"
 msgstr "Ab_soluta"
 
-#: gnucash/gtkbuilder/dialog-preferences.glade:333
+#: gnucash/gtkbuilder/dialog-preferences.glade:449
 msgid ""
 "Use the specified absolute ending date for profit/loss calculations. Also "
 "use this date for net assets calculations."
@@ -16652,82 +16736,78 @@ msgstr ""
 "Usar a data final absoluta especificada para cálculo de lucros/perdas. Usar "
 "esta data também para cálculo de activos líquidos."
 
-#: gnucash/gtkbuilder/dialog-preferences.glade:444
+#: gnucash/gtkbuilder/dialog-preferences.glade:560
 msgid "Accounting Period"
 msgstr "Período contabilístico"
 
-#: gnucash/gtkbuilder/dialog-preferences.glade:462
-msgid "<b>Separator Character</b>"
-msgstr "<b>Carácter separador</b>"
-
-#: gnucash/gtkbuilder/dialog-preferences.glade:472
+#: gnucash/gtkbuilder/dialog-preferences.glade:589
 msgid "Use _formal accounting labels"
 msgstr "Usar rótulos contabilísticos _formais"
 
-#: gnucash/gtkbuilder/dialog-preferences.glade:478
+#: gnucash/gtkbuilder/dialog-preferences.glade:595
 msgid "Use only 'debit' and 'credit' instead of informal synonyms."
 msgstr "Usar só \"Débito\" e \"Crédito\" em vez de sinónimos informais."
 
-#: gnucash/gtkbuilder/dialog-preferences.glade:493
+#: gnucash/gtkbuilder/dialog-preferences.glade:610
 msgid "<b>Labels</b>"
 msgstr "<b>Rótulos</b>"
 
-#: gnucash/gtkbuilder/dialog-preferences.glade:513
+#: gnucash/gtkbuilder/dialog-preferences.glade:630
 #: gnucash/gtkbuilder/dialog-price.glade:447
 msgid "_None"
 msgstr "_Nenhum"
 
-#: gnucash/gtkbuilder/dialog-preferences.glade:532
+#: gnucash/gtkbuilder/dialog-preferences.glade:649
 msgid "C_redit accounts"
 msgstr "Contas de c_rédito"
 
-#: gnucash/gtkbuilder/dialog-preferences.glade:551
+#: gnucash/gtkbuilder/dialog-preferences.glade:668
 msgid "_Income & expense"
 msgstr "_Receita & Despesa"
 
-#: gnucash/gtkbuilder/dialog-preferences.glade:573
+#: gnucash/gtkbuilder/dialog-preferences.glade:690
 msgid "<b>Reverse Balanced Accounts</b>"
 msgstr "<b>Contas saldadas inversamente</b>"
 
-#: gnucash/gtkbuilder/dialog-preferences.glade:606
+#: gnucash/gtkbuilder/dialog-preferences.glade:723
 msgid "<b>Default Currency</b>"
 msgstr "<b>Moeda predefinida</b>"
 
-#: gnucash/gtkbuilder/dialog-preferences.glade:619
-#: gnucash/gtkbuilder/dialog-preferences.glade:2933
+#: gnucash/gtkbuilder/dialog-preferences.glade:736
+#: gnucash/gtkbuilder/dialog-preferences.glade:3050
 msgid "US Dollars (USD)"
 msgstr "Dólares EUA (USD)"
 
-#: gnucash/gtkbuilder/dialog-preferences.glade:642
+#: gnucash/gtkbuilder/dialog-preferences.glade:759
 msgid "Character"
 msgstr "Carácter"
 
-#: gnucash/gtkbuilder/dialog-preferences.glade:654
+#: gnucash/gtkbuilder/dialog-preferences.glade:771
 #: gnucash/gtkbuilder/gnc-date-format.glade:206
 msgid "Sample"
 msgstr "Exemplo"
 
-#: gnucash/gtkbuilder/dialog-preferences.glade:679
+#: gnucash/gtkbuilder/dialog-preferences.glade:796
 msgid "<b>Account Color</b>"
 msgstr "<b>Cor da conta</b>"
 
-#: gnucash/gtkbuilder/dialog-preferences.glade:689
+#: gnucash/gtkbuilder/dialog-preferences.glade:806
 msgid "Show the Account Color as background"
 msgstr "Mostrar a cor da conta como fundo"
 
-#: gnucash/gtkbuilder/dialog-preferences.glade:695
+#: gnucash/gtkbuilder/dialog-preferences.glade:812
 msgid "Show the Account Color as Account Name Background."
 msgstr "Mostrar a cor da conta como fundo do nome da conta."
 
-#: gnucash/gtkbuilder/dialog-preferences.glade:717
+#: gnucash/gtkbuilder/dialog-preferences.glade:834
 msgid "Show the Account Color on tabs"
 msgstr "Mostrar a cor da conta nos separadores"
 
-#: gnucash/gtkbuilder/dialog-preferences.glade:723
+#: gnucash/gtkbuilder/dialog-preferences.glade:840
 msgid "Show the Account Color as tab background."
 msgstr "Mostrar a cor da conta como fundo do separador."
 
-#: gnucash/gtkbuilder/dialog-preferences.glade:756
+#: gnucash/gtkbuilder/dialog-preferences.glade:874
 msgid ""
 "The character that will be used between components of an account name. A "
 "legal value is any single character except letters and numbers, or any of "
@@ -16738,87 +16818,87 @@ msgstr ""
 "legais são letras e números únicos ou uma das seguintes cadeias: \"colon\", "
 "\"slash\", \"backslash\", \"dash\" e \"period\"."
 
-#: gnucash/gtkbuilder/dialog-preferences.glade:777
-#: gnucash/gtkbuilder/dialog-preferences.glade:3032
+#: gnucash/gtkbuilder/dialog-preferences.glade:894
+#: gnucash/gtkbuilder/dialog-preferences.glade:3149
 msgid "Ch_oose"
 msgstr "Esc_olha"
 
-#: gnucash/gtkbuilder/dialog-preferences.glade:797
-#: gnucash/gtkbuilder/dialog-preferences.glade:3052
+#: gnucash/gtkbuilder/dialog-preferences.glade:914
+#: gnucash/gtkbuilder/dialog-preferences.glade:3169
 msgid "Loc_ale"
 msgstr "Region_al"
 
-#: gnucash/gtkbuilder/dialog-preferences.glade:881
+#: gnucash/gtkbuilder/dialog-preferences.glade:998
 msgid "<b>Fancy Date Format</b>"
 msgstr "<b>Formato de data elegante</b>"
 
-#: gnucash/gtkbuilder/dialog-preferences.glade:904
+#: gnucash/gtkbuilder/dialog-preferences.glade:1021
 msgid "<b>Date Format</b>"
 msgstr "<b>Formato de data</b>"
 
-#: gnucash/gtkbuilder/dialog-preferences.glade:917
+#: gnucash/gtkbuilder/dialog-preferences.glade:1034
 msgid "<b>Time Format</b>"
 msgstr "<b>Formato de hora</b>"
 
-#: gnucash/gtkbuilder/dialog-preferences.glade:937
+#: gnucash/gtkbuilder/dialog-preferences.glade:1054
 msgid "U_se 24-hour clock"
 msgstr "U_sar horas em formato 24h"
 
-#: gnucash/gtkbuilder/dialog-preferences.glade:943
+#: gnucash/gtkbuilder/dialog-preferences.glade:1060
 msgid "Use a 24 hour (instead of a 12 hour) time format."
 msgstr "Usar um formato 24 horas (em vez de 12 horas)."
 
-#: gnucash/gtkbuilder/dialog-preferences.glade:958
+#: gnucash/gtkbuilder/dialog-preferences.glade:1075
 msgid "<b>Date Completion</b>"
 msgstr "<b>Conclusão de datas</b>"
 
-#: gnucash/gtkbuilder/dialog-preferences.glade:971
+#: gnucash/gtkbuilder/dialog-preferences.glade:1088
 #, fuzzy
 msgid "When a date is entered without year, it should be taken"
 msgstr "Quando uma data é inserida sem ano, deve ser:"
 
-#: gnucash/gtkbuilder/dialog-preferences.glade:987
+#: gnucash/gtkbuilder/dialog-preferences.glade:1104
 msgid ""
 "Dates will be completed so that they are within the current calendar year."
 msgstr "completada com o ano de calendário actual."
 
-#: gnucash/gtkbuilder/dialog-preferences.glade:1000
+#: gnucash/gtkbuilder/dialog-preferences.glade:1117
 #, fuzzy
 msgid ""
 "In a sliding 12-month window starting this\n"
 "many months before the current month"
 msgstr "escolhida numa janela começando este número de meses atrás"
 
-#: gnucash/gtkbuilder/dialog-preferences.glade:1024
+#: gnucash/gtkbuilder/dialog-preferences.glade:1141
 msgid "Enter number of months."
 msgstr "Insira o número de meses."
 
-#: gnucash/gtkbuilder/dialog-preferences.glade:1045
+#: gnucash/gtkbuilder/dialog-preferences.glade:1162
 msgid "Use the date format specified by the system locale."
 msgstr "Usar o formato de data especificado pela configuração regional."
 
-#: gnucash/gtkbuilder/dialog-preferences.glade:1071
+#: gnucash/gtkbuilder/dialog-preferences.glade:1188
 msgid "<b>Numbers</b>"
 msgstr "<b>Números</b>"
 
-#: gnucash/gtkbuilder/dialog-preferences.glade:1081
+#: gnucash/gtkbuilder/dialog-preferences.glade:1198
 #, fuzzy
 msgid "Force P_rices to display as decimals"
 msgstr "Fo_rçar amostragem de cotações em decimais."
 
-#: gnucash/gtkbuilder/dialog-preferences.glade:1099
+#: gnucash/gtkbuilder/dialog-preferences.glade:1216
 msgid "Display ne_gative amounts in red"
 msgstr "Mostrar montantes ne_gativos a vermelho"
 
-#: gnucash/gtkbuilder/dialog-preferences.glade:1105
+#: gnucash/gtkbuilder/dialog-preferences.glade:1222
 msgid "Display negative amounts in red."
 msgstr "Mostrar montantes negativos a vermelho."
 
-#: gnucash/gtkbuilder/dialog-preferences.glade:1117
+#: gnucash/gtkbuilder/dialog-preferences.glade:1234
 msgid "_Automatic decimal point"
 msgstr "Separador decimal _automático"
 
-#: gnucash/gtkbuilder/dialog-preferences.glade:1123
+#: gnucash/gtkbuilder/dialog-preferences.glade:1240
 msgid ""
 "Automatically insert a decimal point into values that are entered without "
 "one."
@@ -16826,104 +16906,104 @@ msgstr ""
 "Inserir automaticamente um separador decimal em valores que são introduzidos "
 "sem um."
 
-#: gnucash/gtkbuilder/dialog-preferences.glade:1138
+#: gnucash/gtkbuilder/dialog-preferences.glade:1255
 #, fuzzy
 msgid "_Decimal places"
 msgstr "Casas _decimais:"
 
-#: gnucash/gtkbuilder/dialog-preferences.glade:1153
+#: gnucash/gtkbuilder/dialog-preferences.glade:1270
 msgid "How many automatic decimal places will be filled in."
 msgstr "Quantas casas decimais deverão ser automaticamente preenchidas."
 
-#: gnucash/gtkbuilder/dialog-preferences.glade:1155
+#: gnucash/gtkbuilder/dialog-preferences.glade:1272
 msgid "2"
 msgstr ""
 
-#: gnucash/gtkbuilder/dialog-preferences.glade:1245
+#: gnucash/gtkbuilder/dialog-preferences.glade:1362
 msgid "Numbers, Date, Time"
 msgstr ""
 
-#: gnucash/gtkbuilder/dialog-preferences.glade:1274
+#: gnucash/gtkbuilder/dialog-preferences.glade:1391
 msgid "Perform account list _setup on new file"
 msgstr "Configurar árvore de conta_s em ficheiro novo"
 
-#: gnucash/gtkbuilder/dialog-preferences.glade:1280
+#: gnucash/gtkbuilder/dialog-preferences.glade:1397
 msgid "Present the new account list dialog when you choose File->New File."
 msgstr ""
 "Mostrar o diálogo de nova lista de contas quando escolhe Ficheiro->Novo "
 "ficheiro."
 
-#: gnucash/gtkbuilder/dialog-preferences.glade:1311
+#: gnucash/gtkbuilder/dialog-preferences.glade:1428
 msgid "Display \"_tip of the day\" dialog"
 msgstr "Mos_trar diálogo Dica do dia"
 
-#: gnucash/gtkbuilder/dialog-preferences.glade:1317
+#: gnucash/gtkbuilder/dialog-preferences.glade:1434
 msgid "Display hints for using GnuCash at startup."
 msgstr "Mostrar dicas para a utilização do GnuCash no arranque."
 
-#: gnucash/gtkbuilder/dialog-preferences.glade:1338
+#: gnucash/gtkbuilder/dialog-preferences.glade:1455
 msgid "How many days to keep old log/backup files."
 msgstr "Quantos dias manter ficheiros de diário/segurança."
 
-#: gnucash/gtkbuilder/dialog-preferences.glade:1357
+#: gnucash/gtkbuilder/dialog-preferences.glade:1474
 #: gnucash/gtkbuilder/dialog-sx.glade:619
 #: gnucash/gtkbuilder/dialog-sx.glade:658
 msgid "days"
 msgstr "dias"
 
-#: gnucash/gtkbuilder/dialog-preferences.glade:1376
+#: gnucash/gtkbuilder/dialog-preferences.glade:1493
 #, fuzzy
 msgid "<b>_Retain log/backup files</b>"
 msgstr "<b>_Reter diários/seguranças:</b>"
 
-#: gnucash/gtkbuilder/dialog-preferences.glade:1388
+#: gnucash/gtkbuilder/dialog-preferences.glade:1505
 msgid "Com_press files"
 msgstr "Com_primir ficheiros"
 
-#: gnucash/gtkbuilder/dialog-preferences.glade:1394
+#: gnucash/gtkbuilder/dialog-preferences.glade:1511
 msgid "Compress the data file with gzip when saving it to disk."
 msgstr "Comprimir o ficheiro de dados com gzip ao gravar em disco."
 
-#: gnucash/gtkbuilder/dialog-preferences.glade:1409
+#: gnucash/gtkbuilder/dialog-preferences.glade:1526
 msgid "<b>Files</b>"
 msgstr "<b>Ficheiros</b>"
 
-#: gnucash/gtkbuilder/dialog-preferences.glade:1442
+#: gnucash/gtkbuilder/dialog-preferences.glade:1559
 msgid "<b>Search Dialog</b>"
 msgstr "<b>Diálogo de procura</b>"
 
-#: gnucash/gtkbuilder/dialog-preferences.glade:1455
+#: gnucash/gtkbuilder/dialog-preferences.glade:1572
 #, fuzzy
 msgid "New search _limit"
 msgstr "_Limite de nova procura"
 
-#: gnucash/gtkbuilder/dialog-preferences.glade:1470
+#: gnucash/gtkbuilder/dialog-preferences.glade:1587
 msgid "Default to 'new search' if fewer than this number of items is returned."
 msgstr ""
 "Predefinição para nova procura se forem devolvidos menos itens que este "
 "número."
 
-#: gnucash/gtkbuilder/dialog-preferences.glade:1486
+#: gnucash/gtkbuilder/dialog-preferences.glade:1603
 msgid "Show splash scree_n"
 msgstr "_Mostrar ecrã de logótipo"
 
-#: gnucash/gtkbuilder/dialog-preferences.glade:1492
+#: gnucash/gtkbuilder/dialog-preferences.glade:1609
 msgid "Show splash screen at startup."
 msgstr "Mostrar ecrã de logótipo no arranque."
 
-#: gnucash/gtkbuilder/dialog-preferences.glade:1507
+#: gnucash/gtkbuilder/dialog-preferences.glade:1624
 msgid "Auto-save time _interval"
 msgstr "_Intervalo de gravação automática"
 
-#: gnucash/gtkbuilder/dialog-preferences.glade:1546
+#: gnucash/gtkbuilder/dialog-preferences.glade:1663
 msgid "minutes"
 msgstr "minutos"
 
-#: gnucash/gtkbuilder/dialog-preferences.glade:1562
+#: gnucash/gtkbuilder/dialog-preferences.glade:1679
 msgid "Show auto-save confirmation _question"
 msgstr "Mostrar _confirmação de gravação automática"
 
-#: gnucash/gtkbuilder/dialog-preferences.glade:1568
+#: gnucash/gtkbuilder/dialog-preferences.glade:1685
 msgid ""
 "If active, GnuCash shows a confirmation question each time the auto-save "
 "feature is started. Otherwise no extra explanation is shown."
@@ -16932,40 +17012,40 @@ msgstr ""
 "funcionalidade de gravação automática é mostrada. Senão, não é mostrada "
 "nenhuma explicação."
 
-#: gnucash/gtkbuilder/dialog-preferences.glade:1608
+#: gnucash/gtkbuilder/dialog-preferences.glade:1725
 #: gnucash/gtkbuilder/dialog-sx.glade:1208
 #, fuzzy
 msgid "For"
 msgstr "Formulário"
 
-#: gnucash/gtkbuilder/dialog-preferences.glade:1626
+#: gnucash/gtkbuilder/dialog-preferences.glade:1743
 #: gnucash/gtkbuilder/dialog-sx.glade:1176
 msgid "Forever"
 msgstr "Para sempre"
 
-#: gnucash/gtkbuilder/dialog-preferences.glade:1665
+#: gnucash/gtkbuilder/dialog-preferences.glade:1782
 msgid "Time to _wait for answer"
 msgstr "Tempo de espera da _resposta"
 
-#: gnucash/gtkbuilder/dialog-preferences.glade:1702
+#: gnucash/gtkbuilder/dialog-preferences.glade:1819
 msgid "seconds"
 msgstr "segundos"
 
-#: gnucash/gtkbuilder/dialog-preferences.glade:1730
+#: gnucash/gtkbuilder/dialog-preferences.glade:1847
 #, fuzzy
 msgid "Path head for Linked File Relative Paths"
 msgstr "Caminho para ficheiros associados à transacção "
 
-#: gnucash/gtkbuilder/dialog-preferences.glade:1748
+#: gnucash/gtkbuilder/dialog-preferences.glade:1865
 #, fuzzy
 msgid "Path head for Linked Files Relative Paths"
 msgstr "Caminho para os ficheiros é, "
 
-#: gnucash/gtkbuilder/dialog-preferences.glade:1777
+#: gnucash/gtkbuilder/dialog-preferences.glade:1894
 msgid "Enable horizontal grid lines on table displays"
 msgstr "Activar linhas de grelha horizontais em vistas de tabela"
 
-#: gnucash/gtkbuilder/dialog-preferences.glade:1781
+#: gnucash/gtkbuilder/dialog-preferences.glade:1898
 msgid ""
 "Enable horizontal grid lines on table displays. These will mainly be tree "
 "views like the Accounts page."
@@ -16973,11 +17053,11 @@ msgstr ""
 "Activar linhas de grelha horizontais em vistas de tabela. Maioritariamente "
 "em árvores, tais como a página de contas."
 
-#: gnucash/gtkbuilder/dialog-preferences.glade:1794
+#: gnucash/gtkbuilder/dialog-preferences.glade:1911
 msgid "Enable vertical grid lines on table displays"
 msgstr "Activar linhas de grelha verticais em vistas de tabela"
 
-#: gnucash/gtkbuilder/dialog-preferences.glade:1798
+#: gnucash/gtkbuilder/dialog-preferences.glade:1915
 msgid ""
 "Enable vertical grid lines on table displays. These will mainly be tree "
 "views like the Accounts page."
@@ -16985,23 +17065,23 @@ msgstr ""
 "Activar linhas de grelha verticais em vistas de tabela. Maioritariamente em "
 "árvores, tais como a página de contas."
 
-#: gnucash/gtkbuilder/dialog-preferences.glade:1814
+#: gnucash/gtkbuilder/dialog-preferences.glade:1931
 #, fuzzy
 #| msgid "<b>Files</b>"
 msgid "<b>Linked Files</b>"
 msgstr "<b>Ficheiros</b>"
 
 #. Preferences->Online Banking:Generic
-#: gnucash/gtkbuilder/dialog-preferences.glade:1909
+#: gnucash/gtkbuilder/dialog-preferences.glade:2026
 msgid "Enable skip transaction action"
 msgstr "Activar acção de salto de transacções"
 
 #. Preferences->Online Banking:Generic
-#: gnucash/gtkbuilder/dialog-preferences.glade:1928
+#: gnucash/gtkbuilder/dialog-preferences.glade:2045
 msgid "Enable update match action"
 msgstr "Activar acção de actualização de comparação"
 
-#: gnucash/gtkbuilder/dialog-preferences.glade:1965
+#: gnucash/gtkbuilder/dialog-preferences.glade:2082
 msgid ""
 "In some places commercial ATMs (not belonging to a financial institution) "
 "are installed in places like convenience stores. These ATMs add their fee "
@@ -17021,11 +17101,11 @@ msgstr ""
 "sua área (em unidades da sua moeda local), para que a transacção seja "
 "reconhecida como correspondente."
 
-#: gnucash/gtkbuilder/dialog-preferences.glade:1967
+#: gnucash/gtkbuilder/dialog-preferences.glade:2084
 msgid "2,00"
 msgstr ""
 
-#: gnucash/gtkbuilder/dialog-preferences.glade:1988
+#: gnucash/gtkbuilder/dialog-preferences.glade:2105
 msgid ""
 "A transaction whose best match's score is in the green zone (above or equal "
 "to the Auto-CLEAR threshold) will be CLEARed by default."
@@ -17033,7 +17113,7 @@ msgstr ""
 "Uma transacção cuja comparação está na zona verde (acima ou igual ao limite "
 "de confirmação automática) será CONFIRMADA por predefinição."
 
-#: gnucash/gtkbuilder/dialog-preferences.glade:2010
+#: gnucash/gtkbuilder/dialog-preferences.glade:2127
 msgid ""
 "A transaction whose best match's score is in the red zone (above the display "
 "threshold but below or equal to the Auto-ADD threshold) will be ADDed by "
@@ -17043,7 +17123,7 @@ msgstr ""
 "exibição mas abaixo ou igual ao limite de adição automática) será ADICIONADA "
 "por predefinição."
 
-#: gnucash/gtkbuilder/dialog-preferences.glade:2032
+#: gnucash/gtkbuilder/dialog-preferences.glade:2149
 msgid ""
 "The minimum score a potential match must have to be displayed in the match "
 "list."
@@ -17052,75 +17132,75 @@ msgstr ""
 "de comparações."
 
 #. Preferences->Online Banking:Generic
-#: gnucash/gtkbuilder/dialog-preferences.glade:2053
+#: gnucash/gtkbuilder/dialog-preferences.glade:2170
 msgid "Commercial ATM _fees threshold"
 msgstr "Limite de _taxas de ATMs comerciais"
 
 #. Preferences->Online Banking:Generic
-#: gnucash/gtkbuilder/dialog-preferences.glade:2067
+#: gnucash/gtkbuilder/dialog-preferences.glade:2184
 msgid "Auto-c_lear threshold"
 msgstr "_Limite de confirmação automática"
 
 #. Preferences->Online Banking:Generic
-#: gnucash/gtkbuilder/dialog-preferences.glade:2081
+#: gnucash/gtkbuilder/dialog-preferences.glade:2198
 msgid "Auto-_add threshold"
 msgstr "Limite de _adição automática"
 
 #. Preferences->Online Banking:Generic
-#: gnucash/gtkbuilder/dialog-preferences.glade:2095
+#: gnucash/gtkbuilder/dialog-preferences.glade:2212
 msgid "Match _display threshold"
 msgstr "Comparar limite de _exibição"
 
 #. Preferences->Online Banking:Generic
-#: gnucash/gtkbuilder/dialog-preferences.glade:2106
+#: gnucash/gtkbuilder/dialog-preferences.glade:2223
 msgid "Use _bayesian matching"
 msgstr "Usar comparação _bayesiana"
 
-#: gnucash/gtkbuilder/dialog-preferences.glade:2112
+#: gnucash/gtkbuilder/dialog-preferences.glade:2229
 msgid ""
 "Use bayesian algorithms to match new transactions with existing accounts."
 msgstr ""
 "Usar algoritmos bayesianos para comparar novas transacções com contas "
 "existentes."
 
-#: gnucash/gtkbuilder/dialog-preferences.glade:2170
+#: gnucash/gtkbuilder/dialog-preferences.glade:2287
 msgid "<b>Checks</b>"
 msgstr "<b>Cheques</b>"
 
-#: gnucash/gtkbuilder/dialog-preferences.glade:2185
+#: gnucash/gtkbuilder/dialog-preferences.glade:2302
 msgid "The default check printing font."
 msgstr "A letra predefinida para imprimir cheques."
 
-#: gnucash/gtkbuilder/dialog-preferences.glade:2195
+#: gnucash/gtkbuilder/dialog-preferences.glade:2312
 msgid "Print _date format"
 msgstr "Imprimir formato da _data"
 
-#: gnucash/gtkbuilder/dialog-preferences.glade:2201
+#: gnucash/gtkbuilder/dialog-preferences.glade:2318
 msgid "Below the actual date, print the format of that date in 8 point type."
 msgstr ""
 "Abaixo da data actual, imprimir o formato da data num tipo de 8 pontos."
 
-#: gnucash/gtkbuilder/dialog-preferences.glade:2213
+#: gnucash/gtkbuilder/dialog-preferences.glade:2330
 msgid "Print _blocking chars"
 msgstr "Imprimir caracteres de _bloqueio"
 
-#: gnucash/gtkbuilder/dialog-preferences.glade:2219
+#: gnucash/gtkbuilder/dialog-preferences.glade:2336
 msgid "Print '***' before and after each text field on the check."
 msgstr "Imprimir \"***\" antes e depois de cada campo de texto no cheque."
 
-#: gnucash/gtkbuilder/dialog-preferences.glade:2234
+#: gnucash/gtkbuilder/dialog-preferences.glade:2351
 msgid "Default _font"
 msgstr "Letra prede_finida"
 
-#: gnucash/gtkbuilder/dialog-preferences.glade:2263
+#: gnucash/gtkbuilder/dialog-preferences.glade:2380
 msgid "Printing"
 msgstr "Impressão"
 
-#: gnucash/gtkbuilder/dialog-preferences.glade:2292
+#: gnucash/gtkbuilder/dialog-preferences.glade:2409
 msgid "'_Enter' moves to blank transaction"
 msgstr "\"_Enter\" move para uma transacção em branco"
 
-#: gnucash/gtkbuilder/dialog-preferences.glade:2298
+#: gnucash/gtkbuilder/dialog-preferences.glade:2415
 msgid ""
 "If checked, pressing the 'Enter' key will move to the location of the blank "
 "transaction in the register. If clear, pressing the 'Enter' key will move "
@@ -17129,45 +17209,45 @@ msgstr ""
 "Se activa, premir Enter move para a transacção em branco no final do diário. "
 "Senão, premir Enter move uma linha para baixo."
 
-#: gnucash/gtkbuilder/dialog-preferences.glade:2310
+#: gnucash/gtkbuilder/dialog-preferences.glade:2427
 msgid "_Auto-raise lists"
 msgstr "Mostrar listas _automaticamente"
 
-#: gnucash/gtkbuilder/dialog-preferences.glade:2316
+#: gnucash/gtkbuilder/dialog-preferences.glade:2433
 msgid "Automatically raise the list of accounts or actions during input."
 msgstr ""
 "Mostrar automaticamente a lista de contas ou acções durante a inserção."
 
-#: gnucash/gtkbuilder/dialog-preferences.glade:2328
+#: gnucash/gtkbuilder/dialog-preferences.glade:2445
 msgid "Tab order in_cludes Transfer on Memorised Transactions"
 msgstr ""
 "Ordem dos separadores in_clui Transferência nas transacções memorizadas"
 
-#: gnucash/gtkbuilder/dialog-preferences.glade:2334
+#: gnucash/gtkbuilder/dialog-preferences.glade:2451
 msgid "Move to Transfer field when memorised transaction auto filled."
 msgstr ""
 "Mover para o campo Transferência quando a transacção memorizada é preenchida "
 "automaticamente."
 
-#: gnucash/gtkbuilder/dialog-preferences.glade:2359
+#: gnucash/gtkbuilder/dialog-preferences.glade:2476
 msgid "<b>Reconciling</b>"
 msgstr "<b>Reconciliação</b>"
 
-#: gnucash/gtkbuilder/dialog-preferences.glade:2369
+#: gnucash/gtkbuilder/dialog-preferences.glade:2486
 msgid "Check cleared _transactions"
 msgstr "Marcar _transacções confirmadas"
 
-#: gnucash/gtkbuilder/dialog-preferences.glade:2375
+#: gnucash/gtkbuilder/dialog-preferences.glade:2492
 msgid "Pre-check cleared transactions when creating a reconcile dialog."
 msgstr ""
 "Marcar automaticamente transacções confirmadas ao abrir um diálogo de "
 "reconciliação."
 
-#: gnucash/gtkbuilder/dialog-preferences.glade:2387
+#: gnucash/gtkbuilder/dialog-preferences.glade:2504
 msgid "Automatic credit card _payment"
 msgstr "_Pagamentos automáticos de cartão de crédito"
 
-#: gnucash/gtkbuilder/dialog-preferences.glade:2393
+#: gnucash/gtkbuilder/dialog-preferences.glade:2510
 msgid ""
 "After reconciling a credit card statement, prompt the user to enter a credit "
 "card payment."
@@ -17175,11 +17255,11 @@ msgstr ""
 "Após reconciliar um extracto de cartão de crédito, pedir ao utilizador para "
 "inserir um pagamento de cartão de crédito."
 
-#: gnucash/gtkbuilder/dialog-preferences.glade:2405
+#: gnucash/gtkbuilder/dialog-preferences.glade:2522
 msgid "Always reconcile to t_oday"
 msgstr "Reconciliar sempre _hoje"
 
-#: gnucash/gtkbuilder/dialog-preferences.glade:2411
+#: gnucash/gtkbuilder/dialog-preferences.glade:2528
 msgid ""
 "Always open the reconcile dialog using today's date for the statement date, "
 "regardless of previous reconciliations."
@@ -17187,15 +17267,15 @@ msgstr ""
 "Abrir sempre o diálogo de reconciliação usando a data de hoje como data da "
 "declaração, independentemente de reconciliações anteriores."
 
-#: gnucash/gtkbuilder/dialog-preferences.glade:2436
+#: gnucash/gtkbuilder/dialog-preferences.glade:2553
 msgid "<b>Graphics</b>"
 msgstr "<b>Gráficos</b>"
 
-#: gnucash/gtkbuilder/dialog-preferences.glade:2446
+#: gnucash/gtkbuilder/dialog-preferences.glade:2563
 msgid "_Use GnuCash built-in color theme"
 msgstr "_Usar o tema de cor interno do GnuCash"
 
-#: gnucash/gtkbuilder/dialog-preferences.glade:2452
+#: gnucash/gtkbuilder/dialog-preferences.glade:2569
 msgid ""
 "GnuCash uses a yellow/green theme by default for register windows. Uncheck "
 "this if you want to use the system color theme instead."
@@ -17203,11 +17283,11 @@ msgstr ""
 "O GnuCash usa um tema amarelo e verde predefinido para janelas de diários. "
 "Desmarque esta opção se quiser o tema de cores do sistema."
 
-#: gnucash/gtkbuilder/dialog-preferences.glade:2464
+#: gnucash/gtkbuilder/dialog-preferences.glade:2581
 msgid "Double _mode colors alternate with transactions"
 msgstr "Cores de _modo duplo alternam entre transacções"
 
-#: gnucash/gtkbuilder/dialog-preferences.glade:2470
+#: gnucash/gtkbuilder/dialog-preferences.glade:2587
 msgid ""
 "Alternate the primary and secondary colors by transaction instead of by "
 "alternating by row."
@@ -17215,31 +17295,31 @@ msgstr ""
 "Alternar as cores primária e secundária entre cada transacção, não entre "
 "cada linha."
 
-#: gnucash/gtkbuilder/dialog-preferences.glade:2482
+#: gnucash/gtkbuilder/dialog-preferences.glade:2599
 msgid "Draw hori_zontal lines between rows"
 msgstr "Desenhar linhas _horizontais entre linhas"
 
-#: gnucash/gtkbuilder/dialog-preferences.glade:2488
+#: gnucash/gtkbuilder/dialog-preferences.glade:2605
 msgid "Show horizontal borders on the cells."
 msgstr "Mostrar contornos horizontais nas células."
 
-#: gnucash/gtkbuilder/dialog-preferences.glade:2500
+#: gnucash/gtkbuilder/dialog-preferences.glade:2617
 msgid "Draw _vertical lines between columns"
 msgstr "Desenhar linhas _verticais entre colunas"
 
-#: gnucash/gtkbuilder/dialog-preferences.glade:2506
+#: gnucash/gtkbuilder/dialog-preferences.glade:2623
 msgid "Show vertical borders on the cells."
 msgstr "Mostrar contornos verticais nas células."
 
-#: gnucash/gtkbuilder/dialog-preferences.glade:2531
+#: gnucash/gtkbuilder/dialog-preferences.glade:2648
 msgid "<b>Layout</b>"
 msgstr "<b>Disposição</b>"
 
-#: gnucash/gtkbuilder/dialog-preferences.glade:2541
+#: gnucash/gtkbuilder/dialog-preferences.glade:2658
 msgid "_Future transactions after blank transaction"
 msgstr "Transacções _futuras após o registo em branco"
 
-#: gnucash/gtkbuilder/dialog-preferences.glade:2547
+#: gnucash/gtkbuilder/dialog-preferences.glade:2664
 msgid ""
 "If checked, transactions with a date in the future will be displayed at the "
 "bottom of the register after the blank transaction. If clear, the blank "
@@ -17249,31 +17329,31 @@ msgstr ""
 "diário, abaixo da transacção em branco. Se não a transacção em branco é a "
 "última no final do diário."
 
-#: gnucash/gtkbuilder/dialog-preferences.glade:2586
+#: gnucash/gtkbuilder/dialog-preferences.glade:2703
 msgid "<b>Default Style</b>"
 msgstr "<b>Estilo predefinido</b>"
 
-#: gnucash/gtkbuilder/dialog-preferences.glade:2609
+#: gnucash/gtkbuilder/dialog-preferences.glade:2726
 msgid "<b>Other Defaults</b>"
 msgstr "<b>Outras predefinições</b>"
 
-#: gnucash/gtkbuilder/dialog-preferences.glade:2619
+#: gnucash/gtkbuilder/dialog-preferences.glade:2736
 msgid "_Basic ledger"
 msgstr "Razão _básico"
 
-#: gnucash/gtkbuilder/dialog-preferences.glade:2638
+#: gnucash/gtkbuilder/dialog-preferences.glade:2755
 msgid "_Auto-split ledger"
 msgstr "Razão de parcelas _automáticas"
 
-#: gnucash/gtkbuilder/dialog-preferences.glade:2679
+#: gnucash/gtkbuilder/dialog-preferences.glade:2796
 msgid "Number of _transactions"
 msgstr "Número de _transacções"
 
-#: gnucash/gtkbuilder/dialog-preferences.glade:2712
+#: gnucash/gtkbuilder/dialog-preferences.glade:2829
 msgid "_Double line mode"
 msgstr "Modo de linha _dupla"
 
-#: gnucash/gtkbuilder/dialog-preferences.glade:2718
+#: gnucash/gtkbuilder/dialog-preferences.glade:2835
 msgid ""
 "Show two lines of information for each transaction instead of one. Does not "
 "affect expanded transactions."
@@ -17281,11 +17361,11 @@ msgstr ""
 "Mostrar duas linhas de informação para cada transacção em vez de uma. Não "
 "afecta transacções expandidas."
 
-#: gnucash/gtkbuilder/dialog-preferences.glade:2730
+#: gnucash/gtkbuilder/dialog-preferences.glade:2847
 msgid "Register opens in a new _window"
 msgstr "Diário abre numa nova _janela"
 
-#: gnucash/gtkbuilder/dialog-preferences.glade:2736
+#: gnucash/gtkbuilder/dialog-preferences.glade:2853
 msgid ""
 "If checked, each register will be opened in its own top level window. If "
 "clear, the register will be opened in the current window."
@@ -17293,11 +17373,11 @@ msgstr ""
 "Se marcada, o diário abre numa janela de topo própria. Senão, o diário abre "
 "na janela actual."
 
-#: gnucash/gtkbuilder/dialog-preferences.glade:2748
+#: gnucash/gtkbuilder/dialog-preferences.glade:2865
 msgid "_Only display leaf account names"
 msgstr "Mostrar só nomes de conta _finais"
 
-#: gnucash/gtkbuilder/dialog-preferences.glade:2754
+#: gnucash/gtkbuilder/dialog-preferences.glade:2871
 msgid ""
 "If checked, only the names of the leaf accounts are displayed in the "
 "register and in the account selection popup. The default behaviour is to "
@@ -17310,47 +17390,47 @@ msgstr ""
 "implica usar só nomes finais."
 
 #. Register2 feature
-#: gnucash/gtkbuilder/dialog-preferences.glade:2769
+#: gnucash/gtkbuilder/dialog-preferences.glade:2886
 msgid "Number of _characters for auto complete"
 msgstr "Número de caracteres para _conclusão automática"
 
 #. Register2 feature
-#: gnucash/gtkbuilder/dialog-preferences.glade:2803
+#: gnucash/gtkbuilder/dialog-preferences.glade:2920
 msgid "Show the _entered and reconcile dates"
 msgstr "Mostrar as datas de _entrada e reconciliação"
 
 #. Register2 feature
-#: gnucash/gtkbuilder/dialog-preferences.glade:2819
+#: gnucash/gtkbuilder/dialog-preferences.glade:2936
 msgid "Show the calendar b_uttons"
 msgstr "_Mostrar botões de calendário"
 
 #. Register2 feature
-#: gnucash/gtkbuilder/dialog-preferences.glade:2835
+#: gnucash/gtkbuilder/dialog-preferences.glade:2952
 msgid "_Move the selection to the blank split on expand"
 msgstr "_Mover a selecção para a parcela em branco ao expandir"
 
 #. Register2 feature
-#: gnucash/gtkbuilder/dialog-preferences.glade:2851
+#: gnucash/gtkbuilder/dialog-preferences.glade:2968
 msgid "_Show entered and reconciled dates on selection"
 msgstr "Mo_strar datas entradas e reconciliadas ao seleccionar"
 
-#: gnucash/gtkbuilder/dialog-preferences.glade:2914
+#: gnucash/gtkbuilder/dialog-preferences.glade:3031
 msgid "Register Defaults"
 msgstr "Predefinições do diário"
 
-#: gnucash/gtkbuilder/dialog-preferences.glade:2945
+#: gnucash/gtkbuilder/dialog-preferences.glade:3062
 msgid "<b>Default Report Currency</b>"
 msgstr "<b>Moeda predefinida de relatórios</b>"
 
-#: gnucash/gtkbuilder/dialog-preferences.glade:2968
+#: gnucash/gtkbuilder/dialog-preferences.glade:3085
 msgid "<b>Location</b>"
 msgstr "<b>Localização</b>"
 
-#: gnucash/gtkbuilder/dialog-preferences.glade:2978
+#: gnucash/gtkbuilder/dialog-preferences.glade:3095
 msgid "Report opens in a new _window"
 msgstr "Relatório abre numa nova _janela"
 
-#: gnucash/gtkbuilder/dialog-preferences.glade:2984
+#: gnucash/gtkbuilder/dialog-preferences.glade:3101
 msgid ""
 "If checked, each report will be opened in its own top level window. If "
 "clear, the report will be opened in the current window."
@@ -17358,73 +17438,73 @@ msgstr ""
 "Se marcada, cada relatório será aberto na sua própria janela de topo. Senão, "
 "será aberto na janela actual."
 
-#: gnucash/gtkbuilder/dialog-preferences.glade:3012
+#: gnucash/gtkbuilder/dialog-preferences.glade:3129
 msgid "<b>Default zoom level</b>"
 msgstr "<b>Ampliação predefinida</b>"
 
-#: gnucash/gtkbuilder/dialog-preferences.glade:3090
+#: gnucash/gtkbuilder/dialog-preferences.glade:3207
 #, fuzzy
 msgid "Default zoom level"
 msgstr "<b>Ampliação predefinida</b>"
 
-#: gnucash/gtkbuilder/dialog-preferences.glade:3125
+#: gnucash/gtkbuilder/dialog-preferences.glade:3242
 msgid "Reports"
 msgstr "Relatórios"
 
-#: gnucash/gtkbuilder/dialog-preferences.glade:3144
+#: gnucash/gtkbuilder/dialog-preferences.glade:3261
 msgid "<b>Window Geometry</b>"
 msgstr "<b>Geometria da janela</b>"
 
-#: gnucash/gtkbuilder/dialog-preferences.glade:3164
+#: gnucash/gtkbuilder/dialog-preferences.glade:3281
 msgid "_Save window size and position"
 msgstr "_Gravar posição e tamanho da janela."
 
-#: gnucash/gtkbuilder/dialog-preferences.glade:3170
+#: gnucash/gtkbuilder/dialog-preferences.glade:3287
 msgid "Save window size and location when it is closed."
 msgstr "Gravar posição e tamanho da janela quando é fechada."
 
-#: gnucash/gtkbuilder/dialog-preferences.glade:3183
+#: gnucash/gtkbuilder/dialog-preferences.glade:3300
 msgid "Bring the most _recent tab to the front"
 msgstr "Trazer o separador mais _recente para a frente"
 
-#: gnucash/gtkbuilder/dialog-preferences.glade:3215
+#: gnucash/gtkbuilder/dialog-preferences.glade:3332
 msgid "<b>Tab Position</b>"
 msgstr "<b>Posição do separador</b>"
 
-#: gnucash/gtkbuilder/dialog-preferences.glade:3225
+#: gnucash/gtkbuilder/dialog-preferences.glade:3342
 msgid "To_p"
 msgstr "To_po"
 
-#: gnucash/gtkbuilder/dialog-preferences.glade:3244
+#: gnucash/gtkbuilder/dialog-preferences.glade:3361
 msgid "B_ottom"
 msgstr "_Fundo"
 
-#: gnucash/gtkbuilder/dialog-preferences.glade:3263
+#: gnucash/gtkbuilder/dialog-preferences.glade:3380
 msgid "_Left"
 msgstr "_Esquerda"
 
-#: gnucash/gtkbuilder/dialog-preferences.glade:3282
+#: gnucash/gtkbuilder/dialog-preferences.glade:3399
 msgid "_Right"
 msgstr "_Direita"
 
-#: gnucash/gtkbuilder/dialog-preferences.glade:3304
+#: gnucash/gtkbuilder/dialog-preferences.glade:3421
 msgid "<b>Summary Bar Position</b>"
 msgstr "<b>Posição da barra de sumário</b>"
 
-#: gnucash/gtkbuilder/dialog-preferences.glade:3333
+#: gnucash/gtkbuilder/dialog-preferences.glade:3450
 #: gnucash/gtkbuilder/dialog-print-check.glade:270
 msgid "Bottom"
 msgstr "Fundo"
 
-#: gnucash/gtkbuilder/dialog-preferences.glade:3365
+#: gnucash/gtkbuilder/dialog-preferences.glade:3482
 msgid "<b>Tabs</b>"
 msgstr "<b>Separadores</b>"
 
-#: gnucash/gtkbuilder/dialog-preferences.glade:3375
+#: gnucash/gtkbuilder/dialog-preferences.glade:3492
 msgid "Show close button on _notebook tabs"
 msgstr "Mostrar botão de _fecho em separadores"
 
-#: gnucash/gtkbuilder/dialog-preferences.glade:3381
+#: gnucash/gtkbuilder/dialog-preferences.glade:3498
 msgid ""
 "Show a close button on each notebook tab. These function identically to the "
 "'Close' menu item."
@@ -17432,7 +17512,7 @@ msgstr ""
 "Mostrar um botão de fecho em cada separador do bloco de notas. Funciona tal "
 "como o item de menu \"Fechar\"."
 
-#: gnucash/gtkbuilder/dialog-preferences.glade:3402
+#: gnucash/gtkbuilder/dialog-preferences.glade:3519
 msgid ""
 "If the text in the tab is longer than this value (the test is approximate) "
 "then the tab label will have the middle cut and replaced with an ellipsis."
@@ -17440,29 +17520,29 @@ msgstr ""
 "Se o texto no separador for maior que este valor (o teste é aproximado), o "
 "rótulo será cortado e preenchido com reticências."
 
-#: gnucash/gtkbuilder/dialog-preferences.glade:3404
+#: gnucash/gtkbuilder/dialog-preferences.glade:3521
 #, fuzzy
 msgid "30"
 msgstr "0"
 
-#: gnucash/gtkbuilder/dialog-preferences.glade:3422
+#: gnucash/gtkbuilder/dialog-preferences.glade:3539
 msgid "characters"
 msgstr "caracteres"
 
-#: gnucash/gtkbuilder/dialog-preferences.glade:3441
+#: gnucash/gtkbuilder/dialog-preferences.glade:3558
 msgid "_Width"
 msgstr "_Largura"
 
-#: gnucash/gtkbuilder/dialog-preferences.glade:3478
+#: gnucash/gtkbuilder/dialog-preferences.glade:3595
 msgid "Windows"
 msgstr "Janelas"
 
-#: gnucash/gtkbuilder/dialog-preferences.glade:3521
+#: gnucash/gtkbuilder/dialog-preferences.glade:3638
 #, fuzzy
 msgid "<b>Online Quotes</b>"
 msgstr "Cotações online"
 
-#: gnucash/gtkbuilder/dialog-preferences.glade:3542
+#: gnucash/gtkbuilder/dialog-preferences.glade:3659
 msgid "Online Quotes"
 msgstr "Cotações online"
 
@@ -17750,7 +17830,7 @@ msgid "Amount (_numbers)"
 msgstr "Montante (_valor)"
 
 #: gnucash/gtkbuilder/dialog-print-check.glade:746
-#: gnucash/gtkbuilder/gnc-plugin-page-register.glade:814
+#: gnucash/gtkbuilder/gnc-plugin-page-register.glade:1013
 msgid "_Notes"
 msgstr "_Notas"
 
@@ -18998,75 +19078,87 @@ msgstr "Notas extra"
 
 #. Duplicate Transaction Dialog
 #: gnucash/gtkbuilder/gnc-plugin-page-register2.glade:13
-#: gnucash/gtkbuilder/gnc-plugin-page-register.glade:917
+#: gnucash/gtkbuilder/gnc-plugin-page-register.glade:565
 msgid "Duplicate Transaction"
 msgstr "Transacção duplicada"
 
-#: gnucash/gtkbuilder/gnc-plugin-page-register2.glade:93
-#: gnucash/gtkbuilder/gnc-plugin-page-register.glade:999
+#: gnucash/gtkbuilder/gnc-plugin-page-register2.glade:73
+#: gnucash/gtkbuilder/gnc-plugin-page-register.glade:624
+msgid "<b>New Transaction Information</b>"
+msgstr "<b>Nova informação de transacção</b>"
+
+#: gnucash/gtkbuilder/gnc-plugin-page-register2.glade:108
+#: gnucash/gtkbuilder/gnc-plugin-page-register.glade:661
 msgid "_Number"
 msgstr "_Número"
 
-#: gnucash/gtkbuilder/gnc-plugin-page-register2.glade:144
-#: gnucash/gtkbuilder/gnc-plugin-page-register.glade:1105
-msgid "<b>New Transaction Information</b>"
-msgstr "<b>Nova informação de transacção</b>"
+#: gnucash/gtkbuilder/gnc-plugin-page-register2.glade:146
+#: gnucash/gtkbuilder/gnc-plugin-page-register.glade:689
+msgid "_Transaction Number"
+msgstr "Número de _transacção"
+
+#: gnucash/gtkbuilder/gnc-plugin-page-register2.glade:161
+#: gnucash/gtkbuilder/gnc-plugin-page-register.glade:719
+#, fuzzy
+#| msgid "Delete the current entry"
+msgid "Keep Linked Document Entry"
+msgstr "Eliminar a transacção actual"
 
 #. Filter register by... Dialog
-#: gnucash/gtkbuilder/gnc-plugin-page-register2.glade:166
+#: gnucash/gtkbuilder/gnc-plugin-page-register2.glade:213
 #: gnucash/gtkbuilder/gnc-plugin-page-register.glade:13
 msgid "Filter register by..."
 msgstr "Filtrar diário por..."
 
 #. Filter By Dialog, Date Tab
-#: gnucash/gtkbuilder/gnc-plugin-page-register2.glade:233
+#: gnucash/gtkbuilder/gnc-plugin-page-register2.glade:280
 #: gnucash/gtkbuilder/gnc-plugin-page-register.glade:80
 msgid "Show _All"
 msgstr "_Mostrar tudo"
 
-#: gnucash/gtkbuilder/gnc-plugin-page-register2.glade:249
+#: gnucash/gtkbuilder/gnc-plugin-page-register2.glade:296
 msgid "Select Range:"
 msgstr "Definir intervalo:"
 
-#: gnucash/gtkbuilder/gnc-plugin-page-register2.glade:302
+#: gnucash/gtkbuilder/gnc-plugin-page-register2.glade:349
 #: gnucash/gtkbuilder/gnc-plugin-page-register.glade:193
 msgid "Choo_se Date"
 msgstr "E_scolher data"
 
 #. Filter By Dialog, State Tab
-#: gnucash/gtkbuilder/gnc-plugin-page-register2.glade:495
+#: gnucash/gtkbuilder/gnc-plugin-page-register2.glade:542
 #: gnucash/gtkbuilder/gnc-plugin-page-register.glade:386
 msgid "_Unreconciled"
 msgstr "_Não reconciliada"
 
-#: gnucash/gtkbuilder/gnc-plugin-page-register2.glade:527
+#: gnucash/gtkbuilder/gnc-plugin-page-register2.glade:574
 #: gnucash/gtkbuilder/gnc-plugin-page-register.glade:418
 msgid "C_leared"
 msgstr "C_onfirmada"
 
-#: gnucash/gtkbuilder/gnc-plugin-page-register2.glade:543
+#: gnucash/gtkbuilder/gnc-plugin-page-register2.glade:590
 #: gnucash/gtkbuilder/gnc-plugin-page-register.glade:434
 msgid "_Voided"
 msgstr "_Esvaziada"
 
-#: gnucash/gtkbuilder/gnc-plugin-page-register2.glade:559
+#: gnucash/gtkbuilder/gnc-plugin-page-register2.glade:606
 #: gnucash/gtkbuilder/gnc-plugin-page-register.glade:450
 msgid "_Frozen"
 msgstr "_Suspensa"
 
 #. Filter By Dialog, below tabs
-#: gnucash/gtkbuilder/gnc-plugin-page-register2.glade:638
+#: gnucash/gtkbuilder/gnc-plugin-page-register2.glade:685
 #: gnucash/gtkbuilder/gnc-plugin-page-register.glade:529
 msgid "Sa_ve Filter"
 msgstr "Gra_var filtro"
 
-#: gnucash/gtkbuilder/gnc-plugin-page-register2.glade:674
-#: gnucash/gtkbuilder/gnc-plugin-page-register.glade:1127
+#: gnucash/gtkbuilder/gnc-plugin-page-register2.glade:721
+#: gnucash/gtkbuilder/gnc-plugin-page-register.glade:1111
 msgid "Void Transaction"
 msgstr "Esvaziar transacção"
 
-#: gnucash/gtkbuilder/gnc-plugin-page-register2.glade:738
-#: gnucash/gtkbuilder/gnc-plugin-page-register.glade:1191
+#: gnucash/gtkbuilder/gnc-plugin-page-register2.glade:785
+#: gnucash/gtkbuilder/gnc-plugin-page-register.glade:1175
 msgid "Reason for voiding transaction"
 msgstr "Motivo para esvaziar a transacção"
 
@@ -19083,103 +19175,93 @@ msgstr ""
 "Se for 0, inclui todos os anteriores"
 
 #. Sort register by Dialog
-#: gnucash/gtkbuilder/gnc-plugin-page-register.glade:570
+#: gnucash/gtkbuilder/gnc-plugin-page-register.glade:769
 msgid "Sort register by..."
 msgstr "Ordenar diário por..."
 
-#: gnucash/gtkbuilder/gnc-plugin-page-register.glade:633
+#: gnucash/gtkbuilder/gnc-plugin-page-register.glade:832
 msgid "_Standard Order"
 msgstr "Ordem _padrão"
 
-#: gnucash/gtkbuilder/gnc-plugin-page-register.glade:637
+#: gnucash/gtkbuilder/gnc-plugin-page-register.glade:836
 msgid "Keep normal account order."
 msgstr "Manter a ordem normal da conta."
 
-#: gnucash/gtkbuilder/gnc-plugin-page-register.glade:666
+#: gnucash/gtkbuilder/gnc-plugin-page-register.glade:865
 #: gnucash/report/trep-engine.scm:162
 msgid "Sort by date."
 msgstr "Ordenar por data."
 
-#: gnucash/gtkbuilder/gnc-plugin-page-register.glade:685
+#: gnucash/gtkbuilder/gnc-plugin-page-register.glade:884
 msgid "Sort by the date of entry."
 msgstr "Ordenar por data de entrada."
 
-#: gnucash/gtkbuilder/gnc-plugin-page-register.glade:700
+#: gnucash/gtkbuilder/gnc-plugin-page-register.glade:899
 msgid "S_tatement Date"
 msgstr "_Data do documento"
 
-#: gnucash/gtkbuilder/gnc-plugin-page-register.glade:704
+#: gnucash/gtkbuilder/gnc-plugin-page-register.glade:903
 msgid ""
 "Sort by the statement date (and group by cleared, unreconciled, reconciled)."
 msgstr ""
 "Ordenar por data de documento (e agrupar por confirmada, não reconciliada, "
 "reconciliada)."
 
-#: gnucash/gtkbuilder/gnc-plugin-page-register.glade:719
+#: gnucash/gtkbuilder/gnc-plugin-page-register.glade:918
 msgid "Num_ber"
 msgstr "Númer_o"
 
-#: gnucash/gtkbuilder/gnc-plugin-page-register.glade:723
+#: gnucash/gtkbuilder/gnc-plugin-page-register.glade:922
 msgid "Sort by number."
 msgstr "Ordenar por número."
 
-#: gnucash/gtkbuilder/gnc-plugin-page-register.glade:738
+#: gnucash/gtkbuilder/gnc-plugin-page-register.glade:937
 msgid "Amo_unt"
 msgstr "_Montante"
 
-#: gnucash/gtkbuilder/gnc-plugin-page-register.glade:742
+#: gnucash/gtkbuilder/gnc-plugin-page-register.glade:941
 #: gnucash/report/trep-engine.scm:208
 msgid "Sort by amount."
 msgstr "Ordenar por montante."
 
-#: gnucash/gtkbuilder/gnc-plugin-page-register.glade:761
+#: gnucash/gtkbuilder/gnc-plugin-page-register.glade:960
 #: gnucash/report/trep-engine.scm:245
 msgid "Sort by memo."
 msgstr "Ordenar por memorando."
 
-#: gnucash/gtkbuilder/gnc-plugin-page-register.glade:780
+#: gnucash/gtkbuilder/gnc-plugin-page-register.glade:979
 #: gnucash/report/trep-engine.scm:216
 msgid "Sort by description."
 msgstr "Ordenar por descrição."
 
-#: gnucash/gtkbuilder/gnc-plugin-page-register.glade:795
+#: gnucash/gtkbuilder/gnc-plugin-page-register.glade:994
 msgid "_Action"
 msgstr "_Acção"
 
-#: gnucash/gtkbuilder/gnc-plugin-page-register.glade:799
+#: gnucash/gtkbuilder/gnc-plugin-page-register.glade:998
 msgid "Sort by action field."
 msgstr "Ordenar por campo de acção."
 
-#: gnucash/gtkbuilder/gnc-plugin-page-register.glade:818
+#: gnucash/gtkbuilder/gnc-plugin-page-register.glade:1017
 msgid "Sort by notes field."
 msgstr "Ordenar por campo de notas."
 
-#: gnucash/gtkbuilder/gnc-plugin-page-register.glade:849
+#: gnucash/gtkbuilder/gnc-plugin-page-register.glade:1048
 msgid "Sa_ve Sort Order"
 msgstr "Gra_var ordenação"
 
-#: gnucash/gtkbuilder/gnc-plugin-page-register.glade:853
+#: gnucash/gtkbuilder/gnc-plugin-page-register.glade:1052
 msgid "Save the sort order for this register."
 msgstr "Gravar a ordem escolhida para este diário."
 
-#: gnucash/gtkbuilder/gnc-plugin-page-register.glade:869
+#: gnucash/gtkbuilder/gnc-plugin-page-register.glade:1068
 msgid "_Reverse Order"
 msgstr "_Reverter ordem"
 
-#: gnucash/gtkbuilder/gnc-plugin-page-register.glade:873
+#: gnucash/gtkbuilder/gnc-plugin-page-register.glade:1072
 msgid "Sort in descending order."
 msgstr "Ordenar descendentemente."
 
-#: gnucash/gtkbuilder/gnc-plugin-page-register.glade:1042
-msgid "_Transaction Number"
-msgstr "Número de _transacção"
-
-#: gnucash/gtkbuilder/gnc-plugin-page-register.glade:1086
-#, fuzzy
-#| msgid "Delete the current entry"
-msgid "Keep Linked Document Entry"
-msgstr "Eliminar a transacção actual"
-
 #: gnucash/gtkbuilder/gnc-recurrence.glade:12
 msgid "day(s)"
 msgstr "dia(s)."
@@ -19241,14 +19323,46 @@ msgid "Show _zero balance owners"
 msgstr "Mostrar titulares com saldo _zero"
 
 #: gnucash/gtkbuilder/window-autoclear.glade:71
-msgid "<b>Auto-Clear Information</b>"
-msgstr "<b>Informação de confirmação automática</b>"
+#, fuzzy
+#| msgid "Auto-clear"
+msgid "About Auto-Clear"
+msgstr "Auto-confirmar"
+
+#: gnucash/gtkbuilder/window-autoclear.glade:86
+msgid ""
+"Use this dialog if you want GnuCash to automatically find which transactions "
+"are cleared, given an ending balance. For example, said ending balance can "
+"be the current balance given by your bank online."
+msgstr ""
+
+#: gnucash/gtkbuilder/window-autoclear.glade:101
+#, fuzzy
+#| msgid "Fraction"
+msgid "Caution!"
+msgstr "Fracção"
+
+#: gnucash/gtkbuilder/window-autoclear.glade:116
+msgid ""
+"This tool might be slow or abort if the number of uncleared splits is more "
+"than approximately 20. In that case please clear at least some of them "
+"manually."
+msgstr ""
 
-#: gnucash/gtkbuilder/window-autoclear.glade:92
+#: gnucash/gtkbuilder/window-autoclear.glade:138
 #: gnucash/gtkbuilder/window-reconcile.glade:117
 msgid "_Ending Balance"
 msgstr "_Saldo final"
 
+#: gnucash/gtkbuilder/window-autoclear.glade:177
+#, fuzzy
+#| msgid "_Review created transactions"
+msgid "_Review cleared splits"
+msgstr "_Rever transacções criadas"
+
+#: gnucash/gtkbuilder/window-autoclear.glade:181
+msgid "Select this option to open a register tab with newly cleared splits."
+msgstr ""
+
 #: gnucash/gtkbuilder/window-reconcile.glade:71
 msgid "<b>Reconcile Information</b>"
 msgstr "<b>Reconciliar informação</b>"
@@ -20007,7 +20121,7 @@ msgid "Unspecified"
 msgstr "Não especificado"
 
 #: gnucash/import-export/aqb/gnc-ab-utils.c:543
-#: gnucash/report/report-utilities.scm:102 libgnucash/engine/Account.cpp:4314
+#: gnucash/report/report-utilities.scm:114 libgnucash/engine/Account.cpp:4361
 msgid "Bank"
 msgstr "Banco"
 
@@ -21555,91 +21669,91 @@ msgstr "a/m/d"
 msgid "y/d/m"
 msgstr "a/d/m"
 
-#: gnucash/import-export/import-main-matcher.c:533
-#: gnucash/import-export/import-main-matcher.c:683
+#: gnucash/import-export/import-main-matcher.c:591
+#: gnucash/import-export/import-main-matcher.c:741
 msgid "Destination account for the auto-balance split."
 msgstr "Conta destino da parcela de saldo automático."
 
-#: gnucash/import-export/import-main-matcher.c:874
+#: gnucash/import-export/import-main-matcher.c:930
 #, fuzzy
 msgid "Assign a transfer account to the selection."
 msgstr "Atribuir conta de transferência."
 
-#: gnucash/import-export/import-main-matcher.c:1041
+#: gnucash/import-export/import-main-matcher.c:1093
 #, fuzzy
 #| msgid "A"
 msgctxt "Column header for 'Adding transaction'"
 msgid "A"
 msgstr "Ad"
 
-#: gnucash/import-export/import-main-matcher.c:1044
+#: gnucash/import-export/import-main-matcher.c:1096
 #, fuzzy
 msgctxt "Column header for 'Updating plus Clearing transaction'"
 msgid "U+C"
 msgstr "At+R"
 
-#: gnucash/import-export/import-main-matcher.c:1048
+#: gnucash/import-export/import-main-matcher.c:1100
 #, fuzzy
 #| msgid "C"
 msgctxt "Column header for 'Clearing transaction'"
 msgid "C"
 msgstr "C"
 
-#: gnucash/import-export/import-main-matcher.c:1054
+#: gnucash/import-export/import-main-matcher.c:1107
 msgid "Info"
 msgstr "Informação"
 
-#: gnucash/import-export/import-main-matcher.c:1061
+#: gnucash/import-export/import-main-matcher.c:1114
 #: gnucash/report/stylesheets/head-or-tail.scm:102
 msgid "Additional Comments"
 msgstr "Comentários adicionais"
 
-#: gnucash/import-export/import-main-matcher.c:1427
+#: gnucash/import-export/import-main-matcher.c:1478
 msgid "New, already balanced"
 msgstr "Nova, já saldada"
 
 #. Translators: %1$s is the amount to be
 #. transferred. %2$s is the destination account.
-#: gnucash/import-export/import-main-matcher.c:1453
+#: gnucash/import-export/import-main-matcher.c:1504
 #, c-format
 msgid "New, transfer %s to (manual) \"%s\""
 msgstr "Nova, transferir %s para \"%s\" (manual)"
 
 #. Translators: %1$s is the amount to be
 #. transferred. %2$s is the destination account.
-#: gnucash/import-export/import-main-matcher.c:1461
+#: gnucash/import-export/import-main-matcher.c:1512
 #, c-format
 msgid "New, transfer %s to (auto) \"%s\""
 msgstr "Nova, transferir %s para \"%s\" (automático)"
 
 #. Translators: %s is the amount to be transferred.
-#: gnucash/import-export/import-main-matcher.c:1472
+#: gnucash/import-export/import-main-matcher.c:1523
 #, c-format
 msgid "New, UNBALANCED (need acct to transfer %s)!"
 msgstr "Nova, NÃO SALDADA (precisa de conta para transferir %s)!"
 
-#: gnucash/import-export/import-main-matcher.c:1489
+#: gnucash/import-export/import-main-matcher.c:1540
 msgid "Reconcile (manual) match"
 msgstr "Reconciliar correspondência (manual)"
 
-#: gnucash/import-export/import-main-matcher.c:1493
+#: gnucash/import-export/import-main-matcher.c:1544
 msgid "Reconcile (auto) match"
 msgstr "Reconciliar correspondência (automático)"
 
-#: gnucash/import-export/import-main-matcher.c:1500
-#: gnucash/import-export/import-main-matcher.c:1526
+#: gnucash/import-export/import-main-matcher.c:1551
+#: gnucash/import-export/import-main-matcher.c:1577
 msgid "Match missing!"
 msgstr "Correspondência em falta!"
 
-#: gnucash/import-export/import-main-matcher.c:1515
+#: gnucash/import-export/import-main-matcher.c:1566
 msgid "Update and reconcile (manual) match"
 msgstr "Actualizar e reconciliar correspondência (manual)"
 
-#: gnucash/import-export/import-main-matcher.c:1519
+#: gnucash/import-export/import-main-matcher.c:1570
 msgid "Update and reconcile (auto) match"
 msgstr "Actualizar e reconciliar correspondência (automático)"
 
-#: gnucash/import-export/import-main-matcher.c:1534
+#: gnucash/import-export/import-main-matcher.c:1585
 msgid "Do not import (no action selected)"
 msgstr "Não importar (sem acção seleccionada)"
 
@@ -21707,49 +21821,49 @@ msgstr "Conta de acções para a mercadoria \"%s\""
 msgid "Income account for security \"%s\""
 msgstr "Conta de receita para a mercadoria \"%s\""
 
-#: gnucash/import-export/ofx/gnc-ofx-import.c:935
+#: gnucash/import-export/ofx/gnc-ofx-import.c:937
 msgid "Unknown OFX account"
 msgstr "Conta OFX desconhecida"
 
-#: gnucash/import-export/ofx/gnc-ofx-import.c:958
+#: gnucash/import-export/ofx/gnc-ofx-import.c:960
 msgid "Unknown OFX checking account"
 msgstr "Conta à ordem OFX desconhecida"
 
-#: gnucash/import-export/ofx/gnc-ofx-import.c:962
+#: gnucash/import-export/ofx/gnc-ofx-import.c:964
 msgid "Unknown OFX savings account"
 msgstr "Conta poupança OFX desconhecida"
 
-#: gnucash/import-export/ofx/gnc-ofx-import.c:966
+#: gnucash/import-export/ofx/gnc-ofx-import.c:968
 msgid "Unknown OFX money market account"
 msgstr "Conta de mercado monetário OFX desconhecida"
 
-#: gnucash/import-export/ofx/gnc-ofx-import.c:970
+#: gnucash/import-export/ofx/gnc-ofx-import.c:972
 msgid "Unknown OFX credit line account"
 msgstr "Conta de linha de crédito OFX desconhecida"
 
-#: gnucash/import-export/ofx/gnc-ofx-import.c:975
+#: gnucash/import-export/ofx/gnc-ofx-import.c:977
 msgid "Unknown OFX CMA account"
 msgstr "Conta CMA OFX desconhecida"
 
-#: gnucash/import-export/ofx/gnc-ofx-import.c:979
+#: gnucash/import-export/ofx/gnc-ofx-import.c:981
 msgid "Unknown OFX credit card account"
 msgstr "Conta de cartão de crédito OFX desconhecida"
 
-#: gnucash/import-export/ofx/gnc-ofx-import.c:983
+#: gnucash/import-export/ofx/gnc-ofx-import.c:985
 msgid "Unknown OFX investment account"
 msgstr "Conta de investimentos OFX desconhecida"
 
-#: gnucash/import-export/ofx/gnc-ofx-import.c:1163
+#: gnucash/import-export/ofx/gnc-ofx-import.c:1177
 #, c-format
 msgid ""
 "OFX file '%s' imported, %d transactions processed, no transactions to match"
 msgstr ""
 
-#: gnucash/import-export/ofx/gnc-ofx-import.c:1214
+#: gnucash/import-export/ofx/gnc-ofx-import.c:1228
 msgid "Open/Quicken Financial Exchange file (*.ofx, *.qfx)"
 msgstr ""
 
-#: gnucash/import-export/ofx/gnc-ofx-import.c:1219
+#: gnucash/import-export/ofx/gnc-ofx-import.c:1233
 #, fuzzy
 msgid "Select one or multiple OFX/QFX file(s) to process"
 msgstr "Seleccione um ficheiro OFX/QFX para processar"
@@ -21993,11 +22107,11 @@ msgstr "Ganho cap. (curto)"
 
 #: gnucash/import-export/qif-imp/qif-dialog-utils.scm:73
 #: gnucash/import-export/qif-imp/qif-dialog-utils.scm:77
-#: gnucash/report/reports/standard/balance-sheet.scm:509
+#: gnucash/report/reports/standard/balance-sheet.scm:510
 #: gnucash/report/reports/standard/balsheet-pnl.scm:1108
 #: gnucash/report/reports/standard/balsheet-pnl.scm:1123
 #: gnucash/report/reports/support/balsheet-eg.eguile.scm:189
-#: libgnucash/app-utils/gnc-ui-util.c:945
+#: libgnucash/app-utils/gnc-ui-util.c:954
 msgid "Retained Earnings"
 msgstr "Dividendos retidos"
 
@@ -22431,7 +22545,7 @@ msgstr ">"
 #: gnucash/register/ledger-core/gncEntryLedgerLoad.c:130
 #: gnucash/register/ledger-core/gncEntryLedgerModel.c:527
 #: gnucash/register/ledger-core/gncEntryLedgerModel.c:1091
-#: gnucash/report/report-utilities.scm:103 libgnucash/engine/Account.cpp:4315
+#: gnucash/report/report-utilities.scm:115 libgnucash/engine/Account.cpp:4362
 msgid "Cash"
 msgstr "Dinheiro"
 
@@ -22953,79 +23067,79 @@ msgstr "A ajustar entradas"
 msgid "Load"
 msgstr ""
 
-#: gnucash/report/html-fonts.scm:68 gnucash/report/html-fonts.scm:73
-#: gnucash/report/html-fonts.scm:78 gnucash/report/html-fonts.scm:83
-#: gnucash/report/html-fonts.scm:88 gnucash/report/html-fonts.scm:93
-#: gnucash/report/html-fonts.scm:98 gnucash/report/html-fonts.scm:104
-#: gnucash/report/html-fonts.scm:110
+#: gnucash/report/html-fonts.scm:92 gnucash/report/html-fonts.scm:97
+#: gnucash/report/html-fonts.scm:102 gnucash/report/html-fonts.scm:107
+#: gnucash/report/html-fonts.scm:112 gnucash/report/html-fonts.scm:117
+#: gnucash/report/html-fonts.scm:122 gnucash/report/html-fonts.scm:128
+#: gnucash/report/html-fonts.scm:134
 msgid "Fonts"
 msgstr "Letras"
 
-#: gnucash/report/html-fonts.scm:69
+#: gnucash/report/html-fonts.scm:93
 msgid "Font info for the report title."
 msgstr "Informação de letra para o título do relatório."
 
-#: gnucash/report/html-fonts.scm:74
+#: gnucash/report/html-fonts.scm:98
 msgid "Account link"
 msgstr "Ligação de conta"
 
-#: gnucash/report/html-fonts.scm:74
+#: gnucash/report/html-fonts.scm:98
 msgid "Font info for account name."
 msgstr "Informação de letra para o nome da conta."
 
-#: gnucash/report/html-fonts.scm:79
+#: gnucash/report/html-fonts.scm:103
 msgid "Number cell"
 msgstr "Célula de número"
 
-#: gnucash/report/html-fonts.scm:79
+#: gnucash/report/html-fonts.scm:103
 msgid "Font info for regular number cells."
 msgstr "Informação de letra para células de número regulares."
 
-#: gnucash/report/html-fonts.scm:84
+#: gnucash/report/html-fonts.scm:108
 msgid "Negative Values in Red"
 msgstr "Valores negativos em vermelho"
 
-#: gnucash/report/html-fonts.scm:84
+#: gnucash/report/html-fonts.scm:108
 msgid "Display negative values in red."
 msgstr "Mostrar números negativos em vermelho."
 
-#: gnucash/report/html-fonts.scm:89
+#: gnucash/report/html-fonts.scm:113
 msgid "Number header"
 msgstr "Cabeçalho de número"
 
-#: gnucash/report/html-fonts.scm:89
+#: gnucash/report/html-fonts.scm:113
 msgid "Font info for number headers."
 msgstr "Informação de letra para cabeçalhos de número."
 
-#: gnucash/report/html-fonts.scm:94
+#: gnucash/report/html-fonts.scm:118
 msgid "Text cell"
 msgstr "Célula de texto"
 
-#: gnucash/report/html-fonts.scm:94
+#: gnucash/report/html-fonts.scm:118
 msgid "Font info for regular text cells."
 msgstr "Informação de letra para células de texto regulares."
 
-#: gnucash/report/html-fonts.scm:99
+#: gnucash/report/html-fonts.scm:123
 msgid "Total number cell"
 msgstr "Células de totais"
 
-#: gnucash/report/html-fonts.scm:100
+#: gnucash/report/html-fonts.scm:124
 msgid "Font info for number cells containing a total."
 msgstr "Informação de letra para células de número contento um total."
 
-#: gnucash/report/html-fonts.scm:105
+#: gnucash/report/html-fonts.scm:129
 msgid "Total label cell"
 msgstr "Célula de rótulo Total"
 
-#: gnucash/report/html-fonts.scm:106
+#: gnucash/report/html-fonts.scm:130
 msgid "Font info for cells containing total labels."
 msgstr "Informação de letra para células contendo rótulos Total."
 
-#: gnucash/report/html-fonts.scm:111
+#: gnucash/report/html-fonts.scm:135
 msgid "Centered label cell"
 msgstr "Célula de rótulo centrado"
 
-#: gnucash/report/html-fonts.scm:111
+#: gnucash/report/html-fonts.scm:135
 msgid "Font info for centered label cells."
 msgstr "Informação de letra para células de rótulos centrados."
 
@@ -23033,43 +23147,43 @@ msgstr "Informação de letra para células de rótulos centrados."
 msgid "Can't save style sheet"
 msgstr "Impossível gravar a folha de estilo"
 
-#: gnucash/report/html-utilities.scm:227
+#: gnucash/report/html-utilities.scm:229 gnucash/report/html-utilities.scm:246
+#, fuzzy
+#| msgid "Exchange rate"
 msgid "Exchange rate"
-msgstr "Taxa de câmbio"
-
-#: gnucash/report/html-utilities.scm:228
-msgid "Exchange rates"
-msgstr "Taxas de câmbio"
+msgid_plural "Exchange rates"
+msgstr[0] "Taxa de câmbio"
+msgstr[1] "Taxa de câmbio"
 
-#: gnucash/report/html-utilities.scm:235
+#: gnucash/report/html-utilities.scm:259
 msgid "No budgets exist. You must create at least one budget."
 msgstr "Não existem orçamentos. Tem de criar pelo menos um."
 
-#: gnucash/report/html-utilities.scm:268
+#: gnucash/report/html-utilities.scm:292
 #: gnucash/report/reports/standard/balsheet-pnl.scm:137
 #: gnucash/report/reports/standard/balsheet-pnl.scm:138
 #: gnucash/report/reports/standard/new-owner-report.scm:935
 msgid "Disabled"
 msgstr "Inactivo"
 
-#: gnucash/report/html-utilities.scm:321
+#: gnucash/report/html-utilities.scm:345
 msgid "This report requires you to specify certain report options."
 msgstr "Este relatório requer que especifique determinadas opções."
 
-#: gnucash/report/html-utilities.scm:328
+#: gnucash/report/html-utilities.scm:352
 msgid "No accounts selected"
 msgstr "Sem contas seleccionadas"
 
-#: gnucash/report/html-utilities.scm:329
+#: gnucash/report/html-utilities.scm:353
 msgid "This report requires accounts to be selected in the report options."
 msgstr "Este relatório requer que seleccione contas nas opções do relatório."
 
-#: gnucash/report/html-utilities.scm:336
+#: gnucash/report/html-utilities.scm:360
 #: gnucash/report/reports/standard/price-scatter.scm:276
 msgid "No data"
 msgstr "Sem dados"
 
-#: gnucash/report/html-utilities.scm:337
+#: gnucash/report/html-utilities.scm:361
 msgid ""
 "The selected accounts contain no data/transactions (or only zeroes) for the "
 "selected time period"
@@ -23460,19 +23574,19 @@ msgstr "_Pessoal"
 #: gnucash/report/reports/standard/invoice.scm:337
 #: gnucash/report/reports/standard/invoice.scm:342
 #: gnucash/report/reports/standard/receipt.scm:40
-#: gnucash/report/reports/standard/register.scm:382
+#: gnucash/report/reports/standard/register.scm:353
+#: gnucash/report/reports/standard/register.scm:359
+#: gnucash/report/reports/standard/register.scm:363
+#: gnucash/report/reports/standard/register.scm:368
+#: gnucash/report/reports/standard/register.scm:373
+#: gnucash/report/reports/standard/register.scm:378
+#: gnucash/report/reports/standard/register.scm:383
 #: gnucash/report/reports/standard/register.scm:388
-#: gnucash/report/reports/standard/register.scm:392
-#: gnucash/report/reports/standard/register.scm:397
-#: gnucash/report/reports/standard/register.scm:402
+#: gnucash/report/reports/standard/register.scm:393
+#: gnucash/report/reports/standard/register.scm:398
 #: gnucash/report/reports/standard/register.scm:407
 #: gnucash/report/reports/standard/register.scm:412
 #: gnucash/report/reports/standard/register.scm:417
-#: gnucash/report/reports/standard/register.scm:422
-#: gnucash/report/reports/standard/register.scm:427
-#: gnucash/report/reports/standard/register.scm:436
-#: gnucash/report/reports/standard/register.scm:441
-#: gnucash/report/reports/standard/register.scm:446
 #: gnucash/report/reports/standard/taxinvoice.scm:79
 msgid "Display"
 msgstr "Mostrar"
@@ -24070,7 +24184,7 @@ msgstr "Mostrar o saldo total na legenda?"
 #: gnucash/report/reports/standard/balsheet-pnl.scm:910
 #: gnucash/report/reports/standard/budget.scm:513
 #: gnucash/report/reports/standard/cashflow-barchart.scm:282
-#: gnucash/report/reports/standard/cash-flow.scm:188
+#: gnucash/report/reports/standard/cash-flow.scm:190
 #: gnucash/report/reports/standard/category-barchart.scm:514
 #: gnucash/report/reports/standard/net-charts.scm:334
 #: gnucash/report/reports/standard/price-scatter.scm:212
@@ -24601,34 +24715,34 @@ msgstr ""
 "AVISO: há códigos de modelo de imposto atribuídos a algumas contas. Só podem "
 "ser repetidos códigos de modelo com origens de pagador."
 
-#: gnucash/report/reports/locale-specific/de_DE/taxtxf.scm:818
+#: gnucash/report/reports/locale-specific/de_DE/taxtxf.scm:817
 #, scheme-format
 msgid "Period from ~a to ~a"
 msgstr "Período de ~a a ~a"
 
-#: gnucash/report/reports/locale-specific/de_DE/taxtxf.scm:855
+#: gnucash/report/reports/locale-specific/de_DE/taxtxf.scm:854
 msgid "Tax Report & XML Export"
 msgstr "Relatório de IRS e exportação XML"
 
-#: gnucash/report/reports/locale-specific/de_DE/taxtxf.scm:857
+#: gnucash/report/reports/locale-specific/de_DE/taxtxf.scm:856
 msgid "Taxable Income / Deductible Expenses / Export to .XML file"
 msgstr "Receita colectável/Despesa dedutível/Exportar para ficheiro .XML"
 
-#: gnucash/report/reports/locale-specific/de_DE/taxtxf.scm:861
-#: gnucash/report/reports/locale-specific/de_DE/taxtxf.scm:870
+#: gnucash/report/reports/locale-specific/de_DE/taxtxf.scm:860
+#: gnucash/report/reports/locale-specific/de_DE/taxtxf.scm:869
 msgid "Taxable Income / Deductible Expenses"
 msgstr "Receita colectável/Despesa dedutível"
 
-#: gnucash/report/reports/locale-specific/de_DE/taxtxf.scm:862
+#: gnucash/report/reports/locale-specific/de_DE/taxtxf.scm:861
 msgid "This report shows your Taxable Income and Deductible Expenses."
 msgstr ""
 "Este relatório mostra a sua receita colectável e a sua despesa dedutível."
 
-#: gnucash/report/reports/locale-specific/de_DE/taxtxf.scm:867
+#: gnucash/report/reports/locale-specific/de_DE/taxtxf.scm:866
 msgid "XML"
 msgstr "XML"
 
-#: gnucash/report/reports/locale-specific/de_DE/taxtxf.scm:871
+#: gnucash/report/reports/locale-specific/de_DE/taxtxf.scm:870
 msgid "This page shows your Taxable Income and Deductible Expenses."
 msgstr "Esta página mostra a sua receita colectável e a sua despesa dedutível."
 
@@ -24809,20 +24923,20 @@ msgid "Expense Accounts"
 msgstr "Contas de despesa"
 
 #: gnucash/report/reports/standard/account-piecharts.scm:60
-#: gnucash/report/reports/standard/balance-sheet.scm:485
-#: gnucash/report/reports/standard/budget-balance-sheet.scm:664
+#: gnucash/report/reports/standard/balance-sheet.scm:486
+#: gnucash/report/reports/standard/budget-balance-sheet.scm:665
 #: gnucash/report/reports/standard/net-charts.scm:350
 #: gnucash/report/reports/standard/net-charts.scm:421
-#: gnucash/report/report-utilities.scm:105
+#: gnucash/report/report-utilities.scm:117
 msgid "Assets"
 msgstr "Activo"
 
 #: gnucash/report/reports/standard/account-piecharts.scm:62
-#: gnucash/report/reports/standard/balance-sheet.scm:386
-#: gnucash/report/reports/standard/budget-balance-sheet.scm:694
+#: gnucash/report/reports/standard/balance-sheet.scm:387
+#: gnucash/report/reports/standard/budget-balance-sheet.scm:695
 #: gnucash/report/reports/standard/net-charts.scm:371
 #: gnucash/report/reports/standard/net-charts.scm:421
-#: gnucash/report/report-utilities.scm:106
+#: gnucash/report/report-utilities.scm:118
 msgid "Liabilities"
 msgstr "Passivo"
 
@@ -25206,15 +25320,15 @@ msgstr ""
 "Ignorar completamente quaisquer contas abaixo do limite de profundidade."
 
 #. Translators: This is part of the report title, which is capitalzed in English, but not all other languages
-#: gnucash/report/reports/standard/account-summary.scm:325
-#: gnucash/report/reports/standard/equity-statement.scm:302
+#: gnucash/report/reports/standard/account-summary.scm:326
+#: gnucash/report/reports/standard/equity-statement.scm:304
 #: gnucash/report/reports/standard/income-statement.scm:407
-#: gnucash/report/reports/standard/trial-balance.scm:412
+#: gnucash/report/reports/standard/trial-balance.scm:413
 #, scheme-format
 msgid "For Period Covering ~a to ~a"
 msgstr "Para período desde ~a até ~a"
 
-#: gnucash/report/reports/standard/account-summary.scm:409
+#: gnucash/report/reports/standard/account-summary.scm:410
 msgid "Account title"
 msgstr "Título da conta"
 
@@ -25360,14 +25474,14 @@ msgstr "Base"
 #: gnucash/report/reports/standard/advanced-portfolio.scm:1081
 #: gnucash/report/reports/standard/cashflow-barchart.scm:297
 #: gnucash/report/reports/standard/cashflow-barchart.scm:332
-#: gnucash/report/reports/standard/cash-flow.scm:277
+#: gnucash/report/reports/standard/cash-flow.scm:279
 msgid "Money In"
 msgstr "Dinheiro entrado"
 
 #: gnucash/report/reports/standard/advanced-portfolio.scm:1082
 #: gnucash/report/reports/standard/cashflow-barchart.scm:303
 #: gnucash/report/reports/standard/cashflow-barchart.scm:333
-#: gnucash/report/reports/standard/cash-flow.scm:298
+#: gnucash/report/reports/standard/cash-flow.scm:300
 msgid "Money Out"
 msgstr "Dinheiro saído"
 
@@ -25493,7 +25607,7 @@ msgid "Reserve"
 msgstr "Reserva"
 
 #: gnucash/report/reports/standard/balance-sheet.scm:72
-#: gnucash/report/reports/standard/trial-balance.scm:573
+#: gnucash/report/reports/standard/trial-balance.scm:574
 msgid "Balance Sheet"
 msgstr "Folha de balanço"
 
@@ -25607,52 +25721,52 @@ msgstr "Incluir total do capital próprio"
 msgid "Whether or not to include a line indicating total equity."
 msgstr "Se deve ou não incluir uma linha indicando o total do capital próprio."
 
-#: gnucash/report/reports/standard/balance-sheet.scm:390
-#: gnucash/report/reports/standard/budget-balance-sheet.scm:716
+#: gnucash/report/reports/standard/balance-sheet.scm:391
+#: gnucash/report/reports/standard/budget-balance-sheet.scm:717
 msgid "Total Liabilities"
 msgstr "Total do passivo"
 
-#: gnucash/report/reports/standard/balance-sheet.scm:488
-#: gnucash/report/reports/standard/budget-balance-sheet.scm:685
+#: gnucash/report/reports/standard/balance-sheet.scm:489
+#: gnucash/report/reports/standard/budget-balance-sheet.scm:686
 msgid "Total Assets"
 msgstr "Total do activo"
 
-#: gnucash/report/reports/standard/balance-sheet.scm:510
+#: gnucash/report/reports/standard/balance-sheet.scm:511
 #: gnucash/report/reports/support/balsheet-eg.eguile.scm:188
 msgid "Retained Losses"
 msgstr "Prejuízos retidos"
 
-#: gnucash/report/reports/standard/balance-sheet.scm:514
+#: gnucash/report/reports/standard/balance-sheet.scm:515
 msgid "Trading Gains"
 msgstr "Ganhos de negociação"
 
-#: gnucash/report/reports/standard/balance-sheet.scm:515
+#: gnucash/report/reports/standard/balance-sheet.scm:516
 msgid "Trading Losses"
 msgstr "Perdas de negociação"
 
-#: gnucash/report/reports/standard/balance-sheet.scm:519
+#: gnucash/report/reports/standard/balance-sheet.scm:520
 #: gnucash/report/reports/standard/balsheet-pnl.scm:1103
 #: gnucash/report/reports/standard/balsheet-pnl.scm:1118
-#: gnucash/report/reports/standard/budget-balance-sheet.scm:758
-#: gnucash/report/reports/standard/equity-statement.scm:472
-#: gnucash/report/reports/standard/trial-balance.scm:734
+#: gnucash/report/reports/standard/budget-balance-sheet.scm:759
+#: gnucash/report/reports/standard/equity-statement.scm:474
+#: gnucash/report/reports/standard/trial-balance.scm:735
 msgid "Unrealized Gains"
 msgstr "Ganhos não realizados"
 
-#: gnucash/report/reports/standard/balance-sheet.scm:520
-#: gnucash/report/reports/standard/budget-balance-sheet.scm:759
-#: gnucash/report/reports/standard/equity-statement.scm:473
-#: gnucash/report/reports/standard/trial-balance.scm:735
+#: gnucash/report/reports/standard/balance-sheet.scm:521
+#: gnucash/report/reports/standard/budget-balance-sheet.scm:760
+#: gnucash/report/reports/standard/equity-statement.scm:475
+#: gnucash/report/reports/standard/trial-balance.scm:736
 msgid "Unrealized Losses"
 msgstr "Perdas não realizadas"
 
-#: gnucash/report/reports/standard/balance-sheet.scm:524
-#: gnucash/report/reports/standard/budget-balance-sheet.scm:774
+#: gnucash/report/reports/standard/balance-sheet.scm:525
+#: gnucash/report/reports/standard/budget-balance-sheet.scm:775
 msgid "Total Equity"
 msgstr "Total de capital próprio"
 
-#: gnucash/report/reports/standard/balance-sheet.scm:534
-#: gnucash/report/reports/standard/budget-balance-sheet.scm:780
+#: gnucash/report/reports/standard/balance-sheet.scm:535
+#: gnucash/report/reports/standard/budget-balance-sheet.scm:781
 msgid "Total Liabilities & Equity"
 msgstr "Total de passivo e capital próprio"
 
@@ -25800,7 +25914,7 @@ msgstr ""
 "desta mensagem)"
 
 #: gnucash/report/reports/standard/balsheet-eg.scm:389
-#: libgnucash/engine/Scrub.c:107
+#: libgnucash/engine/Scrub.c:117
 msgid "Orphan"
 msgstr "Orfã"
 
@@ -25981,12 +26095,12 @@ msgid "missing"
 msgstr "em falta"
 
 #: gnucash/report/reports/standard/balsheet-pnl.scm:1092
-#: libgnucash/engine/Account.cpp:4316
+#: libgnucash/engine/Account.cpp:4363
 msgid "Asset"
 msgstr "Activo"
 
 #: gnucash/report/reports/standard/balsheet-pnl.scm:1095
-#: libgnucash/engine/Account.cpp:4318
+#: libgnucash/engine/Account.cpp:4365
 msgid "Liability"
 msgstr "Passivo"
 
@@ -26010,7 +26124,7 @@ msgid " to "
 msgstr " para "
 
 #: gnucash/report/reports/standard/balsheet-pnl.scm:1272
-#: gnucash/report/reports/standard/trial-balance.scm:860
+#: gnucash/report/reports/standard/trial-balance.scm:861
 msgid "Net Income"
 msgstr "Receita líquida"
 
@@ -26046,55 +26160,55 @@ msgstr ""
 msgid "Budget to use."
 msgstr "Orçamento a usar."
 
-#: gnucash/report/reports/standard/budget-balance-sheet.scm:676
+#: gnucash/report/reports/standard/budget-balance-sheet.scm:677
 msgid "Existing Assets"
 msgstr "Activos existentes"
 
-#: gnucash/report/reports/standard/budget-balance-sheet.scm:678
+#: gnucash/report/reports/standard/budget-balance-sheet.scm:679
 msgid "Allocated Assets"
 msgstr "Activos alocados"
 
-#: gnucash/report/reports/standard/budget-balance-sheet.scm:682
+#: gnucash/report/reports/standard/budget-balance-sheet.scm:683
 msgid "Unallocated Assets"
 msgstr "Activos não alocados"
 
-#: gnucash/report/reports/standard/budget-balance-sheet.scm:708
+#: gnucash/report/reports/standard/budget-balance-sheet.scm:709
 msgid "Existing Liabilities"
 msgstr "Passivo existente"
 
-#: gnucash/report/reports/standard/budget-balance-sheet.scm:713
+#: gnucash/report/reports/standard/budget-balance-sheet.scm:714
 msgid "New Liabilities"
 msgstr "Novo passivo"
 
-#: gnucash/report/reports/standard/budget-balance-sheet.scm:739
+#: gnucash/report/reports/standard/budget-balance-sheet.scm:740
 msgid "Existing Retained Earnings"
 msgstr "Ganhos retidos existentes"
 
-#: gnucash/report/reports/standard/budget-balance-sheet.scm:740
+#: gnucash/report/reports/standard/budget-balance-sheet.scm:741
 msgid "Existing Retained Losses"
 msgstr "Perdas retidas existentes"
 
-#: gnucash/report/reports/standard/budget-balance-sheet.scm:745
+#: gnucash/report/reports/standard/budget-balance-sheet.scm:746
 msgid "New Retained Earnings"
 msgstr "Novos ganhos retidos"
 
-#: gnucash/report/reports/standard/budget-balance-sheet.scm:746
+#: gnucash/report/reports/standard/budget-balance-sheet.scm:747
 msgid "New Retained Losses"
 msgstr "Novas perdas retidas"
 
-#: gnucash/report/reports/standard/budget-balance-sheet.scm:751
+#: gnucash/report/reports/standard/budget-balance-sheet.scm:752
 msgid "Total Retained Earnings"
 msgstr "Total de ganhos retidos"
 
-#: gnucash/report/reports/standard/budget-balance-sheet.scm:752
+#: gnucash/report/reports/standard/budget-balance-sheet.scm:753
 msgid "Total Retained Losses"
 msgstr "Total de perdas retidas"
 
-#: gnucash/report/reports/standard/budget-balance-sheet.scm:768
+#: gnucash/report/reports/standard/budget-balance-sheet.scm:769
 msgid "Existing Equity"
 msgstr "Capital próprio existente"
 
-#: gnucash/report/reports/standard/budget-balance-sheet.scm:771
+#: gnucash/report/reports/standard/budget-balance-sheet.scm:772
 msgid "New Equity"
 msgstr "Novo capital próprio"
 
@@ -26337,58 +26451,58 @@ msgstr ""
 "Faz com que o relatório seja mostrado na ordem padrão, colocando a receita "
 "antes da despesa."
 
-#: gnucash/report/reports/standard/budget-income-statement.scm:442
+#: gnucash/report/reports/standard/budget-income-statement.scm:443
 msgid "Reporting range end period cannot be less than start period."
 msgstr ""
 "O final do período do relatório não pode ser anterior ao início do período."
 
-#: gnucash/report/reports/standard/budget-income-statement.scm:510
+#: gnucash/report/reports/standard/budget-income-statement.scm:511
 #: gnucash/report/reports/standard/income-statement.scm:505
 msgid "Revenues"
 msgstr "Rendimento"
 
-#: gnucash/report/reports/standard/budget-income-statement.scm:513
+#: gnucash/report/reports/standard/budget-income-statement.scm:514
 #: gnucash/report/reports/standard/income-statement.scm:508
 msgid "Total Revenue"
 msgstr "Total de rendimento"
 
-#: gnucash/report/reports/standard/budget-income-statement.scm:523
+#: gnucash/report/reports/standard/budget-income-statement.scm:524
 #: gnucash/report/reports/standard/income-statement.scm:515
 msgid "Total Expenses"
 msgstr "Total de despesa"
 
-#: gnucash/report/reports/standard/budget-income-statement.scm:531
+#: gnucash/report/reports/standard/budget-income-statement.scm:532
 #, scheme-format
 msgid "for Budget ~a"
 msgstr "para o orçamento ~a"
 
-#: gnucash/report/reports/standard/budget-income-statement.scm:533
+#: gnucash/report/reports/standard/budget-income-statement.scm:534
 #, scheme-format
 msgid "for Budget ~a Period ~d"
 msgstr "para o orçamento ~a, período ~d"
 
-#: gnucash/report/reports/standard/budget-income-statement.scm:536
+#: gnucash/report/reports/standard/budget-income-statement.scm:537
 #, scheme-format
 msgid "for Budget ~a Periods ~d - ~d"
 msgstr "para o orçamento ~a, períodos ~d - ~d"
 
-#: gnucash/report/reports/standard/budget-income-statement.scm:564
-#: gnucash/report/reports/standard/equity-statement.scm:455
+#: gnucash/report/reports/standard/budget-income-statement.scm:565
+#: gnucash/report/reports/standard/equity-statement.scm:457
 #: gnucash/report/reports/standard/income-statement.scm:525
 msgid "Net income"
 msgstr "Receita líquida"
 
-#: gnucash/report/reports/standard/budget-income-statement.scm:565
-#: gnucash/report/reports/standard/equity-statement.scm:456
+#: gnucash/report/reports/standard/budget-income-statement.scm:566
+#: gnucash/report/reports/standard/equity-statement.scm:458
 #: gnucash/report/reports/standard/income-statement.scm:526
 msgid "Net loss"
 msgstr "Perda líquida"
 
-#: gnucash/report/reports/standard/budget-income-statement.scm:605
+#: gnucash/report/reports/standard/budget-income-statement.scm:606
 msgid "Budget Income Statement"
 msgstr "Extracto de receita do orçamento"
 
-#: gnucash/report/reports/standard/budget-income-statement.scm:606
+#: gnucash/report/reports/standard/budget-income-statement.scm:607
 msgid "Budget Profit & Loss"
 msgstr "Orçamento de Lucro & Prejuízo"
 
@@ -26587,21 +26701,21 @@ msgstr "Mostrar nomes de conta completos"
 msgid "Show full account names (including parent accounts)."
 msgstr "Mostrar nomes de conta completos (incluindo contas-mãe)."
 
-#: gnucash/report/reports/standard/cash-flow.scm:203
+#: gnucash/report/reports/standard/cash-flow.scm:205
 #, scheme-format
 msgid "~a and subaccounts"
 msgstr "~a e sub-contas"
 
-#: gnucash/report/reports/standard/cash-flow.scm:204
+#: gnucash/report/reports/standard/cash-flow.scm:206
 #, scheme-format
 msgid "~a and selected subaccounts"
 msgstr "~a e sub-contas seleccionadas"
 
-#: gnucash/report/reports/standard/cash-flow.scm:268
+#: gnucash/report/reports/standard/cash-flow.scm:270
 msgid "Money into selected accounts comes from"
 msgstr "Dinheiro entrado nas contas seleccionadas vem de"
 
-#: gnucash/report/reports/standard/cash-flow.scm:289
+#: gnucash/report/reports/standard/cash-flow.scm:291
 msgid "Money out of selected accounts goes to"
 msgstr "Dinheiro saído das contas seleccionadas vai para"
 
@@ -26872,7 +26986,7 @@ msgstr "Sem cliente válido encontrado."
 msgid "No Customer"
 msgstr "Sem cliente"
 
-#: gnucash/report/reports/standard/customer-summary.scm:514
+#: gnucash/report/reports/standard/customer-summary.scm:516
 msgid "Customer Summary"
 msgstr "Resumo do cliente"
 
@@ -26925,37 +27039,37 @@ msgstr ""
 "Faz com que a comparação entre padrões de entradas de fecho seja tratado "
 "como expressão regular"
 
-#: gnucash/report/reports/standard/equity-statement.scm:423
+#: gnucash/report/reports/standard/equity-statement.scm:425
 #: gnucash/report/reports/standard/income-statement.scm:481
-#: gnucash/report/reports/standard/trial-balance.scm:404
+#: gnucash/report/reports/standard/trial-balance.scm:405
 msgid "for Period"
 msgstr "para Período"
 
-#: gnucash/report/reports/standard/equity-statement.scm:450
-#: gnucash/report/reports/standard/equity-statement.scm:486
+#: gnucash/report/reports/standard/equity-statement.scm:452
+#: gnucash/report/reports/standard/equity-statement.scm:488
 msgid "Capital"
 msgstr "Capital"
 
-#: gnucash/report/reports/standard/equity-statement.scm:461
+#: gnucash/report/reports/standard/equity-statement.scm:463
 msgid "Investments"
 msgstr "Investimentos"
 
-#: gnucash/report/reports/standard/equity-statement.scm:466
+#: gnucash/report/reports/standard/equity-statement.scm:468
 msgid "Withdrawals"
 msgstr "Levantamentos"
 
-#: gnucash/report/reports/standard/equity-statement.scm:479
+#: gnucash/report/reports/standard/equity-statement.scm:481
 msgid "Increase in capital"
 msgstr "Aumento de capital"
 
-#: gnucash/report/reports/standard/equity-statement.scm:480
+#: gnucash/report/reports/standard/equity-statement.scm:482
 msgid "Decrease in capital"
 msgstr "Decréscimo de capital"
 
 #: gnucash/report/reports/standard/general-journal.scm:94
 #: gnucash/report/reports/standard/general-ledger.scm:68
 #: gnucash/report/reports/standard/register.scm:135
-#: gnucash/report/reports/standard/register.scm:388
+#: gnucash/report/reports/standard/register.scm:359
 #: gnucash/report/trep-engine.scm:943 gnucash/report/trep-engine.scm:1071
 msgid "Num/Action"
 msgstr "Núm/Acção"
@@ -26963,7 +27077,7 @@ msgstr "Núm/Acção"
 #: gnucash/report/reports/standard/general-journal.scm:102
 #: gnucash/report/reports/standard/general-ledger.scm:82
 #: gnucash/report/reports/standard/general-ledger.scm:102
-#: gnucash/report/reports/standard/register.scm:441
+#: gnucash/report/reports/standard/register.scm:412
 #: gnucash/report/trep-engine.scm:958 gnucash/report/trep-engine.scm:1092
 #: gnucash/report/trep-engine.scm:1380
 msgid "Running Balance"
@@ -26972,7 +27086,7 @@ msgstr "Saldo corrente"
 #: gnucash/report/reports/standard/general-journal.scm:103
 #: gnucash/report/reports/standard/general-ledger.scm:83
 #: gnucash/report/reports/standard/general-ledger.scm:103
-#: gnucash/report/reports/standard/register.scm:446
+#: gnucash/report/reports/standard/register.scm:417
 #: gnucash/report/trep-engine.scm:959
 msgid "Totals"
 msgstr "Totais"
@@ -27297,8 +27411,8 @@ msgstr ""
 "Se deve ou não incluir uma linha indicando o saldo total de contas de bolsa."
 
 #: gnucash/report/reports/standard/income-statement.scm:518
-#: libgnucash/engine/Account.cpp:4328 libgnucash/engine/Scrub.c:457
-#: libgnucash/engine/Scrub.c:522
+#: libgnucash/engine/Account.cpp:4375 libgnucash/engine/Scrub.c:472
+#: libgnucash/engine/Scrub.c:537
 msgid "Trading"
 msgstr "Bolsa"
 
@@ -27307,7 +27421,7 @@ msgid "Total Trading"
 msgstr "Total de negócio"
 
 #: gnucash/report/reports/standard/income-statement.scm:572
-#: gnucash/report/reports/standard/trial-balance.scm:572
+#: gnucash/report/reports/standard/trial-balance.scm:573
 msgid "Income Statement"
 msgstr "Declaração de rendimento"
 
@@ -27413,14 +27527,14 @@ msgid "Location for Picture"
 msgstr ""
 
 #: gnucash/report/reports/standard/invoice.scm:213
-#: gnucash/report/reports/standard/register.scm:383
+#: gnucash/report/reports/standard/register.scm:354
 #: gnucash/report/reports/standard/taxinvoice.scm:135
 #: gnucash/report/trep-engine.scm:940
 msgid "Display the date?"
 msgstr "Mostrar a data?"
 
 #: gnucash/report/reports/standard/invoice.scm:218
-#: gnucash/report/reports/standard/register.scm:398
+#: gnucash/report/reports/standard/register.scm:369
 #: gnucash/report/trep-engine.scm:945
 msgid "Display the description?"
 msgstr "Mostrar a descrição?"
@@ -27919,7 +28033,7 @@ msgstr "Venda"
 
 #: gnucash/report/reports/standard/new-owner-report.scm:56
 #: gnucash/report/reports/standard/owner-report.scm:57
-#: gnucash/report/report-utilities.scm:104
+#: gnucash/report/report-utilities.scm:116
 msgid "Credits"
 msgstr "Créditos"
 
@@ -28015,7 +28129,7 @@ msgid "Display the period credits column?"
 msgstr "Mostrar a coluna de créditos do período?"
 
 #: gnucash/report/reports/standard/new-owner-report.scm:928
-#: gnucash/report/reports/standard/register.scm:442
+#: gnucash/report/reports/standard/register.scm:413
 #: gnucash/report/trep-engine.scm:958
 msgid "Display a running balance?"
 msgstr "Mostrar um saldo em execução?"
@@ -28438,7 +28552,7 @@ msgid "Reconciliation Report"
 msgstr "Relatório de reconciliação"
 
 #: gnucash/report/reports/standard/register.scm:148
-#: gnucash/report/reports/standard/register.scm:417
+#: gnucash/report/reports/standard/register.scm:388
 #: libgnucash/engine/gnc-lot.c:779
 msgid "Lot"
 msgstr "Lote"
@@ -28451,97 +28565,97 @@ msgstr "Valor de débito"
 msgid "Credit Value"
 msgstr "Valor de crédito"
 
-#: gnucash/report/reports/standard/register.scm:377
+#: gnucash/report/reports/standard/register.scm:348
 msgid "The title of the report."
 msgstr "O título do relatório."
 
-#: gnucash/report/reports/standard/register.scm:389
+#: gnucash/report/reports/standard/register.scm:360
 msgid "Display the check number/action?"
 msgstr "Mostrar o número/acção do cheque?"
 
-#: gnucash/report/reports/standard/register.scm:393
+#: gnucash/report/reports/standard/register.scm:364
 #: gnucash/report/trep-engine.scm:943 gnucash/report/trep-engine.scm:944
 msgid "Display the check number?"
 msgstr "Mostrar o número do cheque?"
 
-#: gnucash/report/reports/standard/register.scm:403
+#: gnucash/report/reports/standard/register.scm:374
 #: gnucash/report/trep-engine.scm:972
 msgid "Display the memo?"
 msgstr "Mostrar o memorando?"
 
-#: gnucash/report/reports/standard/register.scm:408
+#: gnucash/report/reports/standard/register.scm:379
 msgid "Display the account?"
 msgstr "Mostrar a conta?"
 
-#: gnucash/report/reports/standard/register.scm:413
+#: gnucash/report/reports/standard/register.scm:384
 #: gnucash/report/trep-engine.scm:953
 msgid "Display the number of shares?"
 msgstr "Mostrar o número de acções?"
 
-#: gnucash/report/reports/standard/register.scm:418
+#: gnucash/report/reports/standard/register.scm:389
 msgid "Display the name of lot the shares are in?"
 msgstr "Mostrar o nome do lote em que as acções estão?"
 
-#: gnucash/report/reports/standard/register.scm:423
+#: gnucash/report/reports/standard/register.scm:394
 #: gnucash/report/trep-engine.scm:955
 msgid "Display the shares price?"
 msgstr "Mostrar a cotação das acções?"
 
-#: gnucash/report/reports/standard/register.scm:428
+#: gnucash/report/reports/standard/register.scm:399
 #: gnucash/report/trep-engine.scm:1017
 msgid "Display the amount?"
 msgstr "Mostrar o montante?"
 
-#: gnucash/report/reports/standard/register.scm:431
+#: gnucash/report/reports/standard/register.scm:402
 #: gnucash/report/trep-engine.scm:1007 gnucash/report/trep-engine.scm:1021
 msgid "Single"
 msgstr "Única"
 
-#: gnucash/report/reports/standard/register.scm:431
+#: gnucash/report/reports/standard/register.scm:402
 #: gnucash/report/trep-engine.scm:1021
 msgid "Single Column Display."
 msgstr "Exibição em coluna única."
 
-#: gnucash/report/reports/standard/register.scm:432
+#: gnucash/report/reports/standard/register.scm:403
 #: gnucash/report/trep-engine.scm:1022
 msgid "Double"
 msgstr "Dupla"
 
-#: gnucash/report/reports/standard/register.scm:432
+#: gnucash/report/reports/standard/register.scm:403
 #: gnucash/report/trep-engine.scm:1022
 msgid "Two Column Display."
 msgstr "Exibição em coluna dupla."
 
-#: gnucash/report/reports/standard/register.scm:437
+#: gnucash/report/reports/standard/register.scm:408
 msgid "Display the value in transaction currency?"
 msgstr "Mostrar o valor na moeda da transacção?"
 
-#: gnucash/report/reports/standard/register.scm:447
+#: gnucash/report/reports/standard/register.scm:418
 #: gnucash/report/trep-engine.scm:959
 msgid "Display the totals?"
 msgstr "Mostrar os totais?"
 
-#: gnucash/report/reports/standard/register.scm:586
+#: gnucash/report/reports/standard/register.scm:557
 msgid "Total Debits"
 msgstr "Total de débitos"
 
-#: gnucash/report/reports/standard/register.scm:588
+#: gnucash/report/reports/standard/register.scm:559
 msgid "Total Credits"
 msgstr "Total de créditos"
 
-#: gnucash/report/reports/standard/register.scm:590
+#: gnucash/report/reports/standard/register.scm:561
 msgid "Total Value Debits"
 msgstr "Valor total de débitos"
 
-#: gnucash/report/reports/standard/register.scm:592
+#: gnucash/report/reports/standard/register.scm:563
 msgid "Total Value Credits"
 msgstr "Valor total de créditos"
 
-#: gnucash/report/reports/standard/register.scm:595
+#: gnucash/report/reports/standard/register.scm:566
 msgid "Net Change"
 msgstr "Alteração líquida"
 
-#: gnucash/report/reports/standard/register.scm:597
+#: gnucash/report/reports/standard/register.scm:568
 msgid "Value Change"
 msgstr "Alteração de valor"
 
@@ -28795,7 +28909,7 @@ msgstr ""
 "modelo eguile)"
 
 #: gnucash/report/reports/standard/trial-balance.scm:61
-#: gnucash/report/reports/standard/trial-balance.scm:569
+#: gnucash/report/reports/standard/trial-balance.scm:570
 msgid "Trial Balance"
 msgstr "Balanço teste"
 
@@ -28898,15 +29012,15 @@ msgstr "Folha de trabalho"
 msgid "Creates a complete end-of-period work sheet"
 msgstr "Cria uma folha de trabalho de final de período"
 
-#: gnucash/report/reports/standard/trial-balance.scm:570
+#: gnucash/report/reports/standard/trial-balance.scm:571
 msgid "Adjustments"
 msgstr "Ajustes"
 
-#: gnucash/report/reports/standard/trial-balance.scm:571
+#: gnucash/report/reports/standard/trial-balance.scm:572
 msgid "Adjusted Trial Balance"
 msgstr "Balanço teste ajustado"
 
-#: gnucash/report/reports/standard/trial-balance.scm:860
+#: gnucash/report/reports/standard/trial-balance.scm:861
 msgid "Net Loss"
 msgstr "Perda líquida"
 
@@ -28948,7 +29062,7 @@ msgid "Equity Accounts"
 msgstr "Contas de capital próprio"
 
 #: gnucash/report/reports/support/balsheet-eg.eguile.scm:182
-#: gnucash/report/report-utilities.scm:119
+#: gnucash/report/report-utilities.scm:131
 msgid "Trading Accounts"
 msgstr "Contas de bolsa"
 
@@ -28997,58 +29111,58 @@ msgstr "Página web"
 msgid "Invoice Date"
 msgstr "Data da factura"
 
-#: gnucash/report/report-utilities.scm:107
+#: gnucash/report/report-utilities.scm:119
 msgid "Stocks"
 msgstr "Acções"
 
-#: gnucash/report/report-utilities.scm:108
+#: gnucash/report/report-utilities.scm:120
 msgid "Mutual Funds"
 msgstr "Fundos mutualistas"
 
-#: gnucash/report/report-utilities.scm:109
+#: gnucash/report/report-utilities.scm:121
 #: libgnucash/engine/gnc-commodity.h:116
 msgid "Currencies"
 msgstr "Moedas"
 
-#: gnucash/report/report-utilities.scm:112
+#: gnucash/report/report-utilities.scm:124
 msgid "Equities"
 msgstr "Capital próprio"
 
-#: gnucash/report/report-utilities.scm:113
+#: gnucash/report/report-utilities.scm:125
 msgid "Checking"
 msgstr "À ordem"
 
-#: gnucash/report/report-utilities.scm:114
+#: gnucash/report/report-utilities.scm:126
 msgid "Savings"
 msgstr "Poupança"
 
-#: gnucash/report/report-utilities.scm:115
+#: gnucash/report/report-utilities.scm:127
 msgid "Money Market"
 msgstr "Mercado monetário"
 
-#: gnucash/report/report-utilities.scm:116
+#: gnucash/report/report-utilities.scm:128
 msgid "Accounts Receivable"
 msgstr "Contas cobráveis"
 
-#: gnucash/report/report-utilities.scm:117
+#: gnucash/report/report-utilities.scm:129
 msgid "Accounts Payable"
 msgstr "Contas pagáveis"
 
-#: gnucash/report/report-utilities.scm:118
+#: gnucash/report/report-utilities.scm:130
 msgid "Credit Lines"
 msgstr "Linhas de crédito"
 
-#: gnucash/report/report-utilities.scm:618
+#: gnucash/report/report-utilities.scm:630
 #, scheme-format
 msgid "Building '~a' report ..."
 msgstr "A construir o relatório \"~a\"..."
 
-#: gnucash/report/report-utilities.scm:624
+#: gnucash/report/report-utilities.scm:636
 #, scheme-format
 msgid "Rendering '~a' report ..."
 msgstr "A desenhar o relatório \"~a\"..."
 
-#: gnucash/report/report-utilities.scm:626
+#: gnucash/report/report-utilities.scm:638
 #, fuzzy
 msgid "Untitled"
 msgstr "Até"
@@ -30627,6 +30741,24 @@ msgid "No exchange rate available in SX [%s] for %s -> %s, value is zero."
 msgstr ""
 "Sem taxa de câmbio disponível em SX [%s] para %s -> %s, o valor é zero."
 
+#: libgnucash/app-utils/gnc-ui-balances.c:407
+msgid "Account is already at Auto-Clear Balance."
+msgstr ""
+
+#: libgnucash/app-utils/gnc-ui-balances.c:451
+msgid "Too many uncleared splits"
+msgstr ""
+
+#: libgnucash/app-utils/gnc-ui-balances.c:467
+msgid "The selected amount cannot be cleared."
+msgstr "O montante seleccionado não pode ser confirmado."
+
+#: libgnucash/app-utils/gnc-ui-balances.c:473
+msgid "Cannot uniquely clear splits. Found multiple possibilities."
+msgstr ""
+"Impossível confirmar parcelas exclusivamente. Encontradas múltiplas "
+"possibilidades."
+
 #. Translators: This and the following strings appear on
 #. * the account tab if the Tax Info column is displayed,
 #. * i.e. if the user wants to record the tax form number
@@ -30636,107 +30768,107 @@ msgstr ""
 #. * account generally corresponds to a specific line number
 #. * on a paper form and each form has a unique
 #. * identification (e.g., Form 1040, Schedule A).
-#: libgnucash/app-utils/gnc-ui-util.c:625
+#: libgnucash/app-utils/gnc-ui-util.c:634
 msgid "Tax-related but has no tax code"
 msgstr "Sujeita a impostos mas sem código de imposto"
 
-#: libgnucash/app-utils/gnc-ui-util.c:639
+#: libgnucash/app-utils/gnc-ui-util.c:648
 msgid "Tax entity type not specified"
 msgstr "Campo de imposto não especificado"
 
-#: libgnucash/app-utils/gnc-ui-util.c:694
+#: libgnucash/app-utils/gnc-ui-util.c:703
 #, c-format
 msgid "Tax type %s: invalid code %s for account type"
 msgstr "Tipo de imposto %s: código inválido %s para o tipo de conta"
 
-#: libgnucash/app-utils/gnc-ui-util.c:698
+#: libgnucash/app-utils/gnc-ui-util.c:707
 #, c-format
 msgid "Not tax-related; tax type %s: invalid code %s for account type"
 msgstr ""
 "Não sujeita a imposto; tipo de imposto %s: código inválido %s para o tipo de "
 "conta"
 
-#: libgnucash/app-utils/gnc-ui-util.c:711
+#: libgnucash/app-utils/gnc-ui-util.c:720
 #, c-format
 msgid "Invalid code %s for tax type %s"
 msgstr "Código %s inválido para o tipo de imposto %s"
 
-#: libgnucash/app-utils/gnc-ui-util.c:715
+#: libgnucash/app-utils/gnc-ui-util.c:724
 #, c-format
 msgid "Not tax-related; invalid code %s for tax type %s"
 msgstr "Não sujeita a imposto; código inválido %s para o tipo de imposto %s"
 
-#: libgnucash/app-utils/gnc-ui-util.c:733
+#: libgnucash/app-utils/gnc-ui-util.c:742
 #, c-format
 msgid "No form: code %s, tax type %s"
 msgstr "Sem formulário: código %s, tipo de imposto %s"
 
-#: libgnucash/app-utils/gnc-ui-util.c:737
+#: libgnucash/app-utils/gnc-ui-util.c:746
 #, c-format
 msgid "Not tax-related; no form: code %s, tax type %s"
 msgstr "Não sujeita a imposto; sem formulário: código %s, tipo de imposto %s"
 
-#: libgnucash/app-utils/gnc-ui-util.c:754
-#: libgnucash/app-utils/gnc-ui-util.c:769
+#: libgnucash/app-utils/gnc-ui-util.c:763
+#: libgnucash/app-utils/gnc-ui-util.c:778
 #, c-format
 msgid "No description: form %s, code %s, tax type %s"
 msgstr "Sem descrição: formulário %s, código %s, tipo de imposto %s"
 
-#: libgnucash/app-utils/gnc-ui-util.c:758
-#: libgnucash/app-utils/gnc-ui-util.c:773
+#: libgnucash/app-utils/gnc-ui-util.c:767
+#: libgnucash/app-utils/gnc-ui-util.c:782
 #, c-format
 msgid "Not tax-related; no description: form %s, code %s, tax type %s"
 msgstr ""
 "Não sujeita a imposto; sem descrição: formulário %s, código %s, tipo de "
 "imposto %s"
 
-#: libgnucash/app-utils/gnc-ui-util.c:796
+#: libgnucash/app-utils/gnc-ui-util.c:805
 #, c-format
 msgid "Not tax-related; %s%s: %s (code %s, tax type %s)"
 msgstr "Não sujeita a imposto; %s%s: %s (código %s, tipo de imposto %s)"
 
-#: libgnucash/app-utils/gnc-ui-util.c:843
+#: libgnucash/app-utils/gnc-ui-util.c:852
 #, c-format
 msgid "(Tax-related subaccounts: %d)"
 msgstr "(Sub-contas sujeitas a imposto: %d)"
 
-#: libgnucash/app-utils/gnc-ui-util.c:863
+#: libgnucash/app-utils/gnc-ui-util.c:872
 msgctxt "Reconciled flag 'not cleared'"
 msgid "n"
 msgstr ""
 
-#: libgnucash/app-utils/gnc-ui-util.c:865
+#: libgnucash/app-utils/gnc-ui-util.c:874
 msgctxt "Reconciled flag 'cleared'"
 msgid "c"
 msgstr ""
 
-#: libgnucash/app-utils/gnc-ui-util.c:867
+#: libgnucash/app-utils/gnc-ui-util.c:876
 #, fuzzy
 msgctxt "Reconciled flag 'reconciled'"
 msgid "y"
 msgstr "y"
 
-#: libgnucash/app-utils/gnc-ui-util.c:869
+#: libgnucash/app-utils/gnc-ui-util.c:878
 msgctxt "Reconciled flag 'frozen'"
 msgid "f"
 msgstr ""
 
-#: libgnucash/app-utils/gnc-ui-util.c:871
+#: libgnucash/app-utils/gnc-ui-util.c:880
 msgctxt "Reconciled flag 'void'"
 msgid "v"
 msgstr ""
 
-#: libgnucash/app-utils/gnc-ui-util.c:911
+#: libgnucash/app-utils/gnc-ui-util.c:920
 msgctxt "Document Link flag for 'web'"
 msgid "w"
 msgstr ""
 
-#: libgnucash/app-utils/gnc-ui-util.c:913
+#: libgnucash/app-utils/gnc-ui-util.c:922
 msgctxt "Document Link flag for 'file'"
 msgid "f"
 msgstr ""
 
-#: libgnucash/app-utils/gnc-ui-util.c:942
+#: libgnucash/app-utils/gnc-ui-util.c:951
 msgid "Opening Balances"
 msgstr "Saldos iniciais"
 
@@ -30752,7 +30884,7 @@ msgstr ""
 "Este relatório foi gravado com uma versão mais recente do Gnucash. Uma das "
 "novas opções tipo ~a \"~a\" não está disponível, a reverter para \"~a\"."
 
-#: libgnucash/app-utils/option-util.c:1696
+#: libgnucash/app-utils/option-util.c:1663
 #, c-format
 msgid ""
 "There is a problem with option %s:%s.\n"
@@ -30761,7 +30893,7 @@ msgstr ""
 "Há um problema com a opção %s:%s.\n"
 "%s"
 
-#: libgnucash/app-utils/option-util.c:1697
+#: libgnucash/app-utils/option-util.c:1664
 msgid "Invalid option value"
 msgstr "Valor de opção inválido"
 
@@ -30823,7 +30955,7 @@ msgid_plural "The following files could not be moved to {1}:"
 msgstr[0] "Impossível mover o ficheiro seguinte para {1}:"
 msgstr[1] "Impossível mover os ficheiros seguintes para {1}:"
 
-#: libgnucash/engine/Account.cpp:255
+#: libgnucash/engine/Account.cpp:256
 #, c-format
 msgid ""
 "The separator character \"%s\" is used in one or more account names.\n"
@@ -30842,40 +30974,40 @@ msgstr ""
 "Abaixo encontrará a lista dos nomes de conta inválidos:\n"
 "%s"
 
-#: libgnucash/engine/Account.cpp:4317
+#: libgnucash/engine/Account.cpp:4364
 msgid "Credit Card"
 msgstr "Cartão de crédito"
 
-#: libgnucash/engine/Account.cpp:4319
+#: libgnucash/engine/Account.cpp:4366
 msgid "Stock"
 msgstr "Acção"
 
-#: libgnucash/engine/Account.cpp:4320
+#: libgnucash/engine/Account.cpp:4367
 msgid "Mutual Fund"
 msgstr "Fundo de investimento"
 
-#: libgnucash/engine/Account.cpp:4325
+#: libgnucash/engine/Account.cpp:4372
 msgid "A/Receivable"
 msgstr "C/Cobrável"
 
-#: libgnucash/engine/Account.cpp:4326
+#: libgnucash/engine/Account.cpp:4373
 msgid "A/Payable"
 msgstr "C/Pagável"
 
-#: libgnucash/engine/Account.cpp:4327
+#: libgnucash/engine/Account.cpp:4374
 msgid "Root"
 msgstr "Raiz"
 
-#: libgnucash/engine/Account.cpp:4769
+#: libgnucash/engine/Account.cpp:4816
 msgid "Orphaned Gains"
 msgstr "Ganhos orfãos"
 
-#: libgnucash/engine/Account.cpp:4783 libgnucash/engine/cap-gains.c:806
+#: libgnucash/engine/Account.cpp:4830 libgnucash/engine/cap-gains.c:806
 #: libgnucash/engine/cap-gains.c:811 libgnucash/engine/cap-gains.c:812
 msgid "Realized Gain/Loss"
 msgstr "Ganho/Perda realizado"
 
-#: libgnucash/engine/Account.cpp:4785
+#: libgnucash/engine/Account.cpp:4832
 msgid ""
 "Realized Gains or Losses from Commodity or Trading Accounts that haven't "
 "been recorded elsewhere."
@@ -30931,7 +31063,7 @@ msgstr ""
 msgid "Value appears to contain a year while the selected format forbids this."
 msgstr "O valor parece conter um ano enquanto o formato seleccionado o proíbe."
 
-#: libgnucash/engine/gnc-features.c:118
+#: libgnucash/engine/gnc-features.c:119
 msgid ""
 "This Dataset contains features not supported by this version of GnuCash. You "
 "must use a newer version of GnuCash in order to support the following "
@@ -31060,7 +31192,7 @@ msgstr "%s %s"
 msgid "Unknown, %d-size list."
 msgstr "Desconhecido, %d na lista"
 
-#: libgnucash/engine/ScrubBusiness.c:547
+#: libgnucash/engine/ScrubBusiness.c:548
 msgid ""
 "Please delete this transaction. Explanation at https://wiki.gnucash.org/wiki/"
 "Business_Features_Issues#Double_posting"
@@ -31068,7 +31200,7 @@ msgstr ""
 "Por favor, elimine esta transacção. Explicação em  https://wiki.gnucash.org/"
 "wiki/Business_Features_Issues#Double_posting"
 
-#: libgnucash/engine/ScrubBusiness.c:563
+#: libgnucash/engine/ScrubBusiness.c:564
 msgid ""
 "Please delete this transaction. Explanation at https://wiki.gnucash.org/wiki/"
 "Business_Features_Issues#I_can.27t_delete_a_transaction_of_type_.22I.22_from_the_AR.2FAP_account"
@@ -31077,22 +31209,22 @@ msgstr ""
 "wiki/"
 "Business_Features_Issues#I_can.27t_delete_a_transaction_of_type_.22I.22_from_the_AR.2FAP_account"
 
-#: libgnucash/engine/ScrubBusiness.c:614
+#: libgnucash/engine/ScrubBusiness.c:615
 #, c-format
 msgid "Checking business lots in account %s: %u of %u"
 msgstr "A verificar lotes na conta %s: %u de %u"
 
-#: libgnucash/engine/ScrubBusiness.c:664
+#: libgnucash/engine/ScrubBusiness.c:669
 #, c-format
 msgid "Checking business splits in account %s: %u of %u"
 msgstr "A verificar desdobramentos na conta %s: %u de %u"
 
-#: libgnucash/engine/Scrub.c:124
+#: libgnucash/engine/Scrub.c:134
 #, c-format
 msgid "Looking for orphans in account %s: %u of %u"
 msgstr "A procurar órfãs na conta %s: %u de %u"
 
-#: libgnucash/engine/Scrub.c:329
+#: libgnucash/engine/Scrub.c:344
 #, c-format
 msgid "Looking for imbalances in account %s: %u of %u"
 msgstr "A procurar desequilíbrios na conta %s: %u de %u"
@@ -31116,6 +31248,15 @@ msgstr "Transacção esvaziada"
 msgid "No help available."
 msgstr "Sem ajuda disponível"
 
+#~ msgid "Searching for splits to clear ..."
+#~ msgstr "A procurar parcelas para confirmar..."
+
+#~ msgid "<b>Auto-Clear Information</b>"
+#~ msgstr "<b>Informação de confirmação automática</b>"
+
+#~ msgid "Exchange rates"
+#~ msgstr "Taxas de câmbio"
+
 #, c-format
 #~ msgid "Bad URL %s"
 #~ msgstr "URL incorrecto: %s"
@@ -32210,9 +32351,6 @@ msgstr "Sem ajuda disponível"
 #~ "\n"
 #~ "Se já não pensa executar "
 
-#~ msgid "OK"
-#~ msgstr "Aceitar"
-
 #~ msgid ""
 #~ "\n"
 #~ "\n"

commit 1bf863d9a1a033268bb65863b98553eb04510413
Author: John Ralls <jralls at ceridwen.us>
Date:   Tue Nov 24 14:53:34 2020 -0800

    Register: Don't double-delete when typing over a selection.
    
    In numcell or formulacell.

diff --git a/gnucash/register/register-core/formulacell.c b/gnucash/register/register-core/formulacell.c
index 76027d4b7..f5fbba6bd 100644
--- a/gnucash/register/register-core/formulacell.c
+++ b/gnucash/register/register-core/formulacell.c
@@ -151,6 +151,8 @@ gnc_formula_cell_modify_verify( BasicCell *_cell,
     if (change == NULL)
     {
         gnc_basic_cell_set_value_internal( &cell->cell, newval );
+        // Remove any selection.
+        *end_selection = *start_selection = *cursor_position;
         return;
     }
 
diff --git a/gnucash/register/register-core/numcell.c b/gnucash/register/register-core/numcell.c
index ff92adfbe..644462832 100644
--- a/gnucash/register/register-core/numcell.c
+++ b/gnucash/register/register-core/numcell.c
@@ -92,6 +92,8 @@ gnc_num_cell_modify_verify (BasicCell *_cell,
         /* then just accept the proposed change */
     {
         gnc_basic_cell_set_value_internal (&cell->cell, newval);
+        // Remove any selection.
+        *end_selection = *start_selection = *cursor_position;
         return;
     }
 

commit a1c517b4ba107818ed289833ba9f1318cc01ed4d
Author: Christopher Lam <christopher.lck at gmail.com>
Date:   Mon Nov 23 21:33:35 2020 +0800

    [gnc_scm_to_numeric] create NaN gnc_numeric instead of runtime error
    
    If guile calls a C function which expects gnc_numeric but sends a
    non-number, it will create a gnc_numeric_error object. This will allow
    error gnc_numeric to be handled elsewhere.
    
    Also the overflow gnc_numeric was incorrectly created.

diff --git a/bindings/guile/gnc-engine-guile.c b/bindings/guile/gnc-engine-guile.c
index ada25aab5..36915cd64 100644
--- a/bindings/guile/gnc-engine-guile.c
+++ b/bindings/guile/gnc-engine-guile.c
@@ -1721,11 +1721,21 @@ gnc_scm2query (SCM query_scm)
 gnc_numeric
 gnc_scm_to_numeric(SCM gncnum)
 {
-    if (scm_is_signed_integer(scm_numerator(gncnum), INT64_MIN, INT64_MAX) &&
-        scm_is_signed_integer(scm_denominator(gncnum), INT64_MIN, INT64_MAX))
-        return gnc_numeric_create(scm_to_int64(scm_numerator(gncnum)),
-                                  scm_to_int64(scm_denominator(gncnum)));
-    return gnc_numeric_create(0, GNC_ERROR_OVERFLOW);
+    SCM num, denom;
+
+    /* Not a number. */
+    if (!scm_is_number (gncnum))
+        return gnc_numeric_error (GNC_ERROR_ARG);
+
+    num = scm_numerator (gncnum);
+    denom = scm_denominator (gncnum);
+
+    /* scm overflows 64-bit numbers */
+    if (!scm_is_signed_integer (num, INT64_MIN, INT64_MAX) ||
+        !scm_is_signed_integer (denom, INT64_MIN, INT64_MAX))
+        return gnc_numeric_error (GNC_ERROR_OVERFLOW);
+
+    return gnc_numeric_create (scm_to_int64 (num), scm_to_int64 (denom));
 }
 
 SCM

commit 8f32992100c6b1ca2554b023d3cf6df2b8aafca7
Author: Christopher Lam <christopher.lck at gmail.com>
Date:   Mon Nov 23 07:48:57 2020 +0800

    [gnc-engine-guile.c] return #f when gnc_numeric has error
    
    otherwise it'd throw guile div/0 exception

diff --git a/bindings/guile/gnc-engine-guile.c b/bindings/guile/gnc-engine-guile.c
index 06daad9e2..ada25aab5 100644
--- a/bindings/guile/gnc-engine-guile.c
+++ b/bindings/guile/gnc-engine-guile.c
@@ -1731,8 +1731,8 @@ gnc_scm_to_numeric(SCM gncnum)
 SCM
 gnc_numeric_to_scm(gnc_numeric arg)
 {
-    return scm_divide(scm_from_int64(arg.num),
-                           scm_from_int64(arg.denom));
+    return gnc_numeric_check (arg) ? SCM_BOOL_F :
+        scm_divide (scm_from_int64 (arg.num), scm_from_int64 (arg.denom));
 }
 
 static SCM

commit d11bdb3e3af518de86ef52a58c609b1e879929cc
Author: Christopher Lam <christopher.lck at gmail.com>
Date:   Sun Nov 22 22:36:51 2020 +0800

    Bug 798015 - cash flow numerical-overflow
    
    error is caused by pricedb containing an invalid gnc_numeric
    price. multiplication of (invalid) price with amount causes a report
    crash.
    
    Fix: if invalid price, return zero for amount converted to report
    currency.

diff --git a/libgnucash/engine/gnc-pricedb.c b/libgnucash/engine/gnc-pricedb.c
index 481df22ad..654c88fc5 100644
--- a/libgnucash/engine/gnc-pricedb.c
+++ b/libgnucash/engine/gnc-pricedb.c
@@ -2616,6 +2616,10 @@ static gnc_numeric convert_amount_at_date (GNCPriceDB *pdb,
 
     price = gnc_pricedb_get_nearest_price (pdb, orig_currency, new_currency, t);
 
+    /* the price retrieved may be invalid. return zero. see 798015 */
+    if (gnc_numeric_check (price))
+        return gnc_numeric_zero ();
+
     return gnc_numeric_mul
         (amount, price, gnc_commodity_get_fraction (new_currency),
          GNC_HOW_DENOM_EXACT | GNC_HOW_RND_ROUND);

commit 72982de588f5a495c7a927cf02d8d3347d890fe4
Author: Christopher Lam <christopher.lck at gmail.com>
Date:   Sun Nov 22 21:56:42 2020 +0800

    Revert "[date-utilities] Convert reldate list into srfi-9 records"
    
    This reverts commit 3be79359651eea57d417d57eaec97976f0b3fbbe.

diff --git a/libgnucash/app-utils/date-utilities.scm b/libgnucash/app-utils/date-utilities.scm
index 7fdfa0bbe..6d7faae88 100644
--- a/libgnucash/app-utils/date-utilities.scm
+++ b/libgnucash/app-utils/date-utilities.scm
@@ -22,7 +22,6 @@
 
 
 (use-modules (gnucash core-utils))
-(use-modules (srfi srfi-9))
 
 ;; get stuff from localtime date vector
 (define (gnc:date-get-year datevec)
@@ -409,17 +408,14 @@
 ;; relative-date functions start here
 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
 
-(define-record-type :reldates
-  (make-reldate symbol string desc fn)
-  gnc:reldate?
-  (symbol gnc:reldate-get-symbol)
-  (string gnc:reldate-get-string)
-  (desc gnc:reldate-get-desc)
-  (fn gnc:reldate-get-fn))
+(define (gnc:reldate-get-symbol x) (vector-ref x 0))
+(define (gnc:reldate-get-string x) (vector-ref x 1))
+(define (gnc:reldate-get-desc x) (vector-ref x 2))
+(define (gnc:reldate-get-fn x) (vector-ref x 3))
 
 ;; the globally available hash of reldates (hash-key = reldate
 ;; symbols, hash-value = a vector, reldate data).
-(define gnc:relative-date-hash (make-hash-table))
+(define gnc:relative-date-hash #f)
 
 (define (gnc:get-absolute-from-relative-date date-symbol)
   ;; used in options.scm
@@ -785,154 +781,346 @@ Defaulting to today."))
       (set-tm:isdst now -1)
       (gnc-mktime now))))
 
-(for-each
- (lambda (reldate)
-   (hashq-set! gnc:relative-date-hash
-               (gnc:reldate-get-symbol reldate)
-               reldate))
-
- (list
-  (make-reldate 'start-cal-year
-                (G_ "Start of this year")
-                (G_ "First day of the current calendar year.")
-                gnc:get-start-cal-year)
-
-  (make-reldate 'end-cal-year
-                (G_ "End of this year")
-                (G_ "Last day of the current calendar year.")
-                gnc:get-end-cal-year)
-
-  (make-reldate 'start-prev-year
-                (G_ "Start of previous year")
-                (G_ "First day of the previous calendar year.")
-                gnc:get-start-prev-year)
-
-  (make-reldate 'start-next-year
-                (G_ "Start of next year")
-                (G_ "First day of the next calendar year.")
-                gnc:get-start-next-year)
-
-  (make-reldate 'end-prev-year
-                (G_ "End of previous year")
-                (G_ "Last day of the previous calendar year.")
-                gnc:get-end-prev-year)
-
-  (make-reldate 'end-next-year
-                (G_ "End of next year")
-                (G_ "Last day of the next calendar year.")
-                gnc:get-end-next-year)
-
-  (make-reldate 'start-accounting-period
-                (G_ "Start of accounting period")
-                (G_ "First day of the accounting period, as set in the global preferences.")
-                gnc:get-start-accounting-period)
-
-  (make-reldate 'end-accounting-period
-                (G_ "End of accounting period")
-                (G_ "Last day of the accounting period, as set in the global preferences.")
-                gnc:get-end-accounting-period)
-
-  (make-reldate 'start-this-month
-                (G_ "Start of this month")
-                (G_ "First day of the current month.")
-                gnc:get-start-this-month)
-
-  (make-reldate 'end-this-month
-                (G_ "End of this month")
-                (G_ "Last day of the current month.")
-                gnc:get-end-this-month)
-
-  (make-reldate 'start-prev-month
-                (G_ "Start of previous month")
-                (G_ "First day of the previous month.")
-                gnc:get-start-prev-month)
-
-  (make-reldate 'end-prev-month
-                (G_ "End of previous month")
-                (G_ "Last day of previous month.")
-                gnc:get-end-prev-month)
-
-  (make-reldate 'start-next-month
-                (G_ "Start of next month")
-                (G_ "First day of the next month.")
-                gnc:get-start-next-month)
-
-  (make-reldate 'end-next-month
-                (G_ "End of next month")
-                (G_ "Last day of next month.")
-                gnc:get-end-next-month)
-
-  (make-reldate 'start-current-quarter
-                (G_ "Start of current quarter")
-                (G_ "First day of the current quarterly accounting period.")
-                gnc:get-start-current-quarter)
-
-  (make-reldate 'end-current-quarter
-                (G_ "End of current quarter")
-                (G_ "Last day of the current quarterly accounting period.")
-                gnc:get-end-current-quarter)
-
-  (make-reldate 'start-prev-quarter
-                (G_ "Start of previous quarter")
-                (G_ "First day of the previous quarterly accounting period.")
-                gnc:get-start-prev-quarter)
-
-  (make-reldate 'end-prev-quarter
-                (G_ "End of previous quarter")
-                (G_ "Last day of previous quarterly accounting period.")
-                gnc:get-end-prev-quarter)
-
-  (make-reldate 'start-next-quarter
-                (G_ "Start of next quarter")
-                (G_ "First day of the next quarterly accounting period.")
-                gnc:get-start-next-quarter)
-
-  (make-reldate 'end-next-quarter
-                (G_ "End of next quarter")
-                (G_ "Last day of next quarterly accounting period.")
-                gnc:get-end-next-quarter)
-
-  (make-reldate 'today
-                (G_ "Today")
-                (G_ "The current date.")
-                gnc:get-today)
-
-  (make-reldate 'one-month-ago
-                (G_ "One Month Ago")
-                (G_ "One Month Ago.")
-                gnc:get-one-month-ago)
-
-  (make-reldate 'three-months-ago
-                (G_ "Three Months Ago")
-                (G_ "Three Months Ago.")
-                gnc:get-three-months-ago)
-
-  (make-reldate 'six-months-ago
-                (G_ "Six Months Ago")
-                (G_ "Six Months Ago.")
-                gnc:get-three-months-ago)
-
-  (make-reldate 'one-year-ago
-                (G_ "One Year Ago")
-                (G_ "One Year Ago.")
-                gnc:get-one-year-ago)
-
-  (make-reldate 'one-month-ahead
-                (G_ "One Month Ahead")
-                (G_ "One Month Ahead.")
-                gnc:get-one-month-ahead)
-
-  (make-reldate 'three-months-ahead
-                (G_ "Three Months Ahead")
-                (G_ "Three Months Ahead.")
-                gnc:get-three-months-ahead)
-
-  (make-reldate 'six-months-ahead
-                (G_ "Six Months Ahead")
-                (G_ "Six Months Ahead.")
-                gnc:get-three-months-ahead)
-
-  (make-reldate 'one-year-ahead
-                (G_ "One Year Ahead")
-                (G_ "One Year Ahead.")
-                gnc:get-one-year-ahead)))
+;; There is no GNC:RELATIVE-DATES list like the one mentioned in
+;; gnucash-design.info, is there? Here are the currently defined
+;; items, loosely grouped.
+;;today
+;;start-cal-year end-cal-year start-prev-year end-prev-year
+;;start-this-month end-this-month start-prev-month end-prev-month
+;;start-current-quarter end-current-quarter start-prev-quarter
+;;end-prev-quarter
+;;one-month-ago three-months-ago six-months-ago one-year-ago
+;;start-cur-fin-year start-prev-fin-year end-prev-fin-year
+
+(define gnc:reldate-string-db (gnc:make-string-database))
+(define gnc:relative-date-values #f)
+(unless gnc:relative-date-hash
+  (gnc:reldate-string-db 
+   'store 'start-cal-year-string 
+   (N_ "Start of this year"))
+  (gnc:reldate-string-db 
+   'store 'start-cal-year-desc 
+   (N_ "First day of the current calendar year."))
+
+  (gnc:reldate-string-db 
+   'store 'end-cal-year-string 
+   (N_ "End of this year"))
+  (gnc:reldate-string-db 
+   'store 'end-cal-year-desc 
+   (N_ "Last day of the current calendar year."))
+
+  (gnc:reldate-string-db 
+   'store 'start-prev-year-string 
+   (N_ "Start of previous year"))
+  (gnc:reldate-string-db 
+   'store 'start-prev-year-desc 
+   (N_ "First day of the previous calendar year."))
+
+  (gnc:reldate-string-db 
+   'store 'end-prev-year-string 
+   (N_ "End of previous year"))
+  (gnc:reldate-string-db 
+   'store 'end-prev-year-desc 
+   (N_ "Last day of the previous calendar year."))
+
+  (gnc:reldate-string-db 
+   'store 'start-next-year-string 
+   (N_ "Start of next year"))
+  (gnc:reldate-string-db 
+   'store 'start-next-year-desc 
+   (N_ "First day of the next calendar year."))
+
+  (gnc:reldate-string-db 
+   'store 'end-next-year-string 
+   (N_ "End of next year"))
+  (gnc:reldate-string-db 
+   'store 'end-next-year-desc 
+   (N_ "Last day of the next calendar year."))
+
+  (gnc:reldate-string-db 
+   'store 'start-accounting-period-string 
+   (N_ "Start of accounting period"))
+  (gnc:reldate-string-db 
+   'store 'start-accounting-period-desc 
+   (N_ "First day of the accounting period, as set in the global preferences."))
+
+  (gnc:reldate-string-db 
+   'store 'end-accounting-period-string 
+   (N_ "End of accounting period"))
+  (gnc:reldate-string-db 
+   'store 'end-accounting-period-desc 
+   (N_ "Last day of the accounting period, as set in the global preferences."))
+
+  (gnc:reldate-string-db 
+   'store 'start-this-month-string 
+   (N_ "Start of this month"))
+  (gnc:reldate-string-db 
+   'store 'start-this-month-desc 
+   (N_ "First day of the current month."))
+
+  (gnc:reldate-string-db 
+   'store 'end-this-month-string 
+   (N_ "End of this month"))
+  (gnc:reldate-string-db 
+   'store 'end-this-month-desc 
+   (N_ "Last day of the current month."))
+
+  (gnc:reldate-string-db 
+   'store 'start-prev-month-string 
+   (N_ "Start of previous month"))
+  (gnc:reldate-string-db 
+   'store 'start-prev-month-desc
+   (N_ "First day of the previous month."))
+
+  (gnc:reldate-string-db 
+   'store 'end-prev-month-string 
+   (N_ "End of previous month"))
+  (gnc:reldate-string-db 
+   'store 'end-prev-month-desc
+   (N_ "Last day of previous month."))
+
+  (gnc:reldate-string-db 
+   'store 'start-next-month-string 
+   (N_ "Start of next month"))
+  (gnc:reldate-string-db 
+   'store 'start-next-month-desc
+   (N_ "First day of the next month."))
+
+  (gnc:reldate-string-db 
+   'store 'end-next-month-string 
+   (N_ "End of next month"))
+  (gnc:reldate-string-db 
+   'store 'end-next-month-desc
+   (N_ "Last day of next month."))
+
+  (gnc:reldate-string-db 
+   'store 'start-current-quarter-string 
+   (N_ "Start of current quarter"))
+  (gnc:reldate-string-db 
+   'store 'start-current-quarter-desc
+   (N_ "First day of the current quarterly accounting period."))
+
+  (gnc:reldate-string-db 
+   'store 'end-current-quarter-string 
+   (N_ "End of current quarter"))
+  (gnc:reldate-string-db 
+   'store 'end-current-quarter-desc
+   (N_ "Last day of the current quarterly accounting period."))
+
+  (gnc:reldate-string-db 
+   'store 'start-prev-quarter-string 
+   (N_ "Start of previous quarter"))
+  (gnc:reldate-string-db 
+   'store 'start-prev-quarter-desc
+   (N_ "First day of the previous quarterly accounting period."))
+
+  (gnc:reldate-string-db 
+   'store 'end-prev-quarter-string 
+   (N_ "End of previous quarter"))
+  (gnc:reldate-string-db 
+   'store 'end-prev-quarter-desc 
+   (N_ "Last day of previous quarterly accounting period."))
+
+  (gnc:reldate-string-db 
+   'store 'start-next-quarter-string 
+   (N_ "Start of next quarter"))
+  (gnc:reldate-string-db 
+   'store 'start-next-quarter-desc
+   (N_ "First day of the next quarterly accounting period."))
+
+  (gnc:reldate-string-db 
+   'store 'end-next-quarter-string 
+   (N_ "End of next quarter"))
+  (gnc:reldate-string-db 
+   'store 'end-next-quarter-desc 
+   (N_ "Last day of next quarterly accounting period."))
+
+  (gnc:reldate-string-db 
+   'store 'today-string 
+   (N_ "Today"))
+  (gnc:reldate-string-db 
+   'store 'today-desc (N_ "The current date."))
+
+  (gnc:reldate-string-db 
+   'store 'one-month-ago-string 
+   (N_ "One Month Ago"))
+  (gnc:reldate-string-db 
+   'store 'one-month-ago-desc (N_ "One Month Ago."))
+
+  (gnc:reldate-string-db 
+   'store 'one-week-ago-string 
+   (N_ "One Week Ago"))
+  (gnc:reldate-string-db 
+   'store 'one-week-ago-desc (N_ "One Week Ago."))
+
+  (gnc:reldate-string-db 
+   'store 'three-months-ago-string 
+   (N_ "Three Months Ago"))
+  (gnc:reldate-string-db 
+   'store 'three-months-ago-desc (N_ "Three Months Ago."))
+
+  (gnc:reldate-string-db 
+   'store 'six-months-ago-string 
+   (N_ "Six Months Ago"))
+  (gnc:reldate-string-db 
+   'store 'six-months-ago-desc (N_ "Six Months Ago."))
+
+  (gnc:reldate-string-db 
+   'store 'one-year-ago-string (N_ "One Year Ago"))
+  (gnc:reldate-string-db 
+   'store 'one-year-ago-desc (N_ "One Year Ago.")) 
+
+  (gnc:reldate-string-db 
+   'store 'one-month-ahead-string 
+   (N_ "One Month Ahead"))
+  (gnc:reldate-string-db 
+   'store 'one-month-ahead-desc (N_ "One Month Ahead."))
+
+  (gnc:reldate-string-db 
+   'store 'one-week-ahead-string 
+   (N_ "One Week Ahead"))
+  (gnc:reldate-string-db 
+   'store 'one-week-ahead-desc (N_ "One Week Ahead."))
+
+  (gnc:reldate-string-db 
+   'store 'three-months-ahead-string 
+   (N_ "Three Months Ahead"))
+  (gnc:reldate-string-db 
+   'store 'three-months-ahead-desc (N_ "Three Months Ahead."))
+
+  (gnc:reldate-string-db 
+   'store 'six-months-ahead-string 
+   (N_ "Six Months Ahead"))
+  (gnc:reldate-string-db 
+   'store 'six-months-ahead-desc (N_ "Six Months Ahead."))
+
+  (gnc:reldate-string-db 
+   'store 'one-year-ahead-string (N_ "One Year Ahead"))
+  (gnc:reldate-string-db 
+   'store 'one-year-ahead-desc (N_ "One Year Ahead.")) 
+
+  (set! gnc:relative-date-values 
+	(list 
+	 (vector 'start-cal-year 
+		 (gnc:reldate-string-db 'lookup 'start-cal-year-string)
+		 (gnc:reldate-string-db 'lookup 'start-cal-year-desc)
+		 gnc:get-start-cal-year)
+	 (vector 'end-cal-year 
+		 (gnc:reldate-string-db 'lookup 'end-cal-year-string)
+		 (gnc:reldate-string-db 'lookup 'end-cal-year-desc)
+		 gnc:get-end-cal-year)
+	 (vector 'start-prev-year
+		 (gnc:reldate-string-db 'lookup 'start-prev-year-string)
+		 (gnc:reldate-string-db 'lookup 'start-prev-year-desc)
+		 gnc:get-start-prev-year)
+	 (vector 'start-next-year
+		 (gnc:reldate-string-db 'lookup 'start-next-year-string)
+		 (gnc:reldate-string-db 'lookup 'start-next-year-desc)
+		 gnc:get-start-next-year)
+	 (vector 'end-prev-year
+		 (gnc:reldate-string-db 'lookup 'end-prev-year-string)
+		 (gnc:reldate-string-db 'lookup 'end-prev-year-desc)
+		 gnc:get-end-prev-year)
+	 (vector 'end-next-year
+		 (gnc:reldate-string-db 'lookup 'end-next-year-string)
+		 (gnc:reldate-string-db 'lookup 'end-next-year-desc)
+		 gnc:get-end-next-year)
+	 (vector 'start-accounting-period
+		 (gnc:reldate-string-db 'lookup 'start-accounting-period-string)
+		 (gnc:reldate-string-db 'lookup 'start-accounting-period-desc)
+		 gnc:get-start-accounting-period)
+	 (vector 'end-accounting-period
+		 (gnc:reldate-string-db 'lookup 'end-accounting-period-string)
+		 (gnc:reldate-string-db 'lookup 'end-accounting-period-desc)
+		 gnc:get-end-accounting-period)
+	 (vector 'start-this-month
+		 (gnc:reldate-string-db 'lookup 'start-this-month-string)
+		 (gnc:reldate-string-db 'lookup 'start-this-month-desc)
+		 gnc:get-start-this-month)
+	 (vector 'end-this-month
+		 (gnc:reldate-string-db 'lookup 'end-this-month-string)
+		 (gnc:reldate-string-db 'lookup 'end-this-month-desc)
+		 gnc:get-end-this-month)
+	 (vector 'start-prev-month
+		 (gnc:reldate-string-db 'lookup 'start-prev-month-string)
+		 (gnc:reldate-string-db 'lookup 'start-prev-month-desc)
+		 gnc:get-start-prev-month)
+	 (vector 'end-prev-month
+		 (gnc:reldate-string-db 'lookup 'end-prev-month-string)
+		 (gnc:reldate-string-db 'lookup 'end-prev-month-desc)
+		 gnc:get-end-prev-month)
+	 (vector 'start-next-month
+		 (gnc:reldate-string-db 'lookup 'start-next-month-string)
+		 (gnc:reldate-string-db 'lookup 'start-next-month-desc)
+		 gnc:get-start-next-month)
+	 (vector 'end-next-month
+		 (gnc:reldate-string-db 'lookup 'end-next-month-string)
+		 (gnc:reldate-string-db 'lookup 'end-next-month-desc)
+		 gnc:get-end-next-month)
+	 (vector 'start-current-quarter
+		 (gnc:reldate-string-db 'lookup 'start-current-quarter-string)
+		 (gnc:reldate-string-db 'lookup 'start-current-quarter-desc)
+		 gnc:get-start-current-quarter)
+	 (vector 'end-current-quarter
+		 (gnc:reldate-string-db 'lookup 'end-current-quarter-string)
+		 (gnc:reldate-string-db 'lookup 'end-current-quarter-desc)
+		 gnc:get-end-current-quarter)
+	 (vector 'start-prev-quarter
+		 (gnc:reldate-string-db 'lookup 'start-prev-quarter-string)
+		 (gnc:reldate-string-db 'lookup 'start-prev-quarter-desc)
+		 gnc:get-start-prev-quarter)
+	 (vector 'end-prev-quarter
+		 (gnc:reldate-string-db 'lookup 'end-prev-quarter-string)
+		 (gnc:reldate-string-db 'lookup 'end-prev-quarter-desc)
+		 gnc:get-end-prev-quarter)
+	 (vector 'start-next-quarter
+		 (gnc:reldate-string-db 'lookup 'start-next-quarter-string)
+		 (gnc:reldate-string-db 'lookup 'start-next-quarter-desc)
+		 gnc:get-start-next-quarter)
+	 (vector 'end-next-quarter
+		 (gnc:reldate-string-db 'lookup 'end-next-quarter-string)
+		 (gnc:reldate-string-db 'lookup 'end-next-quarter-desc)
+		 gnc:get-end-next-quarter)
+	 (vector 'today
+		 (gnc:reldate-string-db 'lookup 'today-string)
+		 (gnc:reldate-string-db 'lookup 'today-desc)
+		 gnc:get-today)
+	 (vector 'one-month-ago
+		 (gnc:reldate-string-db 'lookup 'one-month-ago-string)
+		 (gnc:reldate-string-db 'lookup 'one-month-ago-desc)
+		 gnc:get-one-month-ago)
+	 (vector 'three-months-ago
+		 (gnc:reldate-string-db 'lookup 'three-months-ago-string)
+		 (gnc:reldate-string-db 'lookup 'three-months-ago-desc)
+		 gnc:get-three-months-ago)
+	 (vector 'six-months-ago
+		 (gnc:reldate-string-db 'lookup 'six-months-ago-string)
+		 (gnc:reldate-string-db 'lookup 'six-months-ago-desc)
+		 gnc:get-three-months-ago)
+	 (vector 'one-year-ago
+		 (gnc:reldate-string-db 'lookup 'one-year-ago-string)
+		 (gnc:reldate-string-db 'lookup 'one-year-ago-desc)
+		 gnc:get-one-year-ago)
+	 (vector 'one-month-ahead
+		 (gnc:reldate-string-db 'lookup 'one-month-ahead-string)
+		 (gnc:reldate-string-db 'lookup 'one-month-ahead-desc)
+		 gnc:get-one-month-ahead)
+	 (vector 'three-months-ahead
+		 (gnc:reldate-string-db 'lookup 'three-months-ahead-string)
+		 (gnc:reldate-string-db 'lookup 'three-months-ahead-desc)
+		 gnc:get-three-months-ahead)
+	 (vector 'six-months-ahead
+		 (gnc:reldate-string-db 'lookup 'six-months-ahead-string)
+		 (gnc:reldate-string-db 'lookup 'six-months-ahead-desc)
+		 gnc:get-three-months-ahead)
+	 (vector 'one-year-ahead
+		 (gnc:reldate-string-db 'lookup 'one-year-ahead-string)
+		 (gnc:reldate-string-db 'lookup 'one-year-ahead-desc)
+		 gnc:get-one-year-ahead)))
+
+  ;; initialise gnc:relative-date-hash
+  (set! gnc:relative-date-hash (make-hash-table))
+  (for-each
+   (lambda (reldate)
+     (hash-set! gnc:relative-date-hash (gnc:reldate-get-symbol reldate) reldate))
+   gnc:relative-date-values))

commit 8b5dd55dc4248f8dcf43f65d582549f23ee12a44
Author: Christopher Lam <christopher.lck at gmail.com>
Date:   Sun Nov 22 21:56:35 2020 +0800

    Revert "[c-interface] deprecate gnc:make-string-database"
    
    This reverts commit b67bf4b761b3d73c32c3e6662c6626e30ff5e2cb.

diff --git a/libgnucash/app-utils/c-interface.scm b/libgnucash/app-utils/c-interface.scm
index a2bb2a012..486b4d442 100644
--- a/libgnucash/app-utils/c-interface.scm
+++ b/libgnucash/app-utils/c-interface.scm
@@ -78,8 +78,6 @@
 ;; translated with gettext.
 (define (gnc:make-string-database)
   (define string-hash (make-hash-table))
-  (issue-deprecation-warning "gnc:make-string-database is deprecate. record \
-translatable strings with N_ and G_.")
   (lambda args
     (match args
       (('lookup key) (G_ (hash-ref string-hash key)))

commit b67bf4b761b3d73c32c3e6662c6626e30ff5e2cb
Author: Christopher Lam <christopher.lck at gmail.com>
Date:   Sun Nov 22 21:21:58 2020 +0800

    [c-interface] deprecate gnc:make-string-database

diff --git a/libgnucash/app-utils/c-interface.scm b/libgnucash/app-utils/c-interface.scm
index 486b4d442..a2bb2a012 100644
--- a/libgnucash/app-utils/c-interface.scm
+++ b/libgnucash/app-utils/c-interface.scm
@@ -78,6 +78,8 @@
 ;; translated with gettext.
 (define (gnc:make-string-database)
   (define string-hash (make-hash-table))
+  (issue-deprecation-warning "gnc:make-string-database is deprecate. record \
+translatable strings with N_ and G_.")
   (lambda args
     (match args
       (('lookup key) (G_ (hash-ref string-hash key)))

commit 3be79359651eea57d417d57eaec97976f0b3fbbe
Author: Christopher Lam <christopher.lck at gmail.com>
Date:   Sat Nov 21 00:09:59 2020 +0800

    [date-utilities] Convert reldate list into srfi-9 records

diff --git a/libgnucash/app-utils/date-utilities.scm b/libgnucash/app-utils/date-utilities.scm
index 6d7faae88..7fdfa0bbe 100644
--- a/libgnucash/app-utils/date-utilities.scm
+++ b/libgnucash/app-utils/date-utilities.scm
@@ -22,6 +22,7 @@
 
 
 (use-modules (gnucash core-utils))
+(use-modules (srfi srfi-9))
 
 ;; get stuff from localtime date vector
 (define (gnc:date-get-year datevec)
@@ -408,14 +409,17 @@
 ;; relative-date functions start here
 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
 
-(define (gnc:reldate-get-symbol x) (vector-ref x 0))
-(define (gnc:reldate-get-string x) (vector-ref x 1))
-(define (gnc:reldate-get-desc x) (vector-ref x 2))
-(define (gnc:reldate-get-fn x) (vector-ref x 3))
+(define-record-type :reldates
+  (make-reldate symbol string desc fn)
+  gnc:reldate?
+  (symbol gnc:reldate-get-symbol)
+  (string gnc:reldate-get-string)
+  (desc gnc:reldate-get-desc)
+  (fn gnc:reldate-get-fn))
 
 ;; the globally available hash of reldates (hash-key = reldate
 ;; symbols, hash-value = a vector, reldate data).
-(define gnc:relative-date-hash #f)
+(define gnc:relative-date-hash (make-hash-table))
 
 (define (gnc:get-absolute-from-relative-date date-symbol)
   ;; used in options.scm
@@ -781,346 +785,154 @@ Defaulting to today."))
       (set-tm:isdst now -1)
       (gnc-mktime now))))
 
-;; There is no GNC:RELATIVE-DATES list like the one mentioned in
-;; gnucash-design.info, is there? Here are the currently defined
-;; items, loosely grouped.
-;;today
-;;start-cal-year end-cal-year start-prev-year end-prev-year
-;;start-this-month end-this-month start-prev-month end-prev-month
-;;start-current-quarter end-current-quarter start-prev-quarter
-;;end-prev-quarter
-;;one-month-ago three-months-ago six-months-ago one-year-ago
-;;start-cur-fin-year start-prev-fin-year end-prev-fin-year
-
-(define gnc:reldate-string-db (gnc:make-string-database))
-(define gnc:relative-date-values #f)
-(unless gnc:relative-date-hash
-  (gnc:reldate-string-db 
-   'store 'start-cal-year-string 
-   (N_ "Start of this year"))
-  (gnc:reldate-string-db 
-   'store 'start-cal-year-desc 
-   (N_ "First day of the current calendar year."))
-
-  (gnc:reldate-string-db 
-   'store 'end-cal-year-string 
-   (N_ "End of this year"))
-  (gnc:reldate-string-db 
-   'store 'end-cal-year-desc 
-   (N_ "Last day of the current calendar year."))
-
-  (gnc:reldate-string-db 
-   'store 'start-prev-year-string 
-   (N_ "Start of previous year"))
-  (gnc:reldate-string-db 
-   'store 'start-prev-year-desc 
-   (N_ "First day of the previous calendar year."))
-
-  (gnc:reldate-string-db 
-   'store 'end-prev-year-string 
-   (N_ "End of previous year"))
-  (gnc:reldate-string-db 
-   'store 'end-prev-year-desc 
-   (N_ "Last day of the previous calendar year."))
-
-  (gnc:reldate-string-db 
-   'store 'start-next-year-string 
-   (N_ "Start of next year"))
-  (gnc:reldate-string-db 
-   'store 'start-next-year-desc 
-   (N_ "First day of the next calendar year."))
-
-  (gnc:reldate-string-db 
-   'store 'end-next-year-string 
-   (N_ "End of next year"))
-  (gnc:reldate-string-db 
-   'store 'end-next-year-desc 
-   (N_ "Last day of the next calendar year."))
-
-  (gnc:reldate-string-db 
-   'store 'start-accounting-period-string 
-   (N_ "Start of accounting period"))
-  (gnc:reldate-string-db 
-   'store 'start-accounting-period-desc 
-   (N_ "First day of the accounting period, as set in the global preferences."))
-
-  (gnc:reldate-string-db 
-   'store 'end-accounting-period-string 
-   (N_ "End of accounting period"))
-  (gnc:reldate-string-db 
-   'store 'end-accounting-period-desc 
-   (N_ "Last day of the accounting period, as set in the global preferences."))
-
-  (gnc:reldate-string-db 
-   'store 'start-this-month-string 
-   (N_ "Start of this month"))
-  (gnc:reldate-string-db 
-   'store 'start-this-month-desc 
-   (N_ "First day of the current month."))
-
-  (gnc:reldate-string-db 
-   'store 'end-this-month-string 
-   (N_ "End of this month"))
-  (gnc:reldate-string-db 
-   'store 'end-this-month-desc 
-   (N_ "Last day of the current month."))
-
-  (gnc:reldate-string-db 
-   'store 'start-prev-month-string 
-   (N_ "Start of previous month"))
-  (gnc:reldate-string-db 
-   'store 'start-prev-month-desc
-   (N_ "First day of the previous month."))
-
-  (gnc:reldate-string-db 
-   'store 'end-prev-month-string 
-   (N_ "End of previous month"))
-  (gnc:reldate-string-db 
-   'store 'end-prev-month-desc
-   (N_ "Last day of previous month."))
-
-  (gnc:reldate-string-db 
-   'store 'start-next-month-string 
-   (N_ "Start of next month"))
-  (gnc:reldate-string-db 
-   'store 'start-next-month-desc
-   (N_ "First day of the next month."))
-
-  (gnc:reldate-string-db 
-   'store 'end-next-month-string 
-   (N_ "End of next month"))
-  (gnc:reldate-string-db 
-   'store 'end-next-month-desc
-   (N_ "Last day of next month."))
-
-  (gnc:reldate-string-db 
-   'store 'start-current-quarter-string 
-   (N_ "Start of current quarter"))
-  (gnc:reldate-string-db 
-   'store 'start-current-quarter-desc
-   (N_ "First day of the current quarterly accounting period."))
-
-  (gnc:reldate-string-db 
-   'store 'end-current-quarter-string 
-   (N_ "End of current quarter"))
-  (gnc:reldate-string-db 
-   'store 'end-current-quarter-desc
-   (N_ "Last day of the current quarterly accounting period."))
-
-  (gnc:reldate-string-db 
-   'store 'start-prev-quarter-string 
-   (N_ "Start of previous quarter"))
-  (gnc:reldate-string-db 
-   'store 'start-prev-quarter-desc
-   (N_ "First day of the previous quarterly accounting period."))
-
-  (gnc:reldate-string-db 
-   'store 'end-prev-quarter-string 
-   (N_ "End of previous quarter"))
-  (gnc:reldate-string-db 
-   'store 'end-prev-quarter-desc 
-   (N_ "Last day of previous quarterly accounting period."))
-
-  (gnc:reldate-string-db 
-   'store 'start-next-quarter-string 
-   (N_ "Start of next quarter"))
-  (gnc:reldate-string-db 
-   'store 'start-next-quarter-desc
-   (N_ "First day of the next quarterly accounting period."))
-
-  (gnc:reldate-string-db 
-   'store 'end-next-quarter-string 
-   (N_ "End of next quarter"))
-  (gnc:reldate-string-db 
-   'store 'end-next-quarter-desc 
-   (N_ "Last day of next quarterly accounting period."))
-
-  (gnc:reldate-string-db 
-   'store 'today-string 
-   (N_ "Today"))
-  (gnc:reldate-string-db 
-   'store 'today-desc (N_ "The current date."))
-
-  (gnc:reldate-string-db 
-   'store 'one-month-ago-string 
-   (N_ "One Month Ago"))
-  (gnc:reldate-string-db 
-   'store 'one-month-ago-desc (N_ "One Month Ago."))
-
-  (gnc:reldate-string-db 
-   'store 'one-week-ago-string 
-   (N_ "One Week Ago"))
-  (gnc:reldate-string-db 
-   'store 'one-week-ago-desc (N_ "One Week Ago."))
-
-  (gnc:reldate-string-db 
-   'store 'three-months-ago-string 
-   (N_ "Three Months Ago"))
-  (gnc:reldate-string-db 
-   'store 'three-months-ago-desc (N_ "Three Months Ago."))
-
-  (gnc:reldate-string-db 
-   'store 'six-months-ago-string 
-   (N_ "Six Months Ago"))
-  (gnc:reldate-string-db 
-   'store 'six-months-ago-desc (N_ "Six Months Ago."))
-
-  (gnc:reldate-string-db 
-   'store 'one-year-ago-string (N_ "One Year Ago"))
-  (gnc:reldate-string-db 
-   'store 'one-year-ago-desc (N_ "One Year Ago.")) 
-
-  (gnc:reldate-string-db 
-   'store 'one-month-ahead-string 
-   (N_ "One Month Ahead"))
-  (gnc:reldate-string-db 
-   'store 'one-month-ahead-desc (N_ "One Month Ahead."))
-
-  (gnc:reldate-string-db 
-   'store 'one-week-ahead-string 
-   (N_ "One Week Ahead"))
-  (gnc:reldate-string-db 
-   'store 'one-week-ahead-desc (N_ "One Week Ahead."))
-
-  (gnc:reldate-string-db 
-   'store 'three-months-ahead-string 
-   (N_ "Three Months Ahead"))
-  (gnc:reldate-string-db 
-   'store 'three-months-ahead-desc (N_ "Three Months Ahead."))
-
-  (gnc:reldate-string-db 
-   'store 'six-months-ahead-string 
-   (N_ "Six Months Ahead"))
-  (gnc:reldate-string-db 
-   'store 'six-months-ahead-desc (N_ "Six Months Ahead."))
-
-  (gnc:reldate-string-db 
-   'store 'one-year-ahead-string (N_ "One Year Ahead"))
-  (gnc:reldate-string-db 
-   'store 'one-year-ahead-desc (N_ "One Year Ahead.")) 
-
-  (set! gnc:relative-date-values 
-	(list 
-	 (vector 'start-cal-year 
-		 (gnc:reldate-string-db 'lookup 'start-cal-year-string)
-		 (gnc:reldate-string-db 'lookup 'start-cal-year-desc)
-		 gnc:get-start-cal-year)
-	 (vector 'end-cal-year 
-		 (gnc:reldate-string-db 'lookup 'end-cal-year-string)
-		 (gnc:reldate-string-db 'lookup 'end-cal-year-desc)
-		 gnc:get-end-cal-year)
-	 (vector 'start-prev-year
-		 (gnc:reldate-string-db 'lookup 'start-prev-year-string)
-		 (gnc:reldate-string-db 'lookup 'start-prev-year-desc)
-		 gnc:get-start-prev-year)
-	 (vector 'start-next-year
-		 (gnc:reldate-string-db 'lookup 'start-next-year-string)
-		 (gnc:reldate-string-db 'lookup 'start-next-year-desc)
-		 gnc:get-start-next-year)
-	 (vector 'end-prev-year
-		 (gnc:reldate-string-db 'lookup 'end-prev-year-string)
-		 (gnc:reldate-string-db 'lookup 'end-prev-year-desc)
-		 gnc:get-end-prev-year)
-	 (vector 'end-next-year
-		 (gnc:reldate-string-db 'lookup 'end-next-year-string)
-		 (gnc:reldate-string-db 'lookup 'end-next-year-desc)
-		 gnc:get-end-next-year)
-	 (vector 'start-accounting-period
-		 (gnc:reldate-string-db 'lookup 'start-accounting-period-string)
-		 (gnc:reldate-string-db 'lookup 'start-accounting-period-desc)
-		 gnc:get-start-accounting-period)
-	 (vector 'end-accounting-period
-		 (gnc:reldate-string-db 'lookup 'end-accounting-period-string)
-		 (gnc:reldate-string-db 'lookup 'end-accounting-period-desc)
-		 gnc:get-end-accounting-period)
-	 (vector 'start-this-month
-		 (gnc:reldate-string-db 'lookup 'start-this-month-string)
-		 (gnc:reldate-string-db 'lookup 'start-this-month-desc)
-		 gnc:get-start-this-month)
-	 (vector 'end-this-month
-		 (gnc:reldate-string-db 'lookup 'end-this-month-string)
-		 (gnc:reldate-string-db 'lookup 'end-this-month-desc)
-		 gnc:get-end-this-month)
-	 (vector 'start-prev-month
-		 (gnc:reldate-string-db 'lookup 'start-prev-month-string)
-		 (gnc:reldate-string-db 'lookup 'start-prev-month-desc)
-		 gnc:get-start-prev-month)
-	 (vector 'end-prev-month
-		 (gnc:reldate-string-db 'lookup 'end-prev-month-string)
-		 (gnc:reldate-string-db 'lookup 'end-prev-month-desc)
-		 gnc:get-end-prev-month)
-	 (vector 'start-next-month
-		 (gnc:reldate-string-db 'lookup 'start-next-month-string)
-		 (gnc:reldate-string-db 'lookup 'start-next-month-desc)
-		 gnc:get-start-next-month)
-	 (vector 'end-next-month
-		 (gnc:reldate-string-db 'lookup 'end-next-month-string)
-		 (gnc:reldate-string-db 'lookup 'end-next-month-desc)
-		 gnc:get-end-next-month)
-	 (vector 'start-current-quarter
-		 (gnc:reldate-string-db 'lookup 'start-current-quarter-string)
-		 (gnc:reldate-string-db 'lookup 'start-current-quarter-desc)
-		 gnc:get-start-current-quarter)
-	 (vector 'end-current-quarter
-		 (gnc:reldate-string-db 'lookup 'end-current-quarter-string)
-		 (gnc:reldate-string-db 'lookup 'end-current-quarter-desc)
-		 gnc:get-end-current-quarter)
-	 (vector 'start-prev-quarter
-		 (gnc:reldate-string-db 'lookup 'start-prev-quarter-string)
-		 (gnc:reldate-string-db 'lookup 'start-prev-quarter-desc)
-		 gnc:get-start-prev-quarter)
-	 (vector 'end-prev-quarter
-		 (gnc:reldate-string-db 'lookup 'end-prev-quarter-string)
-		 (gnc:reldate-string-db 'lookup 'end-prev-quarter-desc)
-		 gnc:get-end-prev-quarter)
-	 (vector 'start-next-quarter
-		 (gnc:reldate-string-db 'lookup 'start-next-quarter-string)
-		 (gnc:reldate-string-db 'lookup 'start-next-quarter-desc)
-		 gnc:get-start-next-quarter)
-	 (vector 'end-next-quarter
-		 (gnc:reldate-string-db 'lookup 'end-next-quarter-string)
-		 (gnc:reldate-string-db 'lookup 'end-next-quarter-desc)
-		 gnc:get-end-next-quarter)
-	 (vector 'today
-		 (gnc:reldate-string-db 'lookup 'today-string)
-		 (gnc:reldate-string-db 'lookup 'today-desc)
-		 gnc:get-today)
-	 (vector 'one-month-ago
-		 (gnc:reldate-string-db 'lookup 'one-month-ago-string)
-		 (gnc:reldate-string-db 'lookup 'one-month-ago-desc)
-		 gnc:get-one-month-ago)
-	 (vector 'three-months-ago
-		 (gnc:reldate-string-db 'lookup 'three-months-ago-string)
-		 (gnc:reldate-string-db 'lookup 'three-months-ago-desc)
-		 gnc:get-three-months-ago)
-	 (vector 'six-months-ago
-		 (gnc:reldate-string-db 'lookup 'six-months-ago-string)
-		 (gnc:reldate-string-db 'lookup 'six-months-ago-desc)
-		 gnc:get-three-months-ago)
-	 (vector 'one-year-ago
-		 (gnc:reldate-string-db 'lookup 'one-year-ago-string)
-		 (gnc:reldate-string-db 'lookup 'one-year-ago-desc)
-		 gnc:get-one-year-ago)
-	 (vector 'one-month-ahead
-		 (gnc:reldate-string-db 'lookup 'one-month-ahead-string)
-		 (gnc:reldate-string-db 'lookup 'one-month-ahead-desc)
-		 gnc:get-one-month-ahead)
-	 (vector 'three-months-ahead
-		 (gnc:reldate-string-db 'lookup 'three-months-ahead-string)
-		 (gnc:reldate-string-db 'lookup 'three-months-ahead-desc)
-		 gnc:get-three-months-ahead)
-	 (vector 'six-months-ahead
-		 (gnc:reldate-string-db 'lookup 'six-months-ahead-string)
-		 (gnc:reldate-string-db 'lookup 'six-months-ahead-desc)
-		 gnc:get-three-months-ahead)
-	 (vector 'one-year-ahead
-		 (gnc:reldate-string-db 'lookup 'one-year-ahead-string)
-		 (gnc:reldate-string-db 'lookup 'one-year-ahead-desc)
-		 gnc:get-one-year-ahead)))
-
-  ;; initialise gnc:relative-date-hash
-  (set! gnc:relative-date-hash (make-hash-table))
-  (for-each
-   (lambda (reldate)
-     (hash-set! gnc:relative-date-hash (gnc:reldate-get-symbol reldate) reldate))
-   gnc:relative-date-values))
+(for-each
+ (lambda (reldate)
+   (hashq-set! gnc:relative-date-hash
+               (gnc:reldate-get-symbol reldate)
+               reldate))
+
+ (list
+  (make-reldate 'start-cal-year
+                (G_ "Start of this year")
+                (G_ "First day of the current calendar year.")
+                gnc:get-start-cal-year)
+
+  (make-reldate 'end-cal-year
+                (G_ "End of this year")
+                (G_ "Last day of the current calendar year.")
+                gnc:get-end-cal-year)
+
+  (make-reldate 'start-prev-year
+                (G_ "Start of previous year")
+                (G_ "First day of the previous calendar year.")
+                gnc:get-start-prev-year)
+
+  (make-reldate 'start-next-year
+                (G_ "Start of next year")
+                (G_ "First day of the next calendar year.")
+                gnc:get-start-next-year)
+
+  (make-reldate 'end-prev-year
+                (G_ "End of previous year")
+                (G_ "Last day of the previous calendar year.")
+                gnc:get-end-prev-year)
+
+  (make-reldate 'end-next-year
+                (G_ "End of next year")
+                (G_ "Last day of the next calendar year.")
+                gnc:get-end-next-year)
+
+  (make-reldate 'start-accounting-period
+                (G_ "Start of accounting period")
+                (G_ "First day of the accounting period, as set in the global preferences.")
+                gnc:get-start-accounting-period)
+
+  (make-reldate 'end-accounting-period
+                (G_ "End of accounting period")
+                (G_ "Last day of the accounting period, as set in the global preferences.")
+                gnc:get-end-accounting-period)
+
+  (make-reldate 'start-this-month
+                (G_ "Start of this month")
+                (G_ "First day of the current month.")
+                gnc:get-start-this-month)
+
+  (make-reldate 'end-this-month
+                (G_ "End of this month")
+                (G_ "Last day of the current month.")
+                gnc:get-end-this-month)
+
+  (make-reldate 'start-prev-month
+                (G_ "Start of previous month")
+                (G_ "First day of the previous month.")
+                gnc:get-start-prev-month)
+
+  (make-reldate 'end-prev-month
+                (G_ "End of previous month")
+                (G_ "Last day of previous month.")
+                gnc:get-end-prev-month)
+
+  (make-reldate 'start-next-month
+                (G_ "Start of next month")
+                (G_ "First day of the next month.")
+                gnc:get-start-next-month)
+
+  (make-reldate 'end-next-month
+                (G_ "End of next month")
+                (G_ "Last day of next month.")
+                gnc:get-end-next-month)
+
+  (make-reldate 'start-current-quarter
+                (G_ "Start of current quarter")
+                (G_ "First day of the current quarterly accounting period.")
+                gnc:get-start-current-quarter)
+
+  (make-reldate 'end-current-quarter
+                (G_ "End of current quarter")
+                (G_ "Last day of the current quarterly accounting period.")
+                gnc:get-end-current-quarter)
+
+  (make-reldate 'start-prev-quarter
+                (G_ "Start of previous quarter")
+                (G_ "First day of the previous quarterly accounting period.")
+                gnc:get-start-prev-quarter)
+
+  (make-reldate 'end-prev-quarter
+                (G_ "End of previous quarter")
+                (G_ "Last day of previous quarterly accounting period.")
+                gnc:get-end-prev-quarter)
+
+  (make-reldate 'start-next-quarter
+                (G_ "Start of next quarter")
+                (G_ "First day of the next quarterly accounting period.")
+                gnc:get-start-next-quarter)
+
+  (make-reldate 'end-next-quarter
+                (G_ "End of next quarter")
+                (G_ "Last day of next quarterly accounting period.")
+                gnc:get-end-next-quarter)
+
+  (make-reldate 'today
+                (G_ "Today")
+                (G_ "The current date.")
+                gnc:get-today)
+
+  (make-reldate 'one-month-ago
+                (G_ "One Month Ago")
+                (G_ "One Month Ago.")
+                gnc:get-one-month-ago)
+
+  (make-reldate 'three-months-ago
+                (G_ "Three Months Ago")
+                (G_ "Three Months Ago.")
+                gnc:get-three-months-ago)
+
+  (make-reldate 'six-months-ago
+                (G_ "Six Months Ago")
+                (G_ "Six Months Ago.")
+                gnc:get-three-months-ago)
+
+  (make-reldate 'one-year-ago
+                (G_ "One Year Ago")
+                (G_ "One Year Ago.")
+                gnc:get-one-year-ago)
+
+  (make-reldate 'one-month-ahead
+                (G_ "One Month Ahead")
+                (G_ "One Month Ahead.")
+                gnc:get-one-month-ahead)
+
+  (make-reldate 'three-months-ahead
+                (G_ "Three Months Ahead")
+                (G_ "Three Months Ahead.")
+                gnc:get-three-months-ahead)
+
+  (make-reldate 'six-months-ahead
+                (G_ "Six Months Ahead")
+                (G_ "Six Months Ahead.")
+                gnc:get-three-months-ahead)
+
+  (make-reldate 'one-year-ahead
+                (G_ "One Year Ahead")
+                (G_ "One Year Ahead.")
+                gnc:get-one-year-ahead)))

commit 3676728d2f8a19f7f66ccaa43230bd3c75d17b95
Author: Robert Fewell <14uBobIT at gmail.com>
Date:   Sun Nov 22 10:41:44 2020 +0000

    Bug 330930 - Financial Calculator resets payment period to zero
    
    When the preference option 'Numbers, Date, Time' ->
    'Automatic Decimal Point' is set and you change the 'Payment periods'
    to say 11 you end up with zero as number entered becomes 0.11
    
    To fix this treat the Periods GNCAmountEdit widget as a plain GtkEntry
    and not use the GNCAmountEdit evaluate functions.

diff --git a/gnucash/gnome/dialog-fincalc.c b/gnucash/gnome/dialog-fincalc.c
index 495152c67..995b6cd8c 100644
--- a/gnucash/gnome/dialog-fincalc.c
+++ b/gnucash/gnome/dialog-fincalc.c
@@ -183,12 +183,21 @@ gui_to_fi(FinCalcDialog *fcd)
     GtkToggleButton *toggle;
     gnc_numeric npp;
     int i;
+    const gchar *text;
 
     if (fcd == NULL)
         return;
 
-    npp =
-        gnc_amount_edit_get_amount(GNC_AMOUNT_EDIT(fcd->amounts[PAYMENT_PERIODS]));
+    /* treat PAYMENT_PERIODS as a plain GtkEntry */
+    text = gtk_entry_get_text (GTK_ENTRY(GNC_AMOUNT_EDIT(fcd->amounts[PAYMENT_PERIODS])));
+    if (text && *text)
+    {
+        gnc_numeric out;
+        gboolean result = string_to_gnc_numeric (text, &out);
+        npp = gnc_numeric_convert (out, 1, GNC_HOW_RND_TRUNC);
+    }
+    else
+        npp = gnc_numeric_zero ();
     fcd->financial_info.npp = npp.num;
 
     fcd->financial_info.ir =
@@ -338,10 +347,14 @@ can_calc_value(FinCalcDialog *fcd, FinCalcValue value, int *error_item)
                 return missing;
             }
 
-            if (!gnc_amount_edit_evaluate (GNC_AMOUNT_EDIT (fcd->amounts[i])))
+            /* treat PAYMENT_PERIODS as a plain GtkEntry */
+            if (i != PAYMENT_PERIODS)
             {
-                *error_item = i;
-                return bad_exp;
+                if (!gnc_amount_edit_evaluate (GNC_AMOUNT_EDIT (fcd->amounts[i])))
+                {
+                    *error_item = i;
+                    return bad_exp;
+                }
             }
         }
 
@@ -371,17 +384,27 @@ can_calc_value(FinCalcDialog *fcd, FinCalcValue value, int *error_item)
     case PRESENT_VALUE:
     case PERIODIC_PAYMENT:
     case FUTURE_VALUE:
-        nvalue = gnc_amount_edit_get_amount
-                 (GNC_AMOUNT_EDIT(fcd->amounts[PAYMENT_PERIODS]));
-        if (gnc_numeric_zero_p (nvalue))
-        {
-            *error_item = PAYMENT_PERIODS;
-            return _("The number of payments cannot be zero.");
-        }
-        if (gnc_numeric_negative_p (nvalue))
         {
-            *error_item = PAYMENT_PERIODS;
-            return _("The number of payments cannot be negative.");
+            /* treat PAYMENT_PERIODS as a plain GtkEntry */
+            GNCAmountEdit *edit = GNC_AMOUNT_EDIT(fcd->amounts[PAYMENT_PERIODS]);
+            const gchar *text = gtk_entry_get_text (GTK_ENTRY(edit));
+            gboolean result = string_to_gnc_numeric (text, &nvalue);
+
+            if (!result)
+            {
+                *error_item = PAYMENT_PERIODS;
+                return bad_exp;
+            }
+            if (gnc_numeric_zero_p (nvalue))
+            {
+                *error_item = PAYMENT_PERIODS;
+                return _("The number of payments cannot be zero.");
+            }
+            if (gnc_numeric_negative_p (nvalue))
+            {
+                *error_item = PAYMENT_PERIODS;
+                return _("The number of payments cannot be negative.");
+            }
         }
         break;
     default:

commit c2f9c5bfb1330b642c1bcc178cea7deedd070c07
Author: Robert Fewell <14uBobIT at gmail.com>
Date:   Sun Nov 22 10:39:44 2020 +0000

    Bug 106746 - Selecting New account in Loan Assistant
    
    Set the modal property on the GNCAccountSel widgets, that way the new
    account will selected.

diff --git a/gnucash/gnome/assistant-loan.cpp b/gnucash/gnome/assistant-loan.cpp
index e7df7383a..ed08172f6 100644
--- a/gnucash/gnome/assistant-loan.cpp
+++ b/gnucash/gnome/assistant-loan.cpp
@@ -637,6 +637,7 @@ gnc_loan_assistant_create( LoanAssistantData *ldd )
 
                 gtk_widget_set_halign (GTK_WIDGET(gas), GTK_ALIGN_FILL);
                 gnc_account_sel_set_hexpand (GNC_ACCOUNT_SEL(gas), true);
+                gnc_account_sel_set_new_account_modal (GNC_ACCOUNT_SEL(gas), true);
                 g_object_set (GTK_WIDGET(gas), "margin", 2, nullptr);
                 *(gas_data[i].loc) = gas;
             }
@@ -730,6 +731,7 @@ gnc_loan_assistant_create( LoanAssistantData *ldd )
         gtk_widget_set_sensitive( GTK_WIDGET(ldd->optEscrowHBox), FALSE );
         ldd->optEscrowGAS = GNC_ACCOUNT_SEL(gnc_account_sel_new());
         gnc_account_sel_set_hexpand (GNC_ACCOUNT_SEL(ldd->optEscrowGAS), true);
+        gnc_account_sel_set_new_account_modal (GNC_ACCOUNT_SEL(ldd->optEscrowGAS), true);
         gnc_account_sel_set_new_account_ability( ldd->optEscrowGAS, TRUE );
         gtk_container_add( GTK_CONTAINER(ldd->optEscrowHBox),
                            GTK_WIDGET(ldd->optEscrowGAS) );

commit d518500a309a015c05e388af3a109acbdd8ccaf4
Author: Robert Fewell <14uBobIT at gmail.com>
Date:   Sun Nov 22 10:38:57 2020 +0000

    Change source files gnc-account-sel.* for space and tabs

diff --git a/gnucash/gnome-utils/gnc-account-sel.c b/gnucash/gnome-utils/gnc-account-sel.c
index d34c30e21..9174a663c 100644
--- a/gnucash/gnome-utils/gnc-account-sel.c
+++ b/gnucash/gnome-utils/gnc-account-sel.c
@@ -89,35 +89,32 @@ gnc_account_sel_get_type (void)
         };
 
         account_sel_type = g_type_register_static (GTK_TYPE_BOX,
-                           "GNCAccountSel",
-                           &account_sel_info, 0);
+                                                   "GNCAccountSel",
+                                                   &account_sel_info, 0);
     }
-
     return account_sel_type;
 }
 
-static
-void
-gnc_account_sel_event_cb( QofInstance *entity,
+static void
+gnc_account_sel_event_cb (QofInstance *entity,
                           QofEventId event_type,
                           gpointer user_data,
-                          gpointer event_data )
+                          gpointer event_data)
 {
-    if ( ! ( event_type == QOF_EVENT_CREATE
-             || event_type == QOF_EVENT_MODIFY
-             || event_type == QOF_EVENT_DESTROY )
-            || !GNC_IS_ACCOUNT(entity) )
+    if (!(event_type == QOF_EVENT_CREATE
+       || event_type == QOF_EVENT_MODIFY
+       || event_type == QOF_EVENT_DESTROY)
+       || !GNC_IS_ACCOUNT(entity))
     {
         return;
     }
-    gas_populate_list( (GNCAccountSel*)user_data );
+    gas_populate_list ((GNCAccountSel*)user_data);
 }
 
-static
-void
+static void
 gnc_account_sel_class_init (GNCAccountSelClass *klass)
 {
-    GObjectClass *object_class = G_OBJECT_CLASS (klass);
+    GObjectClass *object_class = G_OBJECT_CLASS(klass);
 
     parent_class = g_type_class_peek_parent (klass);
 
@@ -137,14 +134,14 @@ gnc_account_sel_class_init (GNCAccountSelClass *klass)
 }
 
 static void
-combo_changed_cb(GNCAccountSel *gas, gpointer combo)
+combo_changed_cb (GNCAccountSel *gas, gpointer combo)
 {
-    gint selected = gtk_combo_box_get_active (GTK_COMBO_BOX (combo));
+    gint selected = gtk_combo_box_get_active (GTK_COMBO_BOX(combo));
     if (selected == gas->currentSelection)
         return;
 
     gas->currentSelection = selected;
-    g_signal_emit_by_name(gas, "account_sel_changed");
+    g_signal_emit_by_name (gas, "account_sel_changed");
 }
 
 static void
@@ -159,37 +156,37 @@ gnc_account_sel_init (GNCAccountSel *gas)
     gas->newAccountButton = NULL;
     gas->currentSelection = -1;
 
-    g_object_set(gas, "spacing", 2, (gchar*)NULL);
+    g_object_set (gas, "spacing", 2, (gchar*)NULL);
 
     // Set the name for this widget so it can be easily manipulated with css
     gtk_widget_set_name (GTK_WIDGET(gas), "gnc-id-account-select");
 
-    gas->store = gtk_list_store_new(NUM_ACCT_COLS, G_TYPE_STRING, G_TYPE_POINTER);
-    widget = gtk_combo_box_new_with_model_and_entry(GTK_TREE_MODEL(gas->store));
+    gas->store = gtk_list_store_new (NUM_ACCT_COLS, G_TYPE_STRING, G_TYPE_POINTER);
+    widget = gtk_combo_box_new_with_model_and_entry (GTK_TREE_MODEL(gas->store));
     gas->combo = GTK_COMBO_BOX(widget);
-    gtk_combo_box_set_entry_text_column(GTK_COMBO_BOX(widget), ACCT_COL_NAME);
-    g_object_unref(gas->store);
-    g_signal_connect_swapped(gas->combo, "changed",
-                             G_CALLBACK(combo_changed_cb), gas);
-    gtk_container_add( GTK_CONTAINER(gas), widget );
+    gtk_combo_box_set_entry_text_column (GTK_COMBO_BOX(widget), ACCT_COL_NAME);
+    g_object_unref (gas->store);
+    g_signal_connect_swapped (gas->combo, "changed",
+                              G_CALLBACK(combo_changed_cb), gas);
+    gtk_container_add (GTK_CONTAINER(gas), widget);
 
     /* Add completion. */
-    gnc_cbwe_require_list_item(GTK_COMBO_BOX(widget));
+    gnc_cbwe_require_list_item (GTK_COMBO_BOX(widget));
 
     /* Get the accounts, place into combo list */
-    gas_populate_list( gas );
+    gas_populate_list (gas);
 
     gas->eventHandlerId =
-        qof_event_register_handler( gnc_account_sel_event_cb, gas );
+        qof_event_register_handler (gnc_account_sel_event_cb, gas);
 
     gas->initDone = TRUE;
 }
 
 void
-gnc_account_sel_set_hexpand ( GNCAccountSel *gas, gboolean expand )
+gnc_account_sel_set_hexpand (GNCAccountSel *gas, gboolean expand)
 {
-    gtk_widget_set_hexpand( GTK_WIDGET(gas), expand );
-    gtk_widget_set_hexpand( GTK_WIDGET(gas->combo), expand );
+    gtk_widget_set_hexpand (GTK_WIDGET(gas), expand);
+    gtk_widget_set_hexpand (GTK_WIDGET(gas->combo), expand);
 }
 
 typedef struct
@@ -198,9 +195,8 @@ typedef struct
     GList **outList;
 } account_filter_data;
 
-static
-void
-gas_populate_list( GNCAccountSel *gas )
+static void
+gas_populate_list (GNCAccountSel *gas)
 {
     account_filter_data atnd;
     Account *root;
@@ -211,56 +207,52 @@ gas_populate_list( GNCAccountSel *gas )
     GList *accts, *ptr, *filteredAccts;
     gchar *currentSel, *name;
 
-    entry = GTK_ENTRY(gtk_bin_get_child(GTK_BIN(gas->combo)));
-    currentSel = gtk_editable_get_chars(
-                     GTK_EDITABLE(entry), 0, -1 );
+    entry = GTK_ENTRY(gtk_bin_get_child (GTK_BIN(gas->combo)));
+    currentSel = gtk_editable_get_chars (GTK_EDITABLE(entry), 0, -1 );
 
-    g_signal_handlers_block_by_func( gas->combo, combo_changed_cb , gas );
+    g_signal_handlers_block_by_func (gas->combo, combo_changed_cb , gas);
 
-    root = gnc_book_get_root_account( gnc_get_current_book() );
-    accts = gnc_account_get_descendants_sorted( root );
+    root = gnc_book_get_root_account (gnc_get_current_book ());
+    accts = gnc_account_get_descendants_sorted (root);
 
     filteredAccts   = NULL;
     atnd.gas        = gas;
     atnd.outList    = &filteredAccts;
 
-    g_list_foreach( accts, gas_filter_accounts, (gpointer)&atnd );
-    g_list_free( accts );
+    g_list_foreach (accts, gas_filter_accounts, (gpointer)&atnd);
+    g_list_free (accts);
 
-    gtk_list_store_clear(gas->store);
+    gtk_list_store_clear (gas->store);
     for (ptr = filteredAccts, i = 0; ptr; ptr = g_list_next(ptr), i++)
     {
         acc = ptr->data;
-        name = gnc_account_get_full_name(acc);
-        gtk_list_store_append(gas->store, &iter);
-        gtk_list_store_set(gas->store, &iter,
-                           ACCT_COL_NAME, name,
-                           ACCT_COL_PTR,  acc,
-                           -1);
-        if (g_utf8_collate(name, currentSel) == 0)
+        name = gnc_account_get_full_name (acc);
+        gtk_list_store_append (gas->store, &iter);
+        gtk_list_store_set (gas->store, &iter,
+                            ACCT_COL_NAME, name,
+                            ACCT_COL_PTR,  acc,
+                            -1);
+        if (g_utf8_collate (name, currentSel) == 0)
         {
             active = i;
-            g_free(name);
+            g_free (name);
         }
     }
 
     /* If the account which was in the text box before still exists, then
      * reset to it. */
     if (active != -1)
-        gtk_combo_box_set_active(GTK_COMBO_BOX(gas->combo), active);
+        gtk_combo_box_set_active (GTK_COMBO_BOX(gas->combo), active);
 
-    g_signal_handlers_unblock_by_func( gas->combo, combo_changed_cb , gas );
+    g_signal_handlers_unblock_by_func (gas->combo, combo_changed_cb , gas);
 
-    g_list_free( filteredAccts );
-    if ( currentSel )
-    {
-        g_free( currentSel );
-    }
+    g_list_free (filteredAccts);
+    if (currentSel)
+        g_free (currentSel);
 }
 
-static
-void
-gas_filter_accounts( gpointer data, gpointer user_data )
+static void
+gas_filter_accounts (gpointer data, gpointer user_data)
 {
     account_filter_data *atnd;
     Account *a;
@@ -268,53 +260,47 @@ gas_filter_accounts( gpointer data, gpointer user_data )
     atnd = (account_filter_data*)user_data;
     a = (Account*)data;
     /* Filter as we've been configured to do. */
-    if ( atnd->gas->acctTypeFilters )
+    if (atnd->gas->acctTypeFilters)
     {
         /* g_list_find is the poor-mans '(member ...)', especially
          * easy when the data pointers in the list are just casted
          * account type identifiers. */
-        if ( g_list_find( atnd->gas->acctTypeFilters,
-                          GINT_TO_POINTER(xaccAccountGetType( a )) )
-                == NULL )
+        if (g_list_find (atnd->gas->acctTypeFilters,
+                          GINT_TO_POINTER(xaccAccountGetType (a)))
+                == NULL)
         {
             return;
         }
     }
 
-    if ( atnd->gas->acctCommodityFilters )
+    if (atnd->gas->acctCommodityFilters)
     {
-        if ( g_list_find_custom( atnd->gas->acctCommodityFilters,
-                                 GINT_TO_POINTER(xaccAccountGetCommodity( a )),
-                                 gnc_commodity_compare_void)
-                == NULL )
+        if (g_list_find_custom (atnd->gas->acctCommodityFilters,
+                                GINT_TO_POINTER(xaccAccountGetCommodity (a)),
+                                gnc_commodity_compare_void)
+                == NULL)
         {
             return;
         }
     }
-
-
-    *atnd->outList = g_list_append( *atnd->outList, a );
+    *atnd->outList = g_list_append (*atnd->outList, a);
 }
 
-
 GtkWidget *
 gnc_account_sel_new (void)
 {
-    GNCAccountSel *gas;
-
-    gas = g_object_new (GNC_TYPE_ACCOUNT_SEL, NULL);
+    GNCAccountSel *gas = g_object_new (GNC_TYPE_ACCOUNT_SEL, NULL);
 
-    return GTK_WIDGET (gas);
+    return GTK_WIDGET(gas);
 }
 
 typedef struct
 {
     GNCAccountSel *gas;
-    Account *acct;
+    Account       *acct;
 } gas_find_data;
 
-static
-gboolean
+static gboolean
 gnc_account_sel_find_account (GtkTreeModel *model,
                               GtkTreePath *path,
                               GtkTreeIter *iter,
@@ -322,93 +308,89 @@ gnc_account_sel_find_account (GtkTreeModel *model,
 {
     Account *model_acc;
 
-    gtk_tree_model_get(model, iter, ACCT_COL_PTR, &model_acc, -1);
+    gtk_tree_model_get (model, iter, ACCT_COL_PTR, &model_acc, -1);
     if (data->acct != model_acc)
         return FALSE;
 
-    gtk_combo_box_set_active_iter(GTK_COMBO_BOX(data->gas->combo), iter);
+    gtk_combo_box_set_active_iter (GTK_COMBO_BOX(data->gas->combo), iter);
     return TRUE;
 }
+
 void
-gnc_account_sel_set_account( GNCAccountSel *gas, Account *acct, gboolean set_default_acct )
+gnc_account_sel_set_account (GNCAccountSel *gas, Account *acct,
+                             gboolean set_default_acct)
 {
     gas_find_data data;
 
     if (set_default_acct)
     {
-        gtk_combo_box_set_active(GTK_COMBO_BOX(gas->combo), 0);
-        if ( !acct )
+        gtk_combo_box_set_active (GTK_COMBO_BOX(gas->combo), 0);
+        if (!acct)
             return;
     }
     else
     {
-        gtk_combo_box_set_active( GTK_COMBO_BOX(gas->combo), -1 );
-        if ( !acct )
+        gtk_combo_box_set_active (GTK_COMBO_BOX(gas->combo), -1 );
+        if (!acct)
         {
-            GtkEntry *entry = GTK_ENTRY(gtk_bin_get_child(GTK_BIN(gas->combo)));
-            gtk_editable_delete_text(GTK_EDITABLE(entry), 0, -1);
+            GtkEntry *entry = GTK_ENTRY(gtk_bin_get_child (GTK_BIN(gas->combo)));
+            gtk_editable_delete_text (GTK_EDITABLE(entry), 0, -1);
             return;
         }
     }
     data.gas = gas;
     data.acct = acct;
-    gtk_tree_model_foreach(GTK_TREE_MODEL(gas->store),
-                           (GtkTreeModelForeachFunc)gnc_account_sel_find_account,
-                           &data);
+    gtk_tree_model_foreach (GTK_TREE_MODEL(gas->store),
+                            (GtkTreeModelForeachFunc)gnc_account_sel_find_account,
+                            &data);
 }
 
 Account*
-gnc_account_sel_get_account( GNCAccountSel *gas )
+gnc_account_sel_get_account (GNCAccountSel *gas)
 {
     GtkTreeIter iter;
     Account *acc;
 
-    if (!gtk_combo_box_get_active_iter(GTK_COMBO_BOX(gas->combo), &iter))
+    if (!gtk_combo_box_get_active_iter (GTK_COMBO_BOX(gas->combo), &iter))
         return NULL;
 
-    gtk_tree_model_get(GTK_TREE_MODEL(gas->store), &iter,
-                       ACCT_COL_PTR, &acc,
-                       -1);
+    gtk_tree_model_get (GTK_TREE_MODEL(gas->store), &iter,
+                        ACCT_COL_PTR, &acc,
+                        -1);
     return acc;
 }
 
-
 void
-gnc_account_sel_set_acct_filters( GNCAccountSel *gas, GList *typeFilters, GList *commodityFilters )
+gnc_account_sel_set_acct_filters (GNCAccountSel *gas, GList *typeFilters,
+                                  GList *commodityFilters)
 {
 
-    if ( gas->acctTypeFilters != NULL )
+    if (gas->acctTypeFilters != NULL)
     {
-        g_list_free( gas->acctTypeFilters );
+        g_list_free (gas->acctTypeFilters);
         gas->acctTypeFilters = NULL;
     }
 
-    if ( gas->acctCommodityFilters != NULL)
+    if (gas->acctCommodityFilters != NULL)
     {
-        g_list_free( gas->acctCommodityFilters );
+        g_list_free (gas->acctCommodityFilters);
         gas->acctCommodityFilters = NULL;
     }
 
     /* If both filters are null, then no filters exist. */
-    if (( ! typeFilters ) && ( ! commodityFilters))
-    {
+    if ((!typeFilters) && (!commodityFilters))
         return;
-    }
 
     /* This works because the GNCAccountTypes in the list are
      * ints-casted-as-pointers. */
     if (typeFilters)
-    {
-        gas->acctTypeFilters = g_list_copy( typeFilters );
-    }
+        gas->acctTypeFilters = g_list_copy (typeFilters);
 
     /* Save the commodity filter list */
     if (commodityFilters)
-    {
-        gas->acctCommodityFilters = g_list_copy(commodityFilters);
-    }
+        gas->acctCommodityFilters = g_list_copy (commodityFilters);
 
-    gas_populate_list( gas );
+    gas_populate_list (gas);
 }
 
 static void
@@ -417,14 +399,12 @@ gnc_account_sel_finalize (GObject *object)
     GNCAccountSel *gas;
 
     g_return_if_fail (object != NULL);
-    g_return_if_fail (GNC_IS_ACCOUNT_SEL (object));
+    g_return_if_fail (GNC_IS_ACCOUNT_SEL(object));
 
-    gas = GNC_ACCOUNT_SEL (object);
+    gas = GNC_ACCOUNT_SEL(object);
 
     if (gas->acctTypeFilters)
-    {
         g_list_free (gas->acctTypeFilters);
-    }
 
     G_OBJECT_CLASS (parent_class)->finalize (object);
 }
@@ -435,9 +415,9 @@ gnc_account_sel_dispose (GObject *object)
     GNCAccountSel *gas;
 
     g_return_if_fail (object != NULL);
-    g_return_if_fail (GNC_IS_ACCOUNT_SEL (object));
+    g_return_if_fail (GNC_IS_ACCOUNT_SEL(object));
 
-    gas = GNC_ACCOUNT_SEL (object);
+    gas = GNC_ACCOUNT_SEL(object);
 
     if (gas->eventHandlerId)
     {
@@ -449,74 +429,75 @@ gnc_account_sel_dispose (GObject *object)
 }
 
 void
-gnc_account_sel_set_new_account_ability( GNCAccountSel *gas,
-        gboolean state )
+gnc_account_sel_set_new_account_ability (GNCAccountSel *gas,
+                                         gboolean state)
 {
     g_return_if_fail (gas != NULL);
 
-    if ( state == (gas->newAccountButton != NULL) )
+    if (state == (gas->newAccountButton != NULL))
     {
         /* We're already in that state; don't do anything. */
         return;
     }
 
-    if ( gas->newAccountButton )
+    if (gas->newAccountButton)
     {
-        g_assert( state == TRUE );
+        g_assert (state == TRUE);
         /* destroy the existing button. */
-        gtk_container_remove( GTK_CONTAINER(gas),
-                              gas->newAccountButton );
-        gtk_widget_destroy( gas->newAccountButton );
+        gtk_container_remove (GTK_CONTAINER(gas), gas->newAccountButton);
+        gtk_widget_destroy (gas->newAccountButton);
         gas->newAccountButton = NULL;
         return;
     }
 
     /* create the button. */
-    gas->newAccountButton = gtk_button_new_with_label( _("New...") );
-    g_signal_connect( gas->newAccountButton,
+    gas->newAccountButton = gtk_button_new_with_label (_("New..."));
+    g_signal_connect (gas->newAccountButton,
                       "clicked",
-                      G_CALLBACK( gas_new_account_click ),
-                      gas );
-    gtk_box_pack_start( GTK_BOX(gas), gas->newAccountButton,
-                        FALSE, FALSE, 0 );
+                      G_CALLBACK(gas_new_account_click),
+                      gas);
+
+    gtk_box_pack_start (GTK_BOX(gas), gas->newAccountButton,
+                        FALSE, FALSE, 0);
 }
 
 void
-gnc_account_sel_set_new_account_modal( GNCAccountSel *gas,
-                                       gboolean state )
+gnc_account_sel_set_new_account_modal (GNCAccountSel *gas,
+                                       gboolean state)
 {
     g_return_if_fail (gas != NULL);
     gas->isModal = state;
 }
 
 static void
-gas_new_account_click( GtkButton *b, gpointer ud )
+gas_new_account_click (GtkButton *b, gpointer ud)
 {
     GNCAccountSel *gas = (GNCAccountSel*)ud;
     Account *account = NULL;
-    GtkWindow *parent = GTK_WINDOW (gtk_widget_get_toplevel (GTK_WIDGET (gas)));
+    GtkWindow *parent = GTK_WINDOW(gtk_widget_get_toplevel (GTK_WIDGET(gas)));
     if (gas->isModal)
     {
         account = gnc_ui_new_accounts_from_name_window_with_types (parent, NULL,
-                                                                   gas->acctTypeFilters );
+                                                                   gas->acctTypeFilters);
         if (account)
             gnc_account_sel_set_account (gas, account, FALSE);
     }
     else
         gnc_ui_new_account_with_types (parent, gnc_get_current_book(),
-                                       gas->acctTypeFilters );
+                                       gas->acctTypeFilters);
 }
 
 gint
-gnc_account_sel_get_num_account( GNCAccountSel *gas )
+gnc_account_sel_get_num_account (GNCAccountSel *gas)
 {
     if (NULL == gas)
         return 0;
-    return gtk_tree_model_iter_n_children( GTK_TREE_MODEL(gas->store), NULL );
+
+    return gtk_tree_model_iter_n_children (GTK_TREE_MODEL(gas->store), NULL);
 }
 
 void
-gnc_account_sel_purge_account( GNCAccountSel *gas,
+gnc_account_sel_purge_account (GNCAccountSel *gas,
                                Account *target,
                                gboolean recursive)
 {
@@ -525,43 +506,40 @@ gnc_account_sel_purge_account( GNCAccountSel *gas,
     Account *acc;
     gboolean more;
 
-    if (!gtk_tree_model_get_iter_first(model, &iter))
+    if (!gtk_tree_model_get_iter_first (model, &iter))
         return;
 
     if (!recursive)
     {
         do
         {
-            gtk_tree_model_get(model, &iter, ACCT_COL_PTR, &acc, -1);
+            gtk_tree_model_get (model, &iter, ACCT_COL_PTR, &acc, -1);
             if (acc == target)
             {
-                gtk_list_store_remove(gas->store, &iter);
+                gtk_list_store_remove (gas->store, &iter);
                 break;
             }
         }
-        while (gtk_tree_model_iter_next(model, &iter));
+        while (gtk_tree_model_iter_next (model, &iter));
     }
     else
     {
         do
         {
-            gtk_tree_model_get(model, &iter, ACCT_COL_PTR, &acc, -1);
+            gtk_tree_model_get (model, &iter, ACCT_COL_PTR, &acc, -1);
             while (acc)
             {
                 if (acc == target)
                     break;
-                acc = gnc_account_get_parent(acc);
+                acc = gnc_account_get_parent (acc);
             }
 
             if (acc == target)
-                more = gtk_list_store_remove(gas->store, &iter);
+                more = gtk_list_store_remove (gas->store, &iter);
             else
-                more = gtk_tree_model_iter_next(model, &iter);
+                more = gtk_tree_model_iter_next (model, &iter);
         }
         while (more);
     }
-
-    gtk_combo_box_set_active(GTK_COMBO_BOX(gas->combo), 0);
+    gtk_combo_box_set_active (GTK_COMBO_BOX(gas->combo), 0);
 }
-
-
diff --git a/gnucash/gnome-utils/gnc-account-sel.h b/gnucash/gnome-utils/gnc-account-sel.h
index 6deece10d..7ec5f116f 100644
--- a/gnucash/gnome-utils/gnc-account-sel.h
+++ b/gnucash/gnome-utils/gnc-account-sel.h
@@ -74,12 +74,13 @@ GtkWidget* gnc_account_sel_new (void);
  * list, then it doesn't change the state of the GAS.  If the account is
  * NULL, then the first list selection is made if set_default_acct is TRUE.
  **/
-void       gnc_account_sel_set_account( GNCAccountSel *gas, Account *acct, gboolean set_default_acct );
+void       gnc_account_sel_set_account (GNCAccountSel *gas, Account *acct,
+                                        gboolean set_default_acct);
 /**
  * Returns the currently-selected Account.  If, for some reason the selection
  * is in a bad state, NULL will be returned.
  **/
-Account*   gnc_account_sel_get_account( GNCAccountSel *gas );
+Account*   gnc_account_sel_get_account (GNCAccountSel *gas);
 
 /**
  * The GNCAccountSel can be setup to filter the accounts displayed.
@@ -87,25 +88,24 @@ Account*   gnc_account_sel_get_account( GNCAccountSel *gas );
  * @param commodityFilters A GList of gnc_commodity types which are allowed.
  * The list is copied, of course.
  **/
-void gnc_account_sel_set_acct_filters( GNCAccountSel *gas, GList *typeFilters, GList *commodityFilters );
+void gnc_account_sel_set_acct_filters (GNCAccountSel *gas, GList *typeFilters,
+                                       GList *commodityFilters);
 
 /**
  * Conditional inclusion of a new-account button to the right of the
  * combobox.
  * @param state TRUE if the new-account button is desired, FALSE otherwise.
  **/
-void gnc_account_sel_set_new_account_ability( GNCAccountSel *gas,
-        gboolean state );
+void gnc_account_sel_set_new_account_ability (GNCAccountSel *gas, gboolean state);
 
 /**
  * Conditional call of the new-account window in modal mode.
  * @param state TRUE if the new-account window should be modal, FALSE otherwise.
  **/
-void gnc_account_sel_set_new_account_modal( GNCAccountSel *gas,
-        gboolean state );
+void gnc_account_sel_set_new_account_modal (GNCAccountSel *gas, gboolean state);
 
-gint gnc_account_sel_get_num_account( GNCAccountSel *gas );
-void gnc_account_sel_purge_account( GNCAccountSel *gas, Account *acc, gboolean recursive);
-void gnc_account_sel_set_hexpand ( GNCAccountSel *gas, gboolean expand);
+gint gnc_account_sel_get_num_account (GNCAccountSel *gas);
+void gnc_account_sel_purge_account (GNCAccountSel *gas, Account *acc, gboolean recursive);
+void gnc_account_sel_set_hexpand (GNCAccountSel *gas, gboolean expand);
 
 #endif /* GNC_ACCOUNT_SEL_H */

commit faaa580de79dfaad90b563c430f4ec4504befb0d
Author: Robert Fewell <14uBobIT at gmail.com>
Date:   Sun Nov 22 10:37:59 2020 +0000

    GNCAccountSel with a New button
    
    If the GNCAccountSel widget is set to be modal, using the 'New' button
    returns the newly created account so use it for the selection.

diff --git a/gnucash/gnome-utils/gnc-account-sel.c b/gnucash/gnome-utils/gnc-account-sel.c
index 9d240f567..d34c30e21 100644
--- a/gnucash/gnome-utils/gnc-account-sel.c
+++ b/gnucash/gnome-utils/gnc-account-sel.c
@@ -493,10 +493,15 @@ static void
 gas_new_account_click( GtkButton *b, gpointer ud )
 {
     GNCAccountSel *gas = (GNCAccountSel*)ud;
+    Account *account = NULL;
     GtkWindow *parent = GTK_WINDOW (gtk_widget_get_toplevel (GTK_WIDGET (gas)));
     if (gas->isModal)
-        gnc_ui_new_accounts_from_name_window_with_types (parent, NULL,
-                                                         gas->acctTypeFilters );
+    {
+        account = gnc_ui_new_accounts_from_name_window_with_types (parent, NULL,
+                                                                   gas->acctTypeFilters );
+        if (account)
+            gnc_account_sel_set_account (gas, account, FALSE);
+    }
     else
         gnc_ui_new_account_with_types (parent, gnc_get_current_book(),
                                        gas->acctTypeFilters );

commit 026856122c2317e9b430b913f6faa6ca31f2cbc0
Author: Robert Fewell <14uBobIT at gmail.com>
Date:   Sun Nov 22 10:36:55 2020 +0000

    Bug 355498 - When there is only one result from a 'Find', select it.

diff --git a/gnucash/gnome-search/dialog-search.c b/gnucash/gnome-search/dialog-search.c
index 5c434f9f4..96e9cdc38 100644
--- a/gnucash/gnome-search/dialog-search.c
+++ b/gnucash/gnome-search/dialog-search.c
@@ -367,6 +367,15 @@ gnc_search_dialog_display_results (GNCSearchWindow *sw)
     max_count = gnc_prefs_get_float(GNC_PREFS_GROUP_SEARCH_GENERAL, GNC_PREF_NEW_SEARCH_LIMIT);
     if (gnc_query_view_get_num_entries(GNC_QUERY_VIEW(sw->result_view)) < max_count)
         gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON (sw->new_rb), TRUE);
+
+    /* If there is only one item then select it */
+    if (gnc_query_view_get_num_entries (GNC_QUERY_VIEW(sw->result_view)) == 1)
+    {
+        GtkTreeSelection *selection = gtk_tree_view_get_selection (GTK_TREE_VIEW(sw->result_view));
+        GtkTreePath *path = gtk_tree_path_new_first ();
+        gtk_tree_selection_select_path (selection, path);
+        gtk_tree_path_free (path);
+    }
 }
 
 static void

commit ae39df07eb81614dd8316ba2c191c80fe41f5b85
Author: Robert Fewell <14uBobIT at gmail.com>
Date:   Sun Nov 22 10:35:32 2020 +0000

    Bug 720564 - Search in General Ledger
    
    If you search from a General Ledger the search results will update the
    General Ledger and the only way to get back the contents is to close
    and reopen the General Ledger.
    
    This change makes it the same as any other register in that the search
    results are opened in a new search page.

diff --git a/gnucash/register/ledger-core/gnc-ledger-display.c b/gnucash/register/ledger-core/gnc-ledger-display.c
index fb36bf4ac..15281a8cd 100644
--- a/gnucash/register/ledger-core/gnc-ledger-display.c
+++ b/gnucash/register/ledger-core/gnc-ledger-display.c
@@ -184,6 +184,9 @@ find_by_query (gpointer find_data, gpointer user_data)
     Query* q = find_data;
     GNCLedgerDisplay* ld = user_data;
 
+    if (ld->reg->type != SEARCH_LEDGER)
+        return FALSE;
+
     if (!q || !ld)
         return FALSE;
 

commit 562b4be2201df79fa96c05e5c86f1257a53868cb
Author: Triyan W. Nugroho <triyan.wn at gmail.com>
Date:   Sat Nov 21 08:37:10 2020 +0700

    Update Indonesian translation for GnuCash.
    
    5430 translated messages, 114 fuzzy translations, 4 untranslated
    messages.

diff --git a/po/id.po b/po/id.po
index 3a3806c31..8b3b4491a 100644
--- a/po/id.po
+++ b/po/id.po
@@ -1,5 +1,5 @@
-# Indonesian translations for GnuCash package
-# Terjemahan bahasa inggris untuk paket GnuCash.
+# Indonesian translations for GnuCash package.
+# Terjemahan bahasa Indonesia untuk paket GnuCash.
 # Copyright (C) 2020 by the GnuCash developers and the translators listed below.
 # This file is distributed under the same license as the GnuCash package.
 # Triyan W. Nugroho <triyan.wn at gmail.com>, 2020.
@@ -9,8 +9,8 @@ msgstr ""
 "Project-Id-Version: GnuCash 4.1\n"
 "Report-Msgid-Bugs-To: https://bugs.gnucash.org/enter_bug.cgi?"
 "product=GnuCash&component=Translations\n"
-"POT-Creation-Date: 2020-10-14 01:49+0200\n"
-"PO-Revision-Date: 2020-09-17 20:40+0700\n"
+"POT-Creation-Date: 2020-11-21 07:43+0700\n"
+"PO-Revision-Date: 2020-11-21 08:25+0700\n"
 "Last-Translator: Triyan W. Nugroho <triyan.wn at gmail.com>\n"
 "Language-Team: \n"
 "Language: id\n"
@@ -22,7 +22,7 @@ msgstr ""
 
 #: bindings/guile/commodity-table.scm:36
 msgid "ALL NON-CURRENCY"
-msgstr "mata uang"
+msgstr "SEMUA YANG BUKAN MATA UANG"
 
 #: borrowed/goffice/go-charmap-sel.c:70
 msgid "Arabic"
@@ -538,7 +538,7 @@ msgstr ""
 "\n"
 "Untuk menampilkannya\n"
 "pilih \"Lihat\" pada bilah menu dan centang \"Baris Ganda\" atau\n"
-"centang \"Mode Baris Ganda\" di Preferensi:Bawaan Register."
+"centang \"Mode Baris Ganda\" di Preferensi:Register Baku."
 
 #: doc/tip_of_the_day.list.c:44
 msgid ""
@@ -547,6 +547,10 @@ msgid ""
 "View menu, you can choose the register style Auto-Split Ledger or "
 "Transaction Journal."
 msgstr ""
+"Untuk memasukkan transaksi multi-split seperti gaji dengan beberapa "
+"pemotongan, klik tombol Split pada bilah alat. Alternatif lain, di menu "
+"Lihat, Anda bisa memilih gaya register Buku Besar Split Otomatis atau Jurnal "
+"Transaksi."
 
 #: doc/tip_of_the_day.list.c:49
 msgid ""
@@ -632,7 +636,8 @@ msgid ""
 msgstr ""
 "Untuk mentransfer dana antar akun dengan mata uang yang berbeda, klik pada "
 "tombol Transfer pada bilah alat register, pilih akun, dan opsi Transfer Mata "
-"Uang untuk memasukkan kurs atau jumlah mata uang lain yang akan tersedia."
+"Uang untuk memasukkan nilai tukar atau jumlah mata uang lain yang akan "
+"tersedia."
 
 #: doc/tip_of_the_day.list.c:85
 msgid ""
@@ -641,7 +646,7 @@ msgid ""
 "use. Click the triangle at the far right of the column headings to change "
 "the display."
 msgstr ""
-"Anda bisa menyetel layar Penyunting Sekuritas untuk menampilkan Sumber Data "
+"Anda bisa mengatur layar Penyunting Sekuritas untuk menampilkan Sumber Data "
 "Harga dari sebuah sekuritas, yang akan memudahkan untuk melihat sumber "
 "daring mana yang digunakan oleh sekuritas Anda. Klik pada segitiga di sisi "
 "kanan dari judul kolom untuk mengubah tampilan."
@@ -689,7 +694,7 @@ msgid ""
 msgstr ""
 "Penyunting transaksi terjadwal memiliki pengaturan frekuensi yang sangat "
 "fleksibel. Frekuensi dasar untuk menjadwalkan sebuah transaksi termasuk "
-"harian, mingguan, dan bulanan. Tetapi skema lanjutan juga bisa disetel. "
+"harian, mingguan, dan bulanan. Tetapi skema lanjutan juga bisa diatur. "
 "Beberapa contoh:\n"
 "\n"
 "Untuk menjadwalkan sebuah transaksi setiap tiga minggu, Anda bisa memilih "
@@ -706,8 +711,8 @@ msgid ""
 msgstr ""
 "Jika Anda bekerja di malam hari, Anda harus menutup dan membuka kembali "
 "register yang Anda kerjakan setelah tengah malam, untuk mendapatkan tanggal "
-"baru sebagai bawaan untuk transaksi baru. Anda tidak perlu memulai ulang "
-"GnuCash."
+"baru sebagai tanggal baku untuk transaksi-transaksi baru. Anda tidak perlu "
+"memulai ulang GnuCash."
 
 #: doc/tip_of_the_day.list.c:115
 msgid ""
@@ -716,7 +721,7 @@ msgid ""
 "start the search from that account's register."
 msgstr ""
 "Untuk melakukan pencarian pada keseluruhan transaksi Anda, mulailah "
-"pencarian (Sunting->Cari...) dari halaman hirarki akun utama. Untuk "
+"pencarian (Sunting->Cari...) dari halaman hierarki akun utama. Untuk "
 "membatasi pencarian Anda ke sebuah akun tunggal, mulailah pencarian dari "
 "register akun tersebut."
 
@@ -763,11 +768,11 @@ msgid_plural ""
 "selection made above, this book will be split into %d books."
 msgstr[0] ""
 "Tanggal transaksi terdahulu yang ditemukan di buku ini adalah %s. "
-"Berdasarkan pada pilihan yang dibuat di atas, buku ini akan dipecah menjadi "
+"Berdasarkan pada pilihan yang dibuat di atas, buku ini akan dipisah menjadi "
 "%d buku."
 msgstr[1] ""
 "Tanggal transaksi terdahulu yang ditemukan di buku ini adalah %s. "
-"Berdasarkan pada pilihan yang dibuat di atas, buku ini akan dipecah menjadi "
+"Berdasarkan pada pilihan yang dibuat di atas, buku ini akan dipisah menjadi "
 "%d buku."
 
 #. Translators: Run the assistant in your language to see GTK's translation of the button labels.
@@ -827,7 +832,7 @@ msgid "Selected"
 msgstr "Terpilih"
 
 #: gnucash/gnome/assistant-hierarchy.c:767
-#: gnucash/gnome-utils/gnc-tree-view-account.c:2335
+#: gnucash/gnome-utils/gnc-tree-view-account.c:2366
 msgid "Account Types"
 msgstr "Tipe Akun"
 
@@ -864,16 +869,17 @@ msgid "No"
 msgstr "Tidak"
 
 #: gnucash/gnome/assistant-hierarchy.c:1335
-#: gnucash/gnome-utils/dialog-options.c:717
-#: gnucash/gnome-utils/gnc-tree-view-account.c:965
+#: gnucash/gnome-utils/dialog-options.c:729
+#: gnucash/gnome-utils/gnc-tree-view-account.c:988
 #: gnucash/gtkbuilder/dialog-account.glade:272
 msgid "Placeholder"
 msgstr "Placeholder"
 
 #: gnucash/gnome/assistant-hierarchy.c:1352
-#: gnucash/gnome-utils/dialog-account.c:313
-#: gnucash/gtkbuilder/dialog-account.glade:1838
-#: libgnucash/app-utils/gnc-ui-util.c:1072
+#: gnucash/gnome-utils/dialog-account.c:351
+#: gnucash/gnome-utils/gnc-tree-view-account.c:996
+#: gnucash/gtkbuilder/dialog-account.glade:1855
+#: libgnucash/app-utils/gnc-ui-util.c:1102
 msgid "Opening Balance"
 msgstr "Saldo Awal"
 
@@ -955,7 +961,7 @@ msgstr "Pinjaman"
 #: gnucash/gnome/assistant-loan.cpp:1457
 #, c-format
 msgid "Loan Repayment Option: \"%s\""
-msgstr "Opsi Pembayaran Ulang Pinjaman: \"%s\""
+msgstr "Opsi Angsuran Pinjaman: \"%s\""
 
 #. Translators: The following symbols will build the *
 #. * header line of exported CSV files:
@@ -966,14 +972,14 @@ msgstr "Opsi Pembayaran Ulang Pinjaman: \"%s\""
 #: gnucash/gtkbuilder/dialog-payment.glade:253
 #: gnucash/gtkbuilder/dialog-payment.glade:374
 #: gnucash/gtkbuilder/dialog-transfer.glade:138
-#: gnucash/gtkbuilder/gnc-plugin-page-register2.glade:475
+#: gnucash/gtkbuilder/gnc-plugin-page-register2.glade:522
 #: gnucash/gtkbuilder/gnc-plugin-page-register.glade:366
 #: gnucash/import-export/bi-import/dialog-bi-import-gui.c:148
 #: gnucash/import-export/csv-exp/csv-transactions-export.c:613
 #: gnucash/import-export/csv-exp/csv-transactions-export.c:622
 #: gnucash/import-export/csv-imp/gnc-imp-props-price.cpp:49
 #: gnucash/import-export/csv-imp/gnc-imp-props-tx.cpp:58
-#: gnucash/import-export/import-main-matcher.c:1034
+#: gnucash/import-export/import-main-matcher.c:1087
 #: gnucash/import-export/import-match-picker.c:393
 #: gnucash/import-export/import-match-picker.c:433
 #: gnucash/import-export/qif-imp/assistant-qif-import.c:3700
@@ -1001,7 +1007,7 @@ msgstr "Opsi Pembayaran Ulang Pinjaman: \"%s\""
 #: gnucash/report/reports/standard/owner-report.scm:50
 #: gnucash/report/reports/standard/portfolio.scm:51
 #: gnucash/report/reports/standard/register.scm:130
-#: gnucash/report/reports/standard/register.scm:382
+#: gnucash/report/reports/standard/register.scm:353
 #: gnucash/report/reports/support/receipt.eguile.scm:143
 #: gnucash/report/reports/support/taxinvoice.eguile.scm:268
 #: gnucash/report/trep-engine.scm:161 gnucash/report/trep-engine.scm:940
@@ -1025,8 +1031,8 @@ msgstr "Tanggal"
 #: gnucash/register/ledger-core/split-register.c:2685
 #: gnucash/report/reports/standard/new-owner-report.scm:294
 #: gnucash/report/reports/standard/owner-report.scm:357
-#: libgnucash/engine/Account.cpp:144 libgnucash/engine/Account.cpp:152
-#: libgnucash/engine/Account.cpp:173 libgnucash/engine/gncOwner.c:814
+#: libgnucash/engine/Account.cpp:145 libgnucash/engine/Account.cpp:153
+#: libgnucash/engine/Account.cpp:174 libgnucash/engine/gncOwner.c:814
 #: libgnucash/engine/gncOwner.c:847 libgnucash/engine/gncOwner.c:877
 #: libgnucash/engine/gncOwner.c:890
 msgid "Payment"
@@ -1062,7 +1068,7 @@ msgstr "Pembayaran Eskrow"
 #: gnucash/register/ledger-core/split-register.c:2719
 msgctxt "Action Column"
 msgid "Split"
-msgstr "Pecah"
+msgstr "Split"
 
 #: gnucash/gnome/assistant-stock-split.c:408
 msgid "Error adding price."
@@ -1074,7 +1080,7 @@ msgstr "Galat saat menambahkan harga."
 #: gnucash/import-export/aqb/gnc-ab-utils.c:541
 #: gnucash/import-export/bi-import/dialog-bi-import-gui.c:151
 #: gnucash/import-export/csv-imp/gnc-imp-props-tx.cpp:65
-#: gnucash/import-export/import-main-matcher.c:1035
+#: gnucash/import-export/import-main-matcher.c:1088
 #: gnucash/import-export/import-match-picker.c:392
 #: gnucash/import-export/qif-imp/dialog-account-picker.c:433
 #: gnucash/register/ledger-core/split-register-model.c:341
@@ -1089,7 +1095,7 @@ msgstr "Galat saat menambahkan harga."
 #: gnucash/report/reports/standard/owner-report.scm:48
 #: gnucash/report/reports/standard/portfolio.scm:253
 #: gnucash/report/reports/standard/register.scm:143
-#: gnucash/report/reports/standard/register.scm:407
+#: gnucash/report/reports/standard/register.scm:378
 #: gnucash/report/trep-engine.scm:1218
 msgid "Account"
 msgstr "Akun"
@@ -1109,7 +1115,7 @@ msgstr "Simbol"
 #: gnucash/report/reports/standard/general-ledger.scm:78
 #: gnucash/report/reports/standard/general-ledger.scm:98
 #: gnucash/report/reports/standard/register.scm:146
-#: gnucash/report/reports/standard/register.scm:412
+#: gnucash/report/reports/standard/register.scm:383
 #: gnucash/report/trep-engine.scm:953 gnucash/report/trep-engine.scm:1078
 #: gnucash/report/trep-engine.scm:1240
 msgid "Shares"
@@ -1120,8 +1126,8 @@ msgid "You don't have any stock accounts with balances!"
 msgstr "Anda tidak memiliki akun saham dengan saldo!"
 
 #: gnucash/gnome/business-gnome-utils.c:73
-#: gnucash/gnome/business-gnome-utils.c:260 gnucash/gnome/dialog-invoice.c:1462
-#: gnucash/gnome/dialog-invoice.c:1540
+#: gnucash/gnome/business-gnome-utils.c:260 gnucash/gnome/dialog-invoice.c:1476
+#: gnucash/gnome/dialog-invoice.c:1554
 #: gnucash/gnome-utils/gnc-general-select.c:220
 msgid "Select..."
 msgstr "Pilih..."
@@ -1132,27 +1138,27 @@ msgid "Edit..."
 msgstr "Sunting..."
 
 #: gnucash/gnome/business-gnome-utils.c:219 gnucash/gnome/dialog-doclink.c:740
-#: gnucash/gnome/dialog-invoice.c:2586 gnucash/gnome/dialog-invoice.c:2811
-#: gnucash/gnome/dialog-invoice.c:2812 gnucash/gnome/dialog-invoice.c:3521
+#: gnucash/gnome/dialog-invoice.c:2600 gnucash/gnome/dialog-invoice.c:2825
+#: gnucash/gnome/dialog-invoice.c:2826 gnucash/gnome/dialog-invoice.c:3535
 #: gnucash/gnome-search/dialog-search.c:1064
 #: gnucash/gnome-utils/gnc-tree-view-split-reg.c:2998
 #: gnucash/gtkbuilder/dialog-bi-import-gui.glade:147
 #: gnucash/report/reports/standard/invoice.scm:787
-#: libgnucash/engine/Account.cpp:172 libgnucash/engine/gncInvoice.c:1082
+#: libgnucash/engine/Account.cpp:173 libgnucash/engine/gncInvoice.c:1082
 msgid "Bill"
 msgstr "Tagihan"
 
 #: gnucash/gnome/business-gnome-utils.c:222 gnucash/gnome/dialog-doclink.c:744
-#: gnucash/gnome/dialog-invoice.c:2592 gnucash/gnome/dialog-invoice.c:2818
-#: gnucash/gnome/dialog-invoice.c:2819
+#: gnucash/gnome/dialog-invoice.c:2606 gnucash/gnome/dialog-invoice.c:2832
+#: gnucash/gnome/dialog-invoice.c:2833
 msgid "Voucher"
 msgstr "Voucer"
 
 #: gnucash/gnome/business-gnome-utils.c:225 gnucash/gnome/dialog-doclink.c:748
-#: gnucash/gnome/dialog-invoice.c:3535
+#: gnucash/gnome/dialog-invoice.c:3549
 #: gnucash/gnome/gnc-plugin-page-invoice.c:570
 #: gnucash/gnome/gnc-plugin-page-register.c:633
-#: gnucash/gnome/gnc-plugin-page-report.c:1804
+#: gnucash/gnome/gnc-plugin-page-report.c:1848
 #: gnucash/gnome-search/dialog-search.c:1080
 #: gnucash/gnome-utils/gnc-tree-model-split-reg.c:2908
 #: gnucash/gnome-utils/gnc-tree-view-split-reg.c:3073
@@ -1169,7 +1175,7 @@ msgstr "Voucer"
 #: gnucash/report/reports/standard/taxinvoice.scm:173
 #: gnucash/report/reports/support/receipt.eguile.scm:91
 #: gnucash/report/reports/support/taxinvoice.eguile.scm:106
-#: libgnucash/engine/Account.cpp:153 libgnucash/engine/gncInvoice.c:1080
+#: libgnucash/engine/Account.cpp:154 libgnucash/engine/gncInvoice.c:1080
 msgid "Invoice"
 msgstr "Faktur"
 
@@ -1179,7 +1185,7 @@ msgstr "Faktur"
 #: gnucash/import-export/csv-imp/gnc-imp-props-price.cpp:48
 #: gnucash/import-export/csv-imp/gnc-imp-props-tx.cpp:56
 #: gnucash/import-export/import-pending-matches.c:192
-#: gnucash/report/reports/standard/register.scm:228
+#: gnucash/report/reports/standard/register.scm:217
 #: gnucash/report/trep-engine.scm:258 gnucash/report/trep-engine.scm:291
 #: gnucash/report/trep-engine.scm:341 gnucash/report/trep-engine.scm:429
 #: gnucash/report/trep-engine.scm:1020 libgnucash/engine/gncOwner.c:213
@@ -1266,7 +1272,7 @@ msgid "Term \"%s\" is in use. You cannot delete it."
 msgstr "Jangka \"%s\" sedang digunakan. Anda tidak dapat menghapusnya."
 
 #: gnucash/gnome/dialog-billterms.c:678
-#: gnucash/gnome-utils/dialog-tax-table.c:670
+#: gnucash/gnome-utils/dialog-tax-table.c:673
 #, c-format
 msgid "Are you sure you want to delete \"%s\"?"
 msgstr "Apakah Anda ingin menghapus \"%s\"?"
@@ -1315,21 +1321,23 @@ msgstr "Hapus komoditas?"
 #: gnucash/gnome/dialog-price-edit-db.c:206
 #: gnucash/gnome/dialog-price-editor.c:232 gnucash/gnome/dialog-tax-info.c:1189
 #: gnucash/gnome/gnc-plugin-budget.c:289
-#: gnucash/gnome/gnc-plugin-page-account-tree.c:1765
+#: gnucash/gnome/gnc-plugin-page-account-tree.c:1799
 #: gnucash/gnome/gnc-plugin-page-invoice.c:184
 #: gnucash/gnome/gnc-plugin-page-owner-tree.c:1111
 #: gnucash/gnome/gnc-plugin-page-register2.c:1630
-#: gnucash/gnome/gnc-plugin-page-register.c:1984
+#: gnucash/gnome/gnc-plugin-page-register.c:1990
 #: gnucash/gnome/gnc-split-reg.c:975 gnucash/gnome/gnc-split-reg.c:1013
 #: gnucash/gnome/gnc-split-reg.c:1235 gnucash/gnome/gnc-split-reg.c:1503
 #: gnucash/gnome/gnc-split-reg.c:1543 gnucash/gnome/window-reconcile2.c:2124
 #: gnucash/gnome/window-reconcile.c:2345
 #: gnucash/gnome-search/search-account.c:237
-#: gnucash/gnome-utils/dialog-account.c:679
-#: gnucash/gnome-utils/dialog-tax-table.c:600
+#: gnucash/gnome-utils/dialog-account.c:722
+#: gnucash/gnome-utils/dialog-options.c:224
+#: gnucash/gnome-utils/dialog-tax-table.c:603
 #: gnucash/gnome-utils/gnc-file.c:118 gnucash/gnome-utils/gnc-file.c:366
 #: gnucash/gnome-utils/gnc-file.c:664 gnucash/gnome-utils/gnc-gui-query.c:300
-#: gnucash/gnome-utils/gnc-main-window.c:1293
+#: gnucash/gnome-utils/gnc-main-window.c:1307
+#: gnucash/gnome-utils/gnc-main-window.c:1448
 #: gnucash/gnome-utils/gnc-tree-control-split-reg.c:886
 #: gnucash/gnome-utils/gnc-tree-control-split-reg.c:1023
 #: gnucash/gnome-utils/gnc-tree-control-split-reg.c:1063
@@ -1339,7 +1347,7 @@ msgstr "Hapus komoditas?"
 #: gnucash/gtkbuilder/dialog-account.glade:383
 #: gnucash/gtkbuilder/dialog-account.glade:817
 #: gnucash/gtkbuilder/dialog-account.glade:1133
-#: gnucash/gtkbuilder/dialog-account.glade:1901
+#: gnucash/gtkbuilder/dialog-account.glade:1918
 #: gnucash/gtkbuilder/dialog-account-picker.glade:174
 #: gnucash/gtkbuilder/dialog-bi-import-gui.glade:39
 #: gnucash/gtkbuilder/dialog-billterms.glade:791
@@ -1358,7 +1366,7 @@ msgstr "Hapus komoditas?"
 #: gnucash/gtkbuilder/dialog-fincalc.glade:122
 #: gnucash/gtkbuilder/dialog-import.glade:46
 #: gnucash/gtkbuilder/dialog-import.glade:334
-#: gnucash/gtkbuilder/dialog-import.glade:1018
+#: gnucash/gtkbuilder/dialog-import.glade:1034
 #: gnucash/gtkbuilder/dialog-invoice.glade:675
 #: gnucash/gtkbuilder/dialog-invoice.glade:1199
 #: gnucash/gtkbuilder/dialog-job.glade:41
@@ -1388,12 +1396,12 @@ msgstr "Hapus komoditas?"
 #: gnucash/gtkbuilder/gnc-plugin-page-budget.glade:437
 #: gnucash/gtkbuilder/gnc-plugin-page-budget.glade:882
 #: gnucash/gtkbuilder/gnc-plugin-page-register2.glade:30
-#: gnucash/gtkbuilder/gnc-plugin-page-register2.glade:184
-#: gnucash/gtkbuilder/gnc-plugin-page-register2.glade:691
+#: gnucash/gtkbuilder/gnc-plugin-page-register2.glade:231
+#: gnucash/gtkbuilder/gnc-plugin-page-register2.glade:738
 #: gnucash/gtkbuilder/gnc-plugin-page-register.glade:31
-#: gnucash/gtkbuilder/gnc-plugin-page-register.glade:588
-#: gnucash/gtkbuilder/gnc-plugin-page-register.glade:934
-#: gnucash/gtkbuilder/gnc-plugin-page-register.glade:1144
+#: gnucash/gtkbuilder/gnc-plugin-page-register.glade:582
+#: gnucash/gtkbuilder/gnc-plugin-page-register.glade:787
+#: gnucash/gtkbuilder/gnc-plugin-page-register.glade:1128
 #: gnucash/gtkbuilder/gnc-tree-view-owner.glade:24
 #: gnucash/gtkbuilder/window-autoclear.glade:22
 #: gnucash/gtkbuilder/window-reconcile.glade:21
@@ -1414,7 +1422,7 @@ msgstr "_Batal"
 
 #: gnucash/gnome/dialog-commodities.c:218
 #: gnucash/gnome/dialog-price-edit-db.c:207
-#: gnucash/gnome/gnc-plugin-page-account-tree.c:1766
+#: gnucash/gnome/gnc-plugin-page-account-tree.c:1800
 #: gnucash/gnome/gnc-plugin-page-invoice.c:189
 #: gnucash/gnome/gnc-plugin-page-owner-tree.c:1112
 #: gnucash/gnome/gnc-plugin-page-sx-list.c:162
@@ -1457,7 +1465,7 @@ msgstr "Kredit harus bernilai positif atau Anda harus membiarkannya kosong."
 
 #: gnucash/gnome/dialog-customer.c:432 gnucash/gnome/dialog-employee.c:287
 #: gnucash/gnome/dialog-job.c:242 gnucash/gnome/dialog-vendor.c:299
-#: gnucash/gnome-utils/dialog-account.c:1505
+#: gnucash/gnome-utils/dialog-account.c:1575
 msgid "<No name>"
 msgstr "<Tak ada nama>"
 
@@ -1484,9 +1492,9 @@ msgid "Customer's Invoices"
 msgstr "Faktur Pelanggan"
 
 #: gnucash/gnome/dialog-customer.c:913 gnucash/gnome/dialog-employee.c:694
-#: gnucash/gnome/dialog-invoice.c:3287 gnucash/gnome/dialog-invoice.c:3296
-#: gnucash/gnome/dialog-invoice.c:3307 gnucash/gnome/dialog-invoice.c:3562
-#: gnucash/gnome/dialog-invoice.c:3568 gnucash/gnome/dialog-job.c:561
+#: gnucash/gnome/dialog-invoice.c:3301 gnucash/gnome/dialog-invoice.c:3310
+#: gnucash/gnome/dialog-invoice.c:3321 gnucash/gnome/dialog-invoice.c:3576
+#: gnucash/gnome/dialog-invoice.c:3582 gnucash/gnome/dialog-job.c:561
 #: gnucash/gnome/gnc-plugin-page-owner-tree.c:237
 #: gnucash/gnome/gnc-plugin-page-owner-tree.c:296
 #: gnucash/gtkbuilder/dialog-payment.glade:61
@@ -1519,8 +1527,8 @@ msgstr "Nama Perusahaan"
 msgid "Contact"
 msgstr "Kontak"
 
-#: gnucash/gnome/dialog-customer.c:938 gnucash/gnome/dialog-invoice.c:3432
-#: gnucash/gnome/dialog-invoice.c:3586 gnucash/gnome/dialog-job.c:591
+#: gnucash/gnome/dialog-customer.c:938 gnucash/gnome/dialog-invoice.c:3446
+#: gnucash/gnome/dialog-invoice.c:3600 gnucash/gnome/dialog-job.c:591
 #: gnucash/gnome/dialog-order.c:888 gnucash/gnome/dialog-vendor.c:741
 #: gnucash/import-export/customer-import/dialog-customer-import-gui.c:129
 #: gnucash/report/reports/aging.scm:537
@@ -1649,7 +1657,7 @@ msgstr "Taut Dokumen Transaksi"
 #: gnucash/gnome/dialog-lot-viewer.c:953 gnucash/gnome/dialog-tax-info.c:1397
 #: gnucash/gnome/gnc-split-reg.c:700 gnucash/gnome/reconcile-view.c:417
 #: gnucash/gnome-utils/gnc-tree-model-budget.c:102
-#: gnucash/gnome-utils/gnc-tree-view-account.c:805
+#: gnucash/gnome-utils/gnc-tree-view-account.c:828
 #: gnucash/gnome-utils/gnc-tree-view-split-reg.c:2812
 #: gnucash/gtkbuilder/dialog-book-close.glade:163
 #: gnucash/gtkbuilder/dialog-choose-owner.glade:97
@@ -1659,14 +1667,14 @@ msgstr "Taut Dokumen Transaksi"
 #: gnucash/import-export/csv-exp/csv-transactions-export.c:615
 #: gnucash/import-export/csv-exp/csv-transactions-export.c:624
 #: gnucash/import-export/csv-imp/gnc-imp-props-tx.cpp:60
-#: gnucash/import-export/import-main-matcher.c:1038
+#: gnucash/import-export/import-main-matcher.c:1091
 #: gnucash/import-export/import-match-picker.c:395
 #: gnucash/import-export/import-match-picker.c:435
 #: gnucash/import-export/qif-imp/assistant-qif-import.c:3710
 #: gnucash/import-export/qif-imp/assistant-qif-import.c:3761
 #: gnucash/register/ledger-core/gncEntryLedgerModel.c:67
 #: gnucash/register/ledger-core/split-register-model.c:295
-#: gnucash/report/reports/standard/account-summary.scm:408
+#: gnucash/report/reports/standard/account-summary.scm:409
 #: gnucash/report/reports/standard/customer-summary.scm:73
 #: gnucash/report/reports/standard/general-journal.scm:96
 #: gnucash/report/reports/standard/general-ledger.scm:70
@@ -1678,7 +1686,7 @@ msgstr "Taut Dokumen Transaksi"
 #: gnucash/report/reports/standard/new-owner-report.scm:240
 #: gnucash/report/reports/standard/owner-report.scm:54
 #: gnucash/report/reports/standard/register.scm:138
-#: gnucash/report/reports/standard/register.scm:397
+#: gnucash/report/reports/standard/register.scm:368
 #: gnucash/report/reports/support/taxinvoice.eguile.scm:270
 #: gnucash/report/trep-engine.scm:215 gnucash/report/trep-engine.scm:945
 #: gnucash/report/trep-engine.scm:1073 gnucash/report/trep-engine.scm:1198
@@ -1738,7 +1746,7 @@ msgstr "ID Pegawai"
 msgid "Employee Username"
 msgstr "Nama Pengguna Pegawai"
 
-#: gnucash/gnome/dialog-employee.c:707 gnucash/gnome/dialog-invoice.c:3412
+#: gnucash/gnome/dialog-employee.c:707 gnucash/gnome/dialog-invoice.c:3426
 #: gnucash/gnome-utils/gnc-tree-view-owner.c:364
 msgid "Employee Name"
 msgstr "Nama Pegawai"
@@ -1812,7 +1820,7 @@ msgid "Place Holder"
 msgstr "Placeholder"
 
 #: gnucash/gnome/dialog-find-account.c:388
-#: gnucash/gnome-utils/gnc-tree-view-account.c:957
+#: gnucash/gnome-utils/gnc-tree-view-account.c:980
 #: gnucash/gtkbuilder/dialog-account.glade:322
 msgid "Hidden"
 msgstr "Tersembunyi"
@@ -1823,7 +1831,7 @@ msgstr "Tak Digunakan"
 
 #: gnucash/gnome/dialog-find-account.c:410
 msgid "Balance Zero"
-msgstr ""
+msgstr "Nol Saldo"
 
 #: gnucash/gnome/dialog-find-account.c:421
 msgid "Tax related"
@@ -1869,7 +1877,7 @@ msgid "Share Price"
 msgstr "Harga Saham"
 
 #: gnucash/gnome/dialog-find-transactions2.c:124
-#: gnucash/gnome/dialog-invoice.c:3581 gnucash/gnome/dialog-lot-viewer.c:967
+#: gnucash/gnome/dialog-invoice.c:3595 gnucash/gnome/dialog-lot-viewer.c:967
 #: gnucash/gnome/gnc-split-reg.c:694 gnucash/gnome/reconcile-view.c:413
 #: gnucash/gnome-utils/gnc-tree-view-split-reg.c:2892
 #: gnucash/gnome-utils/gnc-tree-view-split-reg.c:2904
@@ -1878,7 +1886,7 @@ msgstr "Harga Saham"
 #: gnucash/gtkbuilder/assistant-loan.glade:764
 #: gnucash/gtkbuilder/dialog-transfer.glade:112
 #: gnucash/import-export/csv-imp/gnc-imp-props-price.cpp:50
-#: gnucash/import-export/import-main-matcher.c:1037
+#: gnucash/import-export/import-main-matcher.c:1090
 #: gnucash/import-export/import-match-picker.c:394
 #: gnucash/import-export/import-match-picker.c:434
 #: gnucash/import-export/qif-imp/assistant-qif-import.c:3721
@@ -1891,8 +1899,8 @@ msgstr "Harga Saham"
 #: gnucash/report/reports/standard/job-report.scm:45
 #: gnucash/report/reports/standard/new-owner-report.scm:244
 #: gnucash/report/reports/standard/owner-report.scm:59
-#: gnucash/report/reports/standard/register.scm:427
-#: gnucash/report/reports/standard/register.scm:676
+#: gnucash/report/reports/standard/register.scm:398
+#: gnucash/report/reports/standard/register.scm:647
 #: gnucash/report/trep-engine.scm:207 gnucash/report/trep-engine.scm:1016
 #: gnucash/report/trep-engine.scm:1067 gnucash/report/trep-engine.scm:1348
 #: gnucash/report/trep-engine.scm:1364 gnucash/report/trep-engine.scm:2058
@@ -1909,14 +1917,14 @@ msgstr "Jumlah"
 #: gnucash/report/reports/standard/advanced-portfolio.scm:1080
 #: gnucash/report/reports/standard/portfolio.scm:258
 #: gnucash/report/reports/standard/register.scm:158
-#: gnucash/report/reports/standard/register.scm:436
+#: gnucash/report/reports/standard/register.scm:407
 msgid "Value"
 msgstr "Nilai"
 
 #: gnucash/gnome/dialog-find-transactions2.c:128
 #: gnucash/gnome/dialog-find-transactions.c:126
-#: gnucash/gnome/dialog-invoice.c:3332 gnucash/gnome/dialog-invoice.c:3366
-#: gnucash/gnome/dialog-invoice.c:3400
+#: gnucash/gnome/dialog-invoice.c:3346 gnucash/gnome/dialog-invoice.c:3380
+#: gnucash/gnome/dialog-invoice.c:3414
 #: gnucash/gnome-utils/gnc-tree-view-split-reg.c:2720
 #: gnucash/gtkbuilder/dialog-invoice.glade:93
 #: gnucash/import-export/bi-import/dialog-bi-import-gui.c:161
@@ -1929,8 +1937,8 @@ msgstr "Tanggal Pos"
 #: gnucash/gnome/dialog-find-transactions.c:132
 #: gnucash/gnome/dialog-find-transactions.c:171
 #: gnucash/gnome/dialog-find-transactions.c:177
-#: gnucash/gnome/gnc-plugin-page-register.c:2476
-#: gnucash/gnome/gnc-plugin-page-register.c:4160
+#: gnucash/gnome/gnc-plugin-page-register.c:2482
+#: gnucash/gnome/gnc-plugin-page-register.c:4166
 #: gnucash/gnome-search/dialog-search.c:866
 #: gnucash/gnome-search/dialog-search.c:872
 #: gnucash/import-export/csv-exp/csv-transactions-export.c:626
@@ -1944,7 +1952,7 @@ msgstr "Angka/Aksi"
 #: gnucash/gnome/dialog-find-transactions.c:133
 #: gnucash/gnome/dialog-find-transactions.c:170
 #: gnucash/gnome/dialog-find-transactions.c:178
-#: gnucash/gnome/gnc-plugin-page-register.c:2481
+#: gnucash/gnome/gnc-plugin-page-register.c:2487
 #: gnucash/gnome/gnc-split-reg.c:703 gnucash/gnome-search/dialog-search.c:865
 #: gnucash/gnome-search/dialog-search.c:873
 #: gnucash/gnome-utils/gnc-tree-view-split-reg.c:2749
@@ -1968,8 +1976,8 @@ msgstr "Aksi"
 #: gnucash/gnome/dialog-find-transactions.c:136
 #: gnucash/gnome/dialog-find-transactions.c:173
 #: gnucash/gnome/dialog-find-transactions.c:179
-#: gnucash/gnome/gnc-plugin-page-register.c:2475
-#: gnucash/gnome/gnc-plugin-page-register.c:4159
+#: gnucash/gnome/gnc-plugin-page-register.c:2481
+#: gnucash/gnome/gnc-plugin-page-register.c:4165
 #: gnucash/gnome-search/dialog-search.c:868
 #: gnucash/gnome-search/dialog-search.c:874
 #: gnucash/import-export/csv-exp/csv-transactions-export.c:614
@@ -1984,7 +1992,7 @@ msgstr "Nomor Transaksi"
 #: gnucash/gnome/dialog-find-transactions.c:137
 #: gnucash/gnome/dialog-find-transactions.c:172
 #: gnucash/gnome/dialog-find-transactions.c:180
-#: gnucash/gnome/gnc-plugin-page-register.c:2480
+#: gnucash/gnome/gnc-plugin-page-register.c:2486
 #: gnucash/gnome/gnc-split-reg.c:691 gnucash/gnome-search/dialog-search.c:867
 #: gnucash/gnome-search/dialog-search.c:875
 #: gnucash/gnome-utils/gnc-tree-view-split-reg.c:2765
@@ -2013,14 +2021,14 @@ msgstr "Deskripsi, Catatan, atau Memo"
 #: gnucash/gtkbuilder/dialog-transfer.glade:215
 #: gnucash/import-export/csv-exp/csv-transactions-export.c:626
 #: gnucash/import-export/csv-imp/gnc-imp-props-tx.cpp:69
-#: gnucash/import-export/import-main-matcher.c:1039
+#: gnucash/import-export/import-main-matcher.c:1092
 #: gnucash/import-export/import-match-picker.c:396
 #: gnucash/import-export/import-match-picker.c:436
 #: gnucash/register/ledger-core/split-register-model.c:355
 #: gnucash/report/reports/standard/general-ledger.scm:71
 #: gnucash/report/reports/standard/general-ledger.scm:91
 #: gnucash/report/reports/standard/register.scm:140
-#: gnucash/report/reports/standard/register.scm:402
+#: gnucash/report/reports/standard/register.scm:373
 #: gnucash/report/trep-engine.scm:244 gnucash/report/trep-engine.scm:971
 #: gnucash/report/trep-engine.scm:1095 gnucash/report/trep-engine.scm:1208
 #: gnucash/report/trep-engine.scm:1209
@@ -2030,7 +2038,7 @@ msgstr "Memo"
 #: gnucash/gnome/dialog-find-transactions2.c:155
 #: gnucash/gnome/dialog-find-transactions.c:155
 #: gnucash/gnome/gnc-split-reg.c:706
-#: gnucash/gnome-utils/gnc-tree-view-account.c:937
+#: gnucash/gnome-utils/gnc-tree-view-account.c:960
 #: gnucash/gnome-utils/gnc-tree-view-owner.c:473
 #: gnucash/gnome-utils/gnc-tree-view-split-reg.c:2814
 #: gnucash/gtkbuilder/assistant-acct-period.glade:155
@@ -2047,7 +2055,7 @@ msgstr "Memo"
 #: gnucash/import-export/csv-imp/gnc-imp-props-tx.cpp:61
 #: gnucash/import-export/customer-import/dialog-customer-import-gui.c:138
 #: gnucash/register/ledger-core/split-register-model.c:491
-#: gnucash/report/reports/standard/account-summary.scm:436
+#: gnucash/report/reports/standard/account-summary.scm:437
 #: gnucash/report/reports/standard/balsheet-eg.scm:195
 #: gnucash/report/reports/standard/receipt.scm:38
 #: gnucash/report/reports/standard/taxinvoice.scm:78
@@ -2139,18 +2147,18 @@ msgstr "HBCI Daring"
 msgid "You need to supply Billing Information."
 msgstr "Anda perlu menyediakan Informasi Penagihan."
 
-#: gnucash/gnome/dialog-invoice.c:711
+#: gnucash/gnome/dialog-invoice.c:725
 msgid "Are you sure you want to delete the selected entry?"
 msgstr "Anda yakin ingin menghapus entri yang dipilih?"
 
-#: gnucash/gnome/dialog-invoice.c:713
+#: gnucash/gnome/dialog-invoice.c:727
 msgid ""
 "This entry is attached to an order and will be deleted from that as well!"
 msgstr ""
 "Entri ini terlampir pada sebuah pesanan dan akan dihapus dari pesanan itu!"
 
-#: gnucash/gnome/dialog-invoice.c:822 gnucash/gnome/dialog-invoice.c:3341
-#: gnucash/gnome/dialog-invoice.c:3375 gnucash/gnome/dialog-invoice.c:3409
+#: gnucash/gnome/dialog-invoice.c:836 gnucash/gnome/dialog-invoice.c:3355
+#: gnucash/gnome/dialog-invoice.c:3389 gnucash/gnome/dialog-invoice.c:3423
 #: gnucash/gnome-utils/gnc-tree-view-split-reg.c:2736
 #: gnucash/import-export/bi-import/dialog-bi-import-gui.c:162
 #: gnucash/register/ledger-core/split-register-model.c:239
@@ -2167,161 +2175,161 @@ msgstr ""
 msgid "Due Date"
 msgstr "Tanggal Tenggat"
 
-#: gnucash/gnome/dialog-invoice.c:823 gnucash/report/reports/aging.scm:388
+#: gnucash/gnome/dialog-invoice.c:837 gnucash/report/reports/aging.scm:388
 #: gnucash/report/reports/standard/new-aging.scm:130
 #: gnucash/report/reports/standard/new-owner-report.scm:961
 #: gnucash/report/reports/standard/owner-report.scm:613
 msgid "Post Date"
 msgstr "Tanggal Pos"
 
-#: gnucash/gnome/dialog-invoice.c:824
+#: gnucash/gnome/dialog-invoice.c:838
 msgid "Post to Account"
 msgstr "Pos ke Akun"
 
-#: gnucash/gnome/dialog-invoice.c:825
+#: gnucash/gnome/dialog-invoice.c:839
 msgid "Accumulate Splits?"
-msgstr "Akumulasikan Pemecahan?"
+msgstr "Akumulasikan Split?"
 
-#: gnucash/gnome/dialog-invoice.c:917
+#: gnucash/gnome/dialog-invoice.c:931
 msgid "The Invoice must have at least one Entry."
 msgstr "Faktur harus memiliki setidaknya satu Entri."
 
-#: gnucash/gnome/dialog-invoice.c:937
+#: gnucash/gnome/dialog-invoice.c:951
 msgid "Do you really want to post the invoice?"
 msgstr "Apakah Anda ingin mengepos faktur?"
 
-#: gnucash/gnome/dialog-invoice.c:955
+#: gnucash/gnome/dialog-invoice.c:969
 msgid ""
 "One or more of the entries are for accounts different from the invoice/bill "
 "currency. You will be asked a conversion rate for each."
 msgstr ""
 "Satu atau lebih entri ditujukan untuk akun yang berbeda dari mata uang "
-"faktur/tagihan. Anda akan diminta memasukkan kurs untuk tiap entri."
+"faktur/tagihan. Anda akan diminta memasukkan nilai tukar untuk tiap entri."
 
-#: gnucash/gnome/dialog-invoice.c:1088
+#: gnucash/gnome/dialog-invoice.c:1102
 msgid "The post action was canceled because not all exchange rates were given."
-msgstr "Aksi pos dibatalkan karena tidak semua kurs diberikan."
+msgstr "Aksi pos dibatalkan karena tidak semua nilai tukar diberikan."
 
-#: gnucash/gnome/dialog-invoice.c:1372
+#: gnucash/gnome/dialog-invoice.c:1386
 msgid "Total:"
 msgstr "Total:"
 
-#: gnucash/gnome/dialog-invoice.c:1378
+#: gnucash/gnome/dialog-invoice.c:1392
 msgid "Subtotal:"
 msgstr "Subtotal:"
 
-#: gnucash/gnome/dialog-invoice.c:1379
+#: gnucash/gnome/dialog-invoice.c:1393
 msgid "Tax:"
 msgstr "Pajak:"
 
-#: gnucash/gnome/dialog-invoice.c:1383
+#: gnucash/gnome/dialog-invoice.c:1397
 msgid "Total Cash:"
 msgstr "Total Tunai:"
 
-#: gnucash/gnome/dialog-invoice.c:1384
+#: gnucash/gnome/dialog-invoice.c:1398
 msgid "Total Charge:"
 msgstr "Total Biaya:"
 
-#: gnucash/gnome/dialog-invoice.c:1853 gnucash/gnome/dialog-payment.c:1331
+#: gnucash/gnome/dialog-invoice.c:1867 gnucash/gnome/dialog-payment.c:1331
 #: gnucash/gtkbuilder/dialog-invoice.glade:857
 #: gnucash/report/reports/standard/invoice.scm:793
 #: libgnucash/engine/gncInvoice.c:1088
 msgid "Credit Note"
 msgstr "Nota Kredit"
 
-#: gnucash/gnome/dialog-invoice.c:2049
+#: gnucash/gnome/dialog-invoice.c:2063
 msgid "PAID"
 msgstr "LUNAS"
 
-#: gnucash/gnome/dialog-invoice.c:2051
+#: gnucash/gnome/dialog-invoice.c:2065
 #: gnucash/report/reports/standard/new-owner-report.scm:577
 msgid "UNPAID"
 msgstr "BELUM LUNAS"
 
-#: gnucash/gnome/dialog-invoice.c:2099 gnucash/gnome/dialog-invoice.c:2118
-#: gnucash/gnome/dialog-invoice.c:2137
+#: gnucash/gnome/dialog-invoice.c:2113 gnucash/gnome/dialog-invoice.c:2132
+#: gnucash/gnome/dialog-invoice.c:2151
 msgid "New Credit Note"
 msgstr "Nota Kredit Baru"
 
-#: gnucash/gnome/dialog-invoice.c:2100
+#: gnucash/gnome/dialog-invoice.c:2114
 #: gnucash/gnome/gnc-plugin-page-owner-tree.c:292
 #: gnucash/gnome-search/dialog-search.c:1082
 #: gnucash/gtkbuilder/dialog-invoice.glade:642
 msgid "New Invoice"
 msgstr "Faktur Baru"
 
-#: gnucash/gnome/dialog-invoice.c:2105 gnucash/gnome/dialog-invoice.c:2124
-#: gnucash/gnome/dialog-invoice.c:2143
+#: gnucash/gnome/dialog-invoice.c:2119 gnucash/gnome/dialog-invoice.c:2138
+#: gnucash/gnome/dialog-invoice.c:2157
 msgid "Edit Credit Note"
 msgstr "Sunting Nota Kredit"
 
-#: gnucash/gnome/dialog-invoice.c:2106
+#: gnucash/gnome/dialog-invoice.c:2120
 msgid "Edit Invoice"
 msgstr "Sunting Faktur"
 
-#: gnucash/gnome/dialog-invoice.c:2109 gnucash/gnome/dialog-invoice.c:2128
-#: gnucash/gnome/dialog-invoice.c:2147
+#: gnucash/gnome/dialog-invoice.c:2123 gnucash/gnome/dialog-invoice.c:2142
+#: gnucash/gnome/dialog-invoice.c:2161
 msgid "View Credit Note"
 msgstr "Lihat Nota Kredit"
 
-#: gnucash/gnome/dialog-invoice.c:2110
+#: gnucash/gnome/dialog-invoice.c:2124
 msgid "View Invoice"
 msgstr "Lihat Faktur"
 
-#: gnucash/gnome/dialog-invoice.c:2119
+#: gnucash/gnome/dialog-invoice.c:2133
 #: gnucash/gnome/gnc-plugin-page-owner-tree.c:291
 #: gnucash/gnome-search/dialog-search.c:1066
 msgid "New Bill"
 msgstr "Tagihan Baru"
 
-#: gnucash/gnome/dialog-invoice.c:2125
+#: gnucash/gnome/dialog-invoice.c:2139
 msgid "Edit Bill"
 msgstr "Sunting Tagihan"
 
-#: gnucash/gnome/dialog-invoice.c:2129
+#: gnucash/gnome/dialog-invoice.c:2143
 msgid "View Bill"
 msgstr "Lihat Tagihan"
 
-#: gnucash/gnome/dialog-invoice.c:2138
+#: gnucash/gnome/dialog-invoice.c:2152
 #: gnucash/gnome-search/dialog-search.c:1078
 msgid "New Expense Voucher"
 msgstr "Voucer Pengeluaran Baru"
 
-#: gnucash/gnome/dialog-invoice.c:2144
+#: gnucash/gnome/dialog-invoice.c:2158
 msgid "Edit Expense Voucher"
 msgstr "Sunting Voucer Pengeluaran"
 
-#: gnucash/gnome/dialog-invoice.c:2148
+#: gnucash/gnome/dialog-invoice.c:2162
 msgid "View Expense Voucher"
 msgstr "Lihat Voucer Pengeluaran"
 
-#: gnucash/gnome/dialog-invoice.c:2471
+#: gnucash/gnome/dialog-invoice.c:2485
 msgid "Open Linked Document:"
 msgstr "Buka Dokumen Tertaut:"
 
-#: gnucash/gnome/dialog-invoice.c:2585 gnucash/gnome/dialog-invoice.c:2810
+#: gnucash/gnome/dialog-invoice.c:2599 gnucash/gnome/dialog-invoice.c:2824
 msgid "Bill Information"
 msgstr "Informasi Tagihan"
 
-#: gnucash/gnome/dialog-invoice.c:2587 gnucash/gnome/dialog-invoice.c:2813
-#: gnucash/gnome/dialog-invoice.c:3382
+#: gnucash/gnome/dialog-invoice.c:2601 gnucash/gnome/dialog-invoice.c:2827
+#: gnucash/gnome/dialog-invoice.c:3396
 msgid "Bill ID"
 msgstr "ID Tagihan"
 
-#: gnucash/gnome/dialog-invoice.c:2591 gnucash/gnome/dialog-invoice.c:2817
+#: gnucash/gnome/dialog-invoice.c:2605 gnucash/gnome/dialog-invoice.c:2831
 msgid "Voucher Information"
 msgstr "Informasi Voucer"
 
-#: gnucash/gnome/dialog-invoice.c:2593 gnucash/gnome/dialog-invoice.c:2820
-#: gnucash/gnome/dialog-invoice.c:3416
+#: gnucash/gnome/dialog-invoice.c:2607 gnucash/gnome/dialog-invoice.c:2834
+#: gnucash/gnome/dialog-invoice.c:3430
 msgid "Voucher ID"
 msgstr "ID Voucer"
 
-#: gnucash/gnome/dialog-invoice.c:3149
+#: gnucash/gnome/dialog-invoice.c:3163
 msgid "Date of duplicated entries"
 msgstr "Tanggal entri ganda"
 
-#: gnucash/gnome/dialog-invoice.c:3204
+#: gnucash/gnome/dialog-invoice.c:3218
 msgid ""
 "One or more selected invoices have already been posted.\n"
 "Re-check your selection."
@@ -2329,54 +2337,54 @@ msgstr ""
 "Satu atau lebih faktur yang dipilih telah dipos.\n"
 "Periksa ulang pilihan Anda."
 
-#: gnucash/gnome/dialog-invoice.c:3208
+#: gnucash/gnome/dialog-invoice.c:3222
 msgid "Do you really want to post these invoices?"
 msgstr "Apakah Anda ingin mengepos faktur tersebut?"
 
-#: gnucash/gnome/dialog-invoice.c:3286 gnucash/gnome/dialog-invoice.c:3567
+#: gnucash/gnome/dialog-invoice.c:3300 gnucash/gnome/dialog-invoice.c:3581
 msgid "View/Edit Invoice"
 msgstr "Lihat/Sunting Faktur"
 
-#: gnucash/gnome/dialog-invoice.c:3288 gnucash/gnome/dialog-invoice.c:3297
-#: gnucash/gnome/dialog-invoice.c:3308
+#: gnucash/gnome/dialog-invoice.c:3302 gnucash/gnome/dialog-invoice.c:3311
+#: gnucash/gnome/dialog-invoice.c:3322
 #: gnucash/gnome/gnc-plugin-page-invoice.c:455
 #: gnucash/gnome/gnc-plugin-page-register2.c:501
 #: gnucash/gnome/gnc-plugin-page-register.c:624
 msgid "Duplicate"
-msgstr "Gandakan"
+msgstr "Duplikat"
 
-#: gnucash/gnome/dialog-invoice.c:3289 gnucash/gnome/dialog-invoice.c:3298
-#: gnucash/gnome/dialog-invoice.c:3309
+#: gnucash/gnome/dialog-invoice.c:3303 gnucash/gnome/dialog-invoice.c:3312
+#: gnucash/gnome/dialog-invoice.c:3323
 #: gnucash/gnome/gnc-plugin-page-invoice.c:459
 msgid "Post"
 msgstr "Pos"
 
-#: gnucash/gnome/dialog-invoice.c:3290 gnucash/gnome/dialog-invoice.c:3299
-#: gnucash/gnome/dialog-invoice.c:3310
+#: gnucash/gnome/dialog-invoice.c:3304 gnucash/gnome/dialog-invoice.c:3313
+#: gnucash/gnome/dialog-invoice.c:3324
 msgid "Printable Report"
 msgstr "Laporan yang Dapat Dicetak"
 
-#: gnucash/gnome/dialog-invoice.c:3295 gnucash/gnome/dialog-invoice.c:3561
+#: gnucash/gnome/dialog-invoice.c:3309 gnucash/gnome/dialog-invoice.c:3575
 msgid "View/Edit Bill"
 msgstr "Lihat/Sunting Tagihan"
 
 #. Translators: The terms 'Voucher' and 'Expense Voucher' are used
 #. interchangeably in gnucash and mean the same thing.
-#: gnucash/gnome/dialog-invoice.c:3306
+#: gnucash/gnome/dialog-invoice.c:3320
 msgid "View/Edit Voucher"
 msgstr "Lihat/Sunting Voucer"
 
-#: gnucash/gnome/dialog-invoice.c:3320
+#: gnucash/gnome/dialog-invoice.c:3334
 msgid "Invoice Owner"
 msgstr "Pemilik Faktur"
 
-#: gnucash/gnome/dialog-invoice.c:3323
+#: gnucash/gnome/dialog-invoice.c:3337
 #: gnucash/report/reports/standard/invoice.scm:327
 msgid "Invoice Notes"
 msgstr "Catatan Faktur"
 
-#: gnucash/gnome/dialog-invoice.c:3326 gnucash/gnome/dialog-invoice.c:3360
-#: gnucash/gnome/dialog-invoice.c:3394 gnucash/gnome/dialog-invoice.c:3423
+#: gnucash/gnome/dialog-invoice.c:3340 gnucash/gnome/dialog-invoice.c:3374
+#: gnucash/gnome/dialog-invoice.c:3408 gnucash/gnome/dialog-invoice.c:3437
 #: gnucash/gnome/dialog-job.c:574 gnucash/gnome/dialog-job.c:587
 #: gnucash/gnome/dialog-order.c:886 gnucash/gtkbuilder/dialog-invoice.glade:310
 #: gnucash/gtkbuilder/dialog-invoice.glade:944
@@ -2385,18 +2393,18 @@ msgstr "Catatan Faktur"
 msgid "Billing ID"
 msgstr "ID Tagihan"
 
-#: gnucash/gnome/dialog-invoice.c:3329 gnucash/gnome/dialog-invoice.c:3363
-#: gnucash/gnome/dialog-invoice.c:3397
+#: gnucash/gnome/dialog-invoice.c:3343 gnucash/gnome/dialog-invoice.c:3377
+#: gnucash/gnome/dialog-invoice.c:3411
 msgid "Is Paid?"
 msgstr "Lunas?"
 
-#: gnucash/gnome/dialog-invoice.c:3335 gnucash/gnome/dialog-invoice.c:3369
-#: gnucash/gnome/dialog-invoice.c:3403
+#: gnucash/gnome/dialog-invoice.c:3349 gnucash/gnome/dialog-invoice.c:3383
+#: gnucash/gnome/dialog-invoice.c:3417
 msgid "Is Posted?"
 msgstr "Dipos?"
 
-#: gnucash/gnome/dialog-invoice.c:3338 gnucash/gnome/dialog-invoice.c:3372
-#: gnucash/gnome/dialog-invoice.c:3406 gnucash/gnome/dialog-order.c:875
+#: gnucash/gnome/dialog-invoice.c:3352 gnucash/gnome/dialog-invoice.c:3386
+#: gnucash/gnome/dialog-invoice.c:3420 gnucash/gnome/dialog-order.c:875
 #: gnucash/gtkbuilder/dialog-invoice.glade:67
 #: gnucash/gtkbuilder/dialog-invoice.glade:762
 #: gnucash/gtkbuilder/dialog-order.glade:135
@@ -2405,35 +2413,35 @@ msgstr "Dipos?"
 msgid "Date Opened"
 msgstr "Tanggal Dibuka"
 
-#: gnucash/gnome/dialog-invoice.c:3344 gnucash/gnome/dialog-invoice.c:3378
+#: gnucash/gnome/dialog-invoice.c:3358 gnucash/gnome/dialog-invoice.c:3392
 msgid "Company Name "
 msgstr "Nama Perusahaan "
 
-#: gnucash/gnome/dialog-invoice.c:3348
+#: gnucash/gnome/dialog-invoice.c:3362
 #: gnucash/gtkbuilder/dialog-invoice.glade:41
 #: gnucash/gtkbuilder/dialog-invoice.glade:749
 msgid "Invoice ID"
 msgstr "ID Faktur"
 
-#: gnucash/gnome/dialog-invoice.c:3354
+#: gnucash/gnome/dialog-invoice.c:3368
 msgid "Bill Owner"
 msgstr "Pemilik Tagihan"
 
-#: gnucash/gnome/dialog-invoice.c:3357
+#: gnucash/gnome/dialog-invoice.c:3371
 msgid "Bill Notes"
 msgstr "Catatan Tagihan"
 
-#: gnucash/gnome/dialog-invoice.c:3388
+#: gnucash/gnome/dialog-invoice.c:3402
 msgid "Voucher Owner"
 msgstr "Pemilik Voucer"
 
-#: gnucash/gnome/dialog-invoice.c:3391
+#: gnucash/gnome/dialog-invoice.c:3405
 msgid "Voucher Notes"
 msgstr "Catatan Voucer"
 
-#: gnucash/gnome/dialog-invoice.c:3425 gnucash/gnome/dialog-invoice.c:3584
+#: gnucash/gnome/dialog-invoice.c:3439 gnucash/gnome/dialog-invoice.c:3598
 #: gnucash/gnome/dialog-lot-viewer.c:860 gnucash/gnome/dialog-tax-info.c:1235
-#: gnucash/gnome-utils/gnc-tree-view-account.c:788
+#: gnucash/gnome-utils/gnc-tree-view-account.c:811
 #: gnucash/gnome-utils/gnc-tree-view-owner.c:401
 #: gnucash/gnome-utils/gnc-tree-view-price.c:420
 #: gnucash/gnome-utils/gnc-tree-view-split-reg.c:2872
@@ -2445,7 +2453,7 @@ msgstr "Catatan Voucer"
 #: gnucash/gtkbuilder/dialog-payment.glade:280
 #: gnucash/gtkbuilder/dialog-tax-info.glade:127
 #: gnucash/register/ledger-core/split-register-model.c:362
-#: gnucash/report/reports/standard/account-summary.scm:407
+#: gnucash/report/reports/standard/account-summary.scm:408
 #: gnucash/report/reports/standard/customer-summary.scm:72
 #: gnucash/report/reports/standard/job-report.scm:43
 #: gnucash/report/reports/standard/new-owner-report.scm:52
@@ -2454,26 +2462,26 @@ msgstr "Catatan Voucer"
 msgid "Type"
 msgstr "Tipe"
 
-#: gnucash/gnome/dialog-invoice.c:3427
+#: gnucash/gnome/dialog-invoice.c:3441
 #: gnucash/register/ledger-core/split-register-model.c:309
 #: gnucash/report/reports/standard/new-owner-report.scm:819
 msgid "Paid"
 msgstr "Lunas"
 
-#: gnucash/gnome/dialog-invoice.c:3430
+#: gnucash/gnome/dialog-invoice.c:3444
 msgid "Posted"
 msgstr "Dipos"
 
-#: gnucash/gnome/dialog-invoice.c:3435 gnucash/gnome/dialog-invoice.c:3588
+#: gnucash/gnome/dialog-invoice.c:3449 gnucash/gnome/dialog-invoice.c:3602
 msgid "Due"
 msgstr "Jatuh Tempo"
 
-#: gnucash/gnome/dialog-invoice.c:3437 gnucash/gnome/dialog-lot-viewer.c:866
+#: gnucash/gnome/dialog-invoice.c:3451 gnucash/gnome/dialog-lot-viewer.c:866
 #: gnucash/gnome/dialog-order.c:893
 msgid "Opened"
 msgstr "Dibuka"
 
-#: gnucash/gnome/dialog-invoice.c:3439 gnucash/gnome/dialog-lot-viewer.c:947
+#: gnucash/gnome/dialog-invoice.c:3453 gnucash/gnome/dialog-lot-viewer.c:947
 #: gnucash/gnome/dialog-order.c:895 gnucash/gnome/reconcile-view.c:421
 #: gnucash/gnome/reconcile-view.c:425
 #: gnucash/gtkbuilder/dialog-payment.glade:473
@@ -2484,53 +2492,53 @@ msgstr "Dibuka"
 #: gnucash/report/reports/standard/general-journal.scm:95
 #: gnucash/report/reports/standard/general-ledger.scm:89
 #: gnucash/report/reports/standard/register.scm:136
-#: gnucash/report/reports/standard/register.scm:392
+#: gnucash/report/reports/standard/register.scm:363
 #: gnucash/report/trep-engine.scm:944 gnucash/report/trep-engine.scm:1072
 #: gnucash/report/trep-engine.scm:1180
 msgid "Num"
-msgstr "No"
+msgstr "Num"
 
-#: gnucash/gnome/dialog-invoice.c:3520
+#: gnucash/gnome/dialog-invoice.c:3534
 msgid "Find Bill"
 msgstr "Cari Tagihan"
 
-#: gnucash/gnome/dialog-invoice.c:3527
+#: gnucash/gnome/dialog-invoice.c:3541
 msgid "Find Expense Voucher"
 msgstr "Cari Voucer Pengeluaran"
 
-#: gnucash/gnome/dialog-invoice.c:3528
+#: gnucash/gnome/dialog-invoice.c:3542
 #: gnucash/gnome-search/dialog-search.c:1076
 #: gnucash/report/reports/standard/invoice.scm:789
 msgid "Expense Voucher"
 msgstr "Voucer Pengeluaran"
 
-#: gnucash/gnome/dialog-invoice.c:3534
+#: gnucash/gnome/dialog-invoice.c:3548
 msgid "Find Invoice"
 msgstr "Cari Faktur"
 
 #. Translators: %d is the number of bills/credit notes due. This is a
 #. ngettext(3) message.
-#: gnucash/gnome/dialog-invoice.c:3668
+#: gnucash/gnome/dialog-invoice.c:3682
 #, c-format
 msgid "The following vendor document is due:"
 msgid_plural "The following %d vendor documents are due:"
 msgstr[0] "Dokumen vendor berikut jatuh tempo:"
 msgstr[1] "Dokumen %d vendor berikut jatuh tempo:"
 
-#: gnucash/gnome/dialog-invoice.c:3672
+#: gnucash/gnome/dialog-invoice.c:3686
 msgid "Due Bills Reminder"
 msgstr "Pengingat Tagihan Jatuh Tempo"
 
 #. Translators: %d is the number of invoices/credit notes due. This is a
 #. ngettext(3) message.
-#: gnucash/gnome/dialog-invoice.c:3679
+#: gnucash/gnome/dialog-invoice.c:3693
 #, c-format
 msgid "The following customer document is due:"
 msgid_plural "The following %d customer documents are due:"
 msgstr[0] "Dokumen pelanggan berikut telah jatuh tempo:"
 msgstr[1] "Dokumen %d pelanggan berikut telah jatuh tempo:"
 
-#: gnucash/gnome/dialog-invoice.c:3683
+#: gnucash/gnome/dialog-invoice.c:3697
 msgid "Due Invoices Reminder"
 msgstr "Pengingat Faktur Jatuh Tempo"
 
@@ -2571,7 +2579,7 @@ msgstr "Hanya Aktif?"
 #: gnucash/gtkbuilder/dialog-job.glade:204
 #: gnucash/register/ledger-core/split-register-model.c:369
 msgid "Rate"
-msgstr ""
+msgstr "Suku Bunga"
 
 #: gnucash/gnome/dialog-job.c:578 gnucash/gnome-utils/gnc-tree-view-owner.c:357
 #: gnucash/gtkbuilder/dialog-job.glade:102
@@ -2603,19 +2611,19 @@ msgstr "Tutup"
 
 #: gnucash/gnome/dialog-lot-viewer.c:886
 #: gnucash/gtkbuilder/assistant-acct-period.glade:143
-#: gnucash/report/html-fonts.scm:69
-#: gnucash/report/reports/standard/register.scm:376
+#: gnucash/report/html-fonts.scm:93
+#: gnucash/report/reports/standard/register.scm:347
 msgid "Title"
 msgstr "Judul"
 
 #: gnucash/gnome/dialog-lot-viewer.c:893 gnucash/gnome/dialog-lot-viewer.c:985
-#: gnucash/gnome-utils/gnc-tree-view-account.c:831
+#: gnucash/gnome-utils/gnc-tree-view-account.c:854
 #: gnucash/gnome-utils/gnc-tree-view-owner.c:457
 #: gnucash/gnome-utils/gnc-tree-view-owner.c:465
 #: gnucash/gnome-utils/gnc-tree-view-split-reg.c:3112
 #: gnucash/register/ledger-core/split-register-model.c:320
 #: gnucash/register/ledger-core/split-register-model.c:484
-#: gnucash/report/reports/standard/account-summary.scm:421
+#: gnucash/report/reports/standard/account-summary.scm:422
 #: gnucash/report/reports/standard/balance-forecast.scm:248
 #: gnucash/report/reports/standard/job-report.scm:206
 #: gnucash/report/reports/standard/new-owner-report.scm:58
@@ -2627,12 +2635,12 @@ msgstr "Saldo"
 
 #: gnucash/gnome/dialog-lot-viewer.c:899
 msgid "Gains"
-msgstr "Laba"
+msgstr "Keuntungan"
 
 #: gnucash/gnome/dialog-lot-viewer.c:979
 #: gnucash/report/reports/example/average-balance.scm:131
 msgid "Gain/Loss"
-msgstr "Laba/Rugi"
+msgstr "Keuntungan/Kerugian"
 
 #: gnucash/gnome/dialog-lot-viewer.c:1043
 #, c-format
@@ -2725,7 +2733,7 @@ msgid ""
 "Please specify the conversion rate."
 msgstr ""
 "Akun transfer dan pos terasosiasi dengan mata uang lain. Silakan menentukan "
-"kurs."
+"nilai tukar."
 
 #: gnucash/gnome/dialog-payment.c:1269 gnucash/gnome/search-owner.c:211
 #: gnucash/gnome-search/dialog-search.c:1068
@@ -2788,7 +2796,7 @@ msgid ""
 "The selected transaction doesn't have splits that can be assigned as a "
 "payment"
 msgstr ""
-"Transaksi yang dipilih tidak memiliki pemecahan yang bisa ditetapkan sebagai "
+"Transaksi yang dipilih tidak memiliki split yang bisa ditetapkan sebagai "
 "pembayaran"
 
 #: gnucash/gnome/dialog-payment.c:1589
@@ -2798,8 +2806,8 @@ msgid ""
 "Please select one, the others will be ignored.\n"
 "\n"
 msgstr ""
-"Meskipun transaksi ini memiliki beberapa pemecahan yang bisa dianggap\n"
-"sebagai 'pemecahan pembayaran', gnucash hanya bisa menangani satu saja.\n"
+"Meskipun transaksi ini memiliki beberapa split yang bisa dianggap\n"
+"sebagai 'split pembayaran', gnucash hanya bisa menangani satu saja.\n"
 "Silakan memilih satu, dan yang lain akan diabaikan.\n"
 "\n"
 
@@ -2829,12 +2837,12 @@ msgid ""
 "%s\n"
 "Do you wish to continue and ignore these splits ?"
 msgstr ""
-"Transaksi ini memiliki setidaknya satu pemecahan di dalam sebuah akun bisnis "
+"Transaksi ini memiliki setidaknya satu split di dalam sebuah akun bisnis "
 "yang bukan menjadi bagian dari sebuah transaksi bisnis.\n"
-"Jika Anda melanjutkan, pemecahan berikut akan diabaikan:\n"
+"Jika Anda melanjutkan, split berikut akan diabaikan:\n"
 "\n"
 "%s\n"
-"Apakah Anda ingin melanjutkan dan mengabaikan pemecahan tersebut?"
+"Apakah Anda ingin melanjutkan dan mengabaikan split tersebut?"
 
 #. Translators: %d is the number of prices. This is a ngettext(3) message.
 #: gnucash/gnome/dialog-price-edit-db.c:193
@@ -2937,13 +2945,13 @@ msgstr "user"
 #: gnucash/gtkbuilder/dialog-print-check.glade:293
 #: gnucash/gtkbuilder/gnc-date-format.glade:30
 msgid "Custom"
-msgstr "Kustom"
+msgstr "Suai"
 
 #: gnucash/gnome/dialog-print-check.c:2602
-#: gnucash/gtkbuilder/dialog-preferences.glade:3314
+#: gnucash/gtkbuilder/dialog-preferences.glade:3431
 #: gnucash/gtkbuilder/dialog-print-check.glade:264
 msgid "Top"
-msgstr "Puncak"
+msgstr "Atas"
 
 #: gnucash/gnome/dialog-progress.c:484 gnucash/gnome/dialog-progress.c:533
 msgid "(paused)"
@@ -2972,23 +2980,23 @@ msgstr "Baris"
 msgid "Cols"
 msgstr "Kolom"
 
-#: gnucash/gnome/dialog-report-style-sheet.c:171
+#: gnucash/gnome/dialog-report-style-sheet.c:172
 #, c-format
 msgid "HTML Style Sheet Properties: %s"
 msgstr "Properti Lembar Gaya HTML: %s"
 
-#: gnucash/gnome/dialog-report-style-sheet.c:265
+#: gnucash/gnome/dialog-report-style-sheet.c:269
 msgid "You must provide a name for the new style sheet."
 msgstr "Anda harus memasukkan nama untuk lembar gaya yang baru."
 
-#: gnucash/gnome/dialog-report-style-sheet.c:516
+#: gnucash/gnome/dialog-report-style-sheet.c:520
 msgid "Style Sheet Name"
 msgstr "Nama Lembar Gaya"
 
 #: gnucash/gnome/dialog-sx-editor2.c:164 gnucash/gnome/dialog-sx-editor.c:167
 #: gnucash/gnome/gnc-plugin-page-sx-list.c:150
 #: gnucash/gnome/window-reconcile2.c:2161 gnucash/gnome/window-reconcile.c:2382
-#: gnucash/gnome-utils/gnc-main-window.c:270
+#: gnucash/gnome-utils/gnc-main-window.c:273
 #: gnucash/gtkbuilder/dialog-billterms.glade:677
 #: gnucash/gtkbuilder/dialog-commodities.glade:155
 #: gnucash/gtkbuilder/dialog-price.glade:872
@@ -3004,12 +3012,12 @@ msgid "_Transaction"
 msgstr "_Transaksi"
 
 #: gnucash/gnome/dialog-sx-editor2.c:166 gnucash/gnome/dialog-sx-editor.c:169
-#: gnucash/gnome-utils/gnc-main-window.c:271
+#: gnucash/gnome-utils/gnc-main-window.c:274
 msgid "_View"
 msgstr "_Lihat"
 
 #: gnucash/gnome/dialog-sx-editor2.c:167 gnucash/gnome/dialog-sx-editor.c:170
-#: gnucash/gnome-utils/gnc-main-window.c:272
+#: gnucash/gnome-utils/gnc-main-window.c:275
 msgid "_Actions"
 msgstr "_Aksi"
 
@@ -3022,12 +3030,12 @@ msgstr ""
 #: gnucash/gnome/dialog-sx-editor2.c:635
 #, c-format
 msgid "Couldn't parse credit formula for split \"%s\"."
-msgstr ""
+msgstr "Tak dapat mengurai rumus kredit untuk split \"%s\"."
 
 #: gnucash/gnome/dialog-sx-editor2.c:657
 #, c-format
 msgid "Couldn't parse debit formula for split \"%s\"."
-msgstr ""
+msgstr "Tak dapat mengurai rumus debit untuk split \"%s\"."
 
 #: gnucash/gnome/dialog-sx-editor2.c:690 gnucash/gnome/dialog-sx-editor.c:874
 #: gnucash/gnome/dialog-sx-from-trans.c:261
@@ -3035,6 +3043,8 @@ msgid ""
 "The Scheduled Transaction Editor cannot automatically balance this "
 "transaction. Should it still be entered?"
 msgstr ""
+"Penyunting Transaksi Terjadwal tak dapat menyeimbangkan transaksi ini secara "
+"otomatis. Apakah Anda tetap ingin memasukannya?"
 
 #: gnucash/gnome/dialog-sx-editor2.c:711 gnucash/gnome/dialog-sx-editor.c:493
 msgid "Please name the Scheduled Transaction."
@@ -3064,11 +3074,11 @@ msgstr ""
 
 #: gnucash/gnome/dialog-sx-editor2.c:791 gnucash/gnome/dialog-sx-editor.c:543
 msgid "Please provide a valid end selection."
-msgstr ""
+msgstr "Silakan memberikan pilihan akhir yang valid."
 
 #: gnucash/gnome/dialog-sx-editor2.c:809 gnucash/gnome/dialog-sx-editor.c:558
 msgid "There must be some number of occurrences."
-msgstr ""
+msgstr "Harus ada sejumlah pengulangan."
 
 #: gnucash/gnome/dialog-sx-editor2.c:818 gnucash/gnome/dialog-sx-editor.c:566
 #, c-format
@@ -3124,30 +3134,30 @@ msgstr ""
 #: gnucash/gnome/dialog-sx-editor.c:676
 #, c-format
 msgid "Couldn't parse %s for split \"%s\"."
-msgstr "Tak dapat mengurai %s untuk pemecahan \"%s\"."
+msgstr "Tak dapat mengurai %s untuk split \"%s\"."
 
 #: gnucash/gnome/dialog-sx-editor.c:739
 #, c-format
 msgid "Split with memo %s has an invalid account."
-msgstr "Pemecahan dengan memo %s memiliki akun yang tidak valid."
+msgstr "Split dengan memo %s memiliki akun yang tidak valid."
 
 #: gnucash/gnome/dialog-sx-editor.c:742
 msgid "Invalid Account in Split"
-msgstr "Tak valid"
+msgstr "Akun Tak Valid di Split"
 
 #: gnucash/gnome/dialog-sx-editor.c:754
 #, c-format
 msgid "Split with memo %s has an unparseable Credit Formula."
-msgstr "Pemecahan dengan memo %s memiliki Rumus Kredit yang tak dapat diurai."
+msgstr "Split dengan memo %s memiliki Rumus Kredit yang tak dapat diurai."
 
 #: gnucash/gnome/dialog-sx-editor.c:757 gnucash/gnome/dialog-sx-editor.c:773
 msgid "Unparsable Formula in Split"
-msgstr "Rumus yang tak dapat diurai pada Pemecahan"
+msgstr "Rumus yang Tak Dapat Diurai di Split"
 
 #: gnucash/gnome/dialog-sx-editor.c:770
 #, c-format
 msgid "Split with memo %s has an unparseable Debit Formula."
-msgstr "Pemecahan dengan memo %s memiliki Rumus Debit yang tak dapat diurai."
+msgstr "Split dengan memo %s memiliki Rumus Debit yang tak dapat diurai."
 
 #: gnucash/gnome/dialog-sx-from-trans.c:557
 msgid ""
@@ -3162,6 +3172,8 @@ msgid ""
 "Cannot create a Scheduled Transaction from a Transaction currently being "
 "edited. Please Enter the Transaction before Scheduling."
 msgstr ""
+"Tak dapat membuat Transaksi Terjadwal dari Transaksi yang sedang disunting. "
+"Silakan masukkan Transaksi sebelum menjadwalkan."
 
 #: gnucash/gnome/dialog-sx-since-last-run.c:401
 msgid "Ignored"
@@ -3185,7 +3197,7 @@ msgid "Created"
 msgstr "Dibuat"
 
 #: gnucash/gnome/dialog-sx-since-last-run.c:468
-#: gnucash/gtkbuilder/dialog-preferences.glade:1590
+#: gnucash/gtkbuilder/dialog-preferences.glade:1707
 #: gnucash/report/reports/standard/balsheet-pnl.scm:241
 #: gnucash/report/trep-engine.scm:577
 msgid "Never"
@@ -3220,7 +3232,7 @@ msgid "Transaction"
 msgstr "Transaksi"
 
 #: gnucash/gnome/dialog-sx-since-last-run.c:1021
-#: gnucash/gtkbuilder/gnc-plugin-page-register2.glade:617
+#: gnucash/gtkbuilder/gnc-plugin-page-register2.glade:664
 #: gnucash/gtkbuilder/gnc-plugin-page-register.glade:508
 msgid "Status"
 msgstr "Status"
@@ -3235,10 +3247,10 @@ msgstr "Tahun Valid Terakhir: "
 
 #: gnucash/gnome/dialog-tax-info.c:290
 msgid "Form Line Data: "
-msgstr ""
+msgstr "Data Baris Formulir: "
 
 #: gnucash/gnome/dialog-tax-info.c:291
-#: gnucash/report/reports/standard/account-summary.scm:406
+#: gnucash/report/reports/standard/account-summary.scm:407
 msgid "Code"
 msgstr "Kode"
 
@@ -3334,17 +3346,17 @@ msgstr "Cari Vendor"
 #: gnucash/report/reports/standard/balsheet-pnl.scm:1264
 #: gnucash/report/reports/standard/net-charts.scm:350
 #: gnucash/report/reports/standard/net-charts.scm:420
-#: gnucash/report/report-utilities.scm:110 libgnucash/engine/Account.cpp:170
-#: libgnucash/engine/Account.cpp:4322 libgnucash/engine/Scrub.c:449
+#: gnucash/report/report-utilities.scm:122 libgnucash/engine/Account.cpp:171
+#: libgnucash/engine/Account.cpp:4369 libgnucash/engine/Scrub.c:464
 msgid "Income"
 msgstr "Pendapatan"
 
 #: gnucash/gnome/gnc-budget-view.c:502
 #: gnucash/import-export/qif-imp/qif-dialog-utils.scm:80
 #: gnucash/import-export/qif-imp/qif-dialog-utils.scm:85
-#: gnucash/report/reports/standard/budget-income-statement.scm:520
+#: gnucash/report/reports/standard/budget-income-statement.scm:521
 #: gnucash/report/reports/standard/income-statement.scm:512
-#: gnucash/report/report-utilities.scm:111
+#: gnucash/report/report-utilities.scm:123
 msgid "Expenses"
 msgstr "Pengeluaran"
 
@@ -3365,7 +3377,7 @@ msgstr "Tersisa ke Anggaran"
 
 #: gnucash/gnome/gnc-budget-view.c:1652 gnucash/gnome/window-reconcile2.c:1069
 #: gnucash/gnome/window-reconcile.c:1122
-#: gnucash/gnome-utils/gnc-tree-view-account.c:900
+#: gnucash/gnome-utils/gnc-tree-view-account.c:923
 #: gnucash/report/html-acct-table.scm:793 gnucash/report/reports/aging.scm:543
 #: gnucash/report/reports/aging.scm:830
 #: gnucash/report/reports/locale-specific/de_DE/taxtxf.scm:294
@@ -3373,8 +3385,8 @@ msgstr "Tersisa ke Anggaran"
 #: gnucash/report/reports/standard/budget-flow.scm:168
 #: gnucash/report/reports/standard/budget-flow.scm:247
 #: gnucash/report/reports/standard/budget.scm:511
-#: gnucash/report/reports/standard/customer-summary.scm:476
 #: gnucash/report/reports/standard/customer-summary.scm:478
+#: gnucash/report/reports/standard/customer-summary.scm:480
 #: gnucash/report/reports/standard/invoice.scm:104
 #: gnucash/report/reports/standard/invoice.scm:252
 #: gnucash/report/reports/standard/new-aging.scm:200
@@ -3412,7 +3424,7 @@ msgstr "Buka berkas GnuCash yang sudah ada"
 
 #: gnucash/gnome/gnc-plugin-basic-commands.c:121
 #: gnucash/gnome-utils/gnc-file.c:100 gnucash/gnome-utils/gnc-file.c:666
-#: gnucash/gnome-utils/gnc-main-window.c:1294
+#: gnucash/gnome-utils/gnc-main-window.c:1308
 #: gnucash/html/gnc-html-webkit1.c:1198
 msgid "_Save"
 msgstr "_Simpan"
@@ -3445,7 +3457,7 @@ msgstr "Ekspor _Akun"
 
 #: gnucash/gnome/gnc-plugin-basic-commands.c:138
 msgid "Export the account hierarchy to a new GnuCash datafile"
-msgstr "Ekspor hirarki akun ke berkas data GnuCash yang baru"
+msgstr "Ekspor hierarki akun ke berkas data GnuCash yang baru"
 
 #: gnucash/gnome/gnc-plugin-basic-commands.c:145
 #: gnucash/gnome/gnc-plugin-page-register2.c:255
@@ -3477,8 +3489,7 @@ msgstr "Opsi Laporan Pa_jak"
 #: gnucash/gnome/gnc-plugin-page-register2.c:268
 #: gnucash/gnome/gnc-plugin-page-register.c:377
 msgid "Setup relevant accounts for tax reports, e.g. US income tax"
-msgstr ""
-"Siapkan akun yang bersangkutan untuk laporan pajak, misal pajak pendapatan"
+msgstr "Siapkan akun yang relevan untuk laporan pajak, misal pajak pendapatan"
 
 #: gnucash/gnome/gnc-plugin-basic-commands.c:164
 msgid "_Scheduled Transactions"
@@ -3502,11 +3513,11 @@ msgstr "Buat Transaksi Terjadwal sejak dijalankan terakhir"
 
 #: gnucash/gnome/gnc-plugin-basic-commands.c:176
 msgid "_Mortgage & Loan Repayment..."
-msgstr "Pe_mbayaran Cicilan Hipotek & Pinjaman..."
+msgstr "Angsuran Hipotek & Pinja_man..."
 
 #: gnucash/gnome/gnc-plugin-basic-commands.c:177
 msgid "Setup scheduled transactions for repayment of a loan"
-msgstr "Siapkan transaksi terjadwal untuk pembayaran cicilan pinjaman"
+msgstr "Siapkan transaksi terjadwal untuk pembayaran angsuran pinjaman"
 
 #: gnucash/gnome/gnc-plugin-basic-commands.c:180
 #: gnucash/report/report-core.scm:71
@@ -3555,7 +3566,7 @@ msgstr "Tutup Buku pada akhir Periode"
 
 #: gnucash/gnome/gnc-plugin-basic-commands.c:211
 msgid "_Import Map Editor"
-msgstr "_Impor Penyunting Peta"
+msgstr "Penyunting Peta _Impor"
 
 #: gnucash/gnome/gnc-plugin-basic-commands.c:212
 msgid "View and Delete Bayesian and Non Bayesian information"
@@ -3640,8 +3651,9 @@ msgstr "Pilih Anggaran"
 
 #: gnucash/gnome/gnc-plugin-budget.c:290
 #: gnucash/gnome-search/search-account.c:238
-#: gnucash/gnome-utils/dialog-account.c:680
+#: gnucash/gnome-utils/dialog-account.c:723
 #: gnucash/gnome-utils/gnc-gui-query.c:297
+#: gnucash/gnome-utils/gnc-main-window.c:1449
 #: gnucash/gtkbuilder/assistant-xml-encoding.glade:217
 #: gnucash/gtkbuilder/dialog-account.glade:35
 #: gnucash/gtkbuilder/dialog-account.glade:832
@@ -3664,7 +3676,7 @@ msgstr "Pilih Anggaran"
 #: gnucash/gtkbuilder/dialog-import.glade:61
 #: gnucash/gtkbuilder/dialog-import.glade:191
 #: gnucash/gtkbuilder/dialog-import.glade:349
-#: gnucash/gtkbuilder/dialog-import.glade:1034
+#: gnucash/gtkbuilder/dialog-import.glade:1050
 #: gnucash/gtkbuilder/dialog-invoice.glade:691
 #: gnucash/gtkbuilder/dialog-invoice.glade:1214
 #: gnucash/gtkbuilder/dialog-job.glade:57
@@ -3693,12 +3705,12 @@ msgstr "Pilih Anggaran"
 #: gnucash/gtkbuilder/gnc-plugin-page-budget.glade:451
 #: gnucash/gtkbuilder/gnc-plugin-page-budget.glade:897
 #: gnucash/gtkbuilder/gnc-plugin-page-register2.glade:45
-#: gnucash/gtkbuilder/gnc-plugin-page-register2.glade:199
-#: gnucash/gtkbuilder/gnc-plugin-page-register2.glade:706
+#: gnucash/gtkbuilder/gnc-plugin-page-register2.glade:246
+#: gnucash/gtkbuilder/gnc-plugin-page-register2.glade:753
 #: gnucash/gtkbuilder/gnc-plugin-page-register.glade:46
-#: gnucash/gtkbuilder/gnc-plugin-page-register.glade:603
-#: gnucash/gtkbuilder/gnc-plugin-page-register.glade:949
-#: gnucash/gtkbuilder/gnc-plugin-page-register.glade:1159
+#: gnucash/gtkbuilder/gnc-plugin-page-register.glade:597
+#: gnucash/gtkbuilder/gnc-plugin-page-register.glade:802
+#: gnucash/gtkbuilder/gnc-plugin-page-register.glade:1143
 #: gnucash/gtkbuilder/gnc-tree-view-owner.glade:39
 #: gnucash/gtkbuilder/window-autoclear.glade:38
 #: gnucash/gtkbuilder/window-reconcile.glade:36
@@ -3890,9 +3902,8 @@ msgid "Open the Find Expense Voucher dialog"
 msgstr "Buka dialog Cari Voucer Pengeluaran"
 
 #: gnucash/gnome/gnc-plugin-business.c:278
-#, fuzzy
 msgid "Business Linked Documents"
-msgstr "_Tertaut"
+msgstr "Dokumen Tertaut Bisnis"
 
 #: gnucash/gnome/gnc-plugin-business.c:279
 msgid "View all Linked Business Documents"
@@ -3972,7 +3983,7 @@ msgstr "Buat sebuah Akun baru"
 
 #: gnucash/gnome/gnc-plugin-page-account-tree.c:203
 msgid "New Account _Hierarchy..."
-msgstr "_Hirarki Akun Baru..."
+msgstr "_Hierarki Akun Baru..."
 
 #: gnucash/gnome/gnc-plugin-page-account-tree.c:204
 msgid "Extend the current book by merging with new account type categories"
@@ -4043,11 +4054,11 @@ msgstr "Hapus akun yang dipilih"
 
 #: gnucash/gnome/gnc-plugin-page-account-tree.c:257
 msgid "_Cascade Account Properties..."
-msgstr ""
+msgstr "_Buat Properti Akun Bertingkat..."
 
 #: gnucash/gnome/gnc-plugin-page-account-tree.c:258
 msgid "Cascade selected properties for account"
-msgstr ""
+msgstr "Jadikan bertingkat properti yang dipilih untuk akun"
 
 #: gnucash/gnome/gnc-plugin-page-account-tree.c:262
 #: gnucash/gnome/gnc-plugin-page-account-tree.c:267
@@ -4076,7 +4087,7 @@ msgstr "Nomori ulang anak dari akun terpilih"
 #: gnucash/gnome/gnc-plugin-page-owner-tree.c:185
 #: gnucash/gnome/gnc-plugin-page-register2.c:340
 #: gnucash/gnome/gnc-plugin-page-register.c:458
-#: gnucash/gnome-utils/gnc-main-window.c:342
+#: gnucash/gnome-utils/gnc-main-window.c:345
 msgid "_Filter By..."
 msgstr "_Filter Berdasar..."
 
@@ -4086,9 +4097,9 @@ msgstr "_Filter Berdasar..."
 #: gnucash/gnome/gnc-plugin-page-owner-tree.c:189
 #: gnucash/gnome/gnc-plugin-page-register2.c:344
 #: gnucash/gnome/gnc-plugin-page-register.c:462
-#: gnucash/gnome/gnc-plugin-page-report.c:1182
+#: gnucash/gnome/gnc-plugin-page-report.c:1226
 #: gnucash/gnome/gnc-plugin-page-sx-list.c:169
-#: gnucash/gnome-utils/gnc-main-window.c:346
+#: gnucash/gnome-utils/gnc-main-window.c:349
 msgid "_Refresh"
 msgstr "Sega_rkan"
 
@@ -4097,9 +4108,9 @@ msgstr "Sega_rkan"
 #: gnucash/gnome/gnc-plugin-page-owner-tree.c:190
 #: gnucash/gnome/gnc-plugin-page-register2.c:345
 #: gnucash/gnome/gnc-plugin-page-register.c:463
-#: gnucash/gnome/gnc-plugin-page-report.c:1183
+#: gnucash/gnome/gnc-plugin-page-report.c:1227
 #: gnucash/gnome/gnc-plugin-page-sx-list.c:170
-#: gnucash/gnome-utils/gnc-main-window.c:347
+#: gnucash/gnome-utils/gnc-main-window.c:350
 msgid "Refresh this window"
 msgstr "Segarkan jendela ini"
 
@@ -4119,11 +4130,13 @@ msgstr "Rekonsiliasi akun yang dipilih"
 #: gnucash/gnome/gnc-plugin-page-register2.c:362
 #: gnucash/gnome/gnc-plugin-page-register.c:480
 msgid "_Auto-clear..."
-msgstr "Bersihk_an Otomatis..."
+msgstr "Klir-otom_atis..."
 
 #: gnucash/gnome/gnc-plugin-page-account-tree.c:307
 msgid "Automatically clear individual transactions, given a cleared amount"
 msgstr ""
+"Klirkan secara otomatis transaksi-transaksi individual, dengan memberikan "
+"jumlah kliring"
 
 #: gnucash/gnome/gnc-plugin-page-account-tree.c:311
 #: gnucash/gnome/gnc-plugin-page-register2.c:352
@@ -4143,13 +4156,13 @@ msgstr "Transfer dana dari satu akun ke akun yang lain"
 #: gnucash/gnome/gnc-plugin-page-register2.c:367
 #: gnucash/gnome/gnc-plugin-page-register.c:485
 msgid "Stoc_k Split..."
-msgstr "Pe_cah Saham..."
+msgstr "Spli_t Saham..."
 
 #: gnucash/gnome/gnc-plugin-page-account-tree.c:317
 #: gnucash/gnome/gnc-plugin-page-register2.c:368
 #: gnucash/gnome/gnc-plugin-page-register.c:486
 msgid "Record a stock split or a stock merger"
-msgstr "Catat pecah saham atau gabung saham"
+msgstr "Catat split saham atau gabung saham"
 
 #: gnucash/gnome/gnc-plugin-page-account-tree.c:321
 #: gnucash/gnome/gnc-plugin-page-register2.c:372
@@ -4173,6 +4186,8 @@ msgid ""
 "Check for and repair unbalanced transactions and orphan splits in this "
 "account"
 msgstr ""
+"Memeriksa dan memperbaiki transaksi tak seimbang dan split terlantar pada "
+"akun ini"
 
 #: gnucash/gnome/gnc-plugin-page-account-tree.c:331
 msgid "Check & Repair Su_baccounts"
@@ -4183,6 +4198,8 @@ msgid ""
 "Check for and repair unbalanced transactions and orphan splits in this "
 "account and its subaccounts"
 msgstr ""
+"Memeriksa dan memperbaiki transaksi tak seimbang dan split terlantar pada "
+"akun ini dan sub-akun"
 
 #: gnucash/gnome/gnc-plugin-page-account-tree.c:337
 msgid "Check & Repair A_ll"
@@ -4193,6 +4210,8 @@ msgid ""
 "Check for and repair unbalanced transactions and orphan splits in all "
 "accounts"
 msgstr ""
+"Memeriksa dan memperbaiki transaksi tak-seimbang dan split terlantar pada "
+"semua akun"
 
 #: gnucash/gnome/gnc-plugin-page-account-tree.c:342
 #: gnucash/gnome/gnc-plugin-register2.c:64
@@ -4226,20 +4245,24 @@ msgstr "Baru"
 msgid "Delete"
 msgstr "Hapus"
 
-#: gnucash/gnome/gnc-plugin-page-account-tree.c:440
-#: gnucash/gnome/gnc-plugin-page-register.c:1934
+#: gnucash/gnome/gnc-plugin-page-account-tree.c:454
+#: gnucash/gnome/gnc-plugin-page-account-tree.c:2001
+#: gnucash/gnome/gnc-plugin-page-register.c:1939
+#: gnucash/gnome/gnc-plugin-page-register.c:5022
 msgid "'Check & Repair' is currently running, do you want to abort it?"
 msgstr ""
+"'Periksa & Perbaiki' saat ini sedang berjalan, apakah Anda ingin "
+"membatalkannya?"
 
-#: gnucash/gnome/gnc-plugin-page-account-tree.c:498
-#: gnucash/gnome/gnc-plugin-page-account-tree.c:504
+#: gnucash/gnome/gnc-plugin-page-account-tree.c:520
+#: gnucash/gnome/gnc-plugin-page-account-tree.c:526
 #: gnucash/gnome-utils/gnc-tree-view-split-reg.c:2829
 #: gnucash/gnome-utils/gnc-tree-view-split-reg.c:2831
 #: gnucash/gnome-utils/gnc-tree-view-split-reg.c:2833
 #: gnucash/gnome-utils/gnc-tree-view-split-reg.c:2835
 #: gnucash/gnome-utils/gnc-tree-view-split-reg.c:2846
 #: gnucash/gnome-utils/gnc-tree-view-split-reg.c:2850
-#: gnucash/gtkbuilder/dialog-preferences.glade:863
+#: gnucash/gtkbuilder/dialog-preferences.glade:980
 #: gnucash/report/report-core.scm:78
 #: gnucash/report/reports/example/average-balance.scm:92
 #: gnucash/report/reports/example/average-balance.scm:296
@@ -4265,7 +4288,7 @@ msgstr ""
 msgid "Accounts"
 msgstr "Akun"
 
-#: gnucash/gnome/gnc-plugin-page-account-tree.c:1407
+#: gnucash/gnome/gnc-plugin-page-account-tree.c:1429
 #, c-format
 msgid ""
 "Account %s does not have the same currency as the one you're moving "
@@ -4276,26 +4299,26 @@ msgstr ""
 "transaksinya.\n"
 "Apakah Anda yakin akan melakukan ini?"
 
-#: gnucash/gnome/gnc-plugin-page-account-tree.c:1415
+#: gnucash/gnome/gnc-plugin-page-account-tree.c:1437
 msgid "_Pick another account"
 msgstr "_Pilih akun lain"
 
-#: gnucash/gnome/gnc-plugin-page-account-tree.c:1416
+#: gnucash/gnome/gnc-plugin-page-account-tree.c:1438
 msgid "_Do it anyway"
 msgstr "_Lakukan saja"
 
-#: gnucash/gnome/gnc-plugin-page-account-tree.c:1499
-#: gnucash/gnome/gnc-plugin-page-account-tree.c:1635
+#: gnucash/gnome/gnc-plugin-page-account-tree.c:1521
+#: gnucash/gnome/gnc-plugin-page-account-tree.c:1657
 #: gnucash/gnome/gnc-plugin-page-owner-tree.c:1094
 msgid "(no name)"
 msgstr "(tak ada nama)"
 
-#: gnucash/gnome/gnc-plugin-page-account-tree.c:1510
+#: gnucash/gnome/gnc-plugin-page-account-tree.c:1532
 #, c-format
 msgid "Deleting account %s"
 msgstr "Menghapus akun %s"
 
-#: gnucash/gnome/gnc-plugin-page-account-tree.c:1625
+#: gnucash/gnome/gnc-plugin-page-account-tree.c:1647
 msgid ""
 "The list below shows objects which make use of the account which you want to "
 "delete.\n"
@@ -4309,42 +4332,42 @@ msgstr ""
 "memodifikasinya sehingga objek\n"
 "menggunakan akun yang lain"
 
-#: gnucash/gnome/gnc-plugin-page-account-tree.c:1704
+#: gnucash/gnome/gnc-plugin-page-account-tree.c:1738
 #, c-format
 msgid "The account %s will be deleted."
 msgstr "Akun %s akan dihapus."
 
-#: gnucash/gnome/gnc-plugin-page-account-tree.c:1713
+#: gnucash/gnome/gnc-plugin-page-account-tree.c:1747
 #, c-format
 msgid "All transactions in this account will be moved to the account %s."
 msgstr "Seluruh transaksi pada akun ini akan dipindahkan ke akun %s."
 
-#: gnucash/gnome/gnc-plugin-page-account-tree.c:1720
+#: gnucash/gnome/gnc-plugin-page-account-tree.c:1754
 #, c-format
 msgid "All transactions in this account will be deleted."
 msgstr "Seluruh transaksi pada akun ini akan dihapus."
 
-#: gnucash/gnome/gnc-plugin-page-account-tree.c:1729
+#: gnucash/gnome/gnc-plugin-page-account-tree.c:1763
 #, c-format
 msgid "Its sub-account will be moved to the account %s."
 msgstr "Sub-akunnya akan dipindahkan ke akun %s."
 
-#: gnucash/gnome/gnc-plugin-page-account-tree.c:1735
+#: gnucash/gnome/gnc-plugin-page-account-tree.c:1769
 #, c-format
 msgid "Its subaccount will be deleted."
 msgstr "Sub-akunnya akan dihapus."
 
-#: gnucash/gnome/gnc-plugin-page-account-tree.c:1739
+#: gnucash/gnome/gnc-plugin-page-account-tree.c:1773
 #, c-format
 msgid "All sub-account transactions will be moved to the account %s."
 msgstr "Seluruh transaksi sub-akun akan dipindahkan ke akun %s."
 
-#: gnucash/gnome/gnc-plugin-page-account-tree.c:1746
+#: gnucash/gnome/gnc-plugin-page-account-tree.c:1780
 #, c-format
 msgid "All sub-account transactions will be deleted."
 msgstr "Seluruh transaksi sub-akun akan dihapus."
 
-#: gnucash/gnome/gnc-plugin-page-account-tree.c:1752
+#: gnucash/gnome/gnc-plugin-page-account-tree.c:1786
 msgid "Are you sure you want to do this?"
 msgstr "Anda yakin ingin melakukan ini?"
 
@@ -4408,7 +4431,7 @@ msgid "Refresh this window."
 msgstr "Segarkan jendela ini."
 
 #: gnucash/gnome/gnc-plugin-page-budget.c:210
-#: gnucash/gnome/gnc-plugin-page-report.c:1088
+#: gnucash/gnome/gnc-plugin-page-report.c:1132
 #: gnucash/gtkbuilder/assistant-csv-export.glade:107
 #: gnucash/gtkbuilder/dialog-print-check.glade:643
 msgid "Options"
@@ -4478,8 +4501,8 @@ msgstr "Salin"
 #: gnucash/gnome/gnc-plugin-page-invoice.c:135
 #: gnucash/gnome/gnc-plugin-page-register2.c:240
 #: gnucash/gnome/gnc-plugin-page-register.c:349
-#: gnucash/gnome/gnc-plugin-page-report.c:1177
-#: gnucash/gnome-utils/gnc-main-window.c:325
+#: gnucash/gnome/gnc-plugin-page-report.c:1221
+#: gnucash/gnome-utils/gnc-main-window.c:328
 msgid "_Paste"
 msgstr "Tem_pel"
 
@@ -4537,16 +4560,16 @@ msgstr "_Standar"
 
 #: gnucash/gnome/gnc-plugin-page-invoice.c:247
 msgid "Keep normal invoice order"
-msgstr ""
+msgstr "Pertahankan pesanan faktur normal"
 
 #: gnucash/gnome/gnc-plugin-page-invoice.c:248
 #: gnucash/gtkbuilder/assistant-stock-split.glade:123
-#: gnucash/gtkbuilder/dialog-account.glade:1744
+#: gnucash/gtkbuilder/dialog-account.glade:1761
 #: gnucash/gtkbuilder/dialog-price.glade:175
 #: gnucash/gtkbuilder/dialog-print-check.glade:701
-#: gnucash/gtkbuilder/gnc-plugin-page-register2.glade:79
-#: gnucash/gtkbuilder/gnc-plugin-page-register.glade:662
-#: gnucash/gtkbuilder/gnc-plugin-page-register.glade:985
+#: gnucash/gtkbuilder/gnc-plugin-page-register2.glade:94
+#: gnucash/gtkbuilder/gnc-plugin-page-register.glade:647
+#: gnucash/gtkbuilder/gnc-plugin-page-register.glade:861
 msgid "_Date"
 msgstr "Ta_nggal"
 
@@ -4555,7 +4578,7 @@ msgid "Sort by date"
 msgstr "Urut berdasarkan tanggal"
 
 #: gnucash/gnome/gnc-plugin-page-invoice.c:249
-#: gnucash/gtkbuilder/gnc-plugin-page-register.glade:681
+#: gnucash/gtkbuilder/gnc-plugin-page-register.glade:880
 msgid "Date of _Entry"
 msgstr "Tanggal _Entri"
 
@@ -4585,7 +4608,7 @@ msgid "Sort by price"
 msgstr "Urut berdasarkan harga"
 
 #: gnucash/gnome/gnc-plugin-page-invoice.c:252
-#: gnucash/gtkbuilder/gnc-plugin-page-register.glade:776
+#: gnucash/gtkbuilder/gnc-plugin-page-register.glade:975
 msgid "Descri_ption"
 msgstr "Deskri_psi"
 
@@ -4645,11 +4668,11 @@ msgstr "Buka D_okumen Tertaut"
 
 #: gnucash/gnome/gnc-plugin-page-invoice.c:310
 msgid "_Use as Default Layout for Customer Documents"
-msgstr "_Gunakan Sebagai Tata Letak untuk Dokumen Pelanggan"
+msgstr "G_unakan Sebagai Tata Letak Baku untuk Dokumen Pelanggan"
 
 #: gnucash/gnome/gnc-plugin-page-invoice.c:311
 msgid "_Reset Default Layout for Customer Documents"
-msgstr "_Setel Ulang Tata Letak Bawaan untuk Dokumen Pelanggan"
+msgstr "_Setel Ulang Tata Letak Baku untuk Dokumen Pelanggan"
 
 #: gnucash/gnome/gnc-plugin-page-invoice.c:317
 msgid "_Print Bill"
@@ -4681,11 +4704,11 @@ msgstr "_Bayar Tagihan"
 
 #: gnucash/gnome/gnc-plugin-page-invoice.c:331
 msgid "_Use as Default Layout for Vendor Documents"
-msgstr "_Gunakan Sebagai Tata Letak Bawaan untuk Dokumen Vendor"
+msgstr "G_unakan Sebagai Tata Letak Baku untuk Dokumen Vendor"
 
 #: gnucash/gnome/gnc-plugin-page-invoice.c:332
 msgid "_Reset Default Layout for Vendor Documents"
-msgstr "_Setel Ulang Tata Letak Bawaan untuk Dokumen Vendor"
+msgstr "_Setel Ulang Tata Letak Baku untuk Dokumen Vendor"
 
 #: gnucash/gnome/gnc-plugin-page-invoice.c:338
 msgid "_Print Voucher"
@@ -4717,11 +4740,11 @@ msgstr "_Bayar Voucer"
 
 #: gnucash/gnome/gnc-plugin-page-invoice.c:352
 msgid "_Use as Default Layout for Employee Documents"
-msgstr "_Gunakan Sebagai Tata Letak Bawaan untuk Dokumen Pegawai"
+msgstr "G_unakan Sebagai Tata Letak Baku untuk Dokumen Pegawai"
 
 #: gnucash/gnome/gnc-plugin-page-invoice.c:353
 msgid "_Reset Default Layout for Employee Documents"
-msgstr "_Setel Ulang Tata Letak Bawaan untuk Dokumen Pegawai"
+msgstr "_Setel Ulang Tata Letak Baku untuk Dokumen Pegawai"
 
 #: gnucash/gnome/gnc-plugin-page-invoice.c:359
 msgid "_Print Credit Note"
@@ -4799,16 +4822,16 @@ msgstr "Buka Dokumen Tertaut"
 msgid ""
 "Use the current layout as default for all customer invoices and credit notes"
 msgstr ""
-"Gunakan tata letak saat ini sebagai bawaan untuk semua faktur pelanggan dan "
-"nota kredit"
+"Gunakan tata letak saat ini sebagai tata letak baku untuk semua faktur "
+"pelanggan dan nota kredit"
 
 #: gnucash/gnome/gnc-plugin-page-invoice.c:389
 msgid ""
 "Reset default layout for all customer invoices and credit notes back to "
 "built-in defaults and update the current page accordingly"
 msgstr ""
-"Setel ulang tata letak bawaan untuk semua faktur pelanggan dan nota kredit "
-"ke bawaan asal dan perbarui halaman saat ini"
+"Setel ulang tata letak baku untuk semua faktur pelanggan dan nota kredit ke "
+"tata letak bawaan dan perbarui halaman saat ini"
 
 #: gnucash/gnome/gnc-plugin-page-invoice.c:394
 msgid "Make a printable bill"
@@ -4849,16 +4872,16 @@ msgstr "Buka jendela laporan perusahaan untuk pemilik tagihan ini"
 #: gnucash/gnome/gnc-plugin-page-invoice.c:409
 msgid "Use the current layout as default for all vendor bills and credit notes"
 msgstr ""
-"Gunakan tata letak saat ini sebagai bawaan untuk semua tagihan vendor dan "
-"nota kredit"
+"Gunakan tata letak saat ini sebagai tata letak baku untuk semua tagihan "
+"vendor dan nota kredit"
 
 #: gnucash/gnome/gnc-plugin-page-invoice.c:410
 msgid ""
 "Reset default layout for all vendor bills and credit notes back to built-in "
 "defaults and update the current page accordingly"
 msgstr ""
-"Setel ulang tata letak bawaan untuk semua tagihan vendor dan nota kredit ke "
-"bawaan asal dan perbarui halaman saat ini"
+"Setel ulang tata letak baku untuk semua tagihan vendor dan nota kredit ke "
+"tata letak bawaan dan perbarui halaman saat ini"
 
 #: gnucash/gnome/gnc-plugin-page-invoice.c:415
 msgid "Make a printable voucher"
@@ -4900,16 +4923,16 @@ msgstr "Buka jendela laporan perusahaan untuk pemilik voucer ini"
 msgid ""
 "Use the current layout as default for all employee vouchers and credit notes"
 msgstr ""
-"Gunakan tata letak saat ini sebagai bawaan untuk semua voucer pegawai dan "
-"nota kredit"
+"Gunakan tata letak saat ini sebagai tata letak baku untuk semua voucer "
+"pegawai dan nota kredit"
 
 #: gnucash/gnome/gnc-plugin-page-invoice.c:431
 msgid ""
 "Reset default layout for all employee vouchers and credit notes back to "
 "built-in defaults and update the current page accordingly"
 msgstr ""
-"Setel ulang tata letak bawaan untuk semua voucer pegawai dan nota kredit ke "
-"bawaan asal dan perbarui halaman saat ini"
+"Setel ulang tata letak baku untuk semua voucer pegawai dan nota kredit ke "
+"tata letak bawaan dan perbarui halaman saat ini"
 
 #: gnucash/gnome/gnc-plugin-page-invoice.c:436
 msgid "Make a printable credit note"
@@ -4948,10 +4971,8 @@ msgid "Open a company report window for the owner of this credit note"
 msgstr "Buka jendela laporan perusahaan untuk pemilik nota kredit ini"
 
 #: gnucash/gnome/gnc-plugin-page-invoice.c:445
-#, fuzzy
-#| msgid "_Manage Document Link..."
 msgid "Manage Document Link..."
-msgstr "_Kelola Taut Dokumen..."
+msgstr "Kelola Taut Dokumen..."
 
 #: gnucash/gnome/gnc-plugin-page-invoice.c:452
 #: gnucash/gnome/gnc-plugin-page-register2.c:498
@@ -5156,29 +5177,29 @@ msgstr "_Hapus Transaksi"
 #: gnucash/gnome/gnc-plugin-page-register2.c:199
 #: gnucash/gnome/gnc-plugin-page-register.c:308
 msgid "Cu_t Split"
-msgstr "Po_tong Pemecahan"
+msgstr "Po_tong Split"
 
 #: gnucash/gnome/gnc-plugin-page-register2.c:200
 #: gnucash/gnome/gnc-plugin-page-register.c:309
 msgid "_Copy Split"
-msgstr "_Salin Pemecahan"
+msgstr "_Salin Split"
 
 #: gnucash/gnome/gnc-plugin-page-register2.c:201
 #: gnucash/gnome/gnc-plugin-page-register.c:310
 msgid "_Paste Split"
-msgstr "Tem_pel Pemecahan"
+msgstr "Tem_pel Split"
 
 #: gnucash/gnome/gnc-plugin-page-register2.c:202
 #: gnucash/gnome/gnc-plugin-page-register.c:311
 msgid "Dup_licate Split"
-msgstr "_Gandakan Pemecahan"
+msgstr "_Gandakan Split"
 
 #: 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 "_Hapus Pemecahan"
+msgstr "_Hapus Split"
 
 #: gnucash/gnome/gnc-plugin-page-register2.c:204
 #: gnucash/gnome/gnc-plugin-page-register.c:313
@@ -5208,27 +5229,27 @@ msgstr "Hapus transaksi saat ini"
 #: gnucash/gnome/gnc-plugin-page-register2.c:209
 #: gnucash/gnome/gnc-plugin-page-register.c:321
 msgid "Cut the selected split into clipboard"
-msgstr "Potong pemecahan yang dipilih ke papan klip"
+msgstr "Potong split yang dipilih ke papan klip"
 
 #: gnucash/gnome/gnc-plugin-page-register2.c:210
 #: gnucash/gnome/gnc-plugin-page-register.c:322
 msgid "Copy the selected split into clipboard"
-msgstr "Salin pemecahan yang dipilih ke papan klip"
+msgstr "Salin split yang dipilih ke papan klip"
 
 #: gnucash/gnome/gnc-plugin-page-register2.c:211
 #: gnucash/gnome/gnc-plugin-page-register.c:323
 msgid "Paste the split from the clipboard"
-msgstr "Tempel pemecahan dari papan klip"
+msgstr "Tempel split dari papan klip"
 
 #: gnucash/gnome/gnc-plugin-page-register2.c:212
 #: gnucash/gnome/gnc-plugin-page-register.c:324
 msgid "Make a copy of the current split"
-msgstr "Buat sebuah salinan untuk pemecahan saat ini"
+msgstr "Buat sebuah salinan untuk split saat ini"
 
 #: gnucash/gnome/gnc-plugin-page-register2.c:213
 #: gnucash/gnome/gnc-plugin-page-register.c:325
 msgid "Delete the current split"
-msgstr "Hapus pemecahan saat ini"
+msgstr "Hapus split saat ini"
 
 #: gnucash/gnome/gnc-plugin-page-register2.c:223
 #: gnucash/gnome/gnc-plugin-page-register.c:332
@@ -5237,47 +5258,47 @@ msgstr "_Cetak Cek..."
 
 #: gnucash/gnome/gnc-plugin-page-register2.c:230
 #: gnucash/gnome/gnc-plugin-page-register.c:339
-#: gnucash/gnome/gnc-plugin-page-report.c:1167
-#: gnucash/gnome-utils/gnc-main-window.c:315
+#: gnucash/gnome/gnc-plugin-page-report.c:1211
+#: gnucash/gnome-utils/gnc-main-window.c:318
 msgid "Cu_t"
 msgstr "Po_tong"
 
 #: gnucash/gnome/gnc-plugin-page-register2.c:231
 #: gnucash/gnome/gnc-plugin-page-register.c:340
-#: gnucash/gnome/gnc-plugin-page-report.c:1168
-#: gnucash/gnome-utils/gnc-main-window.c:316
+#: gnucash/gnome/gnc-plugin-page-report.c:1212
+#: gnucash/gnome-utils/gnc-main-window.c:319
 msgid "Cut the current selection and copy it to clipboard"
 msgstr "Potong pilihan saat ini dan salin ke papan klip"
 
 #: gnucash/gnome/gnc-plugin-page-register2.c:235
 #: gnucash/gnome/gnc-plugin-page-register.c:344
-#: gnucash/gnome/gnc-plugin-page-report.c:1172
-#: gnucash/gnome-utils/gnc-main-window.c:320
+#: gnucash/gnome/gnc-plugin-page-report.c:1216
+#: gnucash/gnome-utils/gnc-main-window.c:323
 msgid "_Copy"
 msgstr "_Salin"
 
 #: gnucash/gnome/gnc-plugin-page-register2.c:236
 #: gnucash/gnome/gnc-plugin-page-register.c:345
-#: gnucash/gnome/gnc-plugin-page-report.c:1173
-#: gnucash/gnome-utils/gnc-main-window.c:321
+#: gnucash/gnome/gnc-plugin-page-report.c:1217
+#: gnucash/gnome-utils/gnc-main-window.c:324
 msgid "Copy the current selection to clipboard"
 msgstr "Salin pilihan saat ini ke papan klip"
 
 #: gnucash/gnome/gnc-plugin-page-register2.c:241
 #: gnucash/gnome/gnc-plugin-page-register.c:350
-#: gnucash/gnome/gnc-plugin-page-report.c:1178
-#: gnucash/gnome-utils/gnc-main-window.c:326
+#: gnucash/gnome/gnc-plugin-page-report.c:1222
+#: gnucash/gnome-utils/gnc-main-window.c:329
 msgid "Paste the clipboard content at the cursor position"
 msgstr "Tempel isi papan klip pada posisi kursor"
 
 #: gnucash/gnome/gnc-plugin-page-register2.c:300
 msgid "Remo_ve All Splits"
-msgstr "B_uang Semua Pemecahan"
+msgstr "B_uang Semua Split"
 
 #: gnucash/gnome/gnc-plugin-page-register2.c:301
 #: gnucash/gnome/gnc-plugin-page-register.c:410
 msgid "Remove all splits in the current transaction"
-msgstr "Buang semua pemecahan pada transaksi saat ini"
+msgstr "Buang semua split pada transaksi saat ini"
 
 #: gnucash/gnome/gnc-plugin-page-register2.c:305
 #: gnucash/gnome/gnc-plugin-page-register.c:414
@@ -5347,8 +5368,8 @@ msgid ""
 "Automatically clear individual transactions, so as to reach a certain "
 "cleared amount"
 msgstr ""
-"Bersihkan transaksi invididual secara otomatis, sehingga mencapai sejumlah "
-"nilai terselesaikan"
+"Klirkan secara otomatis transaksi-transaksi invididual, untuk mencapai "
+"sejumlah nilai kliring"
 
 #: gnucash/gnome/gnc-plugin-page-register2.c:377
 #: gnucash/gnome/gnc-plugin-page-register.c:495
@@ -5363,12 +5384,12 @@ msgstr "Pindah ke transaksi kosong di bagian bawah register"
 #: gnucash/gnome/gnc-plugin-page-register2.c:382
 #: gnucash/gnome/gnc-plugin-page-register.c:505
 msgid "Edit E_xchange Rate"
-msgstr "Sunting K_urs"
+msgstr "Sunting Nilai _Tukar"
 
 #: gnucash/gnome/gnc-plugin-page-register2.c:383
 #: gnucash/gnome/gnc-plugin-page-register.c:506
 msgid "Edit the exchange rate for the current transaction"
-msgstr "Sunting kurs untuk transaksi saat ini"
+msgstr "Sunting nilai tukar untuk transaksi saat ini"
 
 #. Translators: This is a menu item that will open a register tab for the
 #. account of the first other account in the current transaction's split list
@@ -5453,12 +5474,12 @@ msgstr "Tampilkan tanggal dimasukkan dan direkonsiliasi"
 #: gnucash/gnome/gnc-plugin-page-register2.c:436
 #: gnucash/gnome/gnc-plugin-page-register.c:559
 msgid "S_plit Transaction"
-msgstr "_Pecah Transaksi"
+msgstr "S_plit Transaksi"
 
 #: gnucash/gnome/gnc-plugin-page-register2.c:437
 #: gnucash/gnome/gnc-plugin-page-register.c:560
 msgid "Show all splits in the current transaction"
-msgstr "Tampilkan semua pemecahan pada transaksi saat ini"
+msgstr "Tampilkan semua split pada transaksi saat ini"
 
 #: gnucash/gnome/gnc-plugin-page-register2.c:448
 #: gnucash/gnome/gnc-plugin-page-register.c:571
@@ -5473,31 +5494,31 @@ msgstr "Tampilkan transaksi dalam satu atau dua baris"
 #: gnucash/gnome/gnc-plugin-page-register2.c:453
 #: gnucash/gnome/gnc-plugin-page-register.c:576
 msgid "_Auto-Split Ledger"
-msgstr "Otom_atis Pecah Buku Besar"
+msgstr "Buku Bes_ar Split-Otomatis"
 
 #: gnucash/gnome/gnc-plugin-page-register2.c:454
 #: gnucash/gnome/gnc-plugin-page-register.c:577
 msgid ""
 "Show transactions on one or two lines and expand the current transaction"
 msgstr ""
-"Tampilkan transaksi pada satu atau dua baris dan perluas transaksi saat ini"
+"Tampilkan transaksi pada satu atau dua baris dan ekspansi transaksi saat ini"
 
 #: gnucash/gnome/gnc-plugin-page-register2.c:458
 #: gnucash/gnome/gnc-plugin-page-register.c:581
-#: gnucash/gtkbuilder/dialog-preferences.glade:2657
+#: gnucash/gtkbuilder/dialog-preferences.glade:2774
 msgid "Transaction _Journal"
 msgstr "_Jurnal Transaksi"
 
 #: gnucash/gnome/gnc-plugin-page-register2.c:459
 #: gnucash/gnome/gnc-plugin-page-register.c:582
 msgid "Show expanded transactions with all splits"
-msgstr "Tampilkan transaksi diperluas dengan semua pemecahan"
+msgstr "Tampilkan transaksi diekspansi dengan semua split"
 
 #: gnucash/gnome/gnc-plugin-page-register2.c:502
 #: gnucash/gnome/gnc-plugin-page-register.c:625
 #: gnucash/gnome-search/dialog-search.c:1096
 msgid "Split"
-msgstr "Pecah"
+msgstr "Split"
 
 #: gnucash/gnome/gnc-plugin-page-register2.c:503
 #: gnucash/gnome/gnc-plugin-page-register.c:626
@@ -5511,9 +5532,9 @@ msgstr "Jadwal"
 
 #: gnucash/gnome/gnc-plugin-page-register2.c:507
 #: gnucash/gnome/gnc-plugin-page-register.c:630
-#: gnucash/gnome/window-autoclear.c:91
+#: gnucash/gnome/window-autoclear.c:88
 msgid "Auto-clear"
-msgstr "Bersihkan Otomatis"
+msgstr "Klir-otomatis"
 
 #: gnucash/gnome/gnc-plugin-page-register2.c:681
 msgid ""
@@ -5530,13 +5551,13 @@ msgstr "Jurnal2 Umum"
 #. Translators: %s is the name
 #. of the tab page
 #: gnucash/gnome/gnc-plugin-page-register2.c:1620
-#: gnucash/gnome/gnc-plugin-page-register.c:1974
+#: gnucash/gnome/gnc-plugin-page-register.c:1980
 #, c-format
 msgid "Save changes to %s?"
 msgstr "Simpan perubahan ke %s?"
 
 #: gnucash/gnome/gnc-plugin-page-register2.c:1624
-#: gnucash/gnome/gnc-plugin-page-register.c:1978
+#: gnucash/gnome/gnc-plugin-page-register.c:1984
 msgid ""
 "This register has pending changes to a transaction. Would you like to save "
 "the changes to this transaction, discard the transaction, or cancel the "
@@ -5547,12 +5568,12 @@ msgstr ""
 "atau membatalkan operasi?"
 
 #: gnucash/gnome/gnc-plugin-page-register2.c:1627
-#: gnucash/gnome/gnc-plugin-page-register.c:1981
+#: gnucash/gnome/gnc-plugin-page-register.c:1987
 msgid "_Discard Transaction"
 msgstr "_Abaikan Transaksi"
 
 #: gnucash/gnome/gnc-plugin-page-register2.c:1631
-#: gnucash/gnome/gnc-plugin-page-register.c:1985
+#: gnucash/gnome/gnc-plugin-page-register.c:1991
 msgid "_Save Transaction"
 msgstr "_Simpan Transaksi"
 
@@ -5561,35 +5582,35 @@ msgstr "_Simpan Transaksi"
 #: gnucash/gnome/gnc-plugin-page-register2.c:1707
 #: gnucash/gnome/gnc-plugin-page-register2.c:1730
 #: gnucash/gnome/gnc-plugin-page-register2.c:1778
-#: gnucash/gnome/gnc-plugin-page-register.c:2018
-#: gnucash/gnome/gnc-plugin-page-register.c:2053
-#: gnucash/gnome/gnc-plugin-page-register.c:2066
-#: gnucash/gnome/gnc-plugin-page-register.c:2129
-#: gnucash/gnome/gnc-plugin-page-register.c:2234
-#: gnucash/gnome/gnc-plugin-page-register.c:2372
+#: gnucash/gnome/gnc-plugin-page-register.c:2024
+#: gnucash/gnome/gnc-plugin-page-register.c:2059
+#: gnucash/gnome/gnc-plugin-page-register.c:2072
+#: gnucash/gnome/gnc-plugin-page-register.c:2135
+#: gnucash/gnome/gnc-plugin-page-register.c:2240
+#: gnucash/gnome/gnc-plugin-page-register.c:2378
 msgid "unknown"
 msgstr "tak diketahui"
 
 #: gnucash/gnome/gnc-plugin-page-register2.c:1681
 #: gnucash/gnome/gnc-plugin-page-register2.c:2416
 #: gnucash/gnome/gnc-plugin-page-register.c:906
-#: gnucash/gnome/gnc-plugin-page-register.c:2039
-#: gnucash/gnome/gnc-plugin-page-register.c:3511
+#: gnucash/gnome/gnc-plugin-page-register.c:2045
+#: gnucash/gnome/gnc-plugin-page-register.c:3517
 #: gnucash/report/reports/standard/general-journal.scm:36
 msgid "General Journal"
 msgstr "Jurnal Umum"
 
 #: gnucash/gnome/gnc-plugin-page-register2.c:1683
 #: gnucash/gnome/gnc-plugin-page-register2.c:2422
-#: gnucash/gnome/gnc-plugin-page-register.c:2041
-#: gnucash/gnome/gnc-plugin-page-register.c:3517
+#: gnucash/gnome/gnc-plugin-page-register.c:2047
+#: gnucash/gnome/gnc-plugin-page-register.c:3523
 msgid "Portfolio"
 msgstr "Portofolio"
 
 #: gnucash/gnome/gnc-plugin-page-register2.c:1685
 #: gnucash/gnome/gnc-plugin-page-register2.c:2428
-#: gnucash/gnome/gnc-plugin-page-register.c:2043
-#: gnucash/gnome/gnc-plugin-page-register.c:3523
+#: gnucash/gnome/gnc-plugin-page-register.c:2049
+#: gnucash/gnome/gnc-plugin-page-register.c:3529
 msgid "Search Results"
 msgstr "Hasil Pencarian"
 
@@ -5598,35 +5619,35 @@ msgid "General Journal Report"
 msgstr "Laporan Jurnal Umum"
 
 #: gnucash/gnome/gnc-plugin-page-register2.c:2424
-#: gnucash/gnome/gnc-plugin-page-register.c:3519
+#: gnucash/gnome/gnc-plugin-page-register.c:3525
 msgid "Portfolio Report"
 msgstr "Laporan Portofolio"
 
 #: gnucash/gnome/gnc-plugin-page-register2.c:2430
-#: gnucash/gnome/gnc-plugin-page-register.c:3525
+#: gnucash/gnome/gnc-plugin-page-register.c:3531
 msgid "Search Results Report"
 msgstr "Laporan Hasil Pencarian"
 
 #: gnucash/gnome/gnc-plugin-page-register2.c:2434
-#: gnucash/gnome/gnc-plugin-page-register.c:3529
-#: gnucash/gtkbuilder/dialog-preferences.glade:2567
+#: gnucash/gnome/gnc-plugin-page-register.c:3535
+#: gnucash/gtkbuilder/dialog-preferences.glade:2684
 #: gnucash/report/reports/standard/general-journal.scm:37
 #: gnucash/report/reports/standard/register.scm:64
 msgid "Register"
 msgstr "Register"
 
 #: gnucash/gnome/gnc-plugin-page-register2.c:2436
-#: gnucash/report/reports/standard/register.scm:378
+#: gnucash/report/reports/standard/register.scm:349
 msgid "Register Report"
 msgstr "Laporan Register"
 
 #: gnucash/gnome/gnc-plugin-page-register2.c:2452
-#: gnucash/gnome/gnc-plugin-page-register.c:3547
+#: gnucash/gnome/gnc-plugin-page-register.c:3553
 msgid "and subaccounts"
 msgstr "dan sub-akun"
 
 #: gnucash/gnome/gnc-plugin-page-register2.c:2484
-#: gnucash/gnome/gnc-plugin-page-register.c:3576
+#: gnucash/gnome/gnc-plugin-page-register.c:3582
 #: gnucash/gnome-utils/gnc-tree-model-split-reg.c:2874
 #: gnucash/gnome-utils/gnc-tree-model-split-reg.c:2893
 #: gnucash/gnome-utils/gnc-tree-model-split-reg.c:2911
@@ -5638,64 +5659,64 @@ msgstr "dan sub-akun"
 #: gnucash/register/ledger-core/split-register.c:2658
 #: gnucash/register/ledger-core/split-register.c:2676
 #: gnucash/report/reports/standard/general-journal.scm:83
-#: gnucash/report/reports/standard/register.scm:372
-#: gnucash/report/reports/standard/trial-balance.scm:595
+#: gnucash/report/reports/standard/register.scm:343
+#: gnucash/report/reports/standard/trial-balance.scm:596
 #: gnucash/report/trep-engine.scm:1357 gnucash/report/trep-engine.scm:1374
-#: libgnucash/engine/Account.cpp:177
+#: libgnucash/engine/Account.cpp:178
 msgid "Credit"
 msgstr "Kredit"
 
 #: gnucash/gnome/gnc-plugin-page-register2.c:2487
-#: gnucash/gnome/gnc-plugin-page-register.c:3580
+#: gnucash/gnome/gnc-plugin-page-register.c:3586
 #: gnucash/gnome-utils/gnc-tree-view-split-reg.c:3099
 #: gnucash/gnome-utils/gnc-tree-view-split-reg.c:3104
 #: gnucash/gtkbuilder/dialog-payment.glade:296
 #: gnucash/register/ledger-core/split-register.c:2521
 #: gnucash/report/reports/standard/general-journal.scm:82
-#: gnucash/report/reports/standard/register.scm:370
-#: gnucash/report/reports/standard/trial-balance.scm:592
+#: gnucash/report/reports/standard/register.scm:341
+#: gnucash/report/reports/standard/trial-balance.scm:593
 #: gnucash/report/trep-engine.scm:1354 gnucash/report/trep-engine.scm:1371
-#: libgnucash/engine/Account.cpp:157
+#: libgnucash/engine/Account.cpp:158
 msgid "Debit"
 msgstr "Debit"
 
 #: gnucash/gnome/gnc-plugin-page-register2.c:2653
-#: gnucash/gnome/gnc-plugin-page-register.c:3713
+#: gnucash/gnome/gnc-plugin-page-register.c:3719
 msgid "Print checks from multiple accounts?"
 msgstr "Cetak cek dari banyak akun?"
 
 #: gnucash/gnome/gnc-plugin-page-register2.c:2655
-#: gnucash/gnome/gnc-plugin-page-register.c:3715
+#: gnucash/gnome/gnc-plugin-page-register.c:3721
 msgid ""
 "This search result contains splits from more than one account. Do you want "
 "to print the checks even though they are not all from the same account?"
 msgstr ""
-"Hasil pencarian ini berisi pemecahan dari satu atau lebih akun. Apakah Anda "
+"Hasil pencarian ini berisi split dari satu atau lebih akun. Apakah Anda "
 "ingin mencetak cek meskipun bukan dari akun yang sama?"
 
 #: gnucash/gnome/gnc-plugin-page-register2.c:2665
-#: gnucash/gnome/gnc-plugin-page-register.c:3725
+#: gnucash/gnome/gnc-plugin-page-register.c:3731
 msgid "_Print checks"
 msgstr "_Cetak cek"
 
 #: gnucash/gnome/gnc-plugin-page-register2.c:2684
-#: gnucash/gnome/gnc-plugin-page-register.c:3744
+#: gnucash/gnome/gnc-plugin-page-register.c:3750
 msgid ""
 "You can only print checks from a bank account register or search results."
 msgstr ""
 "Anda hanya bisa mencetak cek dari register akun bank atau hasil pencarian."
 
 #: gnucash/gnome/gnc-plugin-page-register2.c:2896
-#: gnucash/gnome/gnc-plugin-page-register.c:3941
+#: gnucash/gnome/gnc-plugin-page-register.c:3947
 msgid "You cannot void a transaction with reconciled or cleared splits."
 msgstr ""
-"Anda tidak bisa membatalkan sebuah transaksi dengan pemecahan yang "
-"direkonsiliasi atau diselesaikan."
+"Anda tidak bisa membatalkan sebuah transaksi dengan split yang "
+"direkonsiliasi atau klir."
 
 #. Translators: The %s is the name of the plugin page
 #: gnucash/gnome/gnc-plugin-page-register2.c:3039
-#: gnucash/gnome/gnc-plugin-page-register.c:4212
-#: gnucash/gnome-utils/gnc-tree-view-account.c:2296
+#: gnucash/gnome/gnc-plugin-page-register.c:4218
+#: gnucash/gnome-utils/gnc-tree-view-account.c:2327
 #: gnucash/gnome-utils/gnc-tree-view-owner.c:1175
 #, c-format
 msgid "Filter %s by..."
@@ -5722,10 +5743,10 @@ msgstr "Lompat ke tagihan, faktur, atau voucer tertaut"
 
 #: gnucash/gnome/gnc-plugin-page-register.c:409
 msgid "Remo_ve Other Splits"
-msgstr "Buan_g Pemecahan Lain"
+msgstr "Buan_g Split Lain"
 
 #: gnucash/gnome/gnc-plugin-page-register.c:454
-#: gnucash/gnome-utils/gnc-main-window.c:338
+#: gnucash/gnome-utils/gnc-main-window.c:341
 msgid "_Sort By..."
 msgstr "_Urutkan Berdasar..."
 
@@ -5734,10 +5755,8 @@ msgid "_Go to Date"
 msgstr "Per_gi ke Tanggal"
 
 #: gnucash/gnome/gnc-plugin-page-register.c:501
-#, fuzzy
-#| msgid "Move to the blank entry at the bottom of the credit note"
 msgid "Move to the split at the specified date"
-msgstr "Pindah ke entri kosong di bagian bawah nota kredit"
+msgstr "Pindahkan ke split pada tanggal yang ditentukan"
 
 #: gnucash/gnome/gnc-plugin-page-register.c:828
 msgid ""
@@ -5747,93 +5766,93 @@ msgstr ""
 "Anda telah mencoba membuka sebuah akun di register lama ketika sedang dibuka "
 "di register baru."
 
-#: gnucash/gnome/gnc-plugin-page-register.c:3378
+#: gnucash/gnome/gnc-plugin-page-register.c:3384
 msgid "Filter By:"
 msgstr "Filter Berdasar:"
 
-#: gnucash/gnome/gnc-plugin-page-register.c:3392
+#: gnucash/gnome/gnc-plugin-page-register.c:3398
 msgid "Start Date:"
 msgstr "Tanggal Mulai:"
 
-#: gnucash/gnome/gnc-plugin-page-register.c:3398
+#: gnucash/gnome/gnc-plugin-page-register.c:3404
 msgid "Show previous number of days:"
 msgstr "Tampilkan jumlah hari sebelumnya:"
 
-#: gnucash/gnome/gnc-plugin-page-register.c:3405
+#: gnucash/gnome/gnc-plugin-page-register.c:3411
 msgid "End Date:"
 msgstr "Tanggal Akhir:"
 
-#: gnucash/gnome/gnc-plugin-page-register.c:3415
+#: gnucash/gnome/gnc-plugin-page-register.c:3421
 #: gnucash/report/trep-engine.scm:124 gnucash/report/trep-engine.scm:398
 msgid "Unreconciled"
 msgstr "Tak-direkonsiliasi"
 
-#: gnucash/gnome/gnc-plugin-page-register.c:3417
+#: gnucash/gnome/gnc-plugin-page-register.c:3423
 #: gnucash/gnome-search/search-reconciled.c:218
-#: gnucash/gnome-utils/gnc-tree-view-account.c:852
+#: gnucash/gnome-utils/gnc-tree-view-account.c:875
 #: gnucash/report/trep-engine.scm:125 gnucash/report/trep-engine.scm:403
 msgid "Cleared"
-msgstr "Selesai"
+msgstr "Klir"
 
-#: gnucash/gnome/gnc-plugin-page-register.c:3419
+#: gnucash/gnome/gnc-plugin-page-register.c:3425
 #: gnucash/gnome-search/search-reconciled.c:221
-#: gnucash/gnome-utils/gnc-tree-view-account.c:866
+#: gnucash/gnome-utils/gnc-tree-view-account.c:889
 #: gnucash/import-export/csv-imp/gnc-imp-props-tx.cpp:70
 #: gnucash/import-export/import-match-picker.c:437
 #: gnucash/report/trep-engine.scm:126 gnucash/report/trep-engine.scm:408
 msgid "Reconciled"
 msgstr "Direkonsiliasi"
 
-#: gnucash/gnome/gnc-plugin-page-register.c:3421
+#: gnucash/gnome/gnc-plugin-page-register.c:3427
 #: gnucash/gnome-search/search-reconciled.c:224
 #: gnucash/report/trep-engine.scm:127
 msgid "Frozen"
 msgstr "Dibekukan"
 
-#: gnucash/gnome/gnc-plugin-page-register.c:3423
+#: gnucash/gnome/gnc-plugin-page-register.c:3429
 #: gnucash/gnome-search/search-reconciled.c:227
 #: gnucash/report/trep-engine.scm:128
 msgid "Voided"
 msgstr "Dibatalkan"
 
-#: gnucash/gnome/gnc-plugin-page-register.c:3427
-#: gnucash/gnome/gnc-plugin-page-register.c:3429
+#: gnucash/gnome/gnc-plugin-page-register.c:3433
+#: gnucash/gnome/gnc-plugin-page-register.c:3435
 msgid "Hide:"
 msgstr "Sembunyikan:"
 
-#: gnucash/gnome/gnc-plugin-page-register.c:3429
+#: gnucash/gnome/gnc-plugin-page-register.c:3435
 msgid "Show:"
 msgstr "Tampilkan:"
 
-#: gnucash/gnome/gnc-plugin-page-register.c:3513
-#: gnucash/gnome/gnc-plugin-page-register.c:3531
+#: gnucash/gnome/gnc-plugin-page-register.c:3519
+#: gnucash/gnome/gnc-plugin-page-register.c:3537
 #: gnucash/report/reports/standard/transaction.scm:33
 msgid "Transaction Report"
 msgstr "Laporan Transaksi"
 
-#: gnucash/gnome/gnc-plugin-page-register.c:3948
+#: gnucash/gnome/gnc-plugin-page-register.c:3954
 #: gnucash/gnome/gnc-split-reg.c:1160
 #: gnucash/gnome-utils/gnc-tree-control-split-reg.c:68
 #, c-format
 msgid "This transaction is marked read-only with the comment: '%s'"
 msgstr "Transaksi ini ditandai hanya-baca dengan komentar: '%s'"
 
-#: gnucash/gnome/gnc-plugin-page-register.c:4028
+#: gnucash/gnome/gnc-plugin-page-register.c:4034
 #: gnucash/gnome/gnc-split-reg.c:1131
 #: gnucash/gnome-utils/gnc-tree-control-split-reg.c:1121
 msgid "A reversing entry has already been created for this transaction."
 msgstr "Entri balik telah dibuat untuk transaksi ini."
 
-#: gnucash/gnome/gnc-plugin-page-register.c:4035
+#: gnucash/gnome/gnc-plugin-page-register.c:4041
 msgid "Reverse Transaction"
 msgstr "Transaksi Terbalik"
 
-#: gnucash/gnome/gnc-plugin-page-register.c:4036
+#: gnucash/gnome/gnc-plugin-page-register.c:4042
 msgid "New Transaction Information"
 msgstr "Informasi Transaksi Baru"
 
 #. Translators: The %s is the name of the plugin page
-#: gnucash/gnome/gnc-plugin-page-register.c:4124
+#: gnucash/gnome/gnc-plugin-page-register.c:4130
 #, c-format
 msgid "Sort %s by..."
 msgstr "Urutkan %s berdasar..."
@@ -5841,45 +5860,45 @@ msgstr "Urutkan %s berdasar..."
 #. Translators: %s refer to the following in
 #. order: invoice type, invoice ID, owner name,
 #. posted date, amount
-#: gnucash/gnome/gnc-plugin-page-register.c:4702
+#: gnucash/gnome/gnc-plugin-page-register.c:4708
 #, c-format
 msgid "%s %s from %s, posted %s, amount %s"
 msgstr "%s %s dari %s, dipos %s, jumlah %s"
 
-#: gnucash/gnome/gnc-plugin-page-register.c:4711
+#: gnucash/gnome/gnc-plugin-page-register.c:4717
 msgid "Select document"
 msgstr "Pilih dokumen"
 
-#: gnucash/gnome/gnc-plugin-page-register.c:4712
+#: gnucash/gnome/gnc-plugin-page-register.c:4718
 msgid "Several documents are linked with this transaction. Please choose one:"
 msgstr ""
 "Beberapa dokumen tertaut dengan transaksi ini. Silakan pilih salah satu:"
 
-#: gnucash/gnome/gnc-plugin-page-register.c:4713
+#: gnucash/gnome/gnc-plugin-page-register.c:4719
 #: gnucash/gnome-search/dialog-search.c:323
 #: gnucash/gnome-utils/gnc-cell-renderer-date.c:172
 msgid "Select"
 msgstr "Pilih"
 
-#: gnucash/gnome/gnc-plugin-page-register.c:4761
+#: gnucash/gnome/gnc-plugin-page-register.c:4767
 msgid "Go to Date"
 msgstr "Pergi ke Tanggal"
 
-#: gnucash/gnome/gnc-plugin-page-register.c:5016
+#: gnucash/gnome/gnc-plugin-page-register.c:5045
 #, c-format
 msgid "Checking splits in current register: %u of %u"
-msgstr "Memeriksa pemecahan di register saat ini: %u dari %u"
+msgstr "Memeriksa split di register saat ini: %u dari %u"
 
-#: gnucash/gnome/gnc-plugin-page-report.c:287
-#: gnucash/gnome/gnc-plugin-page-report.c:288
+#: gnucash/gnome/gnc-plugin-page-report.c:300
+#: gnucash/gnome/gnc-plugin-page-report.c:301
 msgid "The numeric ID of the report."
 msgstr "Nomor ID laporan."
 
-#: gnucash/gnome/gnc-plugin-page-report.c:1086
+#: gnucash/gnome/gnc-plugin-page-report.c:1130
 msgid "Print"
 msgstr "Cetak"
 
-#: gnucash/gnome/gnc-plugin-page-report.c:1087
+#: gnucash/gnome/gnc-plugin-page-report.c:1131
 #: gnucash/gnome-utils/dialog-file-access.c:319
 #: gnucash/gnome-utils/gnc-file.c:109 gnucash/gnome-utils/gnc-file.c:351
 msgid "Export"
@@ -5887,21 +5906,21 @@ msgstr "Ekspor"
 
 #. Translators: This string is meant to be a short alternative for "Save Report Configuration"
 #. * to be used as toolbar button label.
-#: gnucash/gnome/gnc-plugin-page-report.c:1091
+#: gnucash/gnome/gnc-plugin-page-report.c:1135
 msgid "Save Config"
 msgstr "Simpan Konfigurasi"
 
 #. Translators: This string is meant to be a short alternative for "Save Report Configuration As..."
 #. * to be used as toolbar button label.
-#: gnucash/gnome/gnc-plugin-page-report.c:1094
+#: gnucash/gnome/gnc-plugin-page-report.c:1138
 msgid "Save Config As..."
 msgstr "Simpan Konfigurasi Sebagai..."
 
-#: gnucash/gnome/gnc-plugin-page-report.c:1095
+#: gnucash/gnome/gnc-plugin-page-report.c:1139
 msgid "Make Pdf"
 msgstr "Buat PDF"
 
-#: gnucash/gnome/gnc-plugin-page-report.c:1147
+#: gnucash/gnome/gnc-plugin-page-report.c:1191
 #, c-format
 msgid ""
 "Update the current report's saved configuration. The report configuration "
@@ -5910,7 +5929,7 @@ msgstr ""
 "Perbarui konfigurasi tersimpan untuk laporan saat ini. Konfigurasi laporan "
 "akan disimpan pada berkas %s. "
 
-#: gnucash/gnome/gnc-plugin-page-report.c:1150
+#: gnucash/gnome/gnc-plugin-page-report.c:1194
 #, c-format
 msgid ""
 "Add the current report's configuration to the `Reports->Saved Report "
@@ -5919,98 +5938,98 @@ msgstr ""
 "Tambahkan konfigurasi laporan saat ini ke menu `Laporan->Konfigurasi Laporan "
 "Tersimpan'. Konfigurasi laporan akan disimpan pada berkas %s. "
 
-#: gnucash/gnome/gnc-plugin-page-report.c:1156
+#: gnucash/gnome/gnc-plugin-page-report.c:1200
 msgid "_Print Report..."
 msgstr "_Cetak Laporan..."
 
-#: gnucash/gnome/gnc-plugin-page-report.c:1157
+#: gnucash/gnome/gnc-plugin-page-report.c:1201
 msgid "Print the current report"
 msgstr "Cetak laporan saat ini"
 
-#: gnucash/gnome/gnc-plugin-page-report.c:1161
+#: gnucash/gnome/gnc-plugin-page-report.c:1205
 msgid "Export as P_DF..."
 msgstr "Ekspor sebagai P_DF..."
 
-#: gnucash/gnome/gnc-plugin-page-report.c:1162
+#: gnucash/gnome/gnc-plugin-page-report.c:1206
 msgid "Export the current report as a PDF document"
 msgstr "Ekspor laporan saat ini sebagai dokumen PDF"
 
-#: gnucash/gnome/gnc-plugin-page-report.c:1187
+#: gnucash/gnome/gnc-plugin-page-report.c:1231
 msgid "Save _Report Configuration"
 msgstr "Simpan Konfigurasi Lapo_ran"
 
-#: gnucash/gnome/gnc-plugin-page-report.c:1191
+#: gnucash/gnome/gnc-plugin-page-report.c:1235
 msgid "Save Report Configuration As..."
 msgstr "Simpan Konfigurasi Laporan Sebagai..."
 
-#: gnucash/gnome/gnc-plugin-page-report.c:1195
+#: gnucash/gnome/gnc-plugin-page-report.c:1239
 msgid "Export _Report"
 msgstr "Ekspor Lapo_ran"
 
-#: gnucash/gnome/gnc-plugin-page-report.c:1196
+#: gnucash/gnome/gnc-plugin-page-report.c:1240
 msgid "Export HTML-formatted report to file"
 msgstr "Ekspor laporan berformat HTML ke suatu berkas"
 
-#: gnucash/gnome/gnc-plugin-page-report.c:1200
+#: gnucash/gnome/gnc-plugin-page-report.c:1244
 msgid "_Report Options"
 msgstr "Opsi Lapo_ran"
 
-#: gnucash/gnome/gnc-plugin-page-report.c:1201
-#: gnucash/report/html-utilities.scm:252
+#: gnucash/gnome/gnc-plugin-page-report.c:1245
+#: gnucash/report/html-utilities.scm:276
 msgid "Edit report options"
 msgstr "Sunting opsi laporan"
 
-#: gnucash/gnome/gnc-plugin-page-report.c:1206
+#: gnucash/gnome/gnc-plugin-page-report.c:1250
 msgid "Back"
 msgstr "Kembali"
 
-#: gnucash/gnome/gnc-plugin-page-report.c:1207
+#: gnucash/gnome/gnc-plugin-page-report.c:1251
 msgid "Move back one step in the history"
 msgstr "Kembali satu langkah pada riwayat"
 
-#: gnucash/gnome/gnc-plugin-page-report.c:1211
+#: gnucash/gnome/gnc-plugin-page-report.c:1255
 msgid "Forward"
 msgstr "Maju"
 
-#: gnucash/gnome/gnc-plugin-page-report.c:1212
+#: gnucash/gnome/gnc-plugin-page-report.c:1256
 msgid "Move forward one step in the history"
 msgstr "Maju satu langkah pada riwayat"
 
-#: gnucash/gnome/gnc-plugin-page-report.c:1216
+#: gnucash/gnome/gnc-plugin-page-report.c:1260
 msgid "Reload"
 msgstr "Muat Ulang"
 
-#: gnucash/gnome/gnc-plugin-page-report.c:1217
+#: gnucash/gnome/gnc-plugin-page-report.c:1261
 msgid "Reload the current page"
 msgstr "Muat ulang halaman saat ini"
 
-#: gnucash/gnome/gnc-plugin-page-report.c:1221
+#: gnucash/gnome/gnc-plugin-page-report.c:1265
 msgid "Stop"
 msgstr "Berhenti"
 
-#: gnucash/gnome/gnc-plugin-page-report.c:1222
+#: gnucash/gnome/gnc-plugin-page-report.c:1266
 msgid "Cancel outstanding HTML requests"
 msgstr "Batalkan permintaan HTML yang belum diselesaikan"
 
-#: gnucash/gnome/gnc-plugin-page-report.c:1469
-#: gnucash/gnome/gnc-plugin-page-report.c:1502
+#: gnucash/gnome/gnc-plugin-page-report.c:1513
+#: gnucash/gnome/gnc-plugin-page-report.c:1546
 msgid "HTML"
 msgstr "HTML"
 
-#: gnucash/gnome/gnc-plugin-page-report.c:1472
+#: gnucash/gnome/gnc-plugin-page-report.c:1516
 msgid "Choose export format"
 msgstr "Pilih format ekspor"
 
-#: gnucash/gnome/gnc-plugin-page-report.c:1473
+#: gnucash/gnome/gnc-plugin-page-report.c:1517
 msgid "Choose the export format for this report:"
 msgstr "Pilih format ekspor untuk laporan ini:"
 
-#: gnucash/gnome/gnc-plugin-page-report.c:1513
+#: gnucash/gnome/gnc-plugin-page-report.c:1557
 #, c-format
 msgid "Save %s To File"
 msgstr "Simpan %s Ke Berkas"
 
-#: gnucash/gnome/gnc-plugin-page-report.c:1542
+#: gnucash/gnome/gnc-plugin-page-report.c:1586
 #, c-format
 msgid ""
 "You cannot save to that filename.\n"
@@ -6021,19 +6040,19 @@ msgstr ""
 "\n"
 "%s"
 
-#: gnucash/gnome/gnc-plugin-page-report.c:1552
+#: gnucash/gnome/gnc-plugin-page-report.c:1596
 msgid "You cannot save to that file."
 msgstr "Anda tidak dapat menyimpan ke berkas itu."
 
-#: gnucash/gnome/gnc-plugin-page-report.c:1561
+#: gnucash/gnome/gnc-plugin-page-report.c:1605
 #: gnucash/gnome-utils/gnc-file.c:1300 gnucash/gnome-utils/gnc-file.c:1547
 #: gnucash/import-export/csv-exp/assistant-csv-export.c:741
 #, c-format
 msgid "The file %s already exists. Are you sure you want to overwrite it?"
 msgstr "Berkas %s sudah ada. Anda yakin ingin menimpanya?"
 
-#: gnucash/gnome/gnc-plugin-page-report.c:1676
-#: gnucash/gnome/gnc-plugin-page-report.c:1700 gnucash/gnucash-commands.cpp:224
+#: gnucash/gnome/gnc-plugin-page-report.c:1720
+#: gnucash/gnome/gnc-plugin-page-report.c:1744 gnucash/gnucash-commands.cpp:224
 #: gnucash/gnucash-commands.cpp:252
 msgid ""
 "This report must be upgraded to return a document object with export-string "
@@ -6042,22 +6061,22 @@ msgstr ""
 "Laporan ini harus ditingkatkan untuk mengembalikan sebuah objek dokumen "
 "dengan string-ekspor atau galat-ekspor."
 
-#: gnucash/gnome/gnc-plugin-page-report.c:1710
+#: gnucash/gnome/gnc-plugin-page-report.c:1754
 #, c-format
 msgid "Could not open the file %s. The error is: %s"
 msgstr "Tidak bisa membuka berkas %s. Pesan kesalahannya: %s"
 
-#: gnucash/gnome/gnc-plugin-page-report.c:1750
+#: gnucash/gnome/gnc-plugin-page-report.c:1794
 msgid "GnuCash-Report"
 msgstr "Laporan-GnuCash"
 
-#: gnucash/gnome/gnc-plugin-page-report.c:1796
+#: gnucash/gnome/gnc-plugin-page-report.c:1840
 #: gnucash/gtkbuilder/business-prefs.glade:26
 #: gnucash/report/reports/standard/invoice.scm:903
 msgid "Printable Invoice"
 msgstr "Faktur yang Bisa Dicetak"
 
-#: gnucash/gnome/gnc-plugin-page-report.c:1797
+#: gnucash/gnome/gnc-plugin-page-report.c:1841
 #: gnucash/gtkbuilder/business-prefs.glade:29
 #: gnucash/report/reports/standard/taxinvoice.scm:295
 #: gnucash/report/reports/standard/taxinvoice.scm:297
@@ -6066,17 +6085,17 @@ msgstr "Faktur yang Bisa Dicetak"
 msgid "Tax Invoice"
 msgstr "Faktur Pajak"
 
-#: gnucash/gnome/gnc-plugin-page-report.c:1798
+#: gnucash/gnome/gnc-plugin-page-report.c:1842
 #: gnucash/gtkbuilder/business-prefs.glade:32
 #: gnucash/report/reports/standard/invoice.scm:912
 msgid "Easy Invoice"
 msgstr "Faktur Mudah"
 
-#: gnucash/gnome/gnc-plugin-page-report.c:1799
+#: gnucash/gnome/gnc-plugin-page-report.c:1843
 #: gnucash/gtkbuilder/business-prefs.glade:35
 #: gnucash/report/reports/standard/invoice.scm:921
 msgid "Fancy Invoice"
-msgstr "Faktur Keren"
+msgstr "Faktur Lengkap"
 
 #: gnucash/gnome/gnc-plugin-page-sx-list.c:136
 msgid "_Scheduled"
@@ -6203,7 +6222,7 @@ msgstr "Masa Depan:"
 
 #: gnucash/gnome/gnc-split-reg2.c:804 gnucash/gnome/gnc-split-reg.c:2358
 msgid "Cleared:"
-msgstr "Kliring:"
+msgstr "Klir:"
 
 #: gnucash/gnome/gnc-split-reg2.c:805 gnucash/gnome/gnc-split-reg.c:2359
 msgid "Reconciled:"
@@ -6262,7 +6281,7 @@ msgstr ""
 
 #: gnucash/gnome/gnc-split-reg.c:679
 msgid "Standard Order"
-msgstr "Pesanan Standar"
+msgstr "Urutan Standar"
 
 #: gnucash/gnome/gnc-split-reg.c:685
 msgid "Date of Entry"
@@ -6292,19 +6311,19 @@ msgstr "Difilter"
 #: gnucash/gnome/gnc-split-reg.c:913
 #, c-format
 msgid "Cut the split '%s' from the transaction '%s'?"
-msgstr "Potong pemecahan '%s' dari transaksi '%s'?"
+msgstr "Potong split '%s' dari transaksi '%s'?"
 
 #: gnucash/gnome/gnc-split-reg.c:914
 msgid ""
 "You would be removing a reconciled split! This is not a good idea as it will "
 "cause your reconciled balance to be off."
 msgstr ""
-"Anda akan membuang sebuah pemecahan direkonsiliasi! Ini bukan ide yang bagus "
+"Anda akan membuang sebuah split direkonsiliasi! Ini bukan ide yang bagus "
 "karena akan menyebabkan saldo direkonsiliasi Anda dimatikan."
 
 #: gnucash/gnome/gnc-split-reg.c:917
 msgid "You cannot cut this split."
-msgstr "Anda tidak dapat memotong pemecahan ini."
+msgstr "Anda tidak dapat memotong split ini."
 
 #: gnucash/gnome/gnc-split-reg.c:918
 msgid ""
@@ -6313,6 +6332,11 @@ msgid ""
 "from this window, or you may navigate to a register that shows another side "
 "of this same transaction and remove the split from that register."
 msgstr ""
+"Ini adalah split yang menghubungkan transaksi ini ke register. Anda tidak "
+"dapat menghapusnya dari jendela register ini. Anda dapat menghapus seluruh "
+"transaksi dari jendela ini, atau Anda dapat menavigasi ke register yang "
+"menunjukkan sisi lain dari transaksi yang sama ini dan menghapus split dari "
+"register itu."
 
 #: gnucash/gnome/gnc-split-reg.c:948 gnucash/gnome/gnc-split-reg.c:1476
 #: gnucash/gnome-utils/gnc-tree-control-split-reg.c:996
@@ -6326,7 +6350,7 @@ msgstr "(tak ada deskripsi)"
 
 #: gnucash/gnome/gnc-split-reg.c:976
 msgid "_Cut Split"
-msgstr "_Potong Pemecahan"
+msgstr "_Potong Split"
 
 #: gnucash/gnome/gnc-split-reg.c:990
 msgid "Cut the current transaction?"
@@ -6337,9 +6361,8 @@ msgid ""
 "You would be removing a transaction with reconciled splits! This is not a "
 "good idea as it will cause your reconciled balance to be off."
 msgstr ""
-"Anda akan membuang sebuah transaksi dengan pemecahan direkonsiliasi! Ini "
-"bukan ide yang bagus karena akan menyebabkan saldo direkonsiliasi Anda "
-"dimatikan."
+"Anda akan membuang sebuah transaksi dengan split direkonsiliasi! Ini bukan "
+"ide yang bagus karena akan menyebabkan saldo direkonsiliasi Anda dimatikan."
 
 #: gnucash/gnome/gnc-split-reg.c:1014
 msgid "_Cut Transaction"
@@ -6357,12 +6380,13 @@ msgid ""
 "for this book. This setting can be changed in File->Properties->Accounts."
 msgstr ""
 "Data pada transaksi ini lebih lama daripada \"Ambang Batas Hanya-Baca\" yang "
-"disetel untuk buku ini. Setelan ini dapat diubah di Berkas->Properti->Akun."
+"disetel untuk buku ini. Pengaturan ini dapat diubah di Berkas->Properti-"
+">Akun."
 
 #: gnucash/gnome/gnc-split-reg.c:1208
 #: gnucash/gnome-utils/gnc-tree-control-split-reg.c:840
 msgid "Remove the splits from this transaction?"
-msgstr "Hapus pemecahan dari transaksi ini?"
+msgstr "Hapus split dari transaksi ini?"
 
 #: gnucash/gnome/gnc-split-reg.c:1209
 #: gnucash/gnome-utils/gnc-tree-control-split-reg.c:841
@@ -6370,14 +6394,14 @@ msgid ""
 "This transaction contains reconciled splits. Modifying it is not a good idea "
 "because that will cause your reconciled balance to be off."
 msgstr ""
-"Transaksi ini berisi pemecahan direkonsiliasi. Mengubahnya bukan ide bagus "
+"Transaksi ini berisi split direkonsiliasi. Mengubahnya bukan ide bagus "
 "karena akan menyebabkan saldo direkonsiliasi Anda dimatikan."
 
 #. Translators: This is the confirmation button in a warning dialog
 #: gnucash/gnome/gnc-split-reg.c:1238
 #: gnucash/gnome-utils/gnc-tree-control-split-reg.c:887
 msgid "_Remove Splits"
-msgstr "_Buang Pemecahan"
+msgstr "_Buang Split"
 
 #: gnucash/gnome/gnc-split-reg.c:1299
 msgid "Change a Transaction Linked Document"
@@ -6387,7 +6411,7 @@ msgstr "Ubah Dokumen Tertaut Transaksi"
 #: gnucash/gnome-utils/gnc-tree-control-split-reg.c:963
 #, c-format
 msgid "Delete the split '%s' from the transaction '%s'?"
-msgstr "Hapus pemecahan '%s' dari transaksi '%s'?"
+msgstr "Hapus split '%s' dari transaksi '%s'?"
 
 #: gnucash/gnome/gnc-split-reg.c:1441
 #: gnucash/gnome-utils/gnc-tree-control-split-reg.c:964
@@ -6395,13 +6419,13 @@ msgid ""
 "You would be deleting a reconciled split! This is not a good idea as it will "
 "cause your reconciled balance to be off."
 msgstr ""
-"Anda akan menghapus sebuah pemecahan direkonsiliasi! Ini bukan ide yang "
-"bagus karena akan menyebabkan saldo direkonsiliasi Anda dimatikan."
+"Anda akan menghapus sebuah split direkonsiliasi! Ini bukan ide yang bagus "
+"karena akan menyebabkan saldo direkonsiliasi Anda dimatikan."
 
 #: gnucash/gnome/gnc-split-reg.c:1444
 #: gnucash/gnome-utils/gnc-tree-control-split-reg.c:967
 msgid "You cannot delete this split."
-msgstr "Anda tidak dapat menghapus pemecahan ini."
+msgstr "Anda tidak dapat menghapus split ini."
 
 #: gnucash/gnome/gnc-split-reg.c:1445
 #: gnucash/gnome-utils/gnc-tree-control-split-reg.c:968
@@ -6411,6 +6435,11 @@ msgid ""
 "from this window, or you may navigate to a register that shows another side "
 "of this same transaction and delete the split from that register."
 msgstr ""
+"Ini adalah split yang menghubungkan transaksi ini ke register. Anda tidak "
+"dapat menghapusnya dari jendela register ini. Anda dapat menghapus seluruh "
+"transaksi dari jendela ini, atau Anda dapat menavigasi ke register yang "
+"menunjukkan sisi lain dari transaksi yang sama dan menghapus split dari "
+"register itu."
 
 #: gnucash/gnome/gnc-split-reg.c:1520
 #: gnucash/gnome-utils/gnc-tree-control-split-reg.c:1040
@@ -6423,9 +6452,8 @@ msgid ""
 "You would be deleting a transaction with reconciled splits! This is not a "
 "good idea as it will cause your reconciled balance to be off."
 msgstr ""
-"Anda akan menghapus sebuah transaksi dengan pemecahan direkonsiliasi! Ini "
-"bukan ide yang bagus karena akan menyebabkan saldo direkonsiliasi Anda "
-"dimatikan."
+"Anda akan menghapus sebuah transaksi dengan split direkonsiliasi! Ini bukan "
+"ide yang bagus karena akan menyebabkan saldo direkonsiliasi Anda dimatikan."
 
 #: gnucash/gnome/gnc-split-reg.c:1716
 #, c-format
@@ -6437,7 +6465,7 @@ msgid ""
 "Select OK to temporarily clear filter and proceed,\n"
 "otherwise the last active cell will be selected."
 msgstr ""
-"Target pemecahan saat ini tersembunyi pada register ini.\n"
+"Target split saat ini tersembunyi pada register ini.\n"
 "\n"
 "%s\n"
 "\n"
@@ -6541,10 +6569,12 @@ msgid ""
 "Exchange by CSV/FinTS(former HBCI) or import SWIFT-MT9xx/QIF/OFX data "
 "including Transaction Matching"
 msgstr ""
+"Ganti dengan CSV/FinTS(former HBCI) atau impor data SWIFT-MT9xx/QIF/OFX "
+"termasuk Pencocokan Transaksi"
 
 #: gnucash/gnome/gnucash.appdata.xml.in.in:23
 msgid "Perform financial calculations, such as a loan repayment"
-msgstr "Melakukan perhitungan finansial, seperti cicilan pinjaman"
+msgstr "Melakukan perhitungan finansial, seperti angsuran pinjaman"
 
 #: gnucash/gnome/gnucash.appdata.xml.in.in:33
 msgid "GnuCash Project"
@@ -6634,17 +6664,9 @@ msgstr "Tak ada harga: %s"
 msgid "Business"
 msgstr "Bisnis"
 
-#: gnucash/gnome/window-autoclear.c:138
-msgid "Searching for splits to clear ..."
-msgstr "Mencari pemecachan untuk dibersihkan..."
-
-#: gnucash/gnome/window-autoclear.c:241
-msgid "Cannot uniquely clear splits. Found multiple possibilities."
-msgstr "Tak dapat membersihkan pemecahan. Ditemukan beberapa kemungkinan."
-
-#: gnucash/gnome/window-autoclear.c:248
-msgid "The selected amount cannot be cleared."
-msgstr "Jumlah yang dipilih tidak bisa diselesaikan."
+#: gnucash/gnome/window-autoclear.c:115
+msgid "Cleared Transactions"
+msgstr "Transaksi Klir"
 
 #: gnucash/gnome/window-reconcile2.c:417 gnucash/gnome/window-reconcile.c:458
 msgid "Interest Payment"
@@ -6711,7 +6733,7 @@ msgid "Reconciled Balance"
 msgstr "Saldo Direkonsiliasi"
 
 #: gnucash/gnome/window-reconcile2.c:1798 gnucash/gnome/window-reconcile.c:1991
-#: gnucash/report/reports/standard/cash-flow.scm:310
+#: gnucash/report/reports/standard/cash-flow.scm:312
 msgid "Difference"
 msgstr "Selisih"
 
@@ -6743,7 +6765,7 @@ msgstr "_Akun"
 #: gnucash/gnome/window-reconcile2.c:2103
 #: gnucash/gnome/window-reconcile2.c:2184 gnucash/gnome/window-reconcile.c:2324
 #: gnucash/gnome/window-reconcile.c:2405
-#: gnucash/gnome-utils/gnc-main-window.c:278
+#: gnucash/gnome-utils/gnc-main-window.c:281
 #: gnucash/gtkbuilder/dialog-account.glade:1117
 #: gnucash/gtkbuilder/dialog-bi-import-gui.glade:23
 #: gnucash/gtkbuilder/dialog-book-close.glade:22
@@ -6752,13 +6774,13 @@ msgstr "_Akun"
 #: gnucash/gtkbuilder/dialog-customer-import-gui.glade:25
 #: gnucash/gtkbuilder/dialog-custom-report.glade:28
 #: gnucash/gtkbuilder/dialog-employee.glade:23
-#: gnucash/gtkbuilder/dialog-import.glade:1001
+#: gnucash/gtkbuilder/dialog-import.glade:1017
 #: gnucash/gtkbuilder/dialog-invoice.glade:658
 #: gnucash/gtkbuilder/dialog-job.glade:24
 #: gnucash/gtkbuilder/dialog-options.glade:21
 #: gnucash/gtkbuilder/dialog-order.glade:25
 #: gnucash/gtkbuilder/dialog-order.glade:441
-#: gnucash/gtkbuilder/dialog-preferences.glade:142
+#: gnucash/gtkbuilder/dialog-preferences.glade:258
 #: gnucash/gtkbuilder/dialog-print-check.glade:316
 #: gnucash/gtkbuilder/dialog-search.glade:21
 #: gnucash/gtkbuilder/dialog-sx.glade:763
@@ -6814,18 +6836,18 @@ msgid "Edit the main account for this register"
 msgstr "Sunting akun utama untuk register ini"
 
 #: gnucash/gnome/window-reconcile2.c:2147 gnucash/gnome/window-reconcile.c:2368
-#: gnucash/gnome-utils/gnc-main-window.c:353
+#: gnucash/gnome-utils/gnc-main-window.c:356
 msgid "_Check & Repair"
 msgstr "_Periksa & Perbaiki"
 
 #: gnucash/gnome/window-reconcile2.c:2156 gnucash/gnome/window-reconcile.c:2377
-#: gnucash/gtkbuilder/dialog-account.glade:1730
+#: gnucash/gtkbuilder/dialog-account.glade:1747
 msgid "_Balance"
 msgstr "_Saldo"
 
 #: gnucash/gnome/window-reconcile2.c:2157 gnucash/gnome/window-reconcile.c:2378
 msgid "Add a new balancing entry to the account"
-msgstr ""
+msgstr "Tambahkan entri saldo baru ke akun"
 
 #: gnucash/gnome/window-reconcile2.c:2162 gnucash/gnome/window-reconcile.c:2383
 msgid "Edit the current transaction"
@@ -6887,8 +6909,8 @@ msgid ""
 "WARNING! Account contains splits whose reconcile date is after statement "
 "date. Reconciliation may be difficult."
 msgstr ""
-"PERINGATAN! Akun berisi pemecahan yang tanggal rekonsiliasinya setelah "
-"tanggal pernyataan. Rekonsiliasi bisa menjadi sulit."
+"PERINGATAN! Akun berisi split yang tanggal rekonsiliasinya setelah tanggal "
+"pernyataan. Rekonsiliasi bisa menjadi sulit."
 
 #: gnucash/gnome/window-reconcile.c:1855
 msgid ""
@@ -6897,8 +6919,8 @@ msgid ""
 "the case, you may use Find Transactions to find them, unreconcile, and re-"
 "reconcile."
 msgstr ""
-"Akun ini memiliki pemecahan yang mana Tanggal Rekonsiliasi adalah setelah "
-"tanggal pernyataan rekonsiliasi ini. Pemecahan itu mungkin akan menyebabkan "
+"Akun ini memiliki split yang mana Tanggal Rekonsiliasi adalah setelah "
+"tanggal pernyataan rekonsiliasi ini. Split tersebut mungkin akan menyebabkan "
 "rekonsiliasi menjadi sulit. Jika itu terjadi, Anda bisa menggunakan Cari "
 "Transaksi untuk mencarinya, batalkan rekonsiliasi, dan rekonsiliasi ulang."
 
@@ -6937,7 +6959,7 @@ msgstr "Transaksi Baru"
 
 #: gnucash/gnome-search/dialog-search.c:1098
 msgid "New Split"
-msgstr "Pemecahan Baru"
+msgstr "Split Baru"
 
 #: gnucash/gnome-search/dialog-search.c:1107
 msgctxt ""
@@ -6978,7 +7000,7 @@ msgid "matches no accounts"
 msgstr "tidak ada akun yang cocok"
 
 #: gnucash/gnome-search/search-account.c:195
-#: gnucash/report/reports/standard/cash-flow.scm:254
+#: gnucash/report/reports/standard/cash-flow.scm:256
 msgid "Selected Accounts"
 msgstr "Akun yang Dipilih"
 
@@ -7093,7 +7115,7 @@ msgstr "memiliki kredit"
 
 #: gnucash/gnome-search/search-reconciled.c:215
 msgid "Not Cleared"
-msgstr "Belum Diselesaikan"
+msgstr "Belum Klir"
 
 #: gnucash/gnome-search/search-string.c:169
 msgid "You need to enter some search text."
@@ -7149,6 +7171,26 @@ msgid ""
 "Press \"Next\" now to select the correct character encoding for your data "
 "file.\n"
 msgstr ""
+"\n"
+"Berkas yang akan dimuat berasal dari GnuCash versi yang lebih lama. Format "
+"berkas pada versi yang lebih lama tidak memiliki spesifikasi detail mengenai "
+"enkoding karakter yang sedang digunakan. Ini berarti teks pada berkas data "
+"Anda dapat dibaca dalam beberapa cara yang ambigu. Ambiguitas ini tak dapat "
+"diatasi secara otomatis, tetapi format berkas baru pada GnuCash 2.0.0 akan "
+"menyertakan semua spesifikasi yang diperlukan sehingga Anda tidak perlu "
+"melalui langkah ini lagi.\n"
+"\n"
+"GnuCash akan mencoba menebak enkoding karakter yang tepat untuk berkas data "
+"Anda. Pada halaman berikutnya, GnuCash akan menampilkan hasil teks yang "
+"menggunakan tebakan ini. Anda perlu memeriksa apakah kata-kata sudah "
+"ditampilkan sesuai yang diharapkan. Bisa jadi tidak ada masalah apapun dan "
+"Anda bisa menekan \"Berikutnya\", atau kata-kata yang ditampilkan berisi "
+"karakter yang tak diharapkan, sehingga Anda perlu memilih enkoding karakter "
+"yang lain. Anda mungkin perlu menyunting daftar enkoding karakter dengan "
+"klik pada tombol terkait.\n"
+"\n"
+"Tekan \"Berikutnya\" sekarang untuk memilih enkoding karakter yang tepat "
+"untuk berkas data Anda.\n"
 
 #: gnucash/gnome-utils/assistant-xml-encoding.c:198
 msgid "Ambiguous character encoding"
@@ -7298,63 +7340,75 @@ msgstr "Pengkodean ini telah ditambahkan pada daftar."
 msgid "This is an invalid encoding."
 msgstr "Ini adalah pengkodean yang tidak valid."
 
-#: gnucash/gnome-utils/dialog-account.c:488
+#: gnucash/gnome-utils/dialog-account.c:531
 msgid "Could not create opening balance."
 msgstr "Tak dapat membuat saldo awal."
 
-#: gnucash/gnome-utils/dialog-account.c:696
+#: gnucash/gnome-utils/dialog-account.c:739
 msgid "Give the children the same type?"
 msgstr "Berikan tipe yang sama untuk anak?"
 
-#: gnucash/gnome-utils/dialog-account.c:707
+#: gnucash/gnome-utils/dialog-account.c:750
 #, c-format
 msgid ""
 "The children of the edited account have to be changed to type \"%s\" to make "
 "them compatible."
 msgstr ""
+"Anak dari akun yang disunting harus diubah ke tipe \"%s\" untuk "
+"menjadikannya kompatibel."
 
-#: gnucash/gnome-utils/dialog-account.c:718
+#: gnucash/gnome-utils/dialog-account.c:761
 msgid "_Show children accounts"
 msgstr "Tam_pilkan akun anak"
 
-#: gnucash/gnome-utils/dialog-account.c:788
+#: gnucash/gnome-utils/dialog-account.c:831
 msgid "The account must be given a name."
 msgstr "Akun harus diberi nama."
 
-#: gnucash/gnome-utils/dialog-account.c:814
+#: gnucash/gnome-utils/dialog-account.c:857
 msgid "There is already an account with that name."
 msgstr "Sudah ada akun dengan nama itu."
 
-#: gnucash/gnome-utils/dialog-account.c:823
+#: gnucash/gnome-utils/dialog-account.c:866
 msgid "You must choose a valid parent account."
 msgstr "Anda harus memilih akun induk yang valid."
 
-#: gnucash/gnome-utils/dialog-account.c:832
+#: gnucash/gnome-utils/dialog-account.c:875
 msgid "You must select an account type."
 msgstr "Anda harus memilih sebuah tipe akun."
 
-#: gnucash/gnome-utils/dialog-account.c:841
+#: gnucash/gnome-utils/dialog-account.c:884
 msgid ""
 "The selected account type is incompatible with the one of the selected "
 "parent."
 msgstr "Tipe akun yang dipilih tidak kompatibel dengan induk yang dipilih."
 
-#: gnucash/gnome-utils/dialog-account.c:853
+#: gnucash/gnome-utils/dialog-account.c:896
 msgid "You must choose a commodity."
 msgstr "Anda harus memilih sebuah komoditas."
 
-#: gnucash/gnome-utils/dialog-account.c:909
+#: gnucash/gnome-utils/dialog-account.c:955
 msgid "You must enter a valid opening balance or leave it blank."
 msgstr "Anda harus memasukkan saldo awal yang valid atau membiarkannya kosong."
 
-#: gnucash/gnome-utils/dialog-account.c:933
+#: gnucash/gnome-utils/dialog-account.c:979
 msgid ""
 "You must select a transfer account or choose the opening balances equity "
 "account."
 msgstr ""
 "Anda harus memilih sebuah akun transfer atau memilih akun ekuitas saldo awal."
 
-#: gnucash/gnome-utils/dialog-account.c:1350
+#: gnucash/gnome-utils/dialog-account.c:1331
+msgid ""
+"An account with opening balance already exists for the desired currency."
+msgstr ""
+"Sudah ada sebuah akun dengan saldo awal untuk mata uang yang diinginkan."
+
+#: gnucash/gnome-utils/dialog-account.c:1332
+msgid "Cannot change currency"
+msgstr "Tak dapat mengubah mata uang"
+
+#: gnucash/gnome-utils/dialog-account.c:1419
 msgid ""
 "This Account contains Transactions.\n"
 "Changing this option is not possible."
@@ -7362,42 +7416,46 @@ msgstr ""
 "Akun ini memiliki Transaksi.\n"
 "Mengubah opsi ini tidak dimungkinkan."
 
-#: gnucash/gnome-utils/dialog-account.c:1539
+#: gnucash/gnome-utils/dialog-account.c:1609
 msgid "Edit Account"
 msgstr "Sunting Akun"
 
-#: gnucash/gnome-utils/dialog-account.c:1542
+#: gnucash/gnome-utils/dialog-account.c:1612
 #, c-format
 msgid "(%d) New Accounts"
 msgstr "(%d) Akun Baru"
 
-#: gnucash/gnome-utils/dialog-account.c:1552
+#: gnucash/gnome-utils/dialog-account.c:1622
 #: gnucash/gtkbuilder/dialog-account.glade:1100
 #: gnucash/gtkbuilder/dialog-account-picker.glade:158
 msgid "New Account"
 msgstr "Akun Baru"
 
-#: gnucash/gnome-utils/dialog-account.c:2113
+#: gnucash/gnome-utils/dialog-account.c:2183
 #, c-format
 msgid ""
 "Renumber the immediate sub-accounts of %s? This will replace the account "
 "code field of each child account with a newly generated code."
 msgstr ""
+"Nomori ulang sub-akun terdekat dari %s? Ini akan mengganti bidang kode akun "
+"untuk tiap akun anak dengan kode baru yang dibuat."
 
-#: gnucash/gnome-utils/dialog-account.c:2218
+#: gnucash/gnome-utils/dialog-account.c:2288
 #, c-format
 msgid ""
 "Set the account color for account '%s' including all sub-accounts to the "
 "selected color"
 msgstr ""
+"Setel warna akun untuk akun '%s' termasuk semua sub-akun ke warna yang "
+"dipilih"
 
-#: gnucash/gnome-utils/dialog-account.c:2245
+#: gnucash/gnome-utils/dialog-account.c:2315
 #, c-format
 msgid ""
 "Set the account placeholder value for account '%s' including all sub-accounts"
-msgstr ""
+msgstr "Setel nilai placeholder akun untuk akun '%s' termasuk semua sub-akun"
 
-#: gnucash/gnome-utils/dialog-account.c:2259
+#: gnucash/gnome-utils/dialog-account.c:2329
 #, c-format
 msgid ""
 "Set the account hidden value for account '%s' including all sub-accounts"
@@ -7406,17 +7464,20 @@ msgstr "Setel nilai tersembunyi untuk akun '%s' termasuk semua sub-akun"
 #: gnucash/gnome-utils/dialog-book-close.c:294
 msgid "Please select an Equity account to hold the total Period Income."
 msgstr ""
+"Silakan pilih sebuah akun Ekuitas untuk menampung total Pendapatan Periode."
 
 #: gnucash/gnome-utils/dialog-book-close.c:301
 msgid "Please select an Equity account to hold the total Period Expense."
 msgstr ""
+"Silakan pilih sebuah akun Ekuitas untuk menampung total Pengeluaran Periode."
 
 #: gnucash/gnome-utils/dialog-commodity.c:174
-#, fuzzy
 msgid ""
 "\n"
 "Please select a commodity to match"
-msgstr "Pilih foto untuk orang ini"
+msgstr ""
+"\n"
+"Silakan pilih sebuah komoditas untuk dicocokkan"
 
 #: gnucash/gnome-utils/dialog-commodity.c:181
 msgid ""
@@ -7435,6 +7496,8 @@ msgid ""
 "\n"
 "Exchange code (ISIN, CUSIP or similar): "
 msgstr ""
+"\n"
+"Nomor identifikasi (ISIN, CUSIP atau yang semisalnya): "
 
 #: gnucash/gnome-utils/dialog-commodity.c:189
 msgid ""
@@ -7445,26 +7508,22 @@ msgstr ""
 "Mnemonik (Simbol atau yang serupa): "
 
 #: gnucash/gnome-utils/dialog-commodity.c:288
-#, fuzzy
 msgid "Select security/currency"
-msgstr "Keamanan"
+msgstr "Pilih sekuritas/mata uang"
 
 #: gnucash/gnome-utils/dialog-commodity.c:289
 #: gnucash/gtkbuilder/dialog-account.glade:1257
-#, fuzzy
 msgid "_Security/currency"
-msgstr "mata uang"
+msgstr "_Sekuritas/mata uang"
 
 #: gnucash/gnome-utils/dialog-commodity.c:293
-#, fuzzy
 msgid "Select security"
-msgstr "Keamanan"
+msgstr "Pilih sekuritas"
 
 #: gnucash/gnome-utils/dialog-commodity.c:294
 #: gnucash/gtkbuilder/dialog-price.glade:146
-#, fuzzy
 msgid "_Security"
-msgstr "Keamanan"
+msgstr "_Sekuritas"
 
 #: gnucash/gnome-utils/dialog-commodity.c:298
 msgid "Select currency"
@@ -7476,7 +7535,7 @@ msgid "Cu_rrency"
 msgstr "Ma_ta Uang"
 
 #: gnucash/gnome-utils/dialog-commodity.c:773
-#: gnucash/gnome-utils/dialog-options.c:701
+#: gnucash/gnome-utils/dialog-options.c:713
 #: gnucash/gnome-utils/gnc-tree-view-owner.c:412
 #: gnucash/gnome-utils/gnc-tree-view-price.c:402
 #: gnucash/gtkbuilder/dialog-customer.glade:511
@@ -7484,7 +7543,7 @@ msgstr "Ma_ta Uang"
 #: gnucash/gtkbuilder/dialog-transfer.glade:424
 #: gnucash/gtkbuilder/dialog-transfer.glade:437
 #: gnucash/gtkbuilder/dialog-vendor.glade:507
-#: libgnucash/engine/Account.cpp:4321
+#: libgnucash/engine/Account.cpp:4368
 msgid "Currency"
 msgstr "Mata Uang"
 
@@ -7519,7 +7578,7 @@ msgstr "Anda tidak bisa membuat mata uang nasional baru."
 #: gnucash/gnome-utils/dialog-commodity.c:1298
 #, c-format
 msgid "%s is a reserved commodity type. Please use something else."
-msgstr ""
+msgstr "%s adalah tipe komoditas yang dicadangkan. Silakan gunakan yang lain."
 
 #: gnucash/gnome-utils/dialog-commodity.c:1313
 msgid "That commodity already exists."
@@ -7534,27 +7593,29 @@ msgstr ""
 "untuk komoditas."
 
 #: gnucash/gnome-utils/dialog-doclink-utils.c:237
-#, fuzzy
 msgid "Path head for files is,"
-msgstr "Amplituda Kepala GMR"
+msgstr "Tajuk path untuk berkas adalah,"
 
 #: gnucash/gnome-utils/dialog-doclink-utils.c:239
-#, fuzzy
 msgid "Path head does not exist,"
-msgstr "tidak ada"
+msgstr "Tajuk path tidak ada,"
 
 #: gnucash/gnome-utils/dialog-doclink-utils.c:242
 #, c-format
 msgid "Path head not set, using '%s' for relative paths"
-msgstr ""
+msgstr "Tajuk path tidak disetel, menggunakan '%s' untuk path relatif"
 
 #: gnucash/gnome-utils/dialog-doclink-utils.c:426
 msgid "Existing"
 msgstr "Sudah Ada"
 
-#: gnucash/gnome-utils/dialog-dup-trans.c:250
+#: gnucash/gnome-utils/dialog-dup-trans.c:148
+msgid "Use +- keys to increment/decrement number"
+msgstr "Gunakan tombol +- untuk menambah/mengurangi nomor"
+
+#: gnucash/gnome-utils/dialog-dup-trans.c:297
 msgid "Action/Number"
-msgstr ""
+msgstr "Aksi/Nomor"
 
 #: gnucash/gnome-utils/dialog-file-access.c:303
 msgid "Open..."
@@ -7578,26 +7639,53 @@ msgstr "Simpan Sebagai..."
 msgid "_Save As"
 msgstr "_Simpan Sebagai"
 
-#: gnucash/gnome-utils/dialog-options.c:641
+#: gnucash/gnome-utils/dialog-options.c:226
+#: gnucash/gnome-utils/gnc-main-window.c:305
+#: gnucash/gtkbuilder/dialog-billterms.glade:729
+#: gnucash/gtkbuilder/dialog-commodities.glade:173
+#: gnucash/gtkbuilder/dialog-custom-report.glade:45
+#: gnucash/gtkbuilder/dialog-doclink.glade:546
+#: gnucash/gtkbuilder/dialog-fincalc.glade:107
+#: gnucash/gtkbuilder/dialog-find-account.glade:68
+#: gnucash/gtkbuilder/dialog-imap-editor.glade:80
+#: gnucash/gtkbuilder/dialog-import.glade:496
+#: gnucash/gtkbuilder/dialog-lot-viewer.glade:89
+#: gnucash/gtkbuilder/dialog-order.glade:42
+#: gnucash/gtkbuilder/dialog-preferences.glade:147
+#: gnucash/gtkbuilder/dialog-preferences.glade:274
+#: gnucash/gtkbuilder/dialog-price.glade:939
+#: gnucash/gtkbuilder/dialog-query-view.glade:22
+#: gnucash/gtkbuilder/dialog-report.glade:272
+#: gnucash/gtkbuilder/dialog-report.glade:679
+#: gnucash/gtkbuilder/dialog-search.glade:52
+#: gnucash/gtkbuilder/dialog-tax-table.glade:254
+#: gnucash/gtkbuilder/dialog-totd.glade:56
+#: gnucash/gtkbuilder/gnc-plugin-page-budget.glade:736
+#: gnucash/import-export/aqb/dialog-ab.glade:43
+msgid "_Close"
+msgstr "_Tutup"
+
+#: gnucash/gnome-utils/dialog-options.c:653
 msgid ""
 "Because no accounts have been set up yet, you will need to return to this "
 "dialog (via File->Properties), after account setup, if you want to set a "
 "default gain/loss account."
-msgstr "d"
+msgstr ""
+"Dikarenakan belum ada akun yang telah disiapkan, Anda perlu kembali ke "
+"dialog ini (melalui Berkas->Properti), setelah penyiapan akun, jika Anda "
+"ingin menyetel sebuah akun keuntungan/kerugian baku."
 
-#: gnucash/gnome-utils/dialog-options.c:685
-#, fuzzy
+#: gnucash/gnome-utils/dialog-options.c:697
 msgid "Select no account"
-msgstr "Pilih sebuah akun"
+msgstr "Pilih tak satupun akun"
 
-#: gnucash/gnome-utils/dialog-options.c:718
-#: gnucash/gnome-utils/gnc-tree-view-account.c:966
-#, fuzzy
+#: gnucash/gnome-utils/dialog-options.c:730
+#: gnucash/gnome-utils/gnc-tree-view-account.c:989
 msgctxt "Column header for 'Placeholder'"
 msgid "P"
 msgstr "P"
 
-#: gnucash/gnome-utils/dialog-options.c:785
+#: gnucash/gnome-utils/dialog-options.c:797
 msgid ""
 "There are no income or expense accounts of the specified\n"
 "book currency; you will have to return to this dialog\n"
@@ -7607,118 +7695,99 @@ msgstr ""
 "Tidak ada akun pendapatan atau pengeluaran untuk mata uang buku\n"
 "yang ditentukan; Anda harus kembali ke dialog ini\n"
 "(melalui Berkas->Properti), setelah menyiapkan akun, untuk memilih\n"
-"sebuah akun laba/rugi bawaan."
+"sebuah akun keuntungan/kerugian baku."
 
-#: gnucash/gnome-utils/dialog-options.c:854
+#: gnucash/gnome-utils/dialog-options.c:865
 #: gnucash/import-export/qif-imp/dialog-account-picker.c:299
 #, c-format
 msgid ""
 "The account %s is a placeholder account and does not allow transactions. "
 "Please choose a different account."
 msgstr ""
+"Akun %s adalah sebuah akun placeholder dan tidak mengizinkan transaksi. "
+"Silakan pilih akun yang lain."
 
-#: gnucash/gnome-utils/dialog-options.c:1284
-#, fuzzy
+#: gnucash/gnome-utils/dialog-options.c:1292
 msgid "Book currency"
-msgstr "mata uang"
+msgstr "Mata uang buku"
 
-#: gnucash/gnome-utils/dialog-options.c:1309
+#: gnucash/gnome-utils/dialog-options.c:1317
 msgid "Default lot tracking policy"
-msgstr ""
+msgstr "Kebijakan pelacakan lot baku"
 
-#: gnucash/gnome-utils/dialog-options.c:1333
-#, fuzzy
+#: gnucash/gnome-utils/dialog-options.c:1340
 msgid "Default gain/loss account"
-msgstr "tipe akun: Keuntungan & Kerugian"
+msgstr "Akun keuntungan/kerugian baku"
 
-#: gnucash/gnome-utils/dialog-options.c:1501
-#: gnucash/gnome-utils/dialog-options.c:1647
-#, fuzzy
+#: gnucash/gnome-utils/dialog-options.c:1506
+#: gnucash/gnome-utils/dialog-options.c:1650
 msgid "Select All"
 msgstr "Pilih Semua"
 
-#: gnucash/gnome-utils/dialog-options.c:1503
-#, fuzzy
+#: gnucash/gnome-utils/dialog-options.c:1508
 msgid "Select all accounts."
-msgstr "Semua Akun"
+msgstr "Pilih semua akun."
 
-#: gnucash/gnome-utils/dialog-options.c:1508
-#: gnucash/gnome-utils/dialog-options.c:1654
-#, fuzzy
+#: gnucash/gnome-utils/dialog-options.c:1513
+#: gnucash/gnome-utils/dialog-options.c:1657
 msgid "Clear All"
 msgstr "Bersihkan Semua"
 
-#: gnucash/gnome-utils/dialog-options.c:1510
+#: gnucash/gnome-utils/dialog-options.c:1515
 msgid "Clear the selection and unselect all accounts."
-msgstr ""
+msgstr "Bersihkan pilihan dan pilih tak satupun akun."
 
-#: gnucash/gnome-utils/dialog-options.c:1515
-#, fuzzy
+#: gnucash/gnome-utils/dialog-options.c:1520
 msgid "Select Children"
-msgstr "Urutkan anak-anak"
+msgstr "Pilih Anak"
 
-#: gnucash/gnome-utils/dialog-options.c:1517
-#, fuzzy
+#: gnucash/gnome-utils/dialog-options.c:1522
 msgid "Select all descendents of selected account."
-msgstr "Pilih semua jawaban atas pesan yang sedang dipilih"
+msgstr "Pilih semua turunan dari akun yang dipilih."
 
-#: gnucash/gnome-utils/dialog-options.c:1523
-#: gnucash/gnome-utils/dialog-options.c:1661
-#, fuzzy
+#: gnucash/gnome-utils/dialog-options.c:1528
+#: gnucash/gnome-utils/dialog-options.c:1664
 msgid "Select Default"
-msgstr ""
-"Sebagai alternatif, Anda bisa menambahkan 'Net Class' dimana Anda bisa "
-"menentukan sejumlah opsi. Buka *Setup* -> *Design Rules* -> *Net Classes "
-"Editor* dan tambahkan sebuah _class_ baru dengan nama 'power'. Ubah lebar "
-"jalur dari 8 mil (0.0080) ke 24 mil (0.0240). Lalu, tambahkan semuanya "
-"kecuali 'ground' ke _class_ 'power' (pilih 'default' di sebelah kiri dan "
-"'power' di sebelah kanan, dan klik tombol panah)."
+msgstr "Pilih Baku"
 
-#: gnucash/gnome-utils/dialog-options.c:1525
-#, fuzzy
+#: gnucash/gnome-utils/dialog-options.c:1530
 msgid "Select the default account selection."
-msgstr "Pilih sebuah akun"
+msgstr "Pilih pemilihan akun baku."
 
-#: gnucash/gnome-utils/dialog-options.c:1542
-#, fuzzy
+#: gnucash/gnome-utils/dialog-options.c:1547
 msgid "Show Hidden Accounts"
-msgstr "Tampilkan berkas tersembunyi pada _hasil"
+msgstr "Tampilkan Akun Tersembunyi"
 
-#: gnucash/gnome-utils/dialog-options.c:1544
+#: gnucash/gnome-utils/dialog-options.c:1549
 msgid "Show accounts that have been marked hidden."
-msgstr ""
+msgstr "Tampilkan akun yang telah ditandai tersembunyi."
 
-#: gnucash/gnome-utils/dialog-options.c:1649
+#: gnucash/gnome-utils/dialog-options.c:1652
 msgid "Select all entries."
 msgstr "Pilih semua entri."
 
-#: gnucash/gnome-utils/dialog-options.c:1656
+#: gnucash/gnome-utils/dialog-options.c:1659
 msgid "Clear the selection and unselect all entries."
-msgstr ""
+msgstr "Bersihkan pilihan dan pilih tak satupun entri."
 
-#: gnucash/gnome-utils/dialog-options.c:1663
-#, fuzzy
+#: gnucash/gnome-utils/dialog-options.c:1666
 msgid "Select the default selection."
-msgstr "Pilihan bawaan pada riwayat aktivitas"
+msgstr "Pilih pemilihan baku."
 
-#: gnucash/gnome-utils/dialog-options.c:1856
-#, fuzzy
+#: gnucash/gnome-utils/dialog-options.c:1860
 msgid "Reset defaults"
-msgstr ""
-"Anda dapat kembali ke pengaturan sebelumnya dengan menekan tombol <gui style="
-"\"button\">Reset ke Baku</gui>."
+msgstr "Setel ulang ke baku"
 
-#: gnucash/gnome-utils/dialog-options.c:1858
-#, fuzzy
+#: gnucash/gnome-utils/dialog-options.c:1862
 msgid "Reset all values to their defaults."
-msgstr "Tata ulang semua kunci dalam SKEMA ke nilai baku"
+msgstr "Setel ulang semua nilai ke nilai baku."
 
-#: gnucash/gnome-utils/dialog-options.c:2253
+#: gnucash/gnome-utils/dialog-options.c:2263
 msgid "Page"
 msgstr "Halaman"
 
-#: gnucash/gnome-utils/dialog-options.c:2879
-#: gnucash/gnome-utils/dialog-preferences.c:1374
+#: gnucash/gnome-utils/dialog-options.c:2890
+#: gnucash/gnome-utils/dialog-preferences.c:1465
 #: gnucash/gtkbuilder/dialog-fincalc.glade:254
 #: gnucash/gtkbuilder/dialog-fincalc.glade:269
 #: gnucash/gtkbuilder/dialog-fincalc.glade:284
@@ -7727,23 +7796,23 @@ msgstr "Halaman"
 msgid "Clear"
 msgstr "Bersihkan"
 
-#: gnucash/gnome-utils/dialog-options.c:2880
+#: gnucash/gnome-utils/dialog-options.c:2891
 msgid "Clear any selected image file."
-msgstr ""
+msgstr "Bersihkan pilihan berkas gambar."
 
-#: gnucash/gnome-utils/dialog-options.c:2882
+#: gnucash/gnome-utils/dialog-options.c:2893
 msgid "Select image"
 msgstr "Pilih gambar"
 
-#: gnucash/gnome-utils/dialog-options.c:2884
+#: gnucash/gnome-utils/dialog-options.c:2895
 msgid "Select an image file."
 msgstr "Pilih sebuah berkas gambar."
 
-#: gnucash/gnome-utils/dialog-options.c:3065
+#: gnucash/gnome-utils/dialog-options.c:3075
 msgid "Pixels"
 msgstr "Piksel"
 
-#: gnucash/gnome-utils/dialog-options.c:3071
+#: gnucash/gnome-utils/dialog-options.c:3081
 msgid "Percent"
 msgstr "Persen"
 
@@ -7753,21 +7822,17 @@ msgstr "Persen"
 #. names with other account names that are more suitable for your
 #. language - just keep in mind to have exactly two %s in your
 #. translation.
-#: gnucash/gnome-utils/dialog-preferences.c:165
+#: gnucash/gnome-utils/dialog-preferences.c:166
 #, c-format
 msgid "Income%sSalary%sTaxable"
 msgstr "Pendapatan%sGaji%sKena Pajak"
 
-#: gnucash/gnome-utils/dialog-preferences.c:826
-#, fuzzy
+#: gnucash/gnome-utils/dialog-preferences.c:899
 msgid "Path does not exist, "
-msgstr ""
-"Pengaya beautifier: path konfigurasi \"%s\" tidak ada, entri \"%s\" "
-"dinonaktifkan"
+msgstr "Path tidak ada, "
 
-#: gnucash/gnome-utils/dialog-preferences.c:882
-#: gnucash/gnome-utils/dialog-preferences.c:1371
-#, fuzzy
+#: gnucash/gnome-utils/dialog-preferences.c:955
+#: gnucash/gnome-utils/dialog-preferences.c:1462
 msgid "Select a folder"
 msgstr "Pilih folder"
 
@@ -7785,39 +7850,37 @@ msgstr ""
 "\" telah digunakan."
 
 #: gnucash/gnome-utils/dialog-tax-table.c:140
-#, fuzzy
 msgid "Percentage amount must be between -100 and 100."
-msgstr "Nilai persen harus di antara 0 dan 100"
+msgstr "Nilai persentase harus di antara -100 dan 100."
 
 #: gnucash/gnome-utils/dialog-tax-table.c:149
-#, fuzzy
 msgid "You must choose a Tax Account."
-msgstr "Anda harus mengisi tanggal."
+msgstr "Anda harus memilih Akun Pajak."
 
-#: gnucash/gnome-utils/dialog-tax-table.c:630
+#: gnucash/gnome-utils/dialog-tax-table.c:633
 msgid "Rename"
 msgstr "Ganti Nama"
 
-#: gnucash/gnome-utils/dialog-tax-table.c:631
+#: gnucash/gnome-utils/dialog-tax-table.c:634
 msgid "Please enter new name"
 msgstr "Masukkan nama baru"
 
-#: gnucash/gnome-utils/dialog-tax-table.c:632
+#: gnucash/gnome-utils/dialog-tax-table.c:635
 #: gnucash/gtkbuilder/dialog-tax-table.glade:72
 msgid "_Rename"
 msgstr "U_bah Nama"
 
-#: gnucash/gnome-utils/dialog-tax-table.c:638
+#: gnucash/gnome-utils/dialog-tax-table.c:641
 #, c-format
 msgid "Tax table name \"%s\" already exists."
 msgstr "Nama tabel pajak \"%s\" sudah ada."
 
-#: gnucash/gnome-utils/dialog-tax-table.c:662
+#: gnucash/gnome-utils/dialog-tax-table.c:665
 #, c-format
 msgid "Tax table \"%s\" is in use. You cannot delete it."
 msgstr "Tabel pajak \"%s\" sedang digunakan. Anda tidak dapat menghapusnya."
 
-#: gnucash/gnome-utils/dialog-tax-table.c:710
+#: gnucash/gnome-utils/dialog-tax-table.c:713
 msgid ""
 "You cannot remove the last entry from the tax table. Try deleting the tax "
 "table if you want to do that."
@@ -7825,10 +7888,9 @@ msgstr ""
 "Anda tidak dapat menghapus entri terakhir dari tabel pajak. Cobalah "
 "menghapus tabel pajak jika Anda ingin melakukannya."
 
-#: gnucash/gnome-utils/dialog-tax-table.c:717
-#, fuzzy
+#: gnucash/gnome-utils/dialog-tax-table.c:720
 msgid "Are you sure you want to delete this entry?"
-msgstr "Anda yakin ingin menghapus daftar kontak ini?"
+msgstr "Apakah Anda yakin ingin menghapus entri ini?"
 
 #: gnucash/gnome-utils/dialog-transfer.c:599
 msgid "Show the income and expense accounts"
@@ -7856,10 +7918,12 @@ msgid ""
 "You must specify an account to transfer from, or to, or both, for this "
 "transaction. Otherwise, it will not be recorded."
 msgstr ""
+"Anda harus menentukan sebuah akun sebagai sumber transfer, tujuan transfer, "
+"atau keduanya, untuk transaksi ini. Jika tidak, ia tidak akan dicatat."
 
 #: gnucash/gnome-utils/dialog-transfer.c:1437
 msgid "You can't transfer from and to the same account!"
-msgstr ""
+msgstr "Anda tak dapat transfer dari dan ke akun yang sama!"
 
 #: gnucash/gnome-utils/dialog-transfer.c:1448
 #: gnucash/gnome-utils/gnc-tree-control-split-reg.c:1958
@@ -7867,95 +7931,85 @@ msgstr ""
 #: gnucash/register/ledger-core/split-register.c:1976
 #, c-format
 msgid "The account %s does not allow transactions."
-msgstr ""
+msgstr "Akun %s tak mengizinkan transaksi."
 
 #: gnucash/gnome-utils/dialog-transfer.c:1464
 msgid ""
 "You can't transfer from a non-currency account. Try reversing the \"from\" "
 "and \"to\" accounts and making the \"amount\" negative."
 msgstr ""
+"Anda tak dapat melakukan transfer dari akun yang bukan mata uang. Coba "
+"membalik akun \"dari\" dan \"ke\" dan ubah \"jumlah\" menjadi negatif."
 
 #: gnucash/gnome-utils/dialog-transfer.c:1482
 msgid "You must enter a valid price."
-msgstr ""
+msgstr "Anda harus memasukkan harga yang valid."
 
 #: gnucash/gnome-utils/dialog-transfer.c:1494
-#, fuzzy
 msgid "You must enter a valid `to' amount."
-msgstr "Isi berapa yang ingin Anda konversi."
+msgstr "Anda harus memasukkan jumlah 'ke' yang valid."
 
 #: gnucash/gnome-utils/dialog-transfer.c:1722
-#, fuzzy
 msgid "You must enter an amount to transfer."
-msgstr "Isi berapa yang ingin Anda konversi."
+msgstr "Anda harus memasukkan jumlah untuk ditransfer."
 
 #: gnucash/gnome-utils/dialog-transfer.c:1968
 #: gnucash/gtkbuilder/dialog-employee.glade:623
-#, fuzzy
 msgid "Credit Account"
-msgstr "transfer kredit"
+msgstr "Akun Kredit"
 
 #: gnucash/gnome-utils/dialog-transfer.c:1972
-#, fuzzy
 msgid "Debit Account"
-msgstr "aksi: penarikan langsung"
+msgstr "Akun Debit"
 
 #: gnucash/gnome-utils/dialog-transfer.c:1990
-#, fuzzy
 msgid "Transfer From"
-msgstr "Transfer berkas Bluetooth dari %s"
+msgstr "Transfer Dari"
 
 #: gnucash/gnome-utils/dialog-transfer.c:1994
-#, fuzzy
 msgid "Transfer To"
-msgstr "Transfer"
+msgstr "Transfer Ke"
 
 #: gnucash/gnome-utils/dialog-transfer.c:2051
-#, fuzzy
 msgid "Debit Amount"
-msgstr "aksi: penarikan langsung"
+msgstr "Jumlah Debit"
 
 #: gnucash/gnome-utils/dialog-transfer.c:2056
 #: gnucash/gtkbuilder/dialog-transfer.glade:564
-#, fuzzy
 msgid "To Amount"
-msgstr "jumlah"
+msgstr "Jumlah Ke"
 
 #: gnucash/gnome-utils/dialog-utils.c:435
 msgid ""
 "The entered date is out of the range 01/01/1400 - 31/12/9999, resetting to "
 "this year"
 msgstr ""
+"Tanggal yang dimasukkan di luar rentang 01/01/1400 - 31/12/9999, menyetel "
+"ulang ke tahun ini"
 
 #: gnucash/gnome-utils/dialog-utils.c:437
-#, fuzzy
 msgid "Date out of range"
-msgstr "Kadaluwarsa"
+msgstr "Tanggal di luar rentang"
 
 #: gnucash/gnome-utils/dialog-utils.c:765
-#, fuzzy
 msgid "Remember and don't _ask me again."
-msgstr "&Jangan tanya saya lagi."
+msgstr "Ingat dan jangan t_anya saya lagi."
 
 #: gnucash/gnome-utils/dialog-utils.c:766
-#, fuzzy
 msgid "Don't _tell me again."
-msgstr "Jangan beritahu saya lagi"
+msgstr "Jangan beri_tahu saya lagi."
 
 #: gnucash/gnome-utils/dialog-utils.c:769
-#, fuzzy
 msgid "Remember and don't ask me again this _session."
-msgstr "&Jangan tanya saya lagi."
+msgstr "Ingat dan jangan tanya saya lagi _sesi ini."
 
 #: gnucash/gnome-utils/dialog-utils.c:770
-#, fuzzy
 msgid "Don't tell me again this _session."
-msgstr "&Jangan tanya saya lagi."
+msgstr "Jangan beritahu saya lagi _sesi ini."
 
 #: gnucash/gnome-utils/gnc-account-sel.c:475
-#, fuzzy
 msgid "New..."
-msgstr "_Baru…"
+msgstr "Baru..."
 
 #: gnucash/gnome-utils/gnc-autosave.c:99
 msgid "Save file automatically?"
@@ -7982,7 +8036,23 @@ msgid_plural ""
 "\n"
 "Should your file be saved automatically?"
 msgstr[0] ""
+"Berkas data Anda harus disimpan ke harddisk untuk menyimpan perubahan Anda. "
+"GnuCash memiliki fitur untuk menyimpan berkas secara otomatis setiap %d "
+"menit, seperti jika Anda menekan tombol \"Simpan\" setiap waktu. \n"
+"\n"
+"Anda bisa mengubah interval waktunya atau mematikan fitur ini pada Sunting-"
+">Preferensi->Umum->Interval waktu simpan-otomatis. \n"
+"\n"
+"Apakah Anda ingin berkas disimpan secara otomatis?"
 msgstr[1] ""
+"Berkas data Anda harus disimpan ke harddisk untuk menyimpan perubahan Anda. "
+"GnuCash memiliki fitur untuk menyimpan berkas secara otomatis setiap %d "
+"menit, seperti jika Anda menekan tombol \"Simpan\" setiap waktu. \n"
+"\n"
+"Anda bisa mengubah interval waktunya atau mematikan fitur ini pada Sunting-"
+">Preferensi->Umum->Interval waktu simpan-otomatis. \n"
+"\n"
+"Apakah Anda ingin berkas disimpan secara otomatis?"
 
 #: gnucash/gnome-utils/gnc-autosave.c:121
 msgid "_Yes, this time"
@@ -8005,11 +8075,11 @@ msgstr "Tidak, kali i_ni"
 #: gnucash/gnome-utils/gnc-period-select.c:86
 #: libgnucash/app-utils/date-utilities.scm:940
 msgid "Today"
-msgstr "Hari Ini"
+msgstr "Hari ini"
 
 #: gnucash/gnome-utils/gnc-cell-view.c:73
 msgid "Use Shift combined with Return or Keypad Enter to finish editing"
-msgstr ""
+msgstr "Gunakan Shift dan Return atau Enter untuk menyelesaikan penyuntingan"
 
 #: gnucash/gnome-utils/gnc-date-delta.c:224
 #: gnucash/report/reports/standard/price-scatter.scm:139
@@ -8089,14 +8159,14 @@ msgstr "Frekuensi"
 msgid "(unnamed)"
 msgstr "(tanpa nama)"
 
-#: gnucash/gnome-utils/gnc-file.c:94 gnucash/gnome-utils/gnc-main-window.c:282
+#: gnucash/gnome-utils/gnc-file.c:94 gnucash/gnome-utils/gnc-main-window.c:285
 #: gnucash/import-export/bi-import/gnc-plugin-bi-import.c:57
 #: gnucash/import-export/customer-import/gnc-plugin-customer-import.c:57
 msgid "_Import"
 msgstr "_Impor"
 
 #: gnucash/gnome-utils/gnc-file.c:96 gnucash/gnome-utils/gnc-file.c:335
-#: gnucash/gtkbuilder/dialog-preferences.glade:2151
+#: gnucash/gtkbuilder/dialog-preferences.glade:2268
 #: gnucash/import-export/qif-imp/gnc-plugin-qif-import.c:140
 msgid "Import"
 msgstr "Impor"
@@ -8106,7 +8176,7 @@ msgstr "Impor"
 msgid "Save"
 msgstr "Simpan"
 
-#: gnucash/gnome-utils/gnc-file.c:106 gnucash/gnome-utils/gnc-main-window.c:283
+#: gnucash/gnome-utils/gnc-file.c:106 gnucash/gnome-utils/gnc-main-window.c:286
 msgid "_Export"
 msgstr "_Ekspor"
 
@@ -8121,7 +8191,7 @@ msgstr "(null)"
 #: gnucash/gnome-utils/gnc-file.c:280
 #, c-format
 msgid "No suitable backend was found for %s."
-msgstr ""
+msgstr "Tak ada backend yang sesuai untuk %s."
 
 #: gnucash/gnome-utils/gnc-file.c:285
 #, c-format
@@ -8164,6 +8234,9 @@ msgid ""
 "another user, in which case you should not open the database. Do you want to "
 "proceed with opening the database?"
 msgstr ""
+"GnuCash tak bisa mendapatkan kunci untuk %s. Basis data mungkin sedang "
+"digunakan oleh pengguna lain, sehingga Anda seharusnya tidak membuka basis "
+"data itu. Apakah Anda ingin melanjutkan membuka basis data?"
 
 #: gnucash/gnome-utils/gnc-file.c:336
 #, c-format
@@ -8172,6 +8245,9 @@ msgid ""
 "another user, in which case you should not import the database. Do you want "
 "to proceed with importing the database?"
 msgstr ""
+"GnuCash tak bisa mendapatkan kunci untuk %s. Basis data mungkin sedang "
+"digunakan oleh pengguna lain, sehingga Anda seharusnya tidak mengimpor basis "
+"data itu. Apakah Anda ingin melanjutkan mengimpor basis data?"
 
 #: gnucash/gnome-utils/gnc-file.c:344
 #, c-format
@@ -8180,6 +8256,9 @@ msgid ""
 "another user, in which case you should not save the database. Do you want to "
 "proceed with saving the database?"
 msgstr ""
+"GnuCash tak bisa mendapatkan kunci untuk %s. Basis data mungkin sedang "
+"digunakan oleh pengguna lain, sehingga Anda seharusnya tidak menyimpan basis "
+"data itu. Apakah Anda ingin melanjutkan menyimpan basis data?"
 
 #: gnucash/gnome-utils/gnc-file.c:352
 #, c-format
@@ -8188,6 +8267,9 @@ msgid ""
 "another user, in which case you should not export the database. Do you want "
 "to proceed with exporting the database?"
 msgstr ""
+"GnuCash tak bisa mendapatkan kunci untuk %s. Basis data mungkin sedang "
+"digunakan oleh pengguna lain, sehingga Anda seharusnya tidak mengekspor "
+"basis data itu. Apakah Anda ingin melanjutkan mengekspor basis data?"
 
 #: gnucash/gnome-utils/gnc-file.c:377
 #, c-format
@@ -8381,7 +8463,7 @@ msgid "Save changes to the file?"
 msgstr "Simpan perubahan pada berkas?"
 
 #: gnucash/gnome-utils/gnc-file.c:656
-#: gnucash/gnome-utils/gnc-main-window.c:1287
+#: gnucash/gnome-utils/gnc-main-window.c:1301
 #, c-format
 msgid "If you don't save, changes from the past %d minute will be discarded."
 msgid_plural ""
@@ -8432,7 +8514,7 @@ msgstr "_Buat Berkas Baru"
 msgid "Open _Anyway"
 msgstr "Tetap Buk_a"
 
-#: gnucash/gnome-utils/gnc-file.c:857 gnucash/gnome-utils/gnc-main-window.c:307
+#: gnucash/gnome-utils/gnc-file.c:857 gnucash/gnome-utils/gnc-main-window.c:310
 msgid "_Quit"
 msgstr "_Keluar"
 
@@ -8473,9 +8555,11 @@ msgid ""
 "Reverting will discard all unsaved changes to %s. Are you sure you want to "
 "proceed ?"
 msgstr ""
+"Mengembalikan akan membuang semua perubahan %s yang belum disimpan. Apakah "
+"Anda yakin ingin melanjutkan?"
 
 #: gnucash/gnome-utils/gnc-file.c:1680
-#: gnucash/gnome-utils/gnc-main-window.c:1255
+#: gnucash/gnome-utils/gnc-main-window.c:1269
 msgid "<unknown>"
 msgstr "<tak diketahui>"
 
@@ -8500,12 +8584,12 @@ msgstr ""
 msgid "Expected location"
 msgstr "Lokasi yang diharapkan"
 
-#: gnucash/gnome-utils/gnc-gnome-utils.c:446
-#: gnucash/gnome-utils/gnc-gnome-utils.c:486
+#: gnucash/gnome-utils/gnc-gnome-utils.c:460
+#: gnucash/gnome-utils/gnc-gnome-utils.c:500
 msgid "GnuCash could not find the linked document."
 msgstr "GnuCash tak dapat menemukan dokumen tertaut."
 
-#: gnucash/gnome-utils/gnc-gnome-utils.c:516
+#: gnucash/gnome-utils/gnc-gnome-utils.c:530
 msgid "GnuCash could not open the linked document:"
 msgstr "GnuCash tak dapat membuka dokumen tertaut:"
 
@@ -8516,235 +8600,211 @@ msgstr "GnuCash tak dapat membuka dokumen tertaut:"
 msgid "Enter a user name and password to connect to: %s"
 msgstr "Masukkan nama pengguna dan kata sandi untuk menghubungkan ke: %s"
 
-#: gnucash/gnome-utils/gnc-main-window.c:130
+#: gnucash/gnome-utils/gnc-main-window.c:131
 #, c-format
 msgid "Changes will be saved automatically in %u seconds"
 msgstr "Perubahan akan disimpan secara otomatis dalam %u detik"
 
-#: gnucash/gnome-utils/gnc-main-window.c:269
+#: gnucash/gnome-utils/gnc-main-window.c:272
 msgid "_File"
 msgstr "_Berkas"
 
-#: gnucash/gnome-utils/gnc-main-window.c:273
+#: gnucash/gnome-utils/gnc-main-window.c:276
 msgid "Tra_nsaction"
 msgstr "Tra_nsaksi"
 
-#: gnucash/gnome-utils/gnc-main-window.c:274
+#: gnucash/gnome-utils/gnc-main-window.c:277
 msgid "_Reports"
 msgstr "Lapo_ran"
 
-#: gnucash/gnome-utils/gnc-main-window.c:275
+#: gnucash/gnome-utils/gnc-main-window.c:278
 msgid "_Tools"
 msgstr "Ala_t"
 
-#: gnucash/gnome-utils/gnc-main-window.c:276
+#: gnucash/gnome-utils/gnc-main-window.c:279
 msgid "E_xtensions"
 msgstr "E_kstensi"
 
-#: gnucash/gnome-utils/gnc-main-window.c:277
+#: gnucash/gnome-utils/gnc-main-window.c:280
 msgid "_Windows"
 msgstr "_Jendela"
 
-#: gnucash/gnome-utils/gnc-main-window.c:285
+#: gnucash/gnome-utils/gnc-main-window.c:288
 msgid "_Print..."
 msgstr "_Cetak..."
 
-#: gnucash/gnome-utils/gnc-main-window.c:286
+#: gnucash/gnome-utils/gnc-main-window.c:289
 msgid "Print the currently active page"
 msgstr "Cetak halaman yang sedang aktif"
 
-#: gnucash/gnome-utils/gnc-main-window.c:292
+#: gnucash/gnome-utils/gnc-main-window.c:295
 msgid "Pa_ge Setup..."
-msgstr "Sete_lan Halaman..."
+msgstr "Pen_gaturan Halaman..."
 
-#: gnucash/gnome-utils/gnc-main-window.c:293
+#: gnucash/gnome-utils/gnc-main-window.c:296
 msgid "Specify the page size and orientation for printing"
 msgstr "Tentukan ukuran halaman dan orientasi untuk dicetak"
 
-#: gnucash/gnome-utils/gnc-main-window.c:297
+#: gnucash/gnome-utils/gnc-main-window.c:300
 msgid "Proper_ties"
 msgstr "Proper_ti"
 
-#: gnucash/gnome-utils/gnc-main-window.c:298
+#: gnucash/gnome-utils/gnc-main-window.c:301
 msgid "Edit the properties of the current file"
 msgstr "Sunting properti berkas saat ini"
 
-#: gnucash/gnome-utils/gnc-main-window.c:302
-#: gnucash/gtkbuilder/dialog-billterms.glade:729
-#: gnucash/gtkbuilder/dialog-commodities.glade:173
-#: gnucash/gtkbuilder/dialog-custom-report.glade:45
-#: gnucash/gtkbuilder/dialog-doclink.glade:546
-#: gnucash/gtkbuilder/dialog-fincalc.glade:107
-#: gnucash/gtkbuilder/dialog-find-account.glade:68
-#: gnucash/gtkbuilder/dialog-imap-editor.glade:80
-#: gnucash/gtkbuilder/dialog-import.glade:496
-#: gnucash/gtkbuilder/dialog-lot-viewer.glade:89
-#: gnucash/gtkbuilder/dialog-order.glade:42
-#: gnucash/gtkbuilder/dialog-preferences.glade:158
-#: gnucash/gtkbuilder/dialog-price.glade:939
-#: gnucash/gtkbuilder/dialog-query-view.glade:22
-#: gnucash/gtkbuilder/dialog-report.glade:272
-#: gnucash/gtkbuilder/dialog-report.glade:679
-#: gnucash/gtkbuilder/dialog-search.glade:52
-#: gnucash/gtkbuilder/dialog-tax-table.glade:254
-#: gnucash/gtkbuilder/dialog-totd.glade:56
-#: gnucash/gtkbuilder/gnc-plugin-page-budget.glade:736
-#: gnucash/import-export/aqb/dialog-ab.glade:43
-msgid "_Close"
-msgstr "_Tutup"
-
-#: gnucash/gnome-utils/gnc-main-window.c:303
+#: gnucash/gnome-utils/gnc-main-window.c:306
 msgid "Close the currently active page"
 msgstr "Tutup jendela yang sedang aktif"
 
-#: gnucash/gnome-utils/gnc-main-window.c:308
+#: gnucash/gnome-utils/gnc-main-window.c:311
 msgid "Quit this application"
 msgstr "Keluar dari aplikasi"
 
-#: gnucash/gnome-utils/gnc-main-window.c:330
+#: gnucash/gnome-utils/gnc-main-window.c:333
 msgid "Pr_eferences"
 msgstr "Pr_eferensi"
 
-#: gnucash/gnome-utils/gnc-main-window.c:331
+#: gnucash/gnome-utils/gnc-main-window.c:334
 msgid "Edit the global preferences of GnuCash"
 msgstr "Sunting preferensi global GnuCash"
 
-#: gnucash/gnome-utils/gnc-main-window.c:339
+#: gnucash/gnome-utils/gnc-main-window.c:342
 msgid "Select sorting criteria for this page view"
 msgstr "Pilih kriteria pengurutan untuk tampilan halaman ini"
 
-#: gnucash/gnome-utils/gnc-main-window.c:343
+#: gnucash/gnome-utils/gnc-main-window.c:346
 msgid "Select the account types that should be displayed."
 msgstr "Pilih tipe-tipe akun yang akan ditampilkan."
 
-#: gnucash/gnome-utils/gnc-main-window.c:355
+#: gnucash/gnome-utils/gnc-main-window.c:358
 msgid "Reset _Warnings..."
 msgstr "Setel Ulang _Peringatan..."
 
-#: gnucash/gnome-utils/gnc-main-window.c:356
+#: gnucash/gnome-utils/gnc-main-window.c:359
 msgid "Reset the state of all warning messages so they will be shown again."
 msgstr ""
 "Setel ulang status semua pesan peringatan sehingga mereka akan ditampilkan "
 "kembali."
 
-#: gnucash/gnome-utils/gnc-main-window.c:360
+#: gnucash/gnome-utils/gnc-main-window.c:363
 msgid "Re_name Page"
 msgstr "Ganti _Nama Halaman"
 
-#: gnucash/gnome-utils/gnc-main-window.c:361
+#: gnucash/gnome-utils/gnc-main-window.c:364
 msgid "Rename this page."
 msgstr "Ganti nama halaman ini."
 
-#: gnucash/gnome-utils/gnc-main-window.c:368
+#: gnucash/gnome-utils/gnc-main-window.c:371
 msgid "_New Window"
 msgstr "Je_ndela Baru"
 
-#: gnucash/gnome-utils/gnc-main-window.c:369
+#: gnucash/gnome-utils/gnc-main-window.c:372
 msgid "Open a new top-level GnuCash window."
 msgstr "Buka jendela tingkat-atas baru GnuCash."
 
-#: gnucash/gnome-utils/gnc-main-window.c:373
+#: gnucash/gnome-utils/gnc-main-window.c:376
 msgid "New Window with _Page"
 msgstr "Jendela Baru dengan _Halaman"
 
-#: gnucash/gnome-utils/gnc-main-window.c:374
+#: gnucash/gnome-utils/gnc-main-window.c:377
 msgid "Move the current page to a new top-level GnuCash window."
 msgstr "Pindahkan halaman saat ini ke jendela tingkat-atas GnuCash."
 
-#: gnucash/gnome-utils/gnc-main-window.c:381
+#: gnucash/gnome-utils/gnc-main-window.c:384
 msgid "Tutorial and Concepts _Guide"
 msgstr "Tutorial dan Panduan _Konsep"
 
-#: gnucash/gnome-utils/gnc-main-window.c:382
+#: gnucash/gnome-utils/gnc-main-window.c:385
 msgid "Open the GnuCash Tutorial"
 msgstr "Buka Tutorial GnuCash"
 
-#: gnucash/gnome-utils/gnc-main-window.c:386
+#: gnucash/gnome-utils/gnc-main-window.c:389
 msgid "_Contents"
 msgstr "_Isi"
 
-#: gnucash/gnome-utils/gnc-main-window.c:387
+#: gnucash/gnome-utils/gnc-main-window.c:390
 msgid "Open the GnuCash Help"
 msgstr "Buka Bantuan GnuCash"
 
-#: gnucash/gnome-utils/gnc-main-window.c:391
+#: gnucash/gnome-utils/gnc-main-window.c:394
 msgid "_About"
 msgstr "Tent_ang"
 
-#: gnucash/gnome-utils/gnc-main-window.c:392
+#: gnucash/gnome-utils/gnc-main-window.c:395
 msgid "About GnuCash"
 msgstr "Tent_ang GnuCash"
 
-#: gnucash/gnome-utils/gnc-main-window.c:404
+#: gnucash/gnome-utils/gnc-main-window.c:407
 msgid "_Toolbar"
 msgstr "Bilah Ala_t"
 
-#: gnucash/gnome-utils/gnc-main-window.c:405
+#: gnucash/gnome-utils/gnc-main-window.c:408
 msgid "Show/hide the toolbar on this window"
 msgstr "Tampilkan/sembunyikan bilah alat di jendela ini"
 
-#: gnucash/gnome-utils/gnc-main-window.c:409
+#: gnucash/gnome-utils/gnc-main-window.c:412
 msgid "Su_mmary Bar"
 msgstr "Bilah Ri_ngkasan"
 
-#: gnucash/gnome-utils/gnc-main-window.c:410
+#: gnucash/gnome-utils/gnc-main-window.c:413
 msgid "Show/hide the summary bar on this window"
 msgstr "Tampilkan/sembunyikan bilah ringkasan di jendela ini"
 
-#: gnucash/gnome-utils/gnc-main-window.c:414
+#: gnucash/gnome-utils/gnc-main-window.c:417
 msgid "Stat_us Bar"
 msgstr "Bilah Stat_us"
 
-#: gnucash/gnome-utils/gnc-main-window.c:415
+#: gnucash/gnome-utils/gnc-main-window.c:418
 msgid "Show/hide the status bar on this window"
 msgstr "Tampilkan/sembunyikan bilah status di jendela ini"
 
-#: gnucash/gnome-utils/gnc-main-window.c:427
+#: gnucash/gnome-utils/gnc-main-window.c:430
 msgid "Window _1"
 msgstr "Jendela _1"
 
-#: gnucash/gnome-utils/gnc-main-window.c:428
+#: gnucash/gnome-utils/gnc-main-window.c:431
 msgid "Window _2"
 msgstr "Jendela _2"
 
-#: gnucash/gnome-utils/gnc-main-window.c:429
+#: gnucash/gnome-utils/gnc-main-window.c:432
 msgid "Window _3"
 msgstr "Jendela _3"
 
-#: gnucash/gnome-utils/gnc-main-window.c:430
+#: gnucash/gnome-utils/gnc-main-window.c:433
 msgid "Window _4"
 msgstr "Jendela _4"
 
-#: gnucash/gnome-utils/gnc-main-window.c:431
+#: gnucash/gnome-utils/gnc-main-window.c:434
 msgid "Window _5"
 msgstr "Jendela _5"
 
-#: gnucash/gnome-utils/gnc-main-window.c:432
+#: gnucash/gnome-utils/gnc-main-window.c:435
 msgid "Window _6"
 msgstr "Jendela _6"
 
-#: gnucash/gnome-utils/gnc-main-window.c:433
+#: gnucash/gnome-utils/gnc-main-window.c:436
 msgid "Window _7"
 msgstr "Jendela _7"
 
-#: gnucash/gnome-utils/gnc-main-window.c:434
+#: gnucash/gnome-utils/gnc-main-window.c:437
 msgid "Window _8"
 msgstr "Jendela _8"
 
-#: gnucash/gnome-utils/gnc-main-window.c:435
+#: gnucash/gnome-utils/gnc-main-window.c:438
 msgid "Window _9"
 msgstr "Jendela _9"
 
-#: gnucash/gnome-utils/gnc-main-window.c:436
+#: gnucash/gnome-utils/gnc-main-window.c:439
 msgid "Window _0"
 msgstr "Jendela _0"
 
-#: gnucash/gnome-utils/gnc-main-window.c:1239
+#: gnucash/gnome-utils/gnc-main-window.c:1253
 #, c-format
 msgid "Save changes to file %s before closing?"
 msgstr "Simpan perubahan pada berkas %s sebelum ditutup?"
 
-#: gnucash/gnome-utils/gnc-main-window.c:1242
+#: gnucash/gnome-utils/gnc-main-window.c:1256
 #, c-format
 msgid ""
 "If you don't save, changes from the past %d hours and %d minutes will be "
@@ -8753,7 +8813,7 @@ msgstr ""
 "Jika Anda tidak menyimpannya, perubahan dari %d jam dan %d menit sebelumnya "
 "akan dibuang."
 
-#: gnucash/gnome-utils/gnc-main-window.c:1244
+#: gnucash/gnome-utils/gnc-main-window.c:1258
 #, c-format
 msgid ""
 "If you don't save, changes from the past %d days and %d hours will be "
@@ -8762,59 +8822,72 @@ msgstr ""
 "Jika Anda tidak menyimpannya, perubahan dari %d hari dan %d jam sebelumnya "
 "akan dibuang."
 
-#: gnucash/gnome-utils/gnc-main-window.c:1292
+#: gnucash/gnome-utils/gnc-main-window.c:1306
 msgid "Close _Without Saving"
 msgstr "Tutup _Tanpa Menyimpan"
 
+#: gnucash/gnome-utils/gnc-main-window.c:1437
+msgid "This window is closing and will not be restored."
+msgstr "Jendela ini sedang menutup dan tidak akan dikembalikan."
+
+#: gnucash/gnome-utils/gnc-main-window.c:1443
+msgid "Close Window?"
+msgstr "Tutup Jendela?"
+
 #. Translators: This string is shown in the window title if this
 #. document is, well, read-only.
-#: gnucash/gnome-utils/gnc-main-window.c:1523
+#: gnucash/gnome-utils/gnc-main-window.c:1569
 msgid "(read-only)"
 msgstr "(hanya-baca)"
 
-#: gnucash/gnome-utils/gnc-main-window.c:1531
+#: gnucash/gnome-utils/gnc-main-window.c:1577
 msgid "Unsaved Book"
 msgstr "Buku Belum Disimpan"
 
-#: gnucash/gnome-utils/gnc-main-window.c:1691
+#: gnucash/gnome-utils/gnc-main-window.c:1737
 msgid "Last modified on %a, %b %d, %Y at %I:%M %p"
 msgstr "Perubahan terakhir pada %a, %b %d, %Y jam %I:%M %p"
 
 #. Translators: This message appears in the status bar after opening the file.
-#: gnucash/gnome-utils/gnc-main-window.c:1694
+#: gnucash/gnome-utils/gnc-main-window.c:1740
 #, c-format
 msgid "File %s opened. %s"
 msgstr "Berkas %s dibuka. %s"
 
-#: gnucash/gnome-utils/gnc-main-window.c:2778
+#: gnucash/gnome-utils/gnc-main-window.c:2793
+msgctxt "lower case key for short cut to 'Accounts'"
+msgid "a"
+msgstr "a"
+
+#: gnucash/gnome-utils/gnc-main-window.c:2883
 msgid "Unable to save to database."
 msgstr "Tak dapat menyimpan ke basis data."
 
-#: gnucash/gnome-utils/gnc-main-window.c:2780
+#: gnucash/gnome-utils/gnc-main-window.c:2885
 msgid "Unable to save to database: Book is marked read-only."
 msgstr "Tak dapat menyimpan ke basis data: Buku ditandai hanya-baca."
 
-#: gnucash/gnome-utils/gnc-main-window.c:4122
+#: gnucash/gnome-utils/gnc-main-window.c:4231
 msgid "Book Options"
 msgstr "Opsi Buku"
 
 #. Translators: %s will be replaced with the current year
-#: gnucash/gnome-utils/gnc-main-window.c:4507
+#: gnucash/gnome-utils/gnc-main-window.c:4616
 #, c-format
 msgid "Copyright © 1997-%s The GnuCash contributors."
 msgstr "Hak Cipta © 1997-%s para kontributor GnuCash."
 
-#: gnucash/gnome-utils/gnc-main-window.c:4519
+#: gnucash/gnome-utils/gnc-main-window.c:4628
 #: gnucash/gnome-utils/gnc-splash.c:97
 msgid "Version"
 msgstr "Versi"
 
-#: gnucash/gnome-utils/gnc-main-window.c:4520
-#: gnucash/gnome-utils/gnc-splash.c:98 gnucash/gnucash-core-app.cpp:505
+#: gnucash/gnome-utils/gnc-main-window.c:4629
+#: gnucash/gnome-utils/gnc-splash.c:98 gnucash/gnucash-core-app.cpp:502
 msgid "Build ID"
 msgstr "Build ID"
 
-#: gnucash/gnome-utils/gnc-main-window.c:4528
+#: gnucash/gnome-utils/gnc-main-window.c:4637
 msgid "Accounting for personal and small business finance."
 msgstr "Program akuntansi untuk mengelola keuangan personal dan usaha kecil."
 
@@ -8822,11 +8895,11 @@ msgstr "Program akuntansi untuk mengelola keuangan personal dan usaha kecil."
 #. * Enter your name or that of your team and an email contact for feedback.
 #. * The string can have multiple rows, so you can also add a list of
 #. * contributors.
-#: gnucash/gnome-utils/gnc-main-window.c:4537
+#: gnucash/gnome-utils/gnc-main-window.c:4646
 msgid "translator-credits"
 msgstr "Triyan W. Nugroho <triyan.wn at gmail.com>, 2020"
 
-#: gnucash/gnome-utils/gnc-main-window.c:4540
+#: gnucash/gnome-utils/gnc-main-window.c:4649
 msgid "Visit the GnuCash website."
 msgstr "Kunjungi situs web GnuCash."
 
@@ -8961,17 +9034,17 @@ msgstr "Seimbangkan secara _manual"
 #: 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 "Izinkan GnuCash men_ambahkan sebuah pemecahan penyesuaian"
+msgstr "Izinkan GnuCash men_ambahkan sebuah split penyesuaian"
 
 #: gnucash/gnome-utils/gnc-tree-control-split-reg.c:294
 #: gnucash/register/ledger-core/split-register-control.c:145
 msgid "Adjust current account _split total"
-msgstr "_Sesuaikan total pemecahan akun saat ini"
+msgstr "_Sesuaikan total split akun saat ini"
 
 #: gnucash/gnome-utils/gnc-tree-control-split-reg.c:300
 #: gnucash/register/ledger-core/split-register-control.c:151
 msgid "Adjust _other account split total"
-msgstr "Sesuaikan t_otal pemecahan akun lain"
+msgstr "Sesuaikan t_otal split akun lain"
 
 #: gnucash/gnome-utils/gnc-tree-control-split-reg.c:311
 #: gnucash/register/ledger-core/split-register-control.c:162
@@ -8983,14 +9056,14 @@ msgstr "_Seimbangkan Ulang"
 #: gnucash/register/ledger-core/split-register-control.c:1312
 #: gnucash/register/ledger-core/split-register-control.c:1325
 msgid "This register does not support editing exchange rates."
-msgstr "Register ini tidak mendukung penyuntingan kurs."
+msgstr "Register ini tidak mendukung penyuntingan nilai tukar."
 
 #: gnucash/gnome-utils/gnc-tree-control-split-reg.c:421
 #: gnucash/register/ledger-core/split-register-control.c:1366
 #: gnucash/register/ledger-core/split-register-control.c:1441
 msgid ""
 "You need to expand the transaction in order to modify its exchange rates."
-msgstr ""
+msgstr "Anda perlu mengekspansi transaksi untuk mengubah nilai tukarnya."
 
 #: gnucash/gnome-utils/gnc-tree-control-split-reg.c:461
 #: gnucash/register/ledger-core/split-register-control.c:1413
@@ -9001,13 +9074,15 @@ msgstr "Kedua mata uang yang bersangkutan setara satu sama lain."
 #: gnucash/gnome-utils/gnc-tree-control-split-reg.c:1253
 #: gnucash/register/ledger-core/split-register.c:515
 msgid "New Split Information"
-msgstr "Informasi Pemecahan Baru"
+msgstr "Informasi Split Baru"
 
 #: gnucash/gnome-utils/gnc-tree-control-split-reg.c:1303
 msgid ""
 "This is the split anchoring this transaction to the register. You can not "
 "duplicate it from this register window."
 msgstr ""
+"Ini adalah split yang menghubungkan transaksi ini ke register. Anda tidak "
+"dapat menduplikasinya dari jendela register ini."
 
 #: gnucash/gnome-utils/gnc-tree-control-split-reg.c:1357
 #: gnucash/gnome-utils/gnc-tree-util-split-reg.c:477
@@ -9023,6 +9098,9 @@ msgid ""
 "Threshold\" set for this book. This setting can be changed in File-"
 ">Properties->Accounts."
 msgstr ""
+"Tanggal yang dimasukkan pada transaksi yang diduplikasi lebih lama daripada "
+"\"Ambang Batas Hanya-Baca\" yang disetel untuk buku ini. Pengaturan ini "
+"dapat diubah di Berkas->Properti->Akun."
 
 #. Translators: This message will be presented when a user *
 #. * attempts to record a transaction without splits
@@ -9045,9 +9123,8 @@ msgstr "_Kembali"
 
 #: gnucash/gnome-utils/gnc-tree-control-split-reg.c:1780
 #: gnucash/register/ledger-core/split-register-control.c:1830
-#, fuzzy
 msgid "Mark split as unreconciled?"
-msgstr "_Tandai"
+msgstr "Tandai split sebagai tak direkonsiliasi?"
 
 #: gnucash/gnome-utils/gnc-tree-control-split-reg.c:1782
 #: gnucash/register/ledger-core/split-register-control.c:1832
@@ -9055,38 +9132,46 @@ msgid ""
 "You are about to mark a reconciled split as unreconciled. Doing so might "
 "make future reconciliation difficult! Continue with this change?"
 msgstr ""
+"Anda akan menandai sebuah split yang direkonsiliasi menjadi tak "
+"direkonsiliasi. Hal itu mungkin akan menjadikan rekonsiliasi yang akan "
+"datang menjadi sulit! Lanjutkan dengan perubahan ini?"
 
 #: gnucash/gnome-utils/gnc-tree-control-split-reg.c:1826
 #: gnucash/register/ledger-core/split-register-control.c:1849
 msgid "_Unreconcile"
-msgstr ""
+msgstr "Tak Direk_onsiliasi"
 
 #: gnucash/gnome-utils/gnc-tree-control-split-reg.c:1911
 #: gnucash/register/ledger-core/split-register-model.c:2226
-#, fuzzy
 msgid "Change reconciled split?"
-msgstr "pecah"
+msgstr "Ubah split yang direkonsiliasi?"
 
 #: gnucash/gnome-utils/gnc-tree-control-split-reg.c:1913
 msgid ""
 "You are about to change a reconciled split. Doing so might make future "
 "reconciliation difficult! Continue with this change?"
 msgstr ""
+"Anda akan mengubah sebuah split yang direkonsiliasi. Hal itu mungkin akan "
+"menjadikan rekonsiliasi yang akan datang menjadi sulit! Lanjutkan dengan "
+"perubahan ini?"
 
 #: gnucash/gnome-utils/gnc-tree-control-split-reg.c:1918
 msgid "Change split linked to a reconciled split?"
-msgstr ""
+msgstr "Ubah split yang tertaut ke sebuah split yang direkonsiliasi?"
 
 #: gnucash/gnome-utils/gnc-tree-control-split-reg.c:1920
 msgid ""
 "You are about to change a split that is linked to a reconciled split. Doing "
 "so might make future reconciliation difficult! Continue with this change?"
 msgstr ""
+"Anda akan mengubah sebuah split yang tertaut ke sebuah split yang "
+"direkonsiliasi. Hal itu mungkin akan menjadikan rekonsiliasi yang akan "
+"datang menjadi sulit! Lanjutkan dengan perubahan ini?"
 
 #: gnucash/gnome-utils/gnc-tree-control-split-reg.c:1934
 #: gnucash/register/ledger-core/split-register-model.c:2250
 msgid "Chan_ge Split"
-msgstr "Simpa_n Pemecahan"
+msgstr "Uba_h Split"
 
 #: gnucash/gnome-utils/gnc-tree-control-split-reg.c:1959
 #: gnucash/register/ledger-core/gncEntryLedger.c:86
@@ -9097,51 +9182,45 @@ msgstr "Akun %s tidak ada. Apakah Anda ingin membuatnya?"
 
 #: gnucash/gnome-utils/gnc-tree-control-split-reg.c:2121
 msgid "You can not paste from the general journal to a register."
-msgstr ""
+msgstr "Anda tidak dapat menempel dari jurnal umum ke register."
 
-#: gnucash/gnome-utils/gnc-tree-model-account.c:753
+#: gnucash/gnome-utils/gnc-tree-model-account.c:754
 msgid "New top level account"
 msgstr "Akun tingkat atas baru"
 
 #: gnucash/gnome-utils/gnc-tree-model-split-reg.c:2855
 #: gnucash/register/ledger-core/split-register.c:2620
-#, fuzzy
 msgctxt "Action Column"
 msgid "Deposit"
-msgstr "aksi: deposito"
+msgstr "Setoran"
 
 #: gnucash/gnome-utils/gnc-tree-model-split-reg.c:2856
 #: gnucash/register/ledger-core/split-register.c:2621
-#, fuzzy
 msgid "Withdraw"
-msgstr "penarikan"
+msgstr "Penarikan"
 
 #: gnucash/gnome-utils/gnc-tree-model-split-reg.c:2857
 #: gnucash/register/ledger-core/split-register.c:2622
-#, fuzzy
 msgid "Check"
-msgstr "Centang"
+msgstr "Cek"
 
 #: gnucash/gnome-utils/gnc-tree-model-split-reg.c:2859
 #: gnucash/gnome-utils/gnc-tree-model-split-reg.c:2890
 #: gnucash/register/ledger-core/split-register.c:2624
 #: gnucash/register/ledger-core/split-register.c:2655
-#, fuzzy
 msgid "ATM Deposit"
-msgstr "aksi: ATM"
+msgstr "Setoran ATM"
 
 #: gnucash/gnome-utils/gnc-tree-model-split-reg.c:2860
 #: gnucash/register/ledger-core/split-register.c:2625
 #: gnucash/register/ledger-core/split-register.c:2656
-#, fuzzy
 msgid "ATM Draw"
-msgstr "aksi: ATM"
+msgstr "Penarikan ATM"
 
 #: gnucash/gnome-utils/gnc-tree-model-split-reg.c:2861
 #: gnucash/register/ledger-core/split-register.c:2626
-#, fuzzy
 msgid "Teller"
-msgstr "aksi: Kasir"
+msgstr "Kasir"
 
 #: gnucash/gnome-utils/gnc-tree-model-split-reg.c:2862
 #: gnucash/gnome-utils/gnc-tree-view-split-reg.c:2970
@@ -9150,10 +9229,9 @@ msgstr "aksi: Kasir"
 #: gnucash/register/ledger-core/gncEntryLedgerModel.c:529
 #: gnucash/register/ledger-core/gncEntryLedgerModel.c:1093
 #: gnucash/register/ledger-core/split-register.c:2627
-#: libgnucash/engine/Account.cpp:150 libgnucash/engine/Account.cpp:164
-#, fuzzy
+#: libgnucash/engine/Account.cpp:151 libgnucash/engine/Account.cpp:165
 msgid "Charge"
-msgstr "Kiat-kiat seperti \"Jangan biarkan muatan baterai terlalu rendah\"."
+msgstr "Biaya"
 
 #: gnucash/gnome-utils/gnc-tree-model-split-reg.c:2864
 #: gnucash/register/ledger-core/split-register.c:2629
@@ -9161,9 +9239,8 @@ msgstr "Kiat-kiat seperti \"Jangan biarkan muatan baterai terlalu rendah\"."
 #: gnucash/report/reports/standard/receipt.scm:210
 #: gnucash/report/reports/support/receipt.eguile.scm:278
 #: gnucash/report/reports/support/receipt.eguile.scm:285
-#, fuzzy
 msgid "Receipt"
-msgstr "Kirim nota pesan diterima ke “%s”"
+msgstr "Kuitansi"
 
 #: gnucash/gnome-utils/gnc-tree-model-split-reg.c:2865
 #: gnucash/gnome-utils/gnc-tree-model-split-reg.c:2879
@@ -9177,11 +9254,10 @@ msgstr "Kirim nota pesan diterima ke “%s”"
 #: gnucash/register/ledger-core/split-register.c:2680
 #: gnucash/register/ledger-core/split-register.c:2691
 #: gnucash/register/ledger-core/split-register.c:2723
-#: libgnucash/engine/Account.cpp:145 libgnucash/engine/Account.cpp:166
-#: libgnucash/engine/Account.cpp:174 libgnucash/engine/Account.cpp:175
-#, fuzzy
+#: libgnucash/engine/Account.cpp:146 libgnucash/engine/Account.cpp:167
+#: libgnucash/engine/Account.cpp:175 libgnucash/engine/Account.cpp:176
 msgid "Increase"
-msgstr "Perbesar ukuran teks"
+msgstr "Tambah"
 
 #: gnucash/gnome-utils/gnc-tree-model-split-reg.c:2866
 #: gnucash/gnome-utils/gnc-tree-model-split-reg.c:2880
@@ -9195,11 +9271,10 @@ msgstr "Perbesar ukuran teks"
 #: gnucash/register/ledger-core/split-register.c:2681
 #: gnucash/register/ledger-core/split-register.c:2692
 #: gnucash/register/ledger-core/split-register.c:2724
-#: libgnucash/engine/Account.cpp:146 libgnucash/engine/Account.cpp:154
-#: libgnucash/engine/Account.cpp:155 libgnucash/engine/Account.cpp:165
-#, fuzzy
+#: libgnucash/engine/Account.cpp:147 libgnucash/engine/Account.cpp:155
+#: libgnucash/engine/Account.cpp:156 libgnucash/engine/Account.cpp:166
 msgid "Decrease"
-msgstr "Perkecil ukuran teks"
+msgstr "Kurang"
 
 #: gnucash/gnome-utils/gnc-tree-model-split-reg.c:2868
 #: gnucash/register/ledger-core/split-register.c:2633
@@ -9234,9 +9309,8 @@ msgstr "Deposit Otomatis"
 
 #: gnucash/gnome-utils/gnc-tree-model-split-reg.c:2873
 #: gnucash/register/ledger-core/split-register.c:2638
-#, fuzzy
 msgid "Wire"
-msgstr "Tambahkan outline kawat untuk semua geometri"
+msgstr "Kawat"
 
 #: gnucash/gnome-utils/gnc-tree-model-split-reg.c:2875
 #: gnucash/register/ledger-core/split-register.c:2640
@@ -9261,8 +9335,8 @@ msgstr "Penarikan Langsung"
 #: gnucash/register/ledger-core/split-register.c:2693
 #: gnucash/register/ledger-core/split-register.c:2698
 #: gnucash/register/ledger-core/split-register.c:2725
-#: libgnucash/engine/Account.cpp:147 libgnucash/engine/Account.cpp:148
-#: libgnucash/engine/Account.cpp:149
+#: libgnucash/engine/Account.cpp:148 libgnucash/engine/Account.cpp:149
+#: libgnucash/engine/Account.cpp:150
 msgid "Buy"
 msgstr "Beli"
 
@@ -9284,8 +9358,8 @@ msgstr "Beli"
 #: gnucash/register/ledger-core/split-register.c:2694
 #: gnucash/register/ledger-core/split-register.c:2699
 #: gnucash/register/ledger-core/split-register.c:2726
-#: libgnucash/engine/Account.cpp:167 libgnucash/engine/Account.cpp:168
-#: libgnucash/engine/Account.cpp:169
+#: libgnucash/engine/Account.cpp:168 libgnucash/engine/Account.cpp:169
+#: libgnucash/engine/Account.cpp:170
 msgid "Sell"
 msgstr "Jual"
 
@@ -9305,23 +9379,23 @@ msgstr "Penarikan ATM"
 #: gnucash/gnome-utils/gnc-tree-model-split-reg.c:2921
 #: gnucash/gnome-utils/gnc-tree-view-split-reg.c:2981
 #: gnucash/register/ledger-core/split-register.c:2686
-#: libgnucash/engine/Account.cpp:171
+#: libgnucash/engine/Account.cpp:172
 msgid "Rebate"
 msgstr "Potongan"
 
 #: gnucash/gnome-utils/gnc-tree-model-split-reg.c:2922
 #: gnucash/register/ledger-core/split-register.c:2687
 msgid "Paycheck"
-msgstr ""
+msgstr "Gaji"
 
 #: gnucash/gnome-utils/gnc-tree-model-split-reg.c:2935
 #: gnucash/import-export/qif-imp/qif-dialog-utils.scm:72
 #: gnucash/import-export/qif-imp/qif-dialog-utils.scm:76
 #: gnucash/register/ledger-core/split-register.c:2700
-#: gnucash/report/reports/standard/balance-sheet.scm:502
+#: gnucash/report/reports/standard/balance-sheet.scm:503
 #: gnucash/report/reports/standard/balsheet-pnl.scm:1099
-#: gnucash/report/reports/standard/budget-balance-sheet.scm:723
-#: libgnucash/app-utils/gnc-ui-util.c:1017 libgnucash/engine/Account.cpp:4324
+#: gnucash/report/reports/standard/budget-balance-sheet.scm:724
+#: libgnucash/app-utils/gnc-ui-util.c:1044 libgnucash/engine/Account.cpp:4371
 msgid "Equity"
 msgstr "Ekuitas"
 
@@ -9342,7 +9416,7 @@ msgstr "Ekuitas"
 #: gnucash/report/reports/standard/price-scatter.scm:312
 #: gnucash/report/reports/standard/price-scatter.scm:326
 #: gnucash/report/reports/standard/register.scm:150
-#: gnucash/report/reports/standard/register.scm:422
+#: gnucash/report/reports/standard/register.scm:393
 #: gnucash/report/trep-engine.scm:955 gnucash/report/trep-engine.scm:1079
 #: gnucash/report/trep-engine.scm:1262
 msgid "Price"
@@ -9351,43 +9425,39 @@ msgstr "Harga"
 #: gnucash/gnome-utils/gnc-tree-model-split-reg.c:2945
 #: gnucash/register/ledger-core/split-register.c:2710
 msgid "Dividend"
-msgstr ""
+msgstr "Dividen"
 
 #: gnucash/gnome-utils/gnc-tree-model-split-reg.c:2948
 #: gnucash/register/ledger-core/split-register.c:2713
 msgid "LTCG"
-msgstr ""
+msgstr "LTCG"
 
 #: gnucash/gnome-utils/gnc-tree-model-split-reg.c:2950
 #: gnucash/register/ledger-core/split-register.c:2715
 msgid "STCG"
-msgstr ""
+msgstr "STCG"
 
 #: gnucash/gnome-utils/gnc-tree-model-split-reg.c:2953
 #: gnucash/register/ledger-core/split-register.c:2718
-#, fuzzy
 msgid "Dist"
-msgstr "aksi: distribusi"
+msgstr "Dist"
 
 #: gnucash/gnome-utils/gnc-tree-util-split-reg.c:45
-#: gnucash/import-export/import-main-matcher.c:1344
-#: gnucash/report/reports/standard/register.scm:229
+#: gnucash/import-export/import-main-matcher.c:1395
+#: gnucash/report/reports/standard/register.scm:218
 #: libgnucash/engine/Split.c:1592 libgnucash/engine/Split.c:1609
-#, fuzzy
 msgid "-- Split Transaction --"
-msgstr "transaksi"
+msgstr "-- Transaksi Split --"
 
 #: gnucash/gnome-utils/gnc-tree-util-split-reg.c:46
-#, fuzzy
 msgid "-- Stock Split --"
-msgstr "pecah"
+msgstr "-- Split Saham --"
 
 #. Translators: This is a date format, see i.e.
 #. https://www.gnu.org/software/libc/manual/html_node/Formatting-Calendar-Time.html
 #: gnucash/gnome-utils/gnc-tree-util-split-reg.c:436
 #: gnucash/register/ledger-core/gncEntryLedgerModel.c:576
 #: gnucash/register/ledger-core/split-register-model.c:1000
-#, fuzzy
 msgid "%A %d %B %Y"
 msgstr "%A %d %B %Y"
 
@@ -9397,18 +9467,22 @@ msgid ""
 "Threshold\" set for this book. This setting can be changed in File-"
 ">Properties->Accounts."
 msgstr ""
+"Tanggal yang dimasukkan pada transaksi baru lebih lama daripada \"Ambang "
+"Batas Hanya-Baca\" yang disetel untuk buku ini. Pengaturan ini dapat diubah "
+"di Berkas->Properti->Akun."
 
 #: gnucash/gnome-utils/gnc-tree-util-split-reg.c:861
 msgid ""
 "Exchange Rate Canceled, using existing rate or default 1 to 1 rate if this "
 "is a new transaction."
 msgstr ""
+"Nilai Tukar Dibatalkan, menggunakan nilai tukar yang telah ada atau nilai "
+"tukar baku 1 ke 1 jika ini adalah transaksi baru."
 
 #: gnucash/gnome-utils/gnc-tree-util-split-reg.c:1122
 #: gnucash/register/ledger-core/split-register.c:2081
-#, fuzzy
 msgid "Recalculate Transaction"
-msgstr "transaksi"
+msgstr "Hitung Ulang Transaksi"
 
 #: gnucash/gnome-utils/gnc-tree-util-split-reg.c:1123
 #: gnucash/register/ledger-core/split-register.c:2082
@@ -9416,15 +9490,16 @@ msgid ""
 "The values entered for this transaction are inconsistent. Which value would "
 "you like to have recalculated?"
 msgstr ""
+"Nilai yang dimasukkan untuk transaksi ini tidak konsisten. Nilai yang mana "
+"yang Anda inginkan untuk dihitung ulang?"
 
 #: gnucash/gnome-utils/gnc-tree-util-split-reg.c:1130
 #: gnucash/gnome-utils/gnc-tree-util-split-reg.c:1132
 #: gnucash/gtkbuilder/assistant-stock-split.glade:137
 #: gnucash/register/ledger-core/split-register.c:2088
 #: gnucash/register/ledger-core/split-register.c:2091
-#, fuzzy
 msgid "_Shares"
-msgstr "saham"
+msgstr "_Saham"
 
 #: gnucash/gnome-utils/gnc-tree-util-split-reg.c:1130
 #: gnucash/gnome-utils/gnc-tree-util-split-reg.c:1137
@@ -9448,26 +9523,26 @@ msgstr "_Nilai"
 msgid "_Recalculate"
 msgstr "_Hitung Ulang"
 
-#: gnucash/gnome-utils/gnc-tree-view-account.c:782
+#: gnucash/gnome-utils/gnc-tree-view-account.c:805
 #: gnucash/gtkbuilder/assistant-csv-trans-import.glade:1005
 #: gnucash/import-export/csv-exp/csv-transactions-export.c:613
 #: gnucash/import-export/csv-exp/csv-transactions-export.c:627
 #: gnucash/report/reports/locale-specific/de_DE/taxtxf.scm:291
 #: gnucash/report/reports/standard/general-ledger.scm:72
 #: gnucash/report/reports/standard/general-ledger.scm:92
-#: gnucash/report/reports/standard/trial-balance.scm:598
+#: gnucash/report/reports/standard/trial-balance.scm:599
 #: gnucash/report/trep-engine.scm:147 gnucash/report/trep-engine.scm:981
 #: gnucash/report/trep-engine.scm:1074
 msgid "Account Name"
 msgstr "Nama Akun"
 
-#: gnucash/gnome-utils/gnc-tree-view-account.c:793
+#: gnucash/gnome-utils/gnc-tree-view-account.c:816
 #: gnucash/gnome-utils/gnc-tree-view-split-reg.c:2916
 #: gnucash/gtkbuilder/dialog-price.glade:574
 msgid "Commodity"
 msgstr "Komoditas"
 
-#: gnucash/gnome-utils/gnc-tree-view-account.c:799
+#: gnucash/gnome-utils/gnc-tree-view-account.c:822
 #: gnucash/report/options-utilities.scm:197
 #: gnucash/report/reports/standard/account-summary.scm:115
 #: gnucash/report/reports/standard/general-ledger.scm:74
@@ -9477,127 +9552,122 @@ msgstr "Komoditas"
 msgid "Account Code"
 msgstr "Kode Akun"
 
-#: gnucash/gnome-utils/gnc-tree-view-account.c:811
-#, fuzzy
+#: gnucash/gnome-utils/gnc-tree-view-account.c:834
 msgid "Last Num"
-msgstr "%A yang lalu"
+msgstr "Num Terakhir"
 
-#: gnucash/gnome-utils/gnc-tree-view-account.c:817
-#, fuzzy
+#: gnucash/gnome-utils/gnc-tree-view-account.c:840
 msgid "Present"
-msgstr "Sajikan"
+msgstr "Sekarang"
 
-#: gnucash/gnome-utils/gnc-tree-view-account.c:824
-#, fuzzy
+#: gnucash/gnome-utils/gnc-tree-view-account.c:847
 msgid "Present (Report)"
-msgstr "Lapo_rkan"
+msgstr "Sekarang (Laporan)"
 
-#: gnucash/gnome-utils/gnc-tree-view-account.c:838
-#, fuzzy
+#: gnucash/gnome-utils/gnc-tree-view-account.c:861
 msgid "Balance (Report)"
-msgstr "neraca saldo"
+msgstr "Saldo (Laporan)"
 
-#: gnucash/gnome-utils/gnc-tree-view-account.c:845
-#, fuzzy
+#: gnucash/gnome-utils/gnc-tree-view-account.c:868
 msgid "Balance (Period)"
-msgstr "_Periode:"
+msgstr "Saldo (Periode)"
 
-#: gnucash/gnome-utils/gnc-tree-view-account.c:859
-#, fuzzy
+#: gnucash/gnome-utils/gnc-tree-view-account.c:882
 msgid "Cleared (Report)"
-msgstr "Lapo_rkan"
+msgstr "Klir (Laporan)"
 
-#: gnucash/gnome-utils/gnc-tree-view-account.c:873
-#, fuzzy
+#: gnucash/gnome-utils/gnc-tree-view-account.c:896
 msgid "Reconciled (Report)"
-msgstr "Lapo_rkan"
+msgstr "Direkonsiliasi (Laporan)"
 
-#: gnucash/gnome-utils/gnc-tree-view-account.c:880
-#, fuzzy
+#: gnucash/gnome-utils/gnc-tree-view-account.c:903
 msgid "Last Reconcile Date"
-msgstr "penarikan"
+msgstr "Tanggal Rekonsiliasi Terakhir"
 
-#: gnucash/gnome-utils/gnc-tree-view-account.c:886
+#: gnucash/gnome-utils/gnc-tree-view-account.c:909
 msgid "Future Minimum"
 msgstr "Minimum yang Akan Datang"
 
-#: gnucash/gnome-utils/gnc-tree-view-account.c:893
+#: gnucash/gnome-utils/gnc-tree-view-account.c:916
 msgid "Future Minimum (Report)"
 msgstr "Minimum yang Akan Datang (Laporan)"
 
-#: gnucash/gnome-utils/gnc-tree-view-account.c:907
+#: gnucash/gnome-utils/gnc-tree-view-account.c:930
 msgid "Total (Report)"
 msgstr "Total (Laporan)"
 
-#: gnucash/gnome-utils/gnc-tree-view-account.c:914
+#: gnucash/gnome-utils/gnc-tree-view-account.c:937
 msgid "Total (Period)"
 msgstr "Total (Periode)"
 
-#: gnucash/gnome-utils/gnc-tree-view-account.c:923
+#: gnucash/gnome-utils/gnc-tree-view-account.c:946
 msgctxt "Column header for 'Color'"
 msgid "C"
 msgstr "W"
 
-#: gnucash/gnome-utils/gnc-tree-view-account.c:931
-#: gnucash/gnome-utils/gnc-tree-view-account.c:934
+#: gnucash/gnome-utils/gnc-tree-view-account.c:954
+#: gnucash/gnome-utils/gnc-tree-view-account.c:957
 msgid "Account Color"
 msgstr "Warna Akun"
 
-#: gnucash/gnome-utils/gnc-tree-view-account.c:944
+#: gnucash/gnome-utils/gnc-tree-view-account.c:967
 msgid "Tax Info"
 msgstr "Informas Pajak"
 
-#: gnucash/gnome-utils/gnc-tree-view-account.c:958
+#: gnucash/gnome-utils/gnc-tree-view-account.c:981
 msgctxt "Column header for 'Hidden'"
 msgid "H"
 msgstr "S"
 
+#: gnucash/gnome-utils/gnc-tree-view-account.c:997
+msgctxt "Column header for 'Opening Balance'"
+msgid "O"
+msgstr "O"
+
 #. Translators: %s is a currency mnemonic.
-#: gnucash/gnome-utils/gnc-tree-view-account.c:1787
-#, fuzzy, c-format
+#: gnucash/gnome-utils/gnc-tree-view-account.c:1818
+#, c-format
 msgid "Present (%s)"
-msgstr "Dipresentasi Pada"
+msgstr "Sekarang (%s)"
 
 #. Translators: %s is a currency mnemonic.
-#: gnucash/gnome-utils/gnc-tree-view-account.c:1790
+#: gnucash/gnome-utils/gnc-tree-view-account.c:1821
 #: gnucash/gnome-utils/gnc-tree-view-owner.c:924
-#, fuzzy, c-format
+#, c-format
 msgid "Balance (%s)"
-msgstr "seimbangkan"
+msgstr "Saldo (%s)"
 
 #. Translators: %s is a currency mnemonic.
-#: gnucash/gnome-utils/gnc-tree-view-account.c:1793
-#, fuzzy, c-format
+#: gnucash/gnome-utils/gnc-tree-view-account.c:1824
+#, c-format
 msgid "Cleared (%s)"
-msgstr "Senarai ubah dibersihkan"
+msgstr "Klir (%s)"
 
 #. Translators: %s is a currency mnemonic.
-#: gnucash/gnome-utils/gnc-tree-view-account.c:1796
-#, fuzzy, c-format
+#: gnucash/gnome-utils/gnc-tree-view-account.c:1827
+#, c-format
 msgid "Reconciled (%s)"
-msgstr "status transaksi: rekonsiliasi"
+msgstr "Direkonsiliasi (%s)"
 
 #. Translators: %s is a currency mnemonic.
-#: gnucash/gnome-utils/gnc-tree-view-account.c:1799
+#: gnucash/gnome-utils/gnc-tree-view-account.c:1830
 #, c-format
 msgid "Future Minimum (%s)"
 msgstr "Minimum yang Akan Datang (%s)"
 
 #. Translators: %s is a currency mnemonic.
-#: gnucash/gnome-utils/gnc-tree-view-account.c:1802
-#, fuzzy, c-format
+#: gnucash/gnome-utils/gnc-tree-view-account.c:1833
+#, c-format
 msgid "Total (%s)"
-msgstr "Total %s"
+msgstr "Total (%s)"
 
 #: gnucash/gnome-utils/gnc-tree-view-commodity.c:357
-#, fuzzy
 msgid "Namespace"
-msgstr "Namespace:"
+msgstr "Namespace"
 
 #: gnucash/gnome-utils/gnc-tree-view-commodity.c:374
-#, fuzzy
 msgid "Print Name"
-msgstr "Untuk mencetak:"
+msgstr "Cetak Nama"
 
 #: gnucash/gnome-utils/gnc-tree-view-commodity.c:380
 msgid "Display symbol"
@@ -9611,7 +9681,7 @@ msgstr "Nama Unik"
 #. National Securities Identifying Number.
 #: gnucash/gnome-utils/gnc-tree-view-commodity.c:393
 msgid "ISIN/CUSIP"
-msgstr ""
+msgstr "ISIN/CUSIP"
 
 #: gnucash/gnome-utils/gnc-tree-view-commodity.c:399
 msgid "Fraction"
@@ -9622,7 +9692,6 @@ msgid "Get Quotes"
 msgstr "Dapatkan Harga Penawaran"
 
 #: gnucash/gnome-utils/gnc-tree-view-commodity.c:407
-#, fuzzy
 msgctxt "Column letter for 'Get Quotes'"
 msgid "Q"
 msgstr "Q"
@@ -9630,20 +9699,17 @@ msgstr "Q"
 #: gnucash/gnome-utils/gnc-tree-view-commodity.c:413
 #: gnucash/gnome-utils/gnc-tree-view-price.c:414
 #: gnucash/gtkbuilder/dialog-price.glade:646
-#, fuzzy
 msgid "Source"
 msgstr "Sumber"
 
 #: gnucash/gnome-utils/gnc-tree-view-commodity.c:418
-#, fuzzy
 msgid "Timezone"
-msgstr "Zona waktu"
+msgstr "Zona Waktu"
 
 #: gnucash/gnome-utils/gnc-tree-view-owner.c:353
 #: gnucash/gtkbuilder/dialog-customer.glade:132
-#, fuzzy
 msgid "Customer Number"
-msgstr "Nasabah Kunci"
+msgstr "Nomor Pelanggan"
 
 #: gnucash/gnome-utils/gnc-tree-view-owner.c:361
 #: gnucash/gtkbuilder/dialog-vendor.glade:133
@@ -9659,7 +9725,7 @@ msgstr "Nomor Pegawai"
 #: gnucash/report/reports/aging.scm:47 gnucash/report/reports/aging.scm:681
 #: gnucash/report/reports/standard/new-aging.scm:51
 msgid "Address Name"
-msgstr ""
+msgstr "Nama Alamat"
 
 #: gnucash/gnome-utils/gnc-tree-view-owner.c:422
 #: gnucash/import-export/customer-import/dialog-customer-import-gui.c:131
@@ -9731,7 +9797,7 @@ msgstr "Bilah Status"
 
 #: gnucash/gnome-utils/gnc-tree-view-split-reg.c:1247
 #: gnucash/report/reports/standard/balsheet-eg.scm:386
-#: libgnucash/engine/Scrub.c:392
+#: libgnucash/engine/Scrub.c:407
 msgid "Imbalance"
 msgstr "Tak-seimbang"
 
@@ -9791,7 +9857,7 @@ msgstr "Referensi / Aksi"
 
 #: gnucash/gnome-utils/gnc-tree-view-split-reg.c:2767
 msgid "T-Number"
-msgstr ""
+msgstr "Nomor-T"
 
 #: gnucash/gnome-utils/gnc-tree-view-split-reg.c:2773
 msgid "Number / Action"
@@ -9812,14 +9878,12 @@ msgstr "Deskripsi / Catatan / Memo"
 #: gnucash/gnome-utils/gnc-tree-view-split-reg.c:2848
 #: gnucash/import-export/csv-exp/csv-transactions-export.c:625
 #: gnucash/import-export/csv-imp/gnc-imp-props-tx.cpp:63
-#, fuzzy
 msgid "Void Reason"
-msgstr "Alasan:"
+msgstr "Alasan Dibatalkan"
 
 #: gnucash/gnome-utils/gnc-tree-view-split-reg.c:2852
-#, fuzzy
 msgid "Accounts / Void Reason"
-msgstr "Akun"
+msgstr "Akun / Alasan Dibatalkan"
 
 #: gnucash/gnome-utils/gnc-tree-view-split-reg.c:2862
 msgid "R"
@@ -9831,19 +9895,19 @@ msgstr "Jumlah / Nilai"
 
 #: gnucash/gnome-utils/gnc-tree-view-split-reg.c:2948
 #: gnucash/import-export/csv-imp/gnc-imp-props-tx.cpp:67
-#: libgnucash/engine/Account.cpp:162
+#: libgnucash/engine/Account.cpp:163
 msgid "Withdrawal"
 msgstr "Penarikan"
 
 #: gnucash/gnome-utils/gnc-tree-view-split-reg.c:2953
-#: libgnucash/engine/Account.cpp:163
+#: libgnucash/engine/Account.cpp:164
 msgid "Spend"
-msgstr ""
+msgstr "Pembelanjaan"
 
 #: gnucash/gnome-utils/gnc-tree-view-split-reg.c:3003
 #: gnucash/gnome-utils/gnc-tree-view-split-reg.c:3010
 #: gnucash/report/reports/standard/reconcile-report.scm:89
-#: libgnucash/engine/Account.cpp:161
+#: libgnucash/engine/Account.cpp:162
 msgid "Funds Out"
 msgstr "Dana Keluar"
 
@@ -9854,15 +9918,14 @@ msgstr "Rumus Kredit"
 
 #: gnucash/gnome-utils/gnc-tree-view-split-reg.c:3033
 #: gnucash/import-export/csv-imp/gnc-imp-props-tx.cpp:66
-#: libgnucash/engine/Account.cpp:142
+#: libgnucash/engine/Account.cpp:143
 msgid "Deposit"
 msgstr "Deposito"
 
 #: gnucash/gnome-utils/gnc-tree-view-split-reg.c:3038
-#: libgnucash/engine/Account.cpp:143
-#, fuzzy
+#: libgnucash/engine/Account.cpp:144
 msgid "Receive"
-msgstr "Siap untuk Menerima Berkas"
+msgstr "Penerimaan"
 
 #: gnucash/gnome-utils/gnc-tree-view-split-reg.c:3061
 #: gnucash/report/reports/standard/balsheet-pnl.scm:1268
@@ -9870,7 +9933,7 @@ msgstr "Siap untuk Menerima Berkas"
 #: gnucash/report/reports/standard/customer-summary.scm:326
 #: gnucash/report/reports/standard/net-charts.scm:371
 #: gnucash/report/reports/standard/net-charts.scm:420
-#: libgnucash/engine/Account.cpp:151 libgnucash/engine/Account.cpp:4323
+#: libgnucash/engine/Account.cpp:152 libgnucash/engine/Account.cpp:4370
 #: libgnucash/engine/gncInvoice.c:1084
 msgid "Expense"
 msgstr "Pengeluaran"
@@ -9878,7 +9941,7 @@ msgstr "Pengeluaran"
 #: gnucash/gnome-utils/gnc-tree-view-split-reg.c:3084
 #: gnucash/gnome-utils/gnc-tree-view-split-reg.c:3091
 #: gnucash/report/reports/standard/reconcile-report.scm:86
-#: libgnucash/engine/Account.cpp:141
+#: libgnucash/engine/Account.cpp:142
 msgid "Funds In"
 msgstr "Dana Masuk"
 
@@ -9921,7 +9984,7 @@ msgstr "Masukkan catatan transaksi"
 #: gnucash/gnome-utils/gnc-tree-view-split-reg.c:3215
 #: gnucash/register/ledger-core/split-register-model.c:1330
 msgid "Enter a description of the split"
-msgstr "Masukkan deskripsi pemecahan"
+msgstr "Masukkan deskripsi split"
 
 #: gnucash/gnome-utils/gnc-tree-view-split-reg.c:3202
 #: gnucash/register/ledger-core/split-register-model.c:1135
@@ -9989,7 +10052,7 @@ msgstr "Masukkan rumus debit untuk transaksi sesungguhnya"
 
 #: gnucash/gnome-utils/gnc-tree-view-sx-list.c:140
 #: gnucash/gtkbuilder/dialog-sx.glade:1041
-#: gnucash/report/html-utilities.scm:268
+#: gnucash/report/html-utilities.scm:292
 msgid "Enabled"
 msgstr "Diaktifkan"
 
@@ -10000,11 +10063,11 @@ msgstr "E"
 
 #: gnucash/gnome-utils/gnc-tree-view-sx-list.c:152
 msgid "Last Occur"
-msgstr ""
+msgstr "Terjadi Terakhir"
 
 #: gnucash/gnome-utils/gnc-tree-view-sx-list.c:157
 msgid "Next Occur"
-msgstr ""
+msgstr "Terjadi Berikutnya"
 
 #: gnucash/gnome-utils/window-main-summarybar.c:306
 #, c-format
@@ -10014,12 +10077,12 @@ msgstr "%s, Total:"
 #: gnucash/gnome-utils/window-main-summarybar.c:309
 #, c-format
 msgid "%s, Non Currency Commodities Total:"
-msgstr ""
+msgstr "%s, Total Komoditas Bukan Mata Uang:"
 
 #: gnucash/gnome-utils/window-main-summarybar.c:312
-#, fuzzy, c-format
+#, c-format
 msgid "%s, Grand Total:"
-msgstr "Total %s"
+msgstr "%s, Total Keseluruhan:"
 
 #: gnucash/gnome-utils/window-main-summarybar.c:316
 #, c-format
@@ -10032,7 +10095,7 @@ msgstr "Aset Bersih:"
 
 #: gnucash/gnome-utils/window-main-summarybar.c:422
 msgid "Profits:"
-msgstr "Keuntungan:"
+msgstr "Laba:"
 
 #: gnucash/gnucash-cli.cpp:91
 msgid "Price Quotes Retrieval Options"
@@ -10049,19 +10112,18 @@ msgstr ""
 "Jalankan perintah yang berhubungan dengan harga penawaran. Saat ini hanya "
 "satu perintah yang didukung.\n"
 "\n"
-"  get: \tDapatkan harga saat ini untuk semua mata uang asing dan saham pada "
+"  get: Dapatkan harga saat ini untuk semua mata uang asing dan saham pada "
 "berkas data GnuCash.\n"
 
 #: gnucash/gnucash-cli.cpp:97
 msgid ""
 "Regular expression determining which namespace commodities will be retrieved "
 "for"
-msgstr ""
+msgstr "Ekspresi reguler yang menentukan komoditas namespace yang akan diambil"
 
 #: gnucash/gnucash-cli.cpp:101
-#, fuzzy
 msgid "Report Generation Options"
-msgstr "Lapo_rkan"
+msgstr "Opsi Pembuatan Laporan"
 
 #: gnucash/gnucash-cli.cpp:104
 msgid ""
@@ -10072,48 +10134,45 @@ msgid ""
 "be specified to describe some saved options.\n"
 "  run: \tRun the named report in the given GnuCash datafile.\n"
 msgstr ""
+"Jalankan perintah-perintah terkait laporan. Perintah berikut didukung.\n"
+"\n"
+"  list: Tampilkan daftar laporan yang tersedia.\n"
+"  show: Menjelaskan opsi-opsi yang diubah pada laporan. Sebuah berkas data "
+"perlu ditentukan untuk menjelaskan beberapa opsi tersimpan.\n"
+"  run: Menjalankan laporan pada berkas data GnuCash yang diberikan.\n"
 
 #: gnucash/gnucash-cli.cpp:110
-#, fuzzy
 msgid "Name of the report to run\n"
-msgstr "Jalankan Dengan…"
+msgstr "Nama laporan yang akan dijalankan\n"
 
 #: gnucash/gnucash-cli.cpp:112
-#, fuzzy
 msgid "Specify export type\n"
-msgstr "Ekspor"
+msgstr "Tentukan tipe ekspor\n"
 
 #: gnucash/gnucash-cli.cpp:114
-#, fuzzy
 msgid "Output file for report\n"
-msgstr "BERKAS-FONTA BERKAS-KELUARAN"
+msgstr "Berkas keluaran untuk laporan\n"
 
 #: gnucash/gnucash-cli.cpp:129
 msgid "Unknown quotes command '{1}'"
-msgstr ""
+msgstr "Perintah kutipan tak diketahui '{1}'"
 
 #: gnucash/gnucash-cli.cpp:136 gnucash/gnucash-cli.cpp:150
 #: gnucash/gnucash.cpp:364
-#, fuzzy
 msgid "Missing data file parameter"
-msgstr "Digest hilang dari data yang diamplopkan"
+msgstr "Parameter berkas data tidak ada"
 
 #: gnucash/gnucash-cli.cpp:174
-#, fuzzy
 msgid "Missing --name parameter"
-msgstr "PARAMETER"
+msgstr "Parameter --name tidak ada"
 
 #: gnucash/gnucash-cli.cpp:182
-#, fuzzy
 msgid "Unknown report command '{1}'"
-msgstr ""
-"Perintah tidak dikenal %s\n"
-"\n"
+msgstr "Perintah laporan tak diketahui '{1}'"
 
 #: gnucash/gnucash-cli.cpp:188
-#, fuzzy
 msgid "Missing command or option"
-msgstr "Opsi baris perintah salah."
+msgstr "Perintah atau opsi tidak ada"
 
 #: gnucash/gnucash-commands.cpp:91
 msgid "No quotes retrieved. Finance::Quote isn't installed properly."
@@ -10122,104 +10181,98 @@ msgstr ""
 "benar."
 
 #: gnucash/gnucash-core-app.cpp:85
-#, fuzzy
 msgid "This is a development version. It may or may not work."
 msgstr ""
-"Sistem mungkin berjalan tidak sempurna apabila entri ini diubah atau dihapus."
+"Ini adalah versi pengembangan. Ada kemungkinan ini tidak bekerja dengan baik."
 
 #: gnucash/gnucash-core-app.cpp:86
 msgid "Report bugs and other problems to gnucash-devel at gnucash.org"
-msgstr ""
+msgstr "Laporkan kutu dan permasalahan lain ke gnucash-devel at gnucash.org"
 
 #. Translators: {1} will be replaced with a URL
 #: gnucash/gnucash-core-app.cpp:88
 msgid "You can also lookup and file bug reports at {1}"
-msgstr ""
+msgstr "Anda juga bisa melihat dan membuat laporan kutu di {1}"
 
 #. Translators: {1} will be replaced with a URL
 #: gnucash/gnucash-core-app.cpp:90
 msgid "To find the last stable version, please refer to {1}"
-msgstr ""
+msgstr "Untuk mendapatkan versi stabil terakhir, silakan mengacu ke {1}"
 
-#: gnucash/gnucash-core-app.cpp:467
+#: gnucash/gnucash-core-app.cpp:464
 msgid "- GnuCash, accounting for personal and small business finance"
-msgstr ""
+msgstr "- GnuCash, program akuntansi untuk keuangan personal dan usaha kecil"
 
-#: gnucash/gnucash-core-app.cpp:469
-#, fuzzy
+#: gnucash/gnucash-core-app.cpp:466
 msgid "{1} [options] [datafile]"
-msgstr "-1"
+msgstr "{1} [opsi] [berkas_data]"
 
-#: gnucash/gnucash-core-app.cpp:497
-#, fuzzy
+#: gnucash/gnucash-core-app.cpp:494
 msgid "GnuCash {1}"
-msgstr "1×1 (Bujur sangkar)"
+msgstr "GnuCash {1}"
 
-#: gnucash/gnucash-core-app.cpp:498
-#, fuzzy
+#: gnucash/gnucash-core-app.cpp:495
 msgid "GnuCash {1} development version"
-msgstr "Versi 1"
+msgstr "GnuCash {1} versi pengembangan"
 
-#: gnucash/gnucash-core-app.cpp:526
-#, fuzzy
+#: gnucash/gnucash-core-app.cpp:523
 msgid "Common Options"
-msgstr "_Biasa"
+msgstr "Opsi-opsi Umum"
 
-#: gnucash/gnucash-core-app.cpp:529
-#, fuzzy
+#: gnucash/gnucash-core-app.cpp:526
 msgid "Show this help message"
-msgstr "Tampilkan bantuan"
+msgstr "Tampilkan pesan bantuan ini"
 
-#: gnucash/gnucash-core-app.cpp:531
-#, fuzzy
+#: gnucash/gnucash-core-app.cpp:528
 msgid "Show GnuCash version"
-msgstr "Tampilkan versi aplikasi"
+msgstr "Tampilkan versi GnuCash"
 
-#: gnucash/gnucash-core-app.cpp:533
+#: gnucash/gnucash-core-app.cpp:530
 msgid ""
 "Enable debugging mode: provide deep detail in the logs.\n"
 "This is equivalent to: --log \"=info\" --log \"qof=info\" --log \"gnc=info\""
 msgstr ""
+"Aktifkan mode awakutu: menyediakan pesan detail di log.\n"
+"Sama dengan: --log \"=info\" --log \"qof=info\" --log \"gnc=info\""
 
-#: gnucash/gnucash-core-app.cpp:535
+#: gnucash/gnucash-core-app.cpp:532
 msgid "Enable extra/development/debugging features."
-msgstr ""
+msgstr "Aktifkan fitur-fitur eksta/pengembangan/awakutu."
 
-#: gnucash/gnucash-core-app.cpp:537
+#: gnucash/gnucash-core-app.cpp:534
 msgid ""
 "Log level overrides, of the form \"modulename={debug,info,warn,crit,"
 "error}\"\n"
 "Examples: \"--log qof=debug\" or \"--log gnc.backend.file.sx=info\"\n"
 "This can be invoked multiple times."
 msgstr ""
+"Timpaan level log, dalam bentuk \"modulename={debug,info,warn,crit,error}\"\n"
+"Contoh: \"--log qof=debug\" atau \"--log gnc.backend.file.sx=info\"\n"
+"Ini dapat dipanggil beberapa kali."
 
-#: gnucash/gnucash-core-app.cpp:539
+#: gnucash/gnucash-core-app.cpp:536
 msgid ""
 "File to log into; defaults to \"/tmp/gnucash.trace\"; can be \"stderr\" or "
 "\"stdout\"."
 msgstr ""
+"Berkas untuk menyimpan log; berkas baku adalah \"/tmp/gnucash.trace\"; bisa "
+"berupa \"stderr\" atau \"stdout\"."
 
-#: gnucash/gnucash-core-app.cpp:541
+#: gnucash/gnucash-core-app.cpp:538
 msgid ""
 "Set the prefix for gsettings schemas for gsettings queries. This can be "
 "useful to have a different settings tree while debugging."
 msgstr ""
+"Setel prefiks skema gsettings untuk kueri gsettings. Mungkin berguna untuk "
+"memiliki pohon pengaturan yang berbeda ketika pengawakutuan."
 
-#: gnucash/gnucash-core-app.cpp:543
-#, fuzzy
+#: gnucash/gnucash-core-app.cpp:540
 msgid "Hidden Options"
-msgstr ""
-"Di samping fitur-fitur dasar yang mungkin Anda harapkan dari sebuah emulator "
-"terminal, ia memiliki beberapa fitur tambahan yang menarik, seperti multi-"
-"tab dalam satu jendela, bilah alat yang bisa dikustomasi, dan kemampuan "
-"untuk mengkonfigurasi hampir semua aspek aplikasi melalui <i>opsi-opsi "
-"tersembunyi</i>. Seperti yang bisa dilihat pada cuplikan layar di atas, "
-"rilis ini juga mendukung transparansi sejati menggunakan manajer kompositor "
-"<b>Xfwm4</b> yang terintegrasi."
+msgstr "Opsi-opsi Tersembunyi"
 
-#: gnucash/gnucash-core-app.cpp:546
+#: gnucash/gnucash-core-app.cpp:543
 msgid "[datafile]"
-msgstr ""
+msgstr "[berkas_data]"
 
 #: gnucash/gnucash.cpp:224
 msgid "Checking Finance::Quote..."
@@ -10230,24 +10283,20 @@ msgid "Loading data..."
 msgstr "Memuat data..."
 
 #: gnucash/gnucash.cpp:329
-#, fuzzy
 msgid "Application Options"
-msgstr "Opsi Aplikasi:"
+msgstr "Opsi-opsi Aplikasi"
 
 #: gnucash/gnucash.cpp:332
-#, fuzzy
 msgid "Do not load the last file opened"
-msgstr "Tanggal dan waktu kapan berkas terakhir dibuka."
+msgstr "Jangan memuat berkas yang terakhir dibuka"
 
 #: gnucash/gnucash.cpp:334
-#, fuzzy
 msgid "Show help for gtk options"
-msgstr "Menampilkan opsi bantuan"
+msgstr "Tampilkan bantuan untuk opsi-opsi gtk"
 
 #: gnucash/gnucash.cpp:336
-#, fuzzy
 msgid "Deprecated Options"
-msgstr "Tak berlaku lagi"
+msgstr "Opsi-opsi Usang"
 
 #: gnucash/gnucash.cpp:339
 msgid ""
@@ -10267,6 +10316,10 @@ msgid ""
 "Please use 'gnucash-cli --quotes get --namespace <namespace> <datafile>' "
 "instead."
 msgstr ""
+"Ekspresi reguler yang menentukan komoditas namespace yang akan diambil.\n"
+"Ingat bahwa opsi ini telah usang dan akan dihapus di GnuCash 5.0.\n"
+"Silakan gunakan 'gnucash-cli --quotes get --namespace <namespace> "
+"<datafile>'."
 
 #: gnucash/gnucash.cpp:360
 msgid ""
@@ -10382,6 +10435,9 @@ msgid ""
 "closed. The numbers are the X and Y coordinates of the top left corner of "
 "the window followed by the width and height of the window."
 msgstr ""
+"Pengaturan ini menjelaskan ukuran dan posisi jendela ketika ditutup terakhir "
+"kali. Angka ini adalah koordinat X dan Y sudut kiri atas jendela diikuti "
+"dengan lebar dan tinggi jendela."
 
 #: gnucash/gschemas/org.gnucash.dialogs.business.gschema.xml.in:24
 #: gnucash/gschemas/org.gnucash.dialogs.business.gschema.xml.in:39
@@ -10417,6 +10473,8 @@ msgid ""
 "If set to active then tax is included by default in entries of this type. "
 "This setting is inherited by new customers and vendors."
 msgstr ""
+"Jika disetel aktif, pajak akan disertakan secara baku pada entri dengan tipe "
+"ini. Pengaturan ini diwarisi oleh pelanggan dan vendor baru."
 
 #: gnucash/gschemas/org.gnucash.dialogs.business.gschema.xml.in:112
 #: gnucash/gschemas/org.gnucash.dialogs.business.gschema.xml.in:154
@@ -10425,6 +10483,7 @@ msgstr "Bayar otomatis saat mengepos."
 
 #: gnucash/gschemas/org.gnucash.dialogs.business.gschema.xml.in:113
 #: gnucash/gtkbuilder/business-prefs.glade:196
+#, fuzzy
 msgid ""
 "At post time, automatically attempt to pay customer documents with "
 "outstanding pre-payments and counter documents. The pre-payments and "
@@ -10432,6 +10491,11 @@ msgid ""
 "are documents with opposite sign. For example for an invoice, customer "
 "credit notes and negative invoices are considered counter documents."
 msgstr ""
+"Pada saat pos, secara otomatis mencoba untuk membayar dokumen pelanggan "
+"dengan pra-pembayaran yang luar biasa dan dokumen counter. Pra-pembayaran "
+"dan dokumen jelas harus melawan pelanggan yang sama. Dokumen counter dokumen "
+"dengan tanda berlawanan. Misalnya untuk faktur, nota kredit pelanggan dan "
+"faktur negatif dianggap dokumen counter."
 
 #: gnucash/gschemas/org.gnucash.dialogs.business.gschema.xml.in:117
 msgid "Show invoices due reminder at startup"
@@ -10446,7 +10510,7 @@ msgid ""
 msgstr ""
 "Jika aktif, saat mulai GnuCash akan memeriksa apakah ada faktur yang segera "
 "jatuh tempo. Jika ada, dialog pengingat akan ditampilkan. Definisi \"segera"
-"\" diatur oleh setelan \"Hari Sebelumnya\". Jika tidak, GnuCash tidak "
+"\" diatur oleh pengaturan \"Hari Sebelumnya\". Jika tidak, GnuCash tidak "
 "memeriksa faktur jatuh tempo."
 
 #: gnucash/gschemas/org.gnucash.dialogs.business.gschema.xml.in:122
@@ -10460,7 +10524,7 @@ msgid ""
 "active."
 msgstr ""
 "Bidang ini menentukan jumlah hari sebelumnya dimana GnuCash akan memeriksa "
-"faktur jatuh tempo. Nilainya hanya digunakan jika setelan \"Beritahu saat "
+"faktur jatuh tempo. Nilainya hanya digunakan jika pengaturan \"Beritahu saat "
 "jatuh tempo\" aktif."
 
 #: gnucash/gschemas/org.gnucash.dialogs.business.gschema.xml.in:127
@@ -10499,7 +10563,7 @@ msgstr ""
 
 #: gnucash/gschemas/org.gnucash.dialogs.business.gschema.xml.in:142
 msgid "Accumulate multiple splits into one"
-msgstr "Akumulasikan beberapa pemecahan menjadi satu"
+msgstr "Akumulasikan beberapa split menjadi satu"
 
 #: gnucash/gschemas/org.gnucash.dialogs.business.gschema.xml.in:143
 msgid ""
@@ -10508,11 +10572,12 @@ msgid ""
 "overridden per invoice in the Posting dialog."
 msgstr ""
 "Jika bidang ini aktif, maka beberapa entri pada sebuah faktur yang transfer "
-"ke akun yang sama akan diakumulasikan menjadi sebuah pemecahan tunggal. "
-"Bidang ini dapat ditimpa per faktur pada dialog Pos."
+"ke akun yang sama akan diakumulasikan menjadi sebuah split tunggal. Bidang "
+"ini dapat ditimpa per faktur pada dialog Pos."
 
 #: gnucash/gschemas/org.gnucash.dialogs.business.gschema.xml.in:155
 #: gnucash/gtkbuilder/business-prefs.glade:273
+#, fuzzy
 msgid ""
 "At post time, automatically attempt to pay vendor documents with outstanding "
 "pre-payments and counter documents. The pre-payments and documents obviously "
@@ -10520,6 +10585,11 @@ msgid ""
 "opposite sign. For example for a bill, vendor credit notes and negative "
 "bills are considered counter documents."
 msgstr ""
+"Pada saat posting, otomatis mencoba untuk membayar dokumen penjual dengan "
+"pra-pembayaran yang luar biasa dan dokumen counter. Pra-pembayaran dan "
+"dokumen jelas harus melawan vendor yang sama. Dokumen counter dokumen dengan "
+"tanda berlawanan. Misalnya untuk tagihan, catatan penjual kredit dan tagihan "
+"negatif dianggap dokumen counter."
 
 #: gnucash/gschemas/org.gnucash.dialogs.business.gschema.xml.in:159
 msgid "Show bills due reminder at startup"
@@ -10534,7 +10604,7 @@ msgid ""
 msgstr ""
 "Jika aktif, saat mulai GnuCash akan memeriksa untuk melihat apakah ada "
 "tagihan yang segera akan jatuh tempo. Jika ada, ia akan menampilkan sebuah "
-"dialog pengingat. Definisi dari \"segera\" diatur oleh setelan \"Hari "
+"dialog pengingat. Definisi dari \"segera\" diatur oleh pengaturan \"Hari "
 "Sebelumnya\". Jika tidak, GnuCash tidak akan memeriksa tagihan yang jatuh "
 "tempo."
 
@@ -10549,18 +10619,20 @@ msgid ""
 "active."
 msgstr ""
 "Bidang ini menentukan jumlah hari sebelumnya dimana GnuCash akan memeriksa "
-"tagihan jatuh tempo. Nilainya hanya digunakan jika setelan \"Beritahu saat "
-"jatuh tempo\" aktif."
+"tagihan jatuh tempo. Nilainya hanya digunakan jika pengaturan \"Beritahu "
+"saat jatuh tempo\" aktif."
 
 #: gnucash/gschemas/org.gnucash.dialogs.checkprinting.gschema.xml.in:5
 msgid "GUID of predefined check format to use"
-msgstr ""
+msgstr "GUID dengan format pemeriksaan standar untuk digunakan"
 
 #: gnucash/gschemas/org.gnucash.dialogs.checkprinting.gschema.xml.in:6
 msgid ""
 "This value specifies the predefined check format to use. The number is the "
 "guid of a known check format."
 msgstr ""
+"Nilai ini menentukan format pemeriksaan standar untuk digunakan. Nomornya "
+"adalah guid dari format pemeriksaan yang umum."
 
 #: gnucash/gschemas/org.gnucash.dialogs.checkprinting.gschema.xml.in:10
 msgid "Which check position to print"
@@ -10572,6 +10644,10 @@ msgid ""
 "specifies which check position to print. The possible values are 0, 1 and 2, "
 "corresponding to the top, middle and bottom checks on the page."
 msgstr ""
+"Pada cek yang sudah tercetak sebelumnya yang berisi beberapa cek per "
+"halaman, pengaturan ini menentukan posisi cek yang akan dicetak. Nilai yang "
+"mungkin adalah 0, 1, dan 2, yang sesuai dengan cek bagian atas, tengah dan "
+"bawah pada halaman."
 
 #: gnucash/gschemas/org.gnucash.dialogs.checkprinting.gschema.xml.in:15
 #: gnucash/gschemas/org.gnucash.dialogs.checkprinting.gschema.xml.in:16
@@ -10585,10 +10661,11 @@ msgstr "Format tanggal yang digunakan"
 #: gnucash/gschemas/org.gnucash.dialogs.checkprinting.gschema.xml.in:21
 msgid "This is the numerical identifier of the predefined date format to use."
 msgstr ""
+"Ini adalah pengenal numerik dari format tanggal standar untuk digunakan."
 
 #: gnucash/gschemas/org.gnucash.dialogs.checkprinting.gschema.xml.in:25
 msgid "Custom date format"
-msgstr "Format tanggal suai"
+msgstr "Format tanggal tersuai"
 
 #: gnucash/gschemas/org.gnucash.dialogs.checkprinting.gschema.xml.in:26
 msgid ""
@@ -10597,24 +10674,30 @@ msgid ""
 "any valid strftime string; for more information about this format, read the "
 "manual page of strftime by \"man 3 strftime\"."
 msgstr ""
+"Jika format tanggal disetel untuk mengindikasikan sebuah format tanggal "
+"tersuai, nilai ini digunakan sebagai argumen ke strftime untuk membuat "
+"tanggal yang akan dicetak. Bisa berupa string strftime yang valid; untuk "
+"informasi mengenai format ini, baca halaman manual strftime dengan perintah "
+"\"man 3 strftime\"."
 
 #: gnucash/gschemas/org.gnucash.dialogs.checkprinting.gschema.xml.in:30
 msgid "Units in which the custom coordinates are expressed"
-msgstr "Satuan yang digunakan oleh koordinat suai"
+msgstr "Satuan yang digunakan oleh koordinat tersuai"
 
 #: gnucash/gschemas/org.gnucash.dialogs.checkprinting.gschema.xml.in:31
 msgid "Units in which the custom coordinates are expressed (inches, mm, ...)."
-msgstr "Satuan yang digunakan oleh koordinat suai (inci, mm, ...)."
+msgstr "Satuan yang digunakan oleh koordinat tersuai (inci, mm, ...)."
 
 #: gnucash/gschemas/org.gnucash.dialogs.checkprinting.gschema.xml.in:35
 msgid "Position of payee name"
-msgstr ""
+msgstr "Posisi nama penerima pembayaran"
 
 #: gnucash/gschemas/org.gnucash.dialogs.checkprinting.gschema.xml.in:36
 msgid ""
 "This value contains the X,Y coordinates for the start of the payee line on "
 "the check."
 msgstr ""
+"Nilai ini berisi koordinat X,Y untuk awal baris penerima pembayaran di cek."
 
 #: gnucash/gschemas/org.gnucash.dialogs.checkprinting.gschema.xml.in:40
 msgid "Position of date line"
@@ -10626,6 +10709,8 @@ msgid ""
 "the check. Coordinates are from the lower left corner of the specified check "
 "position."
 msgstr ""
+"Nilai ini berisi koordinat X,Y untuk permulaan baris tanggal di cek. "
+"Koordinat dihitung dari sudut kiri bawah dari posisi cek yang ditentukan."
 
 #: gnucash/gschemas/org.gnucash.dialogs.checkprinting.gschema.xml.in:45
 msgid "Position of check amount in words"
@@ -10637,6 +10722,9 @@ msgid ""
 "line on the check. Coordinates are from the lower left corner of the "
 "specified check position."
 msgstr ""
+"Nilai ini berisi koordinat X,Y untuk permulaan baris jumlah yang tertulis di "
+"cek. Koordinat dihitung dari sudut kiri bawah dari posisi cek yang "
+"ditentukan."
 
 #: gnucash/gschemas/org.gnucash.dialogs.checkprinting.gschema.xml.in:50
 msgid "Position of check amount in numbers"
@@ -10648,10 +10736,12 @@ msgid ""
 "amount line on the check. Coordinates are from the lower left corner of the "
 "specified check position."
 msgstr ""
+"Nilai ini berisi koordinat X,Y untuk permulaan baris jumlah numerik di cek. "
+"Koordinat dihitung dari sudut kiri bawah dari posisi cek yang ditentukan."
 
 #: gnucash/gschemas/org.gnucash.dialogs.checkprinting.gschema.xml.in:55
 msgid "Position of payee address"
-msgstr ""
+msgstr "Posisi alamat penerima pembayaran"
 
 #: gnucash/gschemas/org.gnucash.dialogs.checkprinting.gschema.xml.in:56
 msgid ""
@@ -10659,6 +10749,9 @@ msgid ""
 "line on the check. Coordinates are from the lower left corner of the "
 "specified check position."
 msgstr ""
+"Nilai ini berisi koordinat X, Y untuk permulaan baris alamat penerima "
+"pembayaran di cek. Koordinat dihitung dari sudut kiri bawah dari posisi cek "
+"yang ditentukan."
 
 #: gnucash/gschemas/org.gnucash.dialogs.checkprinting.gschema.xml.in:60
 msgid "Position of notes line"
@@ -10670,6 +10763,8 @@ msgid ""
 "the check. Coordinates are from the lower left corner of the specified check "
 "position."
 msgstr ""
+"Nilai ini berisi koordinat X,Y untuk permulaan baris catatan di cek. "
+"Koordinat dihitung dari sudut kiri bawah dari posisi cek yang ditentukan."
 
 #: gnucash/gschemas/org.gnucash.dialogs.checkprinting.gschema.xml.in:65
 msgid "Position of memo line"
@@ -10681,16 +10776,20 @@ msgid ""
 "the check. Coordinates are from the lower left corner of the specified check "
 "position."
 msgstr ""
+"Nilai ini berisi koordinat X,Y untuk permulaan baris memo di cek. Koordinat "
+"dihitung dari sudut kiri bawah dari posisi cek yang ditentukan."
 
 #: gnucash/gschemas/org.gnucash.dialogs.checkprinting.gschema.xml.in:70
 msgid "Offset for complete check"
-msgstr ""
+msgstr "Ofset untuk cek lengkap"
 
 #: gnucash/gschemas/org.gnucash.dialogs.checkprinting.gschema.xml.in:71
 msgid ""
 "This value contains the X,Y offset for the complete check. Coordinates are "
 "from the lower left corner of the specified check position."
 msgstr ""
+"Nilai ini berisi ofset X,Y untuk cek lengkap. Koordinat dihitung dari sudut "
+"kiri bawah posisi cek."
 
 #: gnucash/gschemas/org.gnucash.dialogs.checkprinting.gschema.xml.in:75
 msgid "Rotation angle"
@@ -10702,7 +10801,7 @@ msgstr "Besaran sudut untuk memutar cek."
 
 #: gnucash/gschemas/org.gnucash.dialogs.checkprinting.gschema.xml.in:80
 msgid "Position of split's amount in numbers"
-msgstr ""
+msgstr "Posisi jumlah split dalam angka"
 
 #: gnucash/gschemas/org.gnucash.dialogs.checkprinting.gschema.xml.in:81
 msgid ""
@@ -10710,11 +10809,12 @@ msgid ""
 "line on the check. Coordinates are from the lower left corner of the "
 "specified check position."
 msgstr ""
+"Nilai ini berisi koordinat X,Y untuk permulaan baris jumlah split di cek. "
+"Koordinat dihitung dari sudut kiri bawah pada posisi cek."
 
 #: gnucash/gschemas/org.gnucash.dialogs.checkprinting.gschema.xml.in:85
-#, fuzzy
 msgid "Position of split's memo line"
-msgstr "Posisi panel pratinjau memo (vertikal)"
+msgstr "Posisi baris memo split"
 
 #: gnucash/gschemas/org.gnucash.dialogs.checkprinting.gschema.xml.in:86
 msgid ""
@@ -10722,10 +10822,12 @@ msgid ""
 "line on the check. Coordinates are from the lower left corner of the "
 "specified check position."
 msgstr ""
+"Nilai ini berisi koordinat X,Y untuk permulaan baris memo split di cek. "
+"Koordinat dihitung dari sudut kiri bawah pada posisi cek."
 
 #: gnucash/gschemas/org.gnucash.dialogs.checkprinting.gschema.xml.in:90
 msgid "Position of split's account line"
-msgstr ""
+msgstr "Posisi baris akun split"
 
 #: gnucash/gschemas/org.gnucash.dialogs.checkprinting.gschema.xml.in:91
 msgid ""
@@ -10733,40 +10835,42 @@ msgid ""
 "line on the check. Coordinates are from the lower left corner of the "
 "specified check position."
 msgstr ""
+"Nilai ini berisi koordinat X,Y untuk permulaan baris akun split di cek. "
+"Koordinat dihitung dari sudut kiri bawah pada posisi cek."
 
 #: gnucash/gschemas/org.gnucash.dialogs.checkprinting.gschema.xml.in:95
-#, fuzzy
 msgid "Print the date format below the date."
-msgstr "Format Tanggal/Waktu"
+msgstr "Cetak format tanggal di bawah tanggal."
 
 #: gnucash/gschemas/org.gnucash.dialogs.checkprinting.gschema.xml.in:96
 msgid ""
 "Each time the date is printed, print the date format immediately below in 8 "
 "point type using the characters Y, M, and D."
 msgstr ""
+"Setiap kali tanggal dicetak, cetak format tanggal tepat di bawahnya dalam "
+"tipe 8 poin menggunakan karakter Y, M, dan D."
 
 #: gnucash/gschemas/org.gnucash.dialogs.checkprinting.gschema.xml.in:100
-#, fuzzy
 msgid "The default check printing font"
-msgstr "Jenis huruf yang digunakan ketika mencetak"
+msgstr "Fonta pencetakan cek baku"
 
 #: gnucash/gschemas/org.gnucash.dialogs.checkprinting.gschema.xml.in:101
 msgid ""
 "The default font to use when printing checks. This value will be overridden "
 "by any font specified in a check description file."
 msgstr ""
+"Fonta baku untuk digunakan saat mencetak cek. Nilai ini akan ditimpa oleh "
+"fonta yang ditentukan pada berkas deskripsi cek."
 
 #: gnucash/gschemas/org.gnucash.dialogs.checkprinting.gschema.xml.in:105
 #: gnucash/gschemas/org.gnucash.dialogs.checkprinting.gschema.xml.in:106
-#, fuzzy
 msgid "Print '***' before and after text."
-msgstr "Banyaknya Baris Konteks Sebelum/Setelah"
+msgstr "Cetak '***' sebelum dan setelah teks."
 
 #: gnucash/gschemas/org.gnucash.dialogs.commodities.gschema.xml.in:5
 #: gnucash/gschemas/org.gnucash.dialogs.commodities.gschema.xml.in:6
-#, fuzzy
 msgid "Show currencies in this dialog"
-msgstr "Mata Uang"
+msgstr "Tampilkan mata uang di dialog ini"
 
 #: gnucash/gschemas/org.gnucash.dialogs.export.csv.gschema.xml.in:12
 #: gnucash/gschemas/org.gnucash.dialogs.gschema.xml.in:142
@@ -10777,9 +10881,8 @@ msgstr "Mata Uang"
 #: gnucash/gschemas/org.gnucash.dialogs.import.qif.gschema.xml.in:27
 #: gnucash/import-export/aqb/gschemas/org.gnucash.dialogs.import.hbci.gschema.xml.in:55
 #: gnucash/import-export/ofx/gschemas/org.gnucash.dialogs.import.ofx.gschema.xml.in:5
-#, fuzzy
 msgid "Last pathname used"
-msgstr "Terakhir Dipakai"
+msgstr "Nama path terakhir yang digunakan"
 
 #: gnucash/gschemas/org.gnucash.dialogs.export.csv.gschema.xml.in:13
 #: gnucash/gschemas/org.gnucash.dialogs.gschema.xml.in:143
@@ -10800,32 +10903,31 @@ msgstr ""
 
 #: gnucash/gschemas/org.gnucash.dialogs.export.csv.gschema.xml.in:17
 msgid "Window geometry"
-msgstr ""
+msgstr "Geometri jendela"
 
 #: gnucash/gschemas/org.gnucash.dialogs.export.csv.gschema.xml.in:18
-#, fuzzy
 msgid "The position of paned window when it was last closed."
-msgstr "Posisi jendela (x dan y) dari jendela yang terakhir ditutup."
+msgstr "Posisi jendela berpanel saat terakhir ditutup."
 
 #: gnucash/gschemas/org.gnucash.dialogs.gschema.xml.in:102
 #: gnucash/gschemas/org.gnucash.dialogs.gschema.xml.in:103
 #: gnucash/gschemas/org.gnucash.dialogs.gschema.xml.in:184
 #: gnucash/gschemas/org.gnucash.dialogs.gschema.xml.in:185
-#, fuzzy
 msgid "Position of the horizontal pane divider."
-msgstr "Posisi panel pratinjau kontak (horisontal)"
+msgstr "Posisi pemisah panel horizontal."
 
 #: gnucash/gschemas/org.gnucash.dialogs.gschema.xml.in:135
 msgid ""
 "This setting indicates whether to search in all items in the current class, "
 "or only in 'active' items in the current class."
 msgstr ""
+"Pengaturan ini menentukan apakah melakukan pencarian pada semua item di "
+"kelas saat ini, atau hanya pada item 'aktif' di kelas saat ini."
 
 #: gnucash/gschemas/org.gnucash.dialogs.gschema.xml.in:189
 #: gnucash/gschemas/org.gnucash.dialogs.gschema.xml.in:190
-#, fuzzy
 msgid "Position of the vertical pane divider."
-msgstr "Posisi vertikal bagi panel tag"
+msgstr "Posisi pemisah panel vertikal."
 
 #: gnucash/gschemas/org.gnucash.dialogs.gschema.xml.in:204
 msgid "Show the new user window"
@@ -10840,7 +10942,7 @@ msgstr ""
 
 #: gnucash/gschemas/org.gnucash.dialogs.gschema.xml.in:219
 msgid "New hierarchy window on \"New File\""
-msgstr "Jendela hirarki baru pada \"Berkas Baru\""
+msgstr "Jendela hierarki baru pada \"Berkas Baru\""
 
 #: gnucash/gschemas/org.gnucash.dialogs.gschema.xml.in:220
 msgid ""
@@ -10854,26 +10956,31 @@ msgstr ""
 #: gnucash/gschemas/org.gnucash.dialogs.gschema.xml.in:228
 msgid "Default to 'new search' if fewer than this number of items is returned"
 msgstr ""
+"Kembali ke baku 'pencarian baru' jika lebih sedikit dari jumlah item ini "
+"yang dikembalikan"
 
 #: gnucash/gschemas/org.gnucash.dialogs.import.generic.gschema.xml.in:5
 msgid "Enable SKIP transaction action"
-msgstr ""
+msgstr "Aktifkan tindakan transaksi SKIP"
 
 #: gnucash/gschemas/org.gnucash.dialogs.import.generic.gschema.xml.in:6
-#: gnucash/gtkbuilder/dialog-preferences.glade:1915
+#: gnucash/gtkbuilder/dialog-preferences.glade:2032
 msgid ""
 "Enable the SKIP action in the transaction matcher. If enabled, a transaction "
 "whose best match's score is in the yellow zone (above the Auto-ADD threshold "
 "but below the Auto-CLEAR threshold) will be skipped by default."
 msgstr ""
+"Aktifkan tindakan ABAIKAN di pencocokan transaksi. Jika diaktifkan, "
+"transaksi dengan skor kecocokan terbaik yang berada di zona kuning (di atas "
+"ambang batas Auto-TAMBAH tetapi di bawah ambang batas Auto-KLIR) secara baku "
+"akan dilewatkan."
 
 #: gnucash/gschemas/org.gnucash.dialogs.import.generic.gschema.xml.in:10
-#, fuzzy
 msgid "Enable UPDATE match action"
-msgstr "Eksekusi aksi mutakhirkan"
+msgstr "Aktifkan tindakan kecocokan UPDATE"
 
 #: gnucash/gschemas/org.gnucash.dialogs.import.generic.gschema.xml.in:11
-#: gnucash/gtkbuilder/dialog-preferences.glade:1934
+#: gnucash/gtkbuilder/dialog-preferences.glade:2051
 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 "
@@ -10881,11 +10988,15 @@ msgid ""
 "transaction will cause the existing transaction to be updated and cleared by "
 "default."
 msgstr ""
+"Aktifkan tindakan UPDATE DAN RECONCILE di pencocokan transaksi. Jika "
+"diaktifkan, transaksi dengan skor kecocokan terbaik yang berada di atas "
+"ambang batas Auto-CLEAR dan memiliki tanggal atau jumlah yang berbeda dari "
+"transaksi yang ada yang cocok akan menyebabkan transaksi yang ada secara "
+"baku diperbarui dan dibersihkan."
 
 #: gnucash/gschemas/org.gnucash.dialogs.import.generic.gschema.xml.in:15
-#, fuzzy
 msgid "Use bayesian matching"
-msgstr "Klik ganda pada strategi yang cocok untuk dipakai"
+msgstr "Gunakan pencocokan bayesian"
 
 #: gnucash/gschemas/org.gnucash.dialogs.import.generic.gschema.xml.in:16
 msgid ""
@@ -10893,11 +11004,13 @@ msgid ""
 "existing transactions. Otherwise a less sophisticated rule-based matching "
 "mechanism will be used."
 msgstr ""
+"Memungkinkan pencocokan bayesian ketika mencocokkan transaksi impor terhadap "
+"transaksi yang ada. Jika tidak, mekanisme pencocokan berbasis aturan yang "
+"kurang canggih akan digunakan."
 
 #: gnucash/gschemas/org.gnucash.dialogs.import.generic.gschema.xml.in:20
-#, fuzzy
 msgid "Minimum score to be displayed"
-msgstr "Nilai:"
+msgstr "Skor minimum untuk ditampilkan"
 
 #: gnucash/gschemas/org.gnucash.dialogs.import.generic.gschema.xml.in:21
 msgid ""
@@ -10909,7 +11022,7 @@ msgstr ""
 
 #: gnucash/gschemas/org.gnucash.dialogs.import.generic.gschema.xml.in:25
 msgid "Add matching transactions below this score"
-msgstr ""
+msgstr "Tambahkan transaksi yang cocok di bawah skor ini"
 
 #: gnucash/gschemas/org.gnucash.dialogs.import.generic.gschema.xml.in:26
 msgid ""
@@ -10918,10 +11031,15 @@ msgid ""
 "zone (above the display minimum score but below or equal to the Add match "
 "score) will be added to the GnuCash file by default."
 msgstr ""
+"Bidang ini menentukan ambang batas bawah di mana sebuah transaksi yang cocok "
+"akan ditambahkan secara otomatis. Transaksi yang skor kecocokan terbaiknya "
+"berada pada zona merah (di atas skor minimum tampilan tetapi di bawah atau "
+"sama dengan skor kecocokan Tambah) secara baku akan ditambahkan ke berkas "
+"GnuCash."
 
 #: gnucash/gschemas/org.gnucash.dialogs.import.generic.gschema.xml.in:30
 msgid "Clear matching transactions above this score"
-msgstr ""
+msgstr "Bersihkan transaksi yang cocok di atas skor ini"
 
 #: gnucash/gschemas/org.gnucash.dialogs.import.generic.gschema.xml.in:31
 msgid ""
@@ -10930,10 +11048,14 @@ msgid ""
 "green zone (above or equal to this Clear threshold) will be cleared by "
 "default."
 msgstr ""
+"Bidang ini menentukan ambang batas atas di mana sebuah transaksi yang cocok "
+"secara baku akan dibersihkan. Transaksi yang skor kecocokan terbaiknya "
+"berada pada zona hijau (di atas atau sama dengan ambang batas Bersihkan ini) "
+"secara baku akan dibersihkan."
 
 #: gnucash/gschemas/org.gnucash.dialogs.import.generic.gschema.xml.in:35
 msgid "Maximum ATM fee amount in your area"
-msgstr ""
+msgstr "Jumlah biaya maksimum ATM di daerah Anda"
 
 #: gnucash/gschemas/org.gnucash.dialogs.import.generic.gschema.xml.in:36
 msgid ""
@@ -10947,43 +11069,56 @@ msgid ""
 "whatever is the maximum such fee in your area (in units of your local "
 "currency), so the transaction will be recognised as a match."
 msgstr ""
+"Bidang ini menentukan biaya tambahan yang diperhitungkan ketika mencocokkan "
+"transaksi impor. Di beberapa tempat ATM komersial (bukan milik lembaga "
+"keuangan) dipasang di tempat-tempat seperti toko-toko. ATM ini menambahkan "
+"biaya mereka secara langsung ke jumlah, bukannya muncul sebagai transaksi "
+"yang terpisah atau dalam biaya perbankan bulanan Anda. Misalnya, Anda "
+"menarik $100, dan Anda akan dikenakan biaya $101,50 ditambah biaya Interac. "
+"Jika Anda memasukkan $100 tersebut secara manual, jumlahnya tidak akan "
+"cocok. Anda harus menetapkan ini senilai biaya maksimum di daerah Anda "
+"(dalam satuan mata uang lokal Anda), sehingga transaksi akan dikenali "
+"sebagai cocok."
 
 #. Preferences->Online Banking:Generic
 #: gnucash/gschemas/org.gnucash.dialogs.import.generic.gschema.xml.in:40
-#: gnucash/gtkbuilder/dialog-preferences.glade:2125
-#, fuzzy
+#: gnucash/gtkbuilder/dialog-preferences.glade:2242
 msgid "Automatically create new commodities"
-msgstr "Jangan buat dan daftarkan sumber daya secara otomatis"
+msgstr "Buat komoditas baru secara otomatis"
 
 #: gnucash/gschemas/org.gnucash.dialogs.import.generic.gschema.xml.in:41
-#: gnucash/gtkbuilder/dialog-preferences.glade:2131
+#: gnucash/gtkbuilder/dialog-preferences.glade:2248
 msgid ""
 "Enables the automatic creation of new commodities if any unknown commodity "
 "is encountered during import. Otherwise the user will be asked what to do "
 "with each unknown commodity."
 msgstr ""
+"Memungkinkan pembuatan otomatis komoditas baru jika ada komoditas yang tidak "
+"dikenal yang ditemui selama impor. Jika tidak, pengguna akan ditanya apa "
+"yang harus dilakukan dengan tiap-tiap komoditas yang tidak dikenal."
 
 #: gnucash/gschemas/org.gnucash.dialogs.import.generic.gschema.xml.in:58
-#, fuzzy
 msgid "Display or hide reconciled matches"
-msgstr "Sembunyikan yang cocok"
+msgstr "Menampilkan atau menyembunyikan kecocokan yang direkonsiliasi"
 
 #: gnucash/gschemas/org.gnucash.dialogs.import.generic.gschema.xml.in:59
 msgid ""
 "Shows or hides transactions from the match picker which are already of some "
 "reconciled state."
 msgstr ""
+"Menampilkan atau menyembunyikan transaksi dari pemilih kecocokan yang sudah "
+"dalam keadaan direkonsiliasi."
 
 #: gnucash/gschemas/org.gnucash.dialogs.import.qif.gschema.xml.in:5
 #: gnucash/gschemas/org.gnucash.dialogs.import.qif.gschema.xml.in:10
 msgid "Default QIF transaction status"
-msgstr ""
+msgstr "Status transaksi QIF baku"
 
 #: gnucash/gschemas/org.gnucash.dialogs.import.qif.gschema.xml.in:6
 #: gnucash/gschemas/org.gnucash.dialogs.import.qif.gschema.xml.in:11
 #: gnucash/gschemas/org.gnucash.dialogs.import.qif.gschema.xml.in:16
 msgid "Default status for QIF transaction when not specified in QIF file."
-msgstr ""
+msgstr "Status transaksi QIF baku ketika tidak ditentukan di dalam berkas QIF."
 
 #: gnucash/gschemas/org.gnucash.dialogs.import.qif.gschema.xml.in:15
 #: gnucash/gtkbuilder/dialog-account-picker.glade:56
@@ -10991,6 +11126,8 @@ msgid ""
 "When the status is not specified in a QIF file, the transactions are marked "
 "as reconciled."
 msgstr ""
+"Ketika status tidak ditentukan di dalam berkas QIF, transaksi ditandai "
+"sebagai direkonsiliasi."
 
 #: gnucash/gschemas/org.gnucash.dialogs.import.qif.gschema.xml.in:32
 msgid "Show documentation"
@@ -11003,7 +11140,7 @@ msgstr "Tampilkan halaman dokumentasi pada asisten Impor QIF."
 
 #: gnucash/gschemas/org.gnucash.dialogs.reconcile.gschema.xml.in:5
 msgid "Pre-select cleared transactions"
-msgstr ""
+msgstr "Pra-pilih transaksi klir"
 
 #: gnucash/gschemas/org.gnucash.dialogs.reconcile.gschema.xml.in:6
 msgid ""
@@ -11011,11 +11148,13 @@ msgid ""
 "already selected in the reconcile dialog. Otherwise no transactions will be "
 "initially selected."
 msgstr ""
+"Jika aktif, semua transaksi yang ditandai sebagai klir di dalam register "
+"akan ditampilkan secara telah terpilih di dalam dialog rekonsiliasi. Jika "
+"tidak, tak ada transaksi yang terpilih di awal."
 
 #: gnucash/gschemas/org.gnucash.dialogs.reconcile.gschema.xml.in:10
-#, fuzzy
 msgid "Prompt for interest charges"
-msgstr "bunga"
+msgstr "Tanyakan biaya bunga"
 
 #: gnucash/gschemas/org.gnucash.dialogs.reconcile.gschema.xml.in:11
 #: gnucash/gtkbuilder/dialog-account.glade:1480
@@ -11025,32 +11164,40 @@ msgid ""
 "only enabled for Bank, Credit, Mutual, Asset, Receivable, Payable, and "
 "Liability accounts."
 msgstr ""
+"Sebelum merekonsiliasi akun yang membebankan atau membayar bunga, tanya "
+"pengguna untuk memasukkan transaksi untuk pembayaran atau biaya bunga. Saat "
+"ini hanya diaktifkan untuk akun Bank, Kredit, Reksadana, Aset, Piutang, "
+"Utang, dan Liabilitas."
 
 #: gnucash/gschemas/org.gnucash.dialogs.reconcile.gschema.xml.in:15
-#, fuzzy
 msgid "Prompt for credit card payment"
-msgstr "Kartu Kredit"
+msgstr "Tanyakan untuk pembayaran kartu kredit"
 
 #: gnucash/gschemas/org.gnucash.dialogs.reconcile.gschema.xml.in:16
 msgid ""
 "If active, after reconciling a credit card account, prompt the user to enter "
 "a credit card payment. Otherwise do not prompt the user for this."
 msgstr ""
+"Jika aktif, setelah rekonsiliasi akun kartu kredit, tanya pengguna untuk "
+"memasukkan pembayaran kartu kredit. Jika tidak, tidak ada pertanyaan kepada "
+"pengguna untuk ini."
 
 #: gnucash/gschemas/org.gnucash.dialogs.reconcile.gschema.xml.in:20
-#, fuzzy
 msgid "Always reconcile to today"
-msgstr "penarikan"
+msgstr "Selalu rekonsiliasi ke hari ini"
 
 #: gnucash/gschemas/org.gnucash.dialogs.reconcile.gschema.xml.in:21
 msgid ""
 "If active, always open the reconcile dialog using today's date for the "
 "statement date, regardless of previous reconciliations."
 msgstr ""
+"Jika aktif, selalu membuka dialog rekonsiliasi menggunakan tanggal hari ini "
+"untuk tanggal laporan, terlepas dari rekonsiliasi sebelumnya."
 
 #: gnucash/gschemas/org.gnucash.dialogs.sxs.gschema.xml.in:17
 msgid "Run \"since last run\" dialog when a file is opened."
 msgstr ""
+"Jalankan dialog \"sejak dijalankan terakhir\" ketika suatu berkas dibuka."
 
 #: gnucash/gschemas/org.gnucash.dialogs.sxs.gschema.xml.in:18
 msgid ""
@@ -11059,10 +11206,17 @@ msgid ""
 "the initial opening of the data file when GnuCash starts. If this setting is "
 "active, run the \"since last run\" process, otherwise it is not run."
 msgstr ""
+"Pengaturan ini mengontrol apakah pemrosesan \"sejak dijalankan terakhir\" "
+"untuk transaksi terjadwal dijalankan secara otomatis ketika berkas data "
+"dibuka. Ini termasuk pembukaan awal berkas data saat GnuCash dimulai. Jika "
+"pengaturan ini aktif, jalankan proses \"sejak dijalankan terakhir\", jika "
+"tidak, maka tidak dijalankan."
 
 #: gnucash/gschemas/org.gnucash.dialogs.sxs.gschema.xml.in:22
 msgid "Show \"since last run\" notification dialog when a file is opened."
 msgstr ""
+"Tampilkan dialog pemberitahuan \"sejak dijalankan terakhir\" ketika suatu "
+"berkas dibuka."
 
 #: gnucash/gschemas/org.gnucash.dialogs.sxs.gschema.xml.in:23
 msgid ""
@@ -11072,10 +11226,15 @@ msgid ""
 "opening of the data file when GnuCash starts. If this setting is active, "
 "show the dialog, otherwise it is not shown."
 msgstr ""
+"Pengaturan ini mengontrol apakah dialog hanya-notifikasi \"sejak dijalankan "
+"terakhir\" untuk transaksi terjadwal ditampilkan saat berkas data dibuka "
+"(jika pemrosesan \"sejak dijalankan terakhir\" diaktifkan ketika berkas "
+"dibuka). Ini termasuk pembukaan awal berkas data saat GnuCash dimulai. Jika "
+"pengaturan ini aktif, tampilkan dialog, jika tidak maka tidak ditampilkan."
 
 #: gnucash/gschemas/org.gnucash.dialogs.sxs.gschema.xml.in:30
 msgid "Set the \"auto create\" flag by default"
-msgstr ""
+msgstr "Setel bendera \"buat otomatis\" secara baku"
 
 #: gnucash/gschemas/org.gnucash.dialogs.sxs.gschema.xml.in:31
 msgid ""
@@ -11084,16 +11243,19 @@ msgid ""
 "transaction creation, or at any later time by editing the scheduled "
 "transaction."
 msgstr ""
+"Jika aktif, setiap transaksi terjadwal yang baru dibuat akan memiliki "
+"bendera 'buat otomatis' yang secara baku akan disetel aktif. Pengguna dapat "
+"mengubah bendera ini pada saat pembuatan transaksi, atau di lain waktu "
+"dengan menyunting transaksi terjadwal."
 
 #: gnucash/gschemas/org.gnucash.dialogs.sxs.gschema.xml.in:35
 #: gnucash/gschemas/org.gnucash.dialogs.sxs.gschema.xml.in:36
 msgid "How many days in advance to notify the user."
-msgstr ""
+msgstr "Berapa hari di muka untuk memberitahu pengguna."
 
 #: gnucash/gschemas/org.gnucash.dialogs.sxs.gschema.xml.in:47
-#, fuzzy
 msgid "Set the \"notify\" flag by default"
-msgstr "Setel path pencarian baku"
+msgstr "Setel bendera \"beritahu\" secara baku"
 
 #: gnucash/gschemas/org.gnucash.dialogs.sxs.gschema.xml.in:48
 msgid ""
@@ -11102,11 +11264,16 @@ msgid ""
 "creation, or at any later time by editing the scheduled transaction. This "
 "setting only has meaning if the create-auto setting is active."
 msgstr ""
+"Jika aktif, setiap transaksi terjadwal yang baru dibuat akan memiliki "
+"bendera 'beritahu' yang secara baku akan disetel. Pengguna dapat mengubah "
+"bendera ini pada saat pembuatan transaksi, atau di lain waktu dengan "
+"menyunting transaksi terjadwal. Pengaturan ini hanya bisa digunakan jika "
+"pengaturan buat-otomatis aktif."
 
 #: gnucash/gschemas/org.gnucash.dialogs.sxs.gschema.xml.in:52
 #: gnucash/gschemas/org.gnucash.dialogs.sxs.gschema.xml.in:53
 msgid "How many days in advance to remind the user."
-msgstr ""
+msgstr "Berapa hari di muka untuk mengingatkan pengguna."
 
 #: gnucash/gschemas/org.gnucash.dialogs.totd.gschema.xml.in:5
 #: gnucash/gschemas/org.gnucash.dialogs.totd.gschema.xml.in:6
@@ -11126,13 +11293,13 @@ msgstr ""
 "ditampilkan. Jika tidak, dialog tidak ditampilkan."
 
 #: gnucash/gschemas/org.gnucash.general.finance-quote.gschema.xml.in:5
-#: gnucash/gtkbuilder/dialog-preferences.glade:3497
+#: gnucash/gtkbuilder/dialog-preferences.glade:3614
 msgid "Alpha Vantage API key"
 msgstr "Kunci API Alpha Vantage"
 
 #: gnucash/gschemas/org.gnucash.general.finance-quote.gschema.xml.in:6
-#: gnucash/gtkbuilder/dialog-preferences.glade:3496
-#: gnucash/gtkbuilder/dialog-preferences.glade:3508
+#: gnucash/gtkbuilder/dialog-preferences.glade:3613
+#: gnucash/gtkbuilder/dialog-preferences.glade:3625
 msgid ""
 "To retrieve online quotes from Alphavantage, this key needs to be set. A key "
 "can be retrieved from the Alpha Vantage website."
@@ -11184,12 +11351,13 @@ msgstr ""
 
 #: gnucash/gschemas/org.gnucash.gschema.xml.in:25
 msgid "Transaction Linked Files head path"
-msgstr ""
+msgstr "Path kepala Berkas Tertaut Transaksi"
 
 #: gnucash/gschemas/org.gnucash.gschema.xml.in:26
 msgid ""
 "This is the path head for the Transaction Linked Files with relative paths"
 msgstr ""
+"Ini adalah tajuk path untuk Berkas Tertaut Transaksi dengan path relatif"
 
 #: gnucash/gschemas/org.gnucash.gschema.xml.in:30
 msgid "Compress the data file"
@@ -11216,7 +11384,7 @@ msgid "Auto-save time interval"
 msgstr "Selang waktu simpan-otomatis"
 
 #: gnucash/gschemas/org.gnucash.gschema.xml.in:41
-#: gnucash/gtkbuilder/dialog-preferences.glade:1527
+#: gnucash/gtkbuilder/dialog-preferences.glade:1644
 msgid ""
 "The number of minutes until saving of the data file to harddisk will be "
 "started automatically. If zero, no saving will be started automatically."
@@ -11225,13 +11393,13 @@ msgstr ""
 "otomatis. Jika nol, penyimpanan tidak dimulai secara otomatis."
 
 #: gnucash/gschemas/org.gnucash.gschema.xml.in:45
-#: gnucash/gtkbuilder/dialog-preferences.glade:1644
+#: gnucash/gtkbuilder/dialog-preferences.glade:1761
 msgid "Enable timeout on \"Save changes on closing\" question"
 msgstr ""
 "Aktifkan waktu habis pada pertanyaan \"Simpan perubahaan saat menutup\""
 
 #: gnucash/gschemas/org.gnucash.gschema.xml.in:46
-#: gnucash/gtkbuilder/dialog-preferences.glade:1648
+#: gnucash/gtkbuilder/dialog-preferences.glade:1765
 msgid ""
 "If enabled, the \"Save changes on closing\" question will only wait a "
 "limited number of seconds for an answer. If the user didn't answer within "
@@ -11248,7 +11416,7 @@ msgid "Time to wait for answer"
 msgstr "Waktu untuk menunggu jawaban"
 
 #: gnucash/gschemas/org.gnucash.gschema.xml.in:51
-#: gnucash/gtkbuilder/dialog-preferences.glade:1683
+#: gnucash/gtkbuilder/dialog-preferences.glade:1800
 msgid ""
 "The number of seconds to wait before the question window will be closed and "
 "the changes saved automatically."
@@ -11259,7 +11427,7 @@ msgstr ""
 #: gnucash/gschemas/org.gnucash.gschema.xml.in:55
 #: gnucash/gschemas/org.gnucash.gschema.xml.in:56
 msgid "Display negative amounts in red"
-msgstr "Tampilkan nilai negatif dalam warna merah."
+msgstr "Tampilkan nilai negatif dalam warna merah"
 
 #: gnucash/gschemas/org.gnucash.gschema.xml.in:60
 msgid "Automatically insert a decimal point"
@@ -11290,7 +11458,7 @@ msgid "Force prices to display as decimals even if they must be rounded."
 msgstr "Paksa harga ditampilkan sebagai desimal meskipun harus dibulatkan."
 
 #: gnucash/gschemas/org.gnucash.gschema.xml.in:71
-#: gnucash/gtkbuilder/dialog-preferences.glade:1087
+#: gnucash/gtkbuilder/dialog-preferences.glade:1204
 msgid ""
 "If active, GnuCash will round prices as necessary to display them as "
 "decimals instead of displaying the exact fraction if the fractional part "
@@ -11301,7 +11469,7 @@ msgstr ""
 "ditampilkan secara tepat sebagai desimal."
 
 #: gnucash/gschemas/org.gnucash.gschema.xml.in:75
-#: gnucash/gtkbuilder/dialog-preferences.glade:1596
+#: gnucash/gtkbuilder/dialog-preferences.glade:1713
 msgid "Do not create log/backup files."
 msgstr "Jangan buat berkas log/cadangan."
 
@@ -11315,14 +11483,20 @@ msgid ""
 "keep old files for a number of days. How many days is defined in key 'retain-"
 "days'"
 msgstr ""
+"Pengaturan ini menentukan apa yang harus dilakukan dengan berkas cadangan/"
+"log yang sudah tua. \"selamanya\" berarti menyimpan semua berkas lama. "
+"\"tidak pernah\" berarti tidak ada berkas cadangan/log yang disimpan. Setiap "
+"kali Anda menyimpan, berkas versi lama akan dihapus. \"hari\" berarti "
+"menyimpan berkas-berkas tua untuk beberapa hari. Berapa lama harinya "
+"didefinisikan di dalam kunci 'retain-days'"
 
 #: gnucash/gschemas/org.gnucash.gschema.xml.in:80
-#: gnucash/gtkbuilder/dialog-preferences.glade:1614
+#: gnucash/gtkbuilder/dialog-preferences.glade:1731
 msgid "Delete old log/backup files after this many days (0 = never)."
 msgstr "Hapus berkas log/cadangan setelah sejumlah hari ini (0 = tak pernah)."
 
 #: gnucash/gschemas/org.gnucash.gschema.xml.in:85
-#: gnucash/gtkbuilder/dialog-preferences.glade:1632
+#: gnucash/gtkbuilder/dialog-preferences.glade:1749
 msgid "Do not delete log/backup files."
 msgstr "Jangan menghapus berkas log/cadangan."
 
@@ -11339,9 +11513,9 @@ msgstr ""
 "akan dihapus (0 = tak pernah)."
 
 #: gnucash/gschemas/org.gnucash.gschema.xml.in:95
-#: gnucash/gtkbuilder/dialog-preferences.glade:519
+#: gnucash/gtkbuilder/dialog-preferences.glade:636
 msgid "Don't sign reverse any accounts."
-msgstr ""
+msgstr "Jangan menggunakan tanda terbalik pada akun."
 
 #: gnucash/gschemas/org.gnucash.gschema.xml.in:96
 #: gnucash/gschemas/org.gnucash.gschema.xml.in:101
@@ -11354,22 +11528,31 @@ msgid ""
 "status of the account. The setting \"none\" doesn't reverse the sign on any "
 "balances."
 msgstr ""
+"Pengaturan ini memungkinkan akun tertentu menggunakan tanda terbalik untuk "
+"saldo mereka dari positif ke negatif, atau sebaliknya. Pengaturan "
+"\"pendapatan-pengeluaran\" adalah untuk pengguna yang ingin melihat "
+"pengeluaran negatif dan pendapatan positif. Pengaturan \"kredit\" adalah "
+"untuk pengguna yang ingin melihat saldo mencerminkan status debit/kredit "
+"dari akun tersebut. Pengaturan \"tidak ada\" tidak membalikkan tanda pada "
+"saldo."
 
 #: gnucash/gschemas/org.gnucash.gschema.xml.in:100
-#: gnucash/gtkbuilder/dialog-preferences.glade:538
+#: gnucash/gtkbuilder/dialog-preferences.glade:655
 msgid ""
 "Sign reverse balances on the following: Credit Card, Payable, Liability, "
 "Equity, and Income."
 msgstr ""
+"Tandai terbalik saldo berikut: Kartu Kredit, Utang, Liabilitas, Ekuitas, dan "
+"Pendapatan."
 
 #: gnucash/gschemas/org.gnucash.gschema.xml.in:105
-#: gnucash/gtkbuilder/dialog-preferences.glade:557
+#: gnucash/gtkbuilder/dialog-preferences.glade:674
 msgid "Sign reverse balances on income and expense accounts."
-msgstr ""
+msgstr "Tandai terbalik saldo pada akun pendapatan dan pengeluaran."
 
 #: gnucash/gschemas/org.gnucash.gschema.xml.in:110
 msgid "Use account colors in the account hierarchy"
-msgstr "Gunakan warna akun pada hirarki akun"
+msgstr "Gunakan warna akun pada hierarki akun"
 
 #: gnucash/gschemas/org.gnucash.gschema.xml.in:111
 msgid ""
@@ -11377,13 +11560,13 @@ msgid ""
 "account's custom color if set. This can serve as a visual aid to quickly "
 "identify accounts."
 msgstr ""
-"Jika aktif, hirarki akun akan mewarnai akun menggunakan warna kustom jika "
+"Jika aktif, hierarki akun akan mewarnai akun menggunakan warna tersuai jika "
 "disetel. Hal ini bisa menjadi bantuan visual untuk mengidentifikasi akun "
 "secara cepat."
 
 #: gnucash/gschemas/org.gnucash.gschema.xml.in:115
 msgid "Use account colors in the tabs of open account registers"
-msgstr ""
+msgstr "Gunakan warna akun di tab register akun yang terbuka"
 
 #: gnucash/gschemas/org.gnucash.gschema.xml.in:116
 msgid ""
@@ -11391,6 +11574,9 @@ msgid ""
 "custom color if set. This can serve as a visual aid to quickly identify "
 "accounts."
 msgstr ""
+"Jika aktif, tab register akun akan diwarnai menggunakan warna tersuai akun "
+"jika disetel. Hal ini bisa menjadi bantuan visual untuk mengidentifikasi "
+"akun secara cepat."
 
 #: gnucash/gschemas/org.gnucash.gschema.xml.in:120
 msgid "Use formal account labels"
@@ -11432,11 +11618,14 @@ msgid ""
 "tab is longer than this value (the test is approximate) then the tab label "
 "will have the middle cut and replaced with an ellipsis."
 msgstr ""
+"Kunci ini menentukan lebar maksimum tab buku catatan. Jika teks di dalam tab "
+"lebih panjang daripada nilai ini (tes ini perkiraan) maka label tab akan "
+"dipotong di tengah dan diganti dengan elipsis."
 
 #: gnucash/gschemas/org.gnucash.gschema.xml.in:135
-#: gnucash/gtkbuilder/dialog-preferences.glade:803
+#: gnucash/gtkbuilder/dialog-preferences.glade:920
 msgid "Use the system locale currency for all newly created accounts."
-msgstr ""
+msgstr "Gunakan mata uang lokal sistem untuk semua akun yang baru dibuat."
 
 #: gnucash/gschemas/org.gnucash.gschema.xml.in:136
 #: gnucash/gschemas/org.gnucash.gschema.xml.in:141
@@ -11447,9 +11636,13 @@ msgid ""
 "the user's locale setting. If set to \"other\", GnuCash will use the setting "
 "specified by the currency-other key."
 msgstr ""
+"Pengaturan ini menentukan sumber mata uang baku untuk akun baru. Jika "
+"disetel ke \"lokal\" maka GnuCash akan mengambil mata uang baku dari "
+"pengaturan lokal pengguna. Jika disetel ke \"lainnya\", GnuCash akan "
+"menggunakan pengaturan yang ditentukan oleh kunci currency-other."
 
 #: gnucash/gschemas/org.gnucash.gschema.xml.in:140
-#: gnucash/gtkbuilder/dialog-preferences.glade:783
+#: gnucash/gtkbuilder/dialog-preferences.glade:900
 msgid "Use the specified currency for all newly created accounts."
 msgstr ""
 "Gunakan mata uang yang telah ditentukan untuk semua akun yang baru dibuat."
@@ -11464,9 +11657,9 @@ msgid ""
 "currency-choice setting is set to \"other\". This field must contain the "
 "three letter ISO 4217 code for a currency (e.g. USD, GBP, RUB)."
 msgstr ""
-"Setelan ini menentukan mata uang bawaan yang digunakan untuk akun baru jika "
-"setelan pilihan mata uang diatur pada \"lainnya\". Bidang ini harus berisi "
-"tiga huruf kode ISO 4217 untuk mata uang (misal USD, GBP, IDR)."
+"Pengaturan ini menentukan mata uang baku yang digunakan untuk akun baru jika "
+"pengaturan pilihan mata uang disetel pada \"lainnya\". Bidang ini harus "
+"berisi tiga huruf kode ISO 4217 untuk mata uang (misal USD, GBP, IDR)."
 
 #: gnucash/gschemas/org.gnucash.gschema.xml.in:150
 msgid "Use 24 hour time format"
@@ -11490,11 +11683,16 @@ msgid ""
 "Continental Europe style dates, \"iso\" for ISO 8601 standard dates , \"uk\" "
 "for United Kingdom style dates, and \"us\" for United States style dates."
 msgstr ""
+"Pengaturan ini digunakan untuk memilih cara menampilkan tanggal di GnuCash. "
+"Nilai yang mungkin untuk pengaturan ini adalah \"lokal\" untuk menggunakan "
+"pengaturan sistem lokal, \"ce\" untuk menampilkan tanggal dengan gaya Benua "
+"Eropa, \"iso\" untuk tanggal standar ISO 8601, \"uk\" untuk gaya tanggal "
+"Kerajaan Inggris, dan \"us\" untuk gaya tanggal Amerika Serikat."
 
 #: gnucash/gschemas/org.gnucash.gschema.xml.in:160
-#: gnucash/gtkbuilder/dialog-preferences.glade:981
+#: gnucash/gtkbuilder/dialog-preferences.glade:1098
 msgid "In the current calendar year"
-msgstr ""
+msgstr "Pada tahun kalender saat ini"
 
 #: gnucash/gschemas/org.gnucash.gschema.xml.in:161
 #: gnucash/gschemas/org.gnucash.gschema.xml.in:166
@@ -11503,35 +11701,42 @@ msgid ""
 "within the current calendar year or close to the current date based on a "
 "sliding window starting a set number of months backwards in time."
 msgstr ""
+"Ketika tanggal dimasukkan tanpa tahun, tanggal tersebut bisa dilengkapi "
+"sehingga akan berada di dalam tahun kalender saat ini atau dekat dengan "
+"tanggal saat ini berdasarkan pada jendela geser memulai sejumlah bulan "
+"mundur dalam waktu."
 
 #: gnucash/gschemas/org.gnucash.gschema.xml.in:165
 msgid ""
 "In a sliding 12-month window starting a configurable number of months before "
 "the current month"
 msgstr ""
+"Dalam jendela geser 12-bulan memulai sejumlah bulan sebelum bulan berjalan"
 
 #: gnucash/gschemas/org.gnucash.gschema.xml.in:170
 msgid "Maximum number of months to go back."
-msgstr ""
+msgstr "Jumlah maksimum bulan untuk kembali."
 
 #: gnucash/gschemas/org.gnucash.gschema.xml.in:171
-#: gnucash/gtkbuilder/dialog-preferences.glade:1007
+#: gnucash/gtkbuilder/dialog-preferences.glade:1124
 msgid ""
 "Dates will be completed so that they are close to the current date. Enter "
 "the maximum number of months to go backwards in time when completing dates."
 msgstr ""
+"Tanggal akan dilengkapi sehingga dekat dengan tanggal saat ini. Masukkan "
+"jumlah maksimum bulan untuk mundur dalam waktu ketika melengkapi tanggal."
 
 #: gnucash/gschemas/org.gnucash.gschema.xml.in:175
 msgid "Show Horizontal Grid Lines"
-msgstr "Tampilkan Garis Kisi Horisontal"
+msgstr "Tampilkan Garis Kisi Horizontal"
 
 #: gnucash/gschemas/org.gnucash.gschema.xml.in:176
 msgid ""
 "If active, horizontal grid lines will be shown on table displays. Otherwise "
 "no horizontal grid lines will be shown."
 msgstr ""
-"Jika aktif, garis kisi horisontal akan ditampilkan pada tampilan tabel. Jika "
-"tidak, garis kisi horisontal tidak ditampilkan."
+"Jika aktif, garis kisi horizontal akan ditampilkan pada tampilan tabel. Jika "
+"tidak, garis kisi horizontal tidak ditampilkan."
 
 #: gnucash/gschemas/org.gnucash.gschema.xml.in:180
 msgid "Show Vertical Grid Lines"
@@ -11558,7 +11763,7 @@ msgstr ""
 "tidak, layar splash tidak ditampilkan."
 
 #: gnucash/gschemas/org.gnucash.gschema.xml.in:190
-#: gnucash/gtkbuilder/dialog-preferences.glade:3231
+#: gnucash/gtkbuilder/dialog-preferences.glade:3348
 msgid "Display the notebook tabs at the top of the window."
 msgstr "Tampilkan tab buku catatan pada bagian atas jendela."
 
@@ -11576,22 +11781,22 @@ msgstr ""
 "\"bawah\", dan \"kanan\". Nilai baku adalah \"atas\"."
 
 #: gnucash/gschemas/org.gnucash.gschema.xml.in:195
-#: gnucash/gtkbuilder/dialog-preferences.glade:3250
+#: gnucash/gtkbuilder/dialog-preferences.glade:3367
 msgid "Display the notebook tabs at the bottom of the window."
 msgstr "Tampilkan tab buku catatan pada bagian bawah jendela."
 
 #: gnucash/gschemas/org.gnucash.gschema.xml.in:200
-#: gnucash/gtkbuilder/dialog-preferences.glade:3269
+#: gnucash/gtkbuilder/dialog-preferences.glade:3386
 msgid "Display the notebook tabs at the left of the window."
 msgstr "Tampilkan tab buku catatan pada bagian kiri jendela."
 
 #: gnucash/gschemas/org.gnucash.gschema.xml.in:205
-#: gnucash/gtkbuilder/dialog-preferences.glade:3288
+#: gnucash/gtkbuilder/dialog-preferences.glade:3405
 msgid "Display the notebook tabs at the right of the window."
 msgstr "Tampilkan tab buku catatan pada bagian kanan jendela."
 
 #: gnucash/gschemas/org.gnucash.gschema.xml.in:210
-#: gnucash/gtkbuilder/dialog-preferences.glade:3320
+#: gnucash/gtkbuilder/dialog-preferences.glade:3437
 msgid "Display the summary bar at the top of the page."
 msgstr "Tampilkan bilah ikhtisar pada bagian atas halaman."
 
@@ -11607,30 +11812,35 @@ msgstr ""
 "baku adalah \"bawah\"."
 
 #: gnucash/gschemas/org.gnucash.gschema.xml.in:215
-#: gnucash/gtkbuilder/dialog-preferences.glade:3339
+#: gnucash/gtkbuilder/dialog-preferences.glade:3456
 msgid "Display the summary bar at the bottom of the page."
 msgstr "Tampilkan bilah ikhtisar pada bagian bawah halaman."
 
 #: gnucash/gschemas/org.gnucash.gschema.xml.in:220
-#: gnucash/gtkbuilder/dialog-preferences.glade:3189
+#: gnucash/gtkbuilder/dialog-preferences.glade:3306
 msgid "Closing a tab moves to the most recently visited tab."
 msgstr ""
+"Menutup sebuah tab memindahkannya ke tab yang baru-baru ini dikunjungi."
 
 #: gnucash/gschemas/org.gnucash.gschema.xml.in:221
 msgid ""
 "If active, closing a tab moves to the most recently visited tab. Otherwise "
 "closing a tab moves one tab to the left."
 msgstr ""
+"Jika aktif, menutup sebuah tab akan memindahkannya ke tab yang baru-baru ini "
+"dikunjungi. Jika tidak, menutup sebuah tab akan memindahkan satu tab ke kiri."
 
 #: gnucash/gschemas/org.gnucash.gschema.xml.in:225
-#: gnucash/gtkbuilder/dialog-preferences.glade:1292
+#: gnucash/gtkbuilder/dialog-preferences.glade:1409
 msgid ""
 "Set book option on new files to use split \"action\" field for \"Num\" field "
 "on registers/reports"
 msgstr ""
+"Setel opsi buku pada berkas baru untuk menggunakan bidang \"aksi\" yang "
+"terpisah untuk bidang \"Num\" pada register/laporan"
 
 #: gnucash/gschemas/org.gnucash.gschema.xml.in:226
-#: gnucash/gtkbuilder/dialog-preferences.glade:1298
+#: gnucash/gtkbuilder/dialog-preferences.glade:1415
 msgid ""
 "If selected, the default book option for new files is set so that the 'Num' "
 "cell on registers shows/updates the split 'action' field and the transaction "
@@ -11639,10 +11849,16 @@ msgid ""
 "files is set so that the 'Num' cell on registers shows/updates the "
 "transaction 'num' field."
 msgstr ""
+"Jika dipilih, opsi buku secara baku untuk berkas baru akan disetel sehingga "
+"sel 'Num' pada register menampilkan/memperbarui bidang 'aksi' yang terpisah "
+"dan bidang 'num' transaksi ditampilkan pada baris kedua pada mode dua baris "
+"(dan tidak terlihat dalam mode satu baris). Jika tidak, opsi buku secara "
+"baku untuk berkas baru disetel sehingga sel 'Num' pada register menampilkan/"
+"memperbarui bidang 'num' transaksi."
 
 #: gnucash/gschemas/org.gnucash.gschema.xml.in:235
 msgid "Color the register using a gnucash specific color theme"
-msgstr ""
+msgstr "Warnai register menggunakan tema warna spesifik gnucash"
 
 #: gnucash/gschemas/org.gnucash.gschema.xml.in:236
 msgid ""
@@ -11652,35 +11868,45 @@ msgid ""
 "css file to be stored in the gnucash used config directory. More information "
 "can be found in the gnucash FAQ."
 msgstr ""
+"Ketika diaktifkan, register akan menggunakan tema warna spesifik GnuCash "
+"(hijau/kuning). Jika tidak, tema warna sistem akan digunakan. Terlepas dari "
+"pengaturan ini, pengguna dapat selalu menimpa tema warna melalui berkas css "
+"spesifik gnucash untuk disimpan direktori konfigurasi gnucash. Informasi "
+"lebih lanjut dapat ditemukan di halaman FAQ gnucash."
 
 #: gnucash/gschemas/org.gnucash.gschema.xml.in:240
 msgid "Superseded by \"use-gnucash-color-theme\""
-msgstr ""
+msgstr "Digantikan oleh \"use-gnucash-color-theme\""
 
 #: gnucash/gschemas/org.gnucash.gschema.xml.in:241
 msgid ""
 "This option is temporarily kept around for backwards compatibility. It will "
 "be removed in a future version."
 msgstr ""
+"Opsi ini sementara dipertahankan untuk kompatibilitas ke belakang. Opsi ini "
+"akan dihapus pada versi di masa mendatang."
 
 #: gnucash/gschemas/org.gnucash.gschema.xml.in:245
 msgid "\"Enter\" key moves to bottom of register"
-msgstr ""
+msgstr "Tombol \"Enter\" memindahkan ke bagian bawah register"
 
 #: gnucash/gschemas/org.gnucash.gschema.xml.in:246
 msgid ""
 "If active, pressing the enter key will move to the bottom of the register. "
 "Otherwise pressing the enter key will move to the next transaction line."
 msgstr ""
+"Jika aktif, menekan tombol enter akan memindahkan ke bagian bawah register. "
+"Jika tidak, menekan tombol enter akan memindahkan ke baris transaksi "
+"berikutnya."
 
 #: gnucash/gschemas/org.gnucash.gschema.xml.in:250
 #: gnucash/gschemas/org.gnucash.gschema.xml.in:251
 msgid "Automatically raise the list of accounts or actions during input"
-msgstr ""
+msgstr "Naikkan secara otomatis daftar akun atau aksi selama masukan"
 
 #: gnucash/gschemas/org.gnucash.gschema.xml.in:255
 msgid "Move to Transfer field when memorised transaction auto filled"
-msgstr ""
+msgstr "Pindah ke bidang Transfer ketika transaksi yang diingat diisi otomatis"
 
 #: gnucash/gschemas/org.gnucash.gschema.xml.in:256
 msgid ""
@@ -11688,6 +11914,9 @@ msgid ""
 "cursor will move to the Transfer field. If not active then it skips to the "
 "value field."
 msgstr ""
+"Jika aktif maka setelah transaksi yang diingat diisi secara otomatis, kursor "
+"akan berpindah ke bidang Transfer. Jika tidak aktif, maka akan melompat ke "
+"bidang nilai."
 
 #: gnucash/gschemas/org.gnucash.gschema.xml.in:260
 msgid "Create a new window for each new register"
@@ -11717,7 +11946,7 @@ msgstr ""
 
 #: gnucash/gschemas/org.gnucash.gschema.xml.in:270
 msgid "Show horizontal borders in a register"
-msgstr "Tampilkan garis tepi horisontal pada register"
+msgstr "Tampilkan garis tepi horizontal pada register"
 
 #: gnucash/gschemas/org.gnucash.gschema.xml.in:271
 msgid ""
@@ -11725,7 +11954,7 @@ msgid ""
 "between cells will be indicated with a heavy line. Otherwise the border "
 "between cells will not be marked."
 msgstr ""
-"Tampilkan garis tepi horisontal antar baris pada register. Jika aktif, garis "
+"Tampilkan garis tepi horizontal antar baris pada register. Jika aktif, garis "
 "tepi antar sel akan diindikasikan dengan sebuah garis tebal. Jika tidak, "
 "garis tepi antar sel tidak akan diberi tanda."
 
@@ -11755,9 +11984,13 @@ msgid ""
 "bottom of the register after the blank transaction. Otherwise the blank "
 "transaction will be at the bottom of the register after all transactions."
 msgstr ""
+"Tampilkan transaksi masa mendatang setelah transaksi kosong di register. "
+"Jika aktif, maka transaksi dengan tanggal di masa mendatang akan ditampilkan "
+"di bagian bawah register setelah transaksi kosong. Jika tidak, transaksi "
+"kosong akan berada di bagian bawah register setelah semua transaksi."
 
 #: gnucash/gschemas/org.gnucash.gschema.xml.in:285
-#: gnucash/gtkbuilder/dialog-preferences.glade:2625
+#: gnucash/gtkbuilder/dialog-preferences.glade:2742
 msgid "Show all transactions on one line. (Two in double line mode.)"
 msgstr "Tampilkan semua transaksi dalam satu baris. (Dua pada mode dua baris.)"
 
@@ -11772,18 +12005,28 @@ msgid ""
 "transaction to show all splits. The \"journal\" setting shows all "
 "transactions in expanded form."
 msgstr ""
+"Bidang ini menentukan gaya tampilan baku saat membuka jendela register baru. "
+"Nilai yang mungkin adalah \"buku\", \"buku-otomatis\" dan \"jurnal\". "
+"Pengaturan \"buku\" artinya menampilkan setiap transaksi pada satu atau dua "
+"baris. Pengaturan \"buku-otomatis\" juga melakukan hal yang sama, tetapi "
+"juga mengekspansi hanya transaksi saat ini untuk menampilkan semua split. "
+"Pengaturan \"jurnal\" artinya menampilkan semua transaksi dalam bentuk "
+"terekspansi."
 
 #: gnucash/gschemas/org.gnucash.gschema.xml.in:290
-#: gnucash/gtkbuilder/dialog-preferences.glade:2644
+#: gnucash/gtkbuilder/dialog-preferences.glade:2761
 msgid ""
 "Automatically expand the current transaction to show all splits. All other "
 "transactions are shown on one line. (Two in double line mode.)"
 msgstr ""
+"Ekspansi transaksi saat ini secara otomatis untuk menampilkan semua split. "
+"Semua transaksi lain ditampilkan dalam satu baris. (Dua dalam mode dua "
+"baris.)"
 
 #: gnucash/gschemas/org.gnucash.gschema.xml.in:295
-#: gnucash/gtkbuilder/dialog-preferences.glade:2663
+#: gnucash/gtkbuilder/dialog-preferences.glade:2780
 msgid "All transactions are expanded to show all splits."
-msgstr ""
+msgstr "Semua transaksi diekspansi untuk menampilkan semua split."
 
 #: gnucash/gschemas/org.gnucash.gschema.xml.in:300
 msgid ""
@@ -11800,10 +12043,14 @@ msgid ""
 "register is first opened. The setting can be changed at any time via the "
 "\"View->Double Line\" menu item."
 msgstr ""
+"Tampilkan baris kedua dengan \"Aksi\", \"Catatan\", dan \"Dokumen Tertaut\" "
+"untuk setiap transaksi di register. Ini adalah pengaturan baku untuk "
+"register yang pertama kali dibuka. Pengaturan dapat diubah setiap saat "
+"melalui item menu \"Lihat->Dua Baris\"."
 
 #: gnucash/gschemas/org.gnucash.gschema.xml.in:305
 msgid "Only display leaf account names."
-msgstr ""
+msgstr "Hanya menampilkan nama akun daun."
 
 #: gnucash/gschemas/org.gnucash.gschema.xml.in:306
 msgid ""
@@ -11812,26 +12059,30 @@ msgid ""
 "including the path in the account tree. Activating this option implies that "
 "you use unique leaf names."
 msgstr ""
+"Tampilkan hanya nama-nama akun daun di dalam register dan di dalam popup "
+"pemilihan akun. Perilaku yang baku adalah menampilkan nama lengkap, termasuk "
+"path di pohon akun. Mengaktifkan opsi ini berarti Anda akan menggunakan nama-"
+"nama daun yang unik."
 
 #: gnucash/gschemas/org.gnucash.gschema.xml.in:310
 msgid "Show the entered and reconcile dates"
 msgstr "Tampilkan tanggal dimasukkan dan direkonsiliasi"
 
 #: gnucash/gschemas/org.gnucash.gschema.xml.in:311
-#: gnucash/gtkbuilder/dialog-preferences.glade:2807
+#: gnucash/gtkbuilder/dialog-preferences.glade:2924
 msgid ""
 "Show the date when the transaction was entered below the posted date and "
 "reconciled date on split row."
 msgstr ""
 "Tampilkan tanggal ketika transaksi dimasukkan di bawah tanggal pos dan "
-"tanggal rekonsiliasi pada baris pemecahan."
+"tanggal rekonsiliasi pada baris terpisah."
 
 #: gnucash/gschemas/org.gnucash.gschema.xml.in:315
 msgid "Show entered and reconciled dates on selection"
 msgstr "Tampilkan tanggal dimasukkan dan direkonsiliasi pada pilihan"
 
 #: gnucash/gschemas/org.gnucash.gschema.xml.in:316
-#: gnucash/gtkbuilder/dialog-preferences.glade:2855
+#: gnucash/gtkbuilder/dialog-preferences.glade:2972
 msgid "Show the entered date and reconciled date on transaction selection."
 msgstr ""
 "Tampilkan tanggal dimasukkan dan direkonsiliasi pada pilihan transaksi."
@@ -11841,27 +12092,28 @@ msgid "Show the calendar buttons"
 msgstr "Tampilkan tombol kalender"
 
 #: gnucash/gschemas/org.gnucash.gschema.xml.in:321
-#: gnucash/gtkbuilder/dialog-preferences.glade:2823
+#: gnucash/gtkbuilder/dialog-preferences.glade:2940
 msgid "Show the calendar buttons Cancel, Today and Select."
 msgstr "Tampilkan tombol kalender Batal, Hari Ini dan Pilih."
 
 #: gnucash/gschemas/org.gnucash.gschema.xml.in:325
 msgid "Move the selection to the blank split on expand"
-msgstr ""
+msgstr "Pindahkan pemilihan ke split kosong saat ekspansi"
 
 #: gnucash/gschemas/org.gnucash.gschema.xml.in:326
-#: gnucash/gtkbuilder/dialog-preferences.glade:2839
+#: gnucash/gtkbuilder/dialog-preferences.glade:2956
 msgid ""
 "This will move the selection to the blank split when the transaction is "
 "expanded."
 msgstr ""
+"Ini akan memindahkan pemilihan ke split kosong ketika transaksi diekspansi."
 
 #: gnucash/gschemas/org.gnucash.gschema.xml.in:330
 msgid "Number of transactions to show in a register."
 msgstr "Jumlah transaksi yang ditampilkan pada register."
 
 #: gnucash/gschemas/org.gnucash.gschema.xml.in:331
-#: gnucash/gtkbuilder/dialog-preferences.glade:2694
+#: gnucash/gtkbuilder/dialog-preferences.glade:2811
 msgid ""
 "Show this many transactions in a register. A value of zero means show all "
 "transactions."
@@ -11875,13 +12127,13 @@ msgstr "Jumlah karakter untuk lengkapi otomatis."
 
 #. Register2 feature
 #: gnucash/gschemas/org.gnucash.gschema.xml.in:336
-#: gnucash/gtkbuilder/dialog-preferences.glade:2784
+#: gnucash/gtkbuilder/dialog-preferences.glade:2901
 msgid ""
 "This sets the number of characters before auto complete starts for "
 "description, notes and memo fields."
 msgstr ""
-"Mengatur jumlah karakter sebelum lengkapi otomatis dimulai untuk deskripsi, "
-"catatan dan bidang memo."
+"Mengatur jumlah karakter sebelum lengkapi otomatis dimulai untuk bidang "
+"deskripsi, catatan dan memo."
 
 #: gnucash/gschemas/org.gnucash.gschema.xml.in:343
 msgid "Create a new window for each new report"
@@ -11896,9 +12148,9 @@ msgstr ""
 "tidak, laporan baru akan dibuka sebagai tab pada jendela utama."
 
 #: gnucash/gschemas/org.gnucash.gschema.xml.in:348
-#: gnucash/gtkbuilder/dialog-preferences.glade:3058
+#: gnucash/gtkbuilder/dialog-preferences.glade:3175
 msgid "Use the system locale currency for all newly created reports."
-msgstr ""
+msgstr "Gunakan mata uang lokal sistem untuk semua laporan yang baru dibuat."
 
 #: gnucash/gschemas/org.gnucash.gschema.xml.in:349
 #: gnucash/gschemas/org.gnucash.gschema.xml.in:359
@@ -11908,9 +12160,13 @@ msgid ""
 "locale setting. If set to \"other\", GnuCash will use the setting specified "
 "by the currency-other key."
 msgstr ""
+"Pengaturan ini menentukan mata uang baku yang digunakan pada laporan. Jika "
+"disetel ke \"lokal\" maka GnuCash akan mengambil mata uang baku dari "
+"pengaturan lokal pengguna. Jika disetel ke \"lainnya\", GnuCash akan "
+"menggunakan pengaturan yang ditentukan oleh kunci currency-other."
 
 #: gnucash/gschemas/org.gnucash.gschema.xml.in:353
-#: gnucash/gtkbuilder/dialog-preferences.glade:3038
+#: gnucash/gtkbuilder/dialog-preferences.glade:3155
 msgid "Use the specified currency for all newly created reports."
 msgstr ""
 "Gunakan mata uang yang telah ditentukan untuk semua laporan yang baru dibuat."
@@ -11921,15 +12177,19 @@ msgstr "Mata uang baku untuk laporan baru"
 
 #: gnucash/gschemas/org.gnucash.gschema.xml.in:363
 msgid "Zoom factor to use by default for reports."
-msgstr ""
+msgstr "Faktor perbesaran yang digunakan secara baku untuk laporan."
 
 #: gnucash/gschemas/org.gnucash.gschema.xml.in:364
-#: gnucash/gtkbuilder/dialog-preferences.glade:3073
+#: gnucash/gtkbuilder/dialog-preferences.glade:3190
 msgid ""
 "On high resolution screens reports tend to be hard to read. This option "
 "allows you to scale reports up by the set factor. For example setting this "
 "to 2.0 will display reports at twice their typical size."
 msgstr ""
+"Pada layar resolusi tinggi laporan cenderung sulit untuk dibaca. Opsi ini "
+"memungkinkan Anda untuk mengatur skala laporan berdasarkan faktor set. "
+"Misalnya mengatur ke 2.0 akan menampilkan laporan sebesar dua kali ukuran "
+"sesungguhnya."
 
 #: gnucash/gschemas/org.gnucash.gschema.xml.in:373
 msgid "PDF export file name format"
@@ -11946,6 +12206,13 @@ msgid ""
 "in filenames, such as '/', will be replaced with underscores '_' in the "
 "resulting file name.)"
 msgstr ""
+"Pengaturan ini memilih nama berkas untuk ekspor PDF. Ini adalah string "
+"sprintf(3) dengan tiga argumen: \"%1$s\" adalah nama laporan seperti \"Faktur"
+"\". \"%2$s\" adalah nomor laporan, yang untuk laporan faktur adalah nomor "
+"faktur. \"%3$s\" adalah tanggal laporan, diformat sesuai dengan pengaturan "
+"filename-date-format. (Catatan: Setiap karakter yang tidak diperbolehkan "
+"dalam nama berkas, seperti '/', akan diganti dengan garis bawah '_' dalam "
+"nama berkas yang dihasilkan.)"
 
 #: gnucash/gschemas/org.gnucash.gschema.xml.in:378
 msgid "PDF export file name date format choice"
@@ -11959,6 +12226,11 @@ msgid ""
 "standard dates , \"uk\" for United Kingdom style dates, and \"us\" for "
 "United States style dates."
 msgstr ""
+"Pengaturan ini memilih cara penggunaan tanggal dalam nama berkas ekspor PDF. "
+"Nilai yang mungkin untuk pengaturan ini adalah \"lokal\" untuk menggunakan "
+"pengaturan sistem lokal, \"ce\" untuk gaya tanggal Benua Eropa, \"iso\" "
+"untuk standar tanggal ISO 8601, \"uk\" untuk gaya tanggal Inggris, dan \"us"
+"\" untuk gaya tanggal Amerika Serikat."
 
 #: gnucash/gschemas/org.gnucash.gschema.xml.in:385
 msgid "Allow file incompatibility with older versions."
@@ -11971,6 +12243,11 @@ msgid ""
 "read by an older version again. Otherwise gnucash will write data files only "
 "in formats that can be read by older versions as well."
 msgstr ""
+"Jika aktif, gnucash akan diizinkan untuk sengaja mematahkan kompatibilitas "
+"berkas dengan versi lama, sehingga berkas data yang disimpan dalam versi ini "
+"tidak dapat dibaca lagi oleh versi yang lebih lama. Jika tidak, gnucash akan "
+"menulis berkas data hanya dalam format yang juga dapat dibaca oleh versi "
+"yang lebih lama."
 
 #: gnucash/gschemas/org.gnucash.history.gschema.xml.in:5
 msgid "Number of files in history"
@@ -12022,60 +12299,75 @@ msgstr ""
 "selanjutnya."
 
 #: gnucash/gschemas/org.gnucash.warnings.gschema.xml.in:9
-#: gnucash/gschemas/org.gnucash.warnings.gschema.xml.in:107
+#: gnucash/gschemas/org.gnucash.warnings.gschema.xml.in:112
 msgid "Print checks from multiple accounts"
-msgstr ""
+msgstr "Cetak cek dari beberapa akun"
 
 #: gnucash/gschemas/org.gnucash.warnings.gschema.xml.in:10
-#: gnucash/gschemas/org.gnucash.warnings.gschema.xml.in:108
+#: gnucash/gschemas/org.gnucash.warnings.gschema.xml.in:113
 msgid ""
 "This dialog is presented if you try to print checks from multiple accounts "
 "at the same time."
 msgstr ""
+"Dialog ini ditampilkan jika Anda mencoba untuk mencetak cek dari beberapa "
+"akun pada satu waktu."
 
 #: gnucash/gschemas/org.gnucash.warnings.gschema.xml.in:14
-#: gnucash/gschemas/org.gnucash.warnings.gschema.xml.in:112
-#, fuzzy
-msgid "Commit changes to a invoice entry"
-msgstr "Tampilkan perubahan yang diperkenalkan oleh komit yang dipilih"
+#: gnucash/gschemas/org.gnucash.warnings.gschema.xml.in:117
+msgid "Confirm Window Close"
+msgstr "Konfirmasi Tutup Jendela"
 
 #: gnucash/gschemas/org.gnucash.warnings.gschema.xml.in:15
-#: gnucash/gschemas/org.gnucash.warnings.gschema.xml.in:113
+#: gnucash/gschemas/org.gnucash.warnings.gschema.xml.in:118
+msgid "This dialog is presented when there is more than one window."
+msgstr "Dialog ini ditampilkan ketika ada lebih dari satu jendela."
+
+#: gnucash/gschemas/org.gnucash.warnings.gschema.xml.in:19
+#: gnucash/gschemas/org.gnucash.warnings.gschema.xml.in:122
+msgid "Commit changes to a invoice entry"
+msgstr "Komit perubahan ke entri faktur"
+
+#: gnucash/gschemas/org.gnucash.warnings.gschema.xml.in:20
+#: gnucash/gschemas/org.gnucash.warnings.gschema.xml.in:123
 msgid ""
 "This dialog is presented when you attempt to move out of a modified invoice "
 "entry. The changed data must be either saved or discarded."
 msgstr ""
+"Dialog ini ditampilkan ketika Anda mencoba untuk keluar dari entri faktur "
+"yang dimodifikasi. Data yang diubah harus disimpan atau dibuang."
 
-#: gnucash/gschemas/org.gnucash.warnings.gschema.xml.in:19
-#: gnucash/gschemas/org.gnucash.warnings.gschema.xml.in:117
+#: gnucash/gschemas/org.gnucash.warnings.gschema.xml.in:24
+#: gnucash/gschemas/org.gnucash.warnings.gschema.xml.in:127
 msgid "Duplicating a changed invoice entry"
-msgstr ""
+msgstr "Duplikasi entri faktur yang diubah"
 
-#: gnucash/gschemas/org.gnucash.warnings.gschema.xml.in:20
-#: gnucash/gschemas/org.gnucash.warnings.gschema.xml.in:118
+#: gnucash/gschemas/org.gnucash.warnings.gschema.xml.in:25
+#: gnucash/gschemas/org.gnucash.warnings.gschema.xml.in:128
 msgid ""
 "This dialog is presented when you attempt to duplicate a modified invoice "
 "entry. The changed data must be saved or the duplication canceled."
 msgstr ""
+"Dialog ini ditampilkan ketika Anda mencoba untuk menduplikasi entri faktur "
+"yang dimodifikasi. Data yang diubah harus disimpan atau duplikasi dibatalkan."
 
-#: gnucash/gschemas/org.gnucash.warnings.gschema.xml.in:24
-#: gnucash/gschemas/org.gnucash.warnings.gschema.xml.in:122
+#: gnucash/gschemas/org.gnucash.warnings.gschema.xml.in:29
+#: gnucash/gschemas/org.gnucash.warnings.gschema.xml.in:132
 msgid "Delete a commodity"
 msgstr "Hapus komoditas"
 
-#: gnucash/gschemas/org.gnucash.warnings.gschema.xml.in:25
-#: gnucash/gschemas/org.gnucash.warnings.gschema.xml.in:123
+#: gnucash/gschemas/org.gnucash.warnings.gschema.xml.in:30
+#: gnucash/gschemas/org.gnucash.warnings.gschema.xml.in:133
 msgid "This dialog is presented before allowing you to delete a commodity."
 msgstr ""
 "Dialog ini ditampilkan sebelum memungkinkan Anda menghapus sebuah komoditas."
 
-#: gnucash/gschemas/org.gnucash.warnings.gschema.xml.in:29
-#: gnucash/gschemas/org.gnucash.warnings.gschema.xml.in:127
+#: gnucash/gschemas/org.gnucash.warnings.gschema.xml.in:34
+#: gnucash/gschemas/org.gnucash.warnings.gschema.xml.in:137
 msgid "Delete a commodity with price quotes"
 msgstr "Hapus komoditas dengan harga penawaran"
 
-#: gnucash/gschemas/org.gnucash.warnings.gschema.xml.in:30
-#: gnucash/gschemas/org.gnucash.warnings.gschema.xml.in:128
+#: gnucash/gschemas/org.gnucash.warnings.gschema.xml.in:35
+#: gnucash/gschemas/org.gnucash.warnings.gschema.xml.in:138
 msgid ""
 "This dialog is presented before allowing you to delete a commodity that has "
 "price quotes attached. Deleting the commodity will delete the quotes as well."
@@ -12084,13 +12376,13 @@ msgstr ""
 "memiliki harga penawaran. Menghapus komoditas juga akan menghapus harga "
 "penawaran."
 
-#: gnucash/gschemas/org.gnucash.warnings.gschema.xml.in:34
-#: gnucash/gschemas/org.gnucash.warnings.gschema.xml.in:132
+#: gnucash/gschemas/org.gnucash.warnings.gschema.xml.in:39
+#: gnucash/gschemas/org.gnucash.warnings.gschema.xml.in:142
 msgid "Delete multiple price quotes"
 msgstr "Hapus beberapa harga penawaran"
 
-#: gnucash/gschemas/org.gnucash.warnings.gschema.xml.in:35
-#: gnucash/gschemas/org.gnucash.warnings.gschema.xml.in:133
+#: gnucash/gschemas/org.gnucash.warnings.gschema.xml.in:40
+#: gnucash/gschemas/org.gnucash.warnings.gschema.xml.in:143
 msgid ""
 "This dialog is presented before allowing you to delete multiple price quotes "
 "at one time."
@@ -12098,189 +12390,218 @@ msgstr ""
 "Dialog ini ditampilkan sebelum memungkinkan Anda menghapus beberapa harga "
 "penawaran dalam satu waktu."
 
-#: gnucash/gschemas/org.gnucash.warnings.gschema.xml.in:39
-#: gnucash/gschemas/org.gnucash.warnings.gschema.xml.in:137
+#: gnucash/gschemas/org.gnucash.warnings.gschema.xml.in:44
+#: gnucash/gschemas/org.gnucash.warnings.gschema.xml.in:147
 msgid "Replace existing price"
 msgstr "Ganti harga yang sudah ada"
 
-#: gnucash/gschemas/org.gnucash.warnings.gschema.xml.in:40
-#: gnucash/gschemas/org.gnucash.warnings.gschema.xml.in:138
+#: gnucash/gschemas/org.gnucash.warnings.gschema.xml.in:45
+#: gnucash/gschemas/org.gnucash.warnings.gschema.xml.in:148
 msgid ""
 "This dialog is presented before allowing you to replace an existing price."
 msgstr ""
 "Dialog ini ditampilkan sebelum memungkinkan Anda mengganti harga yang sudah "
 "ada."
 
-#: gnucash/gschemas/org.gnucash.warnings.gschema.xml.in:44
-#: gnucash/gschemas/org.gnucash.warnings.gschema.xml.in:142
+#: gnucash/gschemas/org.gnucash.warnings.gschema.xml.in:49
+#: gnucash/gschemas/org.gnucash.warnings.gschema.xml.in:152
 msgid "Edit account payable/accounts receivable register"
 msgstr "Sunting register akun utang/akun piutang"
 
-#: gnucash/gschemas/org.gnucash.warnings.gschema.xml.in:45
-#: gnucash/gschemas/org.gnucash.warnings.gschema.xml.in:143
+#: gnucash/gschemas/org.gnucash.warnings.gschema.xml.in:50
+#: gnucash/gschemas/org.gnucash.warnings.gschema.xml.in:153
 msgid ""
 "This dialog is presented before allowing you to edit an accounts payable/"
 "accounts receivable account. These account types are reserved for the "
 "business features and should rarely be manipulated manually."
 msgstr ""
+"Dialog ini ditampilkan sebelum mengizinkan Anda untuk menyunting akun utang/"
+"piutang. Tipe akun ini disediakan untuk fitur-fitur bisnis dan sebaiknya "
+"tidak dimanipulasi secara manual."
 
-#: gnucash/gschemas/org.gnucash.warnings.gschema.xml.in:49
-#: gnucash/gschemas/org.gnucash.warnings.gschema.xml.in:147
+#: gnucash/gschemas/org.gnucash.warnings.gschema.xml.in:54
+#: gnucash/gschemas/org.gnucash.warnings.gschema.xml.in:157
 msgid "Read only register"
 msgstr "Register hanya baca"
 
-#: gnucash/gschemas/org.gnucash.warnings.gschema.xml.in:50
-#: gnucash/gschemas/org.gnucash.warnings.gschema.xml.in:148
+#: gnucash/gschemas/org.gnucash.warnings.gschema.xml.in:55
+#: gnucash/gschemas/org.gnucash.warnings.gschema.xml.in:158
 msgid "This dialog is presented when a read-only register is opened."
 msgstr "Dialog ini ditampilkan ketika register hanya-baca dibuka."
 
-#: gnucash/gschemas/org.gnucash.warnings.gschema.xml.in:54
-#: gnucash/gschemas/org.gnucash.warnings.gschema.xml.in:152
+#: gnucash/gschemas/org.gnucash.warnings.gschema.xml.in:59
+#: gnucash/gschemas/org.gnucash.warnings.gschema.xml.in:162
 msgid "Change contents of reconciled split"
-msgstr "Ubah isi pemecahan direkonsiliasi"
+msgstr "Ubah isi split direkonsiliasi"
 
-#: gnucash/gschemas/org.gnucash.warnings.gschema.xml.in:55
-#: gnucash/gschemas/org.gnucash.warnings.gschema.xml.in:153
+#: gnucash/gschemas/org.gnucash.warnings.gschema.xml.in:60
+#: gnucash/gschemas/org.gnucash.warnings.gschema.xml.in:163
 msgid ""
 "This dialog is presented before allowing you to change the contents of a "
 "reconciled split. Allowing these changes can make it hard to perform future "
 "reconciliations."
 msgstr ""
+"Dialog ini ditampilkan sebelum mengizinkan Anda mengubah isi split "
+"direkonsiliasi. Mengizinkan perubahan itu bisa menjadikannya sulit untuk "
+"melakukan rekonsiliasi yang akan datang."
 
-#: gnucash/gschemas/org.gnucash.warnings.gschema.xml.in:59
-#: gnucash/gschemas/org.gnucash.warnings.gschema.xml.in:157
+#: gnucash/gschemas/org.gnucash.warnings.gschema.xml.in:64
+#: gnucash/gschemas/org.gnucash.warnings.gschema.xml.in:167
 msgid "Mark transaction split as unreconciled"
-msgstr "Tandai pemecahan transaksi sebagai tak direkonsiliasi"
+msgstr "Tandai split transaksi sebagai tak direkonsiliasi"
 
-#: gnucash/gschemas/org.gnucash.warnings.gschema.xml.in:60
-#: gnucash/gschemas/org.gnucash.warnings.gschema.xml.in:158
+#: gnucash/gschemas/org.gnucash.warnings.gschema.xml.in:65
+#: gnucash/gschemas/org.gnucash.warnings.gschema.xml.in:168
 msgid ""
 "This dialog is presented before allowing you to mark a transaction split as "
 "unreconciled. Doing so will throw off the reconciled value of the register "
 "and can make it hard to perform future reconciliations."
 msgstr ""
+"Dialog ini akan ditampilkan sebelum mengizinkan Anda untuk menandai sebuah "
+"split transaksi sebagai tak direkonsiliasi. Melakukan hal ini akan membuang "
+"semua nilai direkonsiliasi dari register dan bisa mempersulit rekonsiliasi "
+"di masa depan."
 
-#: gnucash/gschemas/org.gnucash.warnings.gschema.xml.in:64
-#: gnucash/gschemas/org.gnucash.warnings.gschema.xml.in:162
+#: gnucash/gschemas/org.gnucash.warnings.gschema.xml.in:69
+#: gnucash/gschemas/org.gnucash.warnings.gschema.xml.in:172
 msgid "Remove a split from a transaction"
-msgstr "Hapus pemecahan dari transaksi"
+msgstr "Hapus split dari transaksi"
 
-#: gnucash/gschemas/org.gnucash.warnings.gschema.xml.in:65
-#: gnucash/gschemas/org.gnucash.warnings.gschema.xml.in:163
+#: gnucash/gschemas/org.gnucash.warnings.gschema.xml.in:70
+#: gnucash/gschemas/org.gnucash.warnings.gschema.xml.in:173
 msgid ""
 "This dialog is presented before allowing you to remove a split from a "
 "transaction."
 msgstr ""
-"Dialog ini ditampilkan sebelum memungkinkan Anda menghapus pemecahan dari "
-"sebuah transaksi"
+"Dialog ini ditampilkan sebelum memungkinkan Anda menghapus sebuah split dari "
+"suatu transaksi."
 
-#: gnucash/gschemas/org.gnucash.warnings.gschema.xml.in:69
-#: gnucash/gschemas/org.gnucash.warnings.gschema.xml.in:167
+#: gnucash/gschemas/org.gnucash.warnings.gschema.xml.in:74
+#: gnucash/gschemas/org.gnucash.warnings.gschema.xml.in:177
 msgid "Remove a reconciled split from a transaction"
-msgstr "Hapus pemecahan yang direkonsiliasi dari transaksi"
+msgstr "Hapus split yang direkonsiliasi dari transaksi"
 
-#: gnucash/gschemas/org.gnucash.warnings.gschema.xml.in:70
-#: gnucash/gschemas/org.gnucash.warnings.gschema.xml.in:168
+#: gnucash/gschemas/org.gnucash.warnings.gschema.xml.in:75
+#: gnucash/gschemas/org.gnucash.warnings.gschema.xml.in:178
 msgid ""
 "This dialog is presented before allowing you to remove a reconciled split "
 "from a transaction. Doing so will throw off the reconciled value of the "
 "register and can make it hard to perform future reconciliations."
 msgstr ""
+"Dialog ini akan ditampilkan sebelum mengizinkan Anda untuk menghapus sebuah "
+"split direkonsiliasi dari suatu transaksi. Melakukan hal ini akan membuang "
+"semua nilai direkonsiliasi dari register dan bisa mempersulit rekonsiliasi "
+"di masa depan."
 
-#: gnucash/gschemas/org.gnucash.warnings.gschema.xml.in:74
 #: gnucash/gschemas/org.gnucash.warnings.gschema.xml.in:79
-#: gnucash/gschemas/org.gnucash.warnings.gschema.xml.in:172
-#: gnucash/gschemas/org.gnucash.warnings.gschema.xml.in:177
+#: gnucash/gschemas/org.gnucash.warnings.gschema.xml.in:84
+#: gnucash/gschemas/org.gnucash.warnings.gschema.xml.in:182
+#: gnucash/gschemas/org.gnucash.warnings.gschema.xml.in:187
 msgid "Remove all the splits from a transaction"
-msgstr "Hapus semua pemecahan dari transaksi"
+msgstr "Hapus semua split dari transaksi"
 
-#: gnucash/gschemas/org.gnucash.warnings.gschema.xml.in:75
-#: gnucash/gschemas/org.gnucash.warnings.gschema.xml.in:173
+#: gnucash/gschemas/org.gnucash.warnings.gschema.xml.in:80
+#: gnucash/gschemas/org.gnucash.warnings.gschema.xml.in:183
 msgid ""
 "This dialog is presented before allowing you to remove all splits from a "
 "transaction."
 msgstr ""
-"Dialog ini ditampilkan sebelum memungkinkan Anda menghapus semua pemecahan "
-"dari sebuah transaksi."
+"Dialog ini ditampilkan sebelum memungkinkan Anda menghapus semua split dari "
+"sebuah transaksi."
 
-#: gnucash/gschemas/org.gnucash.warnings.gschema.xml.in:80
-#: gnucash/gschemas/org.gnucash.warnings.gschema.xml.in:178
+#: gnucash/gschemas/org.gnucash.warnings.gschema.xml.in:85
+#: gnucash/gschemas/org.gnucash.warnings.gschema.xml.in:188
 msgid ""
 "This dialog is presented before allowing you to remove all splits (including "
 "some reconciled splits) from a transaction. Doing so will throw off the "
 "reconciled value of the register and can make it hard to perform future "
 "reconciliations."
 msgstr ""
+"Dialog ini akan ditampilkan sebelum mengizinkan Anda menghapus semua split "
+"(termasuk beberapa split direkonsiliasi) dari suatu transaksi. Melakukan hal "
+"ini akan membuang semua nilai direkonsiliasi dari register dan bisa "
+"mempersulit rekonsiliasi di masa depan."
 
-#: gnucash/gschemas/org.gnucash.warnings.gschema.xml.in:84
-#: gnucash/gschemas/org.gnucash.warnings.gschema.xml.in:182
+#: gnucash/gschemas/org.gnucash.warnings.gschema.xml.in:89
+#: gnucash/gschemas/org.gnucash.warnings.gschema.xml.in:192
 msgid "Delete a transaction"
 msgstr "Hapus transaksi"
 
-#: gnucash/gschemas/org.gnucash.warnings.gschema.xml.in:85
-#: gnucash/gschemas/org.gnucash.warnings.gschema.xml.in:183
+#: gnucash/gschemas/org.gnucash.warnings.gschema.xml.in:90
+#: gnucash/gschemas/org.gnucash.warnings.gschema.xml.in:193
 msgid "This dialog is presented before allowing you to delete a transaction."
 msgstr ""
 "Dialog ini ditampilkan sebelum memungkinkan Anda menghapus sebuah transaksi."
 
-#: gnucash/gschemas/org.gnucash.warnings.gschema.xml.in:89
-#: gnucash/gschemas/org.gnucash.warnings.gschema.xml.in:187
+#: gnucash/gschemas/org.gnucash.warnings.gschema.xml.in:94
+#: gnucash/gschemas/org.gnucash.warnings.gschema.xml.in:197
 msgid "Delete a transaction with reconciled splits"
-msgstr "Hapus transaksi dengan pemecahan direkonsiliasi"
+msgstr "Hapus transaksi dengan split direkonsiliasi"
 
-#: gnucash/gschemas/org.gnucash.warnings.gschema.xml.in:90
-#: gnucash/gschemas/org.gnucash.warnings.gschema.xml.in:188
+#: gnucash/gschemas/org.gnucash.warnings.gschema.xml.in:95
+#: gnucash/gschemas/org.gnucash.warnings.gschema.xml.in:198
 msgid ""
 "This dialog is presented before allowing you to delete a transaction that "
 "contains reconciled splits. Doing so will throw off the reconciled value of "
 "the register and can make it hard to perform future reconciliations."
 msgstr ""
+"Dialog ini akan ditampilkan sebelum mengizinkan Anda menghapus suatu "
+"transaksi yang berisi split direkonsiliasi. Melakukan hal ini akan membuang "
+"nilai direkonsiliasi dari register dan bisa mempersulit rekonsiliasi di masa "
+"depan."
 
-#: gnucash/gschemas/org.gnucash.warnings.gschema.xml.in:94
-#: gnucash/gschemas/org.gnucash.warnings.gschema.xml.in:192
-#, fuzzy
+#: gnucash/gschemas/org.gnucash.warnings.gschema.xml.in:99
+#: gnucash/gschemas/org.gnucash.warnings.gschema.xml.in:202
 msgid "Duplicating a changed transaction"
-msgstr "Menduplikasi bingkai…"
+msgstr "Menduplikasi transaksi yang diubah"
 
-#: gnucash/gschemas/org.gnucash.warnings.gschema.xml.in:95
-#: gnucash/gschemas/org.gnucash.warnings.gschema.xml.in:193
+#: gnucash/gschemas/org.gnucash.warnings.gschema.xml.in:100
+#: gnucash/gschemas/org.gnucash.warnings.gschema.xml.in:203
 msgid ""
 "This dialog is presented when you attempt to duplicate a modified "
 "transaction. The changed data must be saved or the duplication canceled."
 msgstr ""
+"Dialog ini ditampilkan ketika Anda mencoba untuk menduplikasi transaksi yang "
+"telah dimodifikasi. Data yang diubah harus disimpan atau duplikasi "
+"dibatalkan."
 
-#: gnucash/gschemas/org.gnucash.warnings.gschema.xml.in:99
-#: gnucash/gschemas/org.gnucash.warnings.gschema.xml.in:197
-#, fuzzy
+#: gnucash/gschemas/org.gnucash.warnings.gschema.xml.in:104
+#: gnucash/gschemas/org.gnucash.warnings.gschema.xml.in:207
 msgid "Commit changes to a transaction"
-msgstr "transaksi"
+msgstr "Komit perubahan pada transaksi"
 
-#: gnucash/gschemas/org.gnucash.warnings.gschema.xml.in:100
-#: gnucash/gschemas/org.gnucash.warnings.gschema.xml.in:198
+#: gnucash/gschemas/org.gnucash.warnings.gschema.xml.in:105
+#: gnucash/gschemas/org.gnucash.warnings.gschema.xml.in:208
 msgid ""
 "This dialog is presented when you attempt to move out of a modified "
 "transaction. The changed data must be either saved or discarded."
 msgstr ""
+"Dialog ini ditampilkan ketika Anda mencoba untuk keluar dari transaksi yang "
+"telah dimodifikasi. Data yang diubah harus disimpan atau dibuang."
 
 #: gnucash/gschemas/org.gnucash.window.pages.account.tree.gschema.xml.in:5
 #: gnucash/gschemas/org.gnucash.window.pages.account.tree.gschema.xml.in:6
 msgid ""
 "Show a grand total of all accounts converted to the default report currency"
 msgstr ""
+"Tampilkan total keseluruhan untuk semua akun yang dikonversikan ke mata uang "
+"baku untuk laporan"
 
 #: gnucash/gschemas/org.gnucash.window.pages.account.tree.gschema.xml.in:10
 msgid "Show non currency commodities"
-msgstr ""
+msgstr "Tampilkan komoditas yang bukan mata uang"
 
 #: gnucash/gschemas/org.gnucash.window.pages.account.tree.gschema.xml.in:11
 msgid ""
 "If active, non currency commodities (stocks) will be shown. Otherwise they "
 "will be hidden."
 msgstr ""
+"Jika aktif, komoditas yang bukan mata uang (saham) akan ditampilkan. Jika "
+"tidak, akan disembunyikan."
 
 #: gnucash/gschemas/org.gnucash.window.pages.account.tree.gschema.xml.in:15
 msgid "Use relative profit/loss starting date"
-msgstr ""
+msgstr "Gunakan tanggal mulai laba/rugi relatif"
 
 #: gnucash/gschemas/org.gnucash.window.pages.account.tree.gschema.xml.in:16
 #: gnucash/gschemas/org.gnucash.window.pages.account.tree.gschema.xml.in:21
@@ -12290,14 +12611,19 @@ msgid ""
 "date specified by the start-date key. If set to anything else, GnuCash will "
 "retrieve the starting date specified by the start-period key."
 msgstr ""
+"Pengaturan ini menentukan tipe tanggal mulai yang digunakan dalam "
+"perhitungan laba/rugi. Jika disetel \"absolut\" maka GnuCash akan mengambil "
+"tanggal mulai yang ditentukan oleh kunci tanggal-mulai. Jika disetel "
+"selainnya, GnuCash akan mengambil tanggal mulai yang ditentukan oleh kunci "
+"periode-mulai."
 
 #: gnucash/gschemas/org.gnucash.window.pages.account.tree.gschema.xml.in:20
 msgid "Use absolute profit/loss starting date"
-msgstr ""
+msgstr "Gunakan tanggal mulai laba/rugi absolut"
 
 #: gnucash/gschemas/org.gnucash.window.pages.account.tree.gschema.xml.in:25
 msgid "Starting date (in seconds from Jan 1, 1970)"
-msgstr ""
+msgstr "Tanggal mulai (dalam detik dari 1 Januari 1970)"
 
 #: gnucash/gschemas/org.gnucash.window.pages.account.tree.gschema.xml.in:26
 msgid ""
@@ -12305,11 +12631,14 @@ msgid ""
 "the start-choice setting is set to \"absolute\". This field should contain a "
 "date as represented in seconds from January 1st, 1970."
 msgstr ""
+"Pengaturan ini menentukan tanggal mulai yang disetel di perhitungan laba/"
+"rugi jika pengaturan pilihan-mulai disetel \"absolut\". Bidang ini harus "
+"berisi sebuah tanggal yang direpresentasikan dalam detik sejak 1 Januari "
+"1970."
 
 #: gnucash/gschemas/org.gnucash.window.pages.account.tree.gschema.xml.in:30
-#, fuzzy
 msgid "Starting time period identifier"
-msgstr "Memulai Kontak untuk pertama kali"
+msgstr "Pengidentifikasi periode waktu mulai"
 
 #: gnucash/gschemas/org.gnucash.window.pages.account.tree.gschema.xml.in:31
 msgid ""
@@ -12317,10 +12646,13 @@ msgid ""
 "the start-choice setting is set to anything other than \"absolute\". This "
 "field should contain a value between 0 and 8."
 msgstr ""
+"Pengaturan ini menentukan tanggal mulai yang disetel di perhitungan laba/"
+"rugi jika pengaturan pilihan-mulai disetel selain \"absolut\". Bidang ini "
+"harus berisi nilai antara 0 dan 8."
 
 #: gnucash/gschemas/org.gnucash.window.pages.account.tree.gschema.xml.in:35
 msgid "Use relative profit/loss ending date"
-msgstr ""
+msgstr "Gunakan tanggal akhir laba/rugi relatif"
 
 #: gnucash/gschemas/org.gnucash.window.pages.account.tree.gschema.xml.in:36
 #: gnucash/gschemas/org.gnucash.window.pages.account.tree.gschema.xml.in:41
@@ -12330,14 +12662,19 @@ msgid ""
 "date specified by the end-date key. If set to anything else, GnuCash will "
 "retrieve the ending date specified by the end-period key."
 msgstr ""
+"Pengaturan ini menentukan tipe tanggal akhir yang digunakan di perhitungan "
+"laba/rugi. Jika disetel \"absolut\" maka GnuCash akan mengambil tanggal "
+"akhir yang ditentukan oleh kunci tanggal-akhir. Jika disetel selainnya, "
+"GnuCash akan mengambil tanggal akhir yang ditentukan oleh kunci periode-"
+"akhir."
 
 #: gnucash/gschemas/org.gnucash.window.pages.account.tree.gschema.xml.in:40
 msgid "Use absolute profit/loss ending date"
-msgstr ""
+msgstr "Gunakan tanggal akhir laba/rugi absolut"
 
 #: gnucash/gschemas/org.gnucash.window.pages.account.tree.gschema.xml.in:45
 msgid "Ending date (in seconds from Jan 1, 1970)"
-msgstr ""
+msgstr "Tanggal akhir (dalam detik dari 1 Januari 1970)"
 
 #: gnucash/gschemas/org.gnucash.window.pages.account.tree.gschema.xml.in:46
 msgid ""
@@ -12345,11 +12682,14 @@ msgid ""
 "end-choice setting is set to \"absolute\". This field should contain a date "
 "as represented in seconds from January 1st, 1970."
 msgstr ""
+"Pengaturan ini menentukan tanggal akhir yang disetel di perhitungan laba/"
+"rugi jika pengaturan pilihan-akhir disetel \"absolut\". Bidang ini harus "
+"berisi sebuah tanggal yang direpresentasikan dalam detik sejak 1 Januari "
+"1970."
 
 #: gnucash/gschemas/org.gnucash.window.pages.account.tree.gschema.xml.in:50
-#, fuzzy
 msgid "Ending time period identifier"
-msgstr "periode waktu"
+msgstr "Pengidentifikasi periode waktu akhir"
 
 #: gnucash/gschemas/org.gnucash.window.pages.account.tree.gschema.xml.in:51
 msgid ""
@@ -12357,26 +12697,29 @@ msgid ""
 "end-choice setting is set to anything other than \"absolute\". This field "
 "should contain a value between 0 and 8."
 msgstr ""
+"Pengaturan ini menentukan tanggal akhir yang disetel di perhitungan laba/"
+"rugi jika pengaturan pilihan-akhir disetel selain \"absolut\". Bidang ini "
+"harus berisi nilai antara 0 dan 8."
 
 #: gnucash/gschemas/org.gnucash.window.pages.gschema.xml.in:5
-#, fuzzy
 msgid "Display this column"
-msgstr "Tampilkan kolom jenis di jendela utama."
+msgstr "Tampilkan kolom ini"
 
 #: gnucash/gschemas/org.gnucash.window.pages.gschema.xml.in:6
 msgid ""
 "This setting controls whether the given column will be visible in the view. "
 "TRUE means visible, FALSE means hidden."
 msgstr ""
+"Pengaturan ini menentukan apakah suatu kolom akan tampak pada tampilan. TRUE "
+"berarti tampak, FALSE berarti tersembunyi."
 
 #: gnucash/gschemas/org.gnucash.window.pages.gschema.xml.in:10
-#, fuzzy
 msgid "Width of this column"
-msgstr "Kolom Lebar dalam Karakter"
+msgstr "Lebar kolom ini"
 
 #: gnucash/gschemas/org.gnucash.window.pages.gschema.xml.in:11
 msgid "This setting stores the width of the given column in pixels."
-msgstr ""
+msgstr "Pengaturan ini menentukan lebar suatu kolom dalam piksel."
 
 #: gnucash/gtkbuilder/assistant-acct-period.glade:29
 msgid ""
@@ -12386,11 +12729,16 @@ msgid ""
 "development. It will probably damage your data in such a way that it cannot "
 "be repaired!"
 msgstr ""
+"Asisten ini akan membantu Anda menyiapkan dan menggunakan periode "
+"akuntansi.\n"
+"\n"
+"Bahaya: fitur ini tidak bekerja dengan benar pada saat ini; fitur ini masih "
+"dalam pengembangan. Fitur ini mungkin akan merusak data Anda sedemikian rupa "
+"sehingga tidak dapat diperbaiki!"
 
 #: gnucash/gtkbuilder/assistant-acct-period.glade:36
-#, fuzzy
 msgid "Setup Account Period"
-msgstr "Penyiapan"
+msgstr "Pengaturan Periode Akuntansi"
 
 #: gnucash/gtkbuilder/assistant-acct-period.glade:50
 msgid ""
@@ -12400,6 +12748,11 @@ msgid ""
 "\n"
 "Books will be closed at midnight on the selected date."
 msgstr ""
+"\n"
+"Pilih periode akuntansi dan tanggal penutupan yang bukan di masa depan dan "
+"lebih besar dari tanggal penutupan buku sebelumnya.\n"
+"\n"
+"Buku akan ditutup pada tengah malam pada tanggal yang dipilih."
 
 #: gnucash/gtkbuilder/assistant-acct-period.glade:82
 #: gnucash/gtkbuilder/assistant-acct-period.glade:107
@@ -12407,7 +12760,7 @@ msgstr ""
 #: gnucash/gtkbuilder/assistant-acct-period.glade:216
 #: gnucash/gtkbuilder/assistant-acct-period.glade:235
 msgid "xxx"
-msgstr ""
+msgstr "xxx"
 
 #: gnucash/gtkbuilder/assistant-acct-period.glade:94
 msgid "Book Closing Dates"
@@ -12419,23 +12772,20 @@ msgid "Close Book"
 msgstr "Tutup Buku"
 
 #: gnucash/gtkbuilder/assistant-acct-period.glade:222
-#, fuzzy
 msgid "Account Period Finish"
-msgstr "_Selesai"
+msgstr "Periode Akun Selesai"
 
 #: gnucash/gtkbuilder/assistant-acct-period.glade:249
 msgid "Press 'Close' to Exit."
 msgstr "Tekan 'Tutup' untuk Keluar."
 
 #: gnucash/gtkbuilder/assistant-acct-period.glade:260
-#, fuzzy
 msgid "Summary Page"
-msgstr "[Tanpa Judul]"
+msgstr "Halaman Ikhtisar"
 
 #: gnucash/gtkbuilder/assistant-csv-account-import.glade:13
-#, fuzzy
 msgid "CSV Import Assistant"
-msgstr "Program Bantu Impor Evolution"
+msgstr "Asisten Impor CSV"
 
 #. Run the assistant in your language to see GTK's translation of the button labels.
 #: gnucash/gtkbuilder/assistant-csv-account-import.glade:42
@@ -12454,79 +12804,68 @@ msgid ""
 "\n"
 "Click on \"Next\" to proceed or \"Cancel\" to Abort Import.\n"
 msgstr ""
+"\n"
+"Asisten ini akan membantu Anda mengimpor Akun dari sebuah berkas.\n"
+"\n"
+"Berkas harus menggunakan format yang sama seperti yang diekspor karena ini "
+"adalah impor format tetap yang bisa dilihat dengan memeriksa berkas yang "
+"dibuat dengan menggunakan opsi menu ekspor \"Ekspor Pohon Akun ke CSV\".\n"
+"\n"
+"Jika akun tidak ditemukan, berdasarkan nama lengkap akun, ia akan "
+"ditambahkan sepanjang sekuritas / mata uang tersedia. Jika akun tersedia, "
+"maka empat bidang akan diperbarui. Bidang tersebut adalah kode, deskripsi, "
+"catatan dan warna.\n"
+"\n"
+"Klik pada \"Berikutnya\" untuk melanjutkan atau \"Batal\" untuk Membatalkan "
+"Impor.\n"
 
 #: gnucash/gtkbuilder/assistant-csv-account-import.glade:63
-#, fuzzy
 msgid "Import Account Assistant"
-msgstr "Asisten Akun Evolution"
+msgstr "Asisten Impor Akun"
 
 #: gnucash/gtkbuilder/assistant-csv-account-import.glade:78
-#, fuzzy
 msgid ""
 "\n"
 "Enter file name and location for the Import...\n"
-msgstr "Dalam dialog, masukkan nama untuk berkas galeri yang akan dibuat."
+msgstr ""
+"\n"
+"Masukkan nama berkas dan lokasi untuk Impor...\n"
 
 #: gnucash/gtkbuilder/assistant-csv-account-import.glade:91
-#, fuzzy
 msgid "Choose File to Import"
-msgstr "_Impor Berkas…"
+msgstr "Pilih Berkas untuk Impor"
 
 #: gnucash/gtkbuilder/assistant-csv-account-import.glade:111
-#, fuzzy
 msgid "Number of rows for the Header"
-msgstr "Jumlah baris dalam permainan gubahan"
+msgstr "Jumlah baris untuk Kepala"
 
 #: gnucash/gtkbuilder/assistant-csv-account-import.glade:156
-#, fuzzy
 msgid "Comma Separated"
-msgstr "Nilai dipisah koma (.csv)"
+msgstr "Dipisahkan Koma"
 
 #: gnucash/gtkbuilder/assistant-csv-account-import.glade:172
-#, fuzzy
 msgid "Semicolon Separated"
-msgstr ""
-"Tanda titik koma (\";\") memisahkan daftar peladen untuk mencari informasi, "
-"selain domain alamat surel."
+msgstr "Dipisahkan Titik Koma"
 
 #: gnucash/gtkbuilder/assistant-csv-account-import.glade:188
-#, fuzzy
 msgid "Custom regular Expression"
-msgstr "Ekspresi _Reguler"
+msgstr "Ekspresi reguler tersuai"
 
 #: gnucash/gtkbuilder/assistant-csv-account-import.glade:204
-#, fuzzy
 msgid "Colon Separated"
-msgstr ""
-"%s [OPSI…] PERINTAH\n"
-"\n"
-"Mengeksekusi PERINTAH sambil mencegah beberapa fungsionalitas sesi.\n"
-"\n"
-"  -h, --help        Tampilkan bantuan ini\n"
-"  --version         Tampilkan versi program\n"
-"  --app-id ID       ID aplikasi untuk dipakai\n"
-"                    ketika mencegah (opsional)\n"
-"  --reason REASON   Alasan mencegah (opsional)\n"
-"  --inhibit ARG     Hal yang dicegah, daftar yang dipisah titik dua dari:\n"
-"                    logout, switch-user, suspend, idle, automount\n"
-"  --inhibit-only    Jangan meluncurkan PERINTAH dan tunggu selamanya\n"
-"                    sebagai gantinya\n"
-"\n"
-"Bila tak ada opsi --inhibit yang dinyatakan, diasumsikan idle.\n"
+msgstr "Dipisahkan Titik Dua"
 
 #: gnucash/gtkbuilder/assistant-csv-account-import.glade:230
-#, fuzzy
 msgid "Select Separator Type"
-msgstr "Pilih Jenis"
+msgstr "Pilih Tipe Separator"
 
 #: gnucash/gtkbuilder/assistant-csv-account-import.glade:268
-#, fuzzy
 msgid "Preview"
 msgstr "Pratinjau"
 
 #: gnucash/gtkbuilder/assistant-csv-account-import.glade:281
 msgid "Import Account Preview, first 10 rows only"
-msgstr ""
+msgstr "Pratinjau Akun Impor, hanya 10 baris pertama"
 
 #: gnucash/gtkbuilder/assistant-csv-account-import.glade:290
 #: gnucash/gtkbuilder/assistant-csv-export.glade:726
@@ -12534,218 +12873,191 @@ msgid ""
 "Press Apply to create export file.\n"
 "Cancel to abort."
 msgstr ""
+"Tekan Terapkan untuk membuat berkas ekspor.\n"
+"Batal untuk membatalkan."
 
 #: gnucash/gtkbuilder/assistant-csv-account-import.glade:296
-#, fuzzy
 msgid "Import Accounts Now"
-msgstr "impor"
+msgstr "Impor Akun Sekarang"
 
 #: gnucash/gtkbuilder/assistant-csv-account-import.glade:346
 #: gnucash/gtkbuilder/assistant-csv-price-import.glade:1071
 #: gnucash/gtkbuilder/assistant-csv-trans-import.glade:1160
-#, fuzzy
 msgid "Import Summary"
-msgstr "* Tidak ada judul *"
+msgstr "Ikhtisar Impor"
 
 #: gnucash/gtkbuilder/assistant-csv-export.glade:8
-#, fuzzy
 msgid "CSV Export Assistant"
-msgstr "_Asisten:"
+msgstr "Asisten Ekspor CSV"
 
 #: gnucash/gtkbuilder/assistant-csv-export.glade:34
 msgid ""
 "\n"
 "Select the type of Export required and the separator that will be used.\n"
 msgstr ""
+"\n"
+"Pilih tipe Ekspor yang diperlukan dan tanda pemisah yang akan digunakan.\n"
 
 #: gnucash/gtkbuilder/assistant-csv-export.glade:73
 msgid "Use Quotes"
 msgstr "Gunakan Harga Penawaran"
 
 #: gnucash/gtkbuilder/assistant-csv-export.glade:88
-#, fuzzy
 msgid "Simple Layout"
-msgstr "Tata _Letak:"
+msgstr "Tata Letak Sederhana"
 
 #: gnucash/gtkbuilder/assistant-csv-export.glade:135
 #: gnucash/gtkbuilder/assistant-csv-price-import.glade:322
 #: gnucash/gtkbuilder/assistant-csv-trans-import.glade:314
-#, fuzzy
 msgid "Comma (,)"
-msgstr "Daftar yang dipisah koma dari ekstensi GL yang pura-pura dinonaktifkan"
+msgstr "Koma (,)"
 
 #: gnucash/gtkbuilder/assistant-csv-export.glade:151
 #: gnucash/gtkbuilder/assistant-csv-price-import.glade:339
 #: gnucash/gtkbuilder/assistant-csv-trans-import.glade:331
-#, fuzzy
 msgid "Colon (:)"
-msgstr "Tambahkan Titik Dua"
+msgstr "Titik Dua (:)"
 
 #: gnucash/gtkbuilder/assistant-csv-export.glade:168
 #: gnucash/gtkbuilder/assistant-csv-price-import.glade:355
 #: gnucash/gtkbuilder/assistant-csv-trans-import.glade:347
-#, fuzzy
 msgid "Semicolon (;)"
-msgstr ""
-"Referensi karakter tidak diakhiri dengan titik koma; Mungkin Anda sedang "
-"menggunakan karakter ampersand tanpa bermaksud menjadikannya sebagai entitas "
-"— silakan gunakan & saja"
+msgstr "Titik Koma (;)"
 
 #: gnucash/gtkbuilder/assistant-csv-export.glade:221
 #: gnucash/gtkbuilder/assistant-csv-price-import.glade:232
 #: gnucash/gtkbuilder/assistant-csv-trans-import.glade:221
-#, fuzzy
 msgid "Separators"
-msgstr "Tampilkan Pemisah Ribuan"
+msgstr "Pemisah"
 
 #: gnucash/gtkbuilder/assistant-csv-export.glade:237
-#, fuzzy
 msgid "Choose Export Settings"
-msgstr "Tatanan"
+msgstr "Pilih Pengaturan Ekspor"
 
 #: gnucash/gtkbuilder/assistant-csv-export.glade:252
 msgid "Select the accounts to be exported and date range if required."
-msgstr ""
+msgstr "Pilih akun yang akan diekspor dan rentang tanggal jika diperlukan."
 
 #: gnucash/gtkbuilder/assistant-csv-export.glade:277
-#, fuzzy
 msgid "<b>Accounts</b>"
-msgstr "<b>Ruang Lingkup</b>"
+msgstr "<b>Akun</b>"
 
 #: gnucash/gtkbuilder/assistant-csv-export.glade:326
 #: gnucash/gtkbuilder/dialog-tax-info.glade:371
-#, fuzzy
 msgid "Accounts Selected:"
-msgstr "_Akun"
+msgstr "Akun Terpilih:"
 
 #: gnucash/gtkbuilder/assistant-csv-export.glade:339
 #: gnucash/gtkbuilder/dialog-tax-info.glade:384
-#, fuzzy
+#: gnucash/gtkbuilder/gnc-plugin-page-register.glade:764
 msgid "0"
 msgstr "0"
 
 #: gnucash/gtkbuilder/assistant-csv-export.glade:373
 #: gnucash/gtkbuilder/dialog-tax-info.glade:417
-#, fuzzy
 msgid "_Select Subaccounts"
-msgstr "_Pilih..."
+msgstr "Pilih _Sub-akun"
 
 #: gnucash/gtkbuilder/assistant-csv-export.glade:388
-#: gnucash/gtkbuilder/gnc-plugin-page-register2.glade:575
+#: gnucash/gtkbuilder/gnc-plugin-page-register2.glade:622
 #: gnucash/gtkbuilder/gnc-plugin-page-register.glade:466
-#, fuzzy
 msgid "Select _All"
 msgstr "Pilih Semu_a"
 
 #: gnucash/gtkbuilder/assistant-csv-export.glade:432
-#, fuzzy
 msgid "<b>Dates</b>"
-msgstr "<b>Ruang Lingkup</b>"
+msgstr "<b>Tanggal</b>"
 
 #: gnucash/gtkbuilder/assistant-csv-export.glade:444
-#, fuzzy
 msgid "Sho_w All"
-msgstr "Tampilka_n Semua Daftar Memo"
+msgstr "Tampilka_n Semua"
 
 #: gnucash/gtkbuilder/assistant-csv-export.glade:461
 #: gnucash/gtkbuilder/gnc-plugin-page-register.glade:141
-#, fuzzy
 msgid "Select _Range"
-msgstr "Pilih Rentang Timestamp dari Entri Log yang akan ditampilkan"
+msgstr "Pilih _Rentang"
 
 #. Filter By Dialog, Date Tab, Start section
 #: gnucash/gtkbuilder/assistant-csv-export.glade:488
-#: gnucash/gtkbuilder/gnc-plugin-page-register2.glade:277
+#: gnucash/gtkbuilder/gnc-plugin-page-register2.glade:324
 #: gnucash/gtkbuilder/gnc-plugin-page-register.glade:168
-#, fuzzy
 msgid "Start"
 msgstr "Mulai"
 
 #: gnucash/gtkbuilder/assistant-csv-export.glade:497
-#: gnucash/gtkbuilder/gnc-plugin-page-register2.glade:286
+#: gnucash/gtkbuilder/gnc-plugin-page-register2.glade:333
 #: gnucash/gtkbuilder/gnc-plugin-page-register.glade:177
 msgid "_Earliest"
-msgstr ""
+msgstr "_Paling Lama"
 
 #: gnucash/gtkbuilder/assistant-csv-export.glade:514
-#, fuzzy
 msgid "Cho_ose Date"
-msgstr "Pengkodean Yang Di_pilih"
+msgstr "Pilih _Tanggal"
 
 #: gnucash/gtkbuilder/assistant-csv-export.glade:531
-#: gnucash/gtkbuilder/gnc-plugin-page-register2.glade:318
+#: gnucash/gtkbuilder/gnc-plugin-page-register2.glade:365
 #: gnucash/gtkbuilder/gnc-plugin-page-register.glade:209
-#, fuzzy
 msgid "Toda_y"
-msgstr "_Y:"
+msgstr "Hari _Ini"
 
 #: gnucash/gtkbuilder/assistant-csv-export.glade:548
-#: gnucash/gtkbuilder/gnc-plugin-page-register2.glade:335
+#: gnucash/gtkbuilder/gnc-plugin-page-register2.glade:382
 #: gnucash/gtkbuilder/gnc-plugin-page-register.glade:226
-#, fuzzy
 msgid "_Latest"
-msgstr "Berita Terbaru"
+msgstr "Pa_ling Baru"
 
 #. Filter By Dialog, Date Tab, End section
 #: gnucash/gtkbuilder/assistant-csv-export.glade:578
 #: gnucash/gtkbuilder/dialog-fincalc.glade:601
 #: gnucash/gtkbuilder/dialog-sx.glade:424
-#: gnucash/gtkbuilder/gnc-plugin-page-register2.glade:365
+#: gnucash/gtkbuilder/gnc-plugin-page-register2.glade:412
 #: gnucash/gtkbuilder/gnc-plugin-page-register.glade:256
-#, fuzzy
 msgid "End"
 msgstr "Akhir"
 
 #: gnucash/gtkbuilder/assistant-csv-export.glade:587
-#: gnucash/gtkbuilder/gnc-plugin-page-register2.glade:374
+#: gnucash/gtkbuilder/gnc-plugin-page-register2.glade:421
 #: gnucash/gtkbuilder/gnc-plugin-page-register.glade:265
-#, fuzzy
 msgid "C_hoose Date"
-msgstr "_C/C++"
+msgstr "Pili_h Tanggal"
 
 #: gnucash/gtkbuilder/assistant-csv-export.glade:604
-#: gnucash/gtkbuilder/gnc-plugin-page-register2.glade:391
+#: gnucash/gtkbuilder/gnc-plugin-page-register2.glade:438
 #: gnucash/gtkbuilder/gnc-plugin-page-register.glade:282
-#, fuzzy
 msgid "_Today"
-msgstr "THari ini"
+msgstr "_Hari Ini"
 
 #: gnucash/gtkbuilder/assistant-csv-export.glade:691
-#, fuzzy
 msgid "Account Selection"
-msgstr "akun"
+msgstr "Pemilihan Akun"
 
 #: gnucash/gtkbuilder/assistant-csv-export.glade:705
-#, fuzzy
 msgid ""
 "\n"
 "Enter file name and location for the Export...\n"
-msgstr "Dalam dialog, masukkan nama untuk berkas galeri yang akan dibuat."
+msgstr ""
+"\n"
+"Masukkan nama berkas dan lokasi untuk Ekspor...\n"
 
 #: gnucash/gtkbuilder/assistant-csv-export.glade:718
-#, fuzzy
 msgid "Choose File Name for Export"
-msgstr "Pilih berkas"
+msgstr "Pilih Nama Berkas untuk Ekspor"
 
 #: gnucash/gtkbuilder/assistant-csv-export.glade:732
-#, fuzzy
 msgid "Export Now..."
-msgstr "Sekarang"
+msgstr "Ekspor Sekarang..."
 
 #: gnucash/gtkbuilder/assistant-csv-export.glade:740
-#, fuzzy
 msgid "Summary"
-msgstr "Ringkasan"
+msgstr "Ikhtisar"
 
 #: gnucash/gtkbuilder/assistant-csv-export.glade:745
-#, fuzzy
 msgid "Export Summary"
-msgstr "* Tidak ada judul *"
+msgstr "Ikhtisar Ekspor"
 
 #: gnucash/gtkbuilder/assistant-csv-price-import.glade:38
-#, fuzzy
 msgid "CSV Price Import"
-msgstr "[vcard|csv]"
+msgstr "Impor Harga CSV"
 
 #. You should localize the (british) examples to your region.
 #: gnucash/gtkbuilder/assistant-csv-price-import.glade:65
@@ -12779,11 +13091,39 @@ msgid ""
 "\n"
 "Click on \"Next\" to proceed or \"Cancel\" to Abort Import."
 msgstr ""
+"Asisten ini akan membantu Anda mengimpor Harga dari berkas CSV.\n"
+"\n"
+"Ada jumlah minimum kolom yang harus ada agar impor berhasil, yaitu Tanggal, "
+"Jumlah, Dari Namespace, Dari Simbol dan Mata Uang Ke. Jika semua entri untuk "
+"Komodias/Mata Uang yang sama, maka Anda dapat memilih mereka dan kemudian "
+"kolomnya akan menjadi Tanggal dan Jumlah.\n"
+"\n"
+"Berbagai opsi tersedia untuk menentukan pembatas begitu juga opsi lebar "
+"tetap. Dengan opsi lebar tetap, klik dua kali pada tabel baris yang "
+"ditampilkan untuk mengatur lebar kolom, kemudian klik kanan untuk "
+"mengubahnya jika diperlukan.\n"
+"\n"
+"Contohnya adalah \"FTSE\",\"RR.L\",\"21/11/2016\",5.345,\"GBP\" dan CURRENCY;"
+"USD;2016-11-21;1,56;GBP\n"
+"\n"
+"Tersedia opsi untuk menentukan awal baris, baris akhir dan opsi untuk "
+"melewatkan baris yang berseling dimulai dari baris awal yang dapat digunakan "
+"jika Anda memiliki beberapa judul teks. Juga tersedia opsi untuk menimpa "
+"harga yang ada untuk hari itu jika diperlukan.\n"
+"\n"
+"Terakhir, untuk impor berulang halaman pratinjau memiliki tombol Muat dan "
+"Simpan pengaturan. Untuk menyimpan pengaturan, ubah pengaturan sesuai dengan "
+"preferensi Anda (secara opsional mulai dari preset yang ada), lalu (secara "
+"opsional mengubah nama pengaturan dan tekan tombol Simpan Pengaturan. "
+"Perhatikan bahwa Anda tidak dapat menyimpan ke preset built-in.\n"
+"\n"
+"Operasi ini tidak reversibel, jadi pastikan Anda memiliki berkas cadangan.\n"
+"\n"
+"Klik \"Berikutnya\" untuk melanjutkan atau \"Batal\" untuk membatalkan Impor."
 
 #: gnucash/gtkbuilder/assistant-csv-price-import.glade:84
-#, fuzzy
 msgid "Price Import Assistant"
-msgstr "Program Bantu Impor Evolution"
+msgstr "Asisten Impor Harga"
 
 #: gnucash/gtkbuilder/assistant-csv-price-import.glade:99
 #: gnucash/gtkbuilder/assistant-csv-trans-import.glade:89
@@ -12791,12 +13131,13 @@ msgid ""
 "\n"
 "Select location and file name for the Import, then click \"OK\"...\n"
 msgstr ""
+"\n"
+"Pilih lokasi dan naa berkas untuk Impor, lalu klik \"OK\"...\n"
 
 #: gnucash/gtkbuilder/assistant-csv-price-import.glade:112
 #: gnucash/gtkbuilder/assistant-csv-trans-import.glade:102
-#, fuzzy
 msgid "Select File for Import"
-msgstr "Pilih berkas untuk diimpor"
+msgstr "Pilih berkas untuk Impor"
 
 #: gnucash/gtkbuilder/assistant-csv-price-import.glade:147
 #: gnucash/gtkbuilder/assistant-csv-trans-import.glade:138
@@ -12808,6 +13149,12 @@ msgid ""
 "- No settings\n"
 "- Gnucash default export format"
 msgstr ""
+"Hapus Pengaturan\n"
+"Hapus pengaturan yang tersimpan di bawah nama yang dimasukkan pada bidang "
+"teks yang ada.\n"
+"Terdapat dua nama khusus yang tidak dapat dihapus:\n"
+"- No settings\n"
+"- Gnucash default export format"
 
 #: gnucash/gtkbuilder/assistant-csv-price-import.glade:173
 #: gnucash/gtkbuilder/assistant-csv-trans-import.glade:164
@@ -12819,37 +13166,38 @@ msgid ""
 "- No settings\n"
 "- Gnucash default export format"
 msgstr ""
+"Simpan Pengaturan\n"
+"Simpan pengaturan saat ini di bawah nama yang dimasukkan pada bidang teks "
+"yang ada.\n"
+"Terdapat dua nama khusus yang tidak dapat digunakan untuk menyimpan "
+"pengaturan tersuai:\n"
+"- No settings\n"
+"- Gnucash default export format"
 
 #: gnucash/gtkbuilder/assistant-csv-price-import.glade:201
 #: gnucash/gtkbuilder/assistant-csv-trans-import.glade:191
 msgid "<b>Load and Save Settings</b>"
-msgstr ""
+msgstr "<b>Muat dan Simpan Pengaturan</b>"
 
 #: gnucash/gtkbuilder/assistant-csv-price-import.glade:249
 #: gnucash/gtkbuilder/assistant-csv-trans-import.glade:238
-#, fuzzy
 msgid "Fixed-Width"
-msgstr "_Lebar tetap:"
+msgstr "Lebar-Tetap"
 
 #: gnucash/gtkbuilder/assistant-csv-price-import.glade:290
 #: gnucash/gtkbuilder/assistant-csv-trans-import.glade:282
-#, fuzzy
 msgid "Space"
-msgstr "Ruang"
+msgstr "Spasi"
 
 #: gnucash/gtkbuilder/assistant-csv-price-import.glade:306
 #: gnucash/gtkbuilder/assistant-csv-trans-import.glade:298
-#, fuzzy
 msgid "Tab"
 msgstr "Tab"
 
 #: gnucash/gtkbuilder/assistant-csv-price-import.glade:371
 #: gnucash/gtkbuilder/assistant-csv-trans-import.glade:363
-#, fuzzy
 msgid "Hyphen (-)"
-msgstr ""
-"Nama \"%s\" tak valid: karakter \"%c\" tak valid; hanya huruf kecil, angka, "
-"dan tanda hubung (\"-\") yang diijinkan"
+msgstr "Tanda penghubung (-)"
 
 #: gnucash/gtkbuilder/assistant-csv-price-import.glade:453
 #: gnucash/gtkbuilder/assistant-csv-price-import.glade:481
@@ -12858,70 +13206,69 @@ msgstr ""
 #: gnucash/gtkbuilder/assistant-hierarchy.glade:449
 #: gnucash/gtkbuilder/assistant-hierarchy.glade:462
 msgid "•"
-msgstr ""
+msgstr "•"
 
 #: gnucash/gtkbuilder/assistant-csv-price-import.glade:467
 #: gnucash/gtkbuilder/assistant-csv-trans-import.glade:462
 msgid "Double-click anywhere on the table below to insert a column break"
 msgstr ""
+"Klik dua kali di mana saja pada tabel di bawah untuk menyisipkan pemutus "
+"kolom"
 
 #: gnucash/gtkbuilder/assistant-csv-price-import.glade:495
 #: gnucash/gtkbuilder/assistant-csv-trans-import.glade:490
 msgid "Right-click anywhere in a column to modify it (widen, narrow, merge)"
 msgstr ""
+"Klik-kanan di mana saja di kolom untuk memodifikasinya (melebarkan, "
+"mempersempit, menggabungkan)"
 
 #: gnucash/gtkbuilder/assistant-csv-price-import.glade:538
 msgid "Allow existing prices to be over written."
-msgstr ""
+msgstr "Izinkan menimpa harga yang sudah ada."
 
 #: gnucash/gtkbuilder/assistant-csv-price-import.glade:543
 msgid ""
 "Normally prices are not over written, select this to change that. This "
 "setting is not saved."
 msgstr ""
+"Normalnya harga tidak bisa ditimpa, pilih ini untuk mengubahnya. Pengaturan "
+"ini tidak disimpan."
 
 #: gnucash/gtkbuilder/assistant-csv-price-import.glade:567
 #: gnucash/gtkbuilder/assistant-csv-trans-import.glade:568
-#, fuzzy
 msgid "<b>File Format</b>"
-msgstr "<b>Ruang Lingkup</b>"
+msgstr "<b>Format Berkas</b>"
 
 #: gnucash/gtkbuilder/assistant-csv-price-import.glade:596
 #: gnucash/gtkbuilder/assistant-csv-trans-import.glade:603
 #: gnucash/gtkbuilder/gnc-date-format.glade:39
-#, fuzzy
 msgid "Date Format"
-msgstr "format tanggal"
+msgstr "Format Tanggal"
 
 #: gnucash/gtkbuilder/assistant-csv-price-import.glade:608
 #: gnucash/gtkbuilder/assistant-csv-trans-import.glade:615
-#, fuzzy
 msgid "Currency Format"
-msgstr "mata uang"
+msgstr "Format Mata Uang"
 
 #: gnucash/gtkbuilder/assistant-csv-price-import.glade:620
 #: gnucash/gtkbuilder/assistant-csv-trans-import.glade:627
-#, fuzzy
 msgid "Encoding"
-msgstr "ENCODING"
+msgstr "Pengkodean"
 
 #: gnucash/gtkbuilder/assistant-csv-price-import.glade:632
 #: gnucash/gtkbuilder/assistant-csv-trans-import.glade:639
-#, fuzzy
 msgid "Leading Lines to Skip"
-msgstr "Hanya Di Depan"
+msgstr "Baris Terdepan untuk Diabaikan"
 
 #: gnucash/gtkbuilder/assistant-csv-price-import.glade:644
 #: gnucash/gtkbuilder/assistant-csv-trans-import.glade:651
-#, fuzzy
 msgid "Trailing Lines to Skip"
-msgstr "Lewati"
+msgstr "Baris Terakhir untuk Diabaikan"
 
 #: gnucash/gtkbuilder/assistant-csv-price-import.glade:723
 #: gnucash/gtkbuilder/assistant-csv-trans-import.glade:789
-#, fuzzy
 msgid "Skip alternate lines"
-msgstr "Lewati"
+msgstr "Abaikan baris secara berseling"
 
 #: gnucash/gtkbuilder/assistant-csv-price-import.glade:735
 msgid ""
@@ -12934,55 +13281,57 @@ msgid ""
 "* if \"Leading Lines to Skip\" is set to 4, the first line to import will be "
 "line 5. Lines 6, 8, 10,... will be skipped."
 msgstr ""
+"Mulai dari baris pertama yang benar-benar diimpor, setiap baris kedua akan "
+"diabaikan. Opsi ini juga akan menjadikan baris terdepan diabaikan ke akun.\n"
+"Sebagai contoh\n"
+"* Jika 'Baris Terdepan untuk Diabaikan' diatur pada 3, baris pertama untuk "
+"diimpor akan menjadi baris 4. Baris 5, 7, 9, ... akan diabaikan.\n"
+"* Jika 'Baris Terdepan untuk Diabaikan' diatur pada 4, baris pertama untuk "
+"diimpor akan menjadi baris 5. Baris 6, 8, 10, ... akan diabaikan."
 
 #: gnucash/gtkbuilder/assistant-csv-price-import.glade:797
 #: gnucash/gtkbuilder/assistant-csv-trans-import.glade:809
-#, fuzzy
 msgid "<b>Miscellaneous</b>"
-msgstr "<b>Ruang Lingkup</b>"
+msgstr "<b>Lain-lain</b>"
 
 #: gnucash/gtkbuilder/assistant-csv-price-import.glade:857
-#, fuzzy
 msgid "<b>Commodity From</b>"
-msgstr "<b>Ruang Lingkup</b>"
+msgstr "<b>Komoditas Dari</b>"
 
 #: gnucash/gtkbuilder/assistant-csv-price-import.glade:902
-#, fuzzy
 msgid "<b>Currency To</b>"
-msgstr "<b>Ruang Lingkup</b>"
+msgstr "<b>Mata Uang Ke</b>"
 
 #: gnucash/gtkbuilder/assistant-csv-price-import.glade:967
 #: gnucash/gtkbuilder/assistant-csv-trans-import.glade:904
 msgid "Select the type of each column to import."
-msgstr ""
+msgstr "Pilih tipe tiap kolom untuk diimpor."
 
 #: gnucash/gtkbuilder/assistant-csv-price-import.glade:989
 #: gnucash/gtkbuilder/assistant-csv-trans-import.glade:926
-#, fuzzy
 msgid "Skip Errors"
-msgstr "Kesalahan"
+msgstr "Lewati Galat"
 
 #: gnucash/gtkbuilder/assistant-csv-price-import.glade:1012
 #: gnucash/gtkbuilder/assistant-csv-trans-import.glade:949
-#, fuzzy
 msgid "Import Preview"
-msgstr "_Pratinjau"
+msgstr "Pratinjau Impor"
 
 #: gnucash/gtkbuilder/assistant-csv-price-import.glade:1028
 msgid ""
 "<b>Press Apply to add the Prices.\n"
 "Cancel to abort.</b>"
 msgstr ""
+"<b>Tekan Terapkan untuk menambahkan Harga.\n"
+"Batal untuk membatalkan.</b>"
 
 #: gnucash/gtkbuilder/assistant-csv-price-import.glade:1043
-#, fuzzy
 msgid "Import Prices Now"
-msgstr "Sekarang"
+msgstr "Impor Harga Sekarang"
 
 #: gnucash/gtkbuilder/assistant-csv-trans-import.glade:28
-#, fuzzy
 msgid "CSV Transaction Import"
-msgstr "transaksi"
+msgstr "Impor Tansaksi CSV"
 
 #: gnucash/gtkbuilder/assistant-csv-trans-import.glade:56
 msgid ""
@@ -13013,16 +13362,39 @@ msgid ""
 "settings name and press the Save Settings button. Note you can't save to "
 "built-in presets."
 msgstr ""
+"Asisten ini akan membantu Anda mengimpor berkas yang berisi daftar "
+"transaksi. Asisten ini mendukung berkas yang dipisahkan tanda (seperti "
+"dipisahkan koma atau titik-koma) dan data dengan lebar tetap.\n"
+"\n"
+"Supaya impor berhasil, tiga buah kolom harus tersedia dalam data impor:\n"
+"• sebuah kolom Tanggal\n"
+"• sebuah kolom Deskripsi\n"
+"• sebuah kolom Setoran atau Penarikan\n"
+"\n"
+"Jika tidak ada data Akun yang tersedia, sebuah akun dasar dapat dipilih "
+"untuk mengimpor semua data.\n"
+"\n"
+"Terlepas dari pilihan tanda pembatas, ada beberapa pilihan untuk mengatur "
+"pengimpor. Misalnya sejumlah baris dapat diabaikan pada awal atau akhir "
+"data, begitu juga baris ganjil. Terdapat dukungan untuk beberapa format "
+"tanggal dan nomor. Enkoding berkas dapat didefinisikan.\n"
+"\n"
+"Pengimpor dapat menangani berkas di mana transaksi dibagi atas beberapa "
+"baris, dengan setiap baris mewakili satu split.\n"
+"\n"
+"Terakhir, untuk impor berulang, halaman pratinjau memiliki tombol Muat dan "
+"Simpan pengaturan. Untuk menyimpan pengaturan, sesuaikan pengaturan dengan "
+"preferensi Anda (opsional mulai dari preset yang ada), lalu (opsional ubah "
+"nama pengaturan dan tekan tombol Simpan Pengaturan). Perhatikan bahwa Anda "
+"tidak dapat menyimpan ke preset bawaan."
 
 #: gnucash/gtkbuilder/assistant-csv-trans-import.glade:74
-#, fuzzy
 msgid "Transaction Import Assistant"
-msgstr "Program Bantu Impor Evolution"
+msgstr "Asisten Impor Transaksi"
 
 #: gnucash/gtkbuilder/assistant-csv-trans-import.glade:534
-#, fuzzy
 msgid "Multi-split"
-msgstr "_Pecah"
+msgstr "Multi-pisah"
 
 #: gnucash/gtkbuilder/assistant-csv-trans-import.glade:538
 msgid ""
@@ -13039,6 +13411,19 @@ msgid ""
 "information is empty or the same as the first transaction line the importer "
 "will consider this line part of the same transaction."
 msgstr ""
+"Biasanya pengimpor akan menganggap setiap baris dalam berkas masukan sesuai "
+"dengan satu transaksi. Setiap baris dapat memiliki informasi untuk satu "
+"transaksi dan satu atau dua split.\n"
+"\n"
+"Ketika multi-split diaktifkan, pengimpor akan menganggap beberapa baris "
+"berturut-turut secara bersama-sama memegang informasi untuk satu transaksi. "
+"Setiap baris menyediakan informasi untuk tepat satu buah split. Baris "
+"pertama juga harus menyediakan informasi mengenai transaksi itu.\n"
+"Untuk mengetahui baris yang mana yang merupakan milik transaksi yang sama, "
+"pengimpor akan membandingkan informasi transaksi yang disediakan di setiap "
+"baris. Jika informasi tersebut kosong atau sama dengan baris transaksi "
+"pertama, pengimpor akan menganggap baris ini sebagai bagian dari transaksi "
+"yang sama."
 
 #: gnucash/gtkbuilder/assistant-csv-trans-import.glade:771
 msgid ""
@@ -13051,6 +13436,13 @@ msgid ""
 "* if 'Leading Lines to Skip' is set to 4, the first line to import will be "
 "line 5. Lines 6, 8, 10,... will be skipped."
 msgstr ""
+"Mulai dari baris pertama yang benar-benar diimpor, setiap baris kedua akan "
+"diabaikan. Opsi ini juga akan menjadikan baris terdepan diabaikan ke akun.\n"
+"Sebagai contoh\n"
+"* Jika 'Baris Terdepan untuk Diabaikan' diatur pada 3, baris pertama untuk "
+"diimpor akan menjadi baris 4. Baris 5, 7, 9, ... akan diabaikan.\n"
+"* Jika 'Baris Terdepan untuk Diabaikan' diatur pada 4, baris pertama untuk "
+"diimpor akan menjadi baris 5. Baris 6, 8, 10, ... akan diabaikan."
 
 #: gnucash/gtkbuilder/assistant-csv-trans-import.glade:837
 msgid "<b>Account</b>"
@@ -13078,7 +13470,7 @@ msgstr "Ubah _Akun GnuCash..."
 
 #: gnucash/gtkbuilder/assistant-csv-trans-import.glade:1065
 msgid "Match Import and GnuCash accounts"
-msgstr ""
+msgstr "Cocokkan akun Impor dan GnuCash"
 
 #: gnucash/gtkbuilder/assistant-csv-trans-import.glade:1081
 msgid ""
@@ -13103,15 +13495,35 @@ msgid ""
 "\n"
 "More information can be displayed by using the help button."
 msgstr ""
+"Jika Anda klik \"Berikutnya\" GnuCash akan melakukan sejumlah pemeriksaan.\n"
+"\n"
+"Jika salah satu dari <i>pemeriksaan gagal</i> Anda akan secara otomatis "
+"diarahkan ke halaman pratinjau untuk mencoba dan memperbaiki.\n"
+"\n"
+"Pada halaman berikut, Anda akan dapat mengasosiasikan setiap transaksi ke "
+"sebuah kategori.\n"
+"\n"
+"Jika ini adalah <i>impor awal Anda ke dalam sebuah berkas baru</i>, Anda "
+"akan terlebih dahulu melihat sebuah dialog untuk mengatur opsi-opsi buku, "
+"karena ini dapat mempengaruhi bagaimana data yang diimpor dikonversi ke "
+"transaksi GnuCash. Jika ini adalah berkas yang sudah ada, dialog tidak akan "
+"ditampilkan.\n"
+"\n"
+"Jika ini adalah <i>impor pertama kali</i>, Anda akan menemukan bahwa semua "
+"baris mungkin perlu diasosiasikan. Pada impor berikutnya, pengimpor akan "
+"mencoba untuk mengasosiasikan transaksi berdasarkan impor sebelumnya.\n"
+"\n"
+"Keyakinan dari asosiasi yang benar ditampilkan sebagai batang berwarna.\n"
+"\n"
+"Informasi lebih lanjut dapat ditampilkan dengan menggunakan tombol bantuan."
 
 #: gnucash/gtkbuilder/assistant-csv-trans-import.glade:1106
 msgid "Transaction Information"
 msgstr "Informasi Transaksi"
 
 #: gnucash/gtkbuilder/assistant-csv-trans-import.glade:1133
-#, fuzzy
 msgid "Match Transactions"
-msgstr "Cocok"
+msgstr "Cocokkan Transaksi"
 
 #: gnucash/gtkbuilder/assistant-hierarchy.glade:30
 msgid ""
@@ -13127,11 +13539,21 @@ msgid ""
 "\n"
 "Click 'Cancel'  if you do not wish to create any new accounts now."
 msgstr ""
+"Asisten ini akan membantu Anda membuat satu set akun GnuCash untuk aset Anda "
+"(seperti investasi, akun giro atau tabungan), liabilitas (seperti pinjaman) "
+"dan berbagai jenis pendapatan dan pengeluaran yang mungkin Anda miliki.\n"
+"\n"
+"Anda dapat memilih satu set akun di sini yang tampaknya mendekati kebutuhan "
+"Anda. Setelah asisten selesai Anda akan dapat menambahkan, mengubah nama, "
+"memodifikasi, dan menghapus akun, sewaktu-waktu nanti. Anda juga akan dapat "
+"menambahkan sub-akun, serta memindahkan akun (bersama dengan sub-akun) dari "
+"satu induk ke induk yang lain.\n"
+"\n"
+"Klik 'Batal' jika Anda tidak ingin membuat akun baru sekarang."
 
 #: gnucash/gtkbuilder/assistant-hierarchy.glade:39
-#, fuzzy
 msgid "New Account Hierarchy Setup"
-msgstr "hirarki akun"
+msgstr "Penyiapan Hierarki Akun Baru"
 
 #: gnucash/gtkbuilder/assistant-hierarchy.glade:53
 msgid ""
@@ -13151,6 +13573,9 @@ msgid ""
 "that you foresee you will use GnuCash. Each category you select will cause "
 "several accounts to be created."
 msgstr ""
+"Pilih kategori yang spesifik terhadap bahasa dan wilayah yang sesuai dengan "
+"cara yang mungkin akan Anda pakai ketika menggunakan GnuCash. Setiap "
+"kategori yang Anda pilih akan menyebabkan beberapa akun akan dibuat."
 
 #: gnucash/gtkbuilder/assistant-hierarchy.glade:170
 msgid "<b>Categories</b>"
@@ -13180,6 +13605,8 @@ msgid ""
 "If not satisfied with the available templates, please read the wiki page "
 "linked below and share your new or improved template."
 msgstr ""
+"Jika Anda merasa kurang dengan templat yang tersedia, silakan baca halaman "
+"wiki terkait di bawah ini dan bagikan perbaikan atau templat baru Anda."
 
 #: gnucash/gtkbuilder/assistant-hierarchy.glade:487
 msgid ""
@@ -13187,6 +13614,9 @@ msgid ""
 "account hierarchy. Accounts can be added, renamed, moved, or deleted by hand "
 "later at any time."
 msgstr ""
+"Pilihan yang Anda buat di sini hanyalah titik awal untuk hierarki akun "
+"pribadi Anda. Akun dapat ditambahkan, diganti namanya, dipindahkan, atau "
+"dihapus sesuai keinginan Anda."
 
 #: gnucash/gtkbuilder/assistant-hierarchy.glade:504
 msgid "GnuCash Account Template Wiki"
@@ -13214,6 +13644,20 @@ msgid ""
 "<b>Note:</b> all accounts except Equity and placeholder accounts may have an "
 "opening balance.\n"
 msgstr ""
+"\n"
+"Jika Anda ingin mengubah nama akun, klik pada baris yang berisi akun, lalu "
+"klik pada nama akun dan ubahlah.\n"
+"\n"
+"Beberapa akun ditandai sebagai \"Placeholder\". Akun placeholder digunakan "
+"untuk membuat hierarki akun dan biasanya tidak memiliki transaksi atau saldo "
+"pembukaan. Jika Anda ingin suatu akun menjadi akun placeholder, klik kotak "
+"centang untuk akun itu.\n"
+"\n"
+"Jika Anda ingin akun memiliki saldo awal, klik pada baris yang berisi akun, "
+"kemudian klik pada bidang saldo awal dan masukkan saldo awal.\n"
+"\n"
+"<b>Catatan:</b> semua akun kecuali Ekuitas dan akun placeholder dapat "
+"memiliki saldo awal.\n"
 
 #: gnucash/gtkbuilder/assistant-hierarchy.glade:572
 msgid "Setup selected accounts"
@@ -13228,6 +13672,12 @@ msgid ""
 "\n"
 "Press `Cancel' to close this dialog without creating any new accounts."
 msgstr ""
+"Tekan `Terapkan' untuk membuat akun baru Anda. Anda kemudian akan dapat "
+"menyimpannya ke sebuah berkas atau basis data.\n"
+"\n"
+"Tekan `Kembali' untuk meninjau pilihan Anda.\n"
+"\n"
+"Tekan `Batal' untuk menutup dialog ini tanpa membuat akun baru."
 
 #: gnucash/gtkbuilder/assistant-hierarchy.glade:591
 msgid "Finish Account Setup"
@@ -13243,7 +13693,7 @@ msgstr "Sekarang + 1 Tahun"
 
 #: gnucash/gtkbuilder/assistant-loan.glade:32
 msgid "Whole Loan"
-msgstr ""
+msgstr "Seluruh Pinjaman"
 
 #: gnucash/gtkbuilder/assistant-loan.glade:46
 #: gnucash/gtkbuilder/assistant-loan.glade:160
@@ -13252,51 +13702,43 @@ msgstr "Suku Bunga"
 
 #: gnucash/gtkbuilder/assistant-loan.glade:49
 msgid "APR (Compounded Daily)"
-msgstr ""
+msgstr "APR (Majemuk Harian)"
 
 #: gnucash/gtkbuilder/assistant-loan.glade:52
 msgid "APR (Compounded Weekly)"
-msgstr ""
+msgstr "APR (Majemuk Mingguan)"
 
 #: gnucash/gtkbuilder/assistant-loan.glade:55
 msgid "APR (Compounded Monthly)"
-msgstr ""
+msgstr "APR (Majemuk Bulanan)"
 
 #: gnucash/gtkbuilder/assistant-loan.glade:58
 msgid "APR (Compounded Quarterly)"
-msgstr ""
+msgstr "APR (Majemuk Triwulanan)"
 
 #: gnucash/gtkbuilder/assistant-loan.glade:61
 msgid "APR (Compounded Annually)"
-msgstr ""
+msgstr "APR (Majemuk Tahunan)"
 
 #: gnucash/gtkbuilder/assistant-loan.glade:72
-#, fuzzy
 msgid "Fixed Rate"
-msgstr ""
-"Menghitung bilangan periode kompon yang diperlukan untuk meningkatkan nilai "
-"investasi saat ini ke nilai masa depan, dengan bunga tetap per periode "
-"kompon."
+msgstr "Suku Bunga Tetap"
 
 #: gnucash/gtkbuilder/assistant-loan.glade:75
-#, fuzzy
 msgid "3/1 Year ARM"
-msgstr "Emulasi Arm"
+msgstr "3/1 Tahun ARM"
 
 #: gnucash/gtkbuilder/assistant-loan.glade:78
-#, fuzzy
 msgid "5/1 Year ARM"
-msgstr "Emulasi Arm"
+msgstr "5/1 Tahun ARM"
 
 #: gnucash/gtkbuilder/assistant-loan.glade:81
-#, fuzzy
 msgid "7/1 Year ARM"
-msgstr "Emulasi Arm"
+msgstr "7/1 Tahun ARM"
 
 #: gnucash/gtkbuilder/assistant-loan.glade:84
-#, fuzzy
 msgid "10/1 Year ARM"
-msgstr "Emulasi Arm"
+msgstr "10/1 Tahun ARM"
 
 #: gnucash/gtkbuilder/assistant-loan.glade:113
 msgid ""
@@ -13308,15 +13750,24 @@ msgid ""
 "If you make a mistake or want to make changes later, you can edit the "
 "created Scheduled Transactions directly."
 msgstr ""
+"Ini adalah metode langkah-demi-langkah untuk membuat sebuah angsuran "
+"pinjaman di dalam GnuCash. Di dalam asisten ini, Anda bisa memasukkan detail "
+"pinjaman Anda dan angsurannya bersama dengan detail pengembaliannya. Dengan "
+"informasi tersebut, Transaksi Terjadwal yang sesuai akan dibuat.\n"
+"\n"
+"Jika Anda membuat kesalahan atau ingin membuat perubahan, Anda bisa "
+"menyunting secara langsung Transaksi Terjadwal yang telah dibuat."
 
 #: gnucash/gtkbuilder/assistant-loan.glade:120
 msgid "Loan / Mortgage Repayment Setup"
-msgstr ""
+msgstr "Penyiapan Angsuran Pinjaman / Hipotek"
 
 #: gnucash/gtkbuilder/assistant-loan.glade:136
 msgid ""
 "Enter the Loan Details, as a minimum enter a valid Loan Account and Amount.\n"
 msgstr ""
+"Masukkan Detail Pinjaman, minimal masukkan Akun dan Jumlah Pinjaman yang "
+"valid.\n"
 
 #: gnucash/gtkbuilder/assistant-loan.glade:173
 #: gnucash/gtkbuilder/assistant-loan.glade:1175
@@ -13339,7 +13790,7 @@ msgstr ""
 #: gnucash/report/reports/standard/price-scatter.scm:35
 #: gnucash/report/trep-engine.scm:77
 msgid "Start Date"
-msgstr "Tanggal Mulai:"
+msgstr "Tanggal Mulai"
 
 #: gnucash/gtkbuilder/assistant-loan.glade:186
 msgid "Length"
@@ -13354,6 +13805,8 @@ msgid ""
 "Enter the number of months still to be paid off. This determines both the "
 "remaining principle and the duration of the scheduled transaction."
 msgstr ""
+"Masukkan jumlah bulan yang masih harus dilunasi. Ini menentukan pokok yang "
+"tersisa dan durasi transaksi terjadwal."
 
 #: gnucash/gtkbuilder/assistant-loan.glade:296
 msgid "Months Remaining"
@@ -13364,131 +13817,125 @@ msgid ""
 "Enter the annual interest rate in percent. Accepts values from 0.001 - 100. "
 "The Mortgage Assistant does not support zero-interest loans."
 msgstr ""
+"Masukkan tingkat bunga tahunan dalam persen. Nilai yang diterima dari 0,001 "
+"- 100. Asisten Hipotek tidak mendukung pinjaman tanpa bunga."
 
 #: gnucash/gtkbuilder/assistant-loan.glade:367
 #: gnucash/register/ledger-core/gncEntryLedgerLoad.c:55
 #: gnucash/report/reports/standard/invoice.scm:108
 msgid "%"
-msgstr ""
+msgstr "%"
 
 #: gnucash/gtkbuilder/assistant-loan.glade:398
-#, fuzzy
 msgid "Interest Rate Change Frequency"
-msgstr "kalkulator finansial: suku bunga"
+msgstr "Frekuensi Perubahan Suku Bunga"
 
 #: gnucash/gtkbuilder/assistant-loan.glade:444
-#, fuzzy
 msgid "Loan Details"
-msgstr "pinjaman"
+msgstr "Detail Pinjaman"
 
 #: gnucash/gtkbuilder/assistant-loan.glade:459
 msgid ""
 "\n"
 "Do you utilise an escrow account, if so an account must be specified..."
 msgstr ""
+"\n"
+"Apakah Anda menggunakan akun eskrow, jika demikian sebuah akun harus "
+"ditentukan..."
 
 #: gnucash/gtkbuilder/assistant-loan.glade:479
-#, fuzzy
 msgid "... utilize an escrow account for payments?"
-msgstr "eskrow"
+msgstr "... gunakan akun eskrow untuk pembayaran?"
 
 #: gnucash/gtkbuilder/assistant-loan.glade:504
-#, fuzzy
 msgid "Escrow Account"
-msgstr "eskrow"
+msgstr "Akun Eskrow"
 
 #: gnucash/gtkbuilder/assistant-loan.glade:540
-#, fuzzy
 msgid "Loan Repayment Options"
-msgstr "aksi: pinjaman"
+msgstr "Opsi Angsuran Pinjaman"
 
 #: gnucash/gtkbuilder/assistant-loan.glade:553
 msgid ""
 "\n"
 "All accounts must have valid entries to continue.\n"
 msgstr ""
+"\n"
+"Semua akun harus memiliki entri yang valid untuk melanjutkan.\n"
 
 #: gnucash/gtkbuilder/assistant-loan.glade:591
-#, fuzzy
 msgid "Principal To"
-msgstr "_Pokok:"
+msgstr "Pokok Ke"
 
 #: gnucash/gtkbuilder/assistant-loan.glade:630
-#, fuzzy
 msgid "Interest To"
-msgstr "bunga"
+msgstr "Bunga Ke"
 
 #: gnucash/gtkbuilder/assistant-loan.glade:683
-#, fuzzy
 msgid "Repayment Frequency"
-msgstr "Frekuensi"
+msgstr "Frekuensi Angsuran"
 
 #: gnucash/gtkbuilder/assistant-loan.glade:718
-#, fuzzy
 msgid "Loan Repayment"
-msgstr "pinjaman"
+msgstr "Angsuran Pinjaman"
 
 #: gnucash/gtkbuilder/assistant-loan.glade:731
 msgid ""
 "\n"
 "All enabled option pages must contain valid entries to continue.\n"
 msgstr ""
+"\n"
+"Semua halaman pilihan yang diaktifkan harus berisi entri yang valid untuk "
+"melanjutkan.\n"
 
 #: gnucash/gtkbuilder/assistant-loan.glade:803
-#, fuzzy
 msgid "Payment To (Escrow)"
-msgstr "eskrow"
+msgstr "Pembayaran Ke (Eskrow)"
 
 #: gnucash/gtkbuilder/assistant-loan.glade:816
-#, fuzzy
 msgid "Payment From (Escrow)"
-msgstr "eskrow"
+msgstr "Pembayaran Dari (Eskrow)"
 
 #: gnucash/gtkbuilder/assistant-loan.glade:839
-#, fuzzy
 msgid "Specify Source Account"
-msgstr "Asal Akun"
+msgstr "Tentukan Akun Sumber"
 
 #: gnucash/gtkbuilder/assistant-loan.glade:854
-#, fuzzy
 msgid "Use Escrow Account"
-msgstr "eskrow"
+msgstr "Gunakan Akun Eskrow"
 
 #: gnucash/gtkbuilder/assistant-loan.glade:945
-#, fuzzy
 msgid "Part of Payment Transaction"
-msgstr "pembayaran"
+msgstr "Bagian dari Transaksi Pembayaran"
 
 #: gnucash/gtkbuilder/assistant-loan.glade:1008
-#, fuzzy
 msgid "Payment Frequency"
-msgstr "pembayaran"
+msgstr "Frekuensi Pembayaran"
 
 #: gnucash/gtkbuilder/assistant-loan.glade:1034
-#, fuzzy
 msgid "Previous Option"
-msgstr "[OPSI…]"
+msgstr "Opsi Sebelumnya"
 
 #: gnucash/gtkbuilder/assistant-loan.glade:1048
-#, fuzzy
 msgid "Next Option"
-msgstr "[OPSI…]"
+msgstr "Opsi Berikutnya"
 
 #: gnucash/gtkbuilder/assistant-loan.glade:1070
-#, fuzzy
 msgid "Loan Payment"
-msgstr "pinjaman"
+msgstr "Pembayaran Pinjaman"
 
 #: gnucash/gtkbuilder/assistant-loan.glade:1083
 msgid ""
 "\n"
 "Review the details below and if correct press Apply to create the schedule."
 msgstr ""
+"\n"
+"Tinjau detail di bawah ini dan jika benar, tekan Terapkan untuk membuat "
+"jadwal."
 
 #: gnucash/gtkbuilder/assistant-loan.glade:1111
-#, fuzzy
 msgid "Range"
-msgstr "Cakupan"
+msgstr "Rentang"
 
 #: gnucash/gtkbuilder/assistant-loan.glade:1187
 #: gnucash/gtkbuilder/dialog-sx.glade:333
@@ -13507,7 +13954,6 @@ msgstr "Cakupan"
 #: gnucash/report/reports/standard/net-charts.scm:40
 #: gnucash/report/reports/standard/price-scatter.scm:36
 #: gnucash/report/trep-engine.scm:78
-#, fuzzy
 msgid "End Date"
 msgstr "Tanggal Akhir"
 
@@ -13515,36 +13961,30 @@ msgstr "Tanggal Akhir"
 #: gnucash/report/reports/standard/job-report.scm:563
 #: gnucash/report/reports/standard/new-owner-report.scm:1161
 #: gnucash/report/reports/standard/owner-report.scm:795
-#, fuzzy
 msgid "Date Range"
-msgstr "rentang tanggal"
+msgstr "Rentang Tanggal"
 
 #: gnucash/gtkbuilder/assistant-loan.glade:1243
-#, fuzzy
 msgid "Loan Review"
-msgstr "Ulasan"
+msgstr "Tinjauan Pinjaman"
 
 #: gnucash/gtkbuilder/assistant-loan.glade:1251
-#, fuzzy
 msgid "Schedule added successfully."
-msgstr "_Jadwal"
+msgstr "Jadwal berhasil ditambahkan."
 
 #: gnucash/gtkbuilder/assistant-loan.glade:1257
-#, fuzzy
 msgid "Loan Summary"
-msgstr "pinjaman"
+msgstr "Ikhtisar Pinjaman"
 
 #: gnucash/gtkbuilder/assistant-qif-import.glade:12
 #: gnucash/gtkbuilder/assistant-qif-import.glade:23
 #: gnucash/gtkbuilder/dialog-report.glade:714
-#, fuzzy
 msgid "Dummy"
-msgstr "GNOME dummy"
+msgstr "Dummy"
 
 #: gnucash/gtkbuilder/assistant-qif-import.glade:30
-#, fuzzy
 msgid "QIF Import Assistant"
-msgstr "Program Bantu Impor Evolution"
+msgstr "Asisten Impor QIF"
 
 #. Run the assistant in your language to see GTK's translation of the button labels.
 #: gnucash/gtkbuilder/assistant-qif-import.glade:54
@@ -13559,11 +13999,19 @@ msgid ""
 "Click \"Next\" to start loading your QIF data, or \"Cancel\" to abort the "
 "process. "
 msgstr ""
+"GnuCash dapat mengimpor data keuangan dari berkas QIF (Quicken Interchange "
+"Format) yang ditulis oleh Quicken/QuickBooks, MS Money, Moneydance, dan "
+"banyak program lainnya.\n"
+"\n"
+"Proses impor memiliki beberapa langkah. Akun GnuCash Anda tidak akan berubah "
+"sampai Anda klik \"Terapkan\" pada akhir proses.\n"
+"\n"
+"Klik \"Berikutnya\" untuk mulai memuat data QIF Anda, atau \"Batal\" untuk "
+"membatalkan proses. "
 
 #: gnucash/gtkbuilder/assistant-qif-import.glade:63
-#, fuzzy
 msgid "Import QIF files"
-msgstr "_Impor"
+msgstr "Impor berkas QIF"
 
 #. Run the assistant in your language to see GTK's translation of the button labels.
 #: gnucash/gtkbuilder/assistant-qif-import.glade:78
@@ -13575,26 +14023,29 @@ msgid ""
 "You will have the opportunity to load as many files as you wish, so don't "
 "worry if your data is in multiple files. \n"
 msgstr ""
+"Silakan pilih berkas yang akan dimuat. Ketika Anda klik \"Berikutnya\", "
+"berkas tersebut akan dimuat dan dianalisis. Anda mungkin perlu untuk "
+"menjawab beberapa pertanyaan mengenai akun-akun di dalam berkas itu.\n"
+"\n"
+"Anda akan memiliki kesempatan untuk memuat sebanyak mungkin berkas yang Anda "
+"inginkan, jadi jangan khawatir jika data Anda berada di dalam beberapa "
+"berkas. \n"
 
 #: gnucash/gtkbuilder/assistant-qif-import.glade:114
-#, fuzzy
 msgid "_Select..."
 msgstr "_Pilih..."
 
 #: gnucash/gtkbuilder/assistant-qif-import.glade:137
-#, fuzzy
 msgid "Select a QIF file to load"
-msgstr "Gagal memuat berkas jauh."
+msgstr "Pilih berkas QIF yang akan dimuat"
 
 #: gnucash/gtkbuilder/assistant-qif-import.glade:213
-#, fuzzy
 msgid "_Start"
 msgstr "_Mulai"
 
 #: gnucash/gtkbuilder/assistant-qif-import.glade:283
-#, fuzzy
 msgid "Load QIF files"
-msgstr "Saat memuat"
+msgstr "Muat berkas QIF"
 
 #: gnucash/gtkbuilder/assistant-qif-import.glade:297
 msgid ""
@@ -13608,15 +14059,26 @@ msgid ""
 "software are likely  to be in \"d-m-y\" or day-month-year format, where US "
 "QIF files are likely to be \"m-d-y\" or month-day-year. \n"
 msgstr ""
+"Format berkas QIF tidak menentukan urutan pencetakan komponen hari, bulan, "
+"dan tahun pada sebuah tanggal. Dalam kebanyakan kasus, adalah mungkin untuk "
+"secara otomatis menentukan bagaimana format yang digunakan dalam suatu "
+"berkas. Namun, dalam berkas yang baru saja diimpor terdapat lebih dari satu "
+"format yang mungkin cocok dengan data di dalamnya.\n"
+"\n"
+"Silakan pilih format tanggal untuk berkas ini. Berkas QIF yang dibuat oleh "
+"perangkat lunak Eropa cenderung menggunakan \"d-m-y\" atau format hari-bulan-"
+"tahun, sedangkan berkas QIF Amerika cenderung menggunakan \"m-d-y\" atau "
+"bulan-hari-tahun.\n"
 
 #: gnucash/gtkbuilder/assistant-qif-import.glade:332
 #: gnucash/gtkbuilder/assistant-qif-import.glade:417
 msgid "Click \"Back\" to cancel the loading of this file and choose another."
 msgstr ""
+"Klik \"Kembali\" untuk membatalkan pemuatan berkas ini dan pilih yang lain."
 
 #: gnucash/gtkbuilder/assistant-qif-import.glade:345
 msgid "Set a date format for this QIF file"
-msgstr ""
+msgstr "Setel sebuah format tanggal untuk berkas QIF ini"
 
 #: gnucash/gtkbuilder/assistant-qif-import.glade:359
 msgid ""
@@ -13627,15 +14089,20 @@ msgid ""
 "accounting program, you should use the same account name that was used in "
 "that program.\n"
 msgstr ""
+"Berkas QIF yang baru dimuat sepertinya berisi transaksi hanya untuk satu "
+"akun, tetapi berkas tersebut tidak menentukan nama untuk akun itu.\n"
+"\n"
+"Silakan masukkan nama untuk akun itu. Jika berkas diekspor dari program "
+"akuntansi lain, Anda harus menggunakan nama akun yang sama dengan yang "
+"digunakan dalam program itu.\n"
 
 #: gnucash/gtkbuilder/assistant-qif-import.glade:380
-#, fuzzy
 msgid "Account name"
-msgstr "nama akun"
+msgstr "Nama akun"
 
 #: gnucash/gtkbuilder/assistant-qif-import.glade:429
 msgid "Set the default QIF account name"
-msgstr ""
+msgstr "Setel nama akun QIF baku"
 
 #. Run the assistant in your language to see GTK's translation of the button labels.
 #: gnucash/gtkbuilder/assistant-qif-import.glade:468
@@ -13646,20 +14113,24 @@ msgid ""
 "Click \"Next\" to finish loading files and move to the next step of the QIF "
 "import process. "
 msgstr ""
+"Klik \"Muat berkas lain\" jika Anda memiliki lebih banyak data untuk diimpor "
+"pada saat ini. Lakukan ini jika Anda menyimpan akun-akun Anda pada berkas "
+"QIF yang terpisah.\n"
+"\n"
+"Klik \"Berikutnya\" untuk memuat berkas dan pindah ke langkah berikutnya "
+"dari proses impor QIF. "
 
 #: gnucash/gtkbuilder/assistant-qif-import.glade:487
-#, fuzzy
 msgid "_Unload selected file"
-msgstr "Cacah Siklus Muat/Bongkar"
+msgstr "T_utup berkas terpilih"
 
 #: gnucash/gtkbuilder/assistant-qif-import.glade:502
-#, fuzzy
 msgid "_Load another file"
-msgstr "gagal memuat berkas"
+msgstr "Muat berkas _lain"
 
 #: gnucash/gtkbuilder/assistant-qif-import.glade:524
 msgid "QIF files you have loaded"
-msgstr ""
+msgstr "Berkas QIF yang telah dimuat"
 
 #: gnucash/gtkbuilder/assistant-qif-import.glade:539
 msgid ""
@@ -13678,29 +14149,41 @@ msgid ""
 "page so you can change them if you want to, but it is safe to leave them "
 "alone.\n"
 msgstr ""
+"Pada halaman berikutnya, akun-akun pada berkas QIF dan saham atau reksadana "
+"yang Anda miliki akan dicocokkan dengan akun-akun GnuCash. Jika akun GnuCash "
+"sudah ada dengan nama yang sama, atau nama yang mirip dan tipe yang "
+"kompatibel, akun tersebut akan digunakan sebagai sebuah kecocokan; jika "
+"tidak, GnuCash akan membuat akun baru dengan nama dan tipe yang sama dengan "
+"akun QIF. Jika Anda tidak menyukai akun GnuCash yang disarankan, klik dua "
+"kali untuk mengubahnya.\n"
+"\n"
+"Perhatikan bahwa GnuCash akan membuat sejumlah akun yang tidak ada pada "
+"program keuangan pribadi Anda yang lain, termasuk akun terpisah untuk setiap "
+"saham yang Anda miliki, akun terpisah untuk komisi broker, akun \"Ekuitas\" "
+"khusus (sub-akun dari Pendapatan Ditahan, secara baku) yang merupakan sumber "
+"dari saldo pembukaan Anda, dll. Semua akun tersebut akan muncul pada halaman "
+"berikutnya sehingga Anda dapat mengubahnya jika Anda ingin, tetapi Anda juga "
+"bisa membiarkannya begitu saja.\n"
 
 #: gnucash/gtkbuilder/assistant-qif-import.glade:553
-#, fuzzy
 msgid "Accounts and stock holdings"
-msgstr "Akun"
+msgstr "Akun dan kepemilikan saham"
 
 #: gnucash/gtkbuilder/assistant-qif-import.glade:567
 #: gnucash/gtkbuilder/assistant-qif-import.glade:699
 #: gnucash/gtkbuilder/assistant-qif-import.glade:829
-#, fuzzy
 msgid "_Select the matchings you want to change"
-msgstr "Pilih catatan yang ingin Anda ubah."
+msgstr "_Pilih kecocokan yang ingin diubah"
 
 #: gnucash/gtkbuilder/assistant-qif-import.glade:608
 #: gnucash/gtkbuilder/assistant-qif-import.glade:740
 #: gnucash/gtkbuilder/assistant-qif-import.glade:870
-#, fuzzy
 msgid "Matchings selected"
-msgstr "Tidak ada folder yang dipilih."
+msgstr "Kecocokan yang dipilih"
 
 #: gnucash/gtkbuilder/assistant-qif-import.glade:656
 msgid "Match QIF accounts with GnuCash accounts"
-msgstr ""
+msgstr "Cocokkan akun QIF dengan akun GnuCash"
 
 #: gnucash/gtkbuilder/assistant-qif-import.glade:670
 msgid ""
@@ -13716,6 +14199,17 @@ msgid ""
 "If you change your mind later, you can reorganize the account structure "
 "safely within GnuCash."
 msgstr ""
+"GnuCash menggunakan akun Pendapatan dan Pengeluaran yang terpisah dan "
+"bukannya kategori untuk mengklasifikasikan transaksi Anda. Masing-masing "
+"kategori dalam berkas QIF Anda akan dikonversi ke akun GnuCash.\n"
+"\n"
+"Pada halaman berikutnya, Anda akan memiliki kesempatan untuk melihat "
+"kecocokan yang disarankan antara kategori QIF dan akun GnuCash. Anda dapat "
+"mengubah kecocokan yang tidak Anda sukai seperti dengan klik dua kali pada "
+"baris yang berisi nama kategori.\n"
+"\n"
+"Jika Anda berubah pikiran nanti, Anda dapat mengatur ulang struktur akun "
+"secara aman dalam GnuCash."
 
 #: gnucash/gtkbuilder/assistant-qif-import.glade:685
 msgid "Income and Expense categories"
@@ -13723,7 +14217,7 @@ msgstr "Kategori Pendapatan dan Pengeluaran"
 
 #: gnucash/gtkbuilder/assistant-qif-import.glade:788
 msgid "Match QIF categories with GnuCash accounts"
-msgstr ""
+msgstr "Cocokkan kategori QIF dengan akun GnuCash"
 
 #: gnucash/gtkbuilder/assistant-qif-import.glade:802
 msgid ""
@@ -13736,30 +14230,39 @@ msgid ""
 "these transactions are assigned to the 'Unspecified' account in GnuCash. If "
 "you select a different account, it will be remembered for future QIF files. "
 msgstr ""
+"Berkas QIF yang diunduh dari bank dan lembaga keuangan lainnya mungkin tidak "
+"memiliki informasi tentang Akun dan Kategori yang akan memungkinkan mereka "
+"untuk dipasangkan secara benar ke akun-akun GnuCash.\n"
+"\n"
+"Pada halaman berikut, Anda akan melihat teks yang muncul di bidang Penerima "
+"Pembayaran dan Memo transaksi tanpa Akun atau Kategori QIF. Secara baku "
+"transaksi ini dipasangkan ke akun 'Tak Ditentukan' di GnuCash. Jika Anda "
+"memilih akun yang berbeda, akun itu akan diingat untuk berkas QIF di waktu "
+"mendatang. "
 
 #: gnucash/gtkbuilder/assistant-qif-import.glade:815
-#, fuzzy
 msgid "Payees and memos"
-msgstr "_Memo:"
+msgstr "Penerima pembayaran dan memo"
 
 #: gnucash/gtkbuilder/assistant-qif-import.glade:918
 msgid "Match payees/memos to GnuCash accounts"
-msgstr ""
+msgstr "Cocokkan penerima pembayaran/memo ke akun GnuCash"
 
 #: gnucash/gtkbuilder/assistant-qif-import.glade:932
 msgid ""
 "The QIF importer cannot currently handle multi-currency QIF files. All the "
 "accounts you are importing must be denominated in the same currency.\n"
 msgstr ""
+"Pengimpor QIF saat ini tidak dapat menangani berkas QIF dengan beberapa mata "
+"uang. Semua akun yang akan diimpor harus menggunakan mata uang yang sama.\n"
 
 #: gnucash/gtkbuilder/assistant-qif-import.glade:947
 msgid "_Select the currency to use for all imported transactions:"
-msgstr ""
+msgstr "Pilih mata uang yang digunakan untuk _semua transaksi yang diimpor:"
 
 #: gnucash/gtkbuilder/assistant-qif-import.glade:975
-#, fuzzy
 msgid "<b>Book Options</b>"
-msgstr "<b>Ruang Lingkup</b>"
+msgstr "<b>Opsi Buku</b>"
 
 #: gnucash/gtkbuilder/assistant-qif-import.glade:988
 msgid ""
@@ -13769,11 +14272,17 @@ msgid ""
 "setting book options will not be shown a second time when you go forward. "
 "You can access it directly from the menu via File->Properties."
 msgstr ""
+"Karena Anda membuat berkas baru, Anda selanjutnya akan melihat dialog untuk "
+"mengatur opsi-opsi buku. Ini dapat mempengaruhi bagaimana GnuCash mengimpor "
+"transaksi. Jika Anda kembali ke halaman ini tanpa membatalkan dan mulai lagi "
+"dari awal, dialog untuk menggatur opsi buku tidak akan ditampilkan untuk "
+"kedua kalinya ketika Anda maju. Anda dapat mengaksesnya secara langsung dari "
+"menu melalui Berkas->Properti."
 
 #: gnucash/gtkbuilder/assistant-qif-import.glade:999
 #: gnucash/import-export/qif-imp/assistant-qif-import.c:2642
 msgid "Choose the QIF file currency and select Book Options"
-msgstr ""
+msgstr "Pilih mata uang berkas QIF dan pilih Opsi Buku"
 
 #: gnucash/gtkbuilder/assistant-qif-import.glade:1020
 msgid ""
@@ -13792,40 +14301,45 @@ msgid ""
 "If you don't see your exchange listed, or none of the available choices are "
 "appropriate, you can enter a new one."
 msgstr ""
+"Di bawah ini Anda diminta untuk memberikan informasi tentang saham, "
+"reksadana, dan investasi lainnya yang ada di dalam berkas QIF yang diimpor. "
+"GnuCash membutuhkan beberapa rincian tambahan tentang investasi ini yang "
+"tidak disediakan oleh format QIF.\n"
+"\n"
+"Setiap saham, reksadana, atau investasi lainnya harus memiliki nama dan "
+"singkatan, seperti simbol saham. Karena beberapa investasi yang tidak "
+"berhubungan memiliki singkatan yang sama, Anda juga perlu menunjukkan jenis "
+"singkatan yang telah Anda masukkan. Misalnya, Anda bisa memilih bursa yang "
+"menetapkan simbol (NASDAQ, NYSE, dll), atau pilih jenis investasi.\n"
+"\n"
+"Jika bursa Anda tidak terdaftar, atau tidak tersedia pilihan yang sesuai, "
+"Anda dapat memasukkan pilihan baru."
 
 #: gnucash/gtkbuilder/assistant-qif-import.glade:1038
-#, fuzzy
 msgid "Enter Information about..."
-msgstr ""
-"Masukkan informasi tentang kunci yang akan diambil pada kolom yang "
-"disediakan. Rincian seperti kunci ID atau alamat surel pemilik kunci ini "
-"akan memberikan hasil yang lebih akurat dibandingkan dengan nama pemilik "
-"kunci."
+msgstr "Masukkan Informasi tentang..."
 
 #: gnucash/gtkbuilder/assistant-qif-import.glade:1064
 msgid "All fields must be complete to continue..."
-msgstr ""
+msgstr "Semua bidang harus lengkap untuk melanjutkan..."
 
 #: gnucash/gtkbuilder/assistant-qif-import.glade:1081
 msgid "Tradable commodities"
-msgstr ""
+msgstr "Komoditas dapat diperdagangkan"
 
 #: gnucash/gtkbuilder/assistant-qif-import.glade:1157
-#, fuzzy
 msgid "_Start Import"
-msgstr "_Impor"
+msgstr "_Mulai Impor"
 
 #: gnucash/gtkbuilder/assistant-qif-import.glade:1172
 #: gnucash/import-export/qif-imp/assistant-qif-import.c:1733
 #: gnucash/import-export/qif-imp/assistant-qif-import.c:2986
-#, fuzzy
 msgid "P_ause"
 msgstr "Jed_a"
 
 #: gnucash/gtkbuilder/assistant-qif-import.glade:1227
-#, fuzzy
 msgid "QIF Import"
-msgstr "_Impor"
+msgstr "Impor QIF"
 
 #. Run the assistant in your language to see GTK's translation of the button labels.
 #: gnucash/gtkbuilder/assistant-qif-import.glade:1241
@@ -13843,24 +14357,35 @@ msgid ""
 "\n"
 "Click \"Next\" to review the possible matches."
 msgstr ""
+"\n"
+"Jika Anda mengimpor berkas QIF dari bank atau lembaga keuangan lainnya, "
+"beberapa transaksi mungkin sudah ada di akun GnuCash Anda. Untuk menghindari "
+"duplikasi, GnuCash telah mencoba untuk mengidentifikasi kecocokan dan "
+"membutuhkan bantuan Anda untuk meninjau mereka.\n"
+"\n"
+"Pada halaman berikutnya akan ditampilkan daftar transaksi yang diimpor. "
+"Ketika Anda memilihnya satu per satu, sebuah daftar kemungkinan kecocokan "
+"akan ditampilkan di bawahnya. Jika Anda menemukan kecocokan yang benar, klik "
+"pada kecocokan itu. Pilihan Anda akan dikonfirmasi oleh tanda centang di "
+"kolom \"Cocok?\".\n"
+"\n"
+"Klik \"Berikutnya\" untuk meninjau kemungkinan kecocokan."
 
 #: gnucash/gtkbuilder/assistant-qif-import.glade:1257
-#, fuzzy
 msgid "Match existing transactions"
-msgstr "_Cocok Huruf Besar/Kecil"
+msgstr "Cocokkan transaksi yang ada"
 
 #: gnucash/gtkbuilder/assistant-qif-import.glade:1300
 msgid "_Imported transactions needing review"
-msgstr ""
+msgstr "Transaksi yang di_impor perlu diperiksa"
 
 #: gnucash/gtkbuilder/assistant-qif-import.glade:1339
 msgid "_Possible matches for the selected transaction"
-msgstr ""
+msgstr "Kecocokan yang mungkin untuk transaksi yang di_pilih"
 
 #: gnucash/gtkbuilder/assistant-qif-import.glade:1360
-#, fuzzy
 msgid "Select possible duplicates"
-msgstr "Tambah dengan duplikat"
+msgstr "Pilih duplikat yang mungkin"
 
 #: gnucash/gtkbuilder/assistant-qif-import.glade:1368
 msgid ""
@@ -13875,41 +14400,49 @@ msgid ""
 "\n"
 "Click \"Cancel\" to abort the QIF import process."
 msgstr ""
+"Klik \"Terapkan\" untuk mengimpor data dari area gelar dan memperbarui akun "
+"GnuCash Anda. Akun dan kategori yang cocok dengan informasi yang Anda "
+"masukkan akan disimpan dan digunakan sebagai pengaturan baku pada saat Anda "
+"menggunakan fasilitas impor QIF.\n"
+"\n"
+"Klik \"Kembali\" untuk meninjau pencocokan akun dan kategori Anda, untuk "
+"mengubah pengaturan mata uang dan sekuritas untuk akun baru, atau untuk "
+"menambah lebih banyak berkas ke area gelar.\n"
+"\n"
+"Klik \"Batal\" untuk membatalkan proses impor QIF."
 
 #: gnucash/gtkbuilder/assistant-qif-import.glade:1377
-#, fuzzy
 msgid "Update your GnuCash accounts"
-msgstr "Mutakhirkan salinan kerja Anda"
+msgstr "Perbarui akun GnuCash Anda"
 
 #: gnucash/gtkbuilder/assistant-qif-import.glade:1385
-#, fuzzy
 msgid "Summary Text"
-msgstr "[Tanpa Judul]"
+msgstr "Teks Ikhtisar"
 
 #: gnucash/gtkbuilder/assistant-qif-import.glade:1390
-#, fuzzy
 msgid "Qif Import Summary"
-msgstr "* Tidak ada judul *"
+msgstr "Ikhtisar Impor Qif"
 
 #: gnucash/gtkbuilder/assistant-stock-split.glade:9
 #: gnucash/gtkbuilder/assistant-stock-split.glade:37
-#, fuzzy
 msgid "Stock Split Assistant"
-msgstr "Stok"
+msgstr "Asisten Split Saham"
 
 #: gnucash/gtkbuilder/assistant-stock-split.glade:31
 msgid "This assistant will help you record a stock split or stock merger.\n"
 msgstr ""
+"Asisten ini akan membantu Anda mencatat split saham atau gabung saham.\n"
 
 #: gnucash/gtkbuilder/assistant-stock-split.glade:53
 msgid ""
 "Select the account for which you want to record a stock split or merger."
 msgstr ""
+"Pilih akun yang akan Anda gunakan untuk mencatat split saham atau gabung "
+"saham."
 
 #: gnucash/gtkbuilder/assistant-stock-split.glade:86
-#, fuzzy
 msgid "Stock Split Account"
-msgstr "tipe akun: Saham"
+msgstr "Akun Split Saham"
 
 #: gnucash/gtkbuilder/assistant-stock-split.glade:101
 msgid ""
@@ -13918,76 +14451,75 @@ msgid ""
 "for the share distribution. You can also enter a description of the "
 "transaction, or accept the default one."
 msgstr ""
+"Masukkan tanggal dan jumlah saham yang Anda peroleh atau berkurang dari "
+"split atau gabung saham. Untuk penggabungan saham (pemisahan negatif) "
+"gunakan nilai negatif untuk distribusi saham. Anda juga dapat memasukkan "
+"deskripsi transaksi, atau menggunakan deskripsi baku."
 
 #: gnucash/gtkbuilder/assistant-stock-split.glade:151
-#, fuzzy
 msgid "Desc_ription"
-msgstr "Status & ket."
+msgstr "Desk_ripsi"
 
 #: gnucash/gtkbuilder/assistant-stock-split.glade:166
-#, fuzzy
 msgid "Stock Split"
-msgstr "pecah"
+msgstr "Split Saham"
 
 #: gnucash/gtkbuilder/assistant-stock-split.glade:189
 msgid ""
 "If you want to record a stock price for the split, enter it below. You may "
 "safely leave it blank."
 msgstr ""
+"Jika Anda ingin mencatat harga saham untuk split, masukkan di bawah ini. "
+"Anda bisa membuarkannya kosong."
 
 #: gnucash/gtkbuilder/assistant-stock-split.glade:205
-#, fuzzy
 msgid "New _Price"
-msgstr "harga: kuotasi"
+msgstr "Harga _Baru"
 
 #: gnucash/gtkbuilder/assistant-stock-split.glade:219
-#, fuzzy
 msgid "Currenc_y"
-msgstr "_Y:"
+msgstr "Mata _Uang"
 
 #: gnucash/gtkbuilder/assistant-stock-split.glade:249
-#, fuzzy
 msgid "Stock Split Details"
-msgstr "pecah"
+msgstr "Detail Split Saham"
 
 #: gnucash/gtkbuilder/assistant-stock-split.glade:265
 msgid ""
 "If you received a cash disbursement as a result of the stock split, enter "
 "the details of that payment here. Otherwise, just click \"Next\"."
 msgstr ""
+"Jika Anda menerima pencairan uang tunai sebagai hasil dari split saham, "
+"masukkan detail pembayaran itu di sini. Jika tidak, klik \"Berikutnya\"."
 
 #: gnucash/gtkbuilder/assistant-stock-split.glade:286
 #: gnucash/import-export/aqb/dialog-ab.glade:1088
-#, fuzzy
 msgid "_Amount"
-msgstr "jumlah"
+msgstr "Juml_ah"
 
 #: gnucash/gtkbuilder/assistant-stock-split.glade:300
 #: gnucash/gtkbuilder/dialog-print-check.glade:1129
-#: gnucash/gtkbuilder/gnc-plugin-page-register.glade:757
-#, fuzzy
+#: gnucash/gtkbuilder/gnc-plugin-page-register.glade:956
 msgid "_Memo"
-msgstr "Memo"
+msgstr "_Memo"
 
 #. Default memo text for the remains of a stock split
 #: gnucash/gtkbuilder/assistant-stock-split.glade:316
 msgid "Cash in lieu"
-msgstr "tunai"
+msgstr "Kas pengganti"
 
 #: gnucash/gtkbuilder/assistant-stock-split.glade:352
-#, fuzzy
 msgid "<b>_Income Account</b>"
-msgstr "tipe akun: Pendapatan"
+msgstr "<b>Akun _Pendapatan</b>"
 
 #: gnucash/gtkbuilder/assistant-stock-split.glade:365
-#, fuzzy
 msgid "<b>A_sset Account</b>"
-msgstr "<b>Ruang Lingkup</b>"
+msgstr "<b>Akun A_set</b>"
 
 #. Dialog title for the remains of a stock split
 #: gnucash/gtkbuilder/assistant-stock-split.glade:409
 msgid "Cash In Lieu"
-msgstr "tunai"
+msgstr "Kas Pengganti"
 
 #: gnucash/gtkbuilder/assistant-stock-split.glade:419
 msgid ""
@@ -13995,89 +14527,76 @@ msgid ""
 "may also press \"Back\" to review your choices, or \"Cancel\" to quit "
 "without making any changes."
 msgstr ""
+"Jika Anda telah selesai membuat split saham atau gabung saham, tekan "
+"\"Terapkan\". Anda juga bisa menekan \"Kembali\" untuk memeriksa pilihan "
+"Anda, atau \"Batal\" untuk keluar tanpa membuat perubahan apapun."
 
 #: gnucash/gtkbuilder/assistant-stock-split.glade:424
-#, fuzzy
 msgid "Stock Split Finish"
-msgstr "_Selesai"
+msgstr "Selesai Split Saham"
 
 #: gnucash/gtkbuilder/assistant-xml-encoding.glade:25
-#, fuzzy
 msgid "Introduction placeholder"
-msgstr "placeholder"
+msgstr "Placeholder perkenalan"
 
 #: gnucash/gtkbuilder/assistant-xml-encoding.glade:30
-#, fuzzy
 msgid "Title placeholder"
-msgstr "placeholder"
+msgstr "Placeholder judul"
 
 #: gnucash/gtkbuilder/assistant-xml-encoding.glade:55
-#, fuzzy
 msgid "_Edit list of encodings"
-msgstr "Kandidat Pengkodean"
+msgstr "_Sunting daftar pengkodean"
 
 #: gnucash/gtkbuilder/assistant-xml-encoding.glade:78
-#, fuzzy
 msgid "Default encoding"
-msgstr "Pengkodean bawaan"
+msgstr "Pengkodean baku"
 
 #: gnucash/gtkbuilder/assistant-xml-encoding.glade:148
-#, fuzzy
 msgid "Convert the file"
-msgstr ""
-"Sebagai contoh, untuk mengonversi sebuah berkas JPEG (<file>.jpg</file>) ke "
-"dalam berkas Bitmap (<file>.bmp</file>):"
+msgstr "Konversi berkas"
 
 #: gnucash/gtkbuilder/assistant-xml-encoding.glade:157
-#, fuzzy
 msgid "finish placeholder"
-msgstr "placeholder"
+msgstr "placeholder selesai"
 
 #: gnucash/gtkbuilder/assistant-xml-encoding.glade:162
 msgid "Finish GnuCash Datafile Import"
-msgstr ""
+msgstr "Selesai Impor Berkas Data GnuCash"
 
 #: gnucash/gtkbuilder/assistant-xml-encoding.glade:184
-#, fuzzy
 msgid "Edit the list of encodings"
-msgstr "Kandidat Pengkodean"
+msgstr "Sunting daftar pengkodean"
 
 #: gnucash/gtkbuilder/assistant-xml-encoding.glade:260
 msgid "<b>S_ystem input encodings</b>"
-msgstr ""
+msgstr "<b>Pengkodean masukan sis_tem</b>"
 
 #: gnucash/gtkbuilder/assistant-xml-encoding.glade:346
-#, fuzzy
 msgid "<b>_Custom encoding</b>"
-msgstr "<b>Ruang Lingkup</b>"
+msgstr "<b>Pengkodean _tersuai</b>"
 
 #: gnucash/gtkbuilder/assistant-xml-encoding.glade:429
-#, fuzzy
 msgid "<b>_Selected encodings</b>"
-msgstr "<b>Ruang Lingkup</b>"
+msgstr "<b>Pengkodean terpili_h</b>"
 
 #: gnucash/gtkbuilder/business-prefs.glade:42
 #: gnucash/gtkbuilder/dialog-account-picker.glade:8
 #: gnucash/gtkbuilder/dialog-sx.glade:499
-#, fuzzy
 msgid "Preferences"
 msgstr "Preferensi"
 
 #. Preferences Dialog, General Tab
 #: gnucash/gtkbuilder/business-prefs.glade:55
-#: gnucash/gtkbuilder/dialog-preferences.glade:1264
-#: gnucash/gtkbuilder/dialog-preferences.glade:1950
-#, fuzzy
+#: gnucash/gtkbuilder/dialog-preferences.glade:1381
+#: gnucash/gtkbuilder/dialog-preferences.glade:2067
 msgid "<b>General</b>"
 msgstr "<b>Umum</b>"
 
 #: gnucash/gtkbuilder/business-prefs.glade:65
-#, fuzzy
 msgid "Enable extra _buttons"
-msgstr "Akti_fkan"
+msgstr "Aktifkan tom_bol ekstra"
 
 #: gnucash/gtkbuilder/business-prefs.glade:83
-#, fuzzy
 msgid "_Open in new window"
 msgstr "_Buka di jendela baru"
 
@@ -14091,7 +14610,7 @@ msgstr ""
 
 #: gnucash/gtkbuilder/business-prefs.glade:101
 msgid "_Accumulate splits on post"
-msgstr "_Akumulasikan Pemecahan saat mengepos"
+msgstr "_Akumulasikan split saat pos"
 
 #: gnucash/gtkbuilder/business-prefs.glade:107
 msgid ""
@@ -14100,39 +14619,37 @@ msgid ""
 "changed in the Post dialog."
 msgstr ""
 "Apakah beberapa entri pada sebuah faktur yang transfer ke akun yang sama "
-"harus diakumulasikan ke dalam sebuah pemecahan tunggal secara bawaan. "
-"Setelan ini bisa diubah pada dialog Pos."
+"harus diakumulasikan ke dalam sebuah split tunggal, secara baku. Pengaturan "
+"ini bisa diubah pada dialog Pos."
 
 #: gnucash/gtkbuilder/business-prefs.glade:132
-#, fuzzy
 msgid "<b>Invoices</b>"
-msgstr "<b>Ruang Lingkup</b>"
+msgstr "<b>Faktur</b>"
 
 #: gnucash/gtkbuilder/business-prefs.glade:142
-#, fuzzy
 msgid "Not_ify when due"
-msgstr "Tanggal _Berlaku:"
+msgstr "Ber_itahu jika jatuh tempo"
 
 #: gnucash/gtkbuilder/business-prefs.glade:148
 #: gnucash/gtkbuilder/business-prefs.glade:237
 msgid "Whether to display the list of Bills Due at startup."
-msgstr ""
+msgstr "Apakah menampilkan daftar Tagihan Jatuh Tempo pada saat mulai."
 
 #: gnucash/gtkbuilder/business-prefs.glade:163
-#, fuzzy
 msgid "Report for printing"
-msgstr "Lapo_rkan"
+msgstr "Laporan untuk dicetak"
 
 #: gnucash/gtkbuilder/business-prefs.glade:172
-#, fuzzy
 msgid "_Tax included"
-msgstr "kode pajak"
+msgstr "_Termasuk pajak"
 
 #: gnucash/gtkbuilder/business-prefs.glade:178
 msgid ""
 "Whether tax is included by default in entries on Bills. This setting is "
 "inherited by new customers and vendors."
 msgstr ""
+"Apkah pajak disertakan secara baku pada entri di Tagihan. Pengaturan ini "
+"diwarisi oleh pelanggan dan vendor baru."
 
 #. See the tooltip "At post time..." for details.
 #: gnucash/gtkbuilder/business-prefs.glade:190
@@ -14140,25 +14657,24 @@ msgid "_Process payments on posting"
 msgstr "_Proses pembayaran saat mengepos"
 
 #: gnucash/gtkbuilder/business-prefs.glade:221
-#, fuzzy
 msgid "<b>Bills</b>"
-msgstr "<b>Ruang Lingkup</b>"
+msgstr "<b>Tagihan</b>"
 
 #: gnucash/gtkbuilder/business-prefs.glade:231
-#, fuzzy
 msgid "_Notify when due"
-msgstr "Jatuh Tempo"
+msgstr "Beritahu jika jatuh te_mpo"
 
 #: gnucash/gtkbuilder/business-prefs.glade:249
-#, fuzzy
 msgid "Ta_x included"
-msgstr "%s tidak termasuk dalam %s"
+msgstr "Termasuk _pajak"
 
 #: gnucash/gtkbuilder/business-prefs.glade:255
 msgid ""
 "Whether tax is included by default in entries on Invoices. This setting is "
 "inherited by new customers and vendors."
 msgstr ""
+"Apkah pajak disertakan secara baku pada entri di Faktur. Pengaturan ini "
+"diwarisi oleh pelanggan dan vendor baru."
 
 #. See the tooltip "At post time..." for details.
 #: gnucash/gtkbuilder/business-prefs.glade:267
@@ -14166,224 +14682,208 @@ msgid "Pro_cess payments on posting"
 msgstr "Pro_ses pembayaran saat mengepos"
 
 #: gnucash/gtkbuilder/business-prefs.glade:287
-#, fuzzy
 msgid "Days in ad_vance"
-msgstr "Michael Vance"
+msgstr "_Hari sebelumnya"
 
 #: gnucash/gtkbuilder/business-prefs.glade:302
 msgid "How many days in the future to warn about Bills coming due."
 msgstr ""
+"Berapa hari di masa mendatang untuk memperingatkan tentang Tagihan yang akan "
+"jatuh tempo."
 
 #: gnucash/gtkbuilder/business-prefs.glade:339
 msgid "How many days in the future to warn about Invoices coming due."
 msgstr ""
+"Berapa hari di masa mendatang untuk memperingatkan tentang Faktur yang akan "
+"jatuh tempo."
 
 #: gnucash/gtkbuilder/business-prefs.glade:352
-#, fuzzy
 msgid "_Days in advance"
-msgstr "Game Boy Advance"
+msgstr "_Hari sebelumnya"
 
 #: gnucash/gtkbuilder/dialog-account.glade:7
-#, fuzzy
 msgid "Cascade Account Values"
-msgstr "_Cascade Style Sheet"
+msgstr "Jadikan Nilai Akun Bertingkat"
 
 #: gnucash/gtkbuilder/dialog-account.glade:69
-#, fuzzy
 msgid "Enable Cascading Account Color"
-msgstr "Masuklah untuk memfungsikan akun ini."
+msgstr "Aktifkan Warna Akun Bertingkat"
 
 #: gnucash/gtkbuilder/dialog-account.glade:104
-#, fuzzy
 msgid "Enable Cascading Account Placeholder"
-msgstr "Masuklah untuk memfungsikan akun ini."
+msgstr "Aktifkan Placeholder Akun Bertingkat"
 
 #: gnucash/gtkbuilder/dialog-account.glade:129
-#, fuzzy
 msgid "Enable Cascading Account Hidden"
-msgstr "Masuklah untuk memfungsikan akun ini."
+msgstr "Aktifkan Akun Bertingkat Tersembunyi"
 
 #: gnucash/gtkbuilder/dialog-account.glade:151
-#, fuzzy
 msgid "Enable the sections to Cascade"
-msgstr "_Cascade Style Sheet"
+msgstr "Aktifkan bagian untuk menjadi Bertingkat"
 
 #: gnucash/gtkbuilder/dialog-account.glade:199
 #: gnucash/gtkbuilder/dialog-account.glade:1326
 #: gnucash/report/html-style-sheet.scm:217 gnucash/report/report-core.scm:213
 #: gnucash/report/stylesheets/plain.scm:232
-#, fuzzy
 msgid "Default"
-msgstr "Bawaan"
+msgstr "Baku"
 
 #: gnucash/gtkbuilder/dialog-account.glade:221
 msgid ""
 "If any account has an existing color it will not be replaced unless the "
 "following is ticked."
 msgstr ""
+"Jika suatu akun telah memiliki warna, warna itu tidak akan diganti kecuali "
+"opsi berikut dicentang."
 
 #: gnucash/gtkbuilder/dialog-account.glade:232
 msgid "Replace any existing account colors"
-msgstr ""
+msgstr "Ganti warna akun yang sudah ada"
 
 #: gnucash/gtkbuilder/dialog-account.glade:364
-#, fuzzy
 msgid "Delete Account"
-msgstr "Anda yakin ingin menghapus akun “{0}”?"
+msgstr "Hapus Akun"
 
 #: gnucash/gtkbuilder/dialog-account.glade:449
-#, fuzzy
 msgid "<b>Sub-accounts</b>"
-msgstr "<b>Ruang Lingkup</b>"
+msgstr "<b>Sub-akun</b>"
 
 #: gnucash/gtkbuilder/dialog-account.glade:470
 msgid "This account has a sub-account. What would you like to do with it?"
-msgstr ""
+msgstr "Akun ini memiliki sub-akun. Apa yang ingin Anda lakukan dengannya?"
 
 #: gnucash/gtkbuilder/dialog-account.glade:481
-#, fuzzy
 msgid "_Move to"
-msgstr "Pindah Ke"
+msgstr "_Pindah ke"
 
 #: gnucash/gtkbuilder/dialog-account.glade:499
-#, fuzzy
 msgid "Delete the _subaccount"
-msgstr "akun: sub-akun"
+msgstr "Hapus _sub-akun"
 
 #: gnucash/gtkbuilder/dialog-account.glade:554
-#, fuzzy
 msgid "<b>Transactions</b>"
-msgstr "<b>Ruang Lingkup</b>"
+msgstr "<b>Transaksi</b>"
 
 #: gnucash/gtkbuilder/dialog-account.glade:572
 #: gnucash/gtkbuilder/dialog-account.glade:690
-#, fuzzy
 msgid "M_ove to"
-msgstr "Pind_ah ke Layar"
+msgstr "P_indah ke"
 
 #: gnucash/gtkbuilder/dialog-account.glade:588
 #: gnucash/gtkbuilder/dialog-account.glade:706
-#, fuzzy
 msgid "Delete all _transactions"
-msgstr "Hapus semua berkas temporer?"
+msgstr "Hapus semua _transaksi"
 
 #: gnucash/gtkbuilder/dialog-account.glade:609
 msgid ""
 "This account contains transactions. What would you like to do with these "
 "transactions?"
 msgstr ""
+"Akun ini memiliki beberapa transaksi. Apa yang ingin Anda lakukan dengan "
+"transaksi tersebut?"
 
 #: gnucash/gtkbuilder/dialog-account.glade:623
 msgid "This account contains read-only transactions which may not be deleted."
-msgstr ""
+msgstr "Akun ini memiliki transaksi hanya-baca yang tidak bisa dihapus."
 
 #: gnucash/gtkbuilder/dialog-account.glade:672
 msgid "<b>Sub-account Transactions</b>"
-msgstr ""
+msgstr "<b>Transaksi Sub-akun</b>"
 
 #: gnucash/gtkbuilder/dialog-account.glade:727
 msgid ""
 "You've said to delete the subaccount and it contains transactions. What "
 "would you like to do with these transactions?"
 msgstr ""
+"Anda akan menghapus sub-akun yang memiliki beberapa transaksi. Apa yang "
+"ingin Anda lakukan dengan transaksi itu?"
 
 #: gnucash/gtkbuilder/dialog-account.glade:741
 msgid ""
 "One or more sub-accounts contain read-only transactions which may not be "
 "deleted."
 msgstr ""
+"Satu atau lebih sub-akun memiliki transaksi hanya-baca yang tidak bisa "
+"dihapus."
 
 #: gnucash/gtkbuilder/dialog-account.glade:801
 #: gnucash/gtkbuilder/gnc-tree-view-owner.glade:8
 #: gnucash/report/trep-engine.scm:51
-#, fuzzy
 msgid "Filter By..."
-msgstr "Tak ada penyaring"
+msgstr "Filter Berdasar..."
 
 #: gnucash/gtkbuilder/dialog-account.glade:922
-#, fuzzy
 msgid "_Default"
-msgstr "_Bawaan"
+msgstr "_Baku"
 
 #: gnucash/gtkbuilder/dialog-account.glade:954
 #: gnucash/report/reports/standard/account-summary.scm:117
-#, fuzzy
 msgid "Account Type"
-msgstr "_Tipe Akun"
+msgstr "Tipe Akun"
 
 #: gnucash/gtkbuilder/dialog-account.glade:968
-#, fuzzy
 msgid "Show _hidden accounts"
-msgstr "Tampilkan berkas tersembunyi pada _hasil"
+msgstr "Tampilkan akun _tersembunyi"
 
 #: gnucash/gtkbuilder/dialog-account.glade:972
 msgid "Show accounts which have the option \"Hidden\" checked."
-msgstr ""
+msgstr "Tampilkan akun yang memiliki opsi \"Tersembunyi\" aktif."
 
 #: gnucash/gtkbuilder/dialog-account.glade:986
-#, fuzzy
 msgid "Show _unused accounts"
-msgstr "Menonaktifkan teknologi nirkabel yang tidak terpakai"
+msgstr "Tampilkan ak_un tak terpakai"
 
 #: gnucash/gtkbuilder/dialog-account.glade:990
 msgid "Show accounts which do not have any transactions."
-msgstr ""
+msgstr "Tampilkan akun yang tidak memiliki transaksi."
 
 #: gnucash/gtkbuilder/dialog-account.glade:1004
 msgid "Show _zero total accounts"
-msgstr ""
+msgstr "Tampilkan akun dengan total _nol"
 
 #: gnucash/gtkbuilder/dialog-account.glade:1008
 msgid "Show accounts which have a zero total value."
-msgstr ""
+msgstr "Tampilkan akun yang memiliki nilai total nol."
 
 #: gnucash/gtkbuilder/dialog-account.glade:1063
-#, fuzzy
 msgid "Use Commodity Value"
-msgstr "komoditas"
+msgstr "Gunakan Nilai Komoditas"
 
 #: gnucash/gtkbuilder/dialog-account.glade:1194
-#, fuzzy
 msgid "<b>Identification</b>"
-msgstr "<b>Ruang Lingkup</b>"
+msgstr "<b>Identifikasi</b>"
 
 #: gnucash/gtkbuilder/dialog-account.glade:1214
-#, fuzzy
 msgid "Account _name"
-msgstr "nama akun"
+msgstr "_Nama akun"
 
 #: gnucash/gtkbuilder/dialog-account.glade:1229
-#, fuzzy
 msgid "_Account code"
-msgstr "kode akun"
+msgstr "Kode _akun"
 
 #: gnucash/gtkbuilder/dialog-account.glade:1243
-#, fuzzy
 msgid "_Description"
 msgstr "_Deskripsi"
 
 #: gnucash/gtkbuilder/dialog-account.glade:1283
-#, fuzzy
 msgid "Smallest _fraction"
-msgstr "Fraksi Kemajuan"
+msgstr "_Fraksi terkecil"
 
 #: gnucash/gtkbuilder/dialog-account.glade:1297
-#, fuzzy
 msgid "Account _Color"
-msgstr "_Untuk Akun:"
+msgstr "_Warna Akun"
 
 #: gnucash/gtkbuilder/dialog-account.glade:1350
 msgid "No_tes"
-msgstr ""
+msgstr "Ca_tatan"
 
 #: gnucash/gtkbuilder/dialog-account.glade:1422
 msgid "Smallest fraction of this commodity that can be referenced."
-msgstr ""
+msgstr "Fraksi terkecil dari komoditas ini yang dapat dijadikan acuan."
 
 #: gnucash/gtkbuilder/dialog-account.glade:1444
-#, fuzzy
 msgid "Placeholde_r"
-msgstr "%a %R"
+msgstr "Placeholde_r"
 
 #: gnucash/gtkbuilder/dialog-account.glade:1448
 msgid ""
@@ -14391,13 +14891,12 @@ msgid ""
 "Transactions may not be posted to this account, only to sub-accounts of this "
 "account."
 msgstr ""
-"Akun ini disediakan khusus sebagai placeholder pada hirarki. Transaksi tidak "
-"boleh dipos di akun ini, hanya boleh di sub-akun pada akun ini."
+"Akun ini disediakan khusus sebagai placeholder pada hierarki. Transaksi "
+"tidak boleh dipos di akun ini, hanya boleh di sub-akun pada akun ini."
 
 #: gnucash/gtkbuilder/dialog-account.glade:1460
-#, fuzzy
 msgid "H_idden"
-msgstr "(H) "
+msgstr "T_ersembunyi"
 
 #: gnucash/gtkbuilder/dialog-account.glade:1464
 msgid ""
@@ -14407,16 +14906,19 @@ msgid ""
 "account tree and check the \"show hidden accounts\" option. Doing so will "
 "allow you to select the account and reopen this dialog."
 msgstr ""
+"Akun ini (dan sub-akunnya) akan disembunyikan di pohon akun dan tidak akan "
+"terlihat di daftar akun popup di register. Untuk menyetel ulang opsi ini, "
+"Anda perlu membuka dialog \"Filter Berdasar...\" untuk pohon akun dan "
+"memberi tanda centang pada opsi \"tampilkan akun tersembunyi\". Dengan "
+"melakukan itu, Anda bisa memilih akun dan membuka kembali dialog ini."
 
 #: gnucash/gtkbuilder/dialog-account.glade:1476
-#, fuzzy
 msgid "Auto _interest transfer"
-msgstr "Otom_atis"
+msgstr "Transfer bunga otomat_is"
 
 #: gnucash/gtkbuilder/dialog-account.glade:1492
-#, fuzzy
 msgid "Ta_x related"
-msgstr "Halaman Terkait"
+msgstr "Terkait _Pajak"
 
 #. Translators: use the same words here as in 'Ta_x Report Options'.
 #: gnucash/gtkbuilder/dialog-account.glade:1497
@@ -14427,22 +14929,32 @@ msgstr ""
 "Gunakan Sunting->Opsi Laporan Pajak untuk menyetel bendera yang terkait "
 "dengan pajak dan menetapkan sebuah kode pajak untuk akun ini."
 
-#: gnucash/gtkbuilder/dialog-account.glade:1543
-#, fuzzy
+#: gnucash/gtkbuilder/dialog-account.glade:1509
+msgid "Opening balance"
+msgstr "Saldo awal"
+
+#: gnucash/gtkbuilder/dialog-account.glade:1513
+msgid ""
+"This account holds opening balance transactions. Only one account per "
+"commodity can hold opening balance transactions."
+msgstr ""
+"Akun ini menyimpan transaksi-transaksi saldo awal. Hanya ada satu akun per "
+"komoditas yang bisa menyimpan transaksi-transaksi saldo awal."
+
+#: gnucash/gtkbuilder/dialog-account.glade:1560
 msgid "<b>Acco_unt Type</b>"
-msgstr "Suatu bool, tipe \"b\""
+msgstr "<b>Tipe Ak_un</b>"
 
-#: gnucash/gtkbuilder/dialog-account.glade:1569
-#, fuzzy
+#: gnucash/gtkbuilder/dialog-account.glade:1586
 msgid "<b>_Parent Account</b>"
-msgstr "akun: akun induk"
+msgstr "<b>Akun I_nduk</b>"
 
-#: gnucash/gtkbuilder/dialog-account.glade:1649
-#: gnucash/gtkbuilder/dialog-preferences.glade:1893
+#: gnucash/gtkbuilder/dialog-account.glade:1666
+#: gnucash/gtkbuilder/dialog-preferences.glade:2010
 #: gnucash/report/report-core.scm:77
 #: gnucash/report/reports/standard/equity-statement.scm:108
 #: gnucash/report/reports/standard/equity-statement.scm:112
-#: gnucash/report/reports/standard/register.scm:376
+#: gnucash/report/reports/standard/register.scm:347
 #: gnucash/report/reports/standard/trial-balance.scm:185
 #: gnucash/report/reports/standard/trial-balance.scm:189
 #: gnucash/report/reports/standard/view-column.scm:50
@@ -14470,148 +14982,128 @@ msgstr "akun: akun induk"
 #: gnucash/report/stylesheets/plain.scm:46
 #: gnucash/report/stylesheets/plain.scm:52
 #: gnucash/report/stylesheets/plain.scm:57
-#, fuzzy
 msgid "General"
 msgstr "Umum"
 
-#: gnucash/gtkbuilder/dialog-account.glade:1674
-#, fuzzy
+#: gnucash/gtkbuilder/dialog-account.glade:1691
 msgid "<b>Balance Information</b>"
-msgstr "saldo pembukaan"
+msgstr "<b>Informasi Saldo</b>"
 
-#: gnucash/gtkbuilder/dialog-account.glade:1688
-#, fuzzy
+#: gnucash/gtkbuilder/dialog-account.glade:1705
 msgid "<b>Initial Balance Transfer</b>"
-msgstr "saldo pembukaan"
+msgstr "<b>Transfer Saldo Awal</b>"
 
-#: gnucash/gtkbuilder/dialog-account.glade:1755
+#: gnucash/gtkbuilder/dialog-account.glade:1772
 msgid "_Use equity 'Opening Balances' account"
-msgstr ""
+msgstr "G_unakan akun 'Saldo Awal' ekuitas"
 
-#: gnucash/gtkbuilder/dialog-account.glade:1772
-#, fuzzy
+#: gnucash/gtkbuilder/dialog-account.glade:1789
 msgid "_Select transfer account"
-msgstr "akun tujuan transfer"
+msgstr "Pilih akun tran_sfer"
 
-#: gnucash/gtkbuilder/dialog-account.glade:1883
-#, fuzzy
+#: gnucash/gtkbuilder/dialog-account.glade:1900
 msgid "Renumber sub-accounts"
-msgstr "Nomori Ulang Bingkai"
+msgstr "Nomori ulang sub-akun"
 
-#: gnucash/gtkbuilder/dialog-account.glade:1916
-#, fuzzy
+#: gnucash/gtkbuilder/dialog-account.glade:1933
 msgid "_Renumber"
-msgstr "Menomori ulang urutan bingkai…"
+msgstr "Nomo_ri ulang"
 
-#: gnucash/gtkbuilder/dialog-account.glade:1948
-#, fuzzy
+#: gnucash/gtkbuilder/dialog-account.glade:1965
 msgid "Prefix"
-msgstr "Awalan"
+msgstr "Prefiks"
 
-#: gnucash/gtkbuilder/dialog-account.glade:1986
-#, fuzzy
+#: gnucash/gtkbuilder/dialog-account.glade:2003
 msgid "Examples"
-msgstr "Contoh:"
+msgstr "Contoh"
 
-#: gnucash/gtkbuilder/dialog-account.glade:1998
+#: gnucash/gtkbuilder/dialog-account.glade:2015
 #: gnucash/report/reports/standard/balance-forecast.scm:42
-#, fuzzy
 msgid "Interval"
 msgstr "Interval"
 
 #: gnucash/gtkbuilder/dialog-account-picker.glade:21
-#, fuzzy
 msgid "<b>QIF Import</b>"
-msgstr "<b>Ruang Lingkup</b>"
+msgstr "<b>Impor QIF</b>"
 
 #: gnucash/gtkbuilder/dialog-account-picker.glade:31
-#, fuzzy
 msgid "_Show documentation"
-msgstr "Tunjukkan Dokumentasi API"
+msgstr "Tampilkan dokumenta_si"
 
 #: gnucash/gtkbuilder/dialog-account-picker.glade:50
-#: gnucash/gtkbuilder/gnc-plugin-page-register2.glade:511
+#: gnucash/gtkbuilder/gnc-plugin-page-register2.glade:558
 #: gnucash/gtkbuilder/gnc-plugin-page-register.glade:402
-#, fuzzy
 msgid "_Reconciled"
-msgstr "status transaksi: rekonsiliasi"
+msgstr "Di_rekonsiliasi"
 
 #: gnucash/gtkbuilder/dialog-account-picker.glade:69
-#, fuzzy
 msgid "_Cleared"
-msgstr "status transaksi: kliring"
+msgstr "_Klir"
 
 #: gnucash/gtkbuilder/dialog-account-picker.glade:75
 msgid ""
 "When the status is not specified in a QIF file, the transactions are marked "
 "as cleared."
 msgstr ""
+"Ketika status tidak ditentukan di dalam berkas QIF, transaksi akan ditandai "
+"sebagai klir."
 
 #: gnucash/gtkbuilder/dialog-account-picker.glade:88
-#, fuzzy
 msgid "_Not cleared"
-msgstr "Senarai ubah dibersihkan"
+msgstr "_Belum klir"
 
 #: gnucash/gtkbuilder/dialog-account-picker.glade:94
 msgid ""
 "When the status is not specified in a QIF file, the transactions are marked "
 "as not cleared."
 msgstr ""
+"Ketika status tidak ditentukan di dalam berkas QIF, transaksi akan ditandai "
+"sebagai belum klir."
 
 #: gnucash/gtkbuilder/dialog-account-picker.glade:110
 msgid ""
 "Default transaction status (overridden by the status given by the QIF file)"
 msgstr ""
+"Status baku transaksi (ditimpa oleh status yang diberikan oleh berkas QIF)"
 
 #: gnucash/gtkbuilder/dialog-account-picker.glade:141
 #: gnucash/gtkbuilder/dialog-import.glade:12
-#, fuzzy
 msgid "Select Account"
-msgstr "Pilih sebuah akun"
+msgstr "Pilih Akun"
 
 #: gnucash/gtkbuilder/dialog-account-picker.glade:219
-#, fuzzy
 msgid "_Select or add a GnuCash account:"
-msgstr "Tambah Akun"
+msgstr "Pilih atau tambah akun GnuCa_sh:"
 
 #: gnucash/gtkbuilder/dialog-bi-import-gui.glade:7
-#, fuzzy
 msgid "Import transactions from text file"
-msgstr "Muat teks dari berkas"
+msgstr "Impor transaksi dari berkas teks"
 
 #: gnucash/gtkbuilder/dialog-bi-import-gui.glade:123
-#, fuzzy
 msgid "1. Choose the file to import"
-msgstr "_Impor Berkas…"
+msgstr "1. Pilih berkas untuk diimpor"
 
 #: gnucash/gtkbuilder/dialog-bi-import-gui.glade:153
-#, fuzzy
 msgid "Import bill CSV data"
-msgstr "Tak ada data untuk diimpor"
+msgstr "Impor data CSV tagihan"
 
 #: gnucash/gtkbuilder/dialog-bi-import-gui.glade:173
-#, fuzzy
 msgid "Import invoice CSV data"
-msgstr "Tak ada data untuk diimpor"
+msgstr "Impor data CSV faktur"
 
 #: gnucash/gtkbuilder/dialog-bi-import-gui.glade:191
-#, fuzzy
 msgid "2. Select import type"
-msgstr "Pilih lokasi impor"
+msgstr "2. Pilih tipe impor"
 
 #: gnucash/gtkbuilder/dialog-bi-import-gui.glade:216
 #: gnucash/gtkbuilder/dialog-customer-import-gui.glade:215
-#, fuzzy
 msgid "Semicolon separated"
-msgstr ""
-"Tanda titik koma (\";\") memisahkan daftar peladen untuk mencari informasi, "
-"selain domain alamat surel."
+msgstr "Dipisahkan titik koma"
 
 #: gnucash/gtkbuilder/dialog-bi-import-gui.glade:234
 #: gnucash/gtkbuilder/dialog-customer-import-gui.glade:232
-#, fuzzy
 msgid "Comma separated"
-msgstr "Nilai dipisah koma (.csv)"
+msgstr "Dipisahkan koma"
 
 #: gnucash/gtkbuilder/dialog-bi-import-gui.glade:252
 #: gnucash/gtkbuilder/dialog-customer-import-gui.glade:250
@@ -14626,22 +15118,19 @@ msgstr "Tanda koma dipisahkan dengan tanda petik"
 #: gnucash/gtkbuilder/dialog-bi-import-gui.glade:288
 #: gnucash/gtkbuilder/dialog-customer-import-gui.glade:286
 msgid "Custom regular expression"
-msgstr ""
+msgstr "Ekspresi reguler tersuai"
 
 #: gnucash/gtkbuilder/dialog-bi-import-gui.glade:310
-#, fuzzy
 msgid "3. Select import options"
-msgstr "Opsi Impor Terkait:"
+msgstr "3. Pilih opsi impor"
 
 #: gnucash/gtkbuilder/dialog-bi-import-gui.glade:349
-#, fuzzy
 msgid "4. Preview"
-msgstr "Pratinjau"
+msgstr "4. Pratinjau"
 
 #: gnucash/gtkbuilder/dialog-bi-import-gui.glade:374
-#, fuzzy
 msgid "Open imported documents in tabs"
-msgstr "Ada beberapa tab terbuka."
+msgstr "Buka dokumen hasil impor di tab"
 
 #: gnucash/gtkbuilder/dialog-bi-import-gui.glade:392
 msgid "Open not yet posted documents in tabs "
@@ -14649,37 +15138,33 @@ msgstr "Buka dokumen yang belum dipos di tab "
 
 #: gnucash/gtkbuilder/dialog-bi-import-gui.glade:410
 msgid "Don't open imported documents in tabs"
-msgstr ""
+msgstr "Jangan buka dokumen hasil impor di tab"
 
 #: gnucash/gtkbuilder/dialog-bi-import-gui.glade:432
-#, fuzzy
 msgid "5. Afterwards"
-msgstr "Tajuk _5"
+msgstr "5. Selanjutnya"
 
 #: gnucash/gtkbuilder/dialog-billterms.glade:48
 #: gnucash/import-export/aqb/dialog-ab-pref.glade:8
 msgid "window1"
-msgstr ""
+msgstr "jendela1"
 
 #: gnucash/gtkbuilder/dialog-billterms.glade:72
-#, fuzzy
 msgid "Due Days"
-msgstr "Tanggal _Berlaku:"
+msgstr "Tanggal Jatuh Tempo"
 
 #: gnucash/gtkbuilder/dialog-billterms.glade:85
-#, fuzzy
 msgid "Discount Days"
-msgstr "diskon"
+msgstr "Tanggal Diskon"
 
 #: gnucash/gtkbuilder/dialog-billterms.glade:98
 #: gnucash/gtkbuilder/dialog-billterms.glade:236
-#, fuzzy
 msgid "Discount %"
-msgstr "diskon"
+msgstr "Diskon %"
 
 #: gnucash/gtkbuilder/dialog-billterms.glade:112
 msgid "The percentage discount applied for early payment."
-msgstr ""
+msgstr "Persentase diskon yang diberikan untuk pembayaran lebih awal."
 
 #: gnucash/gtkbuilder/dialog-billterms.glade:133
 msgid ""
@@ -14694,19 +15179,16 @@ msgid "The number of days to pay the bill after the post date."
 msgstr "Jumlah hari untuk membayar tagihan setelah tanggal pos."
 
 #: gnucash/gtkbuilder/dialog-billterms.glade:210
-#, fuzzy
 msgid "Due Day"
-msgstr "Tanggal _Berlaku:"
+msgstr "Tanggal Jatuh Tempo"
 
 #: gnucash/gtkbuilder/dialog-billterms.glade:223
-#, fuzzy
 msgid "Discount Day"
-msgstr "diskon"
+msgstr "Tanggal Diskon"
 
 #: gnucash/gtkbuilder/dialog-billterms.glade:249
-#, fuzzy
 msgid "Cutoff Day"
-msgstr "Hari _Ini"
+msgstr "Tanggal Tutup"
 
 #: gnucash/gtkbuilder/dialog-billterms.glade:263
 msgid ""
@@ -14714,21 +15196,23 @@ msgid ""
 "are applied to the following month. Negative values count backwards from the "
 "end of the month."
 msgstr ""
+"Tanggal tutup untuk menerapkan tagihan ke bulan berikutnya. Setelah tanggal "
+"tutup, tagihan akan diterapkan ke bulan berikutnya. Nilai negatif menghitung "
+"mundur dari akhir bulan."
 
 #: gnucash/gtkbuilder/dialog-billterms.glade:285
 msgid "The discount percentage applied if paid early."
-msgstr ""
+msgstr "Persentase diskon yang diberikan jika dibayar lebih awal."
 
 #: gnucash/gtkbuilder/dialog-billterms.glade:307
 msgid "The last day of the month for the early payment discount."
-msgstr ""
+msgstr "Tanggal terakhir dalam satu bulan untuk diskon pembayaran awal."
 
 #: gnucash/gtkbuilder/dialog-billterms.glade:329
 msgid "The day of the month bills are due"
-msgstr ""
+msgstr "Tanggal jatuh tempo tagihan dalam satu bulan"
 
 #: gnucash/gtkbuilder/dialog-billterms.glade:393
-#, fuzzy
 msgid "Table"
 msgstr "Tabel"
 
@@ -14737,14 +15221,12 @@ msgstr "Tabel"
 #: gnucash/gtkbuilder/dialog-invoice.glade:336
 #: gnucash/gtkbuilder/dialog-invoice.glade:957
 #: gnucash/gtkbuilder/dialog-vendor.glade:520
-#, fuzzy
 msgid "Terms"
-msgstr "Tips & istilah jaringan"
+msgstr "Ketentuan"
 
 #: gnucash/gtkbuilder/dialog-billterms.glade:434
-#, fuzzy
 msgid "<b>Terms</b>"
-msgstr "<b>Ruang Lingkup</b>"
+msgstr "<b>Ketentuan</b>"
 
 #: gnucash/gtkbuilder/dialog-billterms.glade:481
 msgid "Delete the current Billing Term"
@@ -14763,9 +15245,8 @@ msgstr "<b>Definisi Jangka</b>"
 #: gnucash/gtkbuilder/dialog-billterms.glade:572
 #: gnucash/gtkbuilder/dialog-billterms.glade:909
 #: gnucash/gtkbuilder/dialog-billterms.glade:1146
-#, fuzzy
 msgid "De_scription"
-msgstr "De_vilish"
+msgstr "De_skripsi"
 
 #: gnucash/gtkbuilder/dialog-billterms.glade:587
 #: gnucash/gtkbuilder/dialog-billterms.glade:924
@@ -14774,9 +15255,8 @@ msgstr "De_vilish"
 #: gnucash/gtkbuilder/dialog-commodity.glade:770
 #: gnucash/gtkbuilder/dialog-price.glade:203
 #: gnucash/gtkbuilder/dialog-tax-table.glade:476
-#, fuzzy
 msgid "_Type"
-msgstr "_Jenis"
+msgstr "_Tipe"
 
 #: gnucash/gtkbuilder/dialog-billterms.glade:602
 #: gnucash/gtkbuilder/dialog-billterms.glade:859
@@ -14789,15 +15269,13 @@ msgid "Edit the current Billing Term"
 msgstr "Sunting Jangka Penagihan saat ini"
 
 #: gnucash/gtkbuilder/dialog-billterms.glade:736
-#, fuzzy
 msgid "Close this window"
-msgstr "Menutup jendela ini"
+msgstr "Tutup jendela ini"
 
 #: gnucash/gtkbuilder/dialog-billterms.glade:798
 #: gnucash/gtkbuilder/dialog-billterms.glade:978
-#, fuzzy
 msgid "Cancel your changes"
-msgstr "_Batal"
+msgstr "Batalkan perubahan Anda"
 
 #: gnucash/gtkbuilder/dialog-billterms.glade:816
 #: gnucash/gtkbuilder/dialog-billterms.glade:996
@@ -14815,7 +15293,6 @@ msgstr "<b>Jangka Penagihan Baru</b>"
 #: gnucash/gtkbuilder/dialog-billterms.glade:1131
 #: gnucash/gtkbuilder/dialog-report.glade:796
 #: gnucash/gtkbuilder/dialog-tax-table.glade:461
-#, fuzzy
 msgid "_Name"
 msgstr "_Nama"
 
@@ -14828,57 +15305,51 @@ msgid "Expense Total"
 msgstr "Total Pengeluaran"
 
 #: gnucash/gtkbuilder/dialog-choose-owner.glade:7
-#, fuzzy
 msgid "Choose Owner Dialog"
-msgstr "Pemilik"
+msgstr "Dialog Pemilihan Pemilik"
 
 #: gnucash/gtkbuilder/dialog-commodities.glade:8
 #: gnucash/report/reports/standard/account-piecharts.scm:61
 msgid "Securities"
-msgstr ""
+msgstr "Sekuritas"
 
 #: gnucash/gtkbuilder/dialog-commodities.glade:27
-#, fuzzy
 msgid "<b>Securities</b>"
-msgstr "<b>Ruang Lingkup</b>"
+msgstr "<b>Sekuritas</b>"
 
 #: gnucash/gtkbuilder/dialog-commodities.glade:76
-#, fuzzy
 msgid "Show National Currencies"
-msgstr "Mata Uang"
+msgstr "Tampilkan Mata Uang Nasional"
 
 #: gnucash/gtkbuilder/dialog-commodities.glade:125
-#, fuzzy
 msgid "Add a new commodity."
-msgstr "komoditas"
+msgstr "Tambah komoditas baru."
 
 #: gnucash/gtkbuilder/dialog-commodities.glade:143
-#, fuzzy
 msgid "Remove the current commodity."
-msgstr "komoditas"
+msgstr "Buang komoditas saat ini."
 
 #: gnucash/gtkbuilder/dialog-commodities.glade:161
-#, fuzzy
 msgid "Edit the current commodity."
-msgstr "komoditas"
+msgstr "Sunting komoditas saat ini."
 
 #: gnucash/gtkbuilder/dialog-commodity.glade:19
 #: gnucash/gtkbuilder/dialog-price.glade:35
-#, fuzzy
 msgid "Dummy commodity Line"
-msgstr "komoditas"
+msgstr "Baris komoditas kosong"
 
 #: gnucash/gtkbuilder/dialog-commodity.glade:30
 #: gnucash/gtkbuilder/dialog-price.glade:46
-#, fuzzy
 msgid "Dummy namespace Line"
-msgstr "Namespace:"
+msgstr "Baris ruang nama kosong"
 
 #: gnucash/gtkbuilder/dialog-commodity.glade:129
 msgid ""
 "Enter the full name of the commodity. Example: Cisco Systems Inc., or Apple "
 "Computer, Inc."
 msgstr ""
+"Masukkan nama lengkap komoditas. Contoh: Cisco System Inc., atau Apple "
+"Computer, Inc."
 
 #: gnucash/gtkbuilder/dialog-commodity.glade:147
 msgid ""
@@ -14899,15 +15370,16 @@ msgstr ""
 "Anda bisa membiarkannya kosong."
 
 #: gnucash/gtkbuilder/dialog-commodity.glade:184
-#, fuzzy
 msgid "1 /"
-msgstr "|−1|"
+msgstr "1 /"
 
 #: gnucash/gtkbuilder/dialog-commodity.glade:200
 msgid ""
 "Enter the smallest fraction of the commodity which can be traded. For stocks "
 "which can only be traded in whole numbers, enter 1."
 msgstr ""
+"Masukkan fraksi terkecil komoditas yang bisa diperdagangkan. Untuk saham "
+"yang hanya dapat diperdagangkan dalam bilangan bulat, masukkan 1."
 
 #: gnucash/gtkbuilder/dialog-commodity.glade:224
 msgid "<b>Quote Source Information</b>"
@@ -14922,7 +15394,7 @@ msgid ""
 "Enter a display symbol. This can safely be left blank, in which case the "
 "ticker symbol or the currency ISO code will be used."
 msgstr ""
-"Masukkan simbol ditampilkan. Jika dibiarkan kosong, kode saham atau kode ISO "
+"Masukkan simbol tampilan. Jika dibiarkan kosong, kode saham atau kode ISO "
 "mata uang akan digunakan."
 
 #: gnucash/gtkbuilder/dialog-commodity.glade:340
@@ -14934,14 +15406,12 @@ msgid "_Display symbol"
 msgstr "Simbol _Ditampilkan"
 
 #: gnucash/gtkbuilder/dialog-commodity.glade:368
-#, fuzzy
 msgid "Time_zone"
-msgstr "Zona Waktu"
+msgstr "_Zona waktu"
 
 #: gnucash/gtkbuilder/dialog-commodity.glade:379
-#, fuzzy
 msgid "_Unknown"
-msgstr "<Tak diketahui>"
+msgstr "Tak diketah_ui"
 
 #: gnucash/gtkbuilder/dialog-commodity.glade:385
 msgid ""
@@ -14954,9 +15424,8 @@ msgstr ""
 "tunggal atau dari beberapa situs di Internet."
 
 #: gnucash/gtkbuilder/dialog-commodity.glade:400
-#, fuzzy
 msgid "_Multiple"
-msgstr "berganda"
+msgstr "_Multipel"
 
 #: gnucash/gtkbuilder/dialog-commodity.glade:406
 msgid ""
@@ -14969,9 +15438,8 @@ msgstr ""
 "mengambil informasi dari situs yang lain."
 
 #: gnucash/gtkbuilder/dialog-commodity.glade:421
-#, fuzzy
 msgid "Si_ngle"
-msgstr "_Sudut"
+msgstr "Tu_nggal"
 
 #: gnucash/gtkbuilder/dialog-commodity.glade:427
 msgid ""
@@ -14988,20 +15456,18 @@ msgid "_Get Online Quotes"
 msgstr "Dapatkan Har_ga Penawaran Daring"
 
 #: gnucash/gtkbuilder/dialog-commodity.glade:461
-#, fuzzy
 msgid "F_raction traded"
-msgstr "F_older"
+msgstr "F_raksi diperdagangkan"
 
 #: gnucash/gtkbuilder/dialog-commodity.glade:475
 msgid "ISIN, CUSI_P or other code"
-msgstr ""
+msgstr "ISIN, CUSI_P atau kode lain"
 
 #: gnucash/gtkbuilder/dialog-commodity.glade:505
 msgid "_Symbol/abbreviation"
 msgstr "_Simbol/singkatan"
 
 #: gnucash/gtkbuilder/dialog-commodity.glade:520
-#, fuzzy
 msgid "_Full name"
 msgstr "Nama _lengkap"
 
@@ -15010,14 +15476,12 @@ msgid "Warning: Finance::Quote not installed properly."
 msgstr "Peringatan: Finance::Quote tak terpasang dengan benar."
 
 #: gnucash/gtkbuilder/dialog-commodity.glade:638
-#, fuzzy
 msgid "Select security/currency "
-msgstr "Keamanan"
+msgstr "Pilih sekuritas/mata uang "
 
 #: gnucash/gtkbuilder/dialog-commodity.glade:716
-#, fuzzy
 msgid "Select user information here..."
-msgstr "<klik di sini untuk memilih tanggal>"
+msgstr "Pilih informasi pengguna di sini..."
 
 #: gnucash/gtkbuilder/dialog-customer.glade:185
 msgid ""
@@ -15030,15 +15494,13 @@ msgstr ""
 #: gnucash/gtkbuilder/dialog-customer.glade:213
 #: gnucash/gtkbuilder/dialog-employee.glade:197
 #: gnucash/gtkbuilder/dialog-vendor.glade:215
-#, fuzzy
 msgid "Identification"
-msgstr "Situs web ini menyajikan identifikasi milik situs web lain."
+msgstr "Identifikasi"
 
 #: gnucash/gtkbuilder/dialog-customer.glade:256
 #: gnucash/gtkbuilder/dialog-customer.glade:786
 #: gnucash/gtkbuilder/dialog-employee.glade:240
 #: gnucash/gtkbuilder/dialog-vendor.glade:258
-#, fuzzy
 msgid "Address"
 msgstr "Alamat"
 
@@ -15049,47 +15511,40 @@ msgstr "Alamat"
 #: gnucash/import-export/customer-import/dialog-customer-import-gui.c:137
 #: gnucash/report/reports/aging.scm:695
 #: gnucash/report/reports/support/taxinvoice.eguile.scm:187
-#, fuzzy
 msgid "Email"
 msgstr "Surel"
 
 #: gnucash/gtkbuilder/dialog-customer.glade:420
-#, fuzzy
 msgid "Billing Address"
-msgstr "persyaratan tagihan"
+msgstr "Alamat Penagihan"
 
 #: gnucash/gtkbuilder/dialog-customer.glade:537
 #: gnucash/import-export/bi-import/dialog-bi-import-gui.c:156
 #: gnucash/register/ledger-core/gncEntryLedgerModel.c:72
 #: gnucash/report/reports/standard/invoice.scm:98
 #: gnucash/report/reports/standard/invoice.scm:237
-#, fuzzy
 msgid "Discount"
-msgstr "diskon"
+msgstr "Diskon"
 
 #: gnucash/gtkbuilder/dialog-customer.glade:550
-#, fuzzy
 msgid "Credit Limit"
-msgstr "Kartu Kredit"
+msgstr "Batas Kredit"
 
 #: gnucash/gtkbuilder/dialog-customer.glade:563
 #: gnucash/gtkbuilder/dialog-vendor.glade:533
-#, fuzzy
 msgid "Tax Included"
-msgstr "kode pajak"
+msgstr "Termasuk Pajak"
 
 #: gnucash/gtkbuilder/dialog-customer.glade:576
 #: gnucash/gtkbuilder/dialog-vendor.glade:546
 #: gnucash/register/ledger-core/gncEntryLedgerModel.c:97
-#, fuzzy
 msgid "Tax Table"
-msgstr "kode pajak"
+msgstr "Tabel Pajak"
 
 #: gnucash/gtkbuilder/dialog-customer.glade:594
 #: gnucash/gtkbuilder/dialog-vendor.glade:616
-#, fuzzy
 msgid "Override the global Tax Table?"
-msgstr "Timpa rincian global repositori “%s”:"
+msgstr "Timpa Tabel Pajak global?"
 
 #: gnucash/gtkbuilder/dialog-customer.glade:718
 #: gnucash/gtkbuilder/dialog-customer.glade:740
@@ -15099,62 +15554,57 @@ msgstr "Timpa rincian global repositori “%s”:"
 #: gnucash/gtkbuilder/dialog-invoice.glade:1031
 #: gnucash/gtkbuilder/dialog-order.glade:310
 #: gnucash/gtkbuilder/dialog-order.glade:661
-#, fuzzy
 msgid "Billing Information"
-msgstr "persyaratan tagihan"
+msgstr "Informasi Tagihan"
 
 #: gnucash/gtkbuilder/dialog-customer.glade:950
-#, fuzzy
 msgid "Shipping Information"
-msgstr "Tidak Ada Informasi"
+msgstr "Informasi Pengiriman"
 
 #: gnucash/gtkbuilder/dialog-customer.glade:969
-#, fuzzy
 msgid "Shipping Address"
-msgstr "Ke Alama_t Ini"
+msgstr "Alamat Pengiriman"
 
 #. Title of dialog
 #: gnucash/gtkbuilder/dialog-customer-import-gui.glade:9
 msgid "Import customers or vendors from text file"
-msgstr ""
+msgstr "Impor pelanggan atau vendor dari berkas teks"
 
 #: gnucash/gtkbuilder/dialog-customer-import-gui.glade:126
 msgid "<b>1. Choose the file to import</b>"
-msgstr ""
+msgstr "<b>1. Pilih berkas untuk diimpor</b>"
 
 #: gnucash/gtkbuilder/dialog-customer-import-gui.glade:155
-#, fuzzy
 msgid "For importing customer lists."
-msgstr "Nasabah Kunci"
+msgstr "Untuk mengimpor daftar pelanggan."
 
 #: gnucash/gtkbuilder/dialog-customer-import-gui.glade:172
-#, fuzzy
 msgid "For importing vendor lists."
-msgstr "Mengimpor…"
+msgstr "Untuk mengimpor daftar vendor."
 
 #: gnucash/gtkbuilder/dialog-customer-import-gui.glade:190
 msgid "<b>2. Select Import Type</b>"
-msgstr ""
+msgstr "<b>2. Pilih Tipe Impor</b>"
 
 #: gnucash/gtkbuilder/dialog-customer-import-gui.glade:308
 msgid "<b>3. Select import options</b>"
-msgstr ""
+msgstr "<b>3. Pilih opsi impor</b>"
 
 #: gnucash/gtkbuilder/dialog-customer-import-gui.glade:349
-#, fuzzy
 msgid "<b>4. Preview</b>"
-msgstr "<b>Ruang Lingkup</b>"
+msgstr "<b>4. Pratinjau</b>"
 
 #: gnucash/gtkbuilder/dialog-custom-report.glade:51
 msgid "Exit the saved report configurations dialog"
-msgstr ""
+msgstr "Keluar dari dialog konfigurasi laporan tersimpan"
 
 #: gnucash/gtkbuilder/dialog-custom-report.glade:99
-#, fuzzy
 msgid ""
 "\n"
 "Currently you have no saved reports.\n"
-msgstr "Anda telah merubah tugas ini, tapi belum disimpan."
+msgstr ""
+"\n"
+"Saat ini Anda tidak memiliki laporan tersimpan.\n"
 
 #: gnucash/gtkbuilder/dialog-custom-report.glade:113
 msgid ""
@@ -15164,88 +15614,88 @@ msgid ""
 "Configuration\" from\n"
 "the Reports menu or tool bar."
 msgstr ""
+"Konfigurasi laporan tersimpan dibuat dengan cara membuka sebuah laporan dari "
+"menu Laporan,\n"
+"mengubah opsi laporan sesuai keinginan Anda lalu memilih \"Simpan "
+"Konfigurasi Laporan\" dari\n"
+"menu Laporan atau bilah alat."
 
 #: gnucash/gtkbuilder/dialog-date-close.glade:7
 #: gnucash/gtkbuilder/dialog-date-close.glade:263
-#, fuzzy
 msgid "Question"
 msgstr "Pertanyaan"
 
 #: gnucash/gtkbuilder/dialog-doclink.glade:49
 msgid "Change Linked Document path head"
-msgstr ""
+msgstr "Ubah tajuk path Dokumen Tertaut"
 
 #: gnucash/gtkbuilder/dialog-doclink.glade:85
 msgid ""
 "Existing relative file path links will be converted to absolute ones by "
 "combining them with the existing path head unless box unticked."
 msgstr ""
+"Tautan path relatif berkas yang sudah ada akan dikonversi ke tautan path "
+"absolut dengan menggabungkannya dengan tajuk path, kecuali jika kotak tidak "
+"dicentang."
 
 #: gnucash/gtkbuilder/dialog-doclink.glade:140
 msgid ""
 "Existing absolute file path links will be converted to relative ones by "
 "comparing them to the new path head unless box unticked."
 msgstr ""
+"Tautan path absolut berkas yang sudah ada akan dikonversi ke tautan path "
+"relatif dengan membandingkannya ke tajuk path yang baru, kecuali jika kotak "
+"tidak dicentang."
 
 #: gnucash/gtkbuilder/dialog-doclink.glade:178
 msgid "Note: Only Document Links that are not read-only will be changed."
-msgstr ""
+msgstr "Catatan: Hanya Tautan Dokumen yang bukan hanya-baca yang bisa diubah."
 
 #: gnucash/gtkbuilder/dialog-doclink.glade:279
-#, fuzzy
 msgid "Linked _File"
-msgstr "_Tertaut"
+msgstr "_Berkas Tertaut"
 
 #: gnucash/gtkbuilder/dialog-doclink.glade:295
-#, fuzzy
 msgid "Linked _Location"
-msgstr "Lokasi"
+msgstr "_Lokasi Tertaut"
 
 #: gnucash/gtkbuilder/dialog-doclink.glade:380
 msgid "Enter URL like http://www.gnucash.org"
-msgstr ""
+msgstr "Masukkan URL seperti http://www.gnucash.org"
 
 #: gnucash/gtkbuilder/dialog-doclink.glade:425
 msgid "Location does not start with a valid scheme"
-msgstr ""
+msgstr "Lokasi tidak dimulai dengan skema yang valid"
 
 #: gnucash/gtkbuilder/dialog-doclink.glade:504
-#, fuzzy
 msgid "Reload and Locate Linked Documents"
-msgstr "Temukan _Penunjuk"
+msgstr "Muat Ulang dan Temukan Dokumen Tertaut"
 
 #: gnucash/gtkbuilder/dialog-doclink.glade:518
-#, fuzzy
 msgid "_Reload"
 msgstr "_Muat Ulang"
 
 #: gnucash/gtkbuilder/dialog-doclink.glade:532
-#, fuzzy
 msgid "_Locate Linked Documents"
-msgstr "_Tertaut"
+msgstr "_Temukan Dokumen Tertaut"
 
 #: gnucash/gtkbuilder/dialog-doclink.glade:572
-#, fuzzy
 msgid "All Linked Documents"
-msgstr "_Tertaut"
+msgstr "Semu_a Dokumen Tertaut"
 
 #: gnucash/gtkbuilder/dialog-doclink.glade:626
-#, fuzzy
 msgid "Id"
 msgstr "Id"
 
 #: gnucash/gtkbuilder/dialog-doclink.glade:654
-#, fuzzy
 msgid "Linked Document"
-msgstr "_Tertaut"
+msgstr "Dokumen Tertaut"
 
 #: gnucash/gtkbuilder/dialog-doclink.glade:671
-#, fuzzy
 msgid "Available"
-msgstr "Tak Tersedia"
+msgstr "Tersedia"
 
 #: gnucash/gtkbuilder/dialog-doclink.glade:686
-#, fuzzy
 msgid "Relative"
 msgstr "Relatif"
 
@@ -15257,6 +15707,9 @@ msgid ""
 "Double click on the entry in the Available column to modify the document "
 "link."
 msgstr ""
+"Klik ganda pada entri di kolom Deskripsi untuk melompat ke Transaksi.\n"
+"Klik ganda pada entri di kolom Tautan untuk membuka Dokumen Tertaut.\n"
+"Klik ganda pada entri di kolom Tersedia untuk memodifikasi tautan dokumen."
 
 #: gnucash/gtkbuilder/dialog-employee.glade:166
 msgid ""
@@ -15268,90 +15721,75 @@ msgstr ""
 
 #: gnucash/gtkbuilder/dialog-employee.glade:422
 #: gnucash/gtkbuilder/dialog-vendor.glade:416
-#, fuzzy
 msgid "Payment Address"
-msgstr "pembayaran"
+msgstr "Alamat Pembayaran"
 
 #: gnucash/gtkbuilder/dialog-employee.glade:456
-#, fuzzy
 msgid "Language"
 msgstr "Bahasa"
 
 #: gnucash/gtkbuilder/dialog-employee.glade:494
-#, fuzzy
 msgid "Interface"
 msgstr "Antarmuka"
 
 #: gnucash/gtkbuilder/dialog-employee.glade:584
-#, fuzzy
 msgid "Default Hours per Day"
-msgstr "Sekali sehari"
+msgstr "Jam per Hari Baku"
 
 #: gnucash/gtkbuilder/dialog-employee.glade:597
-#, fuzzy
 msgid "Default Rate"
-msgstr "Laju frame baku"
+msgstr "Tarif Baku"
 
 #: gnucash/gtkbuilder/dialog-employee.glade:716
-#, fuzzy
 msgid "Access Control List"
-msgstr "Gagal mendapatkan daftar kontrol akses"
+msgstr "Daftar Kendali Akses"
 
 #: gnucash/gtkbuilder/dialog-employee.glade:735
-#, fuzzy
 msgid "Access Control"
-msgstr "Gagal mendapatkan daftar kontrol akses"
+msgstr "Kendali Akses"
 
 #: gnucash/gtkbuilder/dialog-file-access.glade:72
-#, fuzzy
 msgid "<b>Data Format</b>"
-msgstr "<b>Ruang Lingkup</b>"
+msgstr "<b>Format Data</b>"
 
 #: gnucash/gtkbuilder/dialog-file-access.glade:98
-#, fuzzy
 msgid "Open _Read-Only"
-msgstr "[Hanya Baca]"
+msgstr "Buka _Hanya-Baca"
 
 #: gnucash/gtkbuilder/dialog-file-access.glade:140
-#, fuzzy
 msgid "<b>File</b>"
-msgstr "<b>Ruang Lingkup</b>"
+msgstr "<b>Berkas</b>"
 
 #: gnucash/gtkbuilder/dialog-file-access.glade:170
-#, fuzzy
 msgid "Host"
 msgstr "Host"
 
 #: gnucash/gtkbuilder/dialog-file-access.glade:183
-#, fuzzy
 msgid "Database"
-msgstr "basis data"
+msgstr "Basis Data"
 
 #: gnucash/gtkbuilder/dialog-file-access.glade:209
-#, fuzzy
 msgid "Password"
 msgstr "Kata Sandi"
 
 #: gnucash/gtkbuilder/dialog-file-access.glade:280
-#, fuzzy
 msgid "<b>Database Connection</b>"
-msgstr "<b>Data Pencarian:</b>"
+msgstr "<b>Koneksi Basis Data</b>"
 
 #: gnucash/gtkbuilder/dialog-fincalc.glade:12
 #: gnucash/gtkbuilder/dialog-fincalc.glade:53
 msgid "Annual"
-msgstr ""
+msgstr "Tahunan"
 
 #: gnucash/gtkbuilder/dialog-fincalc.glade:15
 #: gnucash/gtkbuilder/dialog-fincalc.glade:56
-#, fuzzy
 msgid "Semi-annual"
-msgstr "Agak Terkembang"
+msgstr "Setengah Tahunan"
 
 #: gnucash/gtkbuilder/dialog-fincalc.glade:18
 #: gnucash/gtkbuilder/dialog-fincalc.glade:59
 msgid "Tri-annual"
-msgstr ""
+msgstr "Tiga Tahunan"
 
 #: gnucash/gtkbuilder/dialog-fincalc.glade:21
 #: gnucash/gtkbuilder/dialog-fincalc.glade:62
@@ -15361,9 +15799,8 @@ msgstr "Per Kuartal"
 
 #: gnucash/gtkbuilder/dialog-fincalc.glade:24
 #: gnucash/gtkbuilder/dialog-fincalc.glade:65
-#, fuzzy
 msgid "Bi-monthly"
-msgstr "Bulanan"
+msgstr "Dua Bulanan"
 
 #: gnucash/gtkbuilder/dialog-fincalc.glade:27
 #: gnucash/gtkbuilder/dialog-fincalc.glade:68
@@ -15374,22 +15811,19 @@ msgstr "Bulanan"
 #: gnucash/report/reports/standard/category-barchart.scm:123
 #: gnucash/report/trep-engine.scm:314 libgnucash/engine/Recurrence.c:761
 #: libgnucash/engine/Recurrence.c:775
-#, fuzzy
 msgid "Monthly"
 msgstr "Bulanan"
 
 #: gnucash/gtkbuilder/dialog-fincalc.glade:30
 #: gnucash/gtkbuilder/dialog-fincalc.glade:71
 #: libgnucash/engine/Recurrence.c:712
-#, fuzzy
 msgid "Semi-monthly"
-msgstr "Bulanan"
+msgstr "Setengah Bulanan"
 
 #: gnucash/gtkbuilder/dialog-fincalc.glade:33
 #: gnucash/gtkbuilder/dialog-fincalc.glade:74
-#, fuzzy
 msgid "Bi-weekly"
-msgstr "Mingguan"
+msgstr "Dua Mingguan"
 
 #: gnucash/gtkbuilder/dialog-fincalc.glade:36
 #: gnucash/gtkbuilder/dialog-fincalc.glade:77
@@ -15399,59 +15833,46 @@ msgstr "Mingguan"
 #: gnucash/report/reports/standard/account-piecharts.scm:126
 #: gnucash/report/reports/standard/category-barchart.scm:126
 #: gnucash/report/trep-engine.scm:305 libgnucash/engine/Recurrence.c:623
-#, fuzzy
 msgid "Weekly"
 msgstr "Mingguan"
 
 #: gnucash/gtkbuilder/dialog-fincalc.glade:39
 #: gnucash/gtkbuilder/dialog-fincalc.glade:80
-#, fuzzy
 msgid "Daily (360)"
-msgstr "Harian"
+msgstr "Harian (360)"
 
 #: gnucash/gtkbuilder/dialog-fincalc.glade:42
 #: gnucash/gtkbuilder/dialog-fincalc.glade:83
-#, fuzzy
 msgid "Daily (365)"
-msgstr "Harian"
+msgstr "Harian (365)"
 
 #: gnucash/gtkbuilder/dialog-fincalc.glade:90
-#, fuzzy
 msgid "Loan Repayment Calculator"
-msgstr "Kalkulator"
+msgstr "Kalkulator Pembayaran Angsuran Pinjaman"
 
 #: gnucash/gtkbuilder/dialog-fincalc.glade:136
-#, fuzzy
 msgid "_Schedule"
 msgstr "_Jadwal"
 
 #: gnucash/gtkbuilder/dialog-fincalc.glade:171
-#, fuzzy
 msgid "<b>Calculations</b>"
-msgstr "<b>Ruang Lingkup</b>"
+msgstr "<b>Kalkulasi</b>"
 
 #: gnucash/gtkbuilder/dialog-fincalc.glade:191
-#, fuzzy
 msgid "Payment periods"
-msgstr ""
-"Menghitung nilai kini dari suatu investasi berdasar pada sejumlah pembayaran "
-"yang sama yang diberi potongan pada suatu suku bunga periodik atas sejumlah "
-"perioda pembayaran dalam jangka waktu. "
+msgstr "Periode pembayaran"
 
 #: gnucash/gtkbuilder/dialog-fincalc.glade:205
-#, fuzzy
 msgid "Interest rate"
-msgstr "Suku Bunga Berkala"
+msgstr "Suku bunga"
 
 #: gnucash/gtkbuilder/dialog-fincalc.glade:218
-#, fuzzy
 msgid "Present value"
-msgstr "Nilai Sekarang"
+msgstr "Nilai sekarang"
 
 #: gnucash/gtkbuilder/dialog-fincalc.glade:231
-#, fuzzy
 msgid "Periodic payment"
-msgstr "Pembayaran Berkala"
+msgstr "Pembayaran berkala"
 
 #: gnucash/gtkbuilder/dialog-fincalc.glade:244
 msgid "Future value"
@@ -15462,105 +15883,86 @@ msgstr "Nilai yang akan datang"
 #: gnucash/gtkbuilder/dialog-fincalc.glade:288
 #: gnucash/gtkbuilder/dialog-fincalc.glade:303
 #: gnucash/gtkbuilder/dialog-fincalc.glade:318
-#, fuzzy
 msgid "Clear the entry."
-msgstr "Bersihkan"
+msgstr "Bersihkan entri."
 
 #: gnucash/gtkbuilder/dialog-fincalc.glade:331
-#, fuzzy
 msgid "Precision"
 msgstr "Presisi"
 
 #: gnucash/gtkbuilder/dialog-fincalc.glade:361
-#, fuzzy
 msgid "Calculate"
-msgstr "Tidak bisa menghitung digest"
+msgstr "Hitung"
 
 #: gnucash/gtkbuilder/dialog-fincalc.glade:367
 msgid "Recalculate the (single) blank entry in the above fields."
 msgstr "Hitung ulang entri kosong (tunggal) di kolom di atas."
 
 #: gnucash/gtkbuilder/dialog-fincalc.glade:503
-#, fuzzy
 msgid "<b>Payment Options</b>"
-msgstr "<b>Ruang Lingkup</b>"
+msgstr "<b>Opsi Pembayaran</b>"
 
 #: gnucash/gtkbuilder/dialog-fincalc.glade:523
-#, fuzzy
 msgid "Payment Total"
-msgstr "total"
+msgstr "Total Pembayaran"
 
 #: gnucash/gtkbuilder/dialog-fincalc.glade:553
-#, fuzzy
 msgid "Discrete"
 msgstr "Diskret"
 
 #: gnucash/gtkbuilder/dialog-fincalc.glade:570
-#, fuzzy
 msgid "Continuous"
 msgstr "Berkelanjutan"
 
 #: gnucash/gtkbuilder/dialog-fincalc.glade:586
-#, fuzzy
 msgid "Beginning"
-msgstr "di awal"
+msgstr "Awal"
 
 #: gnucash/gtkbuilder/dialog-fincalc.glade:622
-#, fuzzy
 msgid "<b>Compounding</b>"
-msgstr "<b>Ruang Lingkup</b>"
+msgstr "<b>Pemajemukan</b>"
 
 #: gnucash/gtkbuilder/dialog-fincalc.glade:637
-#, fuzzy
 msgid "<b>Period</b>"
-msgstr "<b>Ruang Lingkup</b>"
+msgstr "<b>Periode</b>"
 
 #: gnucash/gtkbuilder/dialog-fincalc.glade:765
-#, fuzzy
 msgid "When paid"
-msgstr "Kapan"
+msgstr "Ketika dibayar"
 
 #: gnucash/gtkbuilder/dialog-find-account.glade:25
-#, fuzzy
 msgid "Search the Account List"
-msgstr "Pencarian Semua Akun"
+msgstr "Cari Daftar Akun"
 
 #: gnucash/gtkbuilder/dialog-find-account.glade:38
-#, fuzzy
 msgid "Close on Jump"
-msgstr "Lompat ke.."
+msgstr "Tutup saat Lompat"
 
 #: gnucash/gtkbuilder/dialog-find-account.glade:54
-#, fuzzy
 msgid "_Jump To"
-msgstr "_Lompat ke"
+msgstr "_Lompat Ke"
 
 #: gnucash/gtkbuilder/dialog-find-account.glade:95
-#, fuzzy
 msgid "<b>Search the Account List</b>"
-msgstr "<big><b>Perbarui Data Pencarian</b></big>"
+msgstr "<b>Cari Daftar Akun</b>"
 
 #: gnucash/gtkbuilder/dialog-find-account.glade:112
-#, fuzzy
 msgid "Search from Root"
-msgstr "root"
+msgstr "Cari dari Akar"
 
 #: gnucash/gtkbuilder/dialog-find-account.glade:127
-#, fuzzy
 msgid "Search from Sub Account"
-msgstr "Pencarian Akun"
+msgstr "Cari dari Sub-Akun"
 
 #: gnucash/gtkbuilder/dialog-find-account.glade:163
-#, fuzzy
 msgid "Account Full Name"
-msgstr "_Nama Lengkap..."
+msgstr "Nama Lengkap Akun"
 
 #: gnucash/gtkbuilder/dialog-find-account.glade:187
 msgid "Case insensitive searching is available on 'Account Full Name'."
-msgstr ""
+msgstr "Pencarian abaikan huruf besar/kecil tersedia pada 'Nama Lengkap Akun'."
 
 #: gnucash/gtkbuilder/dialog-find-account.glade:230
-#, fuzzy
 msgid "_Search"
 msgstr "_Cari"
 
@@ -15570,121 +15972,110 @@ msgid ""
 "Tree,\n"
 "if account should not be shown, this will be temporarily overridden."
 msgstr ""
+"Pilih sebuah baris dan kemudian tekan 'melompat ke' untuk melompat ke akun "
+"di Pohon Akun,\n"
+"jika akun tidak boleh ditampilkan, ini akan ditimpa sementara."
 
 #: gnucash/gtkbuilder/dialog-imap-editor.glade:35
-#, fuzzy
 msgid "Import Map Editor"
-msgstr "Impor peta"
+msgstr "Penyunting Peta Impor"
 
 #: gnucash/gtkbuilder/dialog-imap-editor.glade:52
-#, fuzzy
 msgid "_Remove Invalid Mappings"
-msgstr "Pemetaan awal mula dinonaktifkan."
+msgstr "Buang _Pemetaan Tidak Valid"
 
 #: gnucash/gtkbuilder/dialog-imap-editor.glade:106
 msgid "<b>What type of information to display?</b>"
-msgstr ""
+msgstr "<b>Tipe informasi apa yang akan ditampilkan?</b>"
 
 #: gnucash/gtkbuilder/dialog-imap-editor.glade:139
-#, fuzzy
 msgid "Non-Bayesian"
-msgstr "Bukan Peserta"
+msgstr "Non-Bayesian"
 
 #: gnucash/gtkbuilder/dialog-imap-editor.glade:193
-#, fuzzy
 msgid "Source Account Name"
-msgstr "Nama sumber"
+msgstr "Nama Akun Sumber"
 
 #: gnucash/gtkbuilder/dialog-imap-editor.glade:205
-#, fuzzy
 msgid "Based On"
-msgstr "Berdasarkan pada BSD Robots klasik"
+msgstr "Berdasar Pada"
 
 #: gnucash/gtkbuilder/dialog-imap-editor.glade:219
-#, fuzzy
 msgid "Match String"
-msgstr "(%s) membutuhkan tipe string yang cocok"
+msgstr "String Pencocokan"
 
 #: gnucash/gtkbuilder/dialog-imap-editor.glade:233
-#, fuzzy
 msgid "Mapped to Account Name"
-msgstr "nama akun"
+msgstr "Dipetakan ke Nama Akun"
 
 #: gnucash/gtkbuilder/dialog-imap-editor.glade:247
-#, fuzzy
 msgid "Count of Match String Usage"
-msgstr "Cocokkan hanya string lengkap"
+msgstr "Jumlah Penggunaan String Pencocokan"
 
 #: gnucash/gtkbuilder/dialog-imap-editor.glade:290
 msgid ""
 "Filter will be applied to 'Match String' and 'Mapped to Account Name' "
 "fields, case sensitive."
 msgstr ""
+"Filter akan diterapkan untuk bidang 'String Pencocokan' dan 'Dipetakan ke "
+"Nama Akun', bedakan huruf besar/kecil."
 
 #: gnucash/gtkbuilder/dialog-imap-editor.glade:335
-#, fuzzy
 msgid "_Filter"
-msgstr "_Penyaring"
+msgstr "_Filter"
 
 #: gnucash/gtkbuilder/dialog-imap-editor.glade:349
-#, fuzzy
 msgid "_Expand All"
-msgstr "Perluas Semu_a"
+msgstr "_Ekspansi Semua"
 
 #: gnucash/gtkbuilder/dialog-imap-editor.glade:363
-#, fuzzy
 msgid "Collapse _All"
-msgstr "_Kuncupkan Semua"
+msgstr "Kolaps Semu_a"
 
 #: gnucash/gtkbuilder/dialog-imap-editor.glade:399
 msgid ""
 "Multiple rows can be selected and then deleted by pressing the delete button."
 msgstr ""
+"Beberapa baris dapat dipilih dan kemudian dihapus dengan menekan tombol "
+"delete."
 
 #: gnucash/gtkbuilder/dialog-import.glade:86
 msgid "Please select or create an appropriate GnuCash account for:"
-msgstr ""
+msgstr "Silakan pilih atau buat akun GnuCash yang sesuai untuk:"
 
 #: gnucash/gtkbuilder/dialog-import.glade:99
-#, fuzzy
 msgid "Online account ID here..."
-msgstr "Akun ini dibuat melalui layanan Akun Daring."
+msgstr "ID akun daring di sini..."
 
 #: gnucash/gtkbuilder/dialog-import.glade:173
 #: gnucash/gtkbuilder/dialog-import.glade:281
-#, fuzzy
 msgid "Choose a format"
-msgstr ""
-"Pilih format untuk angka, tanggal, dan mata uang. Perubahan diterapkan pada "
-"log masuk selanjutnya."
+msgstr "Pilih format"
 
 #: gnucash/gtkbuilder/dialog-import.glade:245
 #: gnucash/gtkbuilder/gnc-date-format.glade:193
 #: gnucash/report/reports/standard/income-gst-statement.scm:42
-#, fuzzy
 msgid "Format"
 msgstr "Format"
 
 #: gnucash/gtkbuilder/dialog-import.glade:302
-#, fuzzy
 msgid "Select matching existing transaction"
-msgstr "Pilih semua node yang cocok"
+msgstr "Pilih pencocokan transaksi yang ada"
 
 #. Dialog Select matching transactions
 #: gnucash/gtkbuilder/dialog-import.glade:319
-#, fuzzy
 msgid "Show Reconciled"
-msgstr "status transaksi: rekonsiliasi"
+msgstr "Tampilkan Direkonsiliasi"
 
 #. Dialog Select matching transactions
 #: gnucash/gtkbuilder/dialog-import.glade:379
 msgid "Imported transaction's first split"
-msgstr ""
+msgstr "Split pertama transaksi yang diimpor"
 
 #. Dialog Select matching transactions
 #: gnucash/gtkbuilder/dialog-import.glade:414
 msgid "Potential splits matching the selected transaction"
-msgstr ""
+msgstr "Split potensial yang cocok dengan transaksi terpilih"
 
 #: gnucash/gtkbuilder/dialog-import.glade:463
 msgid ""
@@ -15703,91 +16094,88 @@ msgid ""
 "This transaction probably requires your intervention or it will be imported "
 "unbalanced."
 msgstr ""
+"Transaksi ini mungkin memerlukan campur tangan Anda atau akan diimpor tak "
+"seimbang."
 
 #: gnucash/gtkbuilder/dialog-import.glade:469
 msgid ""
 "This transaction will be imported balanced (you may still want to double "
 "check the match or destination account)."
 msgstr ""
+"Transaksi ini akan diimpor seimbang (Anda mungkin masih ingin memeriksa "
+"kembali pencocokan atau akun tujuan)."
 
 #: gnucash/gtkbuilder/dialog-import.glade:472
 msgid "This transaction requires your intervention or it will NOT be imported."
-msgstr ""
+msgstr "Transaksi ini memerlukan campur tangan Anda atau TIDAK akan diimpor."
 
 #: gnucash/gtkbuilder/dialog-import.glade:475
 msgid ""
 "Double click on the transaction to either change the matching transaction in "
 "GnuCash or the destination account of the auto-balance split (if required)."
 msgstr ""
+"Klik dua kali pada transaksi untuk mengubah transaksi yang cocok di GnuCash "
+"atau akun tujuan split seimbang-otomatis (jika diperlukan)."
 
 #: gnucash/gtkbuilder/dialog-import.glade:480
-#, fuzzy
 msgid "Transaction List Help"
-msgstr "transaksi"
+msgstr "Bantuan Daftar Transaksi"
 
 #: gnucash/gtkbuilder/dialog-import.glade:529
-#, fuzzy
 msgid "<b>Colors</b>"
 msgstr "<b>Warna</b>"
 
 #: gnucash/gtkbuilder/dialog-import.glade:642
-#: gnucash/gtkbuilder/dialog-preferences.glade:2282
-#, fuzzy
+#: gnucash/gtkbuilder/dialog-preferences.glade:2399
 msgid "<b>Actions</b>"
-msgstr ""
-"Terdapat pula sebuah <b>menu aksi</b> yang baru yang memungkinkan Anda "
-"memindah dan mengubah ukuran jendela dengan cepat, meletakkannya di atas "
-"atau di bawah jendela yang lain, atau menampilkannya secara layar penuh."
+msgstr "<b>Aksi</b>"
 
 #: gnucash/gtkbuilder/dialog-import.glade:654
 msgid "\"A\""
-msgstr ""
+msgstr "\"A\""
 
 #: gnucash/gtkbuilder/dialog-import.glade:665
-#, fuzzy
 msgid "\"U+C\""
-msgstr "U"
+msgstr "\"U+C\""
 
 #: gnucash/gtkbuilder/dialog-import.glade:676
-#, fuzzy
 msgid "\"C\""
-msgstr "C++"
+msgstr "\"C\""
 
 #: gnucash/gtkbuilder/dialog-import.glade:688
-#, fuzzy
 msgid "Select \"A\" to add the transaction as new."
-msgstr "Pilih Folder untuk Ditambah"
+msgstr "Pilih \"A\" untuk menambahkan transaksi sebagai baru."
 
 #: gnucash/gtkbuilder/dialog-import.glade:700
 msgid ""
 "Select \"U+C\" to update a matching transaction and mark it as cleared (c)."
 msgstr ""
+"Pilih \"U+C\" untuk memperbarui transaksi yang cocok dan menandainya sebagai "
+"klir (c)."
 
 #: gnucash/gtkbuilder/dialog-import.glade:712
 msgid "Select \"C\" to mark a matching transaction as cleared (c)."
-msgstr ""
+msgstr "Pilih \"C\" untuk menandai transaksi yang cocok sebagai klir (c)."
 
 #: gnucash/gtkbuilder/dialog-import.glade:724
 msgid "Select neither to skip the transaction (it won't be imported at all)."
 msgstr ""
+"Jangan pilih satupun untuk melewatkan transaksi (tidak akan diimpor sama "
+"sekali)."
 
 #: gnucash/gtkbuilder/dialog-import.glade:735
-#, fuzzy
 msgid "(none)"
-msgstr "(nihil)"
+msgstr "(tidak ada)"
 
 #: gnucash/gtkbuilder/dialog-import.glade:782
-#, fuzzy
 msgid "Red"
 msgstr "Merah"
 
 #: gnucash/gtkbuilder/dialog-import.glade:799
-#, fuzzy
 msgid "Yellow"
 msgstr "Kuning"
 
 #: gnucash/gtkbuilder/dialog-import.glade:816
-#, fuzzy
 msgid "Green"
 msgstr "Hijau"
 
@@ -15795,25 +16183,28 @@ msgstr "Hijau"
 msgid ""
 "List of downloaded transactions (source split and matched information shown)"
 msgstr ""
+"Daftar transaksi yang diunduh (pemisahan sumber dan informasi yang cocok "
+"ditampilkan)"
 
 #: gnucash/gtkbuilder/dialog-import.glade:929
-#, fuzzy
-msgid "Show the _Account column"
-msgstr "kolom"
+msgid "Show _Account column"
+msgstr "Tampilkan kolom _Akun"
 
 #: gnucash/gtkbuilder/dialog-import.glade:945
-#, fuzzy
+msgid "Show _Memo column"
+msgstr "Tampilkan kolom _Memo"
+
+#: gnucash/gtkbuilder/dialog-import.glade:961
 msgid "Show _matched information"
-msgstr "Tampilkan informasi ekstra"
+msgstr "Tampilkan infor_masi yang cocok"
 
-#: gnucash/gtkbuilder/dialog-import.glade:960
-#, fuzzy
+#: gnucash/gtkbuilder/dialog-import.glade:976
 msgid "Reconcile after match"
-msgstr "Cocok"
+msgstr "Rekonsiliasi setelah pencocokan"
 
-#: gnucash/gtkbuilder/dialog-import.glade:983
+#: gnucash/gtkbuilder/dialog-import.glade:999
 msgid "Generic import transaction matcher"
-msgstr ""
+msgstr "Pencocokan umum transaksi impor"
 
 #: gnucash/gtkbuilder/dialog-invoice.glade:119
 msgid "Posted Account"
@@ -15834,14 +16225,12 @@ msgstr "Buka Tautan Dokumen"
 
 #: gnucash/gtkbuilder/dialog-invoice.glade:535
 #: gnucash/gtkbuilder/dialog-invoice.glade:1113
-#, fuzzy
 msgid "Default Chargeback Project"
-msgstr "Baku: "
+msgstr "Proyek Tagihan Balik Baku"
 
 #: gnucash/gtkbuilder/dialog-invoice.glade:562
-#, fuzzy
 msgid "Additional to Card"
-msgstr "Fungsi Tambahan"
+msgstr "Tambahan ke Kartu"
 
 #: gnucash/gtkbuilder/dialog-invoice.glade:591
 msgid "Extra Payments"
@@ -15910,16 +16299,17 @@ msgstr "Lot _Baru"
 #: gnucash/gtkbuilder/dialog-lot-viewer.glade:40
 #, fuzzy
 msgid "Scrub _Account"
-msgstr "_Untuk Akun:"
+msgstr "scrub _Account"
 
 #: gnucash/gtkbuilder/dialog-lot-viewer.glade:55
+#, fuzzy
 msgid "_Scrub"
-msgstr ""
+msgstr "_Menggosok"
 
 #: gnucash/gtkbuilder/dialog-lot-viewer.glade:61
 #, fuzzy
 msgid "Scrub the highlighted lot"
-msgstr "Lot"
+msgstr "Scrub banyak disorot"
 
 #: gnucash/gtkbuilder/dialog-lot-viewer.glade:78
 msgid "Delete the highlighted lot"
@@ -15952,12 +16342,11 @@ msgstr "Tampilkan hanya lot terbuka"
 #: gnucash/gtkbuilder/dialog-lot-viewer.glade:300
 #, fuzzy
 msgid "<b>Splits _free</b>"
-msgstr "<b>Ruang Lingkup</b>"
+msgstr "<B> Splits _free </ b>"
 
 #: gnucash/gtkbuilder/dialog-lot-viewer.glade:355
-#, fuzzy
 msgid "<b>Splits _in lot</b>"
-msgstr "<b>Ruang Lingkup</b>"
+msgstr "<b>Spl_it dalam lot</b>"
 
 #: gnucash/gtkbuilder/dialog-lot-viewer.glade:392
 msgid ">>"
@@ -16076,7 +16465,7 @@ msgstr "Perusahaan yang berasosiasi dengan pembayaran ini."
 
 #: gnucash/gtkbuilder/dialog-payment.glade:167
 msgid "Partner"
-msgstr ""
+msgstr "Pasangan"
 
 #: gnucash/gtkbuilder/dialog-payment.glade:204
 msgid "Post To"
@@ -16126,7 +16515,7 @@ msgstr "Pengembalian Dana"
 #: gnucash/gtkbuilder/dialog-payment.glade:614
 #: gnucash/gtkbuilder/dialog-print-check.glade:299
 msgid "Print Check"
-msgstr ""
+msgstr "Cetak Cek"
 
 #: gnucash/gtkbuilder/dialog-payment.glade:631
 msgid "(USD)"
@@ -16178,432 +16567,444 @@ msgstr "2013-07-31"
 #: gnucash/import-export/csv-imp/gnc-import-price.cpp:59
 #: gnucash/import-export/csv-imp/gnc-import-tx.cpp:56
 msgid "Locale"
+msgstr "Lokal"
+
+#: gnucash/gtkbuilder/dialog-preferences.glade:133
+msgid "_Reset"
+msgstr "_Setel Ulang"
+
+#: gnucash/gtkbuilder/dialog-preferences.glade:178
+#: gnucash/gtkbuilder/dialog-preferences.glade:579
+msgid "<b>Separator Character</b>"
+msgstr "<b>Karakter Pemisah</b>"
+
+#: gnucash/gtkbuilder/dialog-preferences.glade:204
+msgid ""
+"Press 'Reset' to use the original account separator and close the preference "
+"window\n"
+"Press 'Close' to return to the preference window\n"
 msgstr ""
+"Tekan 'Setel Ulang' untuk menggunakan pemisah akun asli dan menutup jendela "
+"preferensi\n"
+"Tekan 'Tutup' untuk kembali ke jendela preferensi\n"
 
-#: gnucash/gtkbuilder/dialog-preferences.glade:125
+#: gnucash/gtkbuilder/dialog-preferences.glade:240
 msgid "GnuCash Preferences"
 msgstr "Preferensi GnuCash"
 
-#: gnucash/gtkbuilder/dialog-preferences.glade:198
+#: gnucash/gtkbuilder/dialog-preferences.glade:314
 msgid "<b>Summarybar Content</b>"
 msgstr "<b>Isi Bilah Ikhtisar</b>"
 
-#: gnucash/gtkbuilder/dialog-preferences.glade:208
+#: gnucash/gtkbuilder/dialog-preferences.glade:324
 msgid "Include _grand total"
-msgstr ""
+msgstr "Sertakan total _keseluruhan"
 
-#: gnucash/gtkbuilder/dialog-preferences.glade:214
+#: gnucash/gtkbuilder/dialog-preferences.glade:330
 msgid ""
 "Show a grand total of all accounts converted to the default report currency."
 msgstr ""
+"Tampilkan total keseluruhan untuk semua akun yang dikonversikan ke mata uang "
+"laporan baku."
 
-#: gnucash/gtkbuilder/dialog-preferences.glade:226
+#: gnucash/gtkbuilder/dialog-preferences.glade:342
 msgid "Include _non-currency totals"
-msgstr ""
+msgstr "Sertakan total yang buka_n mata uang"
 
-#: gnucash/gtkbuilder/dialog-preferences.glade:232
+#: gnucash/gtkbuilder/dialog-preferences.glade:348
 msgid ""
 "If checked, non-currency commodities will be shown in the summary bar. If "
 "clear, only currencies will be shown."
 msgstr ""
+"Jika dicentang, komoditas yang bukan mata uang akan ditampilkan di bilah "
+"ikhtisar. Jika tidak, hanya mata uang yang akan ditampilkan."
 
-#: gnucash/gtkbuilder/dialog-preferences.glade:247
+#: gnucash/gtkbuilder/dialog-preferences.glade:363
 msgid "<b>Start Date</b>"
 msgstr "<b>Tanggal Mulai</b>"
 
-#: gnucash/gtkbuilder/dialog-preferences.glade:260
+#: gnucash/gtkbuilder/dialog-preferences.glade:376
 msgid "<b>End Date</b>"
 msgstr "<b>Tanggal Akhir</b>"
 
-#: gnucash/gtkbuilder/dialog-preferences.glade:270
+#: gnucash/gtkbuilder/dialog-preferences.glade:386
 msgid "_Relative"
 msgstr "_Relatif"
 
-#: gnucash/gtkbuilder/dialog-preferences.glade:276
+#: gnucash/gtkbuilder/dialog-preferences.glade:392
 msgid "Use the specified relative starting date for profit/loss calculations."
 msgstr ""
-"Gunakan tanggal mulai relatif yang ditentukan untuk penghitungan keuntungan/"
-"kerugian."
+"Gunakan tanggal mulai relatif yang ditentukan untuk perhitungan laba/rugi."
 
-#: gnucash/gtkbuilder/dialog-preferences.glade:289
+#: gnucash/gtkbuilder/dialog-preferences.glade:405
 msgid "_Absolute"
 msgstr "_Absolut"
 
-#: gnucash/gtkbuilder/dialog-preferences.glade:295
+#: gnucash/gtkbuilder/dialog-preferences.glade:411
 msgid "Use the specified absolute starting date for profit/loss calculations."
 msgstr ""
-"Gunakan tanggal mulai absolut yang ditentukan untuk penghitungan keuntungan/"
-"kerugian."
+"Gunakan tanggal mulai absolut yang ditentukan untuk perhitungan laba/rugi."
 
-#: gnucash/gtkbuilder/dialog-preferences.glade:308
+#: gnucash/gtkbuilder/dialog-preferences.glade:424
 msgid "Re_lative"
 msgstr "Re_latif"
 
-#: gnucash/gtkbuilder/dialog-preferences.glade:314
+#: gnucash/gtkbuilder/dialog-preferences.glade:430
 msgid ""
 "Use the specified relative ending date for profit/loss calculations. Also "
 "use this date for net assets calculations."
 msgstr ""
-"Gunakan tanggal akhir relatif yang ditentukan untuk penghitungan keuntungan/"
-"kerugian. Juga gunakan tanggal ini untuk penghitungan aset bersih."
+"Gunakan tanggal akhir relatif yang ditentukan untuk perhitungan laba/rugi. "
+"Juga gunakan tanggal ini untuk perhitungan aset bersih."
 
-#: gnucash/gtkbuilder/dialog-preferences.glade:327
+#: gnucash/gtkbuilder/dialog-preferences.glade:443
 msgid "Ab_solute"
 msgstr "Ab_solut"
 
-#: gnucash/gtkbuilder/dialog-preferences.glade:333
+#: gnucash/gtkbuilder/dialog-preferences.glade:449
 msgid ""
 "Use the specified absolute ending date for profit/loss calculations. Also "
 "use this date for net assets calculations."
 msgstr ""
-"Gunakan tanggal akhir absolut yang ditentukan untuk penghitungan keuntungan/"
-"kerugian. Juga gunakan tanggal ini untuk penghitungan aset bersih."
+"Gunakan tanggal akhir absolut yang ditentukan untuk perhitungan laba/rugi. "
+"Juga gunakan tanggal ini untuk perhitungan aset bersih."
 
-#: gnucash/gtkbuilder/dialog-preferences.glade:444
+#: gnucash/gtkbuilder/dialog-preferences.glade:560
 msgid "Accounting Period"
 msgstr "Periode Akuntansi"
 
-#: gnucash/gtkbuilder/dialog-preferences.glade:462
-msgid "<b>Separator Character</b>"
-msgstr "<b>Karakter Pemisah</b>"
-
-#: gnucash/gtkbuilder/dialog-preferences.glade:472
+#: gnucash/gtkbuilder/dialog-preferences.glade:589
 msgid "Use _formal accounting labels"
 msgstr "Gunakan label akuntansi _formal"
 
-#: gnucash/gtkbuilder/dialog-preferences.glade:478
+#: gnucash/gtkbuilder/dialog-preferences.glade:595
 msgid "Use only 'debit' and 'credit' instead of informal synonyms."
 msgstr "Gunakan hanya 'debit' dan 'kredit' alih-alih sinonim informal."
 
-#: gnucash/gtkbuilder/dialog-preferences.glade:493
+#: gnucash/gtkbuilder/dialog-preferences.glade:610
 msgid "<b>Labels</b>"
 msgstr "<b>Label</b>"
 
-#: gnucash/gtkbuilder/dialog-preferences.glade:513
+#: gnucash/gtkbuilder/dialog-preferences.glade:630
 #: gnucash/gtkbuilder/dialog-price.glade:447
 msgid "_None"
 msgstr "_Tak ada"
 
-#: gnucash/gtkbuilder/dialog-preferences.glade:532
+#: gnucash/gtkbuilder/dialog-preferences.glade:649
 msgid "C_redit accounts"
 msgstr "Akun k_redit"
 
-#: gnucash/gtkbuilder/dialog-preferences.glade:551
+#: gnucash/gtkbuilder/dialog-preferences.glade:668
 msgid "_Income & expense"
 msgstr "_Pendapatan & pengeluaran"
 
-#: gnucash/gtkbuilder/dialog-preferences.glade:573
+#: gnucash/gtkbuilder/dialog-preferences.glade:690
 msgid "<b>Reverse Balanced Accounts</b>"
-msgstr ""
+msgstr "<b>Akun dengan Saldo Terbalik</b>"
 
-#: gnucash/gtkbuilder/dialog-preferences.glade:606
+#: gnucash/gtkbuilder/dialog-preferences.glade:723
 msgid "<b>Default Currency</b>"
 msgstr "<b>Mata Uang Baku</b>"
 
-#: gnucash/gtkbuilder/dialog-preferences.glade:619
-#: gnucash/gtkbuilder/dialog-preferences.glade:2933
+#: gnucash/gtkbuilder/dialog-preferences.glade:736
+#: gnucash/gtkbuilder/dialog-preferences.glade:3050
 msgid "US Dollars (USD)"
 msgstr "Dolar US (USD)"
 
-#: gnucash/gtkbuilder/dialog-preferences.glade:642
+#: gnucash/gtkbuilder/dialog-preferences.glade:759
 msgid "Character"
 msgstr "Karakter"
 
-#: gnucash/gtkbuilder/dialog-preferences.glade:654
+#: gnucash/gtkbuilder/dialog-preferences.glade:771
 #: gnucash/gtkbuilder/gnc-date-format.glade:206
 msgid "Sample"
 msgstr "Sampel"
 
-#: gnucash/gtkbuilder/dialog-preferences.glade:679
+#: gnucash/gtkbuilder/dialog-preferences.glade:796
 msgid "<b>Account Color</b>"
 msgstr "<b>Warna Akun</b>"
 
-#: gnucash/gtkbuilder/dialog-preferences.glade:689
+#: gnucash/gtkbuilder/dialog-preferences.glade:806
 msgid "Show the Account Color as background"
 msgstr "Tampilkan Warna Akun sebagai latar belakang"
 
-#: gnucash/gtkbuilder/dialog-preferences.glade:695
+#: gnucash/gtkbuilder/dialog-preferences.glade:812
 msgid "Show the Account Color as Account Name Background."
 msgstr "Tampilkan Warna Akun sebagai Latar Belakang Nama Akun."
 
-#: gnucash/gtkbuilder/dialog-preferences.glade:717
+#: gnucash/gtkbuilder/dialog-preferences.glade:834
 msgid "Show the Account Color on tabs"
 msgstr "Tampilkan Warna Akun pada tab"
 
-#: gnucash/gtkbuilder/dialog-preferences.glade:723
+#: gnucash/gtkbuilder/dialog-preferences.glade:840
 msgid "Show the Account Color as tab background."
 msgstr "Tampilkan Warna Akun sebagai latar belakang tab."
 
-#: gnucash/gtkbuilder/dialog-preferences.glade:756
+#: gnucash/gtkbuilder/dialog-preferences.glade:874
 msgid ""
 "The character that will be used between components of an account name. A "
 "legal value is any single character except letters and numbers, or any of "
 "the following strings: \"colon\" \"slash\", \"backslash\", \"dash\" and "
 "\"period\"."
 msgstr ""
+"Karakter yang akan digunakan di antara komponen nama akun. Nilai yang "
+"diperbolehkan adalah suatu karakter apapun kecuali huruf dan angka, atau "
+"salah satu dari string berikut: \"titik dua\" \"garis miring\", \"garis "
+"miring terbalik\", \"garis datar\" dan \"titik\"."
 
-#: gnucash/gtkbuilder/dialog-preferences.glade:777
-#: gnucash/gtkbuilder/dialog-preferences.glade:3032
+#: gnucash/gtkbuilder/dialog-preferences.glade:894
+#: gnucash/gtkbuilder/dialog-preferences.glade:3149
 msgid "Ch_oose"
 msgstr "P_ilih"
 
-#: gnucash/gtkbuilder/dialog-preferences.glade:797
-#: gnucash/gtkbuilder/dialog-preferences.glade:3052
+#: gnucash/gtkbuilder/dialog-preferences.glade:914
+#: gnucash/gtkbuilder/dialog-preferences.glade:3169
 msgid "Loc_ale"
-msgstr ""
+msgstr "Lok_al"
 
-#: gnucash/gtkbuilder/dialog-preferences.glade:881
+#: gnucash/gtkbuilder/dialog-preferences.glade:998
 msgid "<b>Fancy Date Format</b>"
-msgstr "<b>Format Tanggal Mewah</b>"
+msgstr "<b>Format Tanggal Lengkap</b>"
 
-#: gnucash/gtkbuilder/dialog-preferences.glade:904
+#: gnucash/gtkbuilder/dialog-preferences.glade:1021
 msgid "<b>Date Format</b>"
 msgstr "<b>Format Tanggal</b>"
 
-#: gnucash/gtkbuilder/dialog-preferences.glade:917
+#: gnucash/gtkbuilder/dialog-preferences.glade:1034
 msgid "<b>Time Format</b>"
 msgstr "<b>Format Waktu</b>"
 
-#: gnucash/gtkbuilder/dialog-preferences.glade:937
+#: gnucash/gtkbuilder/dialog-preferences.glade:1054
 msgid "U_se 24-hour clock"
 msgstr "Gunakan _waktu 24-jam"
 
-#: gnucash/gtkbuilder/dialog-preferences.glade:943
+#: gnucash/gtkbuilder/dialog-preferences.glade:1060
 msgid "Use a 24 hour (instead of a 12 hour) time format."
 msgstr "Gunakan format waktu 24 jam (alih-alih 12 jam)."
 
-#: gnucash/gtkbuilder/dialog-preferences.glade:958
+#: gnucash/gtkbuilder/dialog-preferences.glade:1075
 msgid "<b>Date Completion</b>"
-msgstr "<b>Oenyempurnaan Tanggal</b>"
+msgstr "<b>Penyempurnaan Tanggal</b>"
 
-#: gnucash/gtkbuilder/dialog-preferences.glade:971
+#: gnucash/gtkbuilder/dialog-preferences.glade:1088
 msgid "When a date is entered without year, it should be taken"
 msgstr "Ketika sebuah tanggal dimasukkan tanpa tahun, ini akan digunakan"
 
-#: gnucash/gtkbuilder/dialog-preferences.glade:987
+#: gnucash/gtkbuilder/dialog-preferences.glade:1104
 msgid ""
 "Dates will be completed so that they are within the current calendar year."
 msgstr ""
 "Tanggal akan dilengkapi sehingga berada di dalam tahun kalender saat ini."
 
-#: gnucash/gtkbuilder/dialog-preferences.glade:1000
+#: gnucash/gtkbuilder/dialog-preferences.glade:1117
 msgid ""
 "In a sliding 12-month window starting this\n"
 "many months before the current month"
 msgstr ""
+"Dalam jendela geser 12-bulan dimulai dari\n"
+"sebanyak bulan ini sebelum bulan berjalan"
 
-#: gnucash/gtkbuilder/dialog-preferences.glade:1024
+#: gnucash/gtkbuilder/dialog-preferences.glade:1141
 msgid "Enter number of months."
 msgstr "Masukkan jumlah bulan."
 
-#: gnucash/gtkbuilder/dialog-preferences.glade:1045
+#: gnucash/gtkbuilder/dialog-preferences.glade:1162
 msgid "Use the date format specified by the system locale."
-msgstr ""
+msgstr "Gunakan format tanggal yang ditentukan oleh sistem lokal."
 
-#: gnucash/gtkbuilder/dialog-preferences.glade:1071
-#, fuzzy
+#: gnucash/gtkbuilder/dialog-preferences.glade:1188
 msgid "<b>Numbers</b>"
-msgstr "<b>Ruang Lingkup</b>"
+msgstr "<b>Nomor</b>"
 
-#: gnucash/gtkbuilder/dialog-preferences.glade:1081
+#: gnucash/gtkbuilder/dialog-preferences.glade:1198
 msgid "Force P_rices to display as decimals"
-msgstr ""
+msgstr "Paksa Ha_rga ditampilkan sebagai desimal"
 
-#: gnucash/gtkbuilder/dialog-preferences.glade:1099
+#: gnucash/gtkbuilder/dialog-preferences.glade:1216
 msgid "Display ne_gative amounts in red"
-msgstr ""
+msgstr "Tampilkan jumlah ne_gatif dengan warna merah"
 
-#: gnucash/gtkbuilder/dialog-preferences.glade:1105
+#: gnucash/gtkbuilder/dialog-preferences.glade:1222
 msgid "Display negative amounts in red."
-msgstr ""
+msgstr "Tampilkan jumlah negatif dengan warna merah."
 
-#: gnucash/gtkbuilder/dialog-preferences.glade:1117
-#, fuzzy
+#: gnucash/gtkbuilder/dialog-preferences.glade:1234
 msgid "_Automatic decimal point"
-msgstr "Desimal"
+msgstr "Titik desimal otom_atis"
 
-#: gnucash/gtkbuilder/dialog-preferences.glade:1123
+#: gnucash/gtkbuilder/dialog-preferences.glade:1240
 msgid ""
 "Automatically insert a decimal point into values that are entered without "
 "one."
-msgstr ""
+msgstr "Sisipkan titik desimal secara otomatis ke nilai yang dimasukkan."
 
-#: gnucash/gtkbuilder/dialog-preferences.glade:1138
-#, fuzzy
+#: gnucash/gtkbuilder/dialog-preferences.glade:1255
 msgid "_Decimal places"
-msgstr ""
-"Jumlah tempat desimal, jika mengikuti nol dan jika pemisah ribuan "
-"ditampilkan juga dapat dikonfigurasi."
+msgstr "Tempat _desimal"
 
-#: gnucash/gtkbuilder/dialog-preferences.glade:1153
+#: gnucash/gtkbuilder/dialog-preferences.glade:1270
 msgid "How many automatic decimal places will be filled in."
-msgstr ""
+msgstr "Berapa banyak tempat desimal otomatis akan diisi."
 
-#: gnucash/gtkbuilder/dialog-preferences.glade:1155
-#, fuzzy
+#: gnucash/gtkbuilder/dialog-preferences.glade:1272
 msgid "2"
 msgstr "2"
 
-#: gnucash/gtkbuilder/dialog-preferences.glade:1245
+#: gnucash/gtkbuilder/dialog-preferences.glade:1362
 msgid "Numbers, Date, Time"
-msgstr ""
+msgstr "Nomor, Tanggal, Waktu"
 
-#: gnucash/gtkbuilder/dialog-preferences.glade:1274
+#: gnucash/gtkbuilder/dialog-preferences.glade:1391
 msgid "Perform account list _setup on new file"
 msgstr "Lakukan penyiapan daftar akun pada berka_s baru"
 
-#: gnucash/gtkbuilder/dialog-preferences.glade:1280
+#: gnucash/gtkbuilder/dialog-preferences.glade:1397
 msgid "Present the new account list dialog when you choose File->New File."
 msgstr ""
 "Tampilkan dialog daftar akun baru ketika Anda memilih Berkas->Berkas Baru."
 
-#: gnucash/gtkbuilder/dialog-preferences.glade:1311
+#: gnucash/gtkbuilder/dialog-preferences.glade:1428
 msgid "Display \"_tip of the day\" dialog"
 msgstr "Tampilkan dialog \"_tip hari ini\""
 
-#: gnucash/gtkbuilder/dialog-preferences.glade:1317
+#: gnucash/gtkbuilder/dialog-preferences.glade:1434
 msgid "Display hints for using GnuCash at startup."
 msgstr "Tampilkan petunjuk penggunaan GnuCash saat aplikasi dijalankan."
 
-#: gnucash/gtkbuilder/dialog-preferences.glade:1338
+#: gnucash/gtkbuilder/dialog-preferences.glade:1455
 msgid "How many days to keep old log/backup files."
 msgstr "Berapa hari berkas log/cadangan akan disimpan."
 
-#: gnucash/gtkbuilder/dialog-preferences.glade:1357
+#: gnucash/gtkbuilder/dialog-preferences.glade:1474
 #: gnucash/gtkbuilder/dialog-sx.glade:619
 #: gnucash/gtkbuilder/dialog-sx.glade:658
 msgid "days"
 msgstr "hari"
 
-#: gnucash/gtkbuilder/dialog-preferences.glade:1376
+#: gnucash/gtkbuilder/dialog-preferences.glade:1493
 msgid "<b>_Retain log/backup files</b>"
-msgstr ""
+msgstr "<b>Pe_rtahankan berkas log/cadangan </b>"
 
-#: gnucash/gtkbuilder/dialog-preferences.glade:1388
-#, fuzzy
+#: gnucash/gtkbuilder/dialog-preferences.glade:1505
 msgid "Com_press files"
-msgstr "Tam_pilkan vCard Ringkas"
+msgstr "Kom_pres berkas"
 
-#: gnucash/gtkbuilder/dialog-preferences.glade:1394
+#: gnucash/gtkbuilder/dialog-preferences.glade:1511
 msgid "Compress the data file with gzip when saving it to disk."
-msgstr ""
+msgstr "Kompres berkas data dengan gzip ketika menyimpannya ke diska."
 
-#: gnucash/gtkbuilder/dialog-preferences.glade:1409
-#, fuzzy
+#: gnucash/gtkbuilder/dialog-preferences.glade:1526
 msgid "<b>Files</b>"
-msgstr "<b>Ruang Lingkup</b>"
+msgstr "<b>Berkas</b>"
 
-#: gnucash/gtkbuilder/dialog-preferences.glade:1442
-#, fuzzy
+#: gnucash/gtkbuilder/dialog-preferences.glade:1559
 msgid "<b>Search Dialog</b>"
-msgstr "B-Search:"
+msgstr "<b>Dialog Pencarian</b>"
 
-#: gnucash/gtkbuilder/dialog-preferences.glade:1455
-#, fuzzy
+#: gnucash/gtkbuilder/dialog-preferences.glade:1572
 msgid "New search _limit"
-msgstr "Batas ukuran pencarian terlampaui"
+msgstr "Ba_tas pencarian baru"
 
-#: gnucash/gtkbuilder/dialog-preferences.glade:1470
+#: gnucash/gtkbuilder/dialog-preferences.glade:1587
 msgid "Default to 'new search' if fewer than this number of items is returned."
 msgstr ""
+"Kembali secara baku ke 'pencarian baru' jika kurang dari jumlah item ini "
+"yang dikembalikan."
 
-#: gnucash/gtkbuilder/dialog-preferences.glade:1486
-#, fuzzy
+#: gnucash/gtkbuilder/dialog-preferences.glade:1603
 msgid "Show splash scree_n"
-msgstr "Jangan tampilkan layar splash"
+msgstr "Tampilka_n layar splash"
 
-#: gnucash/gtkbuilder/dialog-preferences.glade:1492
-#, fuzzy
+#: gnucash/gtkbuilder/dialog-preferences.glade:1609
 msgid "Show splash screen at startup."
-msgstr "Jangan tampilkan layar splash"
+msgstr "Tampilkan layar splash pada saat mulai."
 
-#: gnucash/gtkbuilder/dialog-preferences.glade:1507
+#: gnucash/gtkbuilder/dialog-preferences.glade:1624
 msgid "Auto-save time _interval"
-msgstr ""
+msgstr "_Interval waktu simpan-otomatis"
 
-#: gnucash/gtkbuilder/dialog-preferences.glade:1546
-#, fuzzy
+#: gnucash/gtkbuilder/dialog-preferences.glade:1663
 msgid "minutes"
 msgstr "menit"
 
-#: gnucash/gtkbuilder/dialog-preferences.glade:1562
+#: gnucash/gtkbuilder/dialog-preferences.glade:1679
 msgid "Show auto-save confirmation _question"
-msgstr ""
+msgstr "Tampilkan _pertanyaan konfirmasi simpan-otomatis"
 
-#: gnucash/gtkbuilder/dialog-preferences.glade:1568
+#: gnucash/gtkbuilder/dialog-preferences.glade:1685
 msgid ""
 "If active, GnuCash shows a confirmation question each time the auto-save "
 "feature is started. Otherwise no extra explanation is shown."
 msgstr ""
+"Jika aktif, GnuCash akan menampilkan pertanyaan konfirmasi setiap kali fitur "
+"simpan-otomatis dimulai. Jika tidak, tak ada penjelasan tambahan yang "
+"ditampilkan."
 
-#: gnucash/gtkbuilder/dialog-preferences.glade:1608
+#: gnucash/gtkbuilder/dialog-preferences.glade:1725
 #: gnucash/gtkbuilder/dialog-sx.glade:1208
 msgid "For"
-msgstr ""
+msgstr "Untuk"
 
-#: gnucash/gtkbuilder/dialog-preferences.glade:1626
+#: gnucash/gtkbuilder/dialog-preferences.glade:1743
 #: gnucash/gtkbuilder/dialog-sx.glade:1176
-#, fuzzy
 msgid "Forever"
 msgstr "Selamanya"
 
-#: gnucash/gtkbuilder/dialog-preferences.glade:1665
-#, fuzzy
+#: gnucash/gtkbuilder/dialog-preferences.glade:1782
 msgid "Time to _wait for answer"
-msgstr "_Tunggu para Robot"
+msgstr "_Waktu untuk menunggu jawaban"
 
-#: gnucash/gtkbuilder/dialog-preferences.glade:1702
-#, fuzzy
+#: gnucash/gtkbuilder/dialog-preferences.glade:1819
 msgid "seconds"
 msgstr "detik"
 
-#: gnucash/gtkbuilder/dialog-preferences.glade:1730
-#, fuzzy
+#: gnucash/gtkbuilder/dialog-preferences.glade:1847
 msgid "Path head for Linked File Relative Paths"
-msgstr "Amplituda Kepala GMR"
+msgstr "Tajuk path untuk Path Relatif Berkas Tertaut"
 
-#: gnucash/gtkbuilder/dialog-preferences.glade:1748
-#, fuzzy
+#: gnucash/gtkbuilder/dialog-preferences.glade:1865
 msgid "Path head for Linked Files Relative Paths"
-msgstr "Amplituda Kepala GMR"
+msgstr "Tajuk path untuk Path Relatif Berkas Tertaut"
 
-#: gnucash/gtkbuilder/dialog-preferences.glade:1777
+#: gnucash/gtkbuilder/dialog-preferences.glade:1894
 msgid "Enable horizontal grid lines on table displays"
-msgstr ""
+msgstr "Aktifkan garis kisi horizontal pada tampilan tabel"
 
-#: gnucash/gtkbuilder/dialog-preferences.glade:1781
+#: gnucash/gtkbuilder/dialog-preferences.glade:1898
 msgid ""
 "Enable horizontal grid lines on table displays. These will mainly be tree "
 "views like the Accounts page."
 msgstr ""
+"Aktifkan garis kisi horizontal pada tampilan tabel. Ini terutama akan "
+"menjadi tampilan pohon seperti halaman Akun."
 
-#: gnucash/gtkbuilder/dialog-preferences.glade:1794
+#: gnucash/gtkbuilder/dialog-preferences.glade:1911
 msgid "Enable vertical grid lines on table displays"
-msgstr ""
+msgstr "Aktifkan garis kisi vertikal pada tampilan tabel"
 
-#: gnucash/gtkbuilder/dialog-preferences.glade:1798
+#: gnucash/gtkbuilder/dialog-preferences.glade:1915
 msgid ""
 "Enable vertical grid lines on table displays. These will mainly be tree "
 "views like the Accounts page."
 msgstr ""
+"Aktifkan garis kisi vertikal pada tampilan tabel. Ini terutama akan menjadi "
+"tampilan pohon seperti halaman Akun."
 
-#: gnucash/gtkbuilder/dialog-preferences.glade:1814
-#, fuzzy
+#: gnucash/gtkbuilder/dialog-preferences.glade:1931
 msgid "<b>Linked Files</b>"
-msgstr "<b>Ruang Lingkup</b>"
+msgstr "<b>Berkas Tertaut</b>"
 
 #. Preferences->Online Banking:Generic
-#: gnucash/gtkbuilder/dialog-preferences.glade:1909
+#: gnucash/gtkbuilder/dialog-preferences.glade:2026
 msgid "Enable skip transaction action"
-msgstr ""
+msgstr "Aktifkan aksi lewatkan transaksi"
 
 #. Preferences->Online Banking:Generic
-#: gnucash/gtkbuilder/dialog-preferences.glade:1928
-#, fuzzy
+#: gnucash/gtkbuilder/dialog-preferences.glade:2045
 msgid "Enable update match action"
-msgstr "Eksekusi aksi mutakhirkan"
+msgstr "Aktifkan aksi perbarui kecocokan"
 
-#: gnucash/gtkbuilder/dialog-preferences.glade:1965
+#: gnucash/gtkbuilder/dialog-preferences.glade:2082
 msgid ""
 "In some places commercial ATMs (not belonging to a financial institution) "
 "are installed in places like convenience stores. These ATMs add their fee "
@@ -16614,107 +17015,115 @@ msgid ""
 "in your area (in units of your local currency), so the transaction will be "
 "recognised as a match."
 msgstr ""
+"Di beberapa tempat, ATM komersial (bukan milik lembaga keuangan) dipasang di "
+"tempat-tempat seperti toko-toko. ATM ini menambahkan biaya mereka secara "
+"langsung ke jumlah, bukannya muncul sebagai transaksi yang terpisah atau di "
+"dalam biaya perbankan bulanan Anda. Misalnya, Anda menarik $100, dan Anda "
+"dikenakan biaya $101,50 ditambah biaya Interac. Jika Anda memasukkan $100 "
+"tersebut secara manual, jumlah tersebut tidak akan cocok. Anda harus "
+"menetapkan biaya maksimum di daerah Anda (dalam satuan mata uang lokal "
+"Anda), sehingga transaksi akan dikenali sebagai transaksi yang cocok."
 
-#: gnucash/gtkbuilder/dialog-preferences.glade:1967
+#: gnucash/gtkbuilder/dialog-preferences.glade:2084
 msgid "2,00"
-msgstr ""
+msgstr "2,00"
 
-#: gnucash/gtkbuilder/dialog-preferences.glade:1988
+#: gnucash/gtkbuilder/dialog-preferences.glade:2105
 msgid ""
 "A transaction whose best match's score is in the green zone (above or equal "
 "to the Auto-CLEAR threshold) will be CLEARed by default."
 msgstr ""
+"Transaksi yang skor kecocokan terbaiknya berada pada zona hijau (di atas "
+"atau sama dengan ambang batas Auto-CLEAR) akan diKLIRkan, secara baku."
 
-#: gnucash/gtkbuilder/dialog-preferences.glade:2010
+#: gnucash/gtkbuilder/dialog-preferences.glade:2127
 msgid ""
 "A transaction whose best match's score is in the red zone (above the display "
 "threshold but below or equal to the Auto-ADD threshold) will be ADDed by "
 "default."
 msgstr ""
+"Transaksi yang skor kecocokan terbaiknya berada pada zona merah (di atas "
+"ambang batas tampilan tetapi di bawah atau sama dengan ambang batas "
+"TAMBAHKAN-Otomatis) akan diTAMBAHKAN, secara baku."
 
-#: gnucash/gtkbuilder/dialog-preferences.glade:2032
+#: gnucash/gtkbuilder/dialog-preferences.glade:2149
 msgid ""
 "The minimum score a potential match must have to be displayed in the match "
 "list."
 msgstr ""
+"Skor minimum sebuah kecocokan potensial harus ditampilkan pada daftar "
+"kecocokan."
 
 #. Preferences->Online Banking:Generic
-#: gnucash/gtkbuilder/dialog-preferences.glade:2053
+#: gnucash/gtkbuilder/dialog-preferences.glade:2170
 msgid "Commercial ATM _fees threshold"
-msgstr ""
+msgstr "Ambang _batas biaya ATM komersial"
 
 #. Preferences->Online Banking:Generic
-#: gnucash/gtkbuilder/dialog-preferences.glade:2067
-#, fuzzy
+#: gnucash/gtkbuilder/dialog-preferences.glade:2184
 msgid "Auto-c_lear threshold"
-msgstr "_Bersihkan Semua"
+msgstr "Ambang batas _klir-otomatis"
 
 #. Preferences->Online Banking:Generic
-#: gnucash/gtkbuilder/dialog-preferences.glade:2081
-#, fuzzy
+#: gnucash/gtkbuilder/dialog-preferences.glade:2198
 msgid "Auto-_add threshold"
-msgstr "_Ambang..."
+msgstr "_Ambang batas tambah-otomatis"
 
 #. Preferences->Online Banking:Generic
-#: gnucash/gtkbuilder/dialog-preferences.glade:2095
-#, fuzzy
+#: gnucash/gtkbuilder/dialog-preferences.glade:2212
 msgid "Match _display threshold"
-msgstr "Cocok"
+msgstr "Ambang batas tampilan _kecocokan"
 
 #. Preferences->Online Banking:Generic
-#: gnucash/gtkbuilder/dialog-preferences.glade:2106
-#, fuzzy
+#: gnucash/gtkbuilder/dialog-preferences.glade:2223
 msgid "Use _bayesian matching"
-msgstr "Klik ganda pada strategi yang cocok untuk dipakai"
+msgstr "Gunakan pencocokan _bayesian"
 
-#: gnucash/gtkbuilder/dialog-preferences.glade:2112
+#: gnucash/gtkbuilder/dialog-preferences.glade:2229
 msgid ""
 "Use bayesian algorithms to match new transactions with existing accounts."
 msgstr ""
+"Menggunakan algoritma Bayesian untuk mencocokkan transaksi baru dengan akun "
+"yang ada."
 
-#: gnucash/gtkbuilder/dialog-preferences.glade:2170
-#, fuzzy
+#: gnucash/gtkbuilder/dialog-preferences.glade:2287
 msgid "<b>Checks</b>"
-msgstr "<b>Ruang Lingkup</b>"
+msgstr "<b>Cek</b>"
 
-#: gnucash/gtkbuilder/dialog-preferences.glade:2185
-#, fuzzy
+#: gnucash/gtkbuilder/dialog-preferences.glade:2302
 msgid "The default check printing font."
-msgstr "Jenis huruf yang digunakan ketika mencetak"
+msgstr "Fonta baku untuk mencetak cek."
 
-#: gnucash/gtkbuilder/dialog-preferences.glade:2195
-#, fuzzy
+#: gnucash/gtkbuilder/dialog-preferences.glade:2312
 msgid "Print _date format"
-msgstr "Format Tanggal/Waktu"
+msgstr "Cetak _format tanggal"
 
-#: gnucash/gtkbuilder/dialog-preferences.glade:2201
+#: gnucash/gtkbuilder/dialog-preferences.glade:2318
 msgid "Below the actual date, print the format of that date in 8 point type."
-msgstr ""
+msgstr "Di bawah tanggal sebenarnya, cetak format tanggal dalam tipe 8 titik."
 
-#: gnucash/gtkbuilder/dialog-preferences.glade:2213
-#, fuzzy
+#: gnucash/gtkbuilder/dialog-preferences.glade:2330
 msgid "Print _blocking chars"
-msgstr "Awakutu Pemblokir"
+msgstr "Cetak karakter pem_blokir"
 
-#: gnucash/gtkbuilder/dialog-preferences.glade:2219
+#: gnucash/gtkbuilder/dialog-preferences.glade:2336
 msgid "Print '***' before and after each text field on the check."
 msgstr ""
+"Cetak '***' sebelum dan sesudah masing-masing bidang teks di dalam cek."
 
-#: gnucash/gtkbuilder/dialog-preferences.glade:2234
-#, fuzzy
+#: gnucash/gtkbuilder/dialog-preferences.glade:2351
 msgid "Default _font"
-msgstr "Gunakan Fonta Baku"
+msgstr "_Fonta baku"
 
-#: gnucash/gtkbuilder/dialog-preferences.glade:2263
-#, fuzzy
+#: gnucash/gtkbuilder/dialog-preferences.glade:2380
 msgid "Printing"
-msgstr "Percetakan"
+msgstr "Mencetak"
 
-#: gnucash/gtkbuilder/dialog-preferences.glade:2292
+#: gnucash/gtkbuilder/dialog-preferences.glade:2409
 msgid "'_Enter' moves to blank transaction"
 msgstr "'_Enter' berpindah ke transaksi kosong"
 
-#: gnucash/gtkbuilder/dialog-preferences.glade:2298
+#: gnucash/gtkbuilder/dialog-preferences.glade:2415
 msgid ""
 "If checked, pressing the 'Enter' key will move to the location of the blank "
 "transaction in the register. If clear, pressing the 'Enter' key will move "
@@ -16724,415 +17133,399 @@ msgstr ""
 "register. Jika tidak dicentang, menekan 'Enter' akan berpindah turun satu "
 "baris."
 
-#: gnucash/gtkbuilder/dialog-preferences.glade:2310
-#, fuzzy
+#: gnucash/gtkbuilder/dialog-preferences.glade:2427
 msgid "_Auto-raise lists"
-msgstr "Naikkan jendela"
+msgstr "N_aikkan daftar secara otomatis"
 
-#: gnucash/gtkbuilder/dialog-preferences.glade:2316
+#: gnucash/gtkbuilder/dialog-preferences.glade:2433
 msgid "Automatically raise the list of accounts or actions during input."
-msgstr ""
+msgstr "Menaikkan daftar akun atau aksi secara otomatis pada saat masukan."
 
-#: gnucash/gtkbuilder/dialog-preferences.glade:2328
+#: gnucash/gtkbuilder/dialog-preferences.glade:2445
 msgid "Tab order in_cludes Transfer on Memorised Transactions"
-msgstr ""
+msgstr "Urutan tab ter_masuk Transfer pada Transaksi yang Diingat"
 
-#: gnucash/gtkbuilder/dialog-preferences.glade:2334
+#: gnucash/gtkbuilder/dialog-preferences.glade:2451
 msgid "Move to Transfer field when memorised transaction auto filled."
 msgstr ""
+"Pindah ke bidang Transfer ketika transaksi yang diingat diisi otomatis."
 
-#: gnucash/gtkbuilder/dialog-preferences.glade:2359
-#, fuzzy
+#: gnucash/gtkbuilder/dialog-preferences.glade:2476
 msgid "<b>Reconciling</b>"
-msgstr "<b>Ruang Lingkup</b>"
+msgstr "<b>Merekonsiliasi</b>"
 
-#: gnucash/gtkbuilder/dialog-preferences.glade:2369
-#, fuzzy
+#: gnucash/gtkbuilder/dialog-preferences.glade:2486
 msgid "Check cleared _transactions"
-msgstr "Senarai ubah dibersihkan"
+msgstr "Periksa _transaksi klir"
 
-#: gnucash/gtkbuilder/dialog-preferences.glade:2375
+#: gnucash/gtkbuilder/dialog-preferences.glade:2492
 msgid "Pre-check cleared transactions when creating a reconcile dialog."
-msgstr ""
+msgstr "Pra-periksa transaksi klir saat membuat dialog rekonsiliasi."
 
-#: gnucash/gtkbuilder/dialog-preferences.glade:2387
-#, fuzzy
+#: gnucash/gtkbuilder/dialog-preferences.glade:2504
 msgid "Automatic credit card _payment"
-msgstr "Kartu Kredit"
+msgstr "_Pembayaran kartu kredit otomatis"
 
-#: gnucash/gtkbuilder/dialog-preferences.glade:2393
+#: gnucash/gtkbuilder/dialog-preferences.glade:2510
 msgid ""
 "After reconciling a credit card statement, prompt the user to enter a credit "
 "card payment."
 msgstr ""
+"Setelah melakukan rekonsiliasi pernyataan kartu kredit, minta pengguna untuk "
+"memasukkan pembayaran kartu kredit."
 
-#: gnucash/gtkbuilder/dialog-preferences.glade:2405
+#: gnucash/gtkbuilder/dialog-preferences.glade:2522
 msgid "Always reconcile to t_oday"
-msgstr ""
+msgstr "Selalu rekonsiliasi ke _hari ini"
 
-#: gnucash/gtkbuilder/dialog-preferences.glade:2411
+#: gnucash/gtkbuilder/dialog-preferences.glade:2528
 msgid ""
 "Always open the reconcile dialog using today's date for the statement date, "
 "regardless of previous reconciliations."
 msgstr ""
+"Selalu membuka dialog rekonsiliasi menggunakan tanggal hari ini untuk "
+"tanggal pernyataan, terlepas dari rekonsiliasi sebelumnya."
 
-#: gnucash/gtkbuilder/dialog-preferences.glade:2436
-#, fuzzy
+#: gnucash/gtkbuilder/dialog-preferences.glade:2553
 msgid "<b>Graphics</b>"
-msgstr "<b>Ruang Lingkup</b>"
+msgstr "<b>Grafik</b>"
 
-#: gnucash/gtkbuilder/dialog-preferences.glade:2446
+#: gnucash/gtkbuilder/dialog-preferences.glade:2563
 msgid "_Use GnuCash built-in color theme"
-msgstr ""
+msgstr "G_unakan tema warna bawaan GnuCash"
 
-#: gnucash/gtkbuilder/dialog-preferences.glade:2452
+#: gnucash/gtkbuilder/dialog-preferences.glade:2569
 msgid ""
 "GnuCash uses a yellow/green theme by default for register windows. Uncheck "
 "this if you want to use the system color theme instead."
 msgstr ""
+"GnuCash menggunakan sebuah tema kuning/hijau secara baku untuk jendela "
+"register. Hapus tanda centang ini jika Anda ingin menggunakan warna tema "
+"sistem."
 
-#: gnucash/gtkbuilder/dialog-preferences.glade:2464
+#: gnucash/gtkbuilder/dialog-preferences.glade:2581
 msgid "Double _mode colors alternate with transactions"
-msgstr ""
+msgstr "Warna _mode ganda berseling dengan transaksi"
 
-#: gnucash/gtkbuilder/dialog-preferences.glade:2470
+#: gnucash/gtkbuilder/dialog-preferences.glade:2587
 msgid ""
 "Alternate the primary and secondary colors by transaction instead of by "
 "alternating by row."
 msgstr ""
+"Seling warna primer dan sekunder berdasar transaksi, bukannya bergantian "
+"antar baris."
 
-#: gnucash/gtkbuilder/dialog-preferences.glade:2482
+#: gnucash/gtkbuilder/dialog-preferences.glade:2599
 msgid "Draw hori_zontal lines between rows"
-msgstr ""
+msgstr "Tampilkan garis hori_zontal di antara baris"
 
-#: gnucash/gtkbuilder/dialog-preferences.glade:2488
+#: gnucash/gtkbuilder/dialog-preferences.glade:2605
 msgid "Show horizontal borders on the cells."
-msgstr ""
+msgstr "Tampilkan garis tepi horizontal di sel."
 
-#: gnucash/gtkbuilder/dialog-preferences.glade:2500
+#: gnucash/gtkbuilder/dialog-preferences.glade:2617
 msgid "Draw _vertical lines between columns"
-msgstr ""
+msgstr "Tampilkan garis _vertikal di atara kolom"
 
-#: gnucash/gtkbuilder/dialog-preferences.glade:2506
+#: gnucash/gtkbuilder/dialog-preferences.glade:2623
 msgid "Show vertical borders on the cells."
-msgstr ""
+msgstr "Tampilkan garis tepi vertikal di sel."
 
-#: gnucash/gtkbuilder/dialog-preferences.glade:2531
-#, fuzzy
+#: gnucash/gtkbuilder/dialog-preferences.glade:2648
 msgid "<b>Layout</b>"
 msgstr "<b>Tata Letak</b>"
 
-#: gnucash/gtkbuilder/dialog-preferences.glade:2541
+#: gnucash/gtkbuilder/dialog-preferences.glade:2658
 msgid "_Future transactions after blank transaction"
 msgstr "_Transaksi yang akan datang setelah transaksi kosong"
 
-#: gnucash/gtkbuilder/dialog-preferences.glade:2547
+#: gnucash/gtkbuilder/dialog-preferences.glade:2664
 msgid ""
 "If checked, transactions with a date in the future will be displayed at the "
 "bottom of the register after the blank transaction. If clear, the blank "
 "transaction will be at the bottom of the register after all transactions."
 msgstr ""
+"Jika dicentang, transaksi dengan tanggal di masa depan akan ditampilkan di "
+"bagian bawah register setelah transaksi kosong. Jika tidak dicentang, "
+"transaksi kosong akan berada di bagian bawah register setelah semua "
+"transaksi."
 
-#: gnucash/gtkbuilder/dialog-preferences.glade:2586
-#, fuzzy
+#: gnucash/gtkbuilder/dialog-preferences.glade:2703
 msgid "<b>Default Style</b>"
-msgstr "<b>Gaya</b>"
+msgstr "<b>Gaya Baku</b>"
 
-#: gnucash/gtkbuilder/dialog-preferences.glade:2609
-#, fuzzy
+#: gnucash/gtkbuilder/dialog-preferences.glade:2726
 msgid "<b>Other Defaults</b>"
-msgstr "Bawaan-bawaan Lainnya"
+msgstr "<b>Pengaturan Baku Lainnya</b>"
 
-#: gnucash/gtkbuilder/dialog-preferences.glade:2619
-#, fuzzy
+#: gnucash/gtkbuilder/dialog-preferences.glade:2736
 msgid "_Basic ledger"
-msgstr "buku besar"
+msgstr "_Buku besar dasar"
 
-#: gnucash/gtkbuilder/dialog-preferences.glade:2638
-#, fuzzy
+#: gnucash/gtkbuilder/dialog-preferences.glade:2755
 msgid "_Auto-split ledger"
-msgstr "buku besar"
+msgstr "Buku besar split-otom_atis"
 
-#: gnucash/gtkbuilder/dialog-preferences.glade:2679
-#, fuzzy
+#: gnucash/gtkbuilder/dialog-preferences.glade:2796
 msgid "Number of _transactions"
-msgstr "{number}"
+msgstr "Jumlah _transaksi"
 
-#: gnucash/gtkbuilder/dialog-preferences.glade:2712
-#, fuzzy
+#: gnucash/gtkbuilder/dialog-preferences.glade:2829
 msgid "_Double line mode"
-msgstr "Mengaktifkan mode layar penuh dengan klik ganda"
+msgstr "Mode _dua baris"
 
-#: gnucash/gtkbuilder/dialog-preferences.glade:2718
+#: gnucash/gtkbuilder/dialog-preferences.glade:2835
 msgid ""
 "Show two lines of information for each transaction instead of one. Does not "
 "affect expanded transactions."
 msgstr ""
+"Menunjukkan dua baris informasi untuk setiap transaksi, bukan satu. Tidak "
+"mempengaruhi transaksi diekspansi."
 
-#: gnucash/gtkbuilder/dialog-preferences.glade:2730
-#, fuzzy
+#: gnucash/gtkbuilder/dialog-preferences.glade:2847
 msgid "Register opens in a new _window"
-msgstr "Buka jendela Devhelp baru"
+msgstr "Register terbuka di _jendela baru"
 
-#: gnucash/gtkbuilder/dialog-preferences.glade:2736
+#: gnucash/gtkbuilder/dialog-preferences.glade:2853
 msgid ""
 "If checked, each register will be opened in its own top level window. If "
 "clear, the register will be opened in the current window."
 msgstr ""
 "Jika dicentang, setiap register akan dibuka pada jendela tingkat atas mereka "
-"sendiri. Jika tidak, register akan dibuka pada jendela saat ini."
+"sendiri. Jika tidak dicentang, register akan dibuka pada jendela saat ini."
 
-#: gnucash/gtkbuilder/dialog-preferences.glade:2748
+#: gnucash/gtkbuilder/dialog-preferences.glade:2865
 msgid "_Only display leaf account names"
-msgstr ""
+msgstr "Hanya _tampilkan nama-nama akun daun"
 
-#: gnucash/gtkbuilder/dialog-preferences.glade:2754
+#: gnucash/gtkbuilder/dialog-preferences.glade:2871
 msgid ""
 "If checked, only the names of the leaf accounts are displayed in the "
 "register and in the account selection popup. The default behaviour is to "
 "display the full name, including the path in the account tree. Checking this "
 "option implies that you use unique leaf names."
 msgstr ""
+"Jika dicentang, hanya nama-nama akun daun yang akan ditampilkan di dalam "
+"register dan di dalam popup pemilihan akun. Perilaku yang baku adalah "
+"menampilkan nama lengkap, termasuk path pada pohon akun. Mencentang opsi ini "
+"berarti Anda akan menggunakan nama-nama daun yang unik."
 
 #. Register2 feature
-#: gnucash/gtkbuilder/dialog-preferences.glade:2769
-#, fuzzy
+#: gnucash/gtkbuilder/dialog-preferences.glade:2886
 msgid "Number of _characters for auto complete"
-msgstr "Cacah karakter yang akan dilipat"
+msgstr "Jumlah _karakter untuk lengkapi otomatis"
 
 #. Register2 feature
-#: gnucash/gtkbuilder/dialog-preferences.glade:2803
+#: gnucash/gtkbuilder/dialog-preferences.glade:2920
 msgid "Show the _entered and reconcile dates"
-msgstr ""
+msgstr "Tampilkan tanggal dimasukkan dan r_ekonsiliasi"
 
 #. Register2 feature
-#: gnucash/gtkbuilder/dialog-preferences.glade:2819
-#, fuzzy
+#: gnucash/gtkbuilder/dialog-preferences.glade:2936
 msgid "Show the calendar b_uttons"
-msgstr "Kalender <b>%s</b> dihapus"
+msgstr "Tampilkan t_ombol kalender"
 
 #. Register2 feature
-#: gnucash/gtkbuilder/dialog-preferences.glade:2835
+#: gnucash/gtkbuilder/dialog-preferences.glade:2952
 msgid "_Move the selection to the blank split on expand"
-msgstr ""
+msgstr "Pindah_kan pilihan ke split kosong saat ekspansi"
 
 #. Register2 feature
-#: gnucash/gtkbuilder/dialog-preferences.glade:2851
+#: gnucash/gtkbuilder/dialog-preferences.glade:2968
 msgid "_Show entered and reconciled dates on selection"
-msgstr ""
+msgstr "Tampilkan tanggal dimasukkan dan rekon_siliasi saat memilih"
 
-#: gnucash/gtkbuilder/dialog-preferences.glade:2914
-#, fuzzy
+#: gnucash/gtkbuilder/dialog-preferences.glade:3031
 msgid "Register Defaults"
-msgstr "daftar"
+msgstr "Pengaturan Baku Register"
 
-#: gnucash/gtkbuilder/dialog-preferences.glade:2945
+#: gnucash/gtkbuilder/dialog-preferences.glade:3062
 msgid "<b>Default Report Currency</b>"
-msgstr ""
+msgstr "<b>Mata Uang Baku untuk Laporan</b>"
 
-#: gnucash/gtkbuilder/dialog-preferences.glade:2968
-#, fuzzy
+#: gnucash/gtkbuilder/dialog-preferences.glade:3085
 msgid "<b>Location</b>"
-msgstr "<b>Ruang Lingkup</b>"
+msgstr "<b>Lokasi</b>"
 
-#: gnucash/gtkbuilder/dialog-preferences.glade:2978
-#, fuzzy
+#: gnucash/gtkbuilder/dialog-preferences.glade:3095
 msgid "Report opens in a new _window"
-msgstr "Buka jendela Devhelp baru"
+msgstr "Laporan terbuka di _jendela baru"
 
-#: gnucash/gtkbuilder/dialog-preferences.glade:2984
+#: gnucash/gtkbuilder/dialog-preferences.glade:3101
 msgid ""
 "If checked, each report will be opened in its own top level window. If "
 "clear, the report will be opened in the current window."
 msgstr ""
 "Jika dicentang, setiap laporan akan dibuka pada jendela tingkat atas mereka "
-"sendiri. Jika tidak, laporan akan dibuka pada jendela saat ini."
+"sendiri. Jika tidak dicentang, laporan akan dibuka pada jendela saat ini."
 
-#: gnucash/gtkbuilder/dialog-preferences.glade:3012
-#, fuzzy
+#: gnucash/gtkbuilder/dialog-preferences.glade:3129
 msgid "<b>Default zoom level</b>"
-msgstr "Tingkat perbesaran bawaan untuk halaman baru"
+msgstr "<b>Tingkat perbesaran baku</b>"
 
-#: gnucash/gtkbuilder/dialog-preferences.glade:3090
-#, fuzzy
+#: gnucash/gtkbuilder/dialog-preferences.glade:3207
 msgid "Default zoom level"
-msgstr "Tingkat perbesaran bawaan"
+msgstr "Tingkat perbesaran baku"
 
-#: gnucash/gtkbuilder/dialog-preferences.glade:3125
-#, fuzzy
+#: gnucash/gtkbuilder/dialog-preferences.glade:3242
 msgid "Reports"
-msgstr ""
-"Apakah laporan cuaca ditampilkan, lokasi otomatis digunakan dan nama-lokasi"
+msgstr "Laporan"
 
-#: gnucash/gtkbuilder/dialog-preferences.glade:3144
-#, fuzzy
+#: gnucash/gtkbuilder/dialog-preferences.glade:3261
 msgid "<b>Window Geometry</b>"
-msgstr "<b>Ruang Lingkup</b>"
+msgstr "<b>Geometri Jendela</b>"
 
-#: gnucash/gtkbuilder/dialog-preferences.glade:3164
-#, fuzzy
+#: gnucash/gtkbuilder/dialog-preferences.glade:3281
 msgid "_Save window size and position"
-msgstr "Simpan posisi terakhir di peta"
+msgstr "_Simpan ukuran dan posisi jendela"
 
-#: gnucash/gtkbuilder/dialog-preferences.glade:3170
+#: gnucash/gtkbuilder/dialog-preferences.glade:3287
 msgid "Save window size and location when it is closed."
-msgstr ""
+msgstr "Simpan ukuran dan lokasi jendela ketika ditutup."
 
-#: gnucash/gtkbuilder/dialog-preferences.glade:3183
+#: gnucash/gtkbuilder/dialog-preferences.glade:3300
 msgid "Bring the most _recent tab to the front"
-msgstr ""
+msgstr "Bawa tab yang paling ba_ru ke depan"
 
-#: gnucash/gtkbuilder/dialog-preferences.glade:3215
-#, fuzzy
+#: gnucash/gtkbuilder/dialog-preferences.glade:3332
 msgid "<b>Tab Position</b>"
-msgstr "<b>Ruang Lingkup</b>"
+msgstr "<b>Posisi Tab</b>"
 
-#: gnucash/gtkbuilder/dialog-preferences.glade:3225
-#, fuzzy
+#: gnucash/gtkbuilder/dialog-preferences.glade:3342
 msgid "To_p"
-msgstr "%p"
+msgstr "Ata_s"
 
-#: gnucash/gtkbuilder/dialog-preferences.glade:3244
-#, fuzzy
+#: gnucash/gtkbuilder/dialog-preferences.glade:3361
 msgid "B_ottom"
-msgstr "<b>Ruang Lingkup</b>"
+msgstr "B_awah"
 
-#: gnucash/gtkbuilder/dialog-preferences.glade:3263
-#, fuzzy
+#: gnucash/gtkbuilder/dialog-preferences.glade:3380
 msgid "_Left"
-msgstr "K_iri"
+msgstr "_Kiri"
 
-#: gnucash/gtkbuilder/dialog-preferences.glade:3282
-#, fuzzy
+#: gnucash/gtkbuilder/dialog-preferences.glade:3399
 msgid "_Right"
-msgstr "Kan_an"
+msgstr "Ka_nan"
 
-#: gnucash/gtkbuilder/dialog-preferences.glade:3304
+#: gnucash/gtkbuilder/dialog-preferences.glade:3421
 msgid "<b>Summary Bar Position</b>"
-msgstr ""
+msgstr "<b>Posisi Bilah Ringkasan</b>"
 
-#: gnucash/gtkbuilder/dialog-preferences.glade:3333
+#: gnucash/gtkbuilder/dialog-preferences.glade:3450
 #: gnucash/gtkbuilder/dialog-print-check.glade:270
-#, fuzzy
 msgid "Bottom"
-msgstr "Dasar"
+msgstr "Bawah"
 
-#: gnucash/gtkbuilder/dialog-preferences.glade:3365
-#, fuzzy
+#: gnucash/gtkbuilder/dialog-preferences.glade:3482
 msgid "<b>Tabs</b>"
-msgstr "<b>Ruang Lingkup</b>"
+msgstr "<b>Tab</b>"
 
-#: gnucash/gtkbuilder/dialog-preferences.glade:3375
-#, fuzzy
+#: gnucash/gtkbuilder/dialog-preferences.glade:3492
 msgid "Show close button on _notebook tabs"
-msgstr "Notebook Menampilkan Mode Tab"
+msgstr "Tampilkan tombol tutup pada tab buku catata_n"
 
-#: gnucash/gtkbuilder/dialog-preferences.glade:3381
+#: gnucash/gtkbuilder/dialog-preferences.glade:3498
 msgid ""
 "Show a close button on each notebook tab. These function identically to the "
 "'Close' menu item."
 msgstr ""
+"Tampilkan tombol tutup pada setiap tab buku catatan. Fungsi ini sama dengan "
+"item menu 'Tutup'."
 
-#: gnucash/gtkbuilder/dialog-preferences.glade:3402
+#: gnucash/gtkbuilder/dialog-preferences.glade:3519
 msgid ""
 "If the text in the tab is longer than this value (the test is approximate) "
 "then the tab label will have the middle cut and replaced with an ellipsis."
 msgstr ""
+"Jika teks di dalam tab lebih panjang daripada nilai ini (tes ini menggunakan "
+"perkiraan) maka bagian tengah label tab akan dipotong dan diganti dengan "
+"elipsis."
 
-#: gnucash/gtkbuilder/dialog-preferences.glade:3404
-#, fuzzy
+#: gnucash/gtkbuilder/dialog-preferences.glade:3521
 msgid "30"
 msgstr "30"
 
-#: gnucash/gtkbuilder/dialog-preferences.glade:3422
-#, fuzzy
+#: gnucash/gtkbuilder/dialog-preferences.glade:3539
 msgid "characters"
-msgstr "Karakter"
+msgstr "karakter"
 
-#: gnucash/gtkbuilder/dialog-preferences.glade:3441
-#, fuzzy
+#: gnucash/gtkbuilder/dialog-preferences.glade:3558
 msgid "_Width"
 msgstr "_Lebar"
 
-#: gnucash/gtkbuilder/dialog-preferences.glade:3478
-#, fuzzy
+#: gnucash/gtkbuilder/dialog-preferences.glade:3595
 msgid "Windows"
-msgstr "Windows"
+msgstr "Jendela"
 
-#: gnucash/gtkbuilder/dialog-preferences.glade:3521
+#: gnucash/gtkbuilder/dialog-preferences.glade:3638
 msgid "<b>Online Quotes</b>"
 msgstr "<b>Harga Penawaran Daring</b>"
 
-#: gnucash/gtkbuilder/dialog-preferences.glade:3542
+#: gnucash/gtkbuilder/dialog-preferences.glade:3659
 msgid "Online Quotes"
 msgstr "Harga Penawaran Daring"
 
 #: gnucash/gtkbuilder/dialog-price.glade:12
-#, fuzzy
 msgid "Bid"
-msgstr "tipe harga: permintaan"
+msgstr "Penawaran"
 
 #: gnucash/gtkbuilder/dialog-price.glade:15
-#, fuzzy
 msgid "Ask"
-msgstr "Tanya"
+msgstr "Permintaan"
 
 #: gnucash/gtkbuilder/dialog-price.glade:18
 #: gnucash/report/reports/standard/budget-barchart.scm:78
 #: gnucash/report/reports/standard/budget.scm:125
-#, fuzzy
 msgid "Last"
 msgstr "Terakhir"
 
 #: gnucash/gtkbuilder/dialog-price.glade:21
-#, fuzzy
 msgid "Net Asset Value"
-msgstr "tipe akun: Aset"
+msgstr "Nilai Aset Bersih"
 
 #: gnucash/gtkbuilder/dialog-price.glade:53
-#, fuzzy
 msgid "Price Editor"
-msgstr "harga: kuotasi"
+msgstr "Penyunting Harga"
 
 #: gnucash/gtkbuilder/dialog-price.glade:131
-#, fuzzy
 msgid "_Namespace"
-msgstr "Namespace:"
+msgstr "_Namespace"
 
 #: gnucash/gtkbuilder/dialog-price.glade:188
-#, fuzzy
 msgid "S_ource"
-msgstr "/ pada %s"
+msgstr "S_umber"
 
 #: gnucash/gtkbuilder/dialog-price.glade:369
 msgid "Remove Old Prices"
-msgstr ""
+msgstr "Hapus Harga Lama"
 
 #: gnucash/gtkbuilder/dialog-price.glade:431
 msgid "Delete prices that meet the following criteria:"
-msgstr ""
+msgstr "Hapus harga yang memenuhi kriteria berikut:"
 
 #: gnucash/gtkbuilder/dialog-price.glade:451
 msgid "Remove all prices before date."
-msgstr ""
+msgstr "Hapus semua harga sebelum tanggal."
 
 #: gnucash/gtkbuilder/dialog-price.glade:465
 #, fuzzy
 msgid "Last of _Week"
-msgstr "Minggu lalu"
+msgstr "Terakhir _Week"
 
 #: gnucash/gtkbuilder/dialog-price.glade:469
+#, fuzzy
 msgid "Keep the last price of each week if present before date."
-msgstr ""
+msgstr "Menjaga harga terakhir dari setiap minggu jika ada sebelum tanggal."
 
 #: gnucash/gtkbuilder/dialog-price.glade:482
 #, fuzzy
 msgid "Last of _Month"
-msgstr "Bulan lalu"
+msgstr "Terakhir _Month"
 
 #: gnucash/gtkbuilder/dialog-price.glade:486
+#, fuzzy
 msgid "Keep the last price of each month if present before date."
-msgstr ""
+msgstr "Menjaga harga terakhir setiap bulan jika ada sebelum tanggal."
 
 #: gnucash/gtkbuilder/dialog-price.glade:499
 msgid "Last of _Quarter"
@@ -17149,43 +17542,48 @@ msgstr ""
 #: gnucash/gtkbuilder/dialog-price.glade:516
 #, fuzzy
 msgid "Last of _Period"
-msgstr "_Periode:"
+msgstr "Terakhir _Period"
 
 #: gnucash/gtkbuilder/dialog-price.glade:520
+#, fuzzy
 msgid ""
 "Keep the last price of each fiscal period if present before date. The fiscal "
 "period is derived from the accounting period end date."
 msgstr ""
+"Menjaga harga terakhir setiap periode fiskal jika ada sebelum tanggal. "
+"Periode fiskal berasal dari tanggal akhir periode akuntansi."
 
 #: gnucash/gtkbuilder/dialog-price.glade:533
-#, fuzzy
 msgid "_Scaled"
-msgstr "Skala"
+msgstr "Ter_skala"
 
 #: gnucash/gtkbuilder/dialog-price.glade:537
+#, fuzzy
 msgid ""
 "With the scaled option, prices are removed relative to the date selected. "
 "'One a month' is used for dates older than a year and 'One a week' is used "
 "for dates older than six months to a year."
 msgstr ""
+"Dengan pilihan berskala, harga relatif dihapus untuk tanggal yang dipilih. "
+"'Satu bulan' digunakan untuk tanggal tua dari satu tahun dan 'Satu minggu' "
+"digunakan untuk tanggal tua dari enam bulan sampai satu tahun."
 
 #: gnucash/gtkbuilder/dialog-price.glade:585
-#, fuzzy
 msgid "First Date"
-msgstr "_Depan:"
+msgstr "Tanggal Pertama"
 
 #: gnucash/gtkbuilder/dialog-price.glade:616
-#, fuzzy
 msgid "From these Commodities"
-msgstr "Dari Tepi"
+msgstr "Dari Komoditas ini"
 
 #: gnucash/gtkbuilder/dialog-price.glade:630
+#, fuzzy
 msgid "Keeping the last available price for option"
-msgstr ""
+msgstr "Menjaga harga terakhir yang tersedia untuk pilihan"
 
 #: gnucash/gtkbuilder/dialog-price.glade:662
 msgid "Include _Fetched online prices"
-msgstr ""
+msgstr "Ser_takan harga yang diambil secara daring"
 
 #: gnucash/gtkbuilder/dialog-price.glade:666
 msgid "If activated, prices added by Finance::Quote will be included."
@@ -17194,18 +17592,18 @@ msgstr ""
 
 #: gnucash/gtkbuilder/dialog-price.glade:681
 msgid "Include manually _Entered prices"
-msgstr ""
+msgstr "S_ertakan harga yang dimasukkan secara manual"
 
 #: gnucash/gtkbuilder/dialog-price.glade:685
 msgid "If activated, include manually entered prices."
-msgstr ""
+msgstr "Jika diaktifkan, sertakan harga yang dimasukkan secara manual."
 
 #: gnucash/gtkbuilder/dialog-price.glade:702
-#, fuzzy
 msgid "_Added by the application"
-msgstr "Ditambah"
+msgstr "Ditambahkan oleh _aplikasi"
 
 #: gnucash/gtkbuilder/dialog-price.glade:706
+#, fuzzy
 msgid ""
 "If activated, include application added prices.\n"
 "\n"
@@ -17214,46 +17612,41 @@ msgid ""
 "are able to correctly report values so removing them may make this less "
 "reliable."
 msgstr ""
+"Jika diaktifkan, termasuk aplikasi menambahkan harga.\n"
+"\n"
+"Harga ini ditambahkan sehingga selalu ada \"terdekat dalam waktu\" Harga "
+"untuk setiap transaksi multi-komoditas sehingga halaman dan laporan Account "
+"mampu benar melaporkan nilai sehingga menghapus mereka dapat membuat ini "
+"kurang dapat diandalkan."
 
 #: gnucash/gtkbuilder/dialog-price.glade:752
-#, fuzzy
 msgid "Before _Date"
-msgstr ""
-"Beberapa pabrikan tak menyediakan profil yang akurat bagi perangkat keras "
-"dan profil tersebut sebaiknya dihindari. Petunjuk yang baik adalah dengan "
-"mengunduh profil, dan bila tanggal pembuatan lebih dari setahun sebelum "
-"tanggal Anda membeli perangkat maka boleh jadi itu adalah data dummy yang "
-"diterbitkan dan tak berguna."
+msgstr "Tanggal Se_belum"
 
 #: gnucash/gtkbuilder/dialog-price.glade:795
 #: gnucash/report/reports/standard/price-scatter.scm:96
-#, fuzzy
 msgid "Price Database"
-msgstr "harga"
+msgstr "Basis Data Harga"
 
 #: gnucash/gtkbuilder/dialog-price.glade:842
-#, fuzzy
 msgid "Add a new price."
-msgstr "harga"
+msgstr "Tambah harga baru."
 
 #: gnucash/gtkbuilder/dialog-price.glade:860
-#, fuzzy
 msgid "Remove the current price."
-msgstr "harga"
+msgstr "Buang harga saat ini."
 
 #: gnucash/gtkbuilder/dialog-price.glade:878
-#, fuzzy
 msgid "Edit the current price."
-msgstr "Suntng janji saat ini sebagai baru"
+msgstr "Sunting harga saat ini."
 
 #: gnucash/gtkbuilder/dialog-price.glade:890
-#, fuzzy
 msgid "Remove _Old"
-msgstr "Anda dapat menghapus sebuah daftar putar tua yang tidak diinginkan."
+msgstr "Buang yang _Lama"
 
 #: gnucash/gtkbuilder/dialog-price.glade:895
 msgid "Remove prices older than a user-entered date."
-msgstr ""
+msgstr "Buang harga yang lebih lama daripada tanggal yang ditentukan pengguna."
 
 #: gnucash/gtkbuilder/dialog-price.glade:907
 msgid "_Get Quotes"
@@ -17264,9 +17657,8 @@ msgid "Get new online quotes for stock accounts."
 msgstr "Dapatkan harga penawaran daring baru untuk akun saham."
 
 #: gnucash/gtkbuilder/dialog-print-check.glade:129
-#, fuzzy
 msgid "Save Custom Check Format"
-msgstr "G_unakan format ini"
+msgstr "Simpan Format Cek Tersuai"
 
 #: gnucash/gtkbuilder/dialog-print-check.glade:192
 msgid ""
@@ -17274,67 +17666,57 @@ msgid ""
 "format\" selector of the Print Check dialog. Using the title of an existing "
 "custom format will cause that format to be overwritten."
 msgstr ""
+"Masukkan judul untuk format tersuai ini. Judul akan muncul pada pemilih "
+"\"Format cek\" pada dialog Cetak Cek. Menggunakan judul format tersuai yang "
+"sudah ada akan menyebabkan format itu ditimpa."
 
 #: gnucash/gtkbuilder/dialog-print-check.glade:244
-#, fuzzy
 msgid "Inches"
 msgstr "Inci"
 
 #: gnucash/gtkbuilder/dialog-print-check.glade:247
-#, fuzzy
 msgid "Centimeters"
 msgstr "Sentimeter"
 
 #: gnucash/gtkbuilder/dialog-print-check.glade:250
-#, fuzzy
 msgid "Millimeters"
 msgstr "Milimeter"
 
 #: gnucash/gtkbuilder/dialog-print-check.glade:253
-#, fuzzy
 msgid "Points"
-msgstr "Nilai"
+msgstr "Poin"
 
 #: gnucash/gtkbuilder/dialog-print-check.glade:267
-#, fuzzy
 msgid "Middle"
 msgstr "Tengah"
 
 #: gnucash/gtkbuilder/dialog-print-check.glade:284
 msgid "Quicken/QuickBooks (tm) US-Letter"
-msgstr ""
+msgstr "Quicken/QuickBooks (tm) US-Letter"
 
 #: gnucash/gtkbuilder/dialog-print-check.glade:287
 msgid "Deluxe(tm) Personal Checks US-Letter"
-msgstr ""
+msgstr "Deluxe(tm) Personal Checks US-Letter"
 
 #: gnucash/gtkbuilder/dialog-print-check.glade:290
 msgid "Quicken(tm) Wallet Checks w/ side stub"
-msgstr ""
+msgstr "Quicken(tm) Wallet Checks dengan rintisan samping"
 
 #: gnucash/gtkbuilder/dialog-print-check.glade:347
-#, fuzzy
 msgid "_Print"
 msgstr "_Cetak"
 
 #: gnucash/gtkbuilder/dialog-print-check.glade:386
-#, fuzzy
 msgid "Check _format"
-msgstr ""
-"BIla Anda tak bisa membuka arsip yang ada dengan <app>Manajer Arsip</app>, "
-"periksalah format berkas Anda. Beberapa tipe arsip mungkin memerlukan plugin "
-"tambahan; proses instalasi untuk ini berbeda-beda untuk distribusi yang "
-"berlainan."
+msgstr "_Format cek"
 
 #: gnucash/gtkbuilder/dialog-print-check.glade:401
-#, fuzzy
 msgid "Check po_sition"
-msgstr "Aksi Tombol Da_ya"
+msgstr "Po_sisi cek"
 
 #: gnucash/gtkbuilder/dialog-print-check.glade:417
-#, fuzzy
 msgid "_Date format"
-msgstr "format tanggal"
+msgstr "For_mat tanggal"
 
 #: gnucash/gtkbuilder/dialog-print-check.glade:531
 msgid ""
@@ -17342,160 +17724,136 @@ msgid ""
 "ADDRESS item defined in order\n"
 "to print an address on the check."
 msgstr ""
+"Format cek harus memiliki sebuah\n"
+"item ALAMAT yang didefinisikan di pesanan\n"
+"untuk mencetak alamat di cek."
 
 #: gnucash/gtkbuilder/dialog-print-check.glade:535
 #: gnucash/gtkbuilder/dialog-print-check.glade:1084
-#, fuzzy
 msgid "_Address"
-msgstr "_Alamat:"
+msgstr "_Alamat"
 
 #: gnucash/gtkbuilder/dialog-print-check.glade:562
-#, fuzzy
 msgid "Checks on first _page"
-msgstr "Pergi ke halaman pertama"
+msgstr "Cek di halaman _pertama"
 
 #: gnucash/gtkbuilder/dialog-print-check.glade:661
-#, fuzzy
 msgid "x"
 msgstr "x"
 
 #: gnucash/gtkbuilder/dialog-print-check.glade:673
-#, fuzzy
 msgid "y"
 msgstr "y"
 
 #: gnucash/gtkbuilder/dialog-print-check.glade:686
 #, fuzzy
 msgid "Pa_yee"
-msgstr "_Halaman…"
+msgstr "Pa_yee"
 
 #: gnucash/gtkbuilder/dialog-print-check.glade:716
-#, fuzzy
 msgid "Amount (_words)"
-msgstr "KATA"
+msgstr "Jumlah (_terbilang)"
 
 #: gnucash/gtkbuilder/dialog-print-check.glade:731
-#, fuzzy
 msgid "Amount (_numbers)"
-msgstr "Angka"
+msgstr "Jumlah (a_ngka)"
 
 #: gnucash/gtkbuilder/dialog-print-check.glade:746
-#: gnucash/gtkbuilder/gnc-plugin-page-register.glade:814
-#, fuzzy
+#: gnucash/gtkbuilder/gnc-plugin-page-register.glade:1013
 msgid "_Notes"
-msgstr "Catatan"
+msgstr "Catata_n"
 
 #: gnucash/gtkbuilder/dialog-print-check.glade:939
-#, fuzzy
 msgid "_Units"
-msgstr "Unit:"
+msgstr "Sat_uan"
 
 #: gnucash/gtkbuilder/dialog-print-check.glade:970
-#, fuzzy
 msgid "_Translation"
-msgstr "Translasi"
+msgstr "_Terjemahan"
 
 #: gnucash/gtkbuilder/dialog-print-check.glade:985
-#, fuzzy
 msgid "_Rotation"
-msgstr "Rotasi:"
+msgstr "_Rotasi"
 
 #: gnucash/gtkbuilder/dialog-print-check.glade:1032
 msgid "The origin point is the upper left-hand corner of the page."
-msgstr ""
+msgstr "Titik awal adalah sudut kiri atas halaman."
 
 #: gnucash/gtkbuilder/dialog-print-check.glade:1045
 msgid "The origin point is the lower left-hand corner of the page."
-msgstr ""
+msgstr "Titik awal adalah sudut kiri bawah halaman."
 
 #: gnucash/gtkbuilder/dialog-print-check.glade:1058
-#, fuzzy
 msgid "Degrees"
 msgstr "Derajat"
 
 #: gnucash/gtkbuilder/dialog-print-check.glade:1067
-#, fuzzy
 msgid "_Save Format"
-msgstr "Simpan format berkas bagi operasi seret-dan-jatuhkan"
+msgstr "_Simpan Format"
 
 #: gnucash/gtkbuilder/dialog-print-check.glade:1176
-#, fuzzy
 msgid "Splits Memo"
-msgstr "Memo"
+msgstr "Memo Split"
 
 #: gnucash/gtkbuilder/dialog-print-check.glade:1191
-#, fuzzy
 msgid "Splits Amount"
-msgstr "jumlah"
+msgstr "Jumlah Split"
 
 #: gnucash/gtkbuilder/dialog-print-check.glade:1206
-#, fuzzy
 msgid "Splits Account"
-msgstr "akun"
+msgstr "Akun Split"
 
 #: gnucash/gtkbuilder/dialog-print-check.glade:1368
-#, fuzzy
 msgid "Custom format"
-msgstr "Format Ubahan"
+msgstr "Format tersuai"
 
 #: gnucash/gtkbuilder/dialog-progress.glade:6
 msgid "1234567890123456789012345678901234567890"
-msgstr ""
+msgstr "1234567890123456789012345678901234567890"
 
 #: gnucash/gtkbuilder/dialog-progress.glade:12
-#, fuzzy
 msgid "Working..."
-msgstr "Buka kunci path salinan kerja"
+msgstr "Bekerja..."
 
 #: gnucash/gtkbuilder/dialog-report.glade:55
-#, fuzzy
 msgid "<b>A_vailable reports</b>"
-msgstr "<b>Ruang Lingkup</b>"
+msgstr "<b>Laporan _tersedia</b>"
 
 #: gnucash/gtkbuilder/dialog-report.glade:71
-#, fuzzy
 msgid "<b>_Selected Reports</b>"
-msgstr "<b>Ruang Lingkup</b>"
+msgstr "<b>Laporan ter_pilih</b>"
 
 #: gnucash/gtkbuilder/dialog-report.glade:101
-#, fuzzy
 msgid "A_dd  >>"
-msgstr "T_ambah"
+msgstr "T_ambah  >>"
 
 #: gnucash/gtkbuilder/dialog-report.glade:117
-#, fuzzy
 msgid "<< _Remove"
-msgstr "_Buang"
+msgstr "<< _Buang"
 
 #: gnucash/gtkbuilder/dialog-report.glade:145
-#, fuzzy
 msgid "Move _up"
-msgstr "Bergerak ke atas"
+msgstr "Pindah ke a_tas"
 
 #: gnucash/gtkbuilder/dialog-report.glade:161
-#, fuzzy
 msgid "Move dow_n"
-msgstr "Jangan p_ernah pindah"
+msgstr "Pindah ke _bawah"
 
 #: gnucash/gtkbuilder/dialog-report.glade:189
-#, fuzzy
 msgid "Si_ze..."
-msgstr "Ukura_n:"
+msgstr "Ukura_n..."
 
 #: gnucash/gtkbuilder/dialog-report.glade:257
-#, fuzzy
 msgid "HTML Style Sheets"
-msgstr "<html>Gaya awan standar. </html>"
+msgstr "Lembar Gaya HTML"
 
 #: gnucash/gtkbuilder/dialog-report.glade:306
-#, fuzzy
 msgid "<b>Available style sheets</b>"
-msgstr "<b>Gaya</b>"
+msgstr "<b>Lembar gaya tersedia</b>"
 
 #: gnucash/gtkbuilder/dialog-report.glade:386
-#, fuzzy
 msgid "<b>Style sheet options</b>"
-msgstr "<b>Gaya</b>"
+msgstr "<b>Opsi lembar gaya</b>"
 
 #: gnucash/gtkbuilder/dialog-report.glade:440
 msgid "Report Size"
@@ -17539,6 +17897,9 @@ msgid ""
 "re-enable any of these dialogs, select the check box next to the dialog, "
 "then click OK."
 msgstr ""
+"Anda meminta supaya dialog peringatan berikut tidak ditampilkan. Untuk "
+"mengaktifkan ulang dialog tersebut, pilih kotak centang di sebelah dialog, "
+"lalu klik OK."
 
 #: gnucash/gtkbuilder/dialog-reset-warnings.glade:120
 msgid "_Unselect All"
@@ -17574,131 +17935,117 @@ msgstr "Cari item di mana"
 
 #: gnucash/gtkbuilder/dialog-search.glade:228
 msgid "<b>Match all entries</b>"
-msgstr ""
+msgstr "<b>Cocokkan semua entri</b>"
 
 #: gnucash/gtkbuilder/dialog-search.glade:298
-#, fuzzy
 msgid "Search Criteria"
-msgstr ""
-"Tak ada pesan yang memenuhi kriteria pencarian Anda. Ubah kriteria pencarian "
-"dengan memilih penyaring baru Tampilkan pesan dari daftar drop down di atas "
-"atau dengan menjalankan pencarian baru dengan cara membersihkannya memakai "
-"butir menu Cari→Bersihkan atau dengan mengubah kueri di atas."
+msgstr "Kriteria Pencarian"
 
 #: gnucash/gtkbuilder/dialog-search.glade:331
-#, fuzzy
 msgid "New search"
-msgstr "Pilih Folder Pencarian"
+msgstr "Pencarian baru"
 
 #: gnucash/gtkbuilder/dialog-search.glade:348
-#, fuzzy
 msgid "Refine current search"
-msgstr "Perhalus"
+msgstr "Saring pencarian saat ini"
 
 #: gnucash/gtkbuilder/dialog-search.glade:365
-#, fuzzy
 msgid "Add results to current search"
-msgstr "Hasil pencarian untuk \"%s\""
+msgstr "Tambahkan hasil ke pencarian saat ini"
 
 #: gnucash/gtkbuilder/dialog-search.glade:382
-#, fuzzy
 msgid "Delete results from current search"
-msgstr "Banyanyak hasil pencarian maksimum dari pencarian geocode."
+msgstr "Hapus hasil dari pencarian saat ini"
 
 #: gnucash/gtkbuilder/dialog-search.glade:410
-#, fuzzy
 msgid "Search only active data"
-msgstr "Tak bisa mencari tanpa kalender aktif"
+msgstr "Cari hanya data aktif"
 
 #: gnucash/gtkbuilder/dialog-search.glade:416
 msgid ""
 "Choose whether to search all your data or only that marked as \"active\"."
 msgstr ""
+"Pilih apakah akan melakukan pencarian di semua data Anda atau hanya data "
+"yang ditandai sebagai \"aktif\"."
 
 #: gnucash/gtkbuilder/dialog-search.glade:434
-#, fuzzy
 msgid "Type of search"
-msgstr "Ketik untuk mencari"
+msgstr "Jenis pencarian"
 
 #: gnucash/gtkbuilder/dialog-sx.glade:8
-#, fuzzy
 msgid "Account Deletion"
-msgstr "Gagal Menghapus Surat"
+msgstr "Penghapusan Akun"
 
 #: gnucash/gtkbuilder/dialog-sx.glade:55
 msgid ""
 "The following Scheduled Transactions reference the deleted account and must "
 "now be corrected. Press OK to edit them."
 msgstr ""
+"Transaksi Terjadwal berikut merujuk pada akun yang terhapus dan sekarang "
+"harus diperbaiki. Tekan OK untuk menyuntingnya."
 
 #: gnucash/gtkbuilder/dialog-sx.glade:126
 #: gnucash/gtkbuilder/gnc-frequency.glade:171
 #: gnucash/gtkbuilder/gnc-frequency.glade:759
 #: gnucash/report/reports/standard/category-barchart.scm:129
 #: gnucash/report/trep-engine.scm:298 libgnucash/engine/Recurrence.c:744
-#, fuzzy
 msgid "Daily"
 msgstr "Harian"
 
 #: gnucash/gtkbuilder/dialog-sx.glade:132
-#, fuzzy
 msgid "Bi-Weekly"
-msgstr "Mingguan"
+msgstr "Dua Mingguan"
 
 #: gnucash/gtkbuilder/dialog-sx.glade:141
 #: gnucash/report/reports/standard/account-piecharts.scm:120
 #: gnucash/report/trep-engine.scm:332 libgnucash/engine/Recurrence.c:787
-#, fuzzy
 msgid "Yearly"
 msgstr "Tahunan"
 
 #: gnucash/gtkbuilder/dialog-sx.glade:147
-#, fuzzy
 msgid "Make Scheduled Transaction"
-msgstr "Transaksi Terjadwal"
+msgstr "Buat Transaksi Terjadwal"
 
 #: gnucash/gtkbuilder/dialog-sx.glade:162
-#, fuzzy
 msgid "Advanced..."
-msgstr "Tingkat lanjut"
+msgstr "Lebih Lanjut..."
 
 #: gnucash/gtkbuilder/dialog-sx.glade:312
-#, fuzzy
 msgid "Never End"
-msgstr "Janga_n Pernah"
+msgstr "Tak Pernah Berakhir"
 
 #: gnucash/gtkbuilder/dialog-sx.glade:364
-#, fuzzy
 msgid "Number of Occurrences"
-msgstr "Banyaknya Pengulangan"
+msgstr "Jumlah Kejadian"
 
 #: gnucash/gtkbuilder/dialog-sx.glade:512
 msgid "<b>Since Last Run</b>"
-msgstr ""
+msgstr "<b>Sejak Terakhir Dijalankan</b>"
 
 #: gnucash/gtkbuilder/dialog-sx.glade:535
 msgid "<b>Transaction Editor Defaults</b>"
-msgstr ""
+msgstr "<b>Pengaturan Baku Penyunting Transaksi</b>"
 
 #: gnucash/gtkbuilder/dialog-sx.glade:545
-#, fuzzy
 msgid "_Run when data file opened"
-msgstr "Tanggal dan waktu kapan berkas terakhir dibuka."
+msgstr "Jalankan ketika be_rkas data dibuka"
 
 #: gnucash/gtkbuilder/dialog-sx.glade:549
 msgid "Run the \"since last run\" process when a file is opened."
 msgstr ""
+"Jalankan proses \"sejak terakhir dijalankan\" ketika sebuah berkas dibuka."
 
 #: gnucash/gtkbuilder/dialog-sx.glade:562
-#, fuzzy
 msgid "_Show notification window"
-msgstr "Menampilkan daftar pemberitahuan"
+msgstr "Tampilkan jendela notifika_si"
 
 #: gnucash/gtkbuilder/dialog-sx.glade:566
 msgid ""
 "Show the notification window for the \"since last run\" process when a file "
 "is opened."
 msgstr ""
+"Tampilkan jendela notifikasi untuk proses \"sejak terakhir dijalankan\" "
+"ketika sebuah berkas dibuka."
 
 #: gnucash/gtkbuilder/dialog-sx.glade:579
 msgid "_Auto-create new transactions"
@@ -17707,24 +18054,23 @@ msgstr "Bu_at-otomatis transaksi baru"
 #: gnucash/gtkbuilder/dialog-sx.glade:583
 msgid "Set the 'auto-create' flag on newly created scheduled transactions."
 msgstr ""
-"Atur bendera 'buat-otomatis' pada transaksi terjadwal yang baru dibuat."
+"Setel bendera 'buat-otomatis' pada transaksi terjadwal yang baru dibuat."
 
 #: gnucash/gtkbuilder/dialog-sx.glade:603
 msgid "Begin notifications this many days before the transaction is created."
-msgstr ""
+msgstr "Mulai notifikasi sejumlah hari ini sebelum transaksi dibuat."
 
 #: gnucash/gtkbuilder/dialog-sx.glade:642
 msgid "Create the transaction this many days before its effective date."
-msgstr ""
+msgstr "Buat transaksi sejumlah hari ini sebelum tanggal efektif."
 
 #: gnucash/gtkbuilder/dialog-sx.glade:674
-#, fuzzy
 msgid "_Notify before transactions are created "
-msgstr "Dibuat sebelum"
+msgstr "Tampilkan _notifikasi sebelum transaksi dibuat "
 
 #: gnucash/gtkbuilder/dialog-sx.glade:679
 msgid "Set the 'notify' flag on newly created scheduled transactions."
-msgstr ""
+msgstr "Setel bendera 'beritahu' pada transaksi terjadwal yang baru dibuat."
 
 #: gnucash/gtkbuilder/dialog-sx.glade:698
 msgid "Crea_te in advance"
@@ -17732,7 +18078,7 @@ msgstr "Bua_t sebelumnya"
 
 #: gnucash/gtkbuilder/dialog-sx.glade:713
 msgid "R_emind in advance"
-msgstr "Ingatkan S_ebelumnya"
+msgstr "Ingatkan s_ebelumnya"
 
 #: gnucash/gtkbuilder/dialog-sx.glade:748
 msgid "Edit Scheduled Transaction"
@@ -17765,21 +18111,19 @@ msgstr "Buat otomatis"
 
 #: gnucash/gtkbuilder/dialog-sx.glade:986
 msgid "Conditional on splits not having variables"
-msgstr ""
+msgstr "Kondisional pada split yang tak memiliki variabel"
 
 #: gnucash/gtkbuilder/dialog-sx.glade:1056
 msgid "Notify me when created"
-msgstr ""
+msgstr "Beritahu saya jika dibuat"
 
 #: gnucash/gtkbuilder/dialog-sx.glade:1102
-#, fuzzy
 msgid "<b>Occurrences</b>"
-msgstr "<b>Ruang Lingkup</b>"
+msgstr "<b>Kemunculan</b>"
 
 #: gnucash/gtkbuilder/dialog-sx.glade:1125
-#, fuzzy
 msgid "Last Occurred: "
-msgstr "Telah terjadi galat"
+msgstr "Terakhir Terjadi: "
 
 #: gnucash/gtkbuilder/dialog-sx.glade:1159
 msgid "Repeats:"
@@ -17799,7 +18143,7 @@ msgstr "tersisa"
 
 #: gnucash/gtkbuilder/dialog-sx.glade:1323
 msgid "Overview"
-msgstr "Pratinjau"
+msgstr "Ikhtisar"
 
 #: gnucash/gtkbuilder/dialog-sx.glade:1396
 msgid "Template Transaction"
@@ -17810,9 +18154,8 @@ msgid "Since Last Run..."
 msgstr "Sejak Dijalankan Terakhir..."
 
 #: gnucash/gtkbuilder/dialog-sx.glade:1530
-#, fuzzy
 msgid "_Review created transactions"
-msgstr "Ulasan"
+msgstr "Tinjau t_ransaksi yang dibuat"
 
 #: gnucash/gtkbuilder/dialog-tax-info.glade:13
 msgid "Income Tax Information"
@@ -17839,136 +18182,112 @@ msgid "_Expense"
 msgstr "_Pengeluaran"
 
 #: gnucash/gtkbuilder/dialog-tax-info.glade:297
-#, fuzzy
 msgid "_Asset"
-msgstr "tipe akun: Aset"
+msgstr "_Aset"
 
 #: gnucash/gtkbuilder/dialog-tax-info.glade:313
-#, fuzzy
 msgid "_Liability/Equity"
-msgstr "ekuitas"
+msgstr "_Liabilitas/Ekuitas"
 
 #: gnucash/gtkbuilder/dialog-tax-info.glade:467
 msgid "<b>Account Tax Information</b>"
-msgstr ""
+msgstr "<b>Informasi Pajak Akun</b>"
 
 #: gnucash/gtkbuilder/dialog-tax-info.glade:478
-#, fuzzy
 msgid "Tax _Related"
-msgstr "kode pajak"
+msgstr "Te_rkait Pajak"
 
 #: gnucash/gtkbuilder/dialog-tax-info.glade:510
-#, fuzzy
 msgid "<b>_TXF Categories</b>"
-msgstr "<b>Ruang Lingkup</b>"
+msgstr "<b>Kategori _TXF</b>"
 
 #: gnucash/gtkbuilder/dialog-tax-info.glade:614
-#, fuzzy
 msgid "<b>Payer Name Source</b>"
-msgstr "<b>Beri nama konfigurasi panel yang baru</b>"
+msgstr "<b>Sumber Nama Pembayar</b>"
 
 #: gnucash/gtkbuilder/dialog-tax-info.glade:625
-#, fuzzy
 msgid "C_urrent Account"
-msgstr "T_ampilan Saat Ini"
+msgstr "Ak_un Saat Ini"
 
 #: gnucash/gtkbuilder/dialog-tax-info.glade:642
-#, fuzzy
 msgid "_Parent Account"
-msgstr "akun: akun induk"
+msgstr "Akun _Induk"
 
 #: gnucash/gtkbuilder/dialog-tax-info.glade:675
-#, fuzzy
 msgid "<b>Copy Number</b>"
-msgstr "<b>Ruang Lingkup</b>"
+msgstr "<b>Salin Nomor</b>"
 
 #: gnucash/gtkbuilder/dialog-tax-table.glade:7
-#, fuzzy
 msgid "Tax Tables"
-msgstr "kode pajak"
+msgstr "Tabel Pajak"
 
 #: gnucash/gtkbuilder/dialog-tax-table.glade:31
-#, fuzzy
 msgid "<b>Tax Tables</b>"
-msgstr "<b>Ruang Lingkup</b>"
+msgstr "<b>Tabel Pajak</b>"
 
 #: gnucash/gtkbuilder/dialog-tax-table.glade:141
 msgid "<b>Tax Table Entries</b>"
-msgstr ""
+msgstr "<b>Entri Tabel Pajak</b>"
 
 #: gnucash/gtkbuilder/dialog-tax-table.glade:197
-#, fuzzy
 msgid "De_lete"
-msgstr "_Standar"
+msgstr "Ha_pus"
 
 #: gnucash/gtkbuilder/dialog-tax-table.glade:212
-#, fuzzy
 msgid "Ne_w"
-msgstr "Sunting s_ebagai Baru…"
+msgstr "Ba_ru"
 
 #: gnucash/gtkbuilder/dialog-tax-table.glade:289
-#, fuzzy
 msgid "Value $"
-msgstr "Nilai:"
+msgstr "Nilai $"
 
 #: gnucash/gtkbuilder/dialog-tax-table.glade:292
-#, fuzzy
 msgid "Percent %"
-msgstr "Persen"
+msgstr "Persen %"
 
 #: gnucash/gtkbuilder/dialog-tax-table.glade:387
 msgid "<b>Tax Table Entry</b>"
-msgstr ""
+msgstr "<b>Entri Tabel Pajak</b>"
 
 #: gnucash/gtkbuilder/dialog-tax-table.glade:401
-#, fuzzy
 msgid "<b>Tax Table</b>"
-msgstr "<b>Ruang Lingkup</b>"
+msgstr "<b>Tabel Pajak</b>"
 
 #: gnucash/gtkbuilder/dialog-totd.glade:8
-#, fuzzy
 msgid "GnuCash Tip Of The Day"
-msgstr "_Tip Hari Ini"
+msgstr "Tip GnuCash Hari Ini"
 
 #: gnucash/gtkbuilder/dialog-totd.glade:26
-#, fuzzy
 msgid "_Previous"
 msgstr "Se_belumnya"
 
 #: gnucash/gtkbuilder/dialog-totd.glade:41
-#, fuzzy
 msgid "_Next"
 msgstr "Sela_njutnya"
 
 #: gnucash/gtkbuilder/dialog-totd.glade:95
-#, fuzzy
 msgid "<b>Tip of the Day</b>"
-msgstr "_Tip Hari Ini"
+msgstr "<b>Tip Hari Ini</b>"
 
 #: gnucash/gtkbuilder/dialog-totd.glade:145
-#, fuzzy
 msgid "_Show tips at startup"
-msgstr "Startup"
+msgstr "Tampilkan tip _saat mulai"
 
 #: gnucash/gtkbuilder/dialog-transfer.glade:8
-#, fuzzy
 msgid "Transfer Funds"
-msgstr "Transfer"
+msgstr "Dana Transfer"
 
 #: gnucash/gtkbuilder/dialog-transfer.glade:79
-#, fuzzy
 msgid "<b>Basic Information</b>"
-msgstr "<b>Ruang Lingkup</b>"
+msgstr "<b>Informasi Dasar</b>"
 
 #: gnucash/gtkbuilder/dialog-transfer.glade:283
-#, fuzzy
 msgid "<b>Transfer From</b>"
-msgstr "<b>Ruang Lingkup</b>"
+msgstr "<b>Transfer Dari</b>"
 
 #: gnucash/gtkbuilder/dialog-transfer.glade:342
-#, fuzzy
 msgid "<b>Transfer To</b>"
-msgstr "<b>Ruang Lingkup</b>"
+msgstr "<b>Transfer Ke</b>"
 
 #: gnucash/gtkbuilder/dialog-transfer.glade:447
 #: gnucash/gtkbuilder/dialog-transfer.glade:463
@@ -17978,44 +18297,31 @@ msgid "Show Income/Expense"
 msgstr "Tampilkan Pendapatan/Pengeluaran"
 
 #: gnucash/gtkbuilder/dialog-transfer.glade:496
-#, fuzzy
 msgid "<b>Currency Transfer</b>"
-msgstr "<b>Ruang Lingkup</b>"
+msgstr "<b>Mata Uang Transfer</b>"
 
 #: gnucash/gtkbuilder/dialog-transfer.glade:524
-#, fuzzy
 msgid "Exchange Rate"
-msgstr "kurs"
+msgstr "Nilai Tukar"
 
 #: gnucash/gtkbuilder/dialog-transfer.glade:605
-#, fuzzy
 msgid "_Fetch Rate"
-msgstr "Tak bisa mengambil daftar foto"
+msgstr "_Dapatkan Suku Bunga"
 
 #: gnucash/gtkbuilder/dialog-userpass.glade:7
-#, fuzzy
 msgid "Username and Password"
-msgstr ""
-"Gunakan nama pengguna dan kata sandi yang Anda daftarkan dengan jaringan IRC "
-"dengan perintah ini."
+msgstr "Nama Pengguna dan Kata Sandi"
 
 #: gnucash/gtkbuilder/dialog-userpass.glade:63
-#, fuzzy
 msgid "Enter your username and password"
-msgstr ""
-"Suatu dialog atau jendela situs web kecil akan terbuka dimana Anda dapat "
-"memasukkan kredensial akun daring Anda. Sebagai contoh, bila Anda menyiapkan "
-"akun Google, masukkan nama pengguna dan sandi Google Anda. Beberapa penyedia "
-"mengizinkan Anda membuat sebuah akun baru dari dialog log masuk."
+msgstr "Masukkan nama pengguna dan kata sandi Anda"
 
 #: gnucash/gtkbuilder/dialog-userpass.glade:84
-#, fuzzy
 msgid "_Username"
 msgstr "Nama Pengg_una"
 
 #: gnucash/gtkbuilder/dialog-userpass.glade:99
 #: gnucash/import-export/aqb/dialog-ab.glade:663
-#, fuzzy
 msgid "_Password"
 msgstr "Kata _Sandi"
 
@@ -18027,631 +18333,532 @@ msgstr ""
 "Nomor ID vendor. Jika dibiarkan kosong, akan dipilihkan nomor yang masuk akal"
 
 #: gnucash/gtkbuilder/gnc-date-format.glade:12
-#, fuzzy
 msgid "US (12/31/2001)"
-msgstr "Galon Amerika"
+msgstr "Amerika (12/31/2001)"
 
 #: gnucash/gtkbuilder/gnc-date-format.glade:15
 msgid "UK (31/12/2001)"
-msgstr ""
+msgstr "Inggris (31/12/2001)"
 
 #: gnucash/gtkbuilder/gnc-date-format.glade:18
-#, fuzzy
 msgid "Europe (31.12.2001)"
-msgstr "Eropa/Bratislava"
+msgstr "Eropa (31.12.2001)"
 
 #: gnucash/gtkbuilder/gnc-date-format.glade:21
-#, fuzzy
 msgid "ISO (2001-12-31)"
-msgstr "ISO"
+msgstr "ISO (2001-12-31)"
 
 #: gnucash/gtkbuilder/gnc-date-format.glade:27
 msgid "UTC - Coordinated Universal Time"
-msgstr ""
+msgstr "UTC - Waktu Universal Terkoordinasi"
 
 #: gnucash/gtkbuilder/gnc-date-format.glade:33
-#, fuzzy
 msgid "No Fancy Date Format"
-msgstr "format tanggal"
+msgstr "Tanpa Format Tanggal Lengkap"
 
 #: gnucash/gtkbuilder/gnc-date-format.glade:65
-#, fuzzy
 msgid "%Y-%m-%d"
-msgstr "%d/%m/%y"
+msgstr "%d/%m/%Y"
 
 #: gnucash/gtkbuilder/gnc-date-format.glade:77
-#, fuzzy
 msgid "Include Century"
-msgstr "Include="
+msgstr "Sertakan Abad"
 
 #: gnucash/gtkbuilder/gnc-date-format.glade:115
 msgid "Abbreviation"
-msgstr ""
+msgstr "Singkatan"
 
 #: gnucash/gtkbuilder/gnc-date-format.glade:225
-#, fuzzy
 msgid "Date format"
-msgstr "format tanggal"
+msgstr "Format tanggal"
 
 #: gnucash/gtkbuilder/gnc-frequency.glade:40
 #: gnucash/gtkbuilder/gnc-frequency.glade:208
 #: gnucash/gtkbuilder/gnc-frequency.glade:434
 #: libgnucash/engine/Recurrence.c:667
-#, fuzzy
 msgid "1st"
-msgstr "1"
+msgstr "Ke-1"
 
 #: gnucash/gtkbuilder/gnc-frequency.glade:43
 #: gnucash/gtkbuilder/gnc-frequency.glade:211
 #: gnucash/gtkbuilder/gnc-frequency.glade:437
 #: libgnucash/engine/Recurrence.c:667
-#, fuzzy
 msgid "2nd"
-msgstr "2"
+msgstr "Ke-2"
 
 #: gnucash/gtkbuilder/gnc-frequency.glade:46
 #: gnucash/gtkbuilder/gnc-frequency.glade:214
 #: gnucash/gtkbuilder/gnc-frequency.glade:440
 #: libgnucash/engine/Recurrence.c:667
-#, fuzzy
 msgid "3rd"
-msgstr "3"
+msgstr "Ke-3"
 
 #: gnucash/gtkbuilder/gnc-frequency.glade:49
 #: gnucash/gtkbuilder/gnc-frequency.glade:217
 #: gnucash/gtkbuilder/gnc-frequency.glade:443
 #: libgnucash/engine/Recurrence.c:667
-#, fuzzy
 msgid "4th"
-msgstr "4"
+msgstr "Ke-4"
 
 #: gnucash/gtkbuilder/gnc-frequency.glade:52
 #: gnucash/gtkbuilder/gnc-frequency.glade:220
 #: gnucash/gtkbuilder/gnc-frequency.glade:446
-#, fuzzy
 msgid "5th"
-msgstr "5"
+msgstr "Ke-5"
 
 #: gnucash/gtkbuilder/gnc-frequency.glade:55
 #: gnucash/gtkbuilder/gnc-frequency.glade:223
 #: gnucash/gtkbuilder/gnc-frequency.glade:449
-#, fuzzy
 msgid "6th"
-msgstr "6"
+msgstr "Ke-6"
 
 #: gnucash/gtkbuilder/gnc-frequency.glade:58
 #: gnucash/gtkbuilder/gnc-frequency.glade:226
 #: gnucash/gtkbuilder/gnc-frequency.glade:452
-#, fuzzy
 msgid "7th"
-msgstr "7"
+msgstr "Ke-7"
 
 #: gnucash/gtkbuilder/gnc-frequency.glade:61
 #: gnucash/gtkbuilder/gnc-frequency.glade:229
 #: gnucash/gtkbuilder/gnc-frequency.glade:455
-#, fuzzy
 msgid "8th"
-msgstr "8"
+msgstr "Ke-8"
 
 #: gnucash/gtkbuilder/gnc-frequency.glade:64
 #: gnucash/gtkbuilder/gnc-frequency.glade:232
 #: gnucash/gtkbuilder/gnc-frequency.glade:458
-#, fuzzy
 msgid "9th"
-msgstr "9"
+msgstr "Ke-9"
 
 #: gnucash/gtkbuilder/gnc-frequency.glade:67
 #: gnucash/gtkbuilder/gnc-frequency.glade:235
 #: gnucash/gtkbuilder/gnc-frequency.glade:461
-#, fuzzy
 msgid "10th"
-msgstr "10"
+msgstr "Ke-10"
 
 #: gnucash/gtkbuilder/gnc-frequency.glade:70
 #: gnucash/gtkbuilder/gnc-frequency.glade:238
 #: gnucash/gtkbuilder/gnc-frequency.glade:464
-#, fuzzy
 msgid "11th"
-msgstr "11"
+msgstr "Ke-11"
 
 #: gnucash/gtkbuilder/gnc-frequency.glade:73
 #: gnucash/gtkbuilder/gnc-frequency.glade:241
 #: gnucash/gtkbuilder/gnc-frequency.glade:467
-#, fuzzy
 msgid "12th"
-msgstr "12"
+msgstr "Ke-12"
 
 #: gnucash/gtkbuilder/gnc-frequency.glade:76
 #: gnucash/gtkbuilder/gnc-frequency.glade:244
 #: gnucash/gtkbuilder/gnc-frequency.glade:470
-#, fuzzy
 msgid "13th"
-msgstr "13"
+msgstr "Ke-13"
 
 #: gnucash/gtkbuilder/gnc-frequency.glade:79
 #: gnucash/gtkbuilder/gnc-frequency.glade:247
 #: gnucash/gtkbuilder/gnc-frequency.glade:473
-#, fuzzy
 msgid "14th"
-msgstr "14"
+msgstr "Ke-14"
 
 #: gnucash/gtkbuilder/gnc-frequency.glade:82
 #: gnucash/gtkbuilder/gnc-frequency.glade:250
 #: gnucash/gtkbuilder/gnc-frequency.glade:476
-#, fuzzy
 msgid "15th"
-msgstr "15"
+msgstr "Ke-15"
 
 #: gnucash/gtkbuilder/gnc-frequency.glade:85
 #: gnucash/gtkbuilder/gnc-frequency.glade:253
 #: gnucash/gtkbuilder/gnc-frequency.glade:479
-#, fuzzy
 msgid "16th"
-msgstr "16"
+msgstr "Ke-16"
 
 #: gnucash/gtkbuilder/gnc-frequency.glade:88
 #: gnucash/gtkbuilder/gnc-frequency.glade:256
 #: gnucash/gtkbuilder/gnc-frequency.glade:482
-#, fuzzy
 msgid "17th"
-msgstr "17"
+msgstr "Ke-17"
 
 #: gnucash/gtkbuilder/gnc-frequency.glade:91
 #: gnucash/gtkbuilder/gnc-frequency.glade:259
 #: gnucash/gtkbuilder/gnc-frequency.glade:485
-#, fuzzy
 msgid "18th"
-msgstr "18"
+msgstr "Ke-18"
 
 #: gnucash/gtkbuilder/gnc-frequency.glade:94
 #: gnucash/gtkbuilder/gnc-frequency.glade:262
 #: gnucash/gtkbuilder/gnc-frequency.glade:488
-#, fuzzy
 msgid "19th"
-msgstr "19"
+msgstr "Ke-19"
 
 #: gnucash/gtkbuilder/gnc-frequency.glade:97
 #: gnucash/gtkbuilder/gnc-frequency.glade:265
 #: gnucash/gtkbuilder/gnc-frequency.glade:491
-#, fuzzy
 msgid "20th"
-msgstr "20"
+msgstr "Ke-20"
 
 #: gnucash/gtkbuilder/gnc-frequency.glade:100
 #: gnucash/gtkbuilder/gnc-frequency.glade:268
 #: gnucash/gtkbuilder/gnc-frequency.glade:494
-#, fuzzy
 msgid "21st"
-msgstr "21"
+msgstr "Ke-21"
 
 #: gnucash/gtkbuilder/gnc-frequency.glade:103
 #: gnucash/gtkbuilder/gnc-frequency.glade:271
 #: gnucash/gtkbuilder/gnc-frequency.glade:497
-#, fuzzy
 msgid "22nd"
-msgstr "22"
+msgstr "Ke-22"
 
 #: gnucash/gtkbuilder/gnc-frequency.glade:106
 #: gnucash/gtkbuilder/gnc-frequency.glade:274
 #: gnucash/gtkbuilder/gnc-frequency.glade:500
-#, fuzzy
 msgid "23rd"
-msgstr "23"
+msgstr "Ke-23"
 
 #: gnucash/gtkbuilder/gnc-frequency.glade:109
 #: gnucash/gtkbuilder/gnc-frequency.glade:277
 #: gnucash/gtkbuilder/gnc-frequency.glade:503
-#, fuzzy
 msgid "24th"
-msgstr "24"
+msgstr "Ke-24"
 
 #: gnucash/gtkbuilder/gnc-frequency.glade:112
 #: gnucash/gtkbuilder/gnc-frequency.glade:280
 #: gnucash/gtkbuilder/gnc-frequency.glade:506
-#, fuzzy
 msgid "25th"
-msgstr "25"
+msgstr "Ke-25"
 
 #: gnucash/gtkbuilder/gnc-frequency.glade:115
 #: gnucash/gtkbuilder/gnc-frequency.glade:283
 #: gnucash/gtkbuilder/gnc-frequency.glade:509
-#, fuzzy
 msgid "26th"
-msgstr "26"
+msgstr "Ke-26"
 
 #: gnucash/gtkbuilder/gnc-frequency.glade:118
 #: gnucash/gtkbuilder/gnc-frequency.glade:286
 #: gnucash/gtkbuilder/gnc-frequency.glade:512
-#, fuzzy
 msgid "27th"
-msgstr "27"
+msgstr "Ke-27"
 
 #: gnucash/gtkbuilder/gnc-frequency.glade:121
 #: gnucash/gtkbuilder/gnc-frequency.glade:289
 #: gnucash/gtkbuilder/gnc-frequency.glade:515
-#, fuzzy
 msgid "28th"
-msgstr "28"
+msgstr "Ke-28"
 
 #: gnucash/gtkbuilder/gnc-frequency.glade:124
 #: gnucash/gtkbuilder/gnc-frequency.glade:292
 #: gnucash/gtkbuilder/gnc-frequency.glade:518
-#, fuzzy
 msgid "29th"
-msgstr "29"
+msgstr "Ke-29"
 
 #: gnucash/gtkbuilder/gnc-frequency.glade:127
 #: gnucash/gtkbuilder/gnc-frequency.glade:295
 #: gnucash/gtkbuilder/gnc-frequency.glade:521
-#, fuzzy
 msgid "30th"
-msgstr "30"
+msgstr "Ke-30"
 
 #: gnucash/gtkbuilder/gnc-frequency.glade:130
 #: gnucash/gtkbuilder/gnc-frequency.glade:298
 #: gnucash/gtkbuilder/gnc-frequency.glade:524
-#, fuzzy
 msgid "31st"
-msgstr "31"
+msgstr "Ke-31"
 
 #: gnucash/gtkbuilder/gnc-frequency.glade:133
 #: gnucash/gtkbuilder/gnc-frequency.glade:301
 #: gnucash/gtkbuilder/gnc-frequency.glade:527
-#, fuzzy
 msgid "Last day of month"
-msgstr "Bulan lalu"
+msgstr "Hari terakhir dalam satu bulan"
 
 #: gnucash/gtkbuilder/gnc-frequency.glade:136
 #: gnucash/gtkbuilder/gnc-frequency.glade:304
 #: gnucash/gtkbuilder/gnc-frequency.glade:530
-#, fuzzy
 msgid "Last Monday"
-msgstr "pada hari Senin terakhir"
+msgstr "Senin Terakhir"
 
 #: gnucash/gtkbuilder/gnc-frequency.glade:139
 #: gnucash/gtkbuilder/gnc-frequency.glade:307
 #: gnucash/gtkbuilder/gnc-frequency.glade:533
-#, fuzzy
 msgid "Last Tuesday"
-msgstr "pada hari Selasa terakhir"
+msgstr "Selasa Terakhir"
 
 #: gnucash/gtkbuilder/gnc-frequency.glade:142
 #: gnucash/gtkbuilder/gnc-frequency.glade:310
 #: gnucash/gtkbuilder/gnc-frequency.glade:536
-#, fuzzy
 msgid "Last Wednesday"
-msgstr "pada hari Rabu terakhir"
+msgstr "Rabu Terakhir"
 
 #: gnucash/gtkbuilder/gnc-frequency.glade:145
 #: gnucash/gtkbuilder/gnc-frequency.glade:313
 #: gnucash/gtkbuilder/gnc-frequency.glade:539
-#, fuzzy
 msgid "Last Thursday"
-msgstr "pada hari Kamis terakhir"
+msgstr "Kamis Terakhir"
 
 #: gnucash/gtkbuilder/gnc-frequency.glade:148
 #: gnucash/gtkbuilder/gnc-frequency.glade:316
 #: gnucash/gtkbuilder/gnc-frequency.glade:542
-#, fuzzy
 msgid "Last Friday"
-msgstr "pada hari Jumat terakhir"
+msgstr "Jumat Terakhir"
 
 #: gnucash/gtkbuilder/gnc-frequency.glade:151
 #: gnucash/gtkbuilder/gnc-frequency.glade:319
 #: gnucash/gtkbuilder/gnc-frequency.glade:545
-#, fuzzy
 msgid "Last Saturday"
-msgstr "pada hari Sabtu terakhir"
+msgstr "Sabtu Terakhir"
 
 #: gnucash/gtkbuilder/gnc-frequency.glade:154
 #: gnucash/gtkbuilder/gnc-frequency.glade:322
 #: gnucash/gtkbuilder/gnc-frequency.glade:548
-#, fuzzy
 msgid "Last Sunday"
-msgstr "pada hari Minggu terakhir"
+msgstr "Minggu Terakhir"
 
 #: gnucash/gtkbuilder/gnc-frequency.glade:168
 #: gnucash/gtkbuilder/gnc-frequency.glade:691
 #: libgnucash/engine/Recurrence.c:739
-#, fuzzy
 msgid "Once"
 msgstr "Sekali"
 
 #: gnucash/gtkbuilder/gnc-frequency.glade:177
 #: gnucash/gtkbuilder/gnc-frequency.glade:1237
-#, fuzzy
 msgid "Semi-Monthly"
-msgstr "Bulanan"
+msgstr "Setengah Bulanan"
 
 #: gnucash/gtkbuilder/gnc-frequency.glade:191
 #: gnucash/gtkbuilder/gnc-frequency.glade:417
 #: gnucash/gtkbuilder/gnc-frequency.glade:559
-#, fuzzy
 msgid "No change"
-msgstr "Tidak berubah"
+msgstr "Tak berubah"
 
 #: gnucash/gtkbuilder/gnc-frequency.glade:194
 #: gnucash/gtkbuilder/gnc-frequency.glade:420
 #: gnucash/gtkbuilder/gnc-frequency.glade:562
-#, fuzzy
 msgid "Use previous weekday"
-msgstr "Sebelumnya"
+msgstr "Gunakan hari kerja sebelumnya"
 
 #: gnucash/gtkbuilder/gnc-frequency.glade:197
 #: gnucash/gtkbuilder/gnc-frequency.glade:423
 #: gnucash/gtkbuilder/gnc-frequency.glade:565
-#, fuzzy
 msgid "Use next weekday"
-msgstr "Berikutnya:"
+msgstr "Gunakan hari kerja berikutnya"
 
 #: gnucash/gtkbuilder/gnc-frequency.glade:325
-#, fuzzy
 msgid "1st Mon"
-msgstr "1"
+msgstr "Sen ke-1"
 
 #: gnucash/gtkbuilder/gnc-frequency.glade:328
-#, fuzzy
 msgid "1st Tue"
-msgstr "1"
+msgstr "Sel ke-1"
 
 #: gnucash/gtkbuilder/gnc-frequency.glade:331
-#, fuzzy
 msgid "1st Wed"
-msgstr "1"
+msgstr "Rab ke-1"
 
 #: gnucash/gtkbuilder/gnc-frequency.glade:334
-#, fuzzy
 msgid "1st Thu"
-msgstr "1"
+msgstr "Kam ke-1"
 
 #: gnucash/gtkbuilder/gnc-frequency.glade:337
-#, fuzzy
 msgid "1st Fri"
-msgstr "1"
+msgstr "Jum ke-1"
 
 #: gnucash/gtkbuilder/gnc-frequency.glade:340
-#, fuzzy
 msgid "1st Sat"
-msgstr "1"
+msgstr "Sab ke-1"
 
 #: gnucash/gtkbuilder/gnc-frequency.glade:343
-#, fuzzy
 msgid "1st Sun"
-msgstr "Min"
+msgstr "Min ke-1"
 
 #: gnucash/gtkbuilder/gnc-frequency.glade:346
-#, fuzzy
 msgid "2nd Mon"
-msgstr "Sen"
+msgstr "Sen ke-2"
 
 #: gnucash/gtkbuilder/gnc-frequency.glade:349
-#, fuzzy
 msgid "2nd Tue"
-msgstr "Sel"
+msgstr "Sel ke-2"
 
 #: gnucash/gtkbuilder/gnc-frequency.glade:352
-#, fuzzy
 msgid "2nd Wed"
-msgstr "Rab"
+msgstr "Rab ke-2"
 
 #: gnucash/gtkbuilder/gnc-frequency.glade:355
-#, fuzzy
 msgid "2nd Thu"
-msgstr "Kam"
+msgstr "Kam ke-2"
 
 #: gnucash/gtkbuilder/gnc-frequency.glade:358
-#, fuzzy
 msgid "2nd Fri"
-msgstr "Jum"
+msgstr "Jum ke-2"
 
 #: gnucash/gtkbuilder/gnc-frequency.glade:361
-#, fuzzy
 msgid "2nd Sat"
-msgstr "Sab"
+msgstr "Sab ke-2"
 
 #: gnucash/gtkbuilder/gnc-frequency.glade:364
-#, fuzzy
 msgid "2nd Sun"
-msgstr "Min"
+msgstr "Min ke-2"
 
 #: gnucash/gtkbuilder/gnc-frequency.glade:367
-#, fuzzy
 msgid "3rd Mon"
-msgstr "Sen"
+msgstr "Sen ke-3"
 
 #: gnucash/gtkbuilder/gnc-frequency.glade:370
-#, fuzzy
 msgid "3rd Tue"
-msgstr "Sel"
+msgstr "Sel ke-3"
 
 #: gnucash/gtkbuilder/gnc-frequency.glade:373
-#, fuzzy
 msgid "3rd Wed"
-msgstr "Rab"
+msgstr "Rab ke-3"
 
 #: gnucash/gtkbuilder/gnc-frequency.glade:376
-#, fuzzy
 msgid "3rd Thu"
-msgstr "Kam"
+msgstr "Kam ke-3"
 
 #: gnucash/gtkbuilder/gnc-frequency.glade:379
-#, fuzzy
 msgid "3rd Fri"
-msgstr "Jum"
+msgstr "Jum ke-3"
 
 #: gnucash/gtkbuilder/gnc-frequency.glade:382
-#, fuzzy
 msgid "3rd Sat"
-msgstr "Sab"
+msgstr "Sab ke-3"
 
 #: gnucash/gtkbuilder/gnc-frequency.glade:385
-#, fuzzy
 msgid "3rd Sun"
-msgstr "Min"
+msgstr "Min ke-3"
 
 #: gnucash/gtkbuilder/gnc-frequency.glade:388
-#, fuzzy
 msgid "4th Mon"
-msgstr "Sen"
+msgstr "Sen ke-4"
 
 #: gnucash/gtkbuilder/gnc-frequency.glade:391
-#, fuzzy
 msgid "4th Tue"
-msgstr "Sel"
+msgstr "Sel ke-4"
 
 #: gnucash/gtkbuilder/gnc-frequency.glade:394
-#, fuzzy
 msgid "4th Wed"
-msgstr "Rab"
+msgstr "Rab ke-4"
 
 #: gnucash/gtkbuilder/gnc-frequency.glade:397
-#, fuzzy
 msgid "4th Thu"
-msgstr "Kam"
+msgstr "Kam ke-4"
 
 #: gnucash/gtkbuilder/gnc-frequency.glade:400
-#, fuzzy
 msgid "4th Fri"
-msgstr "Jum"
+msgstr "Jum ke-4"
 
 #: gnucash/gtkbuilder/gnc-frequency.glade:403
-#, fuzzy
 msgid "4th Sat"
-msgstr "Sab"
+msgstr "Sab ke-4"
 
 #: gnucash/gtkbuilder/gnc-frequency.glade:406
-#, fuzzy
 msgid "4th Sun"
-msgstr "Min"
+msgstr "Min ke-4"
 
 #: gnucash/gtkbuilder/gnc-frequency.glade:648
-#, fuzzy
 msgid "Not scheduled"
-msgstr "dijadwalkan setelah"
+msgstr "Tak terjadwal"
 
 #: gnucash/gtkbuilder/gnc-frequency.glade:672
-#, fuzzy
 msgid "Select occurrence date above."
-msgstr "Pilih lapisan di atas lapisan yang saat ini"
+msgstr "Pilih tanggal kejadian di atas."
 
 #: gnucash/gtkbuilder/gnc-frequency.glade:709
-#, fuzzy
 msgctxt "Daily"
 msgid "Every"
 msgstr "Setiap"
 
 #: gnucash/gtkbuilder/gnc-frequency.glade:740
-#, fuzzy
 msgctxt "Daily"
 msgid "days."
-msgstr "Hari"
+msgstr "hari."
 
 #: gnucash/gtkbuilder/gnc-frequency.glade:786
-#, fuzzy
 msgctxt "Weekly"
 msgid "Every"
 msgstr "Setiap"
 
 #: gnucash/gtkbuilder/gnc-frequency.glade:817
-#, fuzzy
 msgctxt "Weekly"
 msgid "weeks."
-msgstr "minggu"
+msgstr "minggu."
 
 #: gnucash/gtkbuilder/gnc-frequency.glade:851
 #: gnucash/report/reports/example/daily-reports.scm:192
-#, fuzzy
 msgid "Saturday"
 msgstr "Sabtu"
 
 #: gnucash/gtkbuilder/gnc-frequency.glade:866
 #: gnucash/report/reports/example/daily-reports.scm:192
-#, fuzzy
 msgid "Friday"
 msgstr "Jumat"
 
 #: gnucash/gtkbuilder/gnc-frequency.glade:881
 #: gnucash/report/reports/example/daily-reports.scm:191
-#, fuzzy
 msgid "Wednesday"
 msgstr "Rabu"
 
 #: gnucash/gtkbuilder/gnc-frequency.glade:896
 #: gnucash/report/reports/example/daily-reports.scm:192
-#, fuzzy
 msgid "Thursday"
 msgstr "Kamis"
 
 #: gnucash/gtkbuilder/gnc-frequency.glade:911
 #: gnucash/report/reports/example/daily-reports.scm:190
-#, fuzzy
 msgid "Sunday"
 msgstr "Minggu"
 
 #: gnucash/gtkbuilder/gnc-frequency.glade:926
 #: gnucash/report/reports/example/daily-reports.scm:190
-#, fuzzy
 msgid "Monday"
 msgstr "Senin"
 
 #: gnucash/gtkbuilder/gnc-frequency.glade:941
 #: gnucash/report/reports/example/daily-reports.scm:191
-#, fuzzy
 msgid "Tuesday"
 msgstr "Selasa"
 
 #: gnucash/gtkbuilder/gnc-frequency.glade:1021
-#, fuzzy
 msgctxt "Semimonthly"
 msgid "Every"
 msgstr "Setiap"
 
 #: gnucash/gtkbuilder/gnc-frequency.glade:1051
-#, fuzzy
 msgctxt "Semimonthly"
 msgid "months."
-msgstr "bulan"
+msgstr "bulan."
 
 #: gnucash/gtkbuilder/gnc-frequency.glade:1076
-#, fuzzy
 msgid "First on the"
-msgstr "_Depan:"
+msgstr "Pertama pada"
 
 #: gnucash/gtkbuilder/gnc-frequency.glade:1109
 #: gnucash/gtkbuilder/gnc-frequency.glade:1186
 #: gnucash/gtkbuilder/gnc-frequency.glade:1356
-#, fuzzy
 msgid "except on weekends"
-msgstr "Akhir minggu"
+msgstr "kecuali akhir pekan"
 
 #: gnucash/gtkbuilder/gnc-frequency.glade:1153
 msgid "then on the"
-msgstr ""
+msgstr "kemudian pada"
 
 #: gnucash/gtkbuilder/gnc-frequency.glade:1265
-#, fuzzy
 msgctxt "Monthly"
 msgid "Every"
 msgstr "Setiap"
 
 #: gnucash/gtkbuilder/gnc-frequency.glade:1297
-#, fuzzy
 msgctxt "Monthly"
 msgid "months."
-msgstr "bulan"
+msgstr "bulan."
 
 #: gnucash/gtkbuilder/gnc-frequency.glade:1323
 msgid "On the"
-msgstr ""
+msgstr "Pada"
 
 #: gnucash/gtkbuilder/gnc-plugin-page-budget.glade:15
 msgid "Edit budget for all periods"
 msgstr "Sunting anggaran untuk semua periode"
 
 #: gnucash/gtkbuilder/gnc-plugin-page-budget.glade:116
-#, fuzzy
 msgid "Replace"
-msgstr "Gantikan"
+msgstr "Ganti"
 
 #: gnucash/gtkbuilder/gnc-plugin-page-budget.glade:120
 msgid ""
@@ -18659,10 +18866,9 @@ msgid ""
 "unset budget for the accounts."
 msgstr ""
 "Ganti anggaran untuk semua periode dengan 'nilai' baru. Gunakan nilai kosong "
-"untuk menghapus setelan anggaran untuk suatu akun."
+"untuk menghapus pengaturan anggaran untuk suatu akun."
 
 #: gnucash/gtkbuilder/gnc-plugin-page-budget.glade:133
-#, fuzzy
 msgid "Add"
 msgstr "Tambah"
 
@@ -18671,9 +18877,8 @@ msgid "Add 'value' to current budget for each period"
 msgstr "Tambahkan 'nilai' ke anggaran saat ini untuk tiap periode"
 
 #: gnucash/gtkbuilder/gnc-plugin-page-budget.glade:151
-#, fuzzy
 msgid "Multiply"
-msgstr "Melipat-gandakan"
+msgstr "Kali"
 
 #: gnucash/gtkbuilder/gnc-plugin-page-budget.glade:155
 msgid "Multiply current budget for each period by 'value'"
@@ -18682,17 +18887,16 @@ msgstr "Kalikan anggaran saat ini untuk setiap periode dengan 'nilai'"
 #: gnucash/gtkbuilder/gnc-plugin-page-budget.glade:177
 #: gnucash/gtkbuilder/gnc-plugin-page-budget.glade:316
 msgid "The number of leading digits to keep when rounding"
-msgstr ""
+msgstr "Jumlah digit awal yang harus dipertahankan saat pembulatan"
 
 #: gnucash/gtkbuilder/gnc-plugin-page-budget.glade:196
 #: gnucash/gtkbuilder/gnc-plugin-page-budget.glade:334
-#, fuzzy
 msgid "Significant Digits"
-msgstr "Dijit:"
+msgstr "Digit Signifikan"
 
 #: gnucash/gtkbuilder/gnc-plugin-page-budget.glade:208
 msgid "Use a fixed value or apply transformation for all periods."
-msgstr ""
+msgstr "Gunakan nilai tetap atau terapkan transformasi untuk semua periode."
 
 #: gnucash/gtkbuilder/gnc-plugin-page-budget.glade:240
 msgid "Estimate Budget Values"
@@ -18701,6 +18905,8 @@ msgstr "Perkirakan Nilai Anggaran"
 #: gnucash/gtkbuilder/gnc-plugin-page-budget.glade:303
 msgid "Use the average value over all actual periods for all projected periods"
 msgstr ""
+"Gunakan nilai rata-rata selama semua periode aktual untuk semua periode yang "
+"diproyeksikan"
 
 #: gnucash/gtkbuilder/gnc-plugin-page-budget.glade:372
 msgid ""
@@ -18711,9 +18917,8 @@ msgstr ""
 "transaksi-transaksi sebelumnya."
 
 #: gnucash/gtkbuilder/gnc-plugin-page-budget.glade:389
-#, fuzzy
 msgid "Use Average"
-msgstr "Rata-rata:"
+msgstr "Gunakan Rata-rata"
 
 #: gnucash/gtkbuilder/gnc-plugin-page-budget.glade:422
 #: gnucash/gtkbuilder/gnc-plugin-page-budget.glade:683
@@ -18725,9 +18930,8 @@ msgid "Budget Name"
 msgstr "Nama Anggaran"
 
 #: gnucash/gtkbuilder/gnc-plugin-page-budget.glade:552
-#, fuzzy
 msgid "Number of Periods"
-msgstr "_Cacah Perioda:"
+msgstr "Jumlah Periode"
 
 #: gnucash/gtkbuilder/gnc-plugin-page-budget.glade:582
 msgid "Budget Period"
@@ -18736,18 +18940,18 @@ msgstr "Periode Anggaran"
 #: gnucash/gtkbuilder/gnc-plugin-page-budget.glade:634
 #: gnucash/report/reports/standard/general-ledger.scm:126
 #: gnucash/report/trep-engine.scm:65 gnucash/report/trep-engine.scm:1103
-#, fuzzy
 msgid "Show Account Code"
-msgstr "kode akun"
+msgstr "Tampilkan Kode Akun"
 
 #: gnucash/gtkbuilder/gnc-plugin-page-budget.glade:658
-#, fuzzy
 msgid "Show Description"
-msgstr "Keterangan Bagi"
+msgstr "Tampilkan Deskripsi"
 
 #: gnucash/gtkbuilder/gnc-plugin-page-budget.glade:700
 msgid "Note: Use View->'Filter By...' to control visible accounts."
 msgstr ""
+"Catatan: Gunakan Lihat->'Filter Berdasar...' untuk mengatur akun yang "
+"ditampilkan."
 
 #: gnucash/gtkbuilder/gnc-plugin-page-budget.glade:721
 msgid "Budget List"
@@ -18779,75 +18983,85 @@ msgstr "Masukkan Catatan"
 
 #. Duplicate Transaction Dialog
 #: gnucash/gtkbuilder/gnc-plugin-page-register2.glade:13
-#: gnucash/gtkbuilder/gnc-plugin-page-register.glade:917
+#: gnucash/gtkbuilder/gnc-plugin-page-register.glade:565
 msgid "Duplicate Transaction"
 msgstr "Gandakan Transaksi"
 
-#: gnucash/gtkbuilder/gnc-plugin-page-register2.glade:93
-#: gnucash/gtkbuilder/gnc-plugin-page-register.glade:999
+#: gnucash/gtkbuilder/gnc-plugin-page-register2.glade:73
+#: gnucash/gtkbuilder/gnc-plugin-page-register.glade:624
+msgid "<b>New Transaction Information</b>"
+msgstr "<b>Informasi Transaksi Baru</b>"
+
+#: gnucash/gtkbuilder/gnc-plugin-page-register2.glade:108
+#: gnucash/gtkbuilder/gnc-plugin-page-register.glade:661
 msgid "_Number"
 msgstr "_Nomor"
 
-#: gnucash/gtkbuilder/gnc-plugin-page-register2.glade:144
-#: gnucash/gtkbuilder/gnc-plugin-page-register.glade:1105
-msgid "<b>New Transaction Information</b>"
-msgstr "<b>Informasi Transaksi Baru</b>"
+#: gnucash/gtkbuilder/gnc-plugin-page-register2.glade:146
+#: gnucash/gtkbuilder/gnc-plugin-page-register.glade:689
+msgid "_Transaction Number"
+msgstr "Nomor _Transaksi"
+
+#: gnucash/gtkbuilder/gnc-plugin-page-register2.glade:161
+#: gnucash/gtkbuilder/gnc-plugin-page-register.glade:719
+msgid "Keep Linked Document Entry"
+msgstr "Pertahankan Entri Dokumen Tertaut"
 
 #. Filter register by... Dialog
-#: gnucash/gtkbuilder/gnc-plugin-page-register2.glade:166
+#: gnucash/gtkbuilder/gnc-plugin-page-register2.glade:213
 #: gnucash/gtkbuilder/gnc-plugin-page-register.glade:13
 msgid "Filter register by..."
 msgstr "Filter register berdasar..."
 
 #. Filter By Dialog, Date Tab
-#: gnucash/gtkbuilder/gnc-plugin-page-register2.glade:233
+#: gnucash/gtkbuilder/gnc-plugin-page-register2.glade:280
 #: gnucash/gtkbuilder/gnc-plugin-page-register.glade:80
 msgid "Show _All"
 msgstr "Tampilkan Semu_a"
 
-#: gnucash/gtkbuilder/gnc-plugin-page-register2.glade:249
+#: gnucash/gtkbuilder/gnc-plugin-page-register2.glade:296
 msgid "Select Range:"
 msgstr "Pilih Rentang:"
 
-#: gnucash/gtkbuilder/gnc-plugin-page-register2.glade:302
+#: gnucash/gtkbuilder/gnc-plugin-page-register2.glade:349
 #: gnucash/gtkbuilder/gnc-plugin-page-register.glade:193
 msgid "Choo_se Date"
 msgstr "Pili_h Tanggal"
 
 #. Filter By Dialog, State Tab
-#: gnucash/gtkbuilder/gnc-plugin-page-register2.glade:495
+#: gnucash/gtkbuilder/gnc-plugin-page-register2.glade:542
 #: gnucash/gtkbuilder/gnc-plugin-page-register.glade:386
 msgid "_Unreconciled"
-msgstr ""
+msgstr "Tak-direk_onsiliasi"
 
-#: gnucash/gtkbuilder/gnc-plugin-page-register2.glade:527
+#: gnucash/gtkbuilder/gnc-plugin-page-register2.glade:574
 #: gnucash/gtkbuilder/gnc-plugin-page-register.glade:418
 msgid "C_leared"
-msgstr ""
+msgstr "K_lir"
 
-#: gnucash/gtkbuilder/gnc-plugin-page-register2.glade:543
+#: gnucash/gtkbuilder/gnc-plugin-page-register2.glade:590
 #: gnucash/gtkbuilder/gnc-plugin-page-register.glade:434
 msgid "_Voided"
 msgstr "_Dibatalkan"
 
-#: gnucash/gtkbuilder/gnc-plugin-page-register2.glade:559
+#: gnucash/gtkbuilder/gnc-plugin-page-register2.glade:606
 #: gnucash/gtkbuilder/gnc-plugin-page-register.glade:450
 msgid "_Frozen"
 msgstr "Di_bekukan"
 
 #. Filter By Dialog, below tabs
-#: gnucash/gtkbuilder/gnc-plugin-page-register2.glade:638
+#: gnucash/gtkbuilder/gnc-plugin-page-register2.glade:685
 #: gnucash/gtkbuilder/gnc-plugin-page-register.glade:529
 msgid "Sa_ve Filter"
 msgstr "Si_mpan Filter"
 
-#: gnucash/gtkbuilder/gnc-plugin-page-register2.glade:674
-#: gnucash/gtkbuilder/gnc-plugin-page-register.glade:1127
+#: gnucash/gtkbuilder/gnc-plugin-page-register2.glade:721
+#: gnucash/gtkbuilder/gnc-plugin-page-register.glade:1111
 msgid "Void Transaction"
 msgstr "Batalkan Transaksi"
 
-#: gnucash/gtkbuilder/gnc-plugin-page-register2.glade:738
-#: gnucash/gtkbuilder/gnc-plugin-page-register.glade:1191
+#: gnucash/gtkbuilder/gnc-plugin-page-register2.glade:785
+#: gnucash/gtkbuilder/gnc-plugin-page-register.glade:1175
 msgid "Reason for voiding transaction"
 msgstr "Alasan untuk membatalkan transaksi"
 
@@ -18864,101 +19078,93 @@ msgstr ""
 "Jika 0, semua hari sebelumnya akan disertakan"
 
 #. Sort register by Dialog
-#: gnucash/gtkbuilder/gnc-plugin-page-register.glade:570
+#: gnucash/gtkbuilder/gnc-plugin-page-register.glade:769
 msgid "Sort register by..."
 msgstr "Urutkan register berdasar..."
 
-#: gnucash/gtkbuilder/gnc-plugin-page-register.glade:633
+#: gnucash/gtkbuilder/gnc-plugin-page-register.glade:832
 msgid "_Standard Order"
 msgstr "Urutan _Standar"
 
-#: gnucash/gtkbuilder/gnc-plugin-page-register.glade:637
+#: gnucash/gtkbuilder/gnc-plugin-page-register.glade:836
 msgid "Keep normal account order."
 msgstr "Pertahankan urutan akun normal."
 
-#: gnucash/gtkbuilder/gnc-plugin-page-register.glade:666
+#: gnucash/gtkbuilder/gnc-plugin-page-register.glade:865
 #: gnucash/report/trep-engine.scm:162
 msgid "Sort by date."
 msgstr "Urutkan berdasar tanggal."
 
-#: gnucash/gtkbuilder/gnc-plugin-page-register.glade:685
+#: gnucash/gtkbuilder/gnc-plugin-page-register.glade:884
 msgid "Sort by the date of entry."
 msgstr "Urutkan berdasar tanggal entri."
 
-#: gnucash/gtkbuilder/gnc-plugin-page-register.glade:700
+#: gnucash/gtkbuilder/gnc-plugin-page-register.glade:899
 msgid "S_tatement Date"
 msgstr "Tanggal Pernya_taan"
 
-#: gnucash/gtkbuilder/gnc-plugin-page-register.glade:704
+#: gnucash/gtkbuilder/gnc-plugin-page-register.glade:903
 msgid ""
 "Sort by the statement date (and group by cleared, unreconciled, reconciled)."
 msgstr ""
-"Urutkan berdasar tanggal pernyataan (dan kelompokkan berdasar selesai, tak-"
+"Urutkan berdasar tanggal pernyataan (dan kelompokkan berdasar klir, tak-"
 "direkonsiliasi, direkonsiliasi)."
 
-#: gnucash/gtkbuilder/gnc-plugin-page-register.glade:719
+#: gnucash/gtkbuilder/gnc-plugin-page-register.glade:918
 msgid "Num_ber"
 msgstr "No_mor"
 
-#: gnucash/gtkbuilder/gnc-plugin-page-register.glade:723
+#: gnucash/gtkbuilder/gnc-plugin-page-register.glade:922
 msgid "Sort by number."
 msgstr "Urutkan berdasar nomor."
 
-#: gnucash/gtkbuilder/gnc-plugin-page-register.glade:738
+#: gnucash/gtkbuilder/gnc-plugin-page-register.glade:937
 msgid "Amo_unt"
 msgstr "J_umlah"
 
-#: gnucash/gtkbuilder/gnc-plugin-page-register.glade:742
+#: gnucash/gtkbuilder/gnc-plugin-page-register.glade:941
 #: gnucash/report/trep-engine.scm:208
 msgid "Sort by amount."
 msgstr "Urutkan berdasar jumlah."
 
-#: gnucash/gtkbuilder/gnc-plugin-page-register.glade:761
+#: gnucash/gtkbuilder/gnc-plugin-page-register.glade:960
 #: gnucash/report/trep-engine.scm:245
 msgid "Sort by memo."
 msgstr "Urutkan berdasar memo."
 
-#: gnucash/gtkbuilder/gnc-plugin-page-register.glade:780
+#: gnucash/gtkbuilder/gnc-plugin-page-register.glade:979
 #: gnucash/report/trep-engine.scm:216
 msgid "Sort by description."
 msgstr "Urutkan berdasar deskripsi."
 
-#: gnucash/gtkbuilder/gnc-plugin-page-register.glade:795
+#: gnucash/gtkbuilder/gnc-plugin-page-register.glade:994
 msgid "_Action"
 msgstr "_Aksi"
 
-#: gnucash/gtkbuilder/gnc-plugin-page-register.glade:799
+#: gnucash/gtkbuilder/gnc-plugin-page-register.glade:998
 msgid "Sort by action field."
 msgstr "Urutkan berdasar bidang aksi."
 
-#: gnucash/gtkbuilder/gnc-plugin-page-register.glade:818
+#: gnucash/gtkbuilder/gnc-plugin-page-register.glade:1017
 msgid "Sort by notes field."
 msgstr "Urutkan berdasar bidang catatan."
 
-#: gnucash/gtkbuilder/gnc-plugin-page-register.glade:849
+#: gnucash/gtkbuilder/gnc-plugin-page-register.glade:1048
 msgid "Sa_ve Sort Order"
 msgstr "Si_mpan Urutan Sortir"
 
-#: gnucash/gtkbuilder/gnc-plugin-page-register.glade:853
+#: gnucash/gtkbuilder/gnc-plugin-page-register.glade:1052
 msgid "Save the sort order for this register."
 msgstr "Simpan urutan sortir untuk register ini."
 
-#: gnucash/gtkbuilder/gnc-plugin-page-register.glade:869
+#: gnucash/gtkbuilder/gnc-plugin-page-register.glade:1068
 msgid "_Reverse Order"
 msgstr "Balik U_rutan"
 
-#: gnucash/gtkbuilder/gnc-plugin-page-register.glade:873
+#: gnucash/gtkbuilder/gnc-plugin-page-register.glade:1072
 msgid "Sort in descending order."
 msgstr "Urutkan secara terbalik."
 
-#: gnucash/gtkbuilder/gnc-plugin-page-register.glade:1042
-msgid "_Transaction Number"
-msgstr "Nomor _Transaksi"
-
-#: gnucash/gtkbuilder/gnc-plugin-page-register.glade:1086
-msgid "Keep Linked Document Entry"
-msgstr "Pertahankan Entri Dokumen Tertaut"
-
 #: gnucash/gtkbuilder/gnc-recurrence.glade:12
 msgid "day(s)"
 msgstr "hari"
@@ -19008,24 +19214,60 @@ msgid ""
 "Match the \"day of week\" and \"week of month\"? (for example, the \"second "
 "Tuesday\" of every month)"
 msgstr ""
+"Cocokkan \"hari dalam minggu\" dan \"minggu dalam bulan\"? (Misalnya, "
+"\"Selasa kedua\" setiap bulan)"
 
 #: gnucash/gtkbuilder/gnc-tree-view-owner.glade:62
 msgid "Only show _active owners"
 msgstr "Hanya tampilkan pemilik _aktif"
 
 #: gnucash/gtkbuilder/gnc-tree-view-owner.glade:79
+#, fuzzy
 msgid "Show _zero balance owners"
-msgstr ""
+msgstr "Tampilkan _zero pemilik keseimbangan"
 
 #: gnucash/gtkbuilder/window-autoclear.glade:71
-msgid "<b>Auto-Clear Information</b>"
+#, fuzzy
+#| msgid "Auto-clear"
+msgid "About Auto-Clear"
+msgstr "Klir-otomatis"
+
+#: gnucash/gtkbuilder/window-autoclear.glade:86
+msgid ""
+"Use this dialog if you want GnuCash to automatically find which transactions "
+"are cleared, given an ending balance. For example, said ending balance can "
+"be the current balance given by your bank online."
+msgstr ""
+
+#: gnucash/gtkbuilder/window-autoclear.glade:101
+msgid "Caution!"
+msgstr "Peringatan!"
+
+#: gnucash/gtkbuilder/window-autoclear.glade:116
+msgid ""
+"This tool might be slow or abort if the number of uncleared splits is more "
+"than approximately 20. In that case please clear at least some of them "
+"manually."
 msgstr ""
+"Alat ini mungkin akan berjalan lambat atau gagal jika jumlah split yang "
+"belum klir lebih dari sekitar 20. Jika itu terjadi, lakukan klir pada "
+"beberapa split secara manual."
 
-#: gnucash/gtkbuilder/window-autoclear.glade:92
+#: gnucash/gtkbuilder/window-autoclear.glade:138
 #: gnucash/gtkbuilder/window-reconcile.glade:117
 msgid "_Ending Balance"
 msgstr "Sal_do Akhir"
 
+#: gnucash/gtkbuilder/window-autoclear.glade:177
+msgid "_Review cleared splits"
+msgstr "Tinjau split yang kli_r"
+
+#: gnucash/gtkbuilder/window-autoclear.glade:181
+msgid "Select this option to open a register tab with newly cleared splits."
+msgstr ""
+"Pilih opsi ini untuk membuka sebuah tab register dengan split yang baru saja "
+"diklirkan."
+
 #: gnucash/gtkbuilder/window-reconcile.glade:71
 msgid "<b>Reconcile Information</b>"
 msgstr "<b>Informasi Rekonsiliasi</b>"
@@ -19043,6 +19285,8 @@ msgid ""
 "Include all descendant accounts in the reconcile. All of them must use the "
 "same commodity as this one."
 msgstr ""
+"Sertakan semua akun turunan di rekonsiliasi. Semuanya harus menggunakan "
+"komoditas yang sama dengan akun ini."
 
 #: gnucash/gtkbuilder/window-reconcile.glade:257
 msgid "Statement Date is after today"
@@ -19149,6 +19393,37 @@ msgid ""
 "\n"
 "Click on \"Next\" to proceed or \"Cancel\" to Abort Import."
 msgstr ""
+"\n"
+"Anda harus terlebih dahulu mengajukan permohonan untuk akses Perbankan "
+"Daring di bank Anda. Jika bank Anda memberikan Anda akses elektronik, mereka "
+"akan mengirimkan surat yang berisi \n"
+"\n"
+"* Kode bank Anda\n"
+"* ID pengguna yang mengidentifikasi Anda ke bank Anda\n"
+"* Alamat Internet penyedia layanan Perbankan Daring bank Anda\n"
+"* Untuk Perbankan Daring HBCI, informasi tentang kunci publik kriptografi "
+"bank Anda ( \"Ini-Letter\").\n"
+"\n"
+"Informasi ini akan dibutuhkan pada langkah berikutnya. Tekan \"Berikutnya\" "
+"sekarang.\n"
+"\n"
+"CATATAN: TIDAK ADA JAMINAN UNTUK APAPUN. Beberapa bank menjalankan layanan "
+"Perbankan Daring yang diimplementasikan secara buruk. Jangan menggantungkan "
+"transfer waktu-kritis melalui Perbankan Daring, karena kadang-kadang bank "
+"tidak memberikan umpan balik yang benar ketika transfer ditolak.\n"
+"\n"
+"Tekan \"Batal\" jika Anda tidak ingin menyiapkan koneksi Perbankan Daring "
+"sekarang.\n"
+"\n"
+"Terakhir, untuk impor berulang, halaman pratinjau memiliki tombol Muat dan "
+"Simpan pengaturan. Untuk menyimpan pengaturan, sesuaikan pengaturan dengan "
+"preferensi Anda (opsional mulai dari preset yang ada), maka (opsional ubah "
+"nama pengaturan dan tekan tombol Simpan Pengaturan). Perhatikan bahwa Anda "
+"tidak dapat menyimpan ke preset bawaan.\n"
+"\n"
+"Operasi ini tidak reversibel, jadi pastikan Anda memiliki berkas cadangan.\n"
+"\n"
+"Klik \"Berikutnya\" untuk melanjutkan atau \"Batal\" untuk membatalkan Impor."
 
 #: gnucash/import-export/aqb/assistant-ab-initial.glade:76
 msgid "Initial Online Banking Setup"
@@ -19201,14 +19476,22 @@ msgid ""
 "\n"
 "Press \"Apply\" now."
 msgstr ""
+"Penyiapan untuk pencocokan akun Perbankan Daring ke akun GnuCash telah "
+"selesai. Sekarang Anda dapat meminta aksi Perbankan Daring pada akun "
+"tersebut.\n"
+"\n"
+"Jika Anda ingin menambahkan bank, pengguna, atau akun yang lain, Anda dapat "
+"memulai asisten ini lagi kapan saja.\n"
+"\n"
+"Tekan \"Terapkan\" sekarang."
 
 #: gnucash/import-export/aqb/assistant-ab-initial.glade:233
 msgid "Online Banking Setup Finished"
-msgstr ""
+msgstr "Penyiapan Perbankan Daring Selesai"
 
 #: gnucash/import-export/aqb/dialog-ab.glade:8
 msgid "Online Banking Connection Window"
-msgstr ""
+msgstr "Jendela Sambungan Perbankan Daring"
 
 #: gnucash/import-export/aqb/dialog-ab.glade:26
 msgid "_Abort"
@@ -19362,14 +19645,12 @@ msgid "Payment Purpose continued"
 msgstr "Tujuan Pembayaran lanjutan"
 
 #: gnucash/import-export/aqb/dialog-ab.glade:1133
-#, fuzzy
 msgid "_Originator Name"
-msgstr "Tidak ada nama"
+msgstr "Nama _Originator"
 
 #: gnucash/import-export/aqb/dialog-ab.glade:1185
-#, fuzzy
 msgid "Originator Account Number"
-msgstr "Angka"
+msgstr "Nomor Akun Originator"
 
 #: gnucash/import-export/aqb/dialog-ab.glade:1209
 msgid "Bank Code"
@@ -19473,6 +19754,10 @@ msgid ""
 "this option, the transaction text is used for the transaction description "
 "too."
 msgstr ""
+"Beberapa bank menempatkan bagian dari deskripsi transaksi sebagai \"teks "
+"transaksi\" di berkas MT940. Biasanya GnuCash mengabaikan teks ini. Namun "
+"dengan mengaktifkan opsi ini, teks transaksi juga akan digunakan untuk "
+"deskripsi transaksi."
 
 #: gnucash/import-export/aqb/dialog-ab-trans.c:294
 #: gnucash/import-export/aqb/dialog-ab-trans.c:303
@@ -19495,49 +19780,54 @@ msgstr "Masukkan sebuah Transfer Daring SEPA"
 
 #: gnucash/import-export/aqb/dialog-ab-trans.c:379
 msgid "Recipient IBAN (International Account Number)"
-msgstr ""
+msgstr "IBAN (Nomor Akun Internasional) Penerima"
 
 #: gnucash/import-export/aqb/dialog-ab-trans.c:381
 msgid "Recipient BIC (Bank Code)"
-msgstr ""
+msgstr "BIC (Kode Bank) Penerima"
 
 #: gnucash/import-export/aqb/dialog-ab-trans.c:384
 msgid "Originator IBAN (International Account Number)"
-msgstr ""
+msgstr "IBAN (Nomor Akun Internasional) Originator"
 
 #: gnucash/import-export/aqb/dialog-ab-trans.c:386
 msgid "Originator BIC (Bank Code)"
-msgstr ""
+msgstr "BIC (Kode Bank) Originator"
 
 #: gnucash/import-export/aqb/dialog-ab-trans.c:395
+#, fuzzy
 msgid "Enter a SEPA Online Direct Debit Note"
-msgstr ""
+msgstr "Masukkan SEPA online Direct Debit Note"
 
 #: gnucash/import-export/aqb/dialog-ab-trans.c:398
 #, fuzzy
 msgid "Debited Account Owner"
-msgstr "Pemilik"
+msgstr "Didebit Pemilik Rekening"
 
 #: gnucash/import-export/aqb/dialog-ab-trans.c:400
+#, fuzzy
 msgid "Debited IBAN (International Account Number)"
-msgstr ""
+msgstr "Didebit IBAN (International Nomor Rekening)"
 
 #: gnucash/import-export/aqb/dialog-ab-trans.c:402
+#, fuzzy
 msgid "Debited BIC (Bank Code)"
-msgstr ""
+msgstr "Didebit BIC (Kode Bank)"
 
 #: gnucash/import-export/aqb/dialog-ab-trans.c:405
 #, fuzzy
 msgid "Credited Account Owner"
-msgstr "Pemilik"
+msgstr "Dikreditkan Pemilik Akun"
 
 #: gnucash/import-export/aqb/dialog-ab-trans.c:407
+#, fuzzy
 msgid "Credited IBAN (International Account Number)"
-msgstr ""
+msgstr "Dikreditkan IBAN (International Nomor Rekening)"
 
 #: gnucash/import-export/aqb/dialog-ab-trans.c:409
+#, fuzzy
 msgid "Credited BIC (Bank Code)"
-msgstr ""
+msgstr "Dikreditkan BIC (Kode Bank)"
 
 #: gnucash/import-export/aqb/dialog-ab-trans.c:494
 #, c-format
@@ -19545,6 +19835,8 @@ msgid ""
 "The internal check of the destination IBAN '%s' failed. This means the "
 "account number might contain an error."
 msgstr ""
+"Pemeriksaan internal untuk tujuan IBAN '%s' gagal. Ini berarti nomor akun "
+"mungkin mengandung kesalahan."
 
 #: gnucash/import-export/aqb/dialog-ab-trans.c:549
 #, c-format
@@ -19555,24 +19847,35 @@ msgid ""
 "execute the command line program \"aqhbci-tool\" for your account, as "
 "follows: aqhbci-tool4 getaccsepa -b %s -a %s"
 msgstr ""
+"Akun bank lokal Anda belum memiliki informasi akun SEPA yang tersimpan. Kami "
+"mohon maaf, namun pada versi pengembangan ini, diperlukan satu langkah "
+"tambahan yang belum diimplementasikan secara langsung di gnucash. Silakan "
+"menjalankan perintah program \"aqhbci-tool\" untuk akun Anda, sebagai "
+"berikut: aqhbci-tool4 getaccsepa -b %s -a %s"
 
 #: gnucash/import-export/aqb/dialog-ab-trans.c:564
 msgid ""
 "You did not enter a recipient name. A recipient name is required for an "
 "online transfer.\n"
 msgstr ""
+"Anda tidak memasukkan nama penerima. Nama penerima diperlukan untuk sebuah "
+"transfer daring.\n"
 
 #: gnucash/import-export/aqb/dialog-ab-trans.c:584
 msgid ""
 "You did not enter a recipient account. A recipient account is required for "
 "an online transfer.\n"
 msgstr ""
+"Anda tidak memasukkan akun penerima. Akun penerima diperlukan untuk sebuah "
+"transfer daring.\n"
 
 #: gnucash/import-export/aqb/dialog-ab-trans.c:600
 msgid ""
 "You did not enter a recipient bank. A recipient bank is required for an "
 "online transfer.\n"
 msgstr ""
+"Anda tidak memasukkan bank penerima. Bank penerima diperlukan untuk sebuah "
+"transfer daring.\n"
 
 #: gnucash/import-export/aqb/dialog-ab-trans.c:618
 msgid ""
@@ -19580,22 +19883,29 @@ msgid ""
 "You might have mixed up decimal point and comma, compared to your locale "
 "settings. This does not result in a valid online transfer job."
 msgstr ""
+"Jumlahnya nol atau bidang jumlah tidak dapat diinterpretasikan secara benar. "
+"Anda mungkin mencampurkan titik dan koma desimal, yang tidak sesuai dengan "
+"pengaturan lokal Anda. Ini tidak menghasilkan pekerjaan transfer daring yang "
+"valid."
 
 #: gnucash/import-export/aqb/dialog-ab-trans.c:635
 msgid ""
 "You did not enter any transaction purpose. A purpose is required for an "
 "online transfer.\n"
 msgstr ""
+"Anda tidak memasukkan keperluan transaksi. Keperluan transaksi diperlukan "
+"untuk sebuah transfer daring.\n"
 
 #: gnucash/import-export/aqb/dialog-ab-trans.c:1047
 msgid ""
 "A template with the given name already exists. Please enter another name."
 msgstr ""
+"Sebuah templat dengan nama yang sama sudah ada. Silakan memasukkan nama lain."
 
 #: gnucash/import-export/aqb/dialog-ab-trans.c:1182
 #, c-format
 msgid "Do you really want to delete the template with the name \"%s\"?"
-msgstr ""
+msgstr "Apakah Anda yakin ingin menghapus templat dengan nama \"%s\"?"
 
 #: gnucash/import-export/aqb/gnc-ab-getbalance.c:86
 #: gnucash/import-export/aqb/gnc-ab-gettrans.c:137
@@ -19605,7 +19915,7 @@ msgstr "Tak ada akun bank daring yang valid yang ditetapkan."
 
 #: gnucash/import-export/aqb/gnc-ab-getbalance.c:100
 msgid "Online action \"Get Balance\" not available for this account."
-msgstr ""
+msgstr "Aksi daring \"Dapatkan Saldo\" tak tersedia untuk akun ini."
 
 #: gnucash/import-export/aqb/gnc-ab-getbalance.c:150
 #, c-format
@@ -19672,22 +19982,34 @@ msgid ""
 "\n"
 "Do you want to enter the job again?"
 msgstr ""
+"Backend menemukan kesalahan selama persiapan tugas, sehingga tidak "
+"memungkinkan untuk mengeksekusi tugas ini.\n"
+"\n"
+"Kemungkinan besar bank tidak mendukung tugas yang Anda pilih atau akun "
+"Perbankan Daring Anda tidak memiliki izin untuk mengeksekusi tugas ini. "
+"Pesan kesalahan lebih lengkap mungkin terlihat pada log konsol Anda.\n"
+"\n"
+"Apakah Anda ingin memasukkan tugas ini lagi?"
 
 #: gnucash/import-export/aqb/gnc-ab-transfer.c:210
+#, fuzzy
 msgid "Online Banking Direct Debit Note"
-msgstr ""
+msgstr "Online Banking Direct Debit Note"
 
 #: gnucash/import-export/aqb/gnc-ab-transfer.c:215
+#, fuzzy
 msgid "Online Banking Bank-Internal Transfer"
-msgstr ""
+msgstr "Alih Online Banking Bank-internal"
 
 #: gnucash/import-export/aqb/gnc-ab-transfer.c:220
+#, fuzzy
 msgid "Online Banking European (SEPA) Transfer"
-msgstr ""
+msgstr "Secara online Perbankan Eropa (SEPA) transfer"
 
 #: gnucash/import-export/aqb/gnc-ab-transfer.c:225
+#, fuzzy
 msgid "Online Banking European (SEPA) Debit Note"
-msgstr ""
+msgstr "Secara online Perbankan Eropa (SEPA) Debit Note"
 
 #: gnucash/import-export/aqb/gnc-ab-transfer.c:231
 msgid "Online Banking Transaction"
@@ -19711,7 +20033,7 @@ msgid "Unspecified"
 msgstr "Tak ditentukan"
 
 #: gnucash/import-export/aqb/gnc-ab-utils.c:543
-#: gnucash/report/report-utilities.scm:102 libgnucash/engine/Account.cpp:4314
+#: gnucash/report/report-utilities.scm:114 libgnucash/engine/Account.cpp:4361
 msgid "Bank"
 msgstr "Bank"
 
@@ -19726,24 +20048,38 @@ msgid ""
 "\n"
 "Do you want to enter the job again?"
 msgstr ""
+"Backend menemukan kesalahan selama persiapan tugas, sehingga tidak "
+"memungkinkan untuk mengeksekusi tugas ini.\n"
+"\n"
+"Kemungkinan besar bank tidak mendukung tugas yang Anda pilih atau akun "
+"Perbankan Daring Anda tidak memiliki izin untuk mengeksekusi tugas ini. "
+"Pesan kesalahan lebih lengkap mungkin terlihat pada log konsol Anda.\n"
+"\n"
+"Apakah Anda ingin memasukkan tugas ini lagi?"
 
 #: gnucash/import-export/aqb/gnc-ab-utils.c:913
 msgid ""
 "The bank has sent transaction information in its response.\n"
 "Do you want to import it?"
 msgstr ""
+"Bank telah mengirim informasi transaksi pada responnya.\n"
+"Apakah Anda ingin mengimpornya?"
 
 #: gnucash/import-export/aqb/gnc-ab-utils.c:940
 msgid ""
 "No Online Banking account found for this gnucash account. These transactions "
 "will not be executed by Online Banking."
 msgstr ""
+"Tak ada akun Perbankan Daring yang ditemukan untuk akun gnucash ini. "
+"Transaksi tersebut tidak akan dijalankan oleh Perbankan Daring."
 
 #: gnucash/import-export/aqb/gnc-ab-utils.c:1042
 msgid ""
 "The bank has sent balance information in its response.\n"
 "Do you want to import it?"
 msgstr ""
+"Bank telah mengirim informasi saldo pada responnya.\n"
+"Apakah Anda ingin mengimpornya?"
 
 #. Translators: Strings from this file are needed only in
 #. * countries that have one of aqbanking's Online Banking
@@ -19762,6 +20098,13 @@ msgid ""
 "(AqBanking or HBCI) Setup. After that, try again to download the Online "
 "Banking Balance."
 msgstr ""
+"Saldo Perbankan Daring yang diunduh adalah nol.\n"
+"\n"
+"Mungkin saldo ini benar, atau bank Anda tidak mendukung unduhan Saldo di "
+"versi Perbankan Daring ini. Untuk kasus terakhir, Anda harus memilih nomor "
+"versi Perbankan Daring yang berbeda dalam Penyiapan Perbankan Daring "
+"(AqBanking atau HBCI). Setelah itu, coba lagi untuk mengunduh Saldo "
+"Perbankan Daring."
 
 #: gnucash/import-export/aqb/gnc-ab-utils.c:1156
 #, c-format
@@ -19769,26 +20112,28 @@ msgid ""
 "Result of Online Banking job: \n"
 "Account booked balance is %s"
 msgstr ""
+"Hasil dari tugas Perbankan Daring:\n"
+"Saldo akun yang dibukukan adalah %s"
 
 #: gnucash/import-export/aqb/gnc-ab-utils.c:1162
 #, c-format
 msgid "For your information: This account also has a noted balance of %s\n"
-msgstr ""
+msgstr "Sebagai informasi: Akun ini juga memiliki saldo tercatat %s\n"
 
 #: gnucash/import-export/aqb/gnc-ab-utils.c:1169
 msgid ""
 "The booked balance is identical to the current reconciled balance of the "
 "account."
 msgstr ""
+"Saldo yang dibukukan sama dengan saldo akun yang direkonsiliasi saat ini."
 
 #: gnucash/import-export/aqb/gnc-ab-utils.c:1184
-#, fuzzy
 msgid "Reconcile account now?"
-msgstr "penarikan"
+msgstr "Rekonsiliasi akun sekarang?"
 
 #: gnucash/import-export/aqb/gnc-ab-utils.c:1279
 msgid "The bank has sent a message in its response."
-msgstr ""
+msgstr "Bank telah mengirim sebuah pesan pada responnya."
 
 #: gnucash/import-export/aqb/gnc-ab-utils.c:1280
 msgid "Subject:"
@@ -19903,108 +20248,113 @@ msgstr "Dapatkan transaksi secara daring melalui Perbankan Daring"
 #: gnucash/import-export/aqb/gnc-plugin-aqbanking.c:113
 #, fuzzy
 msgid "Issue _SEPA Transaction..."
-msgstr "transaksi"
+msgstr "Isu _SEPA Transaksi ..."
 
 #: gnucash/import-export/aqb/gnc-plugin-aqbanking.c:114
+#, fuzzy
 msgid ""
 "Issue a new international European (SEPA) transaction online through Online "
 "Banking"
 msgstr ""
+"Mengeluarkan internasional Eropa (SEPA) transaksi baru secara online melalui "
+"Online Banking"
 
 #: gnucash/import-export/aqb/gnc-plugin-aqbanking.c:118
-#, fuzzy
 msgid "_Internal Transaction..."
-msgstr "transaksi"
+msgstr "Transaksi _Internal..."
 
 #: gnucash/import-export/aqb/gnc-plugin-aqbanking.c:119
+#, fuzzy
 msgid "Issue a new bank-internal transaction online through Online Banking"
 msgstr ""
+"Isu transaksi bank internal yang baru secara online melalui Online Banking"
 
 #: gnucash/import-export/aqb/gnc-plugin-aqbanking.c:123
 #, fuzzy
 msgid "Issue SEPA Direct _Debit..."
-msgstr "aksi: penarikan langsung"
+msgstr "Isu SEPA langsung _Debit ..."
 
 #: gnucash/import-export/aqb/gnc-plugin-aqbanking.c:124
+#, fuzzy
 msgid ""
 "Issue a new international European (SEPA) direct debit note online through "
 "Online Banking"
 msgstr ""
+"Mengeluarkan Eropa (SEPA) catatan debit langsung internasional baru secara "
+"online melalui Online Banking"
 
 #. Translators: Message types MTxxxx are exchange formats used by the SWIFT network
 #. https://en.wikipedia.org/wiki/Society_for_Worldwide_Interbank_Financial_Telecommunication
 #: gnucash/import-export/aqb/gnc-plugin-aqbanking.c:133
-#, fuzzy
 msgid "Import _MT940"
-msgstr "_Impor"
+msgstr "Impor _MT940"
 
 #: gnucash/import-export/aqb/gnc-plugin-aqbanking.c:134
+#, fuzzy
 msgid ""
 "Import an end-of-day account statement in SWIFT MT940 format into GnuCash."
-msgstr ""
+msgstr "Impor pernyataan akhir-hari akun dalam format SWIFT MT940 ke GnuCash."
 
 #: gnucash/import-export/aqb/gnc-plugin-aqbanking.c:138
-#, fuzzy
 msgid "Import MT94_2"
-msgstr "_Impor"
+msgstr "Impor MT94_2"
 
 #: gnucash/import-export/aqb/gnc-plugin-aqbanking.c:139
+#, fuzzy
 msgid "Import an interim account statement in SWIFT MT942 format into GnuCash."
 msgstr ""
+"Mengimpor laporan rekening interim dalam format SWIFT MT942 ke GnuCash."
 
 #. Translators: DTAUS is a traditional german exchange format.
 #. https://de.wikipedia.org/wiki/Datentr%C3%A4geraustauschverfahren
 #: gnucash/import-export/aqb/gnc-plugin-aqbanking.c:146
-#, fuzzy
 msgid "Import _DTAUS"
-msgstr "_Impor"
+msgstr "Impor _DTAUS"
 
 #: gnucash/import-export/aqb/gnc-plugin-aqbanking.c:147
+#, fuzzy
 msgid "Import a traditional german DTAUS file into GnuCash."
-msgstr ""
+msgstr "Mengimpor file DTAUS Jerman tradisional menjadi GnuCash."
 
 #: gnucash/import-export/aqb/gnc-plugin-aqbanking.c:159
-#, fuzzy
 msgid "Import DTAUS and _send..."
-msgstr "Kirim Ke"
+msgstr "Impor DTAU_S dan kirim..."
 
 #: gnucash/import-export/aqb/gnc-plugin-aqbanking.c:160
+#, fuzzy
 msgid ""
 "Import a DTAUS file into GnuCash and transmit its orders by Online Banking."
 msgstr ""
+"Mengimpor file DTAUS ke GnuCash dan mengirimkan pesanan sebesar Online "
+"Banking."
 
 #: gnucash/import-export/aqb/gnc-plugin-aqbanking.c:170
-#, fuzzy
 msgid "Show _log window"
-msgstr "Tampilkan menu jendela"
+msgstr "Tampilkan jendela _log"
 
 #: gnucash/import-export/aqb/gnc-plugin-aqbanking.c:171
 msgid "Show the online banking log window."
-msgstr ""
+msgstr "Tampilkan jendela log perbankan daring."
 
 #: gnucash/import-export/aqb/gschemas/org.gnucash.dialogs.import.hbci.gschema.xml.in:15
-#, fuzzy
 msgid "Close window when finished"
-msgstr "Tutup suatu jendela"
+msgstr "Tutup jendela ketika selesai"
 
 #: gnucash/import-export/aqb/gschemas/org.gnucash.dialogs.import.hbci.gschema.xml.in:20
-#, fuzzy
 msgid "Remember the PIN in memory"
-msgstr "Memori"
+msgstr "Ingat PIN di memori"
 
 #: gnucash/import-export/aqb/gschemas/org.gnucash.dialogs.import.hbci.gschema.xml.in:25
 msgid "Put the transaction text in front of the purpose of a transaction."
-msgstr ""
+msgstr "Letakkan teks transaksi di depan tujuan suatu transaksi."
 
 #: gnucash/import-export/aqb/gschemas/org.gnucash.dialogs.import.hbci.gschema.xml.in:30
-#, fuzzy
 msgid "Verbose HBCI debug messages"
-msgstr "Aktifkan pesan awakutu"
+msgstr "Pesan lengkap awakutu HBCI"
 
 #: gnucash/import-export/aqb/gschemas/org.gnucash.dialogs.import.hbci.gschema.xml.in:35
-#, fuzzy
 msgid "DTAUS import data format"
-msgstr "Tak ada data untuk diimpor"
+msgstr "Format data impor DTAUS"
 
 #: gnucash/import-export/aqb/gschemas/org.gnucash.dialogs.import.hbci.gschema.xml.in:36
 msgid ""
@@ -20012,11 +20362,13 @@ msgid ""
 "AqBanking library offers various import formats (called \"profiles\") of "
 "which you can choose one here."
 msgstr ""
+"Pengaturan ini menentukan format data ketika mengimpor berkas DTAUS. Pustaka "
+"AqBanking menyediakan berbagai format impor (disebut \"profil\") dimana Anda "
+"dapat memilih salah satunya."
 
 #: gnucash/import-export/aqb/gschemas/org.gnucash.dialogs.import.hbci.gschema.xml.in:40
-#, fuzzy
 msgid "CSV import data format"
-msgstr "Hanya mendukung format csv atau vcard."
+msgstr "Format data impor CSV"
 
 #: gnucash/import-export/aqb/gschemas/org.gnucash.dialogs.import.hbci.gschema.xml.in:41
 msgid ""
@@ -20024,10 +20376,13 @@ msgid ""
 "AqBanking library offers various import formats (called \"profiles\") of "
 "which you can choose one here."
 msgstr ""
+"Pengaturan ini menentukan format data ketika mengimpor berkas CSV. Pustaka "
+"AqBanking menyediakan berbagai format impor (disebut \"profil\") dimana Anda "
+"dapat memilih salah satunya."
 
 #: gnucash/import-export/aqb/gschemas/org.gnucash.dialogs.import.hbci.gschema.xml.in:45
 msgid "SWIFT MT940 import data format"
-msgstr ""
+msgstr "Format data impor SWIFT MT940"
 
 #: gnucash/import-export/aqb/gschemas/org.gnucash.dialogs.import.hbci.gschema.xml.in:46
 msgid ""
@@ -20035,10 +20390,13 @@ msgid ""
 "AqBanking library offers various import formats (called \"profiles\") of "
 "which you can choose one here."
 msgstr ""
+"Pengaturan ini menentukan format data ketika mengimpor berkas SWIFT MT940. "
+"Pustaka AqBanking menyediakan berbagai format impor (disebut \"profil\") "
+"dimana Anda dapat memilih salah satunya."
 
 #: gnucash/import-export/aqb/gschemas/org.gnucash.dialogs.import.hbci.gschema.xml.in:50
 msgid "SWIFT MT942 import data format"
-msgstr ""
+msgstr "Format data impor SWIFT MT942"
 
 #: gnucash/import-export/aqb/gschemas/org.gnucash.dialogs.import.hbci.gschema.xml.in:51
 msgid ""
@@ -20046,6 +20404,9 @@ msgid ""
 "AqBanking library offers various import formats (called \"profiles\") of "
 "which you can choose one here."
 msgstr ""
+"Pengaturan ini menentukan format data ketika mengimpor berkas SWIFT MT942. "
+"Pustaka AqBanking menyediakan berbagai format impor (disebut \"profil\") "
+"dimana Anda dapat memilih salah satunya."
 
 #: gnucash/import-export/bi-import/dialog-bi-import.c:298
 #, c-format
@@ -20091,48 +20452,50 @@ msgstr "Baris %d, faktur %s/%u: akun %s tidak ada.\n"
 #: gnucash/import-export/bi-import/dialog-bi-import.c:417
 #, c-format
 msgid "Row %d, invoice %s/%u: account %s is not of type Accounts Payable.\n"
-msgstr ""
+msgstr "Baris %d, faktur %s/%u: akun %s bukan bertipe Akun Utang.\n"
 
 #: gnucash/import-export/bi-import/dialog-bi-import.c:427
 #, c-format
 msgid "Row %d, invoice %s/%u: account %s is not of type Accounts Receivable.\n"
-msgstr ""
+msgstr "Baris %d, faktur %s/%u: akun %s bukan bertipe Akun Piutang.\n"
 
 #: gnucash/import-export/bi-import/dialog-bi-import.c:465
 #, c-format
 msgid "Row %d, invoice %s/%u: price not set.\n"
-msgstr ""
+msgstr "Baris %d, faktur %s/%u: harga tidak diatur.\n"
 
 #: gnucash/import-export/bi-import/dialog-bi-import.c:534
 #, c-format
 msgid "Error(s) in invoice %s, all rows of this invoice ignored.\n"
-msgstr ""
+msgstr "Galat pada faktur %s, semua baris dari faktur ini diabaikan.\n"
 
 #: gnucash/import-export/bi-import/dialog-bi-import.c:540
 #, c-format
 msgid "Error(s) in invoice without id, all rows of this invoice ignored.\n"
-msgstr ""
+msgstr "Galat pada faktur tanpa id, semua baris dari faktur ini diabaikan.\n"
 
 #: gnucash/import-export/bi-import/dialog-bi-import.c:648
-#, fuzzy, c-format
+#, c-format
 msgid ""
 "\n"
 "Processing...\n"
-msgstr "Diproses"
+msgstr ""
+"\n"
+"Memproses...\n"
 
 #: gnucash/import-export/bi-import/dialog-bi-import.c:717
-#, fuzzy, c-format
+#, c-format
 msgid "Invoice %s created.\n"
-msgstr "faktur"
+msgstr "Faktur %s telah dibuat.\n"
 
 #: gnucash/import-export/bi-import/dialog-bi-import.c:732
 msgid "Do you want to update existing bills/invoices?"
-msgstr ""
+msgstr "Apakah Anda ingin memperbarui tagihan/faktur yang sudah ada?"
 
 #: gnucash/import-export/bi-import/dialog-bi-import.c:740
 #, c-format
 msgid "Invoice %s not updated because it already exists.\n"
-msgstr ""
+msgstr "Faktur %s tak diperbarui karena telah ada.\n"
 
 #: gnucash/import-export/bi-import/dialog-bi-import.c:755
 #, c-format
@@ -20140,9 +20503,9 @@ msgid "Invoice %s not updated because it is already posted.\n"
 msgstr "Faktur %s tidak diperbarui karena telah dipos.\n"
 
 #: gnucash/import-export/bi-import/dialog-bi-import.c:768
-#, fuzzy, c-format
+#, c-format
 msgid "Invoice %s updated.\n"
-msgstr "Diperbarui %s"
+msgstr "Faktur %s diperbarui.\n"
 
 #: gnucash/import-export/bi-import/dialog-bi-import.c:891
 #, c-format
@@ -20160,58 +20523,53 @@ msgid "Invoice %s NOT posted because it requires currency conversion.\n"
 msgstr "Faktur %s TIDAK dipos karena membutuhkan konversi mata uang.\n"
 
 #: gnucash/import-export/bi-import/dialog-bi-import.c:926
-#, fuzzy, c-format
+#, c-format
 msgid "Nothing to process.\n"
-msgstr "Dalam Proses"
+msgstr "Tak ada yang perlu diproses.\n"
 
 #: gnucash/import-export/bi-import/dialog-bi-import-gui.c:142
 #: gnucash/import-export/customer-import/dialog-customer-import-gui.c:128
-#, fuzzy
 msgid "ID"
 msgstr "ID"
 
 #: gnucash/import-export/bi-import/dialog-bi-import-gui.c:144
-#, fuzzy
 msgid "Owner-ID"
-msgstr "Pemilik"
+msgstr "ID-Pemilik"
 
 #: gnucash/import-export/bi-import/dialog-bi-import-gui.c:145
-#, fuzzy
 msgid "Billing-ID"
-msgstr "persyaratan tagihan"
+msgstr "ID-Tagihan"
 
 #: gnucash/import-export/bi-import/dialog-bi-import-gui.c:152
 #: gnucash/register/ledger-core/gncEntryLedgerModel.c:92
 #: gnucash/report/reports/standard/invoice.scm:94
 #: gnucash/report/reports/standard/invoice.scm:227
-#, fuzzy
 msgid "Quantity"
-msgstr "Kuantitas upaya dari momen pemutaran kandar"
+msgstr "Kuantitas"
 
 #: gnucash/import-export/bi-import/dialog-bi-import-gui.c:154
 #, fuzzy
 msgid "Disc-type"
-msgstr "\"%s\": jenis berkas salinan diska tidak dikenal"
+msgstr "Disc-jenis"
 
 #: gnucash/import-export/bi-import/dialog-bi-import-gui.c:155
 #, fuzzy
 msgid "Disc-how"
-msgstr "Cakram {}"
+msgstr "Disc-bagaimana"
 
 #: gnucash/import-export/bi-import/dialog-bi-import-gui.c:157
 #: gnucash/report/reports/standard/invoice.scm:100
 #: gnucash/report/reports/standard/invoice.scm:242
 msgid "Taxable"
-msgstr ""
+msgstr "Kena Pajak"
 
 #: gnucash/import-export/bi-import/dialog-bi-import-gui.c:158
 msgid "Taxincluded"
-msgstr ""
+msgstr "Termasukpajak"
 
 #: gnucash/import-export/bi-import/dialog-bi-import-gui.c:159
-#, fuzzy
 msgid "Tax-table"
-msgstr "kode pajak"
+msgstr "Tabel-pajak"
 
 #: gnucash/import-export/bi-import/dialog-bi-import-gui.c:163
 msgid "Account-posted"
@@ -20223,11 +20581,11 @@ msgstr "Memo-dipos"
 
 #: gnucash/import-export/bi-import/dialog-bi-import-gui.c:165
 msgid "Accu-splits"
-msgstr ""
+msgstr "Accu-split"
 
 #: gnucash/import-export/bi-import/dialog-bi-import-gui.c:198
 msgid "Import Bills or Invoices from csv"
-msgstr ""
+msgstr "Impor Tagihan atau Faktur dari csv"
 
 #: gnucash/import-export/bi-import/dialog-bi-import-gui.c:226
 #, c-format
@@ -20242,24 +20600,32 @@ msgid ""
 "- invoices created: %u\n"
 "- invoices updated: %u"
 msgstr ""
+"Impor:\n"
+"- baris diabaikan: %i\n"
+"- baris diimpor: %i\n"
+"\n"
+"Validasi & pemrosesan:\n"
+"- baris diperbaiki: %u\n"
+"- baris diabaikan: %u\n"
+"- faktur dibuat: %u\n"
+"- faktur diperbarui: %u"
 
 #: gnucash/import-export/bi-import/dialog-bi-import-gui.c:229
 #: gnucash/import-export/customer-import/dialog-customer-import-gui.c:205
 msgid "These lines were ignored during import"
-msgstr ""
+msgstr "Baris berikut diabaikan saat impor"
 
 #: gnucash/import-export/bi-import/dialog-bi-import-gui.c:236
 #: gnucash/import-export/csv-imp/assistant-csv-account-import.c:462
 #: gnucash/import-export/customer-import/dialog-customer-import-gui.c:212
-#, fuzzy
 msgid "The input file can not be opened."
-msgstr "Berkas tidak bisa dibuka"
+msgstr "Berkas masukan tak dapat dibuka."
 
 #: gnucash/import-export/bi-import/dialog-bi-import-gui.c:356
 #: gnucash/import-export/csv-imp/assistant-csv-account-import.c:304
 #: gnucash/import-export/customer-import/dialog-customer-import-gui.c:324
 msgid "Adjust regular expression used for import"
-msgstr ""
+msgstr "Atur ekspresi reguler yang digunakan untuk impor"
 
 #: gnucash/import-export/bi-import/dialog-bi-import-gui.c:356
 #: gnucash/import-export/csv-imp/assistant-csv-account-import.c:305
@@ -20268,15 +20634,16 @@ msgid ""
 "This regular expression is used to parse the import file. Modify according "
 "to your needs.\n"
 msgstr ""
+"Ekspresi reguler ini digunakan untuk mengurai berkas impor. Ubahlah sesuai "
+"kebutuhan Anda.\n"
 
 #: gnucash/import-export/bi-import/gnc-plugin-bi-import.c:58
-#, fuzzy
 msgid "Import Bills & _Invoices..."
-msgstr "_Impor"
+msgstr "_Impor Tagihan & Faktur..."
 
 #: gnucash/import-export/bi-import/gnc-plugin-bi-import.c:58
 msgid "Import bills and invoices from a CSV text file"
-msgstr ""
+msgstr "Impor tagihan dan faktur dari berkas teks CSV"
 
 #. Translators: %s is the file name string.
 #: gnucash/import-export/csv-exp/assistant-csv-export.c:82
@@ -20288,6 +20655,10 @@ msgid ""
 "You can also verify your selections by clicking on \"Back\" or \"Cancel\" to "
 "abort the export.\n"
 msgstr ""
+"Pohon akun akan diekspor ke berkas '%s' saat Anda klik \"Terapkan\".\n"
+"\n"
+"Anda juga bisa memeriksa pilihan Anda dengan klik \"Kembali\" atau \"Batal\" "
+"untuk membatalkan ekspor.\n"
 
 #. Translators: %s is the file name string and %u the number of accounts.
 #: gnucash/import-export/csv-exp/assistant-csv-export.c:87
@@ -20299,6 +20670,11 @@ msgid ""
 "You can also verify your selections by clicking on \"Back\" or \"Cancel\" to "
 "abort the export.\n"
 msgstr ""
+"Saat Anda klik \"Terapkan\", transaksi akan diekspor ke berkas '%s' dan "
+"jumlah akun yang diekspor adalah %u.\n"
+"\n"
+"Anda juga bisa memeriksa pilihan Anda dengan klik \"Kembali\" atau \"Batal\" "
+"untuk membatalkan ekspor.\n"
 
 #. Translators: %s is the file name string.
 #: gnucash/import-export/csv-exp/assistant-csv-export.c:93
@@ -20310,6 +20686,10 @@ msgid ""
 "You can also verify your selections by clicking on \"Back\" or \"Cancel\" to "
 "abort the export.\n"
 msgstr ""
+"Saat Anda klik \"Terapkan\", transaksi akan diekspor ke berkas '%s'.\n"
+"\n"
+"Anda juga bisa memeriksa pilihan Ana dengan klik \"Kembali\" atau \"Batal\" "
+"untuk membatalkan ekspor.\n"
 
 #: gnucash/import-export/csv-exp/assistant-csv-export.c:97
 msgid ""
@@ -20319,6 +20699,11 @@ msgid ""
 "Select the settings you require for the file and then click \"Next\" to "
 "proceed or \"Cancel\" to abort the export.\n"
 msgstr ""
+"Asisten ini akan membantu Anda mengekspor Pohon Akun ke sebuah berkas\n"
+" dengan pemisah yang ditentukan di bawah ini.\n"
+"\n"
+"Pilih pengaturan yang Anda butuhkan untuk berkas itu dan klik \"Lanjut\" "
+"untuk melanjutkan atau \"Batal\" untuk membatalkan ekspor.\n"
 
 #: gnucash/import-export/csv-exp/assistant-csv-export.c:103
 msgid ""
@@ -20337,6 +20722,21 @@ msgid ""
 "Select the settings you require for the file and then click \"Next\" to "
 "proceed or \"Cancel\" to abort the export.\n"
 msgstr ""
+"Asisten ini akan membantu Anda mengekspor Transaksi ke sebuah berkas\n"
+" dengan tanda pemisah yang ditentukan di bawah ini.\n"
+"\n"
+"Akan ada beberapa baris untuk setiap transaksi dan mungkin memerlukan "
+"manipulasi lebih lanjut untuk mengubahnya ke dalam format yang dapat Anda "
+"gunakan.\n"
+"\n"
+"Setiap Transaksi akan muncul sekali dalam ekspor dan akan didaftar "
+"berdasarkan urutan pemrosesan akun\n"
+"\n"
+"Format keluaran Harga/Tarif dikendalikan oleh pengaturan Preferensi,\n"
+" Umum->Paksa Harga untuk menampilkannya sebagai desimal\n"
+"\n"
+"Pilih setelan yang Anda butuhkan untuk berkas tersebut, kemudian klik "
+"\"Lanjut\" untuk melanjutkan atau \"Batal\" untuk membatalkan ekspor.\n"
 
 #: gnucash/import-export/csv-exp/assistant-csv-export.c:115
 msgid ""
@@ -20357,6 +20757,22 @@ msgid ""
 "Select the settings you require for the file and then click \"Next\" to "
 "proceed or \"Cancel\" to abort the export.\n"
 msgstr ""
+"Asisten ini akan membantu Anda mengekspor Transaksi ke sebuah berkas\n"
+" dengan tanda pemisah yang ditentukan di bawah ini.\n"
+"\n"
+"Akan ada beberapa baris untuk setiap transaksi dan mungkin memerlukan "
+"manipulasi lebih lanjut untuk mengubahnya ke dalam format yang dapat Anda "
+"gunakan. Setiap Transaksi akan muncul sekali dalam ekspor dan akan didaftar "
+"berdasarkan urutan pemrosesan akun\n"
+"\n"
+"Format keluaran Harga/Tarif dikendalikan oleh pengaturan Preferensi,\n"
+" Umum->Paksa Harga untuk menampilkannya sebagai desimal\n"
+"\n"
+"Dengan memilih tata letak sederhana, keluarannya akan sama dengan tampilan "
+"register satu baris, sehingga beberapa detail transfer bisa hilang.\n"
+"\n"
+"Pilih setelan yang Anda butuhkan untuk berkas tersebut, kemudian klik "
+"\"Lanjut\" untuk melanjutkan atau \"Batal\" untuk membatalkan ekspor.\n"
 
 #: gnucash/import-export/csv-exp/assistant-csv-export.c:762
 msgid ""
@@ -20365,141 +20781,129 @@ msgid ""
 "logging!\n"
 "You may need to enable debugging.\n"
 msgstr ""
+"Ada masalah saat mengekspor, hal ini mungkin karena ruang penyimpanan habis, "
+"masalah hak akses atau tak dapat membuka folder. Periksa berkas log untuk "
+"informasi lebih lanjut!\n"
+"Anda mungkin perlu mengaktifkan pengawakutuan.\n"
 
 #: gnucash/import-export/csv-exp/assistant-csv-export.c:766
-#, fuzzy
 msgid "File exported successfully!\n"
-msgstr "Penanda taut sukses diekspor!"
+msgstr "Berkas berhasil diekspor!\n"
 
 #: gnucash/import-export/csv-exp/csv-transactions-export.c:615
-#, fuzzy
 msgid "Full Category Path"
-msgstr "Kategori"
+msgstr "Path Kategori Lengkap"
 
 #: gnucash/import-export/csv-exp/csv-transactions-export.c:616
 #: gnucash/import-export/csv-exp/csv-transactions-export.c:628
 #, fuzzy
 msgid "Amount With Sym"
-msgstr "jumlah"
+msgstr "Jumlah Dengan Sym"
 
 #: gnucash/import-export/csv-exp/csv-transactions-export.c:617
 #: gnucash/import-export/csv-exp/csv-transactions-export.c:628
 #, fuzzy
 msgid "Amount Num."
-msgstr "jumlah"
+msgstr "Jumlah Bil."
 
 #: gnucash/import-export/csv-exp/csv-transactions-export.c:617
 #: gnucash/import-export/csv-exp/csv-transactions-export.c:629
 #, fuzzy
 msgid "Rate/Price"
-msgstr "harga"
+msgstr "Tingkat / Harga"
 
 #: gnucash/import-export/csv-exp/csv-transactions-export.c:622
 #: gnucash/import-export/csv-imp/gnc-imp-props-tx.cpp:57
-#, fuzzy
 msgid "Transaction ID"
-msgstr "transaksi"
+msgstr "ID Transaksi"
 
 #: gnucash/import-export/csv-exp/csv-transactions-export.c:625
-#, fuzzy
 msgid "Commodity/Currency"
-msgstr "mata uang"
+msgstr "Komoditas/Mata Uang"
 
 #: gnucash/import-export/csv-exp/csv-transactions-export.c:627
-#, fuzzy
 msgid "Full Account Name"
-msgstr "_Nama Lengkap..."
+msgstr "Nama Lengkap Akun"
 
 #: gnucash/import-export/csv-exp/csv-transactions-export.c:629
 #: gnucash/import-export/csv-imp/gnc-imp-props-tx.cpp:71
-#, fuzzy
 msgid "Reconcile Date"
-msgstr "penarikan"
+msgstr "Tanggal Rekonsiliasi"
 
 #: gnucash/import-export/csv-exp/csv-tree-export.c:155
 #: gnucash/import-export/csv-imp/csv-account-import.c:153
-#, fuzzy
 msgid "type"
 msgstr "tipe"
 
 #: gnucash/import-export/csv-exp/csv-tree-export.c:155
-#, fuzzy
 msgid "full_name"
-msgstr "Nama Lengkap"
+msgstr "nama_lengkap"
 
 #: gnucash/import-export/csv-exp/csv-tree-export.c:155
-#, fuzzy
 msgid "name"
-msgstr "Nama"
+msgstr "nama"
 
 #: gnucash/import-export/csv-exp/csv-tree-export.c:156
-#, fuzzy
 msgid "code"
-msgstr "Kode Pin"
+msgstr "kode"
 
 #: gnucash/import-export/csv-exp/csv-tree-export.c:156
-#, fuzzy
 msgid "description"
-msgstr "Deskripsi"
+msgstr "deskripsi"
 
 #: gnucash/import-export/csv-exp/csv-tree-export.c:156
-#, fuzzy
 msgid "color"
 msgstr "warna"
 
 #: gnucash/import-export/csv-exp/csv-tree-export.c:157
-#, fuzzy
 msgid "notes"
-msgstr "Catatan"
+msgstr "catatan"
 
 #: gnucash/import-export/csv-exp/csv-tree-export.c:157
+#, fuzzy
 msgid "commoditym"
-msgstr ""
+msgstr "commoditym"
 
 #: gnucash/import-export/csv-exp/csv-tree-export.c:157
+#, fuzzy
 msgid "commodityn"
-msgstr ""
+msgstr "commodityn"
 
 #: gnucash/import-export/csv-exp/csv-tree-export.c:158
-#, fuzzy
 msgid "hidden"
-msgstr "Tersembunyi"
+msgstr "tersembunyi"
 
 #: gnucash/import-export/csv-exp/csv-tree-export.c:158
-#, fuzzy
 msgid "tax"
-msgstr "kode pajak"
+msgstr "pajak"
 
 #: gnucash/import-export/csv-exp/csv-tree-export.c:158
-#, fuzzy
 msgid "placeholder"
 msgstr "placeholder"
 
 #: gnucash/import-export/csv-exp/gnc-plugin-csv-export.c:54
 msgid "Export Account T_ree to CSV..."
-msgstr ""
+msgstr "Ekspo_r Pohon Akun ke CSV..."
 
 #: gnucash/import-export/csv-exp/gnc-plugin-csv-export.c:55
 msgid "Export the Account Tree to a CSV file"
-msgstr ""
+msgstr "Ekspor Pohon Akun ke berkas CSV"
 
 #: gnucash/import-export/csv-exp/gnc-plugin-csv-export.c:59
-#, fuzzy
 msgid "Export _Transactions to CSV..."
-msgstr "Ekspor"
+msgstr "Ekspor _Transaksi ke CSV..."
 
 #: gnucash/import-export/csv-exp/gnc-plugin-csv-export.c:60
-#, fuzzy
 msgid "Export the Transactions to a CSV file"
-msgstr "Tampilkan kartu sebagai berkas csv atau vcard"
+msgstr "Ekspor Transaksi ke berkas CSV"
 
 #: gnucash/import-export/csv-exp/gnc-plugin-csv-export.c:64
 msgid "Export A_ctive Register to CSV..."
-msgstr ""
+msgstr "Ekspor Register Aktif ke _CSV..."
 
 #: gnucash/import-export/csv-exp/gnc-plugin-csv-export.c:66
 msgid "Export the Active Register to a CSV file"
-msgstr ""
+msgstr "Ekspor Register Aktif ke berkas CSV"
 
 #: gnucash/import-export/csv-imp/assistant-csv-account-import.c:71
 #, c-format
@@ -20509,6 +20913,10 @@ msgid ""
 "You can verify your selections by clicking on 'Back' or 'Cancel' to Abort "
 "Import.\n"
 msgstr ""
+"Akun akan diimpor dari berkas '%s' saat Anda klik 'Terapkan'.\n"
+"\n"
+"Anda bisa memeriksa pilihan Anda dengan klik 'Kembali' atau 'Batal' untuk "
+"membatalkan Impor.\n"
 
 #: gnucash/import-export/csv-imp/assistant-csv-account-import.c:75
 #, c-format
@@ -20524,6 +20932,18 @@ msgid ""
 "Note: After import, you may need to use 'View / Filter By / Other' menu "
 "option and select to show unused Accounts.\n"
 msgstr ""
+"Akun akan diimpor dari berkas '%s' saat Anda klik 'Terapkan'.\n"
+"\n"
+"Anda bisa memeriksa pilihan Anda dengan klik 'Kembali' atau 'Batal' untuk "
+"membatalkan Impor.\n"
+"\n"
+"Jika ini adalah impor pertama Anda ke sebuah berkas baru, Anda akan melihat "
+"sebuah dialog untuk mengatur opsi buku, karena pengaturan itu akan "
+"berpengaruh pada bagaimana data yang diimpor akan dikonversi ke transaksi "
+"GnuCash.\n"
+"Catatan: Setelah impor, Anda mungkin perlu menggunakan opsi menu 'Lihat / "
+"Filter Berdasar / Lainnya' dan pilih untuk menampilkan Akun yang tak "
+"terpakai.\n"
 
 #: gnucash/import-export/csv-imp/assistant-csv-account-import.c:528
 #, c-format
@@ -20534,6 +20954,11 @@ msgid ""
 "\n"
 "See below for errors..."
 msgstr ""
+"Impor selesai namun dengan galat!\n"
+"\n"
+"Jumlah Akun yang ditambahkan adalah %u dan %u diperbarui.\n"
+"\n"
+"Lihat galat di bawah ini..."
 
 #: gnucash/import-export/csv-imp/assistant-csv-account-import.c:536
 #, c-format
@@ -20542,6 +20967,9 @@ msgid ""
 "\n"
 "The number of Accounts added was %u and %u were updated.\n"
 msgstr ""
+"Impor berhasil!\n"
+"\n"
+"Jumlah Akun yang ditambahkan adalah %u dan %u diperbarui.\n"
 
 #: gnucash/import-export/csv-imp/assistant-csv-price-import.cpp:881
 #: gnucash/import-export/csv-imp/assistant-csv-trans-import.cpp:848
@@ -20549,6 +20977,9 @@ msgid ""
 "There were problems reading some saved settings, continuing to load.\n"
 "Please review and save again."
 msgstr ""
+"Ada masalah saat membaca beberapa pengaturan tersimpan, melanjutkan untuk "
+"memuat.\n"
+"Silakan meninjau dan menyimpannya lagi."
 
 #: gnucash/import-export/csv-imp/assistant-csv-price-import.cpp:904
 #: gnucash/import-export/csv-imp/assistant-csv-trans-import.cpp:871
@@ -20588,7 +21019,7 @@ msgstr "Gabung dengan kolom sebelah ka_nan"
 #: gnucash/import-export/csv-imp/assistant-csv-price-import.cpp:1313
 #: gnucash/import-export/csv-imp/assistant-csv-trans-import.cpp:1237
 msgid "_Split this column"
-msgstr "_Pecah kolom ini"
+msgstr "_Pisahkan kolom ini"
 
 #: gnucash/import-export/csv-imp/assistant-csv-price-import.cpp:1318
 #: gnucash/import-export/csv-imp/assistant-csv-trans-import.cpp:1242
@@ -20779,7 +21210,7 @@ msgid ""
 "encoding is wrong."
 msgstr ""
 "Tak ditemukan data valid pada berkas yang dipilih. Berkas mungkin kosong "
-"atau enkoding yang dipilih salah."
+"atau pengkodean yang dipilih salah."
 
 #: gnucash/import-export/csv-imp/gnc-import-price.cpp:510
 #: gnucash/import-export/csv-imp/gnc-import-tx.cpp:532
@@ -20814,11 +21245,13 @@ msgid ""
 "From specified either.\n"
 "This should never happen. Please report this as a bug."
 msgstr ""
+"Tak ada kolom 'Dari Namespace/Dari Simbol' yang dipilih dan tak ada "
+"Komoditas Dari yang ditentukan.\n"
+"Ini seharusnya tidak pernah terjadi. Silakan laporkan ini sebagai kutu."
 
 #: gnucash/import-export/csv-imp/gnc-import-tx.cpp:480
-#, fuzzy
 msgid "Please select an account column."
-msgstr "Pilih kolom yang diberikan"
+msgstr "Silakan pilih sebuah kolom akun."
 
 #: gnucash/import-export/csv-imp/gnc-import-tx.cpp:482
 msgid ""
@@ -20828,45 +21261,47 @@ msgstr ""
 "Akun."
 
 #: gnucash/import-export/csv-imp/gnc-import-tx.cpp:488
-#, fuzzy
 msgid "Please select a description column."
-msgstr "Keterangan Kolom Tabel Akses"
+msgstr "Silakan pilih sebuah kolom deskripsi."
 
 #: gnucash/import-export/csv-imp/gnc-import-tx.cpp:494
 msgid "Please select a deposit or withdrawal column."
-msgstr ""
+msgstr "Silakan pilih sebuah kolom setoran atau penarikan."
 
 #: gnucash/import-export/csv-imp/gnc-import-tx.cpp:504
+#, fuzzy
 msgid ""
 "Please select a transfer account column or remove the other transfer related "
 "columns."
 msgstr ""
+"Silakan pilih kolom akun transfer atau menghapus kolom pengalihan terkait "
+"lainnya."
 
 #: gnucash/import-export/csv-imp/gnc-import-tx.cpp:671
 msgid ""
 "No account column selected and no default account specified either.\n"
 "This should never happen. Please report this as a bug."
 msgstr ""
+"Tidak ada kolom akun yang dipilih dan tidak ada akun baku yang ditentukan.\n"
+"Ini seharusnya tidak pernah terjadi. Silakan laporkan ini sebagai kutu."
 
 #: gnucash/import-export/csv-imp/gnc-imp-props-price.cpp:51
 msgid "From Symbol"
 msgstr "Dari Simbol"
 
 #: gnucash/import-export/csv-imp/gnc-imp-props-price.cpp:52
-#, fuzzy
 msgid "From Namespace"
-msgstr "Namespace:"
+msgstr "Dari Namespace"
 
 #: gnucash/import-export/csv-imp/gnc-imp-props-price.cpp:53
-#, fuzzy
 msgid "Currency To"
-msgstr "mata uang"
+msgstr "Mata Uang Ke"
 
 #: gnucash/import-export/csv-imp/gnc-imp-props-price.cpp:66
 #: gnucash/import-export/csv-imp/gnc-imp-props-tx.cpp:117
 #: gnucash/import-export/csv-imp/gnc-imp-props-tx.cpp:211
 msgid "Value doesn't appear to contain a valid number."
-msgstr ""
+msgstr "Nilai tak berisi angka yang valid."
 
 #: gnucash/import-export/csv-imp/gnc-imp-props-price.cpp:79
 #: gnucash/import-export/csv-imp/gnc-imp-props-price.cpp:84
@@ -20876,39 +21311,38 @@ msgstr ""
 #: gnucash/import-export/csv-imp/gnc-imp-props-tx.cpp:140
 msgid "Value can't be parsed into a number using the selected currency format."
 msgstr ""
+"Nilai tak dapat diurai menjadi angka dengan format mata uang yang dipilih."
 
 #: gnucash/import-export/csv-imp/gnc-imp-props-price.cpp:121
 #: gnucash/import-export/csv-imp/gnc-imp-props-tx.cpp:197
-#, fuzzy
 msgid "Value can't be parsed into a valid commodity."
-msgstr "Nilai terurai \"%s\" bukan tanda tangan D-Bus yang valid"
+msgstr "Nilai tak dapat diurai menjadi komoditas yang valid."
 
 #: gnucash/import-export/csv-imp/gnc-imp-props-price.cpp:141
-#, fuzzy
 msgid "Value can't be parsed into a valid namespace."
-msgstr "Nilai terurai \"%s\" bukan tanda tangan D-Bus yang valid"
+msgstr "Nilai tak dapat diurai menjadi namespace yang valid."
 
 #: gnucash/import-export/csv-imp/gnc-imp-props-price.cpp:155
-#, fuzzy
 msgid "Column value can not be empty."
-msgstr "Tuple kosong, tipe dan nilai “()”"
+msgstr "Nilai kolom tak boleh kosong."
 
 #: gnucash/import-export/csv-imp/gnc-imp-props-price.cpp:174
 msgid "'From Symbol' can not be empty."
 msgstr "'Dari Simbol' tak boleh kosong."
 
 #: gnucash/import-export/csv-imp/gnc-imp-props-price.cpp:194
-#, fuzzy
 msgid "'From Namespace' can not be empty."
-msgstr "Kosongkan semua butir dari Tong Sampah?"
+msgstr "'Dari Namespace' tak boleh kosong."
 
 #: gnucash/import-export/csv-imp/gnc-imp-props-price.cpp:219
 msgid "'Currency To' can not be the same as 'Commodity From'."
-msgstr ""
+msgstr "'Mata Uang Ke' tidak boleh sama dengan 'Komoditas Dari'."
 
 #: gnucash/import-export/csv-imp/gnc-imp-props-price.cpp:221
+#, fuzzy
 msgid "Value parsed into an invalid currency for a currency column type."
 msgstr ""
+"Nilai diurai menjadi mata uang yang tidak valid untuk jenis kolom mata uang."
 
 #: gnucash/import-export/csv-imp/gnc-imp-props-price.cpp:235
 #: gnucash/import-export/csv-imp/gnc-imp-props-price.cpp:243
@@ -20918,195 +21352,167 @@ msgstr ""
 #: gnucash/import-export/csv-imp/gnc-imp-props-tx.cpp:516
 #: gnucash/import-export/csv-imp/gnc-imp-props-tx.cpp:571
 #: gnucash/import-export/csv-imp/gnc-imp-props-tx.cpp:579
-#, fuzzy
 msgid " could not be understood.\n"
-msgstr "Alamat IM '%s' tak dapat dipahami."
+msgstr " tak dapat dipahami.\n"
 
 #: gnucash/import-export/csv-imp/gnc-imp-props-price.cpp:276
 #: gnucash/import-export/csv-imp/gnc-imp-props-tx.cpp:323
-#, fuzzy
 msgid "No date column."
-msgstr "Tanggal"
+msgstr "Tak ada kolom tanggal."
 
 #: gnucash/import-export/csv-imp/gnc-imp-props-price.cpp:278
-#, fuzzy
 msgid "No amount column."
-msgstr "jumlah"
+msgstr "Tak ada kolom jumlah."
 
 #: gnucash/import-export/csv-imp/gnc-imp-props-price.cpp:280
-#, fuzzy
 msgid "No 'Currency to'."
-msgstr "mata uang"
+msgstr "Tak ada 'Mata uang ke'."
 
 #: gnucash/import-export/csv-imp/gnc-imp-props-price.cpp:282
-#, fuzzy
 msgid "No 'Commodity from'."
-msgstr "komoditas"
+msgstr "Tak ada 'Komoditas dari'."
 
 #: gnucash/import-export/csv-imp/gnc-imp-props-price.cpp:352
 msgid "Failed to create price from selected columns."
-msgstr ""
+msgstr "Gagal membuat harga dari kolom yang dipilih."
 
 #: gnucash/import-export/csv-imp/gnc-imp-props-tx.cpp:62
-#, fuzzy
 msgid "Transaction Commodity"
-msgstr "transaksi"
+msgstr "Komoditas Transaksi"
 
 #: gnucash/import-export/csv-imp/gnc-imp-props-tx.cpp:72
-#, fuzzy
 msgid "Transfer Action"
-msgstr "aksi: transfer"
+msgstr "Aksi Transfer"
 
 #: gnucash/import-export/csv-imp/gnc-imp-props-tx.cpp:74
-#, fuzzy
 msgid "Transfer Memo"
-msgstr "Transfer"
+msgstr "Memo Transfer"
 
 #: gnucash/import-export/csv-imp/gnc-imp-props-tx.cpp:75
-#, fuzzy
 msgid "Transfer Reconciled"
-msgstr "status transaksi: rekonsiliasi"
+msgstr "Transfer Direkonsiliasi"
 
 #: gnucash/import-export/csv-imp/gnc-imp-props-tx.cpp:76
-#, fuzzy
 msgid "Transfer Reconcile Date"
-msgstr "penarikan"
+msgstr "Tanggal Rekonsiliasi Transfer"
 
 #: gnucash/import-export/csv-imp/gnc-imp-props-tx.cpp:160
 msgid "Value can't be parsed into a valid reconcile state."
-msgstr ""
+msgstr "Nilai tak dapat diurai menjadi sebuah status rekonsiliasi yang valid."
 
 #: gnucash/import-export/csv-imp/gnc-imp-props-tx.cpp:223
 msgid "Price can't be parsed into a number."
-msgstr ""
+msgstr "Harga tak dapat diurai menjadi angka."
 
 #: gnucash/import-export/csv-imp/gnc-imp-props-tx.cpp:379
 msgid "Account value can't be mapped back to an account."
-msgstr ""
+msgstr "Nilai akun tak dapat dipetakan kembali ke sebuah akun."
 
 #: gnucash/import-export/csv-imp/gnc-imp-props-tx.cpp:380
 msgid "Transfer account value can't be mapped back to an account."
-msgstr ""
+msgstr "Nilai akun transfer tak dapat dipetakan kembali ke sebuah akun."
 
 #: gnucash/import-export/csv-imp/gnc-imp-props-tx.cpp:429
-#, fuzzy
 msgid "Account value can't be empty."
-msgstr "Nama Akun tak boleh kosong"
+msgstr "Nilai akun tak boleh kosong."
 
 #: gnucash/import-export/csv-imp/gnc-imp-props-tx.cpp:440
 msgid "Transfer account value can't be empty."
-msgstr ""
+msgstr "Nilai akun transfer tak boleh kosong."
 
 #: gnucash/import-export/csv-imp/gnc-imp-props-tx.cpp:591
 #, fuzzy
 msgid "No deposit or withdrawal column."
-msgstr "aksi: deposito"
+msgstr "No deposit atau penarikan kolom."
 
 #: gnucash/import-export/csv-imp/gnc-imp-props-tx.cpp:597
 msgid "Split is reconciled but reconcile date column is missing or invalid."
 msgstr ""
+"Split direkonsiliasi tetapi tanggal rekonsiliasi tidak ada atau tidak valid."
 
 #: gnucash/import-export/csv-imp/gnc-imp-props-tx.cpp:604
 msgid ""
 "Transfer split is reconciled but transfer reconcile date column is missing "
 "or invalid."
 msgstr ""
+"Split transfer direkonsiliasi tetapi kolom tanggal rekonsiliasi transfer "
+"tidak ada atau tidak valid."
 
 #: gnucash/import-export/csv-imp/gnc-imp-settings-csv.cpp:49
-#, fuzzy
 msgid "No Settings"
-msgstr "Pengaturan"
+msgstr "Tak Ada Pengaturan"
 
 #: gnucash/import-export/csv-imp/gnc-imp-settings-csv.cpp:50
-#, fuzzy
 msgid "GnuCash Export Format"
-msgstr "Pilih format ekspor"
+msgstr "Format Ekspor GnuCash"
 
 #: gnucash/import-export/csv-imp/gnc-plugin-csv-import.c:50
-#, fuzzy
 msgid "Import _Accounts from CSV..."
-msgstr "Impor dari berkas…"
+msgstr "Impor _Akun dari CSV..."
 
 #: gnucash/import-export/csv-imp/gnc-plugin-csv-import.c:51
-#, fuzzy
 msgid "Import Accounts from a CSV file"
-msgstr "Impor dari berkas…"
+msgstr "Impor Akun dari berkas CSV"
 
 #: gnucash/import-export/csv-imp/gnc-plugin-csv-import.c:55
-#, fuzzy
 msgid "Import _Transactions from CSV..."
-msgstr "Mengimpor data dari program yang lain"
+msgstr "Impor _Transaksi dari CSV..."
 
 #: gnucash/import-export/csv-imp/gnc-plugin-csv-import.c:56
-#, fuzzy
 msgid "Import Transactions from a CSV file"
-msgstr "Impor Box dari berkas “%s” gagal."
+msgstr "Impor Transaksi dari berkas CSV"
 
 #: gnucash/import-export/csv-imp/gnc-plugin-csv-import.c:60
-#, fuzzy
 msgid "Import _Prices from a CSV file..."
-msgstr "Impor dari berkas…"
+msgstr "Impor _Harga dari berkas CSV..."
 
 #: gnucash/import-export/csv-imp/gnc-plugin-csv-import.c:61
-#, fuzzy
 msgid "Import Prices from a CSV file"
-msgstr "Impor dari berkas…"
+msgstr "Impor Harga dari berkas CSV"
 
 #: gnucash/import-export/customer-import/dialog-customer-import-gui.c:139
-#, fuzzy
 msgid "Shipping Name"
-msgstr "Tidak ada nama"
+msgstr "Nama Pengiriman"
 
 #: gnucash/import-export/customer-import/dialog-customer-import-gui.c:140
-#, fuzzy
 msgid "Shipping Address 1"
-msgstr "Alamat"
+msgstr "Alamat Pengiriman 1"
 
 #: gnucash/import-export/customer-import/dialog-customer-import-gui.c:141
-#, fuzzy
 msgid "Shipping Address 2"
-msgstr "Alamat"
+msgstr "Alamat Pengiriman 2"
 
 #: gnucash/import-export/customer-import/dialog-customer-import-gui.c:142
-#, fuzzy
 msgid "Shipping Address 3"
-msgstr "Alamat"
+msgstr "Alamat Pengiriman 3"
 
 #: gnucash/import-export/customer-import/dialog-customer-import-gui.c:143
-#, fuzzy
 msgid "Shipping Address 4"
-msgstr "Alamat"
+msgstr "Alamat Pengiriman 4"
 
 #: gnucash/import-export/customer-import/dialog-customer-import-gui.c:144
-#, fuzzy
 msgid "Shipping Phone"
-msgstr "Telepon:"
+msgstr "Telepon Pengiriman"
 
 #: gnucash/import-export/customer-import/dialog-customer-import-gui.c:145
-#, fuzzy
 msgid "Shipping Fax"
-msgstr "Faks"
+msgstr "Faks Pengiriman"
 
 #: gnucash/import-export/customer-import/dialog-customer-import-gui.c:146
-#, fuzzy
 msgid "Shipping Email"
-msgstr "Surel:"
+msgstr "Surel Pengiriman"
 
 #: gnucash/import-export/customer-import/dialog-customer-import-gui.c:176
-#, fuzzy
 msgid "Import Customers from csv"
-msgstr "Impor dari Pine."
+msgstr "Impor Pelanggan dari csv"
 
 #: gnucash/import-export/customer-import/dialog-customer-import-gui.c:192
 msgid "customers"
-msgstr ""
+msgstr "pelanggan"
 
 #: gnucash/import-export/customer-import/dialog-customer-import-gui.c:193
-#, fuzzy
 msgid "vendors"
-msgstr ""
-"Anda dapat membeli target dari vendor yang dikenal baik seperti KODAK, X-"
-"Rite, dan LaserSoft di berbagai toko daring."
+msgstr "vendor"
 
 #: gnucash/import-export/customer-import/dialog-customer-import-gui.c:201
 #, c-format
@@ -21120,15 +21526,22 @@ msgid ""
 "   %u %s created\n"
 "   %u %s updated (based on id)"
 msgstr ""
+"Hasil impor:\n"
+"%i baris diabaikan\n"
+"%i baris diimpor:\n"
+"   %u %s diperbaiki\n"
+"   %u %s diabaikan (tak dapat diperbaiki)\n"
+"\n"
+"   %u %s dibuat\n"
+"   %u %s diperbarui (berdasarkan id)"
 
 #: gnucash/import-export/customer-import/gnc-plugin-customer-import.c:59
-#, fuzzy
 msgid "Import _Customers & Vendors..."
-msgstr "Impor"
+msgstr "Impor Pe_langgan & Vendor..."
 
 #: gnucash/import-export/customer-import/gnc-plugin-customer-import.c:59
 msgid "Import Customers and Vendors from a CSV text file."
-msgstr ""
+msgstr "Impor Pelanggan dan Vendor dari berkas teks CSV."
 
 #: gnucash/import-export/import-account-matcher.c:260
 #, c-format
@@ -21136,6 +21549,8 @@ msgid ""
 "The account '%s' is a placeholder account and does not allow transactions. "
 "Please choose a different account."
 msgstr ""
+"Akun '%s' adalah akun placeholder dan tidak mengizinkan transaksi. Silakan "
+"memilih akun yang lain."
 
 #: gnucash/import-export/import-account-matcher.c:277
 #, c-format
@@ -21143,11 +21558,12 @@ msgid ""
 "The account '%s' has a different commodity to the one required, '%s'. Please "
 "choose a different account."
 msgstr ""
+"Akun '%s' memiliki komoditas yang berbeda dari yang diperlukan, '%s'. "
+"Silakan memilih akun yang lain."
 
 #: gnucash/import-export/import-account-matcher.c:469
-#, fuzzy
 msgid "(Full account ID: "
-msgstr "ID"
+msgstr "(ID akun lengkap: "
 
 #: gnucash/import-export/import-commodity-matcher.c:113
 msgid ""
@@ -21155,254 +21571,245 @@ msgid ""
 "Please note that the exchange code of the commodity you select will be "
 "overwritten."
 msgstr ""
+"Silakan memilih sebuah komoditas yang sesuai dengan kode bursa spesifik "
+"berikut. Mohon dicatat bahwa kode bursa komoditas yang Anda pilih akan "
+"ditimpa."
 
 #: gnucash/import-export/import-format-dialog.c:78
-#, fuzzy
 msgid "m/d/y"
-msgstr "%a, %d/%m/%Y %H:%M"
+msgstr "m/d/y"
 
 #: gnucash/import-export/import-format-dialog.c:86
-#, fuzzy
 msgid "d/m/y"
-msgstr "%d/%m/%Y %H:%M:%S"
+msgstr "d/m/y"
 
 #: gnucash/import-export/import-format-dialog.c:94
-#, fuzzy
 msgid "y/m/d"
-msgstr "%d/%m/%y"
+msgstr "y/m/d"
 
 #: gnucash/import-export/import-format-dialog.c:102
-#, fuzzy
 msgid "y/d/m"
-msgstr "%d/%m/%y"
+msgstr "y/d/m"
 
-#: gnucash/import-export/import-main-matcher.c:533
-#: gnucash/import-export/import-main-matcher.c:683
+#: gnucash/import-export/import-main-matcher.c:591
+#: gnucash/import-export/import-main-matcher.c:741
 msgid "Destination account for the auto-balance split."
-msgstr ""
+msgstr "Akun tujuan untuk split seimbang-otomatis."
 
-#: gnucash/import-export/import-main-matcher.c:874
+#: gnucash/import-export/import-main-matcher.c:930
 #, fuzzy
 msgid "Assign a transfer account to the selection."
-msgstr "akun tujuan transfer"
+msgstr "Menetapkan rekening transfer ke seleksi."
 
-#: gnucash/import-export/import-main-matcher.c:1041
+#: gnucash/import-export/import-main-matcher.c:1093
 msgctxt "Column header for 'Adding transaction'"
 msgid "A"
-msgstr ""
+msgstr "T"
 
-#: gnucash/import-export/import-main-matcher.c:1044
-#, fuzzy
+#: gnucash/import-export/import-main-matcher.c:1096
 msgctxt "Column header for 'Updating plus Clearing transaction'"
 msgid "U+C"
-msgstr "U"
+msgstr "U+C"
 
-#: gnucash/import-export/import-main-matcher.c:1048
-#, fuzzy
+#: gnucash/import-export/import-main-matcher.c:1100
 msgctxt "Column header for 'Clearing transaction'"
 msgid "C"
 msgstr "C"
 
-#: gnucash/import-export/import-main-matcher.c:1054
-#, fuzzy
+#: gnucash/import-export/import-main-matcher.c:1107
 msgid "Info"
 msgstr "Info"
 
-#: gnucash/import-export/import-main-matcher.c:1061
+#: gnucash/import-export/import-main-matcher.c:1114
 #: gnucash/report/stylesheets/head-or-tail.scm:102
-#, fuzzy
 msgid "Additional Comments"
-msgstr "Komentar:"
+msgstr "Komentar Tambahan"
 
-#: gnucash/import-export/import-main-matcher.c:1427
+#: gnucash/import-export/import-main-matcher.c:1478
+#, fuzzy
 msgid "New, already balanced"
-msgstr ""
+msgstr "Baru, sudah seimbang"
 
 #. Translators: %1$s is the amount to be
 #. transferred. %2$s is the destination account.
-#: gnucash/import-export/import-main-matcher.c:1453
+#: gnucash/import-export/import-main-matcher.c:1504
 #, fuzzy, c-format
 msgid "New, transfer %s to (manual) \"%s\""
 msgstr "Gagal mentransfer pesan: %s"
 
 #. Translators: %1$s is the amount to be
 #. transferred. %2$s is the destination account.
-#: gnucash/import-export/import-main-matcher.c:1461
+#: gnucash/import-export/import-main-matcher.c:1512
 #, fuzzy, c-format
 msgid "New, transfer %s to (auto) \"%s\""
 msgstr "Gagal mentransfer pesan: %s"
 
 #. Translators: %s is the amount to be transferred.
-#: gnucash/import-export/import-main-matcher.c:1472
-#, c-format
+#: gnucash/import-export/import-main-matcher.c:1523
+#, fuzzy, c-format
 msgid "New, UNBALANCED (need acct to transfer %s)!"
-msgstr ""
+msgstr "Baru, TAK SEIMBANG (kebutuhan acct transfer% s)!"
 
-#: gnucash/import-export/import-main-matcher.c:1489
+#: gnucash/import-export/import-main-matcher.c:1540
 #, fuzzy
 msgid "Reconcile (manual) match"
-msgstr "Manual"
+msgstr "Rekonsiliasi (manual) pertandingan"
 
-#: gnucash/import-export/import-main-matcher.c:1493
+#: gnucash/import-export/import-main-matcher.c:1544
 #, fuzzy
 msgid "Reconcile (auto) match"
-msgstr "penarikan"
+msgstr "Rekonsiliasi (auto) pertandingan"
 
-#: gnucash/import-export/import-main-matcher.c:1500
-#: gnucash/import-export/import-main-matcher.c:1526
+#: gnucash/import-export/import-main-matcher.c:1551
+#: gnucash/import-export/import-main-matcher.c:1577
 #, fuzzy
 msgid "Match missing!"
-msgstr "Hilang"
+msgstr "Mencocokkan hilang!"
 
-#: gnucash/import-export/import-main-matcher.c:1515
+#: gnucash/import-export/import-main-matcher.c:1566
+#, fuzzy
 msgid "Update and reconcile (manual) match"
-msgstr ""
+msgstr "Update dan mendamaikan (manual) pertandingan"
 
-#: gnucash/import-export/import-main-matcher.c:1519
+#: gnucash/import-export/import-main-matcher.c:1570
+#, fuzzy
 msgid "Update and reconcile (auto) match"
-msgstr ""
+msgstr "Update dan mendamaikan (auto) pertandingan"
 
-#: gnucash/import-export/import-main-matcher.c:1534
+#: gnucash/import-export/import-main-matcher.c:1585
 #, fuzzy
 msgid "Do not import (no action selected)"
-msgstr "Hapus aksi terpilih saat ini."
+msgstr "Jangan impor (tidak ada tindakan yang dipilih)"
 
 #: gnucash/import-export/import-match-picker.c:423
 #, fuzzy
 msgid "Confidence"
-msgstr ""
-"Anda dapat melakukan pemeriksaan tambahan dengan melihat melalui folder dan "
-"berkas yang disalin pada media tujuan. Dengan memeriksa untuk memastikan "
-"bahwa berkas dan folder yang Anda transfer memang benar ada dalam backup, "
-"Anda dapat memiliki kepercayaan lebih bahwa prosesnya sukses."
+msgstr "Kepercayaan"
 
 #: gnucash/import-export/import-match-picker.c:438
-#, fuzzy
 msgid "Pending Action"
-msgstr "Ditunda"
+msgstr "Aksi Tertunda"
 
 #: gnucash/import-export/import-pending-matches.c:194
 #: libgnucash/engine/policy.c:61
-#, fuzzy
 msgid "Manual"
 msgstr "Manual"
 
 #: gnucash/import-export/import-pending-matches.c:196
 #: gnucash/report/reports/standard/balsheet-eg.scm:226
-#, fuzzy
 msgid "Auto"
 msgstr "Otomatis"
 
 #: gnucash/import-export/log-replay/gnc-log-replay.c:580
-#, fuzzy
 msgid "Select a .log file to replay"
-msgstr "_Simpan Log Galat ke Berkas…"
+msgstr "Pilih sebuah berkas .log untuk dimainkan ulang"
 
 #. Translators: %s is the file name.
 #: gnucash/import-export/log-replay/gnc-log-replay.c:600
-#, fuzzy, c-format
+#, c-format
 msgid "Cannot open the current log file: %s"
-msgstr "%s: Tak dapat membuka berkas log untuk tampilan %s!"
+msgstr "Tak dapat membuka berkas log ini: %s"
 
 #: gnucash/import-export/log-replay/gnc-log-replay.c:615
-#, fuzzy, c-format
+#, c-format
 msgid "Failed to open log file: %s: %s"
-msgstr "Gagal membuka berkas \"%s\": %s"
+msgstr "Gagal membuka berkas log: %s: %s"
 
 #: gnucash/import-export/log-replay/gnc-log-replay.c:625
 msgid "The log file you selected was empty."
-msgstr ""
+msgstr "Berkas log yang dipilih kosong."
 
 #: gnucash/import-export/log-replay/gnc-log-replay.c:634
 msgid ""
 "The log file you selected cannot be read. The file header was not recognized."
-msgstr ""
+msgstr "Berkas log yang dipilih tak dapat dibaca. Header berkas tak dikenal."
 
 #: gnucash/import-export/log-replay/gnc-plugin-log-replay.c:48
-#, fuzzy
 msgid "_Replay GnuCash .log file..."
-msgstr "_Simpan Log Galat ke Berkas…"
+msgstr "Mainkan ulang be_rkas .log GnuCash..."
 
 #: gnucash/import-export/log-replay/gnc-plugin-log-replay.c:49
 msgid "Replay a GnuCash log file after a crash. This cannot be undone."
 msgstr ""
+"Mainkan ulang berkas log GnuCash setelah terjadi kres. Ini tidak bisa "
+"dibatalkan."
 
 #: gnucash/import-export/ofx/gnc-ofx-import.c:643
-#, fuzzy, c-format
+#, c-format
 msgid "Stock account for security \"%s\""
-msgstr "%s pada stock"
+msgstr "Akun saham untuk sekuritas \"%s\""
 
 #: gnucash/import-export/ofx/gnc-ofx-import.c:816
-#, fuzzy, c-format
+#, c-format
 msgid "Income account for security \"%s\""
-msgstr "tipe akun: Pendapatan"
+msgstr "Akun pendapatan untuk sekuritas \"%s\""
 
-#: gnucash/import-export/ofx/gnc-ofx-import.c:935
-#, fuzzy
+#: gnucash/import-export/ofx/gnc-ofx-import.c:937
 msgid "Unknown OFX account"
-msgstr "<Tak diketahui>"
+msgstr "Akun OFX tak diketahui"
 
-#: gnucash/import-export/ofx/gnc-ofx-import.c:958
+#: gnucash/import-export/ofx/gnc-ofx-import.c:960
 #, fuzzy
 msgid "Unknown OFX checking account"
-msgstr "tipe akun: rekening koran"
+msgstr "Diketahui OFX memeriksa akun"
 
-#: gnucash/import-export/ofx/gnc-ofx-import.c:962
+#: gnucash/import-export/ofx/gnc-ofx-import.c:964
 msgid "Unknown OFX savings account"
-msgstr ""
+msgstr "Akun tabungan OFX tak diketahui"
 
-#: gnucash/import-export/ofx/gnc-ofx-import.c:966
-#, fuzzy
+#: gnucash/import-export/ofx/gnc-ofx-import.c:968
 msgid "Unknown OFX money market account"
-msgstr "tipe akun: pasar uang"
+msgstr "Akun pasar uang OFX tak diketahui"
 
-#: gnucash/import-export/ofx/gnc-ofx-import.c:970
+#: gnucash/import-export/ofx/gnc-ofx-import.c:972
+#, fuzzy
 msgid "Unknown OFX credit line account"
-msgstr ""
+msgstr "akun kredit tidak diketahui OFX"
 
-#: gnucash/import-export/ofx/gnc-ofx-import.c:975
+#: gnucash/import-export/ofx/gnc-ofx-import.c:977
+#, fuzzy
 msgid "Unknown OFX CMA account"
-msgstr ""
+msgstr "akun diketahui OFX CMA"
 
-#: gnucash/import-export/ofx/gnc-ofx-import.c:979
+#: gnucash/import-export/ofx/gnc-ofx-import.c:981
 msgid "Unknown OFX credit card account"
-msgstr ""
+msgstr "Akun kartu kredit OFX tak diketahui"
 
-#: gnucash/import-export/ofx/gnc-ofx-import.c:983
+#: gnucash/import-export/ofx/gnc-ofx-import.c:985
 msgid "Unknown OFX investment account"
-msgstr ""
+msgstr "Akun investasi OFX tak diketahui"
 
-#: gnucash/import-export/ofx/gnc-ofx-import.c:1163
-#, c-format
+#: gnucash/import-export/ofx/gnc-ofx-import.c:1177
+#, fuzzy, c-format
 msgid ""
 "OFX file '%s' imported, %d transactions processed, no transactions to match"
 msgstr ""
+"File OFX '% s' impor, transaksi% d diproses, tidak ada transaksi untuk "
+"pertandingan"
 
-#: gnucash/import-export/ofx/gnc-ofx-import.c:1214
+#: gnucash/import-export/ofx/gnc-ofx-import.c:1228
 msgid "Open/Quicken Financial Exchange file (*.ofx, *.qfx)"
-msgstr ""
+msgstr "Berkas Open/Quicken Financial Exchange (*.ofx, *.qfx)"
 
-#: gnucash/import-export/ofx/gnc-ofx-import.c:1219
+#: gnucash/import-export/ofx/gnc-ofx-import.c:1233
 msgid "Select one or multiple OFX/QFX file(s) to process"
-msgstr ""
+msgstr "Pilih satu atau beberapa berkas OFX/QFX untuk diproses"
 
 #: gnucash/import-export/ofx/gnc-plugin-ofx.c:46
-#, fuzzy
 msgid "Import _OFX/QFX..."
-msgstr "_Impor"
+msgstr "Impor _OFX/QFX..."
 
 #: gnucash/import-export/ofx/gnc-plugin-ofx.c:47
 msgid "Process an OFX/QFX response file"
-msgstr ""
+msgstr "Proses berkas respon OFX/QFX"
 
 #: gnucash/import-export/qif-imp/assistant-qif-import.c:556
-#, fuzzy
 msgid "GnuCash account name"
-msgstr "Nama Akun tak boleh kosong"
+msgstr "Nama akun GnuCash"
 
 #: gnucash/import-export/qif-imp/assistant-qif-import.c:861
 msgid "Enter a name or short description, such as \"Red Hat Stock\"."
-msgstr ""
+msgstr "Masukkan nama atau deskripsi singkat, misal \"Saham Red Hat\"."
 
 #: gnucash/import-export/qif-imp/assistant-qif-import.c:863
 msgid ""
@@ -21413,26 +21820,19 @@ msgstr ""
 "tidak ada, atau Anda tidak mengetahuinya, buatlah simbol Anda sendiri."
 
 #: gnucash/import-export/qif-imp/assistant-qif-import.c:866
+#, fuzzy
 msgid ""
 "Select the exchange on which the symbol is traded, or select the type of "
 "investment (such as FUND for mutual funds.) If you don't see your exchange "
 "or an appropriate investment type, you can enter a new one."
 msgstr ""
+"Pilih pertukaran yang simbol diperdagangkan, atau pilih jenis investasi "
+"(seperti DANA untuk reksa dana.) Jika Anda tidak melihat pertukaran atau "
+"jenis investasi yang sesuai, Anda dapat memasukkan yang baru."
 
 #: gnucash/import-export/qif-imp/assistant-qif-import.c:906
-#, fuzzy
 msgid "_Name or description"
-msgstr ""
-"|Nama program|Keterangan|Ekstensi berkas\n"
-"|KiCad |Manajer proyek|+*.pro+\n"
-"|Eeschema |Editor skematik dan komponen|+*.sch, *.lib, *.net+\n"
-"|Pcbnew |Editor papan sirkuit dan _footprint_|+*.kicad_pcb, *.kicad_mo+\n"
-"|GerbView |Penampil berkas Gerber dan _drill_|+\\*.g\\*, *.drl, etc.+\n"
-"|Bitmap2Component |Konverter gambar _bitmap_ menjadi komponen atau "
-"_footprint_|+*.lib, *.kicad_mod, *.kicad_wks+\n"
-"|PCB Calculator |Kalkulator untuk komponen, lebar jalur, spasi elektrikal, "
-"kode warna, dan sebagainya|Tidak ada\n"
-"|Pl Editor |Editor tata letak halaman|+*.kicad_wks+\n"
+msgstr "_Nama atau deskripsi"
 
 #: gnucash/import-export/qif-imp/assistant-qif-import.c:930
 msgid "_Ticker symbol or other abbreviation"
@@ -21441,57 +21841,52 @@ msgstr "Simbol atau singka_tan lain"
 #: gnucash/import-export/qif-imp/assistant-qif-import.c:964
 #, fuzzy
 msgid "_Exchange or abbreviation type"
-msgstr "Pertukarkan Bingkai Saat Ini (%ld)"
+msgstr "_Exchange atau jenis singkatan"
 
 #: gnucash/import-export/qif-imp/assistant-qif-import.c:1176
 #: gnucash/import-export/qif-imp/assistant-qif-import.c:3315
-#, fuzzy
 msgid "(split)"
-msgstr "_Pecah"
+msgstr "(split)"
 
 #: gnucash/import-export/qif-imp/assistant-qif-import.c:1369
-#, fuzzy
 msgid "Are you sure you want to cancel?"
-msgstr "Anda yakin ingin menyerah?"
+msgstr "Apakah Anda yakin ingin membatalkan?"
 
 #: gnucash/import-export/qif-imp/assistant-qif-import.c:1580
-#, fuzzy
 msgid "Please select a file to load."
-msgstr "Harap pilih suatu berkas…"
+msgstr "Silakan pilih sebuah berkas untuk dimuat."
 
 #: gnucash/import-export/qif-imp/assistant-qif-import.c:1583
 msgid "File not found or read permission denied. Please select another file."
 msgstr ""
+"Berkas tidak ditemukan atau hak akses baca ditolak. Silakan pilih berkas "
+"lain."
 
 #: gnucash/import-export/qif-imp/assistant-qif-import.c:1594
 msgid "That QIF file is already loaded. Please select another file."
-msgstr ""
+msgstr "Berkas QIF tersebut telah dimuat. Silakan pilih berkas lain."
 
 #: gnucash/import-export/qif-imp/assistant-qif-import.c:1662
-#, fuzzy
 msgid "Select QIF File"
-msgstr "Pilih Berkas…"
+msgstr "Pilih Berkas QIF"
 
 #: gnucash/import-export/qif-imp/assistant-qif-import.c:1725
 #: gnucash/import-export/qif-imp/assistant-qif-import.c:1728
 #: gnucash/import-export/qif-imp/assistant-qif-import.c:2978
 #: gnucash/import-export/qif-imp/assistant-qif-import.c:2981
-#, fuzzy
 msgid "_Resume"
 msgstr "_Lanjutkan"
 
 #: gnucash/import-export/qif-imp/assistant-qif-import.c:1813
 #: gnucash/import-export/qif-imp/assistant-qif-import.c:1888
 #: gnucash/import-export/qif-imp/assistant-qif-import.c:3065
-#, fuzzy
 msgid "Canceled"
 msgstr "Batal"
 
 #: gnucash/import-export/qif-imp/assistant-qif-import.c:1827
 #: gnucash/import-export/qif-imp/assistant-qif-import.c:1831
-#, fuzzy
 msgid "An error occurred while loading the QIF file."
-msgstr "Terjadi galat ketika memuat direktori"
+msgstr "Terjadi galat ketika memuat berkas QIF."
 
 #: gnucash/import-export/qif-imp/assistant-qif-import.c:1828
 #: gnucash/import-export/qif-imp/assistant-qif-import.c:1846
@@ -21500,7 +21895,6 @@ msgstr "Terjadi galat ketika memuat direktori"
 #: gnucash/import-export/qif-imp/assistant-qif-import.c:3085
 #: gnucash/import-export/qif-imp/assistant-qif-import.c:3106
 #: gnucash/import-export/qif-imp/assistant-qif-import.c:3154
-#, fuzzy
 msgid "Failed"
 msgstr "Gagal"
 
@@ -21510,22 +21904,17 @@ msgstr "Gagal"
 #: gnucash/import-export/qif-imp/assistant-qif-import.c:3079
 #: gnucash/import-export/qif-imp/assistant-qif-import.c:3102
 #: gnucash/import-export/qif-imp/assistant-qif-import.c:3148
-#, fuzzy
 msgid "Cleaning up"
-msgstr ""
-"Mengklik ganda suatu kartu akan mengirimkannya ke foundation, jika itu "
-"mungkin. Hal ini berguna untuk membersihkan sejumlah besar kartu pada akhir "
-"permainan yang sukses."
+msgstr "Membersihkan"
 
 #: gnucash/import-export/qif-imp/assistant-qif-import.c:1906
 #: gnucash/import-export/qif-imp/assistant-qif-import.c:1910
 msgid "A bug was detected while parsing the QIF file."
-msgstr ""
+msgstr "Sebuah kutu terdeteksi ketika mengurai berkas QIF."
 
 #: gnucash/import-export/qif-imp/assistant-qif-import.c:1981
-#, fuzzy
 msgid "Loading completed"
-msgstr "tidak Selesai"
+msgstr "Selesai memuat"
 
 #: gnucash/import-export/qif-imp/assistant-qif-import.c:2018
 msgid ""
@@ -21533,35 +21922,37 @@ msgid ""
 "are no errors or warnings, you will automatically proceed to the next step. "
 "Otherwise, the details will be shown below for your review."
 msgstr ""
+"Ketika Anda menekan tombol Mulai, GnuCash akan memuat berkas QIF Anda. Jika "
+"tidak ada galat atau peringatan, Anda akan melanjutkan ke proses berikutnya "
+"secara otomatis. Jika ada galat, detailnya akan ditampilkan di bawah ini."
 
 #: gnucash/import-export/qif-imp/assistant-qif-import.c:2649
-#, fuzzy
 msgid "Choose the QIF file currency"
-msgstr "Pilih suatu berkas PAC"
+msgstr "Pilih mata uang berkas QIF"
 
 #: gnucash/import-export/qif-imp/assistant-qif-import.c:2866
 msgid "You must enter an existing national currency or enter a different type."
 msgstr ""
+"Anda harus memasukkan mata uang nasional yang ada atau masukkan tipe yang "
+"berbeda."
 
 #: gnucash/import-export/qif-imp/assistant-qif-import.c:3084
 #: gnucash/import-export/qif-imp/assistant-qif-import.c:3088
 msgid "A bug was detected while converting the QIF data."
-msgstr ""
+msgstr "Sebuah kutu terdeteksi ketika mengkonversi data QIF."
 
 #: gnucash/import-export/qif-imp/assistant-qif-import.c:3139
-#, fuzzy
 msgid "Canceling"
-msgstr "Membatalkan…"
+msgstr "Membatalkan"
 
 #: gnucash/import-export/qif-imp/assistant-qif-import.c:3153
 #: gnucash/import-export/qif-imp/assistant-qif-import.c:3157
 msgid "A bug was detected while detecting duplicates."
-msgstr ""
+msgstr "Sebuah kutu terdeteksi ketika mendeteksi duplikat."
 
 #: gnucash/import-export/qif-imp/assistant-qif-import.c:3176
-#, fuzzy
 msgid "Conversion completed"
-msgstr "tidak Selesai"
+msgstr "Konversi selesai"
 
 #: gnucash/import-export/qif-imp/assistant-qif-import.c:3208
 msgid ""
@@ -21569,219 +21960,188 @@ msgid ""
 "are no errors or warnings, you will automatically proceed to the next step. "
 "Otherwise, the details will be shown below for your review."
 msgstr ""
+"Ketika Anda menekan tombol Mulai, GnuCash akan mengimpor data QIF Anda. Jika "
+"tidak ada galat atau peringatan, Anda akan melanjutkan ke proses berikutnya "
+"secara otomatis. Jika ada galat, detailnya akan ditampilkan di bawah ini."
 
 #: gnucash/import-export/qif-imp/assistant-qif-import.c:3414
 msgid "GnuCash was unable to save your mapping preferences."
-msgstr ""
+msgstr "GnuCash tidak dapat menyimpan preferensi pemetaan Anda."
 
 #: gnucash/import-export/qif-imp/assistant-qif-import.c:3447
-#, fuzzy, c-format
+#, c-format
 msgid "There was a problem with the import."
-msgstr "Laporkan Masalah"
+msgstr "Terdapat permasalahan impor."
 
 #: gnucash/import-export/qif-imp/assistant-qif-import.c:3449
-#, fuzzy, c-format
+#, c-format
 msgid "QIF Import Completed."
-msgstr "Impor sukses diselesaikan"
+msgstr "Impor QIF Selesai."
 
 #: gnucash/import-export/qif-imp/assistant-qif-import.c:3667
-#, fuzzy
 msgid "QIF account name"
-msgstr "nama akun"
+msgstr "Nama akun QIF"
 
 #: gnucash/import-export/qif-imp/assistant-qif-import.c:3673
-#, fuzzy
 msgid "QIF category name"
-msgstr "_Nama Kategori"
+msgstr "Nama kategori QIF"
 
 #: gnucash/import-export/qif-imp/assistant-qif-import.c:3679
 #, fuzzy
 msgid "QIF payee/memo"
-msgstr "penerima"
+msgstr "QIF penerima pembayaran / Memo"
 
 #: gnucash/import-export/qif-imp/assistant-qif-import.c:3782
-#, fuzzy
 msgid "Match?"
-msgstr "Cocok"
+msgstr "Cocok?"
 
 #: gnucash/import-export/qif-imp/assistant-qif-import.c:3886
 msgid "QIF import requires guile with regex support."
-msgstr ""
+msgstr "Impor QIF membutuhkan guile dengan dukungan regex."
 
 #: gnucash/import-export/qif-imp/dialog-account-picker.c:235
-#, fuzzy
 msgid "Enter a name for the account"
-msgstr "Masukkan kata sandi untuk akun \"%s\"."
+msgstr "Masukkan sebuah nama untuk akun"
 
 #: gnucash/import-export/qif-imp/dialog-account-picker.c:443
-#, fuzzy
 msgid "Placeholder?"
-msgstr "placeholder"
+msgstr "Placeholder?"
 
 #: gnucash/import-export/qif-imp/gnc-plugin-qif-import.c:48
-#, fuzzy
 msgid "Import _QIF..."
-msgstr "_Impor"
+msgstr "Impor _QIF..."
 
 #: gnucash/import-export/qif-imp/gnc-plugin-qif-import.c:49
-#, fuzzy
 msgid "Import a Quicken QIF file"
-msgstr "Impor dari berkas…"
+msgstr "Impor berkas QIF Quicken"
 
 #: gnucash/import-export/qif-imp/qif-dialog-utils.scm:34
 msgid "Dividends"
-msgstr ""
+msgstr "Dividen"
 
 #: gnucash/import-export/qif-imp/qif-dialog-utils.scm:49
-#, fuzzy
 msgid "Cap Return"
-msgstr "tidak kembali"
+msgstr "Pengembalian Kap"
 
 #: gnucash/import-export/qif-imp/qif-dialog-utils.scm:55
-#, fuzzy
 msgid "Cap. gain (long)"
-msgstr "keuntungan"
+msgstr "Keuntungan Kap. (panjang)"
 
 #: gnucash/import-export/qif-imp/qif-dialog-utils.scm:61
-#, fuzzy
 msgid "Cap. gain (mid)"
-msgstr "keuntungan"
+msgstr "Keuntungan Kap. (menengah)"
 
 #: gnucash/import-export/qif-imp/qif-dialog-utils.scm:67
-#, fuzzy
 msgid "Cap. gain (short)"
-msgstr "Singkat"
+msgstr "Keuntungan Kap. (pendek)"
 
 #: gnucash/import-export/qif-imp/qif-dialog-utils.scm:73
 #: gnucash/import-export/qif-imp/qif-dialog-utils.scm:77
-#: gnucash/report/reports/standard/balance-sheet.scm:509
+#: gnucash/report/reports/standard/balance-sheet.scm:510
 #: gnucash/report/reports/standard/balsheet-pnl.scm:1108
 #: gnucash/report/reports/standard/balsheet-pnl.scm:1123
 #: gnucash/report/reports/support/balsheet-eg.eguile.scm:189
-#: libgnucash/app-utils/gnc-ui-util.c:945
-#, fuzzy
+#: libgnucash/app-utils/gnc-ui-util.c:954
 msgid "Retained Earnings"
 msgstr "Pendapatan Ditahan"
 
 #: gnucash/import-export/qif-imp/qif-dialog-utils.scm:81
 msgid "Commissions"
-msgstr ""
+msgstr "Komisi"
 
 #: gnucash/import-export/qif-imp/qif-dialog-utils.scm:86
-#, fuzzy
 msgid "Margin Interest"
-msgstr "_Margin:"
+msgstr "Bunga Margin"
 
 #: gnucash/import-export/qif-imp/qif-file.scm:85
 #: gnucash/import-export/qif-imp/qif-file.scm:93
-#, fuzzy
 msgid "Line"
-msgstr "Jalur"
+msgstr "Baris"
 
 #: gnucash/import-export/qif-imp/qif-file.scm:96
-#, fuzzy
 msgid "Read aborted."
-msgstr "Dibatalkan"
+msgstr "Pembacaan dibatalkan."
 
 #: gnucash/import-export/qif-imp/qif-file.scm:130
-#, fuzzy
 msgid "Reading"
-msgstr "Galat membuka berkas untuk dibaca"
+msgstr "Membaca"
 
 #: gnucash/import-export/qif-imp/qif-file.scm:160
 msgid "Some characters have been discarded."
-msgstr ""
+msgstr "Beberapa karakter telah dibuang."
 
 #: gnucash/import-export/qif-imp/qif-file.scm:161
 #: gnucash/import-export/qif-imp/qif-file.scm:165
-#, fuzzy
 msgid "Converted to: "
-msgstr ""
-"Nilai teks bagian PNG %s tidak bisa dikonversikan ke gugus karakter "
-"ISO-8859-1."
+msgstr "Dikonversi ke: "
 
 #: gnucash/import-export/qif-imp/qif-file.scm:164
 msgid "Some characters have been converted according to your locale."
-msgstr ""
+msgstr "Beberapa karakter telah dikonversi berdasarkan pengaturan lokal Anda."
 
 #: gnucash/import-export/qif-imp/qif-file.scm:223
-#, fuzzy
 msgid "Ignoring unknown option"
-msgstr "Opsi tak dikenal \"%s\"\n"
+msgstr "Mengabaikan opsi tak dikenal"
 
 #: gnucash/import-export/qif-imp/qif-file.scm:357
-#, fuzzy
 msgid "Date required."
-msgstr "Tanggal mulai diperlukan untuk tugas yang berulang"
+msgstr "Tanggal diperlukan."
 
 #: gnucash/import-export/qif-imp/qif-file.scm:358
-#, fuzzy
 msgid "Discarding this transaction."
-msgstr "transaksi"
+msgstr "Membuang transaksi ini."
 
 #: gnucash/import-export/qif-imp/qif-file.scm:390
-#, fuzzy
 msgid "Ignoring class line"
-msgstr "Mengabaikan berkas ini."
+msgstr "Mengabaikan baris kelas"
 
 #: gnucash/import-export/qif-imp/qif-file.scm:458
-#, fuzzy
 msgid "Ignoring category line"
-msgstr "Mengabaikan berkas ini."
+msgstr "Mengabaikan baris kategori"
 
 #: gnucash/import-export/qif-imp/qif-file.scm:489
-#, fuzzy
 msgid "Ignoring security line"
-msgstr "Keamanan"
+msgstr "Mengabaikan baris sekuritas"
 
 #: gnucash/import-export/qif-imp/qif-file.scm:497
-#, fuzzy
 msgid "File does not appear to be in QIF format"
-msgstr "Berkas tidak muncul untuk menjadi playlist"
+msgstr "Berkas sepertinya tidak dalam format QIF"
 
 #: gnucash/import-export/qif-imp/qif-file.scm:673
-#, fuzzy
 msgid "Transaction date"
-msgstr "transaksi"
+msgstr "Tanggal transaksi"
 
 #: gnucash/import-export/qif-imp/qif-file.scm:674
-#, fuzzy
 msgid "Transaction amount"
-msgstr "transaksi"
+msgstr "Jumlah transaksi"
 
 #: gnucash/import-export/qif-imp/qif-file.scm:675
-#, fuzzy
 msgid "Share price"
-msgstr "harga: kuotasi"
+msgstr "Harga saham"
 
 #: gnucash/import-export/qif-imp/qif-file.scm:676
-#, fuzzy
 msgid "Share quantity"
-msgstr "Berbagi"
+msgstr "Kuantitas saham"
 
 #: gnucash/import-export/qif-imp/qif-file.scm:677
-#, fuzzy
 msgid "Investment action"
-msgstr "<tak ada aksi>"
+msgstr "Aksi investasi"
 
 #: gnucash/import-export/qif-imp/qif-file.scm:678
-#, fuzzy
 msgid "Reconciliation status"
-msgstr "Dengan _Status"
+msgstr "Status rekonsiliasi"
 
 #: gnucash/import-export/qif-imp/qif-file.scm:679
 msgid "Commission"
-msgstr ""
+msgstr "Komisi"
 
 #: gnucash/import-export/qif-imp/qif-file.scm:680
-#, fuzzy
 msgid "Account type"
-msgstr "_Tipe Akun"
+msgstr "Tipe akun"
 
 #: gnucash/import-export/qif-imp/qif-file.scm:681
-#, fuzzy
 msgid "Tax class"
-msgstr "Kelas"
+msgstr "Kelas pajak"
 
 #: gnucash/import-export/qif-imp/qif-file.scm:682
 msgid "Category budget amount"
@@ -21792,91 +22152,80 @@ msgid "Account budget amount"
 msgstr "Jumlah anggaran akun"
 
 #: gnucash/import-export/qif-imp/qif-file.scm:684
-#, fuzzy
 msgid "Credit limit"
-msgstr "Kartu Kredit"
+msgstr "Batas kredit"
 
 #: gnucash/import-export/qif-imp/qif-file.scm:697
-#, fuzzy
 msgid "Parsing categories"
-msgstr "_Kategori…"
+msgstr "Mengurai kategori"
 
 #: gnucash/import-export/qif-imp/qif-file.scm:729
-#, fuzzy
 msgid "Parsing accounts"
-msgstr "Mengurai pesan"
+msgstr "Mengurai akun"
 
 #: gnucash/import-export/qif-imp/qif-file.scm:770
-#, fuzzy
 msgid "Parsing transactions"
-msgstr "Mengurai pesan"
+msgstr "Mengurai transaksi"
 
 #: gnucash/import-export/qif-imp/qif-file.scm:946
-#, fuzzy
 msgid "Unrecognized or inconsistent format."
-msgstr "Format berkas citra tak dikenali"
+msgstr "Format tak dikenal atau tak konsisten."
 
 #: gnucash/import-export/qif-imp/qif-file.scm:988
-#, fuzzy
 msgid "Parsing failed."
-msgstr "Mengurai pesan"
+msgstr "Gagal mengurai."
 
 #: gnucash/import-export/qif-imp/qif-file.scm:1029
 msgid "Parse ambiguity between formats"
-msgstr ""
+msgstr "Urai ambiguitas antar format"
 
 #: gnucash/import-export/qif-imp/qif-file.scm:1031
-#, fuzzy, scheme-format
+#, scheme-format
 msgid "Value '~a' could be ~a or ~a."
-msgstr ""
-"Kualitas JPEG harus bernilai antara 0 dan 100; nilai “%s” tidak bisa diurai."
+msgstr "Nilai '~a' bisa ~a atau ~a."
 
 #: gnucash/import-export/qif-imp/qif-merge-groups.scm:90
-#, fuzzy
 msgid "Finding duplicate transactions"
-msgstr "Mencari teks"
+msgstr "Mencari transaksi duplikat"
 
 #: gnucash/import-export/qif-imp/qif-parse.scm:145
 #, scheme-format
 msgid "Unrecognized account type '~s'. Defaulting to Bank."
-msgstr ""
+msgstr "Tipe akun tak dikenal '~s'. Mengembalikan ke baku sebagai Bank."
 
 #: gnucash/import-export/qif-imp/qif-parse.scm:208
-#, fuzzy, scheme-format
+#, scheme-format
 msgid "Unrecognized action '~a'."
-msgstr "Aksi"
+msgstr "Aksi tak dikenal '~a'."
 
 #: gnucash/import-export/qif-imp/qif-parse.scm:227
 #, scheme-format
 msgid "Unrecognized status '~a'. Defaulting to uncleared."
-msgstr ""
+msgstr "Status tak dikenal '~a'. Mengembalikan ke baku sebagai belum klir."
 
 #: gnucash/import-export/qif-imp/qif-to-gnc.scm:196
 msgid "QIF import: Name conflict with another account."
-msgstr ""
+msgstr "Impor QIF: Nama konflik dengan akun yang lain."
 
 #: gnucash/import-export/qif-imp/qif-to-gnc.scm:285
 msgid "Preparing to convert your QIF data"
-msgstr ""
+msgstr "Menyiapkan untuk mengkonversi data QIF Anda"
 
 #: gnucash/import-export/qif-imp/qif-to-gnc.scm:336
-#, fuzzy
 msgid "Creating accounts"
-msgstr "_Akun"
+msgstr "Membuat akun"
 
 #: gnucash/import-export/qif-imp/qif-to-gnc.scm:385
 msgid "Matching transfers between accounts"
-msgstr ""
+msgstr "Mencocokkan transfer antar akun"
 
 #: gnucash/import-export/qif-imp/qif-to-gnc.scm:403
-#, fuzzy
 msgid "Converting"
-msgstr "Mengonversi ke warna berindeks (tahap 2)"
+msgstr "Mengkonversi"
 
 #: gnucash/import-export/qif-imp/qif-to-gnc.scm:483
-#, fuzzy
 msgid "Missing transaction date."
-msgstr "transaksi"
+msgstr "Tanggal transaksi tidak ada."
 
 #: gnucash/price-quotes.scm:442
 msgid "No commodities marked for quote retrieval."
@@ -21892,6 +22241,8 @@ msgid ""
 "You are missing some needed Perl libraries.\n"
 "Run 'gnc-fq-update' as root to install them."
 msgstr ""
+"Anda tidak memiliki beberapa pustaka Perl yang dibutuhkan.\n"
+"Jalankan 'gnc-fq-update' sebagai root untuk memasangnya."
 
 #: gnucash/price-quotes.scm:455
 #, scheme-format
@@ -21913,78 +22264,76 @@ msgid "Unable to retrieve quotes for these items:"
 msgstr "Tak dapat mengambil harga penawaran untuk item berikut:"
 
 #: gnucash/price-quotes.scm:491
+#, fuzzy
 msgid "Continue using only the good quotes?"
-msgstr ""
+msgstr "Lanjutkan hanya menggunakan tanda kutip yang baik?"
 
 #: gnucash/price-quotes.scm:513
-#, fuzzy
 msgid "Unable to create prices for these items:"
-msgstr "Tak dapat membuat tampilan transien: "
+msgstr "Tak dapat membuat harga untuk item berikut:"
 
 #: gnucash/price-quotes.scm:517
+#, fuzzy
 msgid "Add remaining good quotes?"
-msgstr ""
+msgstr "Tambahkan sisa kutipan yang baik?"
 
 #. Translators: ~A is the version string
 #: gnucash/price-quotes.scm:535
 #, scheme-format
 msgid "Found Finance::Quote version ~A."
-msgstr ""
+msgstr "Menemukan Finance::Quote versi ~A."
 
 #: gnucash/python/init.py:18
 #: gnucash/report/reports/example/welcome-to-gnucash.scm:49
-#, fuzzy
 msgid "Welcome to GnuCash"
-msgstr "Selamat Datang!"
+msgstr "Selamat Datang di GnuCash"
 
 #: gnucash/python/init.py:103
 #: gnucash/report/reports/example/hello-world.scm:486
-#, fuzzy
 msgid "Have a nice day!"
-msgstr "Bagus"
+msgstr "Semoga hari Anda menyenangkan!"
 
 #: gnucash/python/init.py:118
-#, fuzzy, python-format
+#, python-format
 msgid "Welcome to GnuCash %s Shell"
-msgstr "Gagal membuat shell dalam runtime: \"%s\""
+msgstr "Selamat Datang di Shell %s GnuCash"
 
 #: gnucash/register/ledger-core/gncEntryLedger.c:250
-#, fuzzy
 msgid "Hours"
 msgstr "Jam"
 
 #: gnucash/register/ledger-core/gncEntryLedger.c:251
-#, fuzzy
 msgid "Project"
-msgstr "Projek"
+msgstr "Proyek"
 
 #: gnucash/register/ledger-core/gncEntryLedger.c:252
-#, fuzzy
 msgid "Material"
-msgstr "Material Belakang"
+msgstr "Material"
 
 #: gnucash/register/ledger-core/gncEntryLedger.c:914
 #: gnucash/register/ledger-core/gncEntryLedgerControl.c:875
-#, fuzzy
 msgid "Save the current entry?"
-msgstr "Simpan tampilan kustom saat ini"
+msgstr "Simpan entri saat ini?"
 
 #: gnucash/register/ledger-core/gncEntryLedger.c:916
 msgid ""
 "The current transaction has been changed. Would you like to record the "
 "changes before duplicating this entry, or cancel the duplication?"
 msgstr ""
+"Transaksi saat ini telah diubah. Apakah Anda ingin mencatat perubahan "
+"sebelum membuat duplikat entri ini, atau membatalkan pembuatan duplikat?"
 
 #: gnucash/register/ledger-core/gncEntryLedgerControl.c:157
 msgid ""
 "Invalid Entry: You need to supply an account in the right currency for this "
 "position."
 msgstr ""
+"Entri Tidak Valid: Anda harus memberi sebuah akun dalam mata uang yang benar "
+"untuk posisi ini."
 
 #: gnucash/register/ledger-core/gncEntryLedgerControl.c:184
-#, fuzzy
 msgid "This account should usually be of type income."
-msgstr "tipe akun: Pendapatan"
+msgstr "Akun ini biasanya berjenis pendapatan."
 
 #: gnucash/register/ledger-core/gncEntryLedgerControl.c:192
 msgid "This account should usually be of type expense or asset."
@@ -21993,7 +22342,7 @@ msgstr "Akun ini biasanya berjenis pengeluaran atau aset."
 #: gnucash/register/ledger-core/gncEntryLedgerControl.c:760
 #, c-format
 msgid "The tax table %s does not exist. Would you like to create it?"
-msgstr ""
+msgstr "Tabel pajak %s tidak ada. Apakah Anda ingin membuatnya?"
 
 #: gnucash/register/ledger-core/gncEntryLedgerControl.c:877
 msgid ""
@@ -22001,18 +22350,19 @@ msgid ""
 "existing order. Would you like to record the change and effectively change "
 "your order?"
 msgstr ""
+"Entri saat ini telah diubah. Namun, entri ini adalah bagian dari sebuah "
+"pesanan yang sudah ada. Apakah Anda ingin mencatat perubahan serta mengubah "
+"pesanan Anda?"
 
 #: gnucash/register/ledger-core/gncEntryLedgerControl.c:895
-#, fuzzy
 msgid "_Don't Record"
-msgstr "_Jangan split"
+msgstr "Jangan _Catat"
 
 #: gnucash/register/ledger-core/gncEntryLedgerControl.c:982
 msgid "The current entry has been changed. Would you like to save it?"
-msgstr ""
+msgstr "Entri saat ini telah diubah. Apakah Anda ingin menyimpannya?"
 
 #: gnucash/register/ledger-core/gncEntryLedgerLayout.c:77
-#, fuzzy
 msgctxt "sample for a checkbox"
 msgid "X"
 msgstr "X"
@@ -22020,19 +22370,14 @@ msgstr "X"
 #: gnucash/register/ledger-core/gncEntryLedgerLayout.c:81
 msgctxt "sample for 'Date'"
 msgid "12/12/2000"
-msgstr ""
+msgstr "12/12/2000"
 
 #: gnucash/register/ledger-core/gncEntryLedgerLayout.c:86
-#, fuzzy
 msgctxt "sample for 'Description'"
 msgid "Description of an Entry"
-msgstr ""
-"Disediakan pula kolom deskripsi untuk menambahkan deskripsi entri pustaka. "
-"Kolom opsi saat ini tidak digunakan sehingga menambahkan opsi tidak akan "
-"memiliki efek apapun saat memuat pustaka."
+msgstr "Deskripsi Entri"
 
 #: gnucash/register/ledger-core/gncEntryLedgerLayout.c:92
-#, fuzzy
 msgctxt "sample"
 msgid "Action"
 msgstr "Aksi"
@@ -22041,117 +22386,110 @@ msgstr "Aksi"
 #: gnucash/register/ledger-core/gncEntryLedgerLayout.c:104
 msgctxt "sample"
 msgid "9,999.00"
-msgstr ""
+msgstr "9,999.00"
 
 #: gnucash/register/ledger-core/gncEntryLedgerLayout.c:100
 #: gnucash/register/ledger-core/gncEntryLedgerLayout.c:145
 msgctxt "sample"
 msgid "999,999.00"
-msgstr ""
+msgstr "999,999.00"
 
 #. Translators: Header for Discount Type
 #: gnucash/register/ledger-core/gncEntryLedgerLayout.c:110
 #, no-c-format
 msgctxt "sample for 'Discount Type'"
 msgid "+%"
-msgstr ""
+msgstr "+%"
 
 #. Translators: Header for Discount How
 #: gnucash/register/ledger-core/gncEntryLedgerLayout.c:116
 #, no-c-format
 msgctxt "sample for Discount How'"
 msgid "+%"
-msgstr ""
+msgstr "+%"
 
 #. Translators: Enter the longest expected path of an Account
 #: gnucash/register/ledger-core/gncEntryLedgerLayout.c:122
 #: gnucash/register/ledger-core/gncEntryLedgerLayout.c:127
 #: gnucash/register/ledger-core/split-register-layout.c:727
 #: gnucash/register/ledger-core/split-register-layout.c:735
-#, fuzzy
 msgctxt "sample"
 msgid "Expenses:Automobile:Gasoline"
-msgstr "Waktu & Pengeluaran"
+msgstr "Pengeluaran:Kendaraan:Bahan Bakar"
 
 #. Translators: Abbreviation sample for Taxable?
 #: gnucash/register/ledger-core/gncEntryLedgerLayout.c:132
-#, fuzzy
 msgctxt "sample for 'Taxable'"
 msgid "T?"
-msgstr "%T"
+msgstr "T?"
 
 #. Translators: Abbreviation sample for Tax Included
 #: gnucash/register/ledger-core/gncEntryLedgerLayout.c:137
-#, fuzzy
 msgctxt "sample for 'Tax Included'"
 msgid "TI"
-msgstr "_Waktu dan tanggal:"
+msgstr "TI"
 
 #: gnucash/register/ledger-core/gncEntryLedgerLayout.c:141
-#, fuzzy
 msgctxt "sample for 'Tax Table'"
 msgid "Tax Table 1"
-msgstr "kode pajak"
+msgstr "Tabel Pajak 1"
 
 #: gnucash/register/ledger-core/gncEntryLedgerLayout.c:149
 msgctxt "sample"
 msgid "999.00"
-msgstr ""
+msgstr "999.00"
 
 #. Translators: Abbreviation sample for Billable
 #: gnucash/register/ledger-core/gncEntryLedgerLayout.c:154
 msgctxt "sample for 'Billable'"
 msgid "BI"
-msgstr ""
+msgstr "BI"
 
 #: gnucash/register/ledger-core/gncEntryLedgerLayout.c:158
-#, fuzzy
 msgctxt "sample"
 msgid "Payment"
-msgstr "pembayaran"
+msgstr "Pembayaran"
 
 #: gnucash/register/ledger-core/gncEntryLedgerLoad.c:53
 msgid "$"
-msgstr ""
+msgstr "Rp"
 
 #: gnucash/register/ledger-core/gncEntryLedgerLoad.c:67
 msgid "<"
-msgstr ""
+msgstr "<"
 
 #: gnucash/register/ledger-core/gncEntryLedgerLoad.c:69
 msgid "="
-msgstr ""
+msgstr "="
 
 #: gnucash/register/ledger-core/gncEntryLedgerLoad.c:71
 msgid ">"
-msgstr ""
+msgstr ">"
 
 #: gnucash/register/ledger-core/gncEntryLedgerLoad.c:130
 #: gnucash/register/ledger-core/gncEntryLedgerModel.c:527
 #: gnucash/register/ledger-core/gncEntryLedgerModel.c:1091
-#: gnucash/report/report-utilities.scm:103 libgnucash/engine/Account.cpp:4315
+#: gnucash/report/report-utilities.scm:115 libgnucash/engine/Account.cpp:4362
 #, fuzzy
 msgid "Cash"
-msgstr "tunai"
+msgstr "Tunai"
 
 #: gnucash/register/ledger-core/gncEntryLedgerModel.c:47
-#, fuzzy
 msgid "Income Account"
-msgstr "tipe akun: Pendapatan"
+msgstr "Akun Pendapatan"
 
 #: gnucash/register/ledger-core/gncEntryLedgerModel.c:52
 msgid "Expense Account"
 msgstr "Akun Pengeluaran"
 
 #: gnucash/register/ledger-core/gncEntryLedgerModel.c:77
-#, fuzzy
 msgid "Discount Type"
-msgstr "diskon"
+msgstr "Tipe Diskon"
 
 #: gnucash/register/ledger-core/gncEntryLedgerModel.c:82
 #, fuzzy
 msgid "Discount How"
-msgstr "diskon"
+msgstr "diskon Bagaimana"
 
 #: gnucash/register/ledger-core/gncEntryLedgerModel.c:87
 #: gnucash/report/reports/standard/invoice.scm:96
@@ -22159,42 +22497,40 @@ msgstr "diskon"
 #: gnucash/report/reports/standard/receipt.scm:121
 #: gnucash/report/reports/standard/taxinvoice.scm:111
 #: gnucash/report/reports/standard/taxinvoice.scm:179
-#, fuzzy
 msgid "Unit Price"
-msgstr "_Unit:"
+msgstr "Satuan Harga"
 
 #: gnucash/register/ledger-core/gncEntryLedgerModel.c:102
 msgid "Taxable?"
-msgstr ""
+msgstr "Kena pajak?"
 
 #: gnucash/register/ledger-core/gncEntryLedgerModel.c:107
-#, fuzzy
 msgid "Tax Included?"
-msgstr "kode pajak"
+msgstr "Termasuk Pajak?"
 
 #: gnucash/register/ledger-core/gncEntryLedgerModel.c:112
+#, fuzzy
 msgid "Invoiced?"
-msgstr ""
+msgstr "Ditagih?"
 
 #: gnucash/register/ledger-core/gncEntryLedgerModel.c:117
 #: gnucash/report/options-utilities.scm:221
 #: gnucash/report/reports/standard/invoice.scm:262
-#, fuzzy
 msgid "Subtotal"
-msgstr "subtotal"
+msgstr "Subtotal"
 
 #: gnucash/register/ledger-core/gncEntryLedgerModel.c:122
 #: gnucash/report/reports/standard/invoice.scm:551
 #: gnucash/report/reports/standard/new-owner-report.scm:55
 #: gnucash/report/reports/standard/owner-report.scm:56
 #: libgnucash/app-utils/app-utils.scm:268
-#, fuzzy
 msgid "Tax"
-msgstr "kode pajak"
+msgstr "Pajak"
 
 #: gnucash/register/ledger-core/gncEntryLedgerModel.c:127
+#, fuzzy
 msgid "Billable?"
-msgstr ""
+msgstr "Ditagih?"
 
 #: gnucash/register/ledger-core/gncEntryLedgerModel.c:545
 msgid ""
@@ -22204,149 +22540,140 @@ msgstr ""
 "dari daftar"
 
 #: gnucash/register/ledger-core/gncEntryLedgerModel.c:558
-#, fuzzy
 msgid "Enter the type of Entry"
-msgstr "Entri kamus bertipe ‘{ss}’"
+msgstr "Masukkan tipe Entri"
 
 #: gnucash/register/ledger-core/gncEntryLedgerModel.c:588
-#, fuzzy
 msgid "Enter the Entry Description"
-msgstr "Deskripsi"
+msgstr "Masukkan Deskripsi Entri"
 
 #: gnucash/register/ledger-core/gncEntryLedgerModel.c:604
-#, fuzzy
 msgid "Enter the Discount Amount"
-msgstr "diskon"
+msgstr "Masukkan Jumlah Diskon"
 
 #: gnucash/register/ledger-core/gncEntryLedgerModel.c:607
-#, fuzzy
 msgid "Enter the Discount Percent"
-msgstr "Persen"
+msgstr "Masukkan Persentase Diskon"
 
 #: gnucash/register/ledger-core/gncEntryLedgerModel.c:610
-#, fuzzy
 msgid "Enter the Discount ... unknown type"
-msgstr "Jenis peringatan tak dikenal"
+msgstr "Masukkan Diskon ... tipe tak diketahui"
 
 #: gnucash/register/ledger-core/gncEntryLedgerModel.c:628
 #, fuzzy
 msgid "Discount Type: Monetary Value"
-msgstr "Tuple kosong, tipe dan nilai “()”"
+msgstr "Diskon Jenis: Moneter Nilai"
 
 #: gnucash/register/ledger-core/gncEntryLedgerModel.c:631
-#, fuzzy
 msgid "Discount Type: Percent"
-msgstr "diskon"
+msgstr "Tipe Diskon: Persen"
 
 #: gnucash/register/ledger-core/gncEntryLedgerModel.c:634
-#, fuzzy
 msgid "Select the Discount Type"
-msgstr "diskon"
+msgstr "Pilih Tipe Diskon"
 
 #: gnucash/register/ledger-core/gncEntryLedgerModel.c:651
 msgid "Tax computed after discount is applied"
-msgstr ""
+msgstr "Pajak dihitung setelah diskon diterapkan"
 
 #: gnucash/register/ledger-core/gncEntryLedgerModel.c:654
+#, fuzzy
 msgid "Discount and tax both applied on pretax value"
-msgstr ""
+msgstr "Diskon dan pajak baik diterapkan pada nilai sebelum pajak"
 
 #: gnucash/register/ledger-core/gncEntryLedgerModel.c:657
 msgid "Discount computed after tax is applied"
-msgstr ""
+msgstr "Diskon dihitung setelah pajak diterapkan"
 
 #: gnucash/register/ledger-core/gncEntryLedgerModel.c:660
 msgid "Select how to compute the Discount and Taxes"
-msgstr ""
+msgstr "Pilih bagaimana perhitungan Diskon dan Pajak"
 
 #: gnucash/register/ledger-core/gncEntryLedgerModel.c:673
-#, fuzzy
 msgid "Enter the unit-Price for this Entry"
-msgstr "Masukkan kata sandi Anda dalam kotak entri kata sandi."
+msgstr "Masukkan Harga-satuan untuk Entri ini"
 
 #: gnucash/register/ledger-core/gncEntryLedgerModel.c:685
-#, fuzzy
 msgid "Enter the Quantity of units for this Entry"
-msgstr "Masukkan kata sandi Anda dalam kotak entri kata sandi."
+msgstr "Masukkan Kuantitas untuk satuan pada Entri ini"
 
 #: gnucash/register/ledger-core/gncEntryLedgerModel.c:697
 msgid "Enter the Tax Table to apply to this entry"
-msgstr ""
+msgstr "Masukkan Tabel Pajak yang diterapkan pada entri ini"
 
 #: gnucash/register/ledger-core/gncEntryLedgerModel.c:706
-#, fuzzy
 msgid "Is this entry taxable?"
-msgstr "Suatu entri"
+msgstr "Apakah entri ini kena pajak?"
 
 #: gnucash/register/ledger-core/gncEntryLedgerModel.c:715
 msgid "Is the tax already included in the price of this entry?"
-msgstr ""
+msgstr "Apakah pajak telah termasuk dalam harga entri ini?"
 
 #: gnucash/register/ledger-core/gncEntryLedgerModel.c:733
 #, fuzzy
 msgid "Is this entry invoiced?"
-msgstr "Suatu entri"
+msgstr "Apakah entri ini ditagih?"
 
 #: gnucash/register/ledger-core/gncEntryLedgerModel.c:739
 #, fuzzy
 msgid "Is this entry credited?"
-msgstr "Suatu entri"
+msgstr "Apakah entri ini dikreditkan?"
 
 #: gnucash/register/ledger-core/gncEntryLedgerModel.c:743
-#, fuzzy
 msgid "Include this entry on this invoice?"
-msgstr "faktur"
+msgstr "Sertakan entri ini pada faktur?"
 
 #: gnucash/register/ledger-core/gncEntryLedgerModel.c:747
-#, fuzzy
 msgid "Include this entry on this credit note?"
-msgstr "nota kredit"
+msgstr "Sertakan entri ini pada catatan kredit?"
 
 #: gnucash/register/ledger-core/gncEntryLedgerModel.c:750
 #, fuzzy
 msgid "Unknown EntryLedger Type"
-msgstr "Jenis peringatan tak dikenal"
+msgstr "EntryLedger diketahui Jenis"
 
 #: gnucash/register/ledger-core/gncEntryLedgerModel.c:763
-#, fuzzy
 msgid "The subtotal value of this entry "
-msgstr "subtotal"
+msgstr "Nilai subtotal untuk entri ini "
 
 #: gnucash/register/ledger-core/gncEntryLedgerModel.c:775
-#, fuzzy
 msgid "The total tax of this entry "
-msgstr "kode pajak"
+msgstr "Total pajak untuk entri ini "
 
 #: gnucash/register/ledger-core/gncEntryLedgerModel.c:784
 msgid "Is this entry billable to a customer or job?"
-msgstr ""
+msgstr "Apakah entri ini bisa ditagihkan ke pelanggan atau pekerjaan?"
 
 #: gnucash/register/ledger-core/gncEntryLedgerModel.c:793
 msgid "How did you pay for this item?"
-msgstr ""
+msgstr "Bagaimana Anda membayar item ini?"
 
 #: gnucash/register/ledger-core/split-register.c:192
 msgid ""
 "This transaction is already being edited in another register. Please finish "
 "editing it there first."
 msgstr ""
+"Transaksi ini sedang disunting di register yang lain. Silakan menyelesaikan "
+"penyuntingan terlebih dahulu."
 
 #: gnucash/register/ledger-core/split-register.c:459
-#, fuzzy
 msgid "Save transaction before duplicating?"
-msgstr "Selalu simpan pekerjaan Anda sebelum suspensi"
+msgstr "Simpan transaksi sebelum membuat duplikat?"
 
 #: gnucash/register/ledger-core/split-register.c:461
 msgid ""
 "The current transaction has been changed. Would you like to record the "
 "changes before duplicating the transaction, or cancel the duplication?"
 msgstr ""
+"Transaksi saat ini telah diubah. Apakah Anda ingin mencatat perubahan "
+"sebelum membuat duplikat transaksi ini, atau membatalkan pembuatan duplikat?"
 
 #: gnucash/register/ledger-core/split-register.c:945
 msgid ""
 "You are about to overwrite an existing split. Are you sure you want to do "
 "that?"
 msgstr ""
+"Anda akan menimpa split yang sudah ada. Apakah Anda yakin ingin melakukannya?"
 
 #: gnucash/register/ledger-core/split-register.c:947
 msgid ""
@@ -22354,25 +22681,29 @@ msgid ""
 "overwrite it from this register window. You may overwrite it if you navigate "
 "to a register that shows another side of this same transaction."
 msgstr ""
+"Ini adalah split sebagai jangkar transaksi ini ke register. Anda tidak dapat "
+"menimpanya dari jendela register. Anda bisa menimpanya jika Anda menavigasi "
+"ke register yang menampilkan sisi yang lain dari transaksi yang sama ini."
 
 #: gnucash/register/ledger-core/split-register.c:1005
 msgid ""
 "You are about to overwrite an existing transaction. Are you sure you want to "
 "do that?"
 msgstr ""
+"Anda akan menimpa transaksi yang sudah ada. Apakah Anda yakin ingin "
+"melakukannya?"
 
 #: gnucash/register/ledger-core/split-register-control.c:1351
 msgid "You need to select a split in order to modify its exchange rate."
-msgstr ""
+msgstr "Anda harus memilih sebuah split untuk mengubah nilai tukarnya."
 
 #: gnucash/register/ledger-core/split-register-control.c:1378
-#, fuzzy
 msgid "The entered account could not be found."
-msgstr "Repositori tidak dapat ditemukan di “%s”."
+msgstr "Akun yang dimasukkan tak dapat ditemukan."
 
 #: gnucash/register/ledger-core/split-register-control.c:1477
 msgid "The split's amount is zero, so no exchange rate is needed."
-msgstr ""
+msgstr "Jumlah split adalah nol, sehingga nilai tukar tidak diperlukan."
 
 #: gnucash/register/ledger-core/split-register-control.c:1528
 msgid ""
@@ -22380,6 +22711,9 @@ msgid ""
 "changes before moving to a new transaction, discard the changes, or return "
 "to the changed transaction?"
 msgstr ""
+"Transaksi saat ini telah diubah. Apakah Anda ingin mencatat perubahan "
+"sebelum berpindah ke transaksi yang baru, membatalkan perubahan, atau "
+"kembali ke transaksi yang diubah?"
 
 #. Translators: The 'sample:' items are
 #. strings which are not displayed, but only
@@ -22388,7 +22722,7 @@ msgstr ""
 #: gnucash/register/ledger-core/split-register-layout.c:652
 msgctxt "sample"
 msgid "22/02/2000"
-msgstr ""
+msgstr "22/02/2000"
 
 #. Translators: The 'sample' items are
 #. strings which are not displayed, but only
@@ -22400,10 +22734,9 @@ msgid "99999"
 msgstr ""
 
 #: gnucash/register/ledger-core/split-register-layout.c:679
-#, fuzzy
 msgctxt "sample"
 msgid "Description of a transaction"
-msgstr "transaksi"
+msgstr "Deskripsi transaksi"
 
 #. Translators: 'L' is short for Linked Document
 #: gnucash/register/ledger-core/split-register-layout.c:703
@@ -22413,7 +22746,7 @@ msgstr "transaksi"
 #: gnucash/report/trep-engine.scm:1258 gnucash/report/trep-engine.scm:1259
 msgctxt "Column header for 'Document Link'"
 msgid "L"
-msgstr ""
+msgstr "L"
 
 #: gnucash/register/ledger-core/split-register-layout.c:711
 #: gnucash/register/ledger-core/split-register-layout.c:751
@@ -22427,7 +22760,7 @@ msgstr ""
 #: gnucash/register/ledger-core/split-register-layout.c:857
 msgctxt "sample"
 msgid "999,999.000"
-msgstr ""
+msgstr "999,999.000"
 
 #: gnucash/register/ledger-core/split-register-layout.c:743
 msgctxt "sample"
@@ -22435,10 +22768,9 @@ msgid "Memo field sample text string"
 msgstr "Contoh string teks bidang memo"
 
 #: gnucash/register/ledger-core/split-register-layout.c:817
-#, fuzzy
 msgctxt "Column header for 'Type'"
 msgid "T"
-msgstr "L"
+msgstr "T"
 
 #: gnucash/register/ledger-core/split-register-layout.c:825
 msgctxt "sample"
@@ -22446,133 +22778,139 @@ msgid "Notes field sample text string"
 msgstr "Contoh string teks bidang catatan"
 
 #: gnucash/register/ledger-core/split-register-layout.c:833
-#, fuzzy
 msgctxt "sample"
 msgid "No Particular Reason"
-msgstr "Alasan:"
+msgstr "Tak Ada Alasan Khusus"
 
 #: gnucash/register/ledger-core/split-register-layout.c:841
 #: gnucash/register/ledger-core/split-register-layout.c:849
-#, fuzzy
 msgctxt "sample"
 msgid "(x + 0.33 * y + (x+y) )"
-msgstr "Posisi jendela (x dan y)"
+msgstr "(x + 0.33 * y + (x+y) )"
 
 #: gnucash/register/ledger-core/split-register-load.c:283
 msgid ""
 "Could not determine the account currency. Using the default currency "
 "provided by your system."
 msgstr ""
+"Tak bisa menentukan mata uang akun. Menggunakan mata uang baku yang "
+"disediakan sistem."
 
 #: gnucash/register/ledger-core/split-register-model.c:253
-#, fuzzy
 msgid "Ref"
-msgstr "Acuan pengawakutuan yang mencacah masalah bagi CoglObjects"
+msgstr "Ref"
 
 #: gnucash/register/ledger-core/split-register-model.c:269
-#, fuzzy
 msgid "T-Ref"
-msgstr "Mendorong ref \"%s\""
+msgstr "T-Ref"
 
 #: gnucash/register/ledger-core/split-register-model.c:278
 #: gnucash/report/reports/standard/register.scm:134
-#, fuzzy
 msgid "T-Num"
-msgstr "%T"
+msgstr "T-Num"
 
 #: gnucash/register/ledger-core/split-register-model.c:404
-#, fuzzy
 msgid "Exch. Rate"
-msgstr "Suku Bunga"
+msgstr "Nilai Tukar"
 
 #: gnucash/register/ledger-core/split-register-model.c:421
-#, fuzzy
 msgid "Oth. Curr."
-msgstr "Pasfrasa S_ekarang"
+msgstr "Mata Uang Lain."
 
 #: gnucash/register/ledger-core/split-register-model.c:438
 #: gnucash/register/ledger-core/split-register-model.c:462
-#, fuzzy, c-format
+#, c-format
 msgid "Tot %s"
-msgstr "Tot"
+msgstr "Tot %s"
 
 #: gnucash/register/ledger-core/split-register-model.c:444
-#, fuzzy
 msgid "Tot Credit"
-msgstr "Tot"
+msgstr "Tot Kredit"
 
 #: gnucash/register/ledger-core/split-register-model.c:468
-#, fuzzy
 msgid "Tot Debit"
-msgstr "Tot"
+msgstr "Tot Debit"
 
 #: gnucash/register/ledger-core/split-register-model.c:477
-#, fuzzy
 msgid "Tot Shares"
-msgstr "Tot"
+msgstr "Tot Saham"
 
 #: gnucash/register/ledger-core/split-register-model.c:536
-#, fuzzy, c-format
+#, c-format
 msgid "Reconciled on %s"
-msgstr "status transaksi: rekonsiliasi"
+msgstr "Direkonsiliasi pada %s"
 
 #: gnucash/register/ledger-core/split-register-model.c:1013
-#, fuzzy
 msgid "Scheduled"
-msgstr "Pengingat dijadwalkan pada {0,date} {0,time}."
+msgstr "Terjadwal"
 
 #: gnucash/register/ledger-core/split-register-model.c:1062
 msgid ""
 "Enter a reference, such as an invoice or check number, common to all entry "
 "lines (splits)"
 msgstr ""
+"Masukkan referensi, seperti nomor faktur atau cek, umum untuk semua baris "
+"entri (split)"
 
 #: gnucash/register/ledger-core/split-register-model.c:1064
 msgid ""
 "Enter a reference, such as an invoice or check number, unique to each entry "
 "line (split)"
 msgstr ""
+"Masukkan referensi, seperti nomor faktur atau cek, unik untuk tiap baris "
+"entri (split)"
 
 #: gnucash/register/ledger-core/split-register-model.c:1069
 msgid ""
 "Enter a reference, such as a check number, common to all entry lines (splits)"
 msgstr ""
+"Masukkan referensi, seperti nomor cek, umum untuk semua baris entri (split)"
 
 #: gnucash/register/ledger-core/split-register-model.c:1071
 msgid ""
 "Enter a reference, such as a check number, unique to each entry line (split)"
 msgstr ""
+"Masukkan referensi, seperti nomor cek, unik untuk tiap baris entri (split)"
 
 #: gnucash/register/ledger-core/split-register-model.c:1092
 msgid ""
 "Enter a transaction reference, such as an invoice or check number, common to "
 "all entry lines (splits)"
 msgstr ""
+"Masukkan referensi transaksi, seperti nomor faktur atau cek, umum untuk "
+"semua baris entri (split)"
 
 #: gnucash/register/ledger-core/split-register-model.c:1096
 msgid ""
 "Enter a transaction reference that will be common to all entry lines (splits)"
 msgstr ""
+"Masukkan referensi transaksi yang akan menjadi umum untuk semua baris entri "
+"(split)"
 
 #: gnucash/register/ledger-core/split-register-model.c:1301
 msgid "Enter an action type, or choose one from the list"
-msgstr ""
+msgstr "Masukkan tipe aksi, atau pilih salah satu dari daftar"
 
 #: gnucash/register/ledger-core/split-register-model.c:1302
 msgid ""
 "Enter a reference number, such as the next check number, or choose an action "
 "type from the list"
 msgstr ""
+"Masukkan nomor referensi, seperti nomor cek berikutnya, atau pilih sebuah "
+"tipe aksi dari daftar"
 
 #: gnucash/register/ledger-core/split-register-model.c:1569
 msgid ""
 "This transaction has multiple splits; press the Split button to see them all"
 msgstr ""
+"Transaksi ini memiliki beberapa split; tekan tombol Split untuk menampilkan "
+"semua"
 
 #: gnucash/register/ledger-core/split-register-model.c:1572
 msgid ""
 "This transaction is a stock split; press the Split button to see details"
 msgstr ""
+"Transaksi ini adalah split saham; tekan tombol Split untuk melihat detailnya"
 
 #: gnucash/register/ledger-core/split-register-model.c:2091
 #, c-format
@@ -22582,10 +22920,14 @@ msgid ""
 "\n"
 "'%s'"
 msgstr ""
+"Tak dapat mengubah atau menghapus transaksi ini. Transaksi ini ditandai "
+"hanya-baca karena:\n"
+"\n"
+"'%s'"
 
 #: gnucash/register/ledger-core/split-register-model.c:2215
 msgid "Change transaction containing a reconciled split?"
-msgstr ""
+msgstr "Ubah transaksi yang mengandung split direkonsiliasi?"
 
 #: gnucash/register/ledger-core/split-register-model.c:2217
 #, c-format
@@ -22596,6 +22938,11 @@ msgid ""
 "\n"
 "Are you sure you want to continue with this change ?"
 msgstr ""
+"Transaksi yang akan Anda ubah mengandung split direkonsiliasi pada akun "
+"berikut:\n"
+"%s\n"
+"\n"
+"Apakah Anda yakin ingin melanjutkan perubahan ini?"
 
 #: gnucash/register/ledger-core/split-register-model.c:2228
 msgid ""
@@ -22603,21 +22950,25 @@ msgid ""
 "continue editing this split it will be unreconciled. This might make future "
 "reconciliation difficult! Continue with this change?"
 msgstr ""
-"Anda akan mengubah sebuah bidang yang terproteksi dari sebuah pemecahan yang "
-"direkonsiliasi. Jika Anda melanjutkan menyunting pemecahan ini, ia akan "
-"menjadi tak-direkonsiliasi. Hal ini mungkin akan mengakibatkan rekonsiliasi "
-"di masa depan menjadi sulit! Lanjutkan dengan perubahan ini?"
+"Anda akan mengubah sebuah bidang yang terproteksi dari sebuah split yang "
+"direkonsiliasi. Jika Anda melanjutkan menyunting split ini, ia akan menjadi "
+"tak-direkonsiliasi. Hal ini mungkin akan mengakibatkan rekonsiliasi di masa "
+"depan menjadi sulit! Lanjutkan dengan perubahan ini?"
 
 #: gnucash/register/ledger-core/split-register-model.c:2253
 msgid "Chan_ge Transaction"
 msgstr "U_bah Transaksi"
 
 #: gnucash/register/register-gnome/datecell-gnome.c:103
+#, fuzzy
 msgid ""
 "The entered date of the transaction is older than the \"Read-Only Threshold"
 "\" set for this book. This setting can be changed in File->Properties-"
 ">Accounts, resetting to the threshold."
 msgstr ""
+"tanggal masuk transaksi lebih tua dari \"Read-Only Threshold\" ditetapkan "
+"untuk buku ini. Pengaturan ini dapat diubah dalam File-> Properties> "
+"Account, ulang untuk ambang batas."
 
 #: gnucash/register/register-gnome/gnucash-item-list.c:528
 msgid "List"
@@ -22637,79 +22988,81 @@ msgstr "Menyesuaikan Entri"
 msgid "Load"
 msgstr "Muat"
 
-#: gnucash/report/html-fonts.scm:68 gnucash/report/html-fonts.scm:73
-#: gnucash/report/html-fonts.scm:78 gnucash/report/html-fonts.scm:83
-#: gnucash/report/html-fonts.scm:88 gnucash/report/html-fonts.scm:93
-#: gnucash/report/html-fonts.scm:98 gnucash/report/html-fonts.scm:104
-#: gnucash/report/html-fonts.scm:110
+#: gnucash/report/html-fonts.scm:92 gnucash/report/html-fonts.scm:97
+#: gnucash/report/html-fonts.scm:102 gnucash/report/html-fonts.scm:107
+#: gnucash/report/html-fonts.scm:112 gnucash/report/html-fonts.scm:117
+#: gnucash/report/html-fonts.scm:122 gnucash/report/html-fonts.scm:128
+#: gnucash/report/html-fonts.scm:134
 msgid "Fonts"
 msgstr "Fonta"
 
-#: gnucash/report/html-fonts.scm:69
+#: gnucash/report/html-fonts.scm:93
 msgid "Font info for the report title."
 msgstr "Informasi fonta untuk judul laporan."
 
-#: gnucash/report/html-fonts.scm:74
+#: gnucash/report/html-fonts.scm:98
 msgid "Account link"
 msgstr "Tautan akun"
 
-#: gnucash/report/html-fonts.scm:74
+#: gnucash/report/html-fonts.scm:98
 msgid "Font info for account name."
 msgstr "Informasi fonta untuk nama akun."
 
-#: gnucash/report/html-fonts.scm:79
+#: gnucash/report/html-fonts.scm:103
 msgid "Number cell"
 msgstr "Sel nomor"
 
-#: gnucash/report/html-fonts.scm:79
+#: gnucash/report/html-fonts.scm:103
 msgid "Font info for regular number cells."
 msgstr "Informasi fonta untuk sel nomor reguler."
 
-#: gnucash/report/html-fonts.scm:84
+#: gnucash/report/html-fonts.scm:108
 msgid "Negative Values in Red"
 msgstr "Nilai Negatif dalam warna Merah"
 
-#: gnucash/report/html-fonts.scm:84
+#: gnucash/report/html-fonts.scm:108
 msgid "Display negative values in red."
 msgstr "Tampilkan nilai negatif dalam warna merah."
 
-#: gnucash/report/html-fonts.scm:89
+#: gnucash/report/html-fonts.scm:113
+#, fuzzy
 msgid "Number header"
-msgstr ""
+msgstr "sundulan nomor"
 
-#: gnucash/report/html-fonts.scm:89
+#: gnucash/report/html-fonts.scm:113
+#, fuzzy
 msgid "Font info for number headers."
-msgstr ""
+msgstr "Info font untuk nomor header."
 
-#: gnucash/report/html-fonts.scm:94
+#: gnucash/report/html-fonts.scm:118
 msgid "Text cell"
 msgstr "Sel teks"
 
-#: gnucash/report/html-fonts.scm:94
+#: gnucash/report/html-fonts.scm:118
 msgid "Font info for regular text cells."
 msgstr "Informasi fonta untuk sel teks reguler."
 
-#: gnucash/report/html-fonts.scm:99
+#: gnucash/report/html-fonts.scm:123
 msgid "Total number cell"
 msgstr "Sel jumlah total"
 
-#: gnucash/report/html-fonts.scm:100
+#: gnucash/report/html-fonts.scm:124
 msgid "Font info for number cells containing a total."
 msgstr "Informasi fonta untuk sel angka berisi jumlah total."
 
-#: gnucash/report/html-fonts.scm:105
+#: gnucash/report/html-fonts.scm:129
 msgid "Total label cell"
 msgstr "Sel label total"
 
-#: gnucash/report/html-fonts.scm:106
+#: gnucash/report/html-fonts.scm:130
 msgid "Font info for cells containing total labels."
 msgstr "Informasi fonta untuk sel yang berisi label total."
 
-#: gnucash/report/html-fonts.scm:111
+#: gnucash/report/html-fonts.scm:135
 msgid "Centered label cell"
 msgstr "Sel label ditengahkan"
 
-#: gnucash/report/html-fonts.scm:111
+#: gnucash/report/html-fonts.scm:135
 msgid "Font info for centered label cells."
 msgstr "Informasi fonta untuk sel label ditengahkan."
 
@@ -22717,43 +23070,43 @@ msgstr "Informasi fonta untuk sel label ditengahkan."
 msgid "Can't save style sheet"
 msgstr "Tak dapat menyimpan lembar gaya"
 
-#: gnucash/report/html-utilities.scm:227
+#: gnucash/report/html-utilities.scm:229 gnucash/report/html-utilities.scm:246
+#, fuzzy
+#| msgid "Exchange rate"
 msgid "Exchange rate"
-msgstr "Kurs"
+msgid_plural "Exchange rates"
+msgstr[0] "Nilai tukar"
+msgstr[1] "Nilai tukar"
 
-#: gnucash/report/html-utilities.scm:228
-msgid "Exchange rates"
-msgstr "Kurs"
-
-#: gnucash/report/html-utilities.scm:235
+#: gnucash/report/html-utilities.scm:259
 msgid "No budgets exist. You must create at least one budget."
 msgstr "Tidak ada anggaran. Anda harus membuat setidaknya satu anggaran."
 
-#: gnucash/report/html-utilities.scm:268
+#: gnucash/report/html-utilities.scm:292
 #: gnucash/report/reports/standard/balsheet-pnl.scm:137
 #: gnucash/report/reports/standard/balsheet-pnl.scm:138
 #: gnucash/report/reports/standard/new-owner-report.scm:935
 msgid "Disabled"
 msgstr "Dinonaktifkan"
 
-#: gnucash/report/html-utilities.scm:321
+#: gnucash/report/html-utilities.scm:345
 msgid "This report requires you to specify certain report options."
-msgstr ""
+msgstr "Anda perlu menentukan beberapa opsi laporan untuk laporan ini."
 
-#: gnucash/report/html-utilities.scm:328
+#: gnucash/report/html-utilities.scm:352
 msgid "No accounts selected"
 msgstr "Tak ada akun yang dipilih"
 
-#: gnucash/report/html-utilities.scm:329
+#: gnucash/report/html-utilities.scm:353
 msgid "This report requires accounts to be selected in the report options."
 msgstr "Laporan ini memerlukan akun yang dipilih pada opsi laporan."
 
-#: gnucash/report/html-utilities.scm:336
+#: gnucash/report/html-utilities.scm:360
 #: gnucash/report/reports/standard/price-scatter.scm:276
 msgid "No data"
 msgstr "Tak ada data"
 
-#: gnucash/report/html-utilities.scm:337
+#: gnucash/report/html-utilities.scm:361
 msgid ""
 "The selected accounts contain no data/transactions (or only zeroes) for the "
 "selected time period"
@@ -22879,12 +23232,13 @@ msgstr "Tingkat-enam."
 
 #: gnucash/report/options-utilities.scm:86
 msgid "Show accounts to this depth, overriding any other option."
-msgstr ""
+msgstr "Tampilkan akun hingga kedalaman ini, mengabaikan opsi lainnya."
 
 #: gnucash/report/options-utilities.scm:94
 msgid ""
 "Override account-selection and show sub-accounts of all selected accounts?"
 msgstr ""
+"Abaikan pemilihan-akun dan tampilkan sub-akun untuk semua akun yang dipilih?"
 
 #: gnucash/report/options-utilities.scm:107
 #: gnucash/report/reports/standard/account-summary.scm:87
@@ -22893,39 +23247,37 @@ msgstr ""
 #: gnucash/report/reports/standard/budget-balance-sheet.scm:54
 #: gnucash/report/reports/standard/budget-income-statement.scm:76
 #: gnucash/report/reports/standard/income-statement.scm:64
+#, fuzzy
 msgid "Report on these accounts, if display depth allows."
-msgstr ""
+msgstr "Melaporkan account tersebut, jika kedalaman layar memungkinkan."
 
 #: gnucash/report/options-utilities.scm:119
 msgid "Select the currency to display the values of this report in."
-msgstr ""
+msgstr "Pilih mata uang untuk menampilkan nilai di dalam laporan ini."
 
 #: gnucash/report/options-utilities.scm:129
 #: gnucash/report/reports/standard/advanced-portfolio.scm:80
 #: gnucash/report/reports/standard/price-scatter.scm:87
-#, fuzzy
 msgid "The source of price information."
-msgstr "harga"
+msgstr "Sumber informasi harga."
 
 #: gnucash/report/options-utilities.scm:131
-#, fuzzy
 msgid "Average Cost"
-msgstr "rata-rata"
+msgstr "Biaya Rata-rata"
 
 #: gnucash/report/options-utilities.scm:132
 msgid "The volume-weighted average cost of purchases."
-msgstr ""
+msgstr "Biaya pembelian rata-rata tertimbang-volume."
 
 #: gnucash/report/options-utilities.scm:134
 #: gnucash/report/reports/standard/price-scatter.scm:90
-#, fuzzy
 msgid "Weighted Average"
-msgstr "Rata-rata:"
+msgstr "Rata-rata Tertimbang"
 
 #: gnucash/report/options-utilities.scm:135
 #: gnucash/report/reports/standard/price-scatter.scm:91
 msgid "The weighted average of all currency transactions of the past."
-msgstr ""
+msgstr "Rata-rata tertimbang untuk semua transaksi mata uang yang telah lalu."
 
 #: gnucash/report/options-utilities.scm:137
 #: gnucash/report/reports/standard/advanced-portfolio.scm:82
@@ -22935,32 +23287,29 @@ msgstr "Terkini"
 #: gnucash/report/options-utilities.scm:138
 #: gnucash/report/reports/standard/advanced-portfolio.scm:83
 msgid "The most recent recorded price."
-msgstr "Harga yang terkini dicatat."
+msgstr "Harga tercatat yang paling baru."
 
 #: gnucash/report/options-utilities.scm:140
 #: gnucash/report/reports/standard/advanced-portfolio.scm:85
-#, fuzzy
 msgid "Nearest in time"
-msgstr "Waktu awal bukan waktu yang valid"
+msgstr "Paling dekat dalam waktu"
 
 #: gnucash/report/options-utilities.scm:141
 #: gnucash/report/reports/standard/advanced-portfolio.scm:86
 msgid "The price recorded nearest in time to the report date."
-msgstr ""
+msgstr "Harga yang dicatat paling dekat dengan tanggal laporan."
 
 #: gnucash/report/options-utilities.scm:154
-#, fuzzy
 msgid "Width of plot in pixels."
-msgstr "Lebar blok dalam piksel"
+msgstr "Lebar plot dalam piksel."
 
 #: gnucash/report/options-utilities.scm:162
-#, fuzzy
 msgid "Height of plot in pixels."
-msgstr "Tinggi blok dalam piksel"
+msgstr "Tinggi plot dalam piksel."
 
 #: gnucash/report/options-utilities.scm:173
 msgid "Choose the marker for each data point."
-msgstr ""
+msgstr "Pilih penanda untuk tiap poin data."
 
 #: gnucash/report/options-utilities.scm:176
 msgid "Diamond"
@@ -23044,66 +23393,65 @@ msgstr "Menurut jumlah, terbesar ke terkecil."
 
 #: gnucash/report/options-utilities.scm:215
 msgid "How to show the balances of parent accounts."
-msgstr ""
+msgstr "Bagaimana menampilkan saldo akun induk."
 
 #: gnucash/report/options-utilities.scm:218
 #: gnucash/report/reports/standard/account-summary.scm:113
-#, fuzzy
 msgid "Account Balance"
-msgstr "seimbangkan"
+msgstr "Saldo Akun"
 
 #: gnucash/report/options-utilities.scm:219
 msgid "Show only the balance in the parent account, excluding any subaccounts."
-msgstr ""
+msgstr "Tampilkan hanya saldo di akun induk, mengecualikan semua sub-akun."
 
 #: gnucash/report/options-utilities.scm:222
 msgid ""
 "Calculate the subtotal for this parent account and all of its subaccounts, "
 "and show this as the parent account balance."
 msgstr ""
+"Hitung subtotal untuk akun induk ini dan semua sub-akun, dan tampilkan "
+"sebagai saldo akun induk."
 
 #: gnucash/report/options-utilities.scm:224
 #: gnucash/report/options-utilities.scm:239
-#, fuzzy
 msgid "Do not show"
-msgstr "Jangan menunjukkan perbedaan untuk berkas yang telah dihapus"
+msgstr "Jangan tampilkan"
 
 #: gnucash/report/options-utilities.scm:225
 msgid "Do not show any balances of parent accounts."
-msgstr ""
+msgstr "Jangan menampilkan saldo akun induk."
 
 #: gnucash/report/options-utilities.scm:233
 msgid "How to show account subtotals for parent accounts."
-msgstr ""
+msgstr "Bagaimana menampilkan subtotal akun untuk akun induk."
 
 #: gnucash/report/options-utilities.scm:236
-#, fuzzy
 msgid "Show subtotals"
-msgstr "Tampilkan:"
+msgstr "Tampilkan subtotal"
 
 #: gnucash/report/options-utilities.scm:237
 msgid "Show subtotals for selected parent accounts which have subaccounts."
-msgstr ""
+msgstr "Tampilkan subtotal untuk akun induk terpilih yang memiliki sub-akun."
 
 #: gnucash/report/options-utilities.scm:240
 msgid "Do not show any subtotals for parent accounts."
-msgstr ""
+msgstr "Jangan menampilkan setiap subtotal dari akun induk."
 
 #: gnucash/report/options-utilities.scm:243
-#, fuzzy
 msgid "Text book style (experimental)"
-msgstr "Bersihkan gaya dari teks yang dipilih"
+msgstr "Gaya buku teks (eksperimental)"
 
 #: gnucash/report/options-utilities.scm:244
 msgid ""
 "Show parent account subtotals, indented per accounting text book practice "
 "(experimental)."
 msgstr ""
+"Tampilkan subtotal akun induk, sesuai praktek pada buku teks akuntansi "
+"(eksperimental)."
 
 #: gnucash/report/report-core.scm:69
-#, fuzzy
 msgid "_Assets & Liabilities"
-msgstr "tipe akun: Aset & Liabilitas"
+msgstr "_Aset & Liabilitas"
 
 #: gnucash/report/report-core.scm:70
 msgid "_Income & Expense"
@@ -23111,7 +23459,7 @@ msgstr "_Pendapatan & Pengeluaran"
 
 #: gnucash/report/report-core.scm:72
 msgid "_Taxes"
-msgstr ""
+msgstr "_Pajak"
 
 #: gnucash/report/report-core.scm:73
 msgid "E_xamples"
@@ -23147,19 +23495,19 @@ msgstr "_Suai"
 #: gnucash/report/reports/standard/invoice.scm:337
 #: gnucash/report/reports/standard/invoice.scm:342
 #: gnucash/report/reports/standard/receipt.scm:40
-#: gnucash/report/reports/standard/register.scm:382
+#: gnucash/report/reports/standard/register.scm:353
+#: gnucash/report/reports/standard/register.scm:359
+#: gnucash/report/reports/standard/register.scm:363
+#: gnucash/report/reports/standard/register.scm:368
+#: gnucash/report/reports/standard/register.scm:373
+#: gnucash/report/reports/standard/register.scm:378
+#: gnucash/report/reports/standard/register.scm:383
 #: gnucash/report/reports/standard/register.scm:388
-#: gnucash/report/reports/standard/register.scm:392
-#: gnucash/report/reports/standard/register.scm:397
-#: gnucash/report/reports/standard/register.scm:402
+#: gnucash/report/reports/standard/register.scm:393
+#: gnucash/report/reports/standard/register.scm:398
 #: gnucash/report/reports/standard/register.scm:407
 #: gnucash/report/reports/standard/register.scm:412
 #: gnucash/report/reports/standard/register.scm:417
-#: gnucash/report/reports/standard/register.scm:422
-#: gnucash/report/reports/standard/register.scm:427
-#: gnucash/report/reports/standard/register.scm:436
-#: gnucash/report/reports/standard/register.scm:441
-#: gnucash/report/reports/standard/register.scm:446
 #: gnucash/report/reports/standard/taxinvoice.scm:79
 msgid "Display"
 msgstr "Tampilan"
@@ -23184,7 +23532,7 @@ msgid ""
 msgstr ""
 "Salah satu laporan Anda memiliki guid-laporan yang merupakan duplikat. "
 "Silakan periksa sistem pelaporan, terutama laporan Anda yang tersimpan, "
-"untuk laporan dengan guid-laporan berikut:"
+"untuk laporan dengan guid-laporan berikut: "
 
 #: gnucash/report/report-core.scm:130
 msgid "Wrong report definition: "
@@ -23199,6 +23547,9 @@ msgid ""
 "Some reports stored in a legacy format were found. This format is not "
 "supported anymore so these reports may not have been restored properly."
 msgstr ""
+"Ditemukan beberapa laporan yang disimpan dengan format lama. Format ini "
+"sudah tidak didukung lagi, sehingga laporan tersebut mungkin tidak dibuka "
+"dengan benar."
 
 #: gnucash/report/report-core.scm:207
 msgid "Enter a descriptive name for this report."
@@ -23294,9 +23645,8 @@ msgstr "Tampilkan Total Multi-Mata uang"
 
 #: gnucash/report/reports/aging.scm:42
 #: gnucash/report/reports/standard/new-aging.scm:44
-#, fuzzy
 msgid "Show zero balance items"
-msgstr "Cara menampilkan butir catatan"
+msgstr "Tampilkan item dengan saldo nol"
 
 #: gnucash/report/reports/aging.scm:43
 #: gnucash/report/reports/standard/new-aging.scm:45
@@ -23308,30 +23658,23 @@ msgstr "Tanggal Pos atau Jatuh Tempo"
 #: gnucash/report/reports/aging.scm:46
 #: gnucash/report/reports/standard/new-aging.scm:48
 #: gnucash/report/reports/standard/receivables.scm:37
-#, fuzzy
 msgid "Address Source"
-msgstr "Sumber buku alamat"
+msgstr "Sumber Alamat"
 
 #: gnucash/report/reports/aging.scm:52
 #: gnucash/report/reports/standard/new-aging.scm:58
-#, fuzzy
 msgid "Address Phone"
-msgstr "Telepon"
+msgstr "Telepon Alamat"
 
 #: gnucash/report/reports/aging.scm:53
 #: gnucash/report/reports/standard/new-aging.scm:59
-#, fuzzy
 msgid "Address Fax"
-msgstr "Faks"
+msgstr "Faks Alamat"
 
 #: gnucash/report/reports/aging.scm:54
 #: gnucash/report/reports/standard/new-aging.scm:60
-#, fuzzy
 msgid "Address Email"
-msgstr ""
-"<firstname>Martin</firstname><othername>K.</othername> <surname>Petersen</"
-"surname> <affiliation> <address><email>mkp at mkp.net</email></address> </"
-"affiliation>"
+msgstr "Surel Alamat"
 
 #: gnucash/report/reports/aging.scm:204
 #, scheme-format
@@ -23339,98 +23682,92 @@ msgid ""
 "Transactions relating to '~a' contain more than one currency. This report is "
 "not designed to cope with this possibility."
 msgstr ""
+"Transaksi terkait '~a' mengandung lebih dari satu mata uang. Laporan ini "
+"tidak didesain untuk kemungkinan ini."
 
 #: gnucash/report/reports/aging.scm:344
 #: gnucash/report/reports/standard/new-aging.scm:95
-#, fuzzy
 msgid "Sort companies by."
-msgstr "_Urutkan..."
+msgstr "Urutkan perusahaan berdasar."
 
 #: gnucash/report/reports/aging.scm:347
 #: gnucash/report/reports/standard/new-aging.scm:99
-#, fuzzy
 msgid "Name of the company."
-msgstr "Berdasarkan _Perusahaan"
+msgstr "Nama perusahaan."
 
 #: gnucash/report/reports/aging.scm:348
 #: gnucash/report/reports/standard/new-aging.scm:101
-#, fuzzy
 msgid "Total Owed"
-msgstr "Total:"
+msgstr "Total Pinjaman"
 
 #: gnucash/report/reports/aging.scm:348
 #: gnucash/report/reports/standard/new-aging.scm:102
 msgid "Total amount owed to/from Company."
-msgstr ""
+msgstr "Jumlah total pinjaman ke/dari Perusahaan."
 
 #: gnucash/report/reports/aging.scm:349
 #: gnucash/report/reports/standard/new-aging.scm:104
 #, fuzzy
 msgid "Bracket Total Owed"
-msgstr "Ke tanda kurung pasangan"
+msgstr "Bracket Jumlah Utang"
 
 #: gnucash/report/reports/aging.scm:349
 #: gnucash/report/reports/standard/new-aging.scm:105
+#, fuzzy
 msgid "Amount owed in oldest bracket - if same go to next oldest."
 msgstr ""
+"Berjumlah berutang di braket tertua - jika pergi sama untuk selanjutnya "
+"tertua."
 
 #: gnucash/report/reports/aging.scm:356
 #: gnucash/report/reports/standard/new-aging.scm:109
-#, fuzzy
 msgid "Sort order."
-msgstr "Sunting Urutkan _Urutan…"
+msgstr "Pengurutan."
 
 #: gnucash/report/reports/aging.scm:359
 #: gnucash/report/reports/standard/new-aging.scm:111
-#, fuzzy
 msgid "Increasing"
-msgstr ""
-"Menaikkan kecerahan akan membuat foto dan video lebih terang. Namun, bila "
-"Anda berada di ruang gelap, menaikkan kecerahan bisa membuat gambar terlihat "
-"lebih kasar."
+msgstr "Menambah"
 
 #: gnucash/report/reports/aging.scm:359
-#, fuzzy
 msgid "0 .. 999,999.99, A .. Z."
-msgstr "Posisi pada sumbu Z"
+msgstr "0 .. 999,999.99, A .. Z."
 
 #: gnucash/report/reports/aging.scm:360
 #: gnucash/report/reports/standard/new-aging.scm:112
-#, fuzzy
 msgid "Decreasing"
-msgstr "Mengurangi kepadatan dengan menghapus bingkai…"
+msgstr "Mengurangi"
 
 #: gnucash/report/reports/aging.scm:360
-#, fuzzy
 msgid "999,999.99 .. 0, Z .. A."
-msgstr "Posisi pada sumbu Z"
+msgstr "999,999.99 .. 0, Z .. A."
 
 #: gnucash/report/reports/aging.scm:367
 msgid ""
 "Show multi-currency totals. If not selected, convert all totals to report "
 "currency."
 msgstr ""
+"Tampilkan total dalam beberapa mata uang. Jika tak dipilih, konversikan "
+"semua total ke mata uang laporan."
 
 #: gnucash/report/reports/aging.scm:376
 #: gnucash/report/reports/standard/new-aging.scm:117
 msgid "Show all vendors/customers even if they have a zero balance."
-msgstr ""
+msgstr "Tampilkan semua vendor/pelanggan meskipun memiliki saldo nol."
 
 #: gnucash/report/reports/aging.scm:384
 #: gnucash/report/reports/standard/new-aging.scm:122
 #: gnucash/report/reports/standard/new-owner-report.scm:953
 #: gnucash/report/reports/standard/owner-report.scm:609
-#, fuzzy
 msgid "Leading date."
-msgstr "Hanya Di Depan"
+msgstr "Tanggal lebih awal."
 
 #: gnucash/report/reports/aging.scm:387
 #: gnucash/report/reports/standard/new-aging.scm:127
 #: gnucash/report/reports/standard/new-owner-report.scm:958
 #: gnucash/report/reports/standard/owner-report.scm:612
-#, fuzzy
 msgid "Due date is leading."
-msgstr "Tanggal jatuh tempo bukan tanggal yang valid"
+msgstr "Tanggal jatuh tempo lebih awal."
 
 #: gnucash/report/reports/aging.scm:388
 #: gnucash/report/reports/standard/new-aging.scm:131
@@ -23451,51 +23788,43 @@ msgstr ""
 
 #: gnucash/report/reports/aging.scm:409
 #: gnucash/report/reports/standard/new-aging.scm:54
-#, fuzzy
 msgid "Display Address 1."
-msgstr "-1"
+msgstr "Alamat Tampilan 1."
 
 #: gnucash/report/reports/aging.scm:417
 #: gnucash/report/reports/standard/new-aging.scm:55
-#, fuzzy
 msgid "Display Address 2."
-msgstr "2"
+msgstr "Alamat Tampilan 2."
 
 #: gnucash/report/reports/aging.scm:425
 #: gnucash/report/reports/standard/new-aging.scm:56
-#, fuzzy
 msgid "Display Address 3."
-msgstr "3"
+msgstr "Alamat Tampilan 3."
 
 #: gnucash/report/reports/aging.scm:433
 #: gnucash/report/reports/standard/new-aging.scm:57
-#, fuzzy
 msgid "Display Address 4."
-msgstr "Alamat"
+msgstr "Alamat Tampilan 4."
 
 #: gnucash/report/reports/aging.scm:441
 #: gnucash/report/reports/standard/new-aging.scm:58
-#, fuzzy
 msgid "Display Phone."
-msgstr "Telepon:"
+msgstr "Telepon Tampilan."
 
 #: gnucash/report/reports/aging.scm:449
 #: gnucash/report/reports/standard/new-aging.scm:59
-#, fuzzy
 msgid "Display Fax."
-msgstr "Faks"
+msgstr "Faks Tampilan."
 
 #: gnucash/report/reports/aging.scm:457
 #: gnucash/report/reports/standard/new-aging.scm:60
-#, fuzzy
 msgid "Display Email."
-msgstr "Tampilkan pada…"
+msgstr "Surel Tampilan."
 
 #: gnucash/report/reports/aging.scm:465
 #: gnucash/report/reports/standard/new-aging.scm:61
-#, fuzzy
 msgid "Display Active status."
-msgstr "Tampilan Aktif"
+msgstr "Status aktif Tampilan."
 
 #: gnucash/report/reports/aging.scm:538
 #: gnucash/report/reports/standard/budget-barchart.scm:72
@@ -23503,59 +23832,52 @@ msgstr "Tampilan Aktif"
 #: gnucash/report/reports/standard/new-aging.scm:195
 #: gnucash/report/reports/standard/new-owner-report.scm:316
 #: gnucash/report/reports/standard/owner-report.scm:259
-#, fuzzy
 msgid "Current"
-msgstr "Sekarang"
+msgstr "Saat ini"
 
 #: gnucash/report/reports/aging.scm:539
 #: gnucash/report/reports/standard/job-report.scm:159
 #: gnucash/report/reports/standard/new-aging.scm:196
 #: gnucash/report/reports/standard/new-owner-report.scm:317
 #: gnucash/report/reports/standard/owner-report.scm:260
-#, fuzzy
 msgid "0-30 days"
-msgstr "Hari"
+msgstr "0-30 hari"
 
 #: gnucash/report/reports/aging.scm:540
 #: gnucash/report/reports/standard/job-report.scm:160
 #: gnucash/report/reports/standard/new-aging.scm:197
 #: gnucash/report/reports/standard/new-owner-report.scm:318
 #: gnucash/report/reports/standard/owner-report.scm:261
-#, fuzzy
 msgid "31-60 days"
-msgstr "Hari"
+msgstr "31-60 hari"
 
 #: gnucash/report/reports/aging.scm:541
 #: gnucash/report/reports/standard/job-report.scm:161
 #: gnucash/report/reports/standard/new-aging.scm:198
 #: gnucash/report/reports/standard/new-owner-report.scm:319
 #: gnucash/report/reports/standard/owner-report.scm:262
-#, fuzzy
 msgid "61-90 days"
-msgstr "Hari"
+msgstr "61-90 hari"
 
 #: gnucash/report/reports/aging.scm:542
 #: gnucash/report/reports/standard/job-report.scm:162
 #: gnucash/report/reports/standard/new-aging.scm:199
 #: gnucash/report/reports/standard/new-owner-report.scm:320
 #: gnucash/report/reports/standard/owner-report.scm:263
-#, fuzzy
 msgid "91+ days"
-msgstr "Hari"
+msgstr "91+ hari"
 
 #: gnucash/report/reports/aging.scm:773
 #: gnucash/report/reports/standard/new-aging.scm:164
-#, fuzzy
 msgctxt "One-letter indication for 'yes'"
 msgid "Y"
 msgstr "Y"
 
 #: gnucash/report/reports/aging.scm:773
 #: gnucash/report/reports/standard/new-aging.scm:164
-#, fuzzy
 msgctxt "One-letter indication for 'no'"
 msgid "N"
-msgstr "n"
+msgstr "T"
 
 #: gnucash/report/reports/aging.scm:840
 #: gnucash/report/reports/standard/job-report.scm:547
@@ -23563,30 +23885,29 @@ msgid ""
 "No valid account selected. Click on the Options button and select the "
 "account to use."
 msgstr ""
+"Tak ada akun yang valid yang dipilih. Klik pada tombol Opsi dan pilih akun "
+"yang akan digunakan."
 
 #: gnucash/report/reports/example/average-balance.scm:38
-#, fuzzy
 msgid "Average Balance"
-msgstr "seimbangkan"
+msgstr "Saldo Rata-rata"
 
 #: gnucash/report/reports/example/average-balance.scm:42
 #: gnucash/report/reports/standard/cashflow-barchart.scm:56
 #: gnucash/report/reports/standard/category-barchart.scm:71
 #: gnucash/report/reports/standard/net-charts.scm:41
 #: gnucash/report/reports/standard/price-scatter.scm:37
-#, fuzzy
 msgid "Step Size"
-msgstr "Langkah Pulsa Kemajuan"
+msgstr "Ukuran Langkah"
 
 #: gnucash/report/reports/example/average-balance.scm:45
 #: gnucash/report/reports/example/daily-reports.scm:59
-#, fuzzy
 msgid "Include Sub-Accounts"
-msgstr "Akun"
+msgstr "Sertakan Sub-Akun"
 
 #: gnucash/report/reports/example/average-balance.scm:46
 msgid "Exclude transactions between selected accounts"
-msgstr ""
+msgstr "Kecualikan transaksi antara akun yang dipilih"
 
 #: gnucash/report/reports/example/average-balance.scm:47
 #: gnucash/report/reports/example/daily-reports.scm:64
@@ -23615,17 +23936,19 @@ msgstr "Tinggi Plot"
 #: gnucash/report/reports/example/average-balance.scm:80
 #: gnucash/report/reports/example/daily-reports.scm:91
 msgid "Include sub-accounts of all selected accounts."
-msgstr ""
+msgstr "Sertakan sub-akun dari semua akun yang dipilih."
 
 #: gnucash/report/reports/example/average-balance.scm:86
 msgid ""
 "Exclude transactions that only involve two accounts, both of which are "
 "selected below. This only affects the profit and loss columns of the table."
 msgstr ""
+"Kecualikan transaksi yang hanya melibatkan dua akun, yang keduanya dipilih "
+"di bawah ini. Ini hanya mempengaruhi kolom laba dan rugi pada tabel."
 
 #: gnucash/report/reports/example/average-balance.scm:93
 msgid "Do transaction report on this account."
-msgstr ""
+msgstr "Lakukan laporan transaksi pada akun ini."
 
 #: gnucash/report/reports/example/average-balance.scm:116
 #: gnucash/report/reports/example/average-balance.scm:303
@@ -23669,45 +23992,38 @@ msgid "Average"
 msgstr "Rata-rata"
 
 #: gnucash/report/reports/example/average-balance.scm:129
-#, fuzzy
 msgid "Average Balance."
-msgstr "seimbangkan"
+msgstr "Saldo Rata-rata."
 
 #: gnucash/report/reports/example/average-balance.scm:130
 #: gnucash/report/reports/example/average-balance.scm:151
 #: gnucash/report/reports/standard/customer-summary.scm:129
 #: gnucash/report/reports/standard/customer-summary.scm:322
 msgid "Profit"
-msgstr "Keuntungan"
+msgstr "Laba"
 
 #: gnucash/report/reports/example/average-balance.scm:130
-#, fuzzy
 msgid "Profit (Gain minus Loss)."
-msgstr "tipe akun: Keuntungan & Kerugian"
+msgstr "Laba (Keuntungan dikurangi Kerugian)."
 
 #: gnucash/report/reports/example/average-balance.scm:131
-#, fuzzy
 msgid "Gain And Loss."
-msgstr "kerugian"
+msgstr "Keuntungan Dan Kerugian."
 
 #: gnucash/report/reports/example/average-balance.scm:149
-#, fuzzy
 msgid "Period start"
-msgstr "_Periode:"
+msgstr "Periode awal"
 
 #: gnucash/report/reports/example/average-balance.scm:149
-#, fuzzy
 msgid "Period end"
-msgstr "_Periode:"
+msgstr "Periode akhir"
 
 #: gnucash/report/reports/example/average-balance.scm:150
-#, fuzzy
 msgid "Maximum"
 msgstr "Maksimum"
 
 #: gnucash/report/reports/example/average-balance.scm:150
 #: gnucash/report/reports/standard/balance-forecast.scm:237
-#, fuzzy
 msgid "Minimum"
 msgstr "Minimum"
 
@@ -23721,35 +24037,36 @@ msgstr "Kerugian"
 
 #: gnucash/report/reports/example/daily-reports.scm:37
 #: gnucash/report/reports/example/daily-reports.scm:49
-#, fuzzy
 msgid "Income vs. Day of Week"
-msgstr "Hari pertama dalam satu minggu"
+msgstr "Pendapatan vs. Hari dalam Seminggu"
 
 #: gnucash/report/reports/example/daily-reports.scm:38
 #: gnucash/report/reports/example/daily-reports.scm:50
-#, fuzzy
 msgid "Expenses vs. Day of Week"
-msgstr "Hari pertama dalam satu minggu"
+msgstr "Pengeluaran vs. Hari dalam Seminggu"
 
 #: gnucash/report/reports/example/daily-reports.scm:42
 msgid "Shows a piechart with the total income for each day of the week"
 msgstr ""
+"Tampilkan sebuah bagan pai dengan total pendapatan untuk setiap hari dalam "
+"seminggu"
 
 #: gnucash/report/reports/example/daily-reports.scm:44
 msgid "Shows a piechart with the total expenses for each day of the week"
 msgstr ""
+"Tampilkan sebuah bagan pai dengan total pengeluaran untuk setiap hari dalam "
+"seminggu"
 
 #: gnucash/report/reports/example/daily-reports.scm:58
 #: gnucash/report/reports/standard/account-piecharts.scm:70
 #: gnucash/report/reports/standard/category-barchart.scm:76
 msgid "Show Accounts until level"
-msgstr ""
+msgstr "Tampilkan Akun hingga tingkat"
 
 #: gnucash/report/reports/example/daily-reports.scm:61
 #: gnucash/report/reports/standard/category-barchart.scm:78
-#, fuzzy
 msgid "Show long account names"
-msgstr "Dalam _dialog berlangganan, tampilkan nama folder terkait"
+msgstr "Tampilkan nama panjang akun"
 
 #: gnucash/report/reports/example/daily-reports.scm:62
 #: gnucash/report/reports/standard/account-piecharts.scm:73
@@ -23758,9 +24075,8 @@ msgstr "Tampilkan Total"
 
 #: gnucash/report/reports/example/daily-reports.scm:63
 #: gnucash/report/reports/standard/account-piecharts.scm:75
-#, fuzzy
 msgid "Maximum Slices"
-msgstr "Slice Preview"
+msgstr "Irisan Maksimum"
 
 #: gnucash/report/reports/example/daily-reports.scm:66
 #: gnucash/report/reports/standard/account-piecharts.scm:78
@@ -23772,19 +24088,21 @@ msgstr "Metode Sortir"
 #: gnucash/report/reports/standard/account-piecharts.scm:136
 #: gnucash/report/reports/standard/category-barchart.scm:138
 #: gnucash/report/reports/standard/net-charts.scm:92
+#, fuzzy
 msgid "Report on these accounts, if chosen account level allows."
 msgstr ""
+"Melaporkan account tersebut, jika tingkat akun yang dipilih memungkinkan."
 
 #: gnucash/report/reports/example/daily-reports.scm:111
 #: gnucash/report/reports/standard/account-piecharts.scm:151
 #: gnucash/report/reports/standard/category-barchart.scm:150
 msgid "Show accounts to this depth and not further."
-msgstr ""
+msgstr "Tampilkan akun hanya hingga kedalaman ini."
 
 #: gnucash/report/reports/example/daily-reports.scm:117
 #: gnucash/report/reports/standard/account-piecharts.scm:166
 msgid "Show the total balance in legend?"
-msgstr ""
+msgstr "Tampilkan saldo total di legenda?"
 
 #: gnucash/report/reports/example/daily-reports.scm:289
 #: gnucash/report/reports/standard/account-piecharts.scm:545
@@ -23792,14 +24110,14 @@ msgstr ""
 #: gnucash/report/reports/standard/balsheet-pnl.scm:910
 #: gnucash/report/reports/standard/budget.scm:513
 #: gnucash/report/reports/standard/cashflow-barchart.scm:282
-#: gnucash/report/reports/standard/cash-flow.scm:188
+#: gnucash/report/reports/standard/cash-flow.scm:190
 #: gnucash/report/reports/standard/category-barchart.scm:514
 #: gnucash/report/reports/standard/net-charts.scm:334
 #: gnucash/report/reports/standard/price-scatter.scm:212
 #: libgnucash/app-utils/date-utilities.scm:89
 #, scheme-format
 msgid "~a to ~a"
-msgstr ""
+msgstr "~a ke ~a"
 
 #: gnucash/report/reports/example/hello-world.scm:57
 #: gnucash/report/reports/example/hello-world.scm:67
@@ -23984,9 +24302,8 @@ msgid "Testing"
 msgstr "Percobaan"
 
 #: gnucash/report/reports/example/hello-world.scm:204
-#, fuzzy
 msgid "Crash the report"
-msgstr "Lapo_rkan"
+msgstr "Kreskan laporan"
 
 #: gnucash/report/reports/example/hello-world.scm:206
 msgid ""
@@ -24248,27 +24565,27 @@ msgstr "Tahun Lalu."
 #: gnucash/report/reports/locale-specific/de_DE/taxtxf.scm:161
 #: gnucash/report/reports/locale-specific/us/taxtxf.scm:187
 msgid "Last Yr 1st Est Tax Qtr"
-msgstr ""
+msgstr "Kuart Pjk Prtm Thn Lalu"
 
 #: gnucash/report/reports/locale-specific/de_DE/taxtxf.scm:162
 #: gnucash/report/reports/locale-specific/us/taxtxf.scm:188
 msgid "Jan 1 - Mar 31, Last year."
-msgstr ""
+msgstr "1 Jan - 31 Mar, Tahun lalu."
 
 #: gnucash/report/reports/locale-specific/de_DE/taxtxf.scm:164
 #: gnucash/report/reports/locale-specific/us/taxtxf.scm:190
 msgid "Last Yr 2nd Est Tax Qtr"
-msgstr ""
+msgstr "Kuart Pjk Ke-2 Thn Lalu"
 
 #: gnucash/report/reports/locale-specific/de_DE/taxtxf.scm:165
 #: gnucash/report/reports/locale-specific/us/taxtxf.scm:191
 msgid "Apr 1 - May 31, Last year."
-msgstr ""
+msgstr "1 Apr - 31 Mei, Tahun lalu."
 
 #: gnucash/report/reports/locale-specific/de_DE/taxtxf.scm:167
 #: gnucash/report/reports/locale-specific/us/taxtxf.scm:193
 msgid "Last Yr 3rd Est Tax Qtr"
-msgstr ""
+msgstr "Kuart Pjk Ke-3 Thn Lalu"
 
 #. Translators: The US tax quarters are different from
 #. actual year's quarters! See the definition of
@@ -24276,256 +24593,255 @@ msgstr ""
 #: gnucash/report/reports/locale-specific/de_DE/taxtxf.scm:168
 #: gnucash/report/reports/locale-specific/us/taxtxf.scm:197
 msgid "Jun 1 - Aug 31, Last year."
-msgstr ""
+msgstr "1 Jun - 31 Agt, Tahun lalu."
 
 #: gnucash/report/reports/locale-specific/de_DE/taxtxf.scm:170
 #: gnucash/report/reports/locale-specific/us/taxtxf.scm:199
 msgid "Last Yr 4th Est Tax Qtr"
-msgstr ""
+msgstr "Kuart Pjk Ke-4 Thn Lalu"
 
 #: gnucash/report/reports/locale-specific/de_DE/taxtxf.scm:171
 #: gnucash/report/reports/locale-specific/us/taxtxf.scm:200
 msgid "Sep 1 - Dec 31, Last year."
-msgstr ""
+msgstr "1 Sep - 31 Des, Tahun lalu."
 
 #: gnucash/report/reports/locale-specific/de_DE/taxtxf.scm:175
 #: gnucash/report/reports/locale-specific/us/taxtxf.scm:204
-#, fuzzy
 msgid "Select Accounts (none = all)"
-msgstr "Semua Akun"
+msgstr "Pilih Akun (tak ada = semua)"
 
 #: gnucash/report/reports/locale-specific/de_DE/taxtxf.scm:176
 #: gnucash/report/reports/locale-specific/us/taxtxf.scm:205
-#, fuzzy
 msgid "Select accounts."
-msgstr "Pilih _akun untuk mengaktifkan notifikasi:"
+msgstr "Pilih akun."
 
 #: gnucash/report/reports/locale-specific/de_DE/taxtxf.scm:182
 #: gnucash/report/reports/locale-specific/us/taxtxf.scm:211
-#, fuzzy
 msgid "Suppress $0.00 values"
-msgstr "Nilai"
+msgstr "Sembunyikan nilai Rp.0"
 
 #: gnucash/report/reports/locale-specific/de_DE/taxtxf.scm:183
 msgid "$0.00 valued Accounts won't be printed."
-msgstr ""
+msgstr "Akun bernilai Rp.0 tak akan dicetak."
 
 #: gnucash/report/reports/locale-specific/de_DE/taxtxf.scm:187
-#, fuzzy
 msgid "Print Full account names"
-msgstr "Cetak URI lengkap"
+msgstr "Cetak nama lengkap akun"
 
 #: gnucash/report/reports/locale-specific/de_DE/taxtxf.scm:188
 msgid "Print all Parent account names."
-msgstr ""
+msgstr "Cetak semua nama akun Induk."
 
 #: gnucash/report/reports/locale-specific/de_DE/taxtxf.scm:266
 msgid ""
 "WARNING: There are duplicate TXF codes assigned to some accounts. Only TXF "
 "codes with payer sources may be repeated."
 msgstr ""
+"PERINGATAN: Ada kode TXF duplikat yang ditugaskan untuk beberapa akun. Hanya "
+"kode TXF dengan sumber pembayar yang dapat diulang."
 
-#: gnucash/report/reports/locale-specific/de_DE/taxtxf.scm:818
-#, fuzzy, scheme-format
+#: gnucash/report/reports/locale-specific/de_DE/taxtxf.scm:817
+#, scheme-format
 msgid "Period from ~a to ~a"
-msgstr "_Periode:"
+msgstr "Periode dari ~a ke ~a"
 
-#: gnucash/report/reports/locale-specific/de_DE/taxtxf.scm:855
+#: gnucash/report/reports/locale-specific/de_DE/taxtxf.scm:854
 msgid "Tax Report & XML Export"
-msgstr ""
+msgstr "Laporan Pajak & Ekspor XML"
 
-#: gnucash/report/reports/locale-specific/de_DE/taxtxf.scm:857
+#: gnucash/report/reports/locale-specific/de_DE/taxtxf.scm:856
 msgid "Taxable Income / Deductible Expenses / Export to .XML file"
 msgstr ""
+"Penghasilan Kena Pajak / Pengeluaran Dapat Dikurangkan / Ekspor ke berkas ."
+"XML"
 
-#: gnucash/report/reports/locale-specific/de_DE/taxtxf.scm:861
-#: gnucash/report/reports/locale-specific/de_DE/taxtxf.scm:870
+#: gnucash/report/reports/locale-specific/de_DE/taxtxf.scm:860
+#: gnucash/report/reports/locale-specific/de_DE/taxtxf.scm:869
 msgid "Taxable Income / Deductible Expenses"
-msgstr ""
+msgstr "Penghasilan Kena Pajak / Pengeluaran Dapat Dikurangkan"
 
-#: gnucash/report/reports/locale-specific/de_DE/taxtxf.scm:862
+#: gnucash/report/reports/locale-specific/de_DE/taxtxf.scm:861
 msgid "This report shows your Taxable Income and Deductible Expenses."
 msgstr ""
+"Laporan ini menampilkan Penghasilan Kena Pajak dan Pengeluaran Dapat "
+"Dikurangkan."
 
-#: gnucash/report/reports/locale-specific/de_DE/taxtxf.scm:867
-#, fuzzy
+#: gnucash/report/reports/locale-specific/de_DE/taxtxf.scm:866
 msgid "XML"
-msgstr "_XML"
+msgstr "XML"
 
-#: gnucash/report/reports/locale-specific/de_DE/taxtxf.scm:871
+#: gnucash/report/reports/locale-specific/de_DE/taxtxf.scm:870
 msgid "This page shows your Taxable Income and Deductible Expenses."
 msgstr ""
+"Halaman ini menampilkan Penghasilan Kena Pajak dan Pengeluaran Dapat "
+"Dikurangkan."
 
 #: gnucash/report/reports/locale-specific/us/taxtxf.scm:112
 msgid "Tax Schedule Report/TXF Export"
-msgstr ""
+msgstr "Laporan Jadwal Pajak/Ekspor TXF"
 
 #: gnucash/report/reports/locale-specific/us/taxtxf.scm:212
 msgid "$0.00 valued Tax codes won't be printed."
-msgstr ""
+msgstr "Kode pajak yang bernilai $0.00 tak akan dicetak."
 
 #: gnucash/report/reports/locale-specific/us/taxtxf.scm:216
 msgid "Do not print full account names"
-msgstr ""
+msgstr "Jangan cetak nama lengkap akun"
 
 #: gnucash/report/reports/locale-specific/us/taxtxf.scm:217
 msgid "Do not print all Parent account names."
-msgstr ""
+msgstr "Jangan cetak semua nama akun Induk."
 
 #: gnucash/report/reports/locale-specific/us/taxtxf.scm:221
-#, fuzzy
 msgid "Print all Transfer To/From Accounts"
-msgstr "Terima butir-butir baru dari semua akun"
+msgstr "Cetak semua Akun Transfer Ke/Dari"
 
 #: gnucash/report/reports/locale-specific/us/taxtxf.scm:222
 msgid "Print all split details for multi-split transactions."
-msgstr ""
+msgstr "Cetak semua detail split untuk transaksi multi-split."
 
 #: gnucash/report/reports/locale-specific/us/taxtxf.scm:226
 msgid "Print TXF export parameters"
-msgstr ""
+msgstr "Cetak parameter ekspor TXF"
 
 #: gnucash/report/reports/locale-specific/us/taxtxf.scm:227
 msgid "Show TXF export parameters for each TXF code/account on report."
-msgstr ""
+msgstr "Tampilkan parameter ekspor TXF untuk tiap kode/akun TXF di laporan."
 
 #: gnucash/report/reports/locale-specific/us/taxtxf.scm:232
 msgid "Do not print T-Num:Memo data"
-msgstr ""
+msgstr "Jangan cetak data T-Num:Memo"
 
 #: gnucash/report/reports/locale-specific/us/taxtxf.scm:233
 msgid "Do not print T-Num:Memo data for transactions."
-msgstr ""
+msgstr "Jangan cetak data T-Num:Memo untuk transaksi."
 
 #: gnucash/report/reports/locale-specific/us/taxtxf.scm:236
 msgid "Do not print Action:Memo data"
-msgstr ""
+msgstr "Jangan cetak data Aksi:Memo"
 
 #: gnucash/report/reports/locale-specific/us/taxtxf.scm:237
 msgid "Do not print Action:Memo data for transactions."
-msgstr ""
+msgstr "Jangan cetak data Aksi:Memo untuk transaksi."
 
 #: gnucash/report/reports/locale-specific/us/taxtxf.scm:241
 msgid "Do not print transaction detail"
-msgstr ""
+msgstr "Jangan cetak detail transaksi"
 
 #: gnucash/report/reports/locale-specific/us/taxtxf.scm:242
 msgid "Do not print transaction detail for accounts."
-msgstr ""
+msgstr "Jangan cetak detail transaksi untuk akun."
 
 #: gnucash/report/reports/locale-specific/us/taxtxf.scm:246
-#, fuzzy
 msgid "Do not use special date processing"
-msgstr "Jangan pakai fungsi akselerasi CPU khusus"
+msgstr "Jangan gunakan pemrosesan tanggal khusus"
 
 #: gnucash/report/reports/locale-specific/us/taxtxf.scm:247
 msgid "Do not print transactions out of specified dates."
-msgstr ""
+msgstr "Jangan cetak transaksi di luar tanggal yang ditentukan."
 
 #: gnucash/report/reports/locale-specific/us/taxtxf.scm:251
-#, fuzzy
 msgid "Currency conversion date"
-msgstr "mata uang"
+msgstr "Tanggal konversi mata uang"
 
 #: gnucash/report/reports/locale-specific/us/taxtxf.scm:252
 msgid "Select date to use for PriceDB lookups."
-msgstr ""
+msgstr "Pilih tanggal untuk digunakan dalam pencarian PriceDB."
 
 #: gnucash/report/reports/locale-specific/us/taxtxf.scm:255
-#, fuzzy
 msgid "Nearest transaction date"
-msgstr "transaksi"
+msgstr "Tanggal transaksi terdekat"
 
 #: gnucash/report/reports/locale-specific/us/taxtxf.scm:255
-#, fuzzy
 msgid "Use nearest to transaction date."
-msgstr "Gunakan tanggal dari halaman jurnal"
+msgstr "Gunakan terdekat ke tanggal transaksi."
 
 #: gnucash/report/reports/locale-specific/us/taxtxf.scm:257
-#, fuzzy
 msgid "Nearest report date"
-msgstr "Tanggal"
+msgstr "Tanggal laporan terdekat"
 
 #: gnucash/report/reports/locale-specific/us/taxtxf.scm:257
-#, fuzzy
 msgid "Use nearest to report date."
-msgstr "Gunakan tanggal dari halaman jurnal"
+msgstr "Gunakan terdekat ke tanggal laporan."
 
 #: gnucash/report/reports/locale-specific/us/taxtxf.scm:3322
 msgid "Tax Schedule Report & TXF Export"
-msgstr ""
+msgstr "Laporan Jadwal Pajak & Ekspor TXF"
 
 #: gnucash/report/reports/locale-specific/us/taxtxf.scm:3324
 msgid ""
 "Taxable Income/Deductible Expenses with Transaction Detail/Export to .TXF "
 "file"
 msgstr ""
+"Penghasilan Kena Pajak/Pengeluaran Dapat Dikurangkan dengan Detail Transaksi/"
+"Ekspor ke berkas .TXF"
 
 #: gnucash/report/reports/locale-specific/us/taxtxf.scm:3328
 #: gnucash/report/reports/locale-specific/us/taxtxf.scm:3337
 msgid "Taxable Income/Deductible Expenses"
-msgstr ""
+msgstr "Penghasilan Kena Pajak/Pengeluaran Dapat Dikurangkan"
 
 #: gnucash/report/reports/locale-specific/us/taxtxf.scm:3329
 msgid ""
 "This report shows transaction detail for your accounts related to Income "
 "Taxes."
 msgstr ""
+"Laporan ini menampilkan detail transaksi untuk akun Anda terkait dengan "
+"Pajak Pendapatan."
 
 #: gnucash/report/reports/locale-specific/us/taxtxf.scm:3338
 msgid "This page shows transaction detail for relevant Income Tax accounts."
 msgstr ""
+"Halaman ini menampilkan detail transaksi untuk akun Pajak Pendapatan yang "
+"relevan."
 
 #: gnucash/report/reports/standard/account-piecharts.scm:35
-#, fuzzy
 msgid "Income Piechart"
-msgstr "laporan laba-rugi"
+msgstr "Bagan Pai Pendapatan"
 
 #: gnucash/report/reports/standard/account-piecharts.scm:36
 msgid "Expense Piechart"
 msgstr "Bagan Pai Pengeluaran"
 
 #: gnucash/report/reports/standard/account-piecharts.scm:37
-#, fuzzy
 msgid "Asset Piechart"
-msgstr "tipe akun: Aset"
+msgstr "Bagan Pai Aset"
 
 #: gnucash/report/reports/standard/account-piecharts.scm:38
-#, fuzzy
 msgid "Security Piechart"
-msgstr "Keamanan"
+msgstr "Bagan Pai Sekuritas"
 
 #: gnucash/report/reports/standard/account-piecharts.scm:39
-#, fuzzy
 msgid "Liability Piechart"
-msgstr "tipe akun: Liabilitas"
+msgstr "Bagan Pai Liabilitas"
 
 #: gnucash/report/reports/standard/account-piecharts.scm:44
 msgid "Shows a piechart with the Income per given time interval"
 msgstr ""
+"Tampilkan bagan pai dengan Pendapatan per interval waktu yang ditentukan"
 
 #: gnucash/report/reports/standard/account-piecharts.scm:46
 msgid "Shows a piechart with the Expenses per given time interval"
 msgstr ""
+"Tampilkan bagan pai dengan Pengeluaran per interval waktu yang ditentukan"
 
 #: gnucash/report/reports/standard/account-piecharts.scm:48
 msgid "Shows a piechart with the Assets balance at a given time"
-msgstr ""
+msgstr "Tampilkan bagan pai dengan saldo Aset pada waktu yang ditentukan"
 
 #: gnucash/report/reports/standard/account-piecharts.scm:50
 msgid "Shows a piechart with distribution of assets over securities"
-msgstr ""
+msgstr "Tampilkan bagan pai dengan distribusi aset atas sekuritas"
 
 #: gnucash/report/reports/standard/account-piecharts.scm:52
 msgid "Shows a piechart with the Liabilities balance at a given time"
-msgstr ""
+msgstr "Tampilkan bagan pai dengan saldo Liabilitas pada waktu yang ditentukan"
 
 #: gnucash/report/reports/standard/account-piecharts.scm:58
 #: gnucash/report/reports/standard/customer-summary.scm:49
 #: gnucash/report/reports/standard/customer-summary.scm:50
-#, fuzzy
 msgid "Income Accounts"
-msgstr "laporan laba-rugi"
+msgstr "Akun Pendapatan"
 
 #: gnucash/report/reports/standard/account-piecharts.scm:59
 #: gnucash/report/reports/standard/customer-summary.scm:57
@@ -24534,40 +24850,35 @@ msgid "Expense Accounts"
 msgstr "Akun Pengeluaran"
 
 #: gnucash/report/reports/standard/account-piecharts.scm:60
-#: gnucash/report/reports/standard/balance-sheet.scm:485
-#: gnucash/report/reports/standard/budget-balance-sheet.scm:664
+#: gnucash/report/reports/standard/balance-sheet.scm:486
+#: gnucash/report/reports/standard/budget-balance-sheet.scm:665
 #: gnucash/report/reports/standard/net-charts.scm:350
 #: gnucash/report/reports/standard/net-charts.scm:421
-#: gnucash/report/report-utilities.scm:105
-#, fuzzy
+#: gnucash/report/report-utilities.scm:117
 msgid "Assets"
-msgstr "tipe akun: Aset & Liabilitas"
+msgstr "Aset"
 
 #: gnucash/report/reports/standard/account-piecharts.scm:62
-#: gnucash/report/reports/standard/balance-sheet.scm:386
-#: gnucash/report/reports/standard/budget-balance-sheet.scm:694
+#: gnucash/report/reports/standard/balance-sheet.scm:387
+#: gnucash/report/reports/standard/budget-balance-sheet.scm:695
 #: gnucash/report/reports/standard/net-charts.scm:371
 #: gnucash/report/reports/standard/net-charts.scm:421
-#: gnucash/report/report-utilities.scm:106
-#, fuzzy
+#: gnucash/report/report-utilities.scm:118
 msgid "Liabilities"
-msgstr "tipe akun: Aset & Liabilitas"
+msgstr "Liabilitas"
 
 #: gnucash/report/reports/standard/account-piecharts.scm:72
-#, fuzzy
 msgid "Show long names"
-msgstr "Lama"
+msgstr "Tampilkan nama panjang"
 
 #: gnucash/report/reports/standard/account-piecharts.scm:74
-#, fuzzy
 msgid "Show Percents"
-msgstr "Tampilkan:"
+msgstr "Tampilkan Persen"
 
 #: gnucash/report/reports/standard/account-piecharts.scm:80
 #: gnucash/report/reports/standard/category-barchart.scm:89
-#, fuzzy
 msgid "Show Average"
-msgstr "Rata-rata:"
+msgstr "Tampilkan Rata-rata"
 
 #: gnucash/report/reports/standard/account-piecharts.scm:81
 #: gnucash/report/reports/standard/category-barchart.scm:90
@@ -24575,82 +24886,76 @@ msgid ""
 "Select whether the amounts should be shown over the full time period or "
 "rather as the average e.g. per month."
 msgstr ""
+"Pilih apakah jumlahnya akan ditampilkan selama periode waktu penuh atau "
+"sebagai rata-rata, misal per bulan."
 
 #: gnucash/report/reports/standard/account-piecharts.scm:117
 #: gnucash/report/reports/standard/category-barchart.scm:120
 msgid "No Averaging"
-msgstr ""
+msgstr "Tak Ada Rata-rata"
 
 #: gnucash/report/reports/standard/account-piecharts.scm:118
 #: gnucash/report/reports/standard/category-barchart.scm:121
 msgid "Just show the amounts, without any averaging."
-msgstr ""
+msgstr "Hanya tampilkan jumlah, tanpa rata-rata apapun."
 
 #: gnucash/report/reports/standard/account-piecharts.scm:121
 msgid "Show the average yearly amount during the reporting period."
-msgstr ""
+msgstr "Tampilkan jumlah rata-rata tahunan selama periode pelaporan."
 
 #: gnucash/report/reports/standard/account-piecharts.scm:124
 #: gnucash/report/reports/standard/category-barchart.scm:124
 msgid "Show the average monthly amount during the reporting period."
-msgstr ""
+msgstr "Tampilkan jumlah rata-rata bulanan selama periode pelaporan."
 
 #: gnucash/report/reports/standard/account-piecharts.scm:127
 #: gnucash/report/reports/standard/category-barchart.scm:127
 msgid "Show the average weekly amount during the reporting period."
-msgstr ""
+msgstr "Tampilkan jumlah rata-rata mingguan selama periode pelaporan."
 
 #: gnucash/report/reports/standard/account-piecharts.scm:159
 #: gnucash/report/reports/standard/category-barchart.scm:157
-#, fuzzy
 msgid "Show the full account name in legend?"
-msgstr "Tampilkan Nama Halaman lengkap"
+msgstr "Tampilkan nama lengkap akun di legenda?"
 
 #: gnucash/report/reports/standard/account-piecharts.scm:160
-#, fuzzy
 msgid "Show the full security name in the legend?"
-msgstr "Tampilkan Nama Halaman lengkap"
+msgstr "Tampilkan nama lengkap sekuritas di legenda?"
 
 #: gnucash/report/reports/standard/account-piecharts.scm:172
-#, fuzzy
 msgid "Show the percentage in legend?"
-msgstr "Persentase [%]"
+msgstr "Tampilkan persentase di legenda?"
 
 #: gnucash/report/reports/standard/account-piecharts.scm:178
-#, fuzzy
 msgid "Maximum number of slices in pie."
-msgstr "Cacah maksimum karakter bagi entri ini. Nol bila tanpa maksimum"
+msgstr "Jumlah irisan maksimum di pai."
 
 #: gnucash/report/reports/standard/account-piecharts.scm:413
-#, fuzzy
 msgid "Yearly Average"
-msgstr "Tahunan"
+msgstr "Rata-rata Tahunan"
 
 #: gnucash/report/reports/standard/account-piecharts.scm:414
 #: gnucash/report/reports/standard/category-barchart.scm:306
-#, fuzzy
 msgid "Monthly Average"
-msgstr "Bulanan"
+msgstr "Rata-rata Bulanan"
 
 #: gnucash/report/reports/standard/account-piecharts.scm:415
 #: gnucash/report/reports/standard/category-barchart.scm:307
-#, fuzzy
 msgid "Weekly Average"
-msgstr "rata-rata"
+msgstr "Rata-rata Mingguan"
 
 #: gnucash/report/reports/standard/account-piecharts.scm:549
-#, fuzzy, scheme-format
+#, scheme-format
 msgid "Balance at ~a"
-msgstr "seimbangkan"
+msgstr "Saldo pada ~a"
 
 #: gnucash/report/reports/standard/account-summary.scm:69
-#, fuzzy
 msgid "Account Summary"
-msgstr "Ringkasan Akun"
+msgstr "Ikhtisar Akun"
 
 #: gnucash/report/reports/standard/account-summary.scm:70
 msgid "Future Scheduled Transactions Summary"
-msgstr ""
+msgstr "Ikhtisar Transaksi Terjadwal Berikutnya"
 
 #: gnucash/report/reports/standard/account-summary.scm:72
 #: gnucash/report/reports/standard/balance-sheet.scm:76
@@ -24719,31 +25024,30 @@ msgid "Maximum number of levels in the account tree displayed."
 msgstr "Jumlah maksimum tingkat pada pohon akun yang ditampilkan."
 
 #: gnucash/report/reports/standard/account-summary.scm:91
-#, fuzzy
 msgid "Depth limit behavior"
-msgstr "Perilaku"
+msgstr "Perilaku batas kedalaman"
 
 #: gnucash/report/reports/standard/account-summary.scm:93
 msgid "How to treat accounts which exceed the specified depth limit (if any)."
 msgstr ""
+"Bagaimana memperlakukan akun yang melebihi batas kedalaman tertentu (jika "
+"ada)."
 
 #: gnucash/report/reports/standard/account-summary.scm:95
 #: gnucash/report/reports/standard/balance-sheet.scm:97
 #: gnucash/report/reports/standard/budget-balance-sheet.scm:62
 #: gnucash/report/reports/standard/budget-income-statement.scm:84
 #: gnucash/report/reports/standard/income-statement.scm:72
-#, fuzzy
 msgid "Parent account balances"
-msgstr "akun: akun induk"
+msgstr "Saldo akun induk"
 
 #: gnucash/report/reports/standard/account-summary.scm:96
 #: gnucash/report/reports/standard/balance-sheet.scm:98
 #: gnucash/report/reports/standard/budget-balance-sheet.scm:63
 #: gnucash/report/reports/standard/budget-income-statement.scm:85
 #: gnucash/report/reports/standard/income-statement.scm:73
-#, fuzzy
 msgid "Parent account subtotals"
-msgstr "akun: akun induk"
+msgstr "Subtotal akun induk"
 
 #: gnucash/report/reports/standard/account-summary.scm:98
 #: gnucash/report/reports/standard/balance-sheet.scm:100
@@ -24753,7 +25057,7 @@ msgstr "akun: akun induk"
 #: gnucash/report/reports/standard/income-statement.scm:75
 #: gnucash/report/reports/standard/trial-balance.scm:121
 msgid "Include accounts with zero total balances"
-msgstr "Termasuk akun dengan saldo total nol"
+msgstr "Sertakan akun dengan saldo total nol"
 
 #: gnucash/report/reports/standard/account-summary.scm:100
 #: gnucash/report/reports/standard/balance-sheet.scm:102
@@ -24763,7 +25067,7 @@ msgstr "Termasuk akun dengan saldo total nol"
 #: gnucash/report/reports/standard/income-statement.scm:77
 #: gnucash/report/reports/standard/trial-balance.scm:123
 msgid "Include accounts with zero total (recursive) balances in this report."
-msgstr ""
+msgstr "Sertakan akun dengan total saldo (rekursif) nol di laporan ini."
 
 #: gnucash/report/reports/standard/account-summary.scm:101
 #: gnucash/report/reports/standard/balance-sheet.scm:103
@@ -24771,8 +25075,9 @@ msgstr ""
 #: gnucash/report/reports/standard/budget-balance-sheet.scm:68
 #: gnucash/report/reports/standard/budget-income-statement.scm:90
 #: gnucash/report/reports/standard/income-statement.scm:78
+#, fuzzy
 msgid "Omit zero balance figures"
-msgstr ""
+msgstr "Abaikan angka neraca nol"
 
 #: gnucash/report/reports/standard/account-summary.scm:103
 #: gnucash/report/reports/standard/balance-sheet.scm:105
@@ -24800,8 +25105,9 @@ msgstr "Tampilkan aturan gaya-akuntansi"
 #: gnucash/report/reports/standard/budget-income-statement.scm:96
 #: gnucash/report/reports/standard/equity-statement.scm:74
 #: gnucash/report/reports/standard/income-statement.scm:84
+#, fuzzy
 msgid "Use rules beneath columns of added numbers like accountants do."
-msgstr ""
+msgstr "Gunakan aturan di bawah kolom nomor tambahan seperti akuntan lakukan."
 
 #: gnucash/report/reports/standard/account-summary.scm:109
 #: gnucash/report/reports/standard/balance-sheet.scm:111
@@ -24828,7 +25134,7 @@ msgstr ""
 
 #: gnucash/report/reports/standard/account-summary.scm:114
 msgid "Show an account's balance."
-msgstr ""
+msgstr "Tampilkan saldo akun."
 
 #: gnucash/report/reports/standard/account-summary.scm:116
 msgid "Show an account's account code."
@@ -24898,7 +25204,7 @@ msgstr "Tampilkan jumlah mata uang asing pada suatu akun."
 #: gnucash/report/reports/standard/income-statement.scm:114
 #: gnucash/report/reports/standard/trial-balance.scm:134
 msgid "Show Exchange Rates"
-msgstr "Tampilkan Kurs"
+msgstr "Tampilkan Nilai Tukar"
 
 #: gnucash/report/reports/standard/account-summary.scm:131
 #: gnucash/report/reports/standard/balance-sheet.scm:143
@@ -24910,18 +25216,19 @@ msgstr "Tampilkan Kurs"
 #: gnucash/report/reports/standard/income-statement.scm:115
 #: gnucash/report/reports/standard/trial-balance.scm:135
 msgid "Show the exchange rates used."
-msgstr "Tampilkan kurs yang digunakan."
+msgstr "Tampilkan nilai tukar yang digunakan."
 
 #: gnucash/report/reports/standard/account-summary.scm:190
-#, fuzzy
 msgid "Recursive Balance"
-msgstr "seimbangkan"
+msgstr "Saldo Rekursif"
 
 #: gnucash/report/reports/standard/account-summary.scm:191
 msgid ""
 "Show the total balance, including balances in subaccounts, of any account at "
 "the depth limit."
 msgstr ""
+"Tampilkan saldo total, termasuk saldo di sub-akun, untuk tiap akun pada "
+"batas kedalaman."
 
 #: gnucash/report/reports/standard/account-summary.scm:193
 msgid "Raise Accounts"
@@ -24930,54 +25237,51 @@ msgstr "Naikkan Akun"
 #: gnucash/report/reports/standard/account-summary.scm:194
 msgid "Shows accounts deeper than the depth limit at the depth limit."
 msgstr ""
+"Tampilkan akun lebih dalam daripada batas kedalaman pada batas kedalaman."
 
 #: gnucash/report/reports/standard/account-summary.scm:196
-#, fuzzy
 msgid "Omit Accounts"
-msgstr "_Akun"
+msgstr "Abaikan Akun"
 
 #: gnucash/report/reports/standard/account-summary.scm:197
 msgid "Disregard completely any accounts deeper than the depth limit."
 msgstr ""
+"Abaikan sepenuhnya setiap akun yang lebih dalam daripada batas kedalaman."
 
 #. Translators: This is part of the report title, which is capitalzed in English, but not all other languages
-#: gnucash/report/reports/standard/account-summary.scm:325
-#: gnucash/report/reports/standard/equity-statement.scm:302
+#: gnucash/report/reports/standard/account-summary.scm:326
+#: gnucash/report/reports/standard/equity-statement.scm:304
 #: gnucash/report/reports/standard/income-statement.scm:407
-#: gnucash/report/reports/standard/trial-balance.scm:412
-#, fuzzy, scheme-format
+#: gnucash/report/reports/standard/trial-balance.scm:413
+#, scheme-format
 msgid "For Period Covering ~a to ~a"
-msgstr "_Periode:"
+msgstr "Untuk Periode ~a ke ~a"
 
-#: gnucash/report/reports/standard/account-summary.scm:409
+#: gnucash/report/reports/standard/account-summary.scm:410
 msgid "Account title"
 msgstr "Judul akun"
 
 #: gnucash/report/reports/standard/advanced-portfolio.scm:37
-#, fuzzy
 msgid "Advanced Portfolio"
-msgstr "portofolio"
+msgstr "Portofolio Lanjutan"
 
 #: gnucash/report/reports/standard/advanced-portfolio.scm:40
 #: gnucash/report/reports/standard/portfolio.scm:36
-#, fuzzy
 msgid "Share decimal places"
-msgstr "Tempat"
+msgstr "Tempat desimal saham"
 
 #: gnucash/report/reports/standard/advanced-portfolio.scm:41
 #: gnucash/report/reports/standard/portfolio.scm:37
-#, fuzzy
 msgid "Include accounts with no shares"
-msgstr "Include"
+msgstr "Sertakan akun yang tak memiliki saham"
 
 #: gnucash/report/reports/standard/advanced-portfolio.scm:42
 msgid "Show ticker symbols"
 msgstr "Tampilkan simbol"
 
 #: gnucash/report/reports/standard/advanced-portfolio.scm:43
-#, fuzzy
 msgid "Show listings"
-msgstr "Tampilkan:"
+msgstr "Tampilkan daftar"
 
 #: gnucash/report/reports/standard/advanced-portfolio.scm:44
 msgid "Show prices"
@@ -24988,27 +25292,24 @@ msgid "Show number of shares"
 msgstr "Tampilkan jumlah saham"
 
 #: gnucash/report/reports/standard/advanced-portfolio.scm:46
-#, fuzzy
 msgid "Basis calculation method"
-msgstr "kalkulasi;aritmetik;ilmiah;keuangan;"
+msgstr "Metode perhitungan basis"
 
 #: gnucash/report/reports/standard/advanced-portfolio.scm:47
 msgid "Set preference for price list data"
-msgstr ""
+msgstr "Setel preferensi untuk data daftar harga"
 
 #: gnucash/report/reports/standard/advanced-portfolio.scm:48
-#, fuzzy
 msgid "How to report brokerage fees"
-msgstr "Bagaimana dan ke mana melaporkan masalah."
+msgstr "Cara melaporkan biaya broker"
 
 #: gnucash/report/reports/standard/advanced-portfolio.scm:92
-#, fuzzy
 msgid "Basis calculation method."
-msgstr "kalkulasi;aritmetik;ilmiah;keuangan;"
+msgstr "Metode perhitungan basis."
 
 #: gnucash/report/reports/standard/advanced-portfolio.scm:95
 msgid "Use average cost of all shares for basis."
-msgstr ""
+msgstr "Gunakan biaya rata-rata dari seluruh saham sebagai basis."
 
 #: gnucash/report/reports/standard/advanced-portfolio.scm:97
 msgid "FIFO"
@@ -25016,7 +25317,7 @@ msgstr "FIFO"
 
 #: gnucash/report/reports/standard/advanced-portfolio.scm:98
 msgid "Use first-in first-out method for basis."
-msgstr ""
+msgstr "Gunakan metode pertama-masuk pertama-keluar sebagai basis."
 
 #: gnucash/report/reports/standard/advanced-portfolio.scm:100
 msgid "LIFO"
@@ -25024,33 +25325,35 @@ msgstr "LIFO"
 
 #: gnucash/report/reports/standard/advanced-portfolio.scm:101
 msgid "Use last-in first-out method for basis."
-msgstr ""
+msgstr "Gunakan metode terakhir-masuk pertama-keluar sebagai basis."
 
 #: gnucash/report/reports/standard/advanced-portfolio.scm:107
+#, fuzzy
 msgid "Prefer use of price editor pricing over transactions, where applicable."
 msgstr ""
+"Lebih memilih penggunaan harga redaksi harga atas transaksi, mana yang "
+"berlaku."
 
 #: gnucash/report/reports/standard/advanced-portfolio.scm:113
 msgid "How to report commissions and other brokerage fees."
-msgstr ""
+msgstr "Cara melaporkan komisi dan biaya broker lainnya."
 
 #: gnucash/report/reports/standard/advanced-portfolio.scm:115
-#, fuzzy
 msgid "Include in basis"
-msgstr "Include="
+msgstr "Sertakan dalam basis"
 
 #: gnucash/report/reports/standard/advanced-portfolio.scm:116
 msgid "Include brokerage fees in the basis for the asset."
-msgstr ""
+msgstr "Termasuk biaya broker pada basis untuk aset."
 
 #: gnucash/report/reports/standard/advanced-portfolio.scm:118
-#, fuzzy
 msgid "Include in gain"
-msgstr "keuntungan"
+msgstr "Sertakan pada keuntungan"
 
 #: gnucash/report/reports/standard/advanced-portfolio.scm:119
 msgid "Include brokerage fees in the gain and loss but not in the basis."
 msgstr ""
+"Sertakan biaya broker pada keuntungan dan kerugian tetapi tidak di basis."
 
 #: gnucash/report/reports/standard/advanced-portfolio.scm:121
 msgid "Ignore"
@@ -25058,67 +25361,59 @@ msgstr "Abaikan"
 
 #: gnucash/report/reports/standard/advanced-portfolio.scm:122
 msgid "Ignore brokerage fees entirely."
-msgstr ""
+msgstr "Abaikan biaya broker sepenuhnya."
 
 #: gnucash/report/reports/standard/advanced-portfolio.scm:129
 msgid "Display the ticker symbols."
 msgstr "Tampilkan simbol."
 
 #: gnucash/report/reports/standard/advanced-portfolio.scm:136
-#, fuzzy
 msgid "Display exchange listings."
-msgstr "Tukar dengan Bingkai"
+msgstr "Tampilkan daftar tukar."
 
 #: gnucash/report/reports/standard/advanced-portfolio.scm:143
-#, fuzzy
 msgid "Display numbers of shares in accounts."
-msgstr "Format bilangan untuk ditampilkan"
+msgstr "Tampilkan jumlah saham di dalam akun."
 
 #: gnucash/report/reports/standard/advanced-portfolio.scm:149
 #: gnucash/report/reports/standard/portfolio.scm:63
 msgid "The number of decimal places to use for share numbers."
-msgstr ""
+msgstr "Jumlah tempat desimal yang digunakan untuk nilai saham."
 
 #: gnucash/report/reports/standard/advanced-portfolio.scm:156
-#, fuzzy
 msgid "Display share prices."
-msgstr "Tampilkan pada…"
+msgstr "Tampilkan harga saham."
 
 #: gnucash/report/reports/standard/advanced-portfolio.scm:164
 #: gnucash/report/reports/standard/portfolio.scm:71
-#, fuzzy
 msgid "Stock Accounts to report on."
-msgstr "Lapo_rkan"
+msgstr "Akun Saham untuk dilaporkan."
 
 #: gnucash/report/reports/standard/advanced-portfolio.scm:176
 #: gnucash/report/reports/standard/portfolio.scm:83
 msgid "Include accounts that have a zero share balances."
-msgstr ""
+msgstr "Sertakan akun yang memiliki saldo saham nol."
 
 #: gnucash/report/reports/standard/advanced-portfolio.scm:1067
 #: gnucash/report/reports/standard/portfolio.scm:255
-#, fuzzy
 msgid "Listing"
-msgstr "Gunakan format daftar panjang"
+msgstr "Daftar"
 
 #: gnucash/report/reports/standard/advanced-portfolio.scm:1079
-#, fuzzy
 msgid "Basis"
-msgstr ""
-"Nilai tercatat per <link xref=\"map\">peta</link> dasar. Anda dapat melihat "
-"nilai tertinggi untuk peta tertentu dengan memilih dari menu drop-down."
+msgstr "Basis"
 
 #: gnucash/report/reports/standard/advanced-portfolio.scm:1081
 #: gnucash/report/reports/standard/cashflow-barchart.scm:297
 #: gnucash/report/reports/standard/cashflow-barchart.scm:332
-#: gnucash/report/reports/standard/cash-flow.scm:277
+#: gnucash/report/reports/standard/cash-flow.scm:279
 msgid "Money In"
 msgstr "Uang Masuk"
 
 #: gnucash/report/reports/standard/advanced-portfolio.scm:1082
 #: gnucash/report/reports/standard/cashflow-barchart.scm:303
 #: gnucash/report/reports/standard/cashflow-barchart.scm:333
-#: gnucash/report/reports/standard/cash-flow.scm:298
+#: gnucash/report/reports/standard/cash-flow.scm:300
 msgid "Money Out"
 msgstr "Uang Keluar"
 
@@ -25135,9 +25430,8 @@ msgid "Total Gain"
 msgstr "Keuntungan Total"
 
 #: gnucash/report/reports/standard/advanced-portfolio.scm:1086
-#, fuzzy
 msgid "Rate of Gain"
-msgstr "keuntungan"
+msgstr "Rata-rata Keuntungan"
 
 #: gnucash/report/reports/standard/advanced-portfolio.scm:1090
 msgid "Brokerage Fees"
@@ -25156,20 +25450,23 @@ msgid ""
 "* this commodity data was built using transaction pricing instead of the "
 "price list."
 msgstr ""
+"* data komoditas ini dibangun menggunakan harga transaksi, bukannya daftar "
+"harga."
 
 #: gnucash/report/reports/standard/advanced-portfolio.scm:1192
 msgid ""
 "If you are in a multi-currency situation, the exchanges may not be correct."
 msgstr ""
+"Jika Anda berada dalam situasi multi-mata uang, nilai tukarnya mungkin tidak "
+"benar."
 
 #: gnucash/report/reports/standard/advanced-portfolio.scm:1197
 msgid "** this commodity has no price and a price of 1 has been used."
-msgstr ""
+msgstr "** komoditas ini tidak memiliki harga dan digunakan harga 1."
 
 #: gnucash/report/reports/standard/balance-forecast.scm:35
-#, fuzzy
 msgid "Balance Forecast"
-msgstr "Prakiraan"
+msgstr "Prakiraan Saldo"
 
 #: gnucash/report/reports/standard/balance-forecast.scm:38
 #: gnucash/report/reports/standard/budget-barchart.scm:134
@@ -25179,90 +25476,83 @@ msgstr "Prakiraan"
 #: gnucash/report/reports/standard/income-gst-statement.scm:141
 #: gnucash/report/reports/standard/trial-balance.scm:78
 #: gnucash/report/trep-engine.scm:661
-#, fuzzy
 msgid "Report on these accounts."
-msgstr "Akun"
+msgstr "Laporkan pada akun tersebut."
 
 #: gnucash/report/reports/standard/balance-forecast.scm:49
 #: gnucash/report/reports/standard/net-charts.scm:59
-#, fuzzy
 msgid "Data markers?"
-msgstr "Sertakan rute dan penanda"
+msgstr "Penanda data?"
 
 #: gnucash/report/reports/standard/balance-forecast.scm:50
 #: gnucash/report/reports/standard/net-charts.scm:165
 msgid "Display a mark for each data point."
-msgstr ""
+msgstr "Tampilkan penanda untuk tiap poin data."
 
 #: gnucash/report/reports/standard/balance-forecast.scm:52
 #: gnucash/report/reports/standard/balance-forecast.scm:53
-#, fuzzy
 msgid "Show reserve line"
-msgstr "Tampilkan nomor baris"
+msgstr "Tampilkan baris cadangan"
 
 #: gnucash/report/reports/standard/balance-forecast.scm:55
-#, fuzzy
 msgid "Reserve amount"
-msgstr "jumlah"
+msgstr "Jumlah cadangan"
 
 #: gnucash/report/reports/standard/balance-forecast.scm:56
 msgid "The reserve amount is set to a minimum balance desired"
-msgstr ""
+msgstr "Jumlah cadangan diatur ke saldo minimum yang diinginkan"
 
 #: gnucash/report/reports/standard/balance-forecast.scm:59
 #: gnucash/report/reports/standard/balance-forecast.scm:60
-#, fuzzy
 msgid "Show target line"
-msgstr "Tampilkan nomor baris"
+msgstr "Tampilkan baris target"
 
 #: gnucash/report/reports/standard/balance-forecast.scm:62
-#, fuzzy
 msgid "Target amount above reserve"
-msgstr "Cacah placeholder tak mencukupi pada wadah target"
+msgstr "Jumlah target di atas cadangan"
 
 #: gnucash/report/reports/standard/balance-forecast.scm:63
 msgid ""
 "The target is used to plan for a future large purchase, which will be added "
 "as a line above the reserve amount."
 msgstr ""
+"Target digunakan untuk merencanakan pembelian besar di masa depan, yang akan "
+"ditambahkan sebagai baris di atas jumlah cadangan."
 
 #: gnucash/report/reports/standard/balance-forecast.scm:67
-#, fuzzy
 msgid "Show future minimum"
-msgstr "di masa depan"
+msgstr "Tampilkan minimum masa depan"
 
 #: gnucash/report/reports/standard/balance-forecast.scm:68
 msgid ""
 "The future minimum will add, for each date point, a projected minimum "
 "balance including scheduled transactions."
 msgstr ""
+"Minimum masa depan akan menambah, untuk setiap titik tanggal, saldo minimum "
+"yang diproyeksikan termasuk transaksi dijadwalkan."
 
 #: gnucash/report/reports/standard/balance-forecast.scm:256
 msgid "Target"
 msgstr "Target"
 
 #: gnucash/report/reports/standard/balance-forecast.scm:266
-#, fuzzy
 msgid "Reserve"
-msgstr "reserve"
+msgstr "Cadangan"
 
 #: gnucash/report/reports/standard/balance-sheet.scm:72
-#: gnucash/report/reports/standard/trial-balance.scm:573
-#, fuzzy
+#: gnucash/report/reports/standard/trial-balance.scm:574
 msgid "Balance Sheet"
-msgstr "neraca"
+msgstr "Neraca Keuangan"
 
 #: gnucash/report/reports/standard/balance-sheet.scm:82
 #: gnucash/report/reports/standard/balsheet-eg.scm:150
-#, fuzzy
 msgid "Balance Sheet Date"
-msgstr "neraca"
+msgstr "Tanggal Neraca Keuangan"
 
 #: gnucash/report/reports/standard/balance-sheet.scm:83
 #: gnucash/report/reports/standard/budget-balance-sheet.scm:48
-#, fuzzy
 msgid "Single column Balance Sheet"
-msgstr "neraca"
+msgstr "Neraca Keuangan Satu Kolom"
 
 #: gnucash/report/reports/standard/balance-sheet.scm:85
 #: gnucash/report/reports/standard/budget-balance-sheet.scm:50
@@ -25270,6 +25560,8 @@ msgid ""
 "Print liability/equity section in the same column under the assets section "
 "as opposed to a second column right of the assets section."
 msgstr ""
+"Cetak bagian liabilitas/ekuitas dalam kolom yang sama di bawah bagian aset, "
+"bukannya pada kolom kedua di sebelah kanan bagian aset."
 
 #: gnucash/report/reports/standard/balance-sheet.scm:93
 #: gnucash/report/reports/standard/balsheet-eg.scm:157
@@ -25278,7 +25570,7 @@ msgstr ""
 #: gnucash/report/reports/standard/budget.scm:90
 #: gnucash/report/reports/standard/income-statement.scm:68
 msgid "Flatten list to depth limit"
-msgstr ""
+msgstr "Ratakan daftar ke batas kedalaman"
 
 #: gnucash/report/reports/standard/balance-sheet.scm:95
 #: gnucash/report/reports/standard/balsheet-eg.scm:159
@@ -25287,161 +25579,148 @@ msgstr ""
 #: gnucash/report/reports/standard/budget.scm:92
 #: gnucash/report/reports/standard/income-statement.scm:70
 msgid "Displays accounts which exceed the depth limit at the depth limit."
-msgstr ""
+msgstr "Tampilkan akun yang melebihi batas kedalaman pada batas kedalaman."
 
 #: gnucash/report/reports/standard/balance-sheet.scm:114
 #: gnucash/report/reports/standard/budget-balance-sheet.scm:79
-#, fuzzy
 msgid "Label the assets section"
-msgstr "label"
+msgstr "Beri label bagian aset"
 
 #: gnucash/report/reports/standard/balance-sheet.scm:116
 #: gnucash/report/reports/standard/budget-balance-sheet.scm:81
 msgid "Whether or not to include a label for the assets section."
-msgstr ""
+msgstr "Apakah menyertakan label untuk bagian aset."
 
 #: gnucash/report/reports/standard/balance-sheet.scm:117
 #: gnucash/report/reports/standard/budget-balance-sheet.scm:82
-#, fuzzy
 msgid "Include assets total"
-msgstr "aset bersih"
+msgstr "Sertakan total aset"
 
 #: gnucash/report/reports/standard/balance-sheet.scm:119
 #: gnucash/report/reports/standard/budget-balance-sheet.scm:84
 msgid "Whether or not to include a line indicating total assets."
-msgstr ""
+msgstr "Apakah menyertakan sebuah baris yang mengindikasikan total aset."
 
 #: gnucash/report/reports/standard/balance-sheet.scm:120
-#, fuzzy
 msgid "Use standard US layout"
-msgstr "Pakai tata letak horisontal"
+msgstr "Gunakan tata letak standar US"
 
 #: gnucash/report/reports/standard/balance-sheet.scm:122
 msgid ""
 "Report section order is assets/liabilities/equity (rather than assets/equity/"
 "liabilities)."
 msgstr ""
+"Urutan bagian laporan adalah aset/liabilitas/ekuitas (alih-alih aset/ekuitas/"
+"liabilitas)."
 
 #: gnucash/report/reports/standard/balance-sheet.scm:123
 #: gnucash/report/reports/standard/budget-balance-sheet.scm:85
-#, fuzzy
 msgid "Label the liabilities section"
-msgstr "tipe akun: Aset & Liabilitas"
+msgstr "Beri label bagian liabilitas"
 
 #: gnucash/report/reports/standard/balance-sheet.scm:125
 #: gnucash/report/reports/standard/budget-balance-sheet.scm:87
 msgid "Whether or not to include a label for the liabilities section."
-msgstr ""
+msgstr "Apakah menyertakan sebuah label untuk bagian liabilitas."
 
 #: gnucash/report/reports/standard/balance-sheet.scm:126
 #: gnucash/report/reports/standard/budget-balance-sheet.scm:88
-#, fuzzy
 msgid "Include liabilities total"
-msgstr "total"
+msgstr "Sertakan total liabilitas"
 
 #: gnucash/report/reports/standard/balance-sheet.scm:128
 #: gnucash/report/reports/standard/budget-balance-sheet.scm:90
 msgid "Whether or not to include a line indicating total liabilities."
-msgstr ""
+msgstr "Apakah menyertakan sebuah baris yang mengindikasikan total liabilitas."
 
 #: gnucash/report/reports/standard/balance-sheet.scm:129
 #: gnucash/report/reports/standard/budget-balance-sheet.scm:91
-#, fuzzy
 msgid "Label the equity section"
-msgstr "ekuitas"
+msgstr "Beri label bagian ekuitas"
 
 #: gnucash/report/reports/standard/balance-sheet.scm:131
 #: gnucash/report/reports/standard/budget-balance-sheet.scm:93
 msgid "Whether or not to include a label for the equity section."
-msgstr ""
+msgstr "Apakah menyertakan sebuah label untuk bagian ekuitas."
 
 #: gnucash/report/reports/standard/balance-sheet.scm:132
 #: gnucash/report/reports/standard/budget-balance-sheet.scm:94
-#, fuzzy
 msgid "Include equity total"
-msgstr "ekuitas"
+msgstr "Sertakan total ekuitas"
 
 #: gnucash/report/reports/standard/balance-sheet.scm:134
 #: gnucash/report/reports/standard/budget-balance-sheet.scm:96
 msgid "Whether or not to include a line indicating total equity."
-msgstr ""
+msgstr "Apakah menyertakan sebuah baris yang mengindikasikan total ekuitas."
 
-#: gnucash/report/reports/standard/balance-sheet.scm:390
-#: gnucash/report/reports/standard/budget-balance-sheet.scm:716
-#, fuzzy
+#: gnucash/report/reports/standard/balance-sheet.scm:391
+#: gnucash/report/reports/standard/budget-balance-sheet.scm:717
 msgid "Total Liabilities"
-msgstr "liabilitas/ekuitas"
+msgstr "Total Liabilitas"
 
-#: gnucash/report/reports/standard/balance-sheet.scm:488
-#: gnucash/report/reports/standard/budget-balance-sheet.scm:685
-#, fuzzy
+#: gnucash/report/reports/standard/balance-sheet.scm:489
+#: gnucash/report/reports/standard/budget-balance-sheet.scm:686
 msgid "Total Assets"
-msgstr "aset bersih"
+msgstr "Total Aset"
 
-#: gnucash/report/reports/standard/balance-sheet.scm:510
+#: gnucash/report/reports/standard/balance-sheet.scm:511
 #: gnucash/report/reports/support/balsheet-eg.eguile.scm:188
-#, fuzzy
 msgid "Retained Losses"
-msgstr "Pendapatan Ditahan"
+msgstr "Kerugian Ditahan"
 
-#: gnucash/report/reports/standard/balance-sheet.scm:514
-#, fuzzy
+#: gnucash/report/reports/standard/balance-sheet.scm:515
 msgid "Trading Gains"
-msgstr "laba modal"
+msgstr "Keuntungan Perdagangan"
 
-#: gnucash/report/reports/standard/balance-sheet.scm:515
-#, fuzzy
+#: gnucash/report/reports/standard/balance-sheet.scm:516
 msgid "Trading Losses"
-msgstr "tipe akun: perdagangan"
+msgstr "Kerugian Perdagangan"
 
-#: gnucash/report/reports/standard/balance-sheet.scm:519
+#: gnucash/report/reports/standard/balance-sheet.scm:520
 #: gnucash/report/reports/standard/balsheet-pnl.scm:1103
 #: gnucash/report/reports/standard/balsheet-pnl.scm:1118
-#: gnucash/report/reports/standard/budget-balance-sheet.scm:758
-#: gnucash/report/reports/standard/equity-statement.scm:472
-#: gnucash/report/reports/standard/trial-balance.scm:734
-#, fuzzy
-msgid "Unrealized Gains"
-msgstr "laba modal"
-
-#: gnucash/report/reports/standard/balance-sheet.scm:520
 #: gnucash/report/reports/standard/budget-balance-sheet.scm:759
-#: gnucash/report/reports/standard/equity-statement.scm:473
+#: gnucash/report/reports/standard/equity-statement.scm:474
 #: gnucash/report/reports/standard/trial-balance.scm:735
+msgid "Unrealized Gains"
+msgstr "Keuntungan Belum Direalisasikan"
+
+#: gnucash/report/reports/standard/balance-sheet.scm:521
+#: gnucash/report/reports/standard/budget-balance-sheet.scm:760
+#: gnucash/report/reports/standard/equity-statement.scm:475
+#: gnucash/report/reports/standard/trial-balance.scm:736
 msgid "Unrealized Losses"
-msgstr ""
+msgstr "Kerugian Belum Direalisasikan"
 
-#: gnucash/report/reports/standard/balance-sheet.scm:524
-#: gnucash/report/reports/standard/budget-balance-sheet.scm:774
-#, fuzzy
+#: gnucash/report/reports/standard/balance-sheet.scm:525
+#: gnucash/report/reports/standard/budget-balance-sheet.scm:775
 msgid "Total Equity"
-msgstr "ekuitas"
+msgstr "Total Ekuitas"
 
-#: gnucash/report/reports/standard/balance-sheet.scm:534
-#: gnucash/report/reports/standard/budget-balance-sheet.scm:780
-#, fuzzy
+#: gnucash/report/reports/standard/balance-sheet.scm:535
+#: gnucash/report/reports/standard/budget-balance-sheet.scm:781
 msgid "Total Liabilities & Equity"
-msgstr "liabilitas/ekuitas"
+msgstr "Total Liabilitas & Ekuitas"
 
 #: gnucash/report/reports/standard/balsheet-eg.scm:143
-#, fuzzy
 msgid "Balance Sheet (eguile)"
-msgstr "neraca"
+msgstr "Neraca (eguile)"
 
 #: gnucash/report/reports/standard/balsheet-eg.scm:151
-#, fuzzy
 msgid "1- or 2-column report"
-msgstr "Lapo_rkan"
+msgstr "Laporan 1 atau 2 kolom"
 
 #: gnucash/report/reports/standard/balsheet-eg.scm:153
 msgid ""
 "The balance sheet can be displayed with either 1 or 2 columns. 'auto' means "
 "that the layout will be adjusted to fit the width of the page."
 msgstr ""
+"Neraca dapat ditampilkan dengan 1 atau 2 kolom. 'otomatis' berarti bahwa "
+"tata letak akan disesuaikan agar sesuai dengan lebar halaman."
 
 #: gnucash/report/reports/standard/balsheet-eg.scm:161
 msgid "Exclude accounts with zero total balances"
-msgstr ""
+msgstr "Kecualikan akun dengan total saldo nol"
 
 #: gnucash/report/reports/standard/balsheet-eg.scm:163
 msgid ""
@@ -25451,40 +25730,38 @@ msgstr ""
 "Kecualikan akun bukan tingkat-atas dengan saldo nol dan sub-akun tidak-nol."
 
 #: gnucash/report/reports/standard/balsheet-eg.scm:168
-#, fuzzy
 msgid "Negative amount format"
-msgstr "Negatif"
+msgstr "Format jumlah negatif"
 
 #: gnucash/report/reports/standard/balsheet-eg.scm:170
 msgid ""
 "The formatting to use for negative amounts: with a leading sign, or "
 "enclosing brackets."
 msgstr ""
+"Format yang digunakan untuk jumlah negatif: dengan tanda di depan, atau di "
+"dalam tanda kurung."
 
 #: gnucash/report/reports/standard/balsheet-eg.scm:172
-#, fuzzy
 msgid "Font family"
 msgstr "Keluarga fonta"
 
 #: gnucash/report/reports/standard/balsheet-eg.scm:173
 msgid "Font definition in CSS font-family format."
-msgstr ""
+msgstr "Definisi fonta dalam format CSS."
 
 #: gnucash/report/reports/standard/balsheet-eg.scm:174
-#, fuzzy
 msgid "Font size"
 msgstr "Ukuran fonta"
 
 #: gnucash/report/reports/standard/balsheet-eg.scm:175
 msgid "Font size in CSS font-size format (e.g. \"medium\" or \"10pt\")."
-msgstr ""
+msgstr "Ukuran fonta dalam format CSS (misal \"medium\" atau \"10pt\")."
 
 #: gnucash/report/reports/standard/balsheet-eg.scm:176
 #: gnucash/report/reports/standard/receipt.scm:45
 #: gnucash/report/reports/standard/taxinvoice.scm:103
-#, fuzzy
 msgid "Template file"
-msgstr "Berkas templat standar"
+msgstr "Berkas templat"
 
 #: gnucash/report/reports/standard/balsheet-eg.scm:178
 msgid ""
@@ -25492,13 +25769,15 @@ msgid ""
 "in your .gnucash directory, or else in its proper place within the GnuCash "
 "installation directories."
 msgstr ""
+"Nama berkas templat eguile sebagai bagian laporan ini. Berkas ini harus "
+"berada di direktori .gnucash Anda, atau di lokasi lain di dalam direktori "
+"instalasi GnuCash."
 
 #: gnucash/report/reports/standard/balsheet-eg.scm:179
 #: gnucash/report/reports/standard/receipt.scm:46
 #: gnucash/report/reports/standard/taxinvoice.scm:104
-#, fuzzy
 msgid "CSS stylesheet file"
-msgstr "Berkas CSS untuk dipakai"
+msgstr "Berkas lembar gaya CSS"
 
 #: gnucash/report/reports/standard/balsheet-eg.scm:181
 msgid ""
@@ -25506,57 +25785,55 @@ msgid ""
 "this file should be in your .gnucash directory, or else in its proper place "
 "within the GnuCash installation directories."
 msgstr ""
+"Nama berkas lembar gaya CSS untuk digunakan pada laporan ini. Jika "
+"ditentukan, berkas ini harus berada di direktori .gnucash Anda, atau di "
+"lokasi lain di dalam direktori instalasi GnuCash."
 
 #: gnucash/report/reports/standard/balsheet-eg.scm:182
 #: gnucash/report/reports/standard/invoice.scm:342
-#, fuzzy
 msgid "Extra Notes"
-msgstr "Catatan"
+msgstr "Catatan Ekstra"
 
 #: gnucash/report/reports/standard/balsheet-eg.scm:183
 #: gnucash/report/reports/standard/taxinvoice.scm:212
 msgid "Notes added at end of invoice -- may contain HTML markup."
-msgstr ""
+msgstr "Catatan yang ditambahkan di akhir faktur -- bisa berisi markah HTML."
 
 #: gnucash/report/reports/standard/balsheet-eg.scm:227
 msgid "Adjust the layout to fit the width of the screen or page."
-msgstr ""
+msgstr "Atur tata letak supaya sesuai dengan lebar layar atau halaman."
 
 #: gnucash/report/reports/standard/balsheet-eg.scm:229
-#, fuzzy
 msgid "One"
-msgstr "_Satu"
+msgstr "Satu"
 
 #: gnucash/report/reports/standard/balsheet-eg.scm:230
 msgid "Display liabilities and equity below assets."
-msgstr ""
+msgstr "Tampilkan liabilitas dan ekuitas di bawah aset."
 
 #: gnucash/report/reports/standard/balsheet-eg.scm:232
-#, fuzzy
 msgid "Two"
-msgstr "dua"
+msgstr "Dua"
 
 #: gnucash/report/reports/standard/balsheet-eg.scm:233
 msgid "Display assets on the left, liabilities and equity on the right."
-msgstr ""
+msgstr "Tampilkan aset di bagian kiri, liabilitas dan ekuitas di bagian kanan."
 
 #: gnucash/report/reports/standard/balsheet-eg.scm:238
-#, fuzzy
 msgid "Sign"
-msgstr "Tanda Tangan"
+msgstr "Tanda"
 
 #: gnucash/report/reports/standard/balsheet-eg.scm:239
 msgid "Prefix negative amounts with a minus sign, e.g. -$10.00."
-msgstr ""
+msgstr "Tambahkan prefiks jumlah negatif dengan tanda negatif, misal -$10.00."
 
 #: gnucash/report/reports/standard/balsheet-eg.scm:241
-#, fuzzy
 msgid "Brackets"
-msgstr "Tandai kurung pasangan"
+msgstr "Tanda kurung"
 
 #: gnucash/report/reports/standard/balsheet-eg.scm:242
 msgid "Surround negative amounts with brackets, e.g. ($100.00)."
-msgstr ""
+msgstr "Tandai jumlah negatif dengan tanda kurung, misal ($100.00)."
 
 #: gnucash/report/reports/standard/balsheet-eg.scm:260
 msgid ""
@@ -25564,19 +25841,22 @@ msgid ""
 "double-checking them.<br>Change the 'Extra Notes' option to get rid of this "
 "message)"
 msgstr ""
+"(Versi pengembangan -- jangan mengandalkan bilangan-bilangan pada di laporan "
+"ini tanpa memeriksanya kembali.<br>Ubah opsi 'Catatan Ekstra' untuk "
+"menonaktifkan pesan ini)"
 
 #: gnucash/report/reports/standard/balsheet-eg.scm:389
-#: libgnucash/engine/Scrub.c:107
+#: libgnucash/engine/Scrub.c:117
 msgid "Orphan"
-msgstr ""
+msgstr "Terlantar"
 
 #: gnucash/report/reports/standard/balsheet-eg.scm:564
 msgid "Balance Sheet using eguile-gnc"
-msgstr ""
+msgstr "Neraca menggunakan eguile-gnc"
 
 #: gnucash/report/reports/standard/balsheet-eg.scm:565
 msgid "Display a balance sheet (using eguile template)"
-msgstr ""
+msgstr "Tampilkan neraca (menggunakan templat eguile)"
 
 #: gnucash/report/reports/standard/balsheet-pnl.scm:52
 msgid ""
@@ -25585,62 +25865,65 @@ msgid ""
 "without notice. Bug reports are very welcome at\n"
 "https://bugs.gnucash.org/"
 msgstr ""
+"PERINGATAN: Konversi mata uang asing, dan perhitungan keuntungan belum "
+"direalisasikan\n"
+"elum dikonfirmasi kebenarannya. Laporan ini mungkin akan dimodifikasi\n"
+"tanpa pemberitahuan. Laporan kutu sangat kami harapkan di\n"
+"https://bugs.gnucash.org/"
 
 #: gnucash/report/reports/standard/balsheet-pnl.scm:62
-#, fuzzy
 msgid "Period duration"
-msgstr "_Periode:"
+msgstr "Durasi periode"
 
 #: gnucash/report/reports/standard/balsheet-pnl.scm:63
-#, fuzzy
 msgid "Duration between time periods"
-msgstr "_Durasi waktu:"
+msgstr "Durasi antar periode waktu"
 
 #: gnucash/report/reports/standard/balsheet-pnl.scm:65
-#, fuzzy
 msgid "Enable dual columns"
-msgstr "Kolom"
+msgstr "Aktifkan dua kolom"
 
 #: gnucash/report/reports/standard/balsheet-pnl.scm:66
 msgid "Selecting this option will enable double-column reporting."
-msgstr ""
+msgstr "Memilih opsi ini akan mengaktifkan laporan dua-kolom."
 
 #: gnucash/report/reports/standard/balsheet-pnl.scm:69
-#, fuzzy
 msgid "Disable amount indenting"
-msgstr "Nonaktifkan"
+msgstr "Nonaktifkan indentasi jumlah"
 
 #: gnucash/report/reports/standard/balsheet-pnl.scm:70
 msgid ""
 "Selecting this option will disable amount indenting, and condense amounts "
 "into a single column."
 msgstr ""
+"Memilih opsi ini akan menonaktifkan indentasi jumlah, dan meringkas jumlah "
+"menjadi satu kolom."
 
 #: gnucash/report/reports/standard/balsheet-pnl.scm:72
 #: gnucash/report/trep-engine.scm:83
-#, fuzzy
 msgid "Add options summary"
-msgstr "Ringkasan"
+msgstr "Tambahkan opsi ikhtisar"
 
 #: gnucash/report/reports/standard/balsheet-pnl.scm:73
 #: gnucash/report/trep-engine.scm:565
-#, fuzzy
 msgid "Add summary of options."
-msgstr "Ringkasan"
+msgstr "Tambahkan ikhtisar opsi-opsi yang ada."
 
 #: gnucash/report/reports/standard/balsheet-pnl.scm:75
 msgid "Account full name instead of indenting"
-msgstr ""
+msgstr "Nama lengkap akun alih-alih indentasi"
 
 #: gnucash/report/reports/standard/balsheet-pnl.scm:76
 msgid ""
 "Selecting this option enables full account name instead, and disables "
 "indenting account names."
 msgstr ""
+"Memilih opsi ini akan mengaktifkan nama lengkap akun, dan menonaktifkan nama "
+"akun indentasi."
 
 #: gnucash/report/reports/standard/balsheet-pnl.scm:84
 msgid "Parent account amounts include children"
-msgstr ""
+msgstr "Jumlah akun induk menyertakan anak"
 
 #: gnucash/report/reports/standard/balsheet-pnl.scm:85
 msgid ""
@@ -25649,168 +25932,156 @@ msgid ""
 "account. If this option is disabled, subtotals are displayed below parent "
 "and children groups."
 msgstr ""
+"Jika opsi ini aktif, subtotal ditampilkan di dalam jumlah induk, dan jika "
+"induk memiliki jumlahnya sendiri, akan ditampilkan di baris berikutnya "
+"sebagai sebuah akun anak. Jika opsi ini nonaktif, subtotal ditampilkan di "
+"bawah grup induk dan anak."
 
 #: gnucash/report/reports/standard/balsheet-pnl.scm:99
-#, fuzzy
 msgid "Display amounts as hyperlinks"
-msgstr "Tampilkan pada…"
+msgstr "Tampilkan jumlah sebagai tautan"
 
 #: gnucash/report/reports/standard/balsheet-pnl.scm:100
 msgid "Shows each amounts in the table as a hyperlink to a register or report."
 msgstr ""
+"Tampilkan setiap jumlah pada tabel sebagai tautan ke register atau laporan."
 
 #: gnucash/report/reports/standard/balsheet-pnl.scm:103
-#, fuzzy
 msgid "Label sections"
-msgstr "Golden sections"
+msgstr "Label bagian"
 
 #: gnucash/report/reports/standard/balsheet-pnl.scm:104
-#, fuzzy
 msgid "Whether or not to include a label for sections."
-msgstr "Apakah kotak ini mesti menyertakan suatu anak yang dipusatkan."
+msgstr "Apakah menyertakan label untuk suatu bagian."
 
 #: gnucash/report/reports/standard/balsheet-pnl.scm:105
-#, fuzzy
 msgid "Include totals"
-msgstr "Include="
+msgstr "Sertakan total"
 
 #: gnucash/report/reports/standard/balsheet-pnl.scm:106
 msgid "Whether or not to include a line indicating total amounts."
-msgstr ""
+msgstr "Apakah menyertakan sebuah baris yang mengindikasikan jumlah total."
 
 #: gnucash/report/reports/standard/balsheet-pnl.scm:110
-#, fuzzy
 msgid "Enable chart"
-msgstr "Bagan"
+msgstr "Aktifkan bagan"
 
 #: gnucash/report/reports/standard/balsheet-pnl.scm:111
-#, fuzzy
 msgid "Enable link to chart"
-msgstr "Bagan"
+msgstr "Aktifkan tautan ke bagan"
 
 #: gnucash/report/reports/standard/balsheet-pnl.scm:113
 #: gnucash/report/trep-engine.scm:80
-#, fuzzy
 msgid "Common Currency"
-msgstr "mata uang"
+msgstr "Mata Uang Umum"
 
 #: gnucash/report/reports/standard/balsheet-pnl.scm:114
 msgid "Convert all amounts to a single currency."
-msgstr ""
+msgstr "Konversikan semua jumlah ke sebuah mata uang tunggal."
 
 #: gnucash/report/reports/standard/balsheet-pnl.scm:120
 #: gnucash/report/trep-engine.scm:81
-#, fuzzy
 msgid "Show original currency amount"
-msgstr "Tampilkan _nilai tajuk yang asli"
+msgstr "Tampilkan jumlah dengan mata uang asli"
 
 #: gnucash/report/reports/standard/balsheet-pnl.scm:121
 #: gnucash/report/trep-engine.scm:554
 msgid "Also show original currency amounts"
-msgstr ""
+msgstr "Juga tampilkan jumlah dengan mata uang asli"
 
 #: gnucash/report/reports/standard/balsheet-pnl.scm:123
 msgid "If more than 1 period column, include overall period?"
-msgstr ""
+msgstr "Jika lebih dari 1 periode kolom, masukkan periode keseluruhan?"
 
 #: gnucash/report/reports/standard/balsheet-pnl.scm:124
 msgid ""
 "If several profit & loss period columns are shown, also show overall period "
 "profit & loss."
 msgstr ""
+"Jika beberapa kolom periode laba & rugi ditampilkan, juga tampilkan "
+"keseluruhan periode laba & rugi."
 
 #: gnucash/report/reports/standard/balsheet-pnl.scm:238
 #: gnucash/report/trep-engine.scm:574
-#, fuzzy
 msgid "Always"
 msgstr "Selalu"
 
 #: gnucash/report/reports/standard/balsheet-pnl.scm:239
 #: gnucash/report/trep-engine.scm:575
-#, fuzzy
 msgid "Always display summary."
-msgstr "selalu"
+msgstr "Selalu tampilkan ikhtisar."
 
 #: gnucash/report/reports/standard/balsheet-pnl.scm:242
 #: gnucash/report/trep-engine.scm:578
-#, fuzzy
 msgid "Disable report summary."
-msgstr "Lapo_rkan"
+msgstr "Nonaktifkan ikhtisar laporan."
 
 #: gnucash/report/reports/standard/balsheet-pnl.scm:496
 #: gnucash/report/reports/standard/balsheet-pnl.scm:652
 #: gnucash/report/trep-engine.scm:1585
-#, fuzzy
 msgid "Total For "
-msgstr "Total:"
+msgstr "Total Untuk "
 
 #: gnucash/report/reports/standard/balsheet-pnl.scm:847
-#, fuzzy
 msgid "missing"
-msgstr "Hilang"
+msgstr "tak ada"
 
 #: gnucash/report/reports/standard/balsheet-pnl.scm:1092
-#: libgnucash/engine/Account.cpp:4316
-#, fuzzy
+#: libgnucash/engine/Account.cpp:4363
 msgid "Asset"
-msgstr "tipe akun: Aset"
+msgstr "Aset"
 
 #: gnucash/report/reports/standard/balsheet-pnl.scm:1095
-#: libgnucash/engine/Account.cpp:4318
-#, fuzzy
+#: libgnucash/engine/Account.cpp:4365
 msgid "Liability"
-msgstr "tipe akun: Liabilitas"
+msgstr "Liabilitas"
 
 #: gnucash/report/reports/standard/balsheet-pnl.scm:1113
-#, fuzzy
 msgid "Liability and Equity"
-msgstr "ekuitas"
+msgstr "Liabilitas dan Ekuitas"
 
 #: gnucash/report/reports/standard/balsheet-pnl.scm:1131
 #: gnucash/report/reports/standard/balsheet-pnl.scm:1279
-#, fuzzy
 msgid "Exchange Rates"
-msgstr "Seberapa sering nilai tukar mata uang harus diperbarui"
+msgstr "Nilai Tukar"
 
 #: gnucash/report/reports/standard/balsheet-pnl.scm:1141
 #: gnucash/report/reports/standard/budget-barchart.scm:157
 msgid "Barchart"
-msgstr ""
+msgstr "Bagan Batang"
 
 #: gnucash/report/reports/standard/balsheet-pnl.scm:1210
 msgid " to "
-msgstr ""
+msgstr " ke "
 
 #: gnucash/report/reports/standard/balsheet-pnl.scm:1272
-#: gnucash/report/reports/standard/trial-balance.scm:860
-#, fuzzy
+#: gnucash/report/reports/standard/trial-balance.scm:861
 msgid "Net Income"
-msgstr "tipe akun: Pendapatan"
+msgstr "Pendapatan Bersih"
 
 #: gnucash/report/reports/standard/balsheet-pnl.scm:1308
-#, fuzzy
 msgid "Balance Sheet (Multicolumn)"
-msgstr "neraca"
+msgstr "Neraca (multikolom)"
 
 #: gnucash/report/reports/standard/balsheet-pnl.scm:1309
-#, fuzzy
 msgid "Income Statement (Multicolumn)"
-msgstr "laporan laba-rugi"
+msgstr "Pernyataan Pendapatan (Multi-kolom)"
 
 #: gnucash/report/reports/standard/budget-balance-sheet.scm:38
 msgid "Budget Balance Sheet"
 msgstr "Lembar Neraca Anggaran"
 
 #: gnucash/report/reports/standard/budget-balance-sheet.scm:97
-#, fuzzy
 msgid "Include new/existing totals"
-msgstr "Simpan nilai ke variabel yang ada atau baru"
+msgstr "Sertakan total baru/sudah ada"
 
 #: gnucash/report/reports/standard/budget-balance-sheet.scm:99
 msgid ""
 "Whether or not to include lines indicating change in totals introduced by "
 "budget."
 msgstr ""
+"Apakah menyertakan baris yang menunjukkan perubahan dalam total yang "
+"diperkenalkan oleh anggaran."
 
 #: gnucash/report/reports/standard/budget-balance-sheet.scm:111
 #: gnucash/report/reports/standard/budget-barchart.scm:98
@@ -25820,70 +26091,57 @@ msgstr ""
 msgid "Budget to use."
 msgstr "Anggaran yang digunakan."
 
-#: gnucash/report/reports/standard/budget-balance-sheet.scm:676
-#, fuzzy
+#: gnucash/report/reports/standard/budget-balance-sheet.scm:677
 msgid "Existing Assets"
-msgstr "aset bersih"
+msgstr "Aset yang Ada"
 
-#: gnucash/report/reports/standard/budget-balance-sheet.scm:678
-#, fuzzy
+#: gnucash/report/reports/standard/budget-balance-sheet.scm:679
 msgid "Allocated Assets"
-msgstr "tipe akun: Aset & Liabilitas"
+msgstr "Aset Dialokasikan"
 
-#: gnucash/report/reports/standard/budget-balance-sheet.scm:682
-#, fuzzy
+#: gnucash/report/reports/standard/budget-balance-sheet.scm:683
 msgid "Unallocated Assets"
-msgstr "Ruang yang Belum Dialokasikan"
+msgstr "Aset Tak Dialokasikan"
 
-#: gnucash/report/reports/standard/budget-balance-sheet.scm:708
-#, fuzzy
+#: gnucash/report/reports/standard/budget-balance-sheet.scm:709
 msgid "Existing Liabilities"
-msgstr "liabilitas/ekuitas"
+msgstr "Liabilitas yang Ada"
 
-#: gnucash/report/reports/standard/budget-balance-sheet.scm:713
-#, fuzzy
+#: gnucash/report/reports/standard/budget-balance-sheet.scm:714
 msgid "New Liabilities"
-msgstr "liabilitas/ekuitas"
+msgstr "Liabilitas Baru"
 
-#: gnucash/report/reports/standard/budget-balance-sheet.scm:739
-#, fuzzy
+#: gnucash/report/reports/standard/budget-balance-sheet.scm:740
 msgid "Existing Retained Earnings"
-msgstr "Pendapatan Ditahan"
+msgstr "Laba Ditahan yang Ada"
 
-#: gnucash/report/reports/standard/budget-balance-sheet.scm:740
-#, fuzzy
+#: gnucash/report/reports/standard/budget-balance-sheet.scm:741
 msgid "Existing Retained Losses"
-msgstr "Pendapatan Ditahan"
+msgstr "Rugi Ditahan yang Ada"
 
-#: gnucash/report/reports/standard/budget-balance-sheet.scm:745
-#, fuzzy
+#: gnucash/report/reports/standard/budget-balance-sheet.scm:746
 msgid "New Retained Earnings"
-msgstr "Pendapatan Ditahan"
+msgstr "Pendapatan Ditahan Baru"
 
-#: gnucash/report/reports/standard/budget-balance-sheet.scm:746
-#, fuzzy
+#: gnucash/report/reports/standard/budget-balance-sheet.scm:747
 msgid "New Retained Losses"
-msgstr "Pendapatan Ditahan"
+msgstr "Kerugian Ditahan Baru"
 
-#: gnucash/report/reports/standard/budget-balance-sheet.scm:751
-#, fuzzy
+#: gnucash/report/reports/standard/budget-balance-sheet.scm:752
 msgid "Total Retained Earnings"
-msgstr "Pendapatan Ditahan"
+msgstr "Total Pendapatan Ditahan"
 
-#: gnucash/report/reports/standard/budget-balance-sheet.scm:752
-#, fuzzy
+#: gnucash/report/reports/standard/budget-balance-sheet.scm:753
 msgid "Total Retained Losses"
-msgstr "Pendapatan Ditahan"
+msgstr "Total Kerugian Ditahan"
 
-#: gnucash/report/reports/standard/budget-balance-sheet.scm:768
-#, fuzzy
+#: gnucash/report/reports/standard/budget-balance-sheet.scm:769
 msgid "Existing Equity"
-msgstr "ekuitas"
+msgstr "Ekuitas yang Ada"
 
-#: gnucash/report/reports/standard/budget-balance-sheet.scm:771
-#, fuzzy
+#: gnucash/report/reports/standard/budget-balance-sheet.scm:772
 msgid "New Equity"
-msgstr "ekuitas"
+msgstr "Ekuitas Baru"
 
 #: gnucash/report/reports/standard/budget-barchart.scm:36
 msgid "Budget Chart"
@@ -25892,63 +26150,61 @@ msgstr "Bagan Anggaran"
 #: gnucash/report/reports/standard/budget-barchart.scm:41
 #, fuzzy
 msgid "Running Sum"
-msgstr "Berjalan"
+msgstr "menjalankan Sum"
 
 #: gnucash/report/reports/standard/budget-barchart.scm:42
 #: gnucash/report/reports/standard/category-barchart.scm:80
-#, fuzzy
 msgid "Chart Type"
-msgstr "Bagan"
+msgstr "Tipe Bagan"
 
 #: gnucash/report/reports/standard/budget-barchart.scm:50
 #: gnucash/report/reports/standard/budget-income-statement.scm:66
 #: gnucash/report/reports/standard/budget.scm:71
-#, fuzzy
 msgid "Range start"
-msgstr "Cakupan"
+msgstr "Rentang mulai"
 
 #: gnucash/report/reports/standard/budget-barchart.scm:52
 #: gnucash/report/reports/standard/budget.scm:73
 msgid "Select a budget period type that starts the reporting range."
-msgstr "Pilih tipe periode anggaran yang memulai bentang pelaporan."
+msgstr "Pilih tipe periode anggaran yang memulai rentang pelaporan."
 
 #: gnucash/report/reports/standard/budget-barchart.scm:53
 #: gnucash/report/reports/standard/budget.scm:74
 #, fuzzy
 msgid "Exact start period"
-msgstr "_Periode:"
+msgstr "periode awal yang tepat"
 
 #: gnucash/report/reports/standard/budget-barchart.scm:55
 #: gnucash/report/reports/standard/budget.scm:76
+#, fuzzy
 msgid "Select exact period that starts the reporting range."
-msgstr ""
+msgstr "Pilih periode yang tepat yang dimulai kisaran pelaporan."
 
 #: gnucash/report/reports/standard/budget-barchart.scm:57
 #: gnucash/report/reports/standard/budget-income-statement.scm:70
 #: gnucash/report/reports/standard/budget.scm:78
-#, fuzzy
 msgid "Range end"
-msgstr "Akhir"
+msgstr "Rentang akhir"
 
 #: gnucash/report/reports/standard/budget-barchart.scm:59
 #: gnucash/report/reports/standard/budget.scm:80
 msgid "Select a budget period type that ends the reporting range."
-msgstr "Pilih tipe periode anggaran yang mengakhiri bentang pelaporan."
+msgstr "Pilih tipe periode anggaran yang mengakhiri rentang pelaporan."
 
 #: gnucash/report/reports/standard/budget-barchart.scm:60
 #: gnucash/report/reports/standard/budget.scm:81
 #, fuzzy
 msgid "Exact end period"
-msgstr "_Periode:"
+msgstr "akhir periode Exact"
 
 #: gnucash/report/reports/standard/budget-barchart.scm:62
 #: gnucash/report/reports/standard/budget.scm:83
+#, fuzzy
 msgid "Select exact period that ends the reporting range."
-msgstr ""
+msgstr "Pilih periode yang tepat yang berakhir kisaran pelaporan."
 
 #: gnucash/report/reports/standard/budget-barchart.scm:66
 #: gnucash/report/reports/standard/budget.scm:113
-#, fuzzy
 msgid "First"
 msgstr "Pertama"
 
@@ -25959,7 +26215,6 @@ msgstr "Periode pertama anggaran"
 
 #: gnucash/report/reports/standard/budget-barchart.scm:69
 #: gnucash/report/reports/standard/budget.scm:116
-#, fuzzy
 msgid "Previous"
 msgstr "Sebelumnya"
 
@@ -25973,7 +26228,7 @@ msgstr ""
 #: gnucash/report/reports/standard/budget-barchart.scm:73
 #: gnucash/report/reports/standard/budget.scm:120
 msgid "Current period, according to report evaluation date"
-msgstr ""
+msgstr "Periode sekarang, berdasarkan tanggal evaluasi laporan"
 
 #: gnucash/report/reports/standard/budget-barchart.scm:75
 #: gnucash/report/reports/standard/budget.scm:122
@@ -25983,110 +26238,103 @@ msgstr "Selanjutnya"
 #: gnucash/report/reports/standard/budget-barchart.scm:76
 #: gnucash/report/reports/standard/budget.scm:123
 msgid "Next period, according to report evaluation date"
-msgstr ""
+msgstr "Periode berkutnya, berdasarkan tanggal evaluasi laporan"
 
 #: gnucash/report/reports/standard/budget-barchart.scm:79
 #: gnucash/report/reports/standard/budget.scm:126
-#, fuzzy
 msgid "Last budget period"
-msgstr "Anggaran"
+msgstr "Periode anggaran terakhir"
 
 #: gnucash/report/reports/standard/budget-barchart.scm:81
 #: gnucash/report/reports/standard/budget.scm:128
-#, fuzzy
 msgid "Manual period selection"
-msgstr "Manual"
+msgstr "Pemilihan periode manual"
 
 #: gnucash/report/reports/standard/budget-barchart.scm:82
 #: gnucash/report/reports/standard/budget.scm:129
+#, fuzzy
 msgid "Explicitly select period value with spinner below"
-msgstr ""
+msgstr "Secara eksplisit pilih nilai periode dengan spinner bawah"
 
 #: gnucash/report/reports/standard/budget-barchart.scm:148
 #, fuzzy
 msgid "Calculate as running sum?"
-msgstr "Penyusutan Jumlah Angka Tahun (Sum-of-the-Years’-Digits Depreciation)"
+msgstr "Hitung sebagai berjalan sum?"
 
 #: gnucash/report/reports/standard/budget-barchart.scm:158
-#, fuzzy
 msgid "Show the report as a bar chart."
-msgstr "Tampilkan _Bilah Lampiran"
+msgstr "Tampilkan laporan sebagai bagan batang."
 
 #: gnucash/report/reports/standard/budget-barchart.scm:160
 msgid "Linechart"
-msgstr ""
+msgstr "Bagan Garis"
 
 #: gnucash/report/reports/standard/budget-barchart.scm:161
-#, fuzzy
 msgid "Show the report as a line chart."
-msgstr "Tampilkan nomor baris"
+msgstr "Tampilkan laporan sebagai bagan garis."
 
 #. Translators: Bgt and Act refer to budgeted and
 #. actual total amounts.
 #: gnucash/report/reports/standard/budget-barchart.scm:216
 #, scheme-format
 msgid "Bgt: ~a Act: ~a"
-msgstr ""
+msgstr "Angg: ~a Akt: ~a"
 
 #: gnucash/report/reports/standard/budget-barchart.scm:222
-#, fuzzy
 msgid "Actual"
-msgstr "Ukuran sebenarnya"
+msgstr "Aktual"
 
 #: gnucash/report/reports/standard/budget-flow.scm:36
-#, fuzzy
 msgid "Budget Flow"
-msgstr "Aliran"
+msgstr "Aliran Dana"
 
 #: gnucash/report/reports/standard/budget-flow.scm:70
-#, fuzzy
 msgid "Period number."
-msgstr "_Periode:"
+msgstr "Nomor periode."
 
 #: gnucash/report/reports/standard/budget-flow.scm:306
 #, scheme-format
 msgid "~a: ~a - ~a"
-msgstr ""
+msgstr "~a: ~a - ~a"
 
 #: gnucash/report/reports/standard/budget-income-statement.scm:62
 #: gnucash/report/reports/standard/budget.scm:67
 msgid "Report for range of budget periods"
-msgstr ""
+msgstr "Laporkan untuk rentang periode anggaran"
 
 #: gnucash/report/reports/standard/budget-income-statement.scm:64
 #: gnucash/report/reports/standard/budget.scm:69
 msgid "Create report for a budget period range instead of the entire budget."
 msgstr ""
+"Buat laporan untuk rentang periode anggaran, bukannya seluruh anggaran."
 
 #: gnucash/report/reports/standard/budget-income-statement.scm:68
 msgid "Select a budget period that begins the reporting range."
-msgstr ""
+msgstr "Pilih periode anggaran yang memulai rentang laporan."
 
 #: gnucash/report/reports/standard/budget-income-statement.scm:72
 msgid "Select a budget period that ends the reporting range."
-msgstr ""
+msgstr "Pilih periode anggaran yang mengakhiri rentang laporan."
 
 #: gnucash/report/reports/standard/budget-income-statement.scm:101
 #: gnucash/report/reports/standard/income-statement.scm:89
-#, fuzzy
 msgid "Label the revenue section"
-msgstr "SEKSI"
+msgstr "Beri label bagian pendapatan"
 
 #: gnucash/report/reports/standard/budget-income-statement.scm:103
 #: gnucash/report/reports/standard/income-statement.scm:91
 msgid "Whether or not to include a label for the revenue section."
-msgstr ""
+msgstr "Apakah menyertakan label untuk bagian pendapatan."
 
 #: gnucash/report/reports/standard/budget-income-statement.scm:104
 #: gnucash/report/reports/standard/income-statement.scm:92
-#, fuzzy
 msgid "Include revenue total"
-msgstr "Include"
+msgstr "Sertakan total pendapatan"
 
 #: gnucash/report/reports/standard/budget-income-statement.scm:106
 #: gnucash/report/reports/standard/income-statement.scm:94
 msgid "Whether or not to include a line indicating total revenue."
-msgstr ""
+msgstr "Apakah menyertakan baris yang menunjukkan total pendapatan."
 
 #: gnucash/report/reports/standard/budget-income-statement.scm:107
 #: gnucash/report/reports/standard/income-statement.scm:101
@@ -26110,9 +26358,8 @@ msgstr "Apakah menyertakan sebuah baris yang menunjukkan total pengeluaran."
 
 #: gnucash/report/reports/standard/budget-income-statement.scm:125
 #: gnucash/report/reports/standard/income-statement.scm:130
-#, fuzzy
 msgid "Display as a two column report"
-msgstr "Tampilkan _marjin kanan pada kolom:"
+msgstr "Tampilkan sebagai laporan dua kolom"
 
 #: gnucash/report/reports/standard/budget-income-statement.scm:127
 #: gnucash/report/reports/standard/income-statement.scm:132
@@ -26122,7 +26369,7 @@ msgstr "Membagi laporan menjadi kolom pendapatan dan kolom pengeluaran."
 #: gnucash/report/reports/standard/budget-income-statement.scm:129
 #: gnucash/report/reports/standard/income-statement.scm:134
 msgid "Display in standard, income first, order"
-msgstr ""
+msgstr "Tampilkan dalam urutan standar, penghasilan terlebih dahulu"
 
 #: gnucash/report/reports/standard/budget-income-statement.scm:131
 #: gnucash/report/reports/standard/income-statement.scm:136
@@ -26130,196 +26377,179 @@ msgid ""
 "Causes the report to display in the standard order, placing income before "
 "expenses."
 msgstr ""
+"Menyebabkan laporan ditampilkan dalam urutan standar, menempatkan pendapatan "
+"sebelum pengeluaran."
 
-#: gnucash/report/reports/standard/budget-income-statement.scm:442
+#: gnucash/report/reports/standard/budget-income-statement.scm:443
 msgid "Reporting range end period cannot be less than start period."
-msgstr ""
+msgstr "Periode akhir rentang pelaporan tidak boleh kurang dari periode awal."
 
-#: gnucash/report/reports/standard/budget-income-statement.scm:510
+#: gnucash/report/reports/standard/budget-income-statement.scm:511
 #: gnucash/report/reports/standard/income-statement.scm:505
 msgid "Revenues"
-msgstr ""
+msgstr "Pendapatan"
 
-#: gnucash/report/reports/standard/budget-income-statement.scm:513
+#: gnucash/report/reports/standard/budget-income-statement.scm:514
 #: gnucash/report/reports/standard/income-statement.scm:508
-#, fuzzy
 msgid "Total Revenue"
-msgstr "Total:"
+msgstr "Total Pendapatan"
 
-#: gnucash/report/reports/standard/budget-income-statement.scm:523
+#: gnucash/report/reports/standard/budget-income-statement.scm:524
 #: gnucash/report/reports/standard/income-statement.scm:515
-#, fuzzy
 msgid "Total Expenses"
-msgstr "Waktu & Pengeluaran"
+msgstr "Total Pengeluaran"
 
-#: gnucash/report/reports/standard/budget-income-statement.scm:531
-#, fuzzy, scheme-format
+#: gnucash/report/reports/standard/budget-income-statement.scm:532
+#, scheme-format
 msgid "for Budget ~a"
-msgstr "Anggaran"
+msgstr "untuk Anggaran ~a"
 
-#: gnucash/report/reports/standard/budget-income-statement.scm:533
-#, fuzzy, scheme-format
+#: gnucash/report/reports/standard/budget-income-statement.scm:534
+#, scheme-format
 msgid "for Budget ~a Period ~d"
-msgstr "Anggaran"
+msgstr "untuk Anggaran ~a Periode ~d"
 
-#: gnucash/report/reports/standard/budget-income-statement.scm:536
-#, fuzzy, scheme-format
+#: gnucash/report/reports/standard/budget-income-statement.scm:537
+#, scheme-format
 msgid "for Budget ~a Periods ~d - ~d"
-msgstr "%d × %d"
+msgstr "untuk Anggaran ~a Periode ~d - ~d"
 
-#: gnucash/report/reports/standard/budget-income-statement.scm:564
-#: gnucash/report/reports/standard/equity-statement.scm:455
+#: gnucash/report/reports/standard/budget-income-statement.scm:565
+#: gnucash/report/reports/standard/equity-statement.scm:457
 #: gnucash/report/reports/standard/income-statement.scm:525
-#, fuzzy
 msgid "Net income"
-msgstr "tipe akun: Pendapatan"
+msgstr "Pemasukan bersih"
 
-#: gnucash/report/reports/standard/budget-income-statement.scm:565
-#: gnucash/report/reports/standard/equity-statement.scm:456
+#: gnucash/report/reports/standard/budget-income-statement.scm:566
+#: gnucash/report/reports/standard/equity-statement.scm:458
 #: gnucash/report/reports/standard/income-statement.scm:526
-#, fuzzy
 msgid "Net loss"
-msgstr "bersih"
+msgstr "Kerugian bersih"
 
-#: gnucash/report/reports/standard/budget-income-statement.scm:605
-#, fuzzy
+#: gnucash/report/reports/standard/budget-income-statement.scm:606
 msgid "Budget Income Statement"
-msgstr "laporan laba-rugi"
+msgstr "Pernyataan Pendapatan Anggaran"
 
-#: gnucash/report/reports/standard/budget-income-statement.scm:606
-#, fuzzy
+#: gnucash/report/reports/standard/budget-income-statement.scm:607
 msgid "Budget Profit & Loss"
-msgstr "Keuntungan & Kerugian"
+msgstr "Laba & Rugi Anggaran"
 
 #: gnucash/report/reports/standard/budget.scm:39
-#, fuzzy
 msgid "Budget Report"
-msgstr "Anggaran"
+msgstr "Laporan Anggaran"
 
 #: gnucash/report/reports/standard/budget.scm:45
 #: gnucash/report/reports/standard/cash-flow.scm:45
-#, fuzzy
 msgid "Account Display Depth"
-msgstr "Kedalaman:"
+msgstr "Kedalaman Tampilan Akun"
 
 #: gnucash/report/reports/standard/budget.scm:46
 #: gnucash/report/reports/standard/cash-flow.scm:46
-#, fuzzy
 msgid "Always show sub-accounts"
-msgstr "Tampilkan dialog pemberitahuan pengingat selalu di atas"
+msgstr "Selalu tampilkan sub-akun"
 
 #: gnucash/report/reports/standard/budget.scm:49
-#, fuzzy
 msgid "Select Columns"
-msgstr ""
-"Ada sebelas kolom informasi yang dapat Anda tampilkan dalam tampilan daftar "
-"<gui>Berkas</gui>. Klik tombol menu di pojok kanan atas jendela, pilih "
-"<gui>Preferensi</gui> dan pilih tab <gui>Kolom Daftar</gui> untuk memilih "
-"kolom yang akan terlihat."
+msgstr "Pilih Kolom"
 
 #: gnucash/report/reports/standard/budget.scm:50
-#, fuzzy
 msgid "Show Budget"
-msgstr "Anggaran"
+msgstr "Tampilkan Anggaran"
 
 #: gnucash/report/reports/standard/budget.scm:51
-#, fuzzy
 msgid "Display a column for the budget values."
-msgstr "Tampilkan marjin _subjek pada kolom:"
+msgstr "Tampilkan kolom untuk nilai anggaran."
 
 #: gnucash/report/reports/standard/budget.scm:52
-#, fuzzy
 msgid "Show Budget Notes"
-msgstr "Tampilkan Catatan"
+msgstr "Tampilkan Catatan Anggaran"
 
 #: gnucash/report/reports/standard/budget.scm:53
-#, fuzzy
 msgid "Display a column for the budget notes."
-msgstr "Tampilkan marjin _subjek pada kolom:"
+msgstr "Tampilkan kolom untuk catatan anggaran."
 
 #: gnucash/report/reports/standard/budget.scm:54
-#, fuzzy
 msgid "Show Actual"
-msgstr "Ukuran sebenarnya"
+msgstr "Tampilkan Aktual"
 
 #: gnucash/report/reports/standard/budget.scm:55
-#, fuzzy
 msgid "Display a column for the actual values."
-msgstr "Tampilkan marjin _subjek pada kolom:"
+msgstr "Tampilkan kolom untuk nilai aktual."
 
 #: gnucash/report/reports/standard/budget.scm:56
-#, fuzzy
 msgid "Show Difference"
-msgstr "_Perbedaan"
+msgstr "Tampilkan Selisih"
 
 #: gnucash/report/reports/standard/budget.scm:57
 msgid "Display the difference as budget - actual."
-msgstr ""
+msgstr "Tampilkan selisih sebagai anggaran - aktual."
 
 #: gnucash/report/reports/standard/budget.scm:58
 msgid "Use accumulated amounts"
-msgstr ""
+msgstr "Gunakan nilai terakumulasi"
 
 #: gnucash/report/reports/standard/budget.scm:59
 msgid "Values are accumulated across periods."
-msgstr ""
+msgstr "Nilai diakumulasi sepanjang periode."
 
 #: gnucash/report/reports/standard/budget.scm:60
-#, fuzzy
 msgid "Show Column with Totals"
-msgstr "kolom"
+msgstr "Tampilkan Kolom dengan Total"
 
 #: gnucash/report/reports/standard/budget.scm:61
-#, fuzzy
 msgid "Display a column with the row totals."
-msgstr "Tampilkan marjin _subjek pada kolom:"
+msgstr "Tampilkan kolom dengan total baris."
 
 #: gnucash/report/reports/standard/budget.scm:62
 msgid "Include accounts with zero total balances and budget values"
-msgstr ""
+msgstr "Masukkan akun dengan saldo total dan nilai anggaran nol"
 
 #: gnucash/report/reports/standard/budget.scm:63
 msgid ""
 "Include accounts with zero total (recursive) balances and budget values in "
 "this report."
 msgstr ""
+"Masukkan akun dengan total saldo (rekursif) dan nilai anggaran nol di "
+"laporan ini."
 
 #: gnucash/report/reports/standard/budget.scm:85
 msgid "Include collapsed periods before selected."
-msgstr ""
+msgstr "Sertakan periode kolaps sebelum yang dipilih."
 
 #: gnucash/report/reports/standard/budget.scm:86
 msgid ""
 "Include in report previous periods as single collapsed column (one for all "
 "periods before starting)"
 msgstr ""
+"Sertakan dalam laporan, periode sebelumnya sebagai kolom kolaps tunggal "
+"(satu untuk semua periode sebelum memulai)"
 
 #: gnucash/report/reports/standard/budget.scm:87
 msgid "Include collapsed periods after selected."
-msgstr ""
+msgstr "Sertakan periode kolaps setelah yang dipilih."
 
 #: gnucash/report/reports/standard/budget.scm:88
 msgid ""
 "Include in report further periods as single collapsed column (one for all "
 "periods after ending and to the end of budget range)"
 msgstr ""
+"Sertakan dalam laporan, periode selanjutnya sebagai kolom kolaps tunggal "
+"(satu untuk semua periode setelah mengakhiri dan ke akhir rentang anggaran)"
 
 #. Translators: Abbreviation for "Budget" amount
 #: gnucash/report/reports/standard/budget.scm:537
 msgid "Bgt"
-msgstr ""
+msgstr "Anggr"
 
 #. Translators: Abbreviation for "Actual" amount
 #: gnucash/report/reports/standard/budget.scm:542
-#, fuzzy
 msgid "Act"
-msgstr "Pilih penyaring yang bekerja pada warna atau \"None\"."
+msgstr "Akt"
 
 #. Translators: Abbreviation for "Difference" amount
 #: gnucash/report/reports/standard/budget.scm:547
-#, fuzzy
 msgid "Diff"
-msgstr "Beda"
+msgstr "Slsh"
 
 #. Translators: using accumulated amounts mean
 #. budget will report on budgeted and actual
@@ -26327,109 +26557,97 @@ msgstr "Beda"
 #. of only using the budget-period amounts.
 #: gnucash/report/reports/standard/budget.scm:777
 msgid "using accumulated amounts"
-msgstr ""
+msgstr "menggunakan nilai terakumulasi"
 
 #: gnucash/report/reports/standard/cashflow-barchart.scm:39
-#, fuzzy
 msgid "Cash Flow Barchart"
-msgstr "Aliran"
+msgstr "Bagan Batang Arus Kas"
 
 #: gnucash/report/reports/standard/cashflow-barchart.scm:45
 #: gnucash/report/reports/standard/cash-flow.scm:53
 msgid "Include Trading Accounts in report"
-msgstr ""
+msgstr "Masukkan Akun Perdagangan di laporan"
 
 #: gnucash/report/reports/standard/cashflow-barchart.scm:47
-#, fuzzy
 msgid "Show Money In"
-msgstr "tipe akun: pasar uang"
+msgstr "Tampilkan Dana Masuk"
 
 #: gnucash/report/reports/standard/cashflow-barchart.scm:48
-#, fuzzy
 msgid "Show Money Out"
-msgstr "Tampilkan _zoom keluar"
+msgstr "Tampilkan Dana Keluar"
 
 #: gnucash/report/reports/standard/cashflow-barchart.scm:49
-#, fuzzy
 msgid "Show Net Flow"
-msgstr "Aliran"
+msgstr "Tampilkan Arus Bersih"
 
 #: gnucash/report/reports/standard/cashflow-barchart.scm:50
-#, fuzzy
 msgid "Show Table"
-msgstr "_Tabel…"
+msgstr "Tampilkan Tabel"
 
 #: gnucash/report/reports/standard/cashflow-barchart.scm:99
 #: gnucash/report/reports/standard/cash-flow.scm:102
 msgid "Include transfers to and from Trading Accounts in the report."
-msgstr ""
+msgstr "Masukkan transfer ke dan dari Akun Perdagangan di laporan."
 
 #: gnucash/report/reports/standard/cashflow-barchart.scm:106
-#, fuzzy
 msgid "Show money in?"
-msgstr "tipe akun: pasar uang"
+msgstr "Tampilkan dana masuk?"
 
 #: gnucash/report/reports/standard/cashflow-barchart.scm:112
-#, fuzzy
 msgid "Show money out?"
-msgstr "Tampilkan _zoom keluar"
+msgstr "Tampilkan dana keluar?"
 
 #: gnucash/report/reports/standard/cashflow-barchart.scm:118
 msgid "Show net money flow?"
-msgstr ""
+msgstr "Tampilkan aliran uang bersih?"
 
 #: gnucash/report/reports/standard/cashflow-barchart.scm:309
 #: gnucash/report/reports/standard/cashflow-barchart.scm:334
-#, fuzzy
 msgid "Net Flow"
-msgstr "Aliran"
+msgstr "Arus Bersih"
 
 #: gnucash/report/reports/standard/cashflow-barchart.scm:337
-#, fuzzy
 msgid "Overview:"
-msgstr "Ringkasan"
+msgstr "Ikhtisar:"
 
 #: gnucash/report/reports/standard/cashflow-barchart.scm:376
 msgid "Shows a barchart with cash flow over time"
-msgstr ""
+msgstr "Tampilkan bagan batang dengan arus kas dari waktu ke waktu"
 
 #: gnucash/report/reports/standard/cash-flow.scm:38
-#, fuzzy
 msgid "Cash Flow"
-msgstr "Aliran"
+msgstr "Arus Kas"
 
 #: gnucash/report/reports/standard/cash-flow.scm:52
-#, fuzzy
 msgid "Show Full Account Names"
-msgstr "Tampilkan Nama Halaman lengkap"
+msgstr "Tampilkan Nama Lengkap Akun"
 
 #: gnucash/report/reports/standard/cash-flow.scm:83
 msgid "Show full account names (including parent accounts)."
-msgstr ""
+msgstr "Tampilkan nama lengkap akun (termasuk akun induk)."
 
-#: gnucash/report/reports/standard/cash-flow.scm:203
+#: gnucash/report/reports/standard/cash-flow.scm:205
 #, scheme-format
 msgid "~a and subaccounts"
-msgstr ""
+msgstr "~a dan sub-akun"
 
-#: gnucash/report/reports/standard/cash-flow.scm:204
-#, fuzzy, scheme-format
+#: gnucash/report/reports/standard/cash-flow.scm:206
+#, scheme-format
 msgid "~a and selected subaccounts"
-msgstr "Tidak ada folder yang dipilih."
+msgstr "~a dan sub-akun terpilih"
 
-#: gnucash/report/reports/standard/cash-flow.scm:268
+#: gnucash/report/reports/standard/cash-flow.scm:270
 msgid "Money into selected accounts comes from"
-msgstr ""
+msgstr "Uang ke akun yang dipilih berasal dari"
 
-#: gnucash/report/reports/standard/cash-flow.scm:289
+#: gnucash/report/reports/standard/cash-flow.scm:291
 msgid "Money out of selected accounts goes to"
-msgstr ""
+msgstr "Uang keluar dari akun yang dipilih menuju ke"
 
 #: gnucash/report/reports/standard/category-barchart.scm:41
 #: gnucash/report/reports/standard/net-charts.scm:366
-#, fuzzy
 msgid "Income Chart"
-msgstr "laporan laba-rugi"
+msgstr "Bagan Pendapatan"
 
 #: gnucash/report/reports/standard/category-barchart.scm:42
 #: gnucash/report/reports/standard/net-charts.scm:387
@@ -26438,120 +26656,110 @@ msgstr "Bagan Pengeluaran"
 
 #: gnucash/report/reports/standard/category-barchart.scm:43
 #: gnucash/report/reports/standard/net-charts.scm:367
-#, fuzzy
 msgid "Asset Chart"
-msgstr "Bagan"
+msgstr "Bagan Aset"
 
 #: gnucash/report/reports/standard/category-barchart.scm:44
 #: gnucash/report/reports/standard/net-charts.scm:388
-#, fuzzy
 msgid "Liability Chart"
-msgstr "tipe akun: Liabilitas"
+msgstr "Bagan Liabilitas"
 
 #: gnucash/report/reports/standard/category-barchart.scm:49
 msgid "Shows a chart with the Income per interval developing over time"
 msgstr ""
+"Tampilkan sebuah bagan dengan Pendapatan per interval yang berkembang dari "
+"waktu ke waktu"
 
 #: gnucash/report/reports/standard/category-barchart.scm:52
 msgid "Shows a chart with the Expenses per interval developing over time"
 msgstr ""
+"Tampilkan sebuah bagan dengan Pengeluaran per interval yang berkembang dari "
+"waktu ke waktu"
 
 #: gnucash/report/reports/standard/category-barchart.scm:55
 msgid "Shows a chart with the Assets developing over time"
-msgstr ""
+msgstr "Tampilkan sebuah bagan dengan Aset yang berkembang dari waktu ke waktu"
 
 #: gnucash/report/reports/standard/category-barchart.scm:57
 msgid "Shows a chart with the Liabilities developing over time"
 msgstr ""
+"Tampilkan sebuah bagan dengan Liabilitas yang berkembang dari waktu ke waktu"
 
 #: gnucash/report/reports/standard/category-barchart.scm:63
-#, fuzzy
 msgid "Income Over Time"
-msgstr "laporan laba-rugi"
+msgstr "Pendapatan dari Waktu ke Waktu"
 
 #: gnucash/report/reports/standard/category-barchart.scm:64
 msgid "Expense Over Time"
 msgstr "Pengeluaran dari Waktu ke Waktu"
 
 #: gnucash/report/reports/standard/category-barchart.scm:65
-#, fuzzy
 msgid "Assets Over Time"
-msgstr "tipe akun: Aset & Liabilitas"
+msgstr "Aset dari Waktu ke Waktu"
 
 #: gnucash/report/reports/standard/category-barchart.scm:66
-#, fuzzy
 msgid "Liabilities Over Time"
-msgstr "liabilitas/ekuitas"
+msgstr "Liabilitas dari Waktu ke Waktu"
 
 #: gnucash/report/reports/standard/category-barchart.scm:82
-#, fuzzy
 msgid "Use Stacked Charts"
-msgstr "_Pakai apa adanya"
+msgstr "Gunakan Bagan Bertumpuk"
 
 #: gnucash/report/reports/standard/category-barchart.scm:83
-#, fuzzy
 msgid "Maximum Bars"
-msgstr "Maksimal:"
+msgstr "Batang Maksimum"
 
 #: gnucash/report/reports/standard/category-barchart.scm:130
 msgid "Show the average daily amount during the reporting period."
-msgstr ""
+msgstr "Tampilkan jumlah rata-rata harian selama periode pelaporan."
 
 #: gnucash/report/reports/standard/category-barchart.scm:165
-#, fuzzy
 msgid "Bar Chart"
-msgstr "Bagan"
+msgstr "Bagan Batang"
 
 #: gnucash/report/reports/standard/category-barchart.scm:166
-#, fuzzy
 msgid "Use bar charts."
-msgstr "baris menu"
+msgstr "Gunakan bagan batang."
 
 #: gnucash/report/reports/standard/category-barchart.scm:168
-#, fuzzy
 msgid "Line Chart"
-msgstr "Bagan"
+msgstr "Bagan Garis"
 
 #: gnucash/report/reports/standard/category-barchart.scm:169
-#, fuzzy
 msgid "Use line charts."
-msgstr "Gunakan tipe garis tangkai"
+msgstr "Gunakan bagan garis."
 
 #: gnucash/report/reports/standard/category-barchart.scm:175
 msgid "Show charts as stacked charts?"
-msgstr ""
+msgstr "Tampilkan bagan sebagai bagan bertumpuk?"
 
 #: gnucash/report/reports/standard/category-barchart.scm:181
-#, fuzzy
 msgid "Maximum number of stacks in the chart."
-msgstr "Cacah maksimum karakter bagi entri ini. Nol bila tanpa maksimum"
+msgstr "Jumlah maksimum tumpukan pada bagan."
 
 #: gnucash/report/reports/standard/category-barchart.scm:308
-#, fuzzy
 msgid "Daily Average"
-msgstr "rata-rata"
+msgstr "Rata-rata Harian"
 
 #: gnucash/report/reports/standard/category-barchart.scm:515
 #, scheme-format
 msgid "Balances ~a to ~a"
-msgstr ""
+msgstr "Saldo ~a ke ~a"
 
 #: gnucash/report/reports/standard/category-barchart.scm:637
 #: gnucash/report/reports/standard/category-barchart.scm:658
 #: gnucash/report/trep-engine.scm:1654 gnucash/report/trep-engine.scm:1913
-#, fuzzy
 msgid "Grand Total"
-msgstr "Amerika/Grand_Turk"
+msgstr "Total Keseluruhan"
 
 #: gnucash/report/reports/standard/category-barchart.scm:684
 #: gnucash/report/reports/standard/net-charts.scm:471
-#, fuzzy
 msgid "No exportable data"
-msgstr "Dapat diekspor"
+msgstr "Tak ada data yang dapat diekspor"
 
 #: gnucash/report/reports/standard/customer-summary.scm:52
 msgid "The income accounts where the sales and income was recorded."
-msgstr ""
+msgstr "Akun pendapatan dimana penjualan dan pendapatan dicatat."
 
 #: gnucash/report/reports/standard/customer-summary.scm:62
 msgid ""
@@ -26559,7 +26767,7 @@ msgid ""
 "from the sales to give the profit."
 msgstr ""
 "Akun pengeluaran di mana pengeluaran dicatat yang kemudian dikurangkan dari "
-"penjualan untuk menghasilkan keuntungan."
+"penjualan untuk menghasilkan laba."
 
 #: gnucash/report/reports/standard/customer-summary.scm:64
 msgid "Show Expense Column"
@@ -26567,16 +26775,15 @@ msgstr "Tampilkan Kolom Pengeluaran"
 
 #: gnucash/report/reports/standard/customer-summary.scm:65
 msgid "Show the column with the expenses per customer."
-msgstr ""
+msgstr "Tampilkan kolom pengeluaran per pelanggan."
 
 #: gnucash/report/reports/standard/customer-summary.scm:66
-#, fuzzy
 msgid "Show Company Address"
-msgstr "Berdasarkan _Perusahaan"
+msgstr "Tampilkan Alamat Perusahaan"
 
 #: gnucash/report/reports/standard/customer-summary.scm:67
 msgid "Show your own company's address and the date of printing."
-msgstr ""
+msgstr "Tampilkan alamat perusahaan Anda dan tanggal pencetakan."
 
 #: gnucash/report/reports/standard/customer-summary.scm:69
 #: gnucash/report/reports/standard/invoice.scm:212
@@ -26616,270 +26823,248 @@ msgstr ""
 #: gnucash/report/reports/standard/owner-report.scm:591
 #: gnucash/report/reports/standard/owner-report.scm:596
 #: gnucash/report/reports/standard/owner-report.scm:601
-#, fuzzy
 msgid "Display Columns"
-msgstr "untuk kolom"
+msgstr "Tampilkan Kolom"
 
 #: gnucash/report/reports/standard/customer-summary.scm:79
-#, fuzzy
 msgid "Show Lines with All Zeros"
-msgstr "Tampilkan garis konektor"
+msgstr "Tampilkan Baris dengan Semua Nol"
 
 #: gnucash/report/reports/standard/customer-summary.scm:80
 msgid ""
 "Show the table lines with customers which did not have any transactions in "
 "the reporting period, hence would show all zeros in the columns."
 msgstr ""
+"Tampilkan baris-baris tabel dengan pelanggan yang tidak memiliki transaksi "
+"apapun dalam periode laporan, sehingga akan menampilkan semua nol di dalam "
+"kolom."
 
 #: gnucash/report/reports/standard/customer-summary.scm:81
-#, fuzzy
 msgid "Show Inactive Customers"
-msgstr "Tak aktif"
+msgstr "Tampilkan Pelanggan Tak Aktif"
 
 #: gnucash/report/reports/standard/customer-summary.scm:82
 msgid "Include customers that have been marked inactive."
-msgstr ""
+msgstr "Sertakan pelanggan yang telah ditandai tidak aktif."
 
 #: gnucash/report/reports/standard/customer-summary.scm:84
-#, fuzzy
 msgid "Sort Column"
-msgstr "Urut berdasarkan"
+msgstr "Urutkan Kolom"
 
 #: gnucash/report/reports/standard/customer-summary.scm:85
 msgid "Choose the column by which the result table is sorted."
-msgstr ""
+msgstr "Pilih kolom untuk mengurutkan tabel hasil."
 
 #: gnucash/report/reports/standard/customer-summary.scm:87
 msgid "Choose the ordering of the column sort: Either ascending or descending."
-msgstr ""
+msgstr "Pilih urutan kolom: Menaik atau menurun."
 
 #: gnucash/report/reports/standard/customer-summary.scm:126
-#, fuzzy
 msgid "Customer Name"
-msgstr "Nasabah Kunci"
+msgstr "Nama Pelanggan"
 
 #: gnucash/report/reports/standard/customer-summary.scm:127
-#, fuzzy
 msgid "Sort alphabetically by customer name."
-msgstr "Urutkan berdasar alfabet"
+msgstr "Urutkan berdasarkan abjad menggunakan nama pelanggan."
 
 #: gnucash/report/reports/standard/customer-summary.scm:130
-#, fuzzy
 msgid "Sort by profit amount."
-msgstr "jumlah"
+msgstr "Urutkan berdasar jumlah laba."
 
 #. Translators: "Markup" is profit amount divided by sales amount
 #: gnucash/report/reports/standard/customer-summary.scm:133
 #: gnucash/report/reports/standard/customer-summary.scm:323
-#, fuzzy
 msgid "Markup"
-msgstr "markup"
+msgstr "Markup"
 
 #: gnucash/report/reports/standard/customer-summary.scm:134
 msgid "Sort by markup (which is profit amount divided by sales)."
 msgstr ""
+"Urutkan berdasarkan markup (yang merupakan jumlah keuntungan dibagi dengan "
+"penjualan)."
 
 #: gnucash/report/reports/standard/customer-summary.scm:136
 #: gnucash/report/reports/standard/customer-summary.scm:324
 #: gnucash/report/reports/standard/income-gst-statement.scm:131
-#, fuzzy
 msgid "Sales"
-msgstr "penjualan"
+msgstr "Penjualan"
 
 #: gnucash/report/reports/standard/customer-summary.scm:137
-#, fuzzy
 msgid "Sort by sales amount."
-msgstr "penjualan"
+msgstr "Urutkan berdasarkan jumlah penjualan."
 
 #: gnucash/report/reports/standard/customer-summary.scm:140
 msgid "Sort by expense amount."
 msgstr "Urutkan berdasar jumlah pengeluaran."
 
 #: gnucash/report/reports/standard/customer-summary.scm:150
-#, fuzzy
 msgid "A to Z, smallest to largest."
-msgstr "Terbesar"
+msgstr "A ke Z, terkecil ke terbesar."
 
 #: gnucash/report/reports/standard/customer-summary.scm:153
-#, fuzzy
 msgid "Z to A, largest to smallest."
-msgstr "Terbesar"
+msgstr "Z ke A, terbesar ke terkecil."
 
 #: gnucash/report/reports/standard/customer-summary.scm:294
 #, scheme-format
 msgid "~a ~a - ~a"
-msgstr ""
+msgstr "~a ~a - ~a"
 
 #: gnucash/report/reports/standard/customer-summary.scm:314
-#, fuzzy
 msgid "No valid customer found."
-msgstr "Nasabah Kunci"
+msgstr "Pelanggan yang valid tak ditemukan."
 
 #: gnucash/report/reports/standard/customer-summary.scm:402
-#, fuzzy
 msgid "No Customer"
-msgstr "Nasabah Kunci"
+msgstr "Tak Ada Pelanggan"
 
-#: gnucash/report/reports/standard/customer-summary.scm:514
-#, fuzzy
+#: gnucash/report/reports/standard/customer-summary.scm:516
 msgid "Customer Summary"
-msgstr "Nasabah Kunci"
+msgstr "Ikhtisar Pelanggan"
 
 #: gnucash/report/reports/standard/equity-statement.scm:55
-#, fuzzy
 msgid "Equity Statement"
-msgstr "laporan ekuitas"
+msgstr "Pernyataan Ekuitas"
 
 #: gnucash/report/reports/standard/equity-statement.scm:70
-#, fuzzy
 msgid "Report only on these accounts."
-msgstr "Akun"
+msgstr "Laporkan hanya pada akun tersebut."
 
 #: gnucash/report/reports/standard/equity-statement.scm:86
 #: gnucash/report/reports/standard/income-statement.scm:118
 #: gnucash/report/reports/standard/trial-balance.scm:104
-#, fuzzy
 msgid "Closing Entries pattern"
-msgstr "Isi _jurnal"
+msgstr "Pola Entri Penutup"
 
 #: gnucash/report/reports/standard/equity-statement.scm:88
 #: gnucash/report/reports/standard/income-statement.scm:120
 #: gnucash/report/reports/standard/trial-balance.scm:106
 msgid "Any text in the Description column which identifies closing entries."
 msgstr ""
+"Setiap teks di dalam kolom Deskripsi yang mengidentifikasi entri penutup."
 
 #: gnucash/report/reports/standard/equity-statement.scm:90
 #: gnucash/report/reports/standard/income-statement.scm:122
 #: gnucash/report/reports/standard/trial-balance.scm:108
 msgid "Closing Entries pattern is case-sensitive"
-msgstr ""
+msgstr "Pola Entri Penutup membedakan huruf besar/kecil"
 
 #: gnucash/report/reports/standard/equity-statement.scm:92
 #: gnucash/report/reports/standard/income-statement.scm:124
 #: gnucash/report/reports/standard/trial-balance.scm:110
 msgid "Causes the Closing Entries Pattern match to be case-sensitive."
 msgstr ""
+"Menyebabkan kecocokan Pola Entri Penutup Menutup dibedakan huruf besar/kecil."
 
 #: gnucash/report/reports/standard/equity-statement.scm:94
 #: gnucash/report/reports/standard/income-statement.scm:126
 #: gnucash/report/reports/standard/trial-balance.scm:112
 msgid "Closing Entries Pattern is regular expression"
-msgstr ""
+msgstr "Pola Entri Penutup adalah ekspresi reguler"
 
 #: gnucash/report/reports/standard/equity-statement.scm:96
 #: gnucash/report/reports/standard/income-statement.scm:128
 #: gnucash/report/reports/standard/trial-balance.scm:114
 msgid ""
 "Causes the Closing Entries Pattern to be treated as a regular expression."
-msgstr ""
+msgstr "Menyebabkan Pola Entri Penutup diperlakukan sebagai ekspresi reguler."
 
-#: gnucash/report/reports/standard/equity-statement.scm:423
+#: gnucash/report/reports/standard/equity-statement.scm:425
 #: gnucash/report/reports/standard/income-statement.scm:481
-#: gnucash/report/reports/standard/trial-balance.scm:404
-#, fuzzy
+#: gnucash/report/reports/standard/trial-balance.scm:405
 msgid "for Period"
-msgstr "_Periode:"
+msgstr "untuk Periode"
 
-#: gnucash/report/reports/standard/equity-statement.scm:450
-#: gnucash/report/reports/standard/equity-statement.scm:486
-#, fuzzy
+#: gnucash/report/reports/standard/equity-statement.scm:452
+#: gnucash/report/reports/standard/equity-statement.scm:488
 msgid "Capital"
-msgstr "laba modal"
+msgstr "Modal"
 
-#: gnucash/report/reports/standard/equity-statement.scm:461
+#: gnucash/report/reports/standard/equity-statement.scm:463
 msgid "Investments"
-msgstr ""
+msgstr "Investasi"
 
-#: gnucash/report/reports/standard/equity-statement.scm:466
+#: gnucash/report/reports/standard/equity-statement.scm:468
 msgid "Withdrawals"
-msgstr ""
+msgstr "Penarikan"
 
-#: gnucash/report/reports/standard/equity-statement.scm:479
-#, fuzzy
+#: gnucash/report/reports/standard/equity-statement.scm:481
 msgid "Increase in capital"
-msgstr "Spasi Kapital"
+msgstr "Peningkatan modal"
 
-#: gnucash/report/reports/standard/equity-statement.scm:480
-#, fuzzy
+#: gnucash/report/reports/standard/equity-statement.scm:482
 msgid "Decrease in capital"
-msgstr "Mun_durkan Indentasi"
+msgstr "Penurunan modal"
 
 #: gnucash/report/reports/standard/general-journal.scm:94
 #: gnucash/report/reports/standard/general-ledger.scm:68
 #: gnucash/report/reports/standard/register.scm:135
-#: gnucash/report/reports/standard/register.scm:388
+#: gnucash/report/reports/standard/register.scm:359
 #: gnucash/report/trep-engine.scm:943 gnucash/report/trep-engine.scm:1071
-#, fuzzy
 msgid "Num/Action"
-msgstr "Aksi"
+msgstr "Num/Aksi"
 
 #: gnucash/report/reports/standard/general-journal.scm:102
 #: gnucash/report/reports/standard/general-ledger.scm:82
 #: gnucash/report/reports/standard/general-ledger.scm:102
-#: gnucash/report/reports/standard/register.scm:441
+#: gnucash/report/reports/standard/register.scm:412
 #: gnucash/report/trep-engine.scm:958 gnucash/report/trep-engine.scm:1092
 #: gnucash/report/trep-engine.scm:1380
 #, fuzzy
 msgid "Running Balance"
-msgstr "seimbangkan"
+msgstr "menjalankan Balance"
 
 #: gnucash/report/reports/standard/general-journal.scm:103
 #: gnucash/report/reports/standard/general-ledger.scm:83
 #: gnucash/report/reports/standard/general-ledger.scm:103
-#: gnucash/report/reports/standard/register.scm:446
+#: gnucash/report/reports/standard/register.scm:417
 #: gnucash/report/trep-engine.scm:959
 msgid "Totals"
-msgstr ""
+msgstr "Total"
 
 #: gnucash/report/reports/standard/general-ledger.scm:39
-#, fuzzy
 msgid "General Ledger"
-msgstr "buku besar"
+msgstr "Buku Besar Umum"
 
 #: gnucash/report/reports/standard/general-ledger.scm:50
 #: gnucash/report/reports/standard/income-gst-statement.scm:40
 #: gnucash/report/trep-engine.scm:59
-#, fuzzy
 msgid "Sorting"
-msgstr "Cara mengurutkan berkas"
+msgstr "Penyortiran"
 
 #: gnucash/report/reports/standard/general-ledger.scm:69
 #: gnucash/report/trep-engine.scm:964 gnucash/report/trep-engine.scm:1178
 #: gnucash/report/trep-engine.scm:1187
-#, fuzzy
 msgid "Trans Number"
-msgstr "{number}"
+msgstr "Nomor Trans"
 
 #: gnucash/report/reports/standard/general-ledger.scm:73
 #: gnucash/report/reports/standard/general-ledger.scm:93
 #: gnucash/report/trep-engine.scm:901 gnucash/report/trep-engine.scm:948
 #: gnucash/report/trep-engine.scm:1094
-#, fuzzy
 msgid "Use Full Account Name"
-msgstr "nama akun"
+msgstr "Gunakan Nama Lengkap Akun"
 
 #: gnucash/report/reports/standard/general-ledger.scm:75
 #: gnucash/report/reports/standard/general-ledger.scm:95
 #: gnucash/report/trep-engine.scm:193 gnucash/report/trep-engine.scm:905
 #: gnucash/report/trep-engine.scm:991 gnucash/report/trep-engine.scm:1077
-#, fuzzy
 msgid "Other Account Name"
-msgstr "Nama Lain"
+msgstr "Nama Akun Lain"
 
 #: gnucash/report/reports/standard/general-ledger.scm:76
 #: gnucash/report/reports/standard/general-ledger.scm:96
 #: gnucash/report/trep-engine.scm:921 gnucash/report/trep-engine.scm:951
 #: gnucash/report/trep-engine.scm:1102
 msgid "Use Full Other Account Name"
-msgstr ""
+msgstr "Gunakan Nama Lengkap Akun Lain"
 
 #: gnucash/report/reports/standard/general-ledger.scm:77
 #: gnucash/report/reports/standard/general-ledger.scm:97
 #: gnucash/report/trep-engine.scm:200 gnucash/report/trep-engine.scm:925
 #: gnucash/report/trep-engine.scm:952 gnucash/report/trep-engine.scm:1099
-#, fuzzy
 msgid "Other Account Code"
-msgstr "kode akun"
+msgstr "Kode Akun Lain"
 
 #: gnucash/report/reports/standard/general-ledger.scm:84
 #: gnucash/report/reports/standard/general-ledger.scm:104
@@ -26887,78 +27072,66 @@ msgstr "kode akun"
 #: gnucash/report/trep-engine.scm:1136
 #, fuzzy
 msgid "Sign Reverses"
-msgstr "Ma_suk"
+msgstr "Masuk membalikkan"
 
 #: gnucash/report/reports/standard/general-ledger.scm:111
 #: gnucash/report/trep-engine.scm:55
-#, fuzzy
 msgid "Detail Level"
-msgstr "Rincian:"
+msgstr "Tingkat Detail"
 
 #: gnucash/report/reports/standard/general-ledger.scm:124
 #: gnucash/report/trep-engine.scm:60
-#, fuzzy
 msgid "Primary Key"
-msgstr "Tanda tangan pengikatan kunci primer"
+msgstr "Kunci Utama"
 
 #: gnucash/report/reports/standard/general-ledger.scm:125
 #: gnucash/report/trep-engine.scm:64 gnucash/report/trep-engine.scm:1105
-#, fuzzy
 msgid "Show Full Account Name"
-msgstr "Tampilkan Nama Halaman lengkap"
+msgstr "Tampilkan Nama Lengkap Akun"
 
 #: gnucash/report/reports/standard/general-ledger.scm:127
 #: gnucash/report/trep-engine.scm:61
-#, fuzzy
 msgid "Primary Subtotal"
-msgstr "subtotal"
+msgstr "Subtotal Utama"
 
 #: gnucash/report/reports/standard/general-ledger.scm:128
 #: gnucash/report/trep-engine.scm:63
-#, fuzzy
 msgid "Primary Subtotal for Date Key"
-msgstr "Tanda tangan pengikatan kunci primer"
+msgstr "Subtotal Utama untuk Kunci Tanggal"
 
 #: gnucash/report/reports/standard/general-ledger.scm:129
 #: gnucash/report/trep-engine.scm:62
-#, fuzzy
 msgid "Primary Sort Order"
-msgstr "Sunting Urutkan _Urutan…"
+msgstr "Urutan Penyortiran Utama"
 
 #: gnucash/report/reports/standard/general-ledger.scm:130
 #: gnucash/report/trep-engine.scm:71
-#, fuzzy
 msgid "Secondary Key"
-msgstr "Sekunder"
+msgstr "Kunci Sekunder"
 
 #: gnucash/report/reports/standard/general-ledger.scm:131
 #: gnucash/report/trep-engine.scm:72
-#, fuzzy
 msgid "Secondary Subtotal"
-msgstr "subtotal"
+msgstr "Subtotal Sekunder"
 
 #: gnucash/report/reports/standard/general-ledger.scm:132
 #: gnucash/report/trep-engine.scm:74
-#, fuzzy
 msgid "Secondary Subtotal for Date Key"
-msgstr "Untuk mengubah tanggal kedaluwarsa kunci PGP:"
+msgstr "Subtotal Sekunder untuk Kunci Tanggal"
 
 #: gnucash/report/reports/standard/general-ledger.scm:133
 #: gnucash/report/trep-engine.scm:73
-#, fuzzy
 msgid "Secondary Sort Order"
-msgstr "Referensi Urutan Sortir"
+msgstr "Urutan Penyortiran Sekunder"
 
 #: gnucash/report/reports/standard/income-gst-statement.scm:39
-#, fuzzy
 msgid "Income and GST Statement"
-msgstr "laporan laba-rugi"
+msgstr "Pernyataan Pendapatan dan GST"
 
 #: gnucash/report/reports/standard/income-gst-statement.scm:41
 #: gnucash/report/trep-engine.scm:86
-#, fuzzy
 msgid "Filter"
-msgstr "Penyaring"
+msgstr "Filter"
 
 #: gnucash/report/reports/standard/income-gst-statement.scm:48
 msgid ""
@@ -26968,6 +27141,12 @@ msgid ""
 "liability, A/Payable or A/Receivable accounts, a split to a tax account, e."
 "g. Income:Sales -$1000, A/Receivable $1100, Liability:GST on Sales -$100."
 msgstr ""
+"Laporan ini berguna untuk menghitung pajak bisnis periodik utang/piutang "
+"dari pihak berwenang. Dari 'Sunting opsi laporan', pilih akun penjualan dan "
+"pembelian dari bisnis Anda. Setiap transaksi bisa berisi, selain akun aset, "
+"liabilitas, A/Utang atau A/Piutang, split ke akun pajak, misalnya "
+"Penghasilan:Penjualan -$1000, A/Piutang $1100, Liabilitas:GST pada Penjualan "
+"-$100."
 
 #: gnucash/report/reports/standard/income-gst-statement.scm:56
 msgid ""
@@ -26975,6 +27154,9 @@ msgid ""
 "from Business Invoices and Bills which will require Tax Tables to be set up "
 "correctly. Please see the documentation."
 msgstr ""
+"Akun pajak ini dapat diisi menggunakan register standar, atau dari Faktur "
+"dan Tagihan Bisnis yang akan memerlukan penyiapan Tabel Pajak dengan benar. "
+"Silakan lihat dokumentasi."
 
 #: gnucash/report/reports/standard/income-gst-statement.scm:60
 msgid ""
@@ -26985,6 +27167,12 @@ msgid ""
 "ASSET for taxes paid on expenses, and type LIABILITY for taxes collected on "
 "sales."
 msgstr ""
+"Dari Opsi Laporan, Anda perlu memilih akun yang akan memegang pajak GST/PPN "
+"yang dikumpulkan atau dibayar. Akun-akun ini harus berisi split yang "
+"mendokumentasikan uang yang seluruhnya dikirim atau diklaim dari otoritas "
+"pajak selama pengembalian GST/PPN periodik. Akun ini harus dari tipe ASET "
+"untuk pajak yang dibayar pada pengeluaran, dan tipe LIABILITAS untuk pajak "
+"yang dikumpulkan pada penjualan."
 
 #: gnucash/report/reports/standard/income-gst-statement.scm:66
 msgid ""
@@ -26992,76 +27180,73 @@ msgid ""
 "in the VAT account description. EU Goods sales and purchase accounts may be "
 "tagged with *EUGOODS* in the account description."
 msgstr ""
+"Catat bahwa varian UK dapat menentukan account PPN Uni Eropa yang dapat "
+"ditandai dengan *EUVAT* dalam deskripsi akun PPN. Akun penjualan dan "
+"pembelian Barang Uni Eropa dapat ditandai dengan *EUGOODS* dalam deskripsi "
+"akun."
 
 #: gnucash/report/reports/standard/income-gst-statement.scm:71
 msgid "This message will be removed when tax accounts are specified."
-msgstr ""
+msgstr "Pesan ini akan dihapus ketika akun pajak ditentukan."
 
 #: gnucash/report/reports/standard/income-gst-statement.scm:110
-#, fuzzy
 msgid "Individual sales columns"
-msgstr "penjualan"
+msgstr "Kolom penjualan individual"
 
 #: gnucash/report/reports/standard/income-gst-statement.scm:111
 msgid "Display individual sales columns rather than their sum"
-msgstr ""
+msgstr "Menampilkan kolom penjualan secara individual, bukan jumlahnya"
 
 #: gnucash/report/reports/standard/income-gst-statement.scm:112
-#, fuzzy
 msgid "Individual purchases columns"
-msgstr "Kolom"
+msgstr "Kolom pembelian individual"
 
 #: gnucash/report/reports/standard/income-gst-statement.scm:113
 msgid "Display individual purchases columns rather than their sum"
-msgstr ""
+msgstr "Menampilkan kolom pembelian secara individual, bukan jumlahnya"
 
 #: gnucash/report/reports/standard/income-gst-statement.scm:114
-#, fuzzy
 msgid "Individual tax columns"
-msgstr "Kolom"
+msgstr "Kolom pajak individual"
 
 #: gnucash/report/reports/standard/income-gst-statement.scm:115
 msgid "Display individual tax columns rather than their sum"
-msgstr ""
+msgstr "Menampilkan kolom pajak secara individual, bukan jumlahnya"
 
 #: gnucash/report/reports/standard/income-gst-statement.scm:116
 #: gnucash/report/reports/standard/income-gst-statement.scm:356
-#, fuzzy
 msgid "Gross Balance"
-msgstr "seimbangkan"
+msgstr "Saldo Kotor"
 
 #: gnucash/report/reports/standard/income-gst-statement.scm:117
 msgid "Display the gross balance (gross sales - gross purchases)"
-msgstr ""
+msgstr "Tampilkan saldo kotor (penjualan kotor - pembelian kotor)"
 
 #: gnucash/report/reports/standard/income-gst-statement.scm:118
 #: gnucash/report/reports/standard/income-gst-statement.scm:364
-#, fuzzy
 msgid "Net Balance"
-msgstr "seimbangkan"
+msgstr "Saldo Bersih"
 
 #: gnucash/report/reports/standard/income-gst-statement.scm:119
 msgid "Display the net balance (sales without tax - purchases without tax)"
-msgstr ""
+msgstr "Tampilkan saldo bersih (penjualan tanpa pajak - pembelian tanpa pajak)"
 
 #: gnucash/report/reports/standard/income-gst-statement.scm:121
 #: gnucash/report/reports/standard/income-gst-statement.scm:371
-#, fuzzy
 msgid "Tax payable"
-msgstr "kode pajak"
+msgstr "Utang Pajak"
 
 #: gnucash/report/reports/standard/income-gst-statement.scm:122
 msgid "Display the tax payable (tax on sales - tax on purchases)"
-msgstr ""
+msgstr "Tampilkan utang pajak (pajak penjualan - pajak pembelian)"
 
 #: gnucash/report/reports/standard/income-gst-statement.scm:141
 msgid "Purchases"
-msgstr ""
+msgstr "Pembelian"
 
 #: gnucash/report/reports/standard/income-gst-statement.scm:150
-#, fuzzy
 msgid "Tax Accounts"
-msgstr "kode pajak"
+msgstr "Akun Pajak"
 
 #: gnucash/report/reports/standard/income-gst-statement.scm:151
 msgid ""
@@ -27071,38 +27256,40 @@ msgid ""
 "These accounts must be of type ASSET for taxes paid on expenses, and type "
 "LIABILITY for taxes collected on sales."
 msgstr ""
+"Cari dan pilih akun untuk mencatat pajak yang dikumpulkan atau dibayar. Akun "
+"ini harus berisi split yang mendokumentasikan uang yang seluruhnya dikirim "
+"atau diklaim dari otoritas pajak selama pengembalian GST/PPN secara "
+"periodik. Akun ini harus menggunakan tipe ASET untuk pajak yang dibayar pada "
+"pengeluaran, dan tipe LIABILITAS untuk pajak yang dikumpulkan pada penjualan."
 
 #: gnucash/report/reports/standard/income-gst-statement.scm:161
-#, fuzzy
 msgid "Report format"
-msgstr "Lapo_rkan"
+msgstr "Format laporan"
 
 #: gnucash/report/reports/standard/income-gst-statement.scm:162
-#, fuzzy
 msgid "Report Format"
-msgstr "Lapo_rkan"
+msgstr "Format Laporan"
 
 #: gnucash/report/reports/standard/income-gst-statement.scm:164
 #: gnucash/report/reports/standard/income-gst-statement.scm:165
-#, fuzzy
 msgid "Default Format"
-msgstr "Format standar untuk menyalin teks dari papan klip"
+msgstr "Format Baku"
 
 #: gnucash/report/reports/standard/income-gst-statement.scm:167
-#, fuzzy
 msgid "Australia BAS"
-msgstr "Australia/Perth"
+msgstr "BAS Australia"
 
 #: gnucash/report/reports/standard/income-gst-statement.scm:168
+#, fuzzy
+#| msgid "Australia BAS. Specify sales, purchase and tax accounts."
 msgid ""
 "Australia Business Activity Statement. Specify sales, purchase and tax "
 "accounts."
-msgstr ""
+msgstr "BAS Australia. Tentukan penjualan, pembelian dan akun pajak."
 
 #: gnucash/report/reports/standard/income-gst-statement.scm:171
-#, fuzzy
 msgid "UK VAT Return"
-msgstr "tidak kembali"
+msgstr "Pengembalian PPN UK"
 
 #: gnucash/report/reports/standard/income-gst-statement.scm:172
 msgid ""
@@ -27110,79 +27297,75 @@ msgid ""
 "used. Denote EU VAT accounts *EUVAT* in account description, and denote EU "
 "goods sales and purchases accounts with *EUGOODS* in the account description."
 msgstr ""
+"Pengembalian PPN UK. Tentukan akun penjualan, pembelian dan pajak. Aturan "
+"Uni Eropa dapat digunakan. Denotasikan akun PPN Uni Eropa *EUVAT* dalam "
+"deskripsi akun, dan denotasikan akun penjualan dan pembelian barang Uni "
+"Eropa dengan *EUGOODS* dalam deskripsi akun."
 
 #. Translators: "Gross Sales" refer to Net Sales + GST/VAT on Sales
 #: gnucash/report/reports/standard/income-gst-statement.scm:316
-#, fuzzy
 msgid "Gross Sales"
-msgstr "penjualan"
+msgstr "Penjualan Kotor"
 
 #: gnucash/report/reports/standard/income-gst-statement.scm:323
-#, fuzzy
 msgid "Net Sales"
-msgstr "penjualan"
+msgstr "Penjualan Bersih"
 
 #: gnucash/report/reports/standard/income-gst-statement.scm:330
-#, fuzzy
 msgid "Tax on Sales"
-msgstr "penjualan"
+msgstr "Pajak Penjualan"
 
 #. Translators: "Gross Purchases" refer to Net Purchase +
 #. GST/VAT on Purchase
 #: gnucash/report/reports/standard/income-gst-statement.scm:334
-#, fuzzy
 msgid "Gross Purchases"
-msgstr "Margin Keuntungan Bruto"
+msgstr "Pembelian Kotor"
 
 #: gnucash/report/reports/standard/income-gst-statement.scm:342
-#, fuzzy
 msgid "Net Purchases"
-msgstr "bersih"
+msgstr "Pembelian Bersih"
 
 #: gnucash/report/reports/standard/income-gst-statement.scm:350
-#, fuzzy
 msgid "Tax on Purchases"
-msgstr "kode pajak"
+msgstr "Pajak Pembelian"
 
 #: gnucash/report/reports/standard/income-statement.scm:95
 msgid "Label the trading accounts section"
-msgstr ""
+msgstr "Beri label bagian akun perdagangan"
 
 #: gnucash/report/reports/standard/income-statement.scm:97
 msgid "Whether or not to include a label for the trading accounts section."
-msgstr ""
+msgstr "Apakah menyertakan label untuk bagian akun perdagangan."
 
 #: gnucash/report/reports/standard/income-statement.scm:98
 msgid "Include trading accounts total"
-msgstr ""
+msgstr "Sertakan total akun perdagangan"
 
 #: gnucash/report/reports/standard/income-statement.scm:100
 msgid ""
 "Whether or not to include a line indicating total trading accounts balance."
 msgstr ""
+"Apakah menyertakan sebuah baris yang menunjukkan total saldo akun "
+"perdagangan."
 
 #: gnucash/report/reports/standard/income-statement.scm:518
-#: libgnucash/engine/Account.cpp:4328 libgnucash/engine/Scrub.c:457
-#: libgnucash/engine/Scrub.c:522
-#, fuzzy
+#: libgnucash/engine/Account.cpp:4375 libgnucash/engine/Scrub.c:472
+#: libgnucash/engine/Scrub.c:537
 msgid "Trading"
-msgstr "tipe akun: perdagangan"
+msgstr "Perdagangan"
 
 #: gnucash/report/reports/standard/income-statement.scm:521
-#, fuzzy
 msgid "Total Trading"
-msgstr "tipe akun: perdagangan"
+msgstr "Total Perdagangan"
 
 #: gnucash/report/reports/standard/income-statement.scm:572
-#: gnucash/report/reports/standard/trial-balance.scm:572
-#, fuzzy
+#: gnucash/report/reports/standard/trial-balance.scm:573
 msgid "Income Statement"
-msgstr "laporan laba-rugi"
+msgstr "Pernyataan Pendapatan"
 
 #: gnucash/report/reports/standard/income-statement.scm:573
-#, fuzzy
 msgid "Profit & Loss"
-msgstr "Keuntungan & Kerugian"
+msgstr "Laba & Rugi"
 
 #: gnucash/report/reports/standard/invoice.scm:102
 #: gnucash/report/reports/standard/invoice.scm:247
@@ -27190,50 +27373,45 @@ msgstr "Keuntungan & Kerugian"
 #: gnucash/report/reports/standard/receipt.scm:131
 #: gnucash/report/reports/standard/taxinvoice.scm:116
 #: gnucash/report/reports/standard/taxinvoice.scm:189
-#, fuzzy
 msgid "Tax Amount"
-msgstr "kode pajak"
+msgstr "Jumlah Pajak"
 
 #. Translators: "Their details" refer to the invoice 'other party' details i.e. client/vendor name/address/ID
 #: gnucash/report/reports/standard/invoice.scm:113
-#, fuzzy
 msgid "Their details"
-msgstr "_Detail"
+msgstr "Detail Mereka"
 
 #: gnucash/report/reports/standard/invoice.scm:114
 msgid "Client or vendor name, address and ID"
-msgstr ""
+msgstr "Nama, alamat dan ID klien atau vendor"
 
 #. Translators: "Our details" refer to the book owner's details i.e. name/address/tax-ID
 #: gnucash/report/reports/standard/invoice.scm:117
-#, fuzzy
 msgid "Our details"
-msgstr "_Detail"
+msgstr "Detail Kita"
 
 #: gnucash/report/reports/standard/invoice.scm:118
 msgid "Company name, address and tax-ID"
-msgstr ""
+msgstr "Nama, alamat dan ID pajak perusahaan"
 
 #: gnucash/report/reports/standard/invoice.scm:120
-#, fuzzy
 msgid "Invoice details"
-msgstr "faktur"
+msgstr "Detail faktur"
 
 #: gnucash/report/reports/standard/invoice.scm:121
 msgid "Invoice date, due date, billing ID, terms, job details"
 msgstr ""
+"Tanggal faktur, tanggal jatuh tempo, ID tagihan, ketentuan, rincian pekerjaan"
 
 #: gnucash/report/reports/standard/invoice.scm:123
 #: gnucash/report/reports/standard/invoice.scm:124
-#, fuzzy
 msgid "Today's date"
-msgstr "sampai Hari ini"
+msgstr "Tanggal hari ini"
 
 #: gnucash/report/reports/standard/invoice.scm:126
 #: gnucash/report/reports/standard/invoice.scm:127
-#, fuzzy
 msgid "Picture"
-msgstr "Tambah Gambar…"
+msgstr "Gambar"
 
 #. Translators: "(empty)" refers to invoice header section being left blank
 #: gnucash/report/reports/standard/invoice.scm:130
@@ -27241,22 +27419,17 @@ msgid "(empty)"
 msgstr "(kosong)"
 
 #: gnucash/report/reports/standard/invoice.scm:131
-#, fuzzy
 msgid "Empty space"
-msgstr ""
-"Klik kanan di mana saja di ruang kosong di folder, lalu pilih <gui style="
-"\"menuitem\">Dokumen Baru</gui>. Nama templat yang tersedia akan dicantumkan "
-"dalam sub menu."
+msgstr "Ruang kosong"
 
 #: gnucash/report/reports/standard/invoice.scm:195
-#, fuzzy
 msgid "Custom Title"
-msgstr "Judul Gubahan"
+msgstr "Judul Tersuai"
 
 #: gnucash/report/reports/standard/invoice.scm:196
 msgid "A custom string to replace Invoice, Bill or Expense Voucher."
 msgstr ""
-"String suai untuk menggantikan Faktur, Tagihan atau Voucer Pengeluaran."
+"String tersuai untuk menggantikan Faktur, Tagihan atau Voucer Pengeluaran."
 
 #: gnucash/report/reports/standard/invoice.scm:201
 #: gnucash/report/reports/standard/invoice.scm:207
@@ -27266,16 +27439,14 @@ msgstr ""
 #: gnucash/report/reports/standard/invoice.scm:369
 #: gnucash/report/reports/standard/invoice.scm:376
 #: gnucash/report/reports/standard/invoice.scm:383
-#, fuzzy
 msgid "Layout"
 msgstr "Tata Letak"
 
 #: gnucash/report/reports/standard/invoice.scm:201
 #: gnucash/report/stylesheets/css.scm:118
 #: gnucash/report/stylesheets/css.scm:224
-#, fuzzy
 msgid "CSS"
-msgstr "Berkas CSS untuk dipakai"
+msgstr "CSS"
 
 #: gnucash/report/reports/standard/invoice.scm:201
 msgid ""
@@ -27286,23 +27457,22 @@ msgstr ""
 "Silakan lihat laporan yang diekspor untuk mendapatkan nama class CSS."
 
 #: gnucash/report/reports/standard/invoice.scm:207
-#, fuzzy
 msgid "Picture Location"
-msgstr "Lokasi"
+msgstr "Lokasi Gambar"
 
 #: gnucash/report/reports/standard/invoice.scm:207
 msgid "Location for Picture"
 msgstr "Lokasi Gambar"
 
 #: gnucash/report/reports/standard/invoice.scm:213
-#: gnucash/report/reports/standard/register.scm:383
+#: gnucash/report/reports/standard/register.scm:354
 #: gnucash/report/reports/standard/taxinvoice.scm:135
 #: gnucash/report/trep-engine.scm:940
 msgid "Display the date?"
 msgstr "Tampilkan tanggal?"
 
 #: gnucash/report/reports/standard/invoice.scm:218
-#: gnucash/report/reports/standard/register.scm:398
+#: gnucash/report/reports/standard/register.scm:369
 #: gnucash/report/trep-engine.scm:945
 msgid "Display the description?"
 msgstr "Tampilkan deskripsi?"
@@ -27325,7 +27495,7 @@ msgstr "Tampilkan diskon entri?"
 
 #: gnucash/report/reports/standard/invoice.scm:243
 msgid "Display the entry's taxable status?"
-msgstr "Tampilkan status pajak entri?"
+msgstr "Tampilkan status kena pajak untuk entri?"
 
 #: gnucash/report/reports/standard/invoice.scm:248
 msgid "Display each entry's total total tax?"
@@ -27345,25 +27515,23 @@ msgstr "Tampilkan subtotal?"
 
 #: gnucash/report/reports/standard/invoice.scm:267
 msgid "Payable to"
-msgstr ""
+msgstr "Utang ke"
 
 #: gnucash/report/reports/standard/invoice.scm:268
-#, fuzzy
 msgid "Display the Payable to: information."
-msgstr "Tampilkan informasi tentang citra ini"
+msgstr "Tampilkan informasi Utang ke:."
 
 #: gnucash/report/reports/standard/invoice.scm:275
-#, fuzzy
 msgid "Payable to string"
-msgstr "String"
+msgstr "String utang ke"
 
 #: gnucash/report/reports/standard/invoice.scm:276
 msgid "The phrase for specifying to whom payments should be made."
-msgstr ""
+msgstr "Frasa untuk menentukan kepada siapa pembayaran harus dilakukan."
 
 #: gnucash/report/reports/standard/invoice.scm:277
 msgid "Please make all checks payable to"
-msgstr ""
+msgstr "Harap membuat semua cek terutang ke"
 
 #: gnucash/report/reports/standard/invoice.scm:281
 msgid "Company contact"
@@ -27383,26 +27551,27 @@ msgstr "Frasa ini digunakan untuk mengenalkan narahubung perusahaan."
 
 #: gnucash/report/reports/standard/invoice.scm:290
 msgid "Please direct all enquiries to"
-msgstr ""
+msgstr "Silahkan tujukan semua pertanyaan ke"
 
 #: gnucash/report/reports/standard/invoice.scm:294
 msgid "Minimum # of entries"
-msgstr ""
+msgstr "Minimum # entri"
 
 #: gnucash/report/reports/standard/invoice.scm:295
 msgid "The minimum number of invoice entries to display."
-msgstr ""
+msgstr "Jumlah minimum entri faktur untuk ditampilkan."
 
 #: gnucash/report/reports/standard/invoice.scm:300
-#, fuzzy
 msgid "Use Detailed Tax Summary"
-msgstr "Gunakan %s untuk memperoleh bantuan terrinci.\n"
+msgstr "Gunakan Ikhtisar Pajak Detail"
 
 #: gnucash/report/reports/standard/invoice.scm:301
 msgid ""
 "Display all tax categories separately (one per line) instead of one single "
 "tax line.?"
 msgstr ""
+"Tampilkan semua kategori pajak secara terpisah (satu kategori per baris), "
+"bukannya satu baris pajak saja?"
 
 #: gnucash/report/reports/standard/invoice.scm:307
 msgid "References"
@@ -27579,7 +27748,7 @@ msgstr "Pekerjaan untuk laporan ini."
 #: gnucash/report/reports/standard/job-report.scm:360
 #: gnucash/report/reports/standard/owner-report.scm:543
 msgid "The account to search for transactions."
-msgstr ""
+msgstr "Akun untuk mencari transaksi."
 
 #: gnucash/report/reports/standard/job-report.scm:370
 #: gnucash/report/reports/standard/job-report.scm:375
@@ -27646,12 +27815,12 @@ msgstr "Klik pada tombol \"Opsi\" untuk memilih perusahaan."
 
 #: gnucash/report/reports/standard/lot-viewer.scm:60
 msgid "The account to search for lots."
-msgstr ""
+msgstr "Akun untuk mencari lot."
 
 #: gnucash/report/reports/standard/net-charts.scm:48
 #: gnucash/report/reports/standard/price-scatter.scm:50
 msgid "Show Net Profit"
-msgstr "Tampilkan Keuntungan Bersih"
+msgstr "Tampilkan Laba Bersih"
 
 #: gnucash/report/reports/standard/net-charts.scm:50
 msgid "Show Asset & Liability"
@@ -27683,7 +27852,7 @@ msgstr "Tampilkan bilah Aset dan Liabilitas?"
 
 #: gnucash/report/reports/standard/net-charts.scm:126
 msgid "Show the net profit?"
-msgstr "Tampilkan keuntungan bersih?"
+msgstr "Tampilkan laba bersih?"
 
 #: gnucash/report/reports/standard/net-charts.scm:127
 msgid "Show a Net Worth bar?"
@@ -27696,7 +27865,7 @@ msgstr "Tambahkan garis kisi."
 #: gnucash/report/reports/standard/net-charts.scm:393
 #: gnucash/report/reports/standard/net-charts.scm:425
 msgid "Net Profit"
-msgstr "Keuntungan Bersih"
+msgstr "Laba Bersih"
 
 #: gnucash/report/reports/standard/net-charts.scm:393
 #: gnucash/report/reports/standard/net-charts.scm:426
@@ -27758,7 +27927,7 @@ msgstr "Tipe Txn Tidak Valid ~a"
 
 #: gnucash/report/reports/standard/new-aging.scm:386
 msgid "Payment has no owner"
-msgstr ""
+msgstr "Pembayaran tak mempunyai pemilik"
 
 #: gnucash/report/reports/standard/new-aging.scm:416
 #: gnucash/report/reports/standard/receivables.scm:65
@@ -27800,7 +27969,7 @@ msgstr "Penjualan"
 
 #: gnucash/report/reports/standard/new-owner-report.scm:56
 #: gnucash/report/reports/standard/owner-report.scm:57
-#: gnucash/report/report-utilities.scm:104
+#: gnucash/report/report-utilities.scm:116
 msgid "Credits"
 msgstr "Kredit"
 
@@ -27890,10 +28059,10 @@ msgid "Display the period credits column?"
 msgstr "Tampilkan kolom periode kredit?"
 
 #: gnucash/report/reports/standard/new-owner-report.scm:928
-#: gnucash/report/reports/standard/register.scm:442
+#: gnucash/report/reports/standard/register.scm:413
 #: gnucash/report/trep-engine.scm:958
 msgid "Display a running balance?"
-msgstr ""
+msgstr "Tampilkan saldo berjalan?"
 
 #: gnucash/report/reports/standard/new-owner-report.scm:933
 msgid "Show linked transactions"
@@ -27909,7 +28078,7 @@ msgstr "Sederhana"
 
 #: gnucash/report/reports/standard/new-owner-report.scm:939
 msgid "Invoices show if paid, payments show invoice numbers."
-msgstr ""
+msgstr "Faktur menampilkan jika dibayar, pembayaran menampilkan nomor faktur."
 
 #: gnucash/report/reports/standard/new-owner-report.scm:941
 msgid "Detailed"
@@ -27919,11 +28088,14 @@ msgstr "Detail"
 msgid ""
 "Invoices show list of payments, payments show list of invoices and amounts."
 msgstr ""
+"Faktur menampilkan daftar pembayaran, pembayaran menampilkan daftar faktur "
+"dan jumlahnya."
 
 #: gnucash/report/reports/standard/new-owner-report.scm:948
 #, fuzzy
+#| msgid "Display amounts as hyperlinks"
 msgid "Display document link?"
-msgstr "Tampilkan pada…"
+msgstr "Tampilkan jumlah sebagai tautan"
 
 #: gnucash/report/reports/standard/new-owner-report.scm:1076
 msgid "No valid account found"
@@ -27931,7 +28103,7 @@ msgstr "Akun yang valid tidak ditemukan"
 
 #: gnucash/report/reports/standard/new-owner-report.scm:1077
 msgid "This report requires a valid AP/AR account to be available."
-msgstr ""
+msgstr "Laporan ini membutuhkan akun AP/AR yang valid."
 
 #: gnucash/report/reports/standard/new-owner-report.scm:1100
 msgid "No transactions found."
@@ -27939,9 +28111,8 @@ msgstr "Transaksi tidak ditemukan."
 
 #: gnucash/report/reports/standard/new-owner-report.scm:1101
 #: gnucash/report/trep-engine.scm:108
-#, fuzzy
 msgid "No matching transactions found"
-msgstr "Kurung pasangan"
+msgstr "Tak ditemukan transaksi yang cocok"
 
 #: gnucash/report/reports/standard/owner-report.scm:84
 msgid "No valid company selected."
@@ -27968,215 +28139,195 @@ msgid "Payable Account"
 msgstr "Akun Utang"
 
 #: gnucash/report/reports/standard/payables.scm:47
-#, fuzzy
 msgid "The payable account you wish to examine."
-msgstr "Pilih akun yang ingin Anda hapus."
+msgstr "Account utang yang akan diperiksa."
 
 #: gnucash/report/reports/standard/portfolio.scm:33
-#, fuzzy
 msgid "Investment Portfolio"
-msgstr "portofolio"
+msgstr "Portofolio Investasi"
 
 #: gnucash/report/reports/standard/portfolio.scm:256
 #: gnucash/report/reports/standard/receipt.scm:53
 #: gnucash/report/reports/standard/receipt.scm:117
 #: gnucash/report/reports/standard/taxinvoice.scm:109
 #: gnucash/report/reports/standard/taxinvoice.scm:175
-#, fuzzy
 msgid "Units"
 msgstr "Satuan"
 
 #: gnucash/report/reports/standard/price-scatter.scm:41
-#, fuzzy
 msgid "Price of Commodity"
-msgstr "komoditas"
+msgstr "Harga Komoditas"
 
 #: gnucash/report/reports/standard/price-scatter.scm:43
 #, fuzzy
 msgid "Invert prices"
-msgstr "Bal_ikkan"
+msgstr "harga invert"
 
 #: gnucash/report/reports/standard/price-scatter.scm:52
 msgid "Show Asset & Liability bars"
-msgstr ""
+msgstr "Tampilkan bilah Aset & Liabilitas"
 
 #: gnucash/report/reports/standard/price-scatter.scm:53
-#, fuzzy
 msgid "Show Net Worth bars"
-msgstr "nilai bersih"
+msgstr "Tampilkan bilah Kekayaan Bersih"
 
 #: gnucash/report/reports/standard/price-scatter.scm:55
-#, fuzzy
 msgid "Marker"
-msgstr "penanda"
+msgstr "Penanda"
 
 #: gnucash/report/reports/standard/price-scatter.scm:56
-#, fuzzy
 msgid "Marker Color"
-msgstr "penanda"
+msgstr "Warna Penanda"
 
 #: gnucash/report/reports/standard/price-scatter.scm:81
-#, fuzzy
 msgid "Calculate the price of this commodity."
-msgstr "komoditas"
+msgstr "Hitung harga komoditas ini."
 
 #: gnucash/report/reports/standard/price-scatter.scm:93
-#, fuzzy
 msgid "Actual Transactions"
-msgstr "Ukuran sebenarnya"
+msgstr "Transaksi Sebenarnya"
 
 #: gnucash/report/reports/standard/price-scatter.scm:94
 msgid "The instantaneous price of actual currency transactions in the past."
-msgstr ""
+msgstr "Harga sesaat dari transaksi mata uang yang aktual di masa lalu."
 
 #: gnucash/report/reports/standard/price-scatter.scm:97
 msgid "The recorded prices."
-msgstr ""
+msgstr "Harga tercatat."
 
 #: gnucash/report/reports/standard/price-scatter.scm:104
 msgid "Plot commodity per currency rather than currency per commodity."
-msgstr ""
+msgstr "Plot komoditas per mata uang daripada mata uang per komoditas."
 
 #: gnucash/report/reports/standard/price-scatter.scm:120
-#, fuzzy
 msgid "Color of the marker."
-msgstr "penanda"
+msgstr "Warna penanda."
 
 #: gnucash/report/reports/standard/price-scatter.scm:140
-#, fuzzy
 msgid "Double-Weeks"
-msgstr "minggu"
+msgstr "Dua-Minggu"
 
 #: gnucash/report/reports/standard/price-scatter.scm:142
 msgid "Quarters"
 msgstr "Kuartal"
 
 #: gnucash/report/reports/standard/price-scatter.scm:143
-#, fuzzy
 msgid "Half Years"
-msgstr "Tahun"
+msgstr "Setengah Tahun"
 
 #: gnucash/report/reports/standard/price-scatter.scm:238
-#, fuzzy
 msgid "Identical commodities"
-msgstr "Membuat salinan identik dari suatu cakram."
+msgstr "Komoditas identik"
 
 #: gnucash/report/reports/standard/price-scatter.scm:239
 msgid ""
 "Your selected commodity and the currency of the report are identical. It "
 "doesn't make sense to show prices for identical commodities."
 msgstr ""
+"Komoditas yang dipilih dan mata uang laporan adalah identik. Tidak mungkin "
+"menampilkan harga untuk komoditas yang identik."
 
 #: gnucash/report/reports/standard/price-scatter.scm:277
 msgid ""
 "There is no price information available for the selected commodities in the "
 "selected time period."
 msgstr ""
+"Tidak ada informasi harga yang tersedia untuk komoditas terpilih pada "
+"periode waktu yang dipilih."
 
 #: gnucash/report/reports/standard/price-scatter.scm:282
-#, fuzzy
 msgid "Only one price"
-msgstr "Harap pilih salah satu lagu saja."
+msgstr "Hanya satu harga"
 
 #: gnucash/report/reports/standard/price-scatter.scm:283
 msgid ""
 "There was only one single price found for the selected commodities in the "
 "selected time period. This doesn't give a useful plot."
 msgstr ""
+"Hanya ada satu harga yang ditemukan untuk komoditas terpilih pada periode "
+"waktu yang dipilih. Ini tidak memberikan plot yang berguna."
 
 #: gnucash/report/reports/standard/price-scatter.scm:289
-#, fuzzy
 msgid "All Prices equal"
-msgstr "Tak sama dengan"
+msgstr "Semua Harga sama"
 
 #: gnucash/report/reports/standard/price-scatter.scm:290
 msgid ""
 "All the prices found are equal. This would result in a plot with one "
 "straight line. Unfortunately, the plotting tool can't handle that."
 msgstr ""
+"Semua harga yang ditemukan adalah sama. Ini akan menghasilkan sebuah plot "
+"dengan satu garis lurus. Sayangnya, alat plot tak dapat menangani itu."
 
 #: gnucash/report/reports/standard/price-scatter.scm:296
-#, fuzzy
 msgid "All Prices at the same date"
-msgstr "_Terapkan tatanan tilikan yang sama untuk semua folder"
+msgstr "Semua Harga pada tanggal yang sama"
 
 #: gnucash/report/reports/standard/price-scatter.scm:297
 msgid ""
 "All the prices found are from the same date. This would result in a plot "
 "with one straight line. Unfortunately, the plotting tool can't handle that."
 msgstr ""
+"Semua harga yang ditemukan berasal dari tanggal yang sama. Ini akan "
+"menghasilkan sebuah plot dengan satu garis lurus. Sayangnya, alat plot tak "
+"dapat menangani itu."
 
 #: gnucash/report/reports/standard/price-scatter.scm:329
-#, fuzzy
 msgid "Price Scatterplot"
-msgstr "harga"
+msgstr "Plot-tersebar Harga"
 
 #: gnucash/report/reports/standard/receipt.scm:36
 #: gnucash/report/reports/standard/taxinvoice.scm:76
-#, fuzzy
 msgid "Headings 1"
-msgstr "Ekspor HTML - Berdasarkan Tajuk"
+msgstr "Tajuk 1"
 
 #: gnucash/report/reports/standard/receipt.scm:37
 #: gnucash/report/reports/standard/taxinvoice.scm:77
-#, fuzzy
 msgid "Headings 2"
-msgstr "Ekspor HTML - Berdasarkan Tajuk"
+msgstr "Tajuk 2"
 
 #: gnucash/report/reports/standard/receipt.scm:43
 #: gnucash/report/reports/standard/taxinvoice.scm:102
-#, fuzzy
 msgid "Report title"
-msgstr "Lapo_rkan"
+msgstr "Judul laporan"
 
 #: gnucash/report/reports/standard/receipt.scm:44
 #: libgnucash/app-utils/business-prefs.scm:40
-#, fuzzy
 msgid "Invoice number"
-msgstr "faktur"
+msgstr "Nomor faktur"
 
 #: gnucash/report/reports/standard/receipt.scm:47
 #: gnucash/report/reports/standard/taxinvoice.scm:105
-#, fuzzy
 msgid "Heading font"
-msgstr "Tajuk"
+msgstr "Fonta tajuk"
 
 #: gnucash/report/reports/standard/receipt.scm:48
 #: gnucash/report/reports/standard/taxinvoice.scm:106
-#, fuzzy
 msgid "Text font"
-msgstr ""
-"Papan Tik;Tetikus;a11y;Aksesibilitas;Kontras;Kursor;Suara;Zum;Layar;Pembaca;"
-"besar;tinggi;besar;teks;fonta;ukuran;AccessX;Lengket;Tombol;Lambat;Pantul;"
-"Tetikus;Dobel;klik;Tunda;Kecepatan;Bantu;Ulangi; Berkedip;visual;mendengar;"
-"audio;mengetik;"
+msgstr "Fonta teks"
 
 #: gnucash/report/reports/standard/receipt.scm:49
-#, fuzzy
 msgid "Header logo filename"
-msgstr "Logo:"
+msgstr "Nama berkas logo kepala"
 
 #: gnucash/report/reports/standard/receipt.scm:50
-#, fuzzy
 msgid "Header logo width"
-msgstr "Logo:"
+msgstr "Lebar logo kepala"
 
 #: gnucash/report/reports/standard/receipt.scm:51
-#, fuzzy
 msgid "Footer logo filename"
-msgstr "Logo:"
+msgstr "Nama berkas logo kaki"
 
 #: gnucash/report/reports/standard/receipt.scm:52
-#, fuzzy
 msgid "Footer logo width"
-msgstr "Logo:"
+msgstr "Lebar logo kaki"
 
 #: gnucash/report/reports/standard/receipt.scm:54
 #: gnucash/report/reports/standard/receipt.scm:119
 #: gnucash/report/reports/standard/taxinvoice.scm:110
 #: gnucash/report/reports/standard/taxinvoice.scm:177
 msgid "Qty"
-msgstr ""
+msgstr "Kuant"
 
 #: gnucash/report/reports/standard/receipt.scm:56
 #: gnucash/report/reports/standard/receipt.scm:123
@@ -28184,48 +28335,42 @@ msgstr ""
 #: gnucash/report/reports/standard/taxinvoice.scm:181
 #, fuzzy
 msgid "Discount Rate"
-msgstr "diskon"
+msgstr "Nilai diskon"
 
 #: gnucash/report/reports/standard/receipt.scm:57
 #: gnucash/report/reports/standard/receipt.scm:125
 #: gnucash/report/reports/standard/taxinvoice.scm:113
 #: gnucash/report/reports/standard/taxinvoice.scm:183
-#, fuzzy
 msgid "Discount Amount"
-msgstr "diskon"
+msgstr "Jumlah Diskon"
 
 #: gnucash/report/reports/standard/receipt.scm:59
 #: gnucash/report/reports/standard/receipt.scm:129
 #: gnucash/report/reports/standard/taxinvoice.scm:115
 #: gnucash/report/reports/standard/taxinvoice.scm:187
-#, fuzzy
 msgid "Tax Rate"
-msgstr "kode pajak"
+msgstr "Tarif Pajak"
 
 #: gnucash/report/reports/standard/receipt.scm:62
 #: gnucash/report/reports/standard/receipt.scm:135
 #: gnucash/report/reports/standard/taxinvoice.scm:118
 #: gnucash/report/reports/standard/taxinvoice.scm:193
-#, fuzzy
 msgid "Sub-total"
-msgstr "Total:"
+msgstr "Sub-total"
 
 #: gnucash/report/reports/standard/receipt.scm:64
 #: gnucash/report/reports/standard/taxinvoice.scm:120
-#, fuzzy
 msgid "Payment received text"
-msgstr "Diterima"
+msgstr "Teks pembayaran diterima"
 
 #: gnucash/report/reports/standard/receipt.scm:65
 #: gnucash/report/reports/standard/taxinvoice.scm:121
-#, fuzzy
 msgid "Extra notes"
-msgstr "Catatan"
+msgstr "Catatan ekstra"
 
 #: gnucash/report/reports/standard/receipt.scm:66
-#, fuzzy
 msgid "Today date format"
-msgstr "format tanggal"
+msgstr "Format tanggal hari ini"
 
 #: gnucash/report/reports/standard/receipt.scm:81
 msgid ""
@@ -28233,6 +28378,9 @@ msgid ""
 "either be in your .gnucash directory, or else in its proper place within the "
 "GnuCash installation directories."
 msgstr ""
+"Nama berkas templat eguile sebagai bagian laporan ini.  Berkas ini harus "
+"berada di direktori .gnucash Anda, atau di lokasi lain di dalam direktori "
+"instalasi GnuCash."
 
 #: gnucash/report/reports/standard/receipt.scm:84
 msgid ""
@@ -28240,22 +28388,23 @@ msgid ""
 "should either be in your .gnucash directory, or else in its proper place "
 "within the GnuCash installation directories."
 msgstr ""
+"Nama berkas lembar gaya CSS untuk digunakan pada laporan ini.  Berkas ini "
+"harus berada di direktori .gnucash Anda, atau di lokasi lain di dalam "
+"direktori instalasi GnuCash."
 
 #: gnucash/report/reports/standard/receipt.scm:88
 #: gnucash/report/reports/standard/taxinvoice.scm:156
-#, fuzzy
 msgid "Font to use for the main heading."
-msgstr "Menentukan memakai fonta sistem"
+msgstr "Fonta yang digunakan untuk tajuk utama."
 
 #: gnucash/report/reports/standard/receipt.scm:91
 #: gnucash/report/reports/standard/taxinvoice.scm:159
-#, fuzzy
 msgid "Font to use for everything else."
-msgstr "Menentukan memakai fonta sistem"
+msgstr "Fonta yang digunakan untuk selainnya."
 
 #: gnucash/report/reports/standard/receipt.scm:94
 msgid "Name of a file containing a logo to be used on the header of the report"
-msgstr ""
+msgstr "Nama berkas yang berisi logo untuk digunakan pada kepala laporan"
 
 #: gnucash/report/reports/standard/receipt.scm:97
 msgid ""
@@ -28269,7 +28418,7 @@ msgstr ""
 
 #: gnucash/report/reports/standard/receipt.scm:100
 msgid "Name of a file containing a logo to be used on the footer of the report"
-msgstr ""
+msgstr "Nama berkas yang berisi logo untuk digunakan pada kaki laporan"
 
 #: gnucash/report/reports/standard/receipt.scm:103
 msgid ""
@@ -28283,38 +28432,35 @@ msgstr ""
 
 #: gnucash/report/reports/standard/receipt.scm:107
 msgid "The format for the date->string conversion for today's date."
-msgstr ""
+msgstr "Format untuk konversi tanggal->string untuk tanggal hari ini."
 
 #. Translators: Boost::date_time format string
 #. "%l:%M %P, %e %B %Y" means " 9:56 pm, 19 June 2019"
 #: gnucash/report/reports/standard/receipt.scm:110
-#, fuzzy
 msgid "%l:%M %P, %e %B %Y"
-msgstr "%e %b %Y %l:%M %p"
+msgstr "%l:%M %P, %e %B %Y"
 
 #: gnucash/report/reports/standard/receipt.scm:140
 #: gnucash/report/reports/standard/taxinvoice.scm:198
-#, fuzzy
 msgid "Payment received, thank you!"
-msgstr "Anda menerima \"%s\" melalui Bluetooth"
+msgstr "Pembayaran diterima, terima kasih!"
 
 #: gnucash/report/reports/standard/receipt.scm:144
 msgid "Notes added at end of invoice -- may contain HTML markup"
 msgstr ""
+"Catatan yang ditambahkan di bagian akhir faktur -- bisa berisi markah HTML"
 
 #: gnucash/report/reports/standard/receipt.scm:211
 msgid "Display a customer invoice as receipt, cash voucher"
-msgstr ""
+msgstr "Tampilkan faktur pelanggan sebagai tanda terima, voucer tunai"
 
 #: gnucash/report/reports/standard/receivables.scm:36
-#, fuzzy
 msgid "Receivables Account"
-msgstr "Utang/Piutang"
+msgstr "Akun Piutang"
 
 #: gnucash/report/reports/standard/receivables.scm:48
-#, fuzzy
 msgid "The receivables account you wish to examine."
-msgstr "Pilih akun yang ingin Anda hapus."
+msgstr "Akun piutang yang akan diperiksa."
 
 #: gnucash/report/reports/standard/reconcile-report.scm:59
 msgid ""
@@ -28322,312 +28468,257 @@ msgid ""
 "tool.  Please select the account from Report Options. Please note the dates "
 "specified in the options will apply to the Reconciliation Date."
 msgstr ""
+"Laporan rekonsiliasi dirancang supaya mirip dengan alat rekonsiliasi "
+"formal.  Silakan pilih akun dari Opsi Laporan. Harap dicatat bahwa tanggal "
+"yang ditentukan di dalam opsi akan diterapkan ke Tanggal Rekonsiliasi."
 
 #: gnucash/report/reports/standard/reconcile-report.scm:103
-#, fuzzy
 msgid "Reconciliation Report"
-msgstr "Lapo_rkan"
+msgstr "Laporan Rekonsiliasi"
 
 #: gnucash/report/reports/standard/register.scm:148
-#: gnucash/report/reports/standard/register.scm:417
+#: gnucash/report/reports/standard/register.scm:388
 #: libgnucash/engine/gnc-lot.c:779
-#, fuzzy
 msgid "Lot"
 msgstr "Lot"
 
 #: gnucash/report/reports/standard/register.scm:160
-#, fuzzy
 msgid "Debit Value"
-msgstr "aksi: penarikan langsung"
+msgstr "Nilai Debit"
 
 #: gnucash/report/reports/standard/register.scm:162
-#, fuzzy
 msgid "Credit Value"
-msgstr "Kartu Kredit"
+msgstr "Nilai Kredit"
 
-#: gnucash/report/reports/standard/register.scm:377
-#, fuzzy
+#: gnucash/report/reports/standard/register.scm:348
 msgid "The title of the report."
-msgstr "Lapo_rkan"
+msgstr "Judul laporan."
 
-#: gnucash/report/reports/standard/register.scm:389
-#, fuzzy
+#: gnucash/report/reports/standard/register.scm:360
 msgid "Display the check number/action?"
-msgstr "Tampilkan nomor versi"
+msgstr "Tampilkan nomor/aksi cek?"
 
-#: gnucash/report/reports/standard/register.scm:393
+#: gnucash/report/reports/standard/register.scm:364
 #: gnucash/report/trep-engine.scm:943 gnucash/report/trep-engine.scm:944
-#, fuzzy
 msgid "Display the check number?"
-msgstr "Tampilkan nomor versi"
+msgstr "Tampilkan nomor cek?"
 
-#: gnucash/report/reports/standard/register.scm:403
+#: gnucash/report/reports/standard/register.scm:374
 #: gnucash/report/trep-engine.scm:972
-#, fuzzy
 msgid "Display the memo?"
-msgstr "Tampilkan pada…"
+msgstr "Tampilkan memo?"
 
-#: gnucash/report/reports/standard/register.scm:408
-#, fuzzy
+#: gnucash/report/reports/standard/register.scm:379
 msgid "Display the account?"
-msgstr "Tampilkan pada…"
+msgstr "Tampilkan akun?"
 
-#: gnucash/report/reports/standard/register.scm:413
+#: gnucash/report/reports/standard/register.scm:384
 #: gnucash/report/trep-engine.scm:953
-#, fuzzy
 msgid "Display the number of shares?"
-msgstr "Tampilkan nomor versi"
+msgstr "Tampilkan jumlah saham?"
 
-#: gnucash/report/reports/standard/register.scm:418
-#, fuzzy
+#: gnucash/report/reports/standard/register.scm:389
 msgid "Display the name of lot the shares are in?"
-msgstr "nama tampilan: %s\n"
+msgstr "Tampilkan nama lot sahamnya?"
 
-#: gnucash/report/reports/standard/register.scm:423
+#: gnucash/report/reports/standard/register.scm:394
 #: gnucash/report/trep-engine.scm:955
-#, fuzzy
 msgid "Display the shares price?"
-msgstr "harga"
+msgstr "Tampilkan harga saham?"
 
-#: gnucash/report/reports/standard/register.scm:428
+#: gnucash/report/reports/standard/register.scm:399
 #: gnucash/report/trep-engine.scm:1017
-#, fuzzy
 msgid "Display the amount?"
-msgstr "jumlah"
+msgstr "Tampilkan jumlah?"
 
-#: gnucash/report/reports/standard/register.scm:431
+#: gnucash/report/reports/standard/register.scm:402
 #: gnucash/report/trep-engine.scm:1007 gnucash/report/trep-engine.scm:1021
-#, fuzzy
 msgid "Single"
 msgstr "Tunggal"
 
-#: gnucash/report/reports/standard/register.scm:431
+#: gnucash/report/reports/standard/register.scm:402
 #: gnucash/report/trep-engine.scm:1021
-#, fuzzy
 msgid "Single Column Display."
-msgstr "Kolom Mode Paragraf Tunggal"
+msgstr "Tampilan Kolom Tunggal."
 
-#: gnucash/report/reports/standard/register.scm:432
+#: gnucash/report/reports/standard/register.scm:403
 #: gnucash/report/trep-engine.scm:1022
-#, fuzzy
 msgid "Double"
 msgstr "Ganda"
 
-#: gnucash/report/reports/standard/register.scm:432
+#: gnucash/report/reports/standard/register.scm:403
 #: gnucash/report/trep-engine.scm:1022
-#, fuzzy
 msgid "Two Column Display."
-msgstr "Tampilkan kolom jenis di jendela utama."
+msgstr "Tampilan Dua Kolom."
 
-#: gnucash/report/reports/standard/register.scm:437
+#: gnucash/report/reports/standard/register.scm:408
 msgid "Display the value in transaction currency?"
-msgstr ""
+msgstr "Tampilkan nilai dalam mata uang transaksi?"
 
-#: gnucash/report/reports/standard/register.scm:447
+#: gnucash/report/reports/standard/register.scm:418
 #: gnucash/report/trep-engine.scm:959
-#, fuzzy
 msgid "Display the totals?"
-msgstr "Tampilkan pada…"
+msgstr "Tampilkan total?"
 
-#: gnucash/report/reports/standard/register.scm:586
-#, fuzzy
+#: gnucash/report/reports/standard/register.scm:557
 msgid "Total Debits"
-msgstr "Total:"
+msgstr "Total Debit"
 
-#: gnucash/report/reports/standard/register.scm:588
-#, fuzzy
+#: gnucash/report/reports/standard/register.scm:559
 msgid "Total Credits"
-msgstr "Kredit"
+msgstr "Total Kredit"
 
-#: gnucash/report/reports/standard/register.scm:590
-#, fuzzy
+#: gnucash/report/reports/standard/register.scm:561
 msgid "Total Value Debits"
-msgstr "Total:"
+msgstr "Nilai Total Debit"
 
-#: gnucash/report/reports/standard/register.scm:592
-#, fuzzy
+#: gnucash/report/reports/standard/register.scm:563
 msgid "Total Value Credits"
-msgstr "Kredit"
+msgstr "Nilai Total Kredit"
 
-#: gnucash/report/reports/standard/register.scm:595
-#, fuzzy
+#: gnucash/report/reports/standard/register.scm:566
 msgid "Net Change"
-msgstr "bersih"
+msgstr "Perubahan Bersih"
 
-#: gnucash/report/reports/standard/register.scm:597
-#, fuzzy
+#: gnucash/report/reports/standard/register.scm:568
 msgid "Value Change"
-msgstr "Ubah perilaku dari permintaan perubahan nilai kunci"
+msgstr "Perubahan Nilai"
 
 #: gnucash/report/reports/standard/taxinvoice.scm:70
-#, fuzzy
 msgid "n/a"
-msgstr "T/A"
+msgstr "n/a"
 
 #: gnucash/report/reports/standard/taxinvoice.scm:80
-#, fuzzy
 msgid "Elements"
-msgstr "Satu atau lebih elemen GStreamer yang diperlukan hilang: "
+msgstr "Elemen"
 
 #: gnucash/report/reports/standard/taxinvoice.scm:82
-#, fuzzy
 msgid "column: Date"
-msgstr "kolom ini"
+msgstr "kolom: Tanggal"
 
 #: gnucash/report/reports/standard/taxinvoice.scm:83
-#, fuzzy
 msgid "column: Tax Rate"
-msgstr "Kolom Laju Menanjak"
+msgstr "kolom: Tarif Pajak"
 
 #: gnucash/report/reports/standard/taxinvoice.scm:84
-#, fuzzy
 msgid "column: Units"
-msgstr "Unit:"
+msgstr "kolom: Satuan"
 
 #: gnucash/report/reports/standard/taxinvoice.scm:85
-#, fuzzy
 msgid "row: Address"
-msgstr "baris ini"
+msgstr "baris: Alamat"
 
 #: gnucash/report/reports/standard/taxinvoice.scm:86
-#, fuzzy
 msgid "row: Contact"
-msgstr "baris ini"
+msgstr "baris: Kontak"
 
 #: gnucash/report/reports/standard/taxinvoice.scm:87
-#, fuzzy
 msgid "row: Invoice Number"
-msgstr "faktur"
+msgstr "baris: Nomor Faktur"
 
 #: gnucash/report/reports/standard/taxinvoice.scm:88
-#, fuzzy
 msgid "row: Company Name"
-msgstr "Berdasarkan _Perusahaan"
+msgstr "baris: Nama Perusahaan"
 
 #: gnucash/report/reports/standard/taxinvoice.scm:89
-#, fuzzy
 msgid "Invoice number text"
-msgstr "faktur"
+msgstr "Teks nomor faktur"
 
 #: gnucash/report/reports/standard/taxinvoice.scm:90
-#, fuzzy
 msgid "To text"
-msgstr "_Teks:"
+msgstr "Untuk teks"
 
 #: gnucash/report/reports/standard/taxinvoice.scm:91
-#, fuzzy
 msgid "Ref text"
-msgstr "Mendorong ref \"%s\""
+msgstr "Teks ref"
 
 #: gnucash/report/reports/standard/taxinvoice.scm:92
-#, fuzzy
 msgid "Job Name text"
-msgstr "Teks gubahan untuk menimpa nama properti"
+msgstr "Teks Nama Pekerjaan"
 
 #: gnucash/report/reports/standard/taxinvoice.scm:93
-#, fuzzy
 msgid "Job Number text"
-msgstr "Teks terlalu pendek bagi suatu nomor telepon"
+msgstr "Teks Nomor Pekerjaan"
 
 #: gnucash/report/reports/standard/taxinvoice.scm:94
-#, fuzzy
 msgid "Show Job name"
-msgstr "Apakah menampilkan informasi pekerjaan dalam penyunting"
+msgstr "Tampilkan nama Pekerjaan"
 
 #: gnucash/report/reports/standard/taxinvoice.scm:95
-#, fuzzy
 msgid "Show Job number"
-msgstr "Tampilkan bagian Pekerjaan"
+msgstr "Tampilkan nomor Pekerjaan"
 
 #: gnucash/report/reports/standard/taxinvoice.scm:96
-#, fuzzy
 msgid "Show net price"
-msgstr "harga"
+msgstr "Tampilkan harga bersih"
 
 #: gnucash/report/reports/standard/taxinvoice.scm:97
-#, fuzzy
 msgid "Invoice number next to title"
-msgstr "Tampilkan diagnostik di samping nomor baris"
+msgstr "Nomor faktur di sebelah judul"
 
 #: gnucash/report/reports/standard/taxinvoice.scm:98
-#, fuzzy
 msgid "table-border-collapse"
-msgstr "Lipat semua"
+msgstr "tabel-garistepi-kolaps"
 
 #: gnucash/report/reports/standard/taxinvoice.scm:99
-#, fuzzy
 msgid "table-header-border-color"
-msgstr "tajuk kolom pada tabel"
+msgstr "tabel-kepala-garistepi-warna"
 
 #: gnucash/report/reports/standard/taxinvoice.scm:100
-#, fuzzy
 msgid "table-cell-border-color"
-msgstr "Warna Batas"
+msgstr "tabel-sel-garistepi-warna"
 
 #: gnucash/report/reports/standard/taxinvoice.scm:101
-#, fuzzy
 msgid "Embedded CSS"
-msgstr "Tidak tertanam"
+msgstr "CSS Tertanam"
 
 #: gnucash/report/reports/standard/taxinvoice.scm:107
-#, fuzzy
 msgid "Logo filename"
-msgstr "Logo:"
+msgstr "Nama berkas logo"
 
 #: gnucash/report/reports/standard/taxinvoice.scm:108
-#, fuzzy
 msgid "Logo width"
-msgstr "Logo:"
+msgstr "Lebar logo"
 
 #: gnucash/report/reports/standard/taxinvoice.scm:136
-#, fuzzy
 msgid "Display the Tax Rate?"
-msgstr "Suku Bunga"
+msgstr "Tampilkan Tarif Pajak?"
 
 #: gnucash/report/reports/standard/taxinvoice.scm:137
-#, fuzzy
 msgid "Display the Units?"
-msgstr "Unit:"
+msgstr "Tampilkan Satuan?"
 
 #: gnucash/report/reports/standard/taxinvoice.scm:138
-#, fuzzy
 msgid "Display the contact?"
-msgstr "Tampilkan bagian sebagai kontak buku alamat"
+msgstr "Tampilkan kontak?"
 
 #: gnucash/report/reports/standard/taxinvoice.scm:139
-#, fuzzy
 msgid "Display the address?"
-msgstr "Alamat"
+msgstr "Tampilkan alamat?"
 
 #: gnucash/report/reports/standard/taxinvoice.scm:140
-#, fuzzy
 msgid "Display the Invoice Number?"
-msgstr "faktur"
+msgstr "Tampilkan Nomor Faktur?"
 
 #: gnucash/report/reports/standard/taxinvoice.scm:141
-#, fuzzy
 msgid "Display the Company Name?"
-msgstr "_Nama Tampilan"
+msgstr "Tampilkan Nama Perusahaan?"
 
 #: gnucash/report/reports/standard/taxinvoice.scm:142
-#, fuzzy
 msgid "Invoice Number next to title?"
-msgstr "Tampilkan diagnostik di samping nomor baris"
+msgstr "Nomor Faktur di sebelah judul?"
 
 #: gnucash/report/reports/standard/taxinvoice.scm:143
-#, fuzzy
 msgid "Display Job name?"
-msgstr "pekerjaan"
+msgstr "Tampilkan nama Pekerjaan?"
 
 #: gnucash/report/reports/standard/taxinvoice.scm:144
-#, fuzzy
 msgid "Invoice Job number?"
-msgstr "faktur"
+msgstr "Nomor Pekerjaan Faktur?"
 
 #: gnucash/report/reports/standard/taxinvoice.scm:145
-#, fuzzy
 msgid "Show net price?"
-msgstr "harga"
+msgstr "Tampilkan harga bersih?"
 
 #: gnucash/report/reports/standard/taxinvoice.scm:149
 msgid ""
@@ -28635,6 +28726,9 @@ msgid ""
 "either be in your .gnucash directory, or else in its proper place within the "
 "GnuCash installation directories."
 msgstr ""
+"Nama berkas templat eguile sebagai bagian dari laporan ini. Berkas ini harus "
+"berada dalam direktori .gnucash Anda, atau di lokasi lain di dalam direktori "
+"instalasi GnuCash."
 
 #: gnucash/report/reports/standard/taxinvoice.scm:152
 msgid ""
@@ -28642,10 +28736,13 @@ msgid ""
 "should either be in your .gnucash directory, or else in its proper place "
 "within the GnuCash installation directories."
 msgstr ""
+"Nama berkas lembar gaya CSS untuk digunakan pada laporan ini. Berkas ini "
+"harus berada di direktori .gnucash Anda, atau di lokasi lain di dalam "
+"direktori instalasi GnuCash."
 
 #: gnucash/report/reports/standard/taxinvoice.scm:162
 msgid "Name of a file containing a logo to be used on the report."
-msgstr ""
+msgstr "Nama berkas yang berisi logo yang akan digunakan pada laporan."
 
 #: gnucash/report/reports/standard/taxinvoice.scm:165
 msgid ""
@@ -28658,293 +28755,274 @@ msgstr ""
 "skalanya."
 
 #: gnucash/report/reports/standard/taxinvoice.scm:166
-#, fuzzy
 msgid "Border-collapse?"
-msgstr "Lipat semua"
+msgstr "Garistepi-kolaps?"
 
 #: gnucash/report/reports/standard/taxinvoice.scm:167
 #: gnucash/report/reports/standard/taxinvoice.scm:168
-#, fuzzy
 msgid "CSS color."
-msgstr "CSS kustom"
+msgstr "Warna CSS."
 
 #: gnucash/report/reports/standard/taxinvoice.scm:200
-#, fuzzy
 msgid "Invoice number: "
-msgstr "faktur"
+msgstr "Nomor faktur: "
 
 #: gnucash/report/reports/standard/taxinvoice.scm:202
 msgid "To: "
-msgstr ""
+msgstr "Untuk: "
 
 #: gnucash/report/reports/standard/taxinvoice.scm:204
-#, fuzzy
 msgid "Your ref: "
-msgstr "Mendorong ref \"%s\""
+msgstr "Ref Anda: "
 
 #: gnucash/report/reports/standard/taxinvoice.scm:206
-#, fuzzy
 msgid "Job number: "
-msgstr "pekerjaan"
+msgstr "Nomor pekerjaan: "
 
 #: gnucash/report/reports/standard/taxinvoice.scm:208
-#, fuzzy
 msgid "Job name: "
-msgstr "pekerjaan"
+msgstr "Nama Pekerjaan: "
 
 #: gnucash/report/reports/standard/taxinvoice.scm:216
-#, fuzzy
 msgid "Embedded CSS."
-msgstr "Tidak tertanam"
+msgstr "CSS Tertanam."
 
 #: gnucash/report/reports/standard/taxinvoice.scm:298
 msgid "Display a customer invoice with tax columns (using eguile template)"
 msgstr ""
+"Tampilkan faktur pelanggan dengan kolom pajak (menggunakan templat eguile)"
 
 #: gnucash/report/reports/standard/taxinvoice.scm:310
-#, fuzzy
 msgid "Unit"
-msgstr "Unit"
+msgstr "Satuan"
 
 #: gnucash/report/reports/standard/taxinvoice.scm:311
-#, fuzzy
 msgid "GST Rate"
-msgstr "Suku Bunga"
+msgstr "Tarif GST"
 
 #: gnucash/report/reports/standard/taxinvoice.scm:312
-#, fuzzy
 msgid "GST Amount"
-msgstr "jumlah"
+msgstr "Jumlah GST"
 
 #: gnucash/report/reports/standard/taxinvoice.scm:313
+#, fuzzy
 msgid "Amount Due (inc GST)"
-msgstr ""
+msgstr "Jumlah Karena (inc GST)"
 
 #: gnucash/report/reports/standard/taxinvoice.scm:314
-#, fuzzy
 msgid "Invoice #: "
-msgstr "faktur"
+msgstr "Faktur #: "
 
 #: gnucash/report/reports/standard/taxinvoice.scm:315
-#, fuzzy
 msgid "Reference: "
-msgstr "REFERENSI"
+msgstr "Referensi: "
 
 #: gnucash/report/reports/standard/taxinvoice.scm:316
 msgid "Engagement: "
-msgstr ""
+msgstr "Keterikatan: "
 
 #: gnucash/report/reports/standard/taxinvoice.scm:322
 #: gnucash/report/reports/standard/taxinvoice.scm:324
-#, fuzzy
 msgid "Australian Tax Invoice"
-msgstr "Dolar Australia"
+msgstr "Faktur Pajak Australia"
 
 #: gnucash/report/reports/standard/taxinvoice.scm:325
 msgid ""
 "Display an Australian customer invoice with tax columns (using eguile "
 "template)"
 msgstr ""
+"Tampilkan faktur pelanggan Australia dengan kolom pajak (menggunakan templat "
+"eguile)"
 
 #: gnucash/report/reports/standard/trial-balance.scm:61
-#: gnucash/report/reports/standard/trial-balance.scm:569
-#, fuzzy
+#: gnucash/report/reports/standard/trial-balance.scm:570
 msgid "Trial Balance"
-msgstr "neraca saldo"
+msgstr "Neraca Saldo"
 
 #: gnucash/report/reports/standard/trial-balance.scm:71
-#, fuzzy
 msgid "Start of Adjusting/Closing"
-msgstr "_Mulai"
+msgstr "Mulai Penyesuaian/Penutupan"
 
 #: gnucash/report/reports/standard/trial-balance.scm:72
-#, fuzzy
 msgid "Date of Report"
-msgstr "Lapo_rkan"
+msgstr "Tanggal Laporan"
 
 #: gnucash/report/reports/standard/trial-balance.scm:73
-#, fuzzy
 msgid "Report variation"
-msgstr "Sumbu Variasi"
+msgstr "Variasi laporan"
 
 #: gnucash/report/reports/standard/trial-balance.scm:74
-#, fuzzy
 msgid "Kind of trial balance to generate."
-msgstr "neraca saldo"
+msgstr "Jenis neraca saldo yang dihasilkan."
 
 #: gnucash/report/reports/standard/trial-balance.scm:83
+#, fuzzy
 msgid "Merchandising"
-msgstr ""
+msgstr "Merchandising"
 
 #: gnucash/report/reports/standard/trial-balance.scm:84
-#, fuzzy
 msgid "Gross adjustment accounts."
-msgstr "Penyesuaian:"
+msgstr "Akun penyesuaian kotor."
 
 #: gnucash/report/reports/standard/trial-balance.scm:86
+#, fuzzy
 msgid ""
 "Do not net, but show gross debit/credit adjustments to these accounts. "
 "Merchandising businesses will normally select their inventory accounts here."
 msgstr ""
+"Jangan bersih, tetapi tampilkan penyesuaian debit/kredit kotor untuk akun-"
+"akun tersebut. Merchandising bisnis biasanya akan memilih inventaris mereka "
+"account di sini."
 
 #: gnucash/report/reports/standard/trial-balance.scm:87
-#, fuzzy
 msgid "Income summary accounts"
-msgstr "Ringkasan"
+msgstr "Akun ikhtisar pendapatan"
 
 #: gnucash/report/reports/standard/trial-balance.scm:89
+#, fuzzy
 msgid ""
 "Adjustments made to these accounts are gross adjusted (see above) in the "
 "Adjustments, Adjusted Trial Balance, and Income Statement columns. Mostly "
 "useful for merchandising businesses."
 msgstr ""
+"Penyesuaian dibuat untuk account tersebut kotor disesuaikan (lihat di atas) "
+"di Penyesuaian, Neraca Saldo Disesuaikan, dan Pendapatan kolom Pernyataan. "
+"Sebagian besar berguna untuk merchandise bisnis."
 
 #: gnucash/report/reports/standard/trial-balance.scm:92
-#, fuzzy
 msgid "Adjusting Entries pattern"
-msgstr "Isi _jurnal"
+msgstr "Pola Entri Penyesuaian"
 
 #: gnucash/report/reports/standard/trial-balance.scm:94
 msgid "Any text in the Description column which identifies adjusting entries."
 msgstr ""
+"Teks apapun di dalam kolom Deskripsi yang mengidentifikasikan entri "
+"penyesuaian."
 
 #: gnucash/report/reports/standard/trial-balance.scm:96
 msgid "Adjusting Entries pattern is case-sensitive"
-msgstr ""
+msgstr "Pola Entri Penyesuaian membedakan huruf besar/kecil"
 
 #: gnucash/report/reports/standard/trial-balance.scm:98
 msgid "Causes the Adjusting Entries Pattern match to be case-sensitive."
 msgstr ""
+"Menyebabkan pencocokan Pola Entri Penyesuaian membedakan huruf besar/kecil."
 
 #: gnucash/report/reports/standard/trial-balance.scm:100
 msgid "Adjusting Entries Pattern is regular expression"
-msgstr ""
+msgstr "Pola Entri Penyesuaian adalah ekspresi reguler"
 
 #: gnucash/report/reports/standard/trial-balance.scm:102
 msgid ""
 "Causes the Adjusting Entries Pattern to be treated as a regular expression."
 msgstr ""
+"Menyebabkan Pola Entri Penyesuaian diperlakukan sebagai ekspresi reguler."
 
 #: gnucash/report/reports/standard/trial-balance.scm:204
-#, fuzzy
 msgid "Current Trial Balance"
-msgstr "neraca saldo"
+msgstr "Neraca Saldo Saat Ini"
 
 #: gnucash/report/reports/standard/trial-balance.scm:205
 msgid "Uses the exact balances in the general journal"
-msgstr ""
+msgstr "Menggunakan saldo yang tepat dalam jurnal umum"
 
 #: gnucash/report/reports/standard/trial-balance.scm:207
-#, fuzzy
 msgid "Pre-adjustment Trial Balance"
-msgstr "neraca saldo"
+msgstr "Neraca Saldo Pra-penyesuaian"
 
 #: gnucash/report/reports/standard/trial-balance.scm:208
 msgid "Ignores Adjusting/Closing entries"
-msgstr ""
+msgstr "Abaikan entri Penyesuaian/Penutup"
 
 #: gnucash/report/reports/standard/trial-balance.scm:210
-#, fuzzy
 msgid "Work Sheet"
-msgstr "neraca"
+msgstr "Lembar Kerja"
 
 #: gnucash/report/reports/standard/trial-balance.scm:211
 msgid "Creates a complete end-of-period work sheet"
-msgstr ""
+msgstr "Membuat lembar kerja akhir-periode lengkap"
 
-#: gnucash/report/reports/standard/trial-balance.scm:570
+#: gnucash/report/reports/standard/trial-balance.scm:571
 msgid "Adjustments"
-msgstr ""
+msgstr "Penyesuaian"
 
-#: gnucash/report/reports/standard/trial-balance.scm:571
-#, fuzzy
+#: gnucash/report/reports/standard/trial-balance.scm:572
 msgid "Adjusted Trial Balance"
-msgstr "neraca saldo"
+msgstr "Neraca Saldo Disesuaikan"
 
-#: gnucash/report/reports/standard/trial-balance.scm:860
-#, fuzzy
+#: gnucash/report/reports/standard/trial-balance.scm:861
 msgid "Net Loss"
-msgstr "bersih"
+msgstr "Rugi Bersih"
 
 #: gnucash/report/reports/standard/view-column.scm:50
 #: gnucash/report/reports/standard/view-column.scm:76
-#, fuzzy
 msgid "Number of columns"
-msgstr "Cacah kolom yang mesti dicakup widget"
+msgstr "Jumlah kolom"
 
 #: gnucash/report/reports/standard/view-column.scm:51
 msgid "Number of columns before wrapping to a new row."
-msgstr ""
+msgstr "Jumlah kolom sebelum membuat baris baru."
 
 #: gnucash/report/reports/standard/view-column.scm:159
-#, fuzzy
 msgid "Edit Options"
-msgstr "Su_nting Opsi Pengaitan…"
+msgstr "Opsi Penyuntingan"
 
 #: gnucash/report/reports/standard/view-column.scm:166
-#, fuzzy
 msgid "Single Report"
-msgstr "Tunggal"
+msgstr "Laporan Tunggal"
 
 #: gnucash/report/reports/standard/view-column.scm:219
-#, fuzzy
 msgid "Multicolumn View"
-msgstr "Tilik sebagai"
+msgstr "Tampilan Multi Kolom"
 
 #: gnucash/report/reports/standard/view-column.scm:221
-#, fuzzy
 msgid "Custom Multicolumn Report"
-msgstr "Kustom"
+msgstr "Laporan Multi-kolom Tersuai"
 
 #: gnucash/report/reports/support/balsheet-eg.eguile.scm:167
-#, fuzzy
 msgid "Assets Accounts"
-msgstr "aset bersih"
+msgstr "Akun Aset"
 
 #: gnucash/report/reports/support/balsheet-eg.eguile.scm:173
-#, fuzzy
 msgid "Liability Accounts"
-msgstr "tipe akun: Liabilitas"
+msgstr "Akun Liabilitas"
 
 #: gnucash/report/reports/support/balsheet-eg.eguile.scm:179
-#, fuzzy
 msgid "Equity Accounts"
-msgstr "ekuitas"
+msgstr "Akun Ekuitas"
 
 #: gnucash/report/reports/support/balsheet-eg.eguile.scm:182
-#: gnucash/report/report-utilities.scm:119
-#, fuzzy
+#: gnucash/report/report-utilities.scm:131
 msgid "Trading Accounts"
-msgstr "tipe akun: perdagangan"
+msgstr "Akun Perdagangan"
 
 #: gnucash/report/reports/support/balsheet-eg.eguile.scm:249
-#, fuzzy
 msgid "Total Equity, Trading, and Liabilities"
-msgstr "liabilitas/ekuitas"
+msgstr "Total Ekuitas, Perdagangan, dan Liabilitas"
 
 #: gnucash/report/reports/support/balsheet-eg.eguile.scm:258
 #, fuzzy
 msgid "Imbalance Amount"
-msgstr "tak-seimbang"
+msgstr "ketidakseimbangan Jumlah"
 
 #: gnucash/report/reports/support/balsheet-eg.eguile.scm:275
 msgid "<strong>Exchange Rates</strong> used for this report"
-msgstr ""
+msgstr "<strong>Nilai Tukar</strong> yang digunakan pada laporan ini"
 
 #: gnucash/report/reports/support/receipt.eguile.scm:124
-#, fuzzy
 msgid "Invoice No."
-msgstr "faktur"
+msgstr "No. Faktur"
 
 #: gnucash/report/reports/support/receipt.eguile.scm:144
 msgid "Descr."
-msgstr ""
+msgstr "Deskr."
 
 #: gnucash/report/reports/support/receipt.eguile.scm:279
 #: gnucash/report/reports/support/taxinvoice.eguile.scm:424
 msgid ""
 "No invoice has been selected -- please use the Options menu to select one."
 msgstr ""
+"Tak ada faktur yang dipilih -- gunakan menu Opsi untuk memilih salah satu."
 
 #: gnucash/report/reports/support/receipt.eguile.scm:286
 msgid ""
@@ -28963,62 +29041,60 @@ msgstr "Situs Web"
 msgid "Invoice Date"
 msgstr "Tanggal Faktur"
 
-#: gnucash/report/report-utilities.scm:107
+#: gnucash/report/report-utilities.scm:119
 msgid "Stocks"
 msgstr "Saham"
 
-#: gnucash/report/report-utilities.scm:108
+#: gnucash/report/report-utilities.scm:120
 msgid "Mutual Funds"
 msgstr "Reksadana"
 
-#: gnucash/report/report-utilities.scm:109
+#: gnucash/report/report-utilities.scm:121
 #: libgnucash/engine/gnc-commodity.h:116
 msgid "Currencies"
 msgstr "Mata Uang"
 
-#: gnucash/report/report-utilities.scm:112
+#: gnucash/report/report-utilities.scm:124
 msgid "Equities"
 msgstr "Ekuitas"
 
-#: gnucash/report/report-utilities.scm:113
+#: gnucash/report/report-utilities.scm:125
 msgid "Checking"
 msgstr "Giro"
 
-#: gnucash/report/report-utilities.scm:114
+#: gnucash/report/report-utilities.scm:126
 msgid "Savings"
 msgstr "Tabungan"
 
-#: gnucash/report/report-utilities.scm:115
+#: gnucash/report/report-utilities.scm:127
 msgid "Money Market"
 msgstr "Pasar Uang"
 
-#: gnucash/report/report-utilities.scm:116
+#: gnucash/report/report-utilities.scm:128
 msgid "Accounts Receivable"
 msgstr "Akun Piutang"
 
-#: gnucash/report/report-utilities.scm:117
+#: gnucash/report/report-utilities.scm:129
 msgid "Accounts Payable"
 msgstr "Akun Utang"
 
-#: gnucash/report/report-utilities.scm:118
-#, fuzzy
+#: gnucash/report/report-utilities.scm:130
 msgid "Credit Lines"
-msgstr "Kartu Kredit"
+msgstr "Baris Kredit"
 
-#: gnucash/report/report-utilities.scm:618
-#, fuzzy, scheme-format
+#: gnucash/report/report-utilities.scm:630
+#, scheme-format
 msgid "Building '~a' report ..."
-msgstr "Lapo_rkan"
+msgstr "Membangun laporan '~a' ..."
 
-#: gnucash/report/report-utilities.scm:624
-#, fuzzy, scheme-format
+#: gnucash/report/report-utilities.scm:636
+#, scheme-format
 msgid "Rendering '~a' report ..."
-msgstr "Merender halaman %d dari %d…"
+msgstr "Merender laporan '~a' ..."
 
-#: gnucash/report/report-utilities.scm:626
-#, fuzzy
+#: gnucash/report/report-utilities.scm:638
 msgid "Untitled"
-msgstr "Tanpa Judul"
+msgstr "Tak berjudul"
 
 #: gnucash/report/stylesheets/css.scm:119
 msgid "CSS code. This field specifies the CSS code for styling reports."
@@ -29026,37 +29102,36 @@ msgstr "Kode CSS. Bidang ini menentukan kode CSS untuk tampilan laporan."
 
 #: gnucash/report/stylesheets/css.scm:209
 msgid "</style is disallowed in CSS. Using default CSS."
-msgstr ""
+msgstr "</style tidak diperbolehkan dalam CSS. Menggunakan CSS baku."
 
 #: gnucash/report/stylesheets/css.scm:228
 msgid "CSS-based stylesheet (experimental)"
-msgstr ""
+msgstr "Lembar gaya berbasis CSS (eksperimental)"
 
 #: gnucash/report/stylesheets/footer.scm:55
 #: gnucash/report/stylesheets/head-or-tail.scm:53
 msgid "Preparer"
-msgstr ""
+msgstr "Penyiap laporan"
 
 #: gnucash/report/stylesheets/footer.scm:56
 #: gnucash/report/stylesheets/head-or-tail.scm:54
 msgid "Name of person preparing the report."
-msgstr ""
+msgstr "Nama orang yang mempersiapkan laporan."
 
 #: gnucash/report/stylesheets/footer.scm:62
 #: gnucash/report/stylesheets/head-or-tail.scm:59
 msgid "Prepared for"
-msgstr ""
+msgstr "Disiapkan untuk"
 
 #: gnucash/report/stylesheets/footer.scm:63
 #: gnucash/report/stylesheets/head-or-tail.scm:60
 msgid "Name of organization or company prepared for."
-msgstr ""
+msgstr "Nama organisasi atau perusahaan yang disiapkan."
 
 #: gnucash/report/stylesheets/footer.scm:69
 #: gnucash/report/stylesheets/head-or-tail.scm:65
-#, fuzzy
 msgid "Show preparer info"
-msgstr "Tampilkan info"
+msgstr "Tampilkan info penyiap laporan"
 
 #: gnucash/report/stylesheets/footer.scm:70
 #: gnucash/report/stylesheets/head-or-tail.scm:66
@@ -29110,23 +29185,20 @@ msgstr "Ubin latar belakang untuk laporan."
 #. Translators: Banner is an image like Logo.
 #: gnucash/report/stylesheets/footer.scm:97
 #: gnucash/report/stylesheets/head-or-tail.scm:145
-#, fuzzy
 msgid "Heading Banner"
-msgstr "Tajuk"
+msgstr "Banner Tajuk"
 
 #: gnucash/report/stylesheets/footer.scm:97
 #: gnucash/report/stylesheets/footer.scm:103
 #: gnucash/report/stylesheets/head-or-tail.scm:145
 #: gnucash/report/stylesheets/head-or-tail.scm:150
-#, fuzzy
 msgid "Banner for top of report."
-msgstr "Menampilkan pesan penyambut"
+msgstr "Banner untuk bagian atas laporan."
 
 #: gnucash/report/stylesheets/footer.scm:103
 #: gnucash/report/stylesheets/head-or-tail.scm:150
-#, fuzzy
 msgid "Heading Alignment"
-msgstr "Perataan"
+msgstr "Perataan Tajuk"
 
 #: gnucash/report/stylesheets/footer.scm:106
 #: gnucash/report/stylesheets/head-or-tail.scm:153
@@ -29135,9 +29207,8 @@ msgstr "Kiri"
 
 #: gnucash/report/stylesheets/footer.scm:107
 #: gnucash/report/stylesheets/head-or-tail.scm:154
-#, fuzzy
 msgid "Align the banner to the left."
-msgstr "Ratakan dengan tepi kiri target"
+msgstr "Ratakan banner ke kiri."
 
 #: gnucash/report/stylesheets/footer.scm:109
 #: gnucash/report/stylesheets/head-or-tail.scm:156
@@ -29146,9 +29217,8 @@ msgstr "Tengah"
 
 #: gnucash/report/stylesheets/footer.scm:110
 #: gnucash/report/stylesheets/head-or-tail.scm:157
-#, fuzzy
 msgid "Align the banner in the center."
-msgstr "Ratakan dengan pusat target"
+msgstr "Ratakan banner di tengah."
 
 #: gnucash/report/stylesheets/footer.scm:112
 #: gnucash/report/stylesheets/head-or-tail.scm:159
@@ -29157,9 +29227,8 @@ msgstr "Kanan"
 
 #: gnucash/report/stylesheets/footer.scm:113
 #: gnucash/report/stylesheets/head-or-tail.scm:160
-#, fuzzy
 msgid "Align the banner to the right."
-msgstr "Ratakan dengan tepi kanan target"
+msgstr "Ratakan banner ke kanan."
 
 #: gnucash/report/stylesheets/footer.scm:118
 #: gnucash/report/stylesheets/head-or-tail.scm:165
@@ -29224,54 +29293,48 @@ msgstr "Warna Sel Tabel"
 #: gnucash/report/stylesheets/footer.scm:145
 #: gnucash/report/stylesheets/head-or-tail.scm:192
 msgid "Default background for table cells."
-msgstr "Latar belakang bawaan untuk sel tabel."
+msgstr "Latar belakang baku untuk sel tabel."
 
 #: gnucash/report/stylesheets/footer.scm:152
 #: gnucash/report/stylesheets/head-or-tail.scm:199
 #: gnucash/report/stylesheets/plain.scm:63
-#, fuzzy
 msgid "Alternate Table Cell Color"
-msgstr "Sel Tabel"
+msgstr "Warna Sel Tabel Berseling"
 
 #: gnucash/report/stylesheets/footer.scm:153
 #: gnucash/report/stylesheets/head-or-tail.scm:200
 msgid "Default alternate background for table cells."
-msgstr ""
+msgstr "Latar belakang berseling baku untuk sel tabel."
 
 #: gnucash/report/stylesheets/footer.scm:160
 #: gnucash/report/stylesheets/head-or-tail.scm:207
-#, fuzzy
 msgid "Subheading/Subtotal Cell Color"
-msgstr "Kolom Warna Latar Sel"
+msgstr "Warna Sel Subtajuk/Subtotal"
 
 #: gnucash/report/stylesheets/footer.scm:161
 #: gnucash/report/stylesheets/head-or-tail.scm:208
-#, fuzzy
 msgid "Default color for subtotal rows."
-msgstr "Skema warna bawaan untuk Builder"
+msgstr "Warna baku untuk baris subtotal."
 
 #: gnucash/report/stylesheets/footer.scm:168
 #: gnucash/report/stylesheets/head-or-tail.scm:215
 msgid "Sub-subheading/total Cell Color"
-msgstr ""
+msgstr "Warna Sel sub-subtajuk/total"
 
 #: gnucash/report/stylesheets/footer.scm:169
 #: gnucash/report/stylesheets/head-or-tail.scm:216
-#, fuzzy
 msgid "Color for subsubtotals."
-msgstr "_Menurut Warna"
+msgstr "Warna untuk subsubtotal."
 
 #: gnucash/report/stylesheets/footer.scm:176
 #: gnucash/report/stylesheets/head-or-tail.scm:223
-#, fuzzy
 msgid "Grand Total Cell Color"
-msgstr "Kolom Nama Warna Latar Sel"
+msgstr "Warna Sel Total Keseluruhan"
 
 #: gnucash/report/stylesheets/footer.scm:177
 #: gnucash/report/stylesheets/head-or-tail.scm:224
-#, fuzzy
 msgid "Color for grand totals."
-msgstr "Amerika/Grand_Turk"
+msgstr "Warna untuk total keseluruhan."
 
 #: gnucash/report/stylesheets/footer.scm:183
 #: gnucash/report/stylesheets/footer.scm:189
@@ -29302,60 +29365,47 @@ msgstr "Jarak antar sel tabel."
 #: gnucash/report/stylesheets/plain.scm:74
 #, fuzzy
 msgid "Table cell padding"
-msgstr "Sel Tabel"
+msgstr "Padding sel tabel"
 
 #: gnucash/report/stylesheets/footer.scm:190
 #: gnucash/report/stylesheets/head-or-tail.scm:237
 #: gnucash/report/stylesheets/plain.scm:74
+#, fuzzy
 msgid "Space between table cell edge and content."
-msgstr ""
+msgstr "Ruang antara tepi sel tabel dan konten."
 
 #: gnucash/report/stylesheets/footer.scm:196
 #: gnucash/report/stylesheets/head-or-tail.scm:243
 #: gnucash/report/stylesheets/plain.scm:79
-#, fuzzy
 msgid "Table border width"
-msgstr "Lebar Batas"
+msgstr "Lebar garis tepi tabel"
 
 #: gnucash/report/stylesheets/footer.scm:196
 #: gnucash/report/stylesheets/head-or-tail.scm:243
 #: gnucash/report/stylesheets/plain.scm:79
-#, fuzzy
 msgid "Bevel depth on tables."
-msgstr "Kedalaman:"
+msgstr "Kedalaman bevel tabel."
 
 #: gnucash/report/stylesheets/footer.scm:377
 #: gnucash/report/stylesheets/head-or-tail.scm:432
 #: gnucash/report/stylesheets/head-or-tail.scm:526
-#, fuzzy
 msgid "Prepared by: "
-msgstr ""
-"Bahkan bila <gui>Pemeriksaan Keseluruhan</gui> mengindikasikan bahwa disk "
-"<em>tidak</em> sehat, mungkin tidak ada alasan untuk alarm. Namun, lebih "
-"baik bersiap-siap dengan suatu <link xref=\"backup-why\">backup</link> untuk "
-"mencegah kehilangan data."
+msgstr "Disiapkan oleh: "
 
 #: gnucash/report/stylesheets/footer.scm:380
 #: gnucash/report/stylesheets/head-or-tail.scm:440
 #: gnucash/report/stylesheets/head-or-tail.scm:534
-#, fuzzy
 msgid "Prepared for: "
-msgstr ""
-"Bahkan bila <gui>Pemeriksaan Keseluruhan</gui> mengindikasikan bahwa disk "
-"<em>tidak</em> sehat, mungkin tidak ada alasan untuk alarm. Namun, lebih "
-"baik bersiap-siap dengan suatu <link xref=\"backup-why\">backup</link> untuk "
-"mencegah kehilangan data."
+msgstr "Disiapkan untuk: "
 
 #: gnucash/report/stylesheets/footer.scm:419
 #: gnucash/report/stylesheets/footer.scm:435
-#, fuzzy
 msgid "Easy"
 msgstr "Mudah"
 
 #: gnucash/report/stylesheets/footer.scm:425
-#, fuzzy
 msgid "Fancy"
-msgstr "Kesukaan"
+msgstr "Lengkap"
 
 #: gnucash/report/stylesheets/footer.scm:436
 msgid "Technicolor"
@@ -29366,8 +29416,9 @@ msgid "Show receiver info"
 msgstr "Tampilkan info penerima"
 
 #: gnucash/report/stylesheets/head-or-tail.scm:72
+#, fuzzy
 msgid "Name of organization or company the report is prepared for."
-msgstr ""
+msgstr "Nama organisasi atau perusahaan laporan dipersiapkan untuk."
 
 #: gnucash/report/stylesheets/head-or-tail.scm:77
 msgid "Show date"
@@ -29401,57 +29452,55 @@ msgstr "String untuk informasi tambahan pada laporan."
 
 #: gnucash/report/stylesheets/head-or-tail.scm:108
 msgid "Show preparer info at bottom"
-msgstr ""
+msgstr "Tampilkan info penyiap laporan di bagian bawah"
 
 #: gnucash/report/stylesheets/head-or-tail.scm:109
 msgid "Per default the preparer info will be shown before the report data."
 msgstr ""
+"Secara baku, informasi penyiap laporan akan ditampilkan sebelum data laporan."
 
 #: gnucash/report/stylesheets/head-or-tail.scm:114
-#, fuzzy
 msgid "Show receiver info at bottom"
-msgstr "Tampilkan info"
+msgstr "Tampilkan info penerima di bagian bawah"
 
 #: gnucash/report/stylesheets/head-or-tail.scm:115
 msgid "Per default the receiver info will be shown before the report data."
-msgstr ""
+msgstr "Secara baku, informasi penerima akan ditampilkan sebelum data laporan."
 
 #: gnucash/report/stylesheets/head-or-tail.scm:120
-#, fuzzy
 msgid "Show date/time at bottom"
-msgstr "Tampilkan layar bawah"
+msgstr "Tampilkan tanggal/waktu di bagian bawah"
 
 #: gnucash/report/stylesheets/head-or-tail.scm:121
 msgid "Per default the date/time info will be shown before the report data."
 msgstr ""
+"Secara baku, informasi tanggal/waktu akan ditampilkan sebelum data laporan."
 
 #: gnucash/report/stylesheets/head-or-tail.scm:126
-#, fuzzy
 msgid "Show comments at bottom"
-msgstr "Tampilkan layar bawah"
+msgstr "Tampilkan komentar di bagian bawah"
 
 #: gnucash/report/stylesheets/head-or-tail.scm:127
 msgid ""
 "Per default the additional comments text will be shown before the report "
 "data."
 msgstr ""
+"Secara baku, teks komentar tambahan akan ditampilkan sebelum data laporan."
 
 #: gnucash/report/stylesheets/head-or-tail.scm:132
-#, fuzzy
 msgid "Show GnuCash version at bottom"
-msgstr "Tampilkan layar bawah"
+msgstr "Tampilkan versi GnuCash di bagian bawah"
 
 #: gnucash/report/stylesheets/head-or-tail.scm:133
 msgid "Per default the GnuCash version will be shown before the report data."
-msgstr ""
+msgstr "Secara baku, versi GnuCash akan ditampilkan sebelum data laporan."
 
 #: gnucash/report/stylesheets/head-or-tail.scm:449
 #: gnucash/report/stylesheets/head-or-tail.scm:456
 #: gnucash/report/stylesheets/head-or-tail.scm:543
 #: gnucash/report/stylesheets/head-or-tail.scm:550
-#, fuzzy
 msgid "Report Creation Date: "
-msgstr "GladeCreateReason bagi kreasi ini"
+msgstr "Tanggal Pembuatan Laporan: "
 
 #: gnucash/report/stylesheets/head-or-tail.scm:558
 msgid "GnuCash "
@@ -29459,24 +29508,20 @@ msgstr "GnuCash "
 
 #: gnucash/report/stylesheets/head-or-tail.scm:573
 #: gnucash/report/stylesheets/head-or-tail.scm:577
-#, fuzzy
 msgid "Head or Tail"
-msgstr "Mainline Head"
+msgstr "Kepala atau Ekor"
 
 #: gnucash/report/stylesheets/plain.scm:47
-#, fuzzy
 msgid "Background color for reports."
-msgstr "Pilih Warna Latar Belakang Node:"
+msgstr "Warna latar belakang untuk laporan."
 
 #: gnucash/report/stylesheets/plain.scm:53
-#, fuzzy
 msgid "Background Pixmap"
-msgstr "Pixmap"
+msgstr "Pixmap Latar Belakang"
 
 #: gnucash/report/stylesheets/plain.scm:63
-#, fuzzy
 msgid "Background color for alternate lines."
-msgstr "Warna garis kisi"
+msgstr "Warna latar belakang untuk baris berseling."
 
 #: gnucash/report/stylesheets/plain.scm:227
 msgid "Plain"
@@ -29496,279 +29541,248 @@ msgstr "Tampilkan Deskripsi Akun"
 
 #: gnucash/report/trep-engine.scm:67
 msgid "Show Informal Debit/Credit Headers"
-msgstr ""
+msgstr "Tampilkan Kepala Debit/Kredit Informal"
 
 #: gnucash/report/trep-engine.scm:69
 msgid "Show subtotals only (hide transactional data)"
-msgstr ""
+msgstr "Tampilkan subtotal saja (sembunyikan data transaksional)"
 
 #: gnucash/report/trep-engine.scm:70
 #, fuzzy
 msgid "Add indenting columns"
-msgstr "Tambah dan hapus kolom:"
+msgstr "Menambahkan indentasi kolom"
 
 #: gnucash/report/trep-engine.scm:79
-#, fuzzy
 msgid "Table for Exporting"
-msgstr "Mengekspor…"
+msgstr "Tabel untuk Mengekspor"
 
 #: gnucash/report/trep-engine.scm:87
-#, fuzzy
 msgid "Account Name Filter"
-msgstr "Menyaring proses berdasarkan nama"
+msgstr "Filter Nama Akun"
 
 #: gnucash/report/trep-engine.scm:89
 msgid "Use regular expressions for account name filter"
-msgstr ""
+msgstr "Gunakan ekspresi reguler untuk filter nama akun"
 
 #: gnucash/report/trep-engine.scm:90
-#, fuzzy
 msgid "Transaction Filter"
-msgstr "transaksi"
+msgstr "Filter Transaksi"
 
 #: gnucash/report/trep-engine.scm:92
 msgid "Use regular expressions for transaction filter"
-msgstr ""
+msgstr "Gunakan ekspresi reguler untuk filter transaksi"
 
 #: gnucash/report/trep-engine.scm:94
 msgid "Transaction Filter excludes matched strings"
-msgstr ""
+msgstr "Filter Transaksi tidak termasuk string yang cocok"
 
 #: gnucash/report/trep-engine.scm:96
 msgid "Transaction Filter is case insensitive"
-msgstr ""
+msgstr "Filter Transaksi tidak membedakan huruf besar/kecil"
 
 #: gnucash/report/trep-engine.scm:97
-#, fuzzy
 msgid "Reconcile Status"
-msgstr "Status"
+msgstr "Status Rekonsiliasi"
 
 #: gnucash/report/trep-engine.scm:98
 msgid "Void Transactions"
-msgstr ""
+msgstr "Transaksi Batal"
 
 #: gnucash/report/trep-engine.scm:99
-#, fuzzy
 msgid "Closing transactions"
-msgstr "Timpa tanda kurung penutup"
+msgstr "Transaksi penutupan"
 
 #: gnucash/report/trep-engine.scm:109
 msgid ""
 "No transactions were found that match the time interval and account "
 "selection specified in the Options panel."
 msgstr ""
+"Tak ada transaksi yang ditemukan yang cocok dengan interval waktu dan "
+"pemilihan akun yang ditentukan pada panel Opsi."
 
 #: gnucash/report/trep-engine.scm:148
-#, fuzzy
 msgid "Sort & subtotal by account name."
-msgstr "Nama Akun tak boleh kosong"
+msgstr "Urutkan & subtotal berdasar nama akun."
 
 #: gnucash/report/trep-engine.scm:155
-#, fuzzy
 msgid "Sort & subtotal by account code."
-msgstr "kode akun"
+msgstr "Urutkan & subtotal berdasar kode akun."
 
 #: gnucash/report/trep-engine.scm:169
-#, fuzzy
 msgid "Sort by the Reconciled Date."
-msgstr "status transaksi: rekonsiliasi"
+msgstr "Urutkan Tanggal Rekonsiliasi."
 
 #: gnucash/report/trep-engine.scm:177
-#, fuzzy
 msgid "Reconciled Status"
-msgstr "Status"
+msgstr "Status Rekonsiliasi"
 
 #: gnucash/report/trep-engine.scm:178
-#, fuzzy
 msgid "Sort by the Reconciled Status"
-msgstr "status transaksi: rekonsiliasi"
+msgstr "Urutkan berdasar Status Rekonsiliasi"
 
 #: gnucash/report/trep-engine.scm:186
-#, fuzzy
 msgid "Register Order"
-msgstr "daftar"
+msgstr "Urutan Register"
 
 #: gnucash/report/trep-engine.scm:187
-#, fuzzy
 msgid "Sort as in the register."
-msgstr "Urut berdasarkan"
+msgstr "Urutkan seperti dalam register."
 
 #: gnucash/report/trep-engine.scm:194
 msgid "Sort by account transferred from/to's name."
-msgstr ""
+msgstr "Urutkan berdasar akun yang ditransfer dari/ke nama ini."
 
 #: gnucash/report/trep-engine.scm:201
 msgid "Sort by account transferred from/to's code."
-msgstr ""
+msgstr "Urutkan berdasar akun yang ditransfer dari/ke kode ini."
 
 #: gnucash/report/trep-engine.scm:224
-#, fuzzy
 msgid "Sort by check number/action."
-msgstr "Cacah butir dalam bilah aksi"
+msgstr "Urutkan berdasar nomor/aksi cek."
 
 #: gnucash/report/trep-engine.scm:231
 msgid "Sort by check/transaction number."
-msgstr ""
+msgstr "Urutkan berdasar nomor cek/transaksi."
 
 #: gnucash/report/trep-engine.scm:238
-#, fuzzy
 msgid "Sort by transaction number."
-msgstr "transaksi"
+msgstr "Urutkan berdasar nomor transaksi."
 
 #: gnucash/report/trep-engine.scm:252
-#, fuzzy
 msgid "Sort by transaction notes."
-msgstr "transaksi"
+msgstr "Urutkan berdasar catatan transaksi."
 
 #: gnucash/report/trep-engine.scm:259
-#, fuzzy
 msgid "Do not sort."
-msgstr "_Urutkan..."
+msgstr "Jangan mengurutkan."
 
 #: gnucash/report/trep-engine.scm:292
-#, fuzzy
 msgid "None."
-msgstr "_Nihil"
+msgstr "Tidak ada."
 
 #: gnucash/report/trep-engine.scm:299
-#, fuzzy
 msgid "Daily."
-msgstr "Harian"
+msgstr "Harian."
 
 #: gnucash/report/trep-engine.scm:306
-#, fuzzy
 msgid "Weekly."
-msgstr "Mingguan"
+msgstr "Mingguan."
 
 #: gnucash/report/trep-engine.scm:315
-#, fuzzy
 msgid "Monthly."
-msgstr "Bulanan"
+msgstr "Bulanan."
 
 #: gnucash/report/trep-engine.scm:324
 msgid "Quarterly."
 msgstr "Per kuartal."
 
 #: gnucash/report/trep-engine.scm:333
-#, fuzzy
 msgid "Yearly."
-msgstr "Tahunan"
+msgstr "Tahunan."
 
 #: gnucash/report/trep-engine.scm:342
-#, fuzzy
 msgid "Do not do any filtering."
-msgstr "Jangan memakai kata benda apapun."
+msgstr "Jangan melakukan penyaringan apapun."
 
 #: gnucash/report/trep-engine.scm:345
 msgid "Include Transactions to/from Filter Accounts"
-msgstr ""
+msgstr "Sertakan Transaksi ke/dari Akun Filter"
 
 #: gnucash/report/trep-engine.scm:346
 msgid "Include transactions to/from filter accounts only."
-msgstr ""
+msgstr "Sertakan transaksi ke/dari akun filter saja."
 
 #: gnucash/report/trep-engine.scm:349
 msgid "Exclude Transactions to/from Filter Accounts"
-msgstr ""
+msgstr "Kecualikan Transaksi ke/dari Akun Filter"
 
 #: gnucash/report/trep-engine.scm:350
 msgid "Exclude transactions to/from all filter accounts."
-msgstr ""
+msgstr "Kecualikan transaksi ke/dari semua akun filter."
 
 #: gnucash/report/trep-engine.scm:356
 msgid "Non-void only"
-msgstr ""
+msgstr "Hanya tak-batal"
 
 #: gnucash/report/trep-engine.scm:357
 msgid "Show only non-voided transactions."
-msgstr ""
+msgstr "Tampilkan hanya transaksi yang tak-batal."
 
 #: gnucash/report/trep-engine.scm:361
-#, fuzzy
 msgid "Void only"
-msgstr "Hanya"
+msgstr "Hanya batal"
 
 #: gnucash/report/trep-engine.scm:362
-#, fuzzy
 msgid "Show only voided transactions."
-msgstr "_Tampilkan folder yang dilanggan saja"
+msgstr "Tampilkan hanya transaksi batal."
 
 #: gnucash/report/trep-engine.scm:366
-#, fuzzy
 msgid "Both"
 msgstr "Keduanya"
 
 #: gnucash/report/trep-engine.scm:367
 msgid "Show both (and include void transactions in totals)."
-msgstr ""
+msgstr "Tampilkan keduanya (dan sertakan transaksi batal dalam total)."
 
 #: gnucash/report/trep-engine.scm:372
-#, fuzzy
 msgid "Exclude closing transactions"
-msgstr "Exclude"
+msgstr "Kecualikan transaksi penutupan"
 
 #: gnucash/report/trep-engine.scm:373
 msgid "Exclude closing transactions from report."
-msgstr ""
+msgstr "Kecualikan transaksi penutupan dari laporan."
 
 #: gnucash/report/trep-engine.scm:377
 msgid "Show both closing and regular transactions"
-msgstr ""
+msgstr "Tampilkan transaksi reguler dan penutupan"
 
 #: gnucash/report/trep-engine.scm:378
 msgid "Show both (and include closing transactions in totals)."
-msgstr ""
+msgstr "Tampilkan keduanya (dan sertakan transaksi penutupan dalam total)."
 
 #: gnucash/report/trep-engine.scm:382
-#, fuzzy
 msgid "Show closing transactions only"
-msgstr "_Tampilkan folder yang dilanggan saja"
+msgstr "Tampilkan hanya transaksi penutupan"
 
 #: gnucash/report/trep-engine.scm:383
-#, fuzzy
 msgid "Show only closing transactions."
-msgstr "_Tampilkan folder yang dilanggan saja"
+msgstr "Tampilkan hanya transaksi penutupan."
 
 #: gnucash/report/trep-engine.scm:394
-#, fuzzy
 msgid "Show All Transactions"
-msgstr "Menampilkan semua opsi bantuan"
+msgstr "Tampilkan Semua Transaksi"
 
 #: gnucash/report/trep-engine.scm:399
-#, fuzzy
 msgid "Unreconciled only"
-msgstr "Hanya _Ikon"
+msgstr "Hanya tak-direkonsiliasi"
 
 #: gnucash/report/trep-engine.scm:404
-#, fuzzy
 msgid "Cleared only"
-msgstr "Senarai ubah dibersihkan"
+msgstr "Hanya klir"
 
 #: gnucash/report/trep-engine.scm:409
-#, fuzzy
 msgid "Reconciled only"
-msgstr "status transaksi: rekonsiliasi"
+msgstr "Hanya direkonsiliasi"
 
 #: gnucash/report/trep-engine.scm:417
 msgid "Smallest to largest, earliest to latest."
-msgstr ""
+msgstr "Terkecil ke terbesar, paling awal ke terbaru."
 
 #: gnucash/report/trep-engine.scm:420
 msgid "Largest to smallest, latest to earliest."
-msgstr ""
+msgstr "Terbesar ke terkecil, terbaru ke terlama."
 
 #: gnucash/report/trep-engine.scm:425
-#, fuzzy
 msgid "Use Global Preference"
-msgstr "Gunakan pengaturan global"
+msgstr "Gunakan Preferensi Global"
 
 #: gnucash/report/trep-engine.scm:426
 msgid "Use reversing option specified in global preference."
-msgstr ""
+msgstr "Gunakan opsi pembalikan yang ditetapkan dalam preferensi global."
 
 #: gnucash/report/trep-engine.scm:430
 msgid "Don't change any displayed amounts."
-msgstr ""
+msgstr "Jangan ubah nilai yang ditampilkan."
 
 #: gnucash/report/trep-engine.scm:433
 msgid "Income and Expense"
@@ -29776,34 +29790,37 @@ msgstr "Pendapatan dan Pengeluaran"
 
 #: gnucash/report/trep-engine.scm:434
 msgid "Reverse amount display for Income and Expense Accounts."
-msgstr ""
+msgstr "Balik tampilan jumlah untuk Akun Pendapatan dan Pengeluaran."
 
 #: gnucash/report/trep-engine.scm:437
-#, fuzzy
 msgid "Credit Accounts"
-msgstr "transfer kredit"
+msgstr "Akun Kredit"
 
 #: gnucash/report/trep-engine.scm:438
 msgid ""
 "Reverse amount display for Liability, Payable, Equity, Credit Card, and "
 "Income accounts."
 msgstr ""
+"Balikkan tampilan jumlah untuk akun Liabilitas, Utang, Ekuitas, Kartu "
+"Kredit, dan Pendapatan."
 
 #: gnucash/report/trep-engine.scm:540
 msgid "Convert all transactions into a common currency."
-msgstr ""
+msgstr "Konversikan semua transaksi ke mata uang umum."
 
 #: gnucash/report/trep-engine.scm:559
 msgid "Formats the table suitable for cut & paste exporting with extra cells."
 msgstr ""
+"Format tabel sehingga sesuai untuk mengekspor potong & tempel dengan sel "
+"ekstra."
 
 #: gnucash/report/trep-engine.scm:571
 msgid "If no transactions matched"
-msgstr ""
+msgstr "Jika tak ada transaksi yang cocok"
 
 #: gnucash/report/trep-engine.scm:572
 msgid "Display summary if no transactions were matched."
-msgstr ""
+msgstr "Tampilkan ikhtisar jika tak ada transaksi yang cocok."
 
 #: gnucash/report/trep-engine.scm:585
 msgid ""
@@ -29822,6 +29839,11 @@ msgid ""
 "match both Expenses:Car and Expenses:Flights. Use a period (.) to match a "
 "single character e.g. '20../.' will match 'Travel 2017/1 London'. "
 msgstr ""
+"Secara baku, filter akun hanya akan melakukan pencarian substring saja. "
+"Setel ini ke \"true\" untuk mengaktifkan kemampuan ekspresi reguler POSIX "
+"secara penuh. 'Mobil|Pesawat' akan cocok dengan Pengeluaran:Mobil dan "
+"Pengeluaran:Pesawat. Gunakan tanda titik (.) untuk mencocokkan karakter "
+"tunggal, misal '20../.' akan cocok dengan 'Perjalanan 2017/1 Jakarta'. "
 
 #: gnucash/report/trep-engine.scm:603
 msgid ""
@@ -29842,25 +29864,31 @@ msgid ""
 "true to enable full POSIX regular expressions capabilities. '#work|#family' "
 "will match both tags within description, notes or memo. "
 msgstr ""
+"Secara baku, filter transaksi hanya akan melakukan pencarian substring saja. "
+"Setel ini ke \"true\" untuk mengaktifkan kemampuan ekspresi reguler POSIX "
+"secara penuh. '#kerja|#keluarga' akan cocok dengan kedua tag di dalam "
+"deksripsi, catatan, atau memo. "
 
 #: gnucash/report/trep-engine.scm:621
 msgid "If this option is selected, transactions matching filter are excluded."
 msgstr ""
+"Jika opsi ini dipilih, transaksi yang cocok dengan filter akan dikecualikan."
 
 #: gnucash/report/trep-engine.scm:628
 msgid ""
 "If this option is selected, transactions matching filter is not case "
 "sensitive."
 msgstr ""
+"Jika opsi ini dipilih, transaksi yang cocok dengan filter tidak membedakan "
+"huruf besar/kecil."
 
 #: gnucash/report/trep-engine.scm:634
-#, fuzzy
 msgid "Filter by reconcile status."
-msgstr "Menyaring pesan yang dipilih dari pesan-pesan sampah"
+msgstr "Filter berdasar status rekonsiliasi."
 
 #: gnucash/report/trep-engine.scm:641
 msgid "How to handle void transactions."
-msgstr ""
+msgstr "Bagaimana menangani transaksi yang batal."
 
 #: gnucash/report/trep-engine.scm:648
 msgid ""
@@ -29869,189 +29897,172 @@ msgid ""
 "expense accounts to equity, and must usually be excluded from periodic "
 "reporting."
 msgstr ""
+"Secara baku, kebanyakan pengguna tidak diperbolehkan menyertakan transaksi "
+"penutupan di dalam laporan transaksi. Transaksi penutupan adalah transfer "
+"dari akun pendapatan dan pengeluran ke akun ekuitas, dan biasanya harus "
+"dikeluarkan dari laporan periodik."
 
 #: gnucash/report/trep-engine.scm:674
-#, fuzzy
 msgid "Filter on these accounts."
-msgstr "Penyaring"
+msgstr "Filter pada akun tersebut."
 
 #: gnucash/report/trep-engine.scm:682
-#, fuzzy
 msgid "Filter account."
-msgstr "Penyaring"
+msgstr "Filter akun."
 
 #: gnucash/report/trep-engine.scm:775
-#, fuzzy
 msgid "Sort by this criterion first."
-msgstr "Urutkan item yang baru-baru ini digunakan terlebih dahulu"
+msgstr "Urutkan berdasar kriteria ini terlebih dahulu."
 
 #: gnucash/report/trep-engine.scm:786
 msgid "Show the full account name for subtotals and subheadings?"
-msgstr ""
+msgstr "Tampilkan nama lengkap akun untuk subtotal dan subtajuk?"
 
 #: gnucash/report/trep-engine.scm:793
 msgid "Show the account code for subtotals and subheadings?"
-msgstr ""
+msgstr "Tampilkan kode akun untuk subtotal dan subtajuk?"
 
 #: gnucash/report/trep-engine.scm:800
 msgid "Show the account description for subheadings?"
-msgstr ""
+msgstr "Tampilkan deskripsi akun untuk subtajuk?"
 
 #: gnucash/report/trep-engine.scm:807
 msgid "Show the informal headers for debit/credit accounts?"
-msgstr ""
+msgstr "Tampilkan kepala informal untuk akun debit/kredit?"
 
 #: gnucash/report/trep-engine.scm:814
 msgid "Add indenting columns with grouping and subtotals?"
-msgstr ""
+msgstr "Tambahkan kolom indentasi dengan pengelompokan dan subtotal?"
 
 #: gnucash/report/trep-engine.scm:821
 msgid "Show subtotals only, hiding transactional detail?"
-msgstr ""
+msgstr "Tampilkan hanya subtotal, dan sembunyikan detail transaksi?"
 
 #: gnucash/report/trep-engine.scm:828
-#, fuzzy
 msgid "Subtotal according to the primary key?"
-msgstr "Tanda tangan pengikatan kunci primer"
+msgstr "Subtotal menurut kunci primer?"
 
 #: gnucash/report/trep-engine.scm:837 gnucash/report/trep-engine.scm:876
-#, fuzzy
 msgid "Do a date subtotal."
-msgstr "subtotal"
+msgstr "Lakukan subtotal tanggal."
 
 #: gnucash/report/trep-engine.scm:847
-#, fuzzy
 msgid "Order of primary sorting."
-msgstr "Cara mengurutkan berkas"
+msgstr "Urutan penyortiran utama."
 
 #: gnucash/report/trep-engine.scm:856
-#, fuzzy
 msgid "Sort by this criterion second."
-msgstr "Urut berdasarkan"
+msgstr "Urutkan berdasar kriteria ini yang kedua."
 
 #: gnucash/report/trep-engine.scm:867
 msgid "Subtotal according to the secondary key?"
-msgstr ""
+msgstr "Subtotal menurut kunci sekunder?"
 
 #: gnucash/report/trep-engine.scm:886
-#, fuzzy
 msgid "Order of Secondary sorting."
-msgstr "Sekunder"
+msgstr "Urutan penyortiran sekunder."
 
 #: gnucash/report/trep-engine.scm:941
-#, fuzzy
 msgid "Display the reconciled date?"
-msgstr "status transaksi: rekonsiliasi"
+msgstr "Tampilkan tanggal rekonsiliasi?"
 
 #: gnucash/report/trep-engine.scm:946
-#, fuzzy
 msgid "Display the notes if the memo is unavailable?"
-msgstr "Tampilkan catatan di peta"
+msgstr "Tampilkan catatan jika memo tak tersedia?"
 
 #: gnucash/report/trep-engine.scm:948 gnucash/report/trep-engine.scm:951
-#, fuzzy
 msgid "Display the full account name?"
-msgstr "nama akun"
+msgstr "Tampilkan nama lengkap akun?"
 
 #: gnucash/report/trep-engine.scm:949
-#, fuzzy
 msgid "Display the account code?"
-msgstr "kode akun"
+msgstr "Tampilkan kode akun?"
 
 #: gnucash/report/trep-engine.scm:952
-#, fuzzy
 msgid "Display the other account code?"
-msgstr "kode akun"
+msgstr "Tampilkan kode akun lain?"
 
 #: gnucash/report/trep-engine.scm:954
-#, fuzzy
 msgid "Display the transaction linked document"
-msgstr "jumlah"
+msgstr "Tampilkan dokumen tertaut transaksi"
 
 #: gnucash/report/trep-engine.scm:957
-#, fuzzy
 msgid "Display a subtotal summary table."
-msgstr "Ringkasan Tabel Akses"
+msgstr "Tampilkan tabel ikhtisar subtotal."
 
 #: gnucash/report/trep-engine.scm:965
-#, fuzzy
 msgid "Display the trans number?"
-msgstr "Tampilkan nomor versi"
+msgstr "Tampilkan nomor trans?"
 
 #: gnucash/report/trep-engine.scm:982
-#, fuzzy
 msgid "Display the account name?"
-msgstr "_Nama Tampilan"
+msgstr "Tampilkan nama akun?"
 
 #: gnucash/report/trep-engine.scm:992
 msgid ""
 "Display the other account name? (if this is a split transaction, this "
 "parameter is guessed)."
 msgstr ""
+"Tampilkan nama akun lain? (jika ini adalah transaksi split, parameter ini "
+"akan ditebak)."
 
 #: gnucash/report/trep-engine.scm:1001
 msgid "Amount of detail to display per transaction."
-msgstr ""
+msgstr "Jimlah detail untuk ditampilkan per transaksi."
 
 #: gnucash/report/trep-engine.scm:1004
-#, fuzzy
 msgid "Multi-Line"
-msgstr "Perataan yang disukai bagi kalimat, bagi teks multi baris"
+msgstr "Multi-Baris"
 
 #: gnucash/report/trep-engine.scm:1005
 msgid "Display all splits in a transaction on a separate line."
-msgstr ""
+msgstr "Tampilkan semua split di dalam transaksi pada baris yang terpisah."
 
 #: gnucash/report/trep-engine.scm:1008
 msgid ""
 "Display one line per transaction, merging multiple splits where required."
 msgstr ""
+"Tampilkan satu baris per transaksi, gabungkan beberapa split jika diperlukan."
 
 #: gnucash/report/trep-engine.scm:1020
-#, fuzzy
 msgid "No amount display."
-msgstr "jumlah"
+msgstr "Tak ada tampilan jumlah."
 
 #: gnucash/report/trep-engine.scm:1031
-#, fuzzy
 msgid "Enable hyperlinks in amounts."
-msgstr "Akti_fkan"
+msgstr "Aktifkan tautan pada jumlah."
 
 #: gnucash/report/trep-engine.scm:1036
 msgid "Reverse amount display for certain account types."
-msgstr ""
+msgstr "Balik tampilan jumlah untuk tipe akun tertentu."
 
 #: gnucash/report/trep-engine.scm:1179
-#, fuzzy
 msgid "Num/T-Num"
-msgstr "No."
+msgstr "Num/T-Num"
 
 #: gnucash/report/trep-engine.scm:1228
-#, fuzzy
 msgid "Transfer from/to"
-msgstr "Transfer berkas Bluetooth dari %s"
+msgstr "Transfer dari/ke"
 
 #. Translators: Balance b/f stands for "Balance
 #. brought forward".
 #: gnucash/report/trep-engine.scm:1429
-#, fuzzy
 msgid "Balance b/f"
-msgstr "saldo pembukaan"
+msgstr "Saldo b/f"
 
 #: gnucash/report/trep-engine.scm:1596
-#, fuzzy
 msgid "Split Transaction"
-msgstr "transaksi"
+msgstr "Transaksi Split"
 
 #: gnucash/report/trep-engine.scm:1844
 msgid "CSV disabled for double column amounts"
-msgstr ""
+msgstr "CSV dinonaktifkan untuk jumlah dua kolom"
 
 #. Translators: Both ~a's are dates
 #: gnucash/report/trep-engine.scm:2236
-#, fuzzy, scheme-format
+#, scheme-format
 msgid "From ~a to ~a"
-msgstr "_Dari:"
+msgstr "Dari ~a ke ~a"
 
 #: libgnucash/app-utils/app-utils.scm:259
 msgid "Company Address"
@@ -30082,9 +30093,8 @@ msgid "Company Contact Person"
 msgstr "Narahubung Perusahaan"
 
 #: libgnucash/app-utils/app-utils.scm:266
-#, fuzzy
 msgid "Fancy Date Format"
-msgstr "format tanggal"
+msgstr "Format Tanggal Lengkap"
 
 #: libgnucash/app-utils/app-utils.scm:267
 msgid "custom"
@@ -30096,7 +30106,7 @@ msgstr "Nomor Pajak"
 
 #: libgnucash/app-utils/business-prefs.scm:24
 msgid "Counters"
-msgstr ""
+msgstr "Pencacah"
 
 #: libgnucash/app-utils/business-prefs.scm:31
 msgid "Customer number format"
@@ -30111,73 +30121,84 @@ msgid ""
 "The format string to use for generating customer numbers. This is a printf-"
 "style format string."
 msgstr ""
+"Format string yang digunakan untuk membuat nomor pelanggan. Ini adalah "
+"format string dengan gaya printf."
 
 #: libgnucash/app-utils/business-prefs.scm:34
 msgid ""
 "The previous customer number generated. This number will be incremented to "
 "generate the next customer number."
 msgstr ""
+"Nomor pelanggan sebelumnya yang telah dibuat. Nomor ini akan ditambah untuk "
+"membuat nomor pelanggan berikutnya."
 
 #: libgnucash/app-utils/business-prefs.scm:35
-#, fuzzy
 msgid "Employee number format"
-msgstr "karyawan"
+msgstr "Format nomor pegawai"
 
 #: libgnucash/app-utils/business-prefs.scm:36
-#, fuzzy
 msgid "Employee number"
-msgstr "karyawan"
+msgstr "Nomor pegawai"
 
 #: libgnucash/app-utils/business-prefs.scm:37
 msgid ""
 "The format string to use for generating employee numbers. This is a printf-"
 "style format string."
 msgstr ""
+"Format string yang digunakan untuk membuat nomor pegawai. Ini adalah format "
+"string dengan gaya printf."
 
 #: libgnucash/app-utils/business-prefs.scm:38
 msgid ""
 "The previous employee number generated. This number will be incremented to "
 "generate the next employee number."
 msgstr ""
+"Nomor pegawai sebelumnya yang telah dibuat. Nomor ini akan ditambah untuk "
+"membuat nomor pegawai berikutnya."
 
 #: libgnucash/app-utils/business-prefs.scm:39
-#, fuzzy
 msgid "Invoice number format"
-msgstr "Format angka"
+msgstr "Format nomor faktur"
 
 #: libgnucash/app-utils/business-prefs.scm:41
 msgid ""
 "The format string to use for generating invoice numbers. This is a printf-"
 "style format string."
 msgstr ""
+"Format string yang digunakan untuk membuat nomor faktur. Ini adalah format "
+"string dengan gaya printf."
 
 #: libgnucash/app-utils/business-prefs.scm:42
 msgid ""
 "The previous invoice number generated. This number will be incremented to "
 "generate the next invoice number."
 msgstr ""
+"Nomor faktur sebelumnya yang telah dibuat. Nomor ini akan ditambah untuk "
+"membuat nomor faktur berikutnya."
 
 #: libgnucash/app-utils/business-prefs.scm:43
-#, fuzzy
 msgid "Bill number format"
-msgstr "Format angka"
+msgstr "Format nomor tagihan"
 
 #: libgnucash/app-utils/business-prefs.scm:44
-#, fuzzy
 msgid "Bill number"
-msgstr "tagihan"
+msgstr "Nomor tagihan"
 
 #: libgnucash/app-utils/business-prefs.scm:45
 msgid ""
 "The format string to use for generating bill numbers. This is a printf-style "
 "format string."
 msgstr ""
+"Format string yang digunakan untuk membuat nomor tagihan. Ini adalah format "
+"string dengan gaya printf."
 
 #: libgnucash/app-utils/business-prefs.scm:46
 msgid ""
 "The previous bill number generated. This number will be incremented to "
 "generate the next bill number."
 msgstr ""
+"Nomor tagihan sebelumnya yang telah dibuat. Nomor ini akan ditambah untuk "
+"membuat nomor tagihan berikutnya."
 
 #: libgnucash/app-utils/business-prefs.scm:47
 msgid "Expense voucher number format"
@@ -30200,8 +30221,8 @@ msgid ""
 "The previous expense voucher number generated. This number will be "
 "incremented to generate the next voucher number."
 msgstr ""
-"Nomor voucer pengeluaran sebelumnya telah dibuat. Nomor ini akan ditambah "
-"untuk membuat nomor voucer berikutnya."
+"Nomor voucer pengeluaran sebelumnya yang telah dibuat. Nomor ini akan "
+"ditambah untuk membuat nomor voucer berikutnya."
 
 #: libgnucash/app-utils/business-prefs.scm:51
 msgid "Job number format"
@@ -30224,7 +30245,7 @@ msgid ""
 "The previous job number generated. This number will be incremented to "
 "generate the next job number."
 msgstr ""
-"Nomor pekerjaan sebelumnya telah dibuat. Nomor ini akan ditambah untuk "
+"Nomor pekerjaan sebelumnya yang telah dibuat. Nomor ini akan ditambah untuk "
 "membuat nomor pekerjaan berikutnya."
 
 #: libgnucash/app-utils/business-prefs.scm:55
@@ -30248,8 +30269,8 @@ msgid ""
 "The previous order number generated. This number will be incremented to "
 "generate the next order number."
 msgstr ""
-"Nomor pesanan sebelumnya telah dibuat. Nomor ini akan ditambah untuk membuat "
-"nomor order berikutnya."
+"Nomor pesanan sebelumnya yang telah dibuat. Nomor ini akan ditambah untuk "
+"membuat nomor order berikutnya."
 
 #: libgnucash/app-utils/business-prefs.scm:59
 msgid "Vendor number format"
@@ -30272,8 +30293,8 @@ msgid ""
 "The previous vendor number generated. This number will be incremented to "
 "generate the next vendor number."
 msgstr ""
-"Nomor vendor sebelumnya telah dibuat. Nomor ini akan ditambah untuk membuat "
-"nomor vendor berikutnya."
+"Nomor vendor sebelumnya yang telah dibuat. Nomor ini akan ditambah untuk "
+"membuat nomor vendor berikutnya."
 
 #: libgnucash/app-utils/business-prefs.scm:72
 msgid "The name of your business."
@@ -30305,27 +30326,27 @@ msgstr "Alamat URL situs web Anda."
 
 #: libgnucash/app-utils/business-prefs.scm:107
 msgid "The ID for your company (eg 'Tax-ID: 00-000000)."
-msgstr "Nomor ID perusahaan Anda (misal 'ID-Pajak: 00-000000)."
+msgstr "Nomor ID perusahaan Anda (misal 'ID-Pajak: 00-000000')."
 
 #: libgnucash/app-utils/business-prefs.scm:112
 msgid "Default Customer TaxTable"
-msgstr "Tabel Pajak Pelanggan Bawaan"
+msgstr "Tabel Pajak Baku untuk Pelanggan"
 
 #: libgnucash/app-utils/business-prefs.scm:113
 msgid "The default tax table to apply to customers."
-msgstr "Tabel pajak bawaan untuk diterapkan ke pelanggan."
+msgstr "Tabel pajak baku untuk diterapkan ke pelanggan."
 
 #: libgnucash/app-utils/business-prefs.scm:118
 msgid "Default Vendor TaxTable"
-msgstr "Tabel Pajak Vendor Bawaan"
+msgstr "Tabel Pajak Baku untuk Vendor"
 
 #: libgnucash/app-utils/business-prefs.scm:119
 msgid "The default tax table to apply to vendors."
-msgstr "Tabel pajak bawaan untuk diterapkan ke vendor."
+msgstr "Tabel pajak baku untuk diterapkan ke vendor."
 
 #: libgnucash/app-utils/business-prefs.scm:125
 msgid "The default date format used for fancy printed dates."
-msgstr ""
+msgstr "Format tanggal baku yang digunakan untuk mencetak tanggal lengkap."
 
 #: libgnucash/app-utils/business-prefs.scm:133
 msgid ""
@@ -30334,6 +30355,10 @@ msgid ""
 "account register windows. If zero, all transactions can be edited and none "
 "are read-only."
 msgstr ""
+"Pilih jumlah hari di mana setelahnya, transaksi akan menjadi hanya-baca dan "
+"tidak dapat disunting lagi. Ambang batas ini ditandai dengan garis merah di "
+"jendela register akun. Jika nol, semua transaksi dapat disunting dan tidak "
+"ada yang hanya-baca."
 
 #: libgnucash/app-utils/business-prefs.scm:144
 msgid ""
@@ -30342,20 +30367,26 @@ msgid ""
 "register. Has corresponding effect on business features, reporting and "
 "imports/exports."
 msgstr ""
+"Centang untuk memiliki bidang tindakan yang terpisah yang digunakan dalam "
+"register untuk bidang 'Num' sebagai pengganti nomor transaksi; nomor "
+"transaksi ditampilkan sebagai 'T-Num' pada baris kedua register. Berpengaruh "
+"pada fitur-fitur bisnis, pelaporan dan impor/ekspor."
 
 #: libgnucash/app-utils/business-prefs.scm:150
 msgid ""
 "Check to have trading accounts used for transactions involving more than one "
 "currency or commodity."
 msgstr ""
+"Centang untuk memiliki akun perdagangan yang digunakan untuk transaksi yang "
+"melibatkan lebih dari satu mata uang atau komoditas."
 
 #: libgnucash/app-utils/business-prefs.scm:158
 msgid "Budget to be used when none has been otherwise specified."
-msgstr ""
+msgstr "Anggaran yang akan digunakan ketika tidak ada yang ditentukan."
 
 #: libgnucash/app-utils/business-prefs.scm:164
 msgid "The electronic tax number of your business"
-msgstr ""
+msgstr "Nomor pajak elektronik bisnis Anda"
 
 #: libgnucash/app-utils/date-utilities.scm:425
 #, scheme-format
@@ -30364,7 +30395,8 @@ msgid ""
 "saved by a later version of GnuCash. Defaulting to today."
 msgstr ""
 "Mencoba mencari simbol tanggal '~a' yang tak diketahui. Laporan ini mungkin "
-"disimpan dengan GnuCash versi yang lebih baru. Dikembalikan ke hari ini."
+"disimpan dengan GnuCash versi yang lebih baru. Dikembalikan secara baku ke "
+"hari ini."
 
 #: libgnucash/app-utils/date-utilities.scm:803
 msgid "First day of the current calendar year."
@@ -30573,21 +30605,19 @@ msgstr "Satu Tahun ke Depan."
 
 #: libgnucash/app-utils/gnc-exp-parser.c:622
 msgid "Illegal variable in expression."
-msgstr ""
+msgstr "Variabel ilegal pada ekspresi."
 
 #: libgnucash/app-utils/gnc-exp-parser.c:633
 msgid "Unbalanced parenthesis"
 msgstr "Tanda petik tak lengkap"
 
 #: libgnucash/app-utils/gnc-exp-parser.c:635
-#, fuzzy
 msgid "Stack overflow"
-msgstr "Kesalahan overflow"
+msgstr "Stack overflow"
 
 #: libgnucash/app-utils/gnc-exp-parser.c:637
-#, fuzzy
 msgid "Stack underflow"
-msgstr "Kesalahan underflow"
+msgstr "Stack underflow"
 
 #: libgnucash/app-utils/gnc-exp-parser.c:639
 msgid "Undefined character"
@@ -30619,18 +30649,36 @@ msgstr "Akun tak diketahui untuk guid [%s], membatalkan pembuatan SX [%s]."
 #: libgnucash/app-utils/gnc-sx-instance-model.c:1043
 #, c-format
 msgid "Error parsing SX [%s] key [%s]=formula [%s] at [%s]: %s."
-msgstr ""
+msgstr "Galat saat mengurai SX [%s] kunci [%s]=rumus [%s] pada [%s]: %s."
 
 #: libgnucash/app-utils/gnc-sx-instance-model.c:1097
 #: libgnucash/app-utils/gnc-sx-instance-model.c:1758
 #, c-format
 msgid "Error %d in SX [%s] final gnc_numeric value, using 0 instead."
-msgstr ""
+msgstr "Galat %d pada SX [%s] nilai gnc_numerik final, menggunakan nilai 0."
 
 #: libgnucash/app-utils/gnc-sx-instance-model.c:1767
 #, c-format
 msgid "No exchange rate available in SX [%s] for %s -> %s, value is zero."
 msgstr ""
+"Tak ada nilai tukar yang tersedia pada SX [%s] untuk %s -> %s, nilainya nol."
+
+#: libgnucash/app-utils/gnc-ui-balances.c:407
+msgid "Account is already at Auto-Clear Balance."
+msgstr ""
+
+#: libgnucash/app-utils/gnc-ui-balances.c:451
+msgid "Too many uncleared splits"
+msgstr ""
+
+#: libgnucash/app-utils/gnc-ui-balances.c:467
+msgid "The selected amount cannot be cleared."
+msgstr "Jumlah yang dipilih tidak bisa diklirkan."
+
+#: libgnucash/app-utils/gnc-ui-balances.c:473
+msgid "Cannot uniquely clear splits. Found multiple possibilities."
+msgstr ""
+"Tak dapat membersihkan split secara unik. Ditemukan beberapa kemungkinan."
 
 #. Translators: This and the following strings appear on
 #. * the account tab if the Tax Info column is displayed,
@@ -30641,110 +30689,104 @@ msgstr ""
 #. * account generally corresponds to a specific line number
 #. * on a paper form and each form has a unique
 #. * identification (e.g., Form 1040, Schedule A).
-#: libgnucash/app-utils/gnc-ui-util.c:625
+#: libgnucash/app-utils/gnc-ui-util.c:634
 msgid "Tax-related but has no tax code"
-msgstr ""
+msgstr "Terkait-pajak tetapi tidak memiliki kode pajak"
 
-#: libgnucash/app-utils/gnc-ui-util.c:639
-#, fuzzy
+#: libgnucash/app-utils/gnc-ui-util.c:648
 msgid "Tax entity type not specified"
-msgstr "<%s> berisi string tidak dalam jenis tanda yang ditentukan"
+msgstr "Tipe entitas pajak tak ditentukan"
 
-#: libgnucash/app-utils/gnc-ui-util.c:694
+#: libgnucash/app-utils/gnc-ui-util.c:703
 #, c-format
 msgid "Tax type %s: invalid code %s for account type"
-msgstr ""
+msgstr "Tipe pajak %s: kode tidak valid %s untuk tipe akun"
 
-#: libgnucash/app-utils/gnc-ui-util.c:698
+#: libgnucash/app-utils/gnc-ui-util.c:707
 #, c-format
 msgid "Not tax-related; tax type %s: invalid code %s for account type"
 msgstr ""
+"Bukan terkait-pajak; tipe pajak %s: kode tidak valid %s untuk tipe akun"
 
-#: libgnucash/app-utils/gnc-ui-util.c:711
-#, fuzzy, c-format
+#: libgnucash/app-utils/gnc-ui-util.c:720
+#, c-format
 msgid "Invalid code %s for tax type %s"
-msgstr "Tipe atribut tidak valid \"%s\""
+msgstr "Kode tidak valid %s untuk tipe pajak %s"
 
-#: libgnucash/app-utils/gnc-ui-util.c:715
+#: libgnucash/app-utils/gnc-ui-util.c:724
 #, c-format
 msgid "Not tax-related; invalid code %s for tax type %s"
-msgstr ""
+msgstr "Bukan terkait-pajak; kode tidak valid %s untuk tipe pajak %s"
 
-#: libgnucash/app-utils/gnc-ui-util.c:733
+#: libgnucash/app-utils/gnc-ui-util.c:742
 #, c-format
 msgid "No form: code %s, tax type %s"
-msgstr ""
+msgstr "Tak ada bentuk: kode %s, tipe pajak %s"
 
-#: libgnucash/app-utils/gnc-ui-util.c:737
+#: libgnucash/app-utils/gnc-ui-util.c:746
 #, c-format
 msgid "Not tax-related; no form: code %s, tax type %s"
-msgstr ""
+msgstr "Bukan terkait-pajak; tak ada bentuk: kode %s, tipe pajak %s"
 
-#: libgnucash/app-utils/gnc-ui-util.c:754
-#: libgnucash/app-utils/gnc-ui-util.c:769
+#: libgnucash/app-utils/gnc-ui-util.c:763
+#: libgnucash/app-utils/gnc-ui-util.c:778
 #, c-format
 msgid "No description: form %s, code %s, tax type %s"
-msgstr ""
+msgstr "Tak ada deskripsi: bentuk %s, kode %s, tipe pajak %s"
 
-#: libgnucash/app-utils/gnc-ui-util.c:758
-#: libgnucash/app-utils/gnc-ui-util.c:773
+#: libgnucash/app-utils/gnc-ui-util.c:767
+#: libgnucash/app-utils/gnc-ui-util.c:782
 #, c-format
 msgid "Not tax-related; no description: form %s, code %s, tax type %s"
 msgstr ""
+"Bukan terkait-pajak; tak ada deskripsi: bentuk %s, kode %s, tipe pajak %s"
 
-#: libgnucash/app-utils/gnc-ui-util.c:796
+#: libgnucash/app-utils/gnc-ui-util.c:805
 #, c-format
 msgid "Not tax-related; %s%s: %s (code %s, tax type %s)"
-msgstr ""
+msgstr "Bukan terkait-pajak; %s%s: %s (kode %s, tipe pajak %s)"
 
-#: libgnucash/app-utils/gnc-ui-util.c:843
+#: libgnucash/app-utils/gnc-ui-util.c:852
 #, c-format
 msgid "(Tax-related subaccounts: %d)"
-msgstr ""
+msgstr "(Sub-akun terkait-pajak: %d)"
 
-#: libgnucash/app-utils/gnc-ui-util.c:863
-#, fuzzy
+#: libgnucash/app-utils/gnc-ui-util.c:872
 msgctxt "Reconciled flag 'not cleared'"
 msgid "n"
 msgstr "n"
 
-#: libgnucash/app-utils/gnc-ui-util.c:865
-#, fuzzy
+#: libgnucash/app-utils/gnc-ui-util.c:874
 msgctxt "Reconciled flag 'cleared'"
 msgid "c"
 msgstr "c"
 
-#: libgnucash/app-utils/gnc-ui-util.c:867
-#, fuzzy
+#: libgnucash/app-utils/gnc-ui-util.c:876
 msgctxt "Reconciled flag 'reconciled'"
 msgid "y"
 msgstr "y"
 
-#: libgnucash/app-utils/gnc-ui-util.c:869
-#, fuzzy
+#: libgnucash/app-utils/gnc-ui-util.c:878
 msgctxt "Reconciled flag 'frozen'"
 msgid "f"
-msgstr "J"
+msgstr "f"
 
-#: libgnucash/app-utils/gnc-ui-util.c:871
-#, fuzzy
+#: libgnucash/app-utils/gnc-ui-util.c:880
 msgctxt "Reconciled flag 'void'"
 msgid "v"
-msgstr "V"
+msgstr "v"
 
-#: libgnucash/app-utils/gnc-ui-util.c:911
-#, fuzzy
+#: libgnucash/app-utils/gnc-ui-util.c:920
 msgctxt "Document Link flag for 'web'"
 msgid "w"
-msgstr "R"
+msgstr "w"
 
-#: libgnucash/app-utils/gnc-ui-util.c:913
-#, fuzzy
+#: libgnucash/app-utils/gnc-ui-util.c:922
 msgctxt "Document Link flag for 'file'"
 msgid "f"
-msgstr "J"
+msgstr "f"
 
-#: libgnucash/app-utils/gnc-ui-util.c:942
+#: libgnucash/app-utils/gnc-ui-util.c:951
 msgid "Opening Balances"
 msgstr "Saldo Awal"
 
@@ -30757,8 +30799,10 @@ msgid ""
 "This report was saved using a later version of GnuCash. One of the newer ~a "
 "options '~a' is not available, fallback to the option '~a'."
 msgstr ""
+"Laporan ini disimpan menggunakan versi GnuCash yang lebih baru. Salah satu "
+"opsi ~a yang lebih baru '~a' tak tersedia, kembali mundur ke opsi '~a'."
 
-#: libgnucash/app-utils/option-util.c:1696
+#: libgnucash/app-utils/option-util.c:1663
 #, c-format
 msgid ""
 "There is a problem with option %s:%s.\n"
@@ -30767,20 +30811,18 @@ msgstr ""
 "Ada masalah dengan opsi %s:%s.\n"
 "%s"
 
-#: libgnucash/app-utils/option-util.c:1697
-#, fuzzy
+#: libgnucash/app-utils/option-util.c:1664
 msgid "Invalid option value"
-msgstr "Nilai tak valid."
+msgstr "Nilai opsi tak valid"
 
 #. Translators: this string refers to a file name that gets renamed
 #: libgnucash/core-utils/gnc-filepath-utils.cpp:647
-#, fuzzy
 msgid "Renamed to:"
-msgstr "Dari daftar, pilih snapshot yang akan diubah nama."
+msgstr "Diganti nama ke:"
 
 #: libgnucash/core-utils/gnc-filepath-utils.cpp:672
 msgid "Notice"
-msgstr "Perhatian"
+msgstr "Pemberitahuan"
 
 #: libgnucash/core-utils/gnc-filepath-utils.cpp:677
 msgid "Your gnucash metadata has been migrated."
@@ -30802,35 +30844,36 @@ msgid ""
 "If you no longer intend to run {1} 2.6.x or older on this system you can "
 "safely remove the old directory."
 msgstr ""
+"Jika Anda tidak akan menjalankan {1} 2.6.x atau lebih lama pada sistem ini, "
+"Anda bisa dengan aman menghapus direktori lama."
 
 #: libgnucash/core-utils/gnc-filepath-utils.cpp:690
-#, fuzzy
 msgid "In addition:"
-msgstr "Penjumlahan"
+msgstr "Tambahan:"
 
 #: libgnucash/core-utils/gnc-filepath-utils.cpp:696
 msgid "The following file has been copied to {1} instead:"
 msgid_plural "The following files have been copied to {1} instead:"
-msgstr[0] ""
-msgstr[1] ""
+msgstr[0] "Berkas berikut telah disalin ke {1}:"
+msgstr[1] "Berkas berikut telah disalin ke {1}:"
 
 #: libgnucash/core-utils/gnc-filepath-utils.cpp:700
 msgid "The following file in {1} has been renamed:"
-msgstr ""
+msgstr "Berkas pada {1} berikut telah dinamai ulang:"
 
 #: libgnucash/core-utils/gnc-filepath-utils.cpp:710
 msgid "The following file has become obsolete and will be ignored:"
 msgid_plural "The following files have become obsolete and will be ignored:"
-msgstr[0] ""
-msgstr[1] ""
+msgstr[0] "Berkas berikut telah usang dan akan diabaikan:"
+msgstr[1] "Berkas berikut telah usang dan akan diabaikan:"
 
 #: libgnucash/core-utils/gnc-filepath-utils.cpp:720
 msgid "The following file could not be moved to {1}:"
 msgid_plural "The following files could not be moved to {1}:"
-msgstr[0] ""
-msgstr[1] ""
+msgstr[0] "Berkas berikut tak dapat dipindahkan ke {1}:"
+msgstr[1] "Berkas berikut tak dapat dipindahkan ke {1}:"
 
-#: libgnucash/engine/Account.cpp:255
+#: libgnucash/engine/Account.cpp:256
 #, c-format
 msgid ""
 "The separator character \"%s\" is used in one or more account names.\n"
@@ -30841,52 +30884,58 @@ msgid ""
 "Below you will find the list of invalid account names:\n"
 "%s"
 msgstr ""
+"Karakter pemisah \"%s\" digunakan dalam satu atau lebih nama akun.\n"
+"\n"
+"Ini akan menyebabkan tingkah laku yang tak diharapkan. Ubah nama akun atau "
+"pilih karakter pemisah yang lain.\n"
+"\n"
+"Di bawah ini adalah daftar nama akun yang tak valid:\n"
+"%s"
 
-#: libgnucash/engine/Account.cpp:4317
+#: libgnucash/engine/Account.cpp:4364
 msgid "Credit Card"
 msgstr "Kartu Kredit"
 
-#: libgnucash/engine/Account.cpp:4319
+#: libgnucash/engine/Account.cpp:4366
 msgid "Stock"
 msgstr "Saham"
 
-#: libgnucash/engine/Account.cpp:4320
+#: libgnucash/engine/Account.cpp:4367
 msgid "Mutual Fund"
 msgstr "Reksadana"
 
-#: libgnucash/engine/Account.cpp:4325
+#: libgnucash/engine/Account.cpp:4372
 msgid "A/Receivable"
 msgstr "A/Piutang"
 
-#: libgnucash/engine/Account.cpp:4326
+#: libgnucash/engine/Account.cpp:4373
 msgid "A/Payable"
 msgstr "A/Utang"
 
-#: libgnucash/engine/Account.cpp:4327
-#, fuzzy
+#: libgnucash/engine/Account.cpp:4374
 msgid "Root"
 msgstr "Akar"
 
-#: libgnucash/engine/Account.cpp:4769
-#, fuzzy
+#: libgnucash/engine/Account.cpp:4816
 msgid "Orphaned Gains"
-msgstr "laba modal"
+msgstr "Keuntungan Terlantar"
 
-#: libgnucash/engine/Account.cpp:4783 libgnucash/engine/cap-gains.c:806
+#: libgnucash/engine/Account.cpp:4830 libgnucash/engine/cap-gains.c:806
 #: libgnucash/engine/cap-gains.c:811 libgnucash/engine/cap-gains.c:812
 msgid "Realized Gain/Loss"
 msgstr "Keuntungan/Kerugian Direalisasikan"
 
-#: libgnucash/engine/Account.cpp:4785
+#: libgnucash/engine/Account.cpp:4832
 msgid ""
 "Realized Gains or Losses from Commodity or Trading Accounts that haven't "
 "been recorded elsewhere."
 msgstr ""
+"Keuntungan atau Kerugian yang direalisasikan dari Komoditas atau Akun "
+"Perdagangan yang belum dicatat dimanapun."
 
 #: libgnucash/engine/gnc-commodity.h:113
-#, fuzzy
 msgid "All non-currency"
-msgstr "mata uang"
+msgstr "Semua bukan-mata uang"
 
 #: libgnucash/engine/gnc-date.cpp:79
 msgid "%B %#d, %Y"
@@ -30919,27 +30968,34 @@ msgstr "m-d"
 
 #: libgnucash/engine/gnc-datetime.cpp:554
 msgid "Unknown date format specifier passed as argument."
-msgstr ""
+msgstr "Penentu format tanggal yang tak diketahui diteruskan sebagai argumen."
 
 #: libgnucash/engine/gnc-datetime.cpp:559
 msgid "Value can't be parsed into a date using the selected date format."
 msgstr ""
+"Nilai tak dapat diurai menjadi tanggal menggunakan format tanggal yang "
+"dipilih."
 
 #: libgnucash/engine/gnc-datetime.cpp:564
 msgid "Value appears to contain a year while the selected format forbids this."
 msgstr ""
+"Nilai sepertinya berisi sebuah tahun sedangkan format yang dipilih melarang "
+"hal ini."
 
-#: libgnucash/engine/gnc-features.c:118
+#: libgnucash/engine/gnc-features.c:119
 msgid ""
 "This Dataset contains features not supported by this version of GnuCash. You "
 "must use a newer version of GnuCash in order to support the following "
 "features:"
 msgstr ""
+"Set data berikut berisi fitur-fitur yang tak didukung oleh GnuCash versi "
+"ini. Anda harus menggunakan GnuCash versi yang lebih baru agar mendukung "
+"fitur-fitur berikut:"
 
 #: libgnucash/engine/gncInvoice.c:1696
 #, fuzzy
 msgid "Extra to Charge Card"
-msgstr "Kartu"
+msgstr "Ekstra untuk Mengisi Kartu"
 
 #: libgnucash/engine/gncInvoice.c:1735
 msgid "Generated from an invoice. Try unposting the invoice."
@@ -30950,93 +31006,81 @@ msgid " (posted)"
 msgstr " (dipos)"
 
 #: libgnucash/engine/gncOrder.c:550
-#, fuzzy
 msgid " (closed)"
-msgstr "Stream telah ditutup"
+msgstr " (ditutup)"
 
 #: libgnucash/engine/gncOwner.c:1015
-#, fuzzy
 msgid "Offset between documents: "
-msgstr "Ofset"
+msgstr "Ofset antar dokumen: "
 
 #: libgnucash/engine/gncOwner.c:1127
-#, fuzzy
 msgid "Lot Link"
-msgstr "Lot"
+msgstr "Tautan Lot"
 
 #: libgnucash/engine/policy.c:52
-#, fuzzy
 msgid "First In, First Out"
-msgstr "_Depan:"
+msgstr "Masuk Pertama, Keluar Pertama"
 
 #: libgnucash/engine/policy.c:53
 msgid "Use oldest lots first."
-msgstr ""
+msgstr "Gunakan lot paling lama terlebih dahulu."
 
 #: libgnucash/engine/policy.c:55
-#, fuzzy
 msgid "Last In, First Out"
-msgstr "Halaman terakhir akan dicetak pertama, dan seterusnya."
+msgstr "Masuk Terakhir, Keluar Pertama"
 
 #: libgnucash/engine/policy.c:56
 msgid "Use newest lots first."
-msgstr ""
+msgstr "Gunakan lot paling baru terlebih dahulu."
 
 #: libgnucash/engine/policy.c:59
 msgid "Average cost of open lots."
-msgstr ""
+msgstr "Biaya rata-rata lot terbuka."
 
 #: libgnucash/engine/policy.c:62
-#, fuzzy
 msgid "Manually select lots."
-msgstr "Memilih subtitel secara manual untuk film yang diputar."
+msgstr "Pilih lot secara manual."
 
 #: libgnucash/engine/qofbookslots.h:66
-#, fuzzy
 msgid "Use Trading Accounts"
-msgstr "Memakai sandi lain untuk akun yang berbeda."
+msgstr "Gunakan Akun Perdagangan"
 
 #: libgnucash/engine/qofbookslots.h:67
-#, fuzzy
 msgid "Currency Accounting"
-msgstr "mata uang"
+msgstr "Akuntansi Mata Uang"
 
 #: libgnucash/engine/qofbookslots.h:68
-#, fuzzy
 msgid "Book Currency"
-msgstr "mata uang"
+msgstr "Mata Uang Buku"
 
 #: libgnucash/engine/qofbookslots.h:69
-#, fuzzy
 msgid "Default Gains Policy"
-msgstr "Kebijakan:"
+msgstr "Kebijakan Keuntungan Baku"
 
 #: libgnucash/engine/qofbookslots.h:70
-#, fuzzy
 msgid "Default Gain or Loss Account"
-msgstr "tipe akun: Keuntungan & Kerugian"
+msgstr "Akun Keuntungan atau Kerugian Baku"
 
 #: libgnucash/engine/qofbookslots.h:71
 msgid "Day Threshold for Read-Only Transactions (red line)"
-msgstr ""
+msgstr "Ambang Hari untuk Transaksi Hanya-Baca (garis merah)"
 
 #: libgnucash/engine/qofbookslots.h:72
 msgid "Use Split Action Field for Number"
-msgstr "Gunakan Bidang Aksi Pemecahan untuk Angka"
+msgstr "Gunakan Bidang Aksi Terpisah untuk Nomor"
 
 #: libgnucash/engine/qofbookslots.h:74
 msgid "Budgeting"
-msgstr ""
+msgstr "Penganggaran"
 
 #: libgnucash/engine/qofbookslots.h:75
-#, fuzzy
 msgid "Default Budget"
-msgstr "Anggaran"
+msgstr "Anggaran Baku"
 
 #. Translators: " + " is an separator in a list of string-representations of recurrence frequencies
 #: libgnucash/engine/Recurrence.c:512
 msgid " + "
-msgstr ""
+msgstr " + "
 
 #. Translators: %u is the recurrence multiplier, i.e. this
 #. event should occur every %u'th week.
@@ -31045,30 +31089,30 @@ msgstr ""
 #: libgnucash/engine/Recurrence.c:628 libgnucash/engine/Recurrence.c:717
 #: libgnucash/engine/Recurrence.c:748 libgnucash/engine/Recurrence.c:765
 #: libgnucash/engine/Recurrence.c:779 libgnucash/engine/Recurrence.c:791
-#, fuzzy, c-format
+#, c-format
 msgid " (x%u)"
-msgstr "%X"
+msgstr " (x%u)"
 
 #. Translators: %s is an already-localized form of the day of the week.
 #: libgnucash/engine/Recurrence.c:661
-#, fuzzy, c-format
+#, c-format
 msgid "last %s"
-msgstr "Terakhir diperbarui: %s"
+msgstr "%s terakhir"
 
 #. Translators: %s is the string 1st, 2nd, 3rd and so on, and
 #. * %s is an already-localized form of the day of the week.
 #: libgnucash/engine/Recurrence.c:675
-#, fuzzy, c-format
+#, c-format
 msgid "%s %s"
-msgstr "kait unix: %s%s %s %s %s\n"
+msgstr "%s %s"
 
 #. Translators: %d is the number of Recurrences in the list.
 #: libgnucash/engine/Recurrence.c:727
-#, fuzzy, c-format
+#, c-format
 msgid "Unknown, %d-size list."
-msgstr "Tipe bus %d tak dikenal"
+msgstr "Tak diketahui, daftar berukuran %d."
 
-#: libgnucash/engine/ScrubBusiness.c:547
+#: libgnucash/engine/ScrubBusiness.c:548
 msgid ""
 "Please delete this transaction. Explanation at https://wiki.gnucash.org/wiki/"
 "Business_Features_Issues#Double_posting"
@@ -31076,235 +31120,48 @@ msgstr ""
 "Silakan menghapus transaksi ini. Penjelasan di https://wiki.gnucash.org/wiki/"
 "Business_Features_Issues#Double_posting"
 
-#: libgnucash/engine/ScrubBusiness.c:563
+#: libgnucash/engine/ScrubBusiness.c:564
 msgid ""
 "Please delete this transaction. Explanation at https://wiki.gnucash.org/wiki/"
 "Business_Features_Issues#I_can.27t_delete_a_transaction_of_type_.22I.22_from_the_AR.2FAP_account"
 msgstr ""
+"Silakan menghapus transaksi ini. Penjelasan di https://wiki.gnucash.org/wiki/"
+"Business_Features_Issues#I_can.27t_delete_a_transaction_of_type_.22I.22_from_the_AR.2FAP_account"
 
-#: libgnucash/engine/ScrubBusiness.c:614
+#: libgnucash/engine/ScrubBusiness.c:615
 #, c-format
 msgid "Checking business lots in account %s: %u of %u"
-msgstr ""
+msgstr "Memeriksa lot bisnis di akun %s: %u dari %u"
 
-#: libgnucash/engine/ScrubBusiness.c:664
+#: libgnucash/engine/ScrubBusiness.c:669
 #, c-format
 msgid "Checking business splits in account %s: %u of %u"
-msgstr ""
+msgstr "Memeriksa split bisnis pada akun %s: %u dari %u"
 
-#: libgnucash/engine/Scrub.c:124
+#: libgnucash/engine/Scrub.c:134
 #, c-format
 msgid "Looking for orphans in account %s: %u of %u"
-msgstr ""
+msgstr "Mencari yang terlantar di akun %s: %u dari %u"
 
-#: libgnucash/engine/Scrub.c:329
+#: libgnucash/engine/Scrub.c:344
 #, c-format
 msgid "Looking for imbalances in account %s: %u of %u"
-msgstr ""
+msgstr "Mencari ketidakseimbangan di akun %s: %u dari %u"
 
 #: libgnucash/engine/Split.c:1625
-#, fuzzy
 msgctxt ""
 "Displayed account code of the other account in a multi-split transaction"
 msgid "Split"
-msgstr "Belah"
+msgstr "Split"
 
 #: libgnucash/engine/Transaction.c:2707
-#, fuzzy
 msgid "Voided transaction"
-msgstr "status transaksi: dibatalkan"
+msgstr "Transaksi dibatalkan"
 
 #: libgnucash/engine/Transaction.c:2719
-#, fuzzy
 msgid "Transaction Voided"
-msgstr "status transaksi: dibatalkan"
+msgstr "Transaksi Dibatalkan"
 
 #: libgnucash/tax/us/txf.scm:98
 msgid "No help available."
 msgstr "Tak ada bantuan yang tersedia."
-
-#~ msgid "Business Links"
-#~ msgstr "Taut Bisnis"
-
-#~ msgid "_Manage Document Link"
-#~ msgstr "_Kelola Taut Dokumen"
-
-#~ msgid "Date/Time"
-#~ msgstr "Tanggal/Waktu"
-
-#, fuzzy
-#~ msgid "One year."
-#~ msgstr "Tahun ini"
-
-#~ msgid "Links"
-#~ msgstr "Tautan"
-
-#, scheme-format
-#~ msgid "No transactions were found associated with the ~a."
-#~ msgstr "Tak ditemukan transaksi yang berasosiasi dengan ~a."
-
-#~ msgid "Change a Business Association"
-#~ msgstr "Ubah Asosiasi Bisnis"
-
-#~ msgid "Transaction Associations"
-#~ msgstr "Asosiasi Transaksi"
-
-#~ msgid "Open Association:"
-#~ msgstr "Buka Asosiasi:"
-
-#~ msgid "_Transaction Associations"
-#~ msgstr "Asosiasi _Transaksi"
-
-#~ msgid "Business _Associations"
-#~ msgstr "_Asosiasi Bisnis"
-
-#~ msgid "_Update Association for Invoice"
-#~ msgstr "_Perbarui Asosiasi untuk Faktur"
-
-#~ msgid "_Open Association for Invoice"
-#~ msgstr "_Buka Asosiasi untuk Faktur"
-
-#~ msgid "_Remove Association from Invoice"
-#~ msgstr "_Hapus Asosiasi dari Faktur"
-
-#~ msgid "_Update Association for Bill"
-#~ msgstr "_Perbarui Asosiasi untuk Tagihan"
-
-#~ msgid "_Open Association for Bill"
-#~ msgstr "_Buka Asosiasi untuk Tagihan"
-
-#~ msgid "_Remove Association from Bill"
-#~ msgstr "_Hapus Asosiasi dari Tagihan"
-
-#~ msgid "_Update Association for Voucher"
-#~ msgstr "_Perbarui Asosiasi untuk Voucer"
-
-#~ msgid "_Open Association for Voucher"
-#~ msgstr "_Buka Asosiasi untuk Voucer"
-
-#~ msgid "_Remove Association from Voucher"
-#~ msgstr "_Hapus Asosiasi dari Voucer"
-
-#~ msgid "_Update Association for Credit Note"
-#~ msgstr "_Perbarui Asosiasi untuk Nota Kredit"
-
-#~ msgid "_Open Association for Credit Note"
-#~ msgstr "_Buka Asosiasi untuk Nota Kredit"
-
-#~ msgid "_Remove Association from Credit Note"
-#~ msgstr "_Hapus Asosiasi dari Nota Kredit"
-
-#~ msgid "Update Association for current invoice"
-#~ msgstr "Perbarui Asosiasi untuk faktur saat ini"
-
-#~ msgid "Open Association for current invoice"
-#~ msgstr "Buka Asosiasi untuk faktur saat ini"
-
-#~ msgid "Remove Association from invoice"
-#~ msgstr "Hapus Asosiasi dari faktur"
-
-#, fuzzy
-#~ msgid "Open Association for current bill"
-#~ msgstr "Membuka salinan dokumen saat ini"
-
-#, fuzzy
-#~ msgid "Remove Association from bill"
-#~ msgstr "Menghapus placeholder dari %s"
-
-#~ msgid "Update Association for current voucher"
-#~ msgstr "Perbarui Asosiasi untuk voucer saat ini"
-
-#~ msgid "Open Association for current voucher"
-#~ msgstr "Buka Asosiasi untuk voucer saat ini"
-
-#~ msgid "Remove Association from voucher"
-#~ msgstr "Hapus Asosiasi dari voucer"
-
-#~ msgid "Update Association for credit note"
-#~ msgstr "Perbarui Asosiasi untuk nota kredit"
-
-#~ msgid "Open Association for credit note"
-#~ msgstr "Buka Asosiasi untuk nota kredit"
-
-#~ msgid "Remove Association from credit note"
-#~ msgstr "Hapus Asosiasi untuk nota kredit"
-
-#~ msgid "Jump to the corresponding transaction in the other account"
-#~ msgstr "Lompat ke transaksi yang sesuai di akun yang lain"
-
-#~ msgid "Update _Association for Transaction"
-#~ msgstr "Perbarui _Asosiasi untuk Transaksi"
-
-#~ msgid "_Open Association for Transaction"
-#~ msgstr "_Buka Asosiasi untuk Transaksi"
-
-#~ msgid "Re_move Association from Transaction"
-#~ msgstr "B_uang Asosiasi dari Transaksi"
-
-#~ msgid "Open Associated Invoice"
-#~ msgstr "Buka Faktur Terasosiasi"
-
-#~ msgid "Update Association for the current transaction"
-#~ msgstr "Perbarui Asosiasi untuk transaksi saat ini"
-
-#~ msgid "Remove the association from the current transaction"
-#~ msgstr "Buang asosiasi dari transaksi saat ini"
-
-#~ msgid "Open the associated invoice"
-#~ msgstr "Buka faktur terasosiasi"
-
-#~ msgid "Update Association"
-#~ msgstr "Perbarui Asosiasi"
-
-#~ msgid "Open Association"
-#~ msgstr "Buka Asosiasi"
-
-#~ msgid "Remove Association"
-#~ msgstr "Hapus Asosiasi"
-
-#~ msgid "Open Invoice"
-#~ msgstr "Buka Faktur"
-
-#, fuzzy
-#~ msgid "_File Association"
-#~ msgstr "Asosiasi Manual atau Otomatis"
-
-#, fuzzy
-#~ msgid "_Location Association"
-#~ msgstr "Lokasi"
-
-#, fuzzy
-#~ msgid "All Associations"
-#~ msgstr "Perluas Semu_a"
-
-#, fuzzy
-#~ msgid "_Locate Associations"
-#~ msgstr "Temukan _Penunjuk"
-
-#, fuzzy
-#~ msgid "Association"
-#~ msgstr "Asosiasi Manual atau Otomatis"
-
-#, fuzzy
-#~ msgid "<b>Associated Files</b>"
-#~ msgstr "<b>Ruang Lingkup</b>"
-
-#~ msgid "Keep Associated Entry"
-#~ msgstr "Pertahankan Entri yang Berasosiasi"
-
-#, fuzzy
-#~ msgid "Font to use for the main heading"
-#~ msgstr "Menentukan memakai fonta sistem"
-
-#, fuzzy
-#~ msgid "Font to use for everything else"
-#~ msgstr "Menentukan memakai fonta sistem"
-
-#, fuzzy
-#~ msgid "Display the transaction association"
-#~ msgstr "transaksi"
-
-#, fuzzy
-#~ msgctxt "Association flag for 'file'"
-#~ msgid "f"
-#~ msgstr "J"

commit 4332c5841fbe96ea29c8582a7db12fc109564a36
Merge: 5de4fe5df 4b7bc94e9
Author: John Ralls <jralls at ceridwen.us>
Date:   Tue Nov 17 16:56:19 2020 -0800

    Merge branch 'github-action' into maint; adds macOS unit tests.


commit 4b7bc94e9d26c2e9b4941affbd9ac59247dc8845
Author: John Ralls <jralls at ceridwen.us>
Date:   Tue Nov 17 16:55:42 2020 -0800

    Implement Github-actions tests on macOS.

diff --git a/.github/workflows/README.md b/.github/workflows/README.md
new file mode 100644
index 000000000..e127ac092
--- /dev/null
+++ b/.github/workflows/README.md
@@ -0,0 +1,7 @@
+Github Actions Continuous Integration Testing Workflows.
+
+ci-tests.yml runs Ubuntu 18.04 and Ubuntu 20.04 using Github-provided virtual environments. The virtual environments are about twice as fast as Docker ones and getting Docker to run Ubuntu images was problematic. Note that updating Ubuntu 18.04 updates ICU4C from v60 to v65 and that causes conflicts with Boost, so don't.
+
+ci-docker.yml runs tests in a Docker container running Arch Linux.
+
+mac-tests.yml runs tests on macOS using a Github-provided virtual machine. Note that this test relies on a prebuilt tarball containing all of the dependencies. Instructions for building that tarball along with some support scripts may be found in utils/ci/macos-ci-deps.
diff --git a/.github/workflows/mac-tests.yaml b/.github/workflows/mac-tests.yaml
new file mode 100644
index 000000000..7c903ab3f
--- /dev/null
+++ b/.github/workflows/mac-tests.yaml
@@ -0,0 +1,55 @@
+name: mac-tests
+on: [push]
+jobs:
+  ci_tests_mac:
+    runs-on: macos-10.15
+    name: macOS Tests
+    env:
+      TZ: America/Los_Angeles
+    steps:
+    - name: Checkout
+      uses: actions/checkout at v2
+    - run: |
+        echo "PATH=$PATH:$HOME/gnucash/inst/bin" >> $GITHUB_ENV
+        echo "PREFIX=$HOME/gnucash/inst" >> $GITHUB_ENV
+        echo "SRCROOT=$HOME/gnucash/source" >> $GITHUB_ENV
+    - name: download dependency tarball
+      uses: carlosperate/download-file-action at v1.0.3
+      id: dependencies
+      with:
+        file-url: 'https://downloads.sourceforge.net/gnucash/Dependencies/gnucash-4.x-mac-dependencies.tar.xz'
+        file-name: gnucash-dependencies.tar.xz
+    - name: download googletest
+      uses: carlosperate/download-file-action at v1.0.3
+
+      id: googletest
+      with:
+        file-url: 'https://github.com/google/googletest/archive/release-1.10.0.tar.gz'
+        file-name: googletest.tar.gz
+    - run: |
+        cd $HOME
+        mkdir gnucash
+        cd gnucash
+        tar -xf $GITHUB_WORKSPACE/gnucash-dependencies.tar.xz
+        mkdir source
+        cd source
+        tar -xf $GITHUB_WORKSPACE/googletest.tar.gz
+        mv googletest-* googletest
+        cd ..
+        ls source
+    - name: Configure GnuCash
+      run: |
+        mkdir build
+        cd build
+        cmake -GNinja -DCMAKE_INSTALL_PREFIX=$PREFIX -DCMAKE_PREFIX_PATH=$PREFIX -DWITH_PYTHON=ON -DGTEST_ROOT=$SRCROOT/googletest $GITHUB_WORKSPACE
+    - name: Build and Test GnuCash
+      run: |
+        cd build
+        ninja
+        ninja check
+    - uses: actions/upload-artifact at v2
+      if: failure()
+      with:
+        name: TestLog
+        path: ${{ github.workspace }}/build/Testing/Temporary/LastTest.log
+        if-no-files-found: ignore
diff --git a/util/ci/macos-ci-deps/README.md b/util/ci/macos-ci-deps/README.md
new file mode 100644
index 000000000..625b0e214
--- /dev/null
+++ b/util/ci/macos-ci-deps/README.md
@@ -0,0 +1,24 @@
+For creating the macOS dependency tarball required by the Github CI tests.
+
+Reruirements:
+* Administrator privs on your Mac.
+* Project admin privs for https://sourceforge.net/projects/gnucash.
+* You must be running the same or newer version of macOS as the Github runner.
+* Xcode or command-line tools (install the latter with `sudo xcode-select -install`).
+To build this tarball you must be running the same or newer macOS version as the Github VM.
+
+Procedure:
+* Set up a Gtk-OSX build environment following the [GnuCash Quartz Build instructions](https://wiki.gnucash.org/wiki/MacOS/Quartz).
+* Retrieve [jhbuildrc-custom](https://github.com/gnucash/gnucash-on-osx/jhbuildrc-custom) and put it in ~/.config.
+* Set `modules = _modules_deps` on the appropriate line of `jhbuildrc-custom`.
+* If you are not running the same version of macOS as the Github actions virtual environment change the `setup_SDK()` line at the bottom of `jhbuildrc-custom` to `setup_SDK('10.15')`, substituting the VM's macOS version for '10.15'.
+* Create the directory `/Users/runner/` and make yourself the owner:
+  ```
+  sudo mkdir /Users/runner
+  sudo chown me /Users/runner
+  mkdir /Users/runner/gnucash
+  ```
+  Substituting your own userid for 'me'.
+* Run `util/ci/macos-ci-deps/make-macos-deps-tarball.sh gnucash-4.2-mac-dependencies.tar.xz` from the root of the source directory, changing the tarball's name if appropriate.
+* Upload the resulting tarball to the Dependencies folder in the Gnucash files section on SourceForge.
+* If necessary modify `.github/workflows/mac-tests.yaml to reflect the tarball's URI.
\ No newline at end of file
diff --git a/util/ci/macos-ci-deps/macos_bin.manifest b/util/ci/macos-ci-deps/macos_bin.manifest
new file mode 100644
index 000000000..519b6cb90
--- /dev/null
+++ b/util/ci/macos-ci-deps/macos_bin.manifest
@@ -0,0 +1,28 @@
+cmake
+ctest
+glib-compile-resources
+glib-compile-schemas
+guild
+guile
+msgattrib
+msgcat
+msgcmp
+msgcomm
+msgconv
+msgen
+msgexec
+msgfilter
+msgfmt
+msggrep
+msginit
+msgmerge
+msgunfmt
+msguniq
+ninja
+pkg-config
+python3
+python3-config
+python3.8
+python3.8-config
+swig
+xgettext
diff --git a/util/ci/macos-ci-deps/macos_include.manifest b/util/ci/macos-ci-deps/macos_include.manifest
new file mode 100644
index 000000000..b02a3703e
--- /dev/null
+++ b/util/ci/macos-ci-deps/macos_include.manifest
@@ -0,0 +1,33 @@
+aqbanking6
+atk-1.0
+boost
+cairo
+dbi
+freetype2
+fribidi
+gdk-pixbuf-2.0
+gio-unix-2.0
+glib-2.0
+gmp.h
+gtk-3.0
+gtkmacintegration
+guile
+gwenhywfar5
+harfbuzz
+libintl.h
+libofx
+libpng16
+libsoup-2.4
+libxml2
+libxslt
+lzma
+lzma.h
+pango-1.0
+pixman-1
+pygobject-3.0
+python3.8
+unicase.h
+unicode
+uniconv.h
+unictype.h
+webkitgtk-4.0
diff --git a/util/ci/macos-ci-deps/macos_lib.manifest b/util/ci/macos-ci-deps/macos_lib.manifest
new file mode 100644
index 000000000..c51a5ed38
--- /dev/null
+++ b/util/ci/macos-ci-deps/macos_lib.manifest
@@ -0,0 +1,236 @@
+dbd
+glib-2.0
+guile
+libaqbanking.44.dylib
+libaqbanking.dylib
+libatk-1.0.0.dylib
+libatk-1.0.dylib
+libboost_chrono.dylib
+libboost_date_time.dylib
+libboost_filesystem.dylib
+libboost_locale.dylib
+libboost_program_options.dylib
+libboost_regex.dylib
+libboost_system.dylib
+libboost_thread.dylib
+libcairo-gobject.2.dylib
+libcairo-gobject.dylib
+libcairo-script-interpreter.2.dylib
+libcairo-script-interpreter.dylib
+libcairo.2.dylib
+libcairo.dylib
+libchipcard.6.dylib
+libchipcard.dylib
+libcord.1.dylib
+libcord.dylib
+libcroco-0.6.3.dylib
+libcroco-0.6.dylib
+libcrypto.1.1.dylib
+libcrypto.dylib
+libdbi.1.dylib
+libdbi.dylib
+libecpg.6.12.dylib
+libecpg.6.dylib
+libecpg.dylib
+libecpg_compat.3.12.dylib
+libecpg_compat.3.dylib
+libecpg_compat.dylib
+libenchant.1.dylib
+libenchant.dylib
+libepoxy.0.dylib
+libepoxy.dylib
+libexslt.0.dylib
+libexslt.dylib
+libffi.7.dylib
+libffi.dylib
+libfl.2.dylib
+libfl.dylib
+libfl_pic.2.dylib
+libfl_pic.dylib
+libfontconfig.1.dylib
+libfontconfig.dylib
+libfreetype.6.17.2.dylib
+libfreetype.6.dylib
+libfreetype.dylib
+libfribidi.0.dylib
+libfribidi.dylib
+libgailutil-3.0.dylib
+libgailutil-3.dylib
+libgc.1.dylib
+libgc.dylib
+libgcrypt.20.dylib
+libgcrypt.dylib
+libgdk-3.0.dylib
+libgdk-3.dylib
+libgdk_pixbuf-2.0.0.dylib
+libgdk_pixbuf-2.0.dylib
+libgettextlib-0.20.2.dylib
+libgettextlib.dylib
+libgettextpo.0.dylib
+libgettextpo.dylib
+libgettextsrc-0.20.2.dylib
+libgettextsrc.dylib
+libgio-2.0.0.dylib
+libgio-2.0.dylib
+libgirepository-1.0.1.dylib
+libgirepository-1.0.dylib
+libglib-2.0.0.dylib
+libglib-2.0.dylib
+libgmodule-2.0.0.dylib
+libgmodule-2.0.dylib
+libgmp.10.dylib
+libgmp.dylib
+libgnutls.30.dylib
+libgnutls.dylib
+libgnutlsxx.28.dylib
+libgnutlsxx.dylib
+libgobject-2.0.0.dylib
+libgobject-2.0.dylib
+libgpg-error.0.dylib
+libgpg-error.dylib
+libgthread-2.0.0.dylib
+libgthread-2.0.dylib
+libgtk-3.0.dylib
+libgtk-3.dylib
+libgtkmacintegration-gtk3.2.dylib
+libgtkmacintegration-gtk3.dylib
+libguile-2.2.1.dylib
+libguile-2.2.dylib
+libgwengui-cpp.79.dylib
+libgwengui-cpp.dylib
+libgwengui-gtk3.79.dylib
+libgwengui-gtk3.dylib
+libgwenhywfar.79.dylib
+libgwenhywfar.dylib
+libharfbuzz-gobject.0.dylib
+libharfbuzz-gobject.dylib
+libharfbuzz-icu.0.dylib
+libharfbuzz-icu.dylib
+libharfbuzz-subset.0.dylib
+libharfbuzz-subset.dylib
+libharfbuzz.0.dylib
+libharfbuzz.dylib
+libhistory.8.0.dylib
+libhistory.8.dylib
+libhistory.dylib
+libhogweed.5.0.dylib
+libhogweed.5.dylib
+libhogweed.dylib
+libicudata.66.1.dylib
+libicudata.66.dylib
+libicudata.dylib
+libicui18n.66.1.dylib
+libicui18n.66.dylib
+libicui18n.dylib
+libicuio.66.1.dylib
+libicuio.66.dylib
+libicuio.dylib
+libicutest.66.1.dylib
+libicutest.66.dylib
+libicutest.dylib
+libicutu.66.1.dylib
+libicutu.66.dylib
+libicutu.dylib
+libicuuc.66.1.dylib
+libicuuc.66.dylib
+libicuuc.dylib
+libintl.8.dylib
+libintl.dylib
+libjavascriptcoregtk-4.0.18.17.10.dylib
+libjavascriptcoregtk-4.0.18.dylib
+libjavascriptcoregtk-4.0.dylib
+libjpeg.9.dylib
+libjpeg.dylib
+libltdl.7.dylib
+libltdl.dylib
+liblzma.5.dylib
+liblzma.dylib
+libmysqlclient.18.dylib
+libmysqlclient.dylib
+libnettle.7.0.dylib
+libnettle.7.dylib
+libnettle.dylib
+libofx.7.dylib
+libofx.dylib
+libosp.5.dylib
+libosp.dylib
+libpango-1.0.0.dylib
+libpango-1.0.dylib
+libpangocairo-1.0.0.dylib
+libpangocairo-1.0.dylib
+libpangoft2-1.0.0.dylib
+libpangoft2-1.0.dylib
+libpcre.1.dylib
+libpcre.dylib
+libpcrecpp.0.dylib
+libpcrecpp.dylib
+libpcreposix.0.dylib
+libpcreposix.dylib
+libpgtypes.3.12.dylib
+libpgtypes.3.dylib
+libpgtypes.dylib
+libpixman-1.0.40.0.dylib
+libpixman-1.0.dylib
+libpixman-1.dylib
+libpng.dylib
+libpng16.16.dylib
+libpng16.dylib
+libpq.5.12.dylib
+libpq.5.dylib
+libpq.dylib
+libpsl.5.dylib
+libpsl.dylib
+libpython3.8.dylib
+libreadline.8.0.dylib
+libreadline.8.dylib
+libreadline.dylib
+librsvg-2.2.dylib
+librsvg-2.dylib
+libsoup-2.4.1.dylib
+libsoup-2.4.dylib
+libsoup-gnome-2.4.1.dylib
+libsoup-gnome-2.4.dylib
+libsqlite3.0.dylib
+libsqlite3.dylib
+libssl.1.1.dylib
+libssl.dylib
+libtasn1.6.dylib
+libtasn1.dylib
+libtextstyle.0.dylib
+libtextstyle.dylib
+libtiff.5.dylib
+libtiff.dylib
+libtiffxx.5.dylib
+libtiffxx.dylib
+libunistring.2.dylib
+libunistring.dylib
+libvala-0.36.0.dylib
+libvala-0.36.dylib
+libwebkit2gtk-4.0.37.49.6.dylib
+libwebkit2gtk-4.0.37.dylib
+libwebkit2gtk-4.0.dylib
+libwebp.7.dylib
+libwebp.dylib
+libwebpdecoder.3.dylib
+libwebpdecoder.dylib
+libwebpdemux.2.dylib
+libwebpdemux.dylib
+libwebpmux.3.dylib
+libwebpmux.dylib
+libxml2.2.dylib
+libxml2.dylib
+libxmlsec1-gcrypt.1.dylib
+libxmlsec1-gcrypt.dylib
+libxmlsec1-gnutls.1.dylib
+libxmlsec1-gnutls.dylib
+libxmlsec1-openssl.1.dylib
+libxmlsec1-openssl.dylib
+libxmlsec1.1.dylib
+libxmlsec1.dylib
+libxslt.1.dylib
+libxslt.dylib
+libz.1.2.11.dylib
+libz.1.dylib
+libz.dylib
+pkgconfig
+python3.8
diff --git a/util/ci/macos-ci-deps/macos_share.manifest b/util/ci/macos-ci-deps/macos_share.manifest
new file mode 100644
index 000000000..51e4d84c2
--- /dev/null
+++ b/util/ci/macos-ci-deps/macos_share.manifest
@@ -0,0 +1,7 @@
+cmake
+cmake-3.17
+gettext
+gettext-0.20.2
+guile
+itstool
+swig
diff --git a/util/ci/macos-ci-deps/make-macos-deps-tarball.sh b/util/ci/macos-ci-deps/make-macos-deps-tarball.sh
new file mode 100755
index 000000000..3416a1fd9
--- /dev/null
+++ b/util/ci/macos-ci-deps/make-macos-deps-tarball.sh
@@ -0,0 +1,24 @@
+#!/bin/sh
+
+fn=$1
+if [[ "x$fn" = "x" ]]; then
+   fn="macos-dependencies.tar.xz"
+fi
+DIR=$(pwd)
+
+export PREFIX=/Users/runner/gnucash/inst
+jhbuild bootstrap-gtk-osx
+jhbuild build
+
+cd /Users/runner/gnucash
+mv inst arch
+mkdir inst
+for i in 'bin' 'include' 'lib' 'share'; do
+    j="$DIR/util/ci/macos-ci-deps/macos_$i.manifest"
+    mkdir inst/$i
+    for k in `cat $j`; do
+        mv arch/$i/$k inst/$i
+    done
+done
+
+tar -cJf $DIR/$fn inst

commit 5de4fe5dff5e10e15cf3e8d7e67f31f39e5f7be1
Merge: fdbbc1305 63580d91b
Author: John Ralls <jralls at ceridwen.us>
Date:   Mon Nov 16 09:27:29 2020 -0800

    Merge Ralf Habacker's add-opening-balance-accounts into maint.


commit 63580d91ba0ef6de49c9c4f3a07771329e6ffdf7
Author: Ralf Habacker <ralf.habacker at freenet.de>
Date:   Wed Oct 28 07:14:10 2020 +0100

    Add feature GNC_FEATURE_EQUITY_TYPE_OPENING_BALANCE
    
    When the above function is activated, the slot 'equity type' is used and
    set in relation to opening balances and the checkbox for marking the
    opening balance in the accounts dialog can be changed.

diff --git a/gnucash/gnome-utils/dialog-account.c b/gnucash/gnome-utils/dialog-account.c
index 072ddfc99..3b69abded 100644
--- a/gnucash/gnome-utils/dialog-account.c
+++ b/gnucash/gnome-utils/dialog-account.c
@@ -218,9 +218,14 @@ gnc_account_opening_balance_button_update (AccountWindow *aw, gnc_commodity *com
         gtk_widget_set_sensitive (aw->opening_balance_button, FALSE);
         return;
     }
-    /* The opening balance flag can be edited, if there is no opening balance account
-     * or we are editing the only opening balance account and it has no splits assigned.
+
+    /* The opening balance flag can be edited, if the associated feature is enabled and
+     * there is no opening balance account or we are editing the only opening balance account
+     * and it has no splits assigned.
      */
+    if (!gnc_using_equity_type_opening_balance_account (gnc_get_current_book()))
+        return;
+
     switch(aw->dialog_type)
     {
     case EDIT_ACCOUNT:
diff --git a/libgnucash/app-utils/gnc-ui-util.c b/libgnucash/app-utils/gnc-ui-util.c
index 86b61b296..81aa50682 100644
--- a/libgnucash/app-utils/gnc-ui-util.c
+++ b/libgnucash/app-utils/gnc-ui-util.c
@@ -195,6 +195,15 @@ gnc_reverse_budget_balance (const Account *account, gboolean unreversed)
     return FALSE;
 }
 
+gboolean gnc_using_equity_type_opening_balance_account (QofBook* book)
+{
+    return gnc_features_check_used (book, GNC_FEATURE_EQUITY_TYPE_OPENING_BALANCE);
+}
+
+void gnc_set_use_equity_type_opening_balance_account (QofBook* book)
+{
+    gnc_features_set_used (book, GNC_FEATURE_EQUITY_TYPE_OPENING_BALANCE);
+}
 
 gchar *
 gnc_get_default_directory (const gchar *section)
@@ -960,13 +969,16 @@ gnc_find_or_create_equity_account (Account *root,
     gboolean base_name_exists;
     const char *base_name;
     char *name;
+    gboolean use_eq_op_feature;
 
     g_return_val_if_fail (equity_type >= 0, NULL);
     g_return_val_if_fail (equity_type < NUM_EQUITY_TYPES, NULL);
     g_return_val_if_fail (currency != NULL, NULL);
     g_return_val_if_fail (root != NULL, NULL);
 
-    if (equity_type == EQUITY_OPENING_BALANCE)
+    use_eq_op_feature = equity_type == EQUITY_OPENING_BALANCE && gnc_using_equity_type_opening_balance_account (gnc_get_current_book ());
+
+    if (use_eq_op_feature)
     {
         account = gnc_account_lookup_by_opening_balance (root, currency);
         if (account)
@@ -993,7 +1005,7 @@ gnc_find_or_create_equity_account (Account *root,
     if (account &&
             gnc_commodity_equiv (currency, xaccAccountGetCommodity (account)))
     {
-        if (equity_type == EQUITY_OPENING_BALANCE)
+        if (use_eq_op_feature)
             xaccAccountSetIsOpeningBalance (account, TRUE);
         return account;
     }
@@ -1009,7 +1021,7 @@ gnc_find_or_create_equity_account (Account *root,
     if (account &&
             gnc_commodity_equiv (currency, xaccAccountGetCommodity (account)))
     {
-        if (equity_type == EQUITY_OPENING_BALANCE)
+        if (use_eq_op_feature)
             xaccAccountSetIsOpeningBalance (account, TRUE);
         return account;
     }
@@ -1042,7 +1054,7 @@ gnc_find_or_create_equity_account (Account *root,
     xaccAccountSetType (account, ACCT_TYPE_EQUITY);
     xaccAccountSetCommodity (account, currency);
 
-    if (equity_type == EQUITY_OPENING_BALANCE)
+    if (use_eq_op_feature)
         xaccAccountSetIsOpeningBalance (account, TRUE);
 
     xaccAccountBeginEdit (parent);
diff --git a/libgnucash/app-utils/gnc-ui-util.h b/libgnucash/app-utils/gnc-ui-util.h
index 881dd6a89..fa9839a30 100644
--- a/libgnucash/app-utils/gnc-ui-util.h
+++ b/libgnucash/app-utils/gnc-ui-util.h
@@ -56,6 +56,11 @@ gboolean gnc_using_unreversed_budgets (QofBook* book);
  * don't match, return FALSE. */
 gboolean gnc_reverse_budget_balance (const Account *account, gboolean unreversed);
 
+/* Backward compatibility *******************************************
+ * Return that book's support opening balance accounts by equity type slot */
+void gnc_set_use_equity_type_opening_balance_account (QofBook* book);
+gboolean gnc_using_equity_type_opening_balance_account (QofBook* book);
+
 /* Default directory sections ***************************************/
 #define GNC_PREFS_GROUP_OPEN_SAVE    "dialogs.open-save"
 #define GNC_PREFS_GROUP_EXPORT       "dialogs.export-accounts"
diff --git a/libgnucash/engine/gnc-features.c b/libgnucash/engine/gnc-features.c
index 163bd36f5..10ea1009c 100644
--- a/libgnucash/engine/gnc-features.c
+++ b/libgnucash/engine/gnc-features.c
@@ -51,6 +51,7 @@ static gncFeature known_features[] =
     { GNC_FEATURE_REG_SORT_FILTER, "Store the register sort and filter settings in .gcm metadata file (requires at least GnuCash 3.3)"},
     { GNC_FEATURE_BUDGET_UNREVERSED, "Store budget amounts unreversed (i.e. natural) signs (requires at least Gnucash 3.8)"},
     { GNC_FEATURE_BUDGET_SHOW_EXTRA_ACCOUNT_COLS, "Show extra account columns in the Budget View (requires at least Gnucash 3.8)"},
+    { GNC_FEATURE_EQUITY_TYPE_OPENING_BALANCE, GNC_FEATURE_EQUITY_TYPE_OPENING_BALANCE " (requires at least Gnucash 4.3)" },
     { NULL },
 };
 
diff --git a/libgnucash/engine/gnc-features.h b/libgnucash/engine/gnc-features.h
index 0ceeee3eb..030c02531 100644
--- a/libgnucash/engine/gnc-features.h
+++ b/libgnucash/engine/gnc-features.h
@@ -55,6 +55,7 @@ extern "C" {
 #define GNC_FEATURE_REG_SORT_FILTER "Register sort and filter settings stored in .gcm file"
 #define GNC_FEATURE_BUDGET_UNREVERSED "Use natural signs in budget amounts"
 #define GNC_FEATURE_BUDGET_SHOW_EXTRA_ACCOUNT_COLS "Show extra account columns in the Budget View"
+#define GNC_FEATURE_EQUITY_TYPE_OPENING_BALANCE "Use a dedicated opening balance account identified by an 'equity-type' slot"
 
 /** @} */
 

commit 2bdc7dd1c9bbad343f16d4045a738a7ba27286a7
Author: Ralf Habacker <ralf.habacker at freenet.de>
Date:   Fri Oct 23 16:53:41 2020 +0200

    Update opening balance account on adding, editing and deleting accounts

diff --git a/gnucash/gnome-utils/dialog-account.c b/gnucash/gnome-utils/dialog-account.c
index 3bf1d21ec..072ddfc99 100644
--- a/gnucash/gnome-utils/dialog-account.c
+++ b/gnucash/gnome-utils/dialog-account.c
@@ -894,6 +894,9 @@ gnc_common_ok (AccountWindow *aw)
         return FALSE;
     }
 
+    /* update opening balance account */
+    gnc_find_or_create_equity_account (root, EQUITY_OPENING_BALANCE, commodity);
+
     LEAVE("passed");
     return TRUE;
 }
diff --git a/gnucash/gnome/gnc-plugin-page-account-tree.c b/gnucash/gnome/gnc-plugin-page-account-tree.c
index 07654d1b7..fb2154dc4 100644
--- a/gnucash/gnome/gnc-plugin-page-account-tree.c
+++ b/gnucash/gnome/gnc-plugin-page-account-tree.c
@@ -1669,6 +1669,11 @@ gnc_plugin_page_account_tree_cmd_delete_account (GtkAction *action, GncPluginPag
           gnc_account_n_children (account)))
     {
         do_delete_account (account, NULL, NULL, NULL);
+
+        /* update opening balance account */
+        gnc_find_or_create_equity_account (gnc_account_get_root(account),
+                                           EQUITY_OPENING_BALANCE,
+                                           xaccAccountGetCommodity (account));
         return;
     }
 
@@ -1703,8 +1708,15 @@ gnc_plugin_page_account_tree_cmd_delete_account (GtkAction *action, GncPluginPag
                                 adopt.subtrans.new_account,
                                 adopt.subacct.new_account,
                                 adopt.delete_res) == GTK_RESPONSE_ACCEPT)
+    {
         do_delete_account (account, adopt.subacct.new_account,
                            adopt.subtrans.new_account, adopt.trans.new_account);
+
+        /* update opening balance account */
+        gnc_find_or_create_equity_account (gnc_account_get_root(account),
+                                           EQUITY_OPENING_BALANCE,
+                                           xaccAccountGetCommodity (account));
+    }
 }
 
 static int

commit a2aca9da66e9c5eeb38484629907f4bb8df2af1b
Author: Ralf Habacker <ralf.habacker at freenet.de>
Date:   Fri Oct 23 14:30:42 2020 +0200

    Do not create additional opening balance account on creating new gnucash file
    
    Without this patch an additional opening balance account is created by the
    assistant-hierarchy.

diff --git a/gnucash/gnome/assistant-hierarchy.c b/gnucash/gnome/assistant-hierarchy.c
index 40160221d..761ce5637 100644
--- a/gnucash/gnome/assistant-hierarchy.c
+++ b/gnucash/gnome/assistant-hierarchy.c
@@ -1423,13 +1423,6 @@ on_finish (GtkAssistant  *gtkassistant,
     ENTER (" ");
     com = gnc_currency_edit_get_currency (GNC_CURRENCY_EDIT(data->currency_selector));
 
-    if (data->our_account_tree)
-    {
-        gnc_account_foreach_descendant (data->our_account_tree,
-                                        (AccountCb)starting_balance_helper,
-                                        data);
-    }
-
     // delete before we suspend GUI events, and then muck with the model,
     // because the model doesn't seem to handle this correctly.
     if (data->initial_category)
@@ -1452,6 +1445,13 @@ on_finish (GtkAssistant  *gtkassistant,
 
     gnc_resume_gui_refresh ();
 
+    if (data->our_account_tree)
+    {
+        gnc_account_foreach_descendant (data->our_account_tree,
+                                        (AccountCb)starting_balance_helper,
+                                        data);
+    }
+
     if (when_completed)
     {
         (*when_completed)();

commit f8dcd2302366a3d0032038b81f5fb5252fd09f87
Author: Ralf Habacker <ralf.habacker at freenet.de>
Date:   Sat Sep 19 10:53:08 2020 +0200

    Add support for the opening balance accounts flag
    
    Up to now, opening balance accounts have been identified by means of
    fixed names and their translations, which in some cases is not
    appropriate.
    
    With this commit, therefore, opening balance accounts can now be
    identified by a special slot, which should solve the above problem.
    
    in gnc_find_or_create_equity_account(), when querying the
    EQUITY_OPENING_BALANCE type, the system now first searches for an
    account with an existing 'equity-type' slot having the value
    'opening-balance' and returns it as an opening balance account if
    one exists. If no corresponding account is found, the search is
    continued as before. An account found in the process is automatically
    given the status of an opening balance account (it is given an
    'equity-type' slot with value 'opening-balance') to simplify the
    future search.
    
    The opening balance status of an account is visualized in the account
    settings dialog with a check box. If a Gnucash file does not yet contain
    an opening balance account, one can be selected in the account settings
    dialog.
    
    https://bugs.gnucash.org/show_bug.cgi?id=797836

diff --git a/gnucash/gnome-utils/dialog-account.c b/gnucash/gnome-utils/dialog-account.c
index f72debba1..3bf1d21ec 100644
--- a/gnucash/gnome-utils/dialog-account.c
+++ b/gnucash/gnome-utils/dialog-account.c
@@ -106,6 +106,7 @@ typedef struct _AccountWindow
     GtkTreeView * parent_tree;
     GtkWidget * parent_scroll;
 
+    GtkWidget * opening_balance_button;
     GtkWidget * opening_balance_edit;
     GtkWidget * opening_balance_date_edit;
     GtkWidget * opening_balance_page;
@@ -205,6 +206,32 @@ gnc_account_commodity_from_type (AccountWindow * aw, gboolean update)
     aw->commodity_mode = new_mode;
 }
 
+static void
+gnc_account_opening_balance_button_update (AccountWindow *aw, gnc_commodity *commodity)
+{
+    Account *account = aw_get_account (aw);
+    Account *ob_account = gnc_account_lookup_by_opening_balance (gnc_book_get_root_account (aw->book), commodity);
+    gboolean has_splits = xaccAccountCountSplits (account, FALSE) > 0;
+
+    if (xaccAccountGetType (account) != ACCT_TYPE_EQUITY)
+    {
+        gtk_widget_set_sensitive (aw->opening_balance_button, FALSE);
+        return;
+    }
+    /* The opening balance flag can be edited, if there is no opening balance account
+     * or we are editing the only opening balance account and it has no splits assigned.
+     */
+    switch(aw->dialog_type)
+    {
+    case EDIT_ACCOUNT:
+        gtk_widget_set_sensitive (aw->opening_balance_button, (ob_account == NULL || ob_account == account) && has_splits == 0);
+        break;
+    case NEW_ACCOUNT:
+        gtk_widget_set_sensitive (aw->opening_balance_button, ob_account == NULL);
+        break;
+    }
+}
+
 /* Copy the account values to the GUI widgets */
 static void
 gnc_account_to_ui(AccountWindow *aw)
@@ -268,6 +295,12 @@ gnc_account_to_ui(AccountWindow *aw)
 
     gtk_text_buffer_set_text (aw->notes_text_buffer, string, strlen(string));
 
+    gnc_account_opening_balance_button_update (aw, commodity);
+
+    flag = xaccAccountGetIsOpeningBalance (account);
+    gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (aw->opening_balance_button),
+                                  flag);
+
     flag = xaccAccountGetTaxRelated (account);
     gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (aw->tax_related_button),
                                   flag);
@@ -434,6 +467,11 @@ gnc_ui_to_account(AccountWindow *aw)
     if (null_strcmp (string, old_string) != 0)
         xaccAccountSetNotes (account, string);
 
+    flag =
+        gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (aw->opening_balance_button));
+    if (xaccAccountGetIsOpeningBalance (account) != flag)
+        xaccAccountSetIsOpeningBalance (account, flag);
+
     flag =
         gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (aw->tax_related_button));
     if (xaccAccountGetTaxRelated (account) != flag)
@@ -1271,11 +1309,33 @@ commodity_changed_cb (GNCGeneralSelect *gsl, gpointer data)
     AccountWindow *aw = data;
     gnc_commodity *currency;
     GtkTreeSelection *selection;
+    Account *account = aw_get_account (aw);
 
     currency = (gnc_commodity *) gnc_general_select_get_selected (gsl);
     if (!currency)
         return;
 
+    if (xaccAccountGetIsOpeningBalance (account))
+    {
+        Account *ob_account = gnc_account_lookup_by_opening_balance (gnc_book_get_root_account (aw->book), currency);
+        if (ob_account != account)
+        {
+            gchar *dialog_msg = _("An account with opening balance already exists for the desired currency.");
+            gchar *dialog_title = _("Cannot change currency");
+            GtkWidget *dialog = gtk_message_dialog_new (gnc_ui_get_main_window (NULL),
+                                                        0,
+                                                        GTK_MESSAGE_ERROR,
+                                                        GTK_BUTTONS_OK,
+                                                        "%s", dialog_title);
+            gtk_message_dialog_format_secondary_text (GTK_MESSAGE_DIALOG(dialog),
+                                 "%s", dialog_msg);
+            gtk_dialog_run(GTK_DIALOG(dialog));
+            gtk_widget_destroy(dialog);
+            gnc_general_select_set_selected (gsl, xaccAccountGetCommodity (account));
+            return;
+        }
+    }
+
     gnc_amount_edit_set_fraction (GNC_AMOUNT_EDIT (aw->opening_balance_edit),
                                   gnc_commodity_get_fraction (currency));
     gnc_amount_edit_set_print_info (GNC_AMOUNT_EDIT (aw->opening_balance_edit),
@@ -1283,6 +1343,7 @@ commodity_changed_cb (GNCGeneralSelect *gsl, gpointer data)
 
     selection = gtk_tree_view_get_selection (GTK_TREE_VIEW (aw->transfer_tree));
     gtk_tree_selection_unselect_all (selection);
+    gnc_account_opening_balance_button_update (aw, currency);
 }
 
 static gboolean
@@ -1420,6 +1481,7 @@ gnc_account_window_create(GtkWindow *parent, AccountWindow *aw)
     g_signal_connect (G_OBJECT (selection), "changed",
                       G_CALLBACK (gnc_account_parent_changed_cb), aw);
 
+    aw->opening_balance_button = GTK_WIDGET(gtk_builder_get_object (builder, "opening_balance_button"));
     aw->tax_related_button = GTK_WIDGET(gtk_builder_get_object (builder, "tax_related_button"));
     aw->placeholder_button = GTK_WIDGET(gtk_builder_get_object (builder, "placeholder_button"));
     aw->hidden_button = GTK_WIDGET(gtk_builder_get_object (builder, "hidden_button"));
diff --git a/gnucash/gnome-utils/gnc-tree-model-account.c b/gnucash/gnome-utils/gnc-tree-model-account.c
index 0a93faf4d..5c3160e5a 100644
--- a/gnucash/gnome-utils/gnc-tree-model-account.c
+++ b/gnucash/gnome-utils/gnc-tree-model-account.c
@@ -420,6 +420,7 @@ gnc_tree_model_account_get_column_type (GtkTreeModel *tree_model, int index)
 
     case GNC_TREE_MODEL_ACCOUNT_COL_HIDDEN:
     case GNC_TREE_MODEL_ACCOUNT_COL_PLACEHOLDER:
+    case GNC_TREE_MODEL_ACCOUNT_COL_OPENING_BALANCE:
         return G_TYPE_BOOLEAN;
 
     default:
@@ -956,6 +957,11 @@ gnc_tree_model_account_get_value (GtkTreeModel *tree_model,
         g_value_set_boolean (value, xaccAccountGetPlaceholder (account));
         break;
 
+    case GNC_TREE_MODEL_ACCOUNT_COL_OPENING_BALANCE:
+        g_value_init (value, G_TYPE_BOOLEAN);
+        g_value_set_boolean (value, xaccAccountGetIsOpeningBalance (account));
+        break;
+
     default:
         g_assert_not_reached ();
         break;
diff --git a/gnucash/gnome-utils/gnc-tree-model-account.h b/gnucash/gnome-utils/gnc-tree-model-account.h
index 17fd76d53..177587305 100644
--- a/gnucash/gnome-utils/gnc-tree-model-account.h
+++ b/gnucash/gnome-utils/gnc-tree-model-account.h
@@ -81,8 +81,9 @@ typedef enum
     GNC_TREE_MODEL_ACCOUNT_COL_TAX_INFO_SUB_ACCT,
     GNC_TREE_MODEL_ACCOUNT_COL_HIDDEN,
     GNC_TREE_MODEL_ACCOUNT_COL_PLACEHOLDER,
+    GNC_TREE_MODEL_ACCOUNT_COL_OPENING_BALANCE,
 
-    GNC_TREE_MODEL_ACCOUNT_COL_LAST_VISIBLE = GNC_TREE_MODEL_ACCOUNT_COL_PLACEHOLDER,
+    GNC_TREE_MODEL_ACCOUNT_COL_LAST_VISIBLE = GNC_TREE_MODEL_ACCOUNT_COL_OPENING_BALANCE,
 
     /* internal hidden columns */
     GNC_TREE_MODEL_ACCOUNT_COL_COLOR_PRESENT,
diff --git a/gnucash/gnome-utils/gnc-tree-view-account.c b/gnucash/gnome-utils/gnc-tree-view-account.c
index f4abff187..0da39e117 100644
--- a/gnucash/gnome-utils/gnc-tree-view-account.c
+++ b/gnucash/gnome-utils/gnc-tree-view-account.c
@@ -494,6 +494,29 @@ sort_by_placeholder (GtkTreeModel *f_model,
     return xaccAccountOrder(account_a, account_b);
 }
 
+static gint
+sort_by_opening_balance (GtkTreeModel *f_model,
+                         GtkTreeIter *f_iter_a,
+                         GtkTreeIter *f_iter_b,
+                         gpointer user_data)
+{
+    const Account *account_a, *account_b;
+    gboolean flag_a, flag_b;
+
+    /* Find the accounts */
+    sort_cb_setup (f_model, f_iter_a, f_iter_b, &account_a, &account_b);
+
+    /* Get the opening balance flags. */
+    flag_a = xaccAccountGetIsOpeningBalance (account_a);
+    flag_b = xaccAccountGetIsOpeningBalance (account_b);
+
+    if (flag_a > flag_b)
+        return -1;
+    else if (flag_a < flag_b)
+        return 1;
+    return xaccAccountOrder(account_a, account_b);
+}
+
 static gint
 sort_by_xxx_period_value (GtkTreeModel *f_model,
                           GtkTreeIter *f_iter_a,
@@ -970,6 +993,14 @@ gnc_tree_view_account_new_with_root (Account *root, gboolean show_root)
                                     sort_by_placeholder,
                                     gnc_tree_view_account_placeholder_toggled);
 
+    gnc_tree_view_add_toggle_column(view, _("Opening Balance"),
+                    C_("Column header for 'Opening Balance'", "O"),
+                                    "opening-balance",
+                                    GNC_TREE_MODEL_ACCOUNT_COL_OPENING_BALANCE,
+                                    GNC_TREE_VIEW_COLUMN_VISIBLE_ALWAYS,
+                                    sort_by_opening_balance,
+                                    NULL);
+
     /* Add function to each column that optionally sets a background color for accounts */
     col_list = gtk_tree_view_get_columns(GTK_TREE_VIEW(view));
     for (node = col_list; node; node = node->next)
diff --git a/gnucash/gtkbuilder/dialog-account.glade b/gnucash/gtkbuilder/dialog-account.glade
index 18f5d9d70..dd63585fd 100644
--- a/gnucash/gtkbuilder/dialog-account.glade
+++ b/gnucash/gtkbuilder/dialog-account.glade
@@ -1504,6 +1504,23 @@
                             <property name="top_attach">7</property>
                           </packing>
                         </child>
+                        <child>
+                          <object class="GtkCheckButton" id="opening_balance_button">
+                            <property name="label" translatable="yes">Opening balance</property>
+                            <property name="visible">True</property>
+                            <property name="can_focus">True</property>
+                            <property name="receives_default">False</property>
+                            <property name="tooltip_text" translatable="yes">This account holds opening balance transactions. Only one account per commodity can hold opening balance transactions.</property>
+                            <property name="draw_indicator">True</property>
+                          </object>
+                          <packing>
+                            <property name="left_attach">1</property>
+                            <property name="top_attach">11</property>
+                          </packing>
+                        </child>
+                        <child>
+                          <placeholder/>
+                        </child>
                         <child>
                           <placeholder/>
                         </child>
diff --git a/libgnucash/app-utils/gnc-ui-util.c b/libgnucash/app-utils/gnc-ui-util.c
index 02f487f5b..86b61b296 100644
--- a/libgnucash/app-utils/gnc-ui-util.c
+++ b/libgnucash/app-utils/gnc-ui-util.c
@@ -955,7 +955,7 @@ gnc_find_or_create_equity_account (Account *root,
                                    gnc_commodity *currency)
 {
     Account *parent;
-    Account *account;
+    Account *account = NULL;
     gboolean name_exists;
     gboolean base_name_exists;
     const char *base_name;
@@ -966,6 +966,13 @@ gnc_find_or_create_equity_account (Account *root,
     g_return_val_if_fail (currency != NULL, NULL);
     g_return_val_if_fail (root != NULL, NULL);
 
+    if (equity_type == EQUITY_OPENING_BALANCE)
+    {
+        account = gnc_account_lookup_by_opening_balance (root, currency);
+        if (account)
+            return account;
+    }
+
     base_name = equity_base_name (equity_type);
 
     account = gnc_account_lookup_by_name(root, base_name);
@@ -985,7 +992,11 @@ gnc_find_or_create_equity_account (Account *root,
 
     if (account &&
             gnc_commodity_equiv (currency, xaccAccountGetCommodity (account)))
+    {
+        if (equity_type == EQUITY_OPENING_BALANCE)
+            xaccAccountSetIsOpeningBalance (account, TRUE);
         return account;
+    }
 
     name = g_strconcat (base_name, " - ",
                         gnc_commodity_get_mnemonic (currency), NULL);
@@ -997,7 +1008,11 @@ gnc_find_or_create_equity_account (Account *root,
 
     if (account &&
             gnc_commodity_equiv (currency, xaccAccountGetCommodity (account)))
+    {
+        if (equity_type == EQUITY_OPENING_BALANCE)
+            xaccAccountSetIsOpeningBalance (account, TRUE);
         return account;
+    }
 
     /* Couldn't find one, so create it */
     if (name_exists && base_name_exists)
@@ -1027,6 +1042,9 @@ gnc_find_or_create_equity_account (Account *root,
     xaccAccountSetType (account, ACCT_TYPE_EQUITY);
     xaccAccountSetCommodity (account, currency);
 
+    if (equity_type == EQUITY_OPENING_BALANCE)
+        xaccAccountSetIsOpeningBalance (account, TRUE);
+
     xaccAccountBeginEdit (parent);
     gnc_account_append_child (parent, account);
     xaccAccountCommitEdit (parent);
diff --git a/libgnucash/engine/Account.cpp b/libgnucash/engine/Account.cpp
index cdba3c20f..5bcfe1a6c 100644
--- a/libgnucash/engine/Account.cpp
+++ b/libgnucash/engine/Account.cpp
@@ -116,6 +116,7 @@ enum
 
     PROP_LOT_NEXT_ID,                   /* KVP */
     PROP_ONLINE_ACCOUNT,                /* KVP */
+    PROP_IS_OPENING_BALANCE,            /* KVP */
     PROP_OFX_INCOME_ACCOUNT,            /* KVP */
     PROP_AB_ACCOUNT_ID,                 /* KVP */
     PROP_AB_ACCOUNT_UID,                /* KVP */
@@ -467,6 +468,9 @@ gnc_account_get_property (GObject         *object,
     case PROP_AUTO_INTEREST:
         g_value_set_boolean (value, xaccAccountGetAutoInterest (account));
         break;
+    case PROP_IS_OPENING_BALANCE:
+        g_value_set_boolean(value, xaccAccountGetIsOpeningBalance(account));
+        break;
     case PROP_PLACEHOLDER:
         g_value_set_boolean(value, xaccAccountGetPlaceholder(account));
         break;
@@ -595,6 +599,9 @@ gnc_account_set_property (GObject         *object,
     case PROP_AUTO_INTEREST:
         xaccAccountSetAutoInterest (account, g_value_get_boolean (value));
         break;
+    case PROP_IS_OPENING_BALANCE:
+        xaccAccountSetIsOpeningBalance (account, g_value_get_boolean (value));
+        break;
     case PROP_PLACEHOLDER:
         xaccAccountSetPlaceholder(account, g_value_get_boolean(value));
         break;
@@ -940,6 +947,15 @@ gnc_account_class_init (AccountClass *klass)
                            FALSE,
                            static_cast<GParamFlags>(G_PARAM_READWRITE)));
 
+    g_object_class_install_property
+    (gobject_class,
+     PROP_IS_OPENING_BALANCE,
+     g_param_spec_boolean ("opening-balance",
+                           "Opening Balance",
+                           "Whether the account holds opening balances",
+                           FALSE,
+                           static_cast<GParamFlags>(G_PARAM_READWRITE)));
+
     g_object_class_install_property
     (gobject_class,
      PROP_TAX_CODE,
@@ -3018,6 +3034,21 @@ gnc_account_lookup_by_code (const Account *parent, const char * code)
     return NULL;
 }
 
+static gpointer
+is_opening_balance_account (Account* account, gpointer data)
+{
+    gnc_commodity* commodity = GNC_COMMODITY(data);
+    if (xaccAccountGetIsOpeningBalance(account) && gnc_commodity_equiv(commodity, xaccAccountGetCommodity(account)))
+        return account;
+    return nullptr;
+}
+
+Account*
+gnc_account_lookup_by_opening_balance (Account* account, gnc_commodity* commodity)
+{
+    return (Account *)gnc_account_foreach_descendant_until (account, is_opening_balance_account, commodity);
+}
+
 /********************************************************************\
  * Fetch an account, given its full name                            *
 \********************************************************************/
@@ -4128,6 +4159,22 @@ xaccAccountSetPlaceholder (Account *acc, gboolean val)
     set_boolean_key(acc, {"placeholder"}, val);
 }
 
+gboolean
+xaccAccountGetIsOpeningBalance (const Account *acc)
+{
+    if (GET_PRIVATE(acc)->type != ACCT_TYPE_EQUITY)
+        return false;
+    return g_strcmp0(get_kvp_string_tag(acc, "equity-type"), "opening-balance") == 0;
+}
+
+void
+xaccAccountSetIsOpeningBalance (Account *acc, gboolean val)
+{
+    if (GET_PRIVATE(acc)->type != ACCT_TYPE_EQUITY)
+        return;
+    set_kvp_string_tag(acc, "equity-type", val ? "opening-balance" : "");
+}
+
 GNCPlaceholderType
 xaccAccountGetDescendantPlaceholder (const Account *acc)
 {
@@ -6034,6 +6081,11 @@ gboolean xaccAccountRegister (void)
             (QofAccessFunc) xaccAccountGetTaxRelated,
             (QofSetterFunc) xaccAccountSetTaxRelated
         },
+        {
+            ACCOUNT_OPENING_BALANCE_, QOF_TYPE_BOOLEAN,
+            (QofAccessFunc) xaccAccountGetIsOpeningBalance,
+            (QofSetterFunc) xaccAccountSetIsOpeningBalance
+        },
         {
             ACCOUNT_SCU, QOF_TYPE_INT32,
             (QofAccessFunc) xaccAccountGetCommoditySCU,
diff --git a/libgnucash/engine/Account.h b/libgnucash/engine/Account.h
index 2afe184d9..cb93c64a5 100644
--- a/libgnucash/engine/Account.h
+++ b/libgnucash/engine/Account.h
@@ -930,6 +930,14 @@ Account *gnc_account_lookup_by_full_name (const Account *any_account,
 Account *gnc_account_lookup_by_code (const Account *parent,
                                      const char *code);
 
+/** Find the opening balance account for the currency.
+ *
+ *  @param account The account of which the sought-for account is a descendant.
+ *  @param commodity The commodity in which the account should be denominated
+ *  @return The descendant account of EQUITY_TYPE_OPENING_BALANCE or NULL if one doesn't exist.
+ */
+Account *gnc_account_lookup_by_opening_balance (Account *account, gnc_commodity *commodity);
+
 /** @} */
 
 /* ------------------ */
@@ -1191,6 +1199,22 @@ gboolean xaccAccountGetPlaceholder (const Account *account);
  *  @param val The new state for the account's "placeholder" flag. */
 void xaccAccountSetPlaceholder (Account *account, gboolean val);
 
+/** Get the "opening-balance" flag for an account.  If this flag is set
+ *  then the account is used for opening balance transactions.
+ *
+ *  @param account The account whose flag should be retrieved.
+ *
+ *  @return The current state of the account's "opening-balance" flag. */
+gboolean xaccAccountGetIsOpeningBalance (const Account *account);
+
+/** Set the "opening-balance" flag for an account. If this flag is set
+ *  then the account is used for opening balance transactions.
+ *
+ *  @param account The account whose flag should be set.
+ *
+ *  @param val The new state for the account's "opening-balance" flag. */
+void xaccAccountSetIsOpeningBalance (Account *account, gboolean val);
+
 /** Returns PLACEHOLDER_NONE if account is NULL or neither account nor
  *  any descendant of account is a placeholder.  If account is a
  *  placeholder, returns PLACEHOLDER_THIS.  Otherwise, if any
@@ -1568,6 +1592,7 @@ const char * dxaccAccountGetQuoteTZ (const Account *account);
 #define ACCOUNT_NOTES_		"notes"
 #define ACCOUNT_BALANCE_	"balance"
 #define ACCOUNT_NOCLOSING_	"noclosing"
+#define ACCOUNT_OPENING_BALANCE_ "opening-balance"
 #define ACCOUNT_CLEARED_	"cleared"
 #define ACCOUNT_RECONCILED_	"reconciled"
 #define ACCOUNT_PRESENT_	"present"
diff --git a/libgnucash/engine/test/utest-Account.cpp b/libgnucash/engine/test/utest-Account.cpp
index 7c146153d..eab36c325 100644
--- a/libgnucash/engine/test/utest-Account.cpp
+++ b/libgnucash/engine/test/utest-Account.cpp
@@ -546,7 +546,7 @@ test_gnc_account_create_and_destroy (void)
     GNCAccountType type;
     gnc_commodity *commo;
     gint commo_scu, mark;
-    gboolean non_std_scu, sort_dirty, bal_dirty, tax_rel, hide, hold;
+    gboolean non_std_scu, sort_dirty, bal_dirty, opening_balance, tax_rel, hide, hold;
     gint64 copy_num;
     gnc_numeric *start_bal, *start_clr_bal, *start_rec_bal;
     gnc_numeric *end_bal, *end_clr_bal, *end_rec_bal;
@@ -571,6 +571,7 @@ test_gnc_account_create_and_destroy (void)
                   "end-balance", &end_bal,
                   "end-cleared-balance", &end_clr_bal,
                   "end-reconciled-balance", &end_rec_bal,
+                  "opening-balance", &opening_balance,
                   "policy", &pol,
                   "acct-mark", &mark,
                   "tax-related", &tax_rel,
@@ -599,6 +600,7 @@ test_gnc_account_create_and_destroy (void)
     g_assert (gnc_numeric_zero_p (*start_bal));
     g_assert (gnc_numeric_zero_p (*start_clr_bal));
     g_assert (gnc_numeric_zero_p (*start_rec_bal));
+    g_assert (!opening_balance);
     g_assert (pol == xaccGetFIFOPolicy ());
     g_assert (!mark);
     g_assert (!tax_rel);

commit 573f7aaa0b427fda4a1874b5c35b95e4ad48b816
Author: Ralf Habacker <ralf.habacker at freenet.de>
Date:   Tue Sep 15 03:11:22 2020 +0200

    Add slot "equity-type" with value "opening-balance" to account templates
    
    The slots are added by running `util/add-opening-balances` on the
    gnucash sources.

diff --git a/data/accounts/C/acctchrt_business.gnucash-xea b/data/accounts/C/acctchrt_business.gnucash-xea
index d770547de..b21e191f6 100644
--- a/data/accounts/C/acctchrt_business.gnucash-xea
+++ b/data/accounts/C/acctchrt_business.gnucash-xea
@@ -1422,6 +1422,12 @@
   <act:commodity-scu>100</act:commodity-scu>
   <act:description>Opening Balances</act:description>
   <act:parent type="new">87e02e757b32b3059652cfe09fe9ae00</act:parent>
+  <act:slots>
+    <slot>
+      <slot:key>equity-type</slot:key>
+      <slot:value type="string">opening-balance</slot:value>
+    </slot>
+  </act:slots>
 </gnc:account>
 <gnc:account version="2.0.0">
   <act:name>Retained Earnings</act:name>
diff --git a/data/accounts/C/acctchrt_checkbook.gnucash-xea b/data/accounts/C/acctchrt_checkbook.gnucash-xea
index f3c279219..569543223 100644
--- a/data/accounts/C/acctchrt_checkbook.gnucash-xea
+++ b/data/accounts/C/acctchrt_checkbook.gnucash-xea
@@ -147,5 +147,11 @@
   <act:commodity-scu>100</act:commodity-scu>
   <act:description>Opening Balances</act:description>
   <act:parent type="new">b8b72887da1adf889f171923d23efbdd</act:parent>
+  <act:slots>
+    <slot>
+      <slot:key>equity-type</slot:key>
+      <slot:value type="string">opening-balance</slot:value>
+    </slot>
+  </act:slots>
 </gnc:account>
 </gnc-account-example>
diff --git a/data/accounts/C/acctchrt_common.gnucash-xea b/data/accounts/C/acctchrt_common.gnucash-xea
index 883f0cf71..0cfb6360f 100644
--- a/data/accounts/C/acctchrt_common.gnucash-xea
+++ b/data/accounts/C/acctchrt_common.gnucash-xea
@@ -783,6 +783,12 @@
   </act:commodity>
   <act:description>Opening Balances</act:description>
   <act:parent type="new">3ab6a6d97b216c11333e48aa2b749a91</act:parent>
+  <act:slots>
+    <slot>
+      <slot:key>equity-type</slot:key>
+      <slot:value type="string">opening-balance</slot:value>
+    </slot>
+  </act:slots>
 </gnc:account>
 
 </gnc-account-example>
diff --git a/data/accounts/C/acctchrt_full.gnucash-xea b/data/accounts/C/acctchrt_full.gnucash-xea
index acc2a8bac..7ffe7e09d 100644
--- a/data/accounts/C/acctchrt_full.gnucash-xea
+++ b/data/accounts/C/acctchrt_full.gnucash-xea
@@ -1396,6 +1396,12 @@
   </act:commodity>
   <act:description>Opening Balances</act:description>
   <act:parent type="new">68d4074f91295062c0b773b4ae8de6bd</act:parent>
+  <act:slots>
+    <slot>
+      <slot:key>equity-type</slot:key>
+      <slot:value type="string">opening-balance</slot:value>
+    </slot>
+  </act:slots>
 </gnc:account>
 
 </gnc-account-example>
diff --git a/data/accounts/da/acctchrt_common.gnucash-xea b/data/accounts/da/acctchrt_common.gnucash-xea
index 05c98d6f9..efcdd580d 100644
--- a/data/accounts/da/acctchrt_common.gnucash-xea
+++ b/data/accounts/da/acctchrt_common.gnucash-xea
@@ -684,5 +684,11 @@
   </act:commodity>
   <act:description>Ã…bningssaldi</act:description>
   <act:parent type="new">3ab6a6d97b216c11333e48aa2b749a91</act:parent>
+  <act:slots>
+    <slot>
+      <slot:key>equity-type</slot:key>
+      <slot:value type="string">opening-balance</slot:value>
+    </slot>
+  </act:slots>
 </gnc:account>
 </gnc-account-example>
diff --git a/data/accounts/de_AT/acctchrt_business.gnucash-xea b/data/accounts/de_AT/acctchrt_business.gnucash-xea
index c8b7afa18..3ce69178c 100644
--- a/data/accounts/de_AT/acctchrt_business.gnucash-xea
+++ b/data/accounts/de_AT/acctchrt_business.gnucash-xea
@@ -964,5 +964,11 @@
   <act:commodity-scu>100</act:commodity-scu>
   <act:description>Anfangsbestand</act:description>
   <act:parent type="new">1972cce2e2364f95b2b0bc014502661d</act:parent>
+  <act:slots>
+    <slot>
+      <slot:key>equity-type</slot:key>
+      <slot:value type="string">opening-balance</slot:value>
+    </slot>
+  </act:slots>
 </gnc:account>
 </gnc-account-example>
diff --git a/data/accounts/de_AT/acctchrt_common.gnucash-xea b/data/accounts/de_AT/acctchrt_common.gnucash-xea
index 2a361f4e1..b364ccd26 100644
--- a/data/accounts/de_AT/acctchrt_common.gnucash-xea
+++ b/data/accounts/de_AT/acctchrt_common.gnucash-xea
@@ -964,5 +964,11 @@
   <act:commodity-scu>100</act:commodity-scu>
   <act:description>Anfangsbestand</act:description>
   <act:parent type="new">1972cce2e2364f95b2b0bc014502661d</act:parent>
+  <act:slots>
+    <slot>
+      <slot:key>equity-type</slot:key>
+      <slot:value type="string">opening-balance</slot:value>
+    </slot>
+  </act:slots>
 </gnc:account>
 </gnc-account-example>
diff --git a/data/accounts/de_CH/acctchrt_common.gnucash-xea b/data/accounts/de_CH/acctchrt_common.gnucash-xea
index 005489c23..42bb958cc 100644
--- a/data/accounts/de_CH/acctchrt_common.gnucash-xea
+++ b/data/accounts/de_CH/acctchrt_common.gnucash-xea
@@ -739,5 +739,11 @@
   </act:commodity>
   <act:description>Anfangsbestand</act:description>
   <act:parent type="new">1972cce2e2364f95b2b0bc014502661d</act:parent>
+  <act:slots>
+    <slot>
+      <slot:key>equity-type</slot:key>
+      <slot:value type="string">opening-balance</slot:value>
+    </slot>
+  </act:slots>
 </gnc:account>
 </gnc-account-example>
diff --git a/data/accounts/de_DE/acctchrt_common.gnucash-xea b/data/accounts/de_DE/acctchrt_common.gnucash-xea
index 461249d9a..9db3399e9 100644
--- a/data/accounts/de_DE/acctchrt_common.gnucash-xea
+++ b/data/accounts/de_DE/acctchrt_common.gnucash-xea
@@ -843,6 +843,12 @@
   </act:commodity>
   <act:description>Anfangsbestand</act:description>
   <act:parent type="new">1972cce2e2364f95b2b0bc014502661d</act:parent>
+  <act:slots>
+    <slot>
+      <slot:key>equity-type</slot:key>
+      <slot:value type="string">opening-balance</slot:value>
+    </slot>
+  </act:slots>
 </gnc:account>
 
 </gnc-account-example>
diff --git a/data/accounts/de_DE/acctchrt_full.gnucash-xea b/data/accounts/de_DE/acctchrt_full.gnucash-xea
index dde38e39d..8b80d3d59 100644
--- a/data/accounts/de_DE/acctchrt_full.gnucash-xea
+++ b/data/accounts/de_DE/acctchrt_full.gnucash-xea
@@ -1192,6 +1192,12 @@
   </act:commodity>
   <act:description>Anfangsbestand</act:description>
   <act:parent type="new">320d3cf62b418db6281c3cd8ec2e95c7</act:parent>
+  <act:slots>
+    <slot>
+      <slot:key>equity-type</slot:key>
+      <slot:value type="string">opening-balance</slot:value>
+    </slot>
+  </act:slots>
 </gnc:account>
 
 </gnc-account-example>
diff --git a/data/accounts/de_DE/acctchrt_skr03.gnucash-xea b/data/accounts/de_DE/acctchrt_skr03.gnucash-xea
index f774dbd93..3107b1301 100644
--- a/data/accounts/de_DE/acctchrt_skr03.gnucash-xea
+++ b/data/accounts/de_DE/acctchrt_skr03.gnucash-xea
@@ -1269,6 +1269,12 @@
     <act:commodity-scu>100</act:commodity-scu>
     <act:code>9000</act:code>
     <act:parent type="new">26c3f10c1c7621661c1b813d6141280d</act:parent>
+  <act:slots>
+    <slot>
+      <slot:key>equity-type</slot:key>
+      <slot:value type="string">opening-balance</slot:value>
+    </slot>
+  </act:slots>
   </gnc:account>
   <gnc:account version="2.0.0">
     <act:name>9008 Saldenvorträge Debitoren</act:name>
diff --git a/data/accounts/de_DE/acctchrt_skr04.gnucash-xea b/data/accounts/de_DE/acctchrt_skr04.gnucash-xea
index 8c78b57fd..17beccb93 100644
--- a/data/accounts/de_DE/acctchrt_skr04.gnucash-xea
+++ b/data/accounts/de_DE/acctchrt_skr04.gnucash-xea
@@ -15678,6 +15678,12 @@
     <act:commodity-scu>100</act:commodity-scu>
     <act:code>9000</act:code>
     <act:parent type="new">e57d948c9a884e179bd090118b9212f8</act:parent>
+  <act:slots>
+    <slot>
+      <slot:key>equity-type</slot:key>
+      <slot:value type="string">opening-balance</slot:value>
+    </slot>
+  </act:slots>
   </gnc:account>
   <gnc:account version="2.0.0">
     <act:name>Saldenvorträge Debitoren</act:name>
diff --git a/data/accounts/de_DE/acctchrt_skr49.gnucash-xea b/data/accounts/de_DE/acctchrt_skr49.gnucash-xea
index 6351998b7..7f976f9fa 100644
--- a/data/accounts/de_DE/acctchrt_skr49.gnucash-xea
+++ b/data/accounts/de_DE/acctchrt_skr49.gnucash-xea
@@ -14305,6 +14305,12 @@ Den Bereich habe ich mit „9999“ bezeichet, damit er unterhalb der regulären
     </slot>
   </act:slots>
   <act:parent type="guid">ffca2686cb9963bea1089b796763dda0</act:parent>
+  <act:slots>
+    <slot>
+      <slot:key>equity-type</slot:key>
+      <slot:value type="string">opening-balance</slot:value>
+    </slot>
+  </act:slots>
 </gnc:account>
 <gnc:account version="2.0.0">
   <act:name>9001-9007 Saldenvorträge, Sachkonten</act:name>
diff --git a/data/accounts/el_GR/acctchrt_common.gnucash-xea b/data/accounts/el_GR/acctchrt_common.gnucash-xea
index 80a881f5f..be832eab3 100644
--- a/data/accounts/el_GR/acctchrt_common.gnucash-xea
+++ b/data/accounts/el_GR/acctchrt_common.gnucash-xea
@@ -786,5 +786,11 @@
   </act:commodity>
   <act:description>Αρχικά υπόλοιπα</act:description>
   <act:parent type="new">3ab6a6d97b216c11333e48aa2b749a91</act:parent>
+  <act:slots>
+    <slot>
+      <slot:key>equity-type</slot:key>
+      <slot:value type="string">opening-balance</slot:value>
+    </slot>
+  </act:slots>
 </gnc:account>
 </gnc-account-example>
diff --git a/data/accounts/en_GB/acctchrt_business.gnucash-xea b/data/accounts/en_GB/acctchrt_business.gnucash-xea
index 436b1bb7f..2504a208f 100644
--- a/data/accounts/en_GB/acctchrt_business.gnucash-xea
+++ b/data/accounts/en_GB/acctchrt_business.gnucash-xea
@@ -1420,6 +1420,12 @@
   <act:commodity-scu>100</act:commodity-scu>
   <act:description>Opening Balances</act:description>
   <act:parent type="new">87e02e757b32b3059652cfe09fe9ae00</act:parent>
+  <act:slots>
+    <slot>
+      <slot:key>equity-type</slot:key>
+      <slot:value type="string">opening-balance</slot:value>
+    </slot>
+  </act:slots>
 </gnc:account>
 <gnc:account version="2.0.0">
   <act:name>Retained Earnings</act:name>
diff --git a/data/accounts/en_GB/acctchrt_checkbook.gnucash-xea b/data/accounts/en_GB/acctchrt_checkbook.gnucash-xea
index 91167f330..9d8227f3f 100644
--- a/data/accounts/en_GB/acctchrt_checkbook.gnucash-xea
+++ b/data/accounts/en_GB/acctchrt_checkbook.gnucash-xea
@@ -149,6 +149,12 @@
   <act:commodity-scu>100</act:commodity-scu>
   <act:description>Opening Balances</act:description>
   <act:parent type="new">b8b72887da1adf889f171923d23efbdd</act:parent>
+  <act:slots>
+    <slot>
+      <slot:key>equity-type</slot:key>
+      <slot:value type="string">opening-balance</slot:value>
+    </slot>
+  </act:slots>
 </gnc:account>
 
 </gnc-account-example>
diff --git a/data/accounts/en_GB/acctchrt_common.gnucash-xea b/data/accounts/en_GB/acctchrt_common.gnucash-xea
index c679f0949..dc0557988 100644
--- a/data/accounts/en_GB/acctchrt_common.gnucash-xea
+++ b/data/accounts/en_GB/acctchrt_common.gnucash-xea
@@ -781,5 +781,11 @@
   </act:commodity>
   <act:description>Opening Balances</act:description>
   <act:parent type="new">3ab6a6d97b216c11333e48aa2b749a91</act:parent>
+  <act:slots>
+    <slot>
+      <slot:key>equity-type</slot:key>
+      <slot:value type="string">opening-balance</slot:value>
+    </slot>
+  </act:slots>
 </gnc:account>
 </gnc-account-example>
diff --git a/data/accounts/en_GB/acctchrt_full.gnucash-xea b/data/accounts/en_GB/acctchrt_full.gnucash-xea
index 4f6dd11a1..c422a5426 100644
--- a/data/accounts/en_GB/acctchrt_full.gnucash-xea
+++ b/data/accounts/en_GB/acctchrt_full.gnucash-xea
@@ -1393,5 +1393,11 @@
   </act:commodity>
   <act:description>Opening Balances</act:description>
   <act:parent type="new">68d4074f91295062c0b773b4ae8de6bd</act:parent>
+  <act:slots>
+    <slot>
+      <slot:key>equity-type</slot:key>
+      <slot:value type="string">opening-balance</slot:value>
+    </slot>
+  </act:slots>
 </gnc:account>
 </gnc-account-example>
diff --git a/data/accounts/en_GB/uk-vat.gnucash-xea b/data/accounts/en_GB/uk-vat.gnucash-xea
index 8222baa89..1cfe3a6f1 100644
--- a/data/accounts/en_GB/uk-vat.gnucash-xea
+++ b/data/accounts/en_GB/uk-vat.gnucash-xea
@@ -398,6 +398,12 @@
   </act:commodity>
   <act:commodity-scu>100</act:commodity-scu>
   <act:parent type="new">c0b1160d2dd6b3059acc5083348b282f</act:parent>
+  <act:slots>
+    <slot>
+      <slot:key>equity-type</slot:key>
+      <slot:value type="string">opening-balance</slot:value>
+    </slot>
+  </act:slots>
 </gnc:account>
 <gnc:account version="2.0.0">
   <act:name>Grants</act:name>
diff --git a/data/accounts/en_IN/acctchrt_gstindia.gnucash-xea b/data/accounts/en_IN/acctchrt_gstindia.gnucash-xea
index 8530719db..8ec978f4e 100644
--- a/data/accounts/en_IN/acctchrt_gstindia.gnucash-xea
+++ b/data/accounts/en_IN/acctchrt_gstindia.gnucash-xea
@@ -1137,6 +1137,12 @@
   <act:commodity-scu>100</act:commodity-scu>
   <act:description>Opening Balances</act:description>
   <act:parent type="new">599b08659324698f0177ce3dbb513e5f</act:parent>
+  <act:slots>
+    <slot>
+      <slot:key>equity-type</slot:key>
+      <slot:value type="string">opening-balance</slot:value>
+    </slot>
+  </act:slots>
 </gnc:account>
 <gnc:account version="2.0.0">
   <act:name>Reserves and Surplus</act:name>
diff --git a/data/accounts/es_ES/acctchrt_common.gnucash-xea b/data/accounts/es_ES/acctchrt_common.gnucash-xea
index 7eac72d74..64c40c516 100644
--- a/data/accounts/es_ES/acctchrt_common.gnucash-xea
+++ b/data/accounts/es_ES/acctchrt_common.gnucash-xea
@@ -753,5 +753,11 @@
   </act:commodity>
   <act:description>Balances de apertura</act:description>
   <act:parent type="new">3ab6a6d97b216c11333e48aa2b749a91</act:parent>
+  <act:slots>
+    <slot>
+      <slot:key>equity-type</slot:key>
+      <slot:value type="string">opening-balance</slot:value>
+    </slot>
+  </act:slots>
 </gnc:account>
 </gnc-account-example>
diff --git a/data/accounts/es_MX/acctchrt_common.gnucash-xea b/data/accounts/es_MX/acctchrt_common.gnucash-xea
index 862ce6a93..86e61a49d 100644
--- a/data/accounts/es_MX/acctchrt_common.gnucash-xea
+++ b/data/accounts/es_MX/acctchrt_common.gnucash-xea
@@ -830,5 +830,11 @@
   </act:commodity>
   <act:description>Balances de apertura</act:description>
   <act:parent type="new">3ab6a6d97b216c11333e48aa2b749a91</act:parent>
+  <act:slots>
+    <slot>
+      <slot:key>equity-type</slot:key>
+      <slot:value type="string">opening-balance</slot:value>
+    </slot>
+  </act:slots>
 </gnc:account>
 </gnc-account-example>
diff --git a/data/accounts/fi_FI/acctchrt_ry.gnucash-xea b/data/accounts/fi_FI/acctchrt_ry.gnucash-xea
index 2e906c66a..e33ae8d99 100644
--- a/data/accounts/fi_FI/acctchrt_ry.gnucash-xea
+++ b/data/accounts/fi_FI/acctchrt_ry.gnucash-xea
@@ -397,6 +397,12 @@
       <act:commodity-scu>100</act:commodity-scu>
       <act:description>Opening Balances</act:description>
       <act:parent type="new">7081f24a5685d4dfcb8f143f0b7ee31d</act:parent>
+  <act:slots>
+    <slot>
+      <slot:key>equity-type</slot:key>
+      <slot:value type="string">opening-balance</slot:value>
+    </slot>
+  </act:slots>
     </gnc:account>
 
 </gnc-account-example>
diff --git a/data/accounts/fr_BE/acctchrt_business.gnucash-xea b/data/accounts/fr_BE/acctchrt_business.gnucash-xea
index d85130923..8878ee26a 100644
--- a/data/accounts/fr_BE/acctchrt_business.gnucash-xea
+++ b/data/accounts/fr_BE/acctchrt_business.gnucash-xea
@@ -1378,6 +1378,12 @@ Les utilisateurs gérant une entreprise sélectionneront ceci au lieu des autres
   <act:commodity-scu>100</act:commodity-scu>
   <act:description>Soldes initiaux</act:description>
   <act:parent type="new">87e02e757b32b3059652cfe09fe9ae00</act:parent>
+  <act:slots>
+    <slot>
+      <slot:key>equity-type</slot:key>
+      <slot:value type="string">opening-balance</slot:value>
+    </slot>
+  </act:slots>
 </gnc:account>
 <gnc:account version="2.0.0">
   <act:name>Gains enregistrés</act:name>
diff --git a/data/accounts/fr_BE/acctchrt_common.gnucash-xea b/data/accounts/fr_BE/acctchrt_common.gnucash-xea
index 3d49f4c91..a14410017 100644
--- a/data/accounts/fr_BE/acctchrt_common.gnucash-xea
+++ b/data/accounts/fr_BE/acctchrt_common.gnucash-xea
@@ -750,5 +750,11 @@
   </act:commodity>
   <act:description>Soldes initiaux</act:description>
   <act:parent type="new">3ab6a6d97b216c11333e48aa2b749a91</act:parent>
+  <act:slots>
+    <slot>
+      <slot:key>equity-type</slot:key>
+      <slot:value type="string">opening-balance</slot:value>
+    </slot>
+  </act:slots>
 </gnc:account>
 </gnc-account-example>
diff --git a/data/accounts/fr_CH/acctchrt_business.gnucash-xea b/data/accounts/fr_CH/acctchrt_business.gnucash-xea
index 9dfa99cf4..001bb3c8a 100644
--- a/data/accounts/fr_CH/acctchrt_business.gnucash-xea
+++ b/data/accounts/fr_CH/acctchrt_business.gnucash-xea
@@ -1378,6 +1378,12 @@ Les utilisateurs gérant une entreprise sélectionneront ceci au lieu des autres
   <act:commodity-scu>100</act:commodity-scu>
   <act:description>Soldes initiaux</act:description>
   <act:parent type="new">87e02e757b32b3059652cfe09fe9ae00</act:parent>
+  <act:slots>
+    <slot>
+      <slot:key>equity-type</slot:key>
+      <slot:value type="string">opening-balance</slot:value>
+    </slot>
+  </act:slots>
 </gnc:account>
 <gnc:account version="2.0.0">
   <act:name>Gains enregistrés</act:name>
diff --git a/data/accounts/fr_CH/acctchrt_common.gnucash-xea b/data/accounts/fr_CH/acctchrt_common.gnucash-xea
index b245735fb..acfd3481e 100644
--- a/data/accounts/fr_CH/acctchrt_common.gnucash-xea
+++ b/data/accounts/fr_CH/acctchrt_common.gnucash-xea
@@ -750,5 +750,11 @@
   </act:commodity>
   <act:description>Soldes initiaux</act:description>
   <act:parent type="new">3ab6a6d97b216c11333e48aa2b749a91</act:parent>
+  <act:slots>
+    <slot>
+      <slot:key>equity-type</slot:key>
+      <slot:value type="string">opening-balance</slot:value>
+    </slot>
+  </act:slots>
 </gnc:account>
 </gnc-account-example>
diff --git a/data/accounts/fr_FR/acctchrt_business.gnucash-xea b/data/accounts/fr_FR/acctchrt_business.gnucash-xea
index 70f02996f..294fbfc1f 100644
--- a/data/accounts/fr_FR/acctchrt_business.gnucash-xea
+++ b/data/accounts/fr_FR/acctchrt_business.gnucash-xea
@@ -1378,6 +1378,12 @@ Les utilisateurs gérant une entreprise sélectionneront ceci au lieu des autres
   <act:commodity-scu>100</act:commodity-scu>
   <act:description>Soldes initiaux</act:description>
   <act:parent type="new">87e02e757b32b3059652cfe09fe9ae00</act:parent>
+  <act:slots>
+    <slot>
+      <slot:key>equity-type</slot:key>
+      <slot:value type="string">opening-balance</slot:value>
+    </slot>
+  </act:slots>
 </gnc:account>
 <gnc:account version="2.0.0">
   <act:name>Gains enregistrés</act:name>
diff --git a/data/accounts/fr_FR/acctchrt_common.gnucash-xea b/data/accounts/fr_FR/acctchrt_common.gnucash-xea
index 790957534..cdaaaeccf 100644
--- a/data/accounts/fr_FR/acctchrt_common.gnucash-xea
+++ b/data/accounts/fr_FR/acctchrt_common.gnucash-xea
@@ -750,5 +750,11 @@
   </act:commodity>
   <act:description>Soldes initiaux</act:description>
   <act:parent type="new">3ab6a6d97b216c11333e48aa2b749a91</act:parent>
+  <act:slots>
+    <slot>
+      <slot:key>equity-type</slot:key>
+      <slot:value type="string">opening-balance</slot:value>
+    </slot>
+  </act:slots>
 </gnc:account>
 </gnc-account-example>
diff --git a/data/accounts/he/acctchrt_checkbook.gnucash-xea b/data/accounts/he/acctchrt_checkbook.gnucash-xea
index ea74c8188..975c29dab 100644
--- a/data/accounts/he/acctchrt_checkbook.gnucash-xea
+++ b/data/accounts/he/acctchrt_checkbook.gnucash-xea
@@ -147,5 +147,11 @@
   <act:commodity-scu>100</act:commodity-scu>
   <act:description>יתרת פתיחה</act:description>
   <act:parent type="new">b8b72887da1adf889f171923d23efbdd</act:parent>
+  <act:slots>
+    <slot>
+      <slot:key>equity-type</slot:key>
+      <slot:value type="string">opening-balance</slot:value>
+    </slot>
+  </act:slots>
 </gnc:account>
 </gnc-account-example>
diff --git a/data/accounts/hr/acctchrt_checkbook.gnucash-xea b/data/accounts/hr/acctchrt_checkbook.gnucash-xea
index 6cd485e4c..c55c6ee50 100644
--- a/data/accounts/hr/acctchrt_checkbook.gnucash-xea
+++ b/data/accounts/hr/acctchrt_checkbook.gnucash-xea
@@ -147,5 +147,11 @@
   <act:commodity-scu>100</act:commodity-scu>
   <act:description>Početni saldo</act:description>
   <act:parent type="new">b8b72887da1adf889f171923d23efbdd</act:parent>
+  <act:slots>
+    <slot>
+      <slot:key>equity-type</slot:key>
+      <slot:value type="string">opening-balance</slot:value>
+    </slot>
+  </act:slots>
 </gnc:account>
 </gnc-account-example>
diff --git a/data/accounts/hr/acctchrt_common.gnucash-xea b/data/accounts/hr/acctchrt_common.gnucash-xea
index 9d52bb6d5..cce4ac53f 100644
--- a/data/accounts/hr/acctchrt_common.gnucash-xea
+++ b/data/accounts/hr/acctchrt_common.gnucash-xea
@@ -800,6 +800,12 @@
   </act:commodity>
   <act:description>Početni saldo</act:description>
   <act:parent type="new">73f3a388cebe42a3bc40ab8db179d32d</act:parent>
+  <act:slots>
+    <slot>
+      <slot:key>equity-type</slot:key>
+      <slot:value type="string">opening-balance</slot:value>
+    </slot>
+  </act:slots>
 </gnc:account>
 </gnc-account-example>
 
diff --git a/data/accounts/hu/acctchrt_business.gnucash-xea b/data/accounts/hu/acctchrt_business.gnucash-xea
index 0e190fbb6..6bc09f304 100644
--- a/data/accounts/hu/acctchrt_business.gnucash-xea
+++ b/data/accounts/hu/acctchrt_business.gnucash-xea
@@ -1378,6 +1378,12 @@
   <act:commodity-scu>100</act:commodity-scu>
   <act:description>Nyitóegyenlegek</act:description>
   <act:parent type="new">87e02e757b32b3059652cfe09fe9ae00</act:parent>
+  <act:slots>
+    <slot>
+      <slot:key>equity-type</slot:key>
+      <slot:value type="string">opening-balance</slot:value>
+    </slot>
+  </act:slots>
 </gnc:account>
 <gnc:account version="2.0.0">
   <act:name>Céltartalékok</act:name>
diff --git a/data/accounts/hu/acctchrt_checkbook.gnucash-xea b/data/accounts/hu/acctchrt_checkbook.gnucash-xea
index c9ce82784..8b86cd68d 100644
--- a/data/accounts/hu/acctchrt_checkbook.gnucash-xea
+++ b/data/accounts/hu/acctchrt_checkbook.gnucash-xea
@@ -139,5 +139,11 @@
   <act:commodity-scu>100</act:commodity-scu>
   <act:description>Nyitóegyenlegek</act:description>
   <act:parent type="new">b8b72887da1adf889f171923d23efbdd</act:parent>
+  <act:slots>
+    <slot>
+      <slot:key>equity-type</slot:key>
+      <slot:value type="string">opening-balance</slot:value>
+    </slot>
+  </act:slots>
 </gnc:account>
 </gnc-account-example>
diff --git a/data/accounts/hu/acctchrt_common.gnucash-xea b/data/accounts/hu/acctchrt_common.gnucash-xea
index 6728e1d1a..f9335cd5c 100644
--- a/data/accounts/hu/acctchrt_common.gnucash-xea
+++ b/data/accounts/hu/acctchrt_common.gnucash-xea
@@ -728,5 +728,11 @@
   </act:commodity>
   <act:description>Nyitóegyenlegek</act:description>
   <act:parent type="new">3ab6a6d97b216c11333e48aa2b749a91</act:parent>
+  <act:slots>
+    <slot>
+      <slot:key>equity-type</slot:key>
+      <slot:value type="string">opening-balance</slot:value>
+    </slot>
+  </act:slots>
 </gnc:account>
 </gnc-account-example>
diff --git a/data/accounts/it/acctchrt_checkbook.gnucash-xea b/data/accounts/it/acctchrt_checkbook.gnucash-xea
index 10d3ec31b..a55cb3b15 100644
--- a/data/accounts/it/acctchrt_checkbook.gnucash-xea
+++ b/data/accounts/it/acctchrt_checkbook.gnucash-xea
@@ -144,5 +144,11 @@
   <act:commodity-scu>100</act:commodity-scu>
   <act:description>Bilanci d'apertura</act:description>
   <act:parent type="new">b8b72887da1adf889f171923d23efbdd</act:parent>
+  <act:slots>
+    <slot>
+      <slot:key>equity-type</slot:key>
+      <slot:value type="string">opening-balance</slot:value>
+    </slot>
+  </act:slots>
 </gnc:account>
 </gnc-account-example>
diff --git a/data/accounts/it/acctchrt_common.gnucash-xea b/data/accounts/it/acctchrt_common.gnucash-xea
index 075415a61..1e5b68326 100644
--- a/data/accounts/it/acctchrt_common.gnucash-xea
+++ b/data/accounts/it/acctchrt_common.gnucash-xea
@@ -747,5 +747,11 @@
   </act:commodity>
   <act:description>Bilanci d'apertura</act:description>
   <act:parent type="new">3ab6a6d97b216c11333e48aa2b749a91</act:parent>
+  <act:slots>
+    <slot>
+      <slot:key>equity-type</slot:key>
+      <slot:value type="string">opening-balance</slot:value>
+    </slot>
+  </act:slots>
 </gnc:account>
 </gnc-account-example>
diff --git a/data/accounts/ja/acctchrt_business.gnucash-xea b/data/accounts/ja/acctchrt_business.gnucash-xea
index d346a792b..3ad89b710 100644
--- a/data/accounts/ja/acctchrt_business.gnucash-xea
+++ b/data/accounts/ja/acctchrt_business.gnucash-xea
@@ -1414,6 +1414,12 @@
   <act:commodity-scu>100</act:commodity-scu>
   <act:description>開始残高</act:description>
   <act:parent type="new">87e02e757b32b3059652cfe09fe9ae00</act:parent>
+  <act:slots>
+    <slot>
+      <slot:key>equity-type</slot:key>
+      <slot:value type="string">opening-balance</slot:value>
+    </slot>
+  </act:slots>
 </gnc:account>
 <gnc:account version="2.0.0">
   <act:name>内部留保</act:name>
diff --git a/data/accounts/ja/acctchrt_checkbook.gnucash-xea b/data/accounts/ja/acctchrt_checkbook.gnucash-xea
index 02b63dc1e..f203a3c49 100644
--- a/data/accounts/ja/acctchrt_checkbook.gnucash-xea
+++ b/data/accounts/ja/acctchrt_checkbook.gnucash-xea
@@ -147,5 +147,11 @@
   <act:commodity-scu>100</act:commodity-scu>
   <act:description>開始残高</act:description>
   <act:parent type="new">b8b72887da1adf889f171923d23efbdd</act:parent>
+  <act:slots>
+    <slot>
+      <slot:key>equity-type</slot:key>
+      <slot:value type="string">opening-balance</slot:value>
+    </slot>
+  </act:slots>
 </gnc:account>
 </gnc-account-example>
diff --git a/data/accounts/ja/acctchrt_common.gnucash-xea b/data/accounts/ja/acctchrt_common.gnucash-xea
index 8a5974b91..8bee4af8d 100644
--- a/data/accounts/ja/acctchrt_common.gnucash-xea
+++ b/data/accounts/ja/acctchrt_common.gnucash-xea
@@ -775,5 +775,11 @@
   </act:commodity>
   <act:description>開始残高</act:description>
   <act:parent type="new">3ab6a6d97b216c11333e48aa2b749a91</act:parent>
+  <act:slots>
+    <slot>
+      <slot:key>equity-type</slot:key>
+      <slot:value type="string">opening-balance</slot:value>
+    </slot>
+  </act:slots>
 </gnc:account>
 </gnc-account-example>
diff --git a/data/accounts/ja/acctchrt_full.gnucash-xea b/data/accounts/ja/acctchrt_full.gnucash-xea
index 535271b50..299076812 100644
--- a/data/accounts/ja/acctchrt_full.gnucash-xea
+++ b/data/accounts/ja/acctchrt_full.gnucash-xea
@@ -1390,5 +1390,11 @@
   </act:commodity>
   <act:description>開始残高</act:description>
   <act:parent type="new">68d4074f91295062c0b773b4ae8de6bd</act:parent>
+  <act:slots>
+    <slot>
+      <slot:key>equity-type</slot:key>
+      <slot:value type="string">opening-balance</slot:value>
+    </slot>
+  </act:slots>
 </gnc:account>
 </gnc-account-example>
diff --git a/data/accounts/lv/acctchrt_checkbook.gnucash-xea b/data/accounts/lv/acctchrt_checkbook.gnucash-xea
index 1887b7281..f0abacc0c 100644
--- a/data/accounts/lv/acctchrt_checkbook.gnucash-xea
+++ b/data/accounts/lv/acctchrt_checkbook.gnucash-xea
@@ -129,5 +129,11 @@
   <act:commodity-scu>100</act:commodity-scu>
   <act:description>Sākuma bilance</act:description>
   <act:parent type="new">b8b72887da1adf889f171923d23efbdd</act:parent>
+  <act:slots>
+    <slot>
+      <slot:key>equity-type</slot:key>
+      <slot:value type="string">opening-balance</slot:value>
+    </slot>
+  </act:slots>
 </gnc:account>
 </gnc-account-example>
diff --git a/data/accounts/lv/acctchrt_common.gnucash-xea b/data/accounts/lv/acctchrt_common.gnucash-xea
index fcfe56ac8..6e739371f 100644
--- a/data/accounts/lv/acctchrt_common.gnucash-xea
+++ b/data/accounts/lv/acctchrt_common.gnucash-xea
@@ -736,5 +736,11 @@
   </act:commodity>
   <act:description>Kontu sākuma bilances</act:description>
   <act:parent type="new">3ab6a6d97b216c11333e48aa2b749a91</act:parent>
+  <act:slots>
+    <slot>
+      <slot:key>equity-type</slot:key>
+      <slot:value type="string">opening-balance</slot:value>
+    </slot>
+  </act:slots>
 </gnc:account>
 </gnc-account-example>
diff --git a/data/accounts/lv/acctchrt_full.gnucash-xea b/data/accounts/lv/acctchrt_full.gnucash-xea
index a92df3bb8..d8afe8ee7 100644
--- a/data/accounts/lv/acctchrt_full.gnucash-xea
+++ b/data/accounts/lv/acctchrt_full.gnucash-xea
@@ -1354,5 +1354,11 @@
   </act:commodity>
   <act:description>Sākuma bilances</act:description>
   <act:parent type="new">68d4074f91295062c0b773b4ae8de6bd</act:parent>
+  <act:slots>
+    <slot>
+      <slot:key>equity-type</slot:key>
+      <slot:value type="string">opening-balance</slot:value>
+    </slot>
+  </act:slots>
 </gnc:account>
 </gnc-account-example>
diff --git a/data/accounts/nb/acctchrt_common.gnucash-xea b/data/accounts/nb/acctchrt_common.gnucash-xea
index 9b62c7305..862e086f4 100644
--- a/data/accounts/nb/acctchrt_common.gnucash-xea
+++ b/data/accounts/nb/acctchrt_common.gnucash-xea
@@ -739,5 +739,11 @@
   </act:commodity>
   <act:description>Opening Balances</act:description>
   <act:parent type="new">3ab6a6d97b216c11333e48aa2b749a91</act:parent>
+  <act:slots>
+    <slot>
+      <slot:key>equity-type</slot:key>
+      <slot:value type="string">opening-balance</slot:value>
+    </slot>
+  </act:slots>
 </gnc:account>
 </gnc-account-example>
diff --git a/data/accounts/nb/acctchrt_full.gnucash-xea b/data/accounts/nb/acctchrt_full.gnucash-xea
index ac1654a34..bdc03878e 100644
--- a/data/accounts/nb/acctchrt_full.gnucash-xea
+++ b/data/accounts/nb/acctchrt_full.gnucash-xea
@@ -1319,5 +1319,11 @@
   </act:commodity>
   <act:description>Opening Balances</act:description>
   <act:parent type="new">68d4074f91295062c0b773b4ae8de6bd</act:parent>
+  <act:slots>
+    <slot>
+      <slot:key>equity-type</slot:key>
+      <slot:value type="string">opening-balance</slot:value>
+    </slot>
+  </act:slots>
 </gnc:account>
 </gnc-account-example>
diff --git a/data/accounts/nl/acctchrt_checkbook.gnucash-xea b/data/accounts/nl/acctchrt_checkbook.gnucash-xea
index 0928229d6..bcfddcc29 100644
--- a/data/accounts/nl/acctchrt_checkbook.gnucash-xea
+++ b/data/accounts/nl/acctchrt_checkbook.gnucash-xea
@@ -147,5 +147,11 @@
   <act:commodity-scu>100</act:commodity-scu>
   <act:description>Beginsaldi</act:description>
   <act:parent type="new">b8b72887da1adf889f171923d23efbdd</act:parent>
+  <act:slots>
+    <slot>
+      <slot:key>equity-type</slot:key>
+      <slot:value type="string">opening-balance</slot:value>
+    </slot>
+  </act:slots>
 </gnc:account>
 </gnc-account-example>
diff --git a/data/accounts/nl/acctchrt_full.gnucash-xea b/data/accounts/nl/acctchrt_full.gnucash-xea
index 7a0ee89ca..46f6761be 100644
--- a/data/accounts/nl/acctchrt_full.gnucash-xea
+++ b/data/accounts/nl/acctchrt_full.gnucash-xea
@@ -1387,5 +1387,11 @@
   </act:commodity>
   <act:description>Openingsbalans</act:description>
   <act:parent type="new">68d4074f91295062c0b773b4ae8de6bd</act:parent>
+  <act:slots>
+    <slot>
+      <slot:key>equity-type</slot:key>
+      <slot:value type="string">opening-balance</slot:value>
+    </slot>
+  </act:slots>
 </gnc:account>
 </gnc-account-example>
diff --git a/data/accounts/pl/acctchrt_business.gnucash-xea b/data/accounts/pl/acctchrt_business.gnucash-xea
index ac6d9dd34..adc08f40e 100644
--- a/data/accounts/pl/acctchrt_business.gnucash-xea
+++ b/data/accounts/pl/acctchrt_business.gnucash-xea
@@ -1414,6 +1414,12 @@
   <act:commodity-scu>100</act:commodity-scu>
   <act:description>Bilanse otwarcia</act:description>
   <act:parent type="new">87e02e757b32b3059652cfe09fe9ae00</act:parent>
+  <act:slots>
+    <slot>
+      <slot:key>equity-type</slot:key>
+      <slot:value type="string">opening-balance</slot:value>
+    </slot>
+  </act:slots>
 </gnc:account>
 <gnc:account version="2.0.0">
   <act:name>Zyski zatrzymane</act:name>
diff --git a/data/accounts/pl/acctchrt_checkbook.gnucash-xea b/data/accounts/pl/acctchrt_checkbook.gnucash-xea
index 0133c929a..2a6c20130 100644
--- a/data/accounts/pl/acctchrt_checkbook.gnucash-xea
+++ b/data/accounts/pl/acctchrt_checkbook.gnucash-xea
@@ -147,5 +147,11 @@
   <act:commodity-scu>100</act:commodity-scu>
   <act:description>Bilanse otwarcia</act:description>
   <act:parent type="new">b8b72887da1adf889f171923d23efbdd</act:parent>
+  <act:slots>
+    <slot>
+      <slot:key>equity-type</slot:key>
+      <slot:value type="string">opening-balance</slot:value>
+    </slot>
+  </act:slots>
 </gnc:account>
 </gnc-account-example>
diff --git a/data/accounts/pl/acctchrt_common.gnucash-xea b/data/accounts/pl/acctchrt_common.gnucash-xea
index 8d8a35d8f..4c9bb6545 100644
--- a/data/accounts/pl/acctchrt_common.gnucash-xea
+++ b/data/accounts/pl/acctchrt_common.gnucash-xea
@@ -775,5 +775,11 @@
   </act:commodity>
   <act:description>Bilanse otwarcia</act:description>
   <act:parent type="new">3ab6a6d97b216c11333e48aa2b749a91</act:parent>
+  <act:slots>
+    <slot>
+      <slot:key>equity-type</slot:key>
+      <slot:value type="string">opening-balance</slot:value>
+    </slot>
+  </act:slots>
 </gnc:account>
 </gnc-account-example>
diff --git a/data/accounts/pl/acctchrt_full.gnucash-xea b/data/accounts/pl/acctchrt_full.gnucash-xea
index 14b62f9c3..2098358a1 100644
--- a/data/accounts/pl/acctchrt_full.gnucash-xea
+++ b/data/accounts/pl/acctchrt_full.gnucash-xea
@@ -1387,5 +1387,11 @@
   </act:commodity>
   <act:description>Bilanse otwarcia</act:description>
   <act:parent type="new">68d4074f91295062c0b773b4ae8de6bd</act:parent>
+  <act:slots>
+    <slot>
+      <slot:key>equity-type</slot:key>
+      <slot:value type="string">opening-balance</slot:value>
+    </slot>
+  </act:slots>
 </gnc:account>
 </gnc-account-example>
diff --git a/data/accounts/pt_BR/acctchrt_common.gnucash-xea b/data/accounts/pt_BR/acctchrt_common.gnucash-xea
index 971518a0c..1b9df1d4b 100644
--- a/data/accounts/pt_BR/acctchrt_common.gnucash-xea
+++ b/data/accounts/pt_BR/acctchrt_common.gnucash-xea
@@ -728,5 +728,11 @@
   </act:commodity>
   <act:description>Saldos Iniciais</act:description>
   <act:parent type="new">3ab6a6d97b216c11333e48aa2b749a91</act:parent>
+  <act:slots>
+    <slot>
+      <slot:key>equity-type</slot:key>
+      <slot:value type="string">opening-balance</slot:value>
+    </slot>
+  </act:slots>
 </gnc:account>
 </gnc-account-example>
diff --git a/data/accounts/pt_PT/acctchrt_common.gnucash-xea b/data/accounts/pt_PT/acctchrt_common.gnucash-xea
index e3e48ae12..97a3f45b6 100644
--- a/data/accounts/pt_PT/acctchrt_common.gnucash-xea
+++ b/data/accounts/pt_PT/acctchrt_common.gnucash-xea
@@ -746,5 +746,11 @@
     </act:commodity>
     <act:description>Saldos iniciais</act:description>
     <act:parent type="new">3ab6a6d97b216c11333e48aa2b749a91</act:parent>
+  <act:slots>
+    <slot>
+      <slot:key>equity-type</slot:key>
+      <slot:value type="string">opening-balance</slot:value>
+    </slot>
+  </act:slots>
   </gnc:account>
 </gnc-account-example>
diff --git a/data/accounts/ru/acctchrt_common.gnucash-xea b/data/accounts/ru/acctchrt_common.gnucash-xea
index 9108c22da..0029599c5 100644
--- a/data/accounts/ru/acctchrt_common.gnucash-xea
+++ b/data/accounts/ru/acctchrt_common.gnucash-xea
@@ -843,6 +843,12 @@
   </act:commodity>
   <act:description>Остаток средств на начало периода</act:description>
   <act:parent type="new">1972cce2e2364f95b2b0bc014502661d</act:parent>
+  <act:slots>
+    <slot>
+      <slot:key>equity-type</slot:key>
+      <slot:value type="string">opening-balance</slot:value>
+    </slot>
+  </act:slots>
 </gnc:account>
 
 </gnc-account-example>
diff --git a/data/accounts/tr_TR/acctchrt_TEKDUZ.gnucash-xea b/data/accounts/tr_TR/acctchrt_TEKDUZ.gnucash-xea
index c539e5719..b0a76ba42 100644
--- a/data/accounts/tr_TR/acctchrt_TEKDUZ.gnucash-xea
+++ b/data/accounts/tr_TR/acctchrt_TEKDUZ.gnucash-xea
@@ -3835,6 +3835,12 @@
     </slot>
   </act:slots>
   <act:parent type="new">cfd3ff3dffa577973d3c1c5def43e568</act:parent>
+  <act:slots>
+    <slot>
+      <slot:key>equity-type</slot:key>
+      <slot:value type="string">opening-balance</slot:value>
+    </slot>
+  </act:slots>
 </gnc:account>
 <gnc:account version="2.0.0">
   <act:name>Ödenmemiş Sermaye(-)</act:name>
@@ -3871,6 +3877,12 @@
     </slot>
   </act:slots>
   <act:parent type="new">cfd3ff3dffa577973d3c1c5def43e568</act:parent>
+  <act:slots>
+    <slot>
+      <slot:key>equity-type</slot:key>
+      <slot:value type="string">opening-balance</slot:value>
+    </slot>
+  </act:slots>
 </gnc:account>
 <gnc:account version="2.0.0">
   <act:name>Sermaye Düzeltmesi Olumsuz Farkları(-)</act:name>
diff --git a/data/accounts/zh_CN/acctchrt_business.gnucash-xea b/data/accounts/zh_CN/acctchrt_business.gnucash-xea
index 2e28e8ff7..20696beb1 100644
--- a/data/accounts/zh_CN/acctchrt_business.gnucash-xea
+++ b/data/accounts/zh_CN/acctchrt_business.gnucash-xea
@@ -1414,6 +1414,12 @@
   <act:commodity-scu>100</act:commodity-scu>
   <act:description>期初余额</act:description>
   <act:parent type="new">87e02e757b32b3059652cfe09fe9ae00</act:parent>
+  <act:slots>
+    <slot>
+      <slot:key>equity-type</slot:key>
+      <slot:value type="string">opening-balance</slot:value>
+    </slot>
+  </act:slots>
 </gnc:account>
 <gnc:account version="2.0.0">
   <act:name>留存收益</act:name>
diff --git a/data/accounts/zh_CN/acctchrt_checkbook.gnucash-xea b/data/accounts/zh_CN/acctchrt_checkbook.gnucash-xea
index c8b04a6bc..8624a4f0f 100644
--- a/data/accounts/zh_CN/acctchrt_checkbook.gnucash-xea
+++ b/data/accounts/zh_CN/acctchrt_checkbook.gnucash-xea
@@ -147,5 +147,11 @@
   <act:commodity-scu>100</act:commodity-scu>
   <act:description>期初余额</act:description>
   <act:parent type="new">b8b72887da1adf889f171923d23efbdd</act:parent>
+  <act:slots>
+    <slot>
+      <slot:key>equity-type</slot:key>
+      <slot:value type="string">opening-balance</slot:value>
+    </slot>
+  </act:slots>
 </gnc:account>
 </gnc-account-example>
diff --git a/data/accounts/zh_CN/acctchrt_common.gnucash-xea b/data/accounts/zh_CN/acctchrt_common.gnucash-xea
index 1547f7d06..a7d21c829 100644
--- a/data/accounts/zh_CN/acctchrt_common.gnucash-xea
+++ b/data/accounts/zh_CN/acctchrt_common.gnucash-xea
@@ -775,5 +775,11 @@
   </act:commodity>
   <act:description>期初余额</act:description>
   <act:parent type="new">3ab6a6d97b216c11333e48aa2b749a91</act:parent>
+  <act:slots>
+    <slot>
+      <slot:key>equity-type</slot:key>
+      <slot:value type="string">opening-balance</slot:value>
+    </slot>
+  </act:slots>
 </gnc:account>
 </gnc-account-example>
diff --git a/data/accounts/zh_CN/acctchrt_full.gnucash-xea b/data/accounts/zh_CN/acctchrt_full.gnucash-xea
index 72306e0d4..c8e003703 100644
--- a/data/accounts/zh_CN/acctchrt_full.gnucash-xea
+++ b/data/accounts/zh_CN/acctchrt_full.gnucash-xea
@@ -1387,5 +1387,11 @@
   </act:commodity>
   <act:description>期初余额</act:description>
   <act:parent type="new">68d4074f91295062c0b773b4ae8de6bd</act:parent>
+  <act:slots>
+    <slot>
+      <slot:key>equity-type</slot:key>
+      <slot:value type="string">opening-balance</slot:value>
+    </slot>
+  </act:slots>
 </gnc:account>
 </gnc-account-example>

commit 1cce12f8beb3983e4fc61c7a7d382cdd0cfbd4fd
Author: Ralf Habacker <ralf.habacker at freenet.de>
Date:   Mon Jul 6 20:03:41 2020 +0200

    Add script to add slots with key 'equity-type' and value 'opening-balance' to detected opening balance accounts

diff --git a/util/add-opening-balances b/util/add-opening-balances
new file mode 100755
index 000000000..692a0d190
--- /dev/null
+++ b/util/add-opening-balances
@@ -0,0 +1,118 @@
+#!/bin/sh
+#
+# Find opening balance accounts by translations and add slot with key 'opening-balance' to make them translation independent
+#
+# @author Ralf Habacker <ralf.habacker at freenet.de>
+#
+r=$(realpath $0)
+r=$(dirname $r)
+r=$(dirname $r)
+
+# debug
+#grep -rn -A1 '"Opening Balances"' $r/po | grep msgstr > translation-of-opening-balance-with-files.txt
+#grep -rnf translation-of-opening-balance.txt $r/data/accounts > all-opening-balances-accounts.txt
+
+if test -z "$1" || test "$1" == "--collect"; then
+    # collect all translations for 'Opening Balances'
+    grep -rn -A1 '"Opening Balances"' $r/po | grep msgstr | gawk '{ $1=""; print $0}' | sed 's,^ ,,g;s,",,g' | grep -v "^$" | sed 's,^,<act:name>,g;s,$,.*</act:name>,g' > translation-of-opening-balance.txt
+
+    # collect all translations for 'Opening Balances' with optional last character
+    grep -rn -A1 '"Opening Balances"' $r/po | grep msgstr | gawk '{ $1=""; print $0}' | sed 's,^ ,,g;s,",,g' | grep -v "^$" | sed 's,^,<act:name>,g;s,$,*</act:name>,g' >> translation-of-opening-balance.txt
+
+    # add custom strings
+    cat << EOF >> translation-of-opening-balance.txt
+<act:name>Openingsbalans</act:name>
+<act:name>9000 Saldenvortrag Sachkonten</act:name>
+<act:name>9000 Saldenvorträge Sachkonten</act:name>
+<act:name>Saldenvorträge Sachkonten</act:name>
+EOF
+
+fi
+
+# collect all files that contains a translation for 'Opening Balances'
+for i in $(grep -rnf translation-of-opening-balance.txt $r/data/accounts | sed 's,:[ ]*,:,g;s, ,#,g'); do
+    #echo $i
+    file=$(echo $i | sed 's,:.*$,,g')
+    pattern=$(echo $i | sed 's,^.*:<,<,g;s,#, ,g')
+    #echo "searching for $pattern in $file"
+    # add equity-type slot
+    gawk '
+BEGIN {
+    found = 0;
+    slotadded = 0;
+    slotpresent = 0;
+    patternfound = 0;
+}
+
+# search for account name
+$0 ~ PATTERN {
+    slotadded = 0
+    slotpresent = 0
+    patternfound = 1
+    replace = 1
+    #print "<!-- replace -->"
+}
+
+# opening-balance slot is already available
+replace && $1 == "<slot:key>equity-type</slot:key>" {
+    slotkeypresent = 1
+}
+
+slotkeypresent && $1 == "<slot:value type=\"string\">opening-balance</slot:value>" {
+    replace = 0
+    slotpresent = 1
+}
+
+#exclude parent named like opening balance account
+replace && $1 == "<slot:key>placeholder</slot:key>" {
+    replace = 0
+}
+
+# add new slots tag
+replace && $1 == "</gnc:account>" {
+    if (slotkeypresent) {
+        print FILE ": slot equity-type already present with different value, could not tag '" PATTERN "' as opening balance account" > /dev/stderr
+    } else {
+        print "  <act:slots>"
+        print "    <slot>"
+        print "      <slot:key>equity-type</slot:key>"
+        print "      <slot:value type=\"string\">opening-balance</slot:value>"
+        print "    </slot>"
+        print "  </act:slots>"
+        slotadded = 1
+        replace = 0
+    }
+}
+
+{
+    print $0;
+}
+
+END {
+    if (!patternfound)
+        print FILE ": opening balance account not found with pattern " PATTERN > /dev/stderr
+    #if (!slotpresent && !slotadded)
+    #print FILE " opening balance account not found with pattern " PATTERN > /dev/stderr
+}
+    ' "PATTERN=$pattern" $file > $file.new
+    mv $file.new $file
+done
+
+oba=""
+nooba=""
+for i in $(find $r/data/accounts -name '*.gnucash-xea'); do
+    o=$(grep -Hn "opening-balance" $i)
+    if test -z "$o"; then
+        nooba="$nooba\n$i"
+    else
+        oba="$oba\n$i"
+    fi
+done
+
+echo "------------------------------------------------------------"
+echo -e "The following files do not have an account with slot key 'opening-balance'"
+echo -e $nooba
+echo
+echo "------------------------------------------------------------"
+echo -e "The following files have an account with slot key 'opening-balance'"
+echo -e $oba

commit fdbbc1305e4df22e7af69bc4cf65e0a334086111
Author: Robert Fewell <14uBobIT at gmail.com>
Date:   Wed Nov 11 10:38:02 2020 +0000

    Change source files gnucash-sheet/header.* for space and tabs

diff --git a/gnucash/register/register-gnome/gnucash-header.c b/gnucash/register/register-gnome/gnucash-header.c
index 3ad859e7a..05ae7bbc6 100644
--- a/gnucash/register/register-gnome/gnucash-header.c
+++ b/gnucash/register/register-gnome/gnucash-header.c
@@ -79,8 +79,8 @@ gnc_header_draw_offscreen (GncHeader *header)
     if (header->surface)
         cairo_surface_destroy (header->surface);
     header->surface = cairo_image_surface_create (CAIRO_FORMAT_ARGB32,
-                                                header->width,
-                                                header->height);
+                                                  header->width,
+                                                  header->height);
 
     cr = cairo_create (header->surface);
 
@@ -134,7 +134,7 @@ gnc_header_draw_offscreen (GncHeader *header)
 
             cd = gnucash_style_get_cell_dimensions (style, i, j);
             if (!cd) continue;
-            
+
             height = cd->pixel_height;
             if (header->in_resize && (j == header->resize_col))
                 width = header->resize_col_width;
@@ -158,7 +158,7 @@ gnc_header_draw_offscreen (GncHeader *header)
             if (!text)
                 text = "";
 
-            layout = gtk_widget_create_pango_layout (GTK_WIDGET (header->sheet), text);
+            layout = gtk_widget_create_pango_layout (GTK_WIDGET(header->sheet), text);
 
             pango_layout_get_pixel_extents (layout, NULL, &logical_rect);
 
@@ -249,7 +249,7 @@ gnc_header_request_redraw (GncHeader *header)
 static void
 gnc_header_unrealize (GtkWidget *widget)
 {
-    GncHeader *header = GNC_HEADER (widget);
+    GncHeader *header = GNC_HEADER(widget);
     if (header->surface)
         cairo_surface_destroy (header->surface);
     header->surface = NULL;
@@ -262,8 +262,8 @@ gnc_header_unrealize (GtkWidget *widget)
         g_object_unref (header->normal_cursor);
     header->normal_cursor = NULL;
 
-    if (GTK_WIDGET_CLASS (parent_class)->unrealize)
-        GTK_WIDGET_CLASS (parent_class)->unrealize (GTK_WIDGET(header));
+    if (GTK_WIDGET_CLASS(parent_class)->unrealize)
+        GTK_WIDGET_CLASS(parent_class)->unrealize (GTK_WIDGET(header));
 }
 
 
@@ -272,12 +272,12 @@ gnc_header_finalize (GObject *object)
 {
     GncHeader *header;
 
-    header = GNC_HEADER (object);
+    header = GNC_HEADER(object);
 
     g_free (header->cursor_name);
     header->cursor_name = NULL;
 
-    G_OBJECT_CLASS (parent_class)->finalize (object);
+    G_OBJECT_CLASS(parent_class)->finalize (object);
 }
 
 
@@ -289,7 +289,7 @@ gnc_header_reconfigure (GncHeader *header)
     int w, h;
 
     g_return_if_fail (header != NULL);
-    g_return_if_fail (GNC_IS_HEADER (header));
+    g_return_if_fail (GNC_IS_HEADER(header));
 
     sheet = GNUCASH_SHEET(header->sheet);
     old_style = header->style;
@@ -314,8 +314,8 @@ gnc_header_reconfigure (GncHeader *header)
     {
         header->height = h;
         header->width = w;
-        gtk_layout_set_size(GTK_LAYOUT(header), w, h);
-        gtk_widget_set_size_request(GTK_WIDGET(header), -1, h);
+        gtk_layout_set_size (GTK_LAYOUT(header), w, h);
+        gtk_widget_set_size_request (GTK_WIDGET(header), -1, h);
         gnc_header_request_redraw (header);
     }
 }
@@ -325,7 +325,7 @@ gnc_header_set_header_rows (GncHeader *header,
                             int num_phys_rows)
 {
     g_return_if_fail (header != NULL);
-    g_return_if_fail (GNC_IS_HEADER (header));
+    g_return_if_fail (GNC_IS_HEADER(header));
 
     header->num_phys_rows = num_phys_rows;
 }
@@ -348,7 +348,7 @@ pointer_on_resize_line (GncHeader *header, int x, G_GNUC_UNUSED int y, int *col)
     {
         cd = gnucash_style_get_cell_dimensions (style, 0, j);
         if (!cd) continue;
-        
+
         pixels += cd->pixel_width;
         if (x >= pixels - 1 && x <= pixels + 1)
             on_the_line = TRUE;
@@ -453,7 +453,7 @@ gnc_header_event (GtkWidget *widget, GdkEvent *event)
             break;
         }
 
-        if (pointer_on_resize_line(header, x, y, &col) &&
+        if (pointer_on_resize_line (header, x, y, &col) &&
                 gnucash_style_col_is_resizable (header->style, col))
             gdk_window_set_cursor (window, header->resize_cursor);
         else
@@ -560,7 +560,7 @@ gnc_header_get_property (GObject *object,
                          GValue *value,
                          GParamSpec *pspec)
 {
-    GncHeader *header = GNC_HEADER (object);
+    GncHeader *header = GNC_HEADER(object);
 
     switch (param_id)
     {
@@ -571,7 +571,7 @@ gnc_header_get_property (GObject *object,
         g_value_set_string (value, header->cursor_name);
         break;
     default:
-        G_OBJECT_WARN_INVALID_PROPERTY_ID (object, param_id, pspec);
+        G_OBJECT_WARN_INVALID_PROPERTY_ID(object, param_id, pspec);
         break;
     }
 }
@@ -582,15 +582,15 @@ gnc_header_set_property (GObject *object,
                          const GValue *value,
                          GParamSpec *pspec)
 {
-    GncHeader *header = GNC_HEADER (object);
-    GtkLayout *layout = GTK_LAYOUT (header);
+    GncHeader *header = GNC_HEADER(object);
+    GtkLayout *layout = GTK_LAYOUT(header);
     gboolean needs_update = FALSE;
     gchar *old_name;
 
     switch (param_id)
     {
     case PROP_SHEET:
-        header->sheet = GNUCASH_SHEET (g_value_get_object (value));
+        header->sheet = GNUCASH_SHEET(g_value_get_object (value));
         gtk_scrollable_set_hadjustment (GTK_SCROLLABLE(layout), header->sheet->hadj);
         needs_update = TRUE;
         break;
@@ -603,7 +603,7 @@ gnc_header_set_property (GObject *object,
         g_free (old_name);
         break;
     default:
-        G_OBJECT_WARN_INVALID_PROPERTY_ID (object, param_id, pspec);
+        G_OBJECT_WARN_INVALID_PROPERTY_ID(object, param_id, pspec);
         break;
     }
 
@@ -625,14 +625,15 @@ gnc_header_init (GncHeader *header)
     header->width = 400;
     header->style = NULL;
 
-    gtk_widget_add_events(GTK_WIDGET(header), (GDK_EXPOSURE_MASK
+    gtk_widget_add_events (GTK_WIDGET(header),
+                          (GDK_EXPOSURE_MASK
                           | GDK_BUTTON_PRESS_MASK
                           | GDK_BUTTON_RELEASE_MASK
                           | GDK_POINTER_MOTION_MASK
                           | GDK_POINTER_MOTION_HINT_MASK));
 
-    g_signal_connect(G_OBJECT(header), "configure_event",
-                     G_CALLBACK(gnc_header_reconfigure), NULL);
+    g_signal_connect (G_OBJECT(header), "configure_event",
+                      G_CALLBACK(gnc_header_reconfigure), NULL);
     gtk_widget_show_all (GTK_WIDGET(header));
 }
 
@@ -640,8 +641,8 @@ gnc_header_init (GncHeader *header)
 static void
 gnc_header_class_init (GncHeaderClass *header_class)
 {
-    GObjectClass  *object_class = G_OBJECT_CLASS (header_class);
-    GtkWidgetClass *item_class = GTK_WIDGET_CLASS (header_class);
+    GObjectClass  *object_class = G_OBJECT_CLASS(header_class);
+    GtkWidgetClass *item_class = GTK_WIDGET_CLASS(header_class);
 
     gtk_widget_class_set_css_name (GTK_WIDGET_CLASS(header_class), "gnc-id-header");
 
diff --git a/gnucash/register/register-gnome/gnucash-sheet-private.c b/gnucash/register/register-gnome/gnucash-sheet-private.c
index 0d36e967b..4e2da3bca 100644
--- a/gnucash/register/register-gnome/gnucash-sheet-private.c
+++ b/gnucash/register/register-gnome/gnucash-sheet-private.c
@@ -60,8 +60,8 @@ find_block_by_pixel (GnucashSheet *sheet,
     SheetBlock *block;
     VirtualCellLocation vc_loc = { 1, 0 };
 
-    g_return_val_if_fail(y >= 0, NULL);
-    g_return_val_if_fail(x >= 0, NULL);
+    g_return_val_if_fail (y >= 0, NULL);
+    g_return_val_if_fail (x >= 0, NULL);
 
     do
     {
@@ -199,7 +199,7 @@ get_cell_borders (GnucashSheet *sheet, VirtualLocation virt_loc,
     if (gnc_table_move_vertical_position (sheet->table, &v_loc, -1))
     {
         gnucash_sheet_get_borders (sheet, v_loc, &neighbor);
-        borders->top = MAX (borders->top, neighbor.bottom);
+        borders->top = MAX(borders->top, neighbor.bottom);
     }
 
     /* bottom */
@@ -207,7 +207,7 @@ get_cell_borders (GnucashSheet *sheet, VirtualLocation virt_loc,
     if (gnc_table_move_vertical_position (sheet->table, &v_loc, 1))
     {
         gnucash_sheet_get_borders (sheet, v_loc, &neighbor);
-        borders->bottom = MAX (borders->bottom, neighbor.top);
+        borders->bottom = MAX(borders->bottom, neighbor.top);
     }
 
     /* left */
@@ -216,7 +216,7 @@ get_cell_borders (GnucashSheet *sheet, VirtualLocation virt_loc,
     if (gnc_table_virtual_loc_valid (sheet->table, v_loc, TRUE))
     {
         gnucash_sheet_get_borders (sheet, v_loc, &neighbor);
-        borders->left = MAX (borders->left, neighbor.right);
+        borders->left = MAX(borders->left, neighbor.right);
     }
 
     /* right */
@@ -225,7 +225,7 @@ get_cell_borders (GnucashSheet *sheet, VirtualLocation virt_loc,
     if (gnc_table_virtual_loc_valid (sheet->table, v_loc, TRUE))
     {
         gnucash_sheet_get_borders (sheet, v_loc, &neighbor);
-        borders->right = MAX (borders->right, neighbor.left);
+        borders->right = MAX(borders->right, neighbor.left);
     }
 }
 
@@ -235,7 +235,7 @@ get_cell_borders (GnucashSheet *sheet, VirtualLocation virt_loc,
 specified by numerator and denominator. This is some simple integer arithmetics
 for the case when we don't even need a conversion to floating point and
 backwards. */
-static guint8 inc_intensity_byte(guint8 input, int numerator, int denominator)
+static guint8 inc_intensity_byte (guint8 input, int numerator, int denominator)
 {
     guint8 result_inv, result;
     guint8 input_inv = 0xff - input;
@@ -247,12 +247,12 @@ static guint8 inc_intensity_byte(guint8 input, int numerator, int denominator)
 /** For a given RGB value, increase the color intensity for each of the three
 colors identically by 10 percent (i.e. make them "less black" and "more gray")
 and return this changed RGB value. */
-static guint32 inc_intensity_10percent(guint32 argb)
+static guint32 inc_intensity_10percent (guint32 argb)
 {
     guint32 result =
-            (inc_intensity_byte((argb & 0x00FF0000) >> 16, 8, 10) << 16)
-            + (inc_intensity_byte((argb & 0x0000FF00) >> 8, 8, 10) << 8)
-            + (inc_intensity_byte(argb & 0x000000FF, 8, 10));
+            (inc_intensity_byte ((argb & 0x00FF0000) >> 16, 8, 10) << 16)
+            + (inc_intensity_byte ((argb & 0x0000FF00) >> 8, 8, 10) << 8)
+            + (inc_intensity_byte (argb & 0x000000FF, 8, 10));
     return result;
 }
 #endif
@@ -261,7 +261,7 @@ static guint32 inc_intensity_10percent(guint32 argb)
 specified by numerator and denominator. This is some simple integer arithmetics
 for the case when we don't even need a conversion to floating point and
 backwards. */
-static guint8 dec_intensity_byte(guint8 input, int numerator, int denominator)
+static guint8 dec_intensity_byte (guint8 input, int numerator, int denominator)
 {
     guint8 result;
     result = (input * numerator) / denominator;
@@ -270,14 +270,14 @@ static guint8 dec_intensity_byte(guint8 input, int numerator, int denominator)
 
 /** For a given RGB value, decrease the color intensity for each of the three
 colors identically by 10 percent and return this changed RGB value. */
-static guint32 dec_intensity_10percent(guint32 argb)
+static guint32 dec_intensity_10percent (guint32 argb)
 {
     // Multiply each single byte by 9/10 i.e. by 0.9 which decreases the
     // intensity by 10 percent.
     guint32 result =
-            (dec_intensity_byte((argb & 0x00FF0000) >> 16, 9, 10) << 16)
-            + (dec_intensity_byte((argb & 0x0000FF00) >> 8, 9, 10) << 8)
-            + (dec_intensity_byte(argb & 0x000000FF, 9, 10));
+            (dec_intensity_byte ((argb & 0x00FF0000) >> 16, 9, 10) << 16)
+            + (dec_intensity_byte ((argb & 0x0000FF00) >> 8, 9, 10) << 8)
+            + (dec_intensity_byte (argb & 0x000000FF, 9, 10));
     return result;
 }
 
@@ -326,8 +326,8 @@ draw_cell_line (cairo_t *cr, GdkRGBA *bg_color,
 }
 
 static void
-draw_hatching (cairo_t *cr,
-               double x, double y, G_GNUC_UNUSED double width, double height)
+draw_hatching (cairo_t *cr, double x, double y,
+               G_GNUC_UNUSED double width, double height)
 {
     GdkRGBA *fg_color;
     double h_x = x + 2.5;
@@ -375,10 +375,8 @@ draw_divider_line (cairo_t *cr, VirtualLocation virt_loc,
 }
 
 static void
-draw_cell (GnucashSheet *sheet,
-           SheetBlock *block,
-           VirtualLocation virt_loc,
-           cairo_t *cr,
+draw_cell (GnucashSheet *sheet, SheetBlock *block,
+           VirtualLocation virt_loc, cairo_t *cr,
            int x, int y, int width, int height)
 {
     GncItemEdit *item_edit = GNC_ITEM_EDIT(sheet->item_editor);
@@ -469,20 +467,20 @@ draw_cell (GnucashSheet *sheet,
 
     /* dividing line upper (red) */
     fg_color = &gn_red;
-    draw_divider_line(cr, virt_loc,
-                           table->model->dividing_row_upper, block->style->nrows,
-                           fg_color, x, y, width, height);
+    draw_divider_line (cr, virt_loc,
+                       table->model->dividing_row_upper, block->style->nrows,
+                       fg_color, x, y, width, height);
 
     /* dividing line (blue) */
     fg_color = &gn_blue;
-    draw_divider_line(cr, virt_loc,
-                           table->model->dividing_row, block->style->nrows,
-                           fg_color, x, y, width, height);
+    draw_divider_line (cr, virt_loc,
+                       table->model->dividing_row, block->style->nrows,
+                       fg_color, x, y, width, height);
 
     /* dividing line lower (blue) */
-    draw_divider_line(cr, virt_loc,
-                           table->model->dividing_row_lower, block->style->nrows,
-                           fg_color, x, y, width, height);
+    draw_divider_line (cr, virt_loc,
+                       table->model->dividing_row_lower, block->style->nrows,
+                       fg_color, x, y, width, height);
 
     layout = gtk_widget_create_pango_layout (GTK_WIDGET (sheet), text);
 
@@ -554,10 +552,8 @@ exit:
 }
 
 static void
-draw_block (GnucashSheet *sheet,
-            SheetBlock *block,
-            VirtualLocation virt_loc,
-            cairo_t *cr,
+draw_block (GnucashSheet *sheet, SheetBlock *block,
+            VirtualLocation virt_loc, cairo_t *cr,
             int x, int y, int width, int height)
 {
     CellDimensions *cd;
@@ -565,13 +561,13 @@ draw_block (GnucashSheet *sheet,
     gint y_paint;
     gint w, h;
 
-    for ( virt_loc.phys_row_offset = 0;
+    for (virt_loc.phys_row_offset = 0;
             virt_loc.phys_row_offset < block->style->nrows ;
-            virt_loc.phys_row_offset++ )
+            virt_loc.phys_row_offset++)
     {
-        for ( virt_loc.phys_col_offset = 0;
+        for (virt_loc.phys_col_offset = 0;
                 virt_loc.phys_col_offset < block->style->ncols ;
-                virt_loc.phys_col_offset++ )
+                virt_loc.phys_col_offset++)
         {
             cd = gnucash_style_get_cell_dimensions
                  (block->style,
@@ -618,17 +614,16 @@ gnucash_sheet_draw_internal (GnucashSheet* sheet, cairo_t* cr,
     int height = alloc->height;
     GtkAdjustment * adj;
 
-    adj = gtk_scrollable_get_hadjustment(GTK_SCROLLABLE (sheet));
-    x = (gint) gtk_adjustment_get_value(adj);
-    adj = gtk_scrollable_get_vadjustment(GTK_SCROLLABLE (sheet));
-    y = (gint) gtk_adjustment_get_value(adj);
+    adj = gtk_scrollable_get_hadjustment (GTK_SCROLLABLE(sheet));
+    x = (gint) gtk_adjustment_get_value (adj);
+    adj = gtk_scrollable_get_vadjustment (GTK_SCROLLABLE(sheet));
+    y = (gint) gtk_adjustment_get_value (adj);
 
     if (x < 0 || y < 0)
         return FALSE;
 
     /* compute our initial values where we start drawing */
-    sheet_block = find_block_by_pixel (sheet, x, y,
-                  &virt_loc.vcell_loc);
+    sheet_block = find_block_by_pixel (sheet, x, y, &virt_loc.vcell_loc);
     if (!sheet_block || !sheet_block->style)
         return FALSE;
 
@@ -637,8 +632,7 @@ gnucash_sheet_draw_internal (GnucashSheet* sheet, cairo_t* cr,
     {
         while (TRUE)
         {
-            sheet_block = gnucash_sheet_get_block
-                          (sheet, virt_loc.vcell_loc);
+            sheet_block = gnucash_sheet_get_block (sheet, virt_loc.vcell_loc);
 
             if (!sheet_block || !sheet_block->style)
                 return TRUE;
@@ -655,7 +649,6 @@ gnucash_sheet_draw_internal (GnucashSheet* sheet, cairo_t* cr,
         draw_block (sheet, sheet_block, virt_loc, cr,
                     x, y, width, height);
     }
-
     return TRUE;
 }
 
@@ -669,10 +662,10 @@ gnucash_sheet_draw_cursor (GnucashCursor *cursor, cairo_t *cr)
     int y = 0;
     GtkAdjustment * adj;
 
-    adj = gtk_scrollable_get_hadjustment(GTK_SCROLLABLE (cursor->sheet));
-    x = (gint) gtk_adjustment_get_value(adj);
-    adj = gtk_scrollable_get_vadjustment(GTK_SCROLLABLE (cursor->sheet));
-    y = (gint) gtk_adjustment_get_value(adj);
+    adj = gtk_scrollable_get_hadjustment (GTK_SCROLLABLE(cursor->sheet));
+    x = (gint) gtk_adjustment_get_value (adj);
+    adj = gtk_scrollable_get_vadjustment (GTK_SCROLLABLE(cursor->sheet));
+    y = (gint) gtk_adjustment_get_value (adj);
 
     fg_color = &gn_black;
 
diff --git a/gnucash/register/register-gnome/gnucash-sheet.c b/gnucash/register/register-gnome/gnucash-sheet.c
index a2c556fb3..47fc82524 100644
--- a/gnucash/register/register-gnome/gnucash-sheet.c
+++ b/gnucash/register/register-gnome/gnucash-sheet.c
@@ -78,14 +78,14 @@ static GtkLayout *sheet_parent_class;
 static void gnucash_sheet_start_editing_at_cursor (GnucashSheet *sheet);
 
 static gboolean gnucash_sheet_cursor_move (GnucashSheet *sheet,
-        VirtualLocation virt_loc);
+                                           VirtualLocation virt_loc);
 
 static void gnucash_sheet_deactivate_cursor_cell (GnucashSheet *sheet);
 static void gnucash_sheet_activate_cursor_cell (GnucashSheet *sheet,
-        gboolean changed_cells);
+                                                gboolean changed_cells);
 static void gnucash_sheet_stop_editing (GnucashSheet *sheet);
-static gboolean gnucash_sheet_check_direct_update_cell(GnucashSheet *sheet,
-        const VirtualLocation virt_loc);
+static gboolean gnucash_sheet_check_direct_update_cell (GnucashSheet *sheet,
+                                                        const VirtualLocation virt_loc);
 gboolean gnucash_sheet_draw_cb (GtkWidget *widget, cairo_t *cr,
                                 G_GNUC_UNUSED gpointer data);
 
@@ -103,22 +103,22 @@ gboolean gnucash_sheet_draw_cb (GtkWidget *widget, cairo_t *cr,
 static inline void
 gnucash_sheet_set_entry_selection (GnucashSheet *sheet)
 {
-    DEBUG ("Set entry selection to sheet: %d:%d", sheet->bound, sheet->pos);
-    gtk_editable_select_region (GTK_EDITABLE (sheet->entry),
+    DEBUG("Set entry selection to sheet: %d:%d", sheet->bound, sheet->pos);
+    gtk_editable_select_region (GTK_EDITABLE(sheet->entry),
                                 sheet->bound, sheet->pos);
 }
 
 static inline void
 gnucash_sheet_set_selection_from_entry (GnucashSheet *sheet)
 {
-    gtk_editable_get_selection_bounds (GTK_EDITABLE (sheet->entry),
+    gtk_editable_get_selection_bounds (GTK_EDITABLE(sheet->entry),
                                        &sheet->bound, &sheet->pos);
 }
 
 static inline void
 gnucash_sheet_set_selection (GnucashSheet *sheet, int pos, int bound)
 {
-    DEBUG ("Set sheet selection %d:%d", bound, pos);
+    DEBUG("Set sheet selection %d:%d", bound, pos);
     sheet->pos = pos;
     sheet->bound = bound;
     gnucash_sheet_set_entry_selection (sheet);
@@ -161,16 +161,16 @@ gnucash_sheet_clear_selection (GnucashSheet *sheet)
 static inline void
 gnucash_sheet_set_entry_value (GnucashSheet *sheet, const char* value)
 {
-    g_signal_handler_block (G_OBJECT (sheet->entry),
+    g_signal_handler_block (G_OBJECT(sheet->entry),
                             sheet->insert_signal);
-    g_signal_handler_block (G_OBJECT (sheet->entry),
+    g_signal_handler_block (G_OBJECT(sheet->entry),
                             sheet->delete_signal);
 
-    gtk_entry_set_text (GTK_ENTRY (sheet->entry), value);
+    gtk_entry_set_text (GTK_ENTRY(sheet->entry), value);
 
-    g_signal_handler_unblock (G_OBJECT (sheet->entry),
+    g_signal_handler_unblock (G_OBJECT(sheet->entry),
                               sheet->delete_signal);
-    g_signal_handler_unblock (G_OBJECT (sheet->entry),
+    g_signal_handler_unblock (G_OBJECT(sheet->entry),
                               sheet->insert_signal);
 
 }
@@ -192,7 +192,7 @@ gnucash_sheet_cell_valid (GnucashSheet *sheet, VirtualLocation virt_loc)
     SheetBlockStyle *style;
 
     valid = !gnucash_sheet_virt_cell_out_of_bounds (sheet,
-            virt_loc.vcell_loc);
+                                                    virt_loc.vcell_loc);
 
     if (valid)
     {
@@ -212,7 +212,7 @@ static void
 gnucash_sheet_cursor_set (GnucashSheet *sheet, VirtualLocation virt_loc)
 {
     g_return_if_fail (sheet != NULL);
-    g_return_if_fail (GNUCASH_IS_SHEET (sheet));
+    g_return_if_fail (GNUCASH_IS_SHEET(sheet));
 
     g_return_if_fail (virt_loc.vcell_loc.virt_row >= 0 ||
                       virt_loc.vcell_loc.virt_row <= sheet->num_virt_rows);
@@ -327,7 +327,7 @@ gnucash_sheet_set_text_bounds (GnucashSheet *sheet, GdkRectangle *rect,
 
 gint
 gnucash_sheet_get_text_offset (GnucashSheet *sheet, const VirtualLocation virt_loc,
-                                gint rect_width, gint logical_width)
+                               gint rect_width, gint logical_width)
 {
     GncItemEdit *item_edit = GNC_ITEM_EDIT(sheet->item_editor);
     Table *table = sheet->table;
@@ -401,7 +401,7 @@ gnucash_sheet_activate_cursor_cell (GnucashSheet *sheet,
         gnucash_sheet_redraw_block (sheet, virt_loc.vcell_loc);
     else
     {
-        gtk_entry_reset_im_context(GTK_ENTRY (sheet->entry));
+        gtk_entry_reset_im_context (GTK_ENTRY (sheet->entry));
         gnucash_sheet_start_editing_at_cursor (sheet);
 
         // Came here by keyboard, select text, otherwise text cursor to
@@ -446,8 +446,7 @@ gnucash_sheet_activate_cursor_cell (GnucashSheet *sheet,
             }
             gnucash_sheet_set_position (sheet, index + trailing);
         }
-        sheet->direct_update_cell =
-            gnucash_sheet_check_direct_update_cell (sheet, virt_loc);
+        sheet->direct_update_cell = gnucash_sheet_check_direct_update_cell (sheet, virt_loc);
     }
     // when a gui refresh is called, we end up here so only grab the focus
     // if the sheet is showing on the current plugin_page
@@ -526,7 +525,6 @@ gnucash_sheet_y_pixel_to_block (GnucashSheet *sheet, int y)
         if (block->origin_y + block->style->dimensions->height > y)
             break;
     }
-
     return vcell_loc.virt_row;
 }
 
@@ -540,27 +538,24 @@ gnucash_sheet_compute_visible_range (GnucashSheet *sheet)
     gint height;
     gint cy;
     gint top_block;
-//    gint old_visible_blocks, old_visible_rows;
 
     g_return_if_fail (sheet != NULL);
-    g_return_if_fail (GNUCASH_IS_SHEET (sheet));
+    g_return_if_fail (GNUCASH_IS_SHEET(sheet));
 
     gtk_widget_get_allocation (GTK_WIDGET(sheet), &alloc);
     height = alloc.height;
 
     adj = gtk_scrollable_get_vadjustment (GTK_SCROLLABLE(sheet));
-    cy = gtk_adjustment_get_value(adj);
+    cy = gtk_adjustment_get_value (adj);
 
     top_block = gnucash_sheet_y_pixel_to_block (sheet, cy);
 
-//    old_visible_blocks = sheet->num_visible_blocks;
-//    old_visible_rows = sheet->num_visible_phys_rows;
     sheet->num_visible_blocks = 0;
     sheet->num_visible_phys_rows = 0;
 
-    for ( vcell_loc.virt_row = top_block, vcell_loc.virt_col = 0;
-            vcell_loc.virt_row < sheet->num_virt_rows;
-            vcell_loc.virt_row++ )
+    for (vcell_loc.virt_row = top_block, vcell_loc.virt_col = 0;
+         vcell_loc.virt_row < sheet->num_virt_rows;
+         vcell_loc.virt_row++)
     {
         SheetBlock *block;
 
@@ -599,9 +594,9 @@ gnucash_sheet_show_row (GnucashSheet *sheet, gint virt_row)
                               sheet->num_virt_rows - 1);
 
     adj = gtk_scrollable_get_hadjustment (GTK_SCROLLABLE(sheet));
-    cx = gtk_adjustment_get_value(adj);
+    cx = gtk_adjustment_get_value (adj);
     adj = gtk_scrollable_get_vadjustment (GTK_SCROLLABLE(sheet));
-    cy = gtk_adjustment_get_value(adj);
+    cy = gtk_adjustment_get_value (adj);
     x = cx;
 
     gtk_widget_get_allocation (GTK_WIDGET(sheet), &alloc);
@@ -642,7 +637,7 @@ void
 gnucash_sheet_make_cell_visible (GnucashSheet *sheet, VirtualLocation virt_loc)
 {
     g_return_if_fail (sheet != NULL);
-    g_return_if_fail (GNUCASH_IS_SHEET (sheet));
+    g_return_if_fail (GNUCASH_IS_SHEET(sheet));
 
     if (!gnucash_sheet_cell_valid (sheet, virt_loc))
         return;
@@ -670,18 +665,18 @@ gnucash_sheet_show_range (GnucashSheet *sheet,
     g_return_if_fail (sheet != NULL);
     g_return_if_fail (GNUCASH_IS_SHEET(sheet));
 
-    start_loc.virt_row = MAX (start_loc.virt_row, 1);
-    start_loc.virt_row = MIN (start_loc.virt_row,
-                              sheet->num_virt_rows - 1);
+    start_loc.virt_row = MAX(start_loc.virt_row, 1);
+    start_loc.virt_row = MIN(start_loc.virt_row,
+                             sheet->num_virt_rows - 1);
 
-    end_loc.virt_row = MAX (end_loc.virt_row, 1);
-    end_loc.virt_row = MIN (end_loc.virt_row,
-                            sheet->num_virt_rows - 1);
+    end_loc.virt_row = MAX(end_loc.virt_row, 1);
+    end_loc.virt_row = MIN(end_loc.virt_row,
+                           sheet->num_virt_rows - 1);
 
     adj = gtk_scrollable_get_hadjustment (GTK_SCROLLABLE(sheet));
-    cx = gtk_adjustment_get_value(adj);
+    cx = gtk_adjustment_get_value (adj);
     adj = gtk_scrollable_get_vadjustment (GTK_SCROLLABLE(sheet));
-    cy = gtk_adjustment_get_value(adj);
+    cy = gtk_adjustment_get_value (adj);
     x = cx;
 
     gtk_widget_get_allocation (GTK_WIDGET(sheet), &alloc);
@@ -703,7 +698,7 @@ gnucash_sheet_show_range (GnucashSheet *sheet,
     }
 
     if (y > cy)
-        y -= height - MIN (block_height, height);
+        y -= height - MIN(block_height, height);
 
     if ((sheet->height - y) < height)
         y = sheet->height - height;
@@ -727,7 +722,7 @@ gnucash_sheet_update_adjustments (GnucashSheet *sheet)
     GtkAdjustment *vadj;
 
     g_return_if_fail (sheet != NULL);
-    g_return_if_fail (GNUCASH_IS_SHEET (sheet));
+    g_return_if_fail (GNUCASH_IS_SHEET(sheet));
     g_return_if_fail (sheet->vadj != NULL);
 
     vadj = sheet->vadj;
@@ -742,7 +737,7 @@ gnucash_sheet_update_adjustments (GnucashSheet *sheet)
 
 static void
 gnucash_sheet_vadjustment_value_changed (GtkAdjustment *adj,
-        GnucashSheet *sheet)
+                                         GnucashSheet *sheet)
 {
     gnucash_sheet_compute_visible_range (sheet);
 }
@@ -754,7 +749,7 @@ gnucash_sheet_redraw_all (GnucashSheet *sheet)
     g_return_if_fail (sheet != NULL);
     g_return_if_fail (GNUCASH_IS_SHEET(sheet));
 
-    gtk_widget_queue_draw (GTK_WIDGET (sheet));
+    gtk_widget_queue_draw (GTK_WIDGET(sheet));
 
     g_signal_emit_by_name (sheet->reg, "redraw_all");
 }
@@ -787,8 +782,7 @@ gnucash_sheet_redraw_block (GnucashSheet *sheet, VirtualCellLocation vcell_loc)
 
     gtk_widget_get_allocation (GTK_WIDGET(sheet), &alloc);
     h = block->style->dimensions->height;
-    w = MIN(block->style->dimensions->width,
-            alloc.width);
+    w = MIN(block->style->dimensions->width, alloc.width);
 
     gtk_widget_queue_draw_area (GTK_WIDGET(sheet), x, y, w + 1, h + 1);
 }
@@ -812,7 +806,7 @@ gnucash_sheet_finalize (GObject *object)
 {
     GnucashSheet *sheet;
 
-    sheet = GNUCASH_SHEET (object);
+    sheet = GNUCASH_SHEET(object);
 
     g_table_resize (sheet->blocks, 0, 0);
     g_table_destroy (sheet->blocks);
@@ -823,8 +817,8 @@ gnucash_sheet_finalize (GObject *object)
     g_hash_table_destroy (sheet->cursor_styles);
     g_hash_table_destroy (sheet->dimensions_hash_table);
 
-    if (G_OBJECT_CLASS (sheet_parent_class)->finalize)
-        (*G_OBJECT_CLASS (sheet_parent_class)->finalize)(object);
+    if (G_OBJECT_CLASS(sheet_parent_class)->finalize)
+        (*G_OBJECT_CLASS(sheet_parent_class)->finalize)(object);
 }
 
 
@@ -841,10 +835,10 @@ gnucash_sheet_create (Table *table)
     sheet->vadj = gtk_scrollable_get_vadjustment (GTK_SCROLLABLE(sheet));
     sheet->hadj = gtk_scrollable_get_hadjustment (GTK_SCROLLABLE(sheet));
 
-    g_signal_connect (G_OBJECT (sheet->vadj), "value_changed",
-                      G_CALLBACK (gnucash_sheet_vadjustment_value_changed), sheet);
-    g_signal_connect (G_OBJECT (sheet), "draw",
-                      G_CALLBACK (gnucash_sheet_draw_cb), sheet);
+    g_signal_connect (G_OBJECT(sheet->vadj), "value_changed",
+                      G_CALLBACK(gnucash_sheet_vadjustment_value_changed), sheet);
+    g_signal_connect (G_OBJECT(sheet), "draw",
+                      G_CALLBACK(gnucash_sheet_draw_cb), sheet);
 
     LEAVE("%p", sheet);
     return sheet;
@@ -895,12 +889,10 @@ gnucash_sheet_modify_current_cell (GnucashSheet *sheet, const gchar *new_text)
     Table *table = sheet->table;
     VirtualLocation virt_loc;
     int new_text_len;
-
     const char *retval;
-
     int cursor_position, start_sel, end_sel;
 
-    gnucash_cursor_get_virt(GNUCASH_CURSOR(sheet->cursor), &virt_loc);
+    gnucash_cursor_get_virt (GNUCASH_CURSOR(sheet->cursor), &virt_loc);
 
     if (!gnc_table_virtual_loc_valid (table, virt_loc, TRUE))
         return NULL;
@@ -925,7 +917,7 @@ gnucash_sheet_modify_current_cell (GnucashSheet *sheet, const gchar *new_text)
 
     if (retval)
     {
-        DEBUG ("%s", retval ? retval : "nothing");
+        DEBUG("%s", retval ? retval : "nothing");
         gnucash_sheet_set_entry_value (sheet, retval);
         gnucash_sheet_set_position_and_selection (sheet, cursor_position,
                                                   start_sel, end_sel);
@@ -942,19 +934,17 @@ typedef struct
 } select_info;
 
 static gboolean
-gnucash_sheet_direct_event(GnucashSheet *sheet, GdkEvent *event)
+gnucash_sheet_direct_event (GnucashSheet *sheet, GdkEvent *event)
 {
     GtkEditable *editable;
     Table *table = sheet->table;
     VirtualLocation virt_loc;
     gboolean result;
-
     char *new_text = NULL;
-
     int cursor_position, start_sel, end_sel;
     int new_position, new_start, new_end;
 
-    gnucash_cursor_get_virt(GNUCASH_CURSOR(sheet->cursor), &virt_loc);
+    gnucash_cursor_get_virt (GNUCASH_CURSOR(sheet->cursor), &virt_loc);
 
     if (!gnc_table_virtual_loc_valid (table, virt_loc, TRUE))
         return FALSE;
@@ -977,7 +967,7 @@ gnucash_sheet_direct_event(GnucashSheet *sheet, GdkEvent *event)
                                       event);
     if (result)
     {
-        DEBUG ("%s", new_text ? new_text : "nothing");
+        DEBUG("%s", new_text ? new_text : "nothing");
         if (new_text != NULL)
             gnucash_sheet_set_entry_value (sheet, new_text);
         gnucash_sheet_set_position_and_selection (sheet, new_position,
@@ -1015,16 +1005,16 @@ insert_text (const char* old_text, const char* new_text, int pos, int bound)
 static char*
 make_new_text (GnucashSheet *sheet, const char* new_text, int *position)
 {
-    GtkEditable* editable = (GTK_EDITABLE (sheet->entry));
+    GtkEditable* editable = (GTK_EDITABLE(sheet->entry));
     int pos, bound;
-    const char* old_text = gtk_entry_get_text (GTK_ENTRY (sheet->entry));
+    const char* old_text = gtk_entry_get_text (GTK_ENTRY(sheet->entry));
     int old_length = g_utf8_strlen (old_text, -1);
     int insert_length = g_utf8_strlen (new_text, -1);
 
     if (!old_text || old_length == 0)
     {
         *position = insert_length;
-        return g_strdup(new_text);
+        return g_strdup (new_text);
     }
 
     gtk_editable_get_selection_bounds (editable, &bound, &pos);
@@ -1072,12 +1062,12 @@ gnucash_sheet_insert_cb (GtkEditable *editable,
     const char *retval;
     int start_sel = 0, end_sel = 0;
     int old_position = *position;
-    const char* old_text = gtk_entry_get_text (GTK_ENTRY (sheet->entry));
+    const char* old_text = gtk_entry_get_text (GTK_ENTRY(sheet->entry));
 
     g_assert (GTK_WIDGET(editable) == sheet->entry);
     if (sheet->input_cancelled)
     {
-        g_signal_stop_emission_by_name (G_OBJECT (sheet->entry),
+        g_signal_stop_emission_by_name (G_OBJECT(sheet->entry),
                                         "insert_text");
         return;
     }
@@ -1109,7 +1099,7 @@ gnucash_sheet_insert_cb (GtkEditable *editable,
          * IMContext that would reset the selection, and we may need to keep it
          * so save it in the sheet values.
          */
-        DEBUG ("%s, got %s", new_text, retval);
+        DEBUG("%s, got %s", new_text, retval);
         gnucash_sheet_set_position_and_selection (sheet, *position, start_sel,
                                                   end_sel);
 
@@ -1125,9 +1115,9 @@ gnucash_sheet_insert_cb (GtkEditable *editable,
         retval = old_text;
 
         /* reset IMContext if disallowed chars */
-        gtk_entry_reset_im_context (GTK_ENTRY (sheet->entry));
+        gtk_entry_reset_im_context (GTK_ENTRY(sheet->entry));
         /* the entry was disallowed, so we stop the insert signal */
-        g_signal_stop_emission_by_name (G_OBJECT (sheet->entry),
+        g_signal_stop_emission_by_name (G_OBJECT(sheet->entry),
                                         "insert_text");
     }
 }
@@ -1135,7 +1125,7 @@ gnucash_sheet_insert_cb (GtkEditable *editable,
 static char*
 delete_text (GnucashSheet *sheet, int pos, int bound)
 {
-    const char* old_text = gtk_entry_get_text (GTK_ENTRY (sheet->entry));
+    const char* old_text = gtk_entry_get_text (GTK_ENTRY(sheet->entry));
     int old_length = g_utf8_strlen (old_text, -1);
     char* begin, *end;
     char *retval = NULL;
@@ -1176,7 +1166,7 @@ gnucash_sheet_delete_cb (GtkWidget *widget,
     int cursor_position = start_pos;
     int start_sel, end_sel;
 
-    gnucash_cursor_get_virt (GNUCASH_CURSOR (sheet->cursor), &virt_loc);
+    gnucash_cursor_get_virt (GNUCASH_CURSOR(sheet->cursor), &virt_loc);
 
     if (!gnc_table_virtual_loc_valid (table, virt_loc, FALSE))
         return;
@@ -1186,7 +1176,7 @@ gnucash_sheet_delete_cb (GtkWidget *widget,
 
     new_text = delete_text (sheet, start_pos, end_pos);
     new_text_len = strlen (new_text);
-    editable = GTK_EDITABLE (sheet->entry);
+    editable = GTK_EDITABLE(sheet->entry);
     gtk_editable_get_selection_bounds (editable, &start_sel, &end_sel);
     retval = gnc_table_modify_update (table, virt_loc,
                                       NULL, 0,
@@ -1200,7 +1190,7 @@ gnucash_sheet_delete_cb (GtkWidget *widget,
 
     g_signal_stop_emission_by_name (G_OBJECT(sheet->entry), "delete_text");
 
-    DEBUG ("%s", retval ? retval : "nothing");
+    DEBUG("%s", retval ? retval : "nothing");
     gnucash_sheet_set_position_and_selection (sheet, cursor_position,
                                               start_sel, end_sel);
 }
@@ -1208,19 +1198,17 @@ gnucash_sheet_delete_cb (GtkWidget *widget,
 gboolean
 gnucash_sheet_draw_cb (GtkWidget *widget, cairo_t *cr, G_GNUC_UNUSED gpointer data)
 {
-    GnucashSheet *sheet = GNUCASH_SHEET (widget);
+    GnucashSheet *sheet = GNUCASH_SHEET(widget);
     GtkStyleContext *context = gtk_widget_get_style_context (widget);
     GtkAllocation alloc;
-    gboolean result; //FIXME
 
-    gtk_widget_get_allocation(widget, &alloc);
+    gtk_widget_get_allocation (widget, &alloc);
 
     gtk_style_context_save (context);
     gtk_style_context_add_class (context, GTK_STYLE_CLASS_BACKGROUND);
     gtk_render_background (context, cr, 0, 0, alloc.width, alloc.height);
     gtk_style_context_restore (context);
 
-//FIXME what should be done with result being TRUE or FALSE
     gnucash_sheet_draw_internal (sheet, cr, &alloc);
     gnucash_sheet_draw_cursor (sheet->cursor, cr);
 
@@ -1236,7 +1224,7 @@ gnucash_sheet_size_allocate (GtkWidget *widget, GtkAllocation *allocation)
     ENTER("widget=%p, allocation=%p", widget, allocation);
 
     if (GTK_WIDGET_CLASS(sheet_parent_class)->size_allocate)
-        (*GTK_WIDGET_CLASS (sheet_parent_class)->size_allocate)
+        (*GTK_WIDGET_CLASS(sheet_parent_class)->size_allocate)
         (widget, allocation);
 
     if (allocation->height == sheet->window_height &&
@@ -1255,7 +1243,7 @@ gnucash_sheet_size_allocate (GtkWidget *widget, GtkAllocation *allocation)
     sheet->window_height = allocation->height;
     sheet->window_width  = allocation->width;
 
-    gnucash_cursor_configure (GNUCASH_CURSOR (sheet->cursor));
+    gnucash_cursor_configure (GNUCASH_CURSOR(sheet->cursor));
     gnc_header_reconfigure (GNC_HEADER(sheet->header_item));
     gnucash_sheet_set_scroll_region (sheet);
 
@@ -1269,8 +1257,7 @@ gnucash_sheet_size_allocate (GtkWidget *widget, GtkAllocation *allocation)
         virt_loc = sheet->table->current_cursor_loc;
 
         if (gnucash_sheet_cell_valid (sheet, virt_loc))
-            gnucash_sheet_show_row (sheet,
-                                    virt_loc.vcell_loc.virt_row);
+            gnucash_sheet_show_row (sheet, virt_loc.vcell_loc.virt_row);
     }
     gnc_header_request_redraw (GNC_HEADER(sheet->header_item));
     LEAVE(" ");
@@ -1282,7 +1269,7 @@ gnucash_sheet_focus_in_event (GtkWidget *widget, GdkEventFocus *event)
     GnucashSheet *sheet = GNUCASH_SHEET(widget);
 
     if (GTK_WIDGET_CLASS(sheet_parent_class)->focus_in_event)
-        (*GTK_WIDGET_CLASS (sheet_parent_class)->focus_in_event)
+        (*GTK_WIDGET_CLASS(sheet_parent_class)->focus_in_event)
         (widget, event);
 
     gnc_item_edit_focus_in (GNC_ITEM_EDIT(sheet->item_editor));
@@ -1296,7 +1283,7 @@ gnucash_sheet_focus_out_event (GtkWidget *widget, GdkEventFocus *event)
     GnucashSheet *sheet = GNUCASH_SHEET(widget);
 
     if (GTK_WIDGET_CLASS(sheet_parent_class)->focus_out_event)
-        (*GTK_WIDGET_CLASS (sheet_parent_class)->focus_out_event)
+        (*GTK_WIDGET_CLASS(sheet_parent_class)->focus_out_event)
         (widget, event);
 
     gnc_item_edit_focus_out (GNC_ITEM_EDIT(sheet->item_editor));
@@ -1304,8 +1291,8 @@ gnucash_sheet_focus_out_event (GtkWidget *widget, GdkEventFocus *event)
 }
 
 static gboolean
-gnucash_sheet_check_direct_update_cell(GnucashSheet *sheet,
-                                       const VirtualLocation virt_loc)
+gnucash_sheet_check_direct_update_cell (GnucashSheet *sheet,
+                                        const VirtualLocation virt_loc)
 {
     const gchar *type_name;
 
@@ -1327,14 +1314,14 @@ gnucash_sheet_start_editing_at_cursor (GnucashSheet *sheet)
     VirtualLocation virt_loc;
 
     g_return_if_fail (sheet != NULL);
-    g_return_if_fail (GNUCASH_IS_SHEET (sheet));
+    g_return_if_fail (GNUCASH_IS_SHEET(sheet));
 
     gnucash_cursor_get_virt (GNUCASH_CURSOR(sheet->cursor), &virt_loc);
 
     text = gnc_table_get_entry (sheet->table, virt_loc);
 
     gnc_item_edit_configure (GNC_ITEM_EDIT(sheet->item_editor));
-    gtk_widget_show (GTK_WIDGET (sheet->item_editor));
+    gtk_widget_show (GTK_WIDGET(sheet->item_editor));
 
     gtk_entry_set_text (GTK_ENTRY(sheet->entry), text);
 
@@ -1342,11 +1329,11 @@ gnucash_sheet_start_editing_at_cursor (GnucashSheet *sheet)
 
     /* set up the signals */
     sheet->insert_signal =
-        g_signal_connect(G_OBJECT(sheet->entry), "insert_text",
-                         G_CALLBACK(gnucash_sheet_insert_cb), sheet);
+        g_signal_connect (G_OBJECT(sheet->entry), "insert_text",
+                          G_CALLBACK(gnucash_sheet_insert_cb), sheet);
     sheet->delete_signal =
-        g_signal_connect(G_OBJECT(sheet->entry), "delete_text",
-                         G_CALLBACK(gnucash_sheet_delete_cb), sheet);
+        g_signal_connect (G_OBJECT(sheet->entry), "delete_text",
+                          G_CALLBACK(gnucash_sheet_delete_cb), sheet);
 }
 
 static gboolean
@@ -1354,11 +1341,11 @@ gnucash_sheet_button_release_event (GtkWidget *widget, GdkEventButton *event)
 {
     GnucashSheet *sheet;
 
-    g_return_val_if_fail(widget != NULL, TRUE);
-    g_return_val_if_fail(GNUCASH_IS_SHEET(widget), TRUE);
-    g_return_val_if_fail(event != NULL, TRUE);
+    g_return_val_if_fail (widget != NULL, TRUE);
+    g_return_val_if_fail (GNUCASH_IS_SHEET(widget), TRUE);
+    g_return_val_if_fail (event != NULL, TRUE);
 
-    sheet = GNUCASH_SHEET (widget);
+    sheet = GNUCASH_SHEET(widget);
 
     if (sheet->button != event->button)
         return FALSE;
@@ -1381,11 +1368,11 @@ gnucash_scroll_event (GtkWidget *widget, GdkEventScroll *event)
     GtkAdjustment *vadj;
     gfloat v_value;
 
-    g_return_val_if_fail(widget != NULL, TRUE);
-    g_return_val_if_fail(GNUCASH_IS_SHEET(widget), TRUE);
-    g_return_val_if_fail(event != NULL, TRUE);
+    g_return_val_if_fail (widget != NULL, TRUE);
+    g_return_val_if_fail (GNUCASH_IS_SHEET(widget), TRUE);
+    g_return_val_if_fail (event != NULL, TRUE);
 
-    sheet = GNUCASH_SHEET (widget);
+    sheet = GNUCASH_SHEET(widget);
     vadj = sheet->vadj;
     v_value = gtk_adjustment_get_value (vadj);
 
@@ -1409,7 +1396,7 @@ gnucash_scroll_event (GtkWidget *widget, GdkEventScroll *event)
     v_value = CLAMP(v_value, gtk_adjustment_get_lower (vadj),
               gtk_adjustment_get_upper (vadj) - gtk_adjustment_get_page_size (vadj));
 
-    gtk_adjustment_set_value(vadj, v_value);
+    gtk_adjustment_set_value (vadj, v_value);
 
     if (event->delta_y == 0)
     {
@@ -1452,21 +1439,18 @@ gnucash_sheet_button_press_event (GtkWidget *widget, GdkEventButton *event)
 {
     GnucashSheet *sheet;
     VirtualCell *vcell;
-    gboolean changed_cells; //FIXME
-
     VirtualLocation cur_virt_loc;
     VirtualLocation new_virt_loc;
-
     Table *table;
     gboolean abort_move;
     gboolean button_1;
     gboolean do_popup;
 
-    g_return_val_if_fail(widget != NULL, TRUE);
-    g_return_val_if_fail(GNUCASH_IS_SHEET(widget), TRUE);
-    g_return_val_if_fail(event != NULL, TRUE);
+    g_return_val_if_fail (widget != NULL, TRUE);
+    g_return_val_if_fail (GNUCASH_IS_SHEET(widget), TRUE);
+    g_return_val_if_fail (event != NULL, TRUE);
 
-    sheet = GNUCASH_SHEET (widget);
+    sheet = GNUCASH_SHEET(widget);
     table = sheet->table;
 
     if (sheet->button && (sheet->button != event->button))
@@ -1476,8 +1460,8 @@ gnucash_sheet_button_press_event (GtkWidget *widget, GdkEventButton *event)
     if (sheet->button == 3)
         sheet->button = 0;
 
-    if (!gtk_widget_has_focus(widget))
-        gtk_widget_grab_focus(widget);
+    if (!gtk_widget_has_focus (widget))
+        gtk_widget_grab_focus (widget);
 
     button_1 = FALSE;
     do_popup = FALSE;
@@ -1504,8 +1488,8 @@ gnucash_sheet_button_press_event (GtkWidget *widget, GdkEventButton *event)
     sheet->button_x = -1;
     sheet->button_y = -1;
 
-    if (!gnucash_sheet_find_loc_by_pixel(sheet,
-                                        event->x, event->y, &new_virt_loc))
+    if (!gnucash_sheet_find_loc_by_pixel (sheet, event->x, event->y,
+                                          &new_virt_loc))
         return TRUE;
 
     sheet->button_x = event->x;
@@ -1520,7 +1504,7 @@ gnucash_sheet_button_press_event (GtkWidget *widget, GdkEventButton *event)
 
     if (button_1)
     {
-        gtk_grab_add(widget);
+        gtk_grab_add (widget);
         sheet->grabbed = TRUE;
     }
 
@@ -1543,7 +1527,6 @@ gnucash_sheet_button_press_event (GtkWidget *widget, GdkEventButton *event)
     if (abort_move)
         return TRUE;
 
-//FIXME does something need to be done if changed_cells is true or false ?
     gnucash_sheet_cursor_move (sheet, new_virt_loc);
 
     // if clicked in ocument link cell, run call back
@@ -1565,15 +1548,15 @@ gnucash_sheet_button_press_event (GtkWidget *widget, GdkEventButton *event)
 void
 gnucash_sheet_refresh_from_prefs (GnucashSheet *sheet)
 {
-    g_return_if_fail(sheet != NULL);
-    g_return_if_fail(GNUCASH_IS_SHEET(sheet));
+    g_return_if_fail (sheet != NULL);
+    g_return_if_fail (GNUCASH_IS_SHEET(sheet));
 
     sheet->use_gnc_color_theme = gnc_prefs_get_bool (GNC_PREFS_GROUP_GENERAL_REGISTER,
                                                      GNC_PREF_USE_GNUCASH_COLOR_THEME);
-    sheet->use_horizontal_lines = gnc_prefs_get_bool(GNC_PREFS_GROUP_GENERAL_REGISTER,
-                                                     GNC_PREF_DRAW_HOR_LINES);
-    sheet->use_vertical_lines = gnc_prefs_get_bool(GNC_PREFS_GROUP_GENERAL_REGISTER,
-                                                   GNC_PREF_DRAW_VERT_LINES);
+    sheet->use_horizontal_lines = gnc_prefs_get_bool (GNC_PREFS_GROUP_GENERAL_REGISTER,
+                                                      GNC_PREF_DRAW_HOR_LINES);
+    sheet->use_vertical_lines = gnc_prefs_get_bool (GNC_PREFS_GROUP_GENERAL_REGISTER,
+                                                    GNC_PREF_DRAW_VERT_LINES);
 }
 
 static gboolean
@@ -1590,7 +1573,7 @@ gnucash_sheet_clipboard_event (GnucashSheet *sheet, GdkEventKey *event)
     case GDK_KEY_c:
         if (event->state & GDK_MODIFIER_INTENT_PRIMARY_ACCELERATOR)
         {
-            gnc_item_edit_copy_clipboard(item_edit);
+            gnc_item_edit_copy_clipboard (item_edit);
             handled = TRUE;
         }
         break;
@@ -1598,7 +1581,7 @@ gnucash_sheet_clipboard_event (GnucashSheet *sheet, GdkEventKey *event)
     case GDK_KEY_x:
         if (event->state & GDK_MODIFIER_INTENT_PRIMARY_ACCELERATOR)
         {
-            gnc_item_edit_cut_clipboard(item_edit);
+            gnc_item_edit_cut_clipboard (item_edit);
             handled = TRUE;
         }
         break;
@@ -1618,12 +1601,11 @@ gnucash_sheet_clipboard_event (GnucashSheet *sheet, GdkEventKey *event)
         }
         else if (event->state & GDK_MODIFIER_INTENT_PRIMARY_ACCELERATOR)
         {
-            gnc_item_edit_copy_clipboard(item_edit);
+            gnc_item_edit_copy_clipboard (item_edit);
             handled = TRUE;
         }
         break;
     }
-
     return handled;
 }
 
@@ -1642,7 +1624,8 @@ gnucash_sheet_need_horizontal_scroll (GnucashSheet *sheet,
     hscroll_val = (gint) gtk_adjustment_get_value (sheet->hadj);
 
     // offset is the start of the cell for column
-    offset = gnc_header_get_cell_offset (GNC_HEADER(sheet->header_item), new_virt_loc->phys_col_offset, &cell_width);
+    offset = gnc_header_get_cell_offset (GNC_HEADER(sheet->header_item), 
+                                         new_virt_loc->phys_col_offset, &cell_width);
 
     if (((offset + cell_width) > sheet->window_width) || (offset < hscroll_val))
         gtk_adjustment_set_value (sheet->hadj, offset);
@@ -1660,9 +1643,9 @@ process_motion_keys (GnucashSheet *sheet, GdkEventKey *event, gboolean *pass_on,
     {
         case GDK_KEY_Return:
         case GDK_KEY_KP_Enter:
-            g_signal_emit_by_name(sheet->reg, "activate_cursor");
-	    /* Clear the saved selection. */
-	    sheet->pos = sheet->bound;
+            g_signal_emit_by_name (sheet->reg, "activate_cursor");
+            /* Clear the saved selection. */
+            sheet->pos = sheet->bound;
             return TRUE;
             break;
         case GDK_KEY_Tab:
@@ -1670,14 +1653,12 @@ process_motion_keys (GnucashSheet *sheet, GdkEventKey *event, gboolean *pass_on,
             if (event->state & GDK_SHIFT_MASK)
             {
                 *direction = GNC_TABLE_TRAVERSE_LEFT;
-                gnc_table_move_tab (sheet->table, new_virt_loc,
-                                    FALSE);
+                gnc_table_move_tab (sheet->table, new_virt_loc, FALSE);
             }
             else
             {
                 *direction = GNC_TABLE_TRAVERSE_RIGHT;
-                gnc_table_move_tab (sheet->table, new_virt_loc,
-                                    TRUE);
+                gnc_table_move_tab (sheet->table, new_virt_loc, TRUE);
             }
             break;
         case GDK_KEY_KP_Page_Up:
@@ -1719,16 +1700,13 @@ process_motion_keys (GnucashSheet *sheet, GdkEventKey *event, gboolean *pass_on,
             if (event->keyval == GDK_KEY_Menu ||
                 (event->state & GDK_MODIFIER_INTENT_PRIMARY_ACCELERATOR))
             {
-                GncItemEdit *item_edit;
-
-                item_edit = GNC_ITEM_EDIT (sheet->item_editor);
+                GncItemEdit *item_edit = GNC_ITEM_EDIT(sheet->item_editor);
 
-                if (gnc_table_confirm_change (sheet->table,
-                                              cur_virt_loc))
+                if (gnc_table_confirm_change (sheet->table, cur_virt_loc))
                     gnc_item_edit_show_popup (item_edit);
-		/* Clear the saved selection for the new cell. */
-		sheet->pos = sheet->bound;
 
+                /* Clear the saved selection for the new cell. */
+                sheet->pos = sheet->bound;
                 return TRUE;
             }
 
@@ -1742,17 +1720,17 @@ process_motion_keys (GnucashSheet *sheet, GdkEventKey *event, gboolean *pass_on,
         case GDK_KEY_Left:
         case GDK_KEY_Home:
         case GDK_KEY_End:
-	    /* Clear the saved selection, we're not using it. */
-	    sheet->pos = sheet->bound;
-	    *pass_on = TRUE;
-	    break;
+            /* Clear the saved selection, we're not using it. */
+            sheet->pos = sheet->bound;
+            *pass_on = TRUE;
+            break;
         default:
-            if (gnucash_sheet_clipboard_event(sheet, event))
-	    {
-		/* Clear the saved selection. */
-		sheet->pos = sheet->bound;
+            if (gnucash_sheet_clipboard_event (sheet, event))
+            {
+                /* Clear the saved selection. */
+                sheet->pos = sheet->bound;
                 return TRUE;
-	    }
+            }
             *pass_on = TRUE;
             break;
     }
@@ -1790,11 +1768,11 @@ gnucash_sheet_key_press_event_internal (GtkWidget *widget, GdkEventKey *event)
     int distance;
     GdkModifierType modifiers = gtk_accelerator_get_default_mod_mask ();
 
-    g_return_val_if_fail(widget != NULL, TRUE);
-    g_return_val_if_fail(GNUCASH_IS_SHEET(widget), TRUE);
-    g_return_val_if_fail(event != NULL, TRUE);
+    g_return_val_if_fail (widget != NULL, TRUE);
+    g_return_val_if_fail (GNUCASH_IS_SHEET(widget), TRUE);
+    g_return_val_if_fail (event != NULL, TRUE);
 
-    sheet = GNUCASH_SHEET (widget);
+    sheet = GNUCASH_SHEET(widget);
     table = sheet->table;
     /* Don't respond to stand-alone modifier keys. */
     if (event->is_modifier)
@@ -1804,10 +1782,10 @@ gnucash_sheet_key_press_event_internal (GtkWidget *widget, GdkEventKey *event)
      */
     gnucash_sheet_set_selection_from_entry (sheet);
     /* Direct_event gets first whack */
-    if (gnucash_sheet_direct_event(sheet, (GdkEvent *) event))
+    if (gnucash_sheet_direct_event (sheet, (GdkEvent *) event))
         return TRUE;
     /* Followed by the input method */
-    if (gtk_entry_im_context_filter_keypress (GTK_ENTRY (sheet->entry), event))
+    if (gtk_entry_im_context_filter_keypress (GTK_ENTRY(sheet->entry), event))
     {
         /* Restore the saved cursor position in case GtkEntry's IMContext
          * handlers messed with it after we set it in our insert_cb.
@@ -1841,8 +1819,8 @@ gnucash_sheet_key_press_event_internal (GtkWidget *widget, GdkEventKey *event)
     if (abort_move)
     {
         // Make sure the sheet is the focus
-        if (!gtk_widget_has_focus(GTK_WIDGET (sheet)))
-            gtk_widget_grab_focus (GTK_WIDGET (sheet));
+        if (!gtk_widget_has_focus (GTK_WIDGET(sheet)))
+            gtk_widget_grab_focus (GTK_WIDGET(sheet));
         return TRUE;
     }
 
@@ -1860,11 +1838,11 @@ gnucash_sheet_key_press_event (GtkWidget *widget, GdkEventKey *event)
     GnucashSheet *sheet;
     GtkEditable *editable = NULL;
 
-    g_return_val_if_fail(widget != NULL, TRUE);
-    g_return_val_if_fail(GNUCASH_IS_SHEET(widget), TRUE);
-    g_return_val_if_fail(event != NULL, TRUE);
+    g_return_val_if_fail (widget != NULL, TRUE);
+    g_return_val_if_fail (GNUCASH_IS_SHEET(widget), TRUE);
+    g_return_val_if_fail (event != NULL, TRUE);
 
-    sheet = GNUCASH_SHEET (widget);
+    sheet = GNUCASH_SHEET(widget);
     editable = GTK_EDITABLE(sheet->entry);
     /* bug#60582 comment#27 2
            save shift state to enable <shift minus> and <shift equal>
@@ -1884,13 +1862,13 @@ gnucash_sheet_key_press_event (GtkWidget *widget, GdkEventKey *event)
 }
 
 static gint
-gnucash_sheet_key_release_event(GtkWidget *widget, GdkEventKey *event)
+gnucash_sheet_key_release_event (GtkWidget *widget, GdkEventKey *event)
 {
     GnucashSheet *sheet;
 
-    g_return_val_if_fail(widget != NULL, TRUE);
-    g_return_val_if_fail(GNUCASH_IS_SHEET(widget), TRUE);
-    g_return_val_if_fail(event != NULL, TRUE);
+    g_return_val_if_fail (widget != NULL, TRUE);
+    g_return_val_if_fail (GNUCASH_IS_SHEET(widget), TRUE);
+    g_return_val_if_fail (event != NULL, TRUE);
 
     return FALSE;
 }
@@ -1903,7 +1881,7 @@ gnucash_sheet_goto_virt_loc (GnucashSheet *sheet, VirtualLocation virt_loc)
     gboolean abort_move;
     VirtualLocation cur_virt_loc;
 
-    g_return_if_fail(GNUCASH_IS_SHEET(sheet));
+    g_return_if_fail (GNUCASH_IS_SHEET(sheet));
 
     table = sheet->table;
 
@@ -1943,7 +1921,7 @@ GncItemEdit *gnucash_sheet_get_item_edit (GnucashSheet *sheet)
     if (sheet->item_editor == NULL)
         return NULL;
     else
-        return GNC_ITEM_EDIT (sheet->item_editor);
+        return GNC_ITEM_EDIT(sheet->item_editor);
 }
 
 
@@ -1991,10 +1969,9 @@ gnucash_sheet_block_set_from_table (GnucashSheet *sheet,
     if (block->style == NULL)
     {
         block->style = style;
-        gnucash_sheet_style_ref(sheet, block->style);
+        gnucash_sheet_style_ref (sheet, block->style);
         return TRUE;
     }
-
     return FALSE;
 }
 
@@ -2069,7 +2046,7 @@ gnucash_sheet_col_max_width (GnucashSheet *sheet, gint virt_col, gint cell_col)
                 {
                     width += gnc_item_edit_get_button_width (item_edit) + 2; // add 2 for the button margin
                 }
-                max = MAX (max, width);
+                max = MAX(max, width);
             }
         }
     }
@@ -2083,23 +2060,20 @@ void
 gnucash_sheet_set_scroll_region (GnucashSheet *sheet)
 {
     guint new_h, new_w;
-//    GtkWidget *widget;
     GtkAllocation alloc;
     guint old_h, old_w;
 
     if (!sheet)
         return;
 
-//    widget = GTK_WIDGET(sheet);
-
     if (!sheet->header_item || !GNC_HEADER(sheet->header_item)->style)
         return;
 
     gtk_layout_get_size (GTK_LAYOUT(sheet), &old_w, &old_h);
 
     gtk_widget_get_allocation (GTK_WIDGET(sheet), &alloc);
-    new_h = MAX (sheet->height, alloc.height);
-    new_w  = MAX (sheet->width, alloc.width);
+    new_h = MAX(sheet->height, alloc.height);
+    new_w  = MAX(sheet->width, alloc.width);
 
     if (new_w != old_w || new_h != old_h)
         gtk_layout_set_size (GTK_LAYOUT(sheet), new_w, new_h);
@@ -2186,7 +2160,6 @@ gnucash_sheet_recompute_block_offsets (GnucashSheet *sheet)
         if (i > 0 && block && block->visible)
             height += block->style->dimensions->height;
     }
-
     sheet->height = height;
 }
 
@@ -2225,7 +2198,7 @@ gnucash_sheet_table_load (GnucashSheet *sheet, gboolean do_scroll)
                      vcell->cellblock->num_rows);
         }
 
-    gnc_header_set_header_rows (GNC_HEADER (sheet->header_item),
+    gnc_header_set_header_rows (GNC_HEADER(sheet->header_item),
                                 num_header_phys_rows);
     gnc_header_reconfigure (GNC_HEADER(sheet->header_item));
 
@@ -2321,8 +2294,8 @@ gnucash_sheet_class_init (GnucashSheetClass *klass)
     GObjectClass *gobject_class;
     GtkWidgetClass *widget_class;
 
-    gobject_class = G_OBJECT_CLASS (klass);
-    widget_class = GTK_WIDGET_CLASS (klass);
+    gobject_class = G_OBJECT_CLASS(klass);
+    widget_class = GTK_WIDGET_CLASS(klass);
 
     gtk_widget_class_set_css_name (GTK_WIDGET_CLASS(klass), "gnc-id-sheet");
 
@@ -2376,11 +2349,12 @@ gnucash_sheet_init (GnucashSheet *sheet)
                                  gnucash_sheet_block_construct,
                                  gnucash_sheet_block_destroy, sheet);
 
-    gtk_widget_add_events(GTK_WIDGET(sheet), (GDK_EXPOSURE_MASK
-    | GDK_BUTTON_PRESS_MASK
-    | GDK_BUTTON_RELEASE_MASK
-    | GDK_POINTER_MOTION_MASK
-    | GDK_POINTER_MOTION_HINT_MASK));
+    gtk_widget_add_events (GTK_WIDGET(sheet),
+                          (GDK_EXPOSURE_MASK
+                          | GDK_BUTTON_PRESS_MASK
+                          | GDK_BUTTON_RELEASE_MASK
+                          | GDK_POINTER_MOTION_MASK
+                          | GDK_POINTER_MOTION_HINT_MASK));
 
     /* setup IMContext */
     sheet->direct_update_cell = FALSE;
@@ -2422,10 +2396,11 @@ gnucash_sheet_get_type (void)
 
 static gboolean
 gnucash_sheet_tooltip (GtkWidget  *widget, gint x, gint y,
-               gboolean    keyboard_mode, GtkTooltip *tooltip,
-               gpointer    user_data)
+                       gboolean    keyboard_mode,
+                       GtkTooltip *tooltip,
+                       gpointer    user_data)
 {
-    GnucashSheet *sheet = GNUCASH_SHEET (widget);
+    GnucashSheet *sheet = GNUCASH_SHEET(widget);
     Table *table = sheet->table;
     VirtualLocation virt_loc;
     gchar *tooltip_text;
@@ -2497,7 +2472,7 @@ gnucash_sheet_new (Table *table)
     sheet->cursor = gnucash_cursor_new (sheet);
 
     /* set up the editor */
-    sheet->item_editor = gnc_item_edit_new(sheet);
+    sheet->item_editor = gnc_item_edit_new (sheet);
 
     /* some register data */
     sheet->dimensions_hash_table = g_hash_table_new_full (g_int_hash,
@@ -2506,10 +2481,10 @@ gnucash_sheet_new (Table *table)
 
     /* add tooltips to sheet */
     gtk_widget_set_has_tooltip (GTK_WIDGET(sheet), TRUE);
-    g_signal_connect(G_OBJECT(sheet), "query-tooltip",
-                     G_CALLBACK(gnucash_sheet_tooltip), NULL);
+    g_signal_connect (G_OBJECT(sheet), "query-tooltip",
+                      G_CALLBACK(gnucash_sheet_tooltip), NULL);
 
-    gnucash_sheet_refresh_from_prefs(sheet);
+    gnucash_sheet_refresh_from_prefs (sheet);
 
     return GTK_WIDGET(sheet);
 }
diff --git a/gnucash/register/register-gnome/gnucash-sheet.h b/gnucash/register/register-gnome/gnucash-sheet.h
index 9ed25c915..2308ba1f4 100644
--- a/gnucash/register/register-gnome/gnucash-sheet.h
+++ b/gnucash/register/register-gnome/gnucash-sheet.h
@@ -75,16 +75,16 @@ void gnucash_sheet_redraw_help (GnucashSheet *sheet);
 void gnucash_sheet_redraw_block (GnucashSheet *sheet,
                                  VirtualCellLocation vcell_loc);
 
-const char * gnucash_sheet_modify_current_cell(GnucashSheet *sheet,
-        const gchar *new_text);
+const char * gnucash_sheet_modify_current_cell (GnucashSheet *sheet,
+                                                const gchar *new_text);
 
 gboolean gnucash_sheet_block_set_from_table (GnucashSheet *sheet,
-        VirtualCellLocation vcell_loc);
+                                             VirtualCellLocation vcell_loc);
 
 void gnucash_sheet_set_scroll_region (GnucashSheet *sheet);
 
 void gnucash_sheet_cursor_set_from_table (GnucashSheet *sheet,
-        gboolean do_scroll);
+                                          gboolean do_scroll);
 
 void gnucash_sheet_compute_visible_range (GnucashSheet *sheet);
 
diff --git a/gnucash/register/register-gnome/gnucash-sheetP.h b/gnucash/register/register-gnome/gnucash-sheetP.h
index 176a57c61..dd4be506a 100644
--- a/gnucash/register/register-gnome/gnucash-sheetP.h
+++ b/gnucash/register/register-gnome/gnucash-sheetP.h
@@ -116,9 +116,6 @@ GncItemEdit *gnucash_sheet_get_item_edit (GnucashSheet *sheet);
 void gnucash_sheet_set_popup (GnucashSheet *sheet, GtkWidget *popup, gpointer data);
 void gnucash_sheet_goto_virt_loc (GnucashSheet *sheet, VirtualLocation virt_loc);
 void gnucash_sheet_refresh_from_prefs (GnucashSheet *sheet);
-//Table       *gnucash_sheet_get_table (GnucashSheet *sheet);
-//gint         gnucash_sheet_get_num_virt_rows (GnucashSheet *sheet);
-//gint         gnucash_sheet_get_num_virt_cols (GnucashSheet *sheet);
 
 gboolean   gnucash_sheet_find_loc_by_pixel (GnucashSheet *sheet, gint x, gint y,
                                            VirtualLocation *vcell_loc);

commit 8ad9d0a22d44f5bcd183673ef48e8e0eb7cfed92
Author: Robert Fewell <14uBobIT at gmail.com>
Date:   Wed Nov 11 10:36:57 2020 +0000

    Bug 644242 - Register Panning Problem
    
    If the horizontal scrollbar is present for a register and you start to
    tab from one cell to the next one that is not in view the sheet does
    not scroll to keep the active cell in view.
    
    This commit fixes that by getting the active cell horizontal offset and
    width and comparing it to the sheet width and window width.

diff --git a/gnucash/register/register-gnome/gnucash-header.c b/gnucash/register/register-gnome/gnucash-header.c
index 34255a24c..3ad859e7a 100644
--- a/gnucash/register/register-gnome/gnucash-header.c
+++ b/gnucash/register/register-gnome/gnucash-header.c
@@ -188,6 +188,31 @@ gnc_header_draw_offscreen (GncHeader *header)
 }
 
 
+gint
+gnc_header_get_cell_offset (GncHeader *header, gint col, gint *cell_width)
+{
+    SheetBlockStyle *style = header->style;
+    gint j;
+    gint offset = 0;
+
+    for (j = 0; j < style->ncols; j++)
+    {
+        CellDimensions *cd;
+
+        cd = gnucash_style_get_cell_dimensions (style, 0, j);
+        if (!cd) continue;
+
+        if (j == col)
+        {
+            *cell_width = cd->pixel_width;
+            break;
+        }
+        offset = offset + cd->pixel_width;
+    }
+    return offset;
+}
+
+
 static gboolean
 gnc_header_draw (GtkWidget *header, cairo_t *cr)
 {
diff --git a/gnucash/register/register-gnome/gnucash-header.h b/gnucash/register/register-gnome/gnucash-header.h
index 096e80ede..3908357fb 100644
--- a/gnucash/register/register-gnome/gnucash-header.h
+++ b/gnucash/register/register-gnome/gnucash-header.h
@@ -74,5 +74,10 @@ void gnc_header_request_redraw (GncHeader *header);
 
 void gnc_header_set_header_rows (GncHeader *header,
                                  int num_phys_rows);
+
+gint gnc_header_get_cell_offset (GncHeader *header,
+                                 gint col,
+                                 gint *cell_width);
+
 /** @} */
 #endif /* GNUCASH_HEADER_H */
diff --git a/gnucash/register/register-gnome/gnucash-sheet.c b/gnucash/register/register-gnome/gnucash-sheet.c
index e1b73c247..a2c556fb3 100644
--- a/gnucash/register/register-gnome/gnucash-sheet.c
+++ b/gnucash/register/register-gnome/gnucash-sheet.c
@@ -1627,6 +1627,27 @@ gnucash_sheet_clipboard_event (GnucashSheet *sheet, GdkEventKey *event)
     return handled;
 }
 
+static void
+gnucash_sheet_need_horizontal_scroll (GnucashSheet *sheet,
+                                      VirtualLocation *new_virt_loc)
+{
+    gint hscroll_val;
+    gint cell_width = 0;
+    gint offset;
+
+    if (sheet->window_width == sheet->width)
+        return;
+
+    // get the horizontal scroll window value
+    hscroll_val = (gint) gtk_adjustment_get_value (sheet->hadj);
+
+    // offset is the start of the cell for column
+    offset = gnc_header_get_cell_offset (GNC_HEADER(sheet->header_item), new_virt_loc->phys_col_offset, &cell_width);
+
+    if (((offset + cell_width) > sheet->window_width) || (offset < hscroll_val))
+        gtk_adjustment_set_value (sheet->hadj, offset);
+}
+
 static gboolean
 process_motion_keys (GnucashSheet *sheet, GdkEventKey *event, gboolean *pass_on,
                      gncTableTraversalDir *direction,
@@ -1735,6 +1756,9 @@ process_motion_keys (GnucashSheet *sheet, GdkEventKey *event, gboolean *pass_on,
             *pass_on = TRUE;
             break;
     }
+    // does the sheet need horizontal scrolling due to tab
+    gnucash_sheet_need_horizontal_scroll (sheet, new_virt_loc);
+
     return FALSE;
 }
 
@@ -1894,6 +1918,9 @@ gnucash_sheet_goto_virt_loc (GnucashSheet *sheet, VirtualLocation virt_loc)
     if (abort_move)
         return;
 
+    // does the sheet need horizontal scrolling
+    gnucash_sheet_need_horizontal_scroll (sheet, &virt_loc);
+
     gnucash_sheet_cursor_move (sheet, virt_loc);
 }
 

commit 20f2efbe1188ebb07c3610f7654d1be92d924906
Author: Robert Fewell <14uBobIT at gmail.com>
Date:   Sun Nov 15 14:37:57 2020 +0000

    Bug 797901 - File History not updated
    
    To reproduce this, with an existing list of four recently opened files,
    open a fifth file whose name must differ from those already in the list
    and you will observe that the file history list is not updated.
    
    This was down to when doing the 'File->Open', a call is made to
    gnc_close_gui_component_by_session which closes the existing pages and
    as part of that the preference callbacks for the history plugin page
    were being removed along with some others like for tab placement.
    
    To fix this added the removal inside an if statement that checks to see
    if the window is quitting or not.

diff --git a/gnucash/gnome-utils/gnc-main-window.c b/gnucash/gnome-utils/gnc-main-window.c
index d416a3e36..c88c1d234 100644
--- a/gnucash/gnome-utils/gnc-main-window.c
+++ b/gnucash/gnome-utils/gnc-main-window.c
@@ -1405,8 +1405,14 @@ gnc_main_window_quit(GncMainWindow *window)
     }
     if (do_shutdown)
     {
+        GList *w;
+
+        for (w = active_windows; w; w = g_list_next (w))
+        {
+            window = w->data;
+            window->window_quitting = TRUE; // set window_quitting on all windows
+        }
         /* remove the preference callbacks from the main window */
-        window->window_quitting = TRUE;
         gnc_main_window_remove_prefs (window);
         g_timeout_add(250, gnc_main_window_timed_quit, NULL);
         return TRUE;
@@ -3232,21 +3238,25 @@ gnc_main_window_close_page (GncPluginPage *page)
     priv = GNC_MAIN_WINDOW_GET_PRIVATE(window);
     if (priv->installed_pages == NULL)
     {
-        GncPluginManager *manager = gnc_plugin_manager_get ();
-        GList *plugins = gnc_plugin_manager_get_plugins (manager);
+        if (window->window_quitting)
+        {
+            GncPluginManager *manager = gnc_plugin_manager_get ();
+            GList *plugins = gnc_plugin_manager_get_plugins (manager);
 
-        /* remove only the preference callbacks from the window plugins */
-        window->just_plugin_prefs = TRUE;
-        g_list_foreach (plugins, gnc_main_window_remove_plugin, window);
-        window->just_plugin_prefs = FALSE;
-        g_list_free (plugins);
+            /* remove only the preference callbacks from the window plugins */
+            window->just_plugin_prefs = TRUE;
+            g_list_foreach (plugins, gnc_main_window_remove_plugin, window);
+            window->just_plugin_prefs = FALSE;
+            g_list_free (plugins);
 
-        /* remove the preference callbacks from the main window */
-        gnc_main_window_remove_prefs (window);
+            /* remove the preference callbacks from the main window */
+            gnc_main_window_remove_prefs (window);
 
-        if (g_list_length(active_windows) > 1)
+            gtk_widget_destroy (GTK_WIDGET(window));
+        }
+        if (g_list_length (active_windows) > 1)
         {
-            gtk_widget_destroy(GTK_WIDGET(window));
+            gtk_widget_destroy (GTK_WIDGET(window));
         }
     }
 }

commit ea78fa5516c9183541c6400a629d88374ddb1769
Author: Christopher Lam <christopher.lck at gmail.com>
Date:   Sun Nov 15 18:37:17 2020 +0800

    Remove debugging statement

diff --git a/gnucash/import-export/qif-imp/qif-parse.scm b/gnucash/import-export/qif-imp/qif-parse.scm
index c7fec3cbd..1163c8d82 100644
--- a/gnucash/import-export/qif-imp/qif-parse.scm
+++ b/gnucash/import-export/qif-imp/qif-parse.scm
@@ -410,7 +410,6 @@
                                   #\, #\.))
                         ((integer) filtered-string)))
          (num (or (string->number (string-append "#e" read-string)) 0)))
-    (pk value-string has-minus? filtered-string read-string num)
     (if has-minus? (- num) num)))
 
 ;; input: list of numstrings eg "10.50" "20.54"

commit 3e2be271fc3c8245e4be7f24d6a15ca2116d3ab7
Author: Christopher Lam <christopher.lck at gmail.com>
Date:   Sun Nov 15 18:31:30 2020 +0800

    Bug 798005 - Import of QIF file sets expenses to zero, deposits are fine
    
    recongizes numbers with trailing negative sign.

diff --git a/gnucash/import-export/qif-imp/qif-parse.scm b/gnucash/import-export/qif-imp/qif-parse.scm
index 261c10212..c7fec3cbd 100644
--- a/gnucash/import-export/qif-imp/qif-parse.scm
+++ b/gnucash/import-export/qif-imp/qif-parse.scm
@@ -401,14 +401,17 @@
 
 ;; the following is a working refactored function
 (define (qif-parse:parse-number/format value-string format)
-  (let* ((filtered-string (gnc:string-delete-chars value-string "$'+"))
+  (let* ((has-minus? (string-index value-string #\-))
+         (filtered-string (gnc:string-delete-chars value-string "$'+-"))
          (read-string (case format
                         ((decimal) (gnc:string-delete-chars filtered-string ","))
                         ((comma) (gnc:string-replace-char
                                   (gnc:string-delete-chars filtered-string ".")
                                   #\, #\.))
-                        ((integer) filtered-string))))
-    (or (string->number (string-append "#e" read-string)) 0)))
+                        ((integer) filtered-string)))
+         (num (or (string->number (string-append "#e" read-string)) 0)))
+    (pk value-string has-minus? filtered-string read-string num)
+    (if has-minus? (- num) num)))
 
 ;; input: list of numstrings eg "10.50" "20.54"
 ;; input: formats to test '(decimal comma integer)
diff --git a/gnucash/import-export/qif-imp/test/test-qif-parse.scm b/gnucash/import-export/qif-imp/test/test-qif-parse.scm
index 8e94ab308..8d7402b4c 100644
--- a/gnucash/import-export/qif-imp/test/test-qif-parse.scm
+++ b/gnucash/import-export/qif-imp/test/test-qif-parse.scm
@@ -228,6 +228,10 @@
     -1234
     (qif-parse:parse-number/format "-1234" 'integer))
 
+  (test-equal "qif-parse:parse-number/format 1234-"
+    -1234
+    (qif-parse:parse-number/format "1234-" 'integer))
+
   (test-equal "qif-parse:parse-number/format 1234"
     1234
     (qif-parse:parse-number/format "1234" 'integer))

commit e9a117b21bda9c9810cff2f543efa9b283d95c08
Author: Geert Janssens <geert at kobaltwit.be>
Date:   Fri Nov 13 10:58:14 2020 +0100

    Bug 798008 - Option '--log' cannot be specified more than once
    
    Wrapping the std::vector to hold the log flags is unneeded and actually harmful.
    Just work on the vector directly. If user doesn't specify any '--log' options
    the vector will just be empty.

diff --git a/gnucash/gnucash-core-app.cpp b/gnucash/gnucash-core-app.cpp
index 6a6b6a80d..451b1f712 100644
--- a/gnucash/gnucash-core-app.cpp
+++ b/gnucash/gnucash-core-app.cpp
@@ -346,7 +346,7 @@ load_user_config(void)
 
 
 static void
-gnc_log_init (const boost::optional <std::vector <std::string>> &log_flags,
+gnc_log_init (const std::vector <std::string> log_flags,
               const boost::optional <std::string> &log_to_filename)
 {
     if (log_to_filename && !log_to_filename->empty())
@@ -389,24 +389,21 @@ gnc_log_init (const boost::optional <std::vector <std::string>> &log_flags,
         qof_log_parse_log_config (log_config_filename);
     g_free (log_config_filename);
 
-    if (log_flags && !log_flags->empty())
+    for (auto log_flag : log_flags)
     {
-        for (auto log_flag : *log_flags)
+        if (log_flag.empty () ||
+            log_flag[0] == '=' ||
+            log_flag[log_flag.length () - 1] == '=')
         {
-            if (log_flag.empty () ||
-                log_flag[0] == '=' ||
-                log_flag[log_flag.length () - 1] == '=')
-            {
-                g_warning ("string [%s] not parseable", log_flag.c_str());
-                continue;
-            }
+            g_warning ("string [%s] not parseable", log_flag.c_str());
+            continue;
+        }
 
-            std::vector<std::string> split_flag;
-            boost::split (split_flag, log_flag, [](char c){return c == '=';});
+        std::vector<std::string> split_flag;
+        boost::split (split_flag, log_flag, [](char c){return c == '=';});
 
-            auto level = qof_log_level_from_string (split_flag[1].c_str());
-            qof_log_set_level (split_flag[0].c_str(), level);
-        }
+        auto level = qof_log_level_from_string (split_flag[1].c_str());
+        qof_log_set_level (split_flag[0].c_str(), level);
     }
 }
 
diff --git a/gnucash/gnucash-core-app.hpp b/gnucash/gnucash-core-app.hpp
index 37dea122d..ed61af1f2 100644
--- a/gnucash/gnucash-core-app.hpp
+++ b/gnucash/gnucash-core-app.hpp
@@ -65,7 +65,7 @@ private:
     bool m_debug = false;
     bool m_extra = false;
     boost::optional <std::string> m_gsettings_prefix;
-    boost::optional <std::vector <std::string>> m_log_flags;
+    std::vector <std::string> m_log_flags;
 
     char *sys_locale = nullptr;
 };

commit 79951e094f0c87fa50e5dcd5ac57d28161b8855a
Merge: 60f263e0d 0b670680d
Author: John Ralls <jralls at ceridwen.us>
Date:   Thu Nov 12 19:32:36 2020 -0800

    Merge branch 'github-action' into maint


commit 0b670680d707b142756fe9db1a1adf2051052e98
Author: John Ralls <jralls at ceridwen.us>
Date:   Thu Nov 12 19:32:10 2020 -0800

    Implement CI tests on ArchLinux via docker container.

diff --git a/.github/workflows/ci-docker.yml b/.github/workflows/ci-docker.yml
new file mode 100644
index 000000000..fdf1b8e06
--- /dev/null
+++ b/.github/workflows/ci-docker.yml
@@ -0,0 +1,15 @@
+name: ci-tests-docker
+on: [push]
+jobs:
+  ci_tests_archlinux:
+    runs-on: ubuntu-latest
+    name: Test Docker Action
+    steps:
+    - name: Checkout
+      uses: actions/checkout at v2
+    - name: Test Action
+      uses: ./util/ci/actions/archlinux-test
+    - uses: actions/upload-artifact at v2
+      with:
+        name: TestLog
+        path: ${{ github.workspace }}/LastTest.log
diff --git a/util/ci/actions/archlinux-test/Dockerfile b/util/ci/actions/archlinux-test/Dockerfile
new file mode 100644
index 000000000..24352b54f
--- /dev/null
+++ b/util/ci/actions/archlinux-test/Dockerfile
@@ -0,0 +1,8 @@
+from archlinux/base
+run pacman -Syu --quiet --noconfirm gcc cmake make boost python2 pkg-config gettext guile git ninja gtest gmock sqlite3 webkit2gtk swig gwenhywfar aqbanking intltool libxslt postgresql-libs libmariadbclient libdbi libdbi-drivers > /dev/null
+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
+copy entrypoint.sh /
+entrypoint /entrypoint.sh
diff --git a/util/ci/actions/archlinux-test/action.yaml b/util/ci/actions/archlinux-test/action.yaml
new file mode 100644
index 000000000..d2043c728
--- /dev/null
+++ b/util/ci/actions/archlinux-test/action.yaml
@@ -0,0 +1,5 @@
+name: 'CI Tests ArchLinux'
+description: 'Run GnuCash CI tests in an ArchLinux Docker'
+runs:
+  using: 'docker'
+  image: 'Dockerfile'
diff --git a/util/ci/actions/archlinux-test/entrypoint.sh b/util/ci/actions/archlinux-test/entrypoint.sh
new file mode 100755
index 000000000..9b21224af
--- /dev/null
+++ b/util/ci/actions/archlinux-test/entrypoint.sh
@@ -0,0 +1,13 @@
+#!/bin/bash -le
+
+mkdir -p "$HOME"/.local/share
+
+mkdir build
+cd build
+export TZ="America/Los_Angeles"
+
+cmake /github/workspace -DWITH_PYTHON=ON -DCMAKE_BUILD_TYPE=debug -G Ninja
+ninja
+ninja check
+
+cp Testing/Temporary/LastTest.log /github/workspace

commit 60f263e0d295370fe90822bbd79cdd14d54954d2
Merge: d751913cb 31c9c5e08
Author: John Ralls <jralls at ceridwen.us>
Date:   Thu Nov 12 15:53:03 2020 -0800

    Merge branch 'github-action' into maint


commit d751913cb9d422be91595f42f89674248ffe90aa
Author: John Ralls <jralls at ceridwen.us>
Date:   Mon Nov 9 14:26:15 2020 -0800

    Fix typo in .gitattributes, text not test.

diff --git a/.gitattributes b/.gitattributes
index 75ddd56bc..15e143b3e 100644
--- a/.gitattributes
+++ b/.gitattributes
@@ -23,7 +23,7 @@
 *.sh    text eol=lf
 *.svg   text eol=lf
 *.xsl   text eol=lf
-*.cmake test eol=lf
+*.cmake text eol=lf
 
 Makefile.TAGS    text eol=lf
 Makevars         text eol=lf

commit 4e91a33be358ac952ea31c2c62c816070c15b453
Author: John Ralls <jralls at ceridwen.us>
Date:   Mon Nov 9 13:50:51 2020 -0800

    Use LTDL_LIBRARY_PATH instead of (DY)LD_LIBRARY_PATH
    
    With GnuCash's main libraries now linked at startup instead of being
    dlopened at runtime except by Guile we can restrict the library path
    renaming to Gnu Libtool's environment variable.

diff --git a/gnucash/environment.in b/gnucash/environment.in
index e81a01325..3c03b74ee 100644
--- a/gnucash/environment.in
+++ b/gnucash/environment.in
@@ -64,10 +64,7 @@ GUILE_LOAD_PATH=@GNC_GUILE_LOAD_PATH@;{GUILE_LIBS};{GUILE_LOAD_PATH}
 GUILE_LOAD_COMPILED_PATH=@GNC_GUILE_LOAD_COMPILED_PATH@;{GUILE_COMPILED_LIBS};{GUILE_LOAD_COMPILED_PATH}
 
 # Tell Guile where to find GnuCash specific shared libraries
-GNC_LIBRARY_PATH={SYS_LIB};{GNC_LIB}
-LD_LIBRARY_PATH={GNC_LIBRARY_PATH};{LD_LIBRARY_PATH}
-# The same, but for GnuCash on OS X
-DYLD_LIBRARY_PATH={GNC_LIBRARY_PATH};{DYLD_LIBRARY_PATH}
+LTDL_LIBRARY_PATH={SYS_LIB};{GNC_LIB}
 
 # For changing the language GnuCash uses, first refer to
 # to https://wiki.gnucash.org/wiki/Locale_Settings.

commit 31c9c5e0805f9dd3f4435191134339f5b96dbdee
Author: John Ralls <jralls at ceridwen.us>
Date:   Thu Nov 12 13:53:59 2020 -0800

    Add Ubuntu-20 tests.

diff --git a/.github/workflows/ci-tests.yml b/.github/workflows/ci-tests.yml
index 619679dd8..30ec9f3f6 100644
--- a/.github/workflows/ci-tests.yml
+++ b/.github/workflows/ci-tests.yml
@@ -34,3 +34,42 @@ jobs:
       with:
         name: TestLog
         path: ${{ github.workspace }}/build/Testing/Temporary/LastTest.log
+  ci_tests_ubuntu-20:
+    runs-on: ubuntu-20.04
+    name: Ubuntu-20.04 Tests
+    env:
+      TZ: America/Los_Angeles
+    steps:
+    - name: Checkout
+      uses: actions/checkout at v2
+    - name: Install apt utils
+      run: sudo apt-get install -y --no-install-recommends apt-utils
+    - name: Upgrade apt
+      run: |
+        sudo apt-get update -y
+        sudo apt-get upgrade -y
+    - name: Install additional dependencies
+      run: sudo apt-get install -y cmake libxslt-dev xsltproc ninja-build libboost-all-dev libgtk-3-dev guile-2.2-dev libgwengui-gtk3-dev libaqbanking-dev libofx-dev libdbi-dev libdbd-sqlite3 libwebkit2gtk-4.0-dev  googletest
+    - name: Install language packs.
+      run: sudo apt-get --reinstall install -y language-pack-en language-pack-fr
+    - run: |
+        echo "ROOT_DIR=$GITHUB_WORKSPACE/.." >> $GITHUB_ENV
+    - name: Create Directories
+      run: |
+        pwd
+        mkdir $ROOT_DIR/inst
+        mkdir build
+    - name: Configure GnuCash
+      run: |
+        cd build
+        cmake -G Ninja -DWITH_PYTHON=ON -DCMAKE_INSTALL_PREFIX=$ROOT_DIR/inst $GITHUB_WORKSPACE
+    - name: Build and Test GnuCash
+      run: |
+        cd build
+        ninja
+        ninja check
+    - uses: actions/upload-artifact at v2
+      if: failure()
+      with:
+        name: TestLog
+        path: ${{ github.workspace }}/build/Testing/Temporary/LastTest.log

commit b22bf07bc45263d7401d365d3568d2061433c065
Author: John Ralls <jralls at ceridwen.us>
Date:   Mon Nov 9 14:29:09 2020 -0800

    Setup Github Actions with CI testing for Ubuntu 18.04

diff --git a/.github/workflows/ci-tests.yml b/.github/workflows/ci-tests.yml
new file mode 100644
index 000000000..619679dd8
--- /dev/null
+++ b/.github/workflows/ci-tests.yml
@@ -0,0 +1,36 @@
+name: ci-tests
+on: [push]
+jobs:
+  ci_tests_ubuntu-18:
+    runs-on: ubuntu-18.04
+    name: Ubuntu-18.04 Tests
+    env:
+      TZ: America/Los_Angeles
+    steps:
+    - name: Checkout
+      uses: actions/checkout at v2
+    - name: Install additional dependencies
+      run: sudo apt-get install -y cmake libxslt-dev xsltproc ninja-build libboost-all-dev libgtk-3-dev guile-2.2-dev libgwengui-gtk3-dev libaqbanking-dev libofx-dev libdbi-dev libdbd-sqlite3 libwebkit2gtk-4.0-dev  googletest
+    - name: Install language packs.
+      run: sudo apt-get --reinstall install -y language-pack-en language-pack-fr
+    - run: |
+        echo "ROOT_DIR=$GITHUB_WORKSPACE/.." >> $GITHUB_ENV
+    - name: Create Directories
+      run: |
+        pwd
+        mkdir $ROOT_DIR/inst
+        mkdir build
+    - name: Configure GnuCash
+      run: |
+        cd build
+        cmake -G Ninja -DWITH_PYTHON=ON -DCMAKE_INSTALL_PREFIX=$ROOT_DIR/inst $GITHUB_WORKSPACE
+    - name: Build and Test GnuCash
+      run: |
+        cd build
+        ninja
+        ninja check
+    - uses: actions/upload-artifact at v2
+      if: failure()
+      with:
+        name: TestLog
+        path: ${{ github.workspace }}/build/Testing/Temporary/LastTest.log

commit a519b913a6067f44ef699d504a8955ffdc49930d
Author: Robert Fewell <14uBobIT at gmail.com>
Date:   Tue Nov 10 19:05:37 2020 +0000

    Windows Build failure in dialog-dup-trans.c
    
    Windows build failed on creating gchar *format with g_strdup_printf
    parameter '%ld' expects argument of type 'long int', but argument 3 has
    type 'size_t' {aka 'unsigned int'}
    Fixed by replacing strlen with g_utf8_strlen.

diff --git a/gnucash/gnome-utils/dialog-dup-trans.c b/gnucash/gnome-utils/dialog-dup-trans.c
index 329ecafb1..6db255881 100644
--- a/gnucash/gnome-utils/dialog-dup-trans.c
+++ b/gnucash/gnome-utils/dialog-dup-trans.c
@@ -95,7 +95,7 @@ gnc_dup_inc_dec (GtkWidget *widget, const gchar *text, gint inc_dec)
             num = 0;
 
         if (g_str_has_prefix (text, "0"))
-            format = g_strdup_printf ("%s%ld%s", "%0", strlen (text), "d");
+            format = g_strdup_printf ("%s%ld%s", "%0", g_utf8_strlen (text, -1), "d");
         else
             format = g_strdup_printf ("%s", "%ld");
 

commit 49b3bdeb09b5c86751b8dedcec26be9c3487df48
Author: Frank H. Ellenberger <frank.h.ellenberger at gmail.com>
Date:   Thu Oct 29 21:57:26 2020 +0100

    I18N: Ammend intro of autoclear window
    
    Split text in titles and section
    and use CSS instead of markup.

diff --git a/gnucash/gtkbuilder/window-autoclear.glade b/gnucash/gtkbuilder/window-autoclear.glade
index 4288ac744..335ed8c2a 100644
--- a/gnucash/gtkbuilder/window-autoclear.glade
+++ b/gnucash/gtkbuilder/window-autoclear.glade
@@ -1,14 +1,11 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<!-- Generated with glade 3.22.2 -->
+<!-- Generated with glade 3.36.0 -->
 <interface>
   <requires lib="gtk+" version="3.22"/>
   <object class="GtkDialog" id="auto_clear_start_dialog">
     <property name="can_focus">False</property>
     <property name="resizable">False</property>
     <property name="type_hint">dialog</property>
-    <child type="titlebar">
-      <placeholder/>
-    </child>
     <child internal-child="vbox">
       <object class="GtkBox" id="dialog-vbox6">
         <property name="visible">True</property>
@@ -71,18 +68,59 @@
               <object class="GtkLabel" id="label1">
                 <property name="visible">True</property>
                 <property name="can_focus">False</property>
-                <property name="label" translatable="yes"><b>Auto-Clear Information</b>
-Use this dialog if you want GnuCash to automatically find which transactions are cleared, given an ending balance. For example, said ending balance can be the current balance given by your online bank.
-
-<b>Note</b>: The complexity of this algorithm is quite high (<a href="https://en.wikipedia.org/wiki/Knapsack_problem#Computational_complexity">O(nW)</a>). Use this only on a dozen of uncleared splits.</property>
-                <property name="use_markup">True</property>
+                <property name="label" translatable="yes">About Auto-Clear</property>
+                <style>
+                  <class name="gnc-class-title"/>
+                </style>
+              </object>
+              <packing>
+                <property name="expand">False</property>
+                <property name="fill">False</property>
+                <property name="position">0</property>
+              </packing>
+            </child>
+            <child>
+              <object class="GtkLabel" id="label2">
+                <property name="visible">True</property>
+                <property name="can_focus">False</property>
+                <property name="label" translatable="yes">Use this dialog if you want GnuCash to automatically find which transactions are cleared, given an ending balance. For example, said ending balance can be the current balance given by your bank online.</property>
                 <property name="wrap">True</property>
                 <property name="max_width_chars">80</property>
               </object>
               <packing>
                 <property name="expand">False</property>
                 <property name="fill">False</property>
-                <property name="position">0</property>
+                <property name="position">1</property>
+              </packing>
+            </child>
+            <child>
+              <object class="GtkLabel" id="label3">
+                <property name="visible">True</property>
+                <property name="can_focus">False</property>
+                <property name="has_tooltip">True</property>
+                <property name="label" translatable="yes">Caution!</property>
+                <style>
+                  <class name="gnc-class-emphasis"/>
+                </style>
+              </object>
+              <packing>
+                <property name="expand">False</property>
+                <property name="fill">False</property>
+                <property name="position">2</property>
+              </packing>
+            </child>
+            <child>
+              <object class="GtkLabel" id="label4">
+                <property name="visible">True</property>
+                <property name="can_focus">False</property>
+                <property name="label" translatable="yes">This tool might be slow or abort if the number of uncleared splits is more than approximately 20. In that case please clear at least some of them manually.</property>
+                <property name="wrap">True</property>
+                <property name="max_width_chars">80</property>
+              </object>
+              <packing>
+                <property name="expand">False</property>
+                <property name="fill">False</property>
+                <property name="position">3</property>
               </packing>
             </child>
             <child>
@@ -110,9 +148,6 @@ Use this dialog if you want GnuCash to automatically find which transactions are
                     <property name="visible">True</property>
                     <property name="can_focus">False</property>
                     <property name="hexpand">True</property>
-                    <child>
-                      <placeholder/>
-                    </child>
                   </object>
                   <packing>
                     <property name="left_attach">1</property>
@@ -134,7 +169,7 @@ Use this dialog if you want GnuCash to automatically find which transactions are
               <packing>
                 <property name="expand">False</property>
                 <property name="fill">True</property>
-                <property name="position">1</property>
+                <property name="position">4</property>
               </packing>
             </child>
             <child>
@@ -150,7 +185,7 @@ Use this dialog if you want GnuCash to automatically find which transactions are
               <packing>
                 <property name="expand">False</property>
                 <property name="fill">True</property>
-                <property name="position">2</property>
+                <property name="position">5</property>
               </packing>
             </child>
           </object>
@@ -158,7 +193,7 @@ Use this dialog if you want GnuCash to automatically find which transactions are
             <property name="expand">False</property>
             <property name="fill">False</property>
             <property name="padding">5</property>
-            <property name="position">2</property>
+            <property name="position">1</property>
           </packing>
         </child>
       </object>
@@ -167,5 +202,8 @@ Use this dialog if you want GnuCash to automatically find which transactions are
       <action-widget response="-6">cancel_button</action-widget>
       <action-widget response="-5">ok_button</action-widget>
     </action-widgets>
+    <child type="titlebar">
+      <placeholder/>
+    </child>
   </object>
 </interface>

commit 4718604f3b1e84b4da7d40f2f1bfe7e684d04a90
Author: Cristian Klein <cristian.klein at elastisys.com>
Date:   Wed Oct 14 07:48:24 2020 +0200

    Document complexity in UI

diff --git a/gnucash/gtkbuilder/window-autoclear.glade b/gnucash/gtkbuilder/window-autoclear.glade
index 25730a6ff..4288ac744 100644
--- a/gnucash/gtkbuilder/window-autoclear.glade
+++ b/gnucash/gtkbuilder/window-autoclear.glade
@@ -72,7 +72,9 @@
                 <property name="visible">True</property>
                 <property name="can_focus">False</property>
                 <property name="label" translatable="yes"><b>Auto-Clear Information</b>
-Use this dialog if you want GnuCash to automatically find which transactions are cleared, given an ending balance. For example, said ending balance can be the current balance given by your online bank.</property>
+Use this dialog if you want GnuCash to automatically find which transactions are cleared, given an ending balance. For example, said ending balance can be the current balance given by your online bank.
+
+<b>Note</b>: The complexity of this algorithm is quite high (<a href="https://en.wikipedia.org/wiki/Knapsack_problem#Computational_complexity">O(nW)</a>). Use this only on a dozen of uncleared splits.</property>
                 <property name="use_markup">True</property>
                 <property name="wrap">True</property>
                 <property name="max_width_chars">80</property>

commit 1aba062109bcf67c56719949e4fc9388ddd8e9ec
Author: Frank H. Ellenberger <frank.h.ellenberger at gmail.com>
Date:   Sat Nov 7 11:41:52 2020 +0100

    Add a few more CSS classes for labels

diff --git a/gnucash/gnome-utils/dialog-account.c b/gnucash/gnome-utils/dialog-account.c
index be630f279..f72debba1 100644
--- a/gnucash/gnome-utils/dialog-account.c
+++ b/gnucash/gnome-utils/dialog-account.c
@@ -699,7 +699,7 @@ verify_children_compatible (AccountWindow *aw)
     gnc_label_set_alignment (label, 0.0, 0.0);
 
     /* make label large */
-    gnc_widget_style_context_add_class (GTK_WIDGET(label), "gnc-class-emphasize-label");
+    gnc_widget_style_context_add_class (GTK_WIDGET(label), "gnc-class-title");
 
     gtk_box_pack_start (GTK_BOX (vbox), label, FALSE, FALSE, 0);
 
diff --git a/gnucash/gnucash-fallback.css b/gnucash/gnucash-fallback.css
index 9528ee9a4..f5f4a34c6 100644
--- a/gnucash/gnucash-fallback.css
+++ b/gnucash/gnucash-fallback.css
@@ -41,10 +41,21 @@
   border-color: black;
 }
 
-/* Make label more important */
-.gnc-class-emphasize-label {
-  font-size: large;
-  font-weight: bold;
+/* Make some labels more important */
+.gnc-class-underline-title {
+font-size: large;
+font-weight: bold;
+text-decoration-line: underline;
+}
+.gnc-class-title {
+font-size: large;
+font-weight: bold;
+}
+.gnc-class-strong {
+font-weight: bold;
+}
+.gnc-class-emphasis {
+font-style: italic;
 }
 
 /* The Dense Calendar defaults */

commit 08a0da8c4ef8825433f403fc7fbdfafed8424e58
Author: John Ralls <jralls at ceridwen.us>
Date:   Mon Nov 9 14:26:15 2020 -0800

    Fix typo in .gitattributes, text not test.

diff --git a/.gitattributes b/.gitattributes
index 75ddd56bc..15e143b3e 100644
--- a/.gitattributes
+++ b/.gitattributes
@@ -23,7 +23,7 @@
 *.sh    text eol=lf
 *.svg   text eol=lf
 *.xsl   text eol=lf
-*.cmake test eol=lf
+*.cmake text eol=lf
 
 Makefile.TAGS    text eol=lf
 Makevars         text eol=lf

commit 194a021da4e2ad8a8e700aff7b7547cd794fb078
Author: John Ralls <jralls at ceridwen.us>
Date:   Mon Nov 9 13:50:51 2020 -0800

    Use LTDL_LIBRARY_PATH instead of (DY)LD_LIBRARY_PATH
    
    With GnuCash's main libraries now linked at startup instead of being
    dlopened at runtime except by Guile we can restrict the library path
    renaming to Gnu Libtool's environment variable.

diff --git a/gnucash/environment.in b/gnucash/environment.in
index e81a01325..3c03b74ee 100644
--- a/gnucash/environment.in
+++ b/gnucash/environment.in
@@ -64,10 +64,7 @@ GUILE_LOAD_PATH=@GNC_GUILE_LOAD_PATH@;{GUILE_LIBS};{GUILE_LOAD_PATH}
 GUILE_LOAD_COMPILED_PATH=@GNC_GUILE_LOAD_COMPILED_PATH@;{GUILE_COMPILED_LIBS};{GUILE_LOAD_COMPILED_PATH}
 
 # Tell Guile where to find GnuCash specific shared libraries
-GNC_LIBRARY_PATH={SYS_LIB};{GNC_LIB}
-LD_LIBRARY_PATH={GNC_LIBRARY_PATH};{LD_LIBRARY_PATH}
-# The same, but for GnuCash on OS X
-DYLD_LIBRARY_PATH={GNC_LIBRARY_PATH};{DYLD_LIBRARY_PATH}
+LTDL_LIBRARY_PATH={SYS_LIB};{GNC_LIB}
 
 # For changing the language GnuCash uses, first refer to
 # to https://wiki.gnucash.org/wiki/Locale_Settings.

commit 6a6396edca192cadf9cc929c0245b143d03e2e06
Author: Christopher Lam <christopher.lck at gmail.com>
Date:   Mon Nov 9 19:54:54 2020 +0800

    Revert "[auto-clear] provide live feedback when a valid end_amount is input"
    
    This reverts commit afcf1765f6c56931d5b4545613d32b8d60c4e7bc.
    
    Not satisfactory. Introduces unacceptable delay after each
    keystroke. Will try again when knapsack algorithm is improved to
    generate toclear_list as GHashTable value.

diff --git a/gnucash/gnome/window-autoclear.c b/gnucash/gnome/window-autoclear.c
index d7dec2eab..f5270be82 100644
--- a/gnucash/gnome/window-autoclear.c
+++ b/gnucash/gnome/window-autoclear.c
@@ -52,7 +52,6 @@ struct _AutoClearWindow
     GtkWidget *cancel_button;
     GtkWidget *show_cleared_splits_button;
     GtkLabel *status_label;
-    GList *toclear_list;
 };
 
 /** Callback prototypes************************************************/
@@ -123,44 +122,47 @@ void
 gnc_autoclear_window_ok_cb (GtkWidget *widget,
                             AutoClearWindow *data)
 {
+    GList *toclear_list;
     gnc_numeric toclear_value;
     gchar *errmsg = NULL;
 
     g_return_if_fail (widget && data);
 
-    /* sanity check: if toclear_list is null, bail out. but this
-       should not happen because the OK button is disabled if there is
-       autoclear error, and toclear_list is null */
-    g_return_if_fail (data->toclear_list);
+    toclear_value = gnc_amount_edit_get_amount(data->end_value);
 
-    xaccAccountBeginEdit (data->account);
-    for (GList *node = data->toclear_list; node; node = node->next)
-        xaccSplitSetReconcile (node->data, CREC);
-    xaccAccountCommitEdit (data->account);
+    if (gnc_reverse_balance(data->account))
+        toclear_value = gnc_numeric_neg (toclear_value);
 
-    if (gtk_toggle_button_get_active
-        (GTK_TOGGLE_BUTTON (data->show_cleared_splits_button)))
-        show_cleared_splits (data->toclear_list);
+    toclear_value = gnc_numeric_convert
+        (toclear_value, xaccAccountGetCommoditySCU(data->account), GNC_HOW_RND_ROUND);
 
-    /* Close window */
-    gnc_autoclear_window_cancel_cb (widget, data);
-}
+    toclear_list = gnc_account_get_autoclear_splits
+        (data->account, toclear_value, &errmsg);
 
-static gboolean
-gnc_autoclear_window_delete_cb (GtkWidget *widget, GdkEvent  *event,
-                                AutoClearWindow *data)
-{
-    if (data->toclear_list)
-        g_list_free (data->toclear_list);
-    g_free(data);
-    return FALSE;
-}
+    if (errmsg)
+    {
+        gtk_label_set_text (data->status_label, errmsg);
+        gnc_amount_edit_set_amount (data->end_value, toclear_value);
+        gtk_editable_select_region (GTK_EDITABLE (data->end_value), 0, -1);
+        g_free (errmsg);
+    }
+    else
+    {
+        xaccAccountBeginEdit (data->account);
+        for (GList *node = toclear_list; node; node = node->next)
+            xaccSplitSetReconcile (node->data, CREC);
+        xaccAccountCommitEdit (data->account);
 
-static void
-gnc_autoclear_end_value_activate_cb (GtkWidget *widget, AutoClearWindow *data)
-{
-    if (data->toclear_list)
-        gnc_autoclear_window_ok_cb (widget, data);
+        if (gtk_toggle_button_get_active
+            (GTK_TOGGLE_BUTTON (data->show_cleared_splits_button)))
+            show_cleared_splits (toclear_list);
+
+        g_list_free (toclear_list);
+
+        /* Close window */
+        gtk_widget_destroy (data->window);
+        g_free (data);
+    }
 }
 
 void
@@ -169,80 +171,12 @@ gnc_autoclear_window_cancel_cb (GtkWidget *widget,
 {
     /* Close window */
     gtk_widget_destroy(data->window);
-    if (data->toclear_list)
-        g_list_free (data->toclear_list);
     g_free(data);
 }
 
-#define MAX_LENGTH 50
-
-static void end_value_changed_cb (GtkEditable *editable, AutoClearWindow *data)
+static void clear_status_label_cb (GtkEditable *editable, AutoClearWindow *data)
 {
-    gnc_numeric toclear_value;
-    gchar *errmsg = NULL;
-
-    if (gnc_amount_edit_expr_is_valid (data->end_value, &toclear_value, TRUE))
-    {
-        gtk_widget_set_sensitive (data->ok_button, FALSE);
-        gtk_label_set_text (data->status_label, "");
-        return;
-    }
-
-    if (gnc_reverse_balance (data->account))
-        toclear_value = gnc_numeric_neg (toclear_value);
-
-    toclear_value = gnc_numeric_convert
-        (toclear_value, xaccAccountGetCommoditySCU(data->account), GNC_HOW_RND_ROUND);
-
-    if (data->toclear_list)
-        g_list_free (data->toclear_list);
-
-    data->toclear_list = gnc_account_get_autoclear_splits
-        (data->account, toclear_value, &errmsg);
-
-    gtk_widget_set_sensitive (data->ok_button, errmsg == NULL);
-
-    if (errmsg)
-    {
-        gtk_widget_set_sensitive (data->ok_button, FALSE);
-        gtk_label_set_text (data->status_label, errmsg);
-        g_free (errmsg);
-    }
-    else
-    {
-        gchar *status = g_strdup (_("The following splits will be cleared:"));
-        GNCPrintAmountInfo p_info = gnc_account_print_info (data->account, TRUE);
-        gboolean reverse = gnc_reverse_balance (data->account);
-        for (GList *node = data->toclear_list; node; node = node->next)
-        {
-            Transaction *trans = xaccSplitGetParent (node->data);
-            gnc_numeric amount = xaccSplitGetAmount (node->data);
-            const gchar *desc = xaccTransGetDescription (trans);
-            gchar *datestr = qof_print_date (xaccTransGetDate (trans));
-            gchar *newdesc, *newstatus;
-
-            if (g_utf8_strlen (desc, -1) > MAX_LENGTH)
-            {
-                gchar *trunc = g_utf8_substring (desc, 0, MAX_LENGTH);
-                newdesc = g_strdup_printf ("%s...", trunc);
-                g_free (trunc);
-            }
-            else
-                newdesc = g_strdup (desc);
-
-            if (reverse)
-                amount = gnc_numeric_neg (amount);
-
-            newstatus = g_strdup_printf ("%s\n%s %s %s", status, datestr,
-                                         newdesc, xaccPrintAmount (amount, p_info));
-            g_free (status);
-            g_free (datestr);
-            g_free (newdesc);
-            status = newstatus;
-        }
-        gtk_label_set_text (data->status_label, status);
-        g_free (status);
-    }
+    gtk_label_set_text (data->status_label, "");
 }
 
 
@@ -278,23 +212,13 @@ autoClearWindow (GtkWidget *parent, Account *account)
     // Set the name for this dialog so it can be easily manipulated with css
     gtk_widget_set_name (GTK_WIDGET(data->window), "gnc-id-auto-clear");
 
-    data->ok_button = GTK_WIDGET (gtk_builder_get_object (builder, "ok_button"));
-    gtk_widget_set_sensitive (data->ok_button, FALSE);
-
-    data->cancel_button = GTK_WIDGET (gtk_builder_get_object
-                                      (builder, "cancel_button"));
-
     data->show_cleared_splits_button =
         GTK_WIDGET (gtk_builder_get_object (builder, "show_cleared_splits_button"));
 
     /* Add amount edit box */
     data->end_value = GNC_AMOUNT_EDIT(gnc_amount_edit_new());
     g_signal_connect(GTK_WIDGET(data->end_value), "activate",
-                     G_CALLBACK(gnc_autoclear_end_value_activate_cb), data);
-    g_signal_connect(GTK_WIDGET(data->ok_button), "activate",
                      G_CALLBACK(gnc_autoclear_window_ok_cb), data);
-    g_signal_connect(GTK_WIDGET(data->cancel_button), "activate",
-                     G_CALLBACK(gnc_autoclear_window_cancel_cb), data);
 
     box   = GTK_BOX(gtk_builder_get_object (builder, "end_value_box"));
     gtk_box_pack_start(box, GTK_WIDGET(data->end_value), TRUE, TRUE, 0);
@@ -313,10 +237,7 @@ autoClearWindow (GtkWidget *parent, Account *account)
     data->status_label = GTK_LABEL(gtk_builder_get_object (builder, "status_label"));
 
     g_signal_connect (GTK_WIDGET(data->end_value), "changed",
-                      G_CALLBACK(end_value_changed_cb), data);
-
-    g_signal_connect (data->window, "delete-event",
-                      G_CALLBACK (gnc_autoclear_window_delete_cb), data);
+                      G_CALLBACK(clear_status_label_cb), data);
 
     if (parent != NULL)
         gtk_window_set_transient_for (GTK_WINDOW (data->window), GTK_WINDOW (parent));

commit e09a26ba3ae9658af50122143cd19787137d5b61
Merge: 26fa239f8 6394b6491
Author: John Ralls <jralls at ceridwen.us>
Date:   Sun Nov 8 14:04:29 2020 -0800

    Merge Christian Gruber's 'test_import_backend' into maint.

diff --cc gnucash/import-export/test/gtest-import-backend.cpp
index 345f46eb2,5adb2adf9..01f01ac7c
--- a/gnucash/import-export/test/gtest-import-backend.cpp
+++ b/gnucash/import-export/test/gtest-import-backend.cpp
@@@ -161,12 -164,10 +167,12 @@@ TEST_F(ImportBackendTest, CreateTransIn
      //qof_instance_get (QOF_INSTANCE (split), "online-id", &online_id, NULL);
  
      // Define first split
-     ON_CALL(*m_trans, getSplit(0))
+     ON_CALL(*m_trans, get_split(0))
          .WillByDefault(Return(m_split));
-     ON_CALL(*m_trans, getSplitList())
++    ON_CALL(*m_trans, get_split_list())
 +        .WillByDefault(Return(m_splitList));
      // define description of the transaction
-     ON_CALL(*m_trans, getDescription())
+     ON_CALL(*m_trans, get_description())
          .WillByDefault(Return("This is the description"));
  
      // function gnc_import_TransInfo_new() should try to find account using the description from the transaction
@@@ -231,12 -232,10 +237,12 @@@ TEST_F(ImportBackendBayesTest, CreateTr
      gnc_tm_free(tm_struct);
  
      // Define first split
-     ON_CALL(*m_trans, getSplit(0))
+     ON_CALL(*m_trans, get_split(0))
          .WillByDefault(Return(m_split));
-     ON_CALL(*m_trans, getSplitList())
++    ON_CALL(*m_trans, get_split_list())
 +        .WillByDefault(Return(m_splitList));
      // Transaction has no further splits
-     ON_CALL(*m_trans, getSplit(Gt(0)))
+     ON_CALL(*m_trans, get_split(Gt(0)))
          .WillByDefault(Return(nullptr));
      // Define description and memo of first split
      // This transaction is used for testing tokenization of its content.
diff --cc libgnucash/engine/mocks/gmock-Transaction.cpp
index ae3483cf1,3bd1e65df..40cfdec3a
--- a/libgnucash/engine/mocks/gmock-Transaction.cpp
+++ b/libgnucash/engine/mocks/gmock-Transaction.cpp
@@@ -42,17 -48,11 +48,18 @@@ xaccTransCommitEdit (Transaction *trans
  Split *
  xaccTransGetSplit (const Transaction *trans, int i)
  {
-     g_return_val_if_fail(GNC_IS_MOCK_TRANSACTION(trans), NULL);
-     return ((MockTransaction*)trans)->getSplit(i);
+     SCOPED_TRACE("");
+     auto mocktrans = gnc_mocktransaction(trans);
+     return mocktrans ? mocktrans->get_split(i) : nullptr;
  }
  
 +SplitList *
 +xaccTransGetSplitList (const Transaction *trans)
 +{
-     g_return_val_if_fail(GNC_IS_MOCK_TRANSACTION(trans), NULL);
-     return trans ? ((MockTransaction*)trans)->getSplitList() : NULL;
++    g_return_val_if_fail(GNC_IS_MOCKTRANSACTION(trans), NULL);
++    return trans ? ((MockTransaction*)trans)->get_split_list() : NULL;
 +}
 +
  Split *
  xaccTransFindSplitByAccount(const Transaction *trans, const Account *acc)
  {
diff --cc libgnucash/engine/mocks/gmock-Transaction.h
index 5cb26a250,125012100..885eebf68
--- a/libgnucash/engine/mocks/gmock-Transaction.h
+++ b/libgnucash/engine/mocks/gmock-Transaction.h
@@@ -49,20 -51,19 +51,20 @@@ public
          mock_g_object_unref(trans, size);
      }
  
-     MOCK_METHOD0(beginEdit, void());
-     MOCK_METHOD0(commitEdit, void());
-     MOCK_METHOD1(getSplit, Split *(int));
-     MOCK_METHOD0(getSplitList, SplitList *());
-     MOCK_METHOD1(findSplitByAccount, Split *(const Account*));
-     MOCK_METHOD0(getDate, time64());
-     MOCK_METHOD1(setDatePostedSecsNormalized, void(time64));
-     MOCK_METHOD0(getDescription, const char *());
-     MOCK_METHOD1(setDescription, void(const char*));
-     MOCK_METHOD0(getNotes, const char *());
-     MOCK_METHOD1(setNotes, void(const char*));
-     MOCK_METHOD0(getImbalanceValue, gnc_numeric());
-     MOCK_METHOD0(getNum, const char *());
-     MOCK_METHOD0(isOpen, gboolean());
+     MOCK_METHOD0(begin_edit, void());
+     MOCK_METHOD0(commit_edit, void());
+     MOCK_CONST_METHOD1(get_split, Split *(int));
++    MOCK_CONST_METHOD0(get_split_list, GList*());
+     MOCK_CONST_METHOD1(find_split_by_account, Split *(const Account*));
+     MOCK_CONST_METHOD0(get_date, time64());
+     MOCK_METHOD1(set_date_posted_secs_normalized, void(time64));
+     MOCK_CONST_METHOD0(get_description, const char *());
+     MOCK_METHOD1(set_description, void(const char*));
+     MOCK_CONST_METHOD0(get_notes, const char *());
+     MOCK_METHOD1(set_notes, void(const char*));
+     MOCK_CONST_METHOD0(get_imbalance_value, gnc_numeric());
+     MOCK_CONST_METHOD0(get_num, const char *());
+     MOCK_CONST_METHOD0(is_open, gboolean());
      MOCK_METHOD0(destroy, void());
  
  protected:

commit 26fa239f89aaebf6446de14f12fbe384a4d95968
Merge: bbc6887b0 69789b2b9
Author: John Ralls <jralls at ceridwen.us>
Date:   Sun Nov 8 13:44:41 2020 -0800

    Merge Christian Klein's 'auto-clear-tests' into maint.


commit bbc6887b0fc43b93c98b9520e78b753e85df44cb
Author: Robert Fewell <14uBobIT at gmail.com>
Date:   Sun Nov 8 12:42:07 2020 +0000

    Change source files dialog-dup-trans.* for space and tabs

diff --git a/gnucash/gnome-utils/dialog-dup-trans.c b/gnucash/gnome-utils/dialog-dup-trans.c
index f2542a8fb..329ecafb1 100644
--- a/gnucash/gnome-utils/dialog-dup-trans.c
+++ b/gnucash/gnome-utils/dialog-dup-trans.c
@@ -48,11 +48,11 @@ typedef struct
     GtkWidget * link_edit;
 
     GtkWidget *duplicate_title_label; // GtkLabel
-    GtkWidget *duplicate_table; // GtkTable
-    GtkWidget *date_label; // GtkLabel
-    GtkWidget *num_label; // GtkLabel
-    GtkWidget *tnum_label; // GtkLabel
-    GtkWidget *link_label; //GtkLabel
+    GtkWidget *duplicate_table;       // GtkTable
+    GtkWidget *date_label;            // GtkLabel
+    GtkWidget *num_label;             // GtkLabel
+    GtkWidget *tnum_label;            // GtkLabel
+    GtkWidget *link_label;            // GtkLabel
 } DupTransDialog;
 
 /* Parses the string value and returns true if it is a
@@ -66,10 +66,10 @@ parse_num (const char *string, long int *num)
     if (string == NULL)
         return FALSE;
 
-    if (!gnc_strisnum(string))
+    if (!gnc_strisnum (string))
         return FALSE;
 
-    number = strtol(string, NULL, 10);
+    number = strtol (string, NULL, 10);
 
     if ((number == LONG_MIN) || (number == LONG_MAX))
         return FALSE;
@@ -147,7 +147,7 @@ gnc_dup_trans_dialog_create (GtkWidget * parent, DupTransDialog *dt_dialog,
     GtkBuilder  *builder;
     const gchar *tt = _("Use +- keys to increment/decrement number");
 
-    builder = gtk_builder_new();
+    builder = gtk_builder_new ();
     gnc_builder_add_from_file (builder, "gnc-plugin-page-register.glade", "num_adjustment");
     gnc_builder_add_from_file (builder, "gnc-plugin-page-register.glade", "tnum_adjustment");
     gnc_builder_add_from_file (builder, "gnc-plugin-page-register.glade", "duplicate_transaction_dialog");
@@ -161,7 +161,7 @@ gnc_dup_trans_dialog_create (GtkWidget * parent, DupTransDialog *dt_dialog,
 
     /* parent */
     if (parent != NULL)
-        gtk_window_set_transient_for (GTK_WINDOW (dialog), GTK_WINDOW (parent));
+        gtk_window_set_transient_for (GTK_WINDOW(dialog), GTK_WINDOW(parent));
 
     /* date widget */
     dt_dialog->date_label = GTK_WIDGET(gtk_builder_get_object (builder, "date_label"));
@@ -171,13 +171,13 @@ gnc_dup_trans_dialog_create (GtkWidget * parent, DupTransDialog *dt_dialog,
         GtkWidget *hbox;
 
         date_edit = gnc_date_edit_new (date, FALSE, FALSE);
-        gnc_date_activates_default(GNC_DATE_EDIT(date_edit), TRUE);
+        gnc_date_activates_default (GNC_DATE_EDIT(date_edit), TRUE);
         hbox = GTK_WIDGET(gtk_builder_get_object (builder, "date_hbox"));
         gtk_widget_show (date_edit);
 
         gnc_date_make_mnemonic_target (GNC_DATE_EDIT(date_edit), dt_dialog->date_label);
 
-        gtk_box_pack_end (GTK_BOX (hbox), date_edit, TRUE, TRUE, 0);
+        gtk_box_pack_end (GTK_BOX(hbox), date_edit, TRUE, TRUE, 0);
         dt_dialog->date_edit = date_edit;
     }
     else
@@ -227,14 +227,14 @@ gnc_dup_trans_dialog_create (GtkWidget * parent, DupTransDialog *dt_dialog,
 
     gtk_builder_connect_signals_full (builder, gnc_builder_connect_full_func, dt_dialog);
 
-    g_object_unref(G_OBJECT(builder));
+    g_object_unref (G_OBJECT(builder));
 }
 
 static gboolean
 gnc_dup_trans_dialog_internal (GtkWidget * parent,
                                const char* window_title, const char* title,
-                               gboolean show_date, time64 *date_p,
-                               GDate *gdate_p, const char *num, char **out_num,
+                               gboolean show_date, time64 *date_p, GDate *gdate_p,
+                               const char *num, char **out_num,
                                const char *tnum, char **out_tnum,
                                const char *tlink, char **out_tlink)
 {
@@ -251,9 +251,9 @@ gnc_dup_trans_dialog_internal (GtkWidget * parent,
     if (!show_date)
     {
         // The "date" field isn't being asked for, so we make the widgets invisible
-        gtk_widget_set_visible(dt_dialog->date_label, FALSE);
+        gtk_widget_set_visible (dt_dialog->date_label, FALSE);
         if (dt_dialog->date_edit)
-            gtk_widget_set_visible(dt_dialog->date_edit, FALSE);
+            gtk_widget_set_visible (dt_dialog->date_edit, FALSE);
         // If no "date" field, there must be a "num" field, so give it focus
         if (out_num)
             gtk_widget_grab_focus (dt_dialog->num_edit);
@@ -262,70 +262,70 @@ gnc_dup_trans_dialog_internal (GtkWidget * parent,
     {
         GNCDateEdit *gde;
 
-        gde = GNC_DATE_EDIT (dt_dialog->date_edit);
+        gde = GNC_DATE_EDIT(dt_dialog->date_edit);
         entry = gde->date_entry;
         gtk_widget_grab_focus (entry);
     }
 
     if (window_title)
-        gtk_window_set_title (GTK_WINDOW (dt_dialog->dialog), window_title);
+        gtk_window_set_title (GTK_WINDOW(dt_dialog->dialog), window_title);
 
     if (title)
     {
-        gchar *full_text = g_strdup_printf("<b>%s</b>", title);
-        gtk_label_set_markup(GTK_LABEL (dt_dialog->duplicate_title_label), full_text);
-        g_free(full_text);
+        gchar *full_text = g_strdup_printf ("<b>%s</b>", title);
+        gtk_label_set_markup (GTK_LABEL(dt_dialog->duplicate_title_label), full_text);
+        g_free (full_text);
     }
 
     if (!out_num)
     {
         // The "num" field isn't being asked for, so we make the widgets invisible
-        gtk_widget_set_visible(dt_dialog->num_label, FALSE);
-        gtk_widget_set_visible(dt_dialog->num_edit, FALSE);
+        gtk_widget_set_visible (dt_dialog->num_label, FALSE);
+        gtk_widget_set_visible (dt_dialog->num_edit, FALSE);
     }
 
     if (!tnum)
     {
         // The "tnum" field isn't being asked for, so we make the widgets invisible
-        gtk_widget_set_visible(dt_dialog->tnum_label, FALSE);
-        gtk_widget_set_visible(dt_dialog->tnum_edit, FALSE);
+        gtk_widget_set_visible (dt_dialog->tnum_label, FALSE);
+        gtk_widget_set_visible (dt_dialog->tnum_edit, FALSE);
     }
 
     if (!show_date && !tnum)
     {
         // The "date" and the "tnum" fields aren't being asked for, this is a split copy
-        gtk_label_set_markup(GTK_LABEL (dt_dialog->num_label), _("Action/Number"));
+        gtk_label_set_markup (GTK_LABEL(dt_dialog->num_label), _("Action/Number"));
     }
 
     if (tnum)
     {
-        gtk_entry_set_activates_default(GTK_ENTRY(dt_dialog->num_edit), FALSE);
-        gtk_entry_set_activates_default(GTK_ENTRY(dt_dialog->tnum_edit), TRUE);
+        gtk_entry_set_activates_default (GTK_ENTRY(dt_dialog->num_edit), FALSE);
+        gtk_entry_set_activates_default (GTK_ENTRY(dt_dialog->tnum_edit), TRUE);
     }
 
     if (tlink)
     {
-        gtk_widget_set_visible(dt_dialog->link_label, TRUE);
-        gtk_widget_set_visible(dt_dialog->link_edit, TRUE);
+        gtk_widget_set_visible (dt_dialog->link_label, TRUE);
+        gtk_widget_set_visible (dt_dialog->link_edit, TRUE);
     }
     else
     {
-        gtk_widget_set_visible(dt_dialog->link_label, FALSE);
-        gtk_widget_set_visible(dt_dialog->link_edit, FALSE);
+        gtk_widget_set_visible (dt_dialog->link_label, FALSE);
+        gtk_widget_set_visible (dt_dialog->link_edit, FALSE);
     }
 
-    result = gtk_dialog_run (GTK_DIALOG (dt_dialog->dialog));
+    result = gtk_dialog_run (GTK_DIALOG(dt_dialog->dialog));
 
     if (result == GTK_RESPONSE_OK)
     {
         if (date_p)
-            *date_p = gnc_date_edit_get_date (GNC_DATE_EDIT (dt_dialog->date_edit));
+            *date_p = gnc_date_edit_get_date (GNC_DATE_EDIT(dt_dialog->date_edit));
         if (gdate_p)
-            gnc_date_edit_get_gdate (GNC_DATE_EDIT (dt_dialog->date_edit), gdate_p);
+            gnc_date_edit_get_gdate (GNC_DATE_EDIT(dt_dialog->date_edit), gdate_p);
         if (out_num)
-            *out_num = g_strdup (gtk_entry_get_text (GTK_ENTRY (dt_dialog->num_edit)));
+            *out_num = g_strdup (gtk_entry_get_text (GTK_ENTRY(dt_dialog->num_edit)));
         if (tnum)
-            *out_tnum = g_strdup (gtk_entry_get_text (GTK_ENTRY (dt_dialog->tnum_edit)));
+            *out_tnum = g_strdup (gtk_entry_get_text (GTK_ENTRY(dt_dialog->tnum_edit)));
         if (tlink)
         {
             if (gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON(dt_dialog->link_edit)))
@@ -336,20 +336,23 @@ gnc_dup_trans_dialog_internal (GtkWidget * parent,
     else
         ok = FALSE;
 
-    gtk_widget_destroy(GTK_WIDGET(dt_dialog->dialog));
+    gtk_widget_destroy (GTK_WIDGET(dt_dialog->dialog));
     g_free (dt_dialog);
 
     return ok;
 }
 
 gboolean
-gnc_dup_trans_dialog (GtkWidget * parent, const char* title, gboolean show_date,
-                      time64 *date_p, const char *num, char **out_num,
+gnc_dup_trans_dialog (GtkWidget * parent, const char* title,
+                      gboolean show_date, time64 *date_p,
+                      const char *num, char **out_num,
                       const char *tnum, char **out_tnum,
                       const char *tlink, char **out_tlink)
 {
-    return gnc_dup_trans_dialog_internal(parent, NULL, title, show_date, date_p, NULL,
-                                         num, out_num, tnum, out_tnum, tlink, out_tlink);
+    return gnc_dup_trans_dialog_internal (parent, NULL, title,
+                                          show_date, date_p, NULL,
+                                          num, out_num, tnum, out_tnum,
+                                          tlink, out_tlink);
 }
 
 gboolean
@@ -357,29 +360,35 @@ gnc_dup_trans_dialog_gdate (GtkWidget * parent, GDate *gdate_p,
                             const char *num, char **out_num)
 {
     time64 tmp_time;
-    g_assert(gdate_p);
+    g_assert (gdate_p);
 
     tmp_time = gdate_to_time64 (*gdate_p);
-    return gnc_dup_trans_dialog_internal(parent, NULL, NULL, TRUE, &tmp_time, gdate_p,
-                                         num, out_num, NULL, NULL, NULL, NULL);
+    return gnc_dup_trans_dialog_internal (parent, NULL, NULL, TRUE,
+                                          &tmp_time, gdate_p,
+                                          num, out_num, NULL, NULL,
+                                          NULL, NULL);
 }
 
 gboolean
 gnc_dup_time64_dialog (GtkWidget * parent, const char *window_title,
                        const char* title, time64 *date)
 {
-    return gnc_dup_trans_dialog_internal(parent, window_title, title, TRUE, date, NULL,
-                                         NULL, NULL, NULL, NULL, NULL, NULL);
+    return gnc_dup_trans_dialog_internal (parent, window_title, title, TRUE,
+                                          date, NULL,
+                                          NULL, NULL, NULL, NULL,
+                                          NULL, NULL);
 }
 
 gboolean
 gnc_dup_date_dialog (GtkWidget * parent, const char* title, GDate *gdate_p)
 {
     time64 tmp_time;
-    g_assert(gdate_p);
+    g_assert (gdate_p);
 
-    tmp_time = gdate_to_time64(*gdate_p);
-    return gnc_dup_trans_dialog_internal(parent, NULL, title, TRUE, &tmp_time, gdate_p,
-                                         NULL, NULL, NULL, NULL, NULL, NULL);
+    tmp_time = gdate_to_time64 (*gdate_p);
+    return gnc_dup_trans_dialog_internal (parent, NULL, title, TRUE,
+                                          &tmp_time, gdate_p,
+                                          NULL, NULL, NULL, NULL,
+                                          NULL, NULL);
 }
 
diff --git a/gnucash/gnome-utils/dialog-dup-trans.h b/gnucash/gnome-utils/dialog-dup-trans.h
index 7c862c0c0..055abe0bd 100644
--- a/gnucash/gnome-utils/dialog-dup-trans.h
+++ b/gnucash/gnome-utils/dialog-dup-trans.h
@@ -50,8 +50,9 @@
  * Return: TRUE if user closes dialog with 'OK'                         *
 \***********************************************************************/
 gboolean
-gnc_dup_trans_dialog (GtkWidget * parent, const char* title, gboolean show_date,
-                      time64 *date_p, const char *num, char **out_num,
+gnc_dup_trans_dialog (GtkWidget * parent, const char* title,
+                      gboolean show_date, time64 *date_p,
+                      const char *num, char **out_num,
                       const char *tnum, char **out_tnum,
                       const char *tdoclink, char **out_tdoclink);
 

commit 4c2df4c2addde5faa72b625d3b58c83b2e6fee61
Author: Robert Fewell <14uBobIT at gmail.com>
Date:   Sun Nov 8 11:40:35 2020 +0000

    Bug 645379 - Problem with Number field when duplicating a transaction
    
    When you duplicate a transaction, the dialog presented has a
    GtkSpinbutton for the number field and non-numeric values are being
    discarded. The register and transfer dialog have a GtkEntry for this
    field so change this dialog to using them also.

diff --git a/gnucash/gnome-utils/dialog-dup-trans.c b/gnucash/gnome-utils/dialog-dup-trans.c
index 87d040923..f2542a8fb 100644
--- a/gnucash/gnome-utils/dialog-dup-trans.c
+++ b/gnucash/gnome-utils/dialog-dup-trans.c
@@ -81,17 +81,61 @@ parse_num (const char *string, long int *num)
 }
 
 static gboolean
-gnc_dup_trans_output_cb(GtkSpinButton *spinbutton,
-                        gpointer user_data)
+gnc_dup_inc_dec (GtkWidget *widget, const gchar *text, gint inc_dec)
 {
-    gboolean is_number;
     long int num;
-    gchar *txt = gtk_editable_get_chars(GTK_EDITABLE(spinbutton), 0, -1);
-    is_number = parse_num(txt, &num);
-    g_free(txt);
-    if (!is_number)
-        gtk_entry_set_text(GTK_ENTRY(spinbutton), "");
-    return !is_number;
+
+    if (parse_num (text, &num))
+    {
+        gchar *format;
+        gchar *out;
+        num = num + inc_dec;
+
+        if (num == -1)
+            num = 0;
+
+        if (g_str_has_prefix (text, "0"))
+            format = g_strdup_printf ("%s%ld%s", "%0", strlen (text), "d");
+        else
+            format = g_strdup_printf ("%s", "%ld");
+
+        out = g_strdup_printf (format, num);
+
+        gtk_entry_set_text (GTK_ENTRY(widget), out);
+        g_free (format);
+        g_free (out);
+        return TRUE;
+    }
+    return FALSE;
+}
+
+static gboolean
+gnc_dup_key_press_event_cb (GtkWidget *widget, GdkEventKey *event, gpointer user_data)
+{
+    const gchar *text = gtk_entry_get_text (GTK_ENTRY(widget));
+
+    if (gnc_strisnum (text))
+    {
+        GdkModifierType modifiers = gtk_accelerator_get_default_mod_mask ();
+        gint increment;
+        long int num;
+
+        if ((event->state & modifiers) == GDK_CONTROL_MASK ||
+            (event->state & modifiers) == GDK_MOD1_MASK)
+            return FALSE;
+
+        if (event->keyval == GDK_KEY_plus || event->keyval == GDK_KEY_KP_Add)
+            increment = 1;
+        else if (event->keyval == GDK_KEY_minus || event->keyval == GDK_KEY_KP_Subtract)
+            increment = -1;
+        else
+            return FALSE;
+
+        return gnc_dup_inc_dec (widget, text, increment);
+
+    }
+    else
+        return FALSE;
 }
 
 static void
@@ -101,6 +145,7 @@ gnc_dup_trans_dialog_create (GtkWidget * parent, DupTransDialog *dt_dialog,
 {
     GtkWidget *dialog;
     GtkBuilder  *builder;
+    const gchar *tt = _("Use +- keys to increment/decrement number");
 
     builder = gtk_builder_new();
     gnc_builder_add_from_file (builder, "gnc-plugin-page-register.glade", "num_adjustment");
@@ -147,31 +192,33 @@ gnc_dup_trans_dialog_create (GtkWidget * parent, DupTransDialog *dt_dialog,
     dt_dialog->num_label = GTK_WIDGET(gtk_builder_get_object (builder, "num_label"));
     dt_dialog->tnum_label = GTK_WIDGET(gtk_builder_get_object (builder, "tnum_label"));
 
-    {
-        GtkWidget *num_spin, *tnum_spin;
-        long int num, tnum;
-
-        num_spin = GTK_WIDGET(gtk_builder_get_object (builder, "num_spin"));
-        tnum_spin = GTK_WIDGET(gtk_builder_get_object (builder, "tnum_spin"));
-        dt_dialog->num_edit = num_spin;
-        dt_dialog->tnum_edit = tnum_spin;
-
-        gtk_entry_set_activates_default(GTK_ENTRY(num_spin), TRUE);
-        g_signal_connect(num_spin, "output",
-                         G_CALLBACK(gnc_dup_trans_output_cb), dt_dialog);
-        g_signal_connect(tnum_spin, "output",
-                         G_CALLBACK(gnc_dup_trans_output_cb), dt_dialog);
-
-        if (num_str && parse_num (num_str, &num))
-            gtk_spin_button_set_value (GTK_SPIN_BUTTON (num_spin), num + 1);
-        else
-            gtk_entry_set_text (GTK_ENTRY (num_spin), "");
+    dt_dialog->num_edit = GTK_WIDGET(gtk_builder_get_object (builder, "num_entry"));
+    dt_dialog->tnum_edit = GTK_WIDGET(gtk_builder_get_object (builder, "tnum_entry"));
 
-        if (tnum_str && parse_num (tnum_str, &tnum))
-            gtk_spin_button_set_value (GTK_SPIN_BUTTON (tnum_spin), tnum + 1);
-        else
-            gtk_entry_set_text (GTK_ENTRY (tnum_spin), "");
+    if (num_str)
+        gtk_entry_set_text (GTK_ENTRY(dt_dialog->num_edit), num_str);
+    if (tnum_str)
+        gtk_entry_set_text (GTK_ENTRY(dt_dialog->tnum_edit), tnum_str);
+
+    g_signal_connect (dt_dialog->num_edit, "key-press-event",
+                      G_CALLBACK(gnc_dup_key_press_event_cb),
+                      dt_dialog);
+
+    g_signal_connect (dt_dialog->tnum_edit, "key-press-event",
+                      G_CALLBACK(gnc_dup_key_press_event_cb),
+                      dt_dialog);
+
+    if (gnc_strisnum (num_str))
+    {
+        gtk_widget_set_tooltip_text (GTK_WIDGET(dt_dialog->num_edit), tt);
+        gnc_dup_inc_dec (GTK_WIDGET(dt_dialog->num_edit), num_str, 1);
     }
+    if (gnc_strisnum (tnum_str))
+    {
+        gtk_widget_set_tooltip_text (GTK_WIDGET(dt_dialog->tnum_edit), tt);
+        gnc_dup_inc_dec (GTK_WIDGET(dt_dialog->tnum_edit), tnum_str, 1);
+    }
+
     /* Transaction Linked Document */
     {
         dt_dialog->link_label = GTK_WIDGET(gtk_builder_get_object (builder, "link_label"));
diff --git a/gnucash/gtkbuilder/gnc-plugin-page-register.glade b/gnucash/gtkbuilder/gnc-plugin-page-register.glade
index 84534ce5e..5e835ffdc 100644
--- a/gnucash/gtkbuilder/gnc-plugin-page-register.glade
+++ b/gnucash/gtkbuilder/gnc-plugin-page-register.glade
@@ -559,10 +559,209 @@ If 0, all previous days included</property>
       <placeholder/>
     </child>
   </object>
-  <object class="GtkAdjustment" id="num_adjustment">
-    <property name="upper">1000000000</property>
-    <property name="step_increment">1</property>
-    <property name="page_increment">10</property>
+  <object class="GtkDialog" id="duplicate_transaction_dialog">
+    <property name="can_focus">False</property>
+    <property name="border_width">6</property>
+    <property name="title" translatable="yes" comments="Duplicate Transaction Dialog">Duplicate Transaction</property>
+    <property name="resizable">False</property>
+    <property name="modal">True</property>
+    <property name="type_hint">dialog</property>
+    <child internal-child="vbox">
+      <object class="GtkBox" id="dialog-vbox15">
+        <property name="visible">True</property>
+        <property name="can_focus">False</property>
+        <property name="orientation">vertical</property>
+        <property name="spacing">6</property>
+        <child internal-child="action_area">
+          <object class="GtkButtonBox" id="dialog-action_area15">
+            <property name="visible">True</property>
+            <property name="can_focus">False</property>
+            <property name="layout_style">end</property>
+            <child>
+              <object class="GtkButton" id="button76">
+                <property name="label" translatable="yes">_Cancel</property>
+                <property name="visible">True</property>
+                <property name="can_focus">True</property>
+                <property name="can_default">True</property>
+                <property name="receives_default">False</property>
+                <property name="use_underline">True</property>
+              </object>
+              <packing>
+                <property name="expand">False</property>
+                <property name="fill">False</property>
+                <property name="position">0</property>
+              </packing>
+            </child>
+            <child>
+              <object class="GtkButton" id="button77">
+                <property name="label" translatable="yes">_OK</property>
+                <property name="visible">True</property>
+                <property name="can_focus">True</property>
+                <property name="can_default">True</property>
+                <property name="has_default">True</property>
+                <property name="receives_default">False</property>
+                <property name="use_underline">True</property>
+              </object>
+              <packing>
+                <property name="expand">False</property>
+                <property name="fill">False</property>
+                <property name="position">1</property>
+              </packing>
+            </child>
+          </object>
+          <packing>
+            <property name="expand">False</property>
+            <property name="fill">True</property>
+            <property name="pack_type">end</property>
+            <property name="position">0</property>
+          </packing>
+        </child>
+        <child>
+          <object class="GtkLabel" id="duplicate_title_label">
+            <property name="visible">True</property>
+            <property name="can_focus">False</property>
+            <property name="halign">start</property>
+            <property name="label" translatable="yes"><b>New Transaction Information</b></property>
+            <property name="use_markup">True</property>
+          </object>
+          <packing>
+            <property name="expand">False</property>
+            <property name="fill">False</property>
+            <property name="position">1</property>
+          </packing>
+        </child>
+        <child>
+          <object class="GtkGrid" id="duplicate_table">
+            <property name="visible">True</property>
+            <property name="can_focus">False</property>
+            <property name="margin_start">6</property>
+            <property name="margin_end">6</property>
+            <property name="border_width">6</property>
+            <property name="row_spacing">3</property>
+            <property name="column_spacing">6</property>
+            <child>
+              <object class="GtkLabel" id="date_label">
+                <property name="visible">True</property>
+                <property name="can_focus">False</property>
+                <property name="halign">end</property>
+                <property name="label" translatable="yes">_Date</property>
+                <property name="use_underline">True</property>
+                <property name="justify">center</property>
+              </object>
+              <packing>
+                <property name="left_attach">0</property>
+                <property name="top_attach">0</property>
+              </packing>
+            </child>
+            <child>
+              <object class="GtkLabel" id="num_label">
+                <property name="visible">True</property>
+                <property name="can_focus">False</property>
+                <property name="halign">end</property>
+                <property name="label" translatable="yes">_Number</property>
+                <property name="use_underline">True</property>
+                <property name="justify">center</property>
+                <property name="mnemonic_widget">num_entry</property>
+              </object>
+              <packing>
+                <property name="left_attach">0</property>
+                <property name="top_attach">1</property>
+              </packing>
+            </child>
+            <child>
+              <object class="GtkBox" id="date_hbox">
+                <property name="visible">True</property>
+                <property name="can_focus">False</property>
+                <child>
+                  <placeholder/>
+                </child>
+              </object>
+              <packing>
+                <property name="left_attach">1</property>
+                <property name="top_attach">0</property>
+              </packing>
+            </child>
+            <child>
+              <object class="GtkLabel" id="tnum_label">
+                <property name="visible">True</property>
+                <property name="can_focus">False</property>
+                <property name="halign">end</property>
+                <property name="label" translatable="yes">_Transaction Number</property>
+                <property name="use_underline">True</property>
+                <property name="justify">center</property>
+                <property name="mnemonic_widget">tnum_entry</property>
+              </object>
+              <packing>
+                <property name="left_attach">0</property>
+                <property name="top_attach">2</property>
+              </packing>
+            </child>
+            <child>
+              <object class="GtkCheckButton" id="link_check_button">
+                <property name="visible">True</property>
+                <property name="can_focus">True</property>
+                <property name="receives_default">False</property>
+                <property name="halign">start</property>
+                <property name="image_position">top</property>
+                <property name="active">True</property>
+                <property name="draw_indicator">True</property>
+              </object>
+              <packing>
+                <property name="left_attach">1</property>
+                <property name="top_attach">3</property>
+              </packing>
+            </child>
+            <child>
+              <object class="GtkLabel" id="link_label">
+                <property name="visible">True</property>
+                <property name="can_focus">False</property>
+                <property name="halign">end</property>
+                <property name="label" translatable="yes">Keep Linked Document Entry</property>
+              </object>
+              <packing>
+                <property name="left_attach">0</property>
+                <property name="top_attach">3</property>
+              </packing>
+            </child>
+            <child>
+              <object class="GtkEntry" id="num_entry">
+                <property name="visible">True</property>
+                <property name="can_focus">True</property>
+              </object>
+              <packing>
+                <property name="left_attach">1</property>
+                <property name="top_attach">1</property>
+              </packing>
+            </child>
+            <child>
+              <object class="GtkEntry" id="tnum_entry">
+                <property name="visible">True</property>
+                <property name="can_focus">True</property>
+              </object>
+              <packing>
+                <property name="left_attach">1</property>
+                <property name="top_attach">2</property>
+              </packing>
+            </child>
+          </object>
+          <packing>
+            <property name="expand">False</property>
+            <property name="fill">True</property>
+            <property name="position">2</property>
+          </packing>
+        </child>
+      </object>
+    </child>
+    <action-widgets>
+      <action-widget response="-6">button76</action-widget>
+      <action-widget response="-5">button77</action-widget>
+    </action-widgets>
+    <child type="titlebar">
+      <placeholder/>
+    </child>
+  </object>
+  <object class="GtkEntryBuffer" id="entrybuffer1">
+    <property name="text" translatable="yes">0</property>
   </object>
   <object class="GtkDialog" id="sort_by_dialog">
     <property name="can_focus">False</property>
@@ -906,221 +1105,6 @@ If 0, all previous days included</property>
       <placeholder/>
     </child>
   </object>
-  <object class="GtkAdjustment" id="tnum_adjustment">
-    <property name="upper">1000000000</property>
-    <property name="step_increment">1</property>
-    <property name="page_increment">10</property>
-  </object>
-  <object class="GtkDialog" id="duplicate_transaction_dialog">
-    <property name="can_focus">False</property>
-    <property name="border_width">6</property>
-    <property name="title" translatable="yes" comments="Duplicate Transaction Dialog">Duplicate Transaction</property>
-    <property name="resizable">False</property>
-    <property name="modal">True</property>
-    <property name="type_hint">dialog</property>
-    <child internal-child="vbox">
-      <object class="GtkBox" id="dialog-vbox15">
-        <property name="visible">True</property>
-        <property name="can_focus">False</property>
-        <property name="orientation">vertical</property>
-        <property name="spacing">6</property>
-        <child internal-child="action_area">
-          <object class="GtkButtonBox" id="dialog-action_area15">
-            <property name="visible">True</property>
-            <property name="can_focus">False</property>
-            <property name="layout_style">end</property>
-            <child>
-              <object class="GtkButton" id="button76">
-                <property name="label" translatable="yes">_Cancel</property>
-                <property name="visible">True</property>
-                <property name="can_focus">True</property>
-                <property name="can_default">True</property>
-                <property name="receives_default">False</property>
-                <property name="use_underline">True</property>
-              </object>
-              <packing>
-                <property name="expand">False</property>
-                <property name="fill">False</property>
-                <property name="position">0</property>
-              </packing>
-            </child>
-            <child>
-              <object class="GtkButton" id="button77">
-                <property name="label" translatable="yes">_OK</property>
-                <property name="visible">True</property>
-                <property name="can_focus">True</property>
-                <property name="can_default">True</property>
-                <property name="has_default">True</property>
-                <property name="receives_default">False</property>
-                <property name="use_underline">True</property>
-              </object>
-              <packing>
-                <property name="expand">False</property>
-                <property name="fill">False</property>
-                <property name="position">1</property>
-              </packing>
-            </child>
-          </object>
-          <packing>
-            <property name="expand">False</property>
-            <property name="fill">True</property>
-            <property name="pack_type">end</property>
-            <property name="position">0</property>
-          </packing>
-        </child>
-        <child>
-          <object class="GtkGrid" id="duplicate_table">
-            <property name="visible">True</property>
-            <property name="can_focus">False</property>
-            <property name="margin_start">6</property>
-            <property name="margin_end">6</property>
-            <property name="border_width">6</property>
-            <property name="row_spacing">3</property>
-            <property name="column_spacing">6</property>
-            <child>
-              <object class="GtkLabel" id="date_label">
-                <property name="visible">True</property>
-                <property name="can_focus">False</property>
-                <property name="halign">end</property>
-                <property name="label" translatable="yes">_Date</property>
-                <property name="use_underline">True</property>
-                <property name="justify">center</property>
-              </object>
-              <packing>
-                <property name="left_attach">0</property>
-                <property name="top_attach">0</property>
-              </packing>
-            </child>
-            <child>
-              <object class="GtkLabel" id="num_label">
-                <property name="visible">True</property>
-                <property name="can_focus">False</property>
-                <property name="halign">end</property>
-                <property name="label" translatable="yes">_Number</property>
-                <property name="use_underline">True</property>
-                <property name="justify">center</property>
-                <property name="mnemonic_widget">num_spin</property>
-              </object>
-              <packing>
-                <property name="left_attach">0</property>
-                <property name="top_attach">1</property>
-              </packing>
-            </child>
-            <child>
-              <object class="GtkSpinButton" id="num_spin">
-                <property name="visible">True</property>
-                <property name="can_focus">True</property>
-                <property name="has_focus">True</property>
-                <property name="primary_icon_activatable">False</property>
-                <property name="secondary_icon_activatable">False</property>
-                <property name="adjustment">num_adjustment</property>
-                <property name="climb_rate">1</property>
-              </object>
-              <packing>
-                <property name="left_attach">1</property>
-                <property name="top_attach">1</property>
-              </packing>
-            </child>
-            <child>
-              <object class="GtkBox" id="date_hbox">
-                <property name="visible">True</property>
-                <property name="can_focus">False</property>
-                <child>
-                  <placeholder/>
-                </child>
-              </object>
-              <packing>
-                <property name="left_attach">1</property>
-                <property name="top_attach">0</property>
-              </packing>
-            </child>
-            <child>
-              <object class="GtkLabel" id="tnum_label">
-                <property name="visible">True</property>
-                <property name="can_focus">False</property>
-                <property name="halign">end</property>
-                <property name="label" translatable="yes">_Transaction Number</property>
-                <property name="use_underline">True</property>
-                <property name="justify">center</property>
-                <property name="mnemonic_widget">tnum_spin</property>
-              </object>
-              <packing>
-                <property name="left_attach">0</property>
-                <property name="top_attach">2</property>
-              </packing>
-            </child>
-            <child>
-              <object class="GtkSpinButton" id="tnum_spin">
-                <property name="visible">True</property>
-                <property name="can_focus">True</property>
-                <property name="primary_icon_activatable">False</property>
-                <property name="secondary_icon_activatable">False</property>
-                <property name="adjustment">tnum_adjustment</property>
-                <property name="climb_rate">1</property>
-              </object>
-              <packing>
-                <property name="left_attach">1</property>
-                <property name="top_attach">2</property>
-              </packing>
-            </child>
-            <child>
-              <object class="GtkCheckButton" id="link_check_button">
-                <property name="visible">True</property>
-                <property name="can_focus">True</property>
-                <property name="receives_default">False</property>
-                <property name="halign">start</property>
-                <property name="image_position">top</property>
-                <property name="active">True</property>
-                <property name="draw_indicator">True</property>
-              </object>
-              <packing>
-                <property name="left_attach">1</property>
-                <property name="top_attach">3</property>
-              </packing>
-            </child>
-            <child>
-              <object class="GtkLabel" id="link_label">
-                <property name="visible">True</property>
-                <property name="can_focus">False</property>
-                <property name="halign">end</property>
-                <property name="label" translatable="yes">Keep Linked Document Entry</property>
-              </object>
-              <packing>
-                <property name="left_attach">0</property>
-                <property name="top_attach">3</property>
-              </packing>
-            </child>
-          </object>
-          <packing>
-            <property name="expand">False</property>
-            <property name="fill">True</property>
-            <property name="position">2</property>
-          </packing>
-        </child>
-        <child>
-          <object class="GtkLabel" id="duplicate_title_label">
-            <property name="visible">True</property>
-            <property name="can_focus">False</property>
-            <property name="halign">start</property>
-            <property name="label" translatable="yes"><b>New Transaction Information</b></property>
-            <property name="use_markup">True</property>
-          </object>
-          <packing>
-            <property name="expand">False</property>
-            <property name="fill">False</property>
-            <property name="position">2</property>
-          </packing>
-        </child>
-      </object>
-    </child>
-    <action-widgets>
-      <action-widget response="-6">button76</action-widget>
-      <action-widget response="-5">button77</action-widget>
-    </action-widgets>
-    <child type="titlebar">
-      <placeholder/>
-    </child>
-  </object>
   <object class="GtkDialog" id="void_transaction_dialog">
     <property name="can_focus">False</property>
     <property name="border_width">6</property>
diff --git a/gnucash/gtkbuilder/gnc-plugin-page-register2.glade b/gnucash/gtkbuilder/gnc-plugin-page-register2.glade
index be1eee226..c0340f8b2 100644
--- a/gnucash/gtkbuilder/gnc-plugin-page-register2.glade
+++ b/gnucash/gtkbuilder/gnc-plugin-page-register2.glade
@@ -64,6 +64,21 @@
             <property name="position">0</property>
           </packing>
         </child>
+        <child>
+          <object class="GtkLabel" id="duplicate_title_label">
+            <property name="visible">True</property>
+            <property name="can_focus">False</property>
+            <property name="halign">start</property>
+            <property name="margin_start">6</property>
+            <property name="label" translatable="yes"><b>New Transaction Information</b></property>
+            <property name="use_markup">True</property>
+          </object>
+          <packing>
+            <property name="expand">False</property>
+            <property name="fill">False</property>
+            <property name="position">1</property>
+          </packing>
+        </child>
         <child>
           <object class="GtkGrid" id="duplicate_table">
             <property name="visible">True</property>
@@ -93,7 +108,7 @@
                 <property name="label" translatable="yes">_Number</property>
                 <property name="use_underline">True</property>
                 <property name="justify">center</property>
-                <property name="mnemonic_widget">num_spin</property>
+                <property name="mnemonic_widget">num_entry</property>
               </object>
               <packing>
                 <property name="left_attach">0</property>
@@ -101,14 +116,22 @@
               </packing>
             </child>
             <child>
-              <object class="GtkSpinButton" id="num_spin">
+              <object class="GtkBox" id="date_hbox">
+                <property name="visible">True</property>
+                <property name="can_focus">False</property>
+                <child>
+                  <placeholder/>
+                </child>
+              </object>
+              <packing>
+                <property name="left_attach">1</property>
+                <property name="top_attach">0</property>
+              </packing>
+            </child>
+            <child>
+              <object class="GtkEntry" id="num_entry">
                 <property name="visible">True</property>
                 <property name="can_focus">True</property>
-                <property name="has_focus">True</property>
-                <property name="primary_icon_activatable">False</property>
-                <property name="secondary_icon_activatable">False</property>
-                <property name="adjustment">adjustment1</property>
-                <property name="climb_rate">1</property>
               </object>
               <packing>
                 <property name="left_attach">1</property>
@@ -116,16 +139,55 @@
               </packing>
             </child>
             <child>
-              <object class="GtkBox" id="date_hbox">
+              <object class="GtkLabel" id="tnum_label">
                 <property name="visible">True</property>
                 <property name="can_focus">False</property>
-                <child>
-                  <placeholder/>
-                </child>
+                <property name="halign">end</property>
+                <property name="label" translatable="yes">_Transaction Number</property>
+                <property name="use_underline">True</property>
+                <property name="justify">center</property>
+                <property name="mnemonic_widget">tnum_entry</property>
+              </object>
+              <packing>
+                <property name="left_attach">0</property>
+                <property name="top_attach">2</property>
+              </packing>
+            </child>
+            <child>
+              <object class="GtkLabel" id="link_label">
+                <property name="visible">True</property>
+                <property name="can_focus">False</property>
+                <property name="halign">end</property>
+                <property name="label" translatable="yes">Keep Linked Document Entry</property>
+              </object>
+              <packing>
+                <property name="left_attach">0</property>
+                <property name="top_attach">3</property>
+              </packing>
+            </child>
+            <child>
+              <object class="GtkEntry" id="tnum_entry">
+                <property name="visible">True</property>
+                <property name="can_focus">True</property>
               </object>
               <packing>
                 <property name="left_attach">1</property>
-                <property name="top_attach">0</property>
+                <property name="top_attach">2</property>
+              </packing>
+            </child>
+            <child>
+              <object class="GtkCheckButton" id="link_check_button">
+                <property name="visible">True</property>
+                <property name="can_focus">True</property>
+                <property name="receives_default">False</property>
+                <property name="halign">start</property>
+                <property name="image_position">top</property>
+                <property name="active">True</property>
+                <property name="draw_indicator">True</property>
+              </object>
+              <packing>
+                <property name="left_attach">1</property>
+                <property name="top_attach">3</property>
               </packing>
             </child>
           </object>
@@ -135,21 +197,6 @@
             <property name="position">2</property>
           </packing>
         </child>
-        <child>
-          <object class="GtkLabel" id="duplicate_title_label">
-            <property name="visible">True</property>
-            <property name="can_focus">False</property>
-            <property name="halign">start</property>
-            <property name="margin_start">6</property>
-            <property name="label" translatable="yes"><b>New Transaction Information</b></property>
-            <property name="use_markup">True</property>
-          </object>
-          <packing>
-            <property name="expand">False</property>
-            <property name="fill">False</property>
-            <property name="position">2</property>
-          </packing>
-        </child>
       </object>
     </child>
     <action-widgets>
diff --git a/gnucash/register/ledger-core/split-register.c b/gnucash/register/ledger-core/split-register.c
index eff5798e1..7dcde96ce 100644
--- a/gnucash/register/ledger-core/split-register.c
+++ b/gnucash/register/ledger-core/split-register.c
@@ -571,6 +571,7 @@ gnc_split_register_duplicate_current (SplitRegister* reg)
     }
     else
     {
+        Account* account;
         NumCell* num_cell;
         Transaction* new_trans;
         int trans_split_index;
@@ -587,18 +588,17 @@ gnc_split_register_duplicate_current (SplitRegister* reg)
         /* We are on a transaction row. Copy the whole transaction. */
 
         date = info->last_date_entered;
-        if (gnc_strisnum (gnc_get_num_action (trans, trans_split)))
-        {
-            Account* account = gnc_split_register_get_default_account (reg);
 
-            if (account)
-                in_num = xaccAccountGetLastNum (account);
-            else
-                in_num = gnc_get_num_action (trans, trans_split);
-            in_tnum = (reg->use_tran_num_for_num_field
-                       ? NULL
-                       : gnc_get_num_action (trans, NULL));
-        }
+        account = gnc_split_register_get_default_account (reg);
+
+        if (account && gnc_strisnum (gnc_get_num_action (trans, trans_split)))
+            in_num = xaccAccountGetLastNum (account);
+        else
+            in_num = gnc_get_num_action (trans, trans_split);
+
+        in_tnum = (reg->use_tran_num_for_num_field
+                   ? NULL
+                   : gnc_get_num_action (trans, NULL));
 
         if (!gnc_dup_trans_dialog (gnc_split_register_get_parent (reg), NULL,
                                    TRUE, &date, in_num, &out_num, in_tnum, &out_tnum,

commit 69789b2b93253b1e41c10aab6a22dcc5c84043cd
Author: Cristian Klein <cristian.klein at elastisys.com>
Date:   Sun Nov 8 09:58:57 2020 +0100

    [auto-tests] Stick to CodingStandard for member variables

diff --git a/libgnucash/app-utils/test/test-autoclear.cpp b/libgnucash/app-utils/test/test-autoclear.cpp
index 4157458de..abb84e1c5 100644
--- a/libgnucash/app-utils/test/test-autoclear.cpp
+++ b/libgnucash/app-utils/test/test-autoclear.cpp
@@ -109,37 +109,37 @@ TestCase ambiguousTestCase = {
 
 class AutoClearTest : public ::testing::TestWithParam<TestCase *> {
 protected:
-    std::shared_ptr<QofBook> book_;
-    Account *account_; // owned by book_
-    TestCase &testCase_;
+    std::shared_ptr<QofBook> m_book;
+    Account *m_account; // owned by m_book
+    TestCase &m_testCase;
 
 public:
     AutoClearTest() :
-        book_(qof_book_new(), qof_book_destroy),
-        account_(xaccMallocAccount(book_.get())),
-        testCase_(*GetParam())
+        m_book(qof_book_new(), qof_book_destroy),
+        m_account(xaccMallocAccount(m_book.get())),
+        m_testCase(*GetParam())
     {
-        xaccAccountSetName(account_, "Test Account");
-        xaccAccountBeginEdit(account_);
-        for (auto &d : testCase_.splits) {
-            Split *split = xaccMallocSplit(book_.get());
+        xaccAccountSetName(m_account, "Test Account");
+        xaccAccountBeginEdit(m_account);
+        for (auto &d : m_testCase.splits) {
+            Split *split = xaccMallocSplit(m_book.get());
             xaccSplitSetMemo(split, d.memo);
             xaccSplitSetAmount(split, gnc_numeric_create(d.amount, DENOM));
             xaccSplitSetReconcile(split, d.cleared ? CREC : NREC);
-            xaccSplitSetAccount(split, account_);
+            xaccSplitSetAccount(split, m_account);
 
-            gnc_account_insert_split(account_, split);
+            gnc_account_insert_split(m_account, split);
         }
-        xaccAccountCommitEdit(account_);
+        xaccAccountCommitEdit(m_account);
     }
 };
 
 TEST_P(AutoClearTest, DoesAutoClear) {
-    for (auto &t : testCase_.tests) {
+    for (auto &t : m_testCase.tests) {
         gnc_numeric amount_to_clear = gnc_numeric_create(t.amount, DENOM);
         char *err;
 
-        GList *splits_to_clear = gnc_account_get_autoclear_splits(account_, amount_to_clear, &err);
+        GList *splits_to_clear = gnc_account_get_autoclear_splits(m_account, amount_to_clear, &err);
 
         // Actually clear splits
         for (GList *node = splits_to_clear; node; node = node->next) {
@@ -149,7 +149,7 @@ TEST_P(AutoClearTest, DoesAutoClear) {
 
         ASSERT_STREQ(err, t.expectedErr);
         if (t.expectedErr == NULL) {
-            gnc_numeric c = xaccAccountGetClearedBalance(account_);
+            gnc_numeric c = xaccAccountGetClearedBalance(m_account);
             ASSERT_EQ(c.num, t.amount);
             ASSERT_EQ(c.denom, DENOM);
         }

commit f26215feae0516f04670566dfe247018c0c3bcea
Author: Cristian Klein <cristian.klein at elastisys.com>
Date:   Sun Nov 8 09:58:17 2020 +0100

    [auto-tests] Fix misspelling

diff --git a/libgnucash/app-utils/test/test-autoclear.cpp b/libgnucash/app-utils/test/test-autoclear.cpp
index b99b5d655..4157458de 100644
--- a/libgnucash/app-utils/test/test-autoclear.cpp
+++ b/libgnucash/app-utils/test/test-autoclear.cpp
@@ -31,7 +31,7 @@ extern "C" {
 #include <Split.h>
 #include <gtest/gtest.h>
 
-static const int64_t DENOM = 100; //< Denomerator is always 100 for simplicity.
+static const int64_t DENOM = 100; //< Denominator is always 100 for simplicity.
 
 struct SplitDatum {
     const char *memo;

commit 2290fa7c22d5c4f45b58968a58c4f0b8b21179ec
Author: John Ralls <jralls at ceridwen.us>
Date:   Sat Nov 7 16:22:18 2020 -0800

    Fix exception when converting to decimal values that reduce to N/1.
    
    Before this the loop wouldn't terminate until the denominator had been
    reduced to 0 and trying to create a GncRational with a 0 denominator
    throws.

diff --git a/libgnucash/engine/gnc-numeric.cpp b/libgnucash/engine/gnc-numeric.cpp
index f9af38878..5e6773847 100644
--- a/libgnucash/engine/gnc-numeric.cpp
+++ b/libgnucash/engine/gnc-numeric.cpp
@@ -368,7 +368,7 @@ GncNumeric::to_decimal(unsigned int max_places) const
         rr_num *= factor;
         rr_den *= factor;
     }
-    while (!rr_num.isZero() && rr_num % 10 == 0)
+    while (!rr_num.isZero() && rr_num > 9 && rr_den > 9 && rr_num % 10 == 0)
     {
         rr_num /= 10;
         rr_den /= 10;
diff --git a/libgnucash/engine/test/gtest-gnc-numeric.cpp b/libgnucash/engine/test/gtest-gnc-numeric.cpp
index 5cbe5c724..e194367bb 100644
--- a/libgnucash/engine/test/gtest-gnc-numeric.cpp
+++ b/libgnucash/engine/test/gtest-gnc-numeric.cpp
@@ -548,4 +548,16 @@ TEST(gnc_numeric_functions, test_conversion_to_decimal)
     EXPECT_NO_THROW(r = c.to_decimal());
     EXPECT_EQ(27434842, r.num());
     EXPECT_EQ(100, r.denom());
+    GncNumeric d(11900000000, 85000000);
+    EXPECT_NO_THROW(r = d.to_decimal());
+    EXPECT_EQ(140, r.num());
+    EXPECT_EQ(1, r.denom());
+    GncNumeric e(11050000000, 65000000);
+    EXPECT_NO_THROW(r = e.to_decimal());
+    EXPECT_EQ(170, r.num());
+    EXPECT_EQ(1, r.denom());
+    GncNumeric f(5000000000, 50000000 );
+    EXPECT_NO_THROW(r = f.to_decimal());
+    EXPECT_EQ(100, r.num());
+    EXPECT_EQ(1, r.denom());
 }

commit d03dc07b8d2bc701a5a9cdfc6928725b32aefd45
Author: John Ralls <jralls at ceridwen.us>
Date:   Sat Nov 7 13:20:22 2020 -0800

    Remove redundant and incorrectly named constant.

diff --git a/libgnucash/engine/gnc-timezone.cpp b/libgnucash/engine/gnc-timezone.cpp
index 6c03481d4..33f0609ec 100644
--- a/libgnucash/engine/gnc-timezone.cpp
+++ b/libgnucash/engine/gnc-timezone.cpp
@@ -460,14 +460,12 @@ namespace IANAParser
 
 	//Add in the tzinfo indexes consumed in the previous loop
 	start_index = info_index_zero + time_count;
-	//Can't use sizeof(TZInfo) because it's padded out to 8 bytes.
-	static const size_t tzinfo_size = 6;
-	auto abbrev = start_index + type_count * tzinfo_size;
+	auto abbrev = start_index + type_count * ttinfo_size;
 	auto std_dist = abbrev + char_count;
 	auto gmt_dist = std_dist + type_count;
 	for(uint32_t index = 0; index < type_count; ++index)
 	{
-	    fb_index = start_index + index * tzinfo_size;
+	    fb_index = start_index + index * ttinfo_size;
 	    /* Use memcpy instead of static_cast to avoid memory alignment issues with chars */
 	    TTInfo info{};
 	    memcpy(&info, &fileblock[fb_index], ttinfo_size);

commit 3bcf57e7f21033a73102ad986bcf669644fa9979
Author: John Ralls <jralls at ceridwen.us>
Date:   Fri Nov 6 16:54:22 2020 -0800

    Fix timezone transition times.
    
    This is responsible for test failures on DST transition days.
    
    See the comments in gnc-timezone.cpp for an explanation of why this is
    correct. The rubric was tested on macOS, Arch Linux, Debian Unstable,
    Fedora 33, and Ubuntu 18.04 to confirm universal applicability.

diff --git a/libgnucash/engine/gnc-timezone.cpp b/libgnucash/engine/gnc-timezone.cpp
index 3bb157b5a..6c03481d4 100644
--- a/libgnucash/engine/gnc-timezone.cpp
+++ b/libgnucash/engine/gnc-timezone.cpp
@@ -549,10 +549,34 @@ namespace DSTRule
 	    std::swap(to_std_time, to_dst_time);
 	    std::swap(std_info, dst_info);
 	}
-	if (dst_info->isgmt)
-	    to_dst_time += boost::posix_time::seconds(dst_info->info.gmtoff);
-	if (std_info->isgmt)
-	    to_std_time += boost::posix_time::seconds(std_info->info.gmtoff);
+
+        /* Documentation notwithstanding, the date-time rules are
+         * looking for local time (wall clock to use the RFC 8538
+         * definition) values.
+         *
+         * The TZ Info contains two fields, isstd and isgmt (renamed
+         * to isut in newer versions of tzinfo). In theory if both are
+         * 0 the transition times represent wall-clock times,
+         * i.e. time stamps in the respective time zone's local time
+         * at the moment of the transition. If isstd is 1 then the
+         * representation is always in standard time instead of
+         * daylight time; this is significant for dst->std
+         * transitions. If isgmt/isut is one then isstd must also be
+         * set and the transition time is in UTC.
+         *
+         * In practice it seems that the timestamps are always in UTC
+         * so the isgmt/isut flag isn't meaningful. The times always
+         * need to have the utc offset added to them to make the
+         * transition occur at the right time; the isstd flag
+         * determines whether that should be the standard offset or
+         * the daylight offset for the daylight->standard transition.
+         */
+
+        to_dst_time += boost::posix_time::seconds(std_info->info.gmtoff);
+        if (std_info->isstd) //if isstd always use standard time
+            to_std_time += boost::posix_time::seconds(std_info->info.gmtoff);
+        else
+            to_std_time += boost::posix_time::seconds(dst_info->info.gmtoff);
 
     }
 
diff --git a/libgnucash/engine/test/gtest-gnc-datetime.cpp b/libgnucash/engine/test/gtest-gnc-datetime.cpp
index 3fcbb6d20..446f810e8 100644
--- a/libgnucash/engine/test/gtest-gnc-datetime.cpp
+++ b/libgnucash/engine/test/gtest-gnc-datetime.cpp
@@ -381,6 +381,57 @@ TEST(gnc_datetime_constructors, test_gncdate_end_constructor)
     EXPECT_EQ(atime.format("%d-%m-%Y %H:%M:%S"), "06-11-2046 23:59:59");
 }
 
+static ::testing::AssertionResult
+test_offset(time64 start_time, int hour, int offset1, int offset2,
+            const char* zone)
+{
+    GncDateTime gdt{start_time + hour * 3600};
+    if ((hour < 2 && gdt.offset() == offset1) ||
+        (hour >= 2 && gdt.offset() == offset2))
+        return ::testing::AssertionSuccess();
+    else
+        return ::testing::AssertionFailure() << zone << ": " << gdt.format("%D %T %z %q") << " hour " << hour;
+}
+
+TEST(gnc_datetime_constructors, test_DST_start_transition_time)
+{
+#ifdef __MINGW32__
+    TimeZoneProvider tzp_can{"A.U.S Eastern Standard Time"};
+    TimeZoneProvider tzp_la{"Pacific Standard Time"};
+#else
+    TimeZoneProvider tzp_can("Australia/Canberra");
+    TimeZoneProvider tzp_la("America/Los_Angeles");
+#endif
+    _set_tzp(tzp_la);
+    for (auto hours = 0; hours < 23; ++hours)
+        EXPECT_TRUE(test_offset(1583657940, hours, -28800, -25200, "Los Angeles"));
+
+    _reset_tzp();
+    _set_tzp(tzp_can);
+    for (auto hours = 0; hours < 23; ++hours)
+        EXPECT_TRUE(test_offset(1601737140, hours, 36000, 39600, "Canberra"));
+    _reset_tzp();
+}
+
+TEST(gnc_datetime_constructors, test_DST_end_transition_time)
+{
+#ifdef __MINGW32__
+    TimeZoneProvider tzp_can{"A.U.S Eastern Standard Time"};
+    TimeZoneProvider tzp_la{"Pacific Standard Time"};
+#else
+    TimeZoneProvider tzp_can("Australia/Canberra");
+    TimeZoneProvider tzp_la("America/Los_Angeles");
+#endif
+    _set_tzp(tzp_la);
+    for (auto hours = 0; hours < 23; ++hours)
+        EXPECT_TRUE(test_offset(1604217540, hours, -25200, -28800, "Los Angeles"));
+    _reset_tzp();
+    _set_tzp(tzp_can);
+    for (auto hours = 0; hours < 23; ++hours)
+        EXPECT_TRUE(test_offset(1586008740, hours, 39600, 36000, "Canberra"));
+    _reset_tzp();
+}
+
 TEST(gnc_datetime_constructors, test_gncdate_neutral_constructor)
 {
     const ymd aymd = { 2017, 04, 20 };

commit b6c0a62bbd33f63462e10bd8fcbaacd85ca8e7ec
Author: Robert Fewell <14uBobIT at gmail.com>
Date:   Wed Oct 28 13:56:07 2020 +0000

    Add confirmation of Main Window close when more than one
    
    If you have more than one Gnucash window open is is very easy to close
    the wrong window with the 'x' and in doing so change your saved pages.
    The way to save the configuration of all windows and pages is to use
    'File->Quit'.

diff --git a/gnucash/gnome-utils/gnc-main-window.c b/gnucash/gnome-utils/gnc-main-window.c
index 354ce3c80..d416a3e36 100644
--- a/gnucash/gnome-utils/gnc-main-window.c
+++ b/gnucash/gnome-utils/gnc-main-window.c
@@ -67,6 +67,7 @@
 #include "gnc-ui-util.h"
 #include "gnc-uri-utils.h"
 #include "gnc-version.h"
+#include "gnc-warnings.h"
 #include "gnc-window.h"
 #include "gnc-prefs.h"
 #include "option-util.h"
@@ -1423,6 +1424,32 @@ gnc_main_window_delete_event (GtkWidget *window,
     if (already_dead)
         return TRUE;
 
+    if (g_list_length (active_windows) > 1)
+    {
+        gint response;
+        GtkWidget *dialog;
+        gchar *message = _("This window is closing and will not be restored.");
+
+        dialog = gtk_message_dialog_new (GTK_WINDOW (window),
+                                         GTK_DIALOG_DESTROY_WITH_PARENT,
+                                         GTK_MESSAGE_QUESTION,
+                                         GTK_BUTTONS_NONE,
+                                         "%s", _("Close Window?"));
+        gtk_message_dialog_format_secondary_text (GTK_MESSAGE_DIALOG(dialog),
+                                                  "%s", message);
+
+        gtk_dialog_add_buttons (GTK_DIALOG(dialog),
+                              _("_Cancel"), GTK_RESPONSE_CANCEL,
+                              _("_OK"), GTK_RESPONSE_YES,
+                               (gchar *)NULL);
+        gtk_dialog_set_default_response (GTK_DIALOG(dialog), GTK_RESPONSE_YES);
+        response = gnc_dialog_run (GTK_DIALOG(dialog), GNC_PREF_WARN_CLOSING_WINDOW_QUESTION);
+        gtk_widget_destroy (dialog);
+
+        if (response == GTK_RESPONSE_CANCEL)
+            return TRUE;
+    }
+
     if (!gnc_main_window_finish_pending(GNC_MAIN_WINDOW(window)))
     {
         /* Don't close the window. */
diff --git a/gnucash/gschemas/org.gnucash.warnings.gschema.xml.in b/gnucash/gschemas/org.gnucash.warnings.gschema.xml.in
index fd404c18f..cc85417a4 100644
--- a/gnucash/gschemas/org.gnucash.warnings.gschema.xml.in
+++ b/gnucash/gschemas/org.gnucash.warnings.gschema.xml.in
@@ -9,6 +9,11 @@
       <summary>Print checks from multiple accounts</summary>
       <description>This dialog is presented if you try to print checks from multiple accounts at the same time.</description>
     </key>
+    <key name="closing-window-question" type="i">
+      <default>0</default>
+      <summary>Confirm Window Close</summary>
+      <description>This dialog is presented when there is more than one window.</description>
+    </key>
     <key name="inv-entry-mod" type="i">
       <default>0</default>
       <summary>Commit changes to a invoice entry</summary>
@@ -107,6 +112,11 @@
       <summary>Print checks from multiple accounts</summary>
       <description>This dialog is presented if you try to print checks from multiple accounts at the same time.</description>
     </key>
+    <key name="closing-window-question" type="i">
+      <default>0</default>
+      <summary>Confirm Window Close</summary>
+      <description>This dialog is presented when there is more than one window.</description>
+    </key>
     <key name="inv-entry-mod" type="i">
       <default>0</default>
       <summary>Commit changes to a invoice entry</summary>

commit 39ad1e9ebb0ab2b35da278f058394130dd9e2329
Author: Robert Fewell <14uBobIT at gmail.com>
Date:   Tue Oct 27 14:47:58 2020 +0000

    Add two key combinations to the main notebook
    
    Add ability to do key combination Ctrl+Alt+Menu to bring up the main
    notebook menu so pages can be selected.
    Also add Ctrl+Alt+a to jump to the Accounts page with the 'a' being
    translatable.

diff --git a/gnucash/gnome-utils/gnc-main-window.c b/gnucash/gnome-utils/gnc-main-window.c
index 46e281cbd..354ce3c80 100644
--- a/gnucash/gnome-utils/gnc-main-window.c
+++ b/gnucash/gnome-utils/gnc-main-window.c
@@ -2743,6 +2743,58 @@ gnc_main_window_destroy (GtkWidget *widget)
 }
 
 
+static gboolean
+gnc_main_window_key_press_event (GtkWidget *widget, GdkEventKey *event, gpointer user_data)
+{
+    GncMainWindowPrivate *priv;
+    GdkModifierType modifiers;
+
+    g_return_val_if_fail (GNC_IS_MAIN_WINDOW(widget), FALSE);
+
+    priv = GNC_MAIN_WINDOW_GET_PRIVATE(widget);
+
+    modifiers = gtk_accelerator_get_default_mod_mask ();
+
+    if ((event->state & modifiers) == (GDK_CONTROL_MASK | GDK_MOD1_MASK)) // Ctrl+Alt+
+    {
+        const gchar *account_key = C_ ("lower case key for short cut to 'Accounts'", "a");
+        guint account_keyval = gdk_keyval_from_name (account_key);
+
+        if ((account_keyval == event->keyval) || (account_keyval == gdk_keyval_to_lower (event->keyval)))
+        {
+            gint page = 0;
+
+            for (GList *item = priv->installed_pages; item; item = g_list_next (item))
+            {
+                 const gchar *pname = gnc_plugin_page_get_plugin_name (GNC_PLUGIN_PAGE(item->data));
+
+                 if (g_strcmp0 (pname, "GncPluginPageAccountTree") == 0)
+                 {
+                     gtk_notebook_set_current_page (GTK_NOTEBOOK(priv->notebook), page);
+                     return TRUE;
+                 }
+                 page++;
+            }
+        }
+        else if ((GDK_KEY_Menu == event->keyval) || (GDK_KEY_space == event->keyval))
+        {
+            GList *menu = gtk_menu_get_for_attach_widget (GTK_WIDGET(priv->notebook));
+
+            if (menu)
+            {
+                gtk_menu_popup_at_widget (GTK_MENU(menu->data),
+                                          GTK_WIDGET(priv->notebook),
+                                          GDK_GRAVITY_SOUTH,
+                                          GDK_GRAVITY_SOUTH,
+                                          NULL);
+                return TRUE;
+            }
+        }
+    }
+    return FALSE;
+}
+
+
 /*  Create a new gnc main window plugin.
  */
 GncMainWindow *
@@ -2777,6 +2829,11 @@ gnc_main_window_new (void)
 #endif
     gnc_engine_add_commit_error_callback( gnc_main_window_engine_commit_error_callback, window );
 
+    // set up a callback for noteboook navigation
+    g_signal_connect (G_OBJECT(window), "key-press-event",
+                      G_CALLBACK(gnc_main_window_key_press_event),
+                      NULL);
+
     return window;
 }
 

commit c0e1341139d93d8b4756ec08c19dc77030fcefeb
Author: Robert Fewell <14uBobIT at gmail.com>
Date:   Mon Oct 26 11:22:12 2020 +0000

    Intercept the Ctrl+Alt+PgUp/Down for a report page
    
    With the focus on the webkit webview, this key sequence can be used to
    scroll the view. For the key sequence to work for tab page switching a
    callback is connected to the 'key-press-event' for the webkit view and
    checked for the sequence and passed to the notebook if required.

diff --git a/gnucash/gnome/gnc-plugin-page-report.c b/gnucash/gnome/gnc-plugin-page-report.c
index ece19892c..e7f260e57 100644
--- a/gnucash/gnome/gnc-plugin-page-report.c
+++ b/gnucash/gnome/gnc-plugin-page-report.c
@@ -390,6 +390,45 @@ gnc_plugin_page_report_load_uri (GncPluginPage *page)
     gnc_window_set_progressbar_window( NULL );
 }
 
+/* used to capture Ctrl+Alt+PgUp/Down for tab selection */
+static gboolean
+webkit_key_press_event_cb (GtkWidget *widget, GdkEventKey *event, gpointer user_data)
+{
+    GncPluginPageReport *report = GNC_PLUGIN_PAGE_REPORT(user_data);
+    GncPluginPageReportPrivate *priv = GNC_PLUGIN_PAGE_REPORT_GET_PRIVATE(report);
+    GdkModifierType modifiers = gtk_accelerator_get_default_mod_mask ();
+    GtkWidget *window = gnc_plugin_page_get_window (GNC_PLUGIN_PAGE(report));
+
+    if (GNC_PLUGIN_PAGE(report) != gnc_main_window_get_current_page (GNC_MAIN_WINDOW(window)))
+        return FALSE;
+
+    if ((event->keyval == GDK_KEY_Page_Up || event->keyval == GDK_KEY_Page_Down ||
+         event->keyval == GDK_KEY_KP_Page_Up || event->keyval == GDK_KEY_KP_Page_Down)
+          && (event->state & modifiers) == (GDK_CONTROL_MASK | GDK_MOD1_MASK))
+    {
+        GtkNotebook *notebook = GTK_NOTEBOOK(gtk_widget_get_parent (GTK_WIDGET(priv->container)));
+        gint pages = gtk_notebook_get_n_pages (notebook);
+        gint current_page = gtk_notebook_get_current_page (notebook);
+
+        if (event->keyval == GDK_KEY_Page_Up || event->keyval == GDK_KEY_KP_Page_Up)
+        {
+            if (current_page == 0)
+                gtk_notebook_set_current_page (notebook, pages - 1);
+            else
+                gtk_notebook_prev_page (notebook);
+        }
+        else
+        {
+            if (pages == current_page + 1)
+                gtk_notebook_set_current_page (notebook, 0);
+            else
+                gtk_notebook_next_page (notebook);
+        }
+        return TRUE;
+    }
+    return FALSE;
+}
+
 static
 GtkWidget*
 gnc_plugin_page_report_create_widget( GncPluginPage *page )
@@ -398,6 +437,7 @@ gnc_plugin_page_report_create_widget( GncPluginPage *page )
     GncPluginPageReportPrivate *priv;
     GtkWindow *topLvl;
     GtkAction *action;
+    GtkWidget *webview;
     URLType type;
     char * id_name;
     char * child_name;
@@ -460,6 +500,18 @@ gnc_plugin_page_report_create_widget( GncPluginPage *page )
                       G_CALLBACK(gnc_plugin_page_inserted_cb),
                       NULL);
 
+    // used to capture Ctrl+Alt+PgUp/Down for tab selection
+    webview = gnc_html_get_webview (priv->html);
+    if (webview)
+    {
+        gtk_widget_add_events (webview, gtk_widget_get_events (webview) |
+                               GDK_KEY_PRESS_MASK);
+
+        g_signal_connect (webview, "key-press-event",
+                          G_CALLBACK(webkit_key_press_event_cb),
+                          page);
+    }
+
     gtk_widget_show_all( GTK_WIDGET(priv->container) );
     LEAVE("container %p", priv->container);
     return GTK_WIDGET( priv->container );

commit 5c48244e8d8dfb781aceecfdb52157af55d42225
Author: Robert Fewell <14uBobIT at gmail.com>
Date:   Mon Oct 26 11:05:02 2020 +0000

    Fix report page focus
    
    Currently the setting of keyboard focus is to the scroll window but
    should be to the Webkit webview so correct this.

diff --git a/gnucash/gnome/gnc-plugin-page-report.c b/gnucash/gnome/gnc-plugin-page-report.c
index d77aa5e9d..ece19892c 100644
--- a/gnucash/gnome/gnc-plugin-page-report.c
+++ b/gnucash/gnome/gnc-plugin-page-report.c
@@ -253,7 +253,7 @@ gnc_plugin_page_report_focus_widget (GncPluginPage *report_plugin_page)
 
         if (window && !gnc_main_window_is_restoring_pages (GNC_MAIN_WINDOW(window)))
         {
-            GtkWidget * widget = gnc_html_get_widget (priv->html);
+            GtkWidget *widget = gnc_html_get_webview (priv->html);
 
             gnc_plugin_page_report_load_uri (report_plugin_page);
 
@@ -752,15 +752,12 @@ static void
 gnc_plugin_page_report_destroy_widget(GncPluginPage *plugin_page)
 {
     GncPluginPageReportPrivate *priv;
-    GtkWidget *widget;
 
     // FIXME: cleanup other resources.
 
     PINFO("destroy widget");
     priv = GNC_PLUGIN_PAGE_REPORT_GET_PRIVATE(plugin_page);
 
-    widget = gnc_html_get_widget(priv->html);
-
     // Remove the page_changed signal callback
     gnc_plugin_page_disconnect_page_changed (GNC_PLUGIN_PAGE(plugin_page));
 
diff --git a/gnucash/html/gnc-html.c b/gnucash/html/gnc-html.c
index 3b97ec22d..4565bdaad 100644
--- a/gnucash/html/gnc-html.c
+++ b/gnucash/html/gnc-html.c
@@ -574,6 +574,39 @@ gnc_html_get_widget( GncHtml* self )
     return GNC_HTML_GET_PRIVATE(self)->container;
 }
 
+
+GtkWidget *
+gnc_html_get_webview( GncHtml* self )
+{
+    GncHtmlPrivate* priv;
+    GList *sw_list = NULL;
+    GtkWidget *webview = NULL;
+
+    g_return_val_if_fail (self != NULL, NULL);
+    g_return_val_if_fail (GNC_IS_HTML(self), NULL);
+
+    priv = GNC_HTML_GET_PRIVATE(self);
+    sw_list = gtk_container_get_children (GTK_CONTAINER(priv->container));
+
+    if (sw_list) // the scroll window has only one child
+    {
+#ifdef WEBKIT1
+        webview = sw_list->data;
+#else
+        GList *vp_list = gtk_container_get_children (GTK_CONTAINER(sw_list->data));
+ 
+        if (vp_list) // the viewport has only one child
+        {
+            webview = vp_list->data;
+            g_list_free (vp_list);
+        }
+#endif
+    }
+    g_list_free (sw_list);
+    return webview;
+}
+
+
 void
 gnc_html_set_parent( GncHtml* self, GtkWindow* parent )
 {
diff --git a/gnucash/html/gnc-html.h b/gnucash/html/gnc-html.h
index 67eaf7373..70b4352c9 100644
--- a/gnucash/html/gnc-html.h
+++ b/gnucash/html/gnc-html.h
@@ -256,6 +256,15 @@ gnc_html_history* gnc_html_get_history( GncHtml* html );
  */
 GtkWidget* gnc_html_get_widget( GncHtml* html );
 
+/**
+ * Returns the webview widget for this html engine
+ *
+ * @param html GncHtml object
+ * @return webview widget
+ */
+GtkWidget* gnc_html_get_webview( GncHtml* html );
+
+
 /**
  * Sets the parent window for this html engine.  The engine will be embedded in this parent.
  *

commit b51a70675f75470185e44d245853be185c4d5c20
Author: Robert Fewell <14uBobIT at gmail.com>
Date:   Mon Oct 26 10:17:07 2020 +0000

    Bug 797944 - Crash when opening new file from existing one
    
    If you have report pages that are left open when the current book is
    'Saved' and then use the 'File->Open' to open a new book Gnucash may
    crash. This was traced to the use of a g_idle_add to delay loading the
    reports in the pages that was not being cleared when the first book was
    closed.
    
    To fix this the g_idle_add has been removed and the loading of the
    report has been moved to the page focus function. By using a flag to
    indicate when pages are being restored, the report loading is delayed
    until the page is focused which has also decreased book loading time
    especially if no report pages were the current page when the book was
    closed.

diff --git a/gnucash/gnome-utils/gnc-main-window.c b/gnucash/gnome-utils/gnc-main-window.c
index 8735eecfc..46e281cbd 100644
--- a/gnucash/gnome-utils/gnc-main-window.c
+++ b/gnucash/gnome-utils/gnc-main-window.c
@@ -231,6 +231,8 @@ typedef struct GncMainWindowPrivate
      *  group, the values are structures of type
      *  MergedActionEntry. */
     GHashTable *merged_actions_table;
+    /** Set when restoring plugin pages */
+    gboolean restoring_pages;
 } GncMainWindowPrivate;
 
 GNC_DEFINE_TYPE_WITH_CODE(GncMainWindow, gnc_main_window, GTK_TYPE_WINDOW,
@@ -529,6 +531,14 @@ typedef struct
 } GncMainWindowSaveData;
 
 
+gboolean
+gnc_main_window_is_restoring_pages (GncMainWindow *window)
+{
+    GncMainWindowPrivate *priv = GNC_MAIN_WINDOW_GET_PRIVATE(window);
+    return priv->restoring_pages;
+}
+
+
 /*  Iterator function to walk all pages in all windows, calling the
  *  specified function for each page. */
 void
@@ -853,7 +863,7 @@ gnc_main_window_restore_window (GncMainWindow *window, GncMainWindowSaveData *da
     {
         gtk_toggle_action_set_active(GTK_TOGGLE_ACTION(action), desired_visibility);
     }
-
+    priv->restoring_pages = TRUE;
     /* Now populate the window with pages. */
     for (i = 0; i < page_count; i++)
     {
@@ -865,7 +875,7 @@ gnc_main_window_restore_window (GncMainWindow *window, GncMainWindowSaveData *da
         while (gtk_events_pending ())
             gtk_main_iteration ();
     }
-
+    priv->restoring_pages = FALSE;
     /* Restore page ordering within the notebook. Use +1 notation so the
      * numbers in the page order match the page sections, at least for
      * the one window case. */
@@ -899,6 +909,9 @@ gnc_main_window_restore_window (GncMainWindow *window, GncMainWindowSaveData *da
         }
         gtk_notebook_set_current_page (GTK_NOTEBOOK(priv->notebook),
                                        order[0] - 1);
+
+        g_signal_emit_by_name (window, "page_changed",
+                               g_list_nth_data (priv->usage_order, 0));
     }
     if (order)
     {
@@ -2581,6 +2594,8 @@ gnc_main_window_init (GncMainWindow *window, void *data)
     priv->event_handler_id =
         qof_event_register_handler(gnc_main_window_event_handler, window);
 
+    priv->restoring_pages = FALSE;
+
     /* Get the show_color_tabs value preference */
     priv->show_color_tabs = gnc_prefs_get_bool(GNC_PREFS_GROUP_GENERAL, GNC_PREF_TAB_COLOR);
 
diff --git a/gnucash/gnome-utils/gnc-main-window.h b/gnucash/gnome-utils/gnc-main-window.h
index 568607951..ad0903b59 100644
--- a/gnucash/gnome-utils/gnc-main-window.h
+++ b/gnucash/gnome-utils/gnc-main-window.h
@@ -348,6 +348,16 @@ gboolean gnc_main_window_popup_menu_cb (GtkWidget *widget,
  */
 void gnc_main_window_restore_all_windows(const GKeyFile *keyfile);
 
+/** Check if the main window is restoring the plugin pages. This is
+ *  used on report pages to delay the creation of the report till the
+ *  page is focused.
+ *
+ *  @param window When window whose pages should be checked.
+ *
+ *  @return TRUE if pages are being restored
+ */
+gboolean gnc_main_window_is_restoring_pages (GncMainWindow *window);
+
 /** Save the persistent state of all windows.
  *
  *  @param keyfile The GKeyFile to contain persistent window state.
diff --git a/gnucash/gnome/gnc-plugin-page-report.c b/gnucash/gnome/gnc-plugin-page-report.c
index 960d63e61..d77aa5e9d 100644
--- a/gnucash/gnome/gnc-plugin-page-report.c
+++ b/gnucash/gnome/gnc-plugin-page-report.c
@@ -153,6 +153,7 @@ static GncPluginPage *gnc_plugin_page_report_recreate_page (GtkWidget *window, G
 static void gnc_plugin_page_report_name_changed (GncPluginPage *page, const gchar *name);
 static void gnc_plugin_page_report_update_edit_menu (GncPluginPage *page, gboolean hide);
 static gboolean gnc_plugin_page_report_finish_pending (GncPluginPage *page);
+static void gnc_plugin_page_report_load_uri (GncPluginPage *page);
 
 static int gnc_plugin_page_report_check_urltype(URLType t);
 //static void gnc_plugin_page_report_load_cb(gnc_html * html, URLType type,
@@ -243,12 +244,24 @@ gnc_plugin_page_report_focus_widget (GncPluginPage *report_plugin_page)
     if (GNC_IS_PLUGIN_PAGE_REPORT(report_plugin_page))
     {
         GncPluginPageReportPrivate *priv = GNC_PLUGIN_PAGE_REPORT_GET_PRIVATE(report_plugin_page);
-        GtkWidget *widget = gnc_html_get_widget (priv->html);
+        GtkWidget *window;
 
-        if (GTK_IS_WIDGET(widget))
+        if (!priv)
+            return FALSE;
+
+        window = gnc_plugin_page_get_window (report_plugin_page);
+
+        if (window && !gnc_main_window_is_restoring_pages (GNC_MAIN_WINDOW(window)))
         {
-            if (!gtk_widget_is_focus (GTK_WIDGET(widget)))
-                gtk_widget_grab_focus (GTK_WIDGET(widget));
+            GtkWidget * widget = gnc_html_get_widget (priv->html);
+
+            gnc_plugin_page_report_load_uri (report_plugin_page);
+
+            if (GTK_IS_WIDGET(widget))
+            {
+                if (!gtk_widget_is_focus (GTK_WIDGET(widget)))
+                    gtk_widget_grab_focus (GTK_WIDGET(widget));
+            }
         }
     }
     return FALSE;
@@ -332,7 +345,7 @@ gnc_plugin_page_report_set_progressbar (GncPluginPage *page, gboolean set)
         gtk_widget_set_size_request (GTK_WIDGET(progressbar), -1, -1); //reset
 }
 
-static gboolean
+static void
 gnc_plugin_page_report_load_uri (GncPluginPage *page)
 {
     GncPluginPageReport *report;
@@ -346,7 +359,7 @@ gnc_plugin_page_report_load_uri (GncPluginPage *page)
     report = GNC_PLUGIN_PAGE_REPORT(page);
     priv = GNC_PLUGIN_PAGE_REPORT_GET_PRIVATE(report);
     if (!priv)
-        return FALSE; // No priv means the page doesn't exist anymore.
+        return; // No priv means the page doesn't exist anymore.
 
     DEBUG( "Load uri id=%d", priv->reportId );
     id_name = g_strdup_printf("id=%d", priv->reportId );
@@ -375,20 +388,6 @@ gnc_plugin_page_report_load_uri (GncPluginPage *page)
 
     // this resets the window for the progressbar to NULL
     gnc_window_set_progressbar_window( NULL );
-
-    return FALSE;
-}
-
-static void
-gnc_plugin_page_report_realize_uri (GtkWidget *widget, GncPluginPage *page)
-{
-    GtkAllocation allocation;
-
-    gtk_widget_get_allocation (widget, &allocation);
-    PINFO("Realized Container size is %dw x %dh", allocation.width, allocation.height);
-
-    /* load uri when view idle */
-    g_idle_add ((GSourceFunc)gnc_plugin_page_report_load_uri, page);
 }
 
 static
@@ -457,10 +456,6 @@ gnc_plugin_page_report_create_widget( GncPluginPage *page )
     // FIXME.  This is f^-1(f(x)), isn't it?
     DEBUG( "id=%d", priv->reportId );
 
-    /* load uri when view is realized */
-    g_signal_connect (G_OBJECT(GTK_WIDGET(priv->container)), "realize",
-                      G_CALLBACK(gnc_plugin_page_report_realize_uri), page);
-
     g_signal_connect (G_OBJECT(page), "inserted",
                       G_CALLBACK(gnc_plugin_page_inserted_cb),
                       NULL);

commit bf9b267266ca86fb86bead74d1febcf1a1408f5a
Author: Robert Fewell <14uBobIT at gmail.com>
Date:   Fri Nov 6 13:22:39 2020 +0000

    Change down arrow to align more with existing widgets
    
    Instead of using the icon name 'go-down' use 'pan-down-symbolic'

diff --git a/borrowed/goffice/go-optionmenu.c b/borrowed/goffice/go-optionmenu.c
index 4e0ba1b65..a145e2d38 100644
--- a/borrowed/goffice/go-optionmenu.c
+++ b/borrowed/goffice/go-optionmenu.c
@@ -354,7 +354,7 @@ static void go_option_menu_init(GOOptionMenu *option_menu)
 
     option_menu->button_label = GTK_LABEL(gtk_label_new(""));
     gtk_box_pack_start(GTK_BOX(box), GTK_WIDGET(option_menu->button_label), FALSE, TRUE, 0);
-    arrow = gtk_image_new_from_icon_name ("go-down", GTK_ICON_SIZE_BUTTON);
+    arrow = gtk_image_new_from_icon_name ("pan-down-symbolic", GTK_ICON_SIZE_BUTTON);
     gtk_widget_set_margin_start (GTK_WIDGET(arrow), 5);
 
     gtk_box_pack_end(GTK_BOX(box), arrow, FALSE, FALSE, 0);
diff --git a/gnucash/gnome-utils/gnc-cell-renderer-popup-entry.c b/gnucash/gnome-utils/gnc-cell-renderer-popup-entry.c
index 7d7f15e4f..84e385230 100644
--- a/gnucash/gnome-utils/gnc-cell-renderer-popup-entry.c
+++ b/gnucash/gnome-utils/gnc-cell-renderer-popup-entry.c
@@ -112,6 +112,7 @@ static void
 gnc_popup_entry_init (GncPopupEntry *widget)
 {
     GtkWidget *arrow;
+    GtkStyleContext *context;
 
     widget->editing_canceled = FALSE;
 
@@ -123,14 +124,17 @@ gnc_popup_entry_init (GncPopupEntry *widget)
     gtk_entry_set_visibility (GTK_ENTRY(widget->entry), TRUE);
     gtk_widget_show (widget->entry);
 
+    context = gtk_widget_get_style_context (widget->entry);
+    gtk_style_context_add_class (context, "combo");
+
     widget->button = gtk_button_new ();
     gtk_widget_show (widget->button);
 
-    arrow = gtk_image_new_from_icon_name ("go-down", GTK_ICON_SIZE_BUTTON);
-    gtk_widget_show (arrow);
+    context = gtk_widget_get_style_context (widget->button);
+    gtk_style_context_add_class (context, "combo");
 
-    g_signal_connect (G_OBJECT(arrow), "draw",
-                      G_CALLBACK(gnc_draw_arrow_cb), GINT_TO_POINTER(1));
+    arrow = gtk_image_new_from_icon_name ("pan-down-symbolic", GTK_ICON_SIZE_BUTTON);
+    gtk_widget_show (arrow);
 
     gtk_container_add (GTK_CONTAINER(widget->button), arrow);
 
@@ -144,6 +148,13 @@ gnc_popup_entry_init (GncPopupEntry *widget)
     gtk_widget_add_events (GTK_WIDGET(widget), GDK_KEY_RELEASE_MASK);
 }
 
+static void
+gpw_grab_focus (GtkWidget *box)
+{
+    GncPopupEntry *widget = GNC_POPUP_ENTRY(box);
+    gtk_widget_grab_focus (widget->entry);
+}
+
 static void
 gnc_popup_entry_class_init (GncPopupEntryClass *klass)
 {
@@ -151,6 +162,7 @@ gnc_popup_entry_class_init (GncPopupEntryClass *klass)
     GObjectClass   *gobject_class = G_OBJECT_CLASS(klass);
 
     widget_class->key_press_event = gpw_key_press_event;
+    widget_class->grab_focus = gpw_grab_focus;
 
     gobject_class->set_property = gpw_set_property;
     gobject_class->get_property = gpw_get_property;
@@ -249,7 +261,7 @@ gtk_cell_editable_key_press_event (GtkEntry      *entry,
     if (qof_scan_date (date_string, &day, &month, &year))
     {
         when.tm_year = year - 1900;
-        when.tm_mon = month - 1 ;
+        when.tm_mon = month - 1;
         when.tm_mday = day;
 
         if (!gnc_handle_date_accelerator (key_event, &when, date_string))
@@ -363,7 +375,7 @@ gnc_popup_get_button_width (void)
     gtk_widget_show (button);
     gtk_container_add (GTK_CONTAINER(window), button);
 
-    arrow = gtk_image_new_from_icon_name ("go-down", GTK_ICON_SIZE_BUTTON);
+    arrow = gtk_image_new_from_icon_name ("pan-down-symbolic", GTK_ICON_SIZE_BUTTON);
     gtk_widget_show (arrow);
 
     gtk_container_add (GTK_CONTAINER(button), arrow);
diff --git a/gnucash/gnome-utils/gnc-combott.c b/gnucash/gnome-utils/gnc-combott.c
index 2be7adc97..b4187ad0a 100644
--- a/gnucash/gnome-utils/gnc-combott.c
+++ b/gnucash/gnome-utils/gnc-combott.c
@@ -177,6 +177,7 @@ gnc_combott_init (GncCombott *combott)
     GtkWidget *arrow;
     GtkWidget *button;
     GtkWidget *sep;
+    GtkStyleContext *context;
 
     GncCombottPrivate *priv = GNC_COMBOTT_GET_PRIVATE (combott);
 
@@ -192,10 +193,7 @@ gnc_combott_init (GncCombott *combott)
     hbox = gtk_box_new (GTK_ORIENTATION_HORIZONTAL, 0);
     gtk_box_set_homogeneous (GTK_BOX(hbox), FALSE);
 
-    arrow = gtk_image_new_from_icon_name ("go-down", GTK_ICON_SIZE_BUTTON);
-
-    g_signal_connect (G_OBJECT (arrow), "draw",
-                      G_CALLBACK (gnc_draw_arrow_cb), GINT_TO_POINTER(1));
+    arrow = gtk_image_new_from_icon_name ("pan-down-symbolic", GTK_ICON_SIZE_BUTTON);
 
     gtk_widget_set_margin_start (GTK_WIDGET(arrow), 5);
     gtk_box_pack_end (GTK_BOX (hbox), arrow, FALSE, FALSE, 0);
@@ -207,10 +205,16 @@ gnc_combott_init (GncCombott *combott)
     gtk_box_pack_start (GTK_BOX (hbox), label, FALSE, FALSE, 0);
     priv->label = label;
 
+    context = gtk_widget_get_style_context (priv->label);
+    gtk_style_context_add_class (context, "combo");
+
     button = gtk_button_new();
     gtk_container_add(GTK_CONTAINER(button), GTK_WIDGET(hbox));
     priv->button = button;
 
+    context = gtk_widget_get_style_context (priv->button);
+    gtk_style_context_add_class (context, "combo");
+
     gtk_container_add(GTK_CONTAINER(combott), GTK_WIDGET(button));
 
     g_signal_connect (button, "event",
diff --git a/gnucash/gnome-utils/gnc-date-edit.c b/gnucash/gnome-utils/gnc-date-edit.c
index 40758a5af..7f4181fbb 100644
--- a/gnucash/gnome-utils/gnc-date-edit.c
+++ b/gnucash/gnome-utils/gnc-date-edit.c
@@ -892,10 +892,7 @@ create_children (GNCDateEdit *gde)
         gtk_widget_show (GTK_WIDGET(gde->cal_label));
 
     /* Graphic for the popup button. */
-    arrow = gtk_image_new_from_icon_name ("go-down", GTK_ICON_SIZE_BUTTON);
-
-    g_signal_connect (G_OBJECT (arrow), "draw",
-                      G_CALLBACK (gnc_draw_arrow_cb), GINT_TO_POINTER(1));
+    arrow = gtk_image_new_from_icon_name ("pan-down-symbolic", GTK_ICON_SIZE_BUTTON);
 
     gtk_box_pack_start (GTK_BOX (hbox), arrow, TRUE, FALSE, 0);
     gtk_widget_show (GTK_WIDGET(arrow));
diff --git a/gnucash/gnome-utils/gnc-tree-view.c b/gnucash/gnome-utils/gnc-tree-view.c
index 27a765dc9..025b1d69c 100644
--- a/gnucash/gnome-utils/gnc-tree-view.c
+++ b/gnucash/gnome-utils/gnc-tree-view.c
@@ -274,7 +274,7 @@ gnc_tree_view_init (GncTreeView *view, void *data)
     /* Create the last column which contains the column selection
      * widget.  gnc_tree_view_add_text_column will do most of the
      * work. */
-    icon = gtk_image_new_from_icon_name ("go-down", GTK_ICON_SIZE_SMALL_TOOLBAR);
+    icon = gtk_image_new_from_icon_name ("pan-down-symbolic", GTK_ICON_SIZE_SMALL_TOOLBAR);
 
     priv->column_menu_icon_box = gtk_box_new (GTK_ORIENTATION_HORIZONTAL, 0);
     gtk_box_set_homogeneous (GTK_BOX(priv->column_menu_icon_box), FALSE);
@@ -288,9 +288,6 @@ gnc_tree_view_init (GncTreeView *view, void *data)
 
     gtk_widget_show_all (priv->column_menu_icon_box);
 
-    g_signal_connect (G_OBJECT(icon), "draw",
-                      G_CALLBACK(gnc_draw_arrow_cb), GINT_TO_POINTER(1));
-
     column = gnc_tree_view_add_text_column (view, NULL, NULL, NULL, NULL,
                                             -1, -1, NULL);
     g_object_set (G_OBJECT(column),
diff --git a/gnucash/gnome/gnc-plugin-page-invoice.c b/gnucash/gnome/gnc-plugin-page-invoice.c
index c47cde0db..09254df3a 100644
--- a/gnucash/gnome/gnc-plugin-page-invoice.c
+++ b/gnucash/gnome/gnc-plugin-page-invoice.c
@@ -201,12 +201,12 @@ static GtkActionEntry gnc_plugin_page_invoice_actions [] =
         G_CALLBACK (gnc_plugin_page_invoice_cmd_duplicateEntry)
     },
     {
-        "EntryUpAction", "go-up", N_("Move Entry _Up"), NULL,
+        "EntryUpAction", "pan-up-symbolic", N_("Move Entry _Up"), NULL,
         N_("Move the current entry one row upwards"),
         G_CALLBACK (gnc_plugin_page_invoice_cmd_entryUp)
     },
     {
-        "EntryDownAction", "go-down", N_("Move Entry Do_wn"), NULL,
+        "EntryDownAction", "pan-down-symbolic", N_("Move Entry Do_wn"), NULL,
         N_("Move the current entry one row downwards"),
         G_CALLBACK (gnc_plugin_page_invoice_cmd_entryDown)
     },
diff --git a/gnucash/gnome/gnc-plugin-page-register2.c b/gnucash/gnome/gnc-plugin-page-register2.c
index 5151b4a52..1082ab929 100644
--- a/gnucash/gnome/gnc-plugin-page-register2.c
+++ b/gnucash/gnome/gnc-plugin-page-register2.c
@@ -324,12 +324,12 @@ static GtkActionEntry gnc_plugin_page_register2_actions [] =
         G_CALLBACK (gnc_plugin_page_register2_cmd_reverse_transaction)
     },
     {
-        TRANSACTION_UP_ACTION, "go-up", N_("Move Transaction _Up"), NULL,
+        TRANSACTION_UP_ACTION, "pan-up-symbolic", N_("Move Transaction _Up"), NULL,
         N_("Move the current transaction one row upwards. Only available if the date and number of both rows are identical and the register window is sorted by date."),
         G_CALLBACK (gnc_plugin_page_register2_cmd_entryUp)
     },
     {
-        TRANSACTION_DOWN_ACTION, "go-down", N_("Move Transaction Do_wn"), NULL,
+        TRANSACTION_DOWN_ACTION, "pan-down-symbolic", N_("Move Transaction Do_wn"), NULL,
         N_("Move the current transaction one row downwards. Only available if the date and number of both rows are identical and the register window is sorted by date."),
         G_CALLBACK (gnc_plugin_page_register2_cmd_entryDown)
     },

commit 4b5202f55dcf0f0928bb47abde65c4d90fbbd7c2
Author: Robert Fewell <14uBobIT at gmail.com>
Date:   Fri Nov 6 13:14:31 2020 +0000

    Bug 688917 - Edit style sheet help button not working
    
    Setup the connection between the help button and the edit style sheet
    section in the help.

diff --git a/gnucash/gnome-utils/gnc-gnome-utils.c b/gnucash/gnome-utils/gnc-gnome-utils.c
index c2c186b32..b750a011f 100644
--- a/gnucash/gnome-utils/gnc-gnome-utils.c
+++ b/gnucash/gnome-utils/gnc-gnome-utils.c
@@ -130,6 +130,20 @@ gnc_options_dialog_set_new_book_option_values (GNCOptionDB *odb)
     }
 }
 
+static void
+gnc_style_sheet_options_help_cb (GNCOptionWin *win, gpointer dat)
+{
+    gnc_gnome_help (HF_HELP, HL_STYLE_SHEET);
+}
+
+void
+gnc_options_dialog_set_style_sheet_options_help_cb (GNCOptionWin *win)
+{
+    gnc_options_dialog_set_help_cb (win,
+                                   (GNCOptionWinCallback)gnc_style_sheet_options_help_cb,
+                                    NULL);
+}
+
 static void
 gnc_commodity_help_cb (void)
 {
diff --git a/gnucash/gnome-utils/gnc-gnome-utils.h b/gnucash/gnome-utils/gnc-gnome-utils.h
index 721b3ff6b..6c10f991d 100644
--- a/gnucash/gnome-utils/gnc-gnome-utils.h
+++ b/gnucash/gnome-utils/gnc-gnome-utils.h
@@ -73,6 +73,11 @@ void gnc_options_dialog_set_book_options_help_cb (GNCOptionWin *win);
  */
 void gnc_options_dialog_set_new_book_option_values (GNCOptionDB *odb);
 
+/** Set the help callback to 'gnc_style_sheet_options_help_cb' to open a help browser
+ *  and point it to the Style Sheet link in the Help file.
+ */
+void gnc_options_dialog_set_style_sheet_options_help_cb (GNCOptionWin *win);
+
 /** Given a file name, find and load the requested pixmap.  This
  *  routine will display an error message if it can't find the file or
  *  load the pixmap.
diff --git a/gnucash/gnome-utils/gnc-ui.h b/gnucash/gnome-utils/gnc-ui.h
index fb102c654..c8263abac 100644
--- a/gnucash/gnome-utils/gnc-ui.h
+++ b/gnucash/gnome-utils/gnc-ui.h
@@ -68,6 +68,7 @@
 #define HL_RECNWIN           "acct-reconcile"
 #define HL_SXEDITOR          "trans-sched"
 #define HL_BOOK_OPTIONS      "book-options"
+#define HL_STYLE_SHEET       "change-style"
 #define HL_CLOSE_BOOK        "tool-close-book"
 #define HL_USAGE_CUSTOMREP   "report-saving"
 #define HL_IMPORT_BC         "busnss-imp-bills-invoices"
diff --git a/gnucash/gnome/dialog-report-style-sheet.c b/gnucash/gnome/dialog-report-style-sheet.c
index 52de56c76..1df072a85 100644
--- a/gnucash/gnome/dialog-report-style-sheet.c
+++ b/gnucash/gnome/dialog-report-style-sheet.c
@@ -33,6 +33,7 @@
 #include "gnc-component-manager.h"
 #include "gnc-session.h"
 #include "gnc-gtk-utils.h"
+#include "gnc-gnome-utils.h"
 #include "gnc-guile-utils.h"
 #include "gnc-report.h"
 #include "gnc-ui.h"
@@ -180,6 +181,9 @@ gnc_style_sheet_dialog_create (StyleSheetDialog * ss,
 
     gnc_options_dialog_build_contents (ssinfo->odialog,
                                        ssinfo->odb);
+
+    gnc_options_dialog_set_style_sheet_options_help_cb (ssinfo->odialog);
+
     gnc_options_dialog_set_apply_cb (ssinfo->odialog,
                                      gnc_style_sheet_options_apply_cb,
                                      ssinfo);

commit 17ced7eb2867b3cace0d67c5f0c364fbd9b32fa0
Author: Robert Fewell <14uBobIT at gmail.com>
Date:   Fri Nov 6 13:10:19 2020 +0000

    Fix some incorrect links to the help file

diff --git a/gnucash/gnome-utils/gnc-ui.h b/gnucash/gnome-utils/gnc-ui.h
index a5049ddea..fb102c654 100644
--- a/gnucash/gnome-utils/gnc-ui.h
+++ b/gnucash/gnome-utils/gnc-ui.h
@@ -51,13 +51,14 @@
 #endif
 
 /** Links in the Help Files *****************************************/
-#define HL_USAGE             "usage"
-#define HL_USAGE_BSNSS       "chapter_busnss"
+#define HL_USAGE_BSNSS       "busnss-ar-setup1"
 #define HL_USAGE_INVOICE     "busnss-ar-invoices1"
+#define HL_USAGE_VOUCHER     "busnss-emply-newvchr"
 #define HL_USAGE_BILL        "busnss-ap-bills1"
 #define HL_USAGE_CUSTOMER    "busnss-ar-customers1"
 #define HL_USAGE_VENDOR      "busnss-ap-vendors1"
 #define HL_USAGE_EMPLOYEE    "busnss-emply"
+#define HL_USAGE_JOB         "busnss-ar-jobs1"
 #define HL_ACC               "acct-create"
 #define HL_ACCEDIT           "acct-edit"
 #define HL_COMMODITY         "tool-commodity"
@@ -65,10 +66,12 @@
 #define HL_GLOBPREFS         "set-prefs"
 #define HL_PRINTCHECK        "print-check"
 #define HL_RECNWIN           "acct-reconcile"
-#define HL_SXEDITOR          "tool-sched"
+#define HL_SXEDITOR          "trans-sched"
 #define HL_BOOK_OPTIONS      "book-options"
 #define HL_CLOSE_BOOK        "tool-close-book"
-#define HL_USAGE_CUSTOMREP   "report-custom"
+#define HL_USAGE_CUSTOMREP   "report-saving"
+#define HL_IMPORT_BC         "busnss-imp-bills-invoices"
+#define HL_IMPORT_CUST       "busnss-imp-customer-vendor"
 
 /* GTK Windows - Common Response Codes */
 
diff --git a/gnucash/gnome/dialog-invoice.c b/gnucash/gnome/dialog-invoice.c
index ff309db53..81a82e6aa 100644
--- a/gnucash/gnome/dialog-invoice.c
+++ b/gnucash/gnome/dialog-invoice.c
@@ -538,7 +538,21 @@ gnc_invoice_window_cancel_cb (GtkWidget *widget, gpointer data)
 void
 gnc_invoice_window_help_cb (GtkWidget *widget, gpointer data)
 {
-    gnc_gnome_help(HF_HELP, HL_USAGE_INVOICE);
+    InvoiceWindow *iw = data;
+    GncOwnerType owner_type = gncOwnerGetType (&iw->owner);
+
+    switch(owner_type)
+    {
+        case GNC_OWNER_CUSTOMER:
+           gnc_gnome_help (HF_HELP, HL_USAGE_INVOICE);
+           break;
+        case GNC_OWNER_VENDOR:
+           gnc_gnome_help (HF_HELP, HL_USAGE_BILL);
+           break;
+        default:
+           gnc_gnome_help (HF_HELP, HL_USAGE_VOUCHER);
+           break;
+    }
 }
 
 static const gchar *
diff --git a/gnucash/gnome/dialog-job.c b/gnucash/gnome/dialog-job.c
index d59a3beb4..e698261bb 100644
--- a/gnucash/gnome/dialog-job.c
+++ b/gnucash/gnome/dialog-job.c
@@ -202,7 +202,7 @@ gnc_job_window_cancel_cb (GtkWidget *widget, gpointer data)
 void
 gnc_job_window_help_cb (GtkWidget *widget, gpointer data)
 {
-    gnc_gnome_help(HF_HELP, HL_USAGE_BSNSS);
+    gnc_gnome_help (HF_HELP, HL_USAGE_JOB);
 }
 
 
diff --git a/gnucash/import-export/bi-import/dialog-bi-import-gui.c b/gnucash/import-export/bi-import/dialog-bi-import-gui.c
index 068fe9f8f..c0cf435bc 100644
--- a/gnucash/import-export/bi-import/dialog-bi-import-gui.c
+++ b/gnucash/import-export/bi-import/dialog-bi-import-gui.c
@@ -252,7 +252,7 @@ gnc_bi_import_gui_cancel_cb (GtkWidget *widget, gpointer data)
 void
 gnc_bi_import_gui_help_cb (GtkWidget *widget, gpointer data)
 {
-    gnc_gnome_help(HF_HELP, HL_USAGE_BSNSS);
+    gnc_gnome_help (HF_GUIDE, HL_IMPORT_BC);
 }
 
 static void
diff --git a/gnucash/import-export/customer-import/dialog-customer-import-gui.c b/gnucash/import-export/customer-import/dialog-customer-import-gui.c
index 92b343d71..b34d9fac3 100644
--- a/gnucash/import-export/customer-import/dialog-customer-import-gui.c
+++ b/gnucash/import-export/customer-import/dialog-customer-import-gui.c
@@ -228,7 +228,7 @@ gnc_customer_import_gui_cancel_cb (GtkWidget *widget, gpointer data)
 void
 gnc_customer_import_gui_help_cb (GtkWidget *widget, gpointer data)
 {
-    gnc_gnome_help(HF_HELP, HL_USAGE_BSNSS);
+    gnc_gnome_help (HF_GUIDE, HL_IMPORT_CUST);
 }
 
 static void

commit 65b7b8c4a2d1be21685e293258463591725e91fa
Author: Robert Fewell <14uBobIT at gmail.com>
Date:   Fri Nov 6 13:05:42 2020 +0000

    Section help on windows not working
    
    Key and group names are case sensitive and in the gnucash-help.hhmap
    file the section name is [MAP] so change gnc-help-utils.c to match

diff --git a/libgnucash/app-utils/gnc-help-utils.c b/libgnucash/app-utils/gnc-help-utils.c
index 0c6612b38..ad5530b37 100644
--- a/libgnucash/app-utils/gnc-help-utils.c
+++ b/libgnucash/app-utils/gnc-help-utils.c
@@ -57,13 +57,13 @@ parse_hhmap_file(const gchar *chmfile)
     if (!g_key_file_load_from_file(keyfile, mapfile, G_KEY_FILE_NONE, &error))
         goto cleanup_parse;
 
-    if (NULL == (keys = g_key_file_get_keys(keyfile, "Map", NULL, &error)))
+    if (NULL == (keys = g_key_file_get_keys(keyfile, "MAP", NULL, &error)))
         goto cleanup_parse;
 
     ctxtmap = g_hash_table_new_full(g_str_hash, g_str_equal, g_free, NULL);
     for (key = keys; *key; key++)
     {
-        value = g_key_file_get_integer(keyfile, "Map", *key, &error);
+        value = g_key_file_get_integer(keyfile, "MAP", *key, &error);
         if (error)
             goto cleanup_parse;
         else

commit afcf1765f6c56931d5b4545613d32b8d60c4e7bc
Author: Christopher Lam <christopher.lck at gmail.com>
Date:   Sun Nov 1 11:39:12 2020 +0800

    [auto-clear] provide live feedback when a valid end_amount is input

diff --git a/gnucash/gnome/window-autoclear.c b/gnucash/gnome/window-autoclear.c
index f5270be82..d7dec2eab 100644
--- a/gnucash/gnome/window-autoclear.c
+++ b/gnucash/gnome/window-autoclear.c
@@ -52,6 +52,7 @@ struct _AutoClearWindow
     GtkWidget *cancel_button;
     GtkWidget *show_cleared_splits_button;
     GtkLabel *status_label;
+    GList *toclear_list;
 };
 
 /** Callback prototypes************************************************/
@@ -122,47 +123,44 @@ void
 gnc_autoclear_window_ok_cb (GtkWidget *widget,
                             AutoClearWindow *data)
 {
-    GList *toclear_list;
     gnc_numeric toclear_value;
     gchar *errmsg = NULL;
 
     g_return_if_fail (widget && data);
 
-    toclear_value = gnc_amount_edit_get_amount(data->end_value);
+    /* sanity check: if toclear_list is null, bail out. but this
+       should not happen because the OK button is disabled if there is
+       autoclear error, and toclear_list is null */
+    g_return_if_fail (data->toclear_list);
 
-    if (gnc_reverse_balance(data->account))
-        toclear_value = gnc_numeric_neg (toclear_value);
-
-    toclear_value = gnc_numeric_convert
-        (toclear_value, xaccAccountGetCommoditySCU(data->account), GNC_HOW_RND_ROUND);
+    xaccAccountBeginEdit (data->account);
+    for (GList *node = data->toclear_list; node; node = node->next)
+        xaccSplitSetReconcile (node->data, CREC);
+    xaccAccountCommitEdit (data->account);
 
-    toclear_list = gnc_account_get_autoclear_splits
-        (data->account, toclear_value, &errmsg);
+    if (gtk_toggle_button_get_active
+        (GTK_TOGGLE_BUTTON (data->show_cleared_splits_button)))
+        show_cleared_splits (data->toclear_list);
 
-    if (errmsg)
-    {
-        gtk_label_set_text (data->status_label, errmsg);
-        gnc_amount_edit_set_amount (data->end_value, toclear_value);
-        gtk_editable_select_region (GTK_EDITABLE (data->end_value), 0, -1);
-        g_free (errmsg);
-    }
-    else
-    {
-        xaccAccountBeginEdit (data->account);
-        for (GList *node = toclear_list; node; node = node->next)
-            xaccSplitSetReconcile (node->data, CREC);
-        xaccAccountCommitEdit (data->account);
-
-        if (gtk_toggle_button_get_active
-            (GTK_TOGGLE_BUTTON (data->show_cleared_splits_button)))
-            show_cleared_splits (toclear_list);
+    /* Close window */
+    gnc_autoclear_window_cancel_cb (widget, data);
+}
 
-        g_list_free (toclear_list);
+static gboolean
+gnc_autoclear_window_delete_cb (GtkWidget *widget, GdkEvent  *event,
+                                AutoClearWindow *data)
+{
+    if (data->toclear_list)
+        g_list_free (data->toclear_list);
+    g_free(data);
+    return FALSE;
+}
 
-        /* Close window */
-        gtk_widget_destroy (data->window);
-        g_free (data);
-    }
+static void
+gnc_autoclear_end_value_activate_cb (GtkWidget *widget, AutoClearWindow *data)
+{
+    if (data->toclear_list)
+        gnc_autoclear_window_ok_cb (widget, data);
 }
 
 void
@@ -171,12 +169,80 @@ gnc_autoclear_window_cancel_cb (GtkWidget *widget,
 {
     /* Close window */
     gtk_widget_destroy(data->window);
+    if (data->toclear_list)
+        g_list_free (data->toclear_list);
     g_free(data);
 }
 
-static void clear_status_label_cb (GtkEditable *editable, AutoClearWindow *data)
+#define MAX_LENGTH 50
+
+static void end_value_changed_cb (GtkEditable *editable, AutoClearWindow *data)
 {
-    gtk_label_set_text (data->status_label, "");
+    gnc_numeric toclear_value;
+    gchar *errmsg = NULL;
+
+    if (gnc_amount_edit_expr_is_valid (data->end_value, &toclear_value, TRUE))
+    {
+        gtk_widget_set_sensitive (data->ok_button, FALSE);
+        gtk_label_set_text (data->status_label, "");
+        return;
+    }
+
+    if (gnc_reverse_balance (data->account))
+        toclear_value = gnc_numeric_neg (toclear_value);
+
+    toclear_value = gnc_numeric_convert
+        (toclear_value, xaccAccountGetCommoditySCU(data->account), GNC_HOW_RND_ROUND);
+
+    if (data->toclear_list)
+        g_list_free (data->toclear_list);
+
+    data->toclear_list = gnc_account_get_autoclear_splits
+        (data->account, toclear_value, &errmsg);
+
+    gtk_widget_set_sensitive (data->ok_button, errmsg == NULL);
+
+    if (errmsg)
+    {
+        gtk_widget_set_sensitive (data->ok_button, FALSE);
+        gtk_label_set_text (data->status_label, errmsg);
+        g_free (errmsg);
+    }
+    else
+    {
+        gchar *status = g_strdup (_("The following splits will be cleared:"));
+        GNCPrintAmountInfo p_info = gnc_account_print_info (data->account, TRUE);
+        gboolean reverse = gnc_reverse_balance (data->account);
+        for (GList *node = data->toclear_list; node; node = node->next)
+        {
+            Transaction *trans = xaccSplitGetParent (node->data);
+            gnc_numeric amount = xaccSplitGetAmount (node->data);
+            const gchar *desc = xaccTransGetDescription (trans);
+            gchar *datestr = qof_print_date (xaccTransGetDate (trans));
+            gchar *newdesc, *newstatus;
+
+            if (g_utf8_strlen (desc, -1) > MAX_LENGTH)
+            {
+                gchar *trunc = g_utf8_substring (desc, 0, MAX_LENGTH);
+                newdesc = g_strdup_printf ("%s...", trunc);
+                g_free (trunc);
+            }
+            else
+                newdesc = g_strdup (desc);
+
+            if (reverse)
+                amount = gnc_numeric_neg (amount);
+
+            newstatus = g_strdup_printf ("%s\n%s %s %s", status, datestr,
+                                         newdesc, xaccPrintAmount (amount, p_info));
+            g_free (status);
+            g_free (datestr);
+            g_free (newdesc);
+            status = newstatus;
+        }
+        gtk_label_set_text (data->status_label, status);
+        g_free (status);
+    }
 }
 
 
@@ -212,13 +278,23 @@ autoClearWindow (GtkWidget *parent, Account *account)
     // Set the name for this dialog so it can be easily manipulated with css
     gtk_widget_set_name (GTK_WIDGET(data->window), "gnc-id-auto-clear");
 
+    data->ok_button = GTK_WIDGET (gtk_builder_get_object (builder, "ok_button"));
+    gtk_widget_set_sensitive (data->ok_button, FALSE);
+
+    data->cancel_button = GTK_WIDGET (gtk_builder_get_object
+                                      (builder, "cancel_button"));
+
     data->show_cleared_splits_button =
         GTK_WIDGET (gtk_builder_get_object (builder, "show_cleared_splits_button"));
 
     /* Add amount edit box */
     data->end_value = GNC_AMOUNT_EDIT(gnc_amount_edit_new());
     g_signal_connect(GTK_WIDGET(data->end_value), "activate",
+                     G_CALLBACK(gnc_autoclear_end_value_activate_cb), data);
+    g_signal_connect(GTK_WIDGET(data->ok_button), "activate",
                      G_CALLBACK(gnc_autoclear_window_ok_cb), data);
+    g_signal_connect(GTK_WIDGET(data->cancel_button), "activate",
+                     G_CALLBACK(gnc_autoclear_window_cancel_cb), data);
 
     box   = GTK_BOX(gtk_builder_get_object (builder, "end_value_box"));
     gtk_box_pack_start(box, GTK_WIDGET(data->end_value), TRUE, TRUE, 0);
@@ -237,7 +313,10 @@ autoClearWindow (GtkWidget *parent, Account *account)
     data->status_label = GTK_LABEL(gtk_builder_get_object (builder, "status_label"));
 
     g_signal_connect (GTK_WIDGET(data->end_value), "changed",
-                      G_CALLBACK(clear_status_label_cb), data);
+                      G_CALLBACK(end_value_changed_cb), data);
+
+    g_signal_connect (data->window, "delete-event",
+                      G_CALLBACK (gnc_autoclear_window_delete_cb), data);
 
     if (parent != NULL)
         gtk_window_set_transient_for (GTK_WINDOW (data->window), GTK_WINDOW (parent));

commit 7e4f120f97335f98457e41be0674c45248624631
Author: Cristian Klein <cristian.klein at elastisys.com>
Date:   Wed Oct 28 22:36:11 2020 +0100

    Add auto-clear to register page

diff --git a/gnucash/ui/gnc-plugin-page-register-ui.xml b/gnucash/ui/gnc-plugin-page-register-ui.xml
index a32b3bd5a..5a240a5b2 100644
--- a/gnucash/ui/gnc-plugin-page-register-ui.xml
+++ b/gnucash/ui/gnc-plugin-page-register-ui.xml
@@ -44,6 +44,7 @@
         <separator name="ActionsSep1"/>
         <menuitem name="ActionsTransfer" action="ActionsTransferAction"/>
         <menuitem name="ActionsReconcile" action="ActionsReconcileAction"/>
+        <menuitem name="ActionsAutoClear" action="ActionsAutoClearAction"/>
         <menuitem name="ActionsStockSplit" action="ActionsStockSplitAction"/>
         <menuitem name="ActionLots" action="ActionsLotsAction"/>
         <separator name="ActionsSep4"/>
diff --git a/gnucash/ui/gnc-plugin-page-register2-ui.xml b/gnucash/ui/gnc-plugin-page-register2-ui.xml
index 3d903d9ac..8c4c4afab 100644
--- a/gnucash/ui/gnc-plugin-page-register2-ui.xml
+++ b/gnucash/ui/gnc-plugin-page-register2-ui.xml
@@ -43,6 +43,7 @@
         <separator name="ActionsSep1"/>
         <menuitem name="ActionsTransfer" action="ActionsTransferAction"/>
         <menuitem name="ActionsReconcile" action="ActionsReconcileAction"/>
+        <menuitem name="ActionsAutoClear" action="ActionsAutoClearAction"/>
         <menuitem name="ActionsStockSplit" action="ActionsStockSplitAction"/>
         <menuitem name="ActionLots" action="ActionsLotsAction"/>
         <separator name="ActionsSep4"/>

commit d1d464738fb021a2c7bee1b9ed51531d556ef20d
Author: Christopher Lam <christopher.lck at gmail.com>
Date:   Wed Nov 4 11:18:36 2020 +0800

    [autoclear] show cleared splits is optional

diff --git a/gnucash/gnome/window-autoclear.c b/gnucash/gnome/window-autoclear.c
index 31d2c40c6..f5270be82 100644
--- a/gnucash/gnome/window-autoclear.c
+++ b/gnucash/gnome/window-autoclear.c
@@ -50,6 +50,7 @@ struct _AutoClearWindow
     GNCAmountEdit *end_value;/* The ending value                      */
     GtkWidget *ok_button;
     GtkWidget *cancel_button;
+    GtkWidget *show_cleared_splits_button;
     GtkLabel *status_label;
 };
 
@@ -151,7 +152,11 @@ gnc_autoclear_window_ok_cb (GtkWidget *widget,
         for (GList *node = toclear_list; node; node = node->next)
             xaccSplitSetReconcile (node->data, CREC);
         xaccAccountCommitEdit (data->account);
-        show_cleared_splits (toclear_list);
+
+        if (gtk_toggle_button_get_active
+            (GTK_TOGGLE_BUTTON (data->show_cleared_splits_button)))
+            show_cleared_splits (toclear_list);
+
         g_list_free (toclear_list);
 
         /* Close window */
@@ -207,6 +212,9 @@ autoClearWindow (GtkWidget *parent, Account *account)
     // Set the name for this dialog so it can be easily manipulated with css
     gtk_widget_set_name (GTK_WIDGET(data->window), "gnc-id-auto-clear");
 
+    data->show_cleared_splits_button =
+        GTK_WIDGET (gtk_builder_get_object (builder, "show_cleared_splits_button"));
+
     /* Add amount edit box */
     data->end_value = GNC_AMOUNT_EDIT(gnc_amount_edit_new());
     g_signal_connect(GTK_WIDGET(data->end_value), "activate",
diff --git a/gnucash/gtkbuilder/window-autoclear.glade b/gnucash/gtkbuilder/window-autoclear.glade
index 7486f9f76..25730a6ff 100644
--- a/gnucash/gtkbuilder/window-autoclear.glade
+++ b/gnucash/gtkbuilder/window-autoclear.glade
@@ -135,6 +135,22 @@ Use this dialog if you want GnuCash to automatically find which transactions are
                 <property name="position">1</property>
               </packing>
             </child>
+            <child>
+              <object class="GtkCheckButton" id="show_cleared_splits_button">
+                <property name="label" translatable="yes">_Review cleared splits</property>
+                <property name="visible">True</property>
+                <property name="can_focus">True</property>
+                <property name="receives_default">False</property>
+                <property name="tooltip_text" translatable="yes">Select this option to open a register tab with newly cleared splits.</property>
+                <property name="use_underline">True</property>
+                <property name="draw_indicator">True</property>
+              </object>
+              <packing>
+                <property name="expand">False</property>
+                <property name="fill">True</property>
+                <property name="position">2</property>
+              </packing>
+            </child>
           </object>
           <packing>
             <property name="expand">False</property>

commit 54f614feedf58886896fe6c8a4fcbaea7254b199
Author: Christopher Lam <christopher.lck at gmail.com>
Date:   Tue Nov 3 11:19:16 2020 +0800

    [html-text] compact gnc:html-markup-img

diff --git a/gnucash/report/html-text.scm b/gnucash/report/html-text.scm
index 94a04d420..7fb0da9c5 100644
--- a/gnucash/report/html-text.scm
+++ b/gnucash/report/html-text.scm
@@ -22,6 +22,7 @@
 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
 
 (use-modules (srfi srfi-9))
+(use-modules (ice-9 match))
 
 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
 ;;  <html-text> class
@@ -184,15 +185,10 @@
          rest))
 
 (define (gnc:html-markup-img src . rest)
-  (gnc:html-markup/attr/no-end 
-   "img" 
-   (with-output-to-string
-     (lambda ()
-       (for-each 
-        (lambda (kvp)
-          (format #t "~a=~s " (car kvp) (cadr kvp)))
-        (cons (list 'src src)
-              rest))))))
+  (let lp ((tags (cons (list 'src src) rest)) (acc '()))
+    (match tags
+      (() (gnc:html-markup/attr/no-end "img" (string-concatenate-reverse acc)))
+      (((attr val) . tail) (lp tail (cons (format #f "~a=~s " attr val) acc))))))
 
 (define (gnc:html-text-render p doc)
   (let* ((retval '())

commit d867a9d50d2ca0796f38486803814c5ce70661fb
Author: Robert Fewell <14uBobIT at gmail.com>
Date:   Tue Nov 3 14:07:52 2020 +0000

    Set the visibility of the account column in import-main-matcher
    
    After the import-main-matcher is shown, set the visibility of the
    account column based on the number of accounts being displayed.

diff --git a/gnucash/import-export/import-main-matcher.c b/gnucash/import-export/import-main-matcher.c
index 82ad17f17..92d3f7b08 100644
--- a/gnucash/import-export/import-main-matcher.c
+++ b/gnucash/import-export/import-main-matcher.c
@@ -235,6 +235,60 @@ gnc_gen_trans_list_empty (GNCImportMainMatcher *info)
     return !gtk_tree_model_get_iter_first (model, &iter) && !info->temp_trans_list;
 }
 
+static void
+gnc_gen_trans_list_show_accounts_column (GNCImportMainMatcher *info)
+{
+    GtkTreeModel *model;
+    GtkTreeIter iter;
+    GNCImportTransInfo *trans_info;
+    gboolean multiple_accounts = FALSE;
+    gboolean valid;
+
+    g_assert (info);
+
+    model = gtk_tree_view_get_model (info->view);
+
+    if (gtk_tree_model_iter_n_children (model, NULL) > 1)
+    {
+        /* Get first row in list store */
+        valid = gtk_tree_model_get_iter_first (model, &iter);
+        if (valid)
+        {
+            gchar *account_name;
+            gtk_tree_model_get (model, &iter, DOWNLOADED_COL_ACCOUNT, &account_name, -1);
+
+            valid = gtk_tree_model_iter_next (model, &iter);
+
+            while (valid)
+            {
+                gchar *test_account_name;
+
+                gtk_tree_model_get (model, &iter, DOWNLOADED_COL_ACCOUNT, &test_account_name, -1);
+                if (g_strcmp0 (account_name, test_account_name) != 0)
+                {
+                     multiple_accounts = TRUE;
+                     g_free (test_account_name);
+                     break;
+                }
+                valid = gtk_tree_model_iter_next (model, &iter);
+                g_free (test_account_name);
+            }
+            g_free (account_name);
+        }
+        // now toggle the column
+        if (multiple_accounts)
+        {
+            gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON(info->show_account_column), TRUE);
+            gtk_tree_view_expand_all (info->view);
+        }
+        else
+        {
+            gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON(info->show_account_column), FALSE);
+            gtk_tree_view_collapse_all (info->view);
+        }
+    }
+}
+
 // This returns the transaction ID of the first match candidate in match_list
 static const GncGUID*
 get_top_trans_match_id (GList* match_list)
@@ -395,6 +449,7 @@ gnc_gen_trans_list_show_all (GNCImportMainMatcher *info)
     gnc_gen_trans_list_create_matches (info);
     resolve_conflicts (info);
     gtk_widget_show_all (GTK_WIDGET(info->main_widget));
+    gnc_gen_trans_list_show_accounts_column (info);
 }
 
 void
diff --git a/gnucash/import-export/ofx/gnc-ofx-import.c b/gnucash/import-export/ofx/gnc-ofx-import.c
index 4f887b2dc..cfd67dbef 100644
--- a/gnucash/import-export/ofx/gnc-ofx-import.c
+++ b/gnucash/import-export/ofx/gnc-ofx-import.c
@@ -1163,7 +1163,7 @@ gnc_file_ofx_import_process_file (ofx_info* info)
     /*ofx_set_status_cb(libofx_context, ofx_proc_status_cb, 0);*/
 
     // Create the match dialog, and run the ofx file through the importer.
-    info->gnc_ofx_importer_gui = gnc_gen_trans_list_new (GTK_WIDGET(parent), NULL, TRUE, 42, FALSE);
+    info->gnc_ofx_importer_gui = gnc_gen_trans_list_new (GTK_WIDGET(parent), NULL, FALSE, 42, FALSE);
     libofx_proc_file (libofx_context, selected_filename, AUTODETECT);
 
     // Free the libofx context before recursing to process the next file

commit 0382859e0ae686d42d5cadba400df4ba5aabee89
Author: Robert Fewell <14uBobIT at gmail.com>
Date:   Tue Nov 3 14:06:49 2020 +0000

    Change source files import-main-matcher.* for space and tabs

diff --git a/gnucash/import-export/import-main-matcher.c b/gnucash/import-export/import-main-matcher.c
index d30c9b3dd..82ad17f17 100644
--- a/gnucash/import-export/import-main-matcher.c
+++ b/gnucash/import-export/import-main-matcher.c
@@ -68,16 +68,16 @@ struct _main_matcher_info
     GNCTransactionProcessedCB transaction_processed_cb;
     gpointer user_data;
     GNCImportPendingMatches *pending_matches;
-    GtkTreeViewColumn *account_column;
-    GtkTreeViewColumn *memo_column;
-    GtkWidget         *show_account_column;
-    GtkWidget         *show_matched_info;
-    GtkWidget         *reconcile_after_close;
-    gboolean add_toggled;   // flag to indicate that add has been toggled to stop selection
+    GtkTreeViewColumn       *account_column;
+    GtkTreeViewColumn       *memo_column;
+    GtkWidget               *show_account_column;
+    GtkWidget               *show_matched_info;
+    GtkWidget               *reconcile_after_close;
+    gboolean add_toggled;     // flag to indicate that add has been toggled to stop selection
     gint id;
-    GSList* temp_trans_list; // Temporary list of imported transactions
-    GHashTable* acct_id_hash;     // Hash table, per account, of list of transaction IDs.
-    GSList* edited_accounts; // List of accounts currently edited.
+    GSList* temp_trans_list;  // Temporary list of imported transactions
+    GHashTable* acct_id_hash; // Hash table, per account, of list of transaction IDs.
+    GSList* edited_accounts;  // List of accounts currently edited.
 };
 
 enum downloaded_cols
@@ -118,41 +118,36 @@ void on_matcher_help_close_clicked (GtkButton *button, gpointer user_data);
 static void gnc_gen_trans_list_create_matches (GNCImportMainMatcher *gui);
 
 /* Local prototypes */
-static void gnc_gen_trans_assign_transfer_account (
-                    GtkTreeView *treeview,
-                    gboolean *first,
-                    gboolean is_selection,
-                    GtkTreePath *path,
-                    Account **new_acc,
-                    GNCImportMainMatcher *info);
-static void gnc_gen_trans_assign_transfer_account_to_selection_cb (
-                    GtkMenuItem *menuitem,
-                    GNCImportMainMatcher *info);
-static void gnc_gen_trans_view_popup_menu (
-                    GtkTreeView *treeview,
-                    GdkEvent *event,
-                    GNCImportMainMatcher *info);
-static gboolean gnc_gen_trans_onButtonPressed_cb (
-                    GtkTreeView *treeview,
-                    GdkEvent *event,
-                    GNCImportMainMatcher *info);
-static gboolean gnc_gen_trans_onPopupMenu_cb (
-                    GtkTreeView *treeview,
-                    GNCImportMainMatcher *info);
-static void refresh_model_row (
-                    GNCImportMainMatcher *gui,
-                    GtkTreeModel *model,
-                    GtkTreeIter *iter,
-                    GNCImportTransInfo *info);
+static void gnc_gen_trans_assign_transfer_account (GtkTreeView *treeview,
+                                                   gboolean *first,
+                                                   gboolean is_selection,
+                                                   GtkTreePath *path,
+                                                   Account **new_acc,
+                                                   GNCImportMainMatcher *info);
+static void gnc_gen_trans_assign_transfer_account_to_selection_cb (GtkMenuItem *menuitem,
+                                                                   GNCImportMainMatcher *info);
+static void gnc_gen_trans_view_popup_menu (GtkTreeView *treeview,
+                                           GdkEvent *event,
+                                           GNCImportMainMatcher *info);
+static gboolean gnc_gen_trans_onButtonPressed_cb (GtkTreeView *treeview,
+                                                  GdkEvent *event,
+                                                  GNCImportMainMatcher *info);
+static gboolean gnc_gen_trans_onPopupMenu_cb (GtkTreeView *treeview,
+                                              GNCImportMainMatcher *info);
+static void refresh_model_row (GNCImportMainMatcher *gui,
+                               GtkTreeModel *model,
+                               GtkTreeIter *iter,
+                               GNCImportTransInfo *info);
 static gboolean query_tooltip_tree_view_cb (GtkWidget *widget, gint x, gint y,
                                             gboolean keyboard_tip,
                                             GtkTooltip *tooltip,
                                             gpointer user_data);
 /* end local prototypes */
 
-static gboolean delete_hash (gpointer key, gpointer value, gpointer user_data)
+static
+gboolean delete_hash (gpointer key, gpointer value, gpointer user_data)
 {
-    // Value is a hash table that needs to be destroyed. 
+    // Value is a hash table that needs to be destroyed.
     g_hash_table_destroy (value);
     return TRUE;
 }
@@ -162,8 +157,8 @@ update_all_balances (GNCImportMainMatcher *info)
 {
     for (GSList* iter = info->edited_accounts; iter; iter=iter->next)
     {
-        gnc_account_set_defer_bal_computation(iter->data,FALSE);
-        xaccAccountRecomputeBalance(iter->data);
+        gnc_account_set_defer_bal_computation (iter->data,FALSE);
+        xaccAccountRecomputeBalance (iter->data);
     }
     g_slist_free (info->edited_accounts);
     info->edited_accounts = NULL;
@@ -172,14 +167,15 @@ update_all_balances (GNCImportMainMatcher *info)
 static void
 defer_bal_computation (GNCImportMainMatcher *info, Account* acc)
 {
-    if (!gnc_account_get_defer_bal_computation(acc))
+    if (!gnc_account_get_defer_bal_computation (acc))
     {
         gnc_account_set_defer_bal_computation (acc, TRUE);
         info->edited_accounts = g_slist_prepend (info->edited_accounts, acc);
     }
 }
 
-void gnc_gen_trans_list_delete (GNCImportMainMatcher *info)
+void
+gnc_gen_trans_list_delete (GNCImportMainMatcher *info)
 {
     GtkTreeModel *model;
     GtkTreeIter iter;
@@ -211,23 +207,24 @@ void gnc_gen_trans_list_delete (GNCImportMainMatcher *info)
         gnc_save_window_size (GNC_PREFS_GROUP, GTK_WINDOW(info->main_widget));
         gnc_import_Settings_delete (info->user_settings);
         gnc_unregister_gui_component (info->id);
-        gtk_widget_destroy (GTK_WIDGET (info->main_widget));
+        gtk_widget_destroy (GTK_WIDGET(info->main_widget));
     }
     else
         gnc_import_Settings_delete (info->user_settings);
 
-    g_slist_free_full (info->temp_trans_list,(GDestroyNotify) gnc_import_TransInfo_delete);
+    g_slist_free_full (info->temp_trans_list, (GDestroyNotify) gnc_import_TransInfo_delete);
     info->temp_trans_list = NULL;
-    
+
     // We've deferred balance computations on many accounts. Let's do it now that we're done.
     update_all_balances (info);
-    
+
     g_hash_table_foreach_remove (info->acct_id_hash, delete_hash, NULL);
     info->acct_id_hash = NULL;
     g_free (info);
 }
 
-gboolean gnc_gen_trans_list_empty(GNCImportMainMatcher *info)
+gboolean
+gnc_gen_trans_list_empty (GNCImportMainMatcher *info)
 {
     GtkTreeModel *model;
     GtkTreeIter iter;
@@ -247,12 +244,12 @@ get_top_trans_match_id (GList* match_list)
     if (!match_list || !match_list->data) return NULL;
     match_info = match_list->data;
     trans = match_info->trans;
-    return xaccTransGetGUID(trans);
+    return xaccTransGetGUID (trans);
 }
 
 // This returns the transaction score of the first match candidate in match_list
 static gint
-get_top_trans_match_score(GList* match_list)
+get_top_trans_match_score (GList* match_list)
 {
     GNCImportMatchInfo* match_info;
     if (!match_list || !match_list->data) return 0;
@@ -271,7 +268,7 @@ get_trans_match_list (GtkTreeModel* model, GtkTreeIter* iter)
 }
 
 static GNCImportTransInfo*
-get_trans_info(GtkTreeModel* model, GtkTreeIter* iter)
+get_trans_info (GtkTreeModel* model, GtkTreeIter* iter)
 {
     GNCImportTransInfo* transaction_info;
     gtk_tree_model_get (model, iter,
@@ -342,7 +339,7 @@ static void
 resolve_conflicts (GNCImportMainMatcher *info)
 {
     GtkTreeModel* model = gtk_tree_view_get_model (info->view);
-    GtkListStore* store = GTK_LIST_STORE (model);
+    GtkListStore* store = GTK_LIST_STORE(model);
     GtkTreeIter import_iter, best_import;
     gint best_match = 0;
 
@@ -391,12 +388,13 @@ resolve_conflicts (GNCImportMainMatcher *info)
     }
 }
 
-void gnc_gen_trans_list_show_all(GNCImportMainMatcher *info)
+void
+gnc_gen_trans_list_show_all (GNCImportMainMatcher *info)
 {
     g_assert (info);
     gnc_gen_trans_list_create_matches (info);
     resolve_conflicts (info);
-    gtk_widget_show_all (GTK_WIDGET (info->main_widget));
+    gtk_widget_show_all (GTK_WIDGET(info->main_widget));
 }
 
 void
@@ -420,7 +418,7 @@ on_matcher_ok_clicked (GtkButton *button, GNCImportMainMatcher *info)
 
     /* Don't run any queries and/or split sorts while processing the matcher
     results. */
-    gnc_suspend_gui_refresh();
+    gnc_suspend_gui_refresh ();
     do
     {
         gtk_tree_model_get (model, &iter,
@@ -440,11 +438,11 @@ on_matcher_ok_clicked (GtkButton *button, GNCImportMainMatcher *info)
         }
     }
     while (gtk_tree_model_iter_next (model, &iter));
-    
+
     gnc_gen_trans_list_delete (info);
 
     /* Allow GUI refresh again. */
-    gnc_resume_gui_refresh();
+    gnc_resume_gui_refresh ();
 
     /* DEBUG ("End") */
 }
@@ -481,7 +479,7 @@ on_matcher_help_clicked (GtkButton *button, gpointer user_data)
     gchar *int_required_class, *int_prob_required_class, *int_not_required_class;
     gchar *class_extension = NULL;
 
-    builder = gtk_builder_new();
+    builder = gtk_builder_new ();
     gnc_builder_add_from_file (builder, "dialog-import.glade", "textbuffer2");
     gnc_builder_add_from_file (builder, "dialog-import.glade", "textbuffer3");
     gnc_builder_add_from_file (builder, "dialog-import.glade", "textbuffer4");
@@ -532,7 +530,7 @@ run_account_picker_dialog (GNCImportMainMatcher *info,
     old_acc = gnc_import_TransInfo_get_destacc (trans_info);
 
     new_acc = gnc_import_select_account (
-            info->main_widget,
+             info->main_widget,
              NULL,
              TRUE,
              _("Destination account for the auto-balance split."),
@@ -719,9 +717,8 @@ gnc_gen_trans_assign_transfer_account (GtkTreeView *treeview,
 }
 
 static void
-gnc_gen_trans_assign_transfer_account_to_selection_cb (
-            GtkMenuItem *menuitem,
-            GNCImportMainMatcher *info)
+gnc_gen_trans_assign_transfer_account_to_selection_cb (GtkMenuItem *menuitem,
+                                                       GNCImportMainMatcher *info)
 {
     GtkTreeView *treeview;
     GtkTreeSelection *selection;
@@ -753,16 +750,15 @@ gnc_gen_trans_assign_transfer_account_to_selection_cb (
             gchar *path_str = gtk_tree_path_to_string (l->data);
             GtkTreeRowReference *ref = gtk_tree_row_reference_new (model, l->data);
             DEBUG("passing first = %s", first ? "true" : "false");
-            DEBUG("passing is_selection = %s",
-                        is_selection ? "true" : "false");
+            DEBUG("passing is_selection = %s", is_selection ? "true" : "false");
             DEBUG("passing path = %s", path_str);
             g_free (path_str);
             refs = g_list_prepend (refs, ref);
             DEBUG("passing account value = %s",
                         gnc_account_get_full_name (assigned_account));
             gnc_gen_trans_assign_transfer_account (treeview,
-                        &first, is_selection, l->data,
-                        &assigned_account, info);
+                                                   &first, is_selection, l->data,
+                                                   &assigned_account, info);
             DEBUG("returned value of account = %s",
                         gnc_account_get_full_name (assigned_account));
             DEBUG("returned value of first = %s", first ? "true" : "false");
@@ -771,7 +767,7 @@ gnc_gen_trans_assign_transfer_account_to_selection_cb (
 
         }
     }
-    g_list_free_full (selected_rows, (GDestroyNotify) gtk_tree_path_free);
+    g_list_free_full (selected_rows, (GDestroyNotify)gtk_tree_path_free);
 
     // now reselect the transaction rows. This is very slow if there are lots of transactions.
     for (l = refs; l != NULL; l = l->next)
@@ -802,8 +798,8 @@ gnc_gen_trans_row_activated_cb (GtkTreeView *treeview,
     first = TRUE;
     is_selection = FALSE;
     gnc_gen_trans_assign_transfer_account (treeview,
-                            &first, is_selection, path,
-                            &assigned_account, info);
+                                           &first, is_selection, path,
+                                           &assigned_account, info);
 
     gtk_tree_selection_select_path (gtk_tree_view_get_selection (treeview), path);
 
@@ -840,9 +836,9 @@ gnc_gen_trans_row_changed_cb (GtkTreeSelection *selection,
             if (get_action_for_path (list->data, model) != GNCImport_ADD)
                 gtk_tree_selection_unselect_path (selection, list->data);
         }
-        g_list_free_full (list, (GDestroyNotify) gtk_tree_path_free);
+        g_list_free_full (list, (GDestroyNotify)gtk_tree_path_free);
     }
-    
+
     switch (mode)
     {
         case GTK_SELECTION_MULTIPLE:
@@ -876,7 +872,7 @@ gnc_gen_trans_view_popup_menu (GtkTreeView *treeview,
     ENTER ("");
     menu = gtk_menu_new();
     menuitem = gtk_menu_item_new_with_label (
-            _("Assign a transfer account to the selection."));
+                   _("Assign a transfer account to the selection."));
     g_signal_connect (menuitem, "activate",
                       G_CALLBACK(
                       gnc_gen_trans_assign_transfer_account_to_selection_cb),
@@ -923,7 +919,7 @@ gnc_gen_trans_onButtonPressed_cb (GtkTreeView *treeview,
                 get_action_for_path (selected->data, model);
                 if (get_action_for_path (selected->data, model) == GNCImport_ADD)
                     gnc_gen_trans_view_popup_menu (treeview, event, info);
-                g_list_free_full (selected, (GDestroyNotify) gtk_tree_path_free);
+                g_list_free_full (selected, (GDestroyNotify)gtk_tree_path_free);
             }
             LEAVE("return TRUE");
             return TRUE;
@@ -952,17 +948,17 @@ gnc_gen_trans_onPopupMenu_cb (GtkTreeView *treeview,
 }
 
 static GtkTreeViewColumn *
-add_text_column(GtkTreeView *view, const gchar *title, int col_num, gboolean ellipsize)
+add_text_column (GtkTreeView *view, const gchar *title, int col_num, gboolean ellipsize)
 {
     GtkCellRenderer *renderer;
     GtkTreeViewColumn *column;
 
-    renderer = gtk_cell_renderer_text_new();
-    column = gtk_tree_view_column_new_with_attributes
-             (title, renderer,
-              "text", col_num,
-              "background", DOWNLOADED_COL_COLOR,
-              NULL);
+    renderer = gtk_cell_renderer_text_new ();
+    column = gtk_tree_view_column_new_with_attributes (title,
+                                                       renderer,
+                                                       "text", col_num,
+                                                       "background", DOWNLOADED_COL_COLOR,
+                                                       NULL);
 
     if (ellipsize)
         g_object_set (renderer, "ellipsize", PANGO_ELLIPSIZE_END, NULL);
@@ -994,18 +990,15 @@ add_toggle_column (GtkTreeView *view, const gchar *title, int col_num,
     GtkCellRenderer *renderer;
     GtkTreeViewColumn *column;
 
-    renderer = gtk_cell_renderer_toggle_new();
-    column = gtk_tree_view_column_new_with_attributes
-             (title, renderer,
-              "active", col_num,
-              "cell-background", DOWNLOADED_COL_COLOR,
-              "activatable", DOWNLOADED_COL_ENABLE,
-              "visible", DOWNLOADED_COL_ENABLE,
-              NULL);
+    renderer = gtk_cell_renderer_toggle_new ();
+    column = gtk_tree_view_column_new_with_attributes (title, renderer,
+                                                       "active", col_num,
+                                                       "cell-background", DOWNLOADED_COL_COLOR,
+                                                       "activatable", DOWNLOADED_COL_ENABLE,
+                                                       "visible", DOWNLOADED_COL_ENABLE,
+                                                       NULL);
     gtk_tree_view_column_set_sort_column_id (column, col_num);
-    g_object_set (G_OBJECT(column),
-                  "reorderable", TRUE,
-                  NULL);
+    g_object_set (G_OBJECT(column), "reorderable", TRUE, NULL);
     g_signal_connect (renderer, "toggled", cb_fn, cb_arg);
     gtk_tree_view_append_column (view, column);
     return column;
@@ -1042,24 +1035,24 @@ gnc_gen_trans_init_view (GNCImportMainMatcher *info,
     add_text_column (view, _("Amount"), DOWNLOADED_COL_AMOUNT, FALSE);
     add_text_column (view, _("Description"), DOWNLOADED_COL_DESCRIPTION, FALSE);
     info->memo_column = add_text_column (view, _("Memo"), DOWNLOADED_COL_MEMO, TRUE);
-    add_toggle_column (view,
-                       C_("Column header for 'Adding transaction'", "A"), DOWNLOADED_COL_ACTION_ADD,
+    add_toggle_column (view, C_("Column header for 'Adding transaction'", "A"),
+                       DOWNLOADED_COL_ACTION_ADD,
                        G_CALLBACK(gnc_gen_trans_add_toggled_cb), info);
-    column = add_toggle_column (view,
-                               C_("Column header for 'Updating plus Clearing transaction'", "U+C"), DOWNLOADED_COL_ACTION_UPDATE,
-                               G_CALLBACK(gnc_gen_trans_update_toggled_cb), info);
+    column = add_toggle_column (view, C_("Column header for 'Updating plus Clearing transaction'", "U+C"),
+                                DOWNLOADED_COL_ACTION_UPDATE,
+                                G_CALLBACK(gnc_gen_trans_update_toggled_cb), info);
     gtk_tree_view_column_set_visible (column, show_update);
-    add_toggle_column (view,
-                       C_("Column header for 'Clearing transaction'", "C"), DOWNLOADED_COL_ACTION_CLEAR,
-                      G_CALLBACK(gnc_gen_trans_clear_toggled_cb), info);
+    add_toggle_column (view, C_("Column header for 'Clearing transaction'", "C"),
+                       DOWNLOADED_COL_ACTION_CLEAR,
+                       G_CALLBACK(gnc_gen_trans_clear_toggled_cb), info);
 
     /* The last column has multiple renderers */
-    renderer = gtk_cell_renderer_pixbuf_new();
+    renderer = gtk_cell_renderer_pixbuf_new ();
     g_object_set (renderer, "xalign", 0.0, NULL);
     column = gtk_tree_view_column_new_with_attributes (_("Info"), renderer,
-             "pixbuf", DOWNLOADED_COL_ACTION_PIXBUF,
-             "cell-background", DOWNLOADED_COL_COLOR,
-             NULL);
+                                                       "pixbuf", DOWNLOADED_COL_ACTION_PIXBUF,
+                                                       "cell-background", DOWNLOADED_COL_COLOR,
+                                                       NULL);
 
     gtk_tree_view_append_column (info->view, column);
 
@@ -1073,19 +1066,18 @@ gnc_gen_trans_init_view (GNCImportMainMatcher *info,
     selection = gtk_tree_view_get_selection (info->view);
 
     g_object_set (info->view, "has-tooltip", TRUE, NULL);
+
     g_signal_connect (G_OBJECT(info->view), "query-tooltip",
                       G_CALLBACK(query_tooltip_tree_view_cb), info);
-
     g_signal_connect (info->view, "row-activated",
                       G_CALLBACK(gnc_gen_trans_row_activated_cb), info);
     g_signal_connect (selection, "changed",
                       G_CALLBACK(gnc_gen_trans_row_changed_cb), info);
-
     g_signal_connect (view, "button-press-event",
                       G_CALLBACK(gnc_gen_trans_onButtonPressed_cb), info);
     g_signal_connect (view, "popup-menu",
                       G_CALLBACK(gnc_gen_trans_onPopupMenu_cb), info);
-    
+
     info->acct_id_hash = g_hash_table_new (g_direct_hash, g_direct_equal);
 }
 
@@ -1107,7 +1099,7 @@ show_memo_column_toggled_cb (GtkToggleButton *togglebutton,
 
 static void
 show_matched_info_toggled_cb (GtkToggleButton *togglebutton,
-                                GNCImportMainMatcher *info)
+                              GNCImportMainMatcher *info)
 {
     if (gtk_toggle_button_get_active (togglebutton))
     {
@@ -1197,7 +1189,7 @@ gnc_gen_trans_list_new (GtkWidget *parent,
     info = g_new0 (GNCImportMainMatcher, 1);
 
     /* Initialize the GtkDialog. */
-    builder = gtk_builder_new();
+    builder = gtk_builder_new ();
     gnc_builder_add_from_file (builder, "dialog-import.glade", "transaction_matcher_dialog");
     gnc_builder_add_from_file (builder, "dialog-import.glade", "transaction_matcher_content");
 
@@ -1250,7 +1242,7 @@ gnc_gen_trans_assist_new (GtkWidget *parent,
     info->main_widget = GTK_WIDGET(parent);
 
     /* load the interface */
-    builder = gtk_builder_new();
+    builder = gtk_builder_new ();
     gnc_builder_add_from_file (builder, "dialog-import.glade", "transaction_matcher_content");
 
     /* Pack content into Assistant page widget */
@@ -1265,7 +1257,8 @@ gnc_gen_trans_assist_new (GtkWidget *parent,
     return info;
 }
 
-void gnc_gen_trans_assist_start (GNCImportMainMatcher *info)
+void
+gnc_gen_trans_assist_start (GNCImportMainMatcher *info)
 {
     on_matcher_ok_clicked (NULL, info);
 }
@@ -1274,15 +1267,17 @@ void gnc_gen_trans_assist_start (GNCImportMainMatcher *info)
  *                   Assistant routines End                      *
  *****************************************************************/
 
-void gnc_gen_trans_list_add_tp_cb (GNCImportMainMatcher *info,
-                                   GNCTransactionProcessedCB trans_processed_cb,
-                                   gpointer user_data)
+void
+gnc_gen_trans_list_add_tp_cb (GNCImportMainMatcher *info,
+                              GNCTransactionProcessedCB trans_processed_cb,
+                              gpointer user_data)
 {
     info->user_data = user_data;
     info->transaction_processed_cb = trans_processed_cb;
 }
 
-gboolean gnc_gen_trans_list_run (GNCImportMainMatcher *info)
+gboolean
+gnc_gen_trans_list_run (GNCImportMainMatcher *info)
 {
     gboolean result;
 
@@ -1338,7 +1333,7 @@ update_child_row (GNCImportMatchInfo *sel_match, GtkTreeModel *model, GtkTreeIte
 
     gtk_tree_store_set (store, &child, DOWNLOADED_COL_DATE_TXT, text, -1);
 
-    if (xaccTransCountSplits(sel_match->trans) == 2)
+    if (xaccTransCountSplits (sel_match->trans) == 2)
         gtk_tree_store_set (store, &child, DOWNLOADED_COL_ACCOUNT, xaccAccountGetName (
                             xaccSplitGetAccount (xaccSplitGetOtherSplit (sel_match->split))), -1);
     else
@@ -1621,16 +1616,17 @@ refresh_model_row (GNCImportMainMatcher *gui,
     gtk_tree_selection_unselect_all (selection);
 }
 
-void gnc_gen_trans_list_add_trans (GNCImportMainMatcher *gui, Transaction *trans)
+void
+gnc_gen_trans_list_add_trans (GNCImportMainMatcher *gui, Transaction *trans)
 {
     Account* acc = NULL;
     Split* split = NULL;
     int i=0;
-    
+
     split = xaccTransGetSplit (trans, 0);
     acc = xaccSplitGetAccount (split);
     defer_bal_computation (gui, acc);
-    
+
     gnc_gen_trans_list_add_trans_with_ref_id (gui, trans, 0);
     return;
 }/* end gnc_import_add_trans() */
@@ -1650,14 +1646,15 @@ gnc_gen_trans_list_get_reconcile_after_close_button (GNCImportMainMatcher *info)
     return info->reconcile_after_close;
 }
 
-void gnc_gen_trans_list_add_trans_with_ref_id (GNCImportMainMatcher *gui, Transaction *trans, guint32 ref_id)
+void
+gnc_gen_trans_list_add_trans_with_ref_id (GNCImportMainMatcher *gui, Transaction *trans, guint32 ref_id)
 {
     GNCImportTransInfo * transaction_info = NULL;
     GtkTreeModel *model;
     GtkTreeIter iter;
     g_assert (gui);
     g_assert (trans);
-  
+
     if (gnc_import_exists_online_id (trans, gui->acct_id_hash))
         return;
     else
@@ -1671,7 +1668,6 @@ void gnc_gen_trans_list_add_trans_with_ref_id (GNCImportMainMatcher *gui, Transa
     return;
 }
 
-
 /* Query the accounts used by the imported transactions to find a list of
  * candidate matching transactions.
  */
@@ -1700,12 +1696,12 @@ query_imported_transaction_accounts (GNCImportMainMatcher *gui)
         time64 txn_time =
             xaccTransGetDate (gnc_import_TransInfo_get_trans (txn_info));
         all_accounts = g_list_prepend (all_accounts, txn_account);
-        min_time = MIN (min_time, txn_time);
-        max_time = MAX (max_time, txn_time);
+        min_time = MIN(min_time, txn_time);
+        max_time = MAX(max_time, txn_time);
     }
 
     // Make a query to find splits with the right accounts and dates.
-    qof_query_set_book (query, gnc_get_current_book());
+    qof_query_set_book (query, gnc_get_current_book ());
     xaccQueryAddAccountMatch (query, all_accounts,
                               QOF_GUID_MATCH_ANY, QOF_QUERY_AND);
     xaccQueryAddDateMatchTT (query,
@@ -1808,7 +1804,7 @@ void
 gnc_gen_trans_list_create_matches (GNCImportMainMatcher *gui)
 {
     GHashTable* account_hash =
-        g_hash_table_new_full(g_direct_hash, g_direct_equal, NULL,
+        g_hash_table_new_full (g_direct_hash, g_direct_equal, NULL,
                               (GDestroyNotify)g_slist_free);
     GList *candidate_txns;
     g_assert (gui);
@@ -1822,19 +1818,21 @@ gnc_gen_trans_list_create_matches (GNCImportMainMatcher *gui)
     return;
 }
 
-GtkWidget *gnc_gen_trans_list_widget (GNCImportMainMatcher *info)
+GtkWidget *
+gnc_gen_trans_list_widget (GNCImportMainMatcher *info)
 {
     g_assert (info);
     return info->main_widget;
 }
 
-gboolean query_tooltip_tree_view_cb (GtkWidget *widget, gint x, gint y,
-                                     gboolean keyboard_tip,
-                                     GtkTooltip *tooltip,
-                                     gpointer user_data)
+gboolean
+query_tooltip_tree_view_cb (GtkWidget *widget, gint x, gint y,
+                            gboolean keyboard_tip,
+                            GtkTooltip *tooltip,
+                            gpointer user_data)
 {
     GtkTreeView          *tree_view = GTK_TREE_VIEW(widget);
-    GtkTreeModel         *model = gtk_tree_view_get_model(tree_view);
+    GtkTreeModel         *model = gtk_tree_view_get_model (tree_view);
     GtkTreePath          *path  = NULL;
     GtkTreeViewColumn    *column = NULL;
     GtkTreeIter iter;
@@ -1846,19 +1844,19 @@ gboolean query_tooltip_tree_view_cb (GtkWidget *widget, gint x, gint y,
         return FALSE;
 
     // Get the iter pointing to our current column
-    if (gtk_tree_model_get_iter(model, &iter, path)
-            && column)
+    if (gtk_tree_model_get_iter(model, &iter, path) && column)
     {
         const gchar *tooltip_text = NULL;
 
         // Select text based on column
-        gint num_col = gtk_tree_view_column_get_sort_column_id(column);
-        switch (num_col) {
+        gint num_col = gtk_tree_view_column_get_sort_column_id (column);
+        switch (num_col)
+        {
         case DOWNLOADED_COL_DESCRIPTION:
-            gtk_tree_model_get(model, &iter, DOWNLOADED_COL_DESCRIPTION, &tooltip_text, -1);
+            gtk_tree_model_get (model, &iter, DOWNLOADED_COL_DESCRIPTION, &tooltip_text, -1);
             break;
         case DOWNLOADED_COL_MEMO:
-            gtk_tree_model_get(model, &iter, DOWNLOADED_COL_MEMO, &tooltip_text, -1);
+            gtk_tree_model_get (model, &iter, DOWNLOADED_COL_MEMO, &tooltip_text, -1);
             break;
         default:
             break;
@@ -1872,7 +1870,6 @@ gboolean query_tooltip_tree_view_cb (GtkWidget *widget, gint x, gint y,
             gtk_tree_view_set_tooltip_cell (tree_view, tooltip, path, column, NULL);
         }
     }
-
     // Clean up the object
     gtk_tree_path_free (path);
     return show_tooltip;
diff --git a/gnucash/import-export/import-main-matcher.h b/gnucash/import-export/import-main-matcher.h
index 06b98cf41..6b20c3d4f 100644
--- a/gnucash/import-export/import-main-matcher.h
+++ b/gnucash/import-export/import-main-matcher.h
@@ -39,8 +39,8 @@
 typedef struct _main_matcher_info GNCImportMainMatcher;
 
 typedef void (*GNCTransactionProcessedCB) (GNCImportTransInfo *trans_info,
-        gboolean imported, gpointer user_data);
-
+                                           gboolean imported,
+                                           gpointer user_data);
 
 /** Create a new generic transaction dialog window and return it.
  *
@@ -67,10 +67,10 @@ typedef void (*GNCTransactionProcessedCB) (GNCImportTransInfo *trans_info,
  * @return A pointer to the GNCImportMainMatcher which has been setup.
 */
 GNCImportMainMatcher *gnc_gen_trans_list_new (GtkWidget *parent,
-        const gchar* heading,
-        gboolean all_from_same_account,
-        gint match_date_hardlimit,
-        gboolean show_all);
+                                              const gchar* heading,
+                                              gboolean all_from_same_account,
+                                              gint match_date_hardlimit,
+                                              gboolean show_all);
 
 
 
@@ -103,8 +103,10 @@ GNCImportMainMatcher *gnc_gen_trans_list_new (GtkWidget *parent,
  * @return A pointer to the GNCImportMainMatcher which has been setup.
 */
 GNCImportMainMatcher * gnc_gen_trans_assist_new (GtkWidget *parent,
-        GtkWidget *assistant_page, const gchar* heading,
-        gboolean all_from_same_account, gint match_date_hardlimit);
+                                                 GtkWidget *assistant_page,
+                                                 const gchar* heading,
+                                                 gboolean all_from_same_account,
+                                                 gint match_date_hardlimit);
 
 
 /**  This starts the import process for transaction from an assistant.
@@ -131,9 +133,9 @@ void on_matcher_help_clicked (GtkButton *button, gpointer user_data);
  *
  * @param trans_processed_cb The callback function.
  */
-void gnc_gen_trans_list_add_tp_cb(GNCImportMainMatcher *info,
-                                  GNCTransactionProcessedCB trans_processed_cb,
-                                  gpointer user_data);
+void gnc_gen_trans_list_add_tp_cb (GNCImportMainMatcher *info,
+                                   GNCTransactionProcessedCB trans_processed_cb,
+                                   gpointer user_data);
 
 
 /** Deletes the given object. */
@@ -150,7 +152,7 @@ void gnc_gen_trans_list_delete (GNCImportMainMatcher *info);
  * must NOT be committed. The Importer takes over ownership of the
  * passed transaction.
  */
-void gnc_gen_trans_list_add_trans(GNCImportMainMatcher *gui, Transaction *trans);
+void gnc_gen_trans_list_add_trans (GNCImportMainMatcher *gui, Transaction *trans);
 
 
 /** Add a newly imported Transaction to the Transaction Importer and provide an
@@ -167,7 +169,9 @@ void gnc_gen_trans_list_add_trans(GNCImportMainMatcher *gui, Transaction *trans)
  *
  * @param ref_id Reference id which links an external object to the transaction.
  */
-void gnc_gen_trans_list_add_trans_with_ref_id(GNCImportMainMatcher *gui, Transaction *trans, guint32 ref_id);
+void gnc_gen_trans_list_add_trans_with_ref_id (GNCImportMainMatcher *gui,
+                                               Transaction *trans,
+                                               guint32 ref_id);
 
 
 /** Run this dialog and return only after the user pressed Ok, Cancel,
@@ -189,12 +193,12 @@ GtkWidget *gnc_gen_trans_list_widget (GNCImportMainMatcher *info);
  * @param info A pointer to a the GNCImportMainMatcher structure.
  * @return A boolean indicating whether the transaction list is empty.
  */
-gboolean gnc_gen_trans_list_empty(GNCImportMainMatcher *info);
+gboolean gnc_gen_trans_list_empty (GNCImportMainMatcher *info);
 
 /** Shows widgets.
  * @param info A pointer to a the GNCImportMainMatcher structure.
  */
-void gnc_gen_trans_list_show_all(GNCImportMainMatcher *info);
+void gnc_gen_trans_list_show_all (GNCImportMainMatcher *info);
 
 /** Show and set the reconcile after close check button.
  * @param info A pointer to a the GNCImportMainMatcher structure.

commit 48fe2ea60b8549249c4811069dd9cc71cc2f259a
Author: Robert Fewell <14uBobIT at gmail.com>
Date:   Tue Nov 3 14:05:38 2020 +0000

    Add option to hide memo column on import-main-matcher
    
    This has stemmed from cstim's PR #810 which I have added here after
    refactoring the gnc_gen_trans_list_new function in previous commit.

diff --git a/gnucash/gtkbuilder/dialog-import.glade b/gnucash/gtkbuilder/dialog-import.glade
index 71f7dac7b..76d6a6e49 100644
--- a/gnucash/gtkbuilder/dialog-import.glade
+++ b/gnucash/gtkbuilder/dialog-import.glade
@@ -926,7 +926,7 @@
         <property name="halign">center</property>
         <child>
           <object class="GtkCheckButton" id="show_source_account_button">
-            <property name="label" translatable="yes">Show the _Account column</property>
+            <property name="label" translatable="yes">Show _Account column</property>
             <property name="visible">True</property>
             <property name="can_focus">True</property>
             <property name="receives_default">False</property>
@@ -940,6 +940,22 @@
             <property name="position">0</property>
           </packing>
         </child>
+        <child>
+          <object class="GtkCheckButton" id="show_memo_column_button">
+            <property name="label" translatable="yes">Show _Memo column</property>
+            <property name="visible">True</property>
+            <property name="can_focus">True</property>
+            <property name="receives_default">False</property>
+            <property name="halign">center</property>
+            <property name="use_underline">True</property>
+            <property name="draw_indicator">True</property>
+          </object>
+          <packing>
+            <property name="expand">False</property>
+            <property name="fill">True</property>
+            <property name="position">1</property>
+          </packing>
+        </child>
         <child>
           <object class="GtkCheckButton" id="show_matched_info_button">
             <property name="label" translatable="yes">Show _matched information</property>
@@ -952,7 +968,7 @@
           <packing>
             <property name="expand">False</property>
             <property name="fill">True</property>
-            <property name="position">1</property>
+            <property name="position">2</property>
           </packing>
         </child>
         <child>
@@ -967,7 +983,7 @@
           <packing>
             <property name="expand">False</property>
             <property name="fill">True</property>
-            <property name="position">2</property>
+            <property name="position">3</property>
           </packing>
         </child>
       </object>
diff --git a/gnucash/import-export/import-main-matcher.c b/gnucash/import-export/import-main-matcher.c
index 26ffa744a..d30c9b3dd 100644
--- a/gnucash/import-export/import-main-matcher.c
+++ b/gnucash/import-export/import-main-matcher.c
@@ -69,6 +69,7 @@ struct _main_matcher_info
     gpointer user_data;
     GNCImportPendingMatches *pending_matches;
     GtkTreeViewColumn *account_column;
+    GtkTreeViewColumn *memo_column;
     GtkWidget         *show_account_column;
     GtkWidget         *show_matched_info;
     GtkWidget         *reconcile_after_close;
@@ -1040,7 +1041,7 @@ gnc_gen_trans_init_view (GNCImportMainMatcher *info,
     gtk_tree_view_column_set_visible (info->account_column, show_account);
     add_text_column (view, _("Amount"), DOWNLOADED_COL_AMOUNT, FALSE);
     add_text_column (view, _("Description"), DOWNLOADED_COL_DESCRIPTION, FALSE);
-    add_text_column (view, _("Memo"), DOWNLOADED_COL_MEMO, TRUE);
+    info->memo_column = add_text_column (view, _("Memo"), DOWNLOADED_COL_MEMO, TRUE);
     add_toggle_column (view,
                        C_("Column header for 'Adding transaction'", "A"), DOWNLOADED_COL_ACTION_ADD,
                        G_CALLBACK(gnc_gen_trans_add_toggled_cb), info);
@@ -1096,6 +1097,14 @@ show_account_column_toggled_cb (GtkToggleButton *togglebutton,
         gtk_toggle_button_get_active (togglebutton));
 }
 
+static void
+show_memo_column_toggled_cb (GtkToggleButton *togglebutton,
+                             GNCImportMainMatcher *info)
+{
+    gtk_tree_view_column_set_visible (info->memo_column,
+        gtk_toggle_button_get_active (togglebutton));
+}
+
 static void
 show_matched_info_toggled_cb (GtkToggleButton *togglebutton,
                                 GNCImportMainMatcher *info)
@@ -1123,7 +1132,7 @@ gnc_gen_trans_common_setup (GNCImportMainMatcher *info,
 {
     GtkStyleContext *stylectxt;
     GdkRGBA color;
-    GtkWidget *heading_label;
+    GtkWidget *heading_label, *button;
     gboolean show_update;
 
     info->pending_matches = gnc_import_PendingMatches_new ();
@@ -1145,6 +1154,11 @@ gnc_gen_trans_common_setup (GNCImportMainMatcher *info,
     g_signal_connect (G_OBJECT(info->show_account_column), "toggled",
                       G_CALLBACK(show_account_column_toggled_cb), info);
 
+    button = GTK_WIDGET(gtk_builder_get_object (builder, "show_memo_column_button"));
+    gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON(button), TRUE);
+    g_signal_connect (G_OBJECT(button), "toggled",
+                      G_CALLBACK(show_memo_column_toggled_cb), info);
+
     info->show_matched_info = GTK_WIDGET(gtk_builder_get_object (builder, "show_matched_info_button"));
     g_signal_connect (G_OBJECT(info->show_matched_info), "toggled",
                       G_CALLBACK(show_matched_info_toggled_cb), info);
@@ -1158,6 +1172,7 @@ gnc_gen_trans_common_setup (GNCImportMainMatcher *info,
     g_assert (heading_label != NULL);
 
     if (heading)
+        gtk_label_set_text (GTK_LABEL(heading_label), heading);
 
     info->transaction_processed_cb = NULL;
 
@@ -1596,6 +1611,7 @@ refresh_model_row (GNCImportMainMatcher *gui,
             GtkTreePath *path = gtk_tree_model_get_path (model, iter);
 
             gtk_tree_view_column_set_visible (gui->account_column, TRUE);
+            gtk_tree_view_column_set_visible (gui->memo_column, TRUE);
 
             gtk_tree_view_expand_row (GTK_TREE_VIEW(gui->view), path, TRUE);
             gtk_tree_path_free (path);

commit bf483696de01ebb6f336b4d03a33c4d763b95542
Author: Robert Fewell <14uBobIT at gmail.com>
Date:   Tue Nov 3 14:04:38 2020 +0000

    Factor out the common code for import-main-matcher
    
    There are two functions used for starting the import-main-matcher, one
    using dialogs and one for it being embedded in an assistant. These two
    functions gnc_gen_trans_list_new and gnc_gen_trans_assist_new share
    some common code so factor out that part to ease maintenance.

diff --git a/gnucash/import-export/import-main-matcher.c b/gnucash/import-export/import-main-matcher.c
index 5157889c9..26ffa744a 100644
--- a/gnucash/import-export/import-main-matcher.c
+++ b/gnucash/import-export/import-main-matcher.c
@@ -1113,23 +1113,20 @@ show_matched_info_toggled_cb (GtkToggleButton *togglebutton,
     }
 }
 
-GNCImportMainMatcher *gnc_gen_trans_list_new (GtkWidget *parent,
-        const gchar* heading,
-        gboolean all_from_same_account,
-        gint match_date_hardlimit,
-        gboolean show_all)
+static void
+gnc_gen_trans_common_setup (GNCImportMainMatcher *info,
+                            GtkWidget *parent,
+                            GtkBuilder *builder,
+                            const gchar* heading,
+                            gboolean all_from_same_account,
+                            gint match_date_hardlimit)
 {
-    GNCImportMainMatcher *info;
-    GtkBuilder *builder;
-    GtkWidget *heading_label;
-    GtkWidget *box, *pbox;
-    gboolean show_update;
     GtkStyleContext *stylectxt;
     GdkRGBA color;
-    GtkWidget *button;
+    GtkWidget *heading_label;
+    gboolean show_update;
 
-    info = g_new0 (GNCImportMainMatcher, 1);
-    info->pending_matches = gnc_import_PendingMatches_new();
+    info->pending_matches = gnc_import_PendingMatches_new ();
 
     /* Initialize user Settings. */
     info->user_settings = gnc_import_Settings_new ();
@@ -1139,18 +1136,6 @@ GNCImportMainMatcher *gnc_gen_trans_list_new (GtkWidget *parent,
     gtk_style_context_get_color (stylectxt, GTK_STATE_FLAG_NORMAL, &color);
     info->dark_theme = gnc_is_dark_theme (&color);
 
-    /* Initialize the GtkDialog. */
-    builder = gtk_builder_new();
-    gnc_builder_add_from_file (builder, "dialog-import.glade", "transaction_matcher_dialog");
-    gnc_builder_add_from_file (builder, "dialog-import.glade", "transaction_matcher_content");
-    info->main_widget = GTK_WIDGET(gtk_builder_get_object (builder, "transaction_matcher_dialog"));
-    g_assert (info->main_widget != NULL);
-
-    /* Pack the content into the dialog vbox */
-    pbox = GTK_WIDGET(gtk_builder_get_object (builder, "transaction_matcher_vbox"));
-    box = GTK_WIDGET(gtk_builder_get_object (builder, "transaction_matcher_content"));
-    gtk_box_pack_start (GTK_BOX(pbox), box, TRUE, TRUE, 0);
-
     /* Get the view */
     info->view = GTK_TREE_VIEW(gtk_builder_get_object (builder, "downloaded_view"));
     g_assert (info->view != NULL);
@@ -1172,15 +1157,7 @@ GNCImportMainMatcher *gnc_gen_trans_list_new (GtkWidget *parent,
     heading_label = GTK_WIDGET(gtk_builder_get_object (builder, "heading_label"));
     g_assert (heading_label != NULL);
 
-    if (parent)
-        gtk_window_set_transient_for (GTK_WINDOW (info->main_widget), GTK_WINDOW (parent));
-
     if (heading)
-        gtk_label_set_text (GTK_LABEL (heading_label), heading);
-
-    gnc_restore_window_size (GNC_PREFS_GROUP, GTK_WINDOW(info->main_widget), GTK_WINDOW (parent));
-    if(show_all)
-        gtk_widget_show_all (GTK_WIDGET (info->main_widget));
 
     info->transaction_processed_cb = NULL;
 
@@ -1188,6 +1165,46 @@ GNCImportMainMatcher *gnc_gen_trans_list_new (GtkWidget *parent,
     gtk_builder_connect_signals_full (builder, gnc_builder_connect_full_func, info);
 
     g_object_unref (G_OBJECT(builder));
+}
+
+
+GNCImportMainMatcher *
+gnc_gen_trans_list_new (GtkWidget *parent,
+                        const gchar* heading,
+                        gboolean all_from_same_account,
+                        gint match_date_hardlimit,
+                        gboolean show_all)
+{
+    GNCImportMainMatcher *info;
+    GtkBuilder *builder;
+    GtkWidget *box, *pbox;
+
+    info = g_new0 (GNCImportMainMatcher, 1);
+
+    /* Initialize the GtkDialog. */
+    builder = gtk_builder_new();
+    gnc_builder_add_from_file (builder, "dialog-import.glade", "transaction_matcher_dialog");
+    gnc_builder_add_from_file (builder, "dialog-import.glade", "transaction_matcher_content");
+
+    info->main_widget = GTK_WIDGET(gtk_builder_get_object (builder, "transaction_matcher_dialog"));
+    g_assert (info->main_widget != NULL);
+
+    /* Pack the content into the dialog vbox */
+    pbox = GTK_WIDGET(gtk_builder_get_object (builder, "transaction_matcher_vbox"));
+    box = GTK_WIDGET(gtk_builder_get_object (builder, "transaction_matcher_content"));
+    gtk_box_pack_start (GTK_BOX(pbox), box, TRUE, TRUE, 0);
+
+    /* setup the common parts */
+    gnc_gen_trans_common_setup (info, parent, builder, heading,
+                                all_from_same_account, match_date_hardlimit);
+
+    if (parent)
+        gtk_window_set_transient_for (GTK_WINDOW(info->main_widget), GTK_WINDOW(parent));
+
+    gnc_restore_window_size (GNC_PREFS_GROUP, GTK_WINDOW(info->main_widget), GTK_WINDOW(parent));
+
+    if (show_all)
+        gtk_widget_show_all (GTK_WIDGET(info->main_widget));
 
     // Register this UI, it needs to be closed when the session is closed.
     info->id = gnc_register_gui_component (IMPORT_MAIN_MATCHER_CM_CLASS,
@@ -1203,71 +1220,32 @@ GNCImportMainMatcher *gnc_gen_trans_list_new (GtkWidget *parent,
  *                 Assistant routines Start                      *
  *****************************************************************/
 
-GNCImportMainMatcher * gnc_gen_trans_assist_new (GtkWidget *parent,
-        GtkWidget *assistant_page, const gchar* heading,
-        gboolean all_from_same_account, gint match_date_hardlimit)
+GNCImportMainMatcher *
+gnc_gen_trans_assist_new (GtkWidget *parent,
+                          GtkWidget *assistant_page,
+                          const gchar* heading,
+                          gboolean all_from_same_account,
+                          gint match_date_hardlimit)
 {
     GNCImportMainMatcher *info;
     GtkBuilder *builder;
-    GtkWidget *heading_label;
     GtkWidget *box;
-    gboolean show_update;
-    GtkStyleContext *stylectxt;
-    GdkRGBA color;
 
     info = g_new0 (GNCImportMainMatcher, 1);
-    info->pending_matches = gnc_import_PendingMatches_new();
     info->main_widget = GTK_WIDGET(parent);
 
-    /* Initialize user Settings. */
-    info->user_settings = gnc_import_Settings_new ();
-    gnc_import_Settings_set_match_date_hardlimit (info->user_settings, match_date_hardlimit);
-
-    stylectxt = gtk_widget_get_style_context (GTK_WIDGET(parent));
-    gtk_style_context_get_color (stylectxt, GTK_STATE_FLAG_NORMAL, &color);
-    info->dark_theme = gnc_is_dark_theme (&color);
-
     /* load the interface */
     builder = gtk_builder_new();
     gnc_builder_add_from_file (builder, "dialog-import.glade", "transaction_matcher_content");
-    if (builder == NULL)
-    {
-        PERR("Error opening the glade builder interface");
-    }
+
     /* Pack content into Assistant page widget */
     box = GTK_WIDGET(gtk_builder_get_object (builder, "transaction_matcher_content"));
+    g_assert (box != NULL);
     gtk_box_pack_start (GTK_BOX(assistant_page), box, TRUE, TRUE, 6);
 
-    /* Get the view */
-    info->view = GTK_TREE_VIEW(gtk_builder_get_object (builder, "downloaded_view"));
-    g_assert (info->view != NULL);
-
-    info->show_account_column = GTK_WIDGET(gtk_builder_get_object (builder, "show_source_account_button"));
-    gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON(info->show_account_column), all_from_same_account);
-    g_signal_connect (G_OBJECT(info->show_account_column), "toggled",
-                      G_CALLBACK(show_account_column_toggled_cb), info);
-
-    info->show_matched_info = GTK_WIDGET(gtk_builder_get_object (builder, "show_matched_info_button"));
-    g_signal_connect (G_OBJECT(info->show_matched_info), "toggled",
-                      G_CALLBACK(show_matched_info_toggled_cb), info);
-
-    // Create the checkbox, but do not show it by default.
-    info->reconcile_after_close = GTK_WIDGET(gtk_builder_get_object (builder, "reconcile_after_close_button"));
-
-    show_update = gnc_import_Settings_get_action_update_enabled (info->user_settings);
-    gnc_gen_trans_init_view (info, all_from_same_account, show_update);
-    heading_label = GTK_WIDGET(gtk_builder_get_object (builder, "heading_label"));
-    g_assert (heading_label != NULL);
-
-    if (heading)
-        gtk_label_set_text (GTK_LABEL (heading_label), heading);
-
-    info->transaction_processed_cb = NULL;
-
-    /* Connect the signals */
-    gtk_builder_connect_signals_full (builder, gnc_builder_connect_full_func, info);
-
-    g_object_unref (G_OBJECT(builder));
+    /* setup the common parts */
+    gnc_gen_trans_common_setup (info, parent, builder, heading,
+                                all_from_same_account, match_date_hardlimit);
 
     return info;
 }

commit aa71e46901120c80a5412c539cb59a7c2eb9ed26
Author: Robert Fewell <14uBobIT at gmail.com>
Date:   Tue Nov 3 14:03:32 2020 +0000

    Fix for OFX import
    
    Pressing help button causes main-import-matcher to disappear

diff --git a/gnucash/import-export/ofx/gnc-ofx-import.c b/gnucash/import-export/ofx/gnc-ofx-import.c
index 442ecc9f8..4f887b2dc 100644
--- a/gnucash/import-export/ofx/gnc-ofx-import.c
+++ b/gnucash/import-export/ofx/gnc-ofx-import.c
@@ -1111,6 +1111,8 @@ gnc_ofx_match_done (GtkDialog *dialog, gint response_id, gpointer user_data)
                               G_CALLBACK(gnc_ofx_process_next_file), info);
         }
     }
+    else if (response_id == GTK_RESPONSE_HELP)
+        return;
     else
     {
         gtk_widget_hide (GTK_WIDGET(dialog));

commit 761797eb3d60bc6ee4c654cc07573157ba5a1621
Author: Robert Fewell <14uBobIT at gmail.com>
Date:   Tue Nov 3 14:02:13 2020 +0000

    Fix GdkDisplay error in trace file
    
    When OFX import is first used and the file chosen, an account select
    dialog will be shown but the parent was being obtained from a hidden
    import-main-matcher dialog. This fails so get the parent from the
    transient parent of the import-main-matcher dialog.

diff --git a/gnucash/import-export/ofx/gnc-ofx-import.c b/gnucash/import-export/ofx/gnc-ofx-import.c
index 405d069ca..442ecc9f8 100644
--- a/gnucash/import-export/ofx/gnc-ofx-import.c
+++ b/gnucash/import-export/ofx/gnc-ofx-import.c
@@ -926,6 +926,8 @@ int ofx_proc_account_cb(struct OfxAccountData data, void * account_user_data)
     gnc_commodity * default_commodity;
     GNCAccountType default_type = ACCT_TYPE_NONE;
     gchar * account_description;
+    GtkWidget * main_widget;
+    GtkWidget * parent;
     /* In order to trigger a book options display on the creation of a new book,
      * we need to detect when we are dealing with a new book. */
     gboolean new_book = gnc_is_new_book();
@@ -1006,7 +1008,17 @@ int ofx_proc_account_cb(struct OfxAccountData data, void * account_user_data)
                                                "%s \"%s\"",
                                                account_type_name,
                                                data.account_name);
-        account = gnc_import_select_account (gnc_gen_trans_list_widget(info->gnc_ofx_importer_gui),
+
+        main_widget = gnc_gen_trans_list_widget (info->gnc_ofx_importer_gui);
+
+        /* On first use, the import-main-matcher is hidden / not realized so to
+         * get a parent use the transient parent of the matcher */
+        if (gtk_widget_get_realized (main_widget))
+            parent = main_widget;
+        else
+            parent = GTK_WIDGET(gtk_window_get_transient_for (GTK_WINDOW(main_widget)));
+
+        account = gnc_import_select_account (parent,
                                              data.account_id, 1,
                                              account_description, default_commodity,
                                              default_type, NULL, NULL);
@@ -1151,7 +1163,7 @@ gnc_file_ofx_import_process_file (ofx_info* info)
     // Create the match dialog, and run the ofx file through the importer.
     info->gnc_ofx_importer_gui = gnc_gen_trans_list_new (GTK_WIDGET(parent), NULL, TRUE, 42, FALSE);
     libofx_proc_file (libofx_context, selected_filename, AUTODETECT);
-    
+
     // Free the libofx context before recursing to process the next file
     libofx_free_context(libofx_context);
 
@@ -1173,7 +1185,7 @@ gnc_file_ofx_import_process_file (ofx_info* info)
                           G_CALLBACK (gnc_ofx_match_done), info);
 
         gnc_gen_trans_list_show_all (info->gnc_ofx_importer_gui);
-        
+
         // Show or hide the check box for reconciling after match, depending on whether a statement was received.
         gnc_gen_trans_list_show_reconcile_after_close_button (info->gnc_ofx_importer_gui, info->statement != NULL, info->run_reconcile);
 
@@ -1199,7 +1211,7 @@ void gnc_file_ofx_import (GtkWindow *parent)
     GSList* iter = NULL;
     ofx_info* info = NULL;
     GtkFileFilter* filter = gtk_file_filter_new ();
-    
+
 
     ofx_PARSER_msg = false;
     ofx_DEBUG_msg = false;

commit 504ca731e25512a546226560f62601bc8c2b4bc7
Author: Robert Fewell <14uBobIT at gmail.com>
Date:   Tue Nov 3 14:01:27 2020 +0000

    Import matcher tooltip for columns update
    
    If there is no text to be displayed, do not show tooltip.

diff --git a/gnucash/import-export/import-main-matcher.c b/gnucash/import-export/import-main-matcher.c
index 58888b0aa..5157889c9 100644
--- a/gnucash/import-export/import-main-matcher.c
+++ b/gnucash/import-export/import-main-matcher.c
@@ -1841,7 +1841,6 @@ gboolean query_tooltip_tree_view_cb (GtkWidget *widget, gint x, gint y,
 {
     GtkTreeView          *tree_view = GTK_TREE_VIEW(widget);
     GtkTreeModel         *model = gtk_tree_view_get_model(tree_view);
-    //GNCImportMainMatcher *info = user_data;
     GtkTreePath          *path  = NULL;
     GtkTreeViewColumn    *column = NULL;
     GtkTreeIter iter;
@@ -1872,7 +1871,7 @@ gboolean query_tooltip_tree_view_cb (GtkWidget *widget, gint x, gint y,
         }
 
         // Did we select any text? If yes, display the tooltip
-        if (tooltip_text)
+        if (tooltip_text && *tooltip_text)
         {
             show_tooltip = TRUE;
             gtk_tooltip_set_text (tooltip, tooltip_text);

commit c40ac765b9cd029c8e7449f12004774933ca8cf3
Author: Robert Fewell <14uBobIT at gmail.com>
Date:   Tue Nov 3 14:00:50 2020 +0000

    Change source file dialog-preferences.c for space and tabs

diff --git a/gnucash/gnome-utils/dialog-preferences.c b/gnucash/gnome-utils/dialog-preferences.c
index 9b8137dcc..149b51bb3 100644
--- a/gnucash/gnome-utils/dialog-preferences.c
+++ b/gnucash/gnome-utils/dialog-preferences.c
@@ -88,7 +88,7 @@
 /** The debugging module that this .o belongs to.  */
 static QofLogModule log_module = GNC_MOD_PREFS;
 
-void gnc_preferences_response_cb(GtkDialog *dialog, gint response, GtkDialog *unused);
+void gnc_preferences_response_cb (GtkDialog *dialog, gint response, GtkDialog *unused);
 void gnc_account_separator_pref_changed_cb (GtkEntry *entry, GtkWidget *dialog);
 void gnc_save_on_close_expires_cb (GtkToggleButton *button, GtkWidget *dialog);
 gboolean gnc_preferences_delete_event_cb (GtkWidget *widget,
@@ -122,7 +122,7 @@ GSList *add_ins = NULL;
 static gchar *gnc_account_separator_is_valid (const gchar *separator,
                                               gchar **normalized_separator)
 {
-    QofBook *book = gnc_get_current_book();
+    QofBook *book = gnc_get_current_book ();
     GList *conflict_accts = NULL;
     gchar *message = NULL;
 
@@ -133,7 +133,6 @@ static gchar *gnc_account_separator_is_valid (const gchar *separator,
                                                       conflict_accts);
 
     g_list_free (conflict_accts);
-
     return message;
 }
 
@@ -156,29 +155,29 @@ gnc_account_separator_pref_changed_cb (GtkEntry *entry, GtkWidget *dialog)
 
     gchar *conflict_msg = gnc_account_separator_is_valid (gtk_entry_get_text (entry), &separator);
 
-    label = g_object_get_data(G_OBJECT(dialog), "sample_account");
-    DEBUG("Sample Account pointer is %p", label );
+    label = g_object_get_data (G_OBJECT(dialog), "sample_account");
+    DEBUG("Sample Account pointer is %p", label);
     /* Translators: Both %s will be the account separator character; the
        resulting string is a demonstration how the account separator
        character will look like. You can replace these three account
        names with other account names that are more suitable for your
        language - just keep in mind to have exactly two %s in your
        translation. */
-    sample = g_strdup_printf(_("Income%sSalary%sTaxable"),
-                             separator, separator);
+    sample = g_strdup_printf (_("Income%sSalary%sTaxable"),
+                              separator, separator);
     PINFO(" Label set to '%s'", sample);
-    gtk_label_set_text(GTK_LABEL(label), sample);
-    g_free(sample);
+    gtk_label_set_text (GTK_LABEL(label), sample);
+    g_free (sample);
 
     /* Check if the new separator clashes with existing account names */
-    image = g_object_get_data(G_OBJECT(dialog), "separator_error");
-    DEBUG("Separator Error Image pointer is %p", image );
+    image = g_object_get_data (G_OBJECT(dialog), "separator_error");
+    DEBUG("Separator Error Image pointer is %p", image);
 
     if (conflict_msg)
     {
-        gtk_widget_set_tooltip_text(GTK_WIDGET(image), conflict_msg);
+        gtk_widget_set_tooltip_text (GTK_WIDGET(image), conflict_msg);
         gtk_widget_show (GTK_WIDGET(image));
-        g_free ( conflict_msg );
+        g_free (conflict_msg);
     }
     else
         gtk_widget_hide (GTK_WIDGET(image));
@@ -207,12 +206,11 @@ gnc_account_separator_validate (GtkWidget *dialog)
     /* Check if the new separator clashes with existing account names */
     if (conflict_msg)
     {
-        GtkWidget   *msg_dialog;
+        GtkWidget   *msg_dialog, *msg_label;
         GtkBuilder  *builder;
-        GtkWidget   *msg_label;
         gint         response;
 
-        builder = gtk_builder_new();
+        builder = gtk_builder_new ();
         gnc_builder_add_from_file (builder, "dialog-preferences.glade", "separator_validation_dialog");
 
         msg_dialog = GTK_WIDGET(gtk_builder_get_object (builder, "separator_validation_dialog"));
@@ -285,9 +283,9 @@ gnc_preferences_select_account_page (GtkDialog *dialog)
 void
 gnc_save_on_close_expires_cb (GtkToggleButton *button, GtkWidget *dialog)
 {
-    GtkWidget *spinner = g_object_get_data (G_OBJECT (dialog),
+    GtkWidget *spinner = g_object_get_data (G_OBJECT(dialog),
                                             "save_on_close_wait_time");
-    gtk_widget_set_sensitive(spinner, gtk_toggle_button_get_active(button));
+    gtk_widget_set_sensitive (spinner, gtk_toggle_button_get_active (button));
 }
 
 /** This function compares two add-ins to see if they specify the same
@@ -305,7 +303,7 @@ static gint
 gnc_prefs_compare_addins (addition *a,
                           addition *b)
 {
-    return g_utf8_collate(a->tabname, b->tabname);
+    return g_utf8_collate (a->tabname, b->tabname);
 }
 
 
@@ -341,30 +339,30 @@ gnc_preferences_add_page_internal (const gchar *filename,
     ENTER("file %s, widget %s, tab %s full page %d",
           filename, widgetname, tabname, full_page);
 
-    add_in = g_malloc(sizeof(addition));
+    add_in = g_malloc (sizeof(addition));
     if (add_in == NULL)
     {
-        g_critical("Unable to allocate memory.\n");
+        g_critical ("Unable to allocate memory.\n");
         LEAVE("no memory");
         return;
     }
 
-    add_in->filename   = g_strdup(filename);
-    add_in->widgetname = g_strdup(widgetname);
-    add_in->tabname    = g_strdup(tabname);
+    add_in->filename   = g_strdup (filename);
+    add_in->widgetname = g_strdup (widgetname);
+    add_in->tabname    = g_strdup (tabname);
     add_in->full_page  = full_page;
     if (!add_in->filename || !add_in->widgetname || !add_in->tabname)
     {
-        g_critical("Unable to allocate memory.\n");
-        g_free(add_in->filename);
-        g_free(add_in->widgetname);
-        g_free(add_in->tabname);
-        g_free(add_in);
+        g_critical ("Unable to allocate memory.\n");
+        g_free (add_in->filename);
+        g_free (add_in->widgetname);
+        g_free (add_in->tabname);
+        g_free (add_in);
         LEAVE("no memory");
         return;
     }
 
-    ptr = g_slist_find_custom(add_ins, add_in, (GCompareFunc)gnc_prefs_compare_addins);
+    ptr = g_slist_find_custom (add_ins, add_in, (GCompareFunc)gnc_prefs_compare_addins);
     if (ptr)
     {
         /* problem? */
@@ -372,34 +370,34 @@ gnc_preferences_add_page_internal (const gchar *filename,
 
         if (preexisting->full_page)
         {
-            g_warning("New tab %s(%s/%s/%s) conflicts with existing tab %s(%s/%s/full)",
-                      add_in->tabname, add_in->filename, add_in->widgetname,
-                      add_in->full_page ? "full" : "partial",
-                      preexisting->tabname, preexisting->filename, preexisting->widgetname);
+            g_warning ("New tab %s(%s/%s/%s) conflicts with existing tab %s(%s/%s/full)",
+                       add_in->tabname, add_in->filename, add_in->widgetname,
+                       add_in->full_page ? "full" : "partial",
+                       preexisting->tabname, preexisting->filename, preexisting->widgetname);
             error = TRUE;
         }
         else if (add_in->full_page)
         {
-            g_warning("New tab %s(%s/%s/%s) conflicts with existing tab %s(%s/%s/partial)",
-                      add_in->tabname, add_in->filename, add_in->widgetname,
-                      add_in->full_page ? "full" : "partial",
-                      preexisting->tabname, preexisting->filename, preexisting->widgetname);
+            g_warning ("New tab %s(%s/%s/%s) conflicts with existing tab %s(%s/%s/partial)",
+                       add_in->tabname, add_in->filename, add_in->widgetname,
+                       add_in->full_page ? "full" : "partial",
+                       preexisting->tabname, preexisting->filename, preexisting->widgetname);
             error = TRUE;
         }
     }
 
     if (error)
     {
-        g_free(add_in->filename);
-        g_free(add_in->widgetname);
-        g_free(add_in->tabname);
-        g_free(add_in);
+        g_free (add_in->filename);
+        g_free (add_in->widgetname);
+        g_free (add_in->tabname);
+        g_free (add_in);
         LEAVE("err");
         return;
     }
     else
     {
-        add_ins = g_slist_append(add_ins, add_in);
+        add_ins = g_slist_append (add_ins, add_in);
     }
     LEAVE("");
 }
@@ -416,7 +414,7 @@ gnc_preferences_add_page (const gchar *filename,
                           const gchar *widgetname,
                           const gchar *tabname)
 {
-    gnc_preferences_add_page_internal(filename, widgetname, tabname, TRUE);
+    gnc_preferences_add_page_internal (filename, widgetname, tabname, TRUE);
 }
 
 
@@ -431,7 +429,7 @@ gnc_preferences_add_to_page (const gchar *filename,
                              const gchar *widgetname,
                              const gchar *tabname)
 {
-    gnc_preferences_add_page_internal(filename, widgetname, tabname, FALSE);
+    gnc_preferences_add_page_internal (filename, widgetname, tabname, FALSE);
 }
 
 
@@ -460,23 +458,23 @@ gnc_prefs_build_widget_table (GtkBuilder *builder,
     const gchar *wname;
     GtkWidget *widget;
 
-    prefs_table = g_object_get_data(G_OBJECT(dialog), PREFS_WIDGET_HASH);
+    prefs_table = g_object_get_data (G_OBJECT(dialog), PREFS_WIDGET_HASH);
 
-    interesting = gtk_builder_get_objects(builder);
+    interesting = gtk_builder_get_objects (builder);
 
     for (runner = interesting; runner; runner = g_slist_next(runner))
     {
         widget = runner->data;
         if (GTK_IS_WIDGET(widget))
         {
-            wname = gtk_widget_get_name(widget);
-            name = gtk_buildable_get_name(GTK_BUILDABLE(widget));
+            wname = gtk_widget_get_name (widget);
+            name = gtk_buildable_get_name (GTK_BUILDABLE(widget));
             DEBUG("Widget type is %s and buildable get name is %s", wname, name);
             if (g_str_has_prefix (name, "pref"))
-                g_hash_table_insert(prefs_table, (gchar *)name, widget);
+                g_hash_table_insert (prefs_table, (gchar *)name, widget);
         }
     }
-    g_slist_free(interesting);
+    g_slist_free (interesting);
 
 }
 
@@ -504,7 +502,7 @@ gnc_prefs_find_page (GtkNotebook *notebook, const gchar *name)
     GtkWidget *child;
     const gchar *child_name;
 
-    g_return_val_if_fail (GTK_IS_NOTEBOOK (notebook), NULL);
+    g_return_val_if_fail (GTK_IS_NOTEBOOK(notebook), NULL);
     g_return_val_if_fail (name, NULL);
 
     ENTER("");
@@ -548,12 +546,12 @@ gnc_prefs_get_grid_size (GtkWidget *child, gpointer data)
     struct copy_data *copydata = data;
     gint top, left, height, width;
 
-    gtk_container_child_get(GTK_CONTAINER(copydata->grid_to), child,
-                            "left-attach", &left,
-                            "top-attach", &top,
-                            "height", &height,
-                            "width", &width,
-                            NULL);
+    gtk_container_child_get (GTK_CONTAINER(copydata->grid_to), child,
+                             "left-attach", &left,
+                             "top-attach", &top,
+                             "height", &height,
+                             "width", &width,
+                             NULL);
 
     if (left + width >= copydata->cols)
         copydata->cols = left + width;
@@ -586,12 +584,12 @@ gnc_prefs_move_grid_entry (GtkWidget *child,
     gint topm, bottomm, leftm, rightm;
 
     ENTER("child %p, copy data %p", child, data);
-    gtk_container_child_get(GTK_CONTAINER(copydata->grid_from), child,
-                            "left-attach", &left,
-                            "top-attach", &top,
-                            "height", &height,
-                            "width", &width,
-                            NULL);
+    gtk_container_child_get (GTK_CONTAINER(copydata->grid_from), child,
+                             "left-attach", &left,
+                             "top-attach", &top,
+                             "height", &height,
+                             "width", &width,
+                             NULL);
     hexpand = gtk_widget_get_hexpand (child);
     vexpand = gtk_widget_get_vexpand (child);
     halign = gtk_widget_get_halign (child);
@@ -600,10 +598,10 @@ gnc_prefs_move_grid_entry (GtkWidget *child,
     g_object_get (child, "margin-top", &topm, "margin-bottom", &bottomm, NULL);
     g_object_get (child, "margin-left", &leftm, "margin-right", &rightm, NULL);
 
-    g_object_ref(child);
-    gtk_container_remove(GTK_CONTAINER(copydata->grid_from), child);
+    g_object_ref (child);
+    gtk_container_remove (GTK_CONTAINER(copydata->grid_from), child);
 
-    gtk_grid_attach(copydata->grid_to, child, left, copydata->rows + top , width, height);
+    gtk_grid_attach (copydata->grid_to, child, left, copydata->rows + top , width, height);
 
     gtk_widget_set_hexpand (child, hexpand);
     gtk_widget_set_vexpand (child, vexpand);
@@ -613,7 +611,7 @@ gnc_prefs_move_grid_entry (GtkWidget *child,
     g_object_set (child, "margin-left", leftm, "margin-right", rightm, NULL);
     g_object_set (child, "margin-top", topm, "margin-bottom", bottomm, NULL);
 
-    g_object_unref(child);
+    g_object_unref (child);
     LEAVE(" ");
 }
 
@@ -646,10 +644,10 @@ gnc_preferences_build_page (gpointer data,
     dialog = user_data;
 
     DEBUG("Opening %s to get %s", add_in->filename, add_in->widgetname);
-    builder = gtk_builder_new();
+    builder = gtk_builder_new ();
 
     /* Adjustments etc... must come before dialog information */
-    widgetname = g_strsplit(add_in->widgetname, ",", -1);
+    widgetname = g_strsplit (add_in->widgetname, ",", -1);
 
     for (i = 0; widgetname[i]; i++)
     {
@@ -660,11 +658,11 @@ gnc_preferences_build_page (gpointer data,
     DEBUG("Widget Content is %s", widgetname[i - 1]);
     new_content = GTK_WIDGET(gtk_builder_get_object (builder, widgetname[i - 1]));
 
-    g_strfreev(widgetname);
+    g_strfreev (widgetname);
     DEBUG("done");
 
     /* Add to the list of interesting widgets */
-    gnc_prefs_build_widget_table(builder, dialog);
+    gnc_prefs_build_widget_table (builder, dialog);
 
     /* Connect the signals in this glade file. The dialog is passed in
      * so the callback can find "interesting" widgets from other
@@ -672,14 +670,14 @@ gnc_preferences_build_page (gpointer data,
     gtk_builder_connect_signals_full (builder, gnc_builder_connect_full_func, dialog);
 
     /* Prepare for recursion */
-    notebook = g_object_get_data(G_OBJECT(dialog), NOTEBOOK);
+    notebook = g_object_get_data (G_OBJECT(dialog), NOTEBOOK);
 
     if (add_in->full_page)
     {
-        label = gtk_label_new(add_in->tabname);
-        gnc_label_set_alignment(label, 0.0, 0.5);
-        gtk_notebook_append_page(notebook, new_content, label);
-        g_object_unref(G_OBJECT(builder));
+        label = gtk_label_new (add_in->tabname);
+        gnc_label_set_alignment (label, 0.0, 0.5);
+        gtk_notebook_append_page (notebook, new_content, label);
+        g_object_unref (G_OBJECT(builder));
         LEAVE("appended page");
         return;
     }
@@ -687,33 +685,33 @@ gnc_preferences_build_page (gpointer data,
     /* Copied grids must be grids */
     if (!GTK_IS_GRID(new_content))
     {
-        g_critical("The object name %s in file %s is not a GtkGrid. It cannot "
-                   "be added to the preferences dialog.",
-                   add_in->widgetname, add_in->filename);
-        g_object_unref(G_OBJECT(builder));
+        g_critical ("The object name %s in file %s is not a GtkGrid. It cannot "
+                    "be added to the preferences dialog.",
+                    add_in->widgetname, add_in->filename);
+        g_object_unref (G_OBJECT(builder));
         LEAVE("");
         return;
     }
 
     /* Does the page exist or must we create it */
-    existing_content = gnc_prefs_find_page(notebook, add_in->tabname);
+    existing_content = gnc_prefs_find_page (notebook, add_in->tabname);
 
     if (!existing_content)
     {
         /* No existing content with this name.  Create a blank page */
-        existing_content = gtk_grid_new();
-        gtk_container_set_border_width(GTK_CONTAINER(existing_content), 6);
-        label = gtk_label_new(add_in->tabname);
-        gnc_label_set_alignment(label, 0.0, 0.5);
-        gtk_notebook_append_page(notebook, existing_content, label);
-        gtk_widget_show_all(existing_content);
+        existing_content = gtk_grid_new ();
+        gtk_container_set_border_width (GTK_CONTAINER(existing_content), 6);
+        label = gtk_label_new (add_in->tabname);
+        gnc_label_set_alignment (label, 0.0, 0.5);
+        gtk_notebook_append_page (notebook, existing_content, label);
+        gtk_widget_show_all (existing_content);
         DEBUG("created new page %s, appended it", add_in->tabname);
     }
     else
     {
         /* Lets get the size of the existing grid */
         copydata.grid_to = GTK_GRID(existing_content);
-        gtk_container_foreach(GTK_CONTAINER(existing_content), gnc_prefs_get_grid_size, &copydata);
+        gtk_container_foreach (GTK_CONTAINER(existing_content), gnc_prefs_get_grid_size, &copydata);
 
         DEBUG("found existing page %s, grid size is %d x %d", add_in->tabname, copydata.rows, copydata.cols);
     }
@@ -721,8 +719,8 @@ gnc_preferences_build_page (gpointer data,
     /* Maybe add a spacer row */
     if (copydata.rows > 0)
     {
-        label = gtk_label_new("");
-        gtk_widget_show(label);
+        label = gtk_label_new ("");
+        gtk_widget_show (label);
         gtk_grid_attach (GTK_GRID(existing_content), label, 0, copydata.rows, 1, 1);
         copydata.rows = copydata.rows + 1;
 
@@ -732,10 +730,10 @@ gnc_preferences_build_page (gpointer data,
     /* Now copy all the entries in the grid */
     copydata.grid_from = GTK_GRID(new_content);
     copydata.grid_to = GTK_GRID(existing_content);
-    gtk_container_foreach(GTK_CONTAINER(new_content), gnc_prefs_move_grid_entry, &copydata);
+    gtk_container_foreach (GTK_CONTAINER(new_content), gnc_prefs_move_grid_entry, &copydata);
 
-    g_object_ref_sink(new_content);
-    g_object_unref(G_OBJECT(builder));
+    g_object_ref_sink (new_content);
+    g_object_unref (G_OBJECT(builder));
 
     LEAVE("added content to page");
 }
@@ -755,7 +753,7 @@ gnc_prefs_sort_pages (GtkNotebook *notebook)
     gint n_pages, i;
     GList *tabs = NULL, *iter = NULL;
 
-    g_return_if_fail (GTK_IS_NOTEBOOK (notebook));
+    g_return_if_fail (GTK_IS_NOTEBOOK(notebook));
 
     /* gather tabs */
     n_pages = gtk_notebook_get_n_pages (notebook);
@@ -767,7 +765,7 @@ gnc_prefs_sort_pages (GtkNotebook *notebook)
 
     /* reorder tabs */
     for (i = 0, iter = tabs; iter; i++, iter = iter->next)
-        gtk_notebook_reorder_child (notebook, GTK_WIDGET (iter->data), i);
+        gtk_notebook_reorder_child (notebook, GTK_WIDGET(iter->data), i);
 
     g_list_free (tabs);
 }
@@ -801,15 +799,15 @@ gnc_prefs_connect_font_button (GtkFontButton *fb)
 {
     gchar *group, *pref;
 
-    g_return_if_fail(GTK_IS_FONT_BUTTON(fb));
+    g_return_if_fail (GTK_IS_FONT_BUTTON(fb));
 
-    gnc_prefs_split_widget_name (gtk_buildable_get_name(GTK_BUILDABLE(fb)), &group, &pref);
+    gnc_prefs_split_widget_name (gtk_buildable_get_name (GTK_BUILDABLE(fb)), &group, &pref);
     gnc_prefs_bind (group, pref, G_OBJECT (fb), "font-name");
 
     g_free (group);
     g_free (pref);
 
-    gtk_widget_show_all(GTK_WIDGET(fb));
+    gtk_widget_show_all (GTK_WIDGET(fb));
 }
 
 /****************************************************************************/
@@ -844,7 +842,7 @@ file_chooser_selected_cb (GtkFileChooser *fc, gpointer user_data)
         PINFO("Failed to save preference at %s, %s with %s", group, pref, folder_uri);
     else
         gnc_doclink_pref_path_head_changed (
-            GTK_WINDOW (gtk_widget_get_toplevel (GTK_WIDGET (fc))),
+            GTK_WINDOW(gtk_widget_get_toplevel (GTK_WIDGET(fc))),
             old_path_head_uri);
 
     g_free (old_path_head_uri);
@@ -949,13 +947,13 @@ file_chooser_clear_cb (GtkButton *button, gpointer user_data)
         PINFO("Failed to Clear preference at %s, %s", group, pref);
     else
         gnc_doclink_pref_path_head_changed (
-            GTK_WINDOW (gtk_widget_get_toplevel (GTK_WIDGET (fcb))),
+            GTK_WINDOW(gtk_widget_get_toplevel (GTK_WIDGET(fcb))),
             old_path_head_uri);
 
     gtk_widget_destroy (GTK_WIDGET(fcb));
 
     fcb_new = gtk_file_chooser_button_new (_("Select a folder"),
-                             GTK_FILE_CHOOSER_ACTION_SELECT_FOLDER);
+                                           GTK_FILE_CHOOSER_ACTION_SELECT_FOLDER);
 
     g_object_set_data (G_OBJECT(fcb_new), "path_head_error", image);
     g_object_set_data_full (G_OBJECT(fcb_new),"group", g_strdup (group), (GDestroyNotify) g_free);
@@ -989,11 +987,11 @@ gnc_prefs_connect_radio_button (GtkRadioButton *button)
 {
     gchar *group, *pref;
 
-    g_return_if_fail(GTK_IS_RADIO_BUTTON(button));
+    g_return_if_fail (GTK_IS_RADIO_BUTTON(button));
 
-    gnc_prefs_split_widget_name (gtk_buildable_get_name(GTK_BUILDABLE(button)), &group, &pref);
+    gnc_prefs_split_widget_name (gtk_buildable_get_name (GTK_BUILDABLE(button)), &group, &pref);
 
-    gnc_prefs_bind (group, pref, G_OBJECT (button), "active");
+    gnc_prefs_bind (group, pref, G_OBJECT(button), "active");
 
     g_free (group);
     g_free (pref);
@@ -1013,11 +1011,11 @@ gnc_prefs_connect_check_button (GtkCheckButton *button)
 {
     gchar *group, *pref;
 
-    g_return_if_fail(GTK_IS_CHECK_BUTTON(button));
+    g_return_if_fail (GTK_IS_CHECK_BUTTON(button));
 
-    gnc_prefs_split_widget_name (gtk_buildable_get_name(GTK_BUILDABLE(button)), &group, &pref);
+    gnc_prefs_split_widget_name (gtk_buildable_get_name (GTK_BUILDABLE(button)), &group, &pref);
 
-    gnc_prefs_bind (group, pref, G_OBJECT (button), "active");
+    gnc_prefs_bind (group, pref, G_OBJECT(button), "active");
 
     g_free (group);
     g_free (pref);
@@ -1037,11 +1035,11 @@ gnc_prefs_connect_spin_button (GtkSpinButton *spin)
 {
     gchar *group, *pref;
 
-    g_return_if_fail(GTK_IS_SPIN_BUTTON(spin));
+    g_return_if_fail (GTK_IS_SPIN_BUTTON(spin));
 
-    gnc_prefs_split_widget_name (gtk_buildable_get_name(GTK_BUILDABLE(spin)), &group, &pref);
+    gnc_prefs_split_widget_name (gtk_buildable_get_name (GTK_BUILDABLE(spin)), &group, &pref);
 
-    gnc_prefs_bind (group, pref, G_OBJECT (spin), "value");
+    gnc_prefs_bind (group, pref, G_OBJECT(spin), "value");
 
     g_free (group);
     g_free (pref);
@@ -1060,11 +1058,11 @@ gnc_prefs_connect_combo_box (GtkComboBox *box)
 {
     gchar *group, *pref;
 
-    g_return_if_fail(GTK_IS_COMBO_BOX(box));
+    g_return_if_fail (GTK_IS_COMBO_BOX(box));
 
-    gnc_prefs_split_widget_name (gtk_buildable_get_name(GTK_BUILDABLE(box)), &group, &pref);
+    gnc_prefs_split_widget_name (gtk_buildable_get_name (GTK_BUILDABLE(box)), &group, &pref);
 
-    gnc_prefs_bind (group, pref, G_OBJECT (box), "active");
+    gnc_prefs_bind (group, pref, G_OBJECT(box), "active");
 
     g_free (group);
     g_free (pref);
@@ -1083,16 +1081,16 @@ gnc_prefs_connect_currency_edit (GNCCurrencyEdit *gce, const gchar *boxname )
 {
     gchar *group, *pref;
 
-    g_return_if_fail(GNC_IS_CURRENCY_EDIT(gce));
+    g_return_if_fail (GNC_IS_CURRENCY_EDIT(gce));
 
     gnc_prefs_split_widget_name (boxname, &group, &pref);
 
-    gnc_prefs_bind (group, pref, G_OBJECT (gce), "mnemonic");
+    gnc_prefs_bind (group, pref, G_OBJECT(gce), "mnemonic");
 
     g_free (group);
     g_free (pref);
 
-    gtk_widget_show_all(GTK_WIDGET(gce));
+    gtk_widget_show_all (GTK_WIDGET(gce));
 }
 
 /****************************************************************************/
@@ -1108,11 +1106,11 @@ gnc_prefs_connect_entry (GtkEntry *entry)
 {
     gchar *group, *pref;
 
-    g_return_if_fail(GTK_IS_ENTRY(entry));
+    g_return_if_fail (GTK_IS_ENTRY(entry));
 
-    gnc_prefs_split_widget_name (gtk_buildable_get_name(GTK_BUILDABLE(entry)), &group, &pref);
+    gnc_prefs_split_widget_name (gtk_buildable_get_name (GTK_BUILDABLE(entry)), &group, &pref);
 
-    gnc_prefs_bind (group, pref, G_OBJECT (entry), "text");
+    gnc_prefs_bind (group, pref, G_OBJECT(entry), "text");
 
     g_free (group);
     g_free (pref);
@@ -1131,11 +1129,11 @@ gnc_prefs_connect_period_select (GncPeriodSelect *period, const gchar *boxname )
 {
     gchar *group, *pref;
 
-    g_return_if_fail(GNC_IS_PERIOD_SELECT(period));
+    g_return_if_fail (GNC_IS_PERIOD_SELECT(period));
 
     gnc_prefs_split_widget_name (boxname, &group, &pref);
 
-    gnc_prefs_bind (group, pref, G_OBJECT (period), "active");
+    gnc_prefs_bind (group, pref, G_OBJECT(period), "active");
 
     g_free (group);
     g_free (pref);
@@ -1154,11 +1152,11 @@ gnc_prefs_connect_date_edit (GNCDateEdit *gde , const gchar *boxname )
 {
     gchar *group, *pref;
 
-    g_return_if_fail(GNC_IS_DATE_EDIT(gde));
+    g_return_if_fail (GNC_IS_DATE_EDIT(gde));
 
     gnc_prefs_split_widget_name (boxname, &group, &pref);
 
-    gnc_prefs_bind (group, pref, G_OBJECT (gde), "time");
+    gnc_prefs_bind (group, pref, G_OBJECT(gde), "time");
 
     g_free (group);
     g_free (pref);
@@ -1194,12 +1192,12 @@ gnc_preferences_delete_event_cb (GtkWidget *widget,
  *  @param unused
  */
 void
-gnc_preferences_response_cb(GtkDialog *dialog, gint response, GtkDialog *unused)
+gnc_preferences_response_cb (GtkDialog *dialog, gint response, GtkDialog *unused)
 {
     switch (response)
     {
     case GTK_RESPONSE_HELP:
-        gnc_gnome_help(HF_HELP, HL_GLOBPREFS);
+        gnc_gnome_help (HF_HELP, HL_GLOBPREFS);
         break;
 
     case GTK_RESPONSE_DELETE_EVENT:
@@ -1244,66 +1242,66 @@ gnc_prefs_connect_one (const gchar *name,
     if (GTK_IS_FONT_BUTTON(widget))
     {
         DEBUG("  %s - font button", name);
-        gnc_prefs_connect_font_button(GTK_FONT_BUTTON(widget));
+        gnc_prefs_connect_font_button (GTK_FONT_BUTTON(widget));
     }
     else if (GTK_IS_FILE_CHOOSER_BUTTON(widget))
     {
         DEBUG("  %s - file chooser button", name);
-        gnc_prefs_connect_file_chooser_button(GTK_FILE_CHOOSER_BUTTON(widget), NULL);
+        gnc_prefs_connect_file_chooser_button (GTK_FILE_CHOOSER_BUTTON(widget), NULL);
     }
     else if (GTK_IS_RADIO_BUTTON(widget))
     {
         DEBUG("  %s - radio button", name);
-        gnc_prefs_connect_radio_button(GTK_RADIO_BUTTON(widget));
+        gnc_prefs_connect_radio_button (GTK_RADIO_BUTTON(widget));
     }
     else if (GTK_IS_CHECK_BUTTON(widget))
     {
         DEBUG("  %s - check button", name);
-        gnc_prefs_connect_check_button(GTK_CHECK_BUTTON(widget));
+        gnc_prefs_connect_check_button (GTK_CHECK_BUTTON(widget));
     }
     else if (GTK_IS_SPIN_BUTTON(widget))
     {
         DEBUG("  %s - spin button", name);
-        gnc_prefs_connect_spin_button(GTK_SPIN_BUTTON(widget));
+        gnc_prefs_connect_spin_button (GTK_SPIN_BUTTON(widget));
     }
     else if (GTK_IS_COMBO_BOX(widget))
     {
         DEBUG("  %s - combo box", name);
-        gnc_prefs_connect_combo_box(GTK_COMBO_BOX(widget));
+        gnc_prefs_connect_combo_box (GTK_COMBO_BOX(widget));
     }
     else if (GTK_IS_ENTRY(widget))
     {
         DEBUG("  %s - entry", name);
-        gnc_prefs_connect_entry(GTK_ENTRY(widget));
+        gnc_prefs_connect_entry (GTK_ENTRY(widget));
     }
     else if (GTK_IS_BOX(widget))
     {
         /* Test custom widgets are all children of a hbox */
         GtkWidget *widget_child;
-        GList* child = gtk_container_get_children(GTK_CONTAINER(widget));
+        GList* child = gtk_container_get_children (GTK_CONTAINER(widget));
         widget_child = child->data;
-        g_list_free(child);
+        g_list_free (child);
         DEBUG("  %s - box", name);
-        DEBUG("Box widget type is %s and name is %s", gtk_widget_get_name(GTK_WIDGET(widget_child)), name);
+        DEBUG("Box widget type is %s and name is %s", gtk_widget_get_name (GTK_WIDGET(widget_child)), name);
         if (GNC_IS_CURRENCY_EDIT(widget_child))
         {
             DEBUG("  %s - currency_edit", name);
-            gnc_prefs_connect_currency_edit(GNC_CURRENCY_EDIT(widget_child), name );
+            gnc_prefs_connect_currency_edit (GNC_CURRENCY_EDIT(widget_child), name );
         }
         else if (GNC_IS_PERIOD_SELECT(widget_child))
         {
             DEBUG("  %s - period_select", name);
-            gnc_prefs_connect_period_select(GNC_PERIOD_SELECT(widget_child), name );
+            gnc_prefs_connect_period_select (GNC_PERIOD_SELECT(widget_child), name );
         }
         else if (GNC_IS_DATE_EDIT(widget_child))
         {
             DEBUG("  %s - date_edit", name);
-            gnc_prefs_connect_date_edit(GNC_DATE_EDIT(widget_child), name );
+            gnc_prefs_connect_date_edit (GNC_DATE_EDIT(widget_child), name );
         }
         else if (GTK_FILE_CHOOSER_BUTTON(widget_child))
         {
             DEBUG("  %s - file chooser button", name);
-            gnc_prefs_connect_file_chooser_button(GTK_FILE_CHOOSER_BUTTON(widget_child), name );
+            gnc_prefs_connect_file_chooser_button (GTK_FILE_CHOOSER_BUTTON(widget_child), name );
         }
     }
     else
@@ -1326,7 +1324,7 @@ gnc_prefs_connect_one (const gchar *name,
  *  @return A pointer to the newly created dialog.
  */
 static GtkWidget *
-gnc_preferences_dialog_create(GtkWindow *parent)
+gnc_preferences_dialog_create (GtkWindow *parent)
 {
     GtkBuilder *builder;
     GtkWidget *dialog, *notebook, *label, *image, *spinner, *entry;
@@ -1345,7 +1343,7 @@ gnc_preferences_dialog_create(GtkWindow *parent)
 
     ENTER("");
     DEBUG("Opening dialog-preferences.glade:");
-    builder = gtk_builder_new();
+    builder = gtk_builder_new ();
 
     gnc_builder_add_from_file (builder, "dialog-preferences.glade", "auto_decimal_places_adj");
     gnc_builder_add_from_file (builder, "dialog-preferences.glade", "autosave_interval_minutes_adj");
@@ -1374,31 +1372,31 @@ gnc_preferences_dialog_create(GtkWindow *parent)
 
 #ifndef REGISTER2_ENABLED
     /* Hide preferences that are related to register2 */
-    box = GTK_WIDGET (gtk_builder_get_object (builder, "label14"));
+    box = GTK_WIDGET(gtk_builder_get_object (builder, "label14"));
     gtk_widget_hide (box);
-    box = GTK_WIDGET (gtk_builder_get_object (builder, "pref/general.register/key-length"));
+    box = GTK_WIDGET(gtk_builder_get_object (builder, "pref/general.register/key-length"));
     gtk_widget_hide (box);
-    box = GTK_WIDGET (gtk_builder_get_object (builder, "pref/general.register/show-extra-dates"));
+    box = GTK_WIDGET(gtk_builder_get_object (builder, "pref/general.register/show-extra-dates"));
     gtk_widget_hide (box);
-    box = GTK_WIDGET (gtk_builder_get_object (builder, "pref/general.register/show-calendar-buttons"));
+    box = GTK_WIDGET(gtk_builder_get_object (builder, "pref/general.register/show-calendar-buttons"));
     gtk_widget_hide (box);
-    box = GTK_WIDGET (gtk_builder_get_object (builder, "pref/general.register/selection-to-blank-on-expand"));
+    box = GTK_WIDGET(gtk_builder_get_object (builder, "pref/general.register/selection-to-blank-on-expand"));
     gtk_widget_hide (box);
-    box = GTK_WIDGET (gtk_builder_get_object (builder, "pref/general.register/show-extra-dates-on-selection"));
+    box = GTK_WIDGET(gtk_builder_get_object (builder, "pref/general.register/show-extra-dates-on-selection"));
     gtk_widget_hide (box);
 #endif
 
     label = GTK_WIDGET(gtk_builder_get_object (builder, "sample_account"));
-    g_object_set_data(G_OBJECT(dialog), "sample_account", label);
+    g_object_set_data (G_OBJECT(dialog), "sample_account", label);
 
     image = GTK_WIDGET(gtk_builder_get_object (builder, "separator_error"));
-    g_object_set_data(G_OBJECT(dialog), "separator_error", image);
+    g_object_set_data (G_OBJECT(dialog), "separator_error", image);
 
     entry = GTK_WIDGET(gtk_builder_get_object (builder, "pref/general/account-separator"));
     g_object_set_data (G_OBJECT(dialog), "account-separator", entry);
 
     spinner = GTK_WIDGET(gtk_builder_get_object (builder, "pref/general/save-on-close-wait-time"));
-    g_object_set_data(G_OBJECT(dialog), "save_on_close_wait_time", spinner);
+    g_object_set_data (G_OBJECT(dialog), "save_on_close_wait_time", spinner);
 
     DEBUG("autoconnect");
     gtk_builder_connect_signals_full (builder, gnc_builder_connect_full_func, dialog);
@@ -1406,109 +1404,109 @@ gnc_preferences_dialog_create(GtkWindow *parent)
     DEBUG("done");
 
     notebook = GTK_WIDGET(gtk_builder_get_object (builder, "notebook1"));
-    prefs_table = g_hash_table_new(g_str_hash, g_str_equal);
-    g_object_set_data(G_OBJECT(dialog), NOTEBOOK, notebook);
-    g_object_set_data_full(G_OBJECT(dialog), PREFS_WIDGET_HASH,
-                           prefs_table, (GDestroyNotify)g_hash_table_destroy);
+    prefs_table = g_hash_table_new (g_str_hash, g_str_equal);
+    g_object_set_data (G_OBJECT(dialog), NOTEBOOK, notebook);
+    g_object_set_data_full (G_OBJECT(dialog), PREFS_WIDGET_HASH,
+                            prefs_table, (GDestroyNotify)g_hash_table_destroy);
 
 
-    book = gnc_get_current_book();
+    book = gnc_get_current_book ();
     g_date_clear (&fy_end, 1);
-    qof_instance_get (QOF_INSTANCE (book),
-              "fy-end", &fy_end,
-              NULL);
+    qof_instance_get (QOF_INSTANCE(book),
+                      "fy-end", &fy_end,
+                      NULL);
     box = GTK_WIDGET(gtk_builder_get_object (builder,
                      "pref/" GNC_PREFS_GROUP_ACCT_SUMMARY "/" GNC_PREF_START_PERIOD));
-    period = gnc_period_select_new(TRUE);
+    period = gnc_period_select_new (TRUE);
     gtk_widget_show (period);
-    gtk_box_pack_start (GTK_BOX (box), period, TRUE, TRUE, 0);
+    gtk_box_pack_start (GTK_BOX(box), period, TRUE, TRUE, 0);
     if (date_is_valid)
-        gnc_period_select_set_fy_end(GNC_PERIOD_SELECT (period), &fy_end);
+        gnc_period_select_set_fy_end (GNC_PERIOD_SELECT(period), &fy_end);
 
     box = GTK_WIDGET(gtk_builder_get_object (builder,
                      "pref/" GNC_PREFS_GROUP_ACCT_SUMMARY "/" GNC_PREF_END_PERIOD));
-    period = gnc_period_select_new(FALSE);
+    period = gnc_period_select_new (FALSE);
     gtk_widget_show (period);
-    gtk_box_pack_start (GTK_BOX (box), period, TRUE, TRUE, 0);
+    gtk_box_pack_start (GTK_BOX(box), period, TRUE, TRUE, 0);
     if (date_is_valid)
-        gnc_period_select_set_fy_end(GNC_PERIOD_SELECT (period), &fy_end);
+        gnc_period_select_set_fy_end (GNC_PERIOD_SELECT(period), &fy_end);
 
     box = GTK_WIDGET(gtk_builder_get_object (builder,
                      "pref/" GNC_PREFS_GROUP_ACCT_SUMMARY "/" GNC_PREF_START_DATE));
-    date = gnc_date_edit_new(gnc_time (NULL), FALSE, FALSE);
+    date = gnc_date_edit_new (gnc_time (NULL), FALSE, FALSE);
     gtk_widget_show (date);
-    gtk_box_pack_start (GTK_BOX (box), date, TRUE, TRUE, 0);
+    gtk_box_pack_start (GTK_BOX(box), date, TRUE, TRUE, 0);
 
     box = GTK_WIDGET(gtk_builder_get_object (builder,
                      "pref/" GNC_PREFS_GROUP_ACCT_SUMMARY "/" GNC_PREF_END_DATE));
-    date = gnc_date_edit_new(gnc_time (NULL), FALSE, FALSE);
+    date = gnc_date_edit_new (gnc_time (NULL), FALSE, FALSE);
     gtk_widget_show (date);
-    gtk_box_pack_start (GTK_BOX (box), date, TRUE, TRUE, 0);
+    gtk_box_pack_start (GTK_BOX(box), date, TRUE, TRUE, 0);
 
     box = GTK_WIDGET(gtk_builder_get_object (builder,
                      "pref/" GNC_PREFS_GROUP_GENERAL "/" GNC_PREF_CURRENCY_OTHER));
-    currency = gnc_currency_edit_new();
+    currency = gnc_currency_edit_new ();
     gnc_currency_edit_set_currency (GNC_CURRENCY_EDIT(currency), gnc_default_currency());
     gtk_widget_show (currency);
-    gtk_box_pack_start(GTK_BOX (box), currency, TRUE, TRUE, 0);
+    gtk_box_pack_start (GTK_BOX(box), currency, TRUE, TRUE, 0);
 
     box = GTK_WIDGET(gtk_builder_get_object (builder,
                      "pref/" GNC_PREFS_GROUP_GENERAL_REPORT "/" GNC_PREF_CURRENCY_OTHER));
-    currency = gnc_currency_edit_new();
+    currency = gnc_currency_edit_new ();
     gnc_currency_edit_set_currency (GNC_CURRENCY_EDIT(currency), gnc_default_currency());
     gtk_widget_show (currency);
-    gtk_box_pack_start(GTK_BOX (box), currency, TRUE, TRUE, 0);
+    gtk_box_pack_start (GTK_BOX(box), currency, TRUE, TRUE, 0);
 
     box = GTK_WIDGET(gtk_builder_get_object (builder,
                      "pref/" GNC_PREFS_GROUP_GENERAL "/" GNC_DOC_LINK_PATH_HEAD));
     fcb = gtk_file_chooser_button_new (_("Select a folder"),
-                             GTK_FILE_CHOOSER_ACTION_SELECT_FOLDER);
-    gtk_box_pack_start (GTK_BOX (box), fcb, TRUE, TRUE, 0);
+                                       GTK_FILE_CHOOSER_ACTION_SELECT_FOLDER);
+    gtk_box_pack_start (GTK_BOX(box), fcb, TRUE, TRUE, 0);
     button = gtk_button_new_with_label (_("Clear"));
-    gtk_box_pack_start (GTK_BOX (box), button, TRUE, TRUE, 0);
+    gtk_box_pack_start (GTK_BOX(box), button, TRUE, TRUE, 0);
     gtk_widget_show (button);
     g_signal_connect (GTK_BUTTON(button), "clicked",
                       G_CALLBACK(file_chooser_clear_cb), fcb);
 
     image = GTK_WIDGET(gtk_builder_get_object (builder, "path_head_error"));
-    g_object_set_data(G_OBJECT(fcb), "path_head_error", image);
+    g_object_set_data (G_OBJECT(fcb), "path_head_error", image);
 
     /* Add to the list of interesting widgets */
-    gnc_prefs_build_widget_table(builder, dialog);
+    gnc_prefs_build_widget_table (builder, dialog);
 
-    g_slist_foreach(add_ins, gnc_preferences_build_page, dialog);
+    g_slist_foreach (add_ins, gnc_preferences_build_page, dialog);
 
     /* Sort tabs alphabetically */
-    gnc_prefs_sort_pages(GTK_NOTEBOOK(notebook));
-    gtk_notebook_set_current_page(GTK_NOTEBOOK(notebook), 0);
+    gnc_prefs_sort_pages (GTK_NOTEBOOK(notebook));
+    gtk_notebook_set_current_page (GTK_NOTEBOOK(notebook), 0);
 
     DEBUG("We have the following interesting widgets:");
-    gnc_prefs_block_all(); // Block All Registered callbacks
-    g_hash_table_foreach(prefs_table, (GHFunc)gnc_prefs_connect_one, dialog);
-    gnc_prefs_unblock_all(); // UnBlock All Registered callbacks
+    gnc_prefs_block_all (); // Block All Registered callbacks
+    g_hash_table_foreach (prefs_table, (GHFunc)gnc_prefs_connect_one, dialog);
+    gnc_prefs_unblock_all (); // UnBlock All Registered callbacks
     DEBUG("Done with interesting widgets.");
 
     /* Other stuff */
-    gdate = g_date_new_dmy(31, G_DATE_JULY, 2013);
-    g_date_strftime(buf, sizeof(buf), "%x", gdate);
+    gdate = g_date_new_dmy (31, G_DATE_JULY, 2013);
+    g_date_strftime (buf, sizeof(buf), "%x", gdate);
     store = GTK_LIST_STORE(gtk_builder_get_object (builder, "date_formats"));
     path = gtk_tree_path_new_from_indices (QOF_DATE_FORMAT_LOCALE, -1);
-    if (gtk_tree_model_get_iter (GTK_TREE_MODEL (store), &iter, path))
-            gtk_list_store_set (store, &iter, 1, buf, -1);
-    g_date_free(gdate);
+    if (gtk_tree_model_get_iter (GTK_TREE_MODEL(store), &iter, path))
+        gtk_list_store_set (store, &iter, 1, buf, -1);
+    g_date_free (gdate);
     gtk_tree_path_free (path);
 
     locale_currency = gnc_locale_default_currency ();
-    currency_name = gnc_commodity_get_printname(locale_currency);
+    currency_name = gnc_commodity_get_printname (locale_currency);
     label = GTK_WIDGET(gtk_builder_get_object (builder, "locale_currency"));
-    gtk_label_set_label(GTK_LABEL(label), currency_name);
+    gtk_label_set_label (GTK_LABEL(label), currency_name);
     label = GTK_WIDGET(gtk_builder_get_object (builder, "locale_currency2"));
-    gtk_label_set_label(GTK_LABEL(label), currency_name);
+    gtk_label_set_label (GTK_LABEL(label), currency_name);
 
     button = GTK_WIDGET(gtk_builder_get_object (builder, "pref/general/save-on-close-expires"));
     gnc_save_on_close_expires_cb (GTK_TOGGLE_BUTTON(button), dialog);
 
-    g_object_unref(G_OBJECT(builder));
+    g_object_unref (G_OBJECT(builder));
 
     /* save the original account separator incase it changes */
     g_object_set_data_full (G_OBJECT(entry), "original_text",
@@ -1548,7 +1546,7 @@ show_handler (const char *class_name, gint component_id,
 
     ENTER(" ");
     dialog = GTK_WIDGET(user_data);
-    gtk_window_present(GTK_WINDOW(dialog));
+    gtk_window_present (GTK_WINDOW(dialog));
     LEAVE(" ");
     return(TRUE);
 }
@@ -1567,8 +1565,8 @@ close_handler (gpointer user_data)
 
     ENTER(" ");
     dialog = GTK_WIDGET(user_data);
-    gnc_unregister_gui_component_by_data(DIALOG_PREFERENCES_CM_CLASS, dialog);
-    gtk_widget_destroy(dialog);
+    gnc_unregister_gui_component_by_data (DIALOG_PREFERENCES_CM_CLASS, dialog);
+    gtk_widget_destroy (dialog);
     LEAVE(" ");
 }
 
@@ -1583,8 +1581,8 @@ gnc_preferences_dialog (GtkWindow *parent)
     GtkWidget *dialog;
 
     ENTER("");
-    if (gnc_forall_gui_components(DIALOG_PREFERENCES_CM_CLASS,
-                                  show_handler, NULL))
+    if (gnc_forall_gui_components (DIALOG_PREFERENCES_CM_CLASS,
+                                   show_handler, NULL))
     {
         LEAVE("existing window");
         return;
@@ -1592,11 +1590,11 @@ gnc_preferences_dialog (GtkWindow *parent)
 
     dialog = gnc_preferences_dialog_create(parent);
 
-    gnc_restore_window_size(GNC_PREFS_GROUP, GTK_WINDOW(dialog), parent);
-    gtk_widget_show(dialog);
+    gnc_restore_window_size (GNC_PREFS_GROUP, GTK_WINDOW(dialog), parent);
+    gtk_widget_show (dialog);
 
-    gnc_register_gui_component(DIALOG_PREFERENCES_CM_CLASS,
-                               NULL, close_handler, dialog);
+    gnc_register_gui_component (DIALOG_PREFERENCES_CM_CLASS,
+                                NULL, close_handler, dialog);
 
     LEAVE(" ");
 }

commit 39827ce7bba8d87dd40921c33cde666446e559e6
Author: Robert Fewell <14uBobIT at gmail.com>
Date:   Tue Nov 3 13:59:14 2020 +0000

    Change Preference dialog account separator validation
    
    If the account separator is changed and is invalid the warning dialog
    may be shown many times. To fix this the validation is done on closing
    the preference dialog when a validation dialog will present two options,
    The first is to reset the separator to the original value and close the
    preference dialog and the second is to return to the 'Accounts' page of
    the preference dialog.
    
    The warning symbol is still displayed when the separator is changed
    giving an indication of a problem.
    
    This has stemmed from PR #766 and all this commit does is the minimum
    recommended there.

diff --git a/gnucash/gnome-utils/dialog-preferences.c b/gnucash/gnome-utils/dialog-preferences.c
index 5b9e1bf8b..9b8137dcc 100644
--- a/gnucash/gnome-utils/dialog-preferences.c
+++ b/gnucash/gnome-utils/dialog-preferences.c
@@ -90,8 +90,10 @@ static QofLogModule log_module = GNC_MOD_PREFS;
 
 void gnc_preferences_response_cb(GtkDialog *dialog, gint response, GtkDialog *unused);
 void gnc_account_separator_pref_changed_cb (GtkEntry *entry, GtkWidget *dialog);
-gboolean gnc_account_separator_validate_cb (GtkEntry *entry, GdkEvent *event, GtkWidget *dialog);
 void gnc_save_on_close_expires_cb (GtkToggleButton *button, GtkWidget *dialog);
+gboolean gnc_preferences_delete_event_cb (GtkWidget *widget,
+                                          GdkEvent  *event,
+                                          gpointer   user_data);
 
 /** This data structure holds the information for a single addition to
  *  the preferences dialog. */
@@ -185,23 +187,96 @@ gnc_account_separator_pref_changed_cb (GtkEntry *entry, GtkWidget *dialog)
 }
 
 
-gboolean
-gnc_account_separator_validate_cb (GtkEntry *entry, GdkEvent *event, GtkWidget *dialog)
+/** Called when the 'Close' button pressed or preference dialog closes
+ *  to check if the account separator is valid.
+ *  Offers two choices, to reset separator to original value and exit
+ *  or go back to the 'Accounts' page to change separator
+ *
+ *  @internal
+ *
+ *  @param dialog the prefs dialog.
+ */
+static gboolean
+gnc_account_separator_validate (GtkWidget *dialog)
 {
+    GtkWidget *entry = g_object_get_data (G_OBJECT(dialog), "account-separator");
+    gboolean ret = TRUE;
     gchar *separator;
-    gchar *conflict_msg = gnc_account_separator_is_valid (gtk_entry_get_text (entry), &separator);
+    gchar *conflict_msg = gnc_account_separator_is_valid (gtk_entry_get_text (GTK_ENTRY(entry)), &separator);
 
     /* Check if the new separator clashes with existing account names */
-
     if (conflict_msg)
     {
-        gnc_warning_dialog (GTK_WINDOW (dialog), "%s", conflict_msg);
-        g_free ( conflict_msg );
+        GtkWidget   *msg_dialog;
+        GtkBuilder  *builder;
+        GtkWidget   *msg_label;
+        gint         response;
+
+        builder = gtk_builder_new();
+        gnc_builder_add_from_file (builder, "dialog-preferences.glade", "separator_validation_dialog");
+
+        msg_dialog = GTK_WIDGET(gtk_builder_get_object (builder, "separator_validation_dialog"));
+
+        msg_label = GTK_WIDGET(gtk_builder_get_object (builder, "conflict_message"));
+
+        gtk_label_set_text (GTK_LABEL(msg_label), conflict_msg);
+
+        g_object_unref (G_OBJECT(builder));
+        gtk_widget_show_all (msg_dialog);
+
+        response = gtk_dialog_run (GTK_DIALOG(msg_dialog));
+        if (response == GTK_RESPONSE_ACCEPT) // reset to original
+        {
+            gchar *original_sep = g_object_get_data (G_OBJECT(entry), "original_text");
+
+            if (original_sep != NULL)
+                gtk_entry_set_text (GTK_ENTRY(entry), original_sep);
+        }
+        else
+            ret = FALSE;
+
+        g_free (conflict_msg);
+        gtk_widget_destroy (msg_dialog);
     }
     g_free (separator);
-    return FALSE;
+    return ret;
 }
 
+
+/** Used to select the 'Accounts' page when the user wants
+ *  to return from the account separator validation dialog
+ *  to the preference dialog.
+ *
+ *  @internal
+ *
+ *  @param user_data A pointer to the dialog.
+ */
+static void
+gnc_preferences_select_account_page (GtkDialog *dialog)
+{
+    GtkWidget *notebook = g_object_get_data (G_OBJECT(dialog), NOTEBOOK);
+    GList *children = gtk_container_get_children (GTK_CONTAINER(notebook));
+
+    if (children)
+    {
+        GtkWidget *acc_page = NULL;
+        GList *node;
+
+        for (node = children; node; node = node->next)
+        {
+            if (g_strcmp0 (gtk_widget_get_name (GTK_WIDGET(node->data)), "accounts_page") == 0)
+                acc_page = node->data;
+        }
+
+        if (acc_page)
+            gtk_notebook_set_current_page (GTK_NOTEBOOK(notebook),
+                                           gtk_notebook_page_num (GTK_NOTEBOOK(notebook),
+                                           acc_page));
+    }
+    g_list_free (children);
+}
+
+
 /** Called when the save-on-close checkbutton is toggled.
  * @internal
  * @param button the toggle button.
@@ -1096,6 +1171,15 @@ gnc_prefs_connect_date_edit (GNCDateEdit *gde , const gchar *boxname )
 /*    Callbacks     */
 /********************/
 
+gboolean
+gnc_preferences_delete_event_cb (GtkWidget *widget,
+                                 GdkEvent  *event,
+                                 gpointer   user_data)
+{
+    /* need to block this for the account separator test */
+    return TRUE;
+}
+
 /** Handle a user click on one of the buttons at the bottom of the
  *  preference dialog.  Also handles delete_window events, which have
  *  conveniently converted to a response by GtkDialog.
@@ -1118,11 +1202,17 @@ gnc_preferences_response_cb(GtkDialog *dialog, gint response, GtkDialog *unused)
         gnc_gnome_help(HF_HELP, HL_GLOBPREFS);
         break;
 
+    case GTK_RESPONSE_DELETE_EVENT:
     default:
-        gnc_save_window_size(GNC_PREFS_GROUP, GTK_WINDOW(dialog));
-        gnc_unregister_gui_component_by_data(DIALOG_PREFERENCES_CM_CLASS,
-                                             dialog);
-        gtk_widget_destroy(GTK_WIDGET(dialog));
+        if (gnc_account_separator_validate (GTK_WIDGET(dialog)))
+        {
+            gnc_save_window_size (GNC_PREFS_GROUP, GTK_WINDOW(dialog));
+            gnc_unregister_gui_component_by_data (DIALOG_PREFERENCES_CM_CLASS,
+                                                  dialog);
+            gtk_widget_destroy (GTK_WIDGET(dialog));
+        }
+        else
+            gnc_preferences_select_account_page (dialog);
         break;
     }
 }
@@ -1239,7 +1329,7 @@ static GtkWidget *
 gnc_preferences_dialog_create(GtkWindow *parent)
 {
     GtkBuilder *builder;
-    GtkWidget *dialog, *notebook, *label, *image, *spinner;
+    GtkWidget *dialog, *notebook, *label, *image, *spinner, *entry;
     GtkWidget *box, *date, *period, *currency, *fcb, *button;
     GHashTable *prefs_table;
     GDate* gdate = NULL;
@@ -1304,6 +1394,9 @@ gnc_preferences_dialog_create(GtkWindow *parent)
     image = GTK_WIDGET(gtk_builder_get_object (builder, "separator_error"));
     g_object_set_data(G_OBJECT(dialog), "separator_error", image);
 
+    entry = GTK_WIDGET(gtk_builder_get_object (builder, "pref/general/account-separator"));
+    g_object_set_data (G_OBJECT(dialog), "account-separator", entry);
+
     spinner = GTK_WIDGET(gtk_builder_get_object (builder, "pref/general/save-on-close-wait-time"));
     g_object_set_data(G_OBJECT(dialog), "save_on_close_wait_time", spinner);
 
@@ -1417,6 +1510,11 @@ gnc_preferences_dialog_create(GtkWindow *parent)
 
     g_object_unref(G_OBJECT(builder));
 
+    /* save the original account separator incase it changes */
+    g_object_set_data_full (G_OBJECT(entry), "original_text",
+                            g_strdup (gtk_entry_get_text (GTK_ENTRY(entry))),
+                            g_free);
+
     LEAVE("dialog %p", dialog);
     return dialog;
 }
diff --git a/gnucash/gtkbuilder/dialog-preferences.glade b/gnucash/gtkbuilder/dialog-preferences.glade
index 3233c736c..43c574508 100644
--- a/gnucash/gtkbuilder/dialog-preferences.glade
+++ b/gnucash/gtkbuilder/dialog-preferences.glade
@@ -113,6 +113,121 @@
     <property name="step_increment">1</property>
     <property name="page_increment">10</property>
   </object>
+  <object class="GtkDialog" id="separator_validation_dialog">
+    <property name="can_focus">False</property>
+    <property name="modal">True</property>
+    <property name="default_width">600</property>
+    <property name="destroy_with_parent">True</property>
+    <property name="type_hint">dialog</property>
+    <child internal-child="vbox">
+      <object class="GtkBox">
+        <property name="can_focus">False</property>
+        <property name="orientation">vertical</property>
+        <property name="spacing">2</property>
+        <child internal-child="action_area">
+          <object class="GtkButtonBox">
+            <property name="can_focus">False</property>
+            <property name="layout_style">end</property>
+            <child>
+              <object class="GtkButton" id="button1">
+                <property name="label" translatable="yes">_Reset</property>
+                <property name="visible">True</property>
+                <property name="can_focus">True</property>
+                <property name="receives_default">True</property>
+                <property name="use_underline">True</property>
+              </object>
+              <packing>
+                <property name="expand">True</property>
+                <property name="fill">True</property>
+                <property name="position">0</property>
+              </packing>
+            </child>
+            <child>
+              <object class="GtkButton" id="button2">
+                <property name="label" translatable="yes">_Close</property>
+                <property name="visible">True</property>
+                <property name="can_focus">True</property>
+                <property name="can_default">True</property>
+                <property name="has_default">True</property>
+                <property name="receives_default">True</property>
+                <property name="use_underline">True</property>
+              </object>
+              <packing>
+                <property name="expand">True</property>
+                <property name="fill">True</property>
+                <property name="position">1</property>
+              </packing>
+            </child>
+          </object>
+          <packing>
+            <property name="expand">False</property>
+            <property name="fill">False</property>
+            <property name="position">0</property>
+          </packing>
+        </child>
+        <child>
+          <object class="GtkBox">
+            <property name="visible">True</property>
+            <property name="can_focus">False</property>
+            <property name="orientation">vertical</property>
+            <property name="spacing">6</property>
+            <child>
+              <object class="GtkLabel" id="sep_label">
+                <property name="visible">True</property>
+                <property name="can_focus">False</property>
+                <property name="label" translatable="yes"><b>Separator Character</b></property>
+                <property name="use_markup">True</property>
+              </object>
+              <packing>
+                <property name="expand">False</property>
+                <property name="fill">True</property>
+                <property name="position">0</property>
+              </packing>
+            </child>
+            <child>
+              <object class="GtkLabel" id="conflict_message">
+                <property name="visible">True</property>
+                <property name="can_focus">False</property>
+                <property name="wrap">True</property>
+              </object>
+              <packing>
+                <property name="expand">False</property>
+                <property name="fill">True</property>
+                <property name="position">1</property>
+              </packing>
+            </child>
+            <child>
+              <object class="GtkLabel" id="message">
+                <property name="visible">True</property>
+                <property name="can_focus">False</property>
+                <property name="margin_top">12</property>
+                <property name="label" translatable="yes">Press 'Reset' to use the original account separator and close the preference window
+Press 'Close' to return to the preference window
+</property>
+              </object>
+              <packing>
+                <property name="expand">False</property>
+                <property name="fill">True</property>
+                <property name="position">2</property>
+              </packing>
+            </child>
+          </object>
+          <packing>
+            <property name="expand">False</property>
+            <property name="fill">True</property>
+            <property name="position">1</property>
+          </packing>
+        </child>
+      </object>
+    </child>
+    <action-widgets>
+      <action-widget response="-3">button1</action-widget>
+      <action-widget response="-7">button2</action-widget>
+    </action-widgets>
+    <child type="titlebar">
+      <placeholder/>
+    </child>
+  </object>
   <object class="GtkAdjustment" id="tab_width_adj">
     <property name="lower">1</property>
     <property name="upper">100</property>
@@ -126,6 +241,7 @@
     <property name="default_width">600</property>
     <property name="default_height">400</property>
     <property name="type_hint">normal</property>
+    <signal name="delete-event" handler="gnc_preferences_delete_event_cb" swapped="no"/>
     <signal name="response" handler="gnc_preferences_response_cb" swapped="no"/>
     <child internal-child="vbox">
       <object class="GtkBox">
@@ -449,6 +565,7 @@
             </child>
             <child>
               <object class="GtkGrid" id="table1">
+                <property name="name">accounts_page</property>
                 <property name="visible">True</property>
                 <property name="can_focus">False</property>
                 <property name="border_width">6</property>
@@ -739,6 +856,7 @@
                         <property name="can_focus">False</property>
                         <property name="halign">start</property>
                         <property name="icon_name">dialog-warning</property>
+                        <property name="icon_size">3</property>
                       </object>
                       <packing>
                         <property name="expand">False</property>
@@ -758,7 +876,6 @@
                         <property name="primary_icon_activatable">False</property>
                         <property name="secondary_icon_activatable">False</property>
                         <signal name="changed" handler="gnc_account_separator_pref_changed_cb" swapped="no"/>
-                        <signal name="focus-out-event" handler="gnc_account_separator_validate_cb" swapped="no"/>
                       </object>
                       <packing>
                         <property name="expand">True</property>

commit 7b06b9323f00cf27993d94a51f967f18a617a198
Merge: e7a3ec563 5ea17cb09
Author: Frank H. Ellenberger <frank.h.ellenberger at gmail.com>
Date:   Mon Nov 2 23:57:15 2020 +0100

    Merge branch 'PR_806' into maint


commit 5ea17cb09ebeddc42935b490300dc843f1ec1d3c
Author: Frank H. Ellenberger <frank.h.ellenberger at gmail.com>
Date:   Mon Nov 2 23:28:56 2020 +0100

    L10N:de: Anpassungen an "Wechselkurse" an aktuellen Code
    
    * PR #806
    * missing space

diff --git a/po/de.po b/po/de.po
index 21e7fe972..afc1f637e 100644
--- a/po/de.po
+++ b/po/de.po
@@ -25,7 +25,7 @@ msgstr ""
 "Report-Msgid-Bugs-To: https://bugs.gnucash.org/enter_bug.cgi?"
 "product=GnuCash&component=Translations\n"
 "POT-Creation-Date: 2020-11-02 23:00+0100\n"
-"PO-Revision-Date: 2020-10-27 21:23+0100\n"
+"PO-Revision-Date: 2020-11-02 23:21+0100\n"
 "Last-Translator: Christian Stimming <christian at cstimming.de>\n"
 "Language-Team: Deutschsprachige GnuCash-Gemeinde <gnucash-de at gnucash.org>\n"
 "Language: de\n"
@@ -23218,12 +23218,10 @@ msgid "Can't save style sheet"
 msgstr "Stilvorlage kann nicht gespeichert werden"
 
 #: gnucash/report/html-utilities.scm:229 gnucash/report/html-utilities.scm:246
-#, fuzzy
-#| msgid "Exchange rate"
 msgid "Exchange rate"
 msgid_plural "Exchange rates"
 msgstr[0] "Wechselkurs"
-msgstr[1] "Wechselkurs"
+msgstr[1] "Wechselkurse"
 
 #: gnucash/report/html-utilities.scm:259
 msgid "No budgets exist. You must create at least one budget."
@@ -29169,7 +29167,7 @@ msgstr "Ausgleichsbetrag"
 
 #: gnucash/report/reports/support/balsheet-eg.eguile.scm:275
 msgid "<strong>Exchange Rates</strong> used for this report"
-msgstr "Diesem Bericht zugrundeliegende<strong>Wechselkurse</strong>"
+msgstr "Diesem Bericht zugrundeliegende <strong>Wechselkurse</strong>"
 
 #: gnucash/report/reports/support/receipt.eguile.scm:124
 msgid "Invoice No."
@@ -31374,6 +31372,3 @@ msgstr "Keine Hilfe verfügbar."
 
 #~ msgid "<b>Auto-Clear Information</b>"
 #~ msgstr "<b>Information zum automatischen Kontenabgleich</b>"
-
-#~ msgid "Exchange rates"
-#~ msgstr "Wechselkurse"

commit 362315886a56f2281cd42ea87711662cca8dca33
Author: Frank H. Ellenberger <frank.h.ellenberger at gmail.com>
Date:   Mon Nov 2 23:19:55 2020 +0100

    L10N:de: merge pot

diff --git a/po/de.po b/po/de.po
index 445bc6031..21e7fe972 100644
--- a/po/de.po
+++ b/po/de.po
@@ -24,7 +24,7 @@ msgstr ""
 "Project-Id-Version: GnuCash 3.10+\n"
 "Report-Msgid-Bugs-To: https://bugs.gnucash.org/enter_bug.cgi?"
 "product=GnuCash&component=Translations\n"
-"POT-Creation-Date: 2020-10-14 01:49+0200\n"
+"POT-Creation-Date: 2020-11-02 23:00+0100\n"
 "PO-Revision-Date: 2020-10-27 21:23+0100\n"
 "Last-Translator: Christian Stimming <christian at cstimming.de>\n"
 "Language-Team: Deutschsprachige GnuCash-Gemeinde <gnucash-de at gnucash.org>\n"
@@ -896,7 +896,7 @@ msgid "No"
 msgstr "Nein"
 
 #: gnucash/gnome/assistant-hierarchy.c:1335
-#: gnucash/gnome-utils/dialog-options.c:717
+#: gnucash/gnome-utils/dialog-options.c:729
 #: gnucash/gnome-utils/gnc-tree-view-account.c:965
 #: gnucash/gtkbuilder/dialog-account.glade:272
 msgid "Placeholder"
@@ -1005,7 +1005,7 @@ msgstr "Darlehensrechner-Option: \"%s\""
 #: gnucash/import-export/csv-exp/csv-transactions-export.c:622
 #: gnucash/import-export/csv-imp/gnc-imp-props-price.cpp:49
 #: gnucash/import-export/csv-imp/gnc-imp-props-tx.cpp:58
-#: gnucash/import-export/import-main-matcher.c:1034
+#: gnucash/import-export/import-main-matcher.c:1038
 #: gnucash/import-export/import-match-picker.c:393
 #: gnucash/import-export/import-match-picker.c:433
 #: gnucash/import-export/qif-imp/assistant-qif-import.c:3700
@@ -1033,7 +1033,7 @@ msgstr "Darlehensrechner-Option: \"%s\""
 #: gnucash/report/reports/standard/owner-report.scm:50
 #: gnucash/report/reports/standard/portfolio.scm:51
 #: gnucash/report/reports/standard/register.scm:130
-#: gnucash/report/reports/standard/register.scm:382
+#: gnucash/report/reports/standard/register.scm:353
 #: gnucash/report/reports/support/receipt.eguile.scm:143
 #: gnucash/report/reports/support/taxinvoice.eguile.scm:268
 #: gnucash/report/trep-engine.scm:161 gnucash/report/trep-engine.scm:940
@@ -1106,7 +1106,7 @@ msgstr "Fehler beim Hinzufügen des Preises."
 #: gnucash/import-export/aqb/gnc-ab-utils.c:541
 #: gnucash/import-export/bi-import/dialog-bi-import-gui.c:151
 #: gnucash/import-export/csv-imp/gnc-imp-props-tx.cpp:65
-#: gnucash/import-export/import-main-matcher.c:1035
+#: gnucash/import-export/import-main-matcher.c:1039
 #: gnucash/import-export/import-match-picker.c:392
 #: gnucash/import-export/qif-imp/dialog-account-picker.c:433
 #: gnucash/register/ledger-core/split-register-model.c:341
@@ -1121,7 +1121,7 @@ msgstr "Fehler beim Hinzufügen des Preises."
 #: gnucash/report/reports/standard/owner-report.scm:48
 #: gnucash/report/reports/standard/portfolio.scm:253
 #: gnucash/report/reports/standard/register.scm:143
-#: gnucash/report/reports/standard/register.scm:407
+#: gnucash/report/reports/standard/register.scm:378
 #: gnucash/report/trep-engine.scm:1218
 msgid "Account"
 msgstr "Konto"
@@ -1141,7 +1141,7 @@ msgstr "Symbol"
 #: gnucash/report/reports/standard/general-ledger.scm:78
 #: gnucash/report/reports/standard/general-ledger.scm:98
 #: gnucash/report/reports/standard/register.scm:146
-#: gnucash/report/reports/standard/register.scm:412
+#: gnucash/report/reports/standard/register.scm:383
 #: gnucash/report/trep-engine.scm:953 gnucash/report/trep-engine.scm:1078
 #: gnucash/report/trep-engine.scm:1240
 msgid "Shares"
@@ -1212,7 +1212,7 @@ msgstr "Rechnung"
 #: gnucash/import-export/csv-imp/gnc-imp-props-price.cpp:48
 #: gnucash/import-export/csv-imp/gnc-imp-props-tx.cpp:56
 #: gnucash/import-export/import-pending-matches.c:192
-#: gnucash/report/reports/standard/register.scm:228
+#: gnucash/report/reports/standard/register.scm:217
 #: gnucash/report/trep-engine.scm:258 gnucash/report/trep-engine.scm:291
 #: gnucash/report/trep-engine.scm:341 gnucash/report/trep-engine.scm:429
 #: gnucash/report/trep-engine.scm:1020 libgnucash/engine/gncOwner.c:213
@@ -1299,7 +1299,7 @@ msgid "Term \"%s\" is in use. You cannot delete it."
 msgstr "Zahlungsbedingung »%s« ist in Benutzung. Sie können sie nicht löschen."
 
 #: gnucash/gnome/dialog-billterms.c:678
-#: gnucash/gnome-utils/dialog-tax-table.c:670
+#: gnucash/gnome-utils/dialog-tax-table.c:673
 #, c-format
 msgid "Are you sure you want to delete \"%s\"?"
 msgstr "Sind Sie sicher, dass Sie “%s” löschen möchten?"
@@ -1349,18 +1349,19 @@ msgstr "Devise/Wertpapier löschen?"
 #: gnucash/gnome/dialog-price-edit-db.c:206
 #: gnucash/gnome/dialog-price-editor.c:232 gnucash/gnome/dialog-tax-info.c:1189
 #: gnucash/gnome/gnc-plugin-budget.c:289
-#: gnucash/gnome/gnc-plugin-page-account-tree.c:1765
+#: gnucash/gnome/gnc-plugin-page-account-tree.c:1787
 #: gnucash/gnome/gnc-plugin-page-invoice.c:184
 #: gnucash/gnome/gnc-plugin-page-owner-tree.c:1111
 #: gnucash/gnome/gnc-plugin-page-register2.c:1630
-#: gnucash/gnome/gnc-plugin-page-register.c:1984
+#: gnucash/gnome/gnc-plugin-page-register.c:1990
 #: gnucash/gnome/gnc-split-reg.c:975 gnucash/gnome/gnc-split-reg.c:1013
 #: gnucash/gnome/gnc-split-reg.c:1235 gnucash/gnome/gnc-split-reg.c:1503
 #: gnucash/gnome/gnc-split-reg.c:1543 gnucash/gnome/window-reconcile2.c:2124
 #: gnucash/gnome/window-reconcile.c:2345
 #: gnucash/gnome-search/search-account.c:237
 #: gnucash/gnome-utils/dialog-account.c:679
-#: gnucash/gnome-utils/dialog-tax-table.c:600
+#: gnucash/gnome-utils/dialog-options.c:224
+#: gnucash/gnome-utils/dialog-tax-table.c:603
 #: gnucash/gnome-utils/gnc-file.c:118 gnucash/gnome-utils/gnc-file.c:366
 #: gnucash/gnome-utils/gnc-file.c:664 gnucash/gnome-utils/gnc-gui-query.c:300
 #: gnucash/gnome-utils/gnc-main-window.c:1293
@@ -1429,7 +1430,7 @@ msgstr "Devise/Wertpapier löschen?"
 #: gnucash/gtkbuilder/gnc-plugin-page-register.glade:934
 #: gnucash/gtkbuilder/gnc-plugin-page-register.glade:1144
 #: gnucash/gtkbuilder/gnc-tree-view-owner.glade:24
-#: gnucash/gtkbuilder/window-autoclear.glade:22
+#: gnucash/gtkbuilder/window-autoclear.glade:25
 #: gnucash/gtkbuilder/window-reconcile.glade:21
 #: gnucash/html/gnc-html-webkit1.c:1197
 #: gnucash/import-export/aqb/dialog-ab.glade:302
@@ -1448,7 +1449,7 @@ msgstr "_Abbrechen"
 
 #: gnucash/gnome/dialog-commodities.c:218
 #: gnucash/gnome/dialog-price-edit-db.c:207
-#: gnucash/gnome/gnc-plugin-page-account-tree.c:1766
+#: gnucash/gnome/gnc-plugin-page-account-tree.c:1788
 #: gnucash/gnome/gnc-plugin-page-invoice.c:189
 #: gnucash/gnome/gnc-plugin-page-owner-tree.c:1112
 #: gnucash/gnome/gnc-plugin-page-sx-list.c:162
@@ -1697,14 +1698,14 @@ msgstr "Buchungen mit Verknüpfungen"
 #: gnucash/import-export/csv-exp/csv-transactions-export.c:615
 #: gnucash/import-export/csv-exp/csv-transactions-export.c:624
 #: gnucash/import-export/csv-imp/gnc-imp-props-tx.cpp:60
-#: gnucash/import-export/import-main-matcher.c:1038
+#: gnucash/import-export/import-main-matcher.c:1042
 #: gnucash/import-export/import-match-picker.c:395
 #: gnucash/import-export/import-match-picker.c:435
 #: gnucash/import-export/qif-imp/assistant-qif-import.c:3710
 #: gnucash/import-export/qif-imp/assistant-qif-import.c:3761
 #: gnucash/register/ledger-core/gncEntryLedgerModel.c:67
 #: gnucash/register/ledger-core/split-register-model.c:295
-#: gnucash/report/reports/standard/account-summary.scm:408
+#: gnucash/report/reports/standard/account-summary.scm:409
 #: gnucash/report/reports/standard/customer-summary.scm:73
 #: gnucash/report/reports/standard/general-journal.scm:96
 #: gnucash/report/reports/standard/general-ledger.scm:70
@@ -1716,7 +1717,7 @@ msgstr "Buchungen mit Verknüpfungen"
 #: gnucash/report/reports/standard/new-owner-report.scm:240
 #: gnucash/report/reports/standard/owner-report.scm:54
 #: gnucash/report/reports/standard/register.scm:138
-#: gnucash/report/reports/standard/register.scm:397
+#: gnucash/report/reports/standard/register.scm:368
 #: gnucash/report/reports/support/taxinvoice.eguile.scm:270
 #: gnucash/report/trep-engine.scm:215 gnucash/report/trep-engine.scm:945
 #: gnucash/report/trep-engine.scm:1073 gnucash/report/trep-engine.scm:1198
@@ -1918,7 +1919,7 @@ msgstr "Wertpapier-/Anteilspreis"
 #: gnucash/gtkbuilder/assistant-loan.glade:764
 #: gnucash/gtkbuilder/dialog-transfer.glade:112
 #: gnucash/import-export/csv-imp/gnc-imp-props-price.cpp:50
-#: gnucash/import-export/import-main-matcher.c:1037
+#: gnucash/import-export/import-main-matcher.c:1041
 #: gnucash/import-export/import-match-picker.c:394
 #: gnucash/import-export/import-match-picker.c:434
 #: gnucash/import-export/qif-imp/assistant-qif-import.c:3721
@@ -1931,8 +1932,8 @@ msgstr "Wertpapier-/Anteilspreis"
 #: gnucash/report/reports/standard/job-report.scm:45
 #: gnucash/report/reports/standard/new-owner-report.scm:244
 #: gnucash/report/reports/standard/owner-report.scm:59
-#: gnucash/report/reports/standard/register.scm:427
-#: gnucash/report/reports/standard/register.scm:676
+#: gnucash/report/reports/standard/register.scm:398
+#: gnucash/report/reports/standard/register.scm:647
 #: gnucash/report/trep-engine.scm:207 gnucash/report/trep-engine.scm:1016
 #: gnucash/report/trep-engine.scm:1067 gnucash/report/trep-engine.scm:1348
 #: gnucash/report/trep-engine.scm:1364 gnucash/report/trep-engine.scm:2058
@@ -1949,7 +1950,7 @@ msgstr "Betrag"
 #: gnucash/report/reports/standard/advanced-portfolio.scm:1080
 #: gnucash/report/reports/standard/portfolio.scm:258
 #: gnucash/report/reports/standard/register.scm:158
-#: gnucash/report/reports/standard/register.scm:436
+#: gnucash/report/reports/standard/register.scm:407
 msgid "Value"
 msgstr "Wert"
 
@@ -1969,8 +1970,8 @@ msgstr "Buchungsdatum"
 #: gnucash/gnome/dialog-find-transactions.c:132
 #: gnucash/gnome/dialog-find-transactions.c:171
 #: gnucash/gnome/dialog-find-transactions.c:177
-#: gnucash/gnome/gnc-plugin-page-register.c:2476
-#: gnucash/gnome/gnc-plugin-page-register.c:4160
+#: gnucash/gnome/gnc-plugin-page-register.c:2482
+#: gnucash/gnome/gnc-plugin-page-register.c:4166
 #: gnucash/gnome-search/dialog-search.c:866
 #: gnucash/gnome-search/dialog-search.c:872
 #: gnucash/import-export/csv-exp/csv-transactions-export.c:626
@@ -1984,7 +1985,7 @@ msgstr "Nummer/Aktion"
 #: gnucash/gnome/dialog-find-transactions.c:133
 #: gnucash/gnome/dialog-find-transactions.c:170
 #: gnucash/gnome/dialog-find-transactions.c:178
-#: gnucash/gnome/gnc-plugin-page-register.c:2481
+#: gnucash/gnome/gnc-plugin-page-register.c:2487
 #: gnucash/gnome/gnc-split-reg.c:703 gnucash/gnome-search/dialog-search.c:865
 #: gnucash/gnome-search/dialog-search.c:873
 #: gnucash/gnome-utils/gnc-tree-view-split-reg.c:2749
@@ -2008,8 +2009,8 @@ msgstr "Aktion"
 #: gnucash/gnome/dialog-find-transactions.c:136
 #: gnucash/gnome/dialog-find-transactions.c:173
 #: gnucash/gnome/dialog-find-transactions.c:179
-#: gnucash/gnome/gnc-plugin-page-register.c:2475
-#: gnucash/gnome/gnc-plugin-page-register.c:4159
+#: gnucash/gnome/gnc-plugin-page-register.c:2481
+#: gnucash/gnome/gnc-plugin-page-register.c:4165
 #: gnucash/gnome-search/dialog-search.c:868
 #: gnucash/gnome-search/dialog-search.c:874
 #: gnucash/import-export/csv-exp/csv-transactions-export.c:614
@@ -2024,7 +2025,7 @@ msgstr "Buchungsnummer"
 #: gnucash/gnome/dialog-find-transactions.c:137
 #: gnucash/gnome/dialog-find-transactions.c:172
 #: gnucash/gnome/dialog-find-transactions.c:180
-#: gnucash/gnome/gnc-plugin-page-register.c:2480
+#: gnucash/gnome/gnc-plugin-page-register.c:2486
 #: gnucash/gnome/gnc-split-reg.c:691 gnucash/gnome-search/dialog-search.c:867
 #: gnucash/gnome-search/dialog-search.c:875
 #: gnucash/gnome-utils/gnc-tree-view-split-reg.c:2765
@@ -2053,14 +2054,14 @@ msgstr "Beschreibung / Bemerkung / Buchungstext"
 #: gnucash/gtkbuilder/dialog-transfer.glade:215
 #: gnucash/import-export/csv-exp/csv-transactions-export.c:626
 #: gnucash/import-export/csv-imp/gnc-imp-props-tx.cpp:69
-#: gnucash/import-export/import-main-matcher.c:1039
+#: gnucash/import-export/import-main-matcher.c:1043
 #: gnucash/import-export/import-match-picker.c:396
 #: gnucash/import-export/import-match-picker.c:436
 #: gnucash/register/ledger-core/split-register-model.c:355
 #: gnucash/report/reports/standard/general-ledger.scm:71
 #: gnucash/report/reports/standard/general-ledger.scm:91
 #: gnucash/report/reports/standard/register.scm:140
-#: gnucash/report/reports/standard/register.scm:402
+#: gnucash/report/reports/standard/register.scm:373
 #: gnucash/report/trep-engine.scm:244 gnucash/report/trep-engine.scm:971
 #: gnucash/report/trep-engine.scm:1095 gnucash/report/trep-engine.scm:1208
 #: gnucash/report/trep-engine.scm:1209
@@ -2087,7 +2088,7 @@ msgstr "Buchungstext"
 #: gnucash/import-export/csv-imp/gnc-imp-props-tx.cpp:61
 #: gnucash/import-export/customer-import/dialog-customer-import-gui.c:138
 #: gnucash/register/ledger-core/split-register-model.c:491
-#: gnucash/report/reports/standard/account-summary.scm:436
+#: gnucash/report/reports/standard/account-summary.scm:437
 #: gnucash/report/reports/standard/balsheet-eg.scm:195
 #: gnucash/report/reports/standard/receipt.scm:38
 #: gnucash/report/reports/standard/taxinvoice.scm:78
@@ -2486,7 +2487,7 @@ msgstr "Bemerkungen Auslagenerstattung"
 #: gnucash/gtkbuilder/dialog-payment.glade:280
 #: gnucash/gtkbuilder/dialog-tax-info.glade:127
 #: gnucash/register/ledger-core/split-register-model.c:362
-#: gnucash/report/reports/standard/account-summary.scm:407
+#: gnucash/report/reports/standard/account-summary.scm:408
 #: gnucash/report/reports/standard/customer-summary.scm:72
 #: gnucash/report/reports/standard/job-report.scm:43
 #: gnucash/report/reports/standard/new-owner-report.scm:52
@@ -2525,7 +2526,7 @@ msgstr "Geöffnet"
 #: gnucash/report/reports/standard/general-journal.scm:95
 #: gnucash/report/reports/standard/general-ledger.scm:89
 #: gnucash/report/reports/standard/register.scm:136
-#: gnucash/report/reports/standard/register.scm:392
+#: gnucash/report/reports/standard/register.scm:363
 #: gnucash/report/trep-engine.scm:944 gnucash/report/trep-engine.scm:1072
 #: gnucash/report/trep-engine.scm:1180
 msgid "Num"
@@ -2644,8 +2645,8 @@ msgstr "Geschlossen"
 
 #: gnucash/gnome/dialog-lot-viewer.c:886
 #: gnucash/gtkbuilder/assistant-acct-period.glade:143
-#: gnucash/report/html-fonts.scm:69
-#: gnucash/report/reports/standard/register.scm:376
+#: gnucash/report/html-fonts.scm:93
+#: gnucash/report/reports/standard/register.scm:347
 msgid "Title"
 msgstr "Titel"
 
@@ -2656,7 +2657,7 @@ msgstr "Titel"
 #: gnucash/gnome-utils/gnc-tree-view-split-reg.c:3112
 #: gnucash/register/ledger-core/split-register-model.c:320
 #: gnucash/register/ledger-core/split-register-model.c:484
-#: gnucash/report/reports/standard/account-summary.scm:421
+#: gnucash/report/reports/standard/account-summary.scm:422
 #: gnucash/report/reports/standard/balance-forecast.scm:248
 #: gnucash/report/reports/standard/job-report.scm:206
 #: gnucash/report/reports/standard/new-owner-report.scm:58
@@ -3296,7 +3297,7 @@ msgid "Form Line Data: "
 msgstr "Daten der Formularzeilen:"
 
 #: gnucash/gnome/dialog-tax-info.c:291
-#: gnucash/report/reports/standard/account-summary.scm:406
+#: gnucash/report/reports/standard/account-summary.scm:407
 msgid "Code"
 msgstr "Code"
 
@@ -3391,17 +3392,17 @@ msgstr "Lieferant suchen"
 #: gnucash/report/reports/standard/balsheet-pnl.scm:1264
 #: gnucash/report/reports/standard/net-charts.scm:350
 #: gnucash/report/reports/standard/net-charts.scm:420
-#: gnucash/report/report-utilities.scm:110 libgnucash/engine/Account.cpp:170
-#: libgnucash/engine/Account.cpp:4322 libgnucash/engine/Scrub.c:449
+#: gnucash/report/report-utilities.scm:122 libgnucash/engine/Account.cpp:170
+#: libgnucash/engine/Account.cpp:4322 libgnucash/engine/Scrub.c:464
 msgid "Income"
 msgstr "Ertrag"
 
 #: gnucash/gnome/gnc-budget-view.c:502
 #: gnucash/import-export/qif-imp/qif-dialog-utils.scm:80
 #: gnucash/import-export/qif-imp/qif-dialog-utils.scm:85
-#: gnucash/report/reports/standard/budget-income-statement.scm:520
+#: gnucash/report/reports/standard/budget-income-statement.scm:521
 #: gnucash/report/reports/standard/income-statement.scm:512
-#: gnucash/report/report-utilities.scm:111
+#: gnucash/report/report-utilities.scm:123
 msgid "Expenses"
 msgstr "Aufwand"
 
@@ -3430,8 +3431,8 @@ msgstr "Im Budget verbleibend"
 #: gnucash/report/reports/standard/budget-flow.scm:168
 #: gnucash/report/reports/standard/budget-flow.scm:247
 #: gnucash/report/reports/standard/budget.scm:511
-#: gnucash/report/reports/standard/customer-summary.scm:476
 #: gnucash/report/reports/standard/customer-summary.scm:478
+#: gnucash/report/reports/standard/customer-summary.scm:480
 #: gnucash/report/reports/standard/invoice.scm:104
 #: gnucash/report/reports/standard/invoice.scm:252
 #: gnucash/report/reports/standard/new-aging.scm:200
@@ -3760,7 +3761,7 @@ msgstr "Budget auswählen"
 #: gnucash/gtkbuilder/gnc-plugin-page-register.glade:949
 #: gnucash/gtkbuilder/gnc-plugin-page-register.glade:1159
 #: gnucash/gtkbuilder/gnc-tree-view-owner.glade:39
-#: gnucash/gtkbuilder/window-autoclear.glade:38
+#: gnucash/gtkbuilder/window-autoclear.glade:41
 #: gnucash/gtkbuilder/window-reconcile.glade:36
 #: gnucash/import-export/aqb/dialog-ab.glade:317
 #: gnucash/import-export/aqb/dialog-ab.glade:595
@@ -4298,13 +4299,15 @@ msgstr "Neu"
 msgid "Delete"
 msgstr "Löschen"
 
-#: gnucash/gnome/gnc-plugin-page-account-tree.c:440
-#: gnucash/gnome/gnc-plugin-page-register.c:1934
+#: gnucash/gnome/gnc-plugin-page-account-tree.c:454
+#: gnucash/gnome/gnc-plugin-page-account-tree.c:1989
+#: gnucash/gnome/gnc-plugin-page-register.c:1939
+#: gnucash/gnome/gnc-plugin-page-register.c:5022
 msgid "'Check & Repair' is currently running, do you want to abort it?"
 msgstr "»Konto überprüfen« läuft derzeit. Wollen Sie es abbrechen?"
 
-#: gnucash/gnome/gnc-plugin-page-account-tree.c:498
-#: gnucash/gnome/gnc-plugin-page-account-tree.c:504
+#: gnucash/gnome/gnc-plugin-page-account-tree.c:520
+#: gnucash/gnome/gnc-plugin-page-account-tree.c:526
 #: gnucash/gnome-utils/gnc-tree-view-split-reg.c:2829
 #: gnucash/gnome-utils/gnc-tree-view-split-reg.c:2831
 #: gnucash/gnome-utils/gnc-tree-view-split-reg.c:2833
@@ -4337,7 +4340,7 @@ msgstr "»Konto überprüfen« läuft derzeit. Wollen Sie es abbrechen?"
 msgid "Accounts"
 msgstr "Konten"
 
-#: gnucash/gnome/gnc-plugin-page-account-tree.c:1407
+#: gnucash/gnome/gnc-plugin-page-account-tree.c:1429
 #, c-format
 msgid ""
 "Account %s does not have the same currency as the one you're moving "
@@ -4347,26 +4350,26 @@ msgstr ""
 "Das Zielkonto %s hat nicht die gleiche Währung wie das Konto, von dem Sie "
 "die Buchungen verschieben.  Sollen die Buchungen trotzdem verschoben werden?"
 
-#: gnucash/gnome/gnc-plugin-page-account-tree.c:1415
+#: gnucash/gnome/gnc-plugin-page-account-tree.c:1437
 msgid "_Pick another account"
 msgstr "_Anderes Konto wählen"
 
-#: gnucash/gnome/gnc-plugin-page-account-tree.c:1416
+#: gnucash/gnome/gnc-plugin-page-account-tree.c:1438
 msgid "_Do it anyway"
 msgstr "Buchungen _trotzdem verschieben"
 
-#: gnucash/gnome/gnc-plugin-page-account-tree.c:1499
-#: gnucash/gnome/gnc-plugin-page-account-tree.c:1635
+#: gnucash/gnome/gnc-plugin-page-account-tree.c:1521
+#: gnucash/gnome/gnc-plugin-page-account-tree.c:1657
 #: gnucash/gnome/gnc-plugin-page-owner-tree.c:1094
 msgid "(no name)"
 msgstr "(unbenannt)"
 
-#: gnucash/gnome/gnc-plugin-page-account-tree.c:1510
+#: gnucash/gnome/gnc-plugin-page-account-tree.c:1532
 #, c-format
 msgid "Deleting account %s"
 msgstr "Konto %s löschen"
 
-#: gnucash/gnome/gnc-plugin-page-account-tree.c:1625
+#: gnucash/gnome/gnc-plugin-page-account-tree.c:1647
 msgid ""
 "The list below shows objects which make use of the account which you want to "
 "delete.\n"
@@ -4380,42 +4383,42 @@ msgstr ""
 "die Objekte ändern, damit diese\n"
 "ein anderes Konto verwenden"
 
-#: gnucash/gnome/gnc-plugin-page-account-tree.c:1704
+#: gnucash/gnome/gnc-plugin-page-account-tree.c:1726
 #, c-format
 msgid "The account %s will be deleted."
 msgstr "Das Konto %s wird gelöscht."
 
-#: gnucash/gnome/gnc-plugin-page-account-tree.c:1713
+#: gnucash/gnome/gnc-plugin-page-account-tree.c:1735
 #, c-format
 msgid "All transactions in this account will be moved to the account %s."
 msgstr "Alle Buchungen in diesem Konto werden in das Konto %s verschoben."
 
-#: gnucash/gnome/gnc-plugin-page-account-tree.c:1720
+#: gnucash/gnome/gnc-plugin-page-account-tree.c:1742
 #, c-format
 msgid "All transactions in this account will be deleted."
 msgstr "Alle Buchungen in diesem Konto werden gelöscht."
 
-#: gnucash/gnome/gnc-plugin-page-account-tree.c:1729
+#: gnucash/gnome/gnc-plugin-page-account-tree.c:1751
 #, c-format
 msgid "Its sub-account will be moved to the account %s."
 msgstr "Sein Unterkonto wird zum Konto %s verschoben."
 
-#: gnucash/gnome/gnc-plugin-page-account-tree.c:1735
+#: gnucash/gnome/gnc-plugin-page-account-tree.c:1757
 #, c-format
 msgid "Its subaccount will be deleted."
 msgstr "Sein Unterkonto wird ebenfalls gelöscht."
 
-#: gnucash/gnome/gnc-plugin-page-account-tree.c:1739
+#: gnucash/gnome/gnc-plugin-page-account-tree.c:1761
 #, c-format
 msgid "All sub-account transactions will be moved to the account %s."
 msgstr "Alle Buchungen in Unterkonten werden in das Konto %s verschoben."
 
-#: gnucash/gnome/gnc-plugin-page-account-tree.c:1746
+#: gnucash/gnome/gnc-plugin-page-account-tree.c:1768
 #, c-format
 msgid "All sub-account transactions will be deleted."
 msgstr "Alle Buchungen in Unterkonten werden ebenfalls gelöscht."
 
-#: gnucash/gnome/gnc-plugin-page-account-tree.c:1752
+#: gnucash/gnome/gnc-plugin-page-account-tree.c:1774
 msgid "Are you sure you want to do this?"
 msgstr "Soll diese Aktion durchgeführt werden?"
 
@@ -5597,7 +5600,7 @@ msgstr "Terminiert"
 
 #: gnucash/gnome/gnc-plugin-page-register2.c:507
 #: gnucash/gnome/gnc-plugin-page-register.c:630
-#: gnucash/gnome/window-autoclear.c:91
+#: gnucash/gnome/window-autoclear.c:87
 msgid "Auto-clear"
 msgstr "Automatischer Abgleich"
 
@@ -5616,13 +5619,13 @@ msgstr "Hauptbuch Journal2"
 #. Translators: %s is the name
 #. of the tab page
 #: gnucash/gnome/gnc-plugin-page-register2.c:1620
-#: gnucash/gnome/gnc-plugin-page-register.c:1974
+#: gnucash/gnome/gnc-plugin-page-register.c:1980
 #, c-format
 msgid "Save changes to %s?"
 msgstr "Änderungen in %s speichern?"
 
 #: gnucash/gnome/gnc-plugin-page-register2.c:1624
-#: gnucash/gnome/gnc-plugin-page-register.c:1978
+#: gnucash/gnome/gnc-plugin-page-register.c:1984
 msgid ""
 "This register has pending changes to a transaction. Would you like to save "
 "the changes to this transaction, discard the transaction, or cancel the "
@@ -5633,12 +5636,12 @@ msgstr ""
 "oder möchten Sie abbrechen?"
 
 #: gnucash/gnome/gnc-plugin-page-register2.c:1627
-#: gnucash/gnome/gnc-plugin-page-register.c:1981
+#: gnucash/gnome/gnc-plugin-page-register.c:1987
 msgid "_Discard Transaction"
 msgstr "Buchungsänderungen ver_werfen"
 
 #: gnucash/gnome/gnc-plugin-page-register2.c:1631
-#: gnucash/gnome/gnc-plugin-page-register.c:1985
+#: gnucash/gnome/gnc-plugin-page-register.c:1991
 msgid "_Save Transaction"
 msgstr "Buchung _speichern"
 
@@ -5647,35 +5650,35 @@ msgstr "Buchung _speichern"
 #: gnucash/gnome/gnc-plugin-page-register2.c:1707
 #: gnucash/gnome/gnc-plugin-page-register2.c:1730
 #: gnucash/gnome/gnc-plugin-page-register2.c:1778
-#: gnucash/gnome/gnc-plugin-page-register.c:2018
-#: gnucash/gnome/gnc-plugin-page-register.c:2053
-#: gnucash/gnome/gnc-plugin-page-register.c:2066
-#: gnucash/gnome/gnc-plugin-page-register.c:2129
-#: gnucash/gnome/gnc-plugin-page-register.c:2234
-#: gnucash/gnome/gnc-plugin-page-register.c:2372
+#: gnucash/gnome/gnc-plugin-page-register.c:2024
+#: gnucash/gnome/gnc-plugin-page-register.c:2059
+#: gnucash/gnome/gnc-plugin-page-register.c:2072
+#: gnucash/gnome/gnc-plugin-page-register.c:2135
+#: gnucash/gnome/gnc-plugin-page-register.c:2240
+#: gnucash/gnome/gnc-plugin-page-register.c:2378
 msgid "unknown"
 msgstr "unbekannt"
 
 #: gnucash/gnome/gnc-plugin-page-register2.c:1681
 #: gnucash/gnome/gnc-plugin-page-register2.c:2416
 #: gnucash/gnome/gnc-plugin-page-register.c:906
-#: gnucash/gnome/gnc-plugin-page-register.c:2039
-#: gnucash/gnome/gnc-plugin-page-register.c:3511
+#: gnucash/gnome/gnc-plugin-page-register.c:2045
+#: gnucash/gnome/gnc-plugin-page-register.c:3517
 #: gnucash/report/reports/standard/general-journal.scm:36
 msgid "General Journal"
 msgstr "Hauptbuch Journal"
 
 #: gnucash/gnome/gnc-plugin-page-register2.c:1683
 #: gnucash/gnome/gnc-plugin-page-register2.c:2422
-#: gnucash/gnome/gnc-plugin-page-register.c:2041
-#: gnucash/gnome/gnc-plugin-page-register.c:3517
+#: gnucash/gnome/gnc-plugin-page-register.c:2047
+#: gnucash/gnome/gnc-plugin-page-register.c:3523
 msgid "Portfolio"
 msgstr "Portfolio"
 
 #: gnucash/gnome/gnc-plugin-page-register2.c:1685
 #: gnucash/gnome/gnc-plugin-page-register2.c:2428
-#: gnucash/gnome/gnc-plugin-page-register.c:2043
-#: gnucash/gnome/gnc-plugin-page-register.c:3523
+#: gnucash/gnome/gnc-plugin-page-register.c:2049
+#: gnucash/gnome/gnc-plugin-page-register.c:3529
 msgid "Search Results"
 msgstr "Suchergebnisse"
 
@@ -5684,17 +5687,17 @@ msgid "General Journal Report"
 msgstr "Hauptbuch Journal Bericht"
 
 #: gnucash/gnome/gnc-plugin-page-register2.c:2424
-#: gnucash/gnome/gnc-plugin-page-register.c:3519
+#: gnucash/gnome/gnc-plugin-page-register.c:3525
 msgid "Portfolio Report"
 msgstr "Portfolio Bericht"
 
 #: gnucash/gnome/gnc-plugin-page-register2.c:2430
-#: gnucash/gnome/gnc-plugin-page-register.c:3525
+#: gnucash/gnome/gnc-plugin-page-register.c:3531
 msgid "Search Results Report"
 msgstr "Suchergebnisse Bericht"
 
 #: gnucash/gnome/gnc-plugin-page-register2.c:2434
-#: gnucash/gnome/gnc-plugin-page-register.c:3529
+#: gnucash/gnome/gnc-plugin-page-register.c:3535
 #: gnucash/gtkbuilder/dialog-preferences.glade:2567
 #: gnucash/report/reports/standard/general-journal.scm:37
 #: gnucash/report/reports/standard/register.scm:64
@@ -5702,17 +5705,17 @@ msgid "Register"
 msgstr "Kontobuch"
 
 #: gnucash/gnome/gnc-plugin-page-register2.c:2436
-#: gnucash/report/reports/standard/register.scm:378
+#: gnucash/report/reports/standard/register.scm:349
 msgid "Register Report"
 msgstr "Bericht zum Kontobuch"
 
 #: gnucash/gnome/gnc-plugin-page-register2.c:2452
-#: gnucash/gnome/gnc-plugin-page-register.c:3547
+#: gnucash/gnome/gnc-plugin-page-register.c:3553
 msgid "and subaccounts"
 msgstr "und Unterkonten"
 
 #: gnucash/gnome/gnc-plugin-page-register2.c:2484
-#: gnucash/gnome/gnc-plugin-page-register.c:3576
+#: gnucash/gnome/gnc-plugin-page-register.c:3582
 #: gnucash/gnome-utils/gnc-tree-model-split-reg.c:2874
 #: gnucash/gnome-utils/gnc-tree-model-split-reg.c:2893
 #: gnucash/gnome-utils/gnc-tree-model-split-reg.c:2911
@@ -5724,34 +5727,34 @@ msgstr "und Unterkonten"
 #: gnucash/register/ledger-core/split-register.c:2658
 #: gnucash/register/ledger-core/split-register.c:2676
 #: gnucash/report/reports/standard/general-journal.scm:83
-#: gnucash/report/reports/standard/register.scm:372
-#: gnucash/report/reports/standard/trial-balance.scm:595
+#: gnucash/report/reports/standard/register.scm:343
+#: gnucash/report/reports/standard/trial-balance.scm:596
 #: gnucash/report/trep-engine.scm:1357 gnucash/report/trep-engine.scm:1374
 #: libgnucash/engine/Account.cpp:177
 msgid "Credit"
 msgstr "Haben"
 
 #: gnucash/gnome/gnc-plugin-page-register2.c:2487
-#: gnucash/gnome/gnc-plugin-page-register.c:3580
+#: gnucash/gnome/gnc-plugin-page-register.c:3586
 #: gnucash/gnome-utils/gnc-tree-view-split-reg.c:3099
 #: gnucash/gnome-utils/gnc-tree-view-split-reg.c:3104
 #: gnucash/gtkbuilder/dialog-payment.glade:296
 #: gnucash/register/ledger-core/split-register.c:2521
 #: gnucash/report/reports/standard/general-journal.scm:82
-#: gnucash/report/reports/standard/register.scm:370
-#: gnucash/report/reports/standard/trial-balance.scm:592
+#: gnucash/report/reports/standard/register.scm:341
+#: gnucash/report/reports/standard/trial-balance.scm:593
 #: gnucash/report/trep-engine.scm:1354 gnucash/report/trep-engine.scm:1371
 #: libgnucash/engine/Account.cpp:157
 msgid "Debit"
 msgstr "Soll"
 
 #: gnucash/gnome/gnc-plugin-page-register2.c:2653
-#: gnucash/gnome/gnc-plugin-page-register.c:3713
+#: gnucash/gnome/gnc-plugin-page-register.c:3719
 msgid "Print checks from multiple accounts?"
 msgstr "Schecks aus mehreren Konten drucken?"
 
 #: gnucash/gnome/gnc-plugin-page-register2.c:2655
-#: gnucash/gnome/gnc-plugin-page-register.c:3715
+#: gnucash/gnome/gnc-plugin-page-register.c:3721
 msgid ""
 "This search result contains splits from more than one account. Do you want "
 "to print the checks even though they are not all from the same account?"
@@ -5760,12 +5763,12 @@ msgstr ""
 "die Schecks wirklich drucken, obwohl sie nicht alle zum selben Konto gehören?"
 
 #: gnucash/gnome/gnc-plugin-page-register2.c:2665
-#: gnucash/gnome/gnc-plugin-page-register.c:3725
+#: gnucash/gnome/gnc-plugin-page-register.c:3731
 msgid "_Print checks"
 msgstr "Schec_ks drucken"
 
 #: gnucash/gnome/gnc-plugin-page-register2.c:2684
-#: gnucash/gnome/gnc-plugin-page-register.c:3744
+#: gnucash/gnome/gnc-plugin-page-register.c:3750
 msgid ""
 "You can only print checks from a bank account register or search results."
 msgstr ""
@@ -5773,7 +5776,7 @@ msgstr ""
 "Suchergebnissen auswählen."
 
 #: gnucash/gnome/gnc-plugin-page-register2.c:2896
-#: gnucash/gnome/gnc-plugin-page-register.c:3941
+#: gnucash/gnome/gnc-plugin-page-register.c:3947
 msgid "You cannot void a transaction with reconciled or cleared splits."
 msgstr ""
 "Sie können eine Buchung mit abgeglichenen oder bestätigten Buchungsteilen "
@@ -5781,7 +5784,7 @@ msgstr ""
 
 #. Translators: The %s is the name of the plugin page
 #: gnucash/gnome/gnc-plugin-page-register2.c:3039
-#: gnucash/gnome/gnc-plugin-page-register.c:4212
+#: gnucash/gnome/gnc-plugin-page-register.c:4218
 #: gnucash/gnome-utils/gnc-tree-view-account.c:2296
 #: gnucash/gnome-utils/gnc-tree-view-owner.c:1175
 #, c-format
@@ -5832,35 +5835,35 @@ msgstr ""
 "Sie wollten gerade ein Konto in der alten Kontoansicht öffnen, obwohl es "
 "bereits in der neuen Ansicht (register2) geöffnet ist."
 
-#: gnucash/gnome/gnc-plugin-page-register.c:3378
+#: gnucash/gnome/gnc-plugin-page-register.c:3384
 msgid "Filter By:"
 msgstr "Filtern nach:"
 
-#: gnucash/gnome/gnc-plugin-page-register.c:3392
+#: gnucash/gnome/gnc-plugin-page-register.c:3398
 msgid "Start Date:"
 msgstr "Anfangsdatum:"
 
-#: gnucash/gnome/gnc-plugin-page-register.c:3398
+#: gnucash/gnome/gnc-plugin-page-register.c:3404
 msgid "Show previous number of days:"
 msgstr "Anzahl der angezeigten vorherigen Tage:"
 
-#: gnucash/gnome/gnc-plugin-page-register.c:3405
+#: gnucash/gnome/gnc-plugin-page-register.c:3411
 msgid "End Date:"
 msgstr "Enddatum:"
 
-#: gnucash/gnome/gnc-plugin-page-register.c:3415
+#: gnucash/gnome/gnc-plugin-page-register.c:3421
 #: gnucash/report/trep-engine.scm:124 gnucash/report/trep-engine.scm:398
 msgid "Unreconciled"
 msgstr "Nicht abgeglichene"
 
-#: gnucash/gnome/gnc-plugin-page-register.c:3417
+#: gnucash/gnome/gnc-plugin-page-register.c:3423
 #: gnucash/gnome-search/search-reconciled.c:218
 #: gnucash/gnome-utils/gnc-tree-view-account.c:852
 #: gnucash/report/trep-engine.scm:125 gnucash/report/trep-engine.scm:403
 msgid "Cleared"
 msgstr "Bestätigt"
 
-#: gnucash/gnome/gnc-plugin-page-register.c:3419
+#: gnucash/gnome/gnc-plugin-page-register.c:3425
 #: gnucash/gnome-search/search-reconciled.c:221
 #: gnucash/gnome-utils/gnc-tree-view-account.c:866
 #: gnucash/import-export/csv-imp/gnc-imp-props-tx.cpp:70
@@ -5869,34 +5872,34 @@ msgstr "Bestätigt"
 msgid "Reconciled"
 msgstr "Abgeglichen"
 
-#: gnucash/gnome/gnc-plugin-page-register.c:3421
+#: gnucash/gnome/gnc-plugin-page-register.c:3427
 #: gnucash/gnome-search/search-reconciled.c:224
 #: gnucash/report/trep-engine.scm:127
 msgid "Frozen"
 msgstr "Fixiert"
 
-#: gnucash/gnome/gnc-plugin-page-register.c:3423
+#: gnucash/gnome/gnc-plugin-page-register.c:3429
 #: gnucash/gnome-search/search-reconciled.c:227
 #: gnucash/report/trep-engine.scm:128
 msgid "Voided"
 msgstr "Storniert"
 
-#: gnucash/gnome/gnc-plugin-page-register.c:3427
-#: gnucash/gnome/gnc-plugin-page-register.c:3429
+#: gnucash/gnome/gnc-plugin-page-register.c:3433
+#: gnucash/gnome/gnc-plugin-page-register.c:3435
 msgid "Hide:"
 msgstr "Versteckt:"
 
-#: gnucash/gnome/gnc-plugin-page-register.c:3429
+#: gnucash/gnome/gnc-plugin-page-register.c:3435
 msgid "Show:"
 msgstr "Angezeigt:"
 
-#: gnucash/gnome/gnc-plugin-page-register.c:3513
-#: gnucash/gnome/gnc-plugin-page-register.c:3531
+#: gnucash/gnome/gnc-plugin-page-register.c:3519
+#: gnucash/gnome/gnc-plugin-page-register.c:3537
 #: gnucash/report/reports/standard/transaction.scm:33
 msgid "Transaction Report"
 msgstr "Buchungsbericht"
 
-#: gnucash/gnome/gnc-plugin-page-register.c:3948
+#: gnucash/gnome/gnc-plugin-page-register.c:3954
 #: gnucash/gnome/gnc-split-reg.c:1160
 #: gnucash/gnome-utils/gnc-tree-control-split-reg.c:68
 #, c-format
@@ -5904,22 +5907,22 @@ msgid "This transaction is marked read-only with the comment: '%s'"
 msgstr ""
 "Diese Buchung ist mit folgendem Kommentar als schreibgeschützt markiert: '%s'"
 
-#: gnucash/gnome/gnc-plugin-page-register.c:4028
+#: gnucash/gnome/gnc-plugin-page-register.c:4034
 #: gnucash/gnome/gnc-split-reg.c:1131
 #: gnucash/gnome-utils/gnc-tree-control-split-reg.c:1121
 msgid "A reversing entry has already been created for this transaction."
 msgstr "Zu dieser Buchung wurde bereits eine Stornierungsbuchung hinzugefügt."
 
-#: gnucash/gnome/gnc-plugin-page-register.c:4035
+#: gnucash/gnome/gnc-plugin-page-register.c:4041
 msgid "Reverse Transaction"
 msgstr "Stornobuchung hinzufügen"
 
-#: gnucash/gnome/gnc-plugin-page-register.c:4036
+#: gnucash/gnome/gnc-plugin-page-register.c:4042
 msgid "New Transaction Information"
 msgstr "Buchungsinformationen für Stornobuchung"
 
 #. Translators: The %s is the name of the plugin page
-#: gnucash/gnome/gnc-plugin-page-register.c:4124
+#: gnucash/gnome/gnc-plugin-page-register.c:4130
 #, c-format
 msgid "Sort %s by..."
 msgstr "%s sortieren nach..."
@@ -5927,31 +5930,31 @@ msgstr "%s sortieren nach..."
 #. Translators: %s refer to the following in
 #. order: invoice type, invoice ID, owner name,
 #. posted date, amount
-#: gnucash/gnome/gnc-plugin-page-register.c:4702
+#: gnucash/gnome/gnc-plugin-page-register.c:4708
 #, c-format
 msgid "%s %s from %s, posted %s, amount %s"
 msgstr "%s %s von %s, gebucht am %s, Betrag %s"
 
-#: gnucash/gnome/gnc-plugin-page-register.c:4711
+#: gnucash/gnome/gnc-plugin-page-register.c:4717
 msgid "Select document"
 msgstr "Verknüpftes Dokument auswählen"
 
-#: gnucash/gnome/gnc-plugin-page-register.c:4712
+#: gnucash/gnome/gnc-plugin-page-register.c:4718
 msgid "Several documents are linked with this transaction. Please choose one:"
 msgstr ""
 "Mehrere Dokumente sind mit dieser Buchung verknüpft. Bitte wählen Sie eins:"
 
-#: gnucash/gnome/gnc-plugin-page-register.c:4713
+#: gnucash/gnome/gnc-plugin-page-register.c:4719
 #: gnucash/gnome-search/dialog-search.c:323
 #: gnucash/gnome-utils/gnc-cell-renderer-date.c:172
 msgid "Select"
 msgstr "Auswählen"
 
-#: gnucash/gnome/gnc-plugin-page-register.c:4761
+#: gnucash/gnome/gnc-plugin-page-register.c:4767
 msgid "Go to Date"
 msgstr "Zu Datum gehen"
 
-#: gnucash/gnome/gnc-plugin-page-register.c:5016
+#: gnucash/gnome/gnc-plugin-page-register.c:5045
 #, c-format
 msgid "Checking splits in current register: %u of %u"
 msgstr "Überprüfe Buchungsteile im aktuellen Konto: %u von %u"
@@ -6043,7 +6046,7 @@ msgid "_Report Options"
 msgstr "Berichts_optionen"
 
 #: gnucash/gnome/gnc-plugin-page-report.c:1201
-#: gnucash/report/html-utilities.scm:252
+#: gnucash/report/html-utilities.scm:276
 msgid "Edit report options"
 msgstr "Berichtsoptionen ändern"
 
@@ -6747,19 +6750,11 @@ msgstr "Kein Preis gefunden: %s"
 msgid "Business"
 msgstr "Geschäft"
 
-#: gnucash/gnome/window-autoclear.c:138
-msgid "Searching for splits to clear ..."
-msgstr "Buchungsteile zum Abgleichen werden gesucht..."
-
-#: gnucash/gnome/window-autoclear.c:241
-msgid "Cannot uniquely clear splits. Found multiple possibilities."
-msgstr ""
-"Automatisches Abgleichen kann nicht die Buchungsteile nicht eindeutig "
-"bestimmen."
-
-#: gnucash/gnome/window-autoclear.c:248
-msgid "The selected amount cannot be cleared."
-msgstr "Der gewählte Betrag kann nicht automatisch abgeglichen werden."
+#: gnucash/gnome/window-autoclear.c:114
+#, fuzzy
+#| msgid "Created Transactions"
+msgid "Cleared Transactions"
+msgstr "Buchungen erstellt"
 
 #: gnucash/gnome/window-reconcile2.c:417 gnucash/gnome/window-reconcile.c:458
 msgid "Interest Payment"
@@ -6827,7 +6822,7 @@ msgid "Reconciled Balance"
 msgstr "Abgeglichener Saldo"
 
 #: gnucash/gnome/window-reconcile2.c:1798 gnucash/gnome/window-reconcile.c:1991
-#: gnucash/report/reports/standard/cash-flow.scm:310
+#: gnucash/report/reports/standard/cash-flow.scm:312
 msgid "Difference"
 msgstr "Differenz"
 
@@ -7098,7 +7093,7 @@ msgid "matches no accounts"
 msgstr "entspricht keinem Konto"
 
 #: gnucash/gnome-search/search-account.c:195
-#: gnucash/report/reports/standard/cash-flow.scm:254
+#: gnucash/report/reports/standard/cash-flow.scm:256
 msgid "Selected Accounts"
 msgstr "Ausgewählte Konten"
 
@@ -7637,7 +7632,7 @@ msgid "Cu_rrency"
 msgstr "_Währung"
 
 #: gnucash/gnome-utils/dialog-commodity.c:773
-#: gnucash/gnome-utils/dialog-options.c:701
+#: gnucash/gnome-utils/dialog-options.c:713
 #: gnucash/gnome-utils/gnc-tree-view-owner.c:412
 #: gnucash/gnome-utils/gnc-tree-view-price.c:402
 #: gnucash/gtkbuilder/dialog-customer.glade:511
@@ -7742,7 +7737,32 @@ msgstr "Speichern unter..."
 msgid "_Save As"
 msgstr "Speichern _unter..."
 
-#: gnucash/gnome-utils/dialog-options.c:641
+#: gnucash/gnome-utils/dialog-options.c:226
+#: gnucash/gnome-utils/gnc-main-window.c:302
+#: gnucash/gtkbuilder/dialog-billterms.glade:729
+#: gnucash/gtkbuilder/dialog-commodities.glade:173
+#: gnucash/gtkbuilder/dialog-custom-report.glade:45
+#: gnucash/gtkbuilder/dialog-doclink.glade:546
+#: gnucash/gtkbuilder/dialog-fincalc.glade:107
+#: gnucash/gtkbuilder/dialog-find-account.glade:68
+#: gnucash/gtkbuilder/dialog-imap-editor.glade:80
+#: gnucash/gtkbuilder/dialog-import.glade:496
+#: gnucash/gtkbuilder/dialog-lot-viewer.glade:89
+#: gnucash/gtkbuilder/dialog-order.glade:42
+#: gnucash/gtkbuilder/dialog-preferences.glade:158
+#: gnucash/gtkbuilder/dialog-price.glade:939
+#: gnucash/gtkbuilder/dialog-query-view.glade:22
+#: gnucash/gtkbuilder/dialog-report.glade:272
+#: gnucash/gtkbuilder/dialog-report.glade:679
+#: gnucash/gtkbuilder/dialog-search.glade:52
+#: gnucash/gtkbuilder/dialog-tax-table.glade:254
+#: gnucash/gtkbuilder/dialog-totd.glade:56
+#: gnucash/gtkbuilder/gnc-plugin-page-budget.glade:736
+#: gnucash/import-export/aqb/dialog-ab.glade:43
+msgid "_Close"
+msgstr "S_chließen"
+
+#: gnucash/gnome-utils/dialog-options.c:653
 msgid ""
 "Because no accounts have been set up yet, you will need to return to this "
 "dialog (via File->Properties), after account setup, if you want to set a "
@@ -7752,18 +7772,18 @@ msgstr ""
 "Konten über Datei->Eigenschaften zu diesem Dialog zurückkehren, um ein "
 "Erfolgskonto vorzuwählen,"
 
-#: gnucash/gnome-utils/dialog-options.c:685
+#: gnucash/gnome-utils/dialog-options.c:697
 msgid "Select no account"
 msgstr "Kein Konto gewählt"
 
-#: gnucash/gnome-utils/dialog-options.c:718
+#: gnucash/gnome-utils/dialog-options.c:730
 #: gnucash/gnome-utils/gnc-tree-view-account.c:966
 msgctxt "Column header for 'Placeholder'"
 msgid "P"
 msgstr "P"
 
 # Todo: sind die "\n" erforderlich?
-#: gnucash/gnome-utils/dialog-options.c:785
+#: gnucash/gnome-utils/dialog-options.c:797
 msgid ""
 "There are no income or expense accounts of the specified\n"
 "book currency; you will have to return to this dialog\n"
@@ -7774,7 +7794,7 @@ msgstr ""
 "Kontenteneinrchtung müssen sie über Datei->Eigenschaften zu diesem Dialog "
 "zurückkehren, um ein Erfolgskonto vorzuwählen."
 
-#: gnucash/gnome-utils/dialog-options.c:854
+#: gnucash/gnome-utils/dialog-options.c:865
 #: gnucash/import-export/qif-imp/dialog-account-picker.c:299
 #, c-format
 msgid ""
@@ -7784,86 +7804,86 @@ msgstr ""
 "Das Konto %s ist ein Platzhalter und kann keine Buchungen enthalten. Bitte "
 "wählen Sie ein anderes Konto."
 
-#: gnucash/gnome-utils/dialog-options.c:1284
+#: gnucash/gnome-utils/dialog-options.c:1292
 msgid "Book currency"
 msgstr "Buchwährung"
 
-#: gnucash/gnome-utils/dialog-options.c:1309
+#: gnucash/gnome-utils/dialog-options.c:1317
 msgid "Default lot tracking policy"
 msgstr "Vorgewählte Los-Zuordnung"
 
-#: gnucash/gnome-utils/dialog-options.c:1333
+#: gnucash/gnome-utils/dialog-options.c:1340
 msgid "Default gain/loss account"
 msgstr "Vorgewähltes Erfolgskonto"
 
-#: gnucash/gnome-utils/dialog-options.c:1501
-#: gnucash/gnome-utils/dialog-options.c:1647
+#: gnucash/gnome-utils/dialog-options.c:1506
+#: gnucash/gnome-utils/dialog-options.c:1650
 msgid "Select All"
 msgstr "Alle auswählen"
 
-#: gnucash/gnome-utils/dialog-options.c:1503
+#: gnucash/gnome-utils/dialog-options.c:1508
 msgid "Select all accounts."
 msgstr "Alle Konten auswählen."
 
-#: gnucash/gnome-utils/dialog-options.c:1508
-#: gnucash/gnome-utils/dialog-options.c:1654
+#: gnucash/gnome-utils/dialog-options.c:1513
+#: gnucash/gnome-utils/dialog-options.c:1657
 msgid "Clear All"
 msgstr "Keine auswählen"
 
-#: gnucash/gnome-utils/dialog-options.c:1510
+#: gnucash/gnome-utils/dialog-options.c:1515
 msgid "Clear the selection and unselect all accounts."
 msgstr "Auswahl löschen und gar keine Konten auswählen."
 
-#: gnucash/gnome-utils/dialog-options.c:1515
+#: gnucash/gnome-utils/dialog-options.c:1520
 msgid "Select Children"
 msgstr "Unterkonten auswählen"
 
-#: gnucash/gnome-utils/dialog-options.c:1517
+#: gnucash/gnome-utils/dialog-options.c:1522
 msgid "Select all descendents of selected account."
 msgstr "Alle Unterkonten des gewählten Kontos auswählen."
 
-#: gnucash/gnome-utils/dialog-options.c:1523
-#: gnucash/gnome-utils/dialog-options.c:1661
+#: gnucash/gnome-utils/dialog-options.c:1528
+#: gnucash/gnome-utils/dialog-options.c:1664
 msgid "Select Default"
 msgstr "Voreinstellung"
 
-#: gnucash/gnome-utils/dialog-options.c:1525
+#: gnucash/gnome-utils/dialog-options.c:1530
 msgid "Select the default account selection."
 msgstr "Die voreingestellte Kontenauswahl auswählen."
 
-#: gnucash/gnome-utils/dialog-options.c:1542
+#: gnucash/gnome-utils/dialog-options.c:1547
 msgid "Show Hidden Accounts"
 msgstr "Versteckte Konten anzeigen"
 
-#: gnucash/gnome-utils/dialog-options.c:1544
+#: gnucash/gnome-utils/dialog-options.c:1549
 msgid "Show accounts that have been marked hidden."
 msgstr "Konten anzeigen, die als »Versteckt« markiert sind."
 
-#: gnucash/gnome-utils/dialog-options.c:1649
+#: gnucash/gnome-utils/dialog-options.c:1652
 msgid "Select all entries."
 msgstr "Alle Einträge auswählen."
 
-#: gnucash/gnome-utils/dialog-options.c:1656
+#: gnucash/gnome-utils/dialog-options.c:1659
 msgid "Clear the selection and unselect all entries."
 msgstr "Auswahl löschen und gar keine Einträge auswählen."
 
-#: gnucash/gnome-utils/dialog-options.c:1663
+#: gnucash/gnome-utils/dialog-options.c:1666
 msgid "Select the default selection."
 msgstr "Die voreingestellte Auswahl auswählen."
 
-#: gnucash/gnome-utils/dialog-options.c:1856
+#: gnucash/gnome-utils/dialog-options.c:1860
 msgid "Reset defaults"
 msgstr "Voreinstellungen"
 
-#: gnucash/gnome-utils/dialog-options.c:1858
+#: gnucash/gnome-utils/dialog-options.c:1862
 msgid "Reset all values to their defaults."
 msgstr "Alle Werte auf ihre Voreinstellung zurücksetzen."
 
-#: gnucash/gnome-utils/dialog-options.c:2253
+#: gnucash/gnome-utils/dialog-options.c:2263
 msgid "Page"
 msgstr "Seite"
 
-#: gnucash/gnome-utils/dialog-options.c:2879
+#: gnucash/gnome-utils/dialog-options.c:2890
 #: gnucash/gnome-utils/dialog-preferences.c:1374
 #: gnucash/gtkbuilder/dialog-fincalc.glade:254
 #: gnucash/gtkbuilder/dialog-fincalc.glade:269
@@ -7873,23 +7893,23 @@ msgstr "Seite"
 msgid "Clear"
 msgstr "Zurücksetzen"
 
-#: gnucash/gnome-utils/dialog-options.c:2880
+#: gnucash/gnome-utils/dialog-options.c:2891
 msgid "Clear any selected image file."
 msgstr "Auswahl der Bilddatei wieder löschen."
 
-#: gnucash/gnome-utils/dialog-options.c:2882
+#: gnucash/gnome-utils/dialog-options.c:2893
 msgid "Select image"
 msgstr "Bild auswählen"
 
-#: gnucash/gnome-utils/dialog-options.c:2884
+#: gnucash/gnome-utils/dialog-options.c:2895
 msgid "Select an image file."
 msgstr "Bilddatei auswählen."
 
-#: gnucash/gnome-utils/dialog-options.c:3065
+#: gnucash/gnome-utils/dialog-options.c:3075
 msgid "Pixels"
 msgstr "Pixel"
 
-#: gnucash/gnome-utils/dialog-options.c:3071
+#: gnucash/gnome-utils/dialog-options.c:3081
 msgid "Percent"
 msgstr "Prozent"
 
@@ -7934,30 +7954,30 @@ msgstr "Die Prozentzahl muss zwischen -100 und 100 liegen."
 msgid "You must choose a Tax Account."
 msgstr "Sie müssen ein steuerrelevantes Konto wählen."
 
-#: gnucash/gnome-utils/dialog-tax-table.c:630
+#: gnucash/gnome-utils/dialog-tax-table.c:633
 msgid "Rename"
 msgstr "Umbenennen"
 
-#: gnucash/gnome-utils/dialog-tax-table.c:631
+#: gnucash/gnome-utils/dialog-tax-table.c:634
 msgid "Please enter new name"
 msgstr "Bitte geben Sie einen neuen Namen ein"
 
-#: gnucash/gnome-utils/dialog-tax-table.c:632
+#: gnucash/gnome-utils/dialog-tax-table.c:635
 #: gnucash/gtkbuilder/dialog-tax-table.glade:72
 msgid "_Rename"
 msgstr "_Umbenennen"
 
-#: gnucash/gnome-utils/dialog-tax-table.c:638
+#: gnucash/gnome-utils/dialog-tax-table.c:641
 #, c-format
 msgid "Tax table name \"%s\" already exists."
 msgstr "Eine Steuertabelle mit Namen »%s« existiert bereits."
 
-#: gnucash/gnome-utils/dialog-tax-table.c:662
+#: gnucash/gnome-utils/dialog-tax-table.c:665
 #, c-format
 msgid "Tax table \"%s\" is in use. You cannot delete it."
 msgstr "Steuertabelle »%s« ist in Benutzung. Sie können sie nicht löschen."
 
-#: gnucash/gnome-utils/dialog-tax-table.c:710
+#: gnucash/gnome-utils/dialog-tax-table.c:713
 msgid ""
 "You cannot remove the last entry from the tax table. Try deleting the tax "
 "table if you want to do that."
@@ -7966,7 +7986,7 @@ msgstr ""
 "Stattdessen müssten Sie die ganze Steuertabelle löschen, falls Sie das "
 "möchten."
 
-#: gnucash/gnome-utils/dialog-tax-table.c:717
+#: gnucash/gnome-utils/dialog-tax-table.c:720
 msgid "Are you sure you want to delete this entry?"
 msgstr "Sind Sie sicher, dass Sie diesen Eintrag löschen möchten?"
 
@@ -8778,30 +8798,6 @@ msgstr "_Eigenschaften"
 msgid "Edit the properties of the current file"
 msgstr "Eigenschaften dieser Datei anzeigen und bearbeiten."
 
-#: gnucash/gnome-utils/gnc-main-window.c:302
-#: gnucash/gtkbuilder/dialog-billterms.glade:729
-#: gnucash/gtkbuilder/dialog-commodities.glade:173
-#: gnucash/gtkbuilder/dialog-custom-report.glade:45
-#: gnucash/gtkbuilder/dialog-doclink.glade:546
-#: gnucash/gtkbuilder/dialog-fincalc.glade:107
-#: gnucash/gtkbuilder/dialog-find-account.glade:68
-#: gnucash/gtkbuilder/dialog-imap-editor.glade:80
-#: gnucash/gtkbuilder/dialog-import.glade:496
-#: gnucash/gtkbuilder/dialog-lot-viewer.glade:89
-#: gnucash/gtkbuilder/dialog-order.glade:42
-#: gnucash/gtkbuilder/dialog-preferences.glade:158
-#: gnucash/gtkbuilder/dialog-price.glade:939
-#: gnucash/gtkbuilder/dialog-query-view.glade:22
-#: gnucash/gtkbuilder/dialog-report.glade:272
-#: gnucash/gtkbuilder/dialog-report.glade:679
-#: gnucash/gtkbuilder/dialog-search.glade:52
-#: gnucash/gtkbuilder/dialog-tax-table.glade:254
-#: gnucash/gtkbuilder/dialog-totd.glade:56
-#: gnucash/gtkbuilder/gnc-plugin-page-budget.glade:736
-#: gnucash/import-export/aqb/dialog-ab.glade:43
-msgid "_Close"
-msgstr "S_chließen"
-
 #: gnucash/gnome-utils/gnc-main-window.c:303
 msgid "Close the currently active page"
 msgstr "Aktuelle Seite schließen"
@@ -9050,7 +9046,8 @@ msgstr ""
 "Anregungen, Kritik und Fragen zur Übersetzung an die\n"
 "deutschsprachige GnuCash-Gemeinschaft <gnucash-de at gnucash.org>\n"
 "Um die Moderation zu vermeiden, empfiehlt sich die Anmeldung auf der\n"
-"<a href=\"https://lists.gnucash.org/mailman/listinfo/gnucash-de\">Liste gnucash-de</a>"
+"<a href=\"https://lists.gnucash.org/mailman/listinfo/gnucash-de\">Liste "
+"gnucash-de</a>"
 
 #: gnucash/gnome-utils/gnc-main-window.c:4540
 msgid "Visit the GnuCash website."
@@ -9545,9 +9542,9 @@ msgstr "Gehalt"
 #: gnucash/import-export/qif-imp/qif-dialog-utils.scm:72
 #: gnucash/import-export/qif-imp/qif-dialog-utils.scm:76
 #: gnucash/register/ledger-core/split-register.c:2700
-#: gnucash/report/reports/standard/balance-sheet.scm:502
+#: gnucash/report/reports/standard/balance-sheet.scm:503
 #: gnucash/report/reports/standard/balsheet-pnl.scm:1099
-#: gnucash/report/reports/standard/budget-balance-sheet.scm:723
+#: gnucash/report/reports/standard/budget-balance-sheet.scm:724
 #: libgnucash/app-utils/gnc-ui-util.c:1017 libgnucash/engine/Account.cpp:4324
 msgid "Equity"
 msgstr "Eigenkapital"
@@ -9569,7 +9566,7 @@ msgstr "Eigenkapital"
 #: gnucash/report/reports/standard/price-scatter.scm:312
 #: gnucash/report/reports/standard/price-scatter.scm:326
 #: gnucash/report/reports/standard/register.scm:150
-#: gnucash/report/reports/standard/register.scm:422
+#: gnucash/report/reports/standard/register.scm:393
 #: gnucash/report/trep-engine.scm:955 gnucash/report/trep-engine.scm:1079
 #: gnucash/report/trep-engine.scm:1262
 msgid "Price"
@@ -9596,8 +9593,8 @@ msgid "Dist"
 msgstr "Ausschüttung"
 
 #: gnucash/gnome-utils/gnc-tree-util-split-reg.c:45
-#: gnucash/import-export/import-main-matcher.c:1344
-#: gnucash/report/reports/standard/register.scm:229
+#: gnucash/import-export/import-main-matcher.c:1352
+#: gnucash/report/reports/standard/register.scm:218
 #: libgnucash/engine/Split.c:1592 libgnucash/engine/Split.c:1609
 msgid "-- Split Transaction --"
 msgstr "-- Mehrteilige Buchung --"
@@ -9683,7 +9680,7 @@ msgstr "_Berechnen"
 #: gnucash/report/reports/locale-specific/de_DE/taxtxf.scm:291
 #: gnucash/report/reports/standard/general-ledger.scm:72
 #: gnucash/report/reports/standard/general-ledger.scm:92
-#: gnucash/report/reports/standard/trial-balance.scm:598
+#: gnucash/report/reports/standard/trial-balance.scm:599
 #: gnucash/report/trep-engine.scm:147 gnucash/report/trep-engine.scm:981
 #: gnucash/report/trep-engine.scm:1074
 msgid "Account Name"
@@ -9945,7 +9942,7 @@ msgstr "Statusleiste"
 
 #: gnucash/gnome-utils/gnc-tree-view-split-reg.c:1247
 #: gnucash/report/reports/standard/balsheet-eg.scm:386
-#: libgnucash/engine/Scrub.c:392
+#: libgnucash/engine/Scrub.c:407
 msgid "Imbalance"
 msgstr "Ausgleichskonto"
 
@@ -10204,7 +10201,7 @@ msgstr ""
 
 #: gnucash/gnome-utils/gnc-tree-view-sx-list.c:140
 #: gnucash/gtkbuilder/dialog-sx.glade:1041
-#: gnucash/report/html-utilities.scm:268
+#: gnucash/report/html-utilities.scm:292
 msgid "Enabled"
 msgstr "Aktiv"
 
@@ -15125,7 +15122,7 @@ msgstr "<b>Ha_uptkonto</b>"
 #: gnucash/report/report-core.scm:77
 #: gnucash/report/reports/standard/equity-statement.scm:108
 #: gnucash/report/reports/standard/equity-statement.scm:112
-#: gnucash/report/reports/standard/register.scm:376
+#: gnucash/report/reports/standard/register.scm:347
 #: gnucash/report/reports/standard/trial-balance.scm:185
 #: gnucash/report/reports/standard/trial-balance.scm:189
 #: gnucash/report/reports/standard/view-column.scm:50
@@ -19407,11 +19404,15 @@ msgstr "Nur _aktive Mandanten zeigen"
 msgid "Show _zero balance owners"
 msgstr "Mandanten mit _Nullsalden anzeigen"
 
-#: gnucash/gtkbuilder/window-autoclear.glade:71
-msgid "<b>Auto-Clear Information</b>"
-msgstr "<b>Information zum automatischen Kontenabgleich</b>"
+#: gnucash/gtkbuilder/window-autoclear.glade:74
+msgid ""
+"<b>Auto-Clear Information</b>\n"
+"Use this dialog if you want GnuCash to automatically find which transactions "
+"are cleared, given an ending balance. For example, said ending balance can "
+"be the current balance given by your online bank."
+msgstr ""
 
-#: gnucash/gtkbuilder/window-autoclear.glade:92
+#: gnucash/gtkbuilder/window-autoclear.glade:98
 #: gnucash/gtkbuilder/window-reconcile.glade:117
 msgid "_Ending Balance"
 msgstr "_Schlusssaldo"
@@ -20168,7 +20169,7 @@ msgid "Unspecified"
 msgstr "Nicht spezifiziert"
 
 #: gnucash/import-export/aqb/gnc-ab-utils.c:543
-#: gnucash/report/report-utilities.scm:102 libgnucash/engine/Account.cpp:4314
+#: gnucash/report/report-utilities.scm:114 libgnucash/engine/Account.cpp:4314
 msgid "Bank"
 msgstr "Bank"
 
@@ -21744,85 +21745,85 @@ msgstr "Jahr/Monat/Tag"
 msgid "y/d/m"
 msgstr "Jahr/Tag/Monat"
 
-#: gnucash/import-export/import-main-matcher.c:533
-#: gnucash/import-export/import-main-matcher.c:683
+#: gnucash/import-export/import-main-matcher.c:537
+#: gnucash/import-export/import-main-matcher.c:687
 msgid "Destination account for the auto-balance split."
 msgstr "Gegenkonto für Ausgleichsbuchung."
 
-#: gnucash/import-export/import-main-matcher.c:874
+#: gnucash/import-export/import-main-matcher.c:878
 msgid "Assign a transfer account to the selection."
 msgstr "Gegenkonto zu Auswahl zuweisen."
 
-#: gnucash/import-export/import-main-matcher.c:1041
+#: gnucash/import-export/import-main-matcher.c:1045
 msgctxt "Column header for 'Adding transaction'"
 msgid "A"
 msgstr "Neu"
 
-#: gnucash/import-export/import-main-matcher.c:1044
+#: gnucash/import-export/import-main-matcher.c:1048
 msgctxt "Column header for 'Updating plus Clearing transaction'"
 msgid "U+C"
 msgstr "Ü+Abgl"
 
-#: gnucash/import-export/import-main-matcher.c:1048
+#: gnucash/import-export/import-main-matcher.c:1052
 msgctxt "Column header for 'Clearing transaction'"
 msgid "C"
 msgstr "Abgl"
 
-#: gnucash/import-export/import-main-matcher.c:1054
+#: gnucash/import-export/import-main-matcher.c:1058
 msgid "Info"
 msgstr "Information"
 
-#: gnucash/import-export/import-main-matcher.c:1061
+#: gnucash/import-export/import-main-matcher.c:1065
 #: gnucash/report/stylesheets/head-or-tail.scm:102
 msgid "Additional Comments"
 msgstr "Zusätzliche Kommentare"
 
-#: gnucash/import-export/import-main-matcher.c:1427
+#: gnucash/import-export/import-main-matcher.c:1435
 msgid "New, already balanced"
 msgstr "Neu (und ausgeglichen)"
 
 #. Translators: %1$s is the amount to be
 #. transferred. %2$s is the destination account.
-#: gnucash/import-export/import-main-matcher.c:1453
+#: gnucash/import-export/import-main-matcher.c:1461
 #, c-format
 msgid "New, transfer %s to (manual) \"%s\""
 msgstr "Neu (%s nach »%s«, manuell gewählt)"
 
 #. Translators: %1$s is the amount to be
 #. transferred. %2$s is the destination account.
-#: gnucash/import-export/import-main-matcher.c:1461
+#: gnucash/import-export/import-main-matcher.c:1469
 #, c-format
 msgid "New, transfer %s to (auto) \"%s\""
 msgstr "Neu (%s nach »%s«, automatisch gewählt)"
 
 #. Translators: %s is the amount to be transferred.
-#: gnucash/import-export/import-main-matcher.c:1472
+#: gnucash/import-export/import-main-matcher.c:1480
 #, c-format
 msgid "New, UNBALANCED (need acct to transfer %s)!"
 msgstr "Neu (verbleibende %s benötigen Konto, nicht ausgeglichen)"
 
-#: gnucash/import-export/import-main-matcher.c:1489
+#: gnucash/import-export/import-main-matcher.c:1497
 msgid "Reconcile (manual) match"
 msgstr "Abgleichen (manuell gewählte Zuordnung)"
 
-#: gnucash/import-export/import-main-matcher.c:1493
+#: gnucash/import-export/import-main-matcher.c:1501
 msgid "Reconcile (auto) match"
 msgstr "Abgleichen (automatisch gewählte Zuordnung)"
 
-#: gnucash/import-export/import-main-matcher.c:1500
-#: gnucash/import-export/import-main-matcher.c:1526
+#: gnucash/import-export/import-main-matcher.c:1508
+#: gnucash/import-export/import-main-matcher.c:1534
 msgid "Match missing!"
 msgstr "Zuordnung fehlt!"
 
-#: gnucash/import-export/import-main-matcher.c:1515
+#: gnucash/import-export/import-main-matcher.c:1523
 msgid "Update and reconcile (manual) match"
 msgstr "Abgleichen und Datenübernahme (manuell gewählte Zuordnung)"
 
-#: gnucash/import-export/import-main-matcher.c:1519
+#: gnucash/import-export/import-main-matcher.c:1527
 msgid "Update and reconcile (auto) match"
 msgstr "Abgleichen und Datenübernahme (automatisch gewählte Zuordnung)"
 
-#: gnucash/import-export/import-main-matcher.c:1534
+#: gnucash/import-export/import-main-matcher.c:1542
 msgid "Do not import (no action selected)"
 msgstr "Nicht importieren (keine Import-Aktion gewählt)"
 
@@ -22180,7 +22181,7 @@ msgstr "Kapitalertrag (kurzfristig)"
 
 #: gnucash/import-export/qif-imp/qif-dialog-utils.scm:73
 #: gnucash/import-export/qif-imp/qif-dialog-utils.scm:77
-#: gnucash/report/reports/standard/balance-sheet.scm:509
+#: gnucash/report/reports/standard/balance-sheet.scm:510
 #: gnucash/report/reports/standard/balsheet-pnl.scm:1108
 #: gnucash/report/reports/standard/balsheet-pnl.scm:1123
 #: gnucash/report/reports/support/balsheet-eg.eguile.scm:189
@@ -22616,7 +22617,7 @@ msgstr ">"
 #: gnucash/register/ledger-core/gncEntryLedgerLoad.c:130
 #: gnucash/register/ledger-core/gncEntryLedgerModel.c:527
 #: gnucash/register/ledger-core/gncEntryLedgerModel.c:1091
-#: gnucash/report/report-utilities.scm:103 libgnucash/engine/Account.cpp:4315
+#: gnucash/report/report-utilities.scm:115 libgnucash/engine/Account.cpp:4315
 msgid "Cash"
 msgstr "Bargeld"
 
@@ -23136,79 +23137,79 @@ msgstr "Anpassungsbuchungen"
 msgid "Load"
 msgstr "Laden"
 
-#: gnucash/report/html-fonts.scm:68 gnucash/report/html-fonts.scm:73
-#: gnucash/report/html-fonts.scm:78 gnucash/report/html-fonts.scm:83
-#: gnucash/report/html-fonts.scm:88 gnucash/report/html-fonts.scm:93
-#: gnucash/report/html-fonts.scm:98 gnucash/report/html-fonts.scm:104
-#: gnucash/report/html-fonts.scm:110
+#: gnucash/report/html-fonts.scm:92 gnucash/report/html-fonts.scm:97
+#: gnucash/report/html-fonts.scm:102 gnucash/report/html-fonts.scm:107
+#: gnucash/report/html-fonts.scm:112 gnucash/report/html-fonts.scm:117
+#: gnucash/report/html-fonts.scm:122 gnucash/report/html-fonts.scm:128
+#: gnucash/report/html-fonts.scm:134
 msgid "Fonts"
 msgstr "Schriftarten"
 
-#: gnucash/report/html-fonts.scm:69
+#: gnucash/report/html-fonts.scm:93
 msgid "Font info for the report title."
 msgstr "Schriftart für den Berichtstitel."
 
-#: gnucash/report/html-fonts.scm:74
+#: gnucash/report/html-fonts.scm:98
 msgid "Account link"
 msgstr "Konto-Hyperlink"
 
-#: gnucash/report/html-fonts.scm:74
+#: gnucash/report/html-fonts.scm:98
 msgid "Font info for account name."
 msgstr "Schriftart für Kontonamen."
 
-#: gnucash/report/html-fonts.scm:79
+#: gnucash/report/html-fonts.scm:103
 msgid "Number cell"
 msgstr "Zahlenfeld"
 
-#: gnucash/report/html-fonts.scm:79
+#: gnucash/report/html-fonts.scm:103
 msgid "Font info for regular number cells."
 msgstr "Schriftart für Felder mit normalen Zahlen."
 
-#: gnucash/report/html-fonts.scm:84
+#: gnucash/report/html-fonts.scm:108
 msgid "Negative Values in Red"
 msgstr "Negative Beträge in rot anzeigen"
 
-#: gnucash/report/html-fonts.scm:84
+#: gnucash/report/html-fonts.scm:108
 msgid "Display negative values in red."
 msgstr "Negative Beträge in rot anzeigen."
 
-#: gnucash/report/html-fonts.scm:89
+#: gnucash/report/html-fonts.scm:113
 msgid "Number header"
 msgstr "Zahlenüberschrift"
 
-#: gnucash/report/html-fonts.scm:89
+#: gnucash/report/html-fonts.scm:113
 msgid "Font info for number headers."
 msgstr "Schriftart für Überschriften mit Zahlen."
 
-#: gnucash/report/html-fonts.scm:94
+#: gnucash/report/html-fonts.scm:118
 msgid "Text cell"
 msgstr "Textfeld"
 
-#: gnucash/report/html-fonts.scm:94
+#: gnucash/report/html-fonts.scm:118
 msgid "Font info for regular text cells."
 msgstr "Schriftart für normale Textfelder."
 
-#: gnucash/report/html-fonts.scm:99
+#: gnucash/report/html-fonts.scm:123
 msgid "Total number cell"
 msgstr "Summenfeld"
 
-#: gnucash/report/html-fonts.scm:100
+#: gnucash/report/html-fonts.scm:124
 msgid "Font info for number cells containing a total."
 msgstr "Schriftart für Zahlenfelder mit Summen."
 
-#: gnucash/report/html-fonts.scm:105
+#: gnucash/report/html-fonts.scm:129
 msgid "Total label cell"
 msgstr "Summenbeschriftung"
 
-#: gnucash/report/html-fonts.scm:106
+#: gnucash/report/html-fonts.scm:130
 msgid "Font info for cells containing total labels."
 msgstr "Schriftart für die Beschriftungsfelder von Summen."
 
-#: gnucash/report/html-fonts.scm:111
+#: gnucash/report/html-fonts.scm:135
 msgid "Centered label cell"
 msgstr "Zentriertes Textfeld"
 
-#: gnucash/report/html-fonts.scm:111
+#: gnucash/report/html-fonts.scm:135
 msgid "Font info for centered label cells."
 msgstr "Schriftart für zentrierte Textfelder."
 
@@ -23216,44 +23217,44 @@ msgstr "Schriftart für zentrierte Textfelder."
 msgid "Can't save style sheet"
 msgstr "Stilvorlage kann nicht gespeichert werden"
 
-#: gnucash/report/html-utilities.scm:227
+#: gnucash/report/html-utilities.scm:229 gnucash/report/html-utilities.scm:246
+#, fuzzy
+#| msgid "Exchange rate"
 msgid "Exchange rate"
-msgstr "Wechselkurs"
+msgid_plural "Exchange rates"
+msgstr[0] "Wechselkurs"
+msgstr[1] "Wechselkurs"
 
-#: gnucash/report/html-utilities.scm:228
-msgid "Exchange rates"
-msgstr "Wechselkurse"
-
-#: gnucash/report/html-utilities.scm:235
+#: gnucash/report/html-utilities.scm:259
 msgid "No budgets exist. You must create at least one budget."
 msgstr "Das Buch enthält kein Budget. Sie müssen zuerst ein Budget erstellen."
 
-#: gnucash/report/html-utilities.scm:268
+#: gnucash/report/html-utilities.scm:292
 #: gnucash/report/reports/standard/balsheet-pnl.scm:137
 #: gnucash/report/reports/standard/balsheet-pnl.scm:138
 #: gnucash/report/reports/standard/new-owner-report.scm:935
 msgid "Disabled"
 msgstr "Inaktiv"
 
-#: gnucash/report/html-utilities.scm:321
+#: gnucash/report/html-utilities.scm:345
 msgid "This report requires you to specify certain report options."
 msgstr "Für diesen Bericht müssen einige Optionen ausgewählt werden."
 
-#: gnucash/report/html-utilities.scm:328
+#: gnucash/report/html-utilities.scm:352
 msgid "No accounts selected"
 msgstr "Keine Konten ausgewählt!"
 
-#: gnucash/report/html-utilities.scm:329
+#: gnucash/report/html-utilities.scm:353
 msgid "This report requires accounts to be selected in the report options."
 msgstr ""
 "Für diesen Bericht müssen Konten in den Berichtsoptionen ausgewählt werden."
 
-#: gnucash/report/html-utilities.scm:336
+#: gnucash/report/html-utilities.scm:360
 #: gnucash/report/reports/standard/price-scatter.scm:276
 msgid "No data"
 msgstr "Keine Daten gefunden!"
 
-#: gnucash/report/html-utilities.scm:337
+#: gnucash/report/html-utilities.scm:361
 msgid ""
 "The selected accounts contain no data/transactions (or only zeroes) for the "
 "selected time period"
@@ -23657,19 +23658,19 @@ msgstr "Benutzer_definiert"
 #: gnucash/report/reports/standard/invoice.scm:337
 #: gnucash/report/reports/standard/invoice.scm:342
 #: gnucash/report/reports/standard/receipt.scm:40
-#: gnucash/report/reports/standard/register.scm:382
+#: gnucash/report/reports/standard/register.scm:353
+#: gnucash/report/reports/standard/register.scm:359
+#: gnucash/report/reports/standard/register.scm:363
+#: gnucash/report/reports/standard/register.scm:368
+#: gnucash/report/reports/standard/register.scm:373
+#: gnucash/report/reports/standard/register.scm:378
+#: gnucash/report/reports/standard/register.scm:383
 #: gnucash/report/reports/standard/register.scm:388
-#: gnucash/report/reports/standard/register.scm:392
-#: gnucash/report/reports/standard/register.scm:397
-#: gnucash/report/reports/standard/register.scm:402
+#: gnucash/report/reports/standard/register.scm:393
+#: gnucash/report/reports/standard/register.scm:398
 #: gnucash/report/reports/standard/register.scm:407
 #: gnucash/report/reports/standard/register.scm:412
 #: gnucash/report/reports/standard/register.scm:417
-#: gnucash/report/reports/standard/register.scm:422
-#: gnucash/report/reports/standard/register.scm:427
-#: gnucash/report/reports/standard/register.scm:436
-#: gnucash/report/reports/standard/register.scm:441
-#: gnucash/report/reports/standard/register.scm:446
 #: gnucash/report/reports/standard/taxinvoice.scm:79
 msgid "Display"
 msgstr "Anzeige"
@@ -24269,7 +24270,7 @@ msgstr "Gesamtbeträge in der Legende anzeigen?"
 #: gnucash/report/reports/standard/balsheet-pnl.scm:910
 #: gnucash/report/reports/standard/budget.scm:513
 #: gnucash/report/reports/standard/cashflow-barchart.scm:282
-#: gnucash/report/reports/standard/cash-flow.scm:188
+#: gnucash/report/reports/standard/cash-flow.scm:190
 #: gnucash/report/reports/standard/category-barchart.scm:514
 #: gnucash/report/reports/standard/net-charts.scm:334
 #: gnucash/report/reports/standard/price-scatter.scm:212
@@ -24796,35 +24797,35 @@ msgstr ""
 "zugewiesen worden. Normalerweise dürfen sich nur die TXF Codes für "
 "Zahlungspflichtige wiederholen."
 
-#: gnucash/report/reports/locale-specific/de_DE/taxtxf.scm:818
+#: gnucash/report/reports/locale-specific/de_DE/taxtxf.scm:817
 #, scheme-format
 msgid "Period from ~a to ~a"
 msgstr "Zeitraum von ~a bis ~a"
 
-#: gnucash/report/reports/locale-specific/de_DE/taxtxf.scm:855
+#: gnucash/report/reports/locale-specific/de_DE/taxtxf.scm:854
 msgid "Tax Report & XML Export"
 msgstr "Steuer-Bericht & Elster Export"
 
-#: gnucash/report/reports/locale-specific/de_DE/taxtxf.scm:857
+#: gnucash/report/reports/locale-specific/de_DE/taxtxf.scm:856
 msgid "Taxable Income / Deductible Expenses / Export to .XML file"
 msgstr ""
 "Besteuerte Erträge / Absetzbare Aufwendungen / Exportieren nach Elster-XML"
 
-#: gnucash/report/reports/locale-specific/de_DE/taxtxf.scm:861
-#: gnucash/report/reports/locale-specific/de_DE/taxtxf.scm:870
+#: gnucash/report/reports/locale-specific/de_DE/taxtxf.scm:860
+#: gnucash/report/reports/locale-specific/de_DE/taxtxf.scm:869
 msgid "Taxable Income / Deductible Expenses"
 msgstr "Besteuerte Erträge / Absetzbare Aufwendungen"
 
-#: gnucash/report/reports/locale-specific/de_DE/taxtxf.scm:862
+#: gnucash/report/reports/locale-specific/de_DE/taxtxf.scm:861
 msgid "This report shows your Taxable Income and Deductible Expenses."
 msgstr ""
 "Diese Seite zeigt Ihnen zu versteuernde Erträge und absetzbare Aufwendungen."
 
-#: gnucash/report/reports/locale-specific/de_DE/taxtxf.scm:867
+#: gnucash/report/reports/locale-specific/de_DE/taxtxf.scm:866
 msgid "XML"
 msgstr "XML für Elster"
 
-#: gnucash/report/reports/locale-specific/de_DE/taxtxf.scm:871
+#: gnucash/report/reports/locale-specific/de_DE/taxtxf.scm:870
 msgid "This page shows your Taxable Income and Deductible Expenses."
 msgstr ""
 "Diese Seite zeigt Ihnen zu versteuernde Erträge und absetzbare Aufwendungen."
@@ -24998,20 +24999,20 @@ msgid "Expense Accounts"
 msgstr "Aufwandskonten"
 
 #: gnucash/report/reports/standard/account-piecharts.scm:60
-#: gnucash/report/reports/standard/balance-sheet.scm:485
-#: gnucash/report/reports/standard/budget-balance-sheet.scm:664
+#: gnucash/report/reports/standard/balance-sheet.scm:486
+#: gnucash/report/reports/standard/budget-balance-sheet.scm:665
 #: gnucash/report/reports/standard/net-charts.scm:350
 #: gnucash/report/reports/standard/net-charts.scm:421
-#: gnucash/report/report-utilities.scm:105
+#: gnucash/report/report-utilities.scm:117
 msgid "Assets"
 msgstr "Aktiva"
 
 #: gnucash/report/reports/standard/account-piecharts.scm:62
-#: gnucash/report/reports/standard/balance-sheet.scm:386
-#: gnucash/report/reports/standard/budget-balance-sheet.scm:694
+#: gnucash/report/reports/standard/balance-sheet.scm:387
+#: gnucash/report/reports/standard/budget-balance-sheet.scm:695
 #: gnucash/report/reports/standard/net-charts.scm:371
 #: gnucash/report/reports/standard/net-charts.scm:421
-#: gnucash/report/report-utilities.scm:106
+#: gnucash/report/report-utilities.scm:118
 msgid "Liabilities"
 msgstr "Verbindlichkeit"
 
@@ -25392,15 +25393,15 @@ msgstr ""
 "Ignorieren Konten, die in der Baumstruktur unter dem Tiefenlimit liegen."
 
 #. Translators: This is part of the report title, which is capitalzed in English, but not all other languages
-#: gnucash/report/reports/standard/account-summary.scm:325
-#: gnucash/report/reports/standard/equity-statement.scm:302
+#: gnucash/report/reports/standard/account-summary.scm:326
+#: gnucash/report/reports/standard/equity-statement.scm:304
 #: gnucash/report/reports/standard/income-statement.scm:407
-#: gnucash/report/reports/standard/trial-balance.scm:412
+#: gnucash/report/reports/standard/trial-balance.scm:413
 #, scheme-format
 msgid "For Period Covering ~a to ~a"
 msgstr "für Periode ~a bis ~a"
 
-#: gnucash/report/reports/standard/account-summary.scm:409
+#: gnucash/report/reports/standard/account-summary.scm:410
 msgid "Account title"
 msgstr "Kontobezeichnung"
 
@@ -25557,14 +25558,14 @@ msgstr "Basis"
 #: gnucash/report/reports/standard/advanced-portfolio.scm:1081
 #: gnucash/report/reports/standard/cashflow-barchart.scm:297
 #: gnucash/report/reports/standard/cashflow-barchart.scm:332
-#: gnucash/report/reports/standard/cash-flow.scm:277
+#: gnucash/report/reports/standard/cash-flow.scm:279
 msgid "Money In"
 msgstr "Einzahlung"
 
 #: gnucash/report/reports/standard/advanced-portfolio.scm:1082
 #: gnucash/report/reports/standard/cashflow-barchart.scm:303
 #: gnucash/report/reports/standard/cashflow-barchart.scm:333
-#: gnucash/report/reports/standard/cash-flow.scm:298
+#: gnucash/report/reports/standard/cash-flow.scm:300
 msgid "Money Out"
 msgstr "Auszahlung"
 
@@ -25693,7 +25694,7 @@ msgid "Reserve"
 msgstr "Reserve"
 
 #: gnucash/report/reports/standard/balance-sheet.scm:72
-#: gnucash/report/reports/standard/trial-balance.scm:573
+#: gnucash/report/reports/standard/trial-balance.scm:574
 msgid "Balance Sheet"
 msgstr "Bilanz"
 
@@ -25809,52 +25810,52 @@ msgstr "Summe Eigenkapital anzeigen"
 msgid "Whether or not to include a line indicating total equity."
 msgstr "Zeige eine Zeile für das gesamte Eigenkapital an."
 
-#: gnucash/report/reports/standard/balance-sheet.scm:390
-#: gnucash/report/reports/standard/budget-balance-sheet.scm:716
+#: gnucash/report/reports/standard/balance-sheet.scm:391
+#: gnucash/report/reports/standard/budget-balance-sheet.scm:717
 msgid "Total Liabilities"
 msgstr "Gesamt Verbindlichkeiten"
 
-#: gnucash/report/reports/standard/balance-sheet.scm:488
-#: gnucash/report/reports/standard/budget-balance-sheet.scm:685
+#: gnucash/report/reports/standard/balance-sheet.scm:489
+#: gnucash/report/reports/standard/budget-balance-sheet.scm:686
 msgid "Total Assets"
 msgstr "Gesamt Aktiva"
 
-#: gnucash/report/reports/standard/balance-sheet.scm:510
+#: gnucash/report/reports/standard/balance-sheet.scm:511
 #: gnucash/report/reports/support/balsheet-eg.eguile.scm:188
 msgid "Retained Losses"
 msgstr "Erwirtschafteter Verlust"
 
-#: gnucash/report/reports/standard/balance-sheet.scm:514
+#: gnucash/report/reports/standard/balance-sheet.scm:515
 msgid "Trading Gains"
 msgstr "Gewinne Devisenhandel"
 
-#: gnucash/report/reports/standard/balance-sheet.scm:515
+#: gnucash/report/reports/standard/balance-sheet.scm:516
 msgid "Trading Losses"
 msgstr "Verluste Devisenhandel"
 
-#: gnucash/report/reports/standard/balance-sheet.scm:519
+#: gnucash/report/reports/standard/balance-sheet.scm:520
 #: gnucash/report/reports/standard/balsheet-pnl.scm:1103
 #: gnucash/report/reports/standard/balsheet-pnl.scm:1118
-#: gnucash/report/reports/standard/budget-balance-sheet.scm:758
-#: gnucash/report/reports/standard/equity-statement.scm:472
-#: gnucash/report/reports/standard/trial-balance.scm:734
+#: gnucash/report/reports/standard/budget-balance-sheet.scm:759
+#: gnucash/report/reports/standard/equity-statement.scm:474
+#: gnucash/report/reports/standard/trial-balance.scm:735
 msgid "Unrealized Gains"
 msgstr "Nicht realisierter Gewinn/Verlust"
 
-#: gnucash/report/reports/standard/balance-sheet.scm:520
-#: gnucash/report/reports/standard/budget-balance-sheet.scm:759
-#: gnucash/report/reports/standard/equity-statement.scm:473
-#: gnucash/report/reports/standard/trial-balance.scm:735
+#: gnucash/report/reports/standard/balance-sheet.scm:521
+#: gnucash/report/reports/standard/budget-balance-sheet.scm:760
+#: gnucash/report/reports/standard/equity-statement.scm:475
+#: gnucash/report/reports/standard/trial-balance.scm:736
 msgid "Unrealized Losses"
 msgstr "Nicht realisierter Verlust"
 
-#: gnucash/report/reports/standard/balance-sheet.scm:524
-#: gnucash/report/reports/standard/budget-balance-sheet.scm:774
+#: gnucash/report/reports/standard/balance-sheet.scm:525
+#: gnucash/report/reports/standard/budget-balance-sheet.scm:775
 msgid "Total Equity"
 msgstr "Gesamt Eigenkapital"
 
-#: gnucash/report/reports/standard/balance-sheet.scm:534
-#: gnucash/report/reports/standard/budget-balance-sheet.scm:780
+#: gnucash/report/reports/standard/balance-sheet.scm:535
+#: gnucash/report/reports/standard/budget-balance-sheet.scm:781
 msgid "Total Liabilities & Equity"
 msgstr "Gesamt Passiva"
 
@@ -26004,7 +26005,7 @@ msgstr ""
 "um diese Nachricht loszuwerden."
 
 #: gnucash/report/reports/standard/balsheet-eg.scm:389
-#: libgnucash/engine/Scrub.c:107
+#: libgnucash/engine/Scrub.c:117
 msgid "Orphan"
 msgstr "Ausbuchungskonto"
 
@@ -26214,7 +26215,7 @@ msgid " to "
 msgstr " bis "
 
 #: gnucash/report/reports/standard/balsheet-pnl.scm:1272
-#: gnucash/report/reports/standard/trial-balance.scm:860
+#: gnucash/report/reports/standard/trial-balance.scm:861
 msgid "Net Income"
 msgstr "Nettoertrag"
 
@@ -26250,55 +26251,55 @@ msgstr ""
 msgid "Budget to use."
 msgstr "Zu benutzendes Budget"
 
-#: gnucash/report/reports/standard/budget-balance-sheet.scm:676
+#: gnucash/report/reports/standard/budget-balance-sheet.scm:677
 msgid "Existing Assets"
 msgstr "Bestehende Aktiva"
 
-#: gnucash/report/reports/standard/budget-balance-sheet.scm:678
+#: gnucash/report/reports/standard/budget-balance-sheet.scm:679
 msgid "Allocated Assets"
 msgstr "Zugewiesene Aktiva"
 
-#: gnucash/report/reports/standard/budget-balance-sheet.scm:682
+#: gnucash/report/reports/standard/budget-balance-sheet.scm:683
 msgid "Unallocated Assets"
 msgstr "Nicht verwendete Aktiva"
 
-#: gnucash/report/reports/standard/budget-balance-sheet.scm:708
+#: gnucash/report/reports/standard/budget-balance-sheet.scm:709
 msgid "Existing Liabilities"
 msgstr "Bestehende Verbindlichkeiten"
 
-#: gnucash/report/reports/standard/budget-balance-sheet.scm:713
+#: gnucash/report/reports/standard/budget-balance-sheet.scm:714
 msgid "New Liabilities"
 msgstr "Neue Verbindlichkeiten"
 
-#: gnucash/report/reports/standard/budget-balance-sheet.scm:739
+#: gnucash/report/reports/standard/budget-balance-sheet.scm:740
 msgid "Existing Retained Earnings"
 msgstr "Existierende Gewinnrücklagen"
 
-#: gnucash/report/reports/standard/budget-balance-sheet.scm:740
+#: gnucash/report/reports/standard/budget-balance-sheet.scm:741
 msgid "Existing Retained Losses"
 msgstr "Existierende Verlustvorträge"
 
-#: gnucash/report/reports/standard/budget-balance-sheet.scm:745
+#: gnucash/report/reports/standard/budget-balance-sheet.scm:746
 msgid "New Retained Earnings"
 msgstr "Neue Gewinnrücklagen"
 
-#: gnucash/report/reports/standard/budget-balance-sheet.scm:746
+#: gnucash/report/reports/standard/budget-balance-sheet.scm:747
 msgid "New Retained Losses"
 msgstr "Neue Verlustvorträge"
 
-#: gnucash/report/reports/standard/budget-balance-sheet.scm:751
+#: gnucash/report/reports/standard/budget-balance-sheet.scm:752
 msgid "Total Retained Earnings"
 msgstr "Summe Gewinnrücklagen"
 
-#: gnucash/report/reports/standard/budget-balance-sheet.scm:752
+#: gnucash/report/reports/standard/budget-balance-sheet.scm:753
 msgid "Total Retained Losses"
 msgstr "Summ Verlustvorträge"
 
-#: gnucash/report/reports/standard/budget-balance-sheet.scm:768
+#: gnucash/report/reports/standard/budget-balance-sheet.scm:769
 msgid "Existing Equity"
 msgstr "Existierendes Eigenkapital"
 
-#: gnucash/report/reports/standard/budget-balance-sheet.scm:771
+#: gnucash/report/reports/standard/budget-balance-sheet.scm:772
 msgid "New Equity"
 msgstr "Neues Eigenkapital"
 
@@ -26534,59 +26535,59 @@ msgstr ""
 "Konten in der normalen Reihenfolge anzeigen, also Erträge vor Aufwendungen. "
 "Andernfalls zuerst die Aufwendungen, dann die Erträge anzeigen."
 
-#: gnucash/report/reports/standard/budget-income-statement.scm:442
+#: gnucash/report/reports/standard/budget-income-statement.scm:443
 msgid "Reporting range end period cannot be less than start period."
 msgstr ""
 "Das Ende des Berichtsbereichs kann nicht kleiner als der Anfang sein ─ bitte "
 "umtauschen."
 
-#: gnucash/report/reports/standard/budget-income-statement.scm:510
+#: gnucash/report/reports/standard/budget-income-statement.scm:511
 #: gnucash/report/reports/standard/income-statement.scm:505
 msgid "Revenues"
 msgstr "Ertrag"
 
-#: gnucash/report/reports/standard/budget-income-statement.scm:513
+#: gnucash/report/reports/standard/budget-income-statement.scm:514
 #: gnucash/report/reports/standard/income-statement.scm:508
 msgid "Total Revenue"
 msgstr "Gesamt-Ertrag"
 
-#: gnucash/report/reports/standard/budget-income-statement.scm:523
+#: gnucash/report/reports/standard/budget-income-statement.scm:524
 #: gnucash/report/reports/standard/income-statement.scm:515
 msgid "Total Expenses"
 msgstr "Gesamt-Aufwand"
 
-#: gnucash/report/reports/standard/budget-income-statement.scm:531
+#: gnucash/report/reports/standard/budget-income-statement.scm:532
 #, scheme-format
 msgid "for Budget ~a"
 msgstr "für Budget ~a"
 
-#: gnucash/report/reports/standard/budget-income-statement.scm:533
+#: gnucash/report/reports/standard/budget-income-statement.scm:534
 #, scheme-format
 msgid "for Budget ~a Period ~d"
 msgstr "für Budget ~a Periode ~d"
 
-#: gnucash/report/reports/standard/budget-income-statement.scm:536
+#: gnucash/report/reports/standard/budget-income-statement.scm:537
 #, scheme-format
 msgid "for Budget ~a Periods ~d - ~d"
 msgstr "für Budget ~a Perioden ~d - ~d"
 
-#: gnucash/report/reports/standard/budget-income-statement.scm:564
-#: gnucash/report/reports/standard/equity-statement.scm:455
+#: gnucash/report/reports/standard/budget-income-statement.scm:565
+#: gnucash/report/reports/standard/equity-statement.scm:457
 #: gnucash/report/reports/standard/income-statement.scm:525
 msgid "Net income"
 msgstr "Netto-Ertrag"
 
-#: gnucash/report/reports/standard/budget-income-statement.scm:565
-#: gnucash/report/reports/standard/equity-statement.scm:456
+#: gnucash/report/reports/standard/budget-income-statement.scm:566
+#: gnucash/report/reports/standard/equity-statement.scm:458
 #: gnucash/report/reports/standard/income-statement.scm:526
 msgid "Net loss"
 msgstr "Netto-Verlust"
 
-#: gnucash/report/reports/standard/budget-income-statement.scm:605
+#: gnucash/report/reports/standard/budget-income-statement.scm:606
 msgid "Budget Income Statement"
 msgstr "Budget Einnahmenüberschussrechnung"
 
-#: gnucash/report/reports/standard/budget-income-statement.scm:606
+#: gnucash/report/reports/standard/budget-income-statement.scm:607
 msgid "Budget Profit & Loss"
 msgstr "Budget Gewinn- und Verlustrechnung"
 
@@ -26783,21 +26784,21 @@ msgid "Show full account names (including parent accounts)."
 msgstr ""
 "Zeige lange Kontenbezeichung (einschließlich übergeordneter Konten) an."
 
-#: gnucash/report/reports/standard/cash-flow.scm:203
+#: gnucash/report/reports/standard/cash-flow.scm:205
 #, scheme-format
 msgid "~a and subaccounts"
 msgstr "~a und Unterkonten"
 
-#: gnucash/report/reports/standard/cash-flow.scm:204
+#: gnucash/report/reports/standard/cash-flow.scm:206
 #, scheme-format
 msgid "~a and selected subaccounts"
 msgstr "~a und ausgewählte Unterkonten"
 
-#: gnucash/report/reports/standard/cash-flow.scm:268
+#: gnucash/report/reports/standard/cash-flow.scm:270
 msgid "Money into selected accounts comes from"
 msgstr "Zahlung in gewählte Konten kommen aus"
 
-#: gnucash/report/reports/standard/cash-flow.scm:289
+#: gnucash/report/reports/standard/cash-flow.scm:291
 msgid "Money out of selected accounts goes to"
 msgstr "Zahlung von gewählten Konten gehen nach"
 
@@ -27073,7 +27074,7 @@ msgid "No Customer"
 msgstr "Kein Kunde"
 
 # Fixme: Source Accelerator missing
-#: gnucash/report/reports/standard/customer-summary.scm:514
+#: gnucash/report/reports/standard/customer-summary.scm:516
 msgid "Customer Summary"
 msgstr "Kundenüber_sicht"
 
@@ -27125,37 +27126,37 @@ msgid ""
 "Causes the Closing Entries Pattern to be treated as a regular expression."
 msgstr "Lässt das Muster für Abschlussbuchungen ein regulärer Ausdruck sein."
 
-#: gnucash/report/reports/standard/equity-statement.scm:423
+#: gnucash/report/reports/standard/equity-statement.scm:425
 #: gnucash/report/reports/standard/income-statement.scm:481
-#: gnucash/report/reports/standard/trial-balance.scm:404
+#: gnucash/report/reports/standard/trial-balance.scm:405
 msgid "for Period"
 msgstr "für Buchungsperiode"
 
-#: gnucash/report/reports/standard/equity-statement.scm:450
-#: gnucash/report/reports/standard/equity-statement.scm:486
+#: gnucash/report/reports/standard/equity-statement.scm:452
+#: gnucash/report/reports/standard/equity-statement.scm:488
 msgid "Capital"
 msgstr "Kapital"
 
-#: gnucash/report/reports/standard/equity-statement.scm:461
+#: gnucash/report/reports/standard/equity-statement.scm:463
 msgid "Investments"
 msgstr "Investments"
 
-#: gnucash/report/reports/standard/equity-statement.scm:466
+#: gnucash/report/reports/standard/equity-statement.scm:468
 msgid "Withdrawals"
 msgstr "Abhebungen"
 
-#: gnucash/report/reports/standard/equity-statement.scm:479
+#: gnucash/report/reports/standard/equity-statement.scm:481
 msgid "Increase in capital"
 msgstr "Kapitalerhöhung"
 
-#: gnucash/report/reports/standard/equity-statement.scm:480
+#: gnucash/report/reports/standard/equity-statement.scm:482
 msgid "Decrease in capital"
 msgstr "Kapitalreduzierung"
 
 #: gnucash/report/reports/standard/general-journal.scm:94
 #: gnucash/report/reports/standard/general-ledger.scm:68
 #: gnucash/report/reports/standard/register.scm:135
-#: gnucash/report/reports/standard/register.scm:388
+#: gnucash/report/reports/standard/register.scm:359
 #: gnucash/report/trep-engine.scm:943 gnucash/report/trep-engine.scm:1071
 msgid "Num/Action"
 msgstr "Nummer/Aktion"
@@ -27163,7 +27164,7 @@ msgstr "Nummer/Aktion"
 #: gnucash/report/reports/standard/general-journal.scm:102
 #: gnucash/report/reports/standard/general-ledger.scm:82
 #: gnucash/report/reports/standard/general-ledger.scm:102
-#: gnucash/report/reports/standard/register.scm:441
+#: gnucash/report/reports/standard/register.scm:412
 #: gnucash/report/trep-engine.scm:958 gnucash/report/trep-engine.scm:1092
 #: gnucash/report/trep-engine.scm:1380
 msgid "Running Balance"
@@ -27172,7 +27173,7 @@ msgstr "Laufender Saldo"
 #: gnucash/report/reports/standard/general-journal.scm:103
 #: gnucash/report/reports/standard/general-ledger.scm:83
 #: gnucash/report/reports/standard/general-ledger.scm:103
-#: gnucash/report/reports/standard/register.scm:446
+#: gnucash/report/reports/standard/register.scm:417
 #: gnucash/report/trep-engine.scm:959
 msgid "Totals"
 msgstr "Gesamtsumme"
@@ -27502,8 +27503,8 @@ msgid ""
 msgstr "Summenzeile für die Devisenhandel-Konten anzeigen."
 
 #: gnucash/report/reports/standard/income-statement.scm:518
-#: libgnucash/engine/Account.cpp:4328 libgnucash/engine/Scrub.c:457
-#: libgnucash/engine/Scrub.c:522
+#: libgnucash/engine/Account.cpp:4328 libgnucash/engine/Scrub.c:472
+#: libgnucash/engine/Scrub.c:537
 msgid "Trading"
 msgstr "Devisenhandel"
 
@@ -27512,7 +27513,7 @@ msgid "Total Trading"
 msgstr "Gesamt Devisenhandel"
 
 #: gnucash/report/reports/standard/income-statement.scm:572
-#: gnucash/report/reports/standard/trial-balance.scm:572
+#: gnucash/report/reports/standard/trial-balance.scm:573
 msgid "Income Statement"
 msgstr "Ergebnisrechnung"
 
@@ -27620,14 +27621,14 @@ msgid "Location for Picture"
 msgstr "Speicherort für Bild"
 
 #: gnucash/report/reports/standard/invoice.scm:213
-#: gnucash/report/reports/standard/register.scm:383
+#: gnucash/report/reports/standard/register.scm:354
 #: gnucash/report/reports/standard/taxinvoice.scm:135
 #: gnucash/report/trep-engine.scm:940
 msgid "Display the date?"
 msgstr "Anzeigen des Datums?"
 
 #: gnucash/report/reports/standard/invoice.scm:218
-#: gnucash/report/reports/standard/register.scm:398
+#: gnucash/report/reports/standard/register.scm:369
 #: gnucash/report/trep-engine.scm:945
 msgid "Display the description?"
 msgstr "Anzeigen der Beschreibung?"
@@ -28127,7 +28128,7 @@ msgstr "Verkauf"
 
 #: gnucash/report/reports/standard/new-owner-report.scm:56
 #: gnucash/report/reports/standard/owner-report.scm:57
-#: gnucash/report/report-utilities.scm:104
+#: gnucash/report/report-utilities.scm:116
 msgid "Credits"
 msgstr "Haben"
 
@@ -28213,7 +28214,7 @@ msgid "Display the period credits column?"
 msgstr "Haben-Spalte pro Periode anzeigen?"
 
 #: gnucash/report/reports/standard/new-owner-report.scm:928
-#: gnucash/report/reports/standard/register.scm:442
+#: gnucash/report/reports/standard/register.scm:413
 #: gnucash/report/trep-engine.scm:958
 msgid "Display a running balance?"
 msgstr "Einen laufenden Saldo anzeigen."
@@ -28639,7 +28640,7 @@ msgid "Reconciliation Report"
 msgstr "Abgleichungsbericht"
 
 #: gnucash/report/reports/standard/register.scm:148
-#: gnucash/report/reports/standard/register.scm:417
+#: gnucash/report/reports/standard/register.scm:388
 #: libgnucash/engine/gnc-lot.c:779
 msgid "Lot"
 msgstr "Posten"
@@ -28652,97 +28653,97 @@ msgstr "Höhe der Belastung"
 msgid "Credit Value"
 msgstr "Höhe der Gutschrift"
 
-#: gnucash/report/reports/standard/register.scm:377
+#: gnucash/report/reports/standard/register.scm:348
 msgid "The title of the report."
 msgstr "Der Titel des Berichts."
 
-#: gnucash/report/reports/standard/register.scm:389
+#: gnucash/report/reports/standard/register.scm:360
 msgid "Display the check number/action?"
 msgstr "Anzeigen der Schecknummer/Aktion?"
 
-#: gnucash/report/reports/standard/register.scm:393
+#: gnucash/report/reports/standard/register.scm:364
 #: gnucash/report/trep-engine.scm:943 gnucash/report/trep-engine.scm:944
 msgid "Display the check number?"
 msgstr "Anzeigen der Schecknummer?"
 
-#: gnucash/report/reports/standard/register.scm:403
+#: gnucash/report/reports/standard/register.scm:374
 #: gnucash/report/trep-engine.scm:972
 msgid "Display the memo?"
 msgstr "Anzeigen des Buchungstexts?"
 
-#: gnucash/report/reports/standard/register.scm:408
+#: gnucash/report/reports/standard/register.scm:379
 msgid "Display the account?"
 msgstr "Konto anzeigen?"
 
-#: gnucash/report/reports/standard/register.scm:413
+#: gnucash/report/reports/standard/register.scm:384
 #: gnucash/report/trep-engine.scm:953
 msgid "Display the number of shares?"
 msgstr "Anzahl von Anteilen anzeigen?"
 
-#: gnucash/report/reports/standard/register.scm:418
+#: gnucash/report/reports/standard/register.scm:389
 msgid "Display the name of lot the shares are in?"
 msgstr "Bezeichnung des Loses anzeigen, in dem sich die Anteile befinden?"
 
-#: gnucash/report/reports/standard/register.scm:423
+#: gnucash/report/reports/standard/register.scm:394
 #: gnucash/report/trep-engine.scm:955
 msgid "Display the shares price?"
 msgstr "Den Anteilspreis anzeigen?"
 
-#: gnucash/report/reports/standard/register.scm:428
+#: gnucash/report/reports/standard/register.scm:399
 #: gnucash/report/trep-engine.scm:1017
 msgid "Display the amount?"
 msgstr "Betrag anzeigen?"
 
-#: gnucash/report/reports/standard/register.scm:431
+#: gnucash/report/reports/standard/register.scm:402
 #: gnucash/report/trep-engine.scm:1007 gnucash/report/trep-engine.scm:1021
 msgid "Single"
 msgstr "Einzel"
 
-#: gnucash/report/reports/standard/register.scm:431
+#: gnucash/report/reports/standard/register.scm:402
 #: gnucash/report/trep-engine.scm:1021
 msgid "Single Column Display."
 msgstr "Einspaltige Anzeige."
 
-#: gnucash/report/reports/standard/register.scm:432
+#: gnucash/report/reports/standard/register.scm:403
 #: gnucash/report/trep-engine.scm:1022
 msgid "Double"
 msgstr "Doppel"
 
-#: gnucash/report/reports/standard/register.scm:432
+#: gnucash/report/reports/standard/register.scm:403
 #: gnucash/report/trep-engine.scm:1022
 msgid "Two Column Display."
 msgstr "Zweispaltige Anzeige."
 
-#: gnucash/report/reports/standard/register.scm:437
+#: gnucash/report/reports/standard/register.scm:408
 msgid "Display the value in transaction currency?"
 msgstr "Werte in Buchungswährung anzeigen?"
 
-#: gnucash/report/reports/standard/register.scm:447
+#: gnucash/report/reports/standard/register.scm:418
 #: gnucash/report/trep-engine.scm:959
 msgid "Display the totals?"
 msgstr "Anzeigen der Gesamtsumme"
 
-#: gnucash/report/reports/standard/register.scm:586
+#: gnucash/report/reports/standard/register.scm:557
 msgid "Total Debits"
 msgstr "Gesamt Soll"
 
-#: gnucash/report/reports/standard/register.scm:588
+#: gnucash/report/reports/standard/register.scm:559
 msgid "Total Credits"
 msgstr "Gesamt Haben"
 
-#: gnucash/report/reports/standard/register.scm:590
+#: gnucash/report/reports/standard/register.scm:561
 msgid "Total Value Debits"
 msgstr "Gesamtwert Soll"
 
-#: gnucash/report/reports/standard/register.scm:592
+#: gnucash/report/reports/standard/register.scm:563
 msgid "Total Value Credits"
 msgstr "Gesamtwert Haben"
 
-#: gnucash/report/reports/standard/register.scm:595
+#: gnucash/report/reports/standard/register.scm:566
 msgid "Net Change"
 msgstr "Netto-Änderung"
 
-#: gnucash/report/reports/standard/register.scm:597
+#: gnucash/report/reports/standard/register.scm:568
 msgid "Value Change"
 msgstr "Gesamtwert Änderung"
 
@@ -28998,7 +28999,7 @@ msgstr ""
 "Vorlage)"
 
 #: gnucash/report/reports/standard/trial-balance.scm:61
-#: gnucash/report/reports/standard/trial-balance.scm:569
+#: gnucash/report/reports/standard/trial-balance.scm:570
 msgid "Trial Balance"
 msgstr "Rohbilanz"
 
@@ -29104,15 +29105,15 @@ msgstr "Arbeitsblatt"
 msgid "Creates a complete end-of-period work sheet"
 msgstr "Erstellt ein vollständiges Arbeitsblatt zum Periodenende"
 
-#: gnucash/report/reports/standard/trial-balance.scm:570
+#: gnucash/report/reports/standard/trial-balance.scm:571
 msgid "Adjustments"
 msgstr "Anpassungsbuchungen"
 
-#: gnucash/report/reports/standard/trial-balance.scm:571
+#: gnucash/report/reports/standard/trial-balance.scm:572
 msgid "Adjusted Trial Balance"
 msgstr "Angepasste Rohbilanz"
 
-#: gnucash/report/reports/standard/trial-balance.scm:860
+#: gnucash/report/reports/standard/trial-balance.scm:861
 msgid "Net Loss"
 msgstr "Nettoverlust"
 
@@ -29154,7 +29155,7 @@ msgid "Equity Accounts"
 msgstr "Eigenkapital"
 
 #: gnucash/report/reports/support/balsheet-eg.eguile.scm:182
-#: gnucash/report/report-utilities.scm:119
+#: gnucash/report/report-utilities.scm:131
 msgid "Trading Accounts"
 msgstr "Devisenhandel-Konten"
 
@@ -29203,58 +29204,58 @@ msgstr "Webseite"
 msgid "Invoice Date"
 msgstr "Rechnungsdatum"
 
-#: gnucash/report/report-utilities.scm:107
+#: gnucash/report/report-utilities.scm:119
 msgid "Stocks"
 msgstr "Aktienkonten"
 
-#: gnucash/report/report-utilities.scm:108
+#: gnucash/report/report-utilities.scm:120
 msgid "Mutual Funds"
 msgstr "Investmentfonds"
 
-#: gnucash/report/report-utilities.scm:109
+#: gnucash/report/report-utilities.scm:121
 #: libgnucash/engine/gnc-commodity.h:116
 msgid "Currencies"
 msgstr "Währungen"
 
-#: gnucash/report/report-utilities.scm:112
+#: gnucash/report/report-utilities.scm:124
 msgid "Equities"
 msgstr "Eigenkapital"
 
-#: gnucash/report/report-utilities.scm:113
+#: gnucash/report/report-utilities.scm:125
 msgid "Checking"
 msgstr "Girokonto"
 
-#: gnucash/report/report-utilities.scm:114
+#: gnucash/report/report-utilities.scm:126
 msgid "Savings"
 msgstr "Sparkonten"
 
-#: gnucash/report/report-utilities.scm:115
+#: gnucash/report/report-utilities.scm:127
 msgid "Money Market"
 msgstr "Geldmarktfond"
 
-#: gnucash/report/report-utilities.scm:116
+#: gnucash/report/report-utilities.scm:128
 msgid "Accounts Receivable"
 msgstr "Forderungen Konten"
 
-#: gnucash/report/report-utilities.scm:117
+#: gnucash/report/report-utilities.scm:129
 msgid "Accounts Payable"
 msgstr "Verbindlichkeiten Konten"
 
-#: gnucash/report/report-utilities.scm:118
+#: gnucash/report/report-utilities.scm:130
 msgid "Credit Lines"
 msgstr "Kreditrahmen"
 
-#: gnucash/report/report-utilities.scm:618
+#: gnucash/report/report-utilities.scm:630
 #, scheme-format
 msgid "Building '~a' report ..."
 msgstr "Bericht »~a« berechnen..."
 
-#: gnucash/report/report-utilities.scm:624
+#: gnucash/report/report-utilities.scm:636
 #, scheme-format
 msgid "Rendering '~a' report ..."
 msgstr "Bericht »~a« darstellen..."
 
-#: gnucash/report/report-utilities.scm:626
+#: gnucash/report/report-utilities.scm:638
 msgid "Untitled"
 msgstr "Ohne Titel"
 
@@ -30852,6 +30853,24 @@ msgstr ""
 msgid "No exchange rate available in SX [%s] for %s -> %s, value is zero."
 msgstr "Kein Umtauschkurs verfügbar in SX [%s] für %s -> %s, Wert ist Null."
 
+#: libgnucash/app-utils/gnc-ui-balances.c:407
+msgid "Account is already at Auto-Clear Balance."
+msgstr ""
+
+#: libgnucash/app-utils/gnc-ui-balances.c:451
+msgid "Too many uncleared splits"
+msgstr ""
+
+#: libgnucash/app-utils/gnc-ui-balances.c:467
+msgid "The selected amount cannot be cleared."
+msgstr "Der gewählte Betrag kann nicht automatisch abgeglichen werden."
+
+#: libgnucash/app-utils/gnc-ui-balances.c:473
+msgid "Cannot uniquely clear splits. Found multiple possibilities."
+msgstr ""
+"Automatisches Abgleichen kann nicht die Buchungsteile nicht eindeutig "
+"bestimmen."
+
 #. Translators: This and the following strings appear on
 #. * the account tab if the Tax Info column is displayed,
 #. * i.e. if the user wants to record the tax form number
@@ -30977,7 +30996,7 @@ msgstr ""
 "der neueren ~a Optionen '~a' ist nicht verfügbar, Ausweichen auf die Option "
 "'~a'."
 
-#: libgnucash/app-utils/option-util.c:1696
+#: libgnucash/app-utils/option-util.c:1663
 #, c-format
 msgid ""
 "There is a problem with option %s:%s.\n"
@@ -30986,7 +31005,7 @@ msgstr ""
 "Es gibt ein Problem mit der Einstellung %s:%s.\n"
 "%s"
 
-#: libgnucash/app-utils/option-util.c:1697
+#: libgnucash/app-utils/option-util.c:1664
 msgid "Invalid option value"
 msgstr "Ungültiger Wert einer Option"
 
@@ -31294,7 +31313,7 @@ msgstr "%s %s"
 msgid "Unknown, %d-size list."
 msgstr "Unbekannt, Liste mit %d Einträgen."
 
-#: libgnucash/engine/ScrubBusiness.c:547
+#: libgnucash/engine/ScrubBusiness.c:548
 msgid ""
 "Please delete this transaction. Explanation at https://wiki.gnucash.org/wiki/"
 "Business_Features_Issues#Double_posting"
@@ -31302,7 +31321,7 @@ msgstr ""
 "Bitte löschen sie diese Buchung. Die (englische) Erklärung befindet sich in "
 "https://wiki.gnucash.org/wiki/Business_Features_Issues#Double_posting"
 
-#: libgnucash/engine/ScrubBusiness.c:563
+#: libgnucash/engine/ScrubBusiness.c:564
 msgid ""
 "Please delete this transaction. Explanation at https://wiki.gnucash.org/wiki/"
 "Business_Features_Issues#I_can.27t_delete_a_transaction_of_type_.22I.22_from_the_AR.2FAP_account"
@@ -31312,22 +31331,22 @@ msgstr ""
 "Business_Features_Issues#I_can.27t_delete_a_transaction_of_type_.22I.22_from_the_AR.2FAP_account"
 
 # Fixme: Bessere Lösung für die nächsten 2?
-#: libgnucash/engine/ScrubBusiness.c:614
+#: libgnucash/engine/ScrubBusiness.c:615
 #, c-format
 msgid "Checking business lots in account %s: %u of %u"
 msgstr "Überprüfe geschäftliche Posten im Konto %s: %u von %u"
 
-#: libgnucash/engine/ScrubBusiness.c:664
+#: libgnucash/engine/ScrubBusiness.c:669
 #, c-format
 msgid "Checking business splits in account %s: %u of %u"
 msgstr "Überprüfe geschäftliche Buchungsteile im Konto %s: %u von %u"
 
-#: libgnucash/engine/Scrub.c:124
+#: libgnucash/engine/Scrub.c:134
 #, c-format
 msgid "Looking for orphans in account %s: %u of %u"
 msgstr "Suche nach verwaisten Buchungen im Konto %s: %u von %u"
 
-#: libgnucash/engine/Scrub.c:329
+#: libgnucash/engine/Scrub.c:344
 #, c-format
 msgid "Looking for imbalances in account %s: %u of %u"
 msgstr "Suche nach unausgeglichenen Buchungen im Konto %s: %u von %u"
@@ -31349,3 +31368,12 @@ msgstr "Buchung ungültig gemacht"
 #: libgnucash/tax/us/txf.scm:98
 msgid "No help available."
 msgstr "Keine Hilfe verfügbar."
+
+#~ msgid "Searching for splits to clear ..."
+#~ msgstr "Buchungsteile zum Abgleichen werden gesucht..."
+
+#~ msgid "<b>Auto-Clear Information</b>"
+#~ msgstr "<b>Information zum automatischen Kontenabgleich</b>"
+
+#~ msgid "Exchange rates"
+#~ msgstr "Wechselkurse"

commit 0862143b9950705d9bc6d70c0f7fbbf9ef1e6f9b
Author: Christopher Lam <christopher.lck at gmail.com>
Date:   Tue Oct 27 06:47:37 2020 +0800

    Use gnc:ngettext to pluralise strings

diff --git a/gnucash/report/html-utilities.scm b/gnucash/report/html-utilities.scm
index 50629e01d..fc8b80ead 100644
--- a/gnucash/report/html-utilities.scm
+++ b/gnucash/report/html-utilities.scm
@@ -210,9 +210,10 @@
   (issue-deprecation-warning
    "gnc:html-make-exchangerates is deprecated. use gnc:html-make-rates-table instead.")
   (let ((comm-list (gnc:accounts-get-commodities accounts common-commodity))
+        (entries (length comm-list))
         (markup (lambda (c) (gnc:make-html-table-cell/markup "number-cell" c)))
         (table (gnc:make-html-table)))
-    (unless (null? comm-list)
+    (unless (= 0 entries)
       (for-each
        (lambda (commodity)
          (let* ((orig-amt (gnc:make-gnc-monetary commodity 1))
@@ -225,9 +226,7 @@
        comm-list)
       (gnc:html-table-set-col-headers!
        table (list (gnc:make-html-table-header-cell/size
-                    1 2 (if (null? (cdr comm-list))
-                            (G_ "Exchange rate")
-                            (G_ "Exchange rates"))))))
+                    1 2 (NG_ "Exchange rate" "Exchange rates" entries)))))
     table))
 
 ;; Create a html-table of all prices. The report-currency is
@@ -244,8 +243,7 @@
        (unless (zero? entries)
          (gnc:html-table-set-col-headers!
           table (list (gnc:make-html-table-header-cell/size
-                       1 2 (if (= entries 1) (G_ "Exchange rate")
-                               (G_ "Exchange rates"))))))
+                       1 2 (NG_ "Exchange rate" "Exchange rates" entries)))))
        table)
       ((comm . rest)
        (gnc:html-table-append-row!

commit 6d6eff6b70fd3a5c708e847d093959ef71d04b86
Author: Christopher Lam <christopher.lck at gmail.com>
Date:   Tue Oct 27 06:47:07 2020 +0800

    Expose ngettext as gnc:ngettext

diff --git a/bindings/core-utils.i b/bindings/core-utils.i
index 27976f213..288e5c1d6 100644
--- a/bindings/core-utils.i
+++ b/bindings/core-utils.i
@@ -157,6 +157,9 @@ gchar *gnc_locale_name (void);
 
 }
 
+%rename ("gnc:ngettext") ngettext;
+extern const char* ngettext (const char *msgid1, const char *msgid2,
+                             unsigned long int n);
 %rename ("gnc:gettext") gettext;
 extern const char* gettext(const char*);
 %rename ("gnc:C_gettext") wrap_C_;
diff --git a/bindings/guile/core-utils.scm b/bindings/guile/core-utils.scm
index c08643cf1..58685cee0 100644
--- a/bindings/guile/core-utils.scm
+++ b/bindings/guile/core-utils.scm
@@ -27,6 +27,7 @@
 (define-module (gnucash core-utils)
   #:export (N_
             G_
+            NG_
             C_
             gnc:string-locale<?
             gnc:string-locale>?
@@ -46,6 +47,7 @@
 
 ;; gettext functions
 (define G_ gnc:gettext)
+(define NG_ gnc:ngettext)
 (define C_ gnc:C-gettext)
 (define-syntax-rule (N_ x) x)
 
diff --git a/po/gnucash-pot.cmake b/po/gnucash-pot.cmake
index d9c1e31f6..f59dba9ad 100644
--- a/po/gnucash-pot.cmake
+++ b/po/gnucash-pot.cmake
@@ -24,6 +24,7 @@ execute_process(
                         --keyword=Q_:1g
                         --keyword=G_
                         --keyword=N_
+                        --keyword=NG_:1,2
                         --keyword=C_:1c,2
                         --keyword=NC_:1c,2
                         --keyword=translate:1,1t

commit e7a3ec56318d8a6a7cdcae4cfc618de3b1863847
Merge: 5ced41746 7e6cb470f
Author: Christopher Lam <christopher.lck at gmail.com>
Date:   Mon Nov 2 09:08:53 2020 +0800

    Merge branch 'maint-797989' into maint #807
    
    * Introduce gnc:string-locale<? and gnc:string-locale>?
    * Deprecates a few engine.scm functions
    * Fix sorting to be locale-sensitive where possible


commit 5ced417467c41138f3c0e94d6dd2d7185b7553d6
Author: John Ralls <jralls at ceridwen.us>
Date:   Sun Nov 1 16:32:09 2020 -0800

    Bug 797994 - Account type-ahead search doesn't match accented...
    
    characters.
    
    Because of normalizing the account name but not the search pattern.

diff --git a/gnucash/register/register-gnome/combocell-gnome.c b/gnucash/register/register-gnome/combocell-gnome.c
index 27add82e7..27fd7c799 100644
--- a/gnucash/register/register-gnome/combocell-gnome.c
+++ b/gnucash/register/register-gnome/combocell-gnome.c
@@ -536,7 +536,8 @@ gnc_combo_cell_type_ahead_search (const gchar* newval,
     GRegex* regex0 = g_regex_new (escaped_sep, 0, 0, NULL);
     char* rep_str = g_regex_replace_literal (regex0, escaped_newval, -1, 0,
                                              newval_rep, 0, NULL);
-    GRegex *regex = g_regex_new (rep_str, G_REGEX_CASELESS, 0, NULL);
+    char* normal_rep_str = g_utf8_normalize (rep_str, -1, G_NORMALIZE_ALL);
+    GRegex *regex = g_regex_new (normal_rep_str, G_REGEX_CASELESS, 0, NULL);
 
     gboolean valid = gtk_tree_model_get_iter_first (GTK_TREE_MODEL (full_store),
                                                     &iter);
@@ -546,6 +547,7 @@ gnc_combo_cell_type_ahead_search (const gchar* newval,
      */
     static const gint MAX_NUM_MATCHES = 30;
 
+    g_free (normal_rep_str);
     g_free (rep_str);
     g_free (newval_rep);
     g_free (escaped_sep);

commit ccc653186c11908f42ce13f3e0d3f30f585d78ee
Author: Christopher Lam <christopher.lck at gmail.com>
Date:   Sun Nov 1 21:02:14 2020 +0800

    [dialog-tax-table.c] free GList after use

diff --git a/gnucash/gnome-utils/dialog-tax-table.c b/gnucash/gnome-utils/dialog-tax-table.c
index b78778b7a..803eed3c4 100644
--- a/gnucash/gnome-utils/dialog-tax-table.c
+++ b/gnucash/gnome-utils/dialog-tax-table.c
@@ -409,6 +409,9 @@ tax_table_entries_refresh (TaxTableWindow *ttw)
         g_free (row_text[1]);
     }
 
+    if (list)
+        g_list_free (list);
+
     if (reference)
     {
         path = gtk_tree_row_reference_get_path (reference);

commit 7e6cb470f160b55c694a6676a594774c25fb3d1b
Author: Christopher Lam <christopher.lck at gmail.com>
Date:   Tue Oct 27 21:51:00 2020 +0800

    Bug 797989 - Sorting columns by alphabet with non-ASCII characters
    
    use gnc:string-locale for string sorting

diff --git a/gnucash/gnome/report-menus.scm b/gnucash/gnome/report-menus.scm
index c230ed08e..4eb08fa28 100644
--- a/gnucash/gnome/report-menus.scm
+++ b/gnucash/gnome/report-menus.scm
@@ -65,7 +65,7 @@
            (gnc-main-window-open-report
             (gnc:make-report report-guid) window))))))
    (sort (filter (compose gnc:report-template-in-menu? cdr) *template-items*)
-         (lambda (a b) (string>? (car a) (car b))))))
+         (lambda (a b) (gnc:string-locale>? (car a) (car b))))))
 
 (define (gnc:report-menu-setup)
   (define asset-liability-menu
diff --git a/gnucash/import-export/qif-imp/qif-dialog-utils.scm b/gnucash/import-export/qif-imp/qif-dialog-utils.scm
index ad6aa53f9..abddb2e84 100644
--- a/gnucash/import-export/qif-imp/qif-dialog-utils.scm
+++ b/gnucash/import-export/qif-imp/qif-dialog-utils.scm
@@ -412,8 +412,8 @@
     (set! retval
           (sort retval
                 (lambda (a b)
-                  (string<? (qif-map-entry:qif-name a)
-                            (qif-map-entry:qif-name b)))))
+                  (gnc:string-locale<? (qif-map-entry:qif-name a)
+                                       (qif-map-entry:qif-name b)))))
     retval))
 
 
@@ -532,8 +532,8 @@
     ;; sort by qif account name
     (set! retval (sort retval
                        (lambda (a b)
-                         (string<? (qif-map-entry:qif-name a)
-                                   (qif-map-entry:qif-name b)))))
+                         (gnc:string-locale<? (qif-map-entry:qif-name a)
+                                              (qif-map-entry:qif-name b)))))
     retval))
 
 ;; this one's like the other display builders, it just looks at the
@@ -624,8 +624,8 @@
     ;; sort by qif memo/payee name
     (set! retval (sort retval
                        (lambda (a b)
-                         (string<? (qif-map-entry:qif-name a)
-                                   (qif-map-entry:qif-name b)))))
+                         (gnc:string-locale<? (qif-map-entry:qif-name a)
+                                              (qif-map-entry:qif-name b)))))
     retval))
 
 
@@ -826,7 +826,7 @@
      #f acct-hash)
 
     (if (not (null? names))
-        (sort names string<?)
+        (sort names gnc:string-locale<?)
         #f)))
 
 ;; this is used within the dialog to get a list of all the new
@@ -867,7 +867,7 @@
                           (loop (car tree-left) (cdr tree-left))
                           (set! newtree (cons (cvt-to-tree path new?)
                                               newtree))))))
-              (sort newtree (lambda (a b) (string<? (car a) (car b))))))))
+              (sort newtree (lambda (a b) (gnc:string-locale<? (car a) (car b))))))))
 
 
   (let ((accts '())
diff --git a/gnucash/report/html-acct-table.scm b/gnucash/report/html-acct-table.scm
index 7871e4581..ae18decef 100644
--- a/gnucash/report/html-acct-table.scm
+++ b/gnucash/report/html-acct-table.scm
@@ -528,14 +528,14 @@
 
 ;; some useful predicates to export
 (define (gnc:account-code-less-p a b)
-  (string<? (xaccAccountGetCode a)
-	    (xaccAccountGetCode b)))
+  (gnc:string-locale<? (xaccAccountGetCode a)
+                       (xaccAccountGetCode b)))
 (define (gnc:account-name-less-p a b)
-  (string<? (xaccAccountGetName a)
-	    (xaccAccountGetName b)))
+  (gnc:string-locale<? (xaccAccountGetName a)
+                       (xaccAccountGetName b)))
 (define (gnc:account-path-less-p a b)
-  (string<? (gnc-account-get-full-name a)
-	    (gnc-account-get-full-name b)))
+  (gnc:string-locale<? (gnc-account-get-full-name a)
+                       (gnc-account-get-full-name b)))
 
 
 (define (gnc:html-acct-table-add-accounts! acct-table accounts)
diff --git a/gnucash/report/html-style-sheet.scm b/gnucash/report/html-style-sheet.scm
index afd3322d9..1d0d4dff0 100644
--- a/gnucash/report/html-style-sheet.scm
+++ b/gnucash/report/html-style-sheet.scm
@@ -201,14 +201,14 @@
 (define (gnc:get-html-style-sheets)
   (sort (map cdr (hash-map->list cons *gnc:_style-sheets_*))
         (lambda (a b)
-          (string<? (gnc:html-style-sheet-name a)
-                    (gnc:html-style-sheet-name b)))))
+          (gnc:string-locale<? (gnc:html-style-sheet-name a)
+                               (gnc:html-style-sheet-name b)))))
 
 (define (gnc:get-html-templates)
   (sort (map cdr (hash-map->list cons *gnc:_style-sheet-templates_*))
         (lambda (a b)
-          (string<? (gnc:html-style-sheet-template-name a)
-                    (gnc:html-style-sheet-template-name b)))))
+          (gnc:string-locale<? (gnc:html-style-sheet-template-name a)
+                               (gnc:html-style-sheet-template-name b)))))
 
 (define (gnc:html-style-sheet-find tname)
   (hash-ref *gnc:_style-sheets_* tname))
diff --git a/gnucash/report/report-core.scm b/gnucash/report/report-core.scm
index fe596f568..649bdc1b3 100644
--- a/gnucash/report/report-core.scm
+++ b/gnucash/report/report-core.scm
@@ -777,7 +777,8 @@ not found.")))
           (lambda (k v p) (if (gnc:report-template-in-menu? v) (cons v p) p))
           '() *gnc:_report-templates_*)
          (lambda (a b)
-           (string<? (gnc:report-template-name a) (gnc:report-template-name b))))))
+           (gnc:string-locale<? (gnc:report-template-name a)
+                                (gnc:report-template-name b))))))
 
 (define-public (gnc:cmdline-report-show report port)
   (let ((templates (reportname->templates report)))
diff --git a/gnucash/report/report-utilities.scm b/gnucash/report/report-utilities.scm
index 405af4d02..d3eb1d69d 100644
--- a/gnucash/report/report-utilities.scm
+++ b/gnucash/report/report-utilities.scm
@@ -138,8 +138,8 @@
 	  (sort-and-delete-duplicates
            (map xaccAccountGetCommodity accounts)
            (lambda (a b)
-             (string<? (gnc-commodity-get-unique-name a)
-                       (gnc-commodity-get-unique-name b)))
+             (gnc:string-locale<? (gnc-commodity-get-unique-name a)
+                                  (gnc-commodity-get-unique-name b)))
            gnc-commodity-equiv)))
 
 
diff --git a/gnucash/report/reports/standard/account-piecharts.scm b/gnucash/report/reports/standard/account-piecharts.scm
index 19d30067d..42f4a4669 100644
--- a/gnucash/report/reports/standard/account-piecharts.scm
+++ b/gnucash/report/reports/standard/account-piecharts.scm
@@ -209,12 +209,12 @@ balance at a given time"))
   (cond
    ((eq? sort-method 'acct-code)
     (lambda (a b)
-      (string<? (xaccAccountGetCode (cadr a))
-                (xaccAccountGetCode (cadr b)))))
+      (gnc:string-locale<? (xaccAccountGetCode (cadr a))
+                           (xaccAccountGetCode (cadr b)))))
    ((eq? sort-method 'alphabetical)
     (lambda (a b)
-      (string<? (display-name-accounts show-fullname? (cadr a))
-                (display-name-accounts show-fullname? (cadr b)))))
+      (gnc:string-locale<? (display-name-accounts show-fullname? (cadr a))
+                           (display-name-accounts show-fullname? (cadr b)))))
    (else
     (lambda (a b) (> (car a) (car b))))))
 
@@ -223,12 +223,12 @@ balance at a given time"))
   (cond
    ((eq? sort-method 'acct-code)
     (lambda (a b)
-      (string<? (gnc-commodity-get-mnemonic (cadr a))
-                (gnc-commodity-get-mnemonic (cadr b)))))
+      (gnc:string-locale<? (gnc-commodity-get-mnemonic (cadr a))
+                           (gnc-commodity-get-mnemonic (cadr b)))))
    ((eq? sort-method 'alphabetical)
     (lambda (a b)
-      (string<? (display-name-security show-fullname? (cadr a))
-                (display-name-security show-fullname? (cadr b)))))
+      (gnc:string-locale<? (display-name-security show-fullname? (cadr a))
+                           (display-name-security show-fullname? (cadr b)))))
    (else
     (lambda (a b) (> (car a) (car b))))))
 
diff --git a/gnucash/report/reports/standard/category-barchart.scm b/gnucash/report/reports/standard/category-barchart.scm
index a8523b2e4..fc85be08c 100644
--- a/gnucash/report/reports/standard/category-barchart.scm
+++ b/gnucash/report/reports/standard/category-barchart.scm
@@ -479,14 +479,14 @@ developing over time"))
                ((alphabetical)
                 (lambda (a b)
                   (if show-fullname?
-                      (string<? (gnc-account-get-full-name (car a))
-                                (gnc-account-get-full-name (car b)))
-                      (string<? (xaccAccountGetName (car a))
-                                (xaccAccountGetName (car b))))))
+                      (gnc:string-locale<? (gnc-account-get-full-name (car a))
+                                           (gnc-account-get-full-name (car b)))
+                      (gnc:string-locale<? (xaccAccountGetName (car a))
+                                           (xaccAccountGetName (car b))))))
                ((acct-code)
                 (lambda (a b)
-                  (string<? (xaccAccountGetCode (car a))
-                            (xaccAccountGetCode (car b)))))
+                  (gnc:string-locale<? (xaccAccountGetCode (car a))
+                                       (xaccAccountGetCode (car b)))))
                ((amount)
                 (lambda (a b)
                   (> (gnc:gnc-monetary-amount (apply gnc:monetary+ (cadr a)))
diff --git a/gnucash/report/reports/standard/customer-summary.scm b/gnucash/report/reports/standard/customer-summary.scm
index d89986e65..1f2f9aa0e 100644
--- a/gnucash/report/reports/standard/customer-summary.scm
+++ b/gnucash/report/reports/standard/customer-summary.scm
@@ -406,7 +406,9 @@
         ;; Stable-sort the sortingtable according to column, then
         ;; stable-sort according to currency. This results in group-by
         ;; currency then sort by columns.
-        (let* ((str-op (if (eq? sort-order 'descend) string>? string<?))
+        (let* ((str-op (if (eq? sort-order 'descend)
+                           gnc:string-locale>?
+                           gnc:string-locale<?))
                (op (if (eq? sort-order 'descend) > <)))
           (define (<? key)
             (case key
@@ -421,7 +423,7 @@
                   (else (str-op (vector-ref a 0) (vector-ref b 0))))))
               ;; currency sorting always alphabetical a-z
               ((currency)
-               (lambda (a b) (string<?
+               (lambda (a b) (gnc:string-locale<?
                               (gnc-commodity-get-mnemonic (vector-ref a 1))
                               (gnc-commodity-get-mnemonic (vector-ref b 1)))))
               ((markup)
diff --git a/gnucash/report/reports/standard/new-aging.scm b/gnucash/report/reports/standard/new-aging.scm
index fadfb6864..f983a680c 100644
--- a/gnucash/report/reports/standard/new-aging.scm
+++ b/gnucash/report/reports/standard/new-aging.scm
@@ -218,7 +218,7 @@ exist but have no suitable transactions."))
       (match-let* (((own1 aging1 aging-total1) a)
                    ((own2 aging2 aging-total2) b)
                    (increasing? (eq? sort-order 'increasing))
-                   (op-str (if increasing? string<? string>?))
+                   (op-str (if increasing? gnc:string-locale<? gnc:string-locale>?))
                    (op-num (if increasing? < >)))
         (case sort-by
           ((name)  (op-str (gncOwnerGetName own1) (gncOwnerGetName own2)))
diff --git a/gnucash/report/trep-engine.scm b/gnucash/report/trep-engine.scm
index 894505083..5e6d5fe0e 100644
--- a/gnucash/report/trep-engine.scm
+++ b/gnucash/report/trep-engine.scm
@@ -2089,7 +2089,7 @@ warning will be removed in GnuCash 5.0"))
              (value-of-X (comparator-function split-X))
              (value-of-Y (comparator-function split-Y))
              (op (if (string? value-of-X)
-                     (if ascend? string<? string>?)
+                     (if ascend? gnc:string-locale<? gnc:string-locale>?)
                      (if ascend? < >))))
         (and value-of-X (op value-of-X value-of-Y))))
 
@@ -2245,7 +2245,7 @@ warning will be removed in GnuCash 5.0"))
           (when subtotal-table?
             (let* ((generic<?
                     (lambda (a b)
-                      (cond ((string? (car a)) (string<? (car a) (car b)))
+                      (cond ((string? (car a)) (gnc:string-locale<? (car a) (car b)))
                             ((number? (car a)) (< (car a) (car b)))
                             (else (gnc:error "unknown sortvalue")))))
                    (list-of-rows

commit 8628ffa957b0e9446a6ff62df2cfd949a2107172
Author: Christopher Lam <christopher.lck at gmail.com>
Date:   Fri Oct 30 19:54:06 2020 +0800

    3/3 [engine.scm] deprecate scheme utility functions

diff --git a/bindings/guile/engine.scm b/bindings/guile/engine.scm
index da91cf47c..6b74ed3b5 100644
--- a/bindings/guile/engine.scm
+++ b/bindings/guile/engine.scm
@@ -81,20 +81,24 @@
 
 ;; A few account related utility functions which used to be in engine-utilities.scm
 (define (gnc:account-map-descendants thunk account)
+  (issue-deprecation-warning "gnc:account-map-descendants is deprecated.")
         (let ((descendants (or (gnc-account-get-descendants-sorted account) '())))
              (map thunk descendants)))
 
 (define (gnc:account-map-children thunk account)
+  (issue-deprecation-warning "gnc:account-map-children is deprecated.")
         (let ((children (or (gnc-account-get-children-sorted account) '())))
              (map thunk children)))
 
 ;; account related functions
 ;; helper for sorting of account list
 (define (account-full-name<? a b)
+  (issue-deprecation-warning "account-full-name<? is deprecated. use gnc:account-full-name<? instead.")
         (string<? (gnc-account-get-full-name a) (gnc-account-get-full-name b)))
 
 ;; return maximum depth over accounts and their children, if any
 (define (accounts-get-children-depth accounts)
+  (issue-deprecation-warning "accounts-get-children-depth is deprecated. use gnc:accounts-get-children-depth instead.")
         (apply max
             (map (lambda (acct)
                          (let ((acct-depth (gnc-account-get-current-depth acct)))

commit 6637d6d2101c1113a001fbf8d4f0fad1fc5f51c9
Author: Christopher Lam <christopher.lck at gmail.com>
Date:   Fri Oct 30 19:53:49 2020 +0800

    2/3 [taxtxf] inline single-use scheme function from engine.scm

diff --git a/gnucash/report/reports/locale-specific/de_DE/taxtxf.scm b/gnucash/report/reports/locale-specific/de_DE/taxtxf.scm
index cd2fd5faf..7048ee854 100644
--- a/gnucash/report/reports/locale-specific/de_DE/taxtxf.scm
+++ b/gnucash/report/reports/locale-specific/de_DE/taxtxf.scm
@@ -471,9 +471,8 @@
 		 (txf-special-split? (gnc:account-get-txf-code account)))
 	    (+ gen 1)		; Est Fed Tax has a extra generation
 	    gen)	       		; no kids, return input
-	(apply max (gnc:account-map-children
-		    (lambda (x) (num-generations x (+ 1 gen)))
-		    account))))
+	(apply max (map (lambda (x) (num-generations x (1+ gen)))
+                        (or (gnc-account-get-children-sorted account) '())))))
 
   (gnc:report-starting reportname)
   (let* ((from-value (gnc:date-option-absolute-time 

commit a10c084022bca8e47755ebe50eccbfd0fca1b298
Author: Christopher Lam <christopher.lck at gmail.com>
Date:   Fri Oct 30 19:52:42 2020 +0800

    1/3 [report-utilities][API] copy funcs engine.scm to report-utilities.scm
    
    The following copied from similarly named functions in libgnucash
    
    gnc:account-full-name<?
    gnc:accounts-get-children-depth

diff --git a/gnucash/report/report-utilities.scm b/gnucash/report/report-utilities.scm
index 2571a52df..405af4d02 100644
--- a/gnucash/report/report-utilities.scm
+++ b/gnucash/report/report-utilities.scm
@@ -56,6 +56,18 @@
   (let ((type (xaccAccountGetType account)))
     (member type (list ACCT-TYPE-STOCK ACCT-TYPE-MUTUAL))))
 
+;; account related functions
+;; helper for sorting of account list
+(define (gnc:account-full-name<? a b)
+  (gnc:string-locale<? (gnc-account-get-full-name a) (gnc-account-get-full-name b)))
+
+(define (gnc:accounts-get-children-depth accounts)
+  (1- (apply max
+             (map (lambda (acct)
+                    (+ (gnc-account-get-current-depth acct)
+                       (gnc-account-get-tree-depth acct)))
+                  accounts))))
+
 ;; True if the account is of type income or expense
 
 (define (gnc:account-is-inc-exp? account)
diff --git a/gnucash/report/report.scm b/gnucash/report/report.scm
index 8444da85c..44956efe2 100644
--- a/gnucash/report/report.scm
+++ b/gnucash/report/report.scm
@@ -672,6 +672,8 @@
 (export gnc:account-has-shares?)
 (export gnc:account-is-stock?)
 (export gnc:account-is-inc-exp?)
+(export gnc:account-full-name<?)
+(export gnc:accounts-get-children-depth)
 (export gnc:filter-accountlist-type)
 (export gnc:decompose-accountlist)
 (export gnc:account-get-type-string-plural)
diff --git a/gnucash/report/reports/standard/budget.scm b/gnucash/report/reports/standard/budget.scm
index 8a7e7942e..9da3133ad 100644
--- a/gnucash/report/reports/standard/budget.scm
+++ b/gnucash/report/reports/standard/budget.scm
@@ -717,7 +717,7 @@
 
      (else
       (let* ((tree-depth (if (eq? display-depth 'all)
-                             (accounts-get-children-depth accounts)
+                             (gnc:accounts-get-children-depth accounts)
                              display-depth))
              (to-period-val (lambda (v)
                               (inexact->exact
@@ -732,7 +732,7 @@
                    (list 'zero-balance-mode
                          (if show-zb-accts? 'show-leaf-acct 'omit-leaf-acct))
                    (list 'report-budget budget)))
-             (accounts (sort accounts account-full-name<?))
+             (accounts (sort accounts gnc:account-full-name<?))
              (accumulate? (get-option gnc:pagename-general optname-accumulate))
              (acct-table (gnc:make-html-acct-table/env/accts env accounts))
              (footnotes (make-footnote-collector))
diff --git a/gnucash/report/reports/standard/cash-flow.scm b/gnucash/report/reports/standard/cash-flow.scm
index 2379e1885..1dd900e6f 100644
--- a/gnucash/report/reports/standard/cash-flow.scm
+++ b/gnucash/report/reports/standard/cash-flow.scm
@@ -158,7 +158,7 @@
          (accounts (if show-subaccts?
                        (gnc:accounts-and-all-descendants accounts)
                        accounts))
-         (accounts (sort accounts account-full-name<?)))
+         (accounts (sort accounts gnc:account-full-name<?)))
 
     (define (add-accounts-flow accounts accounts-alist)
       (let loop ((accounts accounts)
@@ -193,7 +193,7 @@
     (if (not (null? accounts))
 
         (let* ((tree-depth (if (equal? display-depth 'all)
-                               (accounts-get-children-depth accounts)
+                               (gnc:accounts-get-children-depth accounts)
                                display-depth))
                (account-disp-list
                 (map
@@ -242,12 +242,12 @@
                                (cons 'to-report-currency to-report-currency)))))
             (let ((money-in-accounts (sort
                                       (cdr (assq 'money-in-accounts result))
-                                      account-full-name<?))
+                                      gnc:account-full-name<?))
                   (money-in-alist (cdr (assq 'money-in-alist result)))
                   (money-in-collector (cdr (assq 'money-in-collector result)))
                   (money-out-accounts (sort
                                        (cdr (assq 'money-out-accounts result))
-                                       account-full-name<?))
+                                       gnc:account-full-name<?))
                   (money-out-alist (cdr (assq 'money-out-alist result)))
                   (money-out-collector (cdr (assq 'money-out-collector result))))
 

commit 25e4efc2b7d788b6f0b61ea0a523d8cc6e572004
Author: Christopher Lam <christopher.lck at gmail.com>
Date:   Wed Oct 28 21:42:31 2020 +0800

    [core-utils.scm][API] gnc:string-locale<? gnc:string-locale>?
    
    locale-sensitive string-sorting functions -- currently mirrors guile's
    (ice-9 i18n) functions -- may be modified to call C code if guile code
    is not reliable.

diff --git a/bindings/guile/core-utils.scm b/bindings/guile/core-utils.scm
index 32179f149..c08643cf1 100644
--- a/bindings/guile/core-utils.scm
+++ b/bindings/guile/core-utils.scm
@@ -28,12 +28,15 @@
   #:export (N_
             G_
             C_
+            gnc:string-locale<?
+            gnc:string-locale>?
             gnc:version))
 
 ;; Guile 2 needs to find the symbols from the extension at compile time already
 (eval-when (compile load eval expand)
   (load-extension "libgnucash-guile" "gnc_guile_bindings_init"))
 (use-modules (sw_core_utils))
+(use-modules (ice-9 i18n))
 
 ;; Export the swig-wrapped symbols in the public interface of this module
 (module-use! (module-public-interface (current-module))
@@ -54,3 +57,6 @@
    (define-public (_ x)
      (issue-deprecation-warning "Using _ to call gettext is disallowed in guile-3 and will be removed in the future. Use G_ instead.")
      (gnc:gettext x))))
+
+(define gnc:string-locale<? string-locale<?)
+(define gnc:string-locale>? string-locale>?)

commit e9d1e694f29a8ef93cf910ba34311fa9c45717f6
Author: Christopher Lam <christopher.lck at gmail.com>
Date:   Sun Nov 1 07:57:06 2020 +0800

    Addendum to 0446dca54, fix currency bug

diff --git a/gnucash/report/reports/standard/register.scm b/gnucash/report/reports/standard/register.scm
index 98ea1d7f3..8f2ff6c22 100644
--- a/gnucash/report/reports/standard/register.scm
+++ b/gnucash/report/reports/standard/register.scm
@@ -176,7 +176,7 @@
          (damount (xaccSplitGetAmount split))
          (dvalue (xaccSplitGetValue split))
          (split-abs-amount (gnc:make-gnc-monetary currency (abs damount)))
-         (split-abs-value (gnc:make-gnc-monetary currency (abs dvalue))))
+         (split-abs-value (gnc:make-gnc-monetary trans-currency (abs dvalue))))
 
     (if (date-col column-vector)
         (addto! row-contents

commit d87c469e17c9cbdb52756c09b3708377123aa299
Author: Christopher Lam <christopher.lck at gmail.com>
Date:   Fri Oct 30 09:24:07 2020 +0800

    Bug 797993 - Reverse balance option does not apply to an Account Report

diff --git a/gnucash/report/reports/standard/register.scm b/gnucash/report/reports/standard/register.scm
index b73f0d6d8..98ea1d7f3 100644
--- a/gnucash/report/reports/standard/register.scm
+++ b/gnucash/report/reports/standard/register.scm
@@ -170,10 +170,13 @@
   (let* ((row-contents '())
          (parent (xaccSplitGetParent split))
          (account (xaccSplitGetAccount split))
+         (reverse? (gnc-reverse-balance account))
          (currency (xaccAccountGetCommodity account))
          (trans-currency (xaccTransGetCurrency parent))
          (damount (xaccSplitGetAmount split))
-         (split-value (gnc:make-gnc-monetary currency damount)))
+         (dvalue (xaccSplitGetValue split))
+         (split-abs-amount (gnc:make-gnc-monetary currency (abs damount)))
+         (split-abs-value (gnc:make-gnc-monetary currency (abs dvalue))))
 
     (if (date-col column-vector)
         (addto! row-contents
@@ -232,54 +235,41 @@
                        trans-currency (xaccSplitGetSharePrice split))))))
     (if (amount-single-col column-vector)
         (addto! row-contents
-                (if split-info?
-                    (gnc:make-html-table-cell/markup
-                     "number-cell"
-                     (gnc:html-split-anchor split split-value))
-                    " ")))
+                (and split-info?
+                     (gnc:make-html-table-cell/markup
+                      "number-cell"
+                      (gnc:html-split-anchor
+                       split (gnc:make-gnc-monetary
+                              currency (if reverse? (- damount) damount)))))))
     (if (debit-col column-vector)
-        (if (positive? (gnc:gnc-monetary-amount split-value))
-            (addto! row-contents
-                    (if split-info?
-                        (gnc:make-html-table-cell/markup
-                         "number-cell"
-                         (gnc:html-split-anchor split split-value))
-                        " "))
-            (addto! row-contents " ")))
+        (addto! row-contents
+                (and split-info? (positive? damount)
+                     (gnc:make-html-table-cell/markup
+                      "number-cell"
+                      (gnc:html-split-anchor split split-abs-amount)))))
     (if (credit-col column-vector)
-        (if (not (positive? (gnc:gnc-monetary-amount split-value)))
-            (addto! row-contents
-                    (if split-info?
-                        (gnc:make-html-table-cell/markup
-                         "number-cell"
-                         (gnc:html-split-anchor
-                          split (gnc:monetary-neg split-value)))
-                        " "))
-            (addto! row-contents " ")))
+        (addto! row-contents
+                (and split-info? (not (positive? damount))
+                     (gnc:make-html-table-cell/markup
+                      "number-cell"
+                      (gnc:html-split-anchor split split-abs-amount)))))
     (if (value-single-col column-vector)
         (addto! row-contents
-                (if split-info?
-                    (gnc:make-html-table-cell/markup
-                     "number-cell"
-                     (gnc:make-gnc-monetary trans-currency
-                                            (xaccSplitGetValue split)))
-                    " ")))
+                (and split-info?
+                     (gnc:make-html-table-cell/markup
+                      "number-cell"
+                      (gnc:make-gnc-monetary
+                       trans-currency (if reverse? (- dvalue) dvalue))))))
     (if (value-debit-col column-vector)
         (addto! row-contents
-                (if (and split-info? (positive? (xaccSplitGetValue split)))
-                    (gnc:make-html-table-cell/markup
-                     "number-cell"
-                     (gnc:make-gnc-monetary trans-currency
-                                            (xaccSplitGetValue split)))
-                    " ")))
+                (and split-info? (positive? dvalue)
+                     (gnc:make-html-table-cell/markup
+                      "number-cell" split-abs-value))))
     (if (value-credit-col column-vector)
         (addto! row-contents
-                (if (and split-info? (not (positive? (xaccSplitGetValue split))))
-                    (gnc:make-html-table-cell/markup
-                     "number-cell"
-                     (gnc:make-gnc-monetary trans-currency
-                                            (- (xaccSplitGetValue split))))
-                    " ")))
+                (and split-info? (not (positive? dvalue))
+                     (gnc:make-html-table-cell/markup
+                      "number-cell" split-abs-value))))
     ;; For single account registers, use the split's cached balance to remain
     ;; consistent with the balances shown in the register itself
     ;; For others, use the cumulated balance from the totals-collector
@@ -292,9 +282,10 @@
                       split
                       (gnc:make-gnc-monetary
                        currency
-                       (if ledger-type?
-                           (cadr (total-collector 'getpair currency #f))
-                           (xaccSplitGetBalance split)))))
+                       (cond
+                        (ledger-type? (cadr (total-collector 'getpair currency #f)))
+                        ((gnc-reverse-balance account) (- (xaccSplitGetBalance split)))
+                        (else (xaccSplitGetBalance split))))))
                     " ")))
 
     (gnc:html-table-append-row/markup! table row-style
@@ -328,8 +319,7 @@
                          (gnc-get-num-action parent #f)
                          " ")))
                 (gnc:html-table-append-row/markup! table row-style
-                                                   (reverse row-contents))))))
-    split-value))
+                                                   (reverse row-contents))))))))
 
 
 (define (options-generator)

commit 9e70d7f45a4dc3c3a0cbd756f551ca491f3de75c
Author: Christopher Lam <christopher.lck at gmail.com>
Date:   Fri Oct 30 10:49:34 2020 +0800

    [register.scm] some cleanups

diff --git a/gnucash/report/reports/standard/register.scm b/gnucash/report/reports/standard/register.scm
index 4773d1c47..b73f0d6d8 100644
--- a/gnucash/report/reports/standard/register.scm
+++ b/gnucash/report/reports/standard/register.scm
@@ -177,12 +177,9 @@
 
     (if (date-col column-vector)
         (addto! row-contents
-                (if transaction-info?
-                    (gnc:make-html-table-cell/markup
-                     "date-cell"
-                     (qof-print-date
-                      (xaccTransGetDate parent)))
-                    " ")))
+                (and transaction-info?
+                     (gnc:make-html-table-cell/markup
+                      "date-cell" (qof-print-date (xaccTransGetDate parent))))))
     (if (num-col column-vector)
         (addto! row-contents
                 (gnc:make-html-table-cell/markup
@@ -191,29 +188,18 @@
                      (if (and action-for-num? ledger-type?)
                          (gnc-get-num-action parent #f)
                          (gnc-get-num-action parent split))
-                     (if split-info?
-                         (gnc-get-action-num  #f split)
-                         " ")))))
+                     (and split-info? (gnc-get-action-num  #f split))))))
     (if (description-col column-vector)
         (addto! row-contents
                 (gnc:make-html-table-cell/markup
                  "text-cell"
                  (if transaction-info?
-                     (if description?
-                         (xaccTransGetDescription parent)
-                         " " )
-                     (if split-info?
-                         (if memo?
-                             (xaccSplitGetMemo split)
-                             " ")
-                         " ")))))
+                     (and description? (xaccTransGetDescription parent))
+                     (and split-info? memo? (xaccSplitGetMemo split))))))
     (if (memo-col column-vector)
         (addto! row-contents
                 (gnc:make-html-table-cell/markup
-                 "text-cell"
-                 (if transaction-info?
-                     (xaccSplitGetMemo split)
-                     " "))))
+                 "text-cell" (and transaction-info? (xaccSplitGetMemo split)))))
     (if (account-col column-vector)
         (addto! row-contents
                 (gnc:make-html-table-cell/markup
@@ -231,24 +217,19 @@
         (addto! row-contents
                 (gnc:make-html-table-cell/markup
                  "number-cell"
-                 (if split-info?
-                     (xaccSplitGetAmount split)
-                     " "))))
+                 (and split-info? (xaccSplitGetAmount split)))))
     (if (lot-col column-vector)
         (addto! row-contents
                 (gnc:make-html-table-cell/markup
                  "text-cell"
-                 (if split-info?
-                     (gnc-lot-get-title (xaccSplitGetLot split))
-                     " "))))
+                 (if split-info? (gnc-lot-get-title (xaccSplitGetLot split))))))
     (if (price-col column-vector)
         (addto! row-contents
                 (gnc:make-html-table-cell/markup
                  "number-cell"
-                 (if split-info?
-                     (gnc:default-price-renderer
-                      trans-currency (xaccSplitGetSharePrice split))
-                     " "))))
+                 (and split-info?
+                      (gnc:default-price-renderer
+                       trans-currency (xaccSplitGetSharePrice split))))))
     (if (amount-single-col column-vector)
         (addto! row-contents
                 (if split-info?

commit fa16a299480c583f6e8f8b37bb2f447e7311430d
Author: Cristian Klein <cristian.klein at elastisys.com>
Date:   Wed Oct 28 22:36:11 2020 +0100

    Add auto-clear to register page

diff --git a/gnucash/ui/gnc-plugin-page-register-ui.xml b/gnucash/ui/gnc-plugin-page-register-ui.xml
index a32b3bd5a..5a240a5b2 100644
--- a/gnucash/ui/gnc-plugin-page-register-ui.xml
+++ b/gnucash/ui/gnc-plugin-page-register-ui.xml
@@ -44,6 +44,7 @@
         <separator name="ActionsSep1"/>
         <menuitem name="ActionsTransfer" action="ActionsTransferAction"/>
         <menuitem name="ActionsReconcile" action="ActionsReconcileAction"/>
+        <menuitem name="ActionsAutoClear" action="ActionsAutoClearAction"/>
         <menuitem name="ActionsStockSplit" action="ActionsStockSplitAction"/>
         <menuitem name="ActionLots" action="ActionsLotsAction"/>
         <separator name="ActionsSep4"/>
diff --git a/gnucash/ui/gnc-plugin-page-register2-ui.xml b/gnucash/ui/gnc-plugin-page-register2-ui.xml
index 3d903d9ac..8c4c4afab 100644
--- a/gnucash/ui/gnc-plugin-page-register2-ui.xml
+++ b/gnucash/ui/gnc-plugin-page-register2-ui.xml
@@ -43,6 +43,7 @@
         <separator name="ActionsSep1"/>
         <menuitem name="ActionsTransfer" action="ActionsTransferAction"/>
         <menuitem name="ActionsReconcile" action="ActionsReconcileAction"/>
+        <menuitem name="ActionsAutoClear" action="ActionsAutoClearAction"/>
         <menuitem name="ActionsStockSplit" action="ActionsStockSplitAction"/>
         <menuitem name="ActionLots" action="ActionsLotsAction"/>
         <separator name="ActionsSep4"/>

commit e5378b204849dcdaca429e3ac2a57bedfd681877
Author: Cristian Klein <cristian.klein at elastisys.com>
Date:   Wed Oct 28 22:25:56 2020 +0100

    [auto-clear] Make test more future-proof with GoogleTest

diff --git a/libgnucash/app-utils/test/test-autoclear.cpp b/libgnucash/app-utils/test/test-autoclear.cpp
index f00b80976..b99b5d655 100644
--- a/libgnucash/app-utils/test/test-autoclear.cpp
+++ b/libgnucash/app-utils/test/test-autoclear.cpp
@@ -156,11 +156,15 @@ TEST_P(AutoClearTest, DoesAutoClear) {
     }
 }
 
+#ifndef INSTANTIATE_TEST_SUITE_P
 // Silence "no previous declaration for" which is treated as error, due to -Werror
 testing::internal::ParamGenerator<TestCase*> gtest_InstantiationAutoClearTestAutoClearTest_EvalGenerator_();
 std::string gtest_InstantiationAutoClearTestAutoClearTest_EvalGenerateName_(const testing::TestParamInfo<TestCase*>&);
 
 INSTANTIATE_TEST_CASE_P(
+#else // INSTANTIATE_TEST_SUITE_P
+INSTANTIATE_TEST_SUITE_P(
+#endif // INSTANTIATE_TEST_SUITE_P
     InstantiationAutoClearTest,
     AutoClearTest,
     ::testing::Values(

commit 982cf86deb20f0b0c549e9f0efa9e0a24195ae2f
Author: Cristian Klein <cristian.klein at elastisys.com>
Date:   Mon Oct 26 14:48:20 2020 +0100

    [auto-clear] Fix test with googletest 1.8

diff --git a/libgnucash/app-utils/test/test-autoclear.cpp b/libgnucash/app-utils/test/test-autoclear.cpp
index 2696c2a9f..f00b80976 100644
--- a/libgnucash/app-utils/test/test-autoclear.cpp
+++ b/libgnucash/app-utils/test/test-autoclear.cpp
@@ -27,6 +27,7 @@
 extern "C" {
 #include "../gnc-ui-balances.h"
 }
+#include <memory>
 #include <Split.h>
 #include <gtest/gtest.h>
 
@@ -106,19 +107,18 @@ TestCase ambiguousTestCase = {
     },
 };
 
-class AutoClearTest : public testing::TestWithParam<TestCase> {
+class AutoClearTest : public ::testing::TestWithParam<TestCase *> {
 protected:
     std::shared_ptr<QofBook> book_;
     Account *account_; // owned by book_
-    TestCase testCase_;
+    TestCase &testCase_;
 
 public:
     AutoClearTest() :
         book_(qof_book_new(), qof_book_destroy),
-        account_(xaccMallocAccount(book_.get()))
+        account_(xaccMallocAccount(book_.get())),
+        testCase_(*GetParam())
     {
-        testCase_ = GetParam();
-
         xaccAccountSetName(account_, "Test Account");
         xaccAccountBeginEdit(account_);
         for (auto &d : testCase_.splits) {
@@ -156,11 +156,15 @@ TEST_P(AutoClearTest, DoesAutoClear) {
     }
 }
 
-INSTANTIATE_TEST_SUITE_P(
+// Silence "no previous declaration for" which is treated as error, due to -Werror
+testing::internal::ParamGenerator<TestCase*> gtest_InstantiationAutoClearTestAutoClearTest_EvalGenerator_();
+std::string gtest_InstantiationAutoClearTestAutoClearTest_EvalGenerateName_(const testing::TestParamInfo<TestCase*>&);
+
+INSTANTIATE_TEST_CASE_P(
     InstantiationAutoClearTest,
     AutoClearTest,
-    testing::Values(
-        easyTestCase,
-        ambiguousTestCase
+    ::testing::Values(
+        &easyTestCase,
+        &ambiguousTestCase
     )
 );

commit 9d4c0b05dbd181734c687012573f1c51b11512fa
Author: Cristian Klein <cristian.klein at elastisys.com>
Date:   Mon Oct 26 12:35:09 2020 +0100

    [auto-clear] Improve #include style

diff --git a/libgnucash/app-utils/test/test-autoclear.cpp b/libgnucash/app-utils/test/test-autoclear.cpp
index 780e67bb0..2696c2a9f 100644
--- a/libgnucash/app-utils/test/test-autoclear.cpp
+++ b/libgnucash/app-utils/test/test-autoclear.cpp
@@ -27,9 +27,8 @@
 extern "C" {
 #include "../gnc-ui-balances.h"
 }
-#include "Split.h"
-
-#include "gtest/gtest.h"
+#include <Split.h>
+#include <gtest/gtest.h>
 
 static const int64_t DENOM = 100; //< Denomerator is always 100 for simplicity.
 

commit 1cf7defee88db324e937a0e7c9d247c80a03603b
Author: Cristian Klein <cristian.klein at elastisys.com>
Date:   Mon Oct 26 12:33:13 2020 +0100

    [auto-clear] Address feedback

diff --git a/libgnucash/app-utils/test/test-autoclear.cpp b/libgnucash/app-utils/test/test-autoclear.cpp
index 73d9ae173..780e67bb0 100644
--- a/libgnucash/app-utils/test/test-autoclear.cpp
+++ b/libgnucash/app-utils/test/test-autoclear.cpp
@@ -31,7 +31,7 @@ extern "C" {
 
 #include "gtest/gtest.h"
 
-const gint64 DENOM = 100; //< Denomerator is always 100 for simplicity.
+static const int64_t DENOM = 100; //< Denomerator is always 100 for simplicity.
 
 struct SplitDatum {
     const char *memo;
@@ -39,100 +39,108 @@ struct SplitDatum {
     bool cleared;
 };
 
-struct TestCase {
+struct Tests {
     gint64 amount;
     const char *expectedErr;
 };
 
-std::vector<SplitDatum> easySplitData = {
-    { "Memo 01", -  8234, true },
-    { "Memo 02", -156326, true },
-    { "Memo 03", -  4500, true },
-    { "Memo 04", -694056, true },
-    { "Memo 05", -  7358, true },
-    { "Memo 06", - 11700, true },
-    { "Memo 07", - 20497, true },
-    { "Memo 08", - 11900, true },
-    { "Memo 09", -  8275, true },
-    { "Memo 10", - 58700, true },
-    { "Memo 11", +100000, true },
-    { "Memo 12", - 13881, true },
-    { "Memo 13", -  5000, true },
-    { "Memo 14", +200000, true },
-    { "Memo 15", - 16800, true },
-    { "Memo 16", -152000, true },
-    { "Memo 17", +160000, false },
-    { "Memo 18", - 63610, false },
-    { "Memo 19", -  2702, false },
-    { "Memo 20", - 15400, false },
-    { "Memo 21", -  3900, false },
-    { "Memo 22", - 22042, false },
-    { "Memo 23", -  2900, false },
-    { "Memo 24", - 10900, false },
-    { "Memo 25", - 44400, false },
-    { "Memo 26", -  9200, false },
-    { "Memo 27", -  7900, false },
-    { "Memo 28", -  1990, false },
-    { "Memo 29", -  7901, false },
-    { "Memo 30", - 61200, false },
-};
-
-std::vector<TestCase> easyTestCases = {
-    { 0, "The selected amount cannot be cleared.", },
-    { -869227, "Account is already at Auto-Clear Balance." }, // No splits need to be cleared.
-    { -869300, "The selected amount cannot be cleared." },
-    { -869230, NULL },
-    { -963272, NULL }, // All splits need to be cleared.
+struct TestCase {
+    std::vector<SplitDatum> splits;
+    std::vector<Tests> tests;
 };
 
-std::vector<SplitDatum> ambiguousSplitData = {
-    { "Memo 01", -10, false },
-    { "Memo 02", -10, false },
-    { "Memo 03", -10, false },
+TestCase easyTestCase = {
+    .splits = {
+        { "Memo 01", -  8234, true },
+        { "Memo 02", -156326, true },
+        { "Memo 03", -  4500, true },
+        { "Memo 04", -694056, true },
+        { "Memo 05", -  7358, true },
+        { "Memo 06", - 11700, true },
+        { "Memo 07", - 20497, true },
+        { "Memo 08", - 11900, true },
+        { "Memo 09", -  8275, true },
+        { "Memo 10", - 58700, true },
+        { "Memo 11", +100000, true },
+        { "Memo 12", - 13881, true },
+        { "Memo 13", -  5000, true },
+        { "Memo 14", +200000, true },
+        { "Memo 15", - 16800, true },
+        { "Memo 16", -152000, true },
+        { "Memo 17", +160000, false },
+        { "Memo 18", - 63610, false },
+        { "Memo 19", -  2702, false },
+        { "Memo 20", - 15400, false },
+        { "Memo 21", -  3900, false },
+        { "Memo 22", - 22042, false },
+        { "Memo 23", -  2900, false },
+        { "Memo 24", - 10900, false },
+        { "Memo 25", - 44400, false },
+        { "Memo 26", -  9200, false },
+        { "Memo 27", -  7900, false },
+        { "Memo 28", -  1990, false },
+        { "Memo 29", -  7901, false },
+        { "Memo 30", - 61200, false },
+    },
+    .tests = {
+        { 0, "The selected amount cannot be cleared.", },
+        { -869227, "Account is already at Auto-Clear Balance." }, // No splits need to be cleared.
+        { -869300, "The selected amount cannot be cleared." },
+        { -869230, NULL },
+        { -963272, NULL }, // All splits need to be cleared.
+    },
 };
 
-std::vector<TestCase> ambiguousTestCases = {
-    { -10, "Cannot uniquely clear splits. Found multiple possibilities." },
-    { -20, "Cannot uniquely clear splits. Found multiple possibilities." },
-
-    // Commented out, auto-clear algorithm is not smart enough yet.
-    //{ -30, NULL },
+TestCase ambiguousTestCase = {
+    .splits = {
+        { "Memo 01", -10, false },
+        { "Memo 02", -10, false },
+        { "Memo 03", -10, false },
+    },
+    .tests = {
+        { -10, "Cannot uniquely clear splits. Found multiple possibilities." },
+        { -20, "Cannot uniquely clear splits. Found multiple possibilities." },
+
+        // Forbid auto-clear to be too smart. We expect the user to manually deal
+        // with such situations.
+        { -30, "Cannot uniquely clear splits. Found multiple possibilities." },
+    },
 };
 
-class AutoClearTest
-    : public testing::TestWithParam<
-        std::pair<
-            std::vector<SplitDatum>,
-            std::vector<TestCase>
-        >
-    > {
+class AutoClearTest : public testing::TestWithParam<TestCase> {
+protected:
+    std::shared_ptr<QofBook> book_;
+    Account *account_; // owned by book_
+    TestCase testCase_;
+
+public:
+    AutoClearTest() :
+        book_(qof_book_new(), qof_book_destroy),
+        account_(xaccMallocAccount(book_.get()))
+    {
+        testCase_ = GetParam();
+
+        xaccAccountSetName(account_, "Test Account");
+        xaccAccountBeginEdit(account_);
+        for (auto &d : testCase_.splits) {
+            Split *split = xaccMallocSplit(book_.get());
+            xaccSplitSetMemo(split, d.memo);
+            xaccSplitSetAmount(split, gnc_numeric_create(d.amount, DENOM));
+            xaccSplitSetReconcile(split, d.cleared ? CREC : NREC);
+            xaccSplitSetAccount(split, account_);
+
+            gnc_account_insert_split(account_, split);
+        }
+        xaccAccountCommitEdit(account_);
+    }
 };
 
 TEST_P(AutoClearTest, DoesAutoClear) {
-    auto splitData = GetParam().first;
-    auto testCase = GetParam().second;
-
-    QofBook *book = qof_book_new ();
-    Account *account = xaccMallocAccount(book);
-    xaccAccountSetName(account, "Test Account");
-
-    xaccAccountBeginEdit(account);
-    for (auto &d : splitData) {
-        Split *split = xaccMallocSplit(book);
-        xaccSplitSetMemo(split, d.memo);
-        xaccSplitSetAmount(split, gnc_numeric_create(d.amount, DENOM));
-        xaccSplitSetReconcile(split, d.cleared ? CREC : NREC);
-        xaccSplitSetAccount(split, account);
-
-        gnc_account_insert_split(account, split);
-    }
-    xaccAccountCommitEdit(account);
-
-    for (auto &t : testCase) {
+    for (auto &t : testCase_.tests) {
         gnc_numeric amount_to_clear = gnc_numeric_create(t.amount, DENOM);
         char *err;
 
-        GList *splits_to_clear = gnc_account_get_autoclear_splits(account, amount_to_clear, &err);
+        GList *splits_to_clear = gnc_account_get_autoclear_splits(account_, amount_to_clear, &err);
 
         // Actually clear splits
         for (GList *node = splits_to_clear; node; node = node->next) {
@@ -142,20 +150,18 @@ TEST_P(AutoClearTest, DoesAutoClear) {
 
         ASSERT_STREQ(err, t.expectedErr);
         if (t.expectedErr == NULL) {
-            gnc_numeric c = xaccAccountGetClearedBalance(account);
+            gnc_numeric c = xaccAccountGetClearedBalance(account_);
             ASSERT_EQ(c.num, t.amount);
             ASSERT_EQ(c.denom, DENOM);
         }
     }
-
-    qof_book_destroy(book);
 }
 
 INSTANTIATE_TEST_SUITE_P(
     InstantiationAutoClearTest,
     AutoClearTest,
     testing::Values(
-        std::pair{ easySplitData, easyTestCases },
-        std::pair{ ambiguousSplitData, ambiguousTestCases }
+        easyTestCase,
+        ambiguousTestCase
     )
 );

commit 9bf550d38f19498f78562d2c4c8ed08ec784056a
Author: Cristian Klein <cristian.klein at elastisys.com>
Date:   Fri Oct 23 16:34:46 2020 +0200

    [auto-clear] Include test for ambiguous cases

diff --git a/libgnucash/app-utils/test/test-autoclear.cpp b/libgnucash/app-utils/test/test-autoclear.cpp
index b6ba6ba19..73d9ae173 100644
--- a/libgnucash/app-utils/test/test-autoclear.cpp
+++ b/libgnucash/app-utils/test/test-autoclear.cpp
@@ -39,7 +39,12 @@ struct SplitDatum {
     bool cleared;
 };
 
-SplitDatum splitData[] = {
+struct TestCase {
+    gint64 amount;
+    const char *expectedErr;
+};
+
+std::vector<SplitDatum> easySplitData = {
     { "Memo 01", -  8234, true },
     { "Memo 02", -156326, true },
     { "Memo 03", -  4500, true },
@@ -72,12 +77,7 @@ SplitDatum splitData[] = {
     { "Memo 30", - 61200, false },
 };
 
-struct TestCase {
-    gint64 amount;
-    const char *expectedErr;
-};
-
-TestCase testCases[] = {
+std::vector<TestCase> easyTestCases = {
     { 0, "The selected amount cannot be cleared.", },
     { -869227, "Account is already at Auto-Clear Balance." }, // No splits need to be cleared.
     { -869300, "The selected amount cannot be cleared." },
@@ -85,7 +85,33 @@ TestCase testCases[] = {
     { -963272, NULL }, // All splits need to be cleared.
 };
 
-TEST(AutoClear, AutoClearAll) {
+std::vector<SplitDatum> ambiguousSplitData = {
+    { "Memo 01", -10, false },
+    { "Memo 02", -10, false },
+    { "Memo 03", -10, false },
+};
+
+std::vector<TestCase> ambiguousTestCases = {
+    { -10, "Cannot uniquely clear splits. Found multiple possibilities." },
+    { -20, "Cannot uniquely clear splits. Found multiple possibilities." },
+
+    // Commented out, auto-clear algorithm is not smart enough yet.
+    //{ -30, NULL },
+};
+
+class AutoClearTest
+    : public testing::TestWithParam<
+        std::pair<
+            std::vector<SplitDatum>,
+            std::vector<TestCase>
+        >
+    > {
+};
+
+TEST_P(AutoClearTest, DoesAutoClear) {
+    auto splitData = GetParam().first;
+    auto testCase = GetParam().second;
+
     QofBook *book = qof_book_new ();
     Account *account = xaccMallocAccount(book);
     xaccAccountSetName(account, "Test Account");
@@ -102,7 +128,7 @@ TEST(AutoClear, AutoClearAll) {
     }
     xaccAccountCommitEdit(account);
 
-    for (auto &t : testCases) {
+    for (auto &t : testCase) {
         gnc_numeric amount_to_clear = gnc_numeric_create(t.amount, DENOM);
         char *err;
 
@@ -124,3 +150,12 @@ TEST(AutoClear, AutoClearAll) {
 
     qof_book_destroy(book);
 }
+
+INSTANTIATE_TEST_SUITE_P(
+    InstantiationAutoClearTest,
+    AutoClearTest,
+    testing::Values(
+        std::pair{ easySplitData, easyTestCases },
+        std::pair{ ambiguousSplitData, ambiguousTestCases }
+    )
+);

commit 5cd777b6739c14ccefa3f88996b63b4f1b1eff95
Author: Cristian Klein <cristian.klein at elastisys.com>
Date:   Fri Oct 23 15:30:35 2020 +0200

    [auto-clear] Fix test: Add xaccAccountBeginEdit / xaccAccountCommitEdit

diff --git a/libgnucash/app-utils/test/test-autoclear.cpp b/libgnucash/app-utils/test/test-autoclear.cpp
index cd193790b..b6ba6ba19 100644
--- a/libgnucash/app-utils/test/test-autoclear.cpp
+++ b/libgnucash/app-utils/test/test-autoclear.cpp
@@ -90,6 +90,7 @@ TEST(AutoClear, AutoClearAll) {
     Account *account = xaccMallocAccount(book);
     xaccAccountSetName(account, "Test Account");
 
+    xaccAccountBeginEdit(account);
     for (auto &d : splitData) {
         Split *split = xaccMallocSplit(book);
         xaccSplitSetMemo(split, d.memo);
@@ -99,7 +100,7 @@ TEST(AutoClear, AutoClearAll) {
 
         gnc_account_insert_split(account, split);
     }
-    xaccAccountRecomputeBalance(account);
+    xaccAccountCommitEdit(account);
 
     for (auto &t : testCases) {
         gnc_numeric amount_to_clear = gnc_numeric_create(t.amount, DENOM);

commit 2faecb207432027ebd9efd6c92b53c35bec44fa7
Author: Cristian Klein <cristian.klein at elastisys.com>
Date:   Fri Oct 23 15:26:58 2020 +0200

    [auto-clear] Avoid testing ambigous auto-clear

diff --git a/libgnucash/app-utils/test/test-autoclear.cpp b/libgnucash/app-utils/test/test-autoclear.cpp
index 62fb18890..cd193790b 100644
--- a/libgnucash/app-utils/test/test-autoclear.cpp
+++ b/libgnucash/app-utils/test/test-autoclear.cpp
@@ -58,7 +58,7 @@ SplitDatum splitData[] = {
     { "Memo 16", -152000, true },
     { "Memo 17", +160000, false },
     { "Memo 18", - 63610, false },
-    { "Memo 19", -  2700, false },
+    { "Memo 19", -  2702, false },
     { "Memo 20", - 15400, false },
     { "Memo 21", -  3900, false },
     { "Memo 22", - 22042, false },
@@ -68,7 +68,7 @@ SplitDatum splitData[] = {
     { "Memo 26", -  9200, false },
     { "Memo 27", -  7900, false },
     { "Memo 28", -  1990, false },
-    { "Memo 29", -  7900, false },
+    { "Memo 29", -  7901, false },
     { "Memo 30", - 61200, false },
 };
 
@@ -80,9 +80,9 @@ struct TestCase {
 TestCase testCases[] = {
     { 0, "The selected amount cannot be cleared.", },
     { -869227, "Account is already at Auto-Clear Balance." }, // No splits need to be cleared.
-    { -877127, "Cannot uniquely clear splits. Found multiple possibilities." }, // Two splits need to be cleared.
-    { -891269, NULL }, // One split need to be cleared.
-    { -963269, NULL }, // All splits need to be cleared.
+    { -869300, "The selected amount cannot be cleared." },
+    { -869230, NULL },
+    { -963272, NULL }, // All splits need to be cleared.
 };
 
 TEST(AutoClear, AutoClearAll) {

commit a1806a2f9429b5f69403b812cd77fcae32371688
Author: Cristian Klein <cristian.klein at elastisys.com>
Date:   Fri Oct 23 15:26:23 2020 +0200

    [auto-clear] Fix model

diff --git a/libgnucash/app-utils/test/test-autoclear.cpp b/libgnucash/app-utils/test/test-autoclear.cpp
index 834c77e91..62fb18890 100644
--- a/libgnucash/app-utils/test/test-autoclear.cpp
+++ b/libgnucash/app-utils/test/test-autoclear.cpp
@@ -31,11 +31,11 @@ extern "C" {
 
 #include "gtest/gtest.h"
 
-const int DENOM = 100; //< Denomerator is always 100 for simplicity.
+const gint64 DENOM = 100; //< Denomerator is always 100 for simplicity.
 
 struct SplitDatum {
     const char *memo;
-    int amount; //< Numerator of amount.
+    gint64 amount; //< Numerator of amount.
     bool cleared;
 };
 
@@ -73,7 +73,7 @@ SplitDatum splitData[] = {
 };
 
 struct TestCase {
-    int amount;
+    gint64 amount;
     const char *expectedErr;
 };
 
@@ -88,14 +88,15 @@ TestCase testCases[] = {
 TEST(AutoClear, AutoClearAll) {
     QofBook *book = qof_book_new ();
     Account *account = xaccMallocAccount(book);
+    xaccAccountSetName(account, "Test Account");
 
     for (auto &d : splitData) {
         Split *split = xaccMallocSplit(book);
         xaccSplitSetMemo(split, d.memo);
         xaccSplitSetAmount(split, gnc_numeric_create(d.amount, DENOM));
         xaccSplitSetReconcile(split, d.cleared ? CREC : NREC);
+        xaccSplitSetAccount(split, account);
 
-        // This way of inserting a split, seems to actualy work best. :D
         gnc_account_insert_split(account, split);
     }
     xaccAccountRecomputeBalance(account);

commit 51715e454c022413c141e3fb5a2aa570d33dc16e
Author: Cristian Klein <cristian.klein at elastisys.com>
Date:   Fri Oct 23 14:04:16 2020 +0200

    [auto-clear] Add tests

diff --git a/libgnucash/app-utils/test/CMakeLists.txt b/libgnucash/app-utils/test/CMakeLists.txt
index b738202fd..85b85679e 100644
--- a/libgnucash/app-utils/test/CMakeLists.txt
+++ b/libgnucash/app-utils/test/CMakeLists.txt
@@ -85,3 +85,21 @@ set_dist_list(test_app_utils_DIST
   ${test_app_utils_scheme_SOURCES}
   ${test_app_utils_SOURCES}
 )
+
+
+set(test_autoclear_SOURCES
+    test-autoclear.cpp
+)
+set(test_autoclear_INCLUDE_DIRS
+    ${APP_UTILS_TEST_INCLUDE_DIRS}
+    ${GTEST_INCLUDE_DIR}
+)
+set(test_autoclear_LIBS
+    ${APP_UTILS_TEST_LIBS}
+    gtest
+)
+
+gnc_add_test(test-autoclear "${test_autoclear_SOURCES}"
+    test_autoclear_INCLUDE_DIRS
+    test_autoclear_LIBS
+)
diff --git a/libgnucash/app-utils/test/test-autoclear.cpp b/libgnucash/app-utils/test/test-autoclear.cpp
new file mode 100644
index 000000000..834c77e91
--- /dev/null
+++ b/libgnucash/app-utils/test/test-autoclear.cpp
@@ -0,0 +1,124 @@
+/********************************************************************
+ * test-autoclear.c: test suite for Auto-Clear          	    *
+ * Copyright 2020 Cristian Klein <cristian at kleinlabs.eu>            *
+ *                                                                  *
+ * This program is free software; you can redistribute it and/or    *
+ * modify it under the terms of the GNU General Public License as   *
+ * published by the Free Software Foundation; either version 2 of   *
+ * the License, or (at your option) any later version.              *
+ *                                                                  *
+ * This program is distributed in the hope that it will be useful,  *
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of   *
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the    *
+ * GNU General Public License for more details.                     *
+ *                                                                  *
+ * You should have received a copy of the GNU General Public License*
+ * along with this program; if not, you can retrieve it from        *
+ * https://www.gnu.org/licenses/old-licenses/gpl-2.0.html            *
+ * or contact:                                                      *
+ *                                                                  *
+ * Free Software Foundation           Voice:  +1-617-542-5942       *
+ * 51 Franklin Street, Fifth Floor    Fax:    +1-617-542-2652       *
+ * Boston, MA  02110-1301,  USA       gnu at gnu.org                   *
+ ********************************************************************/
+#include "config.h"
+
+// GoogleTest is written in C++, however, the function we test in C.
+extern "C" {
+#include "../gnc-ui-balances.h"
+}
+#include "Split.h"
+
+#include "gtest/gtest.h"
+
+const int DENOM = 100; //< Denomerator is always 100 for simplicity.
+
+struct SplitDatum {
+    const char *memo;
+    int amount; //< Numerator of amount.
+    bool cleared;
+};
+
+SplitDatum splitData[] = {
+    { "Memo 01", -  8234, true },
+    { "Memo 02", -156326, true },
+    { "Memo 03", -  4500, true },
+    { "Memo 04", -694056, true },
+    { "Memo 05", -  7358, true },
+    { "Memo 06", - 11700, true },
+    { "Memo 07", - 20497, true },
+    { "Memo 08", - 11900, true },
+    { "Memo 09", -  8275, true },
+    { "Memo 10", - 58700, true },
+    { "Memo 11", +100000, true },
+    { "Memo 12", - 13881, true },
+    { "Memo 13", -  5000, true },
+    { "Memo 14", +200000, true },
+    { "Memo 15", - 16800, true },
+    { "Memo 16", -152000, true },
+    { "Memo 17", +160000, false },
+    { "Memo 18", - 63610, false },
+    { "Memo 19", -  2700, false },
+    { "Memo 20", - 15400, false },
+    { "Memo 21", -  3900, false },
+    { "Memo 22", - 22042, false },
+    { "Memo 23", -  2900, false },
+    { "Memo 24", - 10900, false },
+    { "Memo 25", - 44400, false },
+    { "Memo 26", -  9200, false },
+    { "Memo 27", -  7900, false },
+    { "Memo 28", -  1990, false },
+    { "Memo 29", -  7900, false },
+    { "Memo 30", - 61200, false },
+};
+
+struct TestCase {
+    int amount;
+    const char *expectedErr;
+};
+
+TestCase testCases[] = {
+    { 0, "The selected amount cannot be cleared.", },
+    { -869227, "Account is already at Auto-Clear Balance." }, // No splits need to be cleared.
+    { -877127, "Cannot uniquely clear splits. Found multiple possibilities." }, // Two splits need to be cleared.
+    { -891269, NULL }, // One split need to be cleared.
+    { -963269, NULL }, // All splits need to be cleared.
+};
+
+TEST(AutoClear, AutoClearAll) {
+    QofBook *book = qof_book_new ();
+    Account *account = xaccMallocAccount(book);
+
+    for (auto &d : splitData) {
+        Split *split = xaccMallocSplit(book);
+        xaccSplitSetMemo(split, d.memo);
+        xaccSplitSetAmount(split, gnc_numeric_create(d.amount, DENOM));
+        xaccSplitSetReconcile(split, d.cleared ? CREC : NREC);
+
+        // This way of inserting a split, seems to actualy work best. :D
+        gnc_account_insert_split(account, split);
+    }
+    xaccAccountRecomputeBalance(account);
+
+    for (auto &t : testCases) {
+        gnc_numeric amount_to_clear = gnc_numeric_create(t.amount, DENOM);
+        char *err;
+
+        GList *splits_to_clear = gnc_account_get_autoclear_splits(account, amount_to_clear, &err);
+
+        // Actually clear splits
+        for (GList *node = splits_to_clear; node; node = node->next) {
+            Split *split = (Split *)node->data;
+            xaccSplitSetReconcile(split, CREC);
+        }
+
+        ASSERT_STREQ(err, t.expectedErr);
+        if (t.expectedErr == NULL) {
+            gnc_numeric c = xaccAccountGetClearedBalance(account);
+            ASSERT_EQ(c.num, t.amount);
+            ASSERT_EQ(c.denom, DENOM);
+        }
+    }
+
+    qof_book_destroy(book);
+}

commit cebe6022c84bdfb111183dacf95b49f183e90de4
Author: McLayn <mclayn.v at gmail.com>
Date:   Fri Oct 30 00:40:02 2020 +0100

    fix CZK partname to nominative singular

diff --git a/libgnucash/engine/iso-4217-currencies.xml b/libgnucash/engine/iso-4217-currencies.xml
index f4ae95524..afa94a5e2 100644
--- a/libgnucash/engine/iso-4217-currencies.xml
+++ b/libgnucash/engine/iso-4217-currencies.xml
@@ -799,7 +799,7 @@
   isocode="CZK"
   fullname="Czech Koruna"
   unitname="koruna"
-  partname="haleru"
+  partname="haler"
   namespace="ISO4217"
   exchange-code="203"
   parts-per-unit="100"

commit 5df7949a877b7ab0c29f2bb9859ce115ee14dcc0
Author: Robert Fewell <14uBobIT at gmail.com>
Date:   Thu Oct 29 12:03:16 2020 +0000

    Fix GtkLabel error for autoclear status_label
    
    Move setting up the callback that clears the status_label till after
    setting up the status_label.

diff --git a/gnucash/gnome/window-autoclear.c b/gnucash/gnome/window-autoclear.c
index 294cb7a98..31d2c40c6 100644
--- a/gnucash/gnome/window-autoclear.c
+++ b/gnucash/gnome/window-autoclear.c
@@ -212,9 +212,6 @@ autoClearWindow (GtkWidget *parent, Account *account)
     g_signal_connect(GTK_WIDGET(data->end_value), "activate",
                      G_CALLBACK(gnc_autoclear_window_ok_cb), data);
 
-    g_signal_connect (GTK_WIDGET(data->end_value), "changed",
-                      G_CALLBACK(clear_status_label_cb), data);
-
     box   = GTK_BOX(gtk_builder_get_object (builder, "end_value_box"));
     gtk_box_pack_start(box, GTK_WIDGET(data->end_value), TRUE, TRUE, 0);
 
@@ -231,6 +228,9 @@ autoClearWindow (GtkWidget *parent, Account *account)
 
     data->status_label = GTK_LABEL(gtk_builder_get_object (builder, "status_label"));
 
+    g_signal_connect (GTK_WIDGET(data->end_value), "changed",
+                      G_CALLBACK(clear_status_label_cb), data);
+
     if (parent != NULL)
         gtk_window_set_transient_for (GTK_WINDOW (data->window), GTK_WINDOW (parent));
 

commit f3ba84921ba6e43909c04b3d3534f22abb2751ed
Author: Christian Stimming <christian at cstimming.de>
Date:   Tue Oct 27 23:03:25 2020 +0100

    Add tooltip in import matcher window for description and memo column.

diff --git a/gnucash/import-export/import-main-matcher.c b/gnucash/import-export/import-main-matcher.c
index 85cd1feb1..58888b0aa 100644
--- a/gnucash/import-export/import-main-matcher.c
+++ b/gnucash/import-export/import-main-matcher.c
@@ -143,6 +143,10 @@ static void refresh_model_row (
                     GtkTreeModel *model,
                     GtkTreeIter *iter,
                     GNCImportTransInfo *info);
+static gboolean query_tooltip_tree_view_cb (GtkWidget *widget, gint x, gint y,
+                                            gboolean keyboard_tip,
+                                            GtkTooltip *tooltip,
+                                            gpointer user_data);
 /* end local prototypes */
 
 static gboolean delete_hash (gpointer key, gpointer value, gpointer user_data)
@@ -1067,6 +1071,10 @@ gnc_gen_trans_init_view (GNCImportMainMatcher *info,
                                           GTK_SORT_ASCENDING);
     selection = gtk_tree_view_get_selection (info->view);
 
+    g_object_set (info->view, "has-tooltip", TRUE, NULL);
+    g_signal_connect (G_OBJECT(info->view), "query-tooltip",
+                      G_CALLBACK(query_tooltip_tree_view_cb), info);
+
     g_signal_connect (info->view, "row-activated",
                       G_CALLBACK(gnc_gen_trans_row_activated_cb), info);
     g_signal_connect (selection, "changed",
@@ -1826,4 +1834,55 @@ GtkWidget *gnc_gen_trans_list_widget (GNCImportMainMatcher *info)
     return info->main_widget;
 }
 
+gboolean query_tooltip_tree_view_cb (GtkWidget *widget, gint x, gint y,
+                                     gboolean keyboard_tip,
+                                     GtkTooltip *tooltip,
+                                     gpointer user_data)
+{
+    GtkTreeView          *tree_view = GTK_TREE_VIEW(widget);
+    GtkTreeModel         *model = gtk_tree_view_get_model(tree_view);
+    //GNCImportMainMatcher *info = user_data;
+    GtkTreePath          *path  = NULL;
+    GtkTreeViewColumn    *column = NULL;
+    GtkTreeIter iter;
+    gboolean show_tooltip = FALSE;
+
+    gtk_tree_view_convert_widget_to_bin_window_coords (tree_view, x, y, &x, &y);
+    if (keyboard_tip || !gtk_tree_view_get_path_at_pos (tree_view, x, y, &path,
+                                                        &column, NULL, NULL))
+        return FALSE;
+
+    // Get the iter pointing to our current column
+    if (gtk_tree_model_get_iter(model, &iter, path)
+            && column)
+    {
+        const gchar *tooltip_text = NULL;
+
+        // Select text based on column
+        gint num_col = gtk_tree_view_column_get_sort_column_id(column);
+        switch (num_col) {
+        case DOWNLOADED_COL_DESCRIPTION:
+            gtk_tree_model_get(model, &iter, DOWNLOADED_COL_DESCRIPTION, &tooltip_text, -1);
+            break;
+        case DOWNLOADED_COL_MEMO:
+            gtk_tree_model_get(model, &iter, DOWNLOADED_COL_MEMO, &tooltip_text, -1);
+            break;
+        default:
+            break;
+        }
+
+        // Did we select any text? If yes, display the tooltip
+        if (tooltip_text)
+        {
+            show_tooltip = TRUE;
+            gtk_tooltip_set_text (tooltip, tooltip_text);
+            gtk_tree_view_set_tooltip_cell (tree_view, tooltip, path, column, NULL);
+        }
+    }
+
+    // Clean up the object
+    gtk_tree_path_free (path);
+    return show_tooltip;
+}
+
 /** @} */

commit 6e3c98c2fb0a75cc7da179a11893e969dda1690b
Author: Christian Stimming <christian at cstimming.de>
Date:   Tue Oct 27 21:44:11 2020 +0100

    L10N:de: Minor improvements in German translation
    
    Made strings in the import matcher more compact, which leaves more
    space on the screen for the interesting content.

diff --git a/po/de.po b/po/de.po
index 44a22a81b..445bc6031 100644
--- a/po/de.po
+++ b/po/de.po
@@ -25,7 +25,7 @@ msgstr ""
 "Report-Msgid-Bugs-To: https://bugs.gnucash.org/enter_bug.cgi?"
 "product=GnuCash&component=Translations\n"
 "POT-Creation-Date: 2020-10-14 01:49+0200\n"
-"PO-Revision-Date: 2020-09-26 21:29+0200\n"
+"PO-Revision-Date: 2020-10-27 21:23+0100\n"
 "Last-Translator: Christian Stimming <christian at cstimming.de>\n"
 "Language-Team: Deutschsprachige GnuCash-Gemeinde <gnucash-de at gnucash.org>\n"
 "Language: de\n"
@@ -21786,28 +21786,28 @@ msgstr "Neu (und ausgeglichen)"
 #: gnucash/import-export/import-main-matcher.c:1453
 #, c-format
 msgid "New, transfer %s to (manual) \"%s\""
-msgstr "Neu (Buchung von %s nach »%s«, manuell gewählt)"
+msgstr "Neu (%s nach »%s«, manuell gewählt)"
 
 #. Translators: %1$s is the amount to be
 #. transferred. %2$s is the destination account.
 #: gnucash/import-export/import-main-matcher.c:1461
 #, c-format
 msgid "New, transfer %s to (auto) \"%s\""
-msgstr "Neu (Buchung von %s nach »%s«, automatisch gewählt)"
+msgstr "Neu (%s nach »%s«, automatisch gewählt)"
 
 #. Translators: %s is the amount to be transferred.
 #: gnucash/import-export/import-main-matcher.c:1472
 #, c-format
 msgid "New, UNBALANCED (need acct to transfer %s)!"
-msgstr "Neu (Nicht ausgeglichen, benötige Konto für verbleibende %s)"
+msgstr "Neu (verbleibende %s benötigen Konto, nicht ausgeglichen)"
 
 #: gnucash/import-export/import-main-matcher.c:1489
 msgid "Reconcile (manual) match"
-msgstr "Abgleichen (mit manuell gewählter Zuordnung)"
+msgstr "Abgleichen (manuell gewählte Zuordnung)"
 
 #: gnucash/import-export/import-main-matcher.c:1493
 msgid "Reconcile (auto) match"
-msgstr "Abgleichen (mit automatisch gewählter Zuordnung)"
+msgstr "Abgleichen (automatisch gewählte Zuordnung)"
 
 #: gnucash/import-export/import-main-matcher.c:1500
 #: gnucash/import-export/import-main-matcher.c:1526
@@ -21816,11 +21816,11 @@ msgstr "Zuordnung fehlt!"
 
 #: gnucash/import-export/import-main-matcher.c:1515
 msgid "Update and reconcile (manual) match"
-msgstr "Abgleichen und Datenübernahme (mit manuell gewählter Zuordnung)"
+msgstr "Abgleichen und Datenübernahme (manuell gewählte Zuordnung)"
 
 #: gnucash/import-export/import-main-matcher.c:1519
 msgid "Update and reconcile (auto) match"
-msgstr "Abgleichen und Datenübernahme (mit automatisch gewählter Zuordnung)"
+msgstr "Abgleichen und Datenübernahme (automatisch gewählte Zuordnung)"
 
 #: gnucash/import-export/import-main-matcher.c:1534
 msgid "Do not import (no action selected)"

commit 10032c17b599dd599f03443daf7832a56521a222
Author: Frank H. Ellenberger <frank.h.ellenberger at gmail.com>
Date:   Tue Oct 27 22:17:18 2020 +0100

    L10N:de: Berichtige "Ausgleichskonto" zu "Anfangsbestand"
    
    Fehler wegen Mißdeutung des Kontexts von 'balance'

diff --git a/po/de.po b/po/de.po
index 25ea99a4a..44a22a81b 100644
--- a/po/de.po
+++ b/po/de.po
@@ -7502,8 +7502,8 @@ msgid ""
 "You must select a transfer account or choose the opening balances equity "
 "account."
 msgstr ""
-"Sie müssen ein Herkunftskonto wählen oder das Ausgleichskonto für den "
-"Anfangsbestand benutzen."
+"Sie müssen ein Herkunftskonto wählen oder das Eigenkapitalkonto "
+"»Anfangsbestand« benutzen."
 
 #: gnucash/gnome-utils/dialog-account.c:1350
 msgid ""
@@ -15166,7 +15166,7 @@ msgstr "<b>Buchung Anfangssaldo</b>"
 
 #: gnucash/gtkbuilder/dialog-account.glade:1755
 msgid "_Use equity 'Opening Balances' account"
-msgstr "Benutze _Ausgleichskonto für Anfangsbestand"
+msgstr "Benutze Eigenkapitalkonto »_Anfangsbestand«"
 
 #: gnucash/gtkbuilder/dialog-account.glade:1772
 msgid "_Select transfer account"

commit 1915dfb0cb255fe26dcd7810c96e855defbc747f
Author: John Ralls <jralls at ceridwen.us>
Date:   Fri Oct 23 12:20:01 2020 -0700

    Put Macs back on WebKit2.

diff --git a/CMakeLists.txt b/CMakeLists.txt
index 7b70839f5..78da42ca7 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -207,7 +207,7 @@ pkg_check_modules (GTHREAD REQUIRED gthread-2.0)
 pkg_check_modules (LIBXML2 REQUIRED libxml-2.0>=2.9.4)
 pkg_check_modules (LIBXSLT REQUIRED libxslt)
 if (WITH_GNUCASH)
-  if (WIN32 OR APPLE)
+  if (WIN32)
     pkg_check_modules (WEBKIT REQUIRED IMPORTED_TARGET webkitgtk-3.0)
     set(WEBKIT1 1 CACHE INTERNAL "WebKitGtk")
   else()

commit a6c8a806f37f1ba182e954942324fff5cb95dc2b
Author: Christopher Lam <christopher.lck at gmail.com>
Date:   Tue Oct 27 11:03:05 2020 +0800

    Bug 797982 - exchange rates' decimal places (bis)
    
    Bug introduced in e7165507c. We need to normalize date for
    pricedb-nearest to avoid getting next day price.

diff --git a/gnucash/report/commodity-utilities.scm b/gnucash/report/commodity-utilities.scm
index e777a2a84..2dd1e6dce 100644
--- a/gnucash/report/commodity-utilities.scm
+++ b/gnucash/report/commodity-utilities.scm
@@ -768,7 +768,8 @@
 (define (gnc:case-price-fn source target-curr date)
   (define pdb (gnc-pricedb-get-db (gnc-get-current-book)))
   (case source
-    ((pricedb-nearest) (cut gnc-pricedb-get-nearest-price pdb <> target-curr date))
+    ((pricedb-nearest) (cut gnc-pricedb-get-nearest-price pdb <> target-curr
+                            (time64CanonicalDayTime date)))
     ((pricedb-latest)  (cut gnc-pricedb-get-latest-price pdb <> target-curr))
     (else
      (lambda (commodity)

commit fedaa1339601c0f21e984707dc22858ebbd41ef0
Author: Frank H. Ellenberger <frank.h.ellenberger at gmail.com>
Date:   Tue Oct 27 01:56:45 2020 +0100

    CMake: Mute guile-2.2 again

diff --git a/CMakeLists.txt b/CMakeLists.txt
index 1617a1d9c..7b70839f5 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -279,7 +279,7 @@ string(REGEX MATCH "^[0-9]+[.]" SWIG_MAJOR ${SWIG_VERSION})
 
 # guile library and include dir
 pkg_check_modules (GUILE3 guile-3.0 QUIET)
-pkg_check_modules (GUILE22 guile-2.2)
+pkg_check_modules (GUILE22 guile-2.2 QUIET)
 pkg_check_modules (GUILE2 guile-2.0>=2.0.9 QUIET)
 
 if (GUILE3_FOUND) # found guile-3.0

commit 946cbef95f3e68131f49bcf1801f310a476e6e0f
Author: John Ralls <jralls at ceridwen.us>
Date:   Mon Oct 26 14:05:31 2020 -0700

    HTML fonts: Parse additional values of font-weight from the pango font name.

diff --git a/gnucash/report/html-fonts.scm b/gnucash/report/html-fonts.scm
index ea5a3126f..ee1598948 100644
--- a/gnucash/report/html-fonts.scm
+++ b/gnucash/report/html-fonts.scm
@@ -26,6 +26,7 @@
 
 
 (use-modules (gnucash core-utils))
+(use-modules (ice-9 regex))
 
 (define (string-strip s1 s2)
   (let ((idx (string-contains-ci s1 s2)))
@@ -40,11 +41,24 @@
          (font-stretch "")
          (idx (string-index-right font-name #\space))
          (font-size (substring font-name (1+ idx) (string-length font-name)))
-         (font-name (string-take font-name idx)))
+         (font-name (string-take font-name idx))
+         (pat (make-regexp " weight=([0-9]+)" regexp/icase regexp/extended))
+         (match (regexp-exec pat font-name)))
 
-    (when (string-contains-ci font-name " bold")
+
+    (cond
+     ((string-contains-ci font-name " bold")
       (set! font-weight "font-weight: bold; ")
       (set! font-name (string-strip font-name " bold")))
+     ((string-contains-ci font-name " regular")
+      (set! font-weight "font-weight: normal; ")
+      (set! font-name (string-strip font-name " regular")))
+     ((string-contains-ci font-name " light")
+      (set! font-weight "font-weight: lighter; ")
+      (set! font-name (string-strip font-name " light")))
+     ((regexp-match? match)
+      (set! font-weight (regexp-substitute #f match "font-weight: " 1 "; "))
+      (set! font-name (regexp-substitute #f match 'pre 'post))))
 
     (cond
      ((string-contains-ci font-name " italic")
diff --git a/gnucash/report/test/test-html-fonts.scm b/gnucash/report/test/test-html-fonts.scm
index 0a6df2ca7..d5abc1827 100644
--- a/gnucash/report/test/test-html-fonts.scm
+++ b/gnucash/report/test/test-html-fonts.scm
@@ -14,11 +14,11 @@
   (test-begin "font-name-to-style-info")
 
   (test-equal "basic"
-    "font-family: \"Courier Regular\", sans-serif; font-size: 20pt; "
+    "font-family: \"Courier\", sans-serif; font-size: 20pt; font-weight: normal; "
     (font-name-to-style-info "Courier Regular 20"))
 
   (test-equal "basic size 50"
-    "font-family: \"Courier Regular\", sans-serif; font-size: 50pt; "
+    "font-family: \"Courier\", sans-serif; font-size: 50pt; font-weight: normal; "
     (font-name-to-style-info "Courier Regular 50"))
 
   (test-equal "basic size 50 bold"
@@ -33,4 +33,8 @@
     "font-family: \"Courier\", sans-serif; font-size: 15pt; font-style: oblique; "
     (font-name-to-style-info "Courier oblique 15"))
 
+  (test-equal "basic size 15 numeric weight"
+    "font-family: \"Courier\", sans-serif; font-size: 15pt; font-weight: 550; "
+    (font-name-to-style-info "Courier weight=550 15"))
+
   (test-end "font-name-to-style-info"))

commit 4ddd28a5d9f65e7c5f05bfee9d86a56fa5a67645
Author: John Ralls <jralls at ceridwen.us>
Date:   Mon Oct 26 11:48:22 2020 -0700

    Extract font-stretch when converting pango font names to CSS.
    
    Also wrap font-family value in quotes and lower-case the fallback
    generic sans-serif font-family for CSS conformance (though browsers
    don't seem to care).

diff --git a/gnucash/report/html-fonts.scm b/gnucash/report/html-fonts.scm
index 0cd86c176..ea5a3126f 100644
--- a/gnucash/report/html-fonts.scm
+++ b/gnucash/report/html-fonts.scm
@@ -37,6 +37,7 @@
 (define (font-name-to-style-info font-name)
   (let* ((font-style "")
          (font-weight "")
+         (font-stretch "")
          (idx (string-index-right font-name #\space))
          (font-size (substring font-name (1+ idx) (string-length font-name)))
          (font-name (string-take font-name idx)))
@@ -54,9 +55,18 @@
       (set! font-style "font-style: oblique; ")
       (set! font-name (string-strip font-name " oblique"))))
 
-    (string-append "font-family: " font-name ", Sans-Serif; "
+    (cond
+     ((string-contains-ci font-name " expanded")
+      (set! font-stretch "font-stretch: expanded; ")
+      (set! font-name (string-strip font-name " expanded")))
+
+     ((string-contains-ci font-name " condensed")
+      (set! font-stretch "font-stretch: condensed; ")
+      (set! font-name (string-strip font-name " condensed"))))
+
+    (string-append "font-family: \"" font-name "\", sans-serif; "
                    "font-size: " font-size "pt; "
-                   font-style font-weight)))
+                   font-style font-weight font-stretch)))
 
 ;; Registers font options
 (define (register-font-options options)
diff --git a/gnucash/report/test/test-html-fonts.scm b/gnucash/report/test/test-html-fonts.scm
index 65352f9a6..0a6df2ca7 100644
--- a/gnucash/report/test/test-html-fonts.scm
+++ b/gnucash/report/test/test-html-fonts.scm
@@ -14,23 +14,23 @@
   (test-begin "font-name-to-style-info")
 
   (test-equal "basic"
-    "font-family: Courier Regular, Sans-Serif; font-size: 20pt; "
+    "font-family: \"Courier Regular\", sans-serif; font-size: 20pt; "
     (font-name-to-style-info "Courier Regular 20"))
 
   (test-equal "basic size 50"
-    "font-family: Courier Regular, Sans-Serif; font-size: 50pt; "
+    "font-family: \"Courier Regular\", sans-serif; font-size: 50pt; "
     (font-name-to-style-info "Courier Regular 50"))
 
   (test-equal "basic size 50 bold"
-    "font-family: Courier, Sans-Serif; font-size: 50pt; font-weight: bold; "
+    "font-family: \"Courier\", sans-serif; font-size: 50pt; font-weight: bold; "
     (font-name-to-style-info "Courier bold 50"))
 
   (test-equal "basic size 50 italic"
-    "font-family: Courier, Sans-Serif; font-size: 50pt; font-style: italic; "
+    "font-family: \"Courier\", sans-serif; font-size: 50pt; font-style: italic; "
     (font-name-to-style-info "Courier italic 50"))
 
   (test-equal "basic size 15 oblique"
-    "font-family: Courier, Sans-Serif; font-size: 15pt; font-style: oblique; "
+    "font-family: \"Courier\", sans-serif; font-size: 15pt; font-style: oblique; "
     (font-name-to-style-info "Courier oblique 15"))
 
   (test-end "font-name-to-style-info"))

commit 676cc337dcff1cb68661169ee916b90fdbc1ace9
Author: John Ralls <jralls at ceridwen.us>
Date:   Mon Oct 26 11:45:23 2020 -0700

    [macOS] Replace bogus font name from pango.
    
    Pango on macOS reports ".AppleSystemUIFont" as the name for the
    system-ui alias. This bogus name doesn't work so replace it with
    the fallback Arial.

diff --git a/gnucash/report/gnc-report.c b/gnucash/report/gnc-report.c
index 45065f422..3981740df 100644
--- a/gnucash/report/gnc-report.c
+++ b/gnucash/report/gnc-report.c
@@ -284,7 +284,8 @@ gnc_get_default_report_font_family(void)
 
     pango_font_description_free (font_desc);
 
-    if (default_font_family == NULL)
+    if (default_font_family == NULL ||
+        g_str_has_prefix (default_font_family, ".AppleSystemUIFont"))
         return g_strdup("Arial");
     else
         return default_font_family;

commit 974342bbaeebccaadced41a038bbb7d8f8ae275a
Author: John Ralls <jralls at ceridwen.us>
Date:   Sun Oct 25 16:30:44 2020 -0700

    [macOS] Fix Fontconfig unable to find conf.d.

diff --git a/gnucash/CMakeLists.txt b/gnucash/CMakeLists.txt
index 7fabd3545..bc2ab97cd 100644
--- a/gnucash/CMakeLists.txt
+++ b/gnucash/CMakeLists.txt
@@ -226,7 +226,7 @@ if (MAC_INTEGRATION)
   file(APPEND ${ENV_FILE_OUT} "GIO_MODULE_DIR={SYS_LIB}/gio/modules\n")
   file(APPEND ${ENV_FILE_OUT} "XDG_CONFIG_HOME={HOME}/Library/Application Support/${PACKAGE_NAME}/config\n")
   file(APPEND ${ENV_FILE_OUT} "GDK_PIXBUF_MODULE_FILE={SYS_LIB}/gdk-pixbuf-2.0/2.10.0/loaders.cache\n")
-  file(APPEND ${ENV_FILE_OUT} "FONTCONFIG_FILE={GNC_HOME}/etc/fonts/fonts.conf\n")
+  file(APPEND ${ENV_FILE_OUT} "FONTCONFIG_PATH={GNC_HOME}/etc/fonts\n")
   file(APPEND ${ENV_FILE_OUT} "OFX_DTD_PATH={GNC_HOME}/share/libofx/dtd\n")
   file(APPEND ${ENV_FILE_OUT} "GNC_DBD_DIR={SYS_LIB}/dbd\n")
   file(APPEND ${ENV_FILE_OUT} "GTK_IM_MODULE_FILE={GNC_HOME}/lib/gtk-3.0/3.0.0/immodules.cache\n")

commit 92f272786219adee04b7ce96bb15abc864cbb15e
Merge: b675e17e4 1a4f27f6b
Author: Christopher Lam <christopher.lck at gmail.com>
Date:   Mon Oct 26 23:57:39 2020 +0800

    Merge branch 'maint-797982' into maint #802


commit 1a4f27f6b3b4d3ae2e9263396b32e684f434c96b
Author: Christopher Lam <christopher.lck at gmail.com>
Date:   Wed Oct 21 22:45:06 2020 +0800

    [html-utilities.scm] deprecate gnc:html-make-exchangerates
    
    Because old exchange rates function used exchange-fn which converts 1
    commodity into domestic currency; new exchange rates uses price-fn
    which queries the gnc_numeric pricedb entry directly.

diff --git a/gnucash/report/html-utilities.scm b/gnucash/report/html-utilities.scm
index fb46b6a34..50629e01d 100644
--- a/gnucash/report/html-utilities.scm
+++ b/gnucash/report/html-utilities.scm
@@ -207,6 +207,8 @@
 ;; function 'exchange-fn' and the 'accounts' determine which
 ;; commodities to show. Returns a html-object, a <html-table>.
 (define (gnc:html-make-exchangerates common-commodity exchange-fn accounts)
+  (issue-deprecation-warning
+   "gnc:html-make-exchangerates is deprecated. use gnc:html-make-rates-table instead.")
   (let ((comm-list (gnc:accounts-get-commodities accounts common-commodity))
         (markup (lambda (c) (gnc:make-html-table-cell/markup "number-cell" c)))
         (table (gnc:make-html-table)))

commit 89c0baee9b6f6ae6c7c74730f9920a61157adb93
Author: Christopher Lam <christopher.lck at gmail.com>
Date:   Mon Oct 19 22:29:59 2020 +0800

    Bug 797982 - exchange rates' decimal places
    
    use gnc:html-make-rates-table instead of gnc:html-make-exchangerates
    to show effective exchange rate or price used

diff --git a/gnucash/report/reports/standard/account-summary.scm b/gnucash/report/reports/standard/account-summary.scm
index 0ea163838..0ffb26641 100644
--- a/gnucash/report/reports/standard/account-summary.scm
+++ b/gnucash/report/reports/standard/account-summary.scm
@@ -315,6 +315,7 @@
                          (gnc:get-current-account-tree-depth)
                          depth-limit))
          ;; exchange rates calculation parameters
+         (price-fn (gnc:case-price-fn price-source report-commodity to-date))
          (exchange-fn (gnc:case-exchange-fn price-source report-commodity to-date)))
 
     (gnc:html-document-set-title!
@@ -441,8 +442,8 @@
           ;; add currency information
           (when show-rates?
             (gnc:html-document-add-object!
-             doc (gnc:html-make-exchangerates
-                  report-commodity exchange-fn
+             doc (gnc:html-make-rates-table
+                  report-commodity price-fn
                   (gnc:accounts-and-all-descendants accounts))))))
 
     (gnc:report-finished)
diff --git a/gnucash/report/reports/standard/balance-sheet.scm b/gnucash/report/reports/standard/balance-sheet.scm
index dddc7dfdc..6c1c32d76 100644
--- a/gnucash/report/reports/standard/balance-sheet.scm
+++ b/gnucash/report/reports/standard/balance-sheet.scm
@@ -343,6 +343,7 @@
          (tree-depth (if (eq? depth-limit 'all)
                          (gnc:get-current-account-tree-depth)
                          depth-limit))
+         (price-fn (gnc:case-price-fn price-source report-commodity reportdate))
          ;; exchange rates calculation parameters
          (exchange-fn
           (gnc:case-exchange-fn price-source report-commodity reportdate)))
@@ -550,7 +551,7 @@
           (gnc:report-percent-done 90)
           (when show-rates?
             (gnc:html-document-add-object!
-             doc (gnc:html-make-exchangerates report-commodity exchange-fn accounts)))
+             doc (gnc:html-make-rates-table report-commodity price-fn accounts)))
 
           (gnc:report-percent-done 100)))
 
diff --git a/gnucash/report/reports/standard/budget-balance-sheet.scm b/gnucash/report/reports/standard/budget-balance-sheet.scm
index d50a7a0d7..03df94ece 100644
--- a/gnucash/report/reports/standard/budget-balance-sheet.scm
+++ b/gnucash/report/reports/standard/budget-balance-sheet.scm
@@ -355,7 +355,8 @@
          ;; exchange rates calculation parameters
 	 (exchange-fn
 	  (gnc:case-exchange-fn price-source report-commodity date-t64))
-	 )
+
+         (price-fn (gnc:case-price-fn price-source report-commodity date-t64)))
     
     (define (add-subtotal-line table pos-label neg-label signed-balance)
       (let* ((neg? (and signed-balance neg-label
@@ -808,8 +809,7 @@
           (if show-rates?
               (gnc:html-document-add-object! 
                doc ;;(gnc:html-markup-p)
-               (gnc:html-make-exchangerates 
-                report-commodity exchange-fn accounts)))
+               (gnc:html-make-rates-table report-commodity price-fn accounts)))
 	  (gnc:report-percent-done 100)))))
     
     (gnc:report-finished)
diff --git a/gnucash/report/reports/standard/budget-income-statement.scm b/gnucash/report/reports/standard/budget-income-statement.scm
index 2e2978b56..e12e22e7e 100644
--- a/gnucash/report/reports/standard/budget-income-statement.scm
+++ b/gnucash/report/reports/standard/budget-income-statement.scm
@@ -401,7 +401,8 @@
          ;; exchange rates calculation parameters
 	 (exchange-fn
 	  (gnc:case-exchange-fn price-source report-commodity date-t64))
-	 )
+
+         (price-fn (gnc:case-price-fn price-source report-commodity date-t64)))
     
     (define (add-subtotal-line table pos-label neg-label signed-balance)
       (let* ((neg? (and signed-balance neg-label
@@ -595,7 +596,7 @@
         (gnc:report-percent-done 90)
         (when show-rates?
           (gnc:html-document-add-object!
-           doc (gnc:html-make-exchangerates report-commodity exchange-fn accounts)))
+           doc (gnc:html-make-rates-table report-commodity price-fn accounts)))
         (gnc:report-percent-done 100))))
     
     (gnc:report-finished)
diff --git a/gnucash/report/reports/standard/cash-flow.scm b/gnucash/report/reports/standard/cash-flow.scm
index 623f71998..2379e1885 100644
--- a/gnucash/report/reports/standard/cash-flow.scm
+++ b/gnucash/report/reports/standard/cash-flow.scm
@@ -149,6 +149,8 @@
          (exchange-fn (gnc:case-exchange-fn
                        price-source report-currency to-date-t64))
 
+         (price-fn (gnc:case-price-fn price-source report-currency to-date-t64))
+
          (doc (gnc:make-html-document))
          (table (gnc:make-html-table))
 
@@ -321,8 +323,8 @@
               (if show-rates?
                   (gnc:html-document-add-object!
                    doc ;;(gnc:html-markup-p
-                   (gnc:html-make-exchangerates
-                    report-currency exchange-fn accounts))))))
+                   (gnc:html-make-rates-table
+                    report-currency price-fn accounts))))))
 
         ;; error condition: no accounts specified
 
diff --git a/gnucash/report/reports/standard/equity-statement.scm b/gnucash/report/reports/standard/equity-statement.scm
index ce13efc1c..4b47cb179 100644
--- a/gnucash/report/reports/standard/equity-statement.scm
+++ b/gnucash/report/reports/standard/equity-statement.scm
@@ -280,7 +280,9 @@
 	 (end-exchange-fn
 	  (gnc:case-exchange-fn
 	   price-source report-commodity end-date))
-	 )
+
+         (start-price-fn (gnc:case-price-fn price-source report-commodity start-date))
+         (end-price-fn (gnc:case-price-fn price-source report-commodity end-date)))
 
     (define (unrealized-gains-at-date book-balance exchange-fn date)
       (define cost-fn
@@ -496,10 +498,10 @@
 		   (headers (list
 			     (qof-print-date start-date-printable)
 			     (qof-print-date end-date)))
-		   (then (gnc:html-make-exchangerates
-			  report-commodity start-exchange-fn accounts))
-		   (now (gnc:html-make-exchangerates
-                         report-commodity end-exchange-fn accounts)))
+		   (then (gnc:html-make-rates-table
+			  report-commodity start-price-fn accounts))
+		   (now (gnc:html-make-rates-table
+                         report-commodity end-price-fn accounts)))
 	      (gnc:html-table-set-col-headers! curr-tbl headers)
 	      (gnc:html-table-set-style!
 	       curr-tbl "table" 'attribute '("border" "1"))
diff --git a/gnucash/report/reports/standard/income-statement.scm b/gnucash/report/reports/standard/income-statement.scm
index 93988525d..ec9d8df4e 100644
--- a/gnucash/report/reports/standard/income-statement.scm
+++ b/gnucash/report/reports/standard/income-statement.scm
@@ -382,7 +382,7 @@
          ;; exchange rates calculation parameters
 	 (exchange-fn
 	  (gnc:case-exchange-fn price-source report-commodity end-date))
-	 )
+         (price-fn (gnc:case-price-fn price-source report-commodity end-date)))
 
     ;; Wrapper to call gnc:html-table-add-labeled-amount-line!
     ;; with the proper arguments.
@@ -561,8 +561,8 @@
           (gnc:report-percent-done 90)
           (when show-rates?
             (gnc:html-document-add-object!
-             doc (gnc:html-make-exchangerates
-                  report-commodity exchange-fn accounts)))
+             doc (gnc:html-make-rates-table
+                  report-commodity price-fn accounts)))
           (gnc:report-percent-done 100)))
 
     (gnc:report-finished)
diff --git a/gnucash/report/reports/standard/trial-balance.scm b/gnucash/report/reports/standard/trial-balance.scm
index 18b06f8ab..b305d70c5 100644
--- a/gnucash/report/reports/standard/trial-balance.scm
+++ b/gnucash/report/reports/standard/trial-balance.scm
@@ -401,6 +401,7 @@
          ;; exchange rates calculation parameters
          (exchange-fn
           (gnc:case-exchange-fn price-source report-commodity end-date))
+         (price-fn (gnc:case-price-fn price-source report-commodity end-date))
          (period-for (string-append " " (G_ "for Period"))))
 
     (gnc:html-document-set-title!
@@ -894,8 +895,8 @@
           (if show-rates?
               (gnc:html-document-add-object!
                doc
-               (gnc:html-make-exchangerates
-                report-commodity exchange-fn accounts)))
+               (gnc:html-make-rates-table
+                report-commodity price-fn accounts)))
           (gnc:report-percent-done 100)))
 
     (gnc:report-finished)

commit 4ff3355f02498308d4683906e2a23620b0b0414e
Author: Christopher Lam <christopher.lck at gmail.com>
Date:   Tue Oct 20 21:55:55 2020 +0800

    [html-style-info.scm] price-renderer does not convert to decimal
    
    so that it may obey global pref decimal vs fraction

diff --git a/gnucash/report/html-style-info.scm b/gnucash/report/html-style-info.scm
index 20f34e640..0c58671ec 100644
--- a/gnucash/report/html-style-info.scm
+++ b/gnucash/report/html-style-info.scm
@@ -167,12 +167,8 @@
   (xaccPrintAmount datum (gnc-default-print-info #f)))
 
 ;; renders a price to target currency
-(define (gnc:default-price-renderer currency amount)
-  (xaccPrintAmount
-   (gnc-numeric-convert
-    amount (min 10000 (* 100 (gnc-commodity-get-fraction currency)))
-    GNC-HOW-RND-ROUND)
-   (gnc-price-print-info currency #t)))
+(define (gnc:default-price-renderer currency price)
+  (xaccPrintAmount price (gnc-price-print-info currency #t)))
 
 (define (gnc:default-html-gnc-monetary-renderer datum params)
   (let* ((comm (gnc:gnc-monetary-commodity datum))

commit e7165507c8497bfbcf7d3b107ca4e9ed2912a9d3
Author: Christopher Lam <christopher.lck at gmail.com>
Date:   Tue Oct 20 10:03:48 2020 +0800

    [commodity-utils.scm][api] gnc:html-make-rates-table with price-fn
    
    better precision than gnc:html-make-exchangerates

diff --git a/gnucash/report/commodity-utilities.scm b/gnucash/report/commodity-utilities.scm
index c6c87efa2..e777a2a84 100644
--- a/gnucash/report/commodity-utilities.scm
+++ b/gnucash/report/commodity-utilities.scm
@@ -21,6 +21,7 @@
 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
 
 (use-modules (ice-9 match))
+(use-modules (srfi srfi-26))
 
 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
 ;; Functions to get splits with interesting data from accounts.
@@ -764,6 +765,18 @@
          (gnc:exchange-by-pricedb-nearest
           foreign domestic to-date-tp))))))
 
+(define (gnc:case-price-fn source target-curr date)
+  (define pdb (gnc-pricedb-get-db (gnc-get-current-book)))
+  (case source
+    ((pricedb-nearest) (cut gnc-pricedb-get-nearest-price pdb <> target-curr date))
+    ((pricedb-latest)  (cut gnc-pricedb-get-latest-price pdb <> target-curr))
+    (else
+     (lambda (commodity)
+       (let* ((exchange-fn (gnc:case-exchange-fn source target-curr date))
+              (foreign-mon (gnc:make-gnc-monetary commodity 1))
+              (domestic-mon (exchange-fn foreign-mon target-curr)))
+         (gnc:gnc-monetary-amount domestic-mon))))))
+
 ;; Return a ready-to-use function. Which one to use is determined by
 ;; the value of 'source-option', whose possible values are set in
 ;; gnc:options-add-price-source!.
diff --git a/gnucash/report/html-utilities.scm b/gnucash/report/html-utilities.scm
index d536201e0..fb46b6a34 100644
--- a/gnucash/report/html-utilities.scm
+++ b/gnucash/report/html-utilities.scm
@@ -228,6 +228,30 @@
                             (G_ "Exchange rates"))))))
     table))
 
+;; Create a html-table of all prices. The report-currency is
+;; 'currency', The prices are given through the function 'price-fn'
+;; and the 'accounts' determine which commodities to show. Returns a
+;; html-object, a <html-table>. price-fn is easily obtained from
+;; gnc:case-price-fn
+(define (gnc:html-make-rates-table currency price-fn accounts)
+  (define (cell c) (gnc:make-html-table-cell/markup "number-cell" c))
+  (define table (gnc:make-html-table))
+  (let lp ((comm-list (gnc:accounts-get-commodities accounts currency)) (entries 0))
+    (match comm-list
+      (()
+       (unless (zero? entries)
+         (gnc:html-table-set-col-headers!
+          table (list (gnc:make-html-table-header-cell/size
+                       1 2 (if (= entries 1) (G_ "Exchange rate")
+                               (G_ "Exchange rates"))))))
+       table)
+      ((comm . rest)
+       (gnc:html-table-append-row!
+        table
+        (list (cell (gnc:make-gnc-monetary comm 1))
+              (cell (gnc:default-price-renderer currency (price-fn comm)))))
+       (lp rest (1+ entries))))))
+
 
 (define (gnc:html-make-generic-budget-warning report-title-string)
   (gnc:html-make-generic-simple-warning
diff --git a/gnucash/report/report.scm b/gnucash/report/report.scm
index 7791d969e..8444da85c 100644
--- a/gnucash/report/report.scm
+++ b/gnucash/report/report.scm
@@ -58,6 +58,7 @@
 (export gnc:exchange-by-pricealist-nearest)
 (export gnc:case-exchange-fn)
 (export gnc:case-exchange-time-fn)
+(export gnc:case-price-fn)
 (export gnc:sum-collector-commodity)
 
 ;; options-utilities.scm
@@ -104,6 +105,7 @@
 (export gnc:assign-colors)
 (export gnc:html-table-append-ruler!)
 (export gnc:html-make-exchangerates)
+(export gnc:html-make-rates-table)
 (export gnc:html-render-options-changed)
 (export gnc:html-make-generic-warning)
 (export gnc:html-make-no-account-warning)

commit e833c8e1aa6f55341692d81c9d87aa0ad53b393b
Author: Christopher Lam <christopher.lck at gmail.com>
Date:   Mon Oct 26 20:48:52 2020 +0800

    [utest-gnc-pricedb.c] test: gnc_pricedb_get_[latest|nearest]_price

diff --git a/libgnucash/engine/test/utest-gnc-pricedb.c b/libgnucash/engine/test/utest-gnc-pricedb.c
index 0afeb86c1..daf34df4f 100644
--- a/libgnucash/engine/test/utest-gnc-pricedb.c
+++ b/libgnucash/engine/test/utest-gnc-pricedb.c
@@ -1248,6 +1248,84 @@ test_gnc_pricedb_convert_balance_nearest_price_t64 (PriceDBFixture *fixture, gco
     g_assert_cmpint(result.denom, ==, 100);
 
 }
+
+static void
+test_gnc_pricedb_get_latest_price (PriceDBFixture *fixture, gconstpointer pData)
+{
+    gnc_numeric result;
+
+    result = gnc_pricedb_get_latest_price (fixture->pricedb,
+                                           fixture->com->usd,
+                                           fixture->com->aud);
+    g_assert_cmpint(result.num, ==, 3587);
+    g_assert_cmpint(result.denom, ==, 3125);
+
+    result = gnc_pricedb_get_latest_price (fixture->pricedb,
+                                           fixture->com->usd,
+                                           fixture->com->gbp);
+    g_assert_cmpint(result.num, ==, 50000);
+    g_assert_cmpint(result.denom, ==, 78829);
+
+    result = gnc_pricedb_get_latest_price (fixture->pricedb,
+                                           fixture->com->usd,
+                                           fixture->com->eur);
+    g_assert_cmpint(result.num, ==, 63418);
+    g_assert_cmpint(result.denom, ==, 78829);
+
+    result = gnc_pricedb_get_latest_price (fixture->pricedb,
+                                           fixture->com->gbp,
+                                           fixture->com->dkk);
+    g_assert_cmpint(result.num, ==, 47194370497);
+    g_assert_cmpint(result.denom, ==, 5000000000);
+
+    result = gnc_pricedb_get_latest_price (fixture->pricedb,
+                                           fixture->com->amzn,
+                                           fixture->com->aud);
+    g_assert_cmpint(result.num, ==, 111738637);
+    g_assert_cmpint(result.denom, ==, 312500);
+}
+
+static void
+test_gnc_pricedb_get_nearest_price (PriceDBFixture *fixture, gconstpointer pData)
+{
+    time64 t = gnc_dmy2time64(15, 8, 2011);
+    gnc_numeric result;
+
+    result = gnc_pricedb_get_nearest_price (fixture->pricedb,
+                                            fixture->com->usd,
+                                            fixture->com->aud, t);
+    g_assert_cmpint(result.num, ==, 1250);
+    g_assert_cmpint(result.denom, ==, 1331);
+
+    result = gnc_pricedb_get_nearest_price (fixture->pricedb,
+                                            fixture->com->usd,
+                                            fixture->com->gbp,
+                                            t);
+    g_assert_cmpint(result.num, ==, 100000);
+    g_assert_cmpint(result.denom, ==, 161643);
+
+    result = gnc_pricedb_get_nearest_price (fixture->pricedb,
+                                            fixture->com->usd,
+                                            fixture->com->eur,
+                                            t);
+    g_assert_cmpint(result.num, ==, 37763);
+    g_assert_cmpint(result.denom, ==, 53881);
+
+    result = gnc_pricedb_get_nearest_price (fixture->pricedb,
+                                            fixture->com->gbp,
+                                            fixture->com->dkk,
+                                            t);
+    g_assert_cmpint(result.num, ==, 84450223707);
+    g_assert_cmpint(result.denom, ==, 10000000000);
+
+    result = gnc_pricedb_get_nearest_price (fixture->pricedb,
+                                            fixture->com->amzn,
+                                            fixture->com->aud,
+                                            t);
+    g_assert_cmpint(result.num, ==, 278150);
+    g_assert_cmpint(result.denom, ==, 1331);
+}
+
 /* pricedb_foreach_pricelist
 static void
 pricedb_foreach_pricelist(gpointer key, gpointer val, gpointer user_data)// Local: 0:1:0
@@ -1504,6 +1582,8 @@ test_suite_gnc_pricedb (void)
 // GNC_TEST_ADD (suitename, "indirect balance conversion", Fixture, NULL, setup, test_indirect_balance_conversion, teardown);
     GNC_TEST_ADD (suitename, "gnc pricedb convert balance latest price", PriceDBFixture, NULL, setup, test_gnc_pricedb_convert_balance_latest_price, teardown);
     GNC_TEST_ADD (suitename, "gnc pricedb convert balance nearest price", PriceDBFixture, NULL, setup, test_gnc_pricedb_convert_balance_nearest_price_t64, teardown);
+    GNC_TEST_ADD (suitename, "gnc pricedb get latest price", PriceDBFixture, NULL, setup, test_gnc_pricedb_get_latest_price, teardown);
+    GNC_TEST_ADD (suitename, "gnc pricedb get nearest price", PriceDBFixture, NULL, setup, test_gnc_pricedb_get_nearest_price, teardown);
 // GNC_TEST_ADD (suitename, "pricedb foreach pricelist", Fixture, NULL, setup, test_pricedb_foreach_pricelist, teardown);
 // GNC_TEST_ADD (suitename, "pricedb foreach currencies hash", Fixture, NULL, setup, test_pricedb_foreach_currencies_hash, teardown);
 // GNC_TEST_ADD (suitename, "unstable price traversal", Fixture, NULL, setup, test_unstable_price_traversal, teardown);

commit 2ecdd70e2412dac95d6b65eece136e718797252f
Author: Christopher Lam <christopher.lck at gmail.com>
Date:   Mon Oct 19 20:08:44 2020 +0800

    [gnc-pricedb.c][api] pull out composite pricedb price retriever
    
    * tries direct price retrieval from pricedb.
    * if fails, tries intermediate currency.

diff --git a/libgnucash/engine/gnc-pricedb.c b/libgnucash/engine/gnc-pricedb.c
index 3b39788c1..481df22ad 100644
--- a/libgnucash/engine/gnc-pricedb.c
+++ b/libgnucash/engine/gnc-pricedb.c
@@ -2435,35 +2435,6 @@ gnc_pricedb_lookup_latest_before_t64 (GNCPriceDB *db,
     return current_price;
 }
 
-static gnc_numeric
-direct_balance_conversion (GNCPriceDB *db, gnc_numeric bal,
-                           const gnc_commodity *from, const gnc_commodity *to,
-                           time64 t)
-{
-    GNCPrice *price;
-    gnc_numeric retval = gnc_numeric_zero();
-    if (from == NULL || to == NULL)
-        return retval;
-    if (gnc_numeric_zero_p(bal))
-        return retval;
-    if (t != INT64_MAX)
-        price = gnc_pricedb_lookup_nearest_in_time64(db, from, to, t);
-    else
-        price = gnc_pricedb_lookup_latest(db, from, to);
-    if (price == NULL)
-        return retval;
-    if (gnc_price_get_commodity(price) == from)
-        retval = gnc_numeric_mul (bal, gnc_price_get_value (price),
-                                  gnc_commodity_get_fraction (to),
-                                  GNC_HOW_RND_ROUND);
-    else
-        retval = gnc_numeric_div (bal, gnc_price_get_value (price),
-                                  gnc_commodity_get_fraction (to),
-                                  GNC_HOW_RND_ROUND);
-    gnc_price_unref (price);
-    return retval;
-
-}
 
 typedef struct
 {
@@ -2601,72 +2572,35 @@ direct_price_conversion (GNCPriceDB *db, const gnc_commodity *from,
     return retval;
 }
 
-static gnc_numeric
-convert_balance(gnc_numeric bal, const gnc_commodity *from,
-                const gnc_commodity *to, PriceTuple tuple)
+gnc_numeric
+gnc_pricedb_get_nearest_price (GNCPriceDB *pdb,
+                               const gnc_commodity *orig_currency,
+                               const gnc_commodity *new_currency,
+                               const time64 t)
 {
-    gnc_commodity *from_com = gnc_price_get_commodity(tuple.from);
-    gnc_commodity *from_cur = gnc_price_get_currency(tuple.from);
-    gnc_commodity *to_com = gnc_price_get_commodity(tuple.to);
-    gnc_commodity *to_cur = gnc_price_get_currency(tuple.to);
-    gnc_numeric from_val = gnc_price_get_value(tuple.from);
-    gnc_numeric to_val = gnc_price_get_value(tuple.to);
-    int fraction = gnc_commodity_get_fraction(to);
+    gnc_numeric price;
 
-    int no_round = GNC_HOW_DENOM_EXACT | GNC_HOW_RND_NEVER;
-    if (from_cur == from && to_cur == to)
-        return gnc_numeric_div(gnc_numeric_mul(bal, to_val, GNC_DENOM_AUTO,
-                                               no_round),
-                               from_val, fraction, GNC_HOW_RND_ROUND);
-    if (from_com == from && to_com == to)
-        return gnc_numeric_div(gnc_numeric_mul(bal, from_val, GNC_DENOM_AUTO,
-                                               no_round),
-                               to_val, fraction, GNC_HOW_RND_ROUND);
-    if (from_cur == from)
-        return gnc_numeric_div(bal, gnc_numeric_mul(from_val, to_val,
-                                                    GNC_DENOM_AUTO, no_round),
-                               fraction, GNC_HOW_RND_ROUND);
-    return gnc_numeric_mul(bal, gnc_numeric_mul(from_val, to_val,
-                                                GNC_DENOM_AUTO, no_round),
-                           fraction, GNC_HOW_RND_ROUND);
+    if (gnc_commodity_equiv (orig_currency, new_currency))
+        return gnc_numeric_create (1, 1);
+
+    /* Look for a direct price. */
+    price = direct_price_conversion (pdb, orig_currency, new_currency, t);
+
+    /*
+     * no direct price found, try find a price in another currency
+     */
+    if (gnc_numeric_zero_p (price))
+        price = indirect_price_conversion (pdb, orig_currency, new_currency, t);
 
+    return gnc_numeric_reduce (price);
 }
-static gnc_numeric
-indirect_balance_conversion (GNCPriceDB *db, gnc_numeric bal,
-                             const gnc_commodity *from, const gnc_commodity *to,
-                             time64 t )
+
+gnc_numeric
+gnc_pricedb_get_latest_price (GNCPriceDB *pdb,
+                              const gnc_commodity *orig_currency,
+                              const gnc_commodity *new_currency)
 {
-    GList *from_prices = NULL, *to_prices = NULL;
-    PriceTuple tuple;
-    gnc_numeric zero = gnc_numeric_zero();
-    if (from == NULL || to == NULL)
-        return zero;
-    if (gnc_numeric_zero_p(bal))
-        return zero;
-    if (t == INT64_MAX)
-    {
-        from_prices = gnc_pricedb_lookup_latest_any_currency(db, from);
-        /* "to" is often the book currency which may have lots of prices,
-            so avoid getting them if they aren't needed. */
-        if (from_prices)
-            to_prices = gnc_pricedb_lookup_latest_any_currency(db, to);
-    }
-    else
-    {
-        from_prices = gnc_pricedb_lookup_nearest_in_time_any_currency_t64(db,
-                                                                      from, t);
-        if (from_prices)
-            to_prices = gnc_pricedb_lookup_nearest_in_time_any_currency_t64(db,
-                                                                    to, t);
-    }
-    if (from_prices == NULL || to_prices == NULL)
-        return zero;
-    tuple = extract_common_prices(from_prices, to_prices, from, to);
-    gnc_price_list_destroy(from_prices);
-    gnc_price_list_destroy(to_prices);
-    if (tuple.from)
-        return convert_balance(bal, from, to, tuple);
-    return zero;
+    return gnc_pricedb_get_nearest_price (pdb, orig_currency, new_currency, INT64_MAX);
 }
 
 static gnc_numeric convert_amount_at_date (GNCPriceDB *pdb,
@@ -2675,25 +2609,16 @@ static gnc_numeric convert_amount_at_date (GNCPriceDB *pdb,
                                            const gnc_commodity *new_currency,
                                            const time64 t)
 {
-    gnc_numeric new_value;
+    gnc_numeric price;
 
-    if (gnc_numeric_zero_p (amount) ||
-        gnc_commodity_equiv (orig_currency, new_currency))
+    if (gnc_numeric_zero_p (amount))
         return amount;
 
-    /* Look for a direct price. */
-    new_value = direct_balance_conversion
-        (pdb, amount, orig_currency, new_currency, t);
-
-    /*
-     * no direct price found, try if we find a price in another currency
-     * and convert in two stages
-     */
-    if (gnc_numeric_zero_p (new_value))
-        new_value = indirect_balance_conversion
-            (pdb, amount, orig_currency, new_currency, t);
+    price = gnc_pricedb_get_nearest_price (pdb, orig_currency, new_currency, t);
 
-    return new_value;
+    return gnc_numeric_mul
+        (amount, price, gnc_commodity_get_fraction (new_currency),
+         GNC_HOW_DENOM_EXACT | GNC_HOW_RND_ROUND);
 }
 
 /*
diff --git a/libgnucash/engine/gnc-pricedb.h b/libgnucash/engine/gnc-pricedb.h
index 6a8301f3c..5010476c3 100644
--- a/libgnucash/engine/gnc-pricedb.h
+++ b/libgnucash/engine/gnc-pricedb.h
@@ -559,6 +559,24 @@ PriceList * gnc_pricedb_lookup_latest_before_any_currency_t64(GNCPriceDB *db,
                                                               time64 t);
 
 
+/** @brief Retrieve the price one currency to another at specified date
+ * @param pdb The pricedb
+ * @param orig_currency The commodity in which the balance is currently
+ * expressed
+ * @param new_currency The commodity to which the balance should be converted
+ * @return A price, or gnc_numeric_zero if no price is available.
+ */
+
+gnc_numeric gnc_pricedb_get_nearest_price (GNCPriceDB *pdb,
+                                           const gnc_commodity *orig_currency,
+                                           const gnc_commodity *new_currency,
+                                           const time64 t);
+
+gnc_numeric gnc_pricedb_get_latest_price (GNCPriceDB *pdb,
+                                          const gnc_commodity *orig_currency,
+                                          const gnc_commodity *new_currency);
+
+
 /** @brief Convert a balance from one currency to another using the most recent
  * price between the two.
  * @param pdb The pricedb

commit b675e17e4e24bb738bf786bc9eb642a5241e81d0
Author: Frank H. Ellenberger <frank.h.ellenberger at gmail.com>
Date:   Sun Oct 25 07:48:23 2020 +0100

    L10N:de: Fix typo of last commit

diff --git a/po/de.po b/po/de.po
index 47721f1d9..25ea99a4a 100644
--- a/po/de.po
+++ b/po/de.po
@@ -9048,7 +9048,7 @@ msgstr ""
 "Jan-Uwe Finck, 1999\n"
 "\n"
 "Anregungen, Kritik und Fragen zur Übersetzung an die\n"
-"deutschsprachige GnuCash-Gemeinschaft <gnucash-de at gnucash.org\n"
+"deutschsprachige GnuCash-Gemeinschaft <gnucash-de at gnucash.org>\n"
 "Um die Moderation zu vermeiden, empfiehlt sich die Anmeldung auf der\n"
 "<a href=\"https://lists.gnucash.org/mailman/listinfo/gnucash-de\">Liste gnucash-de</a>"
 

commit 5671028ba338498eb77ffdd40a376c0fb0e9fad5
Author: Frank H. Ellenberger <frank.h.ellenberger at gmail.com>
Date:   Fri Oct 23 21:24:15 2020 +0200

    L10N:de: Verbesserung translator-credits (von it.po)

diff --git a/po/de.po b/po/de.po
index d07bf5b2d..47721f1d9 100644
--- a/po/de.po
+++ b/po/de.po
@@ -9047,7 +9047,10 @@ msgstr ""
 "Christian Meyer, 2000-2001\n"
 "Jan-Uwe Finck, 1999\n"
 "\n"
-"Verbesserungsvorschläge zur Übersetzung an gnucash-de at gnucash.org"
+"Anregungen, Kritik und Fragen zur Übersetzung an die\n"
+"deutschsprachige GnuCash-Gemeinschaft <gnucash-de at gnucash.org\n"
+"Um die Moderation zu vermeiden, empfiehlt sich die Anmeldung auf der\n"
+"<a href=\"https://lists.gnucash.org/mailman/listinfo/gnucash-de\">Liste gnucash-de</a>"
 
 #: gnucash/gnome-utils/gnc-main-window.c:4540
 msgid "Visit the GnuCash website."

commit 4d63eb922f4ae3794315dad36c9dafc0e9f752e3
Author: Christopher Lam <christopher.lck at gmail.com>
Date:   Mon Oct 19 10:47:50 2020 +0800

    [gnc-pricedb.c] copy convert_amount to convert_price

diff --git a/libgnucash/engine/gnc-pricedb.c b/libgnucash/engine/gnc-pricedb.c
index 6887652d6..3b39788c1 100644
--- a/libgnucash/engine/gnc-pricedb.c
+++ b/libgnucash/engine/gnc-pricedb.c
@@ -2513,6 +2513,94 @@ extract_common_prices (PriceList *from_prices, PriceList *to_prices,
     return retval;
 }
 
+
+static gnc_numeric
+convert_price (const gnc_commodity *from, const gnc_commodity *to, PriceTuple tuple)
+{
+    gnc_commodity *from_com = gnc_price_get_commodity (tuple.from);
+    gnc_commodity *from_cur = gnc_price_get_currency (tuple.from);
+    gnc_commodity *to_com = gnc_price_get_commodity (tuple.to);
+    gnc_commodity *to_cur = gnc_price_get_currency (tuple.to);
+    gnc_numeric from_val = gnc_price_get_value (tuple.from);
+    gnc_numeric to_val = gnc_price_get_value (tuple.to);
+    gnc_numeric price;
+    int no_round = GNC_HOW_DENOM_EXACT | GNC_HOW_RND_NEVER;
+
+    price = gnc_numeric_div (to_val, from_val, GNC_DENOM_AUTO, no_round);
+
+    if (from_cur == from && to_cur == to)
+        return price;
+
+    if (from_com == from && to_com == to)
+        return gnc_numeric_invert (price);
+
+    price = gnc_numeric_mul (from_val, to_val, GNC_DENOM_AUTO, no_round);
+
+    if (from_cur == from)
+        return gnc_numeric_invert (price);
+
+    return price;
+}
+
+static gnc_numeric
+indirect_price_conversion (GNCPriceDB *db, const gnc_commodity *from,
+                           const gnc_commodity *to, time64 t)
+{
+    GList *from_prices = NULL, *to_prices = NULL;
+    PriceTuple tuple;
+    gnc_numeric zero = gnc_numeric_zero();
+    if (!from || !to)
+        return zero;
+    if (t == INT64_MAX)
+    {
+        from_prices = gnc_pricedb_lookup_latest_any_currency(db, from);
+        /* "to" is often the book currency which may have lots of prices,
+            so avoid getting them if they aren't needed. */
+        if (from_prices)
+            to_prices = gnc_pricedb_lookup_latest_any_currency(db, to);
+    }
+    else
+    {
+        from_prices = gnc_pricedb_lookup_nearest_in_time_any_currency_t64 (db, from, t);
+        if (from_prices)
+            to_prices = gnc_pricedb_lookup_nearest_in_time_any_currency_t64 (db, to, t);
+    }
+    if (!from_prices || !to_prices)
+        return zero;
+    tuple = extract_common_prices (from_prices, to_prices, from, to);
+    gnc_price_list_destroy (from_prices);
+    gnc_price_list_destroy (to_prices);
+    if (tuple.from)
+        return convert_price (from, to, tuple);
+    return zero;
+}
+
+
+static gnc_numeric
+direct_price_conversion (GNCPriceDB *db, const gnc_commodity *from,
+                         const gnc_commodity *to, time64 t)
+{
+    GNCPrice *price;
+    gnc_numeric retval = gnc_numeric_zero();
+
+    if (!from || !to) return retval;
+
+    if (t == INT64_MAX)
+        price = gnc_pricedb_lookup_latest(db, from, to);
+    else
+        price = gnc_pricedb_lookup_nearest_in_time64(db, from, to, t);
+
+    if (!price) return retval;
+
+    retval = gnc_price_get_value (price);
+
+    if (gnc_price_get_commodity (price) != from)
+        retval = gnc_numeric_invert (retval);
+
+    gnc_price_unref (price);
+    return retval;
+}
+
 static gnc_numeric
 convert_balance(gnc_numeric bal, const gnc_commodity *from,
                 const gnc_commodity *to, PriceTuple tuple)

commit 26e7eada37efa2a3b91509483e17e9c9ba544ec6
Author: Christopher Lam <christopher.lck at gmail.com>
Date:   Mon Oct 19 10:26:23 2020 +0800

    [gnc-pricedb.c] refactor amount converters, use common code

diff --git a/libgnucash/engine/gnc-pricedb.c b/libgnucash/engine/gnc-pricedb.c
index 94075ac03..6887652d6 100644
--- a/libgnucash/engine/gnc-pricedb.c
+++ b/libgnucash/engine/gnc-pricedb.c
@@ -2581,34 +2581,44 @@ indirect_balance_conversion (GNCPriceDB *db, gnc_numeric bal,
     return zero;
 }
 
-
-/*
- * Convert a balance from one currency to another.
- */
-gnc_numeric
-gnc_pricedb_convert_balance_latest_price(GNCPriceDB *pdb,
-        gnc_numeric balance,
-        const gnc_commodity *balance_currency,
-        const gnc_commodity *new_currency)
+static gnc_numeric convert_amount_at_date (GNCPriceDB *pdb,
+                                           gnc_numeric amount,
+                                           const gnc_commodity *orig_currency,
+                                           const gnc_commodity *new_currency,
+                                           const time64 t)
 {
     gnc_numeric new_value;
 
-    if (gnc_numeric_zero_p (balance) ||
-            gnc_commodity_equiv (balance_currency, new_currency))
-        return balance;
+    if (gnc_numeric_zero_p (amount) ||
+        gnc_commodity_equiv (orig_currency, new_currency))
+        return amount;
 
     /* Look for a direct price. */
-    new_value = direct_balance_conversion(pdb, balance, balance_currency,
-                                          new_currency, INT64_MAX);
-    if (!gnc_numeric_zero_p(new_value))
-        return new_value;
+    new_value = direct_balance_conversion
+        (pdb, amount, orig_currency, new_currency, t);
 
     /*
      * no direct price found, try if we find a price in another currency
      * and convert in two stages
      */
-    return indirect_balance_conversion(pdb, balance, balance_currency,
-                                       new_currency, INT64_MAX);
+    if (gnc_numeric_zero_p (new_value))
+        new_value = indirect_balance_conversion
+            (pdb, amount, orig_currency, new_currency, t);
+
+    return new_value;
+}
+
+/*
+ * Convert a balance from one currency to another.
+ */
+gnc_numeric
+gnc_pricedb_convert_balance_latest_price (GNCPriceDB *pdb,
+                                          gnc_numeric balance,
+                                          const gnc_commodity *balance_currency,
+                                          const gnc_commodity *new_currency)
+{
+    return convert_amount_at_date
+        (pdb, balance, balance_currency, new_currency, INT64_MAX);
 }
 
 gnc_numeric
@@ -2618,24 +2628,8 @@ gnc_pricedb_convert_balance_nearest_price_t64(GNCPriceDB *pdb,
                                               const gnc_commodity *new_currency,
                                               time64 t)
 {
-    gnc_numeric new_value;
-
-    if (gnc_numeric_zero_p (balance) ||
-        gnc_commodity_equiv (balance_currency, new_currency))
-        return balance;
-
-    /* Look for a direct price. */
-    new_value = direct_balance_conversion(pdb, balance, balance_currency,
-                                          new_currency, t);
-    if (!gnc_numeric_zero_p(new_value))
-        return new_value;
-
-    /*
-     * no direct price found, try if we find a price in another currency
-     * and convert in two stages
-     */
-    return indirect_balance_conversion(pdb, balance, balance_currency,
-                                       new_currency, t);
+    return convert_amount_at_date
+        (pdb, balance, balance_currency, new_currency, t);
 }
 
 

commit 78c8b03c5ec033221449d7d8f99ffef07a40af43
Author: Christopher Lam <christopher.lck at gmail.com>
Date:   Wed Oct 14 20:38:47 2020 +0800

    [window-autoclear.c] cleanup, optimize, prevent UI lag
    
    abort:
    1. if too many splits lead to >1,000,000 reachable amounts
    2. if the end_balance is the same as cleared_balance
    
    also:
    - g_free lists properly
    - move knapsack algorithm to gnc-ui-balances.c
    - show newly cleared splits in a new register: "Cleared Transactions"
    - remove unneeded #includes

diff --git a/gnucash/gnome/window-autoclear.c b/gnucash/gnome/window-autoclear.c
index 4bdf14874..294cb7a98 100644
--- a/gnucash/gnome/window-autoclear.c
+++ b/gnucash/gnome/window-autoclear.c
@@ -25,18 +25,14 @@
 #include <gtk/gtk.h>
 #include <glib/gi18n.h>
 
-#include "Scrub.h"
-#include "dialog-account.h"
-#include "dialog-transfer.h"
 #include "dialog-utils.h"
 #include "gnc-amount-edit.h"
-#include "gnc-component-manager.h"
-#include "gnc-date-edit.h"
 #include "gnc-event.h"
 #include "gnc-gnome-utils.h"
 #include "gnc-main-window.h"
 #include "gnc-plugin-page-register.h"
 #include "gnc-ui.h"
+#include "gnc-ui-balances.h"
 #include "window-autoclear.h"
 
 #define WINDOW_AUTOCLEAR_CM_CLASS "window-autoclear"
@@ -95,191 +91,73 @@ gnc_autoclear_make_window_name(Account *account)
     return title;
 }
 
-static gboolean
-ght_gnc_numeric_equal(gconstpointer v1, gconstpointer v2)
+static void
+show_cleared_splits (GList *splits)
 {
-    gnc_numeric n1 = *(gnc_numeric *)v1, n2 = *(gnc_numeric *)v2;
-    return gnc_numeric_equal(n1, n2);
-}
+    GNCLedgerDisplay *ledger;
+    GncPluginPage *page;
+    Query *book_query, *guid_query;
 
-static guint
-ght_gnc_numeric_hash(gconstpointer v1)
-{
-    gnc_numeric n1 = *(gnc_numeric *)v1;
-    gdouble d1 = gnc_numeric_to_double(n1);
-    return g_double_hash (&d1);
-}
-
-typedef struct _sack_foreach_data_t
-{
-    gnc_numeric split_value;
-    GList *reachable_list;
-} *sack_foreach_data_t;
+    book_query = qof_query_create_for (GNC_ID_SPLIT);
+    guid_query = qof_query_create_for (GNC_ID_SPLIT);
+    qof_query_set_book (book_query, gnc_get_current_book ());
 
-static void sack_foreach_func(gpointer key, gpointer value, gpointer user_data)
-{
-    sack_foreach_data_t data = (sack_foreach_data_t)user_data;
-    gnc_numeric thisvalue = *(gnc_numeric *)key;
-
-    gnc_numeric reachable_value = gnc_numeric_add_fixed(thisvalue, data->split_value);
-    data->reachable_list = g_list_prepend
-        (data->reachable_list, g_memdup (&reachable_value, sizeof (gnc_numeric)));
-    PINFO("    Sack: found %s, added %s\n", gnc_numeric_to_string(thisvalue), gnc_numeric_to_string(reachable_value));
+    for (GList *iter = splits; iter; iter = iter->next)
+    {
+        GncGUID guid = xaccSplitReturnGUID (iter->data);
+        xaccQueryAddGUIDMatch (guid_query, &guid, GNC_ID_SPLIT, QOF_QUERY_OR);
+    }
+    book_query = qof_query_merge (book_query, guid_query, QOF_QUERY_AND);
+    ledger = gnc_ledger_display_query (book_query, SEARCH_LEDGER, REG_STYLE_JOURNAL);
+    gnc_ledger_display_refresh (ledger);
+    page = gnc_plugin_page_register_new_ledger (ledger);
+    main_window_update_page_name (page, _("Cleared Transactions"));
+    gnc_main_window_open_page (NULL, page);
+    qof_query_destroy (book_query);
+    qof_query_destroy (guid_query);
 }
 
 void
 gnc_autoclear_window_ok_cb (GtkWidget *widget,
                             AutoClearWindow *data)
 {
-    GList *node, *nc_list = 0, *toclear_list = 0;
+    GList *toclear_list;
     gnc_numeric toclear_value;
-    GHashTable *sack;
+    gchar *errmsg = NULL;
 
-    gtk_label_set_text(data->status_label, _("Searching for splits to clear ..."));
+    g_return_if_fail (widget && data);
 
-    /* Value we have to reach */
     toclear_value = gnc_amount_edit_get_amount(data->end_value);
-    if (gnc_reverse_balance(data->account))
-        toclear_value = gnc_numeric_neg(toclear_value);
-    toclear_value = gnc_numeric_convert(toclear_value, xaccAccountGetCommoditySCU(data->account), GNC_HOW_RND_NEVER);
-
-    /* Extract which splits are not cleared and compute the amount we have to clear */
-    for (node = xaccAccountGetSplitList(data->account); node; node = node->next)
-    {
-        Split *split = (Split *)node->data;
-        char recn;
-        gnc_numeric value;
 
-        recn = xaccSplitGetReconcile (split);
-        value = xaccSplitGetAmount (split);
+    if (gnc_reverse_balance(data->account))
+        toclear_value = gnc_numeric_neg (toclear_value);
 
-        if (recn == NREC)
-            nc_list = g_list_prepend (nc_list, split);
-        else
-            toclear_value = gnc_numeric_sub_fixed(toclear_value, value);
-    }
+    toclear_value = gnc_numeric_convert
+        (toclear_value, xaccAccountGetCommoditySCU(data->account), GNC_HOW_RND_ROUND);
 
-    /* Pretty print information */
-    PINFO("Amount to clear: %s\n", gnc_numeric_to_string(toclear_value));
-    PINFO("Available splits:\n");
-    for (node = nc_list; node; node = node->next)
-    {
-        Split *split = (Split *)node->data;
-        gnc_numeric value = xaccSplitGetAmount (split);
-        PINFO("  %s\n", gnc_numeric_to_string(value));
-    }
+    toclear_list = gnc_account_get_autoclear_splits
+        (data->account, toclear_value, &errmsg);
 
-    /* Run knapsack */
-    /* Entries in the hash table are:
-     *  - key   = amount to which we know how to clear (freed by GHashTable)
-     *  - value = last split we used to clear this amount (not managed by GHashTable)
-     */
-    PINFO("Knapsacking ...\n");
-    sack = g_hash_table_new_full (ght_gnc_numeric_hash, ght_gnc_numeric_equal, g_free, NULL);
-    for (node = nc_list; node; node = node->next)
+    if (errmsg)
     {
-        Split *split = (Split *)node->data;
-        gnc_numeric split_value = xaccSplitGetAmount(split);
-
-        GList *node;
-        struct _sack_foreach_data_t data[1];
-        data->split_value = split_value;
-        data->reachable_list = 0;
-
-        PINFO("  Split value: %s\n", gnc_numeric_to_string(split_value));
-
-        /* For each value in the sack, compute a new reachable value */
-        g_hash_table_foreach (sack, sack_foreach_func, data);
-
-        /* Add the value of the split itself to the reachable_list */
-        data->reachable_list = g_list_prepend
-            (data->reachable_list, g_memdup (&split_value, sizeof (gnc_numeric)));
-
-        /* Add everything to the sack, looking out for duplicates */
-        for (node = data->reachable_list; node; node = node->next)
-        {
-            gnc_numeric *reachable_value = node->data;
-            Split *toinsert_split = split;
-
-            PINFO("    Reachable value: %s ", gnc_numeric_to_string(*reachable_value));
-
-            /* Check if it already exists */
-            if (g_hash_table_lookup_extended(sack, reachable_value, NULL, NULL))
-            {
-                /* If yes, we are in trouble, we reached an amount using two solutions */
-                toinsert_split = NULL;
-                PINFO("dup");
-            }
-            g_hash_table_insert (sack, reachable_value, toinsert_split);
-            PINFO("\n");
-        }
-        g_list_free(data->reachable_list);
+        gtk_label_set_text (data->status_label, errmsg);
+        gnc_amount_edit_set_amount (data->end_value, toclear_value);
+        gtk_editable_select_region (GTK_EDITABLE (data->end_value), 0, -1);
+        g_free (errmsg);
     }
-
-    /* Check solution */
-    PINFO("Rebuilding solution ...\n");
-    while (!gnc_numeric_zero_p(toclear_value))
+    else
     {
-        gpointer psplit = NULL;
-
-        PINFO("  Left to clear: %s\n", gnc_numeric_to_string(toclear_value));
-        if (g_hash_table_lookup_extended(sack, &toclear_value, NULL, &psplit))
-        {
-            if (psplit != NULL)
-            {
-                /* Cast the gpointer to the kind of pointer we actually need */
-                Split *split = (Split *)psplit;
-                toclear_list = g_list_prepend(toclear_list, split);
-                toclear_value = gnc_numeric_sub_fixed(toclear_value,
-                                                      xaccSplitGetAmount(split));
-                PINFO("    Cleared: %s -> %s\n",
-                      gnc_numeric_to_string(xaccSplitGetAmount(split)),
-                      gnc_numeric_to_string(toclear_value));
-            }
-            else
-            {
-                /* We couldn't reconstruct the solution */
-                PINFO("    Solution not unique.\n");
-                gtk_label_set_text(data->status_label, _("Cannot uniquely clear splits. Found multiple possibilities."));
-                gtk_editable_select_region (GTK_EDITABLE (data->end_value), 0, -1);
-                return;
-            }
-        }
-        else
-        {
-            PINFO("    No solution found.\n");
-            gtk_label_set_text(data->status_label, _("The selected amount cannot be cleared."));
-            gtk_editable_select_region (GTK_EDITABLE (data->end_value), 0, -1);
-            return;
-        }
+        xaccAccountBeginEdit (data->account);
+        for (GList *node = toclear_list; node; node = node->next)
+            xaccSplitSetReconcile (node->data, CREC);
+        xaccAccountCommitEdit (data->account);
+        show_cleared_splits (toclear_list);
+        g_list_free (toclear_list);
+
+        /* Close window */
+        gtk_widget_destroy (data->window);
+        g_free (data);
     }
-    g_hash_table_destroy (sack);
-
-    /* Show solution */
-    PINFO("Clearing splits:\n");
-    for (node = toclear_list; node; node = node->next)
-    {
-        Split *split = node->data;
-        char recn;
-        gnc_numeric value;
-
-        recn = xaccSplitGetReconcile (split);
-        value = xaccSplitGetAmount (split);
-
-        PINFO("  %c %s\n", recn, gnc_numeric_to_string(value));
-
-        xaccSplitSetReconcile (split, CREC);
-    }
-    if (toclear_list == 0)
-        PINFO("  None\n");
-
-    /* Free lists */
-    g_list_free(nc_list);
-    g_list_free(toclear_list);
-
-    /* Close window */
-    gtk_widget_destroy(data->window);
-    g_free(data);
 }
 
 void
@@ -291,6 +169,12 @@ gnc_autoclear_window_cancel_cb (GtkWidget *widget,
     g_free(data);
 }
 
+static void clear_status_label_cb (GtkEditable *editable, AutoClearWindow *data)
+{
+    gtk_label_set_text (data->status_label, "");
+}
+
+
 /********************************************************************\
  * autoClearWindow                                                  *
  *   opens up the window to auto-clear an account                   *
@@ -328,6 +212,9 @@ autoClearWindow (GtkWidget *parent, Account *account)
     g_signal_connect(GTK_WIDGET(data->end_value), "activate",
                      G_CALLBACK(gnc_autoclear_window_ok_cb), data);
 
+    g_signal_connect (GTK_WIDGET(data->end_value), "changed",
+                      G_CALLBACK(clear_status_label_cb), data);
+
     box   = GTK_BOX(gtk_builder_get_object (builder, "end_value_box"));
     gtk_box_pack_start(box, GTK_WIDGET(data->end_value), TRUE, TRUE, 0);
 
diff --git a/libgnucash/app-utils/gnc-ui-balances.c b/libgnucash/app-utils/gnc-ui-balances.c
index b02fe76cb..27ce97666 100644
--- a/libgnucash/app-utils/gnc-ui-balances.c
+++ b/libgnucash/app-utils/gnc-ui-balances.c
@@ -31,6 +31,7 @@
 #include <glib.h>
 
 #include "Account.h"
+#include "Split.h"
 #include "gncOwner.h"
 #include "qof.h"
 
@@ -338,3 +339,157 @@ gnc_ui_owner_get_print_report_balance (GncOwner *owner,
     print_info = gnc_commodity_print_info (report_commodity, TRUE);
     return g_strdup (xaccPrintAmount (balance, print_info));
 }
+
+
+/* the following functions are used in window-autoclear: */
+
+#define MAXIMUM_SACK_SIZE 1000000
+
+static gboolean
+ght_gnc_numeric_equal(gconstpointer v1, gconstpointer v2)
+{
+    gnc_numeric n1 = *(gnc_numeric *)v1, n2 = *(gnc_numeric *)v2;
+    return gnc_numeric_equal(n1, n2);
+}
+
+static guint
+ght_gnc_numeric_hash(gconstpointer v1)
+{
+    gnc_numeric n1 = *(gnc_numeric *)v1;
+    gdouble d1 = gnc_numeric_to_double(n1);
+    return g_double_hash (&d1);
+}
+
+typedef struct _sack_foreach_data_t
+{
+    gnc_numeric split_value;
+    GList *reachable_list;
+} *sack_foreach_data_t;
+
+static void sack_foreach_func(gpointer key, gpointer value, gpointer user_data)
+{
+    sack_foreach_data_t data = (sack_foreach_data_t) user_data;
+    gnc_numeric thisvalue = *(gnc_numeric *) key;
+    gnc_numeric reachable_value = gnc_numeric_add_fixed (thisvalue, data->split_value);
+
+    data->reachable_list = g_list_prepend
+        (data->reachable_list, g_memdup (&reachable_value, sizeof (gnc_numeric)));
+}
+
+GList *
+gnc_account_get_autoclear_splits (Account *account, gnc_numeric toclear_value,
+                                  gchar **errmsg)
+{
+    GList *nc_list = NULL, *toclear_list = NULL;
+    GHashTable *sack;
+    gchar *msg = NULL;
+    guint sack_size = 0;
+
+    g_return_val_if_fail (GNC_IS_ACCOUNT (account), NULL);
+
+    sack = g_hash_table_new_full (ght_gnc_numeric_hash, ght_gnc_numeric_equal,
+                                  g_free, NULL);
+
+    /* Extract which splits are not cleared and compute the amount we have to clear */
+    for (GList *node = xaccAccountGetSplitList (account); node; node = node->next)
+    {
+        Split *split = (Split *)node->data;
+
+        if (xaccSplitGetReconcile (split) == NREC)
+            nc_list = g_list_prepend (nc_list, split);
+        else
+            toclear_value = gnc_numeric_sub_fixed
+                (toclear_value, xaccSplitGetAmount (split));
+    }
+
+    if (gnc_numeric_zero_p (toclear_value))
+    {
+        msg = _("Account is already at Auto-Clear Balance.");
+        goto skip_knapsack;
+    }
+
+    /* Run knapsack */
+    /* Entries in the hash table are:
+     *  - key   = amount to which we know how to clear (freed by GHashTable)
+     *  - value = last split we used to clear this amount (not managed by GHashTable)
+     */
+    for (GList *node = nc_list; node; node = node->next)
+    {
+        Split *split = (Split *)node->data;
+        gnc_numeric split_value = xaccSplitGetAmount (split);
+
+        struct _sack_foreach_data_t s_data[1];
+        s_data->split_value = split_value;
+        s_data->reachable_list = NULL;
+
+        /* For each value in the sack, compute a new reachable value */
+        g_hash_table_foreach (sack, sack_foreach_func, s_data);
+
+        /* Add the value of the split itself to the reachable_list */
+        s_data->reachable_list = g_list_prepend
+            (s_data->reachable_list, g_memdup (&split_value, sizeof (gnc_numeric)));
+
+        /* Add everything to the sack, looking out for duplicates */
+        for (GList *s_node = s_data->reachable_list; s_node; s_node = s_node->next)
+        {
+            gnc_numeric *reachable_value = s_node->data;
+
+            /* Check if it already exists */
+            if (g_hash_table_lookup_extended (sack, reachable_value, NULL, NULL))
+            {
+                /* If yes, we are in trouble, we reached an amount
+                   using two solutions */
+                g_hash_table_insert (sack, reachable_value, NULL);
+            }
+            else
+            {
+                g_hash_table_insert (sack, reachable_value, split);
+                sack_size++;
+
+                if (sack_size > MAXIMUM_SACK_SIZE)
+                {
+                    msg = _("Too many uncleared splits");
+                    goto skip_knapsack;
+                }
+            }
+        }
+        g_list_free (s_data->reachable_list);
+    }
+
+    /* Check solution */
+    while (!gnc_numeric_zero_p (toclear_value))
+    {
+        Split *split = NULL;
+
+        if (!g_hash_table_lookup_extended (sack, &toclear_value,
+                                           NULL, (gpointer) &split))
+        {
+            msg = _("The selected amount cannot be cleared.");
+            goto skip_knapsack;
+        }
+
+        if (!split)
+        {
+            msg = _("Cannot uniquely clear splits. Found multiple possibilities.");
+            goto skip_knapsack;
+        }
+
+        toclear_list = g_list_prepend (toclear_list, split);
+        toclear_value = gnc_numeric_sub_fixed (toclear_value,
+                                               xaccSplitGetAmount (split));
+    }
+
+ skip_knapsack:
+    g_hash_table_destroy (sack);
+    g_list_free (nc_list);
+
+    if (msg)
+    {
+        *errmsg = g_strdup (msg);
+        g_list_free (toclear_list);
+        return NULL;
+    }
+
+    *errmsg = NULL;
+    return toclear_list;
+}
diff --git a/libgnucash/app-utils/gnc-ui-balances.h b/libgnucash/app-utils/gnc-ui-balances.h
index 3479f7477..67d5f05e0 100644
--- a/libgnucash/app-utils/gnc-ui-balances.h
+++ b/libgnucash/app-utils/gnc-ui-balances.h
@@ -146,5 +146,12 @@ gchar * gnc_ui_owner_get_print_balance (GncOwner *owner,
 gchar * gnc_ui_owner_get_print_report_balance (GncOwner *owner,
         gboolean *negative);
 
-
+/** Account splits are analysed; attempts to find a unique combination
+ *  of uncleared splits which would set cleared balance to
+ *  toclear_value. If this is not possible, *errmsg will be error
+ *  message. errmsg must be a pointer to a gchar. If it is set, it
+ *  must be freed by the caller.
+ */
+GList * gnc_account_get_autoclear_splits (Account *account, gnc_numeric toclear_value,
+                                          gchar **errmsg);
 #endif /* GNC_UI_BALANCES_H_ */

commit 4bebfed9e8cef1f8d0d9a8fba0ae303ebbe48405
Merge: 3c5066feb efb9226e4
Author: Frank H. Ellenberger <frank.h.ellenberger at gmail.com>
Date:   Fri Oct 23 01:26:52 2020 +0200

    Merge branch 'it.po' into maint


commit efb9226e4aa4cc783ec0d6440ca09356d3d91801
Author: Giuseppe Foti <foti.giuseppe at gmail.com>
Date:   Thu Oct 22 09:14:25 2020 +0200

    L10N:it: Updated Italian translation; 5528 translated messagges.

diff --git a/po/it.po b/po/it.po
index 349a754b2..15fd752bf 100644
--- a/po/it.po
+++ b/po/it.po
@@ -1,10 +1,9 @@
 # Italian translation of Gnucash.
-# Copyright (C) 2020 THE Gnucash'S COPYRIGHT HOLDER
+# Copyright (C) 2020 by the GnuCash developers and the translators below.
 # This file is distributed under the same license as the Gnucash package.
-# <>, 2020.
 # Giuseppe Foti <foti.giuseppe at gmail.com>, 2020;
-# Cristian Marchi<cri79 at libero.it>, 2008, 2009, 2010;
-# Simone Zinanni <simone at develer.com>,2008;
+# Cristian Marchi <cri79 at libero.it>, 2008, 2009, 2010;
+# Simone Zinanni <simone at develer.com>, 2008;
 # Lorenzo Cappelletti <lorenzo.cappelletti at email.com>, 2003-2005.
 # Lorenzo Cappelletti <L.Cappelletti at mail.com>, 2002 2003;
 # Alessandro Seveso <aleseveso at tiscalinet.it>, 2000;
@@ -51,11 +50,11 @@
 #
 msgid ""
 msgstr ""
-"Project-Id-Version: Gnucash 4.0\n"
+"Project-Id-Version: Gnucash 4.2\n"
 "Report-Msgid-Bugs-To: https://bugs.gnucash.org/enter_bug.cgi?"
 "product=GnuCash&component=Translations\n"
-"POT-Creation-Date: 2020-10-14 01:49+0200\n"
-"PO-Revision-Date: 2020-08-15 19:28+0200\n"
+"POT-Creation-Date: 2020-10-22 07:30+0200\n"
+"PO-Revision-Date: 2020-10-22 07:39+0200\n"
 "Last-Translator: Giuseppe Foti <foti.giuseppe at gmail.com>\n"
 "Language-Team: Italian <gnucash-it at gnucash.org>\n"
 "Language: it\n"
@@ -1452,7 +1451,7 @@ msgstr "Eliminare la commodity?"
 #: gnucash/gtkbuilder/gnc-plugin-page-register.glade:934
 #: gnucash/gtkbuilder/gnc-plugin-page-register.glade:1144
 #: gnucash/gtkbuilder/gnc-tree-view-owner.glade:24
-#: gnucash/gtkbuilder/window-autoclear.glade:22
+#: gnucash/gtkbuilder/window-autoclear.glade:25
 #: gnucash/gtkbuilder/window-reconcile.glade:21
 #: gnucash/html/gnc-html-webkit1.c:1197
 #: gnucash/import-export/aqb/dialog-ab.glade:302
@@ -1651,10 +1650,8 @@ msgid "Enter URL like http://www.gnucash.org:"
 msgstr "Inserisci una URL come https://www.gnucash.org:"
 
 #: gnucash/gnome/dialog-doclink.c:205
-#, fuzzy
-#| msgid "Existing Association is"
 msgid "Existing Document Link is"
-msgstr "L'associazione esistente è"
+msgstr "L'attuale associazione ad un documento è"
 
 #: gnucash/gnome/dialog-doclink.c:461 gnucash/gnome/dialog-doclink.c:506
 msgid "File Found"
@@ -1687,7 +1684,7 @@ msgstr "Il file di input non può essere modificato."
 #: gnucash/gnome/gnc-plugin-page-invoice.c:1361
 #: gnucash/gnome/gnc-plugin-page-register.c:631
 msgid "Manage Document Link"
-msgstr ""
+msgstr "Gestisci il collegamento al documento"
 
 #: gnucash/gnome/dialog-doclink.c:690
 msgid "Transaction can not be modified."
@@ -1700,10 +1697,8 @@ msgstr "Non definito"
 #. Translators: This is the label of a dialog box that lists all of the
 #. transaction that have files or URIs linked with them.
 #: gnucash/gnome/dialog-doclink.c:1010
-#, fuzzy
-#| msgid "Transaction Details"
 msgid "Transaction Document Links"
-msgstr "Dettagli della transazione"
+msgstr "Collegamenti ai documenti della transazione"
 
 #: gnucash/gnome/dialog-doclink.c:1013
 #: gnucash/gnome/dialog-find-transactions2.c:157
@@ -1748,26 +1743,21 @@ msgid "Description"
 msgstr "Descrizione"
 
 #: gnucash/gnome/dialog-doclink.c:1024
-#, fuzzy
-#| msgid ""
-#| "         To jump to the Business Item, double click on the entry in the "
-#| "id\n"
-#| " column, Association column to open the Association or Available to update"
 msgid ""
 "Double click on the entry in the Id column to jump to the Business Item.\n"
 "Double click on the entry in the Link column to open the Linked Document.\n"
 "Double click on the entry in the Available column to modify the document "
 "link."
 msgstr ""
-"     Per passare all'elemento, fai doppio clic sulla colonna id,\n"
-"sulla colonna Associazione per aprire l'Associazione o su Disponibile per "
-"aggiornare"
+"Doppio click sull'elemento nella colonna \"Id\" per passare all'elemento.\n"
+"Doppio click sull'elemento nella colonna \"Documento collegato\" per aprire "
+"il documento collegato.\n"
+"Doppio click sull'elemento nella colonna \"Disponibile\" per modificare il "
+"collegamento al documento."
 
 #: gnucash/gnome/dialog-doclink.c:1033
-#, fuzzy
-#| msgid "Business Associations"
 msgid "Business Document Links"
-msgstr "Documenti associati"
+msgstr "Documenti collegati"
 
 #: gnucash/gnome/dialog-employee.c:199
 msgid "You must enter a username."
@@ -2367,10 +2357,8 @@ msgid "View Expense Voucher"
 msgstr "Visualizza nota spese"
 
 #: gnucash/gnome/dialog-invoice.c:2471
-#, fuzzy
-#| msgid "No Linked Account"
 msgid "Open Linked Document:"
-msgstr "Nessun conto collegato"
+msgstr "Apri il documento collegato:"
 
 #: gnucash/gnome/dialog-invoice.c:2585 gnucash/gnome/dialog-invoice.c:2810
 msgid "Bill Information"
@@ -3651,16 +3639,12 @@ msgid "View and Delete Bayesian and Non Bayesian information"
 msgstr "Vedi e cancella informazioni Bayesiane e Non Bayesiane"
 
 #: gnucash/gnome/gnc-plugin-basic-commands.c:216
-#, fuzzy
-#| msgid "Transaction amount"
 msgid "_Transaction Linked Documents"
-msgstr "Importo della transazione"
+msgstr "_Collegamenti ai documenti della transazione"
 
 #: gnucash/gnome/gnc-plugin-basic-commands.c:217
-#, fuzzy
-#| msgid "View all Transaction Associations"
 msgid "View all Transaction Linked Documents"
-msgstr "Visualizza tutte le associazioni della transazione"
+msgstr "Visualizza tutti i documenti commerciali collegati alla transazione"
 
 #: gnucash/gnome/gnc-plugin-basic-commands.c:224
 msgid "_Tips Of The Day"
@@ -3793,7 +3777,7 @@ msgstr "Selezionare un bilancio di previsione"
 #: gnucash/gtkbuilder/gnc-plugin-page-register.glade:949
 #: gnucash/gtkbuilder/gnc-plugin-page-register.glade:1159
 #: gnucash/gtkbuilder/gnc-tree-view-owner.glade:39
-#: gnucash/gtkbuilder/window-autoclear.glade:38
+#: gnucash/gtkbuilder/window-autoclear.glade:41
 #: gnucash/gtkbuilder/window-reconcile.glade:36
 #: gnucash/import-export/aqb/dialog-ab.glade:317
 #: gnucash/import-export/aqb/dialog-ab.glade:595
@@ -3988,13 +3972,11 @@ msgstr "Apre la finestra per la ricerca di una nota spese"
 
 #: gnucash/gnome/gnc-plugin-business.c:278
 msgid "Business Linked Documents"
-msgstr ""
+msgstr "Documenti commerciali collegati"
 
 #: gnucash/gnome/gnc-plugin-business.c:279
-#, fuzzy
-#| msgid "View all Business Associations"
 msgid "View all Linked Business Documents"
-msgstr "Visualizza tutte le associazioni dei documenti commerciali"
+msgstr "Visualizza tutti i documenti commerciali collegati"
 
 #: gnucash/gnome/gnc-plugin-business.c:283
 msgid "Sales _Tax Table"
@@ -4346,7 +4328,7 @@ msgstr "Elimina"
 #: gnucash/gnome/gnc-plugin-page-account-tree.c:440
 #: gnucash/gnome/gnc-plugin-page-register.c:1934
 msgid "'Check & Repair' is currently running, do you want to abort it?"
-msgstr ""
+msgstr "'Controlla e Ripara' è in esecuzione, vuoi interrompere l'operazione?"
 
 #: gnucash/gnome/gnc-plugin-page-account-tree.c:498
 #: gnucash/gnome/gnc-plugin-page-account-tree.c:504
@@ -4754,7 +4736,7 @@ msgstr "Registra _pagamento documento di vendita"
 #: gnucash/gnome/gnc-plugin-page-invoice.c:366
 #: gnucash/gnome/gnc-plugin-page-register.c:300
 msgid "_Manage Document Link..."
-msgstr ""
+msgstr "_Gestisci il collegamento al documento..."
 
 #. Translators: This is a menu item that opens an external file or URI that may
 #. be linked to the current bill, invoice, transaction, or voucher using
@@ -4764,10 +4746,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 "No Linked Account"
 msgid "_Open Linked Document"
-msgstr "Nessun conto collegato"
+msgstr "_Apri il documento collegato"
 
 #: gnucash/gnome/gnc-plugin-page-invoice.c:310
 msgid "_Use as Default Layout for Customer Documents"
@@ -4925,10 +4905,8 @@ msgstr "Apri un resoconto per l'intestatario di questo documento di vendita"
 #: gnucash/gnome/gnc-plugin-page-invoice.c:425
 #: gnucash/gnome/gnc-plugin-page-invoice.c:446
 #: gnucash/gnome/gnc-plugin-page-register.c:632
-#, fuzzy
-#| msgid "No Linked Account"
 msgid "Open Linked Document"
-msgstr "Nessun conto collegato"
+msgstr "Apri il documento collegato"
 
 #: gnucash/gnome/gnc-plugin-page-invoice.c:388
 msgid ""
@@ -5090,7 +5068,7 @@ msgstr "Apri un resoconto sull'intestatario di questa nota di credito"
 
 #: gnucash/gnome/gnc-plugin-page-invoice.c:445
 msgid "Manage Document Link..."
-msgstr ""
+msgstr "Gestisci il collegamento al documento..."
 
 #: gnucash/gnome/gnc-plugin-page-invoice.c:452
 #: gnucash/gnome/gnc-plugin-page-register2.c:498
@@ -5526,18 +5504,16 @@ msgstr "Modifica il tasso di cambio per la transazione corrente"
 #. with focus on the current transaction's entry in that register.
 #: gnucash/gnome/gnc-plugin-page-register2.c:387
 #: gnucash/gnome/gnc-plugin-page-register.c:513
-#, fuzzy
-#| msgid "Display the other account code?"
 msgid "_Jump to the other account"
-msgstr "Visualizza il codice dell'altro conto?"
+msgstr "_Visualizza il primo conto della contropartita"
 
 #: gnucash/gnome/gnc-plugin-page-register2.c:388
 #: gnucash/gnome/gnc-plugin-page-register.c:514
-#, fuzzy
-#| msgid "Open a register report for the selected Transaction"
 msgid ""
 "Open a new register tab for the other account with focus on this transaction."
-msgstr "Apri un resoconto del registro per la transazione selezionata"
+msgstr ""
+"Apri una nuova etichetta del registro per l'altro conto con il focus su "
+"questa transazione."
 
 #: gnucash/gnome/gnc-plugin-page-register2.c:392
 #: gnucash/gnome/gnc-plugin-page-register.c:518
@@ -5591,16 +5567,12 @@ msgstr "Riga _doppia"
 # tooltip
 #: gnucash/gnome/gnc-plugin-page-register2.c:425
 #: gnucash/gnome/gnc-plugin-page-register.c:554
-#, fuzzy
-#| msgid ""
-#| "Show a second line with \"Action\", \"Notes\", and \"File Association\" "
-#| "for each transaction."
 msgid ""
 "Show a second line with \"Action\", \"Notes\", and \"Linked Document\" for "
 "each transaction."
 msgstr ""
-"Mostra una seconda riga con «Operazione», «Note» e «File associato» per ogni "
-"transazione."
+"Mostra una seconda riga con «Operazione», «Note» e «Documento collegato» per "
+"ogni transazione."
 
 #: gnucash/gnome/gnc-plugin-page-register2.c:430
 msgid "Show _Extra Dates"
@@ -5666,10 +5638,8 @@ msgstr "Suddivisione"
 
 #: gnucash/gnome/gnc-plugin-page-register2.c:503
 #: gnucash/gnome/gnc-plugin-page-register.c:626
-#, fuzzy
-#| msgid "_Jump"
 msgid "Jump"
-msgstr "S_alta"
+msgstr "Vai"
 
 #: gnucash/gnome/gnc-plugin-page-register2.c:504
 #: gnucash/gnome/gnc-plugin-page-register.c:627
@@ -5873,26 +5843,21 @@ msgstr "Filtra %s per..."
 #. Translators: This is a menu item that will open the bill, invoice, or voucher
 #. that is posted to the current transaction if there is one.
 #: gnucash/gnome/gnc-plugin-page-register.c:307
-#, fuzzy
-#| msgid "Edit Invoice"
 msgid "Jump to Invoice"
-msgstr "Modifica documento di vendita"
+msgstr "Vai al documento di vendita o acquisto"
 
 #: gnucash/gnome/gnc-plugin-page-register.c:318
-#, fuzzy
-#| msgid "Edit the exchange rate for the current transaction"
 msgid "Add, change, or unlink the document linked with the current transaction"
-msgstr "Modifica il tasso di cambio per la transazione corrente"
+msgstr ""
+"Aggiungi cambia o scollega il documento collegato con questa transazione"
 
 #: gnucash/gnome/gnc-plugin-page-register.c:319
-#, fuzzy
-#| msgid "Open Association for the current transaction"
 msgid "Open the linked document for the current transaction"
-msgstr "Apri l'associazione per questa transazione"
+msgstr "Apri il documento collegato per questa transazione"
 
 #: gnucash/gnome/gnc-plugin-page-register.c:320
 msgid "Jump to the linked bill, invoice, or voucher"
-msgstr ""
+msgstr "Vai alla fattura o alla nota spesa collegata"
 
 #: gnucash/gnome/gnc-plugin-page-register.c:409
 msgid "Remo_ve Other Splits"
@@ -5904,17 +5869,13 @@ msgid "_Sort By..."
 msgstr "_Ordina per..."
 
 #: gnucash/gnome/gnc-plugin-page-register.c:500
-#, fuzzy
-#| msgid "Post Date"
 msgid "_Go to Date"
-msgstr "Data di registrazione"
+msgstr "_vai alla data"
 
 # tooltip
 #: gnucash/gnome/gnc-plugin-page-register.c:501
-#, fuzzy
-#| msgid "Do not print transactions out of specified dates."
 msgid "Move to the split at the specified date"
-msgstr "Non stampa le transazioni al di fuori delle date specificate."
+msgstr "Spostati alla suddivisione ad una data specifica"
 
 #: gnucash/gnome/gnc-plugin-page-register.c:828
 msgid ""
@@ -6022,17 +5983,15 @@ msgstr "Ordina %s per..."
 #: gnucash/gnome/gnc-plugin-page-register.c:4702
 #, c-format
 msgid "%s %s from %s, posted %s, amount %s"
-msgstr ""
+msgstr "%s %s da %s, emesse %s, importo %s"
 
 #: gnucash/gnome/gnc-plugin-page-register.c:4711
-#, fuzzy
-#| msgid "Select Account"
 msgid "Select document"
-msgstr "Scegliere il conto"
+msgstr "Scegli il documento"
 
 #: gnucash/gnome/gnc-plugin-page-register.c:4712
 msgid "Several documents are linked with this transaction. Please choose one:"
-msgstr ""
+msgstr "Più documenti sono collegati a questa transazione. Scegline uno:"
 
 #: gnucash/gnome/gnc-plugin-page-register.c:4713
 #: gnucash/gnome-search/dialog-search.c:323
@@ -6041,10 +6000,8 @@ msgid "Select"
 msgstr "Seleziona"
 
 #: gnucash/gnome/gnc-plugin-page-register.c:4761
-#, fuzzy
-#| msgid "Post Date"
 msgid "Go to Date"
-msgstr "Data di registrazione"
+msgstr "Vai alla data"
 
 #: gnucash/gnome/gnc-plugin-page-register.c:5016
 #, c-format
@@ -6225,6 +6182,8 @@ msgid ""
 "This report must be upgraded to return a document object with export-string "
 "or export-error."
 msgstr ""
+"Questo resoconto deve essere aggiornato per restituire un oggetto documento "
+"con una stringa di esportazione o un errore di esportazione."
 
 #: gnucash/gnome/gnc-plugin-page-report.c:1710
 #, c-format
@@ -6573,10 +6532,8 @@ msgid "_Remove Splits"
 msgstr "_Rimuovi suddivisioni"
 
 #: gnucash/gnome/gnc-split-reg.c:1299
-#, fuzzy
-#| msgid "Change a Transaction Association"
 msgid "Change a Transaction Linked Document"
-msgstr "Modifica un'associazione della transazione"
+msgstr "Modifica il documento collegato alla transazione"
 
 #: gnucash/gnome/gnc-split-reg.c:1440
 #: gnucash/gnome-utils/gnc-tree-control-split-reg.c:963
@@ -6843,13 +6800,13 @@ msgstr "Impresa"
 msgid "Searching for splits to clear ..."
 msgstr "Ricerca delle suddivisioni da eliminare..."
 
-#: gnucash/gnome/window-autoclear.c:241
+#: gnucash/gnome/window-autoclear.c:243
 msgid "Cannot uniquely clear splits. Found multiple possibilities."
 msgstr ""
 "Impossibile eliminare in modo univoco le suddivisioni; sono state "
 "individuate diverse possibilità."
 
-#: gnucash/gnome/window-autoclear.c:248
+#: gnucash/gnome/window-autoclear.c:251
 msgid "The selected amount cannot be cleared."
 msgstr "L'importo selezionato non può essere liquidato."
 
@@ -8778,16 +8735,12 @@ msgstr "Posizione attesa"
 
 #: gnucash/gnome-utils/gnc-gnome-utils.c:446
 #: gnucash/gnome-utils/gnc-gnome-utils.c:486
-#, fuzzy
-#| msgid "GnuCash could not find the associated file."
 msgid "GnuCash could not find the linked document."
-msgstr "Impossibile trovare il file associato."
+msgstr "Impossibile trovare il file collegato."
 
 #: gnucash/gnome-utils/gnc-gnome-utils.c:516
-#, fuzzy
-#| msgid "GnuCash could not open the associated file:"
 msgid "GnuCash could not open the linked document:"
-msgstr "GnucCash non può aprire il file associato:"
+msgstr "GnucCash non può aprire il file collegato:"
 
 #. Translators: %s is a path to a database or any other url,
 #. like mysql://user@server.somewhere/somedb, https://www.somequotes.com/thequotes
@@ -9114,14 +9067,11 @@ msgstr "Contabilità delle finanze personali e per piccole imprese."
 #: gnucash/gnome-utils/gnc-main-window.c:4537
 msgid "translator-credits"
 msgstr ""
-" \n"
-" Traduzione di Giuseppe Foti (2020)\n"
-" Traduzione di Cristian Marchi (2008, 2009, 2010, 2014)\n"
-" Traduzione di Simone Zinanni (2008)\n"
-" Traduzione di Lorenzo Cappelletti (2002, 2003-2005)\n"
-" Traduzione di Alessandro Seveso (2000)\n"
-"\n"
-"------------------\n"
+" Giuseppe Foti (2020)\n"
+" Cristian Marchi (2008, 2009, 2010, 2014)\n"
+" Simone Zinanni (2008)\n"
+" Lorenzo Cappelletti (2002, 2003-2005)\n"
+" Alessandro Seveso (2000)\n"
 "\n"
 " Si ringraziano per la revisione e l'aiuto:\n"
 "   Andrea Celli\n"
@@ -9130,13 +9080,11 @@ msgstr ""
 "   Martuzzi Pierluigi\n"
 "   Yuri\n"
 "\n"
-"------------------\n"
+" Invia i tuoi suggerimenti o critiche e domande alla\n"
+" comunità Gnucash di lingua italiana <gnucash-it at gnucash.org>\n"
 "\n"
-" Segnalare eventuali problemi o errori\n"
-" nella traduzione a:\n"
-" <gnucash-it at gnucash.org>\n"
-"\n"
-"------------------"
+" Per evitare che le tue email vengano moderate, dovresti iscriverti alla\n"
+" <a href=\"https://lists.gnucash.org/mailman/listinfo/gnucash-it\">lista gnucash-it</a>"
 
 #: gnucash/gnome-utils/gnc-main-window.c:4540
 msgid "Visit the GnuCash website."
@@ -10368,13 +10316,6 @@ msgid "Report Generation Options"
 msgstr "Opzioni del _resoconto"
 
 #: gnucash/gnucash-cli.cpp:104
-#, fuzzy
-#| msgid ""
-#| "Execute report related commands. The following commands are supported.\n"
-#| "\n"
-#| "  list: \tLists available reports.\n"
-#| "  show: \tDescribe the options modified in the named report.\n"
-#| "  run: \tRun the named report in the given GnuCash datafile.\n"
 msgid ""
 "Execute report related commands. The following commands are supported.\n"
 "\n"
@@ -10383,10 +10324,11 @@ msgid ""
 "be specified to describe some saved options.\n"
 "  run: \tRun the named report in the given GnuCash datafile.\n"
 msgstr ""
-"Esegui i comandi relativi ai rapporti. Sono supportati i seguenti comandi.\n"
+"Esegui i comandi relativi ai resoconti. Sono supportati i seguenti comandi.\n"
 "+\n"
-"  list: \t Lista i rapporti disponibili.\n"
-"  show: \t Visualizza le opzioni modificate di un resoconto.\n"
+"  list: \t Lista i resoconti disponibili.\n"
+"  show: \t Visualizza le opzioni modificate di un resoconto. Può essere "
+"specificato un file di dati per descrivere alcune opzioni salvate.\n"
 "  run: \t Esegue un resoconto in un file di dati GnuCash.\n"
 
 # tooltip
@@ -11689,18 +11631,15 @@ msgstr ""
 "e «period»."
 
 #: gnucash/gschemas/org.gnucash.gschema.xml.in:25
-#, fuzzy
-#| msgid "Transaction Associations head path"
 msgid "Transaction Linked Files head path"
-msgstr "Percorso file associati alla transazione"
+msgstr "Prefisso dei collegamenti ai file della transazione"
 
 #: gnucash/gschemas/org.gnucash.gschema.xml.in:26
-#, fuzzy
-#| msgid "This is the path head for the Transaction file Associations"
 msgid ""
 "This is the path head for the Transaction Linked Files with relative paths"
 msgstr ""
-"Questa è la prima parte del percorso dei file associati alle transazioni"
+"Questa è la prima parte del percorso relativo dei file collegati alle "
+"transazioni"
 
 #: gnucash/gschemas/org.gnucash.gschema.xml.in:30
 msgid "Compress the data file"
@@ -12438,35 +12377,25 @@ msgstr ""
 
 # tooltip
 #: gnucash/gschemas/org.gnucash.gschema.xml.in:300
-#, fuzzy
-#| msgid ""
-#| "Show a second line with \"Action\", \"Notes\", and \"File Association\" "
-#| "for each transaction."
 msgid ""
 "Show a second line with \"Action\", \"Notes\", and \"Linked Documents\" for "
 "each transaction."
 msgstr ""
-"Mostra una seconda riga con «Operazione», «Note» e «File associato» per ogni "
-"transazione."
+"Mostra una seconda riga con «Operazione», «Note» e «Documento collegato» per "
+"ogni transazione."
 
 # Tooltip
 #: gnucash/gschemas/org.gnucash.gschema.xml.in:301
-#, fuzzy
-#| msgid ""
-#| "Show a second line with \"Action\", \"Notes\", and \"File Association\" "
-#| "for each transaction in a register. This is the default setting for when "
-#| "a register is first opened. The setting can be changed at any time via "
-#| "the \"View->Double Line\" menu item."
 msgid ""
 "Show a second line with \"Action\", \"Notes\", and \"Linked Documents\" for "
 "each transaction in a register. This is the default setting for when a "
 "register is first opened. The setting can be changed at any time via the "
 "\"View->Double Line\" menu item."
 msgstr ""
-"Visualizza una seconda riga con «Operazione», «Note» e «File associato» per "
-"ogni transazione presente nel registro. Questa è l'impostazione predefinita "
-"per ogni nuovo registro. L'impostazione può essere cambiata in qualsiasi "
-"momento attraverso la voce del menu «Visualizza->Riga doppia»."
+"Visualizza una seconda riga con «Operazione», «Note» e «Documento collegato» "
+"per ogni transazione presente nel registro. Questa è l'impostazione "
+"predefinita per ogni nuovo registro. L'impostazione può essere cambiata in "
+"qualsiasi momento attraverso la voce del menu «Visualizza->Riga doppia»."
 
 #: gnucash/gschemas/org.gnucash.gschema.xml.in:305
 msgid "Only display leaf account names."
@@ -14959,10 +14888,8 @@ msgstr "_Promemoria"
 
 #. Default memo text for the remains of a stock split
 #: gnucash/gtkbuilder/assistant-stock-split.glade:316
-#, fuzzy
-#| msgid "Cash in Lieu"
 msgid "Cash in lieu"
-msgstr "Cash in Lieu"
+msgstr "Conguaglio in denaro"
 
 #: gnucash/gtkbuilder/assistant-stock-split.glade:352
 msgid "<b>_Income Account</b>"
@@ -16118,16 +16045,10 @@ msgid "Question"
 msgstr "Domanda"
 
 #: gnucash/gtkbuilder/dialog-doclink.glade:49
-#, fuzzy
-#| msgid "Change Association path head"
 msgid "Change Linked Document path head"
-msgstr "Modifica il percorso dell'associazione"
+msgstr "Modifica il percorso del documento collegato"
 
 #: gnucash/gtkbuilder/dialog-doclink.glade:85
-#, fuzzy
-#| msgid ""
-#| "Existing relative file path associations will be converted to absolute "
-#| "ones by combining them with the existing path head unless box unticked."
 msgid ""
 "Existing relative file path links will be converted to absolute ones by "
 "combining them with the existing path head unless box unticked."
@@ -16137,36 +16058,27 @@ msgstr ""
 "selezionata."
 
 #: gnucash/gtkbuilder/dialog-doclink.glade:140
-#, fuzzy
-#| msgid ""
-#| "Existing absolute file path associations will be converted to relative "
-#| "ones by comparing them to the new path head unless box unticked."
 msgid ""
 "Existing absolute file path links will be converted to relative ones by "
 "comparing them to the new path head unless box unticked."
 msgstr ""
 "I percorsi assoluti dei file con le associazioni verranno convertiti in "
-"percorsi relativi confrontandoli con il nuovo prefisso se questa box non è "
+"percorsi relativi confrontandoli con il nuovo percorso se questa box non è "
 "selezionata."
 
 #: gnucash/gtkbuilder/dialog-doclink.glade:178
-#, fuzzy
-#| msgid "Note: Only Associations that are not read-only will be changed."
 msgid "Note: Only Document Links that are not read-only will be changed."
 msgstr ""
-"Nota: Verranno modificate solo le associazioni che non sono di sola lettura."
+"Nota: Verranno modificate solo i documenti collegati che non sono di sola "
+"lettura."
 
 #: gnucash/gtkbuilder/dialog-doclink.glade:279
-#, fuzzy
-#| msgid "Linked Details"
 msgid "Linked _File"
-msgstr "Dettagli collegati"
+msgstr "_File collegato"
 
 #: gnucash/gtkbuilder/dialog-doclink.glade:295
-#, fuzzy
-#| msgid "Picture Location"
 msgid "Linked _Location"
-msgstr "Posizione immagine"
+msgstr "_Posizione collegatao"
 
 #: gnucash/gtkbuilder/dialog-doclink.glade:380
 msgid "Enter URL like http://www.gnucash.org"
@@ -16177,42 +16089,32 @@ msgid "Location does not start with a valid scheme"
 msgstr "La posizione non inizia con uno schema valido"
 
 #: gnucash/gtkbuilder/dialog-doclink.glade:504
-#, fuzzy
-#| msgid "Reload and Locate _Associations"
 msgid "Reload and Locate Linked Documents"
-msgstr "Ricarica ed individua le _associazioni"
+msgstr "Ricarica ed individua i documenti collegati"
 
 #: gnucash/gtkbuilder/dialog-doclink.glade:518
 msgid "_Reload"
 msgstr "_Ricarica"
 
 #: gnucash/gtkbuilder/dialog-doclink.glade:532
-#, fuzzy
-#| msgid "No Linked Account"
 msgid "_Locate Linked Documents"
-msgstr "Nessun conto collegato"
+msgstr "_Individua i documenti collegati"
 
 #: gnucash/gtkbuilder/dialog-doclink.glade:572
-#, fuzzy
-#| msgid "No Linked Account"
 msgid "All Linked Documents"
-msgstr "Nessun conto collegato"
+msgstr "Tutti i documenti collegati"
 
 #: gnucash/gtkbuilder/dialog-doclink.glade:626
 msgid "Id"
 msgstr "Id"
 
 #: gnucash/gtkbuilder/dialog-doclink.glade:654
-#, fuzzy
-#| msgid "Linked Details"
 msgid "Linked Document"
-msgstr "Dettagli collegati"
+msgstr "Documento collegato"
 
 #: gnucash/gtkbuilder/dialog-doclink.glade:671
-#, fuzzy
-#| msgid "Available ?"
 msgid "Available"
-msgstr "Disponibile ?"
+msgstr "Disponibile"
 
 #: gnucash/gtkbuilder/dialog-doclink.glade:686
 msgid "Relative"
@@ -16226,6 +16128,12 @@ msgid ""
 "Double click on the entry in the Available column to modify the document "
 "link."
 msgstr ""
+"Doppio click sull'elemento nella colonna \"Descrizione\" per andare alla "
+"transazione.\n"
+"Doppio click sull'elemento nella colonna \"Documento collegato\" per aprire "
+"il documento collegato.\n"
+"Doppio click sull'elemento nella colonna \"Disponibile\" per modificare il "
+"documento collegato."
 
 # Tooltip
 #: gnucash/gtkbuilder/dialog-employee.glade:166
@@ -16741,10 +16649,8 @@ msgid "(owner)"
 msgstr "(intestatario)"
 
 #: gnucash/gtkbuilder/dialog-invoice.glade:418
-#, fuzzy
-#| msgid "Open imported documents in tabs"
 msgid "Open Document Link"
-msgstr "Apri i documenti importati nelle schede"
+msgstr "Apri i collegamenti al documento"
 
 #: gnucash/gtkbuilder/dialog-invoice.glade:535
 #: gnucash/gtkbuilder/dialog-invoice.glade:1113
@@ -17386,7 +17292,7 @@ msgstr "2"
 
 #: gnucash/gtkbuilder/dialog-preferences.glade:1245
 msgid "Numbers, Date, Time"
-msgstr ""
+msgstr "Numeri, Data, Orario"
 
 #: gnucash/gtkbuilder/dialog-preferences.glade:1274
 msgid "Perform account list _setup on new file"
@@ -17501,16 +17407,12 @@ msgstr "secondi"
 
 # Tooltip
 #: gnucash/gtkbuilder/dialog-preferences.glade:1730
-#, fuzzy
-#| msgid "Path head for Associated Files"
 msgid "Path head for Linked File Relative Paths"
-msgstr "Percorso per i file associati"
+msgstr "Prefisso per i percorsi relativi per i documenti collegati"
 
 #: gnucash/gtkbuilder/dialog-preferences.glade:1748
-#, fuzzy
-#| msgid "Path head for files is,"
 msgid "Path head for Linked Files Relative Paths"
-msgstr "Il percorso per i file è,"
+msgstr "Prefisso dei percorsi relativi per i file collegati"
 
 # Tooltip
 #: gnucash/gtkbuilder/dialog-preferences.glade:1777
@@ -17541,10 +17443,8 @@ msgstr ""
 "Conti."
 
 #: gnucash/gtkbuilder/dialog-preferences.glade:1814
-#, fuzzy
-#| msgid "<b>Files</b>"
 msgid "<b>Linked Files</b>"
-msgstr "<b>File</b>"
+msgstr "<b>File collegati</b>"
 
 #. Preferences->Online Banking:Generic
 #: gnucash/gtkbuilder/dialog-preferences.glade:1909
@@ -19754,10 +19654,8 @@ msgid "_Transaction Number"
 msgstr "Numero _transazione"
 
 #: gnucash/gtkbuilder/gnc-plugin-page-register.glade:1086
-#, fuzzy
-#| msgid "Delete the current entry"
 msgid "Keep Linked Document Entry"
-msgstr "Elimina l'elemento corrente"
+msgstr "Mantieni la registrazione del documento collegato"
 
 #: gnucash/gtkbuilder/gnc-recurrence.glade:12
 msgid "day(s)"
@@ -19820,11 +19718,20 @@ msgstr "Mostra solo intestatari _attivi"
 msgid "Show _zero balance owners"
 msgstr "Mostra gli intestatari a saldo _zero"
 
-#: gnucash/gtkbuilder/window-autoclear.glade:71
-msgid "<b>Auto-Clear Information</b>"
-msgstr "<b>Informazioni di liquidazione automatica</b>"
+#: gnucash/gtkbuilder/window-autoclear.glade:74
+msgid ""
+"<b>Auto-Clear Information</b>\n"
+"Use this dialog if you want GnuCash to automatically find which transactions "
+"are cleared, given an ending balance. For example, said ending balance can "
+"be the current balance given by your online bank."
+msgstr ""
+"<b> Liquidazione automatica delle informazioni </b>\n"
+"Utilizza questa finestra di dialogo se desideri che GnuCash trovi "
+"automaticamente quali transazioni sono state liquidate, dato un saldo "
+"finale. Ad esempio, detto saldo finale può essere il saldo corrente fornito "
+"dalla tua banca online."
 
-#: gnucash/gtkbuilder/window-autoclear.glade:92
+#: gnucash/gtkbuilder/window-autoclear.glade:98
 #: gnucash/gtkbuilder/window-reconcile.glade:117
 msgid "_Ending Balance"
 msgstr "Saldo _finale"
@@ -23332,7 +23239,7 @@ msgstr "Descrizione di una transazione"
 #: gnucash/report/trep-engine.scm:1258 gnucash/report/trep-engine.scm:1259
 msgctxt "Column header for 'Document Link'"
 msgid "L"
-msgstr ""
+msgstr "L"
 
 #: gnucash/register/ledger-core/split-register-layout.c:711
 #: gnucash/register/ledger-core/split-register-layout.c:751
@@ -24498,16 +24405,12 @@ msgstr "91+ giorni"
 
 #: gnucash/report/reports/aging.scm:773
 #: gnucash/report/reports/standard/new-aging.scm:164
-#, fuzzy
-#| msgid "Y"
 msgctxt "One-letter indication for 'yes'"
 msgid "Y"
 msgstr "S"
 
 #: gnucash/report/reports/aging.scm:773
 #: gnucash/report/reports/standard/new-aging.scm:164
-#, fuzzy
-#| msgid "N"
 msgctxt "One-letter indication for 'no'"
 msgid "N"
 msgstr "N"
@@ -27498,7 +27401,7 @@ msgstr "Somma complessiva"
 #: gnucash/report/reports/standard/category-barchart.scm:684
 #: gnucash/report/reports/standard/net-charts.scm:471
 msgid "No exportable data"
-msgstr ""
+msgstr "Nessun dato esportabile"
 
 #: gnucash/report/reports/standard/customer-summary.scm:52
 msgid "The income accounts where the sales and income was recorded."
@@ -28027,8 +27930,6 @@ msgstr "Formato del resoconto"
 
 #: gnucash/report/reports/standard/income-gst-statement.scm:164
 #: gnucash/report/reports/standard/income-gst-statement.scm:165
-#, fuzzy
-#| msgid "default format"
 msgid "Default Format"
 msgstr "formato predefinito"
 
@@ -28037,8 +27938,6 @@ msgid "Australia BAS"
 msgstr "Dichiarazione BAS Australia"
 
 #: gnucash/report/reports/standard/income-gst-statement.scm:168
-#, fuzzy
-#| msgid "Australia BAS. Specify sales, purchase and tax accounts."
 msgid ""
 "Australia Business Activity Statement. Specify sales, purchase and tax "
 "accounts."
@@ -28771,16 +28670,12 @@ msgid "Debits"
 msgstr "Debiti"
 
 #: gnucash/report/reports/standard/new-owner-report.scm:59
-#, fuzzy
-#| msgid "Documents"
 msgid "Document Links"
-msgstr "Documenti"
+msgstr "Documenti collegati"
 
 #: gnucash/report/reports/standard/new-owner-report.scm:60
-#, fuzzy
-#| msgid "Transactions"
 msgid "Transaction Links"
-msgstr "Transazioni"
+msgstr "Collegamenti transazione"
 
 #: gnucash/report/reports/standard/new-owner-report.scm:91
 #: gnucash/report/reports/standard/owner-report.scm:87
@@ -28891,10 +28786,8 @@ msgstr ""
 "delle fatture e gli importi."
 
 #: gnucash/report/reports/standard/new-owner-report.scm:948
-#, fuzzy
-#| msgid "Display amounts as hyperlinks"
 msgid "Display document link?"
-msgstr "Visualizza gli importi come collegamenti ipertestuali"
+msgstr "Visualizza il collegamento al documento?"
 
 #: gnucash/report/reports/standard/new-owner-report.scm:1076
 msgid "No valid account found"
@@ -29011,16 +28904,12 @@ msgid "Double-Weeks"
 msgstr "Due settimane"
 
 #: gnucash/report/reports/standard/price-scatter.scm:142
-#, fuzzy
-#| msgid "Quarter"
 msgid "Quarters"
-msgstr "Trimestre"
+msgstr "Trimestri"
 
 #: gnucash/report/reports/standard/price-scatter.scm:143
-#, fuzzy
-#| msgid "Half Year"
 msgid "Half Years"
-msgstr "Mezzo anno"
+msgstr "Semestre"
 
 #: gnucash/report/reports/standard/price-scatter.scm:238
 msgid "Identical commodities"
@@ -30880,10 +30769,8 @@ msgstr "Visualizza il codice dell'altro conto?"
 
 # tooltip
 #: gnucash/report/trep-engine.scm:954
-#, fuzzy
-#| msgid "Display the transaction amount?"
 msgid "Display the transaction linked document"
-msgstr "Visualizzare l'importo della transazione?"
+msgstr "Mostra il documento collegato alla transazione"
 
 #: gnucash/report/trep-engine.scm:957
 msgid "Display a subtotal summary table."
@@ -31706,17 +31593,11 @@ msgid "v"
 msgstr "v"
 
 #: libgnucash/app-utils/gnc-ui-util.c:911
-#, fuzzy
-#| msgctxt "Association flag for 'web'"
-#| msgid "w"
 msgctxt "Document Link flag for 'web'"
 msgid "w"
 msgstr "w"
 
 #: libgnucash/app-utils/gnc-ui-util.c:913
-#, fuzzy
-#| msgctxt "Reconciled flag 'frozen'"
-#| msgid "f"
 msgctxt "Document Link flag for 'file'"
 msgid "f"
 msgstr "f"
@@ -32104,222 +31985,3 @@ msgstr "Ho invalidato la transazione"
 #: libgnucash/tax/us/txf.scm:98
 msgid "No help available."
 msgstr "Aiuto non disponibile."
-
-#, c-format
-#~ msgid "Bad URL %s"
-#~ msgstr "URL errato %s"
-
-#, c-format
-#~ msgid "No such Account entity: %s"
-#~ msgstr "Entità conto inesistente: %s"
-
-#~ msgid "Change a Business Association"
-#~ msgstr "Modifica un'associazione del documento commerciale"
-
-#~ msgid "Transaction Associations"
-#~ msgstr "Associazioni della transazione"
-
-#~ msgid "Open Association:"
-#~ msgstr "Apri documento associato:"
-
-#~ msgid "_Transaction Associations"
-#~ msgstr "_Associazioni transazione"
-
-#~ msgid "Business _Associations"
-#~ msgstr "_Documenti associati"
-
-#~ msgid "_Update Association for Invoice"
-#~ msgstr "_Aggiorna l'associazione per il documento di vendita"
-
-#~ msgid "_Open Association for Invoice"
-#~ msgstr "_Apri l'associazione per il documento di vendita"
-
-#~ msgid "_Remove Association from Invoice"
-#~ msgstr "_Rimuovi l'associazione per il documento di vendita"
-
-#~ msgid "_Update Association for Bill"
-#~ msgstr "_Aggiorna documento di acquisto associato"
-
-#~ msgid "_Open Association for Bill"
-#~ msgstr "_Apri documento di acquisto associato"
-
-#~ msgid "_Remove Association from Bill"
-#~ msgstr "_Rimuovi documento di acquisto associato"
-
-#~ msgid "_Update Association for Voucher"
-#~ msgstr "_Aggiorna nota spese associata"
-
-#~ msgid "_Open Association for Voucher"
-#~ msgstr "_Apri nota spese associata"
-
-#~ msgid "_Remove Association from Voucher"
-#~ msgstr "_Rimuovi l'associazione dalla nota spese"
-
-# Tooltip
-#~ msgid "_Update Association for Credit Note"
-#~ msgstr "_Aggiorna nota credito associata"
-
-#~ msgid "_Open Association for Credit Note"
-#~ msgstr "_Apri nota credito associata"
-
-# Tooltip
-#~ msgid "_Remove Association from Credit Note"
-#~ msgstr "_Rimuovi nota credito associata"
-
-#~ msgid "Update Association for current invoice"
-#~ msgstr "Aggiorna l'associazione per questo documento di vendita"
-
-#~ msgid "Open Association for current invoice"
-#~ msgstr "Apri l'associazione per questo documento di vendita"
-
-#~ msgid "Remove Association from invoice"
-#~ msgstr "Rimuovi l'associazione dal documento di vendita"
-
-#~ msgid "Update Association for current bill"
-#~ msgstr "Aggiorna l'associazione per questo documento di acquisto"
-
-#~ msgid "Open Association for current bill"
-#~ msgstr "Apri l'associazione per questo documento di acquisto"
-
-#~ msgid "Remove Association from bill"
-#~ msgstr "Rimuovi l'associazione dal documento di acquisto"
-
-#~ msgid "Update Association for current voucher"
-#~ msgstr "Aggiorna l'associazione per questa nota spese"
-
-#~ msgid "Open Association for current voucher"
-#~ msgstr "Apri l'associazione per questa nota spese"
-
-#~ msgid "Remove Association from voucher"
-#~ msgstr "Rimuovi l'associazione dalla nota spese"
-
-# Tooltip
-#~ msgid "Update Association for credit note"
-#~ msgstr "Aggiorna l'associazione per la nota credito"
-
-#~ msgid "Open Association for credit note"
-#~ msgstr "Apri l'associazione per la nota credito"
-
-#~ msgid "Remove Association from credit note"
-#~ msgstr "Rimuovi l'associazione dalla nota credito"
-
-# Tooltip
-#~ msgid "Jump to the corresponding transaction in the other account"
-#~ msgstr "Va alla transazione corrispondente nell'altro conto"
-
-#~ msgid "Update _Association for Transaction"
-#~ msgstr "A_ggiorna l'associazione per la transazione"
-
-#~ msgid "_Open Association for Transaction"
-#~ msgstr "_Apri l'associazione per la transazione"
-
-#~ msgid "Re_move Association from Transaction"
-#~ msgstr "_Rimuovi l'associazione per la transazione"
-
-#~ msgid "Open Associated Invoice"
-#~ msgstr "Apri documento di vendita associato"
-
-#~ msgid "Update Association for the current transaction"
-#~ msgstr "Aggiorna l'associazione per questa transazione"
-
-#~ msgid "Remove the association from the current transaction"
-#~ msgstr "Rimuovi l'associazione da questa transazione"
-
-#~ msgid "Open the associated invoice"
-#~ msgstr "Apre il documento di vendita associato"
-
-#~ msgid "Update Association"
-#~ msgstr "Aggiorna associazione"
-
-#~ msgid "Open Association"
-#~ msgstr "Apri associazione"
-
-#~ msgid "Remove Association"
-#~ msgstr "Rimuovi associazione"
-
-#~ msgid "Open Invoice"
-#~ msgstr "Apri documento di vendita"
-
-#~ msgid "_File Association"
-#~ msgstr "Associazione _file"
-
-#~ msgid "_Location Association"
-#~ msgstr "Associazione _posizione"
-
-#~ msgid "All Associations"
-#~ msgstr "Tutte le associazioni"
-
-#~ msgid "_Locate Associations"
-#~ msgstr "_Individua le associazioni"
-
-#~ msgid "Association"
-#~ msgstr "Associazione"
-
-#~ msgid ""
-#~ "   To jump to the Transaction, double click on the entry in the "
-#~ "Description\n"
-#~ "column, Association column to open the Association or Available to update"
-#~ msgstr ""
-#~ "     Per passare alla transazione, fai doppio clic sulla voce nella "
-#~ "colonna descrizione\n"
-#~ "o nella colonna associazione per aprire l'Associazione, o su disponibile "
-#~ "per aggiornare"
-
-#~ msgid "Date/Time"
-#~ msgstr "Data e ora"
-
-#~ msgid "<b>Associated Files</b>"
-#~ msgstr "<b>File associati</b>"
-
-#~ msgid "Keep Associated Entry"
-#~ msgstr "Mantieni la voce associata"
-
-#~ msgid "Date-opened"
-#~ msgstr "Data-apertura"
-
-#~ msgid "Date-posted"
-#~ msgstr "Data-emissione"
-
-#~ msgid "Due-date"
-#~ msgstr "Data-scadenza"
-
-#~ msgctxt "Column header for 'Associate'"
-#~ msgid "A"
-#~ msgstr "A"
-
-#~ msgid "One year."
-#~ msgstr "Un anno."
-
-#~ msgid "Links"
-#~ msgstr "Collegamenti"
-
-#, scheme-format
-#~ msgid "No transactions were found associated with the ~a."
-#~ msgstr "Non è stata trovata nessuna transazione associata con ~a."
-
-#~ msgid "Font to use for the main heading"
-#~ msgstr "Tipo di carattere da utilizzare per l'intestazione principale"
-
-#~ msgid "Font to use for everything else"
-#~ msgstr "Tipo di carattere da utilizzare per il resto"
-
-# tooltip
-#~ msgid "Display the transaction association"
-#~ msgstr "Mostra l'associazione della transazione"
-
-#~ msgid "Enable links"
-#~ msgstr "Abilita collegamenti"
-
-#~ msgid "A"
-#~ msgstr "A"
-
-#, scheme-format
-#~ msgid "error ~a during csv output to ~a: ~s"
-#~ msgstr "error ~a durante l'esportazione cvs a ~a: ~s"
-
-#~ msgctxt "Association flag for 'file'"
-#~ msgid "f"
-#~ msgstr "f"
-
-#~ msgid "gnucash-icon"
-#~ msgstr "gnucash-icon"

commit 3c5066feb4a6a58c263c3ae83a16739fedf28266
Author: Robert Fewell <14uBobIT at gmail.com>
Date:   Thu Oct 22 14:30:46 2020 +0100

    Change source files option-util.* for spaces and tabs

diff --git a/libgnucash/app-utils/option-util.c b/libgnucash/app-utils/option-util.c
index 42c3b5a19..c36656ac0 100644
--- a/libgnucash/app-utils/option-util.c
+++ b/libgnucash/app-utils/option-util.c
@@ -194,14 +194,13 @@ gnc_option_set_selectable (GNCOption *option, gboolean selectable)
  * Returns: nothing                                                 *
 \********************************************************************/
 static void
-gnc_option_db_init(GNCOptionDB *odb)
+gnc_option_db_init (GNCOptionDB *odb)
 {
-    SCM func = scm_c_eval_string("gnc:send-options");
+    SCM func = scm_c_eval_string ("gnc:send-options");
 
-    scm_call_2(func, scm_from_int (odb->handle), odb->guile_options);
+    scm_call_2 (func, scm_from_int (odb->handle), odb->guile_options);
 }
 
-
 /********************************************************************\
  * gnc_option_db_new                                                *
  *   allocate a new option database and initialize its values       *
@@ -210,32 +209,32 @@ gnc_option_db_init(GNCOptionDB *odb)
  * Returns: a new option database                                   *
 \********************************************************************/
 GNCOptionDB *
-gnc_option_db_new(SCM guile_options)
+gnc_option_db_new (SCM guile_options)
 {
     GNCOptionDB *odb;
     GNCOptionDB *lookup;
 
-    odb = g_new0(GNCOptionDB, 1);
+    odb = g_new0 (GNCOptionDB, 1);
 
     odb->guile_options = guile_options;
-    scm_gc_protect_object(guile_options);
+    scm_gc_protect_object (guile_options);
 
     odb->option_sections = NULL;
     odb->options_dirty = FALSE;
 
     if (option_dbs == NULL)
-        option_dbs = g_hash_table_new(g_int_hash, g_int_equal);
+        option_dbs = g_hash_table_new (g_int_hash, g_int_equal);
 
     do
     {
         odb->handle = last_db_handle++;
-        lookup = g_hash_table_lookup(option_dbs, &odb->handle);
+        lookup = g_hash_table_lookup (option_dbs, &odb->handle);
     }
     while (lookup != NULL);
 
-    g_hash_table_insert(option_dbs, &odb->handle, odb);
+    g_hash_table_insert (option_dbs, &odb->handle, odb);
 
-    gnc_option_db_init(odb);
+    gnc_option_db_init (odb);
 
     return odb;
 }
@@ -249,43 +248,43 @@ static void
 init_table(void)
 {
     if (!kvp_registry)
-        kvp_registry = g_hash_table_new(g_str_hash, g_str_equal);
+        kvp_registry = g_hash_table_new (g_str_hash, g_str_equal);
 }
 
 
 /*  create a new options object for the requested type */
 static SCM
-gnc_make_kvp_options(QofIdType id_type)
+gnc_make_kvp_options (QofIdType id_type)
 {
     GList *list, *p;
     SCM gnc_new_options = SCM_UNDEFINED;
     SCM options = SCM_UNDEFINED;
 
     init_table();
-    list = g_hash_table_lookup(kvp_registry, id_type);
-    gnc_new_options = scm_c_eval_string("gnc:new-options");
-    options = scm_call_0(gnc_new_options);
+    list = g_hash_table_lookup (kvp_registry, id_type);
+    gnc_new_options = scm_c_eval_string ("gnc:new-options");
+    options = scm_call_0 (gnc_new_options);
 
     for (p = list; p; p = p->next)
     {
         SCM generator = p->data;
-        scm_call_1(generator, options);
+        scm_call_1 (generator, options);
     }
     return options;
 }
 
 GNCOptionDB *
-gnc_option_db_new_for_type(QofIdType id_type)
+gnc_option_db_new_for_type (QofIdType id_type)
 {
     SCM options;
 
     if (!id_type) return NULL;
-    options = gnc_make_kvp_options(id_type);
+    options = gnc_make_kvp_options (id_type);
     return gnc_option_db_new (options);
 }
 
 void
-gnc_option_db_load(GNCOptionDB* odb, QofBook *book)
+gnc_option_db_load (GNCOptionDB* odb, QofBook *book)
 {
     static SCM kvp_to_scm = SCM_UNDEFINED;
     SCM scm_book;
@@ -294,7 +293,7 @@ gnc_option_db_load(GNCOptionDB* odb, QofBook *book)
 
     if (kvp_to_scm == SCM_UNDEFINED)
     {
-        kvp_to_scm = scm_c_eval_string("gnc:options-kvp->scm");
+        kvp_to_scm = scm_c_eval_string ("gnc:options-kvp->scm");
         if (!scm_is_procedure (kvp_to_scm))
         {
             PERR ("not a procedure\n");
@@ -303,13 +302,13 @@ gnc_option_db_load(GNCOptionDB* odb, QofBook *book)
         }
     }
 
-    scm_book = SWIG_NewPointerObj(book, SWIG_TypeQuery("_p_QofBook"), 0);
+    scm_book = SWIG_NewPointerObj (book, SWIG_TypeQuery ("_p_QofBook"), 0);
 
     scm_call_2 (kvp_to_scm, odb->guile_options, scm_book);
 }
 
 void
-gnc_option_db_save(GNCOptionDB* odb, QofBook *book, gboolean clear_all)
+gnc_option_db_save (GNCOptionDB* odb, QofBook *book, gboolean clear_all)
 {
     static SCM scm_to_kvp = SCM_UNDEFINED;
     SCM scm_book;
@@ -319,7 +318,7 @@ gnc_option_db_save(GNCOptionDB* odb, QofBook *book, gboolean clear_all)
 
     if (scm_to_kvp == SCM_UNDEFINED)
     {
-        scm_to_kvp = scm_c_eval_string("gnc:options-scm->kvp");
+        scm_to_kvp = scm_c_eval_string ("gnc:options-scm->kvp");
         if (!scm_is_procedure (scm_to_kvp))
         {
             PERR ("not a procedure\n");
@@ -328,11 +327,12 @@ gnc_option_db_save(GNCOptionDB* odb, QofBook *book, gboolean clear_all)
         }
     }
 
-    scm_book = SWIG_NewPointerObj(book, SWIG_TypeQuery("_p_QofBook"), 0);
+    scm_book = SWIG_NewPointerObj (book, SWIG_TypeQuery ("_p_QofBook"), 0);
     scm_clear_all = scm_from_bool (clear_all);
 
     scm_call_3 (scm_to_kvp, odb->guile_options, scm_book, scm_clear_all);
 }
+
 /********************************************************************\
  * gnc_option_db_destroy                                            *
  *   unregister the scheme options and free all the memory          *
@@ -343,7 +343,7 @@ gnc_option_db_save(GNCOptionDB* odb, QofBook *book, gboolean clear_all)
  * Returns: nothing                                                 *
 \********************************************************************/
 void
-gnc_option_db_destroy(GNCOptionDB *odb)
+gnc_option_db_destroy (GNCOptionDB *odb)
 {
     GSList *snode;
 
@@ -359,35 +359,35 @@ gnc_option_db_destroy(GNCOptionDB *odb)
         {
             GNCOption *option = onode->data;
 
-            scm_gc_unprotect_object(option->guile_option);
+            scm_gc_unprotect_object (option->guile_option);
             g_free (option);
         }
 
         /* Free the option list */
-        g_slist_free(section->options);
+        g_slist_free (section->options);
         section->options = NULL;
 
         if (section->section_name != NULL)
-            free(section->section_name);
+            free (section->section_name);
         section->section_name = NULL;
 
         g_free (section);
     }
 
-    g_slist_free(odb->option_sections);
+    g_slist_free (odb->option_sections);
 
     odb->option_sections = NULL;
     odb->options_dirty = FALSE;
 
-    g_hash_table_remove(option_dbs, &odb->handle);
+    g_hash_table_remove (option_dbs, &odb->handle);
 
-    if (g_hash_table_size(option_dbs) == 0)
+    if (g_hash_table_size (option_dbs) == 0)
     {
-        g_hash_table_destroy(option_dbs);
+        g_hash_table_destroy (option_dbs);
         option_dbs = NULL;
     }
 
-    scm_gc_unprotect_object(odb->guile_options);
+    scm_gc_unprotect_object (odb->guile_options);
     odb->guile_options = SCM_UNDEFINED;
 
     g_free(odb);
@@ -421,11 +421,11 @@ gnc_option_db_set_ui_callbacks (GNCOptionDB *odb,
  * Returns: SCM handle for unregistering                            *
 \********************************************************************/
 SCM
-gnc_option_db_register_change_callback(GNCOptionDB *odb,
-                                       GNCOptionChangeCallback callback,
-                                       gpointer data,
-                                       const char *section,
-                                       const char *name)
+gnc_option_db_register_change_callback (GNCOptionDB *odb,
+                                        GNCOptionChangeCallback callback,
+                                        gpointer data,
+                                        const char *section,
+                                        const char *name)
 {
     SCM register_proc;
     SCM arg;
@@ -435,8 +435,8 @@ gnc_option_db_register_change_callback(GNCOptionDB *odb,
         return SCM_UNDEFINED;
 
     /* Get the register procedure */
-    register_proc = scm_c_eval_string("gnc:options-register-c-callback");
-    if (!scm_is_procedure(register_proc))
+    register_proc = scm_c_eval_string ("gnc:options-register-c-callback");
+    if (!scm_is_procedure (register_proc))
     {
         PERR("not a procedure\n");
         return SCM_UNDEFINED;
@@ -446,16 +446,16 @@ gnc_option_db_register_change_callback(GNCOptionDB *odb,
     args = SCM_EOL;
 
     /* first the guile options database */
-    args = scm_cons(odb->guile_options, args);
+    args = scm_cons (odb->guile_options, args);
 
     /* next the data */
-    arg = SWIG_NewPointerObj(data, SWIG_TypeQuery("_p_void"), 0);
-    args = scm_cons(arg, args);
+    arg = SWIG_NewPointerObj (data, SWIG_TypeQuery ("_p_void"), 0);
+    args = scm_cons (arg, args);
 
     /* next the callback */
-    arg = SWIG_NewPointerObj(
-              callback, SWIG_TypeQuery("GNCOptionChangeCallback"), 0);
-    args = scm_cons(arg, args);
+    arg = SWIG_NewPointerObj (
+              callback, SWIG_TypeQuery ("GNCOptionChangeCallback"), 0);
+    args = scm_cons (arg, args);
 
     /* next the name */
     if (name == NULL)
@@ -464,9 +464,9 @@ gnc_option_db_register_change_callback(GNCOptionDB *odb,
     }
     else
     {
-        arg = scm_from_utf8_string(name);
+        arg = scm_from_utf8_string (name);
     }
-    args = scm_cons(arg, args);
+    args = scm_cons (arg, args);
 
     /* next the section */
     if (section == NULL)
@@ -475,15 +475,14 @@ gnc_option_db_register_change_callback(GNCOptionDB *odb,
     }
     else
     {
-        arg = scm_from_utf8_string(section);
+        arg = scm_from_utf8_string (section);
     }
-    args = scm_cons(arg, args);
+    args = scm_cons (arg, args);
 
     /* now apply the procedure */
-    return scm_apply(register_proc, args, SCM_EOL);
+    return scm_apply (register_proc, args, SCM_EOL);
 }
 
-
 /********************************************************************\
  * gnc_option_db_unregister_change_callback_id                      *
  *   unregister the change callback associated with the given id    *
@@ -493,21 +492,21 @@ gnc_option_db_register_change_callback(GNCOptionDB *odb,
  * Returns: nothing                                                 *
 \********************************************************************/
 void
-gnc_option_db_unregister_change_callback_id(GNCOptionDB *odb, SCM callback_id)
+gnc_option_db_unregister_change_callback_id (GNCOptionDB *odb, SCM callback_id)
 {
     SCM proc;
 
     if (callback_id == SCM_UNDEFINED)
         return;
 
-    proc = scm_c_eval_string("gnc:options-unregister-callback-id");
-    if (!scm_is_procedure(proc))
+    proc = scm_c_eval_string ("gnc:options-unregister-callback-id");
+    if (!scm_is_procedure (proc))
     {
         PERR("not a procedure\n");
         return;
     }
 
-    scm_call_2(proc, callback_id, odb->guile_options);
+    scm_call_2 (proc, callback_id, odb->guile_options);
 }
 
 void
@@ -517,21 +516,20 @@ gncp_option_invoke_callback (GNCOptionChangeCallback callback, void *data)
 }
 
 static void
-gnc_call_option_change_callbacks(GNCOptionDB *odb)
+gnc_call_option_change_callbacks (GNCOptionDB *odb)
 {
     SCM proc;
 
-    proc = scm_c_eval_string("gnc:options-run-callbacks");
-    if (!scm_is_procedure(proc))
+    proc = scm_c_eval_string ("gnc:options-run-callbacks");
+    if (!scm_is_procedure (proc))
     {
         PERR("not a procedure\n");
         return;
     }
 
-    scm_call_1(proc, odb->guile_options);
+    scm_call_1 (proc, odb->guile_options);
 }
 
-
 static void
 initialize_getters(void)
 {
@@ -540,59 +538,58 @@ initialize_getters(void)
     if (getters_initialized)
         return;
 
-    getters.section = scm_c_eval_string("gnc:option-section");
-    getters.name = scm_c_eval_string("gnc:option-name");
-    getters.type = scm_c_eval_string("gnc:option-type");
-    getters.sort_tag = scm_c_eval_string("gnc:option-sort-tag");
+    getters.section = scm_c_eval_string ("gnc:option-section");
+    getters.name = scm_c_eval_string ("gnc:option-name");
+    getters.type = scm_c_eval_string ("gnc:option-type");
+    getters.sort_tag = scm_c_eval_string ("gnc:option-sort-tag");
     getters.documentation =
-        scm_c_eval_string("gnc:option-documentation");
-    getters.getter = scm_c_eval_string("gnc:option-getter");
-    getters.setter = scm_c_eval_string("gnc:option-setter");
+        scm_c_eval_string ("gnc:option-documentation");
+    getters.getter = scm_c_eval_string ("gnc:option-getter");
+    getters.setter = scm_c_eval_string ("gnc:option-setter");
     getters.default_getter =
-        scm_c_eval_string("gnc:option-default-getter");
+        scm_c_eval_string ("gnc:option-default-getter");
     getters.value_validator =
-        scm_c_eval_string("gnc:option-value-validator");
-    getters.option_data = scm_c_eval_string("gnc:option-data");
-    getters.index_to_name = scm_c_eval_string("gnc:option-index-get-name");
+        scm_c_eval_string ("gnc:option-value-validator");
+    getters.option_data = scm_c_eval_string ("gnc:option-data");
+    getters.index_to_name = scm_c_eval_string ("gnc:option-index-get-name");
     getters.index_to_description =
-        scm_c_eval_string("gnc:option-index-get-description");
-    getters.number_of_indices = scm_c_eval_string("gnc:option-number-of-indices");
-    getters.index_to_value = scm_c_eval_string("gnc:option-index-get-value");
-    getters.value_to_index = scm_c_eval_string("gnc:option-value-get-index");
+        scm_c_eval_string ("gnc:option-index-get-description");
+    getters.number_of_indices = scm_c_eval_string ("gnc:option-number-of-indices");
+    getters.index_to_value = scm_c_eval_string ("gnc:option-index-get-value");
+    getters.value_to_index = scm_c_eval_string ("gnc:option-value-get-index");
     getters.option_widget_changed_cb =
-        scm_c_eval_string("gnc:option-widget-changed-proc");
-    getters.date_option_subtype = scm_c_eval_string("gnc:date-option-get-subtype");
-    getters.date_option_show_time = scm_c_eval_string("gnc:date-option-show-time?");
+        scm_c_eval_string ("gnc:option-widget-changed-proc");
+    getters.date_option_subtype = scm_c_eval_string ("gnc:date-option-get-subtype");
+    getters.date_option_show_time = scm_c_eval_string ("gnc:date-option-show-time?");
     getters.date_option_value_type = scm_c_eval_string ("gnc:date-option-value-type");
     getters.date_option_value_absolute =
-        scm_c_eval_string("gnc:date-option-absolute-time");
+        scm_c_eval_string ("gnc:date-option-absolute-time");
     getters.date_option_value_relative =
-        scm_c_eval_string("gnc:date-option-relative-time");
+        scm_c_eval_string ("gnc:date-option-relative-time");
     getters.plot_size_option_value_type = scm_c_eval_string ("gnc:plot-size-option-value-type");
-    getters.plot_size_option_value = scm_c_eval_string("gnc:plot-size-option-value");
+    getters.plot_size_option_value = scm_c_eval_string ("gnc:plot-size-option-value");
     getters.currency_accounting_option_currency_doc_string =
-        scm_c_eval_string("gnc:currency-accounting-option-get-curr-doc-string");
+        scm_c_eval_string ("gnc:currency-accounting-option-get-curr-doc-string");
     getters.currency_accounting_option_default_currency =
-        scm_c_eval_string("gnc:currency-accounting-option-get-default-curr");
+        scm_c_eval_string ("gnc:currency-accounting-option-get-default-curr");
     getters.currency_accounting_option_policy_doc_string =
-        scm_c_eval_string("gnc:currency-accounting-option-get-policy-doc-string");
+        scm_c_eval_string ("gnc:currency-accounting-option-get-policy-doc-string");
     getters.currency_accounting_option_default_policy =
-        scm_c_eval_string("gnc:currency-accounting-option-get-default-policy");
+        scm_c_eval_string ("gnc:currency-accounting-option-get-default-policy");
     getters.currency_accounting_option_gain_loss_account_doc_string =
-        scm_c_eval_string("gnc:currency-accounting-option-get-gain-loss-account-doc-string");
+        scm_c_eval_string ("gnc:currency-accounting-option-get-gain-loss-account-doc-string");
     getters.currency_accounting_option_method =
-        scm_c_eval_string("gnc:currency-accounting-option-selected-method");
+        scm_c_eval_string ("gnc:currency-accounting-option-selected-method");
     getters.currency_accounting_option_book_currency =
-        scm_c_eval_string("gnc:currency-accounting-option-selected-currency");
+        scm_c_eval_string ("gnc:currency-accounting-option-selected-currency");
     getters.currency_accounting_option_selected_default_policy =
-        scm_c_eval_string("gnc:currency-accounting-option-selected-policy");
+        scm_c_eval_string ("gnc:currency-accounting-option-selected-policy");
     getters.currency_accounting_option_selected_default_gain_loss_account =
-        scm_c_eval_string("gnc:currency-accounting-option-selected-gain-loss-account");
+        scm_c_eval_string ("gnc:currency-accounting-option-selected-gain-loss-account");
 
     getters_initialized = TRUE;
 }
 
-
 /********************************************************************\
  * gnc_option_section                                               *
  *   returns the malloc'ed section name of the option, or NULL      *
@@ -602,14 +599,13 @@ initialize_getters(void)
  * Returns: malloc'ed char * or NULL                                *
 \********************************************************************/
 char *
-gnc_option_section(GNCOption *option)
+gnc_option_section (GNCOption *option)
 {
-    initialize_getters();
+    initialize_getters ();
 
-    return gnc_scm_call_1_to_string(getters.section, option->guile_option);
+    return gnc_scm_call_1_to_string (getters.section, option->guile_option);
 }
 
-
 /********************************************************************\
  * gnc_option_name                                                  *
  *   returns the malloc'ed name of the option, or NULL              *
@@ -619,14 +615,13 @@ gnc_option_section(GNCOption *option)
  * Returns: malloc'ed char * or NULL                                *
 \********************************************************************/
 char *
-gnc_option_name(GNCOption *option)
+gnc_option_name (GNCOption *option)
 {
-    initialize_getters();
+    initialize_getters ();
 
-    return gnc_scm_call_1_to_string(getters.name, option->guile_option);
+    return gnc_scm_call_1_to_string (getters.name, option->guile_option);
 }
 
-
 /********************************************************************\
  * gnc_option_type                                                  *
  *   returns the malloc'ed type of the option, or NULL              *
@@ -636,15 +631,14 @@ gnc_option_name(GNCOption *option)
  * Returns: malloc'ed char * or NULL                                *
 \********************************************************************/
 char *
-gnc_option_type(GNCOption *option)
+gnc_option_type (GNCOption *option)
 {
-    initialize_getters();
+    initialize_getters ();
 
-    return gnc_scm_call_1_symbol_to_string(getters.type,
+    return gnc_scm_call_1_symbol_to_string (getters.type,
                                             option->guile_option);
 }
 
-
 /********************************************************************\
  * gnc_option_sort_tag                                              *
  *   returns the malloc'ed sort tag of the option, or NULL          *
@@ -654,14 +648,13 @@ gnc_option_type(GNCOption *option)
  * Returns: malloc'ed char * or NULL                                *
 \********************************************************************/
 char *
-gnc_option_sort_tag(GNCOption *option)
+gnc_option_sort_tag (GNCOption *option)
 {
-    initialize_getters();
+    initialize_getters ();
 
-    return gnc_scm_call_1_to_string(getters.sort_tag, option->guile_option);
+    return gnc_scm_call_1_to_string (getters.sort_tag, option->guile_option);
 }
 
-
 /********************************************************************\
  * gnc_option_documentation                                         *
  *   returns the malloc'ed documentation string of the option, or   *
@@ -671,15 +664,14 @@ gnc_option_sort_tag(GNCOption *option)
  * Returns: malloc'ed char * or NULL                                *
 \********************************************************************/
 char *
-gnc_option_documentation(GNCOption *option)
+gnc_option_documentation (GNCOption *option)
 {
-    initialize_getters();
+    initialize_getters ();
 
-    return gnc_scm_call_1_to_string(getters.documentation,
+    return gnc_scm_call_1_to_string (getters.documentation,
                                      option->guile_option);
 }
 
-
 /********************************************************************\
  * gnc_option_getter                                                *
  *   returns the SCM handle for the option getter function.         *
@@ -689,15 +681,14 @@ gnc_option_documentation(GNCOption *option)
  * Returns: SCM handle to function                                  *
 \********************************************************************/
 SCM
-gnc_option_getter(GNCOption *option)
+gnc_option_getter (GNCOption *option)
 {
-    initialize_getters();
+    initialize_getters ();
 
-    return gnc_scm_call_1_to_procedure(getters.getter,
+    return gnc_scm_call_1_to_procedure (getters.getter,
                                         option->guile_option);
 }
 
-
 /********************************************************************\
  * gnc_option_setter                                                *
  *   returns the SCM handle for the option setter function.         *
@@ -707,15 +698,14 @@ gnc_option_getter(GNCOption *option)
  * Returns: SCM handle to function                                  *
 \********************************************************************/
 SCM
-gnc_option_setter(GNCOption *option)
+gnc_option_setter (GNCOption *option)
 {
-    initialize_getters();
+    initialize_getters ();
 
-    return gnc_scm_call_1_to_procedure(getters.setter,
+    return gnc_scm_call_1_to_procedure (getters.setter,
                                         option->guile_option);
 }
 
-
 /********************************************************************\
  * gnc_option_default_getter                                        *
  *   returns the SCM handle for the option default_getter function. *
@@ -725,15 +715,14 @@ gnc_option_setter(GNCOption *option)
  * Returns: SCM handle to function                                  *
 \********************************************************************/
 SCM
-gnc_option_default_getter(GNCOption *option)
+gnc_option_default_getter (GNCOption *option)
 {
-    initialize_getters();
+    initialize_getters ();
 
-    return gnc_scm_call_1_to_procedure(getters.default_getter,
+    return gnc_scm_call_1_to_procedure (getters.default_getter,
                                         option->guile_option);
 }
 
-
 /********************************************************************\
  * gnc_option_value_validator                                       *
  *   returns the SCM handle for the option value validator function.*
@@ -743,15 +732,14 @@ gnc_option_default_getter(GNCOption *option)
  * Returns: SCM handle to function                                  *
 \********************************************************************/
 SCM
-gnc_option_value_validator(GNCOption *option)
+gnc_option_value_validator (GNCOption *option)
 {
-    initialize_getters();
+    initialize_getters ();
 
-    return gnc_scm_call_1_to_procedure(getters.value_validator,
+    return gnc_scm_call_1_to_procedure (getters.value_validator,
                                         option->guile_option);
 }
 
-
 /********************************************************************\
  * gnc_option_widget_changed_proc_getter                            *
  *   returns the SCM handle for the function to be called if the    *
@@ -764,20 +752,20 @@ gnc_option_value_validator(GNCOption *option)
  *          If no such function exists, returns SCM_UNDEFINED.      *
 \********************************************************************/
 SCM
-gnc_option_widget_changed_proc_getter(GNCOption *option)
+gnc_option_widget_changed_proc_getter (GNCOption *option)
 {
     SCM cb;
 
-    initialize_getters();
+    initialize_getters ();
 
-    if ( scm_is_procedure( getters.option_widget_changed_cb ) )
+    if (scm_is_procedure (getters.option_widget_changed_cb))
     {
         /* call the callback function getter to get the actual callback function */
-        cb = scm_call_1(getters.option_widget_changed_cb, option->guile_option);
+        cb = scm_call_1 (getters.option_widget_changed_cb, option->guile_option);
 
-        if ( scm_is_procedure( cb ) )  /* a callback exists */
+        if (scm_is_procedure (cb))  /* a callback exists */
         {
-            return( cb );
+            return (cb);
         }
         /* else no callback exists -  this is a legal situation */
     }
@@ -789,7 +777,6 @@ gnc_option_widget_changed_proc_getter(GNCOption *option)
     return( SCM_UNDEFINED );
 }
 
-
 /**********************************************************************\
  * gnc_option_call_option_widget_changed_proc                         *
  *   If there is an option_widget_changed_cb for this option, call    *
@@ -806,22 +793,21 @@ gnc_option_call_option_widget_changed_proc (GNCOption *option,
 {
     SCM cb, value;
 
-    cb = gnc_option_widget_changed_proc_getter(option);
+    cb = gnc_option_widget_changed_proc_getter (option);
 
-    if ( cb != SCM_UNDEFINED )
+    if (cb != SCM_UNDEFINED)
     {
-        value = gnc_option_get_ui_value(option);
+        value = gnc_option_get_ui_value (option);
 
-        if ( value != SCM_UNDEFINED )
+        if (value != SCM_UNDEFINED)
         {
-            scm_call_1(cb, value);
+            scm_call_1 (cb, value);
         }
     }
     if (reset_changed)
         option->changed = FALSE;
 }
 
-
 /********************************************************************\
  * gnc_option_num_permissible_values                                *
  *   returns the number of permissible values in the option, or     *
@@ -831,17 +817,17 @@ gnc_option_call_option_widget_changed_proc (GNCOption *option,
  * Returns: number of permissible options or -1                     *
 \********************************************************************/
 int
-gnc_option_num_permissible_values(GNCOption *option)
+gnc_option_num_permissible_values (GNCOption *option)
 {
     SCM value;
 
-    initialize_getters();
+    initialize_getters ();
 
-    value = scm_call_1(getters.number_of_indices, option->guile_option);
+    value = scm_call_1 (getters.number_of_indices, option->guile_option);
 
-    if (scm_is_exact(value))
+    if (scm_is_exact (value))
     {
-        return scm_to_int(value);
+        return scm_to_int (value);
     }
     else
     {
@@ -849,7 +835,6 @@ gnc_option_num_permissible_values(GNCOption *option)
     }
 }
 
-
 /********************************************************************\
  * gnc_option_permissible_value_index                               *
  *   returns the index of the permissible value matching the        *
@@ -860,21 +845,20 @@ gnc_option_num_permissible_values(GNCOption *option)
  * Returns: index of permissible value, or -1                       *
 \********************************************************************/
 int
-gnc_option_permissible_value_index(GNCOption *option, SCM search_value)
+gnc_option_permissible_value_index (GNCOption *option, SCM search_value)
 {
     SCM value;
-    value = scm_call_2(getters.value_to_index, option->guile_option, search_value);
+    value = scm_call_2 (getters.value_to_index, option->guile_option, search_value);
     if (value == SCM_BOOL_F)
     {
         return -1;
     }
     else
     {
-        return scm_to_int(value);
+        return scm_to_int (value);
     }
 }
 
-
 /********************************************************************\
  * gnc_option_permissible_value                                     *
  *   returns the SCM handle to the indexth permissible value in the *
@@ -886,22 +870,21 @@ gnc_option_permissible_value_index(GNCOption *option, SCM search_value)
  * Returns: SCM handle to option value or SCM_UNDEFINED             *
 \********************************************************************/
 SCM
-gnc_option_permissible_value(GNCOption *option, int index)
+gnc_option_permissible_value (GNCOption *option, int index)
 {
     SCM value;
 
     if (index < 0)
         return SCM_UNDEFINED;
 
-    initialize_getters();
+    initialize_getters ();
 
-    value = scm_call_2(getters.index_to_value, option->guile_option,
-                       scm_from_int (index));
+    value = scm_call_2 (getters.index_to_value, option->guile_option,
+                        scm_from_int (index));
 
     return value;
 }
 
-
 /********************************************************************\
  * gnc_option_permissible_value_name                                *
  *   returns the malloc'd name of the indexth permissible value in  *
@@ -913,26 +896,25 @@ gnc_option_permissible_value(GNCOption *option, int index)
  * Returns: malloc'd name of permissible value or NULL              *
 \********************************************************************/
 char *
-gnc_option_permissible_value_name(GNCOption *option, int index)
+gnc_option_permissible_value_name (GNCOption *option, int index)
 {
     SCM name;
 
     if (index < 0)
         return NULL;
 
-    initialize_getters();
+    initialize_getters ();
 
-    name = scm_call_2(getters.index_to_name, option->guile_option,
-                      scm_from_int (index));
+    name = scm_call_2 (getters.index_to_name, option->guile_option,
+                       scm_from_int (index));
     if (name == SCM_UNDEFINED)
         return NULL;
-    if (!scm_is_string(name))
+    if (!scm_is_string (name))
         return NULL;
 
     return gnc_scm_to_utf8_string (name);
 }
 
-
 /********************************************************************\
  * gnc_option_permissible_value_description                         *
  *   returns the malloc'd description of the indexth permissible    *
@@ -944,26 +926,25 @@ gnc_option_permissible_value_name(GNCOption *option, int index)
  * Returns: malloc'd description of permissible value or NULL       *
 \********************************************************************/
 char *
-gnc_option_permissible_value_description(GNCOption *option, int index)
+gnc_option_permissible_value_description (GNCOption *option, int index)
 {
     SCM help;
 
     if (index < 0)
         return NULL;
 
-    initialize_getters();
+    initialize_getters ();
 
-    help = scm_call_2(getters.index_to_description, option->guile_option,
-                      scm_from_int (index));
+    help = scm_call_2 (getters.index_to_description, option->guile_option,
+                       scm_from_int (index));
     if (help == SCM_UNDEFINED)
         return NULL;
-    if (!scm_is_string(help))
+    if (!scm_is_string (help))
         return NULL;
 
     return gnc_scm_to_utf8_string (help);
 }
 
-
 /********************************************************************\
  * gnc_option_show_time                                             *
  *   returns true if the gui should display the time as well as     *
@@ -973,15 +954,15 @@ gnc_option_permissible_value_description(GNCOption *option, int index)
  * Returns: true if time should be shown                            *
 \********************************************************************/
 gboolean
-gnc_option_show_time(GNCOption *option)
+gnc_option_show_time (GNCOption *option)
 {
     SCM value;
 
-    initialize_getters();
+    initialize_getters ();
 
-    value = scm_call_1(getters.date_option_show_time, option->guile_option);
+    value = scm_call_1 (getters.date_option_show_time, option->guile_option);
 
-    return scm_is_true(value);
+    return scm_is_true (value);
 }
 
 /********************************************************************\
@@ -992,14 +973,13 @@ gnc_option_show_time(GNCOption *option)
  * Returns: the option data                                         *
 \********************************************************************/
 SCM
-gnc_option_get_option_data(GNCOption *option)
+gnc_option_get_option_data (GNCOption *option)
 {
-    initialize_getters();
+    initialize_getters ();
 
-    return scm_call_1(getters.option_data, option->guile_option);
+    return scm_call_1 (getters.option_data, option->guile_option);
 }
 
-
 /********************************************************************\
  * gnc_option_multiple_selection                                    *
  *   returns true if the gui should allow multiple selection of     *
@@ -1009,15 +989,15 @@ gnc_option_get_option_data(GNCOption *option)
  * Returns: true if multiple selection allowed                      *
 \********************************************************************/
 gboolean
-gnc_option_multiple_selection(GNCOption *option)
+gnc_option_multiple_selection (GNCOption *option)
 {
     SCM pair;
 
-    initialize_getters();
+    initialize_getters ();
 
-    pair = scm_call_1(getters.option_data, option->guile_option);
+    pair = scm_call_1 (getters.option_data, option->guile_option);
 
-    return !scm_is_true(scm_not(SCM_CAR(pair)));
+    return !scm_is_true (scm_not (SCM_CAR(pair)));
 }
 
 /********************************************************************\
@@ -1030,15 +1010,15 @@ gnc_option_multiple_selection(GNCOption *option)
  * Returns: GList of account types (must be freed by caller)        *
 \********************************************************************/
 GList *
-gnc_option_get_account_type_list(GNCOption *option)
+gnc_option_get_account_type_list (GNCOption *option)
 {
     SCM pair;
     SCM lst;
     GList *type_list = NULL;
 
-    initialize_getters();
+    initialize_getters ();
 
-    pair = scm_call_1(getters.option_data, option->guile_option);
+    pair = scm_call_1 (getters.option_data, option->guile_option);
     lst = SCM_CDR(pair);
 
     while (!scm_is_null (lst))
@@ -1047,12 +1027,12 @@ gnc_option_get_account_type_list(GNCOption *option)
         SCM item;
 
         /* Compute this item and the rest of the list */
-        item = SCM_CAR (lst);
-        lst = SCM_CDR (lst);
+        item = SCM_CAR(lst);
+        lst = SCM_CDR(lst);
 
         if (scm_is_false (scm_integer_p (item)))
         {
-            PERR ("Invalid type");
+            PERR("Invalid type");
         }
         else
         {
@@ -1064,7 +1044,6 @@ gnc_option_get_account_type_list(GNCOption *option)
     return g_list_reverse (type_list);
 }
 
-
 /********************************************************************\
  * gnc_option_get_range_info                                        *
  *   returns the range info for a number range option in the pointer*
@@ -1074,53 +1053,53 @@ gnc_option_get_account_type_list(GNCOption *option)
  * Args: option - the GNCOption                                     *
  * Returns: true if everything went ok :)                           *
 \********************************************************************/
-gboolean gnc_option_get_range_info(GNCOption *option,
-                                   double *lower_bound,
-                                   double *upper_bound,
-                                   int    *num_decimals,
-                                   double *step_size)
+gboolean gnc_option_get_range_info (GNCOption *option,
+                                    double *lower_bound,
+                                    double *upper_bound,
+                                    int    *num_decimals,
+                                    double *step_size)
 {
     SCM list;
     SCM value;
 
-    initialize_getters();
+    initialize_getters ();
 
-    list = scm_call_1(getters.option_data, option->guile_option);
+    list = scm_call_1 (getters.option_data, option->guile_option);
 
-    if (!scm_is_list(list) || scm_is_null(list))
+    if (!scm_is_list (list) || scm_is_null (list))
         return FALSE;
 
     /* lower bound */
     value = SCM_CAR(list);
     list = SCM_CDR(list);
 
-    if (!scm_is_number(value))
+    if (!scm_is_number (value))
         return FALSE;
 
     if (lower_bound != NULL)
-        *lower_bound = scm_to_double(value);
+        *lower_bound = scm_to_double (value);
 
-    if (!scm_is_list(list) || scm_is_null(list))
+    if (!scm_is_list (list) || scm_is_null (list))
         return FALSE;
 
     /* upper bound */
     value = SCM_CAR(list);
     list = SCM_CDR(list);
 
-    if (!scm_is_number(value))
+    if (!scm_is_number (value))
         return FALSE;
 
     if (upper_bound != NULL)
-        *upper_bound = scm_to_double(value);
+        *upper_bound = scm_to_double (value);
 
-    if (!scm_is_list(list) || scm_is_null(list))
+    if (!scm_is_list (list) || scm_is_null (list))
         return FALSE;
 
     /* number of decimals */
     value = SCM_CAR(list);
     list = SCM_CDR(list);
 
-    if (!scm_is_number(value))
+    if (!scm_is_number (value))
         return FALSE;
 
     /* Guile-1.6 returns this as a double, so let's use that in all cases.
@@ -1128,26 +1107,25 @@ gboolean gnc_option_get_range_info(GNCOption *option,
      */
     if (num_decimals != NULL)
     {
-        double decimals = scm_to_double(value);
+        double decimals = scm_to_double (value);
         *num_decimals = (int)decimals;
     }
 
-    if (!scm_is_list(list) || scm_is_null(list))
+    if (!scm_is_list (list) || scm_is_null (list))
         return FALSE;
 
     /* step size */
     value = SCM_CAR(list);
 
-    if (!scm_is_number(value))
+    if (!scm_is_number (value))
         return FALSE;
 
     if (step_size != NULL)
-        *step_size = scm_to_double(value);
+        *step_size = scm_to_double (value);
 
     return TRUE;
 }
 
-
 /********************************************************************\
  * gnc_option_color_range                                           *
  *   returns the color range for rgba values.                       *
@@ -1157,25 +1135,24 @@ gboolean gnc_option_get_range_info(GNCOption *option,
  * Returns: color range for the option                              *
 \********************************************************************/
 gdouble
-gnc_option_color_range(GNCOption *option)
+gnc_option_color_range (GNCOption *option)
 {
     SCM list;
     SCM value;
 
-    initialize_getters();
+    initialize_getters ();
 
-    list = scm_call_1(getters.option_data, option->guile_option);
-    if (!scm_is_list(list) || scm_is_null(list))
+    list = scm_call_1 (getters.option_data, option->guile_option);
+    if (!scm_is_list (list) || scm_is_null (list))
         return 0.0;
 
     value = SCM_CAR(list);
-    if (!scm_is_number(value))
+    if (!scm_is_number (value))
         return 0.0;
 
-    return scm_to_double(value);
+    return scm_to_double (value);
 }
 
-
 /********************************************************************\
  * gnc_option_use_alpha                                             *
  *   returns true if the color option should use alpha transparency *
@@ -1185,29 +1162,28 @@ gnc_option_color_range(GNCOption *option)
  * Returns: true if alpha transparency should be used               *
 \********************************************************************/
 gdouble
-gnc_option_use_alpha(GNCOption *option)
+gnc_option_use_alpha (GNCOption *option)
 {
     SCM list;
     SCM value;
 
-    initialize_getters();
+    initialize_getters ();
 
-    list = scm_call_1(getters.option_data, option->guile_option);
-    if (!scm_is_list(list) || scm_is_null(list))
+    list = scm_call_1 (getters.option_data, option->guile_option);
+    if (!scm_is_list (list) || scm_is_null (list))
         return FALSE;
 
     list = SCM_CDR(list);
-    if (!scm_is_list(list) || scm_is_null(list))
+    if (!scm_is_list (list) || scm_is_null (list))
         return FALSE;
 
     value = SCM_CAR(list);
-    if (!scm_is_bool(value))
+    if (!scm_is_bool (value))
         return FALSE;
 
-    return scm_is_true(value);
+    return scm_is_true (value);
 }
 
-
 /********************************************************************\
  * gnc_option_get_color_argb                                        *
  *   returns the argb value of a color option                       *
@@ -1216,12 +1192,12 @@ gnc_option_use_alpha(GNCOption *option)
  * Returns: argb value of option                                    *
 \********************************************************************/
 guint32
-gnc_option_get_color_argb(GNCOption *option)
+gnc_option_get_color_argb (GNCOption *option)
 {
     gdouble red, green, blue, alpha;
     guint32 color = 0;
 
-    if (!gnc_option_get_color_info(option, FALSE, &red, &green, &blue, &alpha))
+    if (!gnc_option_get_color_info (option, FALSE, &red, &green, &blue, &alpha))
         return 0;
 
     color |= (guint32) (alpha * 255.0);
@@ -1238,7 +1214,6 @@ gnc_option_get_color_argb(GNCOption *option)
     return color;
 }
 
-
 /********************************************************************\
  * gnc_option_get_color_info                                        *
  *   gets the color information from a color option. rgba values    *
@@ -1253,12 +1228,12 @@ gnc_option_get_color_argb(GNCOption *option)
  * Return: true if everything went ok                               *
 \********************************************************************/
 gboolean
-gnc_option_get_color_info(GNCOption *option,
-                          gboolean use_default,
-                          gdouble *red,
-                          gdouble *green,
-                          gdouble *blue,
-                          gdouble *alpha)
+gnc_option_get_color_info (GNCOption *option,
+                           gboolean use_default,
+                           gdouble *red,
+                           gdouble *green,
+                           gdouble *blue,
+                           gdouble *alpha)
 {
     gdouble scale;
     gdouble rgba;
@@ -1269,54 +1244,53 @@ gnc_option_get_color_info(GNCOption *option,
         return FALSE;
 
     if (use_default)
-        getter = gnc_option_default_getter(option);
+        getter = gnc_option_default_getter (option);
     else
-        getter = gnc_option_getter(option);
+        getter = gnc_option_getter (option);
     if (getter == SCM_UNDEFINED)
         return FALSE;
 
-    value = scm_call_0(getter);
-    if (!scm_is_list(value) || scm_is_null(value) || !scm_is_number(SCM_CAR(value)))
+    value = scm_call_0 (getter);
+    if (!scm_is_list (value) || scm_is_null (value) || !scm_is_number (SCM_CAR(value)))
         return FALSE;
 
-    scale = gnc_option_color_range(option);
+    scale = gnc_option_color_range (option);
     if (scale <= 0.0)
         return FALSE;
 
     scale = 1.0 / scale;
 
-    rgba = scm_to_double(SCM_CAR(value));
+    rgba = scm_to_double (SCM_CAR(value));
     if (red != NULL)
         *red = MIN(1.0, rgba * scale);
 
     value = SCM_CDR(value);
-    if (!scm_is_list(value) || scm_is_null(value) || !scm_is_number(SCM_CAR(value)))
+    if (!scm_is_list (value) || scm_is_null (value) || !scm_is_number (SCM_CAR(value)))
         return FALSE;
 
-    rgba = scm_to_double(SCM_CAR(value));
+    rgba = scm_to_double (SCM_CAR(value));
     if (green != NULL)
         *green = MIN(1.0, rgba * scale);
 
     value = SCM_CDR(value);
-    if (!scm_is_list(value) || scm_is_null(value) || !scm_is_number(SCM_CAR(value)))
+    if (!scm_is_list (value) || scm_is_null (value) || !scm_is_number (SCM_CAR(value)))
         return FALSE;
 
-    rgba = scm_to_double(SCM_CAR(value));
+    rgba = scm_to_double (SCM_CAR(value));
     if (blue != NULL)
         *blue = MIN(1.0, rgba * scale);
 
     value = SCM_CDR(value);
-    if (!scm_is_list(value) || scm_is_null(value) || !scm_is_number(SCM_CAR(value)))
+    if (!scm_is_list (value) || scm_is_null (value) || !scm_is_number (SCM_CAR(value)))
         return FALSE;
 
-    rgba = scm_to_double(SCM_CAR(value));
+    rgba = scm_to_double (SCM_CAR(value));
     if (alpha != NULL)
         *alpha = MIN(1.0, rgba * scale);
 
     return TRUE;
 }
 
-
 /********************************************************************\
  * gnc_option_set_default                                           *
  *   set the option to its default value                            *
@@ -1325,7 +1299,7 @@ gnc_option_get_color_info(GNCOption *option,
  * Returns: nothing                                                 *
 \********************************************************************/
 void
-gnc_option_set_default(GNCOption *option)
+gnc_option_set_default (GNCOption *option)
 {
     SCM default_getter;
     SCM setter;
@@ -1334,45 +1308,44 @@ gnc_option_set_default(GNCOption *option)
     if (option == NULL)
         return;
 
-    default_getter = gnc_option_default_getter(option);
+    default_getter = gnc_option_default_getter (option);
     if (default_getter == SCM_UNDEFINED)
         return;
 
-    value = scm_call_0(default_getter);
+    value = scm_call_0 (default_getter);
 
-    setter = gnc_option_setter(option);
+    setter = gnc_option_setter (option);
     if (setter == SCM_UNDEFINED)
         return;
 
-    scm_call_1(setter, value);
+    scm_call_1 (setter, value);
 }
 
-
 static gint
-compare_sections(gconstpointer a, gconstpointer b)
+compare_sections (gconstpointer a, gconstpointer b)
 {
     const GNCOptionSection *sa = a;
     const GNCOptionSection *sb = b;
 
-    return g_strcmp0(sa->section_name, sb->section_name);
+    return g_strcmp0 (sa->section_name, sb->section_name);
 }
 
 static gint
-compare_option_tags(gconstpointer a, gconstpointer b)
+compare_option_tags (gconstpointer a, gconstpointer b)
 {
     GNCOption *oa = (GNCOption *) a;
     GNCOption *ob = (GNCOption *) b;
-    char *tag_a = gnc_option_sort_tag(oa);
-    char *tag_b = gnc_option_sort_tag(ob);
+    char *tag_a = gnc_option_sort_tag (oa);
+    char *tag_b = gnc_option_sort_tag (ob);
     gint result;
 
-    result = g_strcmp0(tag_a, tag_b);
+    result = g_strcmp0 (tag_a, tag_b);
 
     if (tag_a != NULL)
-        free(tag_a);
+        free (tag_a);
 
     if (tag_b != NULL)
-        free(tag_b);
+        free (tag_b);
 
     return result;
 }
@@ -1385,28 +1358,26 @@ compare_option_tags(gconstpointer a, gconstpointer b)
  * Returns: dirty flag                                              *
 \********************************************************************/
 gboolean
-gnc_option_db_dirty(GNCOptionDB *odb)
+gnc_option_db_dirty (GNCOptionDB *odb)
 {
     g_return_val_if_fail (odb, FALSE);
 
     return odb->options_dirty;
 }
 
-
 /********************************************************************\
  * gnc_option_db_clean                                              *
  *   resets the dirty flag of the option database                   *
  *                                                                  *
 \********************************************************************/
 void
-gnc_option_db_clean(GNCOptionDB *odb)
+gnc_option_db_clean (GNCOptionDB *odb)
 {
     g_return_if_fail (odb);
 
     odb->options_dirty = FALSE;
 }
 
-
 /********************************************************************\
  * _gnc_option_db_register_option                                   *
  *   registers an option with an option database. Intended to be    *
@@ -1417,56 +1388,56 @@ gnc_option_db_clean(GNCOptionDB *odb)
  * Returns: nothing                                                 *
 \********************************************************************/
 void
-gnc_option_db_register_option(GNCOptionDBHandle handle, SCM guile_option)
+gnc_option_db_register_option (GNCOptionDBHandle handle, SCM guile_option)
 {
     GNCOptionDB *odb;
     GNCOption *option;
     GNCOptionSection *section;
 
-    odb = g_hash_table_lookup(option_dbs, &handle);
+    odb = g_hash_table_lookup (option_dbs, &handle);
 
     g_return_if_fail (odb != NULL);
 
     odb->options_dirty = TRUE;
 
     /* Make the option structure */
-    option = g_new0(GNCOption, 1);
+    option = g_new0 (GNCOption, 1);
     option->guile_option = guile_option;
     option->changed = FALSE;
     option->widget = NULL;
     option->odb = odb;
 
     /* Prevent guile from garbage collecting the option */
-    scm_gc_protect_object(guile_option);
+    scm_gc_protect_object (guile_option);
 
     /* Make the section structure */
-    section = g_new0(GNCOptionSection, 1);
-    section->section_name = gnc_option_section(option);
+    section = g_new0 (GNCOptionSection, 1);
+    section->section_name = gnc_option_section (option);
     section->options = NULL;
 
     /* See if the section is already there */
     {
         GSList *old;
 
-        old = g_slist_find_custom(odb->option_sections, section, compare_sections);
+        old = g_slist_find_custom (odb->option_sections, section, compare_sections);
 
         if (old != NULL)
         {
             if (section->section_name != NULL)
-                free(section->section_name);
-            g_free(section);
+                free (section->section_name);
+            g_free (section);
             section = old->data;
         }
         else
-            odb->option_sections = g_slist_insert_sorted(odb->option_sections,
-                                   section, compare_sections);
+            odb->option_sections = g_slist_insert_sorted (odb->option_sections,
+                                                          section,
+                                                          compare_sections);
     }
 
-    section->options = g_slist_insert_sorted(section->options, option,
-                       compare_option_tags);
+    section->options = g_slist_insert_sorted (section->options, option,
+                                              compare_option_tags);
 }
 
-
 /********************************************************************\
  * gnc_option_db_num_sections                                       *
  *   returns the number of option sections registered so far in the *
@@ -1476,12 +1447,11 @@ gnc_option_db_register_option(GNCOptionDBHandle handle, SCM guile_option)
  * Returns: number of option sections                               *
 \********************************************************************/
 guint
-gnc_option_db_num_sections(GNCOptionDB *odb)
+gnc_option_db_num_sections (GNCOptionDB *odb)
 {
-    return g_slist_length(odb->option_sections);
+    return g_slist_length (odb->option_sections);
 }
 
-
 /********************************************************************\
  * gnc_option_db_get_section                                        *
  *   returns the ith option section in the database, or NULL        *
@@ -1491,12 +1461,11 @@ gnc_option_db_num_sections(GNCOptionDB *odb)
  * Returns: ith option sectioin                                     *
 \********************************************************************/
 GNCOptionSection *
-gnc_option_db_get_section(GNCOptionDB *odb, gint i)
+gnc_option_db_get_section (GNCOptionDB *odb, gint i)
 {
-    return g_slist_nth_data(odb->option_sections, i);
+    return g_slist_nth_data (odb->option_sections, i);
 }
 
-
 /********************************************************************\
  * gnc_option_section_name                                          *
  *   returns the name of the options section                        *
@@ -1505,12 +1474,11 @@ gnc_option_db_get_section(GNCOptionDB *odb, gint i)
  * Returns: name of option section                                  *
 \********************************************************************/
 const char *
-gnc_option_section_name(GNCOptionSection *section)
+gnc_option_section_name (GNCOptionSection *section)
 {
     return section->section_name;
 }
 
-
 /********************************************************************\
  * gnc_option_section_num_options                                   *
  *   returns the number of options in a given section               *
@@ -1519,12 +1487,11 @@ gnc_option_section_name(GNCOptionSection *section)
  * Returns: number of options in section                            *
 \********************************************************************/
 guint
-gnc_option_section_num_options(GNCOptionSection *section)
+gnc_option_section_num_options (GNCOptionSection *section)
 {
-    return g_slist_length(section->options);
+    return g_slist_length (section->options);
 }
 
-
 /********************************************************************\
  * gnc_get_option_section_option                                    *
  *   returns the ith option in a given section                      *
@@ -1534,12 +1501,11 @@ gnc_option_section_num_options(GNCOptionSection *section)
  * Returns: ith option in section                                   *
 \********************************************************************/
 GNCOption *
-gnc_get_option_section_option(GNCOptionSection *section, int i)
+gnc_get_option_section_option (GNCOptionSection *section, int i)
 {
-    return g_slist_nth_data(section->options, i);
+    return g_slist_nth_data (section->options, i);
 }
 
-
 /********************************************************************\
  * gnc_option_db_get_option_by_name                                 *
  *   returns an option given section name and name                  *
@@ -1550,8 +1516,9 @@ gnc_get_option_section_option(GNCOptionSection *section, int i)
  * Returns: given option, or NULL if none                           *
 \********************************************************************/
 GNCOption *
-gnc_option_db_get_option_by_name(GNCOptionDB *odb, const char *section_name,
-                                 const char *name)
+gnc_option_db_get_option_by_name (GNCOptionDB *odb,
+                                  const char *section_name,
+                                  const char *name)
 {
     GSList *section_node;
     GSList *option_node;
@@ -1566,8 +1533,8 @@ gnc_option_db_get_option_by_name(GNCOptionDB *odb, const char *section_name,
 
     section_key.section_name = (char *) section_name;
 
-    section_node = g_slist_find_custom(odb->option_sections, &section_key,
-                                       compare_sections);
+    section_node = g_slist_find_custom (odb->option_sections, &section_key,
+                                        compare_sections);
 
     if (section_node == NULL)
         return NULL;
@@ -1579,20 +1546,18 @@ gnc_option_db_get_option_by_name(GNCOptionDB *odb, const char *section_name,
     {
         option = option_node->data;
 
-        node_name = gnc_option_name(option);
-        result = g_strcmp0(name, node_name);
-        free(node_name);
+        node_name = gnc_option_name (option);
+        result = g_strcmp0 (name, node_name);
+        free (node_name);
 
         if (result == 0)
             return option;
 
         option_node = option_node->next;
     }
-
     return NULL;
 }
 
-
 /********************************************************************\
  * gnc_option_db_get_option_by_SCM                                  *
  *   returns an option given SCM handle. Uses section and name.     *
@@ -1602,7 +1567,7 @@ gnc_option_db_get_option_by_name(GNCOptionDB *odb, const char *section_name,
  * Returns: given option, or NULL if none                           *
 \********************************************************************/
 GNCOption *
-gnc_option_db_get_option_by_SCM(GNCOptionDB *odb, SCM guile_option)
+gnc_option_db_get_option_by_SCM (GNCOptionDB *odb, SCM guile_option)
 {
     GNCOption option_key;
     GNCOption *option;
@@ -1611,64 +1576,62 @@ gnc_option_db_get_option_by_SCM(GNCOptionDB *odb, SCM guile_option)
 
     option_key.guile_option = guile_option;
 
-    section_name = gnc_option_section(&option_key);
-    name = gnc_option_name(&option_key);
+    section_name = gnc_option_section (&option_key);
+    name = gnc_option_name (&option_key);
 
-    option = gnc_option_db_get_option_by_name(odb, section_name, name);
+    option = gnc_option_db_get_option_by_name (odb, section_name, name);
 
     if (section_name != NULL)
-        free(section_name);
+        free (section_name);
 
     if (name != NULL)
-        free(name);
+        free (name);
 
     return option;
 }
 
-
 static SCM
-gnc_option_valid_value(GNCOption *option, SCM value)
+gnc_option_valid_value (GNCOption *option, SCM value)
 {
     SCM validator;
     SCM result, ok;
 
-    validator = gnc_option_value_validator(option);
+    validator = gnc_option_value_validator (option);
 
-    result = scm_call_1(validator, value);
-    if (!scm_is_list(result) || scm_is_null(result))
+    result = scm_call_1 (validator, value);
+    if (!scm_is_list (result) || scm_is_null (result))
         return SCM_UNDEFINED;
 
     ok = SCM_CAR(result);
-    if (!scm_is_bool(ok))
+    if (!scm_is_bool (ok))
         return SCM_UNDEFINED;
 
-    if (!scm_is_true(ok))
+    if (!scm_is_true (ok))
         return SCM_UNDEFINED;
 
     result = SCM_CDR(result);
-    if (!scm_is_list(result) || scm_is_null(result))
+    if (!scm_is_list (result) || scm_is_null (result))
         return SCM_UNDEFINED;
 
     return SCM_CAR(result);
 }
 
-
 static char*
-gnc_commit_option(GNCOption *option)
+gnc_commit_option (GNCOption *option)
 {
     SCM validator, setter, value;
     SCM result, ok;
     char* retval = NULL;
 
     /* Validate the ui's value */
-    value = gnc_option_get_ui_value(option);
+    value = gnc_option_get_ui_value (option);
     if (value == SCM_UNDEFINED)
         return NULL;
 
-    validator = gnc_option_value_validator(option);
+    validator = gnc_option_value_validator (option);
 
     result = scm_call_1(validator, value);
-    if (!scm_is_list(result) || scm_is_null(result))
+    if (!scm_is_list (result) || scm_is_null (result))
     {
         PERR("bad validation result\n");
         return NULL;
@@ -1676,19 +1639,19 @@ gnc_commit_option(GNCOption *option)
 
     /* First element determines validity */
     ok = SCM_CAR(result);
-    if (!scm_is_bool(ok))
+    if (!scm_is_bool (ok))
     {
         PERR("bad validation result\n");
         return NULL;
     }
 
-    if (scm_is_true(ok))
+    if (scm_is_true (ok))
     {
         /* Second element is value to use */
         value = SCM_CADR(result);
-        setter = gnc_option_setter(option);
+        setter = gnc_option_setter (option);
 
-        scm_call_1(setter, value);
+        scm_call_1 (setter, value);
 
         gnc_option_set_ui_value (option, FALSE);
     }
@@ -1700,38 +1663,36 @@ gnc_commit_option(GNCOption *option)
         const char *format = _("There is a problem with option %s:%s.\n%s");
         const char *bad_value = _("Invalid option value");
 
-        name = gnc_option_name(option);
-        section = gnc_option_section(option);
+        name = gnc_option_name (option);
+        section = gnc_option_section (option);
 
         /* Second element is error message */
         oops = SCM_CADR(result);
-        if (!scm_is_string(oops))
+        if (!scm_is_string (oops))
         {
             PERR("bad validation result\n");
-            retval = g_strdup_printf(format,
-                                     section ? section : "(null)",
-                                     name ? name : "(null)",
-                                     bad_value);
+            retval = g_strdup_printf (format,
+                                      section ? section : "(null)",
+                                      name ? name : "(null)",
+                                      bad_value);
         }
         else
         {
             message = gnc_scm_to_utf8_string (oops);
-            retval = g_strdup_printf(format,
-                                     section ? section : "(null)",
-                                     name ? name : "(null)",
-                                     message ? message : "(null)");
+            retval = g_strdup_printf (format,
+                                      section ? section : "(null)",
+                                      name ? name : "(null)",
+                                      message ? message : "(null)");
         }
         if (name != NULL)
-            free(name);
+            free (name);
         if (section != NULL)
-            free(section);
+            free (section);
         g_free ((gpointer *) message);
     }
-
     return retval;
 }
 
-
 /********************************************************************\
  * gnc_option_db_get_changed                                        *
  *   returns a boolean value, TRUE if any option has changed,       *
@@ -1741,7 +1702,7 @@ gnc_commit_option(GNCOption *option)
  * Return: boolean                                                  *
 \********************************************************************/
 gboolean
-gnc_option_db_get_changed(GNCOptionDB *odb)
+gnc_option_db_get_changed (GNCOptionDB *odb)
 {
     GSList *section_node;
     GSList *option_node;
@@ -1753,13 +1714,11 @@ gnc_option_db_get_changed(GNCOptionDB *odb)
     for (section_node = odb->option_sections; section_node;
             section_node = section_node->next)
     {
-
         section = section_node->data;
 
         for (option_node = section->options; option_node;
                 option_node = option_node->next)
         {
-
             option = option_node->data;
 
             if (option->changed)
@@ -1769,7 +1728,6 @@ gnc_option_db_get_changed(GNCOptionDB *odb)
     return FALSE;
 }
 
-
 /********************************************************************\
  * gnc_option_db_commit                                             *
  *   commits the options which have changed, and which are valid    *
@@ -1779,7 +1737,7 @@ gnc_option_db_get_changed(GNCOptionDB *odb)
  * Return: nothing                                                  *
 \********************************************************************/
 GList*
-gnc_option_db_commit(GNCOptionDB *odb)
+gnc_option_db_commit (GNCOptionDB *odb)
 {
     GSList *section_node;
     GSList *option_node;
@@ -1803,26 +1761,22 @@ gnc_option_db_commit(GNCOptionDB *odb)
             if (option->changed)
             {
                 char *result = NULL;
-                result = gnc_commit_option(option_node->data);
+                result = gnc_commit_option (option_node->data);
                 if (result)
                     commit_errors = g_list_append (commit_errors, result);
                 changed_something = TRUE;
                 option->changed = FALSE;
             }
-
             option_node = option_node->next;
         }
-
         section_node = section_node->next;
     }
-
     if (changed_something)
-        gnc_call_option_change_callbacks(odb);
+        gnc_call_option_change_callbacks (odb);
 
     return commit_errors;
 }
 
-
 /********************************************************************\
  * gnc_option_db_section_reset_widgets                              *
  *   reset all option widgets in one section to their default.      *
@@ -1855,7 +1809,6 @@ gnc_option_db_section_reset_widgets (GNCOptionSection *section)
     }
 }
 
-
 /********************************************************************\
  * gnc_option_db_reset_widgets                                      *
  *   reset all option widgets to their default values.              *
@@ -1880,7 +1833,6 @@ gnc_option_db_reset_widgets (GNCOptionDB *odb)
     }
 }
 
-
 /********************************************************************\
  * gnc_option_db_get_default_section                                *
  *   returns the malloc'd section name of the default section,      *
@@ -1890,7 +1842,7 @@ gnc_option_db_reset_widgets (GNCOptionDB *odb)
  * Return: g_malloc'd default section name                          *
 \********************************************************************/
 char *
-gnc_option_db_get_default_section(GNCOptionDB *odb)
+gnc_option_db_get_default_section (GNCOptionDB *odb)
 {
     SCM getter;
     SCM value;
@@ -1898,18 +1850,17 @@ gnc_option_db_get_default_section(GNCOptionDB *odb)
     if (odb == NULL)
         return NULL;
 
-    getter = scm_c_eval_string("gnc:options-get-default-section");
-    if (!scm_is_procedure(getter))
+    getter = scm_c_eval_string ("gnc:options-get-default-section");
+    if (!scm_is_procedure (getter))
         return NULL;
 
-    value = scm_call_1(getter, odb->guile_options);
-    if (!scm_is_string(value))
+    value = scm_call_1 (getter, odb->guile_options);
+    if (!scm_is_string (value))
         return NULL;
 
     return gnc_scm_to_utf8_string (value);
 }
 
-
 /********************************************************************\
  * gnc_option_db_lookup_option                                      *
  *   looks up an option. If present, returns its SCM value,         *
@@ -1922,24 +1873,24 @@ gnc_option_db_get_default_section(GNCOptionDB *odb)
  * Return: option value                                             *
 \********************************************************************/
 SCM
-gnc_option_db_lookup_option(GNCOptionDB *odb,
-                            const char *section,
-                            const char *name,
-                            SCM default_value)
+gnc_option_db_lookup_option (GNCOptionDB *odb,
+                             const char *section,
+                             const char *name,
+                             SCM default_value)
 {
     GNCOption *option;
     SCM getter;
 
-    option = gnc_option_db_get_option_by_name(odb, section, name);
+    option = gnc_option_db_get_option_by_name (odb, section, name);
 
     if (option == NULL)
         return default_value;
 
-    getter = gnc_option_getter(option);
+    getter = gnc_option_getter (option);
     if (getter == SCM_UNDEFINED)
         return default_value;
 
-    return scm_call_0(getter);
+    return scm_call_0 (getter);
 }
 
 /********************************************************************\
@@ -1954,33 +1905,32 @@ gnc_option_db_lookup_option(GNCOptionDB *odb,
  * Return: gboolean option value                                    *
 \********************************************************************/
 gboolean
-gnc_option_db_lookup_boolean_option(GNCOptionDB *odb,
-                                    const char *section,
-                                    const char *name,
-                                    gboolean default_value)
+gnc_option_db_lookup_boolean_option (GNCOptionDB *odb,
+                                     const char *section,
+                                     const char *name,
+                                     gboolean default_value)
 {
     GNCOption *option;
     SCM getter;
     SCM value;
 
-    option = gnc_option_db_get_option_by_name(odb, section, name);
+    option = gnc_option_db_get_option_by_name (odb, section, name);
 
     if (option == NULL)
         return default_value;
 
-    getter = gnc_option_getter(option);
+    getter = gnc_option_getter (option);
     if (getter == SCM_UNDEFINED)
         return default_value;
 
-    value = scm_call_0(getter);
+    value = scm_call_0 (getter);
 
-    if (scm_is_bool(value))
-        return scm_is_true(value);
+    if (scm_is_bool (value))
+        return scm_is_true (value);
     else
         return default_value;
 }
 
-
 /********************************************************************\
  * gnc_option_db_lookup_string_option                               *
  *   looks up a string option. If present, returns its malloc'ed    *
@@ -1994,24 +1944,24 @@ gnc_option_db_lookup_boolean_option(GNCOptionDB *odb,
  * Return: char * option value                                      *
 \********************************************************************/
 char *
-gnc_option_db_lookup_string_option(GNCOptionDB *odb,
-                                   const char *section,
-                                   const char *name,
-                                   const char *default_value)
+gnc_option_db_lookup_string_option (GNCOptionDB *odb,
+                                    const char *section,
+                                    const char *name,
+                                    const char *default_value)
 {
     GNCOption *option;
     SCM getter;
     SCM value;
 
-    option = gnc_option_db_get_option_by_name(odb, section, name);
+    option = gnc_option_db_get_option_by_name (odb, section, name);
 
     if (option != NULL)
     {
-        getter = gnc_option_getter(option);
+        getter = gnc_option_getter (option);
         if (getter != SCM_UNDEFINED)
         {
-            value = scm_call_0(getter);
-            if (scm_is_string(value))
+            value = scm_call_0 (getter);
+            if (scm_is_string (value))
                 return gnc_scm_to_utf8_string (value);
         }
     }
@@ -2019,10 +1969,9 @@ gnc_option_db_lookup_string_option(GNCOptionDB *odb,
     if (default_value == NULL)
         return NULL;
 
-    return strdup(default_value);
+    return strdup (default_value);
 }
 
-
 /********************************************************************\
  * gnc_option_db_lookup_font_option                                 *
  *   looks up a font option. If present, returns its malloc'ed      *
@@ -2036,15 +1985,14 @@ gnc_option_db_lookup_string_option(GNCOptionDB *odb,
  * Return: char * option value                                      *
 \********************************************************************/
 char *
-gnc_option_db_lookup_font_option(GNCOptionDB *odb,
-                                 const char *section,
-                                 const char *name,
-                                 const char *default_value)
+gnc_option_db_lookup_font_option (GNCOptionDB *odb,
+                                  const char *section,
+                                  const char *name,
+                                  const char *default_value)
 {
-    return gnc_option_db_lookup_string_option(odb, section, name, default_value);
+    return gnc_option_db_lookup_string_option (odb, section, name, default_value);
 }
 
-
 /********************************************************************\
  * gnc_option_db_lookup_multichoice_option                          *
  *   looks up a multichoice option. If present, returns its         *
@@ -2059,24 +2007,24 @@ gnc_option_db_lookup_font_option(GNCOptionDB *odb,
  * Return: char * option value                                      *
 \********************************************************************/
 char *
-gnc_option_db_lookup_multichoice_option(GNCOptionDB *odb,
-                                        const char *section,
-                                        const char *name,
-                                        const char *default_value)
+gnc_option_db_lookup_multichoice_option (GNCOptionDB *odb,
+                                         const char *section,
+                                         const char *name,
+                                         const char *default_value)
 {
     GNCOption *option;
     SCM getter;
     SCM value;
 
-    option = gnc_option_db_get_option_by_name(odb, section, name);
+    option = gnc_option_db_get_option_by_name (odb, section, name);
 
     if (option != NULL)
     {
-        getter = gnc_option_getter(option);
+        getter = gnc_option_getter (option);
         if (getter != SCM_UNDEFINED)
         {
-            value = scm_call_0(getter);
-            if (scm_is_symbol(value))
+            value = scm_call_0 (getter);
+            if (scm_is_symbol (value))
                 return gnc_scm_symbol_to_locale_string (value);
         }
     }
@@ -2084,7 +2032,7 @@ gnc_option_db_lookup_multichoice_option(GNCOptionDB *odb,
     if (default_value == NULL)
         return NULL;
 
-    return strdup(default_value);
+    return strdup (default_value);
 }
 
 /********************************************************************\
@@ -2099,32 +2047,30 @@ gnc_option_db_lookup_multichoice_option(GNCOptionDB *odb,
  * Return: gdouble representation of value                          *
 \********************************************************************/
 gdouble
-gnc_option_db_lookup_number_option(GNCOptionDB *odb,
-                                   const char *section,
-                                   const char *name,
-                                   gdouble default_value)
+gnc_option_db_lookup_number_option (GNCOptionDB *odb,
+                                    const char *section,
+                                    const char *name,
+                                    gdouble default_value)
 {
     GNCOption *option;
     SCM getter;
     SCM value;
 
-    option = gnc_option_db_get_option_by_name(odb, section, name);
+    option = gnc_option_db_get_option_by_name (odb, section, name);
 
     if (option != NULL)
     {
-        getter = gnc_option_getter(option);
+        getter = gnc_option_getter (option);
         if (getter != SCM_UNDEFINED)
         {
-            value = scm_call_0(getter);
-            if (scm_is_number(value))
-                return scm_to_double(value);
+            value = scm_call_0 (getter);
+            if (scm_is_number (value))
+                return scm_to_double (value);
         }
     }
-
     return default_value;
 }
 
-
 /********************************************************************\
  * gnc_option_db_lookup_color_option                                *
  *   looks up a color option. If present, returns its value in the  *
@@ -2139,22 +2085,21 @@ gnc_option_db_lookup_number_option(GNCOptionDB *odb,
  *       alpha     - where to store the alpha value                 *
  * Return: true if option was found                                 *
 \********************************************************************/
-gboolean gnc_option_db_lookup_color_option(GNCOptionDB *odb,
-        const char *section,
-        const char *name,
-        gdouble *red,
-        gdouble *green,
-        gdouble *blue,
-        gdouble *alpha)
+gboolean gnc_option_db_lookup_color_option (GNCOptionDB *odb,
+                                            const char *section,
+                                            const char *name,
+                                            gdouble *red,
+                                            gdouble *green,
+                                            gdouble *blue,
+                                            gdouble *alpha)
 {
     GNCOption *option;
 
-    option = gnc_option_db_get_option_by_name(odb, section, name);
+    option = gnc_option_db_get_option_by_name (odb, section, name);
 
-    return gnc_option_get_color_info(option, FALSE, red, green, blue, alpha);
+    return gnc_option_get_color_info (option, FALSE, red, green, blue, alpha);
 }
 
-
 /********************************************************************\
  * gnc_option_db_lookup_color_option_argb                           *
  *   looks up a color option. If present, returns its argb value,   *
@@ -2166,21 +2111,20 @@ gboolean gnc_option_db_lookup_color_option(GNCOptionDB *odb,
  *       default_value - default value to return if problem         *
  * Return: argb value                                               *
 \********************************************************************/
-guint32 gnc_option_db_lookup_color_option_argb(GNCOptionDB *odb,
-        const char *section,
-        const char *name,
-        guint32 default_value)
+guint32 gnc_option_db_lookup_color_option_argb (GNCOptionDB *odb,
+                                                const char *section,
+                                                const char *name,
+                                                guint32 default_value)
 {
     GNCOption *option;
 
-    option = gnc_option_db_get_option_by_name(odb, section, name);
+    option = gnc_option_db_get_option_by_name (odb, section, name);
     if (option == NULL)
         return default_value;
 
-    return gnc_option_get_color_argb(option);
+    return gnc_option_get_color_argb (option);
 }
 
-
 /********************************************************************\
  * gnc_option_db_lookup_list_option                                 *
  *   looks up a list option. If present, returns its value as a     *
@@ -2193,10 +2137,10 @@ guint32 gnc_option_db_lookup_color_option_argb(GNCOptionDB *odb,
  * Return: list of values                                           *
 \********************************************************************/
 GSList *
-gnc_option_db_lookup_list_option(GNCOptionDB *odb,
-                                 const char *section,
-                                 const char *name,
-                                 GSList *default_value)
+gnc_option_db_lookup_list_option (GNCOptionDB *odb,
+                                  const char *section,
+                                  const char *name,
+                                  GSList *default_value)
 {
     GNCOption *option;
     GSList *list = NULL;
@@ -2204,41 +2148,39 @@ gnc_option_db_lookup_list_option(GNCOptionDB *odb,
     SCM value;
     SCM item;
 
-    option = gnc_option_db_get_option_by_name(odb, section, name);
+    option = gnc_option_db_get_option_by_name (odb, section, name);
     if (option == NULL)
         return default_value;
 
-    getter = gnc_option_getter(option);
+    getter = gnc_option_getter (option);
     if (getter == SCM_UNDEFINED)
         return default_value;
 
-    value = scm_call_0(getter);
-    while (scm_is_list(value) && !scm_is_null(value))
+    value = scm_call_0 (getter);
+    while (scm_is_list (value) && !scm_is_null (value))
     {
         item = SCM_CAR(value);
         value = SCM_CDR(value);
 
-        if (!scm_is_symbol(item))
+        if (!scm_is_symbol (item))
         {
-            gnc_free_list_option_value(list);
+            gnc_free_list_option_value (list);
 
             return default_value;
         }
 
-        list = g_slist_prepend(list, gnc_scm_symbol_to_locale_string (item));
+        list = g_slist_prepend (list, gnc_scm_symbol_to_locale_string (item));
     }
 
-    if (!scm_is_list(value) || !scm_is_null(value))
+    if (!scm_is_list (value) || !scm_is_null (value))
     {
-        gnc_free_list_option_value(list);
+        gnc_free_list_option_value (list);
 
         return default_value;
     }
-
     return list;
 }
 
-
 /********************************************************************\
  * gnc_option_db_lookup_currency_option                             *
  *   looks up a currency option. If present, returns its value as a *
@@ -2251,42 +2193,42 @@ gnc_option_db_lookup_list_option(GNCOptionDB *odb,
  * Return: commodity or NULL if no commodity found                  *
 \********************************************************************/
 gnc_commodity *
-gnc_option_db_lookup_currency_option(GNCOptionDB *odb,
-                                     const char *section,
-                                     const char *name,
-                                     gnc_commodity *default_value)
+gnc_option_db_lookup_currency_option (GNCOptionDB *odb,
+                                      const char *section,
+                                      const char *name,
+                                      gnc_commodity *default_value)
 {
     GNCOption *option;
     SCM getter;
     SCM value;
 
-    option = gnc_option_db_get_option_by_name(odb, section, name);
+    option = gnc_option_db_get_option_by_name (odb, section, name);
     if (option == NULL)
         return default_value;
 
-    getter = gnc_option_getter(option);
+    getter = gnc_option_getter (option);
     if (getter == SCM_UNDEFINED)
         return default_value;
 
-    value = scm_call_0(getter);
+    value = scm_call_0 (getter);
 
     return gnc_scm_to_commodity (value);
 }
 
 static void
-free_helper(gpointer string, gpointer not_used)
+free_helper (gpointer string, gpointer not_used)
 {
-    if (string) free(string);
+    if (string)
+        free (string);
 }
 
 void
-gnc_free_list_option_value(GSList *list)
+gnc_free_list_option_value (GSList *list)
 {
-    g_slist_foreach(list, free_helper, NULL);
-    g_slist_free(list);
+    g_slist_foreach (list, free_helper, NULL);
+    g_slist_free (list);
 }
 
-
 /********************************************************************\
  * gnc_option_db_set_option_default                                 *
  *   set the option to its default value                            *
@@ -2297,18 +2239,17 @@ gnc_free_list_option_value(GSList *list)
  * Returns: nothing                                                 *
 \********************************************************************/
 void
-gnc_option_db_set_option_default(GNCOptionDB *odb,
-                                 const char *section,
-                                 const char *name)
+gnc_option_db_set_option_default (GNCOptionDB *odb,
+                                  const char *section,
+                                  const char *name)
 {
     GNCOption *option;
 
-    option = gnc_option_db_get_option_by_name(odb, section, name);
+    option = gnc_option_db_get_option_by_name (odb, section, name);
 
-    gnc_option_set_default(option);
+    gnc_option_set_default (option);
 }
 
-
 /********************************************************************\
  * gnc_option_db_set_option                                         *
  *   sets the option to the given value. If successful              *
@@ -2321,32 +2262,31 @@ gnc_option_db_set_option_default(GNCOptionDB *odb,
  * Return: success indicator                                        *
 \********************************************************************/
 gboolean
-gnc_option_db_set_option(GNCOptionDB *odb,
-                         const char *section,
-                         const char *name,
-                         SCM value)
+gnc_option_db_set_option (GNCOptionDB *odb,
+                          const char *section,
+                          const char *name,
+                          SCM value)
 {
     GNCOption *option;
     SCM setter;
 
-    option = gnc_option_db_get_option_by_name(odb, section, name);
+    option = gnc_option_db_get_option_by_name (odb, section, name);
     if (option == NULL)
         return FALSE;
 
-    value = gnc_option_valid_value(option, value);
+    value = gnc_option_valid_value (option, value);
     if (value == SCM_UNDEFINED)
         return FALSE;
 
-    setter = gnc_option_setter(option);
+    setter = gnc_option_setter (option);
     if (setter == SCM_UNDEFINED)
         return FALSE;
 
-    scm_call_1(setter, value);
+    scm_call_1 (setter, value);
 
     return TRUE;
 }
 
-
 /********************************************************************\
  * gnc_option_db_set_number_option                                  *
  *   sets the number option to the given value. If successful       *
@@ -2359,30 +2299,30 @@ gnc_option_db_set_option(GNCOptionDB *odb,
  * Return: success indicator                                        *
 \********************************************************************/
 gboolean
-gnc_option_db_set_number_option(GNCOptionDB *odb,
-                                const char *section,
-                                const char *name,
-                                gdouble value)
+gnc_option_db_set_number_option (GNCOptionDB *odb,
+                                 const char *section,
+                                 const char *name,
+                                 gdouble value)
 {
     GNCOption *option;
     SCM scm_value;
     SCM setter;
 
-    option = gnc_option_db_get_option_by_name(odb, section, name);
+    option = gnc_option_db_get_option_by_name (odb, section, name);
     if (option == NULL)
         return FALSE;
 
     scm_value = scm_from_double (value);
 
-    scm_value = gnc_option_valid_value(option, scm_value);
+    scm_value = gnc_option_valid_value (option, scm_value);
     if (scm_value == SCM_UNDEFINED)
         return FALSE;
 
-    setter = gnc_option_setter(option);
+    setter = gnc_option_setter (option);
     if (setter == SCM_UNDEFINED)
         return FALSE;
 
-    scm_call_1(setter, scm_value);
+    scm_call_1 (setter, scm_value);
 
     return TRUE;
 }
@@ -2399,30 +2339,30 @@ gnc_option_db_set_number_option(GNCOptionDB *odb,
  * Return: success indicator                                        *
 \********************************************************************/
 gboolean
-gnc_option_db_set_boolean_option(GNCOptionDB *odb,
-                                 const char *section,
-                                 const char *name,
-                                 gboolean value)
+gnc_option_db_set_boolean_option (GNCOptionDB *odb,
+                                  const char *section,
+                                  const char *name,
+                                  gboolean value)
 {
     GNCOption *option;
     SCM scm_value;
     SCM setter;
 
-    option = gnc_option_db_get_option_by_name(odb, section, name);
+    option = gnc_option_db_get_option_by_name (odb, section, name);
     if (option == NULL)
         return FALSE;
 
     scm_value = SCM_BOOL(value);
 
-    scm_value = gnc_option_valid_value(option, scm_value);
+    scm_value = gnc_option_valid_value (option, scm_value);
     if (scm_value == SCM_UNDEFINED)
         return FALSE;
 
-    setter = gnc_option_setter(option);
+    setter = gnc_option_setter (option);
     if (setter == SCM_UNDEFINED)
         return FALSE;
 
-    scm_call_1(setter, scm_value);
+    scm_call_1 (setter, scm_value);
 
     return TRUE;
 }
@@ -2439,33 +2379,33 @@ gnc_option_db_set_boolean_option(GNCOptionDB *odb,
  * Return: success indicator                                        *
 \********************************************************************/
 gboolean
-gnc_option_db_set_string_option(GNCOptionDB *odb,
-                                const char *section,
-                                const char *name,
-                                const char *value)
+gnc_option_db_set_string_option (GNCOptionDB *odb,
+                                 const char *section,
+                                 const char *name,
+                                 const char *value)
 {
     GNCOption *option;
     SCM scm_value;
     SCM setter;
 
-    option = gnc_option_db_get_option_by_name(odb, section, name);
+    option = gnc_option_db_get_option_by_name (odb, section, name);
     if (option == NULL)
         return FALSE;
 
     if (value)
-        scm_value = scm_from_utf8_string(value);
+        scm_value = scm_from_utf8_string (value);
     else
         scm_value = SCM_BOOL_F;
 
-    scm_value = gnc_option_valid_value(option, scm_value);
+    scm_value = gnc_option_valid_value (option, scm_value);
     if (scm_value == SCM_UNDEFINED)
         return FALSE;
 
-    setter = gnc_option_setter(option);
+    setter = gnc_option_setter (option);
     if (setter == SCM_UNDEFINED)
         return FALSE;
 
-    scm_call_1(setter, scm_value);
+    scm_call_1 (setter, scm_value);
 
     return TRUE;
 }
@@ -2478,11 +2418,11 @@ gnc_option_db_set_string_option(GNCOptionDB *odb,
  * Return: newly allocated subtype string or NULL                  *
 \*******************************************************************/
 char *
-gnc_option_date_option_get_subtype(GNCOption *option)
+gnc_option_date_option_get_subtype (GNCOption *option)
 {
-    initialize_getters();
+    initialize_getters ();
 
-    return gnc_scm_call_1_symbol_to_string(getters.date_option_subtype, option->guile_option);
+    return gnc_scm_call_1_symbol_to_string (getters.date_option_subtype, option->guile_option);
 }
 
 /*******************************************************************\
@@ -2495,7 +2435,7 @@ gnc_option_date_option_get_subtype(GNCOption *option)
 char *
 gnc_date_option_value_get_type (SCM option_value)
 {
-    initialize_getters();
+    initialize_getters ();
 
     return gnc_scm_call_1_symbol_to_string (getters.date_option_value_type, option_value);
 }
@@ -2511,7 +2451,7 @@ time64
 gnc_date_option_value_get_absolute (SCM option_value)
 {
     SCM value;
-    initialize_getters();
+    initialize_getters ();
     value = scm_call_1 (getters.date_option_value_absolute, option_value);
     return scm_to_int64 (value);
 }
@@ -2526,7 +2466,7 @@ gnc_date_option_value_get_absolute (SCM option_value)
 SCM
 gnc_date_option_value_get_relative (SCM option_value)
 {
-    initialize_getters();
+    initialize_getters ();
 
     return scm_call_1 (getters.date_option_value_relative, option_value);
 }
@@ -2541,7 +2481,7 @@ gnc_date_option_value_get_relative (SCM option_value)
 char *
 gnc_plot_size_option_value_get_type (SCM option_value)
 {
-    initialize_getters();
+    initialize_getters ();
 
     return gnc_scm_call_1_symbol_to_string (getters.plot_size_option_value_type, option_value);
 }
@@ -2558,11 +2498,11 @@ gnc_plot_size_option_value_get_value (SCM option_value)
 {
     SCM value;
 
-    initialize_getters();
+    initialize_getters ();
 
     value = scm_call_1 (getters.plot_size_option_value, option_value);
 
-    if (scm_is_number(value))
+    if (scm_is_number (value))
         return scm_to_double (value);
     else
         return 1.0;
@@ -2578,16 +2518,15 @@ gnc_plot_size_option_value_get_value (SCM option_value)
  * Returns: malloc'ed char * or NULL                                *
 \********************************************************************/
 char *
-gnc_currency_accounting_option_currency_documentation(GNCOption *option)
+gnc_currency_accounting_option_currency_documentation (GNCOption *option)
 {
-    initialize_getters();
+    initialize_getters ();
 
     return gnc_scm_call_1_to_string
               (getters.currency_accounting_option_currency_doc_string,
                                      option->guile_option);
 }
 
-
 /********************************************************************\
  * gnc_currency_accounting_option_get_default_currency              *
  *   returns the SCM value for the currency-accounting option       *
@@ -2597,16 +2536,15 @@ gnc_currency_accounting_option_currency_documentation(GNCOption *option)
  * Returns: SCM value                                               *
 \********************************************************************/
 SCM
-gnc_currency_accounting_option_get_default_currency(GNCOption *option)
+gnc_currency_accounting_option_get_default_currency (GNCOption *option)
 {
-    initialize_getters();
+    initialize_getters ();
 
     return scm_call_1
               (getters.currency_accounting_option_default_currency,
                                         option->guile_option);
 }
 
-
 /********************************************************************\
  * gnc_currency_accounting_option_policy_documentation              *
  *   returns the malloc'ed documentation string for policy          *
@@ -2617,16 +2555,15 @@ gnc_currency_accounting_option_get_default_currency(GNCOption *option)
  * Returns: malloc'ed char * or NULL                                *
 \********************************************************************/
 char *
-gnc_currency_accounting_option_policy_documentation(GNCOption *option)
+gnc_currency_accounting_option_policy_documentation (GNCOption *option)
 {
-    initialize_getters();
+    initialize_getters ();
 
     return gnc_scm_call_1_to_string
               (getters.currency_accounting_option_policy_doc_string,
                                      option->guile_option);
 }
 
-
 /********************************************************************\
  * gnc_currency_accounting_option_get_default_policy                *
  *   returns the SCM value for the currency-accounting option       *
@@ -2636,16 +2573,15 @@ gnc_currency_accounting_option_policy_documentation(GNCOption *option)
  * Returns: SCM value                                               *
 \********************************************************************/
 SCM
-gnc_currency_accounting_option_get_default_policy(GNCOption *option)
+gnc_currency_accounting_option_get_default_policy (GNCOption *option)
 {
-    initialize_getters();
+    initialize_getters ();
 
     return scm_call_1
               (getters.currency_accounting_option_default_policy,
                                         option->guile_option);
 }
 
-
 /********************************************************************\
  * gnc_currency_accounting_option_gain_loss_account_documentation   *
  *   returns the malloc'ed documentation string for account         *
@@ -2656,16 +2592,15 @@ gnc_currency_accounting_option_get_default_policy(GNCOption *option)
  * Returns: malloc'ed char * or NULL                                *
 \********************************************************************/
 char *
-gnc_currency_accounting_option_gain_loss_account_documentation(GNCOption *option)
+gnc_currency_accounting_option_gain_loss_account_documentation (GNCOption *option)
 {
-    initialize_getters();
+    initialize_getters ();
 
     return gnc_scm_call_1_to_string
               (getters.currency_accounting_option_gain_loss_account_doc_string,
                                      option->guile_option);
 }
 
-
 /*******************************************************************\
  * gnc_currency_accounting_option_value_get_method                 *
  *   get the currency accounting method of the option as a symbol  *
@@ -2676,9 +2611,10 @@ gnc_currency_accounting_option_gain_loss_account_documentation(GNCOption *option
 SCM
 gnc_currency_accounting_option_value_get_method (SCM option_value)
 {
-    initialize_getters();
+    initialize_getters ();
 
-    return scm_call_1 (getters.currency_accounting_option_method, option_value);
+    return scm_call_1 (getters.currency_accounting_option_method,
+                       option_value);
 }
 
 /*******************************************************************\
@@ -2692,9 +2628,10 @@ gnc_currency_accounting_option_value_get_method (SCM option_value)
 SCM
 gnc_currency_accounting_option_value_get_book_currency (SCM option_value)
 {
-    initialize_getters();
+    initialize_getters ();
 
-    return scm_call_1 (getters.currency_accounting_option_book_currency, option_value);
+    return scm_call_1 (getters.currency_accounting_option_book_currency,
+                       option_value);
 }
 
 /*******************************************************************\
@@ -2708,7 +2645,7 @@ gnc_currency_accounting_option_value_get_book_currency (SCM option_value)
 SCM
 gnc_currency_accounting_option_value_get_default_policy (SCM option_value)
 {
-    initialize_getters();
+    initialize_getters ();
 
     return scm_call_1
         (getters.currency_accounting_option_selected_default_policy,
@@ -2727,7 +2664,7 @@ gnc_currency_accounting_option_value_get_default_policy (SCM option_value)
 SCM
 gnc_currency_accounting_option_value_get_default_account (SCM option_value)
 {
-    initialize_getters();
+    initialize_getters ();
 
     return scm_call_1
         (getters.currency_accounting_option_selected_default_gain_loss_account,
@@ -2740,12 +2677,10 @@ find_option_db_with_selectable_pred (gpointer key, gpointer value, gpointer data
     SCM guile_options = data;
     GNCOptionDB *odb = value;
 
-    if (odb && (odb->guile_options == guile_options)
-        && odb->set_selectable    )
+    if (odb && (odb->guile_options == guile_options) && odb->set_selectable)
         return TRUE;
 
     return FALSE;
-
 }
 
 static GNCOptionDB *
@@ -2766,10 +2701,10 @@ find_option_db_with_selectable (SCM guile_options)
  * Return: SCM value                                               *
 \*******************************************************************/
 void
-gnc_option_db_set_option_selectable_by_name(SCM guile_options,
-        const char *section,
-        const char *name,
-        gboolean selectable)
+gnc_option_db_set_option_selectable_by_name (SCM guile_options,
+                                             const char *section,
+                                             const char *name,
+                                             gboolean selectable)
 {
     GNCOptionDB *odb;
     GNCOption *option;
@@ -2778,7 +2713,7 @@ gnc_option_db_set_option_selectable_by_name(SCM guile_options,
     if (!odb)
         return;
 
-    option = gnc_option_db_get_option_by_name(odb, section, name);
+    option = gnc_option_db_get_option_by_name (odb, section, name);
     if (!option)
         return;
 
@@ -2789,31 +2724,32 @@ gnc_option_db_set_option_selectable_by_name(SCM guile_options,
  * format(symbol), month(symbol), include-years(bool), custom-string(string)
  */
 
-gboolean gnc_dateformat_option_value_parse(SCM value, QofDateFormat *format,
-        GNCDateMonthFormat *months,
-        gboolean *years, char **custom)
+gboolean gnc_dateformat_option_value_parse (SCM value,
+                                            QofDateFormat *format,
+                                            GNCDateMonthFormat *months,
+                                            gboolean *years,
+                                            char **custom)
 {
     SCM val;
     gchar *str;
 
-    if (!scm_is_list(value) || scm_is_null(value))
+    if (!scm_is_list (value) || scm_is_null (value))
         return TRUE;
 
     do
     {
-
         /* Parse the format */
         val = SCM_CAR(value);
         value = SCM_CDR(value);
-        if (!scm_is_symbol(val))
+        if (!scm_is_symbol (val))
             break;
-        str = gnc_scm_symbol_to_locale_string  (val);
+        str = gnc_scm_symbol_to_locale_string (val);
         if (!str)
             break;
 
         if (format)
         {
-            if (gnc_date_string_to_dateformat(str, format))
+            if (gnc_date_string_to_dateformat (str, format))
             {
                 g_free (str);
                 break;
@@ -2824,7 +2760,7 @@ gboolean gnc_dateformat_option_value_parse(SCM value, QofDateFormat *format,
         /* parse the months */
         val = SCM_CAR(value);
         value = SCM_CDR(value);
-        if (!scm_is_symbol(val))
+        if (!scm_is_symbol (val))
             break;
         str = gnc_scm_symbol_to_locale_string (val);
         if (!str)
@@ -2832,7 +2768,7 @@ gboolean gnc_dateformat_option_value_parse(SCM value, QofDateFormat *format,
 
         if (months)
         {
-            if (gnc_date_string_to_monthformat(str, months))
+            if (gnc_date_string_to_monthformat (str, months))
             {
                 g_free (str);
                 break;
@@ -2843,33 +2779,34 @@ gboolean gnc_dateformat_option_value_parse(SCM value, QofDateFormat *format,
         /* parse the years */
         val = SCM_CAR(value);
         value = SCM_CDR(value);
-        if (!scm_is_bool(val))
+        if (!scm_is_bool (val))
             break;
 
         if (years)
-            *years = scm_is_true(val);
+            *years = scm_is_true (val);
 
         /* parse the custom */
         val = SCM_CAR(value);
         value = SCM_CDR(value);
-        if (!scm_is_string(val))
+        if (!scm_is_string (val))
             break;
-        if (!scm_is_null(value))
+        if (!scm_is_null (value))
             break;
 
         if (custom)
             *custom = gnc_scm_to_utf8_string (val);
 
         return FALSE;
-
     }
     while (FALSE);
 
     return TRUE;
 }
 
-SCM gnc_dateformat_option_set_value(QofDateFormat format, GNCDateMonthFormat months,
-                                    gboolean years, const char *custom)
+SCM gnc_dateformat_option_set_value (QofDateFormat format,
+                                     GNCDateMonthFormat months,
+                                     gboolean years,
+                                     const char *custom)
 {
     SCM value = SCM_EOL;
     SCM val;
@@ -2877,27 +2814,27 @@ SCM gnc_dateformat_option_set_value(QofDateFormat format, GNCDateMonthFormat mon
 
     /* build the list in reverse order */
     if (custom)
-        val = scm_from_utf8_string(custom);
+        val = scm_from_utf8_string (custom);
     else
         val = SCM_BOOL_F;
-    value = scm_cons(val, value);
+    value = scm_cons (val, value);
 
     val = SCM_BOOL(years);
-    value = scm_cons(val, value);
+    value = scm_cons (val, value);
 
-    str = gnc_date_monthformat_to_string(months);
+    str = gnc_date_monthformat_to_string (months);
     if (str)
-        val = scm_from_locale_symbol(str);
+        val = scm_from_locale_symbol (str);
     else
         val = SCM_BOOL_F;
-    value = scm_cons(val, value);
+    value = scm_cons (val, value);
 
-    str = gnc_date_dateformat_to_string(format);
+    str = gnc_date_dateformat_to_string (format);
     if (str)
-        val = scm_from_locale_symbol(str);
+        val = scm_from_locale_symbol (str);
     else
         val = SCM_BOOL_F;
-    value = scm_cons(val, value);
+    value = scm_cons (val, value);
 
     return value;
 }
@@ -2908,12 +2845,12 @@ SCM gnc_dateformat_option_set_value(QofDateFormat format, GNCDateMonthFormat mon
  * its defined kvp options.
  */
 void
-gnc_register_kvp_option_generator(QofIdType id_type, SCM generator)
+gnc_register_kvp_option_generator (QofIdType id_type, SCM generator)
 {
     GList *list;
     init_table();
-    list = g_hash_table_lookup(kvp_registry, id_type);
-    list = g_list_prepend(list, generator);
-    g_hash_table_insert(kvp_registry, (gpointer) id_type, list);
-    scm_gc_protect_object(generator);
+    list = g_hash_table_lookup (kvp_registry, id_type);
+    list = g_list_prepend (list, generator);
+    g_hash_table_insert (kvp_registry, (gpointer) id_type, list);
+    scm_gc_protect_object (generator);
 }
diff --git a/libgnucash/app-utils/option-util.h b/libgnucash/app-utils/option-util.h
index ee963ab5f..1ea0d5ab7 100644
--- a/libgnucash/app-utils/option-util.h
+++ b/libgnucash/app-utils/option-util.h
@@ -60,186 +60,185 @@ gpointer gnc_option_get_widget (GNCOption *option);
  * here. */
 void gnc_option_set_widget (GNCOption *option, gpointer widget);
 
-SCM  gnc_option_get_ui_value(GNCOption *option);
-void gnc_option_set_ui_value(GNCOption *option, gboolean use_default);
+SCM  gnc_option_get_ui_value (GNCOption *option);
+void gnc_option_set_ui_value (GNCOption *option, gboolean use_default);
 void gnc_option_set_selectable (GNCOption *option, gboolean selectable);
 
-GNCOptionDB * gnc_option_db_new(SCM guile_options);
-void          gnc_option_db_destroy(GNCOptionDB *odb);
+GNCOptionDB * gnc_option_db_new (SCM guile_options);
+void          gnc_option_db_destroy (GNCOptionDB *odb);
 
 /* Create an option DB for a particular type, and save/load from a kvp.
  * This assumes the gnc:*kvp-option-path* location for the options
  * in the kvp.
  */
-GNCOptionDB * gnc_option_db_new_for_type(QofIdType id_type);
-void gnc_option_db_load(GNCOptionDB* odb, QofBook *book);
-void gnc_option_db_save(GNCOptionDB* odb, QofBook *book, gboolean clear_all);
+GNCOptionDB * gnc_option_db_new_for_type (QofIdType id_type);
+void gnc_option_db_load (GNCOptionDB* odb, QofBook *book);
+void gnc_option_db_save (GNCOptionDB* odb, QofBook *book, gboolean clear_all);
 
-void gnc_register_kvp_option_generator(QofIdType id_type, SCM generator);
+void gnc_register_kvp_option_generator (QofIdType id_type, SCM generator);
 
 void gnc_option_db_set_ui_callbacks (GNCOptionDB *odb,
                                      GNCOptionGetUIValue get_ui_value,
                                      GNCOptionSetUIValue set_ui_value,
                                      GNCOptionSetSelectable set_selectable);
 
-SCM gnc_option_db_register_change_callback(GNCOptionDB *odb,
-        GNCOptionChangeCallback callback,
-        gpointer data,
-        const char *section,
-        const char *name);
-
-void gnc_option_db_unregister_change_callback_id(GNCOptionDB *odb,
-        SCM callback_id);
-
-char * gnc_option_section(GNCOption *option);
-char * gnc_option_name(GNCOption *option);
-char * gnc_option_type(GNCOption *option);
-char * gnc_option_sort_tag(GNCOption *option);
-char * gnc_option_documentation(GNCOption *option);
-SCM    gnc_option_getter(GNCOption *option);
-SCM    gnc_option_setter(GNCOption *option);
-SCM    gnc_option_default_getter(GNCOption *option);
-SCM    gnc_option_value_validator(GNCOption *option);
-SCM    gnc_option_widget_changed_proc_getter(GNCOption *option);
-SCM    gnc_option_get_option_data(GNCOption *option);
-
-int    gnc_option_num_permissible_values(GNCOption *option);
-int    gnc_option_permissible_value_index(GNCOption *option, SCM value);
-SCM    gnc_option_permissible_value(GNCOption *option, int index);
-char * gnc_option_permissible_value_name(GNCOption *option, int index);
-char * gnc_option_permissible_value_description(GNCOption *option, int index);
-
-gboolean gnc_option_show_time(GNCOption *option);
-
-gboolean gnc_option_multiple_selection(GNCOption *option);
-GList * gnc_option_get_account_type_list(GNCOption *option);
-
-gboolean gnc_option_get_range_info(GNCOption *option,
-                                   double *lower_bound,
-                                   double *upper_bound,
-                                   int    *num_decimals,
-                                   double *step_size);
-
-gdouble  gnc_option_color_range(GNCOption *option);
-gdouble  gnc_option_use_alpha(GNCOption *option);
-guint32  gnc_option_get_color_argb(GNCOption *option);
-gboolean gnc_option_get_color_info(GNCOption *option,
-                                   gboolean use_default,
-                                   gdouble *red,
-                                   gdouble *green,
-                                   gdouble *blue,
-                                   gdouble *alpha);
+SCM gnc_option_db_register_change_callback (GNCOptionDB *odb,
+                                            GNCOptionChangeCallback callback,
+                                            gpointer data,
+                                            const char *section,
+                                            const char *name);
+
+void gnc_option_db_unregister_change_callback_id (GNCOptionDB *odb,
+                                                  SCM callback_id);
+
+char * gnc_option_section (GNCOption *option);
+char * gnc_option_name (GNCOption *option);
+char * gnc_option_type (GNCOption *option);
+char * gnc_option_sort_tag (GNCOption *option);
+char * gnc_option_documentation (GNCOption *option);
+SCM    gnc_option_getter (GNCOption *option);
+SCM    gnc_option_setter (GNCOption *option);
+SCM    gnc_option_default_getter (GNCOption *option);
+SCM    gnc_option_value_validator (GNCOption *option);
+SCM    gnc_option_widget_changed_proc_getter (GNCOption *option);
+SCM    gnc_option_get_option_data (GNCOption *option);
+
+int    gnc_option_num_permissible_values (GNCOption *option);
+int    gnc_option_permissible_value_index (GNCOption *option, SCM value);
+SCM    gnc_option_permissible_value (GNCOption *option, int index);
+char * gnc_option_permissible_value_name (GNCOption *option, int index);
+char * gnc_option_permissible_value_description (GNCOption *option, int index);
+
+gboolean gnc_option_show_time (GNCOption *option);
+
+gboolean gnc_option_multiple_selection (GNCOption *option);
+GList * gnc_option_get_account_type_list (GNCOption *option);
+
+gboolean gnc_option_get_range_info (GNCOption *option,
+                                    double *lower_bound,
+                                    double *upper_bound,
+                                    int    *num_decimals,
+                                    double *step_size);
+
+gdouble  gnc_option_color_range (GNCOption *option);
+gdouble  gnc_option_use_alpha (GNCOption *option);
+guint32  gnc_option_get_color_argb (GNCOption *option);
+gboolean gnc_option_get_color_info (GNCOption *option,
+                                    gboolean use_default,
+                                    gdouble *red,
+                                    gdouble *green,
+                                    gdouble *blue,
+                                    gdouble *alpha);
 
 void gnc_option_call_option_widget_changed_proc (GNCOption *option,
                                                  gboolean reset_changed);
 
-void gnc_option_set_default(GNCOption *option);
+void gnc_option_set_default (GNCOption *option);
 
-guint gnc_option_db_num_sections(GNCOptionDB *odb);
+guint gnc_option_db_num_sections (GNCOptionDB *odb);
 
-const char * gnc_option_section_name(GNCOptionSection *section);
-guint  gnc_option_section_num_options(GNCOptionSection *section);
+const char * gnc_option_section_name (GNCOptionSection *section);
+guint  gnc_option_section_num_options (GNCOptionSection *section);
 
-GNCOptionSection * gnc_option_db_get_section(GNCOptionDB *odb, gint i);
+GNCOptionSection * gnc_option_db_get_section (GNCOptionDB *odb, gint i);
 
-GNCOption * gnc_get_option_section_option(GNCOptionSection *section, int i);
+GNCOption * gnc_get_option_section_option (GNCOptionSection *section, int i);
 
-GNCOption * gnc_option_db_get_option_by_name(GNCOptionDB *odb,
-        const char *section_name,
-        const char *name);
+GNCOption * gnc_option_db_get_option_by_name (GNCOptionDB *odb,
+                                              const char *section_name,
+                                              const char *name);
 
-GNCOption * gnc_option_db_get_option_by_SCM(GNCOptionDB *odb,
-        SCM guile_option);
+GNCOption * gnc_option_db_get_option_by_SCM (GNCOptionDB *odb,
+                                             SCM guile_option);
 
-gboolean gnc_option_db_dirty(GNCOptionDB *odb);
-void     gnc_option_db_clean(GNCOptionDB *odb);
+gboolean gnc_option_db_dirty (GNCOptionDB *odb);
+void     gnc_option_db_clean (GNCOptionDB *odb);
 
-gboolean gnc_option_db_get_changed(GNCOptionDB *odb);
-GList* gnc_option_db_commit(GNCOptionDB *odb);
+gboolean gnc_option_db_get_changed (GNCOptionDB *odb);
+GList* gnc_option_db_commit (GNCOptionDB *odb);
 
-char * gnc_option_db_get_default_section(GNCOptionDB *odb);
+char * gnc_option_db_get_default_section (GNCOptionDB *odb);
 
-SCM gnc_option_db_lookup_option(GNCOptionDB *odb,
-                                const char *section,
-                                const char *name,
-                                SCM default_value);
+SCM gnc_option_db_lookup_option (GNCOptionDB *odb,
+                                 const char *section,
+                                 const char *name,
+                                 SCM default_value);
 
-gboolean gnc_option_db_lookup_boolean_option(GNCOptionDB *odb,
-        const char *section,
-        const char *name,
-        gboolean default_value);
+gboolean gnc_option_db_lookup_boolean_option (GNCOptionDB *odb,
+                                              const char *section,
+                                              const char *name,
+                                              gboolean default_value);
 
-char * gnc_option_db_lookup_string_option(GNCOptionDB *odb,
-        const char *section,
-        const char *name,
-        const char *default_value);
+char * gnc_option_db_lookup_string_option (GNCOptionDB *odb,
+                                           const char *section,
+                                           const char *name,
+                                           const char *default_value);
 
-char * gnc_option_db_lookup_font_option(GNCOptionDB *odb,
-                                        const char *section,
-                                        const char *name,
-                                        const char *default_value);
+char * gnc_option_db_lookup_font_option (GNCOptionDB *odb,
+                                         const char *section,
+                                         const char *name,
+                                         const char *default_value);
 
-char * gnc_option_db_lookup_multichoice_option(GNCOptionDB *odb,
-        const char *section,
-        const char *name,
-        const char *default_value);
+char * gnc_option_db_lookup_multichoice_option (GNCOptionDB *odb,
+                                                const char *section,
+                                                const char *name,
+                                                const char *default_value);
 
-gdouble gnc_option_db_lookup_number_option(GNCOptionDB *odb,
-        const char *section,
-        const char *name,
-        gdouble default_value);
+gdouble gnc_option_db_lookup_number_option (GNCOptionDB *odb,
+                                           const char *section,
+                                           const char *name,
+                                           gdouble default_value);
 
-gboolean gnc_option_db_lookup_color_option(GNCOptionDB *odb,
-        const char *section,
-        const char *name,
-        gdouble *red,
-        gdouble *green,
-        gdouble *blue,
-        gdouble *alpha);
+gboolean gnc_option_db_lookup_color_option (GNCOptionDB *odb,
+                                            const char *section,
+                                            const char *name,
+                                            gdouble *red,
+                                            gdouble *green,
+                                            gdouble *blue,
+                                            gdouble *alpha);
 
-guint32 gnc_option_db_lookup_color_option_argb(GNCOptionDB *odb,
-        const char *section,
-        const char *name,
-        guint32 default_value);
+guint32 gnc_option_db_lookup_color_option_argb (GNCOptionDB *odb,
+                                                const char *section,
+                                                const char *name,
+                                                guint32 default_value);
 
-GSList * gnc_option_db_lookup_list_option(GNCOptionDB *odb,
-        const char *section,
-        const char *name,
-        GSList *default_value);
+GSList * gnc_option_db_lookup_list_option (GNCOptionDB *odb,
+                                           const char *section,
+                                           const char *name,
+                                           GSList *default_value);
 
-void gnc_free_list_option_value(GSList *list);
+void gnc_free_list_option_value (GSList *list);
 
-gnc_commodity *
-gnc_option_db_lookup_currency_option(GNCOptionDB *odb,
-                                     const char *section,
-                                     const char *name,
-                                     gnc_commodity *default_value);
+gnc_commodity * gnc_option_db_lookup_currency_option (GNCOptionDB *odb,
+                                                      const char *section,
+                                                      const char *name,
+                                                      gnc_commodity *default_value);
 
-void gnc_option_db_set_option_default(GNCOptionDB *odb,
-                                      const char *section,
-                                      const char *name);
+void gnc_option_db_set_option_default (GNCOptionDB *odb,
+                                       const char *section,
+                                       const char *name);
 
-gboolean gnc_option_db_set_option(GNCOptionDB *odb,
-                                  const char *section,
-                                  const char *name,
-                                  SCM value);
+gboolean gnc_option_db_set_option (GNCOptionDB *odb,
+                                   const char *section,
+                                   const char *name,
+                                   SCM value);
 
-gboolean gnc_option_db_set_number_option(GNCOptionDB *odb,
-        const char *section,
-        const char *name,
-        gdouble value);
+gboolean gnc_option_db_set_number_option (GNCOptionDB *odb,
+                                          const char *section,
+                                          const char *name,
+                                          gdouble value);
 
-gboolean gnc_option_db_set_boolean_option(GNCOptionDB *odb,
-        const char *section,
-        const char *name,
-        gboolean value);
+gboolean gnc_option_db_set_boolean_option (GNCOptionDB *odb,
+                                           const char *section,
+                                           const char *name,
+                                           gboolean value);
 
-gboolean gnc_option_db_set_string_option(GNCOptionDB *odb,
-        const char *section,
-        const char *name,
-        const char *value);
+gboolean gnc_option_db_set_string_option (GNCOptionDB *odb,
+                                          const char *section,
+                                          const char *name,
+                                          const char *value);
 
-char * gnc_option_date_option_get_subtype(GNCOption *option);
+char * gnc_option_date_option_get_subtype (GNCOption *option);
 
 char * gnc_date_option_value_get_type (SCM option_value);
 time64 gnc_date_option_value_get_absolute (SCM option_value);
@@ -248,34 +247,37 @@ SCM gnc_date_option_value_get_relative (SCM option_value);
 char * gnc_plot_size_option_value_get_type (SCM option_value);
 gdouble gnc_plot_size_option_value_get_value (SCM option_value);
 
-char * gnc_currency_accounting_option_currency_documentation(GNCOption *option);
-SCM gnc_currency_accounting_option_get_default_currency(GNCOption *option);
-char * gnc_currency_accounting_option_policy_documentation(GNCOption *option);
-SCM gnc_currency_accounting_option_get_default_policy(GNCOption *option);
-char * gnc_currency_accounting_option_gain_loss_account_documentation(GNCOption *option);
+char * gnc_currency_accounting_option_currency_documentation (GNCOption *option);
+SCM gnc_currency_accounting_option_get_default_currency (GNCOption *option);
+char * gnc_currency_accounting_option_policy_documentation (GNCOption *option);
+SCM gnc_currency_accounting_option_get_default_policy (GNCOption *option);
+char * gnc_currency_accounting_option_gain_loss_account_documentation (GNCOption *option);
 SCM gnc_currency_accounting_option_value_get_method (SCM option_value);
 SCM gnc_currency_accounting_option_value_get_book_currency (SCM option_value);
 SCM gnc_currency_accounting_option_value_get_default_policy (SCM option_value);
 SCM gnc_currency_accounting_option_value_get_default_account (SCM option_value);
 
-void gnc_option_db_set_option_selectable_by_name(SCM guile_options,
-        const char *section,
-        const char *name,
-        gboolean selectable);
+void gnc_option_db_set_option_selectable_by_name (SCM guile_options,
+                                                  const char *section,
+                                                  const char *name,
+                                                  gboolean selectable);
 
-gboolean gnc_dateformat_option_value_parse(SCM value, QofDateFormat *format,
-        GNCDateMonthFormat *months,
-        gboolean *years, char **custom);
-SCM gnc_dateformat_option_set_value(QofDateFormat format, GNCDateMonthFormat months,
-                                    gboolean years, const char *custom);
+gboolean gnc_dateformat_option_value_parse (SCM value,
+                                            QofDateFormat *format,
+                                            GNCDateMonthFormat *months,
+                                            gboolean *years, char **custom);
 
+SCM gnc_dateformat_option_set_value (QofDateFormat format,
+                                     GNCDateMonthFormat months,
+                                     gboolean years,
+                                     const char *custom);
 
-void gnc_option_db_register_option(GNCOptionDBHandle handle,
-                                   SCM guile_option);
+void gnc_option_db_register_option (GNCOptionDBHandle handle,
+                                    SCM guile_option);
 
 /* private */
-void gncp_option_invoke_callback(GNCOptionChangeCallback callback,
-                                 gpointer data);
+void gncp_option_invoke_callback (GNCOptionChangeCallback callback,
+                                  gpointer data);
 
 /* Reset all the widgets in one section to their default values */
 void gnc_option_db_section_reset_widgets (GNCOptionSection *section);

commit e5886955027dad50b085871e7f8b6a081a506910
Author: Robert Fewell <14uBobIT at gmail.com>
Date:   Thu Oct 22 14:30:11 2020 +0100

    Change source files dialog-options.* for spaces and tabs

diff --git a/gnucash/gnome-utils/dialog-options.c b/gnucash/gnome-utils/dialog-options.c
index 511413a03..607c1c8de 100644
--- a/gnucash/gnome-utils/dialog-options.c
+++ b/gnucash/gnome-utils/dialog-options.c
@@ -142,10 +142,11 @@ typedef struct
     GtkWidget *gain_loss_account_table;
     GtkWidget *default_gain_loss_account_text;
     GNCOption *option;
+    Account   *prior_gain_loss_account;
     gnc_commodity *retrieved_book_currency;
+
     SCM retrieved_policy_scm;
     SCM retrieved_gain_loss_acct_guid_scm;
-    Account *prior_gain_loss_account;
 
 } currency_accounting_data;
 
@@ -154,22 +155,22 @@ static currency_accounting_data *book_currency_data = NULL;
 static GNCOptionWinCallback global_help_cb = NULL;
 gpointer global_help_cb_data = NULL;
 
-static void gnc_options_dialog_reset_cb(GtkWidget * w, gpointer data);
+static void gnc_options_dialog_reset_cb (GtkWidget * w, gpointer data);
 void gnc_options_dialog_list_select_cb (GtkTreeSelection *selection,
                                         gpointer data);
-void gnc_set_default_cost_policy_widget(SCM list_symbol);
-void gnc_set_default_gain_loss_account_widget(gnc_commodity *commodity);
-void gnc_option_changed_book_currency_widget_cb(GtkWidget *widget);
-void gnc_option_changed_gain_loss_account_widget_cb(GtkTreeSelection *selection,
-                                                    gpointer data);
+void gnc_set_default_cost_policy_widget (SCM list_symbol);
+void gnc_set_default_gain_loss_account_widget (gnc_commodity *commodity);
+void gnc_option_changed_book_currency_widget_cb (GtkWidget *widget);
+void gnc_option_changed_gain_loss_account_widget_cb (GtkTreeSelection *selection,
+                                                     gpointer data);
 void gnc_option_changed_gain_loss_account_del_button_widget_cb (GtkButton *button,
-                                                    gpointer data);
+                                                                gpointer data);
 static void component_close_handler (gpointer data);
 
 GtkWidget *
 gnc_option_get_gtk_widget (GNCOption *option)
 {
-    return (GtkWidget *)gnc_option_get_widget(option);
+    return (GtkWidget *)gnc_option_get_widget (option);
 }
 
 static void
@@ -178,7 +179,7 @@ gnc_options_dialog_changed_internal (GtkWidget *widget, gboolean sensitive)
     GtkButton *button = NULL;
 
     while (widget && !GTK_IS_WINDOW(widget))
-        widget = gtk_widget_get_parent(widget);
+        widget = gtk_widget_get_parent (widget);
     if (widget == NULL)
         return;
 
@@ -186,26 +187,26 @@ gnc_options_dialog_changed_internal (GtkWidget *widget, gboolean sensitive)
        this way as opposed to using gtk_container_foreach, much less iteration */
     if (GTK_IS_CONTAINER(widget))
     {
-        GList *children = gtk_container_get_children(GTK_CONTAINER(widget));
+        GList *children = gtk_container_get_children (GTK_CONTAINER(widget));
         for (GList *it = children; it; it = it->next)
         {
-            if (GTK_IS_BOX (GTK_WIDGET(it->data)))
+            if (GTK_IS_BOX(GTK_WIDGET(it->data)))
             {
-                GList *children = gtk_container_get_children(GTK_CONTAINER(it->data));
+                GList *children = gtk_container_get_children (GTK_CONTAINER(it->data));
                 for (GList *it = children; it; it = it->next)
                 {
-                    if (GTK_IS_BUTTON_BOX (GTK_WIDGET(it->data)))
+                    if (GTK_IS_BUTTON_BOX(GTK_WIDGET(it->data)))
                     {
-                        GList *children = gtk_container_get_children(GTK_CONTAINER(it->data));
+                        GList *children = gtk_container_get_children (GTK_CONTAINER(it->data));
                         for (GList *it = children; it; it = it->next)
                         {
-                            if (g_strcmp0 (gtk_widget_get_name(GTK_WIDGET(it->data)), "ok_button") == 0)
+                            if (g_strcmp0 (gtk_widget_get_name (GTK_WIDGET(it->data)), "ok_button") == 0)
                                 gtk_widget_set_sensitive (GTK_WIDGET(it->data), sensitive);
 
-                            if (g_strcmp0 (gtk_widget_get_name(GTK_WIDGET(it->data)), "apply_button") == 0)
+                            if (g_strcmp0 (gtk_widget_get_name (GTK_WIDGET(it->data)), "apply_button") == 0)
                                 gtk_widget_set_sensitive (GTK_WIDGET(it->data), sensitive);
 
-                            if (g_strcmp0 (gtk_widget_get_name(GTK_WIDGET(it->data)), "cancel_button") == 0)
+                            if (g_strcmp0 (gtk_widget_get_name (GTK_WIDGET(it->data)), "cancel_button") == 0)
                                 button = GTK_BUTTON(it->data);
                         }
                         g_list_free (children);
@@ -224,7 +225,6 @@ gnc_options_dialog_changed_internal (GtkWidget *widget, gboolean sensitive)
         else
            gtk_button_set_label (button, _("_Close"));
     }
-
 }
 
 void
@@ -236,25 +236,24 @@ gnc_options_dialog_changed (GNCOptionWin *win)
 }
 
 void
-gnc_option_changed_widget_cb(GtkWidget *widget, GNCOption *option)
+gnc_option_changed_widget_cb (GtkWidget *widget, GNCOption *option)
 {
     gnc_option_set_changed (option, TRUE);
-    gnc_option_call_option_widget_changed_proc(option, FALSE);
+    gnc_option_call_option_widget_changed_proc (option, FALSE);
     gnc_options_dialog_changed_internal (widget, TRUE);
 }
 
 void
-gnc_option_changed_option_cb(GtkWidget *dummy, GNCOption *option)
+gnc_option_changed_option_cb (GtkWidget *dummy, GNCOption *option)
 {
-    GtkWidget *widget;
-
-    widget = gnc_option_get_gtk_widget (option);
-    gnc_option_changed_widget_cb(widget, option);
+    GtkWidget *widget = gnc_option_get_gtk_widget (option);
+    gnc_option_changed_widget_cb (widget, option);
 }
 
 static void
-gnc_date_option_set_select_method(GNCOption *option, gboolean use_absolute,
-                                  gboolean set_buttons)
+gnc_date_option_set_select_method (GNCOption *option,
+                                   gboolean use_absolute,
+                                   gboolean set_buttons)
 {
     GList* widget_list;
     GtkWidget *ab_button, *rel_button, *rel_widget, *ab_widget;
@@ -262,47 +261,43 @@ gnc_date_option_set_select_method(GNCOption *option, gboolean use_absolute,
 
     widget = gnc_option_get_gtk_widget (option);
 
-    widget_list = gtk_container_get_children(GTK_CONTAINER(widget));
-    ab_button = g_list_nth_data(widget_list, GNC_RD_WID_AB_BUTTON_POS);
-    ab_widget = g_list_nth_data(widget_list, GNC_RD_WID_AB_WIDGET_POS);
-    rel_button = g_list_nth_data(widget_list, GNC_RD_WID_REL_BUTTON_POS);
-    rel_widget = g_list_nth_data(widget_list, GNC_RD_WID_REL_WIDGET_POS);
-    g_list_free(widget_list);
+    widget_list = gtk_container_get_children (GTK_CONTAINER(widget));
+    ab_button = g_list_nth_data (widget_list, GNC_RD_WID_AB_BUTTON_POS);
+    ab_widget = g_list_nth_data (widget_list, GNC_RD_WID_AB_WIDGET_POS);
+    rel_button = g_list_nth_data (widget_list, GNC_RD_WID_REL_BUTTON_POS);
+    rel_widget = g_list_nth_data (widget_list, GNC_RD_WID_REL_WIDGET_POS);
+    g_list_free (widget_list);
 
     if (use_absolute)
     {
-        gtk_widget_set_sensitive(ab_widget, TRUE);
-        gtk_widget_set_sensitive(rel_widget, FALSE);
+        gtk_widget_set_sensitive (ab_widget, TRUE);
+        gtk_widget_set_sensitive (rel_widget, FALSE);
         if (set_buttons)
-        {
-            gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(ab_button), TRUE);
-        }
+            gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON(ab_button), TRUE);
     }
     else
     {
-        gtk_widget_set_sensitive(rel_widget, TRUE);
-        gtk_widget_set_sensitive(ab_widget, FALSE);
+        gtk_widget_set_sensitive (rel_widget, TRUE);
+        gtk_widget_set_sensitive (ab_widget, FALSE);
         if (set_buttons)
-        {
-            gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(rel_button), TRUE);
-        }
+            gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON(rel_button), TRUE);
     }
 }
 
 static void
-gnc_rd_option_ab_set_cb(GtkWidget *widget, gpointer *raw_option)
+gnc_rd_option_ab_set_cb (GtkWidget *widget, gpointer *raw_option)
 {
     GNCOption *option = (GNCOption *) raw_option;
-    gnc_date_option_set_select_method(option, TRUE, FALSE);
-    gnc_option_changed_option_cb(widget, option);
+    gnc_date_option_set_select_method (option, TRUE, FALSE);
+    gnc_option_changed_option_cb (widget, option);
 }
 
 static void
-gnc_rd_option_rel_set_cb(GtkWidget *widget, gpointer *raw_option)
+gnc_rd_option_rel_set_cb (GtkWidget *widget, gpointer *raw_option)
 {
     GNCOption *option = (GNCOption *) raw_option;
-    gnc_date_option_set_select_method(option, FALSE, FALSE);
-    gnc_option_changed_option_cb(widget, option);
+    gnc_date_option_set_select_method (option, FALSE, FALSE);
+    gnc_option_changed_option_cb (widget, option);
     return;
 }
 
@@ -315,14 +310,14 @@ gnc_image_option_update_preview_cb (GtkFileChooser *chooser,
     GdkPixbuf *pixbuf;
     gboolean have_preview;
 
-    g_return_if_fail(chooser != NULL);
+    g_return_if_fail (chooser != NULL);
 
     ENTER("chooser %p, option %p", chooser, option);
-    filename = gtk_file_chooser_get_preview_filename(chooser);
+    filename = gtk_file_chooser_get_preview_filename (chooser);
     DEBUG("chooser preview name is %s.", filename ? filename : "(null)");
     if (filename == NULL)
     {
-        filename = g_strdup(g_object_get_data(G_OBJECT(chooser), LAST_SELECTION));
+        filename = g_strdup (g_object_get_data (G_OBJECT(chooser), LAST_SELECTION));
         DEBUG("using last selection of %s", filename ? filename : "(null)");
         if (filename == NULL)
         {
@@ -331,16 +326,16 @@ gnc_image_option_update_preview_cb (GtkFileChooser *chooser,
         }
     }
 
-    image = GTK_IMAGE(gtk_file_chooser_get_preview_widget(chooser));
-    pixbuf = gdk_pixbuf_new_from_file_at_size(filename, 128, 128, NULL);
-    g_free(filename);
+    image = GTK_IMAGE(gtk_file_chooser_get_preview_widget (chooser));
+    pixbuf = gdk_pixbuf_new_from_file_at_size (filename, 128, 128, NULL);
+    g_free (filename);
     have_preview = (pixbuf != NULL);
 
-    gtk_image_set_from_pixbuf(image, pixbuf);
+    gtk_image_set_from_pixbuf (image, pixbuf);
     if (pixbuf)
-        g_object_unref(pixbuf);
+        g_object_unref (pixbuf);
 
-    gtk_file_chooser_set_preview_widget_active(chooser, have_preview);
+    gtk_file_chooser_set_preview_widget_active (chooser, have_preview);
     LEAVE("preview visible is %d", have_preview);
 }
 
@@ -348,12 +343,10 @@ static void
 gnc_image_option_selection_changed_cb (GtkFileChooser *chooser,
                                        GNCOption *option)
 {
-    gchar *filename;
-
-    filename = gtk_file_chooser_get_preview_filename(chooser);
+    gchar *filename = gtk_file_chooser_get_preview_filename (chooser);
     if (!filename)
         return;
-    g_object_set_data_full(G_OBJECT(chooser), LAST_SELECTION, filename, g_free);
+    g_object_set_data_full (G_OBJECT(chooser), LAST_SELECTION, filename, g_free);
 }
 
 /********************************************************************\
@@ -380,41 +373,37 @@ gnc_option_set_ui_value_internal (GNCOption *option, gboolean use_default)
     if (!widget)
         return;
 
-    type = gnc_option_type(option);
+    type = gnc_option_type (option);
 
     if (use_default)
     {
-        SCM opt_getter = gnc_option_getter(option);
-        SCM opt_value = scm_call_0(opt_getter);
+        SCM opt_getter = gnc_option_getter (option);
+        SCM opt_value = scm_call_0 (opt_getter);
         SCM def_value;
 
-        getter = gnc_option_default_getter(option);
-        def_value = scm_call_0(getter);
+        getter = gnc_option_default_getter (option);
+        def_value = scm_call_0 (getter);
 
         // only set changed if the values have changed
-        if (!scm_is_true(scm_equal_p(opt_value, def_value)))
+        if (!scm_is_true (scm_equal_p (opt_value, def_value)))
             gnc_option_set_changed (option, TRUE);
     }
     else
-        getter = gnc_option_getter(option);
+        getter = gnc_option_getter (option);
 
-    value = scm_call_0(getter);
+    value = scm_call_0 (getter);
 
     option_def = gnc_options_ui_get_option (type);
     if (option_def && option_def->set_value)
     {
         bad_value = option_def->set_value (option, use_default, widget, value);
         if (bad_value)
-        {
             PERR("bad value\n");
-        }
     }
     else
-    {
         PERR("Unknown type. Ignoring.\n");
-    }
 
-    free(type);
+    free (type);
 }
 
 /********************************************************************\
@@ -436,19 +425,16 @@ gnc_option_get_ui_value_internal (GNCOption *option)
     if (!widget)
         return result;
 
-    type = gnc_option_type(option);
+    type = gnc_option_type (option);
 
     option_def = gnc_options_ui_get_option (type);
+
     if (option_def && option_def->get_value)
-    {
         result = option_def->get_value (option, widget);
-    }
     else
-    {
         PERR("Unknown type for refresh. Ignoring.\n");
-    }
 
-    free(type);
+    free (type);
 
     return result;
 }
@@ -477,7 +463,7 @@ gnc_option_set_selectable_internal (GNCOption *option, gboolean selectable)
 }
 
 static void
-gnc_option_default_cb(GtkWidget *widget, GNCOption *option)
+gnc_option_default_cb (GtkWidget *widget, GNCOption *option)
 {
     gnc_option_set_ui_value (option, TRUE);
     gnc_option_set_changed (option, TRUE);
@@ -485,28 +471,28 @@ gnc_option_default_cb(GtkWidget *widget, GNCOption *option)
 }
 
 static void
-gnc_option_show_hidden_toggled_cb(GtkWidget *widget, GNCOption* option)
+gnc_option_show_hidden_toggled_cb (GtkWidget *widget, GNCOption* option)
 {
     AccountViewInfo avi;
     GncTreeViewAccount *tree_view;
 
     tree_view = GNC_TREE_VIEW_ACCOUNT(gnc_option_get_gtk_widget (option));
     gnc_tree_view_account_get_view_info (tree_view, &avi);
-    avi.show_hidden = gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(widget));
+    avi.show_hidden = gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON(widget));
     gnc_tree_view_account_set_view_info (tree_view, &avi);
-    gnc_option_changed_widget_cb(widget, option);
+    gnc_option_changed_widget_cb (widget, option);
 }
 
 static void
-gnc_option_multichoice_cb(GtkWidget *widget, gpointer data)
+gnc_option_multichoice_cb (GtkWidget *widget, gpointer data)
 {
     GNCOption *option = data;
     /* GtkComboBox per-item tooltip changes needed below */
-    gnc_option_changed_widget_cb(widget, option);
+    gnc_option_changed_widget_cb (widget, option);
 }
 
 static void
-gnc_option_radiobutton_cb(GtkWidget *w, gpointer data)
+gnc_option_radiobutton_cb (GtkWidget *w, gpointer data)
 {
     GNCOption *option = data;
     GtkWidget *widget;
@@ -515,24 +501,24 @@ gnc_option_radiobutton_cb(GtkWidget *w, gpointer data)
 
     widget = gnc_option_get_gtk_widget (option);
 
-    _current = g_object_get_data(G_OBJECT(widget), "gnc_radiobutton_index");
-    current = GPOINTER_TO_INT (_current);
+    _current = g_object_get_data (G_OBJECT(widget), "gnc_radiobutton_index");
+    current = GPOINTER_TO_INT(_current);
 
     _new_value = g_object_get_data (G_OBJECT(w), "gnc_radiobutton_index");
-    new_value = GPOINTER_TO_INT (_new_value);
+    new_value = GPOINTER_TO_INT(_new_value);
 
     if (current == new_value)
         return;
 
     g_object_set_data (G_OBJECT(widget), "gnc_radiobutton_index",
                        GINT_TO_POINTER(new_value));
-    gnc_option_changed_widget_cb(widget, option);
+    gnc_option_changed_widget_cb (widget, option);
 }
 
 static gboolean
 gnc_gain_loss_account_view_filter (Account  *account, gpointer  data)
 {
-    GNCAccountType type = xaccAccountGetType(account);
+    GNCAccountType type = xaccAccountGetType (account);
 
     /* gain/loss accts must be an Income or Expense accts and not hidden;
        placeholder accounts must be included, irrespective of their currency,
@@ -540,11 +526,11 @@ gnc_gain_loss_account_view_filter (Account  *account, gpointer  data)
     if (((type == ACCT_TYPE_INCOME) || (type == ACCT_TYPE_EXPENSE)) &&
         (!xaccAccountIsHidden(account)))
     {
-        if (xaccAccountGetPlaceholder(account))
+        if (xaccAccountGetPlaceholder (account))
         {
             GList *placeholder_children = gnc_account_get_children (account);
 
-            if(placeholder_children)
+            if (placeholder_children)
             { /* determine if any children qualify; just need one but don't
                  double count in gain_loss_accounts_in_filter */
                 int saved_gain_loss_accounts_in_filter =
@@ -555,11 +541,11 @@ gnc_gain_loss_account_view_filter (Account  *account, gpointer  data)
                 {
                     Account  *child_account = l->data;
                     child_pass_filter =
-                        gnc_gain_loss_account_view_filter(child_account, NULL);
+                        gnc_gain_loss_account_view_filter (child_account, NULL);
                     if (child_pass_filter)
                         break;
                 }
-                g_list_free(placeholder_children);
+                g_list_free (placeholder_children);
                 gain_loss_accounts_in_filter =
                                            saved_gain_loss_accounts_in_filter;
                 return child_pass_filter;
@@ -572,14 +558,15 @@ gnc_gain_loss_account_view_filter (Account  *account, gpointer  data)
 
             /* gain/loss accts must be in book-currency; if a book currency has been
                specified in the widget, use it to filter */
-            if (gtk_combo_box_get_active (GTK_COMBO_BOX(book_currency_data->book_currency_widget)) != -1)
-                commodity = gnc_currency_edit_get_currency(
+            if (gtk_combo_box_get_active (GTK_COMBO_BOX(
+                                          book_currency_data->book_currency_widget)) != -1)
+                commodity = gnc_currency_edit_get_currency (
                                 GNC_CURRENCY_EDIT(
                                     book_currency_data->book_currency_widget));
             if (commodity)
             {
-                if (gnc_commodity_equal(xaccAccountGetCommodity(account),
-                                    commodity))
+                if (gnc_commodity_equal (xaccAccountGetCommodity (account),
+                                         commodity))
                 {
                     gain_loss_accounts_in_filter++;
                     return TRUE;
@@ -587,8 +574,8 @@ gnc_gain_loss_account_view_filter (Account  *account, gpointer  data)
                 else return FALSE;
             }
             /* else use the default currency */
-            else if (gnc_commodity_equal(xaccAccountGetCommodity(account),
-                                gnc_default_currency()))
+            else if (gnc_commodity_equal (xaccAccountGetCommodity (account),
+                                          gnc_default_currency ()))
             {
                 gain_loss_accounts_in_filter++;
                 return TRUE;
@@ -606,9 +593,9 @@ gnc_gain_loss_account_all_fail_filter (Account  *account, gpointer  data)
 }
 
 void
-gnc_set_default_cost_policy_widget(SCM list_symbol)
+gnc_set_default_cost_policy_widget (SCM list_symbol)
 {
-    GList *list_of_policies = gnc_get_valid_policy_list();
+    GList *list_of_policies = gnc_get_valid_policy_list ();
 
     if (list_of_policies)
     {
@@ -617,18 +604,18 @@ gnc_set_default_cost_policy_widget(SCM list_symbol)
         for (l = list_of_policies; l != NULL; l = l->next)
         {
             GNCPolicy *pcy = l->data;
-            if (g_strcmp0(PolicyGetName (pcy),
-                               gnc_scm_symbol_to_locale_string(list_symbol))
-                               == 0)
+            if (g_strcmp0 (PolicyGetName (pcy),
+                           gnc_scm_symbol_to_locale_string (list_symbol))
+                           == 0)
             {
                 /* GtkComboBox per-item tooltip changes needed below */
-                gnc_combott_set_active(
+                gnc_combott_set_active (
                     GNC_COMBOTT(
                         book_currency_data->default_cost_policy_widget), i);
             }
             i++;
         }
-        g_list_free(list_of_policies);
+        g_list_free (list_of_policies);
     }
     else
     {
@@ -638,7 +625,7 @@ gnc_set_default_cost_policy_widget(SCM list_symbol)
 }
 
 void
-gnc_set_default_gain_loss_account_widget(gnc_commodity *commodity)
+gnc_set_default_gain_loss_account_widget (gnc_commodity *commodity)
 {
     if (book_currency_data->default_gain_loss_account_widget)
     {
@@ -660,10 +647,10 @@ gnc_set_default_gain_loss_account_widget(gnc_commodity *commodity)
                     book_currency_data->default_gain_loss_account_text);
         book_currency_data->default_gain_loss_account_text = NULL;
     }
-    if (gnc_is_new_book())
+    if (gnc_is_new_book ())
     {
         book_currency_data->default_gain_loss_account_text =
-                    gtk_label_new( _("Because no accounts have " \
+                    gtk_label_new ( _("Because no accounts have " \
                         "been set up yet, you will need to return to this " \
                         "dialog (via File->Properties), after account setup, " \
                         "if you want to set a default gain/loss account.") );
@@ -677,15 +664,15 @@ gnc_set_default_gain_loss_account_widget(gnc_commodity *commodity)
     {
         GtkTreeSelection *selection = NULL;
         book_currency_data->default_gain_loss_account_widget =
-                            GTK_WIDGET(gnc_tree_view_account_new(FALSE));
+                            GTK_WIDGET(gnc_tree_view_account_new (FALSE));
         gain_loss_accounts_in_filter = 0;
-        selection = gtk_tree_view_get_selection(GTK_TREE_VIEW(
+        selection = gtk_tree_view_get_selection (GTK_TREE_VIEW(
                         book_currency_data->default_gain_loss_account_widget));
         if (!commodity) // that means not book currency
         {
             /* set the default_gain_loss_account_widget to be blank with a
                no-acct filter */
-            gnc_tree_view_account_set_filter(GNC_TREE_VIEW_ACCOUNT (
+            gnc_tree_view_account_set_filter (GNC_TREE_VIEW_ACCOUNT(
                         book_currency_data->default_gain_loss_account_widget),
                         gnc_gain_loss_account_all_fail_filter,
                         NULL,  /* user data */
@@ -695,7 +682,7 @@ gnc_set_default_gain_loss_account_widget(gnc_commodity *commodity)
         else // that means book currency
         {
             /* see if there are any accounts after filter */
-            gnc_tree_view_account_set_filter(GNC_TREE_VIEW_ACCOUNT (
+            gnc_tree_view_account_set_filter (GNC_TREE_VIEW_ACCOUNT(
                         book_currency_data->default_gain_loss_account_widget),
                         gnc_gain_loss_account_view_filter,
                         NULL, /* user data */
@@ -707,12 +694,12 @@ gnc_set_default_gain_loss_account_widget(gnc_commodity *commodity)
                 GtkTreeViewColumn *col;
 
                 book_currency_data->gain_loss_account_del_button =
-                        gtk_button_new_with_label( _("Select no account") );
+                        gtk_button_new_with_label ( _("Select no account") );
 
-                g_signal_connect (GTK_BUTTON (
+                g_signal_connect (GTK_BUTTON(
                         book_currency_data->gain_loss_account_del_button),
                         "clicked",
-                        G_CALLBACK (
+                        G_CALLBACK(
                             gnc_option_changed_gain_loss_account_del_button_widget_cb),
                         NULL);
                 gtk_grid_attach (GTK_GRID(book_currency_data->gain_loss_account_table),
@@ -721,7 +708,7 @@ gnc_set_default_gain_loss_account_widget(gnc_commodity *commodity)
                 gtk_tree_view_set_headers_visible (GTK_TREE_VIEW(
                         book_currency_data->default_gain_loss_account_widget),
                         TRUE);
-                col = gnc_tree_view_add_text_column(GNC_TREE_VIEW(
+                col = gnc_tree_view_add_text_column (GNC_TREE_VIEW(
                         book_currency_data->default_gain_loss_account_widget),
                          _("Currency"), /* title */
                         "commodity", /* pref name */
@@ -730,14 +717,14 @@ gnc_set_default_gain_loss_account_widget(gnc_commodity *commodity)
                         GNC_TREE_MODEL_ACCOUNT_COL_COMMODITY,
                         GNC_TREE_VIEW_COLUMN_VISIBLE_ALWAYS,
                         NULL);
-                g_object_set_data(G_OBJECT(col), DEFAULT_VISIBLE,
-                    GINT_TO_POINTER(1));
+                g_object_set_data (G_OBJECT(col), DEFAULT_VISIBLE,
+                                   GINT_TO_POINTER(1));
 
                 // add the color background data function to the column
                 gnc_tree_view_account_column_add_color (GNC_TREE_VIEW_ACCOUNT(
                          book_currency_data->default_gain_loss_account_widget), col);
 
-                col = gnc_tree_view_add_toggle_column(GNC_TREE_VIEW(
+                col = gnc_tree_view_add_toggle_column (GNC_TREE_VIEW(
                         book_currency_data->default_gain_loss_account_widget),
                         _("Placeholder"),
                         C_("Column header for 'Placeholder'", "P"),
@@ -746,7 +733,7 @@ gnc_set_default_gain_loss_account_widget(gnc_commodity *commodity)
                         GNC_TREE_VIEW_COLUMN_VISIBLE_ALWAYS,
                         NULL,
                         NULL);
-                g_object_set_data(G_OBJECT(col), DEFAULT_VISIBLE,
+                g_object_set_data (G_OBJECT(col), DEFAULT_VISIBLE,
                     GINT_TO_POINTER(1));
 
                 // add the color background data function to the column
@@ -755,21 +742,21 @@ gnc_set_default_gain_loss_account_widget(gnc_commodity *commodity)
 
                 gnc_tree_view_configure_columns (GNC_TREE_VIEW(
                         book_currency_data->default_gain_loss_account_widget));
-                gnc_tree_view_set_show_column_menu(GNC_TREE_VIEW(
+                gnc_tree_view_set_show_column_menu (GNC_TREE_VIEW(
                         book_currency_data->default_gain_loss_account_widget),
                         FALSE);
                 if (book_currency_data->retrieved_gain_loss_acct_guid_scm &&
-                    (scm_is_string(
+                    (scm_is_string (
                         book_currency_data->retrieved_gain_loss_acct_guid_scm)))
                 {
                     GncGUID *guid= g_new (GncGUID, 1);
 
                     if (string_to_guid (
-                        gnc_scm_to_utf8_string(
+                        gnc_scm_to_utf8_string (
                         book_currency_data->retrieved_gain_loss_acct_guid_scm),
                         guid))
                     gain_loss_account =
-                                xaccAccountLookup(guid, gnc_get_current_book());
+                                xaccAccountLookup (guid, gnc_get_current_book ());
                     g_free (guid);
                 }
                 if (gain_loss_account)
@@ -779,22 +766,22 @@ gnc_set_default_gain_loss_account_widget(gnc_commodity *commodity)
                           book_currency_data->default_gain_loss_account_widget),
                         gain_loss_account));
                     selected_account =
-                        gnc_tree_view_account_get_selected_account(
-                            GNC_TREE_VIEW_ACCOUNT (
+                        gnc_tree_view_account_get_selected_account (
+                            GNC_TREE_VIEW_ACCOUNT(
                             book_currency_data->default_gain_loss_account_widget));
                 }
                 if (selected_account)
                 {
                     book_currency_data->prior_gain_loss_account =
                         selected_account;
-                    gtk_widget_set_sensitive(
+                    gtk_widget_set_sensitive (
                         book_currency_data->gain_loss_account_del_button,
                         TRUE);
                 }
                 else /* none selected */
                 {
                     gtk_tree_selection_unselect_all (selection);
-                    gtk_widget_set_sensitive(
+                    gtk_widget_set_sensitive (
                         book_currency_data->gain_loss_account_del_button,
                         FALSE);
                 }
@@ -807,7 +794,7 @@ gnc_set_default_gain_loss_account_widget(gnc_commodity *commodity)
                 book_currency_data->prior_gain_loss_account = NULL;
                 gain_loss_accounts_in_filter = 0;
                 book_currency_data->default_gain_loss_account_text =
-                    gtk_label_new( _("There are no income " \
+                    gtk_label_new ( _("There are no income " \
                         "or expense accounts of the specified\n" \
                         "book currency; you will have to return to this " \
                         "dialog\n(via File->Properties), after account setup, " \
@@ -819,60 +806,59 @@ gnc_set_default_gain_loss_account_widget(gnc_commodity *commodity)
         if (book_currency_data->default_gain_loss_account_widget)
         {
             gtk_widget_set_hexpand (GTK_WIDGET(book_currency_data->default_gain_loss_account_widget), TRUE);
-            g_signal_connect (G_OBJECT (selection),
-                        "changed",
-                        G_CALLBACK (gnc_option_changed_gain_loss_account_widget_cb),
-                        NULL);
+            g_signal_connect (G_OBJECT(selection),
+                              "changed",
+                              G_CALLBACK(gnc_option_changed_gain_loss_account_widget_cb),
+                              NULL);
             gtk_grid_attach (GTK_GRID(book_currency_data->gain_loss_account_table),
                                       book_currency_data->default_gain_loss_account_widget, 0, 1, 2, 1);
-
         }
     }
 }
 
 void
-gnc_option_changed_book_currency_widget_cb(GtkWidget *widget)
+gnc_option_changed_book_currency_widget_cb (GtkWidget *widget)
 {
     /* Once the book currency widget is set, need to set the
        default_gain_loss_account_widget and/or del-button or text*/
     if (gtk_combo_box_get_active (GTK_COMBO_BOX(book_currency_data->book_currency_widget)) != -1)
     {
-        gnc_commodity *commodity = gnc_currency_edit_get_currency(
-                                GNC_CURRENCY_EDIT(
-                                    book_currency_data->book_currency_widget));
+        gnc_commodity *commodity = gnc_currency_edit_get_currency (
+                                       GNC_CURRENCY_EDIT(
+                                       book_currency_data->book_currency_widget));
 
-        gnc_set_default_gain_loss_account_widget(commodity);
+        gnc_set_default_gain_loss_account_widget (commodity);
     }
-    gtk_widget_show_all(book_currency_data->book_currency_vbox);
-    gnc_option_changed_widget_cb(widget, book_currency_data->option);
+    gtk_widget_show_all (book_currency_data->book_currency_vbox);
+    gnc_option_changed_widget_cb (widget, book_currency_data->option);
 }
 
 void
 gnc_option_changed_gain_loss_account_widget_cb (GtkTreeSelection *selection,
-                                                    gpointer data)
+                                                gpointer data)
 {
     Account *account = NULL;
     gboolean new_eq_prior_acct = FALSE;
 
     g_return_if_fail (book_currency_data->default_gain_loss_account_widget);
     account = gnc_tree_view_account_get_selected_account (
-                    GNC_TREE_VIEW_ACCOUNT (
+                    GNC_TREE_VIEW_ACCOUNT(
                         book_currency_data->default_gain_loss_account_widget));
     if (account && book_currency_data->prior_gain_loss_account)
-        new_eq_prior_acct = xaccAccountEqual(account,
+        new_eq_prior_acct = xaccAccountEqual (account,
                                 book_currency_data->prior_gain_loss_account,
                                 TRUE);
     if (account && (!new_eq_prior_acct))
     { /* a new account has been selected */
-        if (!xaccAccountGetPlaceholder(account))
+        if (!xaccAccountGetPlaceholder (account))
         {
             GtkWidget *option_widget =
                         gnc_option_get_gtk_widget (book_currency_data->option);
             book_currency_data->prior_gain_loss_account = account;
-            gtk_widget_set_sensitive(
+            gtk_widget_set_sensitive (
                     book_currency_data->gain_loss_account_del_button, TRUE);
-            gtk_widget_show_all(book_currency_data->book_currency_vbox);
-            gnc_option_changed_option_cb(option_widget, book_currency_data->option);
+            gtk_widget_show_all (book_currency_data->book_currency_vbox);
+            gnc_option_changed_option_cb (option_widget, book_currency_data->option);
         }
         else /*  new account, but placeholder */
         {
@@ -902,7 +888,7 @@ gnc_option_changed_gain_loss_account_widget_cb (GtkTreeSelection *selection,
             gtk_tree_selection_unselect_all (selection);
             if (book_currency_data->gain_loss_account_del_button)
             {
-                gtk_widget_set_sensitive(
+                gtk_widget_set_sensitive (
                     book_currency_data->gain_loss_account_del_button, FALSE);
             }
         }
@@ -910,7 +896,8 @@ gnc_option_changed_gain_loss_account_widget_cb (GtkTreeSelection *selection,
 }
 
 void
-gnc_option_changed_gain_loss_account_del_button_widget_cb (GtkButton *button, gpointer data)
+gnc_option_changed_gain_loss_account_del_button_widget_cb (GtkButton *button,
+                                                           gpointer data)
 {
     GtkTreeSelection *selection = NULL;
     GtkWidget *option_widget =
@@ -920,36 +907,36 @@ gnc_option_changed_gain_loss_account_del_button_widget_cb (GtkButton *button, gp
     g_return_if_fail (book_currency_data->gain_loss_account_del_button);
 
     selection = gtk_tree_view_get_selection (
-                    GTK_TREE_VIEW (
+                    GTK_TREE_VIEW(
                         book_currency_data->default_gain_loss_account_widget));
     gtk_tree_selection_unselect_all (selection);
     book_currency_data->prior_gain_loss_account = NULL;
-    gtk_widget_set_sensitive(
+    gtk_widget_set_sensitive (
                     book_currency_data->gain_loss_account_del_button, FALSE);
-    gnc_option_changed_option_cb(option_widget, book_currency_data->option);
+    gnc_option_changed_option_cb (option_widget, book_currency_data->option);
 }
 
 static void
-gnc_option_currency_accounting_non_book_cb(GtkWidget *widget, gpointer data)
+gnc_option_currency_accounting_non_book_cb (GtkWidget *widget, gpointer data)
 {
     gnc_currency_edit_clear_display (GNC_CURRENCY_EDIT(
                                      book_currency_data->book_currency_widget));
-    gnc_combott_set_active(GNC_COMBOTT(
-                                book_currency_data->default_cost_policy_widget),
-                                -1);
-    gnc_set_default_gain_loss_account_widget(NULL);
-    gtk_widget_show_all(book_currency_data->book_currency_vbox);
-    gtk_widget_set_sensitive(book_currency_data->book_currency_vbox, FALSE);
-    gnc_option_radiobutton_cb(widget, (gpointer) book_currency_data->option);
+    gnc_combott_set_active (GNC_COMBOTT(
+                            book_currency_data->default_cost_policy_widget),
+                            -1);
+    gnc_set_default_gain_loss_account_widget (NULL);
+    gtk_widget_show_all (book_currency_data->book_currency_vbox);
+    gtk_widget_set_sensitive (book_currency_data->book_currency_vbox, FALSE);
+    gnc_option_radiobutton_cb (widget, (gpointer) book_currency_data->option);
 }
 
 static void
-gnc_option_currency_accounting_book_cb(GtkWidget *widget, gpointer data)
+gnc_option_currency_accounting_book_cb (GtkWidget *widget, gpointer data)
 {
     SCM list_symbol =
-            gnc_currency_accounting_option_get_default_policy(
+            gnc_currency_accounting_option_get_default_policy (
                                                     book_currency_data->option);
-    SCM curr_scm = gnc_currency_accounting_option_get_default_currency(
+    SCM curr_scm = gnc_currency_accounting_option_get_default_currency (
                                                     book_currency_data->option);
     gnc_commodity *commodity = gnc_scm_to_commodity (curr_scm);
 
@@ -957,32 +944,32 @@ gnc_option_currency_accounting_book_cb(GtkWidget *widget, gpointer data)
     {
         gnc_currency_edit_set_currency
                 (GNC_CURRENCY_EDIT(book_currency_data->book_currency_widget),
-                    book_currency_data->retrieved_book_currency);
+                 book_currency_data->retrieved_book_currency);
     }
     else if (commodity)
     {
         gnc_currency_edit_set_currency
                 (GNC_CURRENCY_EDIT(book_currency_data->book_currency_widget),
-                    commodity);
+                 commodity);
     }
     else
     {
         gnc_currency_edit_set_currency
                 (GNC_CURRENCY_EDIT(book_currency_data->book_currency_widget),
-                    gnc_default_currency());
+                 gnc_default_currency());
     }
     if (book_currency_data->retrieved_policy_scm)
     {
-        gnc_set_default_cost_policy_widget(
+        gnc_set_default_cost_policy_widget (
                                       book_currency_data->retrieved_policy_scm);
     }
     else
     {
-        gnc_set_default_cost_policy_widget(list_symbol);
+        gnc_set_default_cost_policy_widget (list_symbol);
     }
-    gtk_widget_show_all(book_currency_data->book_currency_vbox);
-    gtk_widget_set_sensitive(book_currency_data->book_currency_vbox, TRUE);
-    gnc_option_radiobutton_cb(widget, (gpointer) book_currency_data->option);
+    gtk_widget_show_all (book_currency_data->book_currency_vbox);
+    gtk_widget_set_sensitive (book_currency_data->book_currency_vbox, TRUE);
+    gnc_option_radiobutton_cb (widget, (gpointer) book_currency_data->option);
 }
 
 static GtkWidget *
@@ -996,30 +983,30 @@ gnc_option_create_date_widget (GNCOption *option)
     char *type;
     int num_values;
 
-    type = gnc_option_date_option_get_subtype(option);
-    show_time = gnc_option_show_time(option);
-    use24 = gnc_prefs_get_bool(GNC_PREFS_GROUP_GENERAL, GNC_PREF_CLOCK_24H);
+    type = gnc_option_date_option_get_subtype (option);
+    show_time = gnc_option_show_time (option);
+    use24 = gnc_prefs_get_bool (GNC_PREFS_GROUP_GENERAL, GNC_PREF_CLOCK_24H);
 
-    if (g_strcmp0(type, "relative") != 0)
+    if (g_strcmp0 (type, "relative") != 0)
     {
-        ab_widget = gnc_date_edit_new(time(NULL), show_time, use24);
+        ab_widget = gnc_date_edit_new (time (NULL), show_time, use24);
         entry = GNC_DATE_EDIT(ab_widget)->date_entry;
-        g_signal_connect(G_OBJECT(entry), "changed",
-                         G_CALLBACK(gnc_option_changed_option_cb), option);
+        g_signal_connect (G_OBJECT(entry), "changed",
+                          G_CALLBACK(gnc_option_changed_option_cb), option);
         if (show_time)
         {
             entry = GNC_DATE_EDIT(ab_widget)->time_entry;
-            g_signal_connect(G_OBJECT(entry), "changed",
-                             G_CALLBACK(gnc_option_changed_option_cb), option);
+            g_signal_connect (G_OBJECT(entry), "changed",
+                              G_CALLBACK(gnc_option_changed_option_cb), option);
         }
     }
 
-    if (g_strcmp0(type, "absolute") != 0)
+    if (g_strcmp0 (type, "absolute") != 0)
     {
         int i;
-        num_values = gnc_option_num_permissible_values(option);
+        num_values = gnc_option_num_permissible_values (option);
 
-        g_return_val_if_fail(num_values >= 0, NULL);
+        g_return_val_if_fail (num_values >= 0, NULL);
 
         {
             /* GtkComboBox still does not support per-item tooltips, so have
@@ -1033,100 +1020,98 @@ gnc_option_create_date_widget (GNCOption *option)
 
             char *itemstring;
             char *description;
-            store = gtk_list_store_new(2, G_TYPE_STRING, G_TYPE_STRING);
+            store = gtk_list_store_new (2, G_TYPE_STRING, G_TYPE_STRING);
             /* Add values to the list store, entry and tooltip */
             for (i = 0; i < num_values; i++)
             {
-                itemstring = gnc_option_permissible_value_name(option, i);
-                description = gnc_option_permissible_value_description(option, i);
+                itemstring = gnc_option_permissible_value_name (option, i);
+                description = gnc_option_permissible_value_description (option, i);
                 gtk_list_store_append (store, &iter);
                 gtk_list_store_set (store, &iter, 0, itemstring, 1, description, -1);
                 if (itemstring)
-                    g_free(itemstring);
+                    g_free (itemstring);
                 if (description)
-                    g_free(description);
+                    g_free (description);
             }
             /* Create the new Combo with tooltip and add the store */
-            rel_widget = GTK_WIDGET(gnc_combott_new());
-            g_object_set( G_OBJECT(rel_widget), "model", GTK_TREE_MODEL(store), NULL );
-            g_object_unref(store);
+            rel_widget = GTK_WIDGET(gnc_combott_new ());
+            g_object_set (G_OBJECT(rel_widget), "model", GTK_TREE_MODEL(store), NULL );
+            g_object_unref (store);
 
-            g_signal_connect(G_OBJECT(rel_widget), "changed",
-                             G_CALLBACK(gnc_option_multichoice_cb), option);
+            g_signal_connect (G_OBJECT(rel_widget), "changed",
+                              G_CALLBACK(gnc_option_multichoice_cb), option);
         }
     }
 
-    if (g_strcmp0(type, "absolute") == 0)
+    if (g_strcmp0 (type, "absolute") == 0)
     {
-        free(type);
+        free (type);
         gnc_option_set_widget (option, ab_widget);
         return ab_widget;
     }
-    else if (g_strcmp0(type, "relative") == 0)
+    else if (g_strcmp0 (type, "relative") == 0)
     {
         gnc_option_set_widget (option, rel_widget);
-        free(type);
+        free (type);
 
         return rel_widget;
     }
-    else if (g_strcmp0(type, "both") == 0)
+    else if (g_strcmp0 (type, "both") == 0)
     {
         box = gtk_box_new (GTK_ORIENTATION_HORIZONTAL, 5);
-        gtk_box_set_homogeneous (GTK_BOX (box), FALSE);
+        gtk_box_set_homogeneous (GTK_BOX(box), FALSE);
 
-        ab_button = gtk_radio_button_new(NULL);
-        g_signal_connect(G_OBJECT(ab_button), "toggled",
-                         G_CALLBACK(gnc_rd_option_ab_set_cb), option);
+        ab_button = gtk_radio_button_new (NULL);
+        g_signal_connect (G_OBJECT(ab_button), "toggled",
+                          G_CALLBACK(gnc_rd_option_ab_set_cb), option);
 
-        rel_button = gtk_radio_button_new_from_widget(GTK_RADIO_BUTTON(ab_button));
-        g_signal_connect(G_OBJECT(rel_button), "toggled",
-                         G_CALLBACK(gnc_rd_option_rel_set_cb), option);
+        rel_button = gtk_radio_button_new_from_widget (GTK_RADIO_BUTTON(ab_button));
+        g_signal_connect (G_OBJECT(rel_button), "toggled",
+                          G_CALLBACK(gnc_rd_option_rel_set_cb), option);
 
-        gtk_box_pack_start(GTK_BOX(box), ab_button, FALSE, FALSE, 0);
-        gtk_box_pack_start(GTK_BOX(box), ab_widget, FALSE, FALSE, 0);
-        gtk_box_pack_start(GTK_BOX(box), rel_button, FALSE, FALSE, 0);
-        gtk_box_pack_start(GTK_BOX(box), rel_widget, FALSE, FALSE, 0);
+        gtk_box_pack_start (GTK_BOX(box), ab_button, FALSE, FALSE, 0);
+        gtk_box_pack_start (GTK_BOX(box), ab_widget, FALSE, FALSE, 0);
+        gtk_box_pack_start (GTK_BOX(box), rel_button, FALSE, FALSE, 0);
+        gtk_box_pack_start (GTK_BOX(box), rel_widget, FALSE, FALSE, 0);
 
-        free(type);
+        free (type);
 
         gnc_option_set_widget (option, box);
 
         return box;
     }
     else /* can't happen */
-    {
         return NULL;
-    }
 }
 
 static GtkWidget *
-gnc_option_create_budget_widget(GNCOption *option)
+gnc_option_create_budget_widget (GNCOption *option)
 {
     GtkTreeModel *tm;
     GtkComboBox *cb;
     GtkCellRenderer *cr;
 
-    tm = gnc_tree_model_budget_new(gnc_get_current_book());
-    cb = GTK_COMBO_BOX(gtk_combo_box_new_with_model(tm));
-    g_object_unref(tm);
-    cr = gtk_cell_renderer_text_new();
-    gtk_cell_layout_pack_start(GTK_CELL_LAYOUT(cb), cr, TRUE);
+    tm = gnc_tree_model_budget_new (gnc_get_current_book());
+    cb = GTK_COMBO_BOX(gtk_combo_box_new_with_model (tm));
+    g_object_unref (tm);
+    cr = gtk_cell_renderer_text_new ();
+    gtk_cell_layout_pack_start (GTK_CELL_LAYOUT(cb), cr, TRUE);
 
-    gtk_cell_layout_set_attributes(GTK_CELL_LAYOUT(cb), cr, "text",
-                                   BUDGET_NAME_COLUMN, NULL);
+    gtk_cell_layout_set_attributes (GTK_CELL_LAYOUT(cb), cr, "text",
+                                    BUDGET_NAME_COLUMN, NULL);
     return GTK_WIDGET(cb);
 }
 
 static GtkWidget *
-gnc_option_create_multichoice_widget(GNCOption *option)
+gnc_option_create_multichoice_widget (GNCOption *option)
 {
     GtkWidget *widget;
     int num_values;
     int i;
 
-    num_values = gnc_option_num_permissible_values(option);
+    num_values = gnc_option_num_permissible_values (option);
 
-    g_return_val_if_fail(num_values >= 0, NULL);
+    g_return_val_if_fail (num_values >= 0, NULL);
 
     {
         /* GtkComboBox still does not support per-item tooltips, so have
@@ -1139,35 +1124,34 @@ gnc_option_create_multichoice_widget(GNCOption *option)
 
         char *itemstring;
         char *description;
-        store = gtk_list_store_new(2, G_TYPE_STRING, G_TYPE_STRING);
+        store = gtk_list_store_new (2, G_TYPE_STRING, G_TYPE_STRING);
         /* Add values to the list store, entry and tooltip */
         for (i = 0; i < num_values; i++)
         {
-            itemstring = gnc_option_permissible_value_name(option, i);
-            description = gnc_option_permissible_value_description(option, i);
+            itemstring = gnc_option_permissible_value_name (option, i);
+            description = gnc_option_permissible_value_description (option, i);
             gtk_list_store_append (store, &iter);
             gtk_list_store_set (store, &iter, 0,
                                 (itemstring && *itemstring) ? _(itemstring) : "", 1,
                                 (description && *description) ? _(description) : "", -1);
             if (itemstring)
-                g_free(itemstring);
+                g_free (itemstring);
             if (description)
-                g_free(description);
+                g_free (description);
         }
         /* Create the new Combo with tooltip and add the store */
-        widget = GTK_WIDGET(gnc_combott_new());
-        g_object_set( G_OBJECT( widget ), "model", GTK_TREE_MODEL(store), NULL );
-        g_object_unref(store);
+        widget = GTK_WIDGET(gnc_combott_new ());
+        g_object_set (G_OBJECT( widget ), "model", GTK_TREE_MODEL(store), NULL );
+        g_object_unref (store);
 
-        g_signal_connect(G_OBJECT(widget), "changed",
-                         G_CALLBACK(gnc_option_multichoice_cb), option);
+        g_signal_connect (G_OBJECT(widget), "changed",
+                          G_CALLBACK(gnc_option_multichoice_cb), option);
     }
-
     return widget;
 }
 
 static GtkWidget *
-gnc_option_create_radiobutton_widget(char *name, GNCOption *option)
+gnc_option_create_radiobutton_widget (char *name, GNCOption *option)
 {
     GtkWidget *frame, *box;
     GtkWidget *widget = NULL;
@@ -1176,42 +1160,41 @@ gnc_option_create_radiobutton_widget(char *name, GNCOption *option)
     char *tip;
     int i;
 
-    num_values = gnc_option_num_permissible_values(option);
+    num_values = gnc_option_num_permissible_values (option);
 
-    g_return_val_if_fail(num_values >= 0, NULL);
+    g_return_val_if_fail (num_values >= 0, NULL);
 
     /* Create our button frame */
     frame = gtk_frame_new (name);
 
     /* Create the button box */
     box = gtk_box_new (GTK_ORIENTATION_VERTICAL, 5);
-    gtk_box_set_homogeneous (GTK_BOX (box), FALSE);
-    gtk_container_add (GTK_CONTAINER (frame), box);
+    gtk_box_set_homogeneous (GTK_BOX(box), FALSE);
+    gtk_container_add (GTK_CONTAINER(frame), box);
 
     /* Iterate over the options and create a radio button for each one */
     for (i = 0; i < num_values; i++)
     {
-        label = gnc_option_permissible_value_name(option, i);
-        tip = gnc_option_permissible_value_description(option, i);
+        label = gnc_option_permissible_value_name (option, i);
+        tip = gnc_option_permissible_value_description (option, i);
 
         widget =
             gtk_radio_button_new_with_label_from_widget (widget ?
-                    GTK_RADIO_BUTTON (widget) :
+                    GTK_RADIO_BUTTON(widget) :
                     NULL,
                     label && *label ? _(label) : "");
-        g_object_set_data (G_OBJECT (widget), "gnc_radiobutton_index",
+        g_object_set_data (G_OBJECT(widget), "gnc_radiobutton_index",
                            GINT_TO_POINTER (i));
-        gtk_widget_set_tooltip_text(widget, tip && *tip ? _(tip) : "");
-        g_signal_connect(G_OBJECT(widget), "toggled",
-                         G_CALLBACK(gnc_option_radiobutton_cb), option);
-        gtk_box_pack_start (GTK_BOX (box), widget, FALSE, FALSE, 0);
+        gtk_widget_set_tooltip_text (widget, tip && *tip ? _(tip) : "");
+        g_signal_connect (G_OBJECT(widget), "toggled",
+                          G_CALLBACK(gnc_option_radiobutton_cb), option);
+        gtk_box_pack_start (GTK_BOX(box), widget, FALSE, FALSE, 0);
 
         if (label)
             free (label);
         if (tip)
             free (tip);
     }
-
     return frame;
 }
 
@@ -1222,9 +1205,9 @@ gnc_option_create_currency_accounting_widget (char *name, GNCOption *option)
               *widget = NULL,
               *vbox = NULL;
     int i;
-    int num_values = gnc_option_num_permissible_values(option);
+    int num_values = gnc_option_num_permissible_values (option);
 
-    g_return_val_if_fail(num_values == 3, NULL);
+    g_return_val_if_fail (num_values == 3, NULL);
     book_currency_data = g_new0 (currency_accounting_data, 1);
     book_currency_data->option = option;
 
@@ -1235,8 +1218,8 @@ gnc_option_create_currency_accounting_widget (char *name, GNCOption *option)
 
     /* Create the vertical button box */
     vbox = gtk_box_new (GTK_ORIENTATION_VERTICAL, 5);
-    gtk_box_set_homogeneous (GTK_BOX (vbox), FALSE);
-    gtk_container_add (GTK_CONTAINER (frame), vbox);
+    gtk_box_set_homogeneous (GTK_BOX(vbox), FALSE);
+    gtk_container_add (GTK_CONTAINER(frame), vbox);
     gtk_widget_set_halign (GTK_WIDGET(vbox), GTK_ALIGN_FILL);
     gtk_widget_set_hexpand (GTK_WIDGET(vbox), TRUE);
 
@@ -1250,16 +1233,16 @@ gnc_option_create_currency_accounting_widget (char *name, GNCOption *option)
         char *tip;
         GtkWidget *table = NULL;
 
-        label = gnc_option_permissible_value_name(option, i);
-        tip = gnc_option_permissible_value_description(option, i);
+        label = gnc_option_permissible_value_name (option, i);
+        tip = gnc_option_permissible_value_description (option, i);
 
         widget =
             gtk_radio_button_new_with_label_from_widget (widget ?
-                    GTK_RADIO_BUTTON (widget) :
+                    GTK_RADIO_BUTTON(widget) :
                     NULL,
                     label && *label ? _(label) : "");
-        g_object_set_data (G_OBJECT (widget), "gnc_radiobutton_index",
-                           GINT_TO_POINTER (i));
+        g_object_set_data (G_OBJECT(widget), "gnc_radiobutton_index",
+                           GINT_TO_POINTER(i));
         switch (i)
         {
         case 0:
@@ -1277,91 +1260,91 @@ gnc_option_create_currency_accounting_widget (char *name, GNCOption *option)
         default:
             break;
         }
-        gtk_widget_set_tooltip_text(widget, tip && *tip ? _(tip) : "");
-        if (g_strcmp0(gnc_option_permissible_value_name(option, i),
+        gtk_widget_set_tooltip_text (widget, tip && *tip ? _(tip) : "");
+        if (g_strcmp0 (gnc_option_permissible_value_name (option, i),
                                                     "Use a Book Currency") == 0)
         {
             GtkWidget *widget_label,
-                      *policy_table = gtk_grid_new();
+                      *policy_table = gtk_grid_new ();
 
-            book_currency_data->book_currency_widget = gnc_currency_edit_new();
+            book_currency_data->book_currency_widget = gnc_currency_edit_new ();
             book_currency_data->default_cost_policy_widget =
-                                    gnc_cost_policy_select_new();
+                                    gnc_cost_policy_select_new ();
             book_currency_data->default_gain_loss_account_widget = NULL;
             book_currency_data->gain_loss_account_del_button = NULL;
             book_currency_data->default_gain_loss_account_text = NULL;
             book_currency_data->prior_gain_loss_account = NULL;
 
             book_currency_data->book_currency_vbox = gtk_box_new (GTK_ORIENTATION_VERTICAL, 0);
-            gtk_box_set_homogeneous (GTK_BOX (book_currency_data->book_currency_vbox), FALSE);
+            gtk_box_set_homogeneous (GTK_BOX(book_currency_data->book_currency_vbox), FALSE);
 
             table = gtk_grid_new ();
             gtk_grid_attach (GTK_GRID(table), widget, 0, 0, 2, 1);
-            g_signal_connect(G_OBJECT(widget), "toggled",
-                         G_CALLBACK(gnc_option_currency_accounting_book_cb),
-                         book_currency_data);
+            g_signal_connect (G_OBJECT(widget), "toggled",
+                              G_CALLBACK(gnc_option_currency_accounting_book_cb),
+                              book_currency_data);
 
             book_currency_data->book_currency_table = gtk_grid_new ();
-            gtk_grid_set_row_spacing (GTK_GRID (book_currency_data->book_currency_table), 6);
-            gtk_grid_set_column_spacing (GTK_GRID (book_currency_data->book_currency_table), 6);
+            gtk_grid_set_row_spacing (GTK_GRID(book_currency_data->book_currency_table), 6);
+            gtk_grid_set_column_spacing (GTK_GRID(book_currency_data->book_currency_table), 6);
 
-            tip = gnc_currency_accounting_option_currency_documentation(option);
-            widget_label = gtk_label_new( _("Book currency") );
-            gtk_widget_set_tooltip_text(book_currency_data->book_currency_table,
-                        tip && *tip ? _(tip) : "");
+            tip = gnc_currency_accounting_option_currency_documentation (option);
+            widget_label = gtk_label_new ( _("Book currency") );
+            gtk_widget_set_tooltip_text (book_currency_data->book_currency_table,
+                                         tip && *tip ? _(tip) : "");
 
             gtk_widget_set_halign (GTK_WIDGET(widget_label), GTK_ALIGN_START);
             gtk_widget_set_hexpand (GTK_WIDGET(widget_label), TRUE);
 
             gtk_grid_attach (GTK_GRID(book_currency_data->book_currency_table), widget_label, 0, 0, 1, 1);
 
-            g_signal_connect(G_OBJECT(book_currency_data->book_currency_widget),
-                             "changed",
-                             G_CALLBACK(gnc_option_changed_book_currency_widget_cb),
-                             NULL);
+            g_signal_connect (G_OBJECT(book_currency_data->book_currency_widget),
+                              "changed",
+                              G_CALLBACK(gnc_option_changed_book_currency_widget_cb),
+                              NULL);
 
             gtk_grid_attach (GTK_GRID(book_currency_data->book_currency_table),
                                       book_currency_data->book_currency_widget, 1, 0, 1, 1);
 
-            gtk_box_pack_start (GTK_BOX (book_currency_data->book_currency_vbox),
-                                         book_currency_data->book_currency_table,
-                                         TRUE, TRUE, 0);
+            gtk_box_pack_start (GTK_BOX(book_currency_data->book_currency_vbox),
+                                book_currency_data->book_currency_table,
+                                TRUE, TRUE, 0);
             gtk_widget_set_margin_start (GTK_WIDGET(book_currency_data->book_currency_table), 12);
-            gtk_grid_set_row_spacing (GTK_GRID (policy_table), 6);
-            gtk_grid_set_column_spacing (GTK_GRID (policy_table), 6);
+            gtk_grid_set_row_spacing (GTK_GRID(policy_table), 6);
+            gtk_grid_set_column_spacing (GTK_GRID(policy_table), 6);
 
-            tip = gnc_currency_accounting_option_policy_documentation(option);
-            widget_label = gtk_label_new( _("Default lot tracking policy") );
-            gtk_widget_set_tooltip_text(policy_table, tip && *tip ? _(tip) : "");
+            tip = gnc_currency_accounting_option_policy_documentation (option);
+            widget_label = gtk_label_new ( _("Default lot tracking policy") );
+            gtk_widget_set_tooltip_text (policy_table, tip && *tip ? _(tip) : "");
 
             gtk_widget_set_halign (GTK_WIDGET(widget_label), GTK_ALIGN_START);
             gtk_widget_set_hexpand (GTK_WIDGET(widget_label), TRUE);
 
             gtk_grid_attach (GTK_GRID(policy_table), widget_label, 0, 1, 1, 1);
 
-            g_signal_connect(G_OBJECT(
-                             book_currency_data->default_cost_policy_widget),
-                             "changed",
-                             G_CALLBACK(gnc_option_multichoice_cb), option);
+            g_signal_connect (G_OBJECT(book_currency_data->default_cost_policy_widget),
+                              "changed",
+                              G_CALLBACK(gnc_option_multichoice_cb), option);
 
             gtk_grid_attach (GTK_GRID(policy_table),
                              book_currency_data->default_cost_policy_widget, 1, 1, 1, 1);
 
-            gtk_box_pack_start (GTK_BOX (book_currency_data->book_currency_vbox),
-                                         policy_table, TRUE, TRUE, 0);
+            gtk_box_pack_start (GTK_BOX(book_currency_data->book_currency_vbox),
+                                policy_table, TRUE, TRUE, 0);
             gtk_widget_set_margin_start (GTK_WIDGET(policy_table), 12);
             book_currency_data->gain_loss_account_table = gtk_grid_new ();
-            gtk_grid_set_row_spacing (GTK_GRID (book_currency_data->gain_loss_account_table), 6);
-            gtk_grid_set_column_spacing (GTK_GRID (book_currency_data->gain_loss_account_table), 6);
+            gtk_grid_set_row_spacing (GTK_GRID(book_currency_data->gain_loss_account_table), 6);
+            gtk_grid_set_column_spacing (GTK_GRID(book_currency_data->gain_loss_account_table), 6);
 
-            tip = gnc_currency_accounting_option_gain_loss_account_documentation(option);
-            widget_label = gtk_label_new( _("Default gain/loss account") );
+            tip = gnc_currency_accounting_option_gain_loss_account_documentation (option);
+            widget_label = gtk_label_new ( _("Default gain/loss account") );
             gnc_label_set_alignment (GTK_WIDGET(widget_label), 0.0, 0.5);
 
-            gtk_widget_set_tooltip_text(book_currency_data->gain_loss_account_table,
-                                        tip && *tip ? _(tip) : "");
+            gtk_widget_set_tooltip_text (book_currency_data->gain_loss_account_table,
+                                         tip && *tip ? _(tip) : "");
 
-            gtk_grid_attach (GTK_GRID(book_currency_data->gain_loss_account_table), widget_label, 0, 0, 1, 1);
+            gtk_grid_attach (GTK_GRID(book_currency_data->gain_loss_account_table),
+                             widget_label, 0, 0, 1, 1);
 
             widget_label = NULL;
             gtk_box_pack_start (GTK_BOX (book_currency_data->book_currency_vbox),
@@ -1375,11 +1358,11 @@ gnc_option_create_currency_accounting_widget (char *name, GNCOption *option)
             table = gtk_grid_new ();
             gtk_grid_attach (GTK_GRID(table), widget, 0, 1, 1, 1);
 
-            g_signal_connect(G_OBJECT(widget), "toggled",
-                             G_CALLBACK(gnc_option_currency_accounting_non_book_cb),
-                             book_currency_data);
+            g_signal_connect (G_OBJECT(widget), "toggled",
+                              G_CALLBACK(gnc_option_currency_accounting_non_book_cb),
+                              book_currency_data);
         }
-        gtk_box_pack_start (GTK_BOX (vbox), table, TRUE, TRUE, 0);
+        gtk_box_pack_start (GTK_BOX(vbox), table, TRUE, TRUE, 0);
 
         if (label)
             free (label);
@@ -1390,45 +1373,42 @@ gnc_option_create_currency_accounting_widget (char *name, GNCOption *option)
 }
 
 static void
-gnc_option_account_cb(GtkTreeSelection *selection, gpointer data)
+gnc_option_account_cb (GtkTreeSelection *selection, gpointer data)
 {
     GNCOption *option = data;
-    GtkTreeView *tree_view;
-
-    tree_view = gtk_tree_selection_get_tree_view(selection);
-
-    gnc_option_changed_widget_cb(GTK_WIDGET(tree_view), option);
+    GtkTreeView *tree_view = gtk_tree_selection_get_tree_view (selection);
+    gnc_option_changed_widget_cb (GTK_WIDGET(tree_view), option);
 }
 
 static void
-gnc_option_account_select_all_cb(GtkWidget *widget, gpointer data)
+gnc_option_account_select_all_cb (GtkWidget *widget, gpointer data)
 {
     GNCOption *option = data;
     GncTreeViewAccount *tree_view;
     GtkTreeSelection *selection;
 
     tree_view = GNC_TREE_VIEW_ACCOUNT(gnc_option_get_gtk_widget (option));
-    gtk_tree_view_expand_all(GTK_TREE_VIEW(tree_view));
-    selection = gtk_tree_view_get_selection(GTK_TREE_VIEW(tree_view));
-    gtk_tree_selection_select_all(selection);
-    gnc_option_changed_widget_cb(widget, option);
+    gtk_tree_view_expand_all (GTK_TREE_VIEW(tree_view));
+    selection = gtk_tree_view_get_selection (GTK_TREE_VIEW(tree_view));
+    gtk_tree_selection_select_all (selection);
+    gnc_option_changed_widget_cb (widget, option);
 }
 
 static void
-gnc_option_account_clear_all_cb(GtkWidget *widget, gpointer data)
+gnc_option_account_clear_all_cb (GtkWidget *widget, gpointer data)
 {
     GNCOption *option = data;
     GncTreeViewAccount *tree_view;
     GtkTreeSelection *selection;
 
     tree_view = GNC_TREE_VIEW_ACCOUNT(gnc_option_get_gtk_widget (option));
-    selection = gtk_tree_view_get_selection(GTK_TREE_VIEW(tree_view));
-    gtk_tree_selection_unselect_all(selection);
-    gnc_option_changed_widget_cb(widget, option);
+    selection = gtk_tree_view_get_selection (GTK_TREE_VIEW(tree_view));
+    gtk_tree_selection_unselect_all (selection);
+    gnc_option_changed_widget_cb (widget, option);
 }
 
 static void
-gnc_option_account_select_children_cb(GtkWidget *widget, gpointer data)
+gnc_option_account_select_children_cb (GtkWidget *widget, gpointer data)
 {
     GNCOption *option = data;
     GncTreeViewAccount *tree_view;
@@ -1444,7 +1424,7 @@ gnc_option_account_select_children_cb(GtkWidget *widget, gpointer data)
 }
 
 static GtkWidget *
-gnc_option_create_account_widget(GNCOption *option, char *name)
+gnc_option_create_account_widget (GNCOption *option, char *name)
 {
     gboolean multiple_selection;
     GtkWidget *scroll_win;
@@ -1456,15 +1436,15 @@ gnc_option_create_account_widget(GNCOption *option, char *name)
     GList *acct_type_list;
     GtkTreeSelection *selection;
 
-    multiple_selection = gnc_option_multiple_selection(option);
-    acct_type_list = gnc_option_get_account_type_list(option);
+    multiple_selection = gnc_option_multiple_selection (option);
+    acct_type_list = gnc_option_get_account_type_list (option);
 
-    frame = gtk_frame_new(name);
+    frame = gtk_frame_new (name);
 
     vbox = gtk_box_new (GTK_ORIENTATION_VERTICAL, 0);
-    gtk_box_set_homogeneous (GTK_BOX (vbox), FALSE);
+    gtk_box_set_homogeneous (GTK_BOX(vbox), FALSE);
 
-    gtk_container_add(GTK_CONTAINER(frame), vbox);
+    gtk_container_add (GTK_CONTAINER(frame), vbox);
 
     tree = GTK_WIDGET(gnc_tree_view_account_new (FALSE));
     gtk_tree_view_set_headers_visible (GTK_TREE_VIEW(tree), FALSE);
@@ -1480,7 +1460,7 @@ gnc_option_create_account_widget(GNCOption *option, char *name)
         AccountViewInfo avi;
         int i;
 
-        gnc_tree_view_account_get_view_info (GNC_TREE_VIEW_ACCOUNT (tree), &avi);
+        gnc_tree_view_account_get_view_info (GNC_TREE_VIEW_ACCOUNT(tree), &avi);
 
         for (i = 0; i < NUM_ACCOUNT_TYPES; i++)
             avi.include_type[i] = FALSE;
@@ -1488,11 +1468,11 @@ gnc_option_create_account_widget(GNCOption *option, char *name)
 
         for (node = acct_type_list; node; node = node->next)
         {
-            GNCAccountType type = GPOINTER_TO_INT (node->data);
+            GNCAccountType type = GPOINTER_TO_INT(node->data);
             avi.include_type[type] = TRUE;
         }
 
-        gnc_tree_view_account_set_view_info (GNC_TREE_VIEW_ACCOUNT (tree), &avi);
+        gnc_tree_view_account_set_view_info (GNC_TREE_VIEW_ACCOUNT(tree), &avi);
         g_list_free (acct_type_list);
     }
     else
@@ -1500,57 +1480,57 @@ gnc_option_create_account_widget(GNCOption *option, char *name)
         AccountViewInfo avi;
         int i;
 
-        gnc_tree_view_account_get_view_info (GNC_TREE_VIEW_ACCOUNT (tree), &avi);
+        gnc_tree_view_account_get_view_info (GNC_TREE_VIEW_ACCOUNT(tree), &avi);
 
         for (i = 0; i < NUM_ACCOUNT_TYPES; i++)
             avi.include_type[i] = TRUE;
         avi.show_hidden = FALSE;
-        gnc_tree_view_account_set_view_info (GNC_TREE_VIEW_ACCOUNT (tree), &avi);
+        gnc_tree_view_account_set_view_info (GNC_TREE_VIEW_ACCOUNT(tree), &avi);
     }
 
-    scroll_win = gtk_scrolled_window_new(NULL, NULL);
-    gtk_scrolled_window_set_policy(GTK_SCROLLED_WINDOW(scroll_win),
-                                   GTK_POLICY_AUTOMATIC,
-                                   GTK_POLICY_AUTOMATIC);
+    scroll_win = gtk_scrolled_window_new (NULL, NULL);
+    gtk_scrolled_window_set_policy (GTK_SCROLLED_WINDOW(scroll_win),
+                                    GTK_POLICY_AUTOMATIC,
+                                    GTK_POLICY_AUTOMATIC);
 
-    gtk_box_pack_start(GTK_BOX(vbox), scroll_win, TRUE, TRUE, 0);
-    gtk_container_set_border_width(GTK_CONTAINER(scroll_win), 5);
-    gtk_container_add(GTK_CONTAINER(scroll_win), tree);
+    gtk_box_pack_start (GTK_BOX(vbox), scroll_win, TRUE, TRUE, 0);
+    gtk_container_set_border_width (GTK_CONTAINER(scroll_win), 5);
+    gtk_container_add (GTK_CONTAINER(scroll_win), tree);
 
     bbox = gtk_button_box_new (GTK_ORIENTATION_HORIZONTAL);
-    gtk_button_box_set_layout(GTK_BUTTON_BOX(bbox), GTK_BUTTONBOX_SPREAD);
-    gtk_box_pack_start(GTK_BOX(vbox), bbox, FALSE, FALSE, 10);
+    gtk_button_box_set_layout (GTK_BUTTON_BOX(bbox), GTK_BUTTONBOX_SPREAD);
+    gtk_box_pack_start (GTK_BOX(vbox), bbox, FALSE, FALSE, 10);
 
     if (multiple_selection)
     {
-        button = gtk_button_new_with_label(_("Select All"));
-        gtk_box_pack_start(GTK_BOX(bbox), button, FALSE, FALSE, 0);
-        gtk_widget_set_tooltip_text(button, _("Select all accounts."));
+        button = gtk_button_new_with_label (_("Select All"));
+        gtk_box_pack_start (GTK_BOX(bbox), button, FALSE, FALSE, 0);
+        gtk_widget_set_tooltip_text (button, _("Select all accounts."));
 
-        g_signal_connect(G_OBJECT(button), "clicked",
-                         G_CALLBACK(gnc_option_account_select_all_cb), option);
+        g_signal_connect (G_OBJECT(button), "clicked",
+                          G_CALLBACK(gnc_option_account_select_all_cb), option);
 
-        button = gtk_button_new_with_label(_("Clear All"));
-        gtk_box_pack_start(GTK_BOX(bbox), button, FALSE, FALSE, 0);
-        gtk_widget_set_tooltip_text(button, _("Clear the selection and unselect all accounts."));
+        button = gtk_button_new_with_label (_("Clear All"));
+        gtk_box_pack_start (GTK_BOX(bbox), button, FALSE, FALSE, 0);
+        gtk_widget_set_tooltip_text (button, _("Clear the selection and unselect all accounts."));
 
-        g_signal_connect(G_OBJECT(button), "clicked",
-                         G_CALLBACK(gnc_option_account_clear_all_cb), option);
+        g_signal_connect (G_OBJECT(button), "clicked",
+                          G_CALLBACK(gnc_option_account_clear_all_cb), option);
 
-        button = gtk_button_new_with_label(_("Select Children"));
-        gtk_box_pack_start(GTK_BOX(bbox), button, FALSE, FALSE, 0);
-        gtk_widget_set_tooltip_text(button, _("Select all descendents of selected account."));
+        button = gtk_button_new_with_label (_("Select Children"));
+        gtk_box_pack_start (GTK_BOX(bbox), button, FALSE, FALSE, 0);
+        gtk_widget_set_tooltip_text (button, _("Select all descendents of selected account."));
 
-        g_signal_connect(G_OBJECT(button), "clicked",
-                         G_CALLBACK(gnc_option_account_select_children_cb), option);
+        g_signal_connect (G_OBJECT(button), "clicked",
+                          G_CALLBACK(gnc_option_account_select_children_cb), option);
     }
 
-    button = gtk_button_new_with_label(_("Select Default"));
-    gtk_box_pack_start(GTK_BOX(bbox), button, FALSE, FALSE, 0);
-    gtk_widget_set_tooltip_text(button, _("Select the default account selection."));
+    button = gtk_button_new_with_label (_("Select Default"));
+    gtk_box_pack_start (GTK_BOX(bbox), button, FALSE, FALSE, 0);
+    gtk_widget_set_tooltip_text (button, _("Select the default account selection."));
 
-    g_signal_connect(G_OBJECT(button), "clicked",
-                     G_CALLBACK(gnc_option_default_cb), option);
+    g_signal_connect (G_OBJECT(button), "clicked",
+                      G_CALLBACK(gnc_option_default_cb), option);
 
     gtk_widget_set_margin_start (GTK_WIDGET(bbox), 6);
     gtk_widget_set_margin_end (GTK_WIDGET(bbox), 6);
@@ -1560,16 +1540,16 @@ gnc_option_create_account_widget(GNCOption *option, char *name)
         /* Put the "Show hidden" checkbox on a separate line since the 4 buttons make
            the dialog too wide. */
         bbox = gtk_button_box_new (GTK_ORIENTATION_HORIZONTAL);
-        gtk_button_box_set_layout(GTK_BUTTON_BOX(bbox), GTK_BUTTONBOX_START);
-        gtk_box_pack_start(GTK_BOX(vbox), bbox, FALSE, FALSE, 0);
+        gtk_button_box_set_layout (GTK_BUTTON_BOX(bbox), GTK_BUTTONBOX_START);
+        gtk_box_pack_start (GTK_BOX(vbox), bbox, FALSE, FALSE, 0);
     }
 
-    button = gtk_check_button_new_with_label(_("Show Hidden Accounts"));
-    gtk_box_pack_start(GTK_BOX(bbox), button, FALSE, FALSE, 0);
-    gtk_widget_set_tooltip_text(button, _("Show accounts that have been marked hidden."));
-    gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(button), FALSE);
-    g_signal_connect(G_OBJECT(button), "toggled",
-                     G_CALLBACK(gnc_option_show_hidden_toggled_cb), option);
+    button = gtk_check_button_new_with_label (_("Show Hidden Accounts"));
+    gtk_box_pack_start (GTK_BOX(bbox), button, FALSE, FALSE, 0);
+    gtk_widget_set_tooltip_text (button, _("Show accounts that have been marked hidden."));
+    gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON(button), FALSE);
+    g_signal_connect (G_OBJECT(button), "toggled",
+                      G_CALLBACK(gnc_option_show_hidden_toggled_cb), option);
 
     gnc_option_set_widget (option, tree);
 
@@ -1577,43 +1557,41 @@ gnc_option_create_account_widget(GNCOption *option, char *name)
 }
 
 static void
-gnc_option_list_changed_cb(GtkTreeSelection *selection,
-                           GNCOption *option)
+gnc_option_list_changed_cb (GtkTreeSelection *selection,
+                            GNCOption *option)
 {
-    GtkTreeView *view;
-
-    view = gtk_tree_selection_get_tree_view(selection);
-    gnc_option_changed_widget_cb(GTK_WIDGET(view), option);
+    GtkTreeView *view = gtk_tree_selection_get_tree_view (selection);
+    gnc_option_changed_widget_cb (GTK_WIDGET(view), option);
 }
 
 static void
-gnc_option_list_select_all_cb(GtkWidget *widget, gpointer data)
+gnc_option_list_select_all_cb (GtkWidget *widget, gpointer data)
 {
     GNCOption *option = data;
     GtkTreeView *view;
     GtkTreeSelection *selection;
 
     view = GTK_TREE_VIEW(gnc_option_get_gtk_widget (option));
-    selection = gtk_tree_view_get_selection(view);
-    gtk_tree_selection_select_all(selection);
-    gnc_option_changed_widget_cb(GTK_WIDGET(view), option);
+    selection = gtk_tree_view_get_selection (view);
+    gtk_tree_selection_select_all (selection);
+    gnc_option_changed_widget_cb (GTK_WIDGET(view), option);
 }
 
 static void
-gnc_option_list_clear_all_cb(GtkWidget *widget, gpointer data)
+gnc_option_list_clear_all_cb (GtkWidget *widget, gpointer data)
 {
     GNCOption *option = data;
     GtkTreeView *view;
     GtkTreeSelection *selection;
 
     view = GTK_TREE_VIEW(gnc_option_get_gtk_widget (option));
-    selection = gtk_tree_view_get_selection(view);
-    gtk_tree_selection_unselect_all(selection);
-    gnc_option_changed_widget_cb(GTK_WIDGET(view), option);
+    selection = gtk_tree_view_get_selection (view);
+    gtk_tree_selection_unselect_all (selection);
+    gnc_option_changed_widget_cb (GTK_WIDGET(view), option);
 }
 
 static GtkWidget *
-gnc_option_create_list_widget(GNCOption *option, char *name)
+gnc_option_create_list_widget (GNCOption *option, char *name)
 {
     GtkListStore *store;
     GtkTreeView *view;
@@ -1629,66 +1607,66 @@ gnc_option_create_list_widget(GNCOption *option, char *name)
     gint num_values;
     gint i;
 
-    frame = gtk_frame_new(name);
+    frame = gtk_frame_new (name);
     hbox = gtk_box_new (GTK_ORIENTATION_HORIZONTAL, 0);
-    gtk_box_set_homogeneous (GTK_BOX (hbox), FALSE);
-    gtk_container_add(GTK_CONTAINER(frame), hbox);
-
-    store = gtk_list_store_new(1, G_TYPE_STRING);
-    view = GTK_TREE_VIEW(gtk_tree_view_new_with_model(GTK_TREE_MODEL(store)));
-    g_object_unref(store);
-    renderer = gtk_cell_renderer_text_new();
-    column = gtk_tree_view_column_new_with_attributes("", renderer,
-             "text", 0,
-             NULL);
-    gtk_tree_view_append_column(view, column);
-    gtk_tree_view_set_headers_visible(view, FALSE);
-
-    num_values = gnc_option_num_permissible_values(option);
+    gtk_box_set_homogeneous (GTK_BOX(hbox), FALSE);
+    gtk_container_add (GTK_CONTAINER(frame), hbox);
+
+    store = gtk_list_store_new (1, G_TYPE_STRING);
+    view = GTK_TREE_VIEW(gtk_tree_view_new_with_model (GTK_TREE_MODEL(store)));
+    g_object_unref (store);
+    renderer = gtk_cell_renderer_text_new ();
+    column = gtk_tree_view_column_new_with_attributes ("", renderer,
+                                                       "text", 0,
+                                                       NULL);
+    gtk_tree_view_append_column (view, column);
+    gtk_tree_view_set_headers_visible (view, FALSE);
+
+    num_values = gnc_option_num_permissible_values (option);
     for (i = 0; i < num_values; i++)
     {
         gchar *raw_string, *string;
 
-        raw_string = gnc_option_permissible_value_name(option, i);
+        raw_string = gnc_option_permissible_value_name (option, i);
         string = (raw_string && *raw_string) ? _(raw_string) : "";
-        gtk_list_store_append(store, &iter);
-        gtk_list_store_set(store, &iter,
-                           0, string ? string : "",
-                           -1);
-        g_free(raw_string);
+        gtk_list_store_append (store, &iter);
+        gtk_list_store_set (store, &iter,
+                            0, string ? string : "",
+                            -1);
+        g_free (raw_string);
     }
 
-    gtk_box_pack_start(GTK_BOX(hbox), GTK_WIDGET(view), FALSE, FALSE, 0);
+    gtk_box_pack_start (GTK_BOX(hbox), GTK_WIDGET(view), FALSE, FALSE, 0);
 
-    selection = gtk_tree_view_get_selection(view);
-    gtk_tree_selection_set_mode(selection, GTK_SELECTION_MULTIPLE);
-    g_signal_connect(selection, "changed",
-                     G_CALLBACK(gnc_option_list_changed_cb), option);
+    selection = gtk_tree_view_get_selection (view);
+    gtk_tree_selection_set_mode (selection, GTK_SELECTION_MULTIPLE);
+    g_signal_connect (selection, "changed",
+                      G_CALLBACK(gnc_option_list_changed_cb), option);
 
     bbox = gtk_button_box_new (GTK_ORIENTATION_VERTICAL);
-    gtk_button_box_set_layout(GTK_BUTTON_BOX(bbox), GTK_BUTTONBOX_SPREAD);
-    gtk_box_pack_end(GTK_BOX(hbox), bbox, FALSE, FALSE, 0);
+    gtk_button_box_set_layout (GTK_BUTTON_BOX(bbox), GTK_BUTTONBOX_SPREAD);
+    gtk_box_pack_end (GTK_BOX(hbox), bbox, FALSE, FALSE, 0);
 
-    button = gtk_button_new_with_label(_("Select All"));
-    gtk_box_pack_start(GTK_BOX(bbox), button, FALSE, FALSE, 0);
-    gtk_widget_set_tooltip_text(button, _("Select all entries."));
+    button = gtk_button_new_with_label (_("Select All"));
+    gtk_box_pack_start (GTK_BOX(bbox), button, FALSE, FALSE, 0);
+    gtk_widget_set_tooltip_text (button, _("Select all entries."));
 
-    g_signal_connect(G_OBJECT(button), "clicked",
-                     G_CALLBACK(gnc_option_list_select_all_cb), option);
+    g_signal_connect (G_OBJECT(button), "clicked",
+                      G_CALLBACK(gnc_option_list_select_all_cb), option);
 
-    button = gtk_button_new_with_label(_("Clear All"));
-    gtk_box_pack_start(GTK_BOX(bbox), button, FALSE, FALSE, 0);
-    gtk_widget_set_tooltip_text(button, _("Clear the selection and unselect all entries."));
+    button = gtk_button_new_with_label (_("Clear All"));
+    gtk_box_pack_start (GTK_BOX(bbox), button, FALSE, FALSE, 0);
+    gtk_widget_set_tooltip_text (button, _("Clear the selection and unselect all entries."));
 
-    g_signal_connect(G_OBJECT(button), "clicked",
-                     G_CALLBACK(gnc_option_list_clear_all_cb), option);
+    g_signal_connect (G_OBJECT(button), "clicked",
+                      G_CALLBACK(gnc_option_list_clear_all_cb), option);
 
-    button = gtk_button_new_with_label(_("Select Default"));
-    gtk_box_pack_start(GTK_BOX(bbox), button, FALSE, FALSE, 0);
-    gtk_widget_set_tooltip_text(button, _("Select the default selection."));
+    button = gtk_button_new_with_label (_("Select Default"));
+    gtk_box_pack_start (GTK_BOX(bbox), button, FALSE, FALSE, 0);
+    gtk_widget_set_tooltip_text (button, _("Select the default selection."));
 
-    g_signal_connect(G_OBJECT(button), "clicked",
-                     G_CALLBACK(gnc_option_default_cb), option);
+    g_signal_connect (G_OBJECT(button), "clicked",
+                      G_CALLBACK(gnc_option_default_cb), option);
 
     g_object_set (G_OBJECT(hbox), "margin", 3, NULL);
 
@@ -1698,19 +1676,19 @@ gnc_option_create_list_widget(GNCOption *option, char *name)
 }
 
 static void
-gnc_option_color_changed_cb(GtkColorButton *color_button, GNCOption *option)
+gnc_option_color_changed_cb (GtkColorButton *color_button, GNCOption *option)
 {
-    gnc_option_changed_widget_cb(GTK_WIDGET(color_button), option);
+    gnc_option_changed_widget_cb (GTK_WIDGET(color_button), option);
 }
 
 static void
-gnc_option_font_changed_cb(GtkFontButton *font_button, GNCOption *option)
+gnc_option_font_changed_cb (GtkFontButton *font_button, GNCOption *option)
 {
-    gnc_option_changed_widget_cb(GTK_WIDGET(font_button), option);
+    gnc_option_changed_widget_cb (GTK_WIDGET(font_button), option);
 }
 
 static void
-gnc_option_set_ui_widget(GNCOption *option, GtkGrid *page_box, gint grid_row)
+gnc_option_set_ui_widget (GNCOption *option, GtkGrid *page_box, gint grid_row)
 {
     GtkWidget *enclosing = NULL;
     GtkWidget *value = NULL;
@@ -1722,8 +1700,8 @@ gnc_option_set_ui_widget(GNCOption *option, GtkGrid *page_box, gint grid_row)
     GtkLabel *name_label;
 
     ENTER("option %p(%s), box %p",
-          option, gnc_option_name(option), page_box);
-    type = gnc_option_type(option);
+          option, gnc_option_name (option), page_box);
+    type = gnc_option_type (option);
     if (type == NULL)
     {
         LEAVE("bad type");
@@ -1735,13 +1713,13 @@ gnc_option_set_ui_widget(GNCOption *option, GtkGrid *page_box, gint grid_row)
         return;
     }
 
-    raw_name = gnc_option_name(option);
+    raw_name = gnc_option_name (option);
     if (raw_name && *raw_name)
         name = _(raw_name);
     else
         name = NULL;
 
-    raw_documentation = gnc_option_documentation(option);
+    raw_documentation = gnc_option_documentation (option);
     if (raw_documentation && *raw_documentation)
         documentation = _(raw_documentation);
     else
@@ -1763,7 +1741,7 @@ gnc_option_set_ui_widget(GNCOption *option, GtkGrid *page_box, gint grid_row)
     }
 
     /* attach the name label to the first column of the grid and align to the end
-     * if option is a check button, do not add a label as we are using the biult
+     * if option is a check button, do not add a label as we are using the built
      * in one */
     if (!GTK_IS_CHECK_BUTTON(value))
         gtk_grid_attach (GTK_GRID(page_box), GTK_WIDGET(name_label),
@@ -1776,9 +1754,9 @@ gnc_option_set_ui_widget(GNCOption *option, GtkGrid *page_box, gint grid_row)
     {
         /* Pack option widget into an extra eventbox because otherwise the
            "documentation" tooltip is not displayed. */
-        GtkWidget *eventbox = gtk_event_box_new();
+        GtkWidget *eventbox = gtk_event_box_new ();
 
-        gtk_container_add (GTK_CONTAINER (eventbox), enclosing);
+        gtk_container_add (GTK_CONTAINER(eventbox), enclosing);
 
         /* attach the option widget to the second column of the grid */
         gtk_grid_attach (GTK_GRID(page_box), eventbox,
@@ -1789,27 +1767,27 @@ gnc_option_set_ui_widget(GNCOption *option, GtkGrid *page_box, gint grid_row)
     }
 
     if (value != NULL)
-        gtk_widget_set_tooltip_text(value, documentation);
+        gtk_widget_set_tooltip_text (value, documentation);
 
     if (raw_name != NULL)
-        free(raw_name);
+        free (raw_name);
     if (raw_documentation != NULL)
-        free(raw_documentation);
-    free(type);
+        free (raw_documentation);
+    free (type);
     LEAVE(" ");
 }
 
 static void
-gnc_options_dialog_add_option(GtkWidget *page,
-                              GNCOption *option, gint row)
+gnc_options_dialog_add_option (GtkWidget *page,
+                               GNCOption *option, gint row)
 {
     g_object_set_data (G_OBJECT(page), "options-grid-row", GINT_TO_POINTER(row));
-    gnc_option_set_ui_widget(option, GTK_GRID(page), row);
+    gnc_option_set_ui_widget (option, GTK_GRID(page), row);
 }
 
 static gint
-gnc_options_dialog_append_page(GNCOptionWin * propertybox,
-                               GNCOptionSection *section)
+gnc_options_dialog_append_page (GNCOptionWin * propertybox,
+                                GNCOptionSection *section)
 {
     GNCOption *option;
     GtkWidget *page_label;
@@ -1828,106 +1806,107 @@ gnc_options_dialog_append_page(GNCOptionWin * propertybox,
     gint i, page_count, name_offset;
     gboolean advanced;
 
-    name = gnc_option_section_name(section);
+    name = gnc_option_section_name (section);
     if (!name)
         return -1;
 
-    if (strncmp(name, "__", 2) == 0)
+    if (strncmp (name, "__", 2) == 0)
         return -1;
-    advanced = (strncmp(name, "_+", 2) == 0);
+    advanced = (strncmp (name, "_+", 2) == 0);
     name_offset = (advanced) ? 2 : 0;
-    page_label = gtk_label_new(_(name + name_offset));
+    page_label = gtk_label_new (_(name + name_offset));
     PINFO("Page_label is %s", _(name + name_offset));
-    gtk_widget_show(page_label);
+    gtk_widget_show (page_label);
 
     /* Build this options page */
     page_content_box = gtk_box_new (GTK_ORIENTATION_VERTICAL, 2);
     gtk_widget_set_name (page_content_box, "page-content-box");
     gtk_box_set_homogeneous (GTK_BOX (page_content_box), FALSE);
 
-    gtk_container_set_border_width(GTK_CONTAINER(page_content_box), 12);
+    gtk_container_set_border_width (GTK_CONTAINER(page_content_box), 12);
 
-    options_scrolled_win = gtk_scrolled_window_new(NULL, NULL);
-    gtk_box_pack_start(GTK_BOX(page_content_box), options_scrolled_win, TRUE, TRUE, 0);
+    options_scrolled_win = gtk_scrolled_window_new (NULL, NULL);
+    gtk_box_pack_start (GTK_BOX(page_content_box), options_scrolled_win, TRUE, TRUE, 0);
 
     /* Build space for the content - the options box */
-    options_box = gtk_grid_new(); // this will have two columns
+    options_box = gtk_grid_new (); // this will have two columns
     gtk_widget_set_name (options_box, "options-box");
     gtk_grid_set_row_homogeneous (GTK_GRID(options_box), FALSE);
     gtk_grid_set_column_homogeneous (GTK_GRID(options_box), FALSE);
     gtk_grid_set_row_spacing (GTK_GRID(options_box), 6);
     gtk_grid_set_column_spacing (GTK_GRID(options_box), 6);
 
-    gtk_container_set_border_width(GTK_CONTAINER(options_box), 0);
+    gtk_container_set_border_width (GTK_CONTAINER(options_box), 0);
     gtk_container_add (GTK_CONTAINER(options_scrolled_win), GTK_WIDGET(options_box));
-    gtk_scrolled_window_set_policy(GTK_SCROLLED_WINDOW(options_scrolled_win), GTK_POLICY_NEVER, GTK_POLICY_AUTOMATIC);
+    gtk_scrolled_window_set_policy (GTK_SCROLLED_WINDOW(options_scrolled_win),
+                                    GTK_POLICY_NEVER, GTK_POLICY_AUTOMATIC);
 
     /* Create all the options */
-    num_options = gnc_option_section_num_options(section);
+    num_options = gnc_option_section_num_options (section);
     for (i = 0; i < num_options; i++)
     {
-        option = gnc_get_option_section_option(section, i);
-        gnc_options_dialog_add_option(options_box, option, i);
+        option = gnc_get_option_section_option (section, i);
+        gnc_options_dialog_add_option (options_box, option, i);
     }
 
     /* Add a button box at the bottom of the page */
     buttonbox = gtk_button_box_new (GTK_ORIENTATION_HORIZONTAL);
     gtk_button_box_set_layout (GTK_BUTTON_BOX (buttonbox),
                                GTK_BUTTONBOX_EDGE);
-    gtk_container_set_border_width(GTK_CONTAINER (buttonbox), 5);
-    gtk_box_pack_end(GTK_BOX(page_content_box), buttonbox, FALSE, FALSE, 0);
+    gtk_container_set_border_width (GTK_CONTAINER(buttonbox), 5);
+    gtk_box_pack_end (GTK_BOX(page_content_box), buttonbox, FALSE, FALSE, 0);
 
     /* The reset button on each option page */
     reset_button = gtk_button_new_with_label (_("Reset defaults"));
-    gtk_widget_set_tooltip_text(reset_button,
-                                _("Reset all values to their defaults."));
+    gtk_widget_set_tooltip_text (reset_button,
+                                 _("Reset all values to their defaults."));
 
-    g_signal_connect(G_OBJECT(reset_button), "clicked",
-                     G_CALLBACK(gnc_options_dialog_reset_cb), propertybox);
-    g_object_set_data(G_OBJECT(reset_button), "section", section);
-    gtk_box_pack_end(GTK_BOX(buttonbox), reset_button, FALSE, FALSE, 0);
-    gtk_widget_show_all(page_content_box);
-    gtk_notebook_append_page(GTK_NOTEBOOK(propertybox->notebook),
-                             page_content_box, page_label);
+    g_signal_connect (G_OBJECT(reset_button), "clicked",
+                      G_CALLBACK(gnc_options_dialog_reset_cb), propertybox);
+    g_object_set_data (G_OBJECT(reset_button), "section", section);
+    gtk_box_pack_end (GTK_BOX(buttonbox), reset_button, FALSE, FALSE, 0);
+    gtk_widget_show_all (page_content_box);
+    gtk_notebook_append_page (GTK_NOTEBOOK(propertybox->notebook),
+                              page_content_box, page_label);
 
     /* Switch to selection from a list if the page count threshold is reached */
-    page_count = gtk_notebook_page_num(GTK_NOTEBOOK(propertybox->notebook),
-                                       page_content_box);
+    page_count = gtk_notebook_page_num (GTK_NOTEBOOK(propertybox->notebook),
+                                        page_content_box);
 
     if (propertybox->page_list_view)
     {
         /* Build the matching list item for selecting from large page sets */
         view = GTK_TREE_VIEW(propertybox->page_list_view);
-        list = GTK_LIST_STORE(gtk_tree_view_get_model(view));
+        list = GTK_LIST_STORE(gtk_tree_view_get_model (view));
 
         PINFO("Page name is %s and page_count is %d", name, page_count);
-        gtk_list_store_append(list, &iter);
-        gtk_list_store_set(list, &iter,
-                           PAGE_NAME, _(name),
-                           PAGE_INDEX, page_count,
-                           -1);
+        gtk_list_store_append (list, &iter);
+        gtk_list_store_set (list, &iter,
+                            PAGE_NAME, _(name),
+                            PAGE_INDEX, page_count,
+                            -1);
 
         if (page_count > MAX_TAB_COUNT - 1)   /* Convert 1-based -> 0-based */
         {
-            gtk_widget_show(propertybox->page_list);
-            gtk_notebook_set_show_tabs(GTK_NOTEBOOK(propertybox->notebook), FALSE);
-            gtk_notebook_set_show_border(GTK_NOTEBOOK(propertybox->notebook), FALSE);
+            gtk_widget_show (propertybox->page_list);
+            gtk_notebook_set_show_tabs (GTK_NOTEBOOK(propertybox->notebook), FALSE);
+            gtk_notebook_set_show_border (GTK_NOTEBOOK(propertybox->notebook), FALSE);
         }
         else
-            gtk_widget_hide(propertybox->page_list);
+            gtk_widget_hide (propertybox->page_list);
 
         /* Tweak "advanced" pages for later handling. */
         if (advanced)
         {
-            notebook_page = gtk_notebook_get_nth_page(GTK_NOTEBOOK(propertybox->notebook),
-                            page_count);
+            notebook_page = gtk_notebook_get_nth_page (GTK_NOTEBOOK(propertybox->notebook),
+                                                       page_count);
 
-            g_object_set_data(G_OBJECT(notebook_page), "listitem", listitem);
-            g_object_set_data(G_OBJECT(notebook_page), "advanced",
-                              GINT_TO_POINTER(advanced));
+            g_object_set_data (G_OBJECT(notebook_page), "listitem", listitem);
+            g_object_set_data (G_OBJECT(notebook_page), "advanced",
+                               GINT_TO_POINTER(advanced));
         }
     }
-    return(page_count);
+    return (page_count);
 }
 
 /********************************************************************\
@@ -1979,8 +1958,8 @@ gnc_options_dialog_build_contents_full (GNCOptionWin *propertybox,
 
     propertybox->option_db = odb;
 
-    num_sections = gnc_option_db_num_sections(odb);
-    default_section_name = gnc_option_db_get_default_section(odb);
+    num_sections = gnc_option_db_num_sections (odb);
+    default_section_name = gnc_option_db_get_default_section (odb);
 
     PINFO("Default Section name is %s", default_section_name);
 
@@ -1988,88 +1967,88 @@ gnc_options_dialog_build_contents_full (GNCOptionWin *propertybox,
     {
         const char *section_name;
 
-        section = gnc_option_db_get_section(odb, i);
-        page = gnc_options_dialog_append_page(propertybox, section);
+        section = gnc_option_db_get_section (odb, i);
+        page = gnc_options_dialog_append_page (propertybox, section);
 
-        section_name = gnc_option_section_name(section);
-        if (g_strcmp0(section_name, default_section_name) == 0)
+        section_name = gnc_option_section_name (section);
+        if (g_strcmp0 (section_name, default_section_name) == 0)
             default_page = page;
     }
 
     if (default_section_name != NULL)
-        free(default_section_name);
+        free (default_section_name);
 
     /* call each option widget changed callbacks once at this point,
      * now that all options widgets exist.
      */
     for (i = 0; i < num_sections; i++)
     {
-        section = gnc_option_db_get_section(odb, i);
+        section = gnc_option_db_get_section (odb, i);
 
-        for (j = 0; j < gnc_option_section_num_options(section); j++)
+        for (j = 0; j < gnc_option_section_num_options (section); j++)
         {
             // setting TRUE will clear the changed flag after proc
-            gnc_option_call_option_widget_changed_proc(
+            gnc_option_call_option_widget_changed_proc (
                 gnc_get_option_section_option(section, j), TRUE);
         }
     }
 
-    gtk_notebook_popup_enable(GTK_NOTEBOOK(propertybox->notebook));
+    gtk_notebook_popup_enable (GTK_NOTEBOOK(propertybox->notebook));
     if (default_page >= 0)
     {
         /* Find the page list and set the selection to the default page */
-        GtkTreeSelection* selection = gtk_tree_view_get_selection(GTK_TREE_VIEW(propertybox->page_list_view));
+        GtkTreeSelection* selection = gtk_tree_view_get_selection (GTK_TREE_VIEW(propertybox->page_list_view));
         GtkTreeIter iter;
         GtkTreeModel *model;
 
-        model = gtk_tree_view_get_model(GTK_TREE_VIEW(propertybox->page_list_view));
-        gtk_tree_model_iter_nth_child(model, &iter, NULL, default_page);
+        model = gtk_tree_view_get_model (GTK_TREE_VIEW(propertybox->page_list_view));
+        gtk_tree_model_iter_nth_child (model, &iter, NULL, default_page);
         gtk_tree_selection_select_iter (selection, &iter);
-        gtk_notebook_set_current_page(GTK_NOTEBOOK(propertybox->notebook), default_page);
+        gtk_notebook_set_current_page (GTK_NOTEBOOK(propertybox->notebook), default_page);
     }
-    gnc_options_dialog_changed_internal(propertybox->window, FALSE);
+    gnc_options_dialog_changed_internal (propertybox->window, FALSE);
     if (show_dialog)
-        gtk_widget_show(propertybox->window);
+        gtk_widget_show (propertybox->window);
 }
 
 GtkWidget *
-gnc_options_dialog_widget(GNCOptionWin * win)
+gnc_options_dialog_widget (GNCOptionWin * win)
 {
     return win->window;
 }
 
 GtkWidget *
-gnc_options_page_list(GNCOptionWin * win)
+gnc_options_page_list (GNCOptionWin * win)
 {
     return win->page_list;
 }
 
 GtkWidget *
-gnc_options_dialog_notebook(GNCOptionWin * win)
+gnc_options_dialog_notebook (GNCOptionWin * win)
 {
     return win->notebook;
 }
 
 static void
-gnc_options_dialog_help_button_cb(GtkWidget * widget, GNCOptionWin *win)
+gnc_options_dialog_help_button_cb (GtkWidget * widget, GNCOptionWin *win)
 {
     if (win->help_cb)
         (win->help_cb)(win, win->help_cb_data);
 }
 
 static void
-gnc_options_dialog_cancel_button_cb(GtkWidget * widget, GNCOptionWin *win)
+gnc_options_dialog_cancel_button_cb (GtkWidget * widget, GNCOptionWin *win)
 {
     gnc_save_window_size (GNC_PREFS_GROUP, GTK_WINDOW(win->window));
 
     if (win->close_cb)
         (win->close_cb)(win, win->close_cb_data);
     else
-        gtk_widget_hide(win->window);
+        gtk_widget_hide (win->window);
 }
 
 static void
-gnc_options_dialog_apply_button_cb(GtkWidget * widget, GNCOptionWin *win)
+gnc_options_dialog_apply_button_cb (GtkWidget * widget, GNCOptionWin *win)
 {
     GNCOptionWinCallback close_cb = win->close_cb;
 
@@ -2082,7 +2061,7 @@ gnc_options_dialog_apply_button_cb(GtkWidget * widget, GNCOptionWin *win)
 }
 
 static void
-gnc_options_dialog_ok_button_cb(GtkWidget * widget, GNCOptionWin *win)
+gnc_options_dialog_ok_button_cb (GtkWidget * widget, GNCOptionWin *win)
 {
     GNCOptionWinCallback close_cb = win->close_cb;
 
@@ -2096,7 +2075,7 @@ gnc_options_dialog_ok_button_cb(GtkWidget * widget, GNCOptionWin *win)
     if (win->close_cb)
         (win->close_cb)(win, win->close_cb_data);
     else
-        gtk_widget_hide(win->window);
+        gtk_widget_hide (win->window);
 }
 
 static void
@@ -2112,7 +2091,9 @@ gnc_options_dialog_destroy_cb (GtkWidget *object, GNCOptionWin *win)
 }
 
 static gboolean
-gnc_options_dialog_window_key_press_cb(GtkWidget *widget, GdkEventKey *event, gpointer data)
+gnc_options_dialog_window_key_press_cb (GtkWidget *widget,
+                                        GdkEventKey *event,
+                                        gpointer data)
 {
     GNCOptionWin *win = data;
 
@@ -2126,7 +2107,7 @@ gnc_options_dialog_window_key_press_cb(GtkWidget *widget, GdkEventKey *event, gp
 }
 
 static void
-gnc_options_dialog_reset_cb(GtkWidget * w, gpointer data)
+gnc_options_dialog_reset_cb (GtkWidget * w, gpointer data)
 {
     GNCOptionWin *win = data;
     GNCOptionSection *section;
@@ -2153,13 +2134,13 @@ gnc_options_dialog_list_select_cb (GtkTreeSelection *selection,
     GtkTreeIter iter;
     gint index = 0;
 
-    if (!gtk_tree_selection_get_selected(selection, &list, &iter))
+    if (!gtk_tree_selection_get_selected (selection, &list, &iter))
         return;
-    gtk_tree_model_get(list, &iter,
-                       PAGE_INDEX, &index,
-                       -1);
+    gtk_tree_model_get (list, &iter,
+                        PAGE_INDEX, &index,
+                        -1);
     PINFO("Index is %d", index);
-    gtk_notebook_set_current_page(GTK_NOTEBOOK(win->notebook), index);
+    gtk_notebook_set_current_page (GTK_NOTEBOOK(win->notebook), index);
 }
 
 void
@@ -2224,9 +2205,9 @@ refresh_handler (GHashTable *changes, gpointer user_data)
  *
  */
 GNCOptionWin *
-gnc_options_dialog_new(gchar *title, GtkWindow *parent)
+gnc_options_dialog_new (gchar *title, GtkWindow *parent)
 {
-    return gnc_options_dialog_new_modal(FALSE, title, NULL, parent);
+    return gnc_options_dialog_new_modal (FALSE, title, NULL, parent);
 }
 
 /* gnc_options_dialog_new_modal:
@@ -2243,9 +2224,9 @@ gnc_options_dialog_new(gchar *title, GtkWindow *parent)
  *     the window stack instead of creating a new dialog.
  */
 GNCOptionWin *
-gnc_options_dialog_new_modal(gboolean modal, gchar *title,
-                             const char *component_class,
-                             GtkWindow *parent)
+gnc_options_dialog_new_modal (gboolean modal, gchar *title,
+                              const char *component_class,
+                              GtkWindow *parent)
 {
     GNCOptionWin *retval;
     GtkBuilder   *builder;
@@ -2253,8 +2234,8 @@ gnc_options_dialog_new_modal(gboolean modal, gchar *title,
     gint component_id;
     GtkWidget    *button;
 
-    retval = g_new0(GNCOptionWin, 1);
-    builder = gtk_builder_new();
+    retval = g_new0 (GNCOptionWin, 1);
+    builder = gtk_builder_new ();
     gnc_builder_add_from_file (builder, "dialog-options.glade", "gnucash_options_window");
     retval->window = GTK_WIDGET(gtk_builder_get_object (builder, "gnucash_options_window"));
     retval->page_list = GTK_WIDGET(gtk_builder_get_object (builder, "page_list_scroll"));
@@ -2274,31 +2255,32 @@ gnc_options_dialog_new_modal(gboolean modal, gchar *title,
 
         view = GTK_TREE_VIEW(retval->page_list_view);
 
-        store = gtk_list_store_new(NUM_COLUMNS, G_TYPE_INT, G_TYPE_STRING);
-        gtk_tree_view_set_model(view, GTK_TREE_MODEL(store));
-        g_object_unref(store);
+        store = gtk_list_store_new (NUM_COLUMNS, G_TYPE_INT, G_TYPE_STRING);
+        gtk_tree_view_set_model (view, GTK_TREE_MODEL(store));
+        g_object_unref (store);
 
-        renderer = gtk_cell_renderer_text_new();
-        column = gtk_tree_view_column_new_with_attributes(_("Page"), renderer,
-                 "text", PAGE_NAME, NULL);
-        gtk_tree_view_append_column(view, column);
+        renderer = gtk_cell_renderer_text_new ();
+        column = gtk_tree_view_column_new_with_attributes (_("Page"), renderer,
+                                                           "text", PAGE_NAME,
+                                                            NULL);
+        gtk_tree_view_append_column (view, column);
 
-        gtk_tree_view_column_set_alignment(column, 0.5);
+        gtk_tree_view_column_set_alignment (column, 0.5);
 
-        selection = gtk_tree_view_get_selection(view);
-        gtk_tree_selection_set_mode(selection, GTK_SELECTION_BROWSE);
+        selection = gtk_tree_view_get_selection (view);
+        gtk_tree_selection_set_mode (selection, GTK_SELECTION_BROWSE);
         g_signal_connect (selection, "changed",
                           G_CALLBACK (gnc_options_dialog_list_select_cb), retval);
     }
 
     button = GTK_WIDGET(gtk_builder_get_object (builder, "helpbutton"));
-        g_signal_connect(button, "clicked", G_CALLBACK(gnc_options_dialog_help_button_cb), retval);
+        g_signal_connect (button, "clicked", G_CALLBACK(gnc_options_dialog_help_button_cb), retval);
     button = GTK_WIDGET(gtk_builder_get_object (builder, "cancelbutton"));
-        g_signal_connect(button, "clicked", G_CALLBACK(gnc_options_dialog_cancel_button_cb), retval);
+        g_signal_connect (button, "clicked", G_CALLBACK(gnc_options_dialog_cancel_button_cb), retval);
     button = GTK_WIDGET(gtk_builder_get_object (builder, "applybutton"));
-        g_signal_connect(button, "clicked", G_CALLBACK(gnc_options_dialog_apply_button_cb), retval);
+        g_signal_connect (button, "clicked", G_CALLBACK(gnc_options_dialog_apply_button_cb), retval);
     button = GTK_WIDGET(gtk_builder_get_object (builder, "okbutton"));
-        g_signal_connect(button, "clicked", G_CALLBACK(gnc_options_dialog_ok_button_cb), retval);
+        g_signal_connect (button, "clicked", G_CALLBACK(gnc_options_dialog_ok_button_cb), retval);
 
     gtk_builder_connect_signals_full (builder, gnc_builder_connect_full_func, retval);
 
@@ -2306,7 +2288,7 @@ gnc_options_dialog_new_modal(gboolean modal, gchar *title,
         gnc_restore_window_size (GNC_PREFS_GROUP, GTK_WINDOW(retval->window), parent);
 
     if (title)
-        gtk_window_set_title(GTK_WINDOW(retval->window), title);
+        gtk_window_set_title (GTK_WINDOW(retval->window), title);
 
     /* modal */
     if (modal == TRUE)
@@ -2319,12 +2301,12 @@ gnc_options_dialog_new_modal(gboolean modal, gchar *title,
 
     /* glade doesn't support a notebook with zero pages */
     hbox = GTK_WIDGET(gtk_builder_get_object (builder, "notebook_placeholder"));
-    retval->notebook = gtk_notebook_new();
+    retval->notebook = gtk_notebook_new ();
 
     gtk_widget_set_vexpand (retval->notebook, TRUE);
 
-    gtk_widget_show(retval->notebook);
-    gtk_box_pack_start(GTK_BOX(hbox), retval->notebook, TRUE, TRUE, 5);
+    gtk_widget_show (retval->notebook);
+    gtk_box_pack_start (GTK_BOX(hbox), retval->notebook, TRUE, TRUE, 5);
 
     retval->component_class =
                 (component_class ? component_class : DIALOG_OPTIONS_CM_CLASS);
@@ -2334,11 +2316,11 @@ gnc_options_dialog_new_modal(gboolean modal, gchar *title,
     gnc_gui_component_set_session (component_id, gnc_get_current_session());
 
     /* Watch account maintenance events only if book option dialog */
-    if (g_strcmp0(retval->component_class, DIALOG_BOOK_OPTIONS_CM_CLASS) == 0)
+    if (g_strcmp0 (retval->component_class, DIALOG_BOOK_OPTIONS_CM_CLASS) == 0)
     {
         gnc_gui_component_watch_entity_type (component_id,
-                                         GNC_ID_ACCOUNT,
-                                         QOF_EVENT_MODIFY | QOF_EVENT_DESTROY);
+                                             GNC_ID_ACCOUNT,
+                                             QOF_EVENT_MODIFY | QOF_EVENT_DESTROY);
     }
 
     g_signal_connect (retval->window, "destroy",
@@ -2347,7 +2329,7 @@ gnc_options_dialog_new_modal(gboolean modal, gchar *title,
     g_signal_connect (retval->window, "key_press_event",
                       G_CALLBACK(gnc_options_dialog_window_key_press_cb), retval);
 
-    g_object_unref(G_OBJECT(builder));
+    g_object_unref (G_OBJECT(builder));
 
     retval->destroyed = FALSE;
     return retval;
@@ -2356,42 +2338,42 @@ gnc_options_dialog_new_modal(gboolean modal, gchar *title,
 /* Creates a new GNCOptionWin structure, but assumes you have your own
    dialog widget you want to plugin */
 GNCOptionWin *
-gnc_options_dialog_new_w_dialog(gchar *title, GtkWidget *window)
+gnc_options_dialog_new_w_dialog (gchar *title, GtkWidget *window)
 {
     GNCOptionWin * retval;
 
-    retval = g_new0(GNCOptionWin, 1);
+    retval = g_new0 (GNCOptionWin, 1);
     retval->window = window;
     return retval;
 }
 
 void
-gnc_options_dialog_set_apply_cb(GNCOptionWin * win, GNCOptionWinCallback cb,
-                                gpointer data)
+gnc_options_dialog_set_apply_cb (GNCOptionWin * win, GNCOptionWinCallback cb,
+                                 gpointer data)
 {
     win->apply_cb = cb;
     win->apply_cb_data = data;
 }
 
 void
-gnc_options_dialog_set_help_cb(GNCOptionWin * win, GNCOptionWinCallback cb,
-                               gpointer data)
+gnc_options_dialog_set_help_cb (GNCOptionWin * win, GNCOptionWinCallback cb,
+                                gpointer data)
 {
     win->help_cb = cb;
     win->help_cb_data = data;
 }
 
 void
-gnc_options_dialog_set_close_cb(GNCOptionWin * win, GNCOptionWinCallback cb,
-                                gpointer data)
+gnc_options_dialog_set_close_cb (GNCOptionWin * win, GNCOptionWinCallback cb,
+                                 gpointer data)
 {
     win->close_cb = cb;
     win->close_cb_data = data;
 }
 
 void
-gnc_options_dialog_set_global_help_cb(GNCOptionWinCallback thunk,
-                                      gpointer cb_data)
+gnc_options_dialog_set_global_help_cb (GNCOptionWinCallback thunk,
+                                       gpointer cb_data)
 {
     global_help_cb = thunk;
     global_help_cb_data = cb_data;
@@ -2399,14 +2381,14 @@ gnc_options_dialog_set_global_help_cb(GNCOptionWinCallback thunk,
 
 /* This is for global program preferences. */
 void
-gnc_options_dialog_destroy(GNCOptionWin * win)
+gnc_options_dialog_destroy (GNCOptionWin * win)
 {
     if (!win) return;
 
-    gnc_unregister_gui_component_by_data(win->component_class, win);
+    gnc_unregister_gui_component_by_data (win->component_class, win);
 
     win->destroyed = TRUE;
-    gtk_widget_destroy(win->window);
+    gtk_widget_destroy (win->window);
 
     win->window = NULL;
     win->notebook = NULL;
@@ -2414,7 +2396,7 @@ gnc_options_dialog_destroy(GNCOptionWin * win)
     win->help_cb = NULL;
     win->component_class = NULL;
 
-    g_free(win);
+    g_free (win);
 }
 
 /*****************************************************************/
@@ -2473,17 +2455,17 @@ gnc_option_set_ui_widget_boolean (GNCOption *option, GtkGrid *page_box,
     GtkWidget *value;
 
     *enclosing = gtk_box_new (GTK_ORIENTATION_HORIZONTAL, 5);
-    gtk_box_set_homogeneous (GTK_BOX (*enclosing), FALSE);
+    gtk_box_set_homogeneous (GTK_BOX(*enclosing), FALSE);
     value = gtk_check_button_new_with_label (gtk_label_get_text (name_label));
 
     gnc_option_set_widget (option, value);
-    gnc_option_set_ui_value(option, FALSE);
+    gnc_option_set_ui_value (option, FALSE);
 
-    g_signal_connect(G_OBJECT(value), "toggled",
-                     G_CALLBACK(gnc_option_changed_widget_cb), option);
+    g_signal_connect (G_OBJECT(value), "toggled",
+                      G_CALLBACK(gnc_option_changed_widget_cb), option);
 
-    gtk_box_pack_start(GTK_BOX(*enclosing), value, FALSE, FALSE, 0);
-    gtk_widget_show_all(*enclosing);
+    gtk_box_pack_start (GTK_BOX(*enclosing), value, FALSE, FALSE, 0);
+    gtk_widget_show_all (*enclosing);
 
     return value;
 }
@@ -2498,20 +2480,20 @@ gnc_option_set_ui_widget_string (GNCOption *option, GtkGrid *page_box,
 
     *enclosing = gtk_box_new (GTK_ORIENTATION_HORIZONTAL, 5);
     gtk_widget_set_hexpand (GTK_WIDGET(*enclosing), TRUE);
-    gtk_box_set_homogeneous (GTK_BOX (*enclosing), FALSE);
-    value = gtk_entry_new();
+    gtk_box_set_homogeneous (GTK_BOX(*enclosing), FALSE);
+    value = gtk_entry_new ();
 
     gnc_option_set_widget (option, value);
-    gnc_option_set_ui_value(option, FALSE);
+    gnc_option_set_ui_value (option, FALSE);
 
     if (gtk_widget_get_direction (GTK_WIDGET(value)) == GTK_TEXT_DIR_RTL)
         gtk_entry_set_alignment (GTK_ENTRY(value), 1.0);
 
-    g_signal_connect(G_OBJECT(value), "changed",
-                     G_CALLBACK(gnc_option_changed_widget_cb), option);
+    g_signal_connect (G_OBJECT(value), "changed",
+                      G_CALLBACK(gnc_option_changed_widget_cb), option);
 
-    gtk_box_pack_start(GTK_BOX(*enclosing), value, TRUE, TRUE, 0);
-    gtk_widget_show_all(*enclosing);
+    gtk_box_pack_start (GTK_BOX(*enclosing), value, TRUE, TRUE, 0);
+    gtk_widget_show_all (*enclosing);
     return value;
 }
 
@@ -2530,33 +2512,33 @@ gnc_option_set_ui_widget_text (GNCOption *option, GtkGrid *page_box,
 
     gnc_option_set_ui_label_alignment (name_label);
 
-    scroll = gtk_scrolled_window_new(NULL, NULL);
-    gtk_scrolled_window_set_policy(GTK_SCROLLED_WINDOW(scroll),
-                                   GTK_POLICY_NEVER,
-                                   GTK_POLICY_AUTOMATIC);
-    gtk_container_set_border_width(GTK_CONTAINER(scroll), 2);
+    scroll = gtk_scrolled_window_new (NULL, NULL);
+    gtk_scrolled_window_set_policy (GTK_SCROLLED_WINDOW(scroll),
+                                    GTK_POLICY_NEVER,
+                                    GTK_POLICY_AUTOMATIC);
+    gtk_container_set_border_width (GTK_CONTAINER(scroll), 2);
 
-    gtk_container_add(GTK_CONTAINER(frame), scroll);
+    gtk_container_add (GTK_CONTAINER(frame), scroll);
 
     *enclosing = gtk_box_new (GTK_ORIENTATION_HORIZONTAL, 10);
     gtk_widget_set_vexpand (GTK_WIDGET(*enclosing), TRUE);
     gtk_widget_set_hexpand (GTK_WIDGET(*enclosing), TRUE);
     gtk_box_set_homogeneous (GTK_BOX (*enclosing), FALSE);
-    value = gtk_text_view_new();
-    gtk_text_view_set_wrap_mode(GTK_TEXT_VIEW(value), GTK_WRAP_WORD);
-    gtk_text_view_set_editable(GTK_TEXT_VIEW(value), TRUE);
+    value = gtk_text_view_new ();
+    gtk_text_view_set_wrap_mode (GTK_TEXT_VIEW(value), GTK_WRAP_WORD);
+    gtk_text_view_set_editable (GTK_TEXT_VIEW(value), TRUE);
     gtk_text_view_set_accepts_tab (GTK_TEXT_VIEW(value), FALSE);
-    gtk_container_add (GTK_CONTAINER (scroll), value);
+    gtk_container_add (GTK_CONTAINER(scroll), value);
 
     gnc_option_set_widget (option, value);
-    gnc_option_set_ui_value(option, FALSE);
+    gnc_option_set_ui_value (option, FALSE);
 
-    text_buffer = gtk_text_view_get_buffer(GTK_TEXT_VIEW(value));
-    g_signal_connect(G_OBJECT(text_buffer), "changed",
-                     G_CALLBACK(gnc_option_changed_option_cb), option);
+    text_buffer = gtk_text_view_get_buffer (GTK_TEXT_VIEW(value));
+    g_signal_connect (G_OBJECT(text_buffer), "changed",
+                      G_CALLBACK(gnc_option_changed_option_cb), option);
 
-    gtk_box_pack_start(GTK_BOX(*enclosing), frame, TRUE, TRUE, 0);
-    gtk_widget_show_all(*enclosing);
+    gtk_box_pack_start (GTK_BOX(*enclosing), frame, TRUE, TRUE, 0);
+    gtk_widget_show_all (*enclosing);
     return value;
 }
 
@@ -2569,17 +2551,17 @@ gnc_option_set_ui_widget_currency (GNCOption *option, GtkGrid *page_box,
     GtkWidget *value;
 
     *enclosing = gtk_box_new (GTK_ORIENTATION_HORIZONTAL, 5);
-    gtk_box_set_homogeneous (GTK_BOX (*enclosing), FALSE);
-    value = gnc_currency_edit_new();
+    gtk_box_set_homogeneous (GTK_BOX(*enclosing), FALSE);
+    value = gnc_currency_edit_new ();
 
     gnc_option_set_widget (option, value);
-    gnc_option_set_ui_value(option, FALSE);
+    gnc_option_set_ui_value (option, FALSE);
 
-    g_signal_connect(G_OBJECT(value), "changed",
-                     G_CALLBACK(gnc_option_changed_widget_cb), option);
+    g_signal_connect (G_OBJECT(value), "changed",
+                      G_CALLBACK(gnc_option_changed_widget_cb), option);
 
-    gtk_box_pack_start(GTK_BOX(*enclosing), value, FALSE, FALSE, 0);
-    gtk_widget_show_all(*enclosing);
+    gtk_box_pack_start (GTK_BOX(*enclosing), value, FALSE, FALSE, 0);
+    gtk_widget_show_all (*enclosing);
     return value;
 }
 
@@ -2592,24 +2574,24 @@ gnc_option_set_ui_widget_commodity (GNCOption *option, GtkGrid *page_box,
     GtkWidget *value;
 
     *enclosing = gtk_box_new (GTK_ORIENTATION_HORIZONTAL, 5);
-    gtk_box_set_homogeneous (GTK_BOX (*enclosing), FALSE);
-    value = gnc_general_select_new(GNC_GENERAL_SELECT_TYPE_SELECT,
-                                   gnc_commodity_edit_get_string,
-                                   gnc_commodity_edit_new_select,
-                                   NULL);
+    gtk_box_set_homogeneous (GTK_BOX(*enclosing), FALSE);
+    value = gnc_general_select_new (GNC_GENERAL_SELECT_TYPE_SELECT,
+                                    gnc_commodity_edit_get_string,
+                                    gnc_commodity_edit_new_select,
+                                    NULL);
 
     gnc_option_set_widget (option, value);
-    gnc_option_set_ui_value(option, FALSE);
+    gnc_option_set_ui_value (option, FALSE);
 
     if (documentation != NULL)
-        gtk_widget_set_tooltip_text(GNC_GENERAL_SELECT(value)->entry,
-                                    documentation);
+        gtk_widget_set_tooltip_text (GNC_GENERAL_SELECT(value)->entry,
+                                     documentation);
 
-    g_signal_connect(G_OBJECT(GNC_GENERAL_SELECT(value)->entry), "changed",
-                     G_CALLBACK(gnc_option_changed_widget_cb), option);
+    g_signal_connect (G_OBJECT(GNC_GENERAL_SELECT(value)->entry), "changed",
+                      G_CALLBACK(gnc_option_changed_widget_cb), option);
 
-    gtk_box_pack_start(GTK_BOX(*enclosing), value, FALSE, FALSE, 0);
-    gtk_widget_show_all(*enclosing);
+    gtk_box_pack_start (GTK_BOX(*enclosing), value, FALSE, FALSE, 0);
+    gtk_widget_show_all (*enclosing);
     return value;
 }
 
@@ -2622,14 +2604,14 @@ gnc_option_set_ui_widget_multichoice (GNCOption *option, GtkGrid *page_box,
     GtkWidget *value;
 
     *enclosing = gtk_box_new (GTK_ORIENTATION_HORIZONTAL, 5);
-    gtk_box_set_homogeneous (GTK_BOX (*enclosing), FALSE);
+    gtk_box_set_homogeneous (GTK_BOX(*enclosing), FALSE);
 
-    value = gnc_option_create_multichoice_widget(option);
+    value = gnc_option_create_multichoice_widget (option);
     gnc_option_set_widget (option, value);
 
-    gnc_option_set_ui_value(option, FALSE);
-    gtk_box_pack_start(GTK_BOX(*enclosing), value, FALSE, FALSE, 0);
-    gtk_widget_show_all(*enclosing);
+    gnc_option_set_ui_value (option, FALSE);
+    gtk_box_pack_start (GTK_BOX(*enclosing), value, FALSE, FALSE, 0);
+    gtk_widget_show_all (*enclosing);
     return value;
 }
 
@@ -2648,16 +2630,16 @@ gnc_option_set_ui_widget_date (GNCOption *option, GtkGrid *page_box,
     gint  grid_row = GPOINTER_TO_INT(g_object_get_data
                                     (G_OBJECT(page_box), "options-grid-row"));
 
-    value = gnc_option_create_date_widget(option);
+    value = gnc_option_create_date_widget (option);
 
     gnc_option_set_widget (option, value);
 
-    if (g_strcmp0(type, "relative") == 0)
+    if (g_strcmp0 (type, "relative") == 0)
     {
         *enclosing = gtk_box_new (GTK_ORIENTATION_HORIZONTAL, 5);
-        gtk_box_set_homogeneous (GTK_BOX (*enclosing), FALSE);
+        gtk_box_set_homogeneous (GTK_BOX(*enclosing), FALSE);
 
-        gtk_box_pack_start(GTK_BOX(*enclosing), value, FALSE, FALSE, 0);
+        gtk_box_pack_start (GTK_BOX(*enclosing), value, FALSE, FALSE, 0);
     }
     else
     {
@@ -2672,16 +2654,16 @@ gnc_option_set_ui_widget_date (GNCOption *option, GtkGrid *page_box,
 
     /* Pack option widget into an extra eventbox because otherwise the
        "documentation" tooltip is not displayed. */
-    eventbox = gtk_event_box_new();
-    gtk_container_add (GTK_CONTAINER (eventbox), *enclosing);
+    eventbox = gtk_event_box_new ();
+    gtk_container_add (GTK_CONTAINER(eventbox), *enclosing);
 
     gtk_grid_attach (GTK_GRID(page_box), eventbox, 1, grid_row, 1, 1);
     *packed = TRUE;
 
     gtk_widget_set_tooltip_text (eventbox, documentation);
 
-    gnc_option_set_ui_value(option, FALSE);
-    gtk_widget_show_all(*enclosing);
+    gnc_option_set_ui_value (option, FALSE);
+    gtk_widget_show_all (*enclosing);
     return value;
 }
 
@@ -2698,27 +2680,27 @@ gnc_option_set_ui_widget_account_list (GNCOption *option, GtkGrid *page_box,
 
     gnc_option_set_ui_label_alignment (name_label);
 
-    *enclosing = gnc_option_create_account_widget(option, NULL);
+    *enclosing = gnc_option_create_account_widget (option, NULL);
     gtk_widget_set_vexpand (GTK_WIDGET(*enclosing), TRUE);
     gtk_widget_set_hexpand (GTK_WIDGET(*enclosing), TRUE);
     value = gnc_option_get_gtk_widget (option);
 
-    gtk_widget_set_tooltip_text(*enclosing, documentation);
+    gtk_widget_set_tooltip_text (*enclosing, documentation);
 
     gtk_grid_attach (GTK_GRID(page_box), *enclosing, 1, grid_row, 1, 1);
     *packed = TRUE;
 
     //gtk_widget_realize(value);
 
-    gnc_option_set_ui_value(option, FALSE);
+    gnc_option_set_ui_value (option, FALSE);
 
-    selection = gtk_tree_view_get_selection(GTK_TREE_VIEW(value));
-    g_signal_connect(G_OBJECT(selection), "changed",
-                     G_CALLBACK(gnc_option_account_cb), option);
+    selection = gtk_tree_view_get_selection (GTK_TREE_VIEW(value));
+    g_signal_connect (G_OBJECT(selection), "changed",
+                      G_CALLBACK(gnc_option_account_cb), option);
 
     //  gtk_clist_set_row_height(GTK_CLIST(value), 0);
     //  gtk_widget_set_size_request(value, -1, GTK_CLIST(value)->row_height * 10);
-    gtk_widget_show_all(*enclosing);
+    gtk_widget_show_all (*enclosing);
     return value;
 }
 
@@ -2731,19 +2713,19 @@ gnc_option_set_ui_widget_account_sel (GNCOption *option, GtkGrid *page_box,
     GtkWidget *value = gnc_account_sel_new ();
     GList *acct_type_list = gnc_option_get_account_type_list (option);
 
-    gnc_account_sel_set_acct_filters(GNC_ACCOUNT_SEL(value), acct_type_list, NULL);
+    gnc_account_sel_set_acct_filters (GNC_ACCOUNT_SEL(value), acct_type_list, NULL);
 
-    g_signal_connect(value, "account_sel_changed",
-                     G_CALLBACK(gnc_option_changed_widget_cb), option);
+    g_signal_connect (value, "account_sel_changed",
+                      G_CALLBACK(gnc_option_changed_widget_cb), option);
 
     gnc_option_set_widget (option, value);
 
-    gnc_option_set_ui_value(option, FALSE);
+    gnc_option_set_ui_value (option, FALSE);
 
     *enclosing = gtk_box_new (GTK_ORIENTATION_HORIZONTAL, 5);
-    gtk_box_set_homogeneous (GTK_BOX (*enclosing), FALSE);
-    gtk_box_pack_start(GTK_BOX(*enclosing), value, FALSE, FALSE, 0);
-    gtk_widget_show_all(*enclosing);
+    gtk_box_set_homogeneous (GTK_BOX(*enclosing), FALSE);
+    gtk_box_pack_start (GTK_BOX(*enclosing), value, FALSE, FALSE, 0);
+    gtk_widget_show_all (*enclosing);
     return value;
 }
 
@@ -2758,23 +2740,23 @@ gnc_option_set_ui_widget_list (GNCOption *option, GtkGrid *page_box,
     gint       grid_row = GPOINTER_TO_INT(g_object_get_data
                                          (G_OBJECT(page_box), "options-grid-row"));
 
-    *enclosing = gnc_option_create_list_widget(option, NULL);
+    *enclosing = gnc_option_create_list_widget (option, NULL);
     value = gnc_option_get_gtk_widget (option);
 
     gnc_option_set_ui_label_alignment (name_label);
 
     /* Pack option widget into an extra eventbox because otherwise the
        "documentation" tooltip is not displayed. */
-    eventbox = gtk_event_box_new();
-    gtk_container_add (GTK_CONTAINER (eventbox), *enclosing);
+    eventbox = gtk_event_box_new ();
+    gtk_container_add (GTK_CONTAINER(eventbox), *enclosing);
 
     gtk_grid_attach (GTK_GRID(page_box), eventbox, 1, grid_row, 1, 1);
     *packed = TRUE;
 
-    gtk_widget_set_tooltip_text(eventbox, documentation);
+    gtk_widget_set_tooltip_text (eventbox, documentation);
 
-    gnc_option_set_ui_value(option, FALSE);
-    gtk_widget_show(*enclosing);
+    gnc_option_set_ui_value (option, FALSE);
+    gtk_widget_show (*enclosing);
     return value;
 }
 
@@ -2792,16 +2774,16 @@ gnc_option_set_ui_widget_number_range (GNCOption *option, GtkGrid *page_box,
     int num_decimals = 0;
 
     *enclosing = gtk_box_new (GTK_ORIENTATION_HORIZONTAL, 5);
-    gtk_box_set_homogeneous (GTK_BOX (*enclosing), FALSE);
+    gtk_box_set_homogeneous (GTK_BOX(*enclosing), FALSE);
 
-    gnc_option_get_range_info(option, &lower_bound, &upper_bound,
-                              &num_decimals, &step_size);
-    adj = GTK_ADJUSTMENT(gtk_adjustment_new(lower_bound, lower_bound,
-                                            upper_bound, step_size,
-                                            step_size * 5.0,
-                                            0));
-    value = gtk_spin_button_new(adj, step_size, num_decimals);
-    gtk_spin_button_set_numeric(GTK_SPIN_BUTTON(value), TRUE);
+    gnc_option_get_range_info (option, &lower_bound, &upper_bound,
+                               &num_decimals, &step_size);
+    adj = GTK_ADJUSTMENT(gtk_adjustment_new (lower_bound, lower_bound,
+                                             upper_bound, step_size,
+                                             step_size * 5.0,
+                                             0));
+    value = gtk_spin_button_new (adj, step_size, num_decimals);
+    gtk_spin_button_set_numeric (GTK_SPIN_BUTTON(value), TRUE);
 
     {
         gdouble biggest;
@@ -2822,17 +2804,17 @@ gnc_option_set_ui_widget_number_range (GNCOption *option, GtkGrid *page_box,
 
         num_digits += num_decimals;
 
-        gtk_entry_set_width_chars(GTK_ENTRY(value), num_digits);
+        gtk_entry_set_width_chars (GTK_ENTRY(value), num_digits);
     }
 
     gnc_option_set_widget (option, value);
-    gnc_option_set_ui_value(option, FALSE);
+    gnc_option_set_ui_value (option, FALSE);
 
-    g_signal_connect(G_OBJECT(value), "changed",
-                     G_CALLBACK(gnc_option_changed_widget_cb), option);
+    g_signal_connect (G_OBJECT(value), "changed",
+                      G_CALLBACK(gnc_option_changed_widget_cb), option);
 
-    gtk_box_pack_start(GTK_BOX(*enclosing), value, FALSE, FALSE, 0);
-    gtk_widget_show_all(*enclosing);
+    gtk_box_pack_start (GTK_BOX(*enclosing), value, FALSE, FALSE, 0);
+    gtk_widget_show_all (*enclosing);
     return value;
 }
 
@@ -2846,21 +2828,21 @@ gnc_option_set_ui_widget_color (GNCOption *option, GtkGrid *page_box,
     gboolean use_alpha;
 
     *enclosing = gtk_box_new (GTK_ORIENTATION_HORIZONTAL, 5);
-    gtk_box_set_homogeneous (GTK_BOX (*enclosing), FALSE);
+    gtk_box_set_homogeneous (GTK_BOX(*enclosing), FALSE);
 
-    use_alpha = gnc_option_use_alpha(option);
+    use_alpha = gnc_option_use_alpha (option);
 
-    value = gtk_color_button_new();
-    gtk_color_chooser_set_use_alpha(GTK_COLOR_CHOOSER(value), use_alpha);
+    value = gtk_color_button_new ();
+    gtk_color_chooser_set_use_alpha (GTK_COLOR_CHOOSER(value), use_alpha);
 
     gnc_option_set_widget (option, value);
-    gnc_option_set_ui_value(option, FALSE);
+    gnc_option_set_ui_value (option, FALSE);
 
-    g_signal_connect(G_OBJECT(value), "color-set",
-                     G_CALLBACK(gnc_option_color_changed_cb), option);
+    g_signal_connect (G_OBJECT(value), "color-set",
+                      G_CALLBACK(gnc_option_color_changed_cb), option);
 
-    gtk_box_pack_start(GTK_BOX(*enclosing), value, FALSE, FALSE, 0);
-    gtk_widget_show_all(*enclosing);
+    gtk_box_pack_start (GTK_BOX(*enclosing), value, FALSE, FALSE, 0);
+    gtk_widget_show_all (*enclosing);
     return value;
 }
 
@@ -2873,23 +2855,23 @@ gnc_option_set_ui_widget_font (GNCOption *option, GtkGrid *page_box,
     GtkWidget *value;
 
     *enclosing = gtk_box_new (GTK_ORIENTATION_HORIZONTAL, 5);
-    gtk_box_set_homogeneous (GTK_BOX (*enclosing), FALSE);
-    value = gtk_font_button_new();
-    g_object_set(G_OBJECT(value),
-                 "use-font", TRUE,
-                 "show-style", TRUE,
-                 "show-size", TRUE,
-                 (char *)NULL);
+    gtk_box_set_homogeneous (GTK_BOX(*enclosing), FALSE);
+    value = gtk_font_button_new ();
+    g_object_set (G_OBJECT(value),
+                  "use-font", TRUE,
+                  "show-style", TRUE,
+                  "show-size", TRUE,
+                  (char *)NULL);
 
     gnc_option_set_widget (option, value);
 
-    gnc_option_set_ui_value(option, FALSE);
+    gnc_option_set_ui_value (option, FALSE);
 
-    g_signal_connect(G_OBJECT(value), "font-set",
-                     G_CALLBACK(gnc_option_font_changed_cb), option);
+    g_signal_connect (G_OBJECT(value), "font-set",
+                      G_CALLBACK(gnc_option_font_changed_cb), option);
 
-    gtk_box_pack_start(GTK_BOX(*enclosing), value, FALSE, FALSE, 0);
-    gtk_widget_show_all(*enclosing);
+    gtk_box_pack_start (GTK_BOX(*enclosing), value, FALSE, FALSE, 0);
+    gtk_widget_show_all (*enclosing);
     return value;
 }
 
@@ -2903,35 +2885,35 @@ gnc_option_set_ui_widget_pixmap (GNCOption *option, GtkGrid *page_box,
     GtkWidget *button;
 
     *enclosing = gtk_box_new (GTK_ORIENTATION_HORIZONTAL, 5);
-    gtk_box_set_homogeneous (GTK_BOX (*enclosing), FALSE);
-
-    button = gtk_button_new_with_label(_("Clear"));
-    gtk_widget_set_tooltip_text(button, _("Clear any selected image file."));
-
-    value = gtk_file_chooser_button_new(_("Select image"),
-                                        GTK_FILE_CHOOSER_ACTION_OPEN);
-    gtk_widget_set_tooltip_text(value, _("Select an image file."));
-    g_object_set(G_OBJECT(value),
-                 "width-chars", 30,
-                 "preview-widget", gtk_image_new(),
-                 (char *)NULL);
-    g_signal_connect(G_OBJECT (value), "selection-changed",
-                     G_CALLBACK(gnc_option_changed_widget_cb), option);
-    g_signal_connect(G_OBJECT (value), "selection-changed",
-                     G_CALLBACK(gnc_image_option_selection_changed_cb), option);
-    g_signal_connect(G_OBJECT (value), "update-preview",
-                     G_CALLBACK(gnc_image_option_update_preview_cb), option);
-    g_signal_connect_swapped(G_OBJECT (button), "clicked",
-                             G_CALLBACK(gtk_file_chooser_unselect_all), value);
+    gtk_box_set_homogeneous (GTK_BOX(*enclosing), FALSE);
+
+    button = gtk_button_new_with_label (_("Clear"));
+    gtk_widget_set_tooltip_text (button, _("Clear any selected image file."));
+
+    value = gtk_file_chooser_button_new (_("Select image"),
+                                         GTK_FILE_CHOOSER_ACTION_OPEN);
+    gtk_widget_set_tooltip_text (value, _("Select an image file."));
+    g_object_set (G_OBJECT(value),
+                  "width-chars", 30,
+                  "preview-widget", gtk_image_new(),
+                  (char *)NULL);
+    g_signal_connect (G_OBJECT(value), "selection-changed",
+                      G_CALLBACK(gnc_option_changed_widget_cb), option);
+    g_signal_connect (G_OBJECT(value), "selection-changed",
+                      G_CALLBACK(gnc_image_option_selection_changed_cb), option);
+    g_signal_connect (G_OBJECT(value), "update-preview",
+                      G_CALLBACK(gnc_image_option_update_preview_cb), option);
+    g_signal_connect_swapped (G_OBJECT(button), "clicked",
+                              G_CALLBACK(gtk_file_chooser_unselect_all), value);
 
     gnc_option_set_widget (option, value);
-    gnc_option_set_ui_value(option, FALSE);
+    gnc_option_set_ui_value (option, FALSE);
 
-    gtk_box_pack_start(GTK_BOX(*enclosing), value, FALSE, FALSE, 0);
-    gtk_box_pack_start(GTK_BOX(*enclosing), button, FALSE, FALSE, 0);
+    gtk_box_pack_start (GTK_BOX(*enclosing), value, FALSE, FALSE, 0);
+    gtk_box_pack_start (GTK_BOX(*enclosing), button, FALSE, FALSE, 0);
 
-    gtk_widget_show(value);
-    gtk_widget_show(*enclosing);
+    gtk_widget_show (value);
+    gtk_widget_show (*enclosing);
 
     return value;
 }
@@ -2945,16 +2927,16 @@ gnc_option_set_ui_widget_radiobutton (GNCOption *option, GtkGrid *page_box,
     GtkWidget *value;
 
     *enclosing = gtk_box_new (GTK_ORIENTATION_HORIZONTAL, 5);
-    gtk_box_set_homogeneous (GTK_BOX (*enclosing), FALSE);
+    gtk_box_set_homogeneous (GTK_BOX(*enclosing), FALSE);
 
     gnc_option_set_ui_label_alignment (name_label);
 
-    value = gnc_option_create_radiobutton_widget(NULL, option);
+    value = gnc_option_create_radiobutton_widget (NULL, option);
     gnc_option_set_widget (option, value);
 
-    gnc_option_set_ui_value(option, FALSE);
-    gtk_box_pack_start(GTK_BOX(*enclosing), value, FALSE, FALSE, 0);
-    gtk_widget_show_all(*enclosing);
+    gnc_option_set_ui_value (option, FALSE);
+    gtk_box_pack_start (GTK_BOX(*enclosing), value, FALSE, FALSE, 0);
+    gtk_widget_show_all (*enclosing);
     return value;
 }
 
@@ -2969,15 +2951,15 @@ gnc_option_set_ui_widget_dateformat (GNCOption *option, GtkGrid *page_box,
 
     gnc_option_set_ui_label_alignment (name_label);
 
-    gnc_option_set_ui_value(option, FALSE);
-    g_signal_connect(G_OBJECT(*enclosing), "format_changed",
-                     G_CALLBACK(gnc_option_changed_option_cb), option);
-    gtk_widget_show_all(*enclosing);
+    gnc_option_set_ui_value (option, FALSE);
+    g_signal_connect (G_OBJECT(*enclosing), "format_changed",
+                      G_CALLBACK(gnc_option_changed_option_cb), option);
+    gtk_widget_show_all (*enclosing);
     return *enclosing;
 }
 
 static void
-gnc_plot_size_option_set_select_method(GNCOption *option, gboolean set_buttons)
+gnc_plot_size_option_set_select_method (GNCOption *option, gboolean set_buttons)
 {
     GList* widget_list;
     GtkWidget *px_widget, *p_widget;
@@ -2985,43 +2967,42 @@ gnc_plot_size_option_set_select_method(GNCOption *option, gboolean set_buttons)
 
     widget = gnc_option_get_gtk_widget (option);
 
-    widget_list = gtk_container_get_children(GTK_CONTAINER(widget));
+    widget_list = gtk_container_get_children (GTK_CONTAINER(widget));
     // px_button item 0
-    px_widget = g_list_nth_data(widget_list, 1);
+    px_widget = g_list_nth_data (widget_list, 1);
     // p_button item 2
-    p_widget = g_list_nth_data(widget_list, 3);
-    g_list_free(widget_list);
+    p_widget = g_list_nth_data (widget_list, 3);
+    g_list_free (widget_list);
 
     if (set_buttons)
     {
-        gtk_widget_set_sensitive(px_widget, TRUE);
-        gtk_widget_set_sensitive(p_widget, FALSE);
+        gtk_widget_set_sensitive (px_widget, TRUE);
+        gtk_widget_set_sensitive (p_widget, FALSE);
     }
     else
     {
-        gtk_widget_set_sensitive(p_widget, TRUE);
-        gtk_widget_set_sensitive(px_widget, FALSE);
+        gtk_widget_set_sensitive (p_widget, TRUE);
+        gtk_widget_set_sensitive (px_widget, FALSE);
     }
 }
 
 static void
-gnc_rd_option_px_set_cb(GtkWidget *widget, gpointer *raw_option)
+gnc_rd_option_px_set_cb (GtkWidget *widget, gpointer *raw_option)
 {
     GNCOption *option = (GNCOption *) raw_option;
-    gnc_plot_size_option_set_select_method(option, TRUE);
-    gnc_option_changed_option_cb(widget, option);
+    gnc_plot_size_option_set_select_method (option, TRUE);
+    gnc_option_changed_option_cb (widget, option);
 }
 
 static void
-gnc_rd_option_p_set_cb(GtkWidget *widget, gpointer *raw_option)
+gnc_rd_option_p_set_cb (GtkWidget *widget, gpointer *raw_option)
 {
     GNCOption *option = (GNCOption *) raw_option;
-    gnc_plot_size_option_set_select_method(option, FALSE);
-    gnc_option_changed_option_cb(widget, option);
+    gnc_plot_size_option_set_select_method (option, FALSE);
+    gnc_option_changed_option_cb (widget, option);
     return;
 }
 
-
 static GtkWidget *
 gnc_option_set_ui_widget_plot_size (GNCOption *option, GtkGrid *page_box,
                                      GtkLabel *name_label, char *documentation,
@@ -3037,24 +3018,24 @@ gnc_option_set_ui_widget_plot_size (GNCOption *option, GtkGrid *page_box,
     gdouble step_size = 1.0;
     int num_decimals = 0;
 
-    *enclosing = gtk_frame_new(NULL);
+    *enclosing = gtk_frame_new (NULL);
     gtk_widget_set_halign (GTK_WIDGET(*enclosing), GTK_ALIGN_START);
 
     hbox = gtk_box_new (GTK_ORIENTATION_HORIZONTAL, 5);
-    gtk_box_set_homogeneous (GTK_BOX (hbox), FALSE);
+    gtk_box_set_homogeneous (GTK_BOX(hbox), FALSE);
     g_object_set (G_OBJECT(hbox), "margin", 3, NULL);
 
-    gtk_container_add(GTK_CONTAINER(*enclosing), hbox);
+    gtk_container_add (GTK_CONTAINER(*enclosing), hbox);
 
-    gnc_option_get_range_info(option, &lower_bound, &upper_bound,
-                              &num_decimals, &step_size);
-    adj_px = GTK_ADJUSTMENT(gtk_adjustment_new(lower_bound, lower_bound,
-                                            upper_bound, step_size,
-                                            step_size * 5.0,
-                                            0));
+    gnc_option_get_range_info (option, &lower_bound, &upper_bound,
+                               &num_decimals, &step_size);
+    adj_px = GTK_ADJUSTMENT(gtk_adjustment_new (lower_bound, lower_bound,
+                                                upper_bound, step_size,
+                                                step_size * 5.0,
+                                                0));
 
-    value_px = gtk_spin_button_new(adj_px, step_size, num_decimals);
-    gtk_spin_button_set_numeric(GTK_SPIN_BUTTON(value_px), TRUE);
+    value_px = gtk_spin_button_new (adj_px, step_size, num_decimals);
+    gtk_spin_button_set_numeric (GTK_SPIN_BUTTON(value_px), TRUE);
 
     {
         gdouble biggest;
@@ -3075,41 +3056,41 @@ gnc_option_set_ui_widget_plot_size (GNCOption *option, GtkGrid *page_box,
 
         num_digits += num_decimals;
 
-        gtk_entry_set_width_chars(GTK_ENTRY(value_px), num_digits);
+        gtk_entry_set_width_chars (GTK_ENTRY(value_px), num_digits);
     }
-    gtk_spin_button_set_value(GTK_SPIN_BUTTON(value_px), (upper_bound / 2)); //default
-    g_signal_connect(G_OBJECT(value_px), "changed",
-                     G_CALLBACK(gnc_option_changed_widget_cb), option);
+    gtk_spin_button_set_value (GTK_SPIN_BUTTON(value_px), (upper_bound / 2)); //default
+    g_signal_connect (G_OBJECT(value_px), "changed",
+                      G_CALLBACK(gnc_option_changed_widget_cb), option);
 
-    adj_percent = GTK_ADJUSTMENT(gtk_adjustment_new(1, 10, 100, 1, 5.0, 0));
-    value_percent = gtk_spin_button_new(adj_percent, 1, 0);
-    gtk_spin_button_set_numeric(GTK_SPIN_BUTTON(value_percent), TRUE);
-    gtk_spin_button_set_value(GTK_SPIN_BUTTON(value_percent), 100); //default
-    gtk_entry_set_width_chars(GTK_ENTRY(value_percent), 3);
-    gtk_widget_set_sensitive(value_percent, FALSE);
+    adj_percent = GTK_ADJUSTMENT(gtk_adjustment_new (1, 10, 100, 1, 5.0, 0));
+    value_percent = gtk_spin_button_new (adj_percent, 1, 0);
+    gtk_spin_button_set_numeric (GTK_SPIN_BUTTON(value_percent), TRUE);
+    gtk_spin_button_set_value (GTK_SPIN_BUTTON(value_percent), 100); //default
+    gtk_entry_set_width_chars (GTK_ENTRY(value_percent), 3);
+    gtk_widget_set_sensitive (value_percent, FALSE);
 
-    g_signal_connect(G_OBJECT(value_percent), "changed",
-                     G_CALLBACK(gnc_option_changed_widget_cb), option);
+    g_signal_connect (G_OBJECT(value_percent), "changed",
+                      G_CALLBACK(gnc_option_changed_widget_cb), option);
 
-    px_butt = gtk_radio_button_new_with_label(NULL, _("Pixels"));
+    px_butt = gtk_radio_button_new_with_label (NULL, _("Pixels"));
     gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON(px_butt), TRUE);
 
-    g_signal_connect(G_OBJECT(px_butt), "toggled",
-                         G_CALLBACK(gnc_rd_option_px_set_cb), option);
+    g_signal_connect (G_OBJECT(px_butt), "toggled",
+                      G_CALLBACK(gnc_rd_option_px_set_cb), option);
 
-    p_butt = gtk_radio_button_new_with_label_from_widget(GTK_RADIO_BUTTON(px_butt), _("Percent"));
-    g_signal_connect(G_OBJECT(p_butt), "toggled",
-                         G_CALLBACK(gnc_rd_option_p_set_cb), option);
+    p_butt = gtk_radio_button_new_with_label_from_widget (GTK_RADIO_BUTTON(px_butt), _("Percent"));
+    g_signal_connect (G_OBJECT(p_butt), "toggled",
+                      G_CALLBACK(gnc_rd_option_p_set_cb), option);
 
-    gtk_box_pack_start(GTK_BOX(hbox), px_butt, FALSE, FALSE, 0);
-    gtk_box_pack_start(GTK_BOX(hbox), value_px, FALSE, FALSE, 0);
-    gtk_box_pack_start(GTK_BOX(hbox), p_butt, FALSE, FALSE, 0);
-    gtk_box_pack_start(GTK_BOX(hbox), value_percent, FALSE, FALSE, 0);
+    gtk_box_pack_start (GTK_BOX(hbox), px_butt, FALSE, FALSE, 0);
+    gtk_box_pack_start (GTK_BOX(hbox), value_px, FALSE, FALSE, 0);
+    gtk_box_pack_start (GTK_BOX(hbox), p_butt, FALSE, FALSE, 0);
+    gtk_box_pack_start (GTK_BOX(hbox), value_percent, FALSE, FALSE, 0);
 
     gnc_option_set_widget (option, hbox);
     gnc_option_set_ui_value (option, FALSE);
 
-    gtk_widget_show_all(*enclosing);
+    gtk_widget_show_all (*enclosing);
     return hbox;
 }
 
@@ -3123,19 +3104,19 @@ gnc_option_set_ui_widget_budget (GNCOption *option, GtkGrid *page_box,
 
 
     *enclosing = gtk_box_new (GTK_ORIENTATION_HORIZONTAL, 5);
-    gtk_box_set_homogeneous (GTK_BOX (*enclosing), FALSE);
+    gtk_box_set_homogeneous (GTK_BOX(*enclosing), FALSE);
 
-    value = gnc_option_create_budget_widget(option);
+    value = gnc_option_create_budget_widget (option);
 
     gnc_option_set_widget (option, value);
-    gnc_option_set_ui_value(option, FALSE);
+    gnc_option_set_ui_value (option, FALSE);
 
     /* Maybe connect destroy handler for tree model here? */
-    g_signal_connect(G_OBJECT(value), "changed",
-                     G_CALLBACK(gnc_option_changed_widget_cb), option);
+    g_signal_connect (G_OBJECT(value), "changed",
+                      G_CALLBACK(gnc_option_changed_widget_cb), option);
 
-    gtk_box_pack_start(GTK_BOX(*enclosing), value, FALSE, FALSE, 0);
-    gtk_widget_show_all(*enclosing);
+    gtk_box_pack_start (GTK_BOX(*enclosing), value, FALSE, FALSE, 0);
+    gtk_widget_show_all (*enclosing);
     return value;
 }
 
@@ -3150,14 +3131,14 @@ gnc_option_set_ui_widget_currency_accounting (GNCOption *option,
     GtkWidget *value;
 
     *enclosing = gtk_box_new (GTK_ORIENTATION_HORIZONTAL, 5);
-    gtk_box_set_homogeneous (GTK_BOX (*enclosing), FALSE);
+    gtk_box_set_homogeneous (GTK_BOX(*enclosing), FALSE);
 
-    value = gnc_option_create_currency_accounting_widget(NULL, option);
+    value = gnc_option_create_currency_accounting_widget (NULL, option);
     gnc_option_set_widget (option, value);
 
-    gnc_option_set_ui_value(option, FALSE);
-    gtk_box_pack_start(GTK_BOX(*enclosing), value, TRUE, TRUE, 0);
-    gtk_widget_show_all(*enclosing);
+    gnc_option_set_ui_value (option, FALSE);
+    gtk_box_pack_start (GTK_BOX(*enclosing), value, TRUE, TRUE, 0);
+    gtk_widget_show_all (*enclosing);
     return value;
 }
 
@@ -3177,10 +3158,10 @@ static gboolean
 gnc_option_set_ui_value_boolean (GNCOption *option, gboolean use_default,
                                  GtkWidget *widget, SCM value)
 {
-    if (scm_is_bool(value))
+    if (scm_is_bool (value))
     {
-        gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(widget),
-                                     scm_is_true(value));
+        gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON(widget),
+                                      scm_is_true(value));
         return FALSE;
     }
     else
@@ -3191,12 +3172,12 @@ static gboolean
 gnc_option_set_ui_value_string (GNCOption *option, gboolean use_default,
                                 GtkWidget *widget, SCM value)
 {
-    if (scm_is_string(value))
+    if (scm_is_string (value))
     {
         const gchar *string;
 
         string = gnc_scm_to_utf8_string (value);
-        gtk_entry_set_text(GTK_ENTRY(widget), string);
+        gtk_entry_set_text (GTK_ENTRY(widget), string);
         g_free ((gpointer *) string);
         return FALSE;
     }
@@ -3213,9 +3194,9 @@ gnc_option_set_ui_value_text (GNCOption *option, gboolean use_default,
     if (GTK_IS_TEXT_BUFFER(object))
         buffer = GTK_TEXT_BUFFER(object);
     else
-        buffer = gtk_text_view_get_buffer(GTK_TEXT_VIEW(object));
+        buffer = gtk_text_view_get_buffer (GTK_TEXT_VIEW(object));
 
-    if (scm_is_string(value))
+    if (scm_is_string (value))
     {
         const gchar *string;
 
@@ -3237,7 +3218,7 @@ gnc_option_set_ui_value_currency (GNCOption *option, gboolean use_default,
     commodity = gnc_scm_to_commodity (value);
     if (commodity)
     {
-        gnc_currency_edit_set_currency(GNC_CURRENCY_EDIT(widget), commodity);
+        gnc_currency_edit_set_currency (GNC_CURRENCY_EDIT(widget), commodity);
         return FALSE;
     }
     else
@@ -3253,7 +3234,7 @@ gnc_option_set_ui_value_commodity (GNCOption *option, gboolean use_default,
     commodity = gnc_scm_to_commodity (value);
     if (commodity)
     {
-        gnc_general_select_set_selected(GNC_GENERAL_SELECT (widget), commodity);
+        gnc_general_select_set_selected (GNC_GENERAL_SELECT(widget), commodity);
         return FALSE;
     }
     else
@@ -3266,13 +3247,13 @@ gnc_option_set_ui_value_multichoice (GNCOption *option, gboolean use_default,
 {
     int index;
 
-    index = gnc_option_permissible_value_index(option, value);
+    index = gnc_option_permissible_value_index (option, value);
     if (index < 0)
         return TRUE;
     else
     {
         /* GtkComboBox per-item tooltip changes needed below */
-        gnc_combott_set_active(GNC_COMBOTT(widget), index);
+        gnc_combott_set_active (GNC_COMBOTT(widget), index);
         return FALSE;
     }
 }
@@ -3286,84 +3267,76 @@ gnc_option_set_ui_value_date (GNCOption *option, gboolean use_default,
     char *symbol_str;
     gboolean bad_value = FALSE;
 
-    date_option_type = gnc_option_date_option_get_subtype(option);
+    date_option_type = gnc_option_date_option_get_subtype (option);
 
-    if (scm_is_pair(value))
+    if (scm_is_pair (value))
     {
         symbol_str = gnc_date_option_value_get_type (value);
         if (symbol_str)
         {
-            if (g_strcmp0(symbol_str, "relative") == 0)
+            if (g_strcmp0 (symbol_str, "relative") == 0)
             {
                 SCM relative = gnc_date_option_value_get_relative (value);
 
-                index = gnc_option_permissible_value_index(option, relative);
-                if (g_strcmp0(date_option_type, "relative") == 0)
+                index = gnc_option_permissible_value_index (option, relative);
+                if (g_strcmp0 (date_option_type, "relative") == 0)
                 {
                     /* GtkComboBox per-item tooltip changes needed below */
-                    gnc_combott_set_active(GNC_COMBOTT(widget), index);
+                    gnc_combott_set_active (GNC_COMBOTT(widget), index);
                 }
-                else if (g_strcmp0(date_option_type, "both") == 0)
+                else if (g_strcmp0 (date_option_type, "both") == 0)
                 {
                     GList *widget_list;
                     GtkWidget *rel_date_widget;
 
-                    widget_list = gtk_container_get_children(GTK_CONTAINER(widget));
-                    rel_date_widget = g_list_nth_data(widget_list,
-                                                      GNC_RD_WID_REL_WIDGET_POS);
-                    g_list_free(widget_list);
-                    gnc_date_option_set_select_method(option, FALSE, TRUE);
+                    widget_list = gtk_container_get_children (GTK_CONTAINER(widget));
+                    rel_date_widget = g_list_nth_data (widget_list,
+                                                       GNC_RD_WID_REL_WIDGET_POS);
+                    g_list_free (widget_list);
+                    gnc_date_option_set_select_method (option, FALSE, TRUE);
                     /* GtkComboBox per-item tooltip changes needed below */
-                    gnc_combott_set_active(GNC_COMBOTT(rel_date_widget), index);
+                    gnc_combott_set_active (GNC_COMBOTT(rel_date_widget), index);
                 }
                 else
-                {
                     bad_value = TRUE;
-                }
             }
-            else if (g_strcmp0(symbol_str, "absolute") == 0)
+            else if (g_strcmp0 (symbol_str, "absolute") == 0)
             {
                 time64 time;
 
                 time = gnc_date_option_value_get_absolute (value);
 
-                if (g_strcmp0(date_option_type, "absolute") == 0)
+                if (g_strcmp0 (date_option_type, "absolute") == 0)
                 {
-                    gnc_date_edit_set_time(GNC_DATE_EDIT(widget), time);
+                    gnc_date_edit_set_time (GNC_DATE_EDIT(widget), time);
                 }
-                else if (g_strcmp0(date_option_type, "both") == 0)
+                else if (g_strcmp0 (date_option_type, "both") == 0)
                 {
                     GList *widget_list;
                     GtkWidget *ab_widget;
 
-                    widget_list = gtk_container_get_children(GTK_CONTAINER(widget));
-                    ab_widget = g_list_nth_data(widget_list,
-                                                GNC_RD_WID_AB_WIDGET_POS);
-                    g_list_free(widget_list);
-                    gnc_date_option_set_select_method(option, TRUE, TRUE);
-                    gnc_date_edit_set_time(GNC_DATE_EDIT(ab_widget), time);
+                    widget_list = gtk_container_get_children (GTK_CONTAINER(widget));
+                    ab_widget = g_list_nth_data (widget_list,
+                                                 GNC_RD_WID_AB_WIDGET_POS);
+                    g_list_free (widget_list);
+                    gnc_date_option_set_select_method (option, TRUE, TRUE);
+                    gnc_date_edit_set_time (GNC_DATE_EDIT(ab_widget), time);
                 }
                 else
-                {
                     bad_value = TRUE;
-                }
             }
             else
-            {
                 bad_value = TRUE;
-            }
 
             if (symbol_str)
-                free(symbol_str);
+                free (symbol_str);
         }
     }
     else
-    {
         bad_value = TRUE;
-    }
 
     if (date_option_type)
-        free(date_option_type);
+        free (date_option_type);
 
     return bad_value;
 }
@@ -3374,12 +3347,11 @@ gnc_option_set_ui_value_account_list (GNCOption *option, gboolean use_default,
 {
     GList *list;
 
-    list = gnc_scm_list_to_glist(value);
+    list = gnc_scm_list_to_glist (value);
 
     gnc_tree_view_account_set_selected_accounts (GNC_TREE_VIEW_ACCOUNT(widget),
-            list, TRUE);
-
-    g_list_free(list);
+                                                 list, TRUE);
+    g_list_free (list);
     return FALSE;
 }
 
@@ -3391,11 +3363,11 @@ gnc_option_set_ui_value_account_sel (GNCOption *option, gboolean use_default,
 
     if (value != SCM_BOOL_F)
     {
-        if (!SWIG_IsPointer(value))
-            scm_misc_error("gnc_option_set_ui_value_account_sel",
-                           "Option Value not a wcp.", value);
+        if (!SWIG_IsPointer (value))
+            scm_misc_error ("gnc_option_set_ui_value_account_sel",
+                            "Option Value not a wcp.", value);
 
-        acc = SWIG_MustGetPtr(value, SWIG_TypeQuery("_p_Account"), 4, 0);
+        acc = SWIG_MustGetPtr (value, SWIG_TypeQuery ("_p_Account"), 4, 0);
     }
 
     //doesn't default because this function is called to set a specific account
@@ -3412,28 +3384,28 @@ gnc_option_set_ui_value_list (GNCOption *option, gboolean use_default,
     GtkTreePath *path;
     gint row;
 
-    selection = gtk_tree_view_get_selection(GTK_TREE_VIEW(widget));
-    gtk_tree_selection_unselect_all(selection);
+    selection = gtk_tree_view_get_selection (GTK_TREE_VIEW(widget));
+    gtk_tree_selection_unselect_all (selection);
 
-    while (scm_is_list(value) && !scm_is_null(value))
+    while (scm_is_list (value) && !scm_is_null (value))
     {
         SCM item;
 
         item = SCM_CAR(value);
         value = SCM_CDR(value);
 
-        row = gnc_option_permissible_value_index(option, item);
+        row = gnc_option_permissible_value_index (option, item);
         if (row < 0)
         {
             return TRUE;
         }
 
-        path = gtk_tree_path_new_from_indices(row, -1);
-        gtk_tree_selection_select_path(selection, path);
-        gtk_tree_path_free(path);
+        path = gtk_tree_path_new_from_indices (row, -1);
+        gtk_tree_selection_select_path (selection, path);
+        gtk_tree_path_free (path);
     }
 
-    if (!scm_is_list(value) || !scm_is_null(value))
+    if (!scm_is_list (value) || !scm_is_null (value))
         return TRUE;
 
     return FALSE;
@@ -3448,10 +3420,10 @@ gnc_option_set_ui_value_number_range (GNCOption *option, gboolean use_default,
 
     spinner = GTK_SPIN_BUTTON(widget);
 
-    if (scm_is_number(value))
+    if (scm_is_number (value))
     {
-        d_value = scm_to_double(value);
-        gtk_spin_button_set_value(spinner, d_value);
+        d_value = scm_to_double (value);
+        gtk_spin_button_set_value (spinner, d_value);
         return FALSE;
     }
     else
@@ -3464,9 +3436,9 @@ gnc_option_set_ui_value_color (GNCOption *option, gboolean use_default,
 {
 
     GdkRGBA color;
-    if (gnc_option_get_color_info(option, use_default,
-                                  &color.red, &color.green,
-                                  &color.blue, &color.alpha))
+    if (gnc_option_get_color_info (option, use_default,
+                                   &color.red, &color.green,
+                                   &color.blue, &color.alpha))
     {
         GtkColorChooser *color_button;
 
@@ -3474,7 +3446,7 @@ gnc_option_set_ui_value_color (GNCOption *option, gboolean use_default,
               color.red, color.green, color.blue, color.alpha);
         color_button = GTK_COLOR_CHOOSER(widget);
 
-        gtk_color_chooser_set_rgba(color_button, &color);
+        gtk_color_chooser_set_rgba (color_button, &color);
         return FALSE;
     }
 
@@ -3486,7 +3458,7 @@ static gboolean
 gnc_option_set_ui_value_font (GNCOption *option, gboolean use_default,
                               GtkWidget *widget, SCM value)
 {
-    if (scm_is_string(value))
+    if (scm_is_string (value))
     {
         const gchar *string;
 
@@ -3494,7 +3466,7 @@ gnc_option_set_ui_value_font (GNCOption *option, gboolean use_default,
         if ((string != NULL) && (*string != '\0'))
         {
             GtkFontButton *font_button = GTK_FONT_BUTTON(widget);
-            gtk_font_button_set_font_name(font_button, string);
+            gtk_font_button_set_font_name (font_button, string);
         }
         g_free ((gpointer *) string);
         return FALSE;
@@ -3507,8 +3479,8 @@ static gboolean
 gnc_option_set_ui_value_pixmap (GNCOption *option, gboolean use_default,
                                 GtkWidget *widget, SCM value)
 {
-    ENTER("option %p(%s)", option, gnc_option_name(option));
-    if (scm_is_string(value))
+    ENTER("option %p(%s)", option, gnc_option_name (option));
+    if (scm_is_string (value))
     {
         const gchar *string;
 
@@ -3517,12 +3489,12 @@ gnc_option_set_ui_value_pixmap (GNCOption *option, gboolean use_default,
         {
             gchar *test;
             DEBUG("string = %s", string);
-            gtk_file_chooser_select_filename(GTK_FILE_CHOOSER(widget), string);
-            test = gtk_file_chooser_get_filename(GTK_FILE_CHOOSER(widget));
-            g_object_set_data_full(G_OBJECT(widget), LAST_SELECTION,
-                                   g_strdup(string), g_free);
+            gtk_file_chooser_select_filename (GTK_FILE_CHOOSER(widget), string);
+            test = gtk_file_chooser_get_filename (GTK_FILE_CHOOSER(widget));
+            g_object_set_data_full (G_OBJECT(widget), LAST_SELECTION,
+                                    g_strdup (string), g_free);
             DEBUG("Set %s, retrieved %s", string, test ? test : "(null)");
-            gnc_image_option_update_preview_cb(GTK_FILE_CHOOSER(widget), option);
+            gnc_image_option_update_preview_cb (GTK_FILE_CHOOSER(widget), option);
         }
         LEAVE("FALSE");
         g_free ((gpointer *) string);
@@ -3533,30 +3505,30 @@ gnc_option_set_ui_value_pixmap (GNCOption *option, gboolean use_default,
     return TRUE;
 }
 
-static gboolean gnc_option_set_ui_value_budget(
-    GNCOption *option, gboolean use_default, GtkWidget *widget, SCM value)
+static gboolean gnc_option_set_ui_value_budget (GNCOption *option,
+                                                gboolean use_default,
+                                                GtkWidget *widget,
+                                                SCM value)
 {
     GncBudget *bgt;
 
 //    if (!scm_is_null(value)) {
     if (value != SCM_BOOL_F)
     {
-        if (!SWIG_IsPointer(value))
-            scm_misc_error("gnc_option_set_ui_value_budget",
-                           "Option Value not a wcp.", value);
+        if (!SWIG_IsPointer (value))
+            scm_misc_error ("gnc_option_set_ui_value_budget",
+                            "Option Value not a wcp.", value);
 
-        bgt = SWIG_MustGetPtr(value, SWIG_TypeQuery("GncBudget *"), 4, 0);
+        bgt = SWIG_MustGetPtr (value, SWIG_TypeQuery ("GncBudget *"), 4, 0);
         if (bgt)
         {
             GtkComboBox *cb = GTK_COMBO_BOX(widget);
-            GtkTreeModel *tm = gtk_combo_box_get_model(cb);
+            GtkTreeModel *tm = gtk_combo_box_get_model (cb);
             GtkTreeIter iter;
-            if (gnc_tree_model_budget_get_iter_for_budget(tm, &iter, bgt))
-                gtk_combo_box_set_active_iter(cb, &iter);
+            if (gnc_tree_model_budget_get_iter_for_budget (tm, &iter, bgt))
+                gtk_combo_box_set_active_iter (cb, &iter);
         }
     }
-
-
     //FIXME: Unimplemented.
     return FALSE;
 }
@@ -3567,7 +3539,7 @@ gnc_option_set_ui_value_radiobutton (GNCOption *option, gboolean use_default,
 {
     int index;
 
-    index = gnc_option_permissible_value_index(option, value);
+    index = gnc_option_permissible_value_index (option, value);
     if (index < 0)
         return TRUE;
     else
@@ -3577,21 +3549,21 @@ gnc_option_set_ui_value_radiobutton (GNCOption *option, gboolean use_default,
         int i;
         gpointer val;
 
-        list = gtk_container_get_children (GTK_CONTAINER (widget));
+        list = gtk_container_get_children (GTK_CONTAINER(widget));
         box = list->data;
         g_list_free(list);
 
-        list = gtk_container_get_children (GTK_CONTAINER (box));
+        list = gtk_container_get_children (GTK_CONTAINER(box));
         for (i = 0; i < index && list; i++)
             list = list->next;
         g_return_val_if_fail (list, TRUE);
 
         button = list->data;
-        g_list_free(list);
-        val = g_object_get_data (G_OBJECT (button), "gnc_radiobutton_index");
-        g_return_val_if_fail (GPOINTER_TO_INT (val) == index, TRUE);
+        g_list_free (list);
+        val = g_object_get_data (G_OBJECT(button), "gnc_radiobutton_index");
+        g_return_val_if_fail (GPOINTER_TO_INT(val) == index, TRUE);
 
-        gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (button), TRUE);
+        gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON(button), TRUE);
         //    g_object_set_data(G_OBJECT(widget), "gnc_radiobutton_index",
         //          GINT_TO_POINTER(index));
         return FALSE;
@@ -3608,53 +3580,53 @@ gnc_option_set_ui_value_dateformat (GNCOption *option, gboolean use_default,
     gboolean years;
     char *custom;
 
-    if (gnc_dateformat_option_value_parse(value, &format, &months, &years, &custom))
+    if (gnc_dateformat_option_value_parse (value, &format, &months, &years, &custom))
         return TRUE;
 
-    gnc_date_format_set_format(gdf, format);
-    gnc_date_format_set_months(gdf, months);
-    gnc_date_format_set_years(gdf, years);
-    gnc_date_format_set_custom(gdf, custom);
-    gnc_date_format_refresh(gdf);
+    gnc_date_format_set_format (gdf, format);
+    gnc_date_format_set_months (gdf, months);
+    gnc_date_format_set_years (gdf, years);
+    gnc_date_format_set_custom (gdf, custom);
+    gnc_date_format_refresh (gdf);
 
     if (custom)
-        free(custom);
+        free (custom);
 
     return FALSE;
 }
 
 static gboolean
 gnc_option_set_ui_value_plot_size (GNCOption *option, gboolean use_default,
-                                    GtkWidget *widget, SCM value)
+                                   GtkWidget *widget, SCM value)
 {
     GList* widget_list;
     GtkWidget *px_button, *p_button, *px_widget, *p_widget;
     char *symbol_str;
     gdouble d_value;
 
-    widget_list = gtk_container_get_children(GTK_CONTAINER(widget));
-    px_button = g_list_nth_data(widget_list, 0);
-    px_widget = g_list_nth_data(widget_list, 1);
-    p_button = g_list_nth_data(widget_list, 2);
-    p_widget = g_list_nth_data(widget_list, 3);
-    g_list_free(widget_list);
+    widget_list = gtk_container_get_children (GTK_CONTAINER(widget));
+    px_button = g_list_nth_data (widget_list, 0);
+    px_widget = g_list_nth_data (widget_list, 1);
+    p_button = g_list_nth_data (widget_list, 2);
+    p_widget = g_list_nth_data (widget_list, 3);
+    g_list_free (widget_list);
 
-    if (scm_is_pair(value))
+    if (scm_is_pair (value))
     {
-        symbol_str = gnc_plot_size_option_value_get_type(value);
-        d_value = gnc_plot_size_option_value_get_value(value);
+        symbol_str = gnc_plot_size_option_value_get_type (value);
+        d_value = gnc_plot_size_option_value_get_value (value);
 
         if (symbol_str)
         {
-            if (g_strcmp0(symbol_str, "pixels") == 0) // pixel values
+            if (g_strcmp0 (symbol_str, "pixels") == 0) // pixel values
             {
-                gtk_spin_button_set_value(GTK_SPIN_BUTTON(px_widget), d_value);
-                gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(px_button), TRUE);
+                gtk_spin_button_set_value (GTK_SPIN_BUTTON(px_widget), d_value);
+                gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON(px_button), TRUE);
             }
             else // percent values
             {
-                gtk_spin_button_set_value(GTK_SPIN_BUTTON(p_widget), (d_value));
-                gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(p_button), TRUE);
+                gtk_spin_button_set_value (GTK_SPIN_BUTTON(p_widget), (d_value));
+                gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON(p_button), TRUE);
             }
             return FALSE;
         }
@@ -3667,7 +3639,7 @@ gnc_option_set_ui_value_currency_accounting (GNCOption *option,
                                              gboolean use_default,
                                              GtkWidget *widget, SCM value)
 {
-    if (scm_is_pair(value))
+    if (scm_is_pair (value))
     {
         SCM rb_symbol;
 
@@ -3677,7 +3649,7 @@ gnc_option_set_ui_value_currency_accounting (GNCOption *option,
         {
             int index;
 
-            index = gnc_option_permissible_value_index(option, rb_symbol);
+            index = gnc_option_permissible_value_index (option, rb_symbol);
             if (index < 0)
                 return TRUE;
             else
@@ -3700,12 +3672,12 @@ gnc_option_set_ui_value_currency_accounting (GNCOption *option,
                         return TRUE;
                 }
 
-                val = g_object_get_data (G_OBJECT (button),
+                val = g_object_get_data (G_OBJECT(button),
                                             "gnc_radiobutton_index");
-                g_return_val_if_fail (GPOINTER_TO_INT (val) == index, TRUE);
+                g_return_val_if_fail (GPOINTER_TO_INT(val) == index, TRUE);
 
-                if (g_strcmp0(gnc_option_permissible_value_name(option,
-                                                                 index),
+                if (g_strcmp0 (gnc_option_permissible_value_name (option,
+                                                                  index),
                                 "Use a Book Currency") == 0)
                 {
                     gnc_commodity *commodity = NULL;
@@ -3747,7 +3719,7 @@ gnc_option_set_ui_value_currency_accounting (GNCOption *option,
                                                                         NULL;
                     }
                 }
-                gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (button), TRUE);
+                gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON(button), TRUE);
                 /* when an unselected button in a group is clicked the clicked
                    button receives the “toggled” signal, as does the
                    previously selected button; however, if the first button
@@ -3758,7 +3730,7 @@ gnc_option_set_ui_value_currency_accounting (GNCOption *option,
                    FALSE, explicitly call the handler here if first button */
                 if (index == 0)
                 {
-                    gnc_option_currency_accounting_non_book_cb(button,
+                    gnc_option_currency_accounting_non_book_cb (button,
                         (gpointer) book_currency_data);
                 }
                 return FALSE;
@@ -3787,7 +3759,7 @@ gnc_option_get_ui_value_boolean (GNCOption *option, GtkWidget *widget)
 {
     gboolean active;
 
-    active = gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(widget));
+    active = gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON(widget));
     return SCM_BOOL(active);
 }
 
@@ -3797,9 +3769,9 @@ gnc_option_get_ui_value_string (GNCOption *option, GtkWidget *widget)
     char * string;
     SCM result;
 
-    string = gtk_editable_get_chars(GTK_EDITABLE(widget), 0, -1);
-    result = scm_from_utf8_string(string ? string : "");
-    g_free(string);
+    string = gtk_editable_get_chars (GTK_EDITABLE(widget), 0, -1);
+    result = scm_from_utf8_string (string ? string : "");
+    g_free (string);
     return result;
 }
 
@@ -3810,8 +3782,8 @@ gnc_option_get_ui_value_text (GNCOption *option, GtkWidget *widget)
     SCM result;
 
     string = xxxgtk_textview_get_text (GTK_TEXT_VIEW(widget));
-    result = scm_from_utf8_string(string ? string : "");
-    g_free(string);
+    result = scm_from_utf8_string (string ? string : "");
+    g_free (string);
     return result;
 }
 
@@ -3821,7 +3793,7 @@ gnc_option_get_ui_value_currency (GNCOption *option, GtkWidget *widget)
     gnc_commodity *commodity;
 
     commodity =
-        gnc_currency_edit_get_currency(GNC_CURRENCY_EDIT(widget));
+        gnc_currency_edit_get_currency (GNC_CURRENCY_EDIT(widget));
 
     return (gnc_commodity_to_scm (commodity));
 }
@@ -3832,9 +3804,9 @@ gnc_option_get_ui_value_commodity (GNCOption *option, GtkWidget *widget)
     gnc_commodity *commodity;
 
     commodity =
-        gnc_general_select_get_selected(GNC_GENERAL_SELECT(widget));
+        gnc_general_select_get_selected (GNC_GENERAL_SELECT(widget));
 
-    return (gnc_commodity_to_scm(commodity));
+    return (gnc_commodity_to_scm (commodity));
 }
 
 static SCM
@@ -3843,8 +3815,8 @@ gnc_option_get_ui_value_multichoice (GNCOption *option, GtkWidget *widget)
     int index;
 
     /* GtkComboBox per-item tooltip changes needed below */
-    index = gnc_combott_get_active(GNC_COMBOTT(widget));
-    return (gnc_option_permissible_value(option, index));
+    index = gnc_combott_get_active (GNC_COMBOTT(widget));
+    return (gnc_option_permissible_value (option, index));
 }
 
 static SCM
@@ -3852,24 +3824,24 @@ gnc_option_get_ui_value_date (GNCOption *option, GtkWidget *widget)
 {
     int index;
     SCM type, val, result = SCM_UNDEFINED;
-    char *subtype = gnc_option_date_option_get_subtype(option);
+    char *subtype = gnc_option_date_option_get_subtype (option);
 
-    if (g_strcmp0(subtype, "relative") == 0)
+    if (g_strcmp0 (subtype, "relative") == 0)
     {
         /* GtkComboBox per-item tooltip changes needed below */
-        index = gnc_combott_get_active(GNC_COMBOTT(widget));
+        index = gnc_combott_get_active (GNC_COMBOTT(widget));
 
         type = scm_from_locale_symbol ("relative");
-        val = gnc_option_permissible_value(option, index);
-        result = scm_cons(type, val);
+        val = gnc_option_permissible_value (option, index);
+        result = scm_cons (type, val);
     }
-    else if (g_strcmp0(subtype, "absolute") == 0)
+    else if (g_strcmp0 (subtype, "absolute") == 0)
     {
         time64 time;
-        time = gnc_date_edit_get_date(GNC_DATE_EDIT(widget));
-        result = scm_cons(scm_from_locale_symbol ("absolute"), scm_from_int64(time));
+        time = gnc_date_edit_get_date (GNC_DATE_EDIT(widget));
+        result = scm_cons (scm_from_locale_symbol ("absolute"), scm_from_int64 (time));
     }
-    else if (g_strcmp0(subtype, "both") == 0)
+    else if (g_strcmp0 (subtype, "both") == 0)
     {
         time64 time;
         int index;
@@ -3877,28 +3849,28 @@ gnc_option_get_ui_value_date (GNCOption *option, GtkWidget *widget)
         GList *widget_list;
         GtkWidget *ab_button, *rel_widget, *ab_widget;
 
-        widget_list = gtk_container_get_children(GTK_CONTAINER(widget));
-        ab_button = g_list_nth_data(widget_list,  GNC_RD_WID_AB_BUTTON_POS);
-        ab_widget = g_list_nth_data(widget_list,  GNC_RD_WID_AB_WIDGET_POS);
-        rel_widget = g_list_nth_data(widget_list, GNC_RD_WID_REL_WIDGET_POS);
-        g_list_free(widget_list);
+        widget_list = gtk_container_get_children (GTK_CONTAINER(widget));
+        ab_button = g_list_nth_data (widget_list,  GNC_RD_WID_AB_BUTTON_POS);
+        ab_widget = g_list_nth_data (widget_list,  GNC_RD_WID_AB_WIDGET_POS);
+        rel_widget = g_list_nth_data (widget_list, GNC_RD_WID_REL_WIDGET_POS);
+        g_list_free (widget_list);
 
         /* if it's an absolute date */
-        if (gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(ab_button)))
+        if (gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON(ab_button)))
         {
-            time = gnc_date_edit_get_date(GNC_DATE_EDIT(ab_widget));
-            result = scm_cons(scm_from_locale_symbol ("absolute"), scm_from_int64 (time));
+            time = gnc_date_edit_get_date (GNC_DATE_EDIT(ab_widget));
+            result = scm_cons (scm_from_locale_symbol ("absolute"), scm_from_int64 (time));
         }
         else
         {
             /* GtkComboBox per-item tooltip changes needed below */
-            index = gnc_combott_get_active(GNC_COMBOTT(rel_widget));
+            index = gnc_combott_get_active (GNC_COMBOTT(rel_widget));
 
-            val = gnc_option_permissible_value(option, index);
-            result = scm_cons(scm_from_locale_symbol ("relative"), val);
+            val = gnc_option_permissible_value (option, index);
+            result = scm_cons (scm_from_locale_symbol ("relative"), val);
         }
     }
-    g_free(subtype);
+    g_free (subtype);
     return result;
 }
 
@@ -3913,8 +3885,8 @@ gnc_option_get_ui_value_account_list (GNCOption *option, GtkWidget *widget)
     list = gnc_tree_view_account_get_selected_accounts (tree);
 
     /* handover list */
-    result = gnc_glist_to_scm_list(list, "_p_Account");
-    g_list_free(list);
+    result = gnc_glist_to_scm_list (list, "_p_Account");
+    g_list_free (list);
     return result;
 }
 
@@ -3930,11 +3902,11 @@ gnc_option_get_ui_value_account_sel (GNCOption *option, GtkWidget *widget)
     if (!acc)
         return SCM_BOOL_F;
 
-    return SWIG_NewPointerObj(acc, SWIG_TypeQuery("_p_Account"), 0);
+    return SWIG_NewPointerObj (acc, SWIG_TypeQuery ("_p_Account"), 0);
 }
 
 static SCM
-gnc_option_get_ui_value_budget(GNCOption *option, GtkWidget *widget)
+gnc_option_get_ui_value_budget (GNCOption *option, GtkWidget *widget)
 {
     GncBudget *bgt;
     GtkComboBox *cb;
@@ -3942,14 +3914,14 @@ gnc_option_get_ui_value_budget(GNCOption *option, GtkWidget *widget)
     GtkTreeIter iter;
 
     cb = GTK_COMBO_BOX(widget);
-    gtk_combo_box_get_active_iter(cb, &iter);
-    tm = gtk_combo_box_get_model(cb);
-    bgt = gnc_tree_model_budget_get_budget(tm, &iter);
+    gtk_combo_box_get_active_iter (cb, &iter);
+    tm = gtk_combo_box_get_model (cb);
+    bgt = gnc_tree_model_budget_get_budget (tm, &iter);
 
     if (!bgt)
         return SCM_BOOL_F;
 
-    return SWIG_NewPointerObj(bgt, SWIG_TypeQuery("_p_budget_s"), 0);
+    return SWIG_NewPointerObj (bgt, SWIG_TypeQuery ("_p_budget_s"), 0);
 }
 
 static SCM
@@ -3962,20 +3934,19 @@ gnc_option_get_ui_value_list (GNCOption *option, GtkWidget *widget)
     gint num_rows;
     gint row;
 
-    selection = gtk_tree_view_get_selection(GTK_TREE_VIEW(widget));
-    num_rows = gnc_option_num_permissible_values(option);
-    result = scm_c_eval_string("'()");
+    selection = gtk_tree_view_get_selection (GTK_TREE_VIEW(widget));
+    num_rows = gnc_option_num_permissible_values (option);
+    result = scm_c_eval_string ("'()");
 
     for (row = 0; row < num_rows; row++)
     {
-        path = gtk_tree_path_new_from_indices(row, -1);
-        selected = gtk_tree_selection_path_is_selected(selection, path);
-        gtk_tree_path_free(path);
+        path = gtk_tree_path_new_from_indices (row, -1);
+        selected = gtk_tree_selection_path_is_selected (selection, path);
+        gtk_tree_path_free (path);
         if (selected)
-            result = scm_cons(gnc_option_permissible_value(option, row), result);
+            result = scm_cons (gnc_option_permissible_value (option, row), result);
     }
-
-    return (scm_reverse(result));
+    return (scm_reverse (result));
 }
 
 static SCM
@@ -3986,7 +3957,7 @@ gnc_option_get_ui_value_number_range (GNCOption *option, GtkWidget *widget)
 
     spinner = GTK_SPIN_BUTTON(widget);
 
-    value = gtk_spin_button_get_value(spinner);
+    value = gtk_spin_button_get_value (spinner);
 
     return (scm_from_double (value));
 }
@@ -4000,18 +3971,18 @@ gnc_option_get_ui_value_color (GNCOption *option, GtkWidget *widget)
     gdouble scale;
 
     ENTER("option %p(%s), widget %p",
-          option, gnc_option_name(option), widget);
+          option, gnc_option_name (option), widget);
 
     color_button = GTK_COLOR_CHOOSER(widget);
-    gtk_color_chooser_get_rgba(color_button, &color);
+    gtk_color_chooser_get_rgba (color_button, &color);
 
-    scale = gnc_option_color_range(option);
+    scale = gnc_option_color_range (option);
 
     result = SCM_EOL;
-    result = scm_cons(scm_from_double (color.alpha * scale), result);
-    result = scm_cons(scm_from_double (color.blue * scale), result);
-    result = scm_cons(scm_from_double (color.green * scale), result);
-    result = scm_cons(scm_from_double (color.red * scale), result);
+    result = scm_cons (scm_from_double (color.alpha * scale), result);
+    result = scm_cons (scm_from_double (color.blue * scale), result);
+    result = scm_cons (scm_from_double (color.green * scale), result);
+    result = scm_cons (scm_from_double (color.red * scale), result);
     return result;
 }
 
@@ -4021,8 +3992,8 @@ gnc_option_get_ui_value_font (GNCOption *option, GtkWidget *widget)
     GtkFontButton *font_button = GTK_FONT_BUTTON(widget);
     const gchar * string;
 
-    string = gtk_font_button_get_font_name(font_button);
-    return (string ? scm_from_utf8_string(string) : SCM_BOOL_F);
+    string = gtk_font_button_get_font_name (font_button);
+    return (string ? scm_from_utf8_string (string) : SCM_BOOL_F);
 }
 
 static SCM
@@ -4031,10 +4002,10 @@ gnc_option_get_ui_value_pixmap (GNCOption *option, GtkWidget *widget)
     gchar *string;
     SCM result;
 
-    string = gtk_file_chooser_get_filename(GTK_FILE_CHOOSER(widget));
+    string = gtk_file_chooser_get_filename (GTK_FILE_CHOOSER(widget));
     DEBUG("filename %s", string ? string : "(null)");
-    result = scm_from_utf8_string(string ? string : "");
-    g_free(string);
+    result = scm_from_utf8_string (string ? string : "");
+    g_free (string);
     return result;
 }
 
@@ -4044,10 +4015,10 @@ gnc_option_get_ui_value_radiobutton (GNCOption *option, GtkWidget *widget)
     gpointer _index;
     int index;
 
-    _index = g_object_get_data(G_OBJECT(widget), "gnc_radiobutton_index");
+    _index = g_object_get_data (G_OBJECT(widget), "gnc_radiobutton_index");
     index = GPOINTER_TO_INT(_index);
 
-    return (gnc_option_permissible_value(option, index));
+    return (gnc_option_permissible_value (option, index));
 }
 
 static SCM
@@ -4059,12 +4030,12 @@ gnc_option_get_ui_value_dateformat (GNCOption *option, GtkWidget *widget)
     gboolean years;
     const char* custom;
 
-    format = gnc_date_format_get_format(gdf);
-    months = gnc_date_format_get_months(gdf);
-    years = gnc_date_format_get_years(gdf);
-    custom = gnc_date_format_get_custom(gdf);
+    format = gnc_date_format_get_format (gdf);
+    months = gnc_date_format_get_months (gdf);
+    years = gnc_date_format_get_years (gdf);
+    custom = gnc_date_format_get_custom (gdf);
 
-    return (gnc_dateformat_option_set_value(format, months, years, custom));
+    return (gnc_dateformat_option_set_value (format, months, years, custom));
 }
 
 static SCM
@@ -4075,41 +4046,41 @@ gnc_option_get_ui_value_plot_size (GNCOption *option, GtkWidget *widget)
     gdouble d_value;
     SCM type, val;
 
-    widget_list = gtk_container_get_children(GTK_CONTAINER(widget));
-    px_button = g_list_nth_data(widget_list, 0);
-    px_widget = g_list_nth_data(widget_list, 1);
+    widget_list = gtk_container_get_children (GTK_CONTAINER(widget));
+    px_button = g_list_nth_data (widget_list, 0);
+    px_widget = g_list_nth_data (widget_list, 1);
     // p_button item 2
-    p_widget = g_list_nth_data(widget_list, 3);
-    g_list_free(widget_list);
+    p_widget = g_list_nth_data (widget_list, 3);
+    g_list_free (widget_list);
 
     if (gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON(px_button)))
     {
-        type = scm_from_locale_symbol("pixels");
-        d_value = gtk_spin_button_get_value(GTK_SPIN_BUTTON(px_widget));
+        type = scm_from_locale_symbol ("pixels");
+        d_value = gtk_spin_button_get_value (GTK_SPIN_BUTTON(px_widget));
     }
     else
     {
-        type = scm_from_locale_symbol("percent");
-        d_value = gtk_spin_button_get_value(GTK_SPIN_BUTTON(p_widget));
+        type = scm_from_locale_symbol ("percent");
+        d_value = gtk_spin_button_get_value (GTK_SPIN_BUTTON(p_widget));
     }
-    val = scm_from_double(d_value);
-    return scm_cons(type, val);
+    val = scm_from_double (d_value);
+    return scm_cons (type, val);
 }
 
 static SCM
-gnc_option_get_ui_value_currency_accounting (
-                                        GNCOption *option, GtkWidget *widget)
+gnc_option_get_ui_value_currency_accounting (GNCOption *option,
+                                             GtkWidget *widget)
 {
     gpointer _index;
     int index;
     SCM value = SCM_EOL;
 
-    _index = g_object_get_data(G_OBJECT(widget), "gnc_radiobutton_index");
+    _index = g_object_get_data (G_OBJECT(widget), "gnc_radiobutton_index");
     index = GPOINTER_TO_INT(_index);
 
     /* build the return list in reverse order */
-    if (g_strcmp0(gnc_option_permissible_value_name(option, index),
-                  "Use a Book Currency") == 0)
+    if (g_strcmp0 (gnc_option_permissible_value_name (option, index),
+                   "Use a Book Currency") == 0)
     {
         gnc_commodity *commodity = NULL;
         int policy_index;
@@ -4124,7 +4095,7 @@ gnc_option_get_ui_value_currency_accounting (
 
             gain_loss_account =
                 gnc_tree_view_account_get_selected_account
-                    (GNC_TREE_VIEW_ACCOUNT (
+                    (GNC_TREE_VIEW_ACCOUNT(
                         book_currency_data->default_gain_loss_account_widget));
 
             if (gain_loss_account == NULL)
@@ -4144,17 +4115,17 @@ gnc_option_get_ui_value_currency_accounting (
         {
             val = SCM_BOOL_F;
         }
-        value = scm_cons(val, value);
+        value = scm_cons (val, value);
 
-        list_of_policies = gnc_get_valid_policy_list();
+        list_of_policies = gnc_get_valid_policy_list ();
         if (list_of_policies && book_currency_data->default_cost_policy_widget)
         {
             GList *l = NULL;
             gint i = 0;
             /* GtkComboBox per-item tooltip changes needed below */
             policy_index =
-                gnc_combott_get_active(GNC_COMBOTT(
-                            book_currency_data->default_cost_policy_widget));
+                gnc_combott_get_active (GNC_COMBOTT(
+                             book_currency_data->default_cost_policy_widget));
             for (l = list_of_policies; l != NULL; l = l->next)
             {
                 GNCPolicy *pcy = l->data;
@@ -4162,27 +4133,27 @@ gnc_option_get_ui_value_currency_accounting (
                     str = PolicyGetName (pcy);
                 i++;
             }
-            g_list_free(list_of_policies);
+            g_list_free (list_of_policies);
         }
         if (str)
         {
-            val = scm_from_locale_symbol(str);
+            val = scm_from_locale_symbol (str);
         }
         else
         {
             val = SCM_BOOL_F;
         }
-        value = scm_cons(val, value);
+        value = scm_cons (val, value);
 
         if (gtk_combo_box_get_active (GTK_COMBO_BOX(book_currency_data->book_currency_widget)) != -1)
         {
             commodity =
-                gnc_currency_edit_get_currency(
+                gnc_currency_edit_get_currency (
                     GNC_CURRENCY_EDIT(
                         book_currency_data->book_currency_widget));
             if (commodity)
             {
-                val = gnc_commodity_to_scm(commodity);
+                val = gnc_commodity_to_scm (commodity);
             }
             else
             {
@@ -4193,10 +4164,10 @@ gnc_option_get_ui_value_currency_accounting (
         {
             val = SCM_BOOL_F;
         }
-        value = scm_cons(val, value);
+        value = scm_cons (val, value);
     }
 
-    return (scm_cons (gnc_option_permissible_value(option, index), value));
+    return (scm_cons (gnc_option_permissible_value (option, index), value));
 }
 
 /************************************/
@@ -4319,7 +4290,7 @@ GNCOptionDef_t * gnc_options_ui_get_option (const char *option_name)
 
 void gnc_options_ui_initialize (void)
 {
-    SWIG_GetModule(NULL); /* Work-around for SWIG bug. */
+    SWIG_GetModule (NULL); /* Work-around for SWIG bug. */
     //  gnc_options_register_stocks ();
     g_return_if_fail (optionTable == NULL);
     optionTable = g_hash_table_new (g_str_hash, g_str_equal);
@@ -4345,14 +4316,14 @@ scm_apply_cb (GNCOptionWin *win, gpointer data)
         results = gnc_option_db_commit (win->option_db);
         for (iter = results; iter; iter = iter->next)
         {
-            GtkWidget *dialog = gtk_message_dialog_new(GTK_WINDOW(gnc_options_dialog_widget(win)),
-                                                       0,
-                                                       GTK_MESSAGE_ERROR,
-                                                       GTK_BUTTONS_OK,
-                                                       "%s",
-                                                       (char*)iter->data);
-            gtk_dialog_run(GTK_DIALOG(dialog));
-            gtk_widget_destroy(dialog);
+            GtkWidget *dialog = gtk_message_dialog_new (GTK_WINDOW(gnc_options_dialog_widget (win)),
+                                                        0,
+                                                        GTK_MESSAGE_ERROR,
+                                                        GTK_BUTTONS_OK,
+                                                        "%s",
+                                                        (char*)iter->data);
+            gtk_dialog_run (GTK_DIALOG(dialog));
+            gtk_widget_destroy (dialog);
             g_free (iter->data);
         }
         g_list_free (results);
diff --git a/gnucash/gnome-utils/dialog-options.h b/gnucash/gnome-utils/dialog-options.h
index e59c1c89e..300071734 100644
--- a/gnucash/gnome-utils/dialog-options.h
+++ b/gnucash/gnome-utils/dialog-options.h
@@ -35,49 +35,49 @@ typedef struct gnc_option_win GNCOptionWin;
 
 typedef void (* GNCOptionWinCallback)(GNCOptionWin *, gpointer data);
 
-GNCOptionWin * gnc_options_dialog_new_modal(gboolean modal, gchar *title,
-                                            const char *component_class,
-                                            GtkWindow *parent);
-GNCOptionWin * gnc_options_dialog_new(gchar *title, GtkWindow *parent);
-GNCOptionWin * gnc_options_dialog_new_w_dialog(gchar *title, GtkWidget *dialog);
-void gnc_options_dialog_destroy(GNCOptionWin * win);
+GNCOptionWin * gnc_options_dialog_new_modal (gboolean modal, gchar *title,
+                                             const char *component_class,
+                                             GtkWindow *parent);
+GNCOptionWin * gnc_options_dialog_new (gchar *title, GtkWindow *parent);
+GNCOptionWin * gnc_options_dialog_new_w_dialog (gchar *title, GtkWidget *dialog);
+void gnc_options_dialog_destroy (GNCOptionWin * win);
 void gnc_options_register_stocks (void);
 
-GtkWidget * gnc_options_dialog_widget(GNCOptionWin * win);
-GtkWidget * gnc_options_page_list(GNCOptionWin * win);
-GtkWidget * gnc_options_dialog_notebook(GNCOptionWin * win);
+GtkWidget * gnc_options_dialog_widget (GNCOptionWin * win);
+GtkWidget * gnc_options_page_list (GNCOptionWin * win);
+GtkWidget * gnc_options_dialog_notebook (GNCOptionWin * win);
 
 void gnc_options_dialog_changed (GNCOptionWin *win);
 
-void gnc_option_changed_widget_cb(GtkWidget *widget, GNCOption *option);
-void gnc_option_changed_option_cb(GtkWidget *dummy, GNCOption *option);
+void gnc_option_changed_widget_cb (GtkWidget *widget, GNCOption *option);
+void gnc_option_changed_option_cb (GtkWidget *dummy, GNCOption *option);
 
-void gnc_options_dialog_set_apply_cb(GNCOptionWin * win,
-                                     GNCOptionWinCallback thunk,
-                                     gpointer cb_data);
-void gnc_options_dialog_set_help_cb(GNCOptionWin * win,
-                                    GNCOptionWinCallback thunk,
-                                    gpointer cb_data);
-void gnc_options_dialog_set_close_cb(GNCOptionWin * win,
+void gnc_options_dialog_set_apply_cb (GNCOptionWin * win,
+                                      GNCOptionWinCallback thunk,
+                                      gpointer cb_data);
+void gnc_options_dialog_set_help_cb (GNCOptionWin * win,
                                      GNCOptionWinCallback thunk,
                                      gpointer cb_data);
+void gnc_options_dialog_set_close_cb (GNCOptionWin * win,
+                                      GNCOptionWinCallback thunk,
+                                      gpointer cb_data);
 
-void gnc_options_dialog_set_global_help_cb(GNCOptionWinCallback thunk,
-        gpointer cb_data);
+void gnc_options_dialog_set_global_help_cb (GNCOptionWinCallback thunk,
+                                            gpointer cb_data);
 
-void gnc_options_dialog_build_contents(GNCOptionWin *win,
-                                       GNCOptionDB  *odb);
+void gnc_options_dialog_build_contents (GNCOptionWin *win,
+                                        GNCOptionDB  *odb);
 
-void gnc_options_dialog_build_contents_full(GNCOptionWin *win,
-                                            GNCOptionDB  *odb,
-                                            gboolean show_dialog);
+void gnc_options_dialog_build_contents_full (GNCOptionWin *win,
+                                             GNCOptionDB  *odb,
+                                             gboolean show_dialog);
 
 /* Both apply_cb and close_cb should be scheme functions with 0 arguments.
  * References to these functions will be held until the close_cb is called
  */
 void gnc_options_dialog_set_scm_callbacks (GNCOptionWin *win,
-        SCM apply_cb,
-        SCM close_cb);
+                                           SCM apply_cb,
+                                           SCM close_cb);
 
 /*****************************************************************/
 /* Option Registration                                           */

commit f93f850f17a333105c8a5106aa05517eea0990a0
Author: Robert Fewell <14uBobIT at gmail.com>
Date:   Thu Oct 22 14:27:54 2020 +0100

    Bug 345924 - Conditionally change Options dialog cancel button
    
    When the options dialog is loaded, the main buttons are a sensitive
    'Cancel' button and insensitive 'OK' and 'Apply' buttons. When changes
    are made the 'OK' and 'Apply' buttons become sensitive and when pressed
    the 'OK' button will make changes and close dialog whereas the 'Apply'
    button will make changes and the dialog will remain open but with these
    buttons insensitive leaving just 'Cancel' sensitive.
    
    This could be confusing so this commit changes conditionally the text
    label of the 'Cancel' button between 'Cancel' and 'Close'.

diff --git a/gnucash/gnome-utils/dialog-options.c b/gnucash/gnome-utils/dialog-options.c
index a9f2ca0ea..511413a03 100644
--- a/gnucash/gnome-utils/dialog-options.c
+++ b/gnucash/gnome-utils/dialog-options.c
@@ -175,6 +175,8 @@ gnc_option_get_gtk_widget (GNCOption *option)
 static void
 gnc_options_dialog_changed_internal (GtkWidget *widget, gboolean sensitive)
 {
+    GtkButton *button = NULL;
+
     while (widget && !GTK_IS_WINDOW(widget))
         widget = gtk_widget_get_parent(widget);
     if (widget == NULL)
@@ -202,6 +204,9 @@ gnc_options_dialog_changed_internal (GtkWidget *widget, gboolean sensitive)
 
                             if (g_strcmp0 (gtk_widget_get_name(GTK_WIDGET(it->data)), "apply_button") == 0)
                                 gtk_widget_set_sensitive (GTK_WIDGET(it->data), sensitive);
+
+                            if (g_strcmp0 (gtk_widget_get_name(GTK_WIDGET(it->data)), "cancel_button") == 0)
+                                button = GTK_BUTTON(it->data);
                         }
                         g_list_free (children);
                     }
@@ -211,6 +216,15 @@ gnc_options_dialog_changed_internal (GtkWidget *widget, gboolean sensitive)
         }
         g_list_free (children);
     }
+
+    if (button)
+    {
+        if (sensitive)
+           gtk_button_set_label (button, _("_Cancel"));
+        else
+           gtk_button_set_label (button, _("_Close"));
+    }
+
 }
 
 void

commit c11f4db96ef1c23903075807bd944731a8eab167
Author: Robert Fewell <14uBobIT at gmail.com>
Date:   Thu Oct 22 14:26:50 2020 +0100

    Bug 345924 - Report options 'Reset Button' always flags changes
    
    If a report is loaded with default settings and the 'Reset button' is
    pressed the 'OK/Apply' buttons will be enabled which should not happen
    as there are no changes to be made.
    
    Fixed by resetting the changed flag on options load and then comparing
    the current value to the default one when the 'Reset button' pressed.

diff --git a/gnucash/gnome-utils/dialog-options.c b/gnucash/gnome-utils/dialog-options.c
index 50a654ee0..a9f2ca0ea 100644
--- a/gnucash/gnome-utils/dialog-options.c
+++ b/gnucash/gnome-utils/dialog-options.c
@@ -225,7 +225,7 @@ void
 gnc_option_changed_widget_cb(GtkWidget *widget, GNCOption *option)
 {
     gnc_option_set_changed (option, TRUE);
-    gnc_option_call_option_widget_changed_proc(option);
+    gnc_option_call_option_widget_changed_proc(option, FALSE);
     gnc_options_dialog_changed_internal (widget, TRUE);
 }
 
@@ -369,7 +369,18 @@ gnc_option_set_ui_value_internal (GNCOption *option, gboolean use_default)
     type = gnc_option_type(option);
 
     if (use_default)
+    {
+        SCM opt_getter = gnc_option_getter(option);
+        SCM opt_value = scm_call_0(opt_getter);
+        SCM def_value;
+
         getter = gnc_option_default_getter(option);
+        def_value = scm_call_0(getter);
+
+        // only set changed if the values have changed
+        if (!scm_is_true(scm_equal_p(opt_value, def_value)))
+            gnc_option_set_changed (option, TRUE);
+    }
     else
         getter = gnc_option_getter(option);
 
@@ -1983,8 +1994,9 @@ gnc_options_dialog_build_contents_full (GNCOptionWin *propertybox,
 
         for (j = 0; j < gnc_option_section_num_options(section); j++)
         {
+            // setting TRUE will clear the changed flag after proc
             gnc_option_call_option_widget_changed_proc(
-                gnc_get_option_section_option(section, j) );
+                gnc_get_option_section_option(section, j), TRUE);
         }
     }
 
@@ -2106,13 +2118,16 @@ gnc_options_dialog_reset_cb(GtkWidget * w, gpointer data)
     GNCOptionSection *section;
     gpointer val;
 
-    val = g_object_get_data(G_OBJECT(w), "section");
+    val = g_object_get_data (G_OBJECT(w), "section");
     g_return_if_fail (val);
     g_return_if_fail (win);
 
     section = (GNCOptionSection*)val;
+
     gnc_option_db_section_reset_widgets (section);
-    gnc_options_dialog_changed_internal (win->window, TRUE);
+
+    if (gnc_option_db_get_changed (win->option_db))
+        gnc_options_dialog_changed_internal (win->window, TRUE);
 }
 
 void
diff --git a/libgnucash/app-utils/option-util.c b/libgnucash/app-utils/option-util.c
index 3ae27a74c..42c3b5a19 100644
--- a/libgnucash/app-utils/option-util.c
+++ b/libgnucash/app-utils/option-util.c
@@ -790,17 +790,19 @@ gnc_option_widget_changed_proc_getter(GNCOption *option)
 }
 
 
-/********************************************************************\
- * gnc_option_call_option_widget_changed_proc                       *
- *   If there is an option_widget_changed_cb for this option, call  *
- *   it with the SCM value of the option that is passed in.  If     *
- *   there is no such callback function or value, do nothing.       *
- *                                                                  *
- * Args: option - the GNCOption                                     *
- * Returns: void                                                    *
-\********************************************************************/
+/**********************************************************************\
+ * gnc_option_call_option_widget_changed_proc                         *
+ *   If there is an option_widget_changed_cb for this option, call    *
+ *   it with the SCM value of the option that is passed in.  If       *
+ *   there is no such callback function or value, do nothing.         *
+ *                                                                    *
+ * Args: option        - the GNCOption                                *
+ *       reset_changed - whether to reset the changed flag afterwards *
+ * Returns: void                                                      *
+\**********************************************************************/
 void
-gnc_option_call_option_widget_changed_proc(GNCOption *option)
+gnc_option_call_option_widget_changed_proc (GNCOption *option,
+                                            gboolean reset_changed)
 {
     SCM cb, value;
 
@@ -815,6 +817,8 @@ gnc_option_call_option_widget_changed_proc(GNCOption *option)
             scm_call_1(cb, value);
         }
     }
+    if (reset_changed)
+        option->changed = FALSE;
 }
 
 
@@ -1847,9 +1851,7 @@ gnc_option_db_section_reset_widgets (GNCOptionSection *section)
             option_node = option_node->next)
     {
         option = option_node->data;
-
         gnc_option_set_ui_value (option, TRUE);
-        gnc_option_set_changed (option, TRUE);
     }
 }
 
diff --git a/libgnucash/app-utils/option-util.h b/libgnucash/app-utils/option-util.h
index 40de7b8a4..ee963ab5f 100644
--- a/libgnucash/app-utils/option-util.h
+++ b/libgnucash/app-utils/option-util.h
@@ -130,7 +130,8 @@ gboolean gnc_option_get_color_info(GNCOption *option,
                                    gdouble *blue,
                                    gdouble *alpha);
 
-void gnc_option_call_option_widget_changed_proc (GNCOption *option);
+void gnc_option_call_option_widget_changed_proc (GNCOption *option,
+                                                 gboolean reset_changed);
 
 void gnc_option_set_default(GNCOption *option);
 

commit 8e5e3480ad691b803e9a742d2bd82059a752095b
Author: Robert Fewell <14uBobIT at gmail.com>
Date:   Tue Oct 20 14:45:44 2020 +0100

    Bug 797984 - Infinite loop while Check&Repair AR and AP accounts
    
    If using the Check&Repair option from the Chart of Accounts on 'Account
    Receivable or Payable' add has a voided transaction will cause an
    infinite loop.
    
    This occurs from checking the transaction split amount is zero in
    gncScrubBusinessSplit and trying to delete it. As the transaction is
    read only as a result of being voided this fails so add a further
    condition for the 'else if' statement to include !is_void.

diff --git a/libgnucash/engine/ScrubBusiness.c b/libgnucash/engine/ScrubBusiness.c
index 818cdeae2..3c02531b5 100644
--- a/libgnucash/engine/ScrubBusiness.c
+++ b/libgnucash/engine/ScrubBusiness.c
@@ -582,7 +582,7 @@ gncScrubBusinessSplit (Split *split)
          * Such splits may be the result of scrubbing the business lots, which can
          * merge splits together while reducing superfluous lot links
          */
-        else if (gnc_numeric_zero_p (xaccSplitGetAmount(split)) && !gncInvoiceGetInvoiceFromTxn (txn))
+        else if (gnc_numeric_zero_p (xaccSplitGetAmount(split)) && !gncInvoiceGetInvoiceFromTxn (txn) && !is_void)
         {
             GNCLot *lot = xaccSplitGetLot (split);
             time64 pdate = xaccTransGetDate (txn);

commit 794b31a98e2f58bde5d094409885f74cdc2498a1
Author: Robert Fewell <14uBobIT at gmail.com>
Date:   Tue Oct 20 14:45:14 2020 +0100

    Change Registers abort_scrub to use gnc_*_abort_scrub functions

diff --git a/gnucash/gnome/gnc-plugin-page-register.c b/gnucash/gnome/gnc-plugin-page-register.c
index 8e5785f6d..9010465af 100644
--- a/gnucash/gnome/gnc-plugin-page-register.c
+++ b/gnucash/gnome/gnc-plugin-page-register.c
@@ -1923,7 +1923,6 @@ gnc_plugin_page_register_update_edit_menu (GncPluginPage* page, gboolean hide)
     gtk_action_set_visible (action,  !hide || can_paste);
 }
 
-static gboolean abort_scrub = FALSE;
 static gboolean is_scrubbing = FALSE;
 static gboolean show_abort_verify = TRUE;
 
@@ -1942,7 +1941,7 @@ finish_scrub (GncPluginPage* page)
         show_abort_verify = FALSE;
 
         if (ret)
-            abort_scrub = TRUE;
+            gnc_set_abort_scrub (TRUE);
     }
     return ret;
 }
@@ -5018,9 +5017,15 @@ scrub_kp_handler (GtkWidget *widget, GdkEventKey *event, gpointer data)
     switch (event->keyval)
     {
     case GDK_KEY_Escape:
-        abort_scrub = gnc_verify_dialog (GTK_WINDOW(widget), FALSE,
-                           _("'Check & Repair' is currently running, do you want to abort it?"));
-        return TRUE;
+        {
+            gboolean abort_scrub = gnc_verify_dialog (GTK_WINDOW(widget), FALSE,
+                 _("'Check & Repair' is currently running, do you want to abort it?"));
+        
+            if (abort_scrub)
+                gnc_set_abort_scrub (TRUE);
+        
+            return TRUE;
+        }
     default:
         break;
     }
@@ -5053,7 +5058,7 @@ gnc_plugin_page_register_cmd_scrub_all (GtkAction* action,
 
     gnc_suspend_gui_refresh();
     is_scrubbing = TRUE;
-    abort_scrub = FALSE;
+    gnc_set_abort_scrub (FALSE);
     window = GNC_WINDOW (GNC_PLUGIN_PAGE (plugin_page)->window);
     scrub_kp_handler_ID = g_signal_connect (G_OBJECT (window), "key-press-event",
                                             G_CALLBACK (scrub_kp_handler), NULL);
@@ -5061,7 +5066,7 @@ gnc_plugin_page_register_cmd_scrub_all (GtkAction* action,
 
     splits = qof_query_run (query);
     split_count = g_list_length (splits);
-    for (node = splits; node && !abort_scrub; node = node->next, curr_split_no++)
+    for (node = splits; node && !gnc_get_abort_scrub (); node = node->next, curr_split_no++)
     {
         Split* split = node->data;
 
@@ -5087,7 +5092,7 @@ gnc_plugin_page_register_cmd_scrub_all (GtkAction* action,
     gnc_window_show_progress (NULL, -1.0);
     is_scrubbing = FALSE;
     show_abort_verify = TRUE;
-    abort_scrub = FALSE;
+    gnc_set_abort_scrub (FALSE);
 
     gnc_resume_gui_refresh();
     LEAVE (" ");

commit 1be3b7808ddbcb48f898c7eca47155549ee9d601
Author: Robert Fewell <14uBobIT at gmail.com>
Date:   Tue Oct 20 14:44:20 2020 +0100

    Allow the Check&Repair to be cancellable on a Register page
    
    Add a callback for a keypress event when on the Register page that
    checks for the Escape key and presents a dialog to confirm whether to
    abort the Check&Repair. A similar dialog is used if you decide to quit
    Gnucash while the Check&Repair is still running.

diff --git a/gnucash/gnome/gnc-plugin-page-register.c b/gnucash/gnome/gnc-plugin-page-register.c
index 5e36244e3..8e5785f6d 100644
--- a/gnucash/gnome/gnc-plugin-page-register.c
+++ b/gnucash/gnome/gnc-plugin-page-register.c
@@ -1925,22 +1925,26 @@ gnc_plugin_page_register_update_edit_menu (GncPluginPage* page, gboolean hide)
 
 static gboolean abort_scrub = FALSE;
 static gboolean is_scrubbing = FALSE;
+static gboolean show_abort_verify = TRUE;
 
 static gboolean
 finish_scrub (GncPluginPage* page)
 {
+    gboolean ret = FALSE;
+
     if (is_scrubbing)
     {
-        gboolean ret = gnc_verify_dialog (GTK_WINDOW (gnc_plugin_page_get_window (GNC_PLUGIN_PAGE (page))), FALSE, _("'Check & Repair' is currently running, do you want to abort it?"));
+        ret = gnc_verify_dialog (GTK_WINDOW(gnc_plugin_page_get_window
+                                (GNC_PLUGIN_PAGE(page))),
+                                FALSE,
+                                _("'Check & Repair' is currently running, do you want to abort it?"));
+        
+        show_abort_verify = FALSE;
+
         if (ret)
-        {
             abort_scrub = TRUE;
-            gnc_resume_gui_refresh (); // This is so quit does not complain about an ongoing operation.
-            return TRUE;
-        }
-        return FALSE;
     }
-    return TRUE;
+    return ret;
 }
 
 static gboolean
@@ -1953,8 +1957,11 @@ gnc_plugin_page_register_finish_pending (GncPluginPage* page)
     const gchar* name;
     gint response;
 
-    if (!finish_scrub (page))
-        return FALSE;
+    if (is_scrubbing && show_abort_verify)
+    {
+        if (!finish_scrub (page))
+            return FALSE;
+    }
 
     reg_page = GNC_PLUGIN_PAGE_REGISTER (page);
     priv = GNC_PLUGIN_PAGE_REGISTER_GET_PRIVATE (reg_page);
@@ -5000,10 +5007,26 @@ gnc_plugin_page_register_cmd_scrub_current (GtkAction* action,
     gnc_suspend_gui_refresh();
     scrub_split (gnc_split_register_get_current_split (reg));
     gnc_resume_gui_refresh();
-
     LEAVE (" ");
 }
 
+static gboolean
+scrub_kp_handler (GtkWidget *widget, GdkEventKey *event, gpointer data)
+{
+    if (event->length == 0) return FALSE;
+
+    switch (event->keyval)
+    {
+    case GDK_KEY_Escape:
+        abort_scrub = gnc_verify_dialog (GTK_WINDOW(widget), FALSE,
+                           _("'Check & Repair' is currently running, do you want to abort it?"));
+        return TRUE;
+    default:
+        break;
+    }
+    return FALSE;
+}
+
 static void
 gnc_plugin_page_register_cmd_scrub_all (GtkAction* action,
                                         GncPluginPageRegister* plugin_page)
@@ -5013,6 +5036,7 @@ gnc_plugin_page_register_cmd_scrub_all (GtkAction* action,
     GncWindow* window;
     GList* node, *splits;
     gint split_count = 0, curr_split_no = 0;
+    gulong scrub_kp_handler_ID;
     const char* message = _ ("Checking splits in current register: %u of %u");
 
     g_return_if_fail (GNC_IS_PLUGIN_PAGE_REGISTER (plugin_page));
@@ -5029,7 +5053,10 @@ gnc_plugin_page_register_cmd_scrub_all (GtkAction* action,
 
     gnc_suspend_gui_refresh();
     is_scrubbing = TRUE;
+    abort_scrub = FALSE;
     window = GNC_WINDOW (GNC_PLUGIN_PAGE (plugin_page)->window);
+    scrub_kp_handler_ID = g_signal_connect (G_OBJECT (window), "key-press-event",
+                                            G_CALLBACK (scrub_kp_handler), NULL);
     gnc_window_set_progressbar_window (window);
 
     splits = qof_query_run (query);
@@ -5043,22 +5070,26 @@ gnc_plugin_page_register_cmd_scrub_all (GtkAction* action,
         PINFO ("Start processing split %d of %d",
                curr_split_no + 1, split_count);
 
+        scrub_split (split);
+
+        PINFO ("Finished processing split %d of %d",
+               curr_split_no + 1, split_count);
+
         if (curr_split_no % 10 == 0)
         {
             char* progress_msg = g_strdup_printf (message, curr_split_no, split_count);
             gnc_window_show_progress (progress_msg, (100 * curr_split_no) / split_count);
             g_free (progress_msg);
         }
-
-        scrub_split (split);
-
-        PINFO ("Finished processing split %d of %d",
-               curr_split_no + 1, split_count);
     }
 
+    g_signal_handler_disconnect (G_OBJECT(window), scrub_kp_handler_ID);
     gnc_window_show_progress (NULL, -1.0);
-    gnc_resume_gui_refresh();
     is_scrubbing = FALSE;
+    show_abort_verify = TRUE;
+    abort_scrub = FALSE;
+
+    gnc_resume_gui_refresh();
     LEAVE (" ");
 }
 

commit 122cd682f621396a5e295b2351079f92d76e27a7
Author: Robert Fewell <14uBobIT at gmail.com>
Date:   Tue Oct 20 14:43:39 2020 +0100

    Add some additional places where Check&Repair can be aborted

diff --git a/libgnucash/engine/Scrub.c b/libgnucash/engine/Scrub.c
index 66a261324..d5007cac1 100644
--- a/libgnucash/engine/Scrub.c
+++ b/libgnucash/engine/Scrub.c
@@ -84,6 +84,10 @@ void
 xaccAccountTreeScrubOrphans (Account *acc, QofPercentageFunc percentagefunc)
 {
     if (!acc) return;
+
+    if (abort_now)
+        (percentagefunc)(NULL, -1.0);
+
     scrub_depth ++;
     xaccAccountScrubOrphans (acc, percentagefunc);
     gnc_account_foreach_descendant(acc,
@@ -320,6 +324,11 @@ xaccSplitScrub (Split *split)
 void
 xaccAccountTreeScrubImbalance (Account *acc, QofPercentageFunc percentagefunc)
 {
+    if (!acc) return;
+
+    if (abort_now)
+        (percentagefunc)(NULL, -1.0);
+
     scrub_depth++;
     xaccAccountScrubImbalance (acc, percentagefunc);
     gnc_account_foreach_descendant(acc,
diff --git a/libgnucash/engine/ScrubBusiness.c b/libgnucash/engine/ScrubBusiness.c
index 60da73794..818cdeae2 100644
--- a/libgnucash/engine/ScrubBusiness.c
+++ b/libgnucash/engine/ScrubBusiness.c
@@ -38,6 +38,7 @@
 #include "Account.h"
 #include "gncInvoice.h"
 #include "gncInvoiceP.h"
+#include "Scrub.h"
 #include "Scrub2.h"
 #include "ScrubBusiness.h"
 #include "Transaction.h"
@@ -614,6 +615,10 @@ gncScrubBusinessAccountLots (Account *acc, QofPercentageFunc percentagefunc)
     const char *message = _( "Checking business lots in account %s: %u of %u");
 
     if (!acc) return;
+
+    if (gnc_get_abort_scrub())
+        (percentagefunc)(NULL, -1.0);
+
     if (FALSE == xaccAccountIsAPARType (xaccAccountGetType (acc))) return;
 
     str = xaccAccountGetName(acc);
@@ -664,6 +669,10 @@ gncScrubBusinessAccountSplits (Account *acc, QofPercentageFunc percentagefunc)
     const char *message = _( "Checking business splits in account %s: %u of %u");
 
     if (!acc) return;
+
+    if (gnc_get_abort_scrub())
+        (percentagefunc)(NULL, -1.0);
+
     if (FALSE == xaccAccountIsAPARType (xaccAccountGetType (acc))) return;
 
     str = xaccAccountGetName(acc);
@@ -684,6 +693,9 @@ restart:
         PINFO("Start processing split %d of %d",
               curr_split_no + 1, split_count);
 
+        if (gnc_get_abort_scrub ())
+            break;
+
         if (curr_split_no % 100 == 0)
         {
             char *progress_msg = g_strdup_printf (message, str, curr_split_no, split_count);

commit 6ee537e1a7fd053129c7cdaf2b3dcf7d34aa9cfa
Author: Robert Fewell <14uBobIT at gmail.com>
Date:   Tue Oct 20 14:42:32 2020 +0100

    Allow the Check&Repair routine to be cancellable from CoA
    
    Add a callback for a keypress event when on the Accounts page that
    checks for the Escape key and presents a dialog to confirm whether to
    abort the Check&Repair. A similar dialog is used if you decide to quit
    Gnucash while the Check&Repair is still running.

diff --git a/gnucash/gnome/gnc-plugin-page-account-tree.c b/gnucash/gnome/gnc-plugin-page-account-tree.c
index 7d5352c24..07654d1b7 100644
--- a/gnucash/gnome/gnc-plugin-page-account-tree.c
+++ b/gnucash/gnome/gnc-plugin-page-account-tree.c
@@ -425,6 +425,8 @@ gnc_plugin_page_account_tree_new (void)
 
 G_DEFINE_TYPE_WITH_PRIVATE(GncPluginPageAccountTree, gnc_plugin_page_account_tree, GNC_TYPE_PLUGIN_PAGE)
 
+static gboolean show_abort_verify = TRUE;
+
 static void
 prepare_scrubbing ()
 {
@@ -432,21 +434,42 @@ prepare_scrubbing ()
     gnc_set_abort_scrub (FALSE);
 }
 
+static void
+finish_scrubbing (GncWindow *window, gulong handler_id)
+{
+    g_signal_handler_disconnect (G_OBJECT(window), handler_id);
+    show_abort_verify = TRUE;
+    gnc_resume_gui_refresh ();
+}
+
 static gboolean
-finish (GncPluginPage* page)
+gnc_plugin_page_account_finish_pending (GncPluginPage* page)
 {
     if (gnc_get_ongoing_scrub ())
     {
-        gboolean ret = gnc_verify_dialog (GTK_WINDOW (gnc_plugin_page_get_window (GNC_PLUGIN_PAGE (page))), FALSE, _("'Check & Repair' is currently running, do you want to abort it?"));
-        if (ret)
+        if (show_abort_verify)
         {
-            gnc_set_abort_scrub (TRUE);
-            gnc_resume_gui_refresh (); // This is so quit does not complain about an ongoing operation.
-            return TRUE;
+            gboolean ret = gnc_verify_dialog (GTK_WINDOW(gnc_plugin_page_get_window
+                                             (GNC_PLUGIN_PAGE(page))), FALSE,
+                                             _("'Check & Repair' is currently running, do you want to abort it?"));
+
+            show_abort_verify = FALSE;
+
+            if (ret)
+                gnc_set_abort_scrub (TRUE);
+
+            return ret; // verify response
+        }
+        else
+        {
+            if (gnc_get_abort_scrub ())
+                return TRUE; // close
+            else
+                return FALSE; // no close
         }
-        return FALSE;
     }
-    return TRUE;
+    else
+        return TRUE; // normal close
 }
 
 static void
@@ -466,8 +489,7 @@ gnc_plugin_page_account_tree_class_init (GncPluginPageAccountTreeClass *klass)
     gnc_plugin_class->save_page       = gnc_plugin_page_account_tree_save_page;
     gnc_plugin_class->recreate_page   = gnc_plugin_page_account_tree_recreate_page;
     gnc_plugin_class->focus_page_function = gnc_plugin_page_account_tree_focus_widget;
-    gnc_plugin_class->finish_pending = finish;
-
+    gnc_plugin_class->finish_pending = gnc_plugin_page_account_finish_pending;
 
     plugin_page_signals[ACCOUNT_SELECTED] =
         g_signal_new ("account_selected",
@@ -1955,17 +1977,42 @@ gnc_plugin_page_account_tree_cmd_lots (GtkAction *action,
     gnc_lot_viewer_dialog (GTK_WINDOW(window), account);
 }
 
+static gboolean scrub_kp_handler (GtkWidget *widget, GdkEventKey *event, gpointer data)
+{
+    if (event->length == 0) return FALSE;
+
+    switch (event->keyval)
+    {
+    case GDK_KEY_Escape:
+        {
+            gboolean abort_scrub = gnc_verify_dialog (GTK_WINDOW(widget), FALSE,
+                 _("'Check & Repair' is currently running, do you want to abort it?"));
+
+            if (abort_scrub)
+                gnc_set_abort_scrub (TRUE);
+
+            return TRUE;
+        }
+    default:
+        break;
+    }
+    return FALSE;
+}
+
 static void
 gnc_plugin_page_account_tree_cmd_scrub (GtkAction *action, GncPluginPageAccountTree *page)
 {
     Account *account = gnc_plugin_page_account_tree_get_current_account (page);
     GncWindow *window;
+    gulong scrub_kp_handler_ID;
 
     g_return_if_fail (account != NULL);
 
     prepare_scrubbing ();
 
     window = GNC_WINDOW(GNC_PLUGIN_PAGE (page)->window);
+    scrub_kp_handler_ID = g_signal_connect (G_OBJECT(window), "key-press-event",
+                                            G_CALLBACK(scrub_kp_handler), NULL);
     gnc_window_set_progressbar_window (window);
 
     xaccAccountScrubOrphans (account, gnc_window_show_progress);
@@ -1977,8 +2024,7 @@ gnc_plugin_page_account_tree_cmd_scrub (GtkAction *action, GncPluginPageAccountT
 
     gncScrubBusinessAccount(account, gnc_window_show_progress);
 
-
-    gnc_resume_gui_refresh ();
+    finish_scrubbing (window, scrub_kp_handler_ID);
 }
 
 static void
@@ -1986,12 +2032,15 @@ gnc_plugin_page_account_tree_cmd_scrub_sub (GtkAction *action, GncPluginPageAcco
 {
     Account *account = gnc_plugin_page_account_tree_get_current_account (page);
     GncWindow *window;
+    gulong scrub_kp_handler_ID;
 
     g_return_if_fail (account != NULL);
 
     prepare_scrubbing ();
 
     window = GNC_WINDOW(GNC_PLUGIN_PAGE (page)->window);
+    scrub_kp_handler_ID = g_signal_connect (G_OBJECT(window), "key-press-event",
+                                            G_CALLBACK(scrub_kp_handler), NULL);
     gnc_window_set_progressbar_window (window);
 
     xaccAccountTreeScrubOrphans (account, gnc_window_show_progress);
@@ -2003,7 +2052,7 @@ gnc_plugin_page_account_tree_cmd_scrub_sub (GtkAction *action, GncPluginPageAcco
 
     gncScrubBusinessAccountTree(account, gnc_window_show_progress);
 
-    gnc_resume_gui_refresh ();
+    finish_scrubbing (window, scrub_kp_handler_ID);
 }
 
 static void
@@ -2011,10 +2060,13 @@ gnc_plugin_page_account_tree_cmd_scrub_all (GtkAction *action, GncPluginPageAcco
 {
     Account *root = gnc_get_current_root_account ();
     GncWindow *window;
+    gulong scrub_kp_handler_ID;
 
     prepare_scrubbing ();
 
     window = GNC_WINDOW(GNC_PLUGIN_PAGE (page)->window);
+    scrub_kp_handler_ID = g_signal_connect (G_OBJECT(window), "key-press-event",
+                                            G_CALLBACK(scrub_kp_handler), NULL);
     gnc_window_set_progressbar_window (window);
 
     xaccAccountTreeScrubOrphans (root, gnc_window_show_progress);
@@ -2025,7 +2077,7 @@ gnc_plugin_page_account_tree_cmd_scrub_all (GtkAction *action, GncPluginPageAcco
 
     gncScrubBusinessAccountTree(root, gnc_window_show_progress);
 
-    gnc_resume_gui_refresh ();
+    finish_scrubbing (window, scrub_kp_handler_ID);
 }
 
 /** @} */
diff --git a/libgnucash/engine/Scrub.c b/libgnucash/engine/Scrub.c
index a16c0cf91..66a261324 100644
--- a/libgnucash/engine/Scrub.c
+++ b/libgnucash/engine/Scrub.c
@@ -66,6 +66,12 @@ gnc_set_abort_scrub (gboolean abort)
     abort_now = abort;
 }
 
+gboolean
+gnc_get_abort_scrub (void)
+{
+    return abort_now;
+}
+
 gboolean
 gnc_get_ongoing_scrub (void)
 {
diff --git a/libgnucash/engine/Scrub.h b/libgnucash/engine/Scrub.h
index bfaea845a..34ec0e598 100644
--- a/libgnucash/engine/Scrub.h
+++ b/libgnucash/engine/Scrub.h
@@ -74,6 +74,7 @@
  *    any scrubbing operation.
  */
 void gnc_set_abort_scrub (gboolean abort);
+gboolean gnc_get_abort_scrub (void);
 
 /** The gnc_get_ongoing_scrub () method returns TRUE if a scrub operation is ongoing.
  */

commit 94a68dca7cf94bf23b808986c8df19449da4f2bb
Author: John Ralls <jralls at ceridwen.us>
Date:   Sun Oct 18 15:04:06 2020 -0700

    Bug 797983 - v4.2 report numbers change over gnucash restarts;...
    
    Price Database dropping user:price-editor entries.
    
    A wider problem: QofInstance was unmarking itself dirty as long as the
    backend raised an error and unconditionally marking itself non-infant.
    
    This matters because the SQL backend depends on infant status to decide
    whether to do an insert or update query; either will fail if the infant
    status is wrong.
    
    The price editor dialog clones a price having only its commodity set and
    GncSqlPriceBackend declines to save if the currency isn't set. Since the
    instance marked itself non-infant even though it wasn't saved subsequent
    commits tried to use an update query and since the price wasn't in the
    table that inevitably failed.
    
    Requiring that QofBackend::commit should doing the marking-clean
    required implementing it in the backends where it wasn't already.

diff --git a/libgnucash/backend/xml/gnc-xml-backend.cpp b/libgnucash/backend/xml/gnc-xml-backend.cpp
index 8f7b01070..dc3bbb19b 100644
--- a/libgnucash/backend/xml/gnc-xml-backend.cpp
+++ b/libgnucash/backend/xml/gnc-xml-backend.cpp
@@ -314,6 +314,13 @@ GncXmlBackend::sync(QofBook* book)
     remove_old_files();
 }
 
+void
+GncXmlBackend::commit(QofInstance* instance)
+{
+    if (qof_instance_is_dirty(instance))
+        qof_instance_mark_clean(instance);
+}
+
 bool
 GncXmlBackend::save_may_clobber_data()
 {
diff --git a/libgnucash/backend/xml/gnc-xml-backend.hpp b/libgnucash/backend/xml/gnc-xml-backend.hpp
index 362038452..fd84c5bbb 100644
--- a/libgnucash/backend/xml/gnc-xml-backend.hpp
+++ b/libgnucash/backend/xml/gnc-xml-backend.hpp
@@ -43,6 +43,7 @@ public:
     void export_coa(QofBook*) override;
     void sync(QofBook* book) override;
     void safe_sync(QofBook* book) override { sync(book); } // XML sync is inherently safe.
+    void commit(QofInstance* instance) override;
     const char * get_filename() { return m_fullpath.c_str(); }
     QofBook* get_book() { return m_book; }
 
diff --git a/libgnucash/engine/qof-backend.cpp b/libgnucash/engine/qof-backend.cpp
index 41c8df220..c18b8490e 100644
--- a/libgnucash/engine/qof-backend.cpp
+++ b/libgnucash/engine/qof-backend.cpp
@@ -48,6 +48,13 @@ G_GNUC_UNUSED static QofLogModule log_module = QOF_MOD_BACKEND;
 
 GModuleVec QofBackend::c_be_registry{};
 
+void
+QofBackend::commit(QofInstance* instance)
+{
+    if (qof_instance_is_dirty(instance))
+        qof_instance_mark_clean(instance);
+}
+
 void
 QofBackend::set_error(QofBackendError err)
 {
diff --git a/libgnucash/engine/qof-backend.hpp b/libgnucash/engine/qof-backend.hpp
index 5fd51e42d..aac960252 100644
--- a/libgnucash/engine/qof-backend.hpp
+++ b/libgnucash/engine/qof-backend.hpp
@@ -220,7 +220,7 @@ public:
 /**
  *    Commits the changes from the engine to the backend data storage.
  */
-    virtual void commit (QofInstance*) {}
+    virtual void commit (QofInstance*);
 /**
  *    Revert changes in the engine and unlock the backend.
  */
diff --git a/libgnucash/engine/qofinstance.cpp b/libgnucash/engine/qofinstance.cpp
index 9f2952f3c..980e43bf9 100644
--- a/libgnucash/engine/qofinstance.cpp
+++ b/libgnucash/engine/qofinstance.cpp
@@ -1030,10 +1030,9 @@ qof_commit_edit_part2(QofInstance *inst,
                 on_error(inst, errcode);
             return FALSE;
         }
-        /* XXX the backend commit code should clear dirty!! */
-        priv->dirty = FALSE;
+        if (!priv->dirty) //Cleared if the save was successful
+            priv->infant = FALSE;
     }
-    priv->infant = FALSE;
 
     if (priv->do_free)
     {
diff --git a/libgnucash/engine/test/test-qofinstance.cpp b/libgnucash/engine/test/test-qofinstance.cpp
index 301c7e289..1f979a161 100644
--- a/libgnucash/engine/test/test-qofinstance.cpp
+++ b/libgnucash/engine/test/test-qofinstance.cpp
@@ -76,6 +76,8 @@ public:
         g_assert( commit_test.m_inst == inst );
         g_assert( commit_test.m_be == this );
         commit_test.m_commit_called = true;
+        if (qof_instance_is_dirty(inst))
+            qof_instance_mark_clean(inst);
         set_error(m_qof_error);
 
     }
@@ -569,7 +571,7 @@ test_instance_commit_edit_part2( Fixture *fixture, gconstpointer pData )
     result = qof_commit_edit_part2( fixture->inst, NULL, NULL, NULL );
     g_assert( result );
     g_assert( qof_instance_get_dirty_flag( fixture->inst ) );
-    g_assert( !qof_instance_get_infant( fixture->inst ) );
+    g_assert( qof_instance_get_infant( fixture->inst ) );
     g_assert( !commit_test.m_commit_called );
     g_assert( !commit_test.m_commit_with_err_called );
     g_assert( !commit_test.m_on_error_called );
@@ -581,6 +583,7 @@ test_instance_commit_edit_part2( Fixture *fixture, gconstpointer pData )
     result = qof_commit_edit_part2( fixture->inst, on_error, on_done, on_free );
     g_assert( result );
     g_assert( qof_instance_get_dirty_flag( fixture->inst ) );
+    g_assert( qof_instance_get_infant( fixture->inst ) );
     g_assert( !commit_test.m_commit_called );
     g_assert( !commit_test.m_commit_with_err_called );
     g_assert( !commit_test.m_on_error_called );
@@ -593,6 +596,7 @@ test_instance_commit_edit_part2( Fixture *fixture, gconstpointer pData )
     result = qof_commit_edit_part2( fixture->inst, on_error, on_done, on_free );
     g_assert( result );
     g_assert( qof_instance_get_dirty_flag( fixture->inst ) );
+    g_assert( qof_instance_get_infant( fixture->inst ) );
     g_assert( !commit_test.m_commit_called );
     g_assert( !commit_test.m_commit_with_err_called );
     g_assert( !commit_test.m_on_error_called );
@@ -606,6 +610,7 @@ test_instance_commit_edit_part2( Fixture *fixture, gconstpointer pData )
     result = qof_commit_edit_part2( fixture->inst, on_error, on_done, on_free );
     g_assert( result );
     g_assert( !qof_instance_get_dirty_flag( fixture->inst ) );
+    g_assert( !qof_instance_get_infant( fixture->inst ) );
     g_assert( commit_test.m_commit_called );
     g_assert( !commit_test.m_commit_with_err_called );
     g_assert( !commit_test.m_on_error_called );
@@ -620,7 +625,7 @@ test_instance_commit_edit_part2( Fixture *fixture, gconstpointer pData )
     qof_instance_set_destroying( fixture->inst, TRUE );
     result = qof_commit_edit_part2( fixture->inst, on_error, on_done, on_free );
     g_assert( !result );
-    g_assert( qof_instance_get_dirty_flag( fixture->inst ) );
+    g_assert( !qof_instance_get_dirty_flag( fixture->inst ) );
     g_assert( !qof_instance_get_destroying( fixture->inst ) );
     g_assert( commit_test.m_commit_called );
     g_assert( commit_test.m_on_error_called );

commit e255a7bfe2f3d945b17a348a002e4380a35c7301
Author: John Ralls <jralls at ceridwen.us>
Date:   Sun Oct 18 10:58:42 2020 -0700

    Make the price database list obey the force-prices-to-decimal preference.
    
    It was always displaying decimals regardless of the preference value.

diff --git a/gnucash/gnome-utils/gnc-tree-model-price.c b/gnucash/gnome-utils/gnc-tree-model-price.c
index 55311c7ed..bca5f3067 100644
--- a/gnucash/gnome-utils/gnc-tree-model-price.c
+++ b/gnucash/gnome-utils/gnc-tree-model-price.c
@@ -164,7 +164,7 @@ gnc_tree_model_price_init (GncTreeModelPrice *model)
     }
 
     priv = GNC_TREE_MODEL_PRICE_GET_PRIVATE(model);
-    priv->print_info = gnc_share_print_info_places(6);
+    priv->print_info = gnc_default_price_print_info(NULL);
 }
 
 static void

commit 190d5f1a616791deaaf68e9a86eebba67bcae193
Author: Robert Fewell <14uBobIT at gmail.com>
Date:   Thu Oct 15 15:21:05 2020 +0100

    Bug 797971 - Inserting description text behaves oddly
    
    This is best observed when trying to insert a character, say x when the
    cursor is before the last character, the cursor will jump to the end
    like... ABCD|E results in ABCDxE|
    
    It can also affect when inserting/changing text that has come from the
    quick fill the cursor may end up in the wrong place.
    
    Changed a test condition to use the incoming new character length value
    instead of the existing cell one.

diff --git a/gnucash/register/register-core/quickfillcell.c b/gnucash/register/register-core/quickfillcell.c
index 39332eeab..f1d4817b1 100644
--- a/gnucash/register/register-core/quickfillcell.c
+++ b/gnucash/register/register-core/quickfillcell.c
@@ -198,7 +198,7 @@ gnc_quickfill_cell_modify_verify (BasicCell *_cell,
     }
 
     /* If we are inserting in the middle, just accept */
-    if (*cursor_position < _cell->value_chars)
+    if (*cursor_position < newval_chars)
     {
         gnc_basic_cell_set_value_internal (&cell->cell, newval);
         gnc_quickfill_cell_set_original (cell, NULL);
@@ -233,8 +233,6 @@ gnc_quickfill_cell_modify_verify (BasicCell *_cell,
         if (cell->original != NULL)
             newval = cell->original;
 
-        *cursor_position = -1;
-
         gnc_basic_cell_set_value_internal (&cell->cell, newval);
         return;
     }

commit 6394b6491b719089aeb83917bc7dd0714c880e98
Author: Christian Gruber <christian.gruber at posteo.de>
Date:   Mon Oct 5 22:48:52 2020 +0200

    fixup! Simplify type checking for GObject mockups

diff --git a/libgnucash/engine/mocks/gmock-Account.cpp b/libgnucash/engine/mocks/gmock-Account.cpp
index 1b5f30a4a..b4dd7d28f 100644
--- a/libgnucash/engine/mocks/gmock-Account.cpp
+++ b/libgnucash/engine/mocks/gmock-Account.cpp
@@ -47,7 +47,7 @@ QofBook *
 gnc_account_get_book(const Account *account)
 {
     SCOPED_TRACE("");
-    const MockAccount* mockaccount = gnc_mockaccount(account);
+    auto mockaccount = gnc_mockaccount(account);
     return mockaccount ? mockaccount->get_book() : nullptr;
 }
 
@@ -56,7 +56,7 @@ xaccAccountForEachTransaction(const Account *acc, TransactionCallback proc,
                               void *data)
 {
     SCOPED_TRACE("");
-    const MockAccount* mockaccount = gnc_mockaccount(acc);
+    auto mockaccount = gnc_mockaccount(acc);
     return mockaccount ? mockaccount->for_each_transaction(proc, data) : 0;
 }
 
@@ -64,7 +64,7 @@ GncImportMatchMap *
 gnc_account_imap_create_imap (Account *acc)
 {
     SCOPED_TRACE("");
-    MockAccount* mockaccount = gnc_mockaccount(acc);
+    auto mockaccount = gnc_mockaccount(acc);
     return mockaccount ? mockaccount->create_imap() : nullptr;
 }
 
diff --git a/libgnucash/engine/mocks/gmock-Split.cpp b/libgnucash/engine/mocks/gmock-Split.cpp
index 1355f121d..de67a40f5 100644
--- a/libgnucash/engine/mocks/gmock-Split.cpp
+++ b/libgnucash/engine/mocks/gmock-Split.cpp
@@ -45,7 +45,7 @@ QofBook *
 xaccSplitGetBook (const Split *split)
 {
     SCOPED_TRACE("");
-    const MockSplit* mocksplit = gnc_mocksplit(split);
+    auto mocksplit = gnc_mocksplit(split);
     return mocksplit ? mocksplit->get_book() : nullptr;
 }
 
@@ -53,7 +53,7 @@ Account *
 xaccSplitGetAccount (const Split *split)
 {
     SCOPED_TRACE("");
-    const MockSplit* mocksplit = gnc_mocksplit(split);
+    auto mocksplit = gnc_mocksplit(split);
     return mocksplit ? mocksplit->get_account() : nullptr;
 }
 
@@ -69,7 +69,7 @@ gnc_numeric
 xaccSplitGetAmount (const Split *split)
 {
     SCOPED_TRACE("");
-    const MockSplit* mocksplit = gnc_mocksplit(split);
+    auto mocksplit = gnc_mocksplit(split);
     return mocksplit ? mocksplit->get_amount() : gnc_numeric_zero();
 }
 
@@ -84,7 +84,7 @@ gnc_numeric
 xaccSplitGetValue (const Split *split)
 {
     SCOPED_TRACE("");
-    const MockSplit* mocksplit = gnc_mocksplit(split);
+    auto mocksplit = gnc_mocksplit(split);
     return mocksplit ? mocksplit->get_value() : gnc_numeric_zero();
 }
 
@@ -99,7 +99,7 @@ const char *
 xaccSplitGetMemo (const Split *split)
 {
     SCOPED_TRACE("");
-    const MockSplit* mocksplit = gnc_mocksplit(split);
+    auto mocksplit = gnc_mocksplit(split);
     return mocksplit ? mocksplit->get_memo() : "";
 }
 
@@ -107,7 +107,7 @@ char
 xaccSplitGetReconcile (const Split *split)
 {
     SCOPED_TRACE("");
-    const MockSplit* mocksplit = gnc_mocksplit(split);
+    auto mocksplit = gnc_mocksplit(split);
     return mocksplit ? mocksplit->get_reconcile() : VREC;
 }
 
@@ -129,7 +129,7 @@ const char *
 xaccSplitGetAction (const Split *split)
 {
     SCOPED_TRACE("");
-    const MockSplit* mocksplit = gnc_mocksplit(split);
+    auto mocksplit = gnc_mocksplit(split);
     return mocksplit ? mocksplit->get_action() : "";
 }
 
@@ -137,7 +137,7 @@ Split *
 xaccSplitGetOtherSplit (const Split *split)
 {
     SCOPED_TRACE("");
-    const MockSplit* mocksplit = gnc_mocksplit(split);
+    auto mocksplit = gnc_mocksplit(split);
     return mocksplit ? mocksplit->get_other_split() : nullptr;
 }
 
@@ -145,7 +145,7 @@ Transaction *
 xaccSplitGetParent (const Split *split)
 {
     SCOPED_TRACE("");
-    const MockSplit* mocksplit = gnc_mocksplit(split);
+    auto mocksplit = gnc_mocksplit(split);
     return mocksplit ? mocksplit->get_parent() : nullptr;
 }
 
diff --git a/libgnucash/engine/mocks/gmock-Transaction.cpp b/libgnucash/engine/mocks/gmock-Transaction.cpp
index b185640b0..3bd1e65df 100644
--- a/libgnucash/engine/mocks/gmock-Transaction.cpp
+++ b/libgnucash/engine/mocks/gmock-Transaction.cpp
@@ -49,7 +49,7 @@ Split *
 xaccTransGetSplit (const Transaction *trans, int i)
 {
     SCOPED_TRACE("");
-    const MockTransaction* mocktrans = gnc_mocktransaction(trans);
+    auto mocktrans = gnc_mocktransaction(trans);
     return mocktrans ? mocktrans->get_split(i) : nullptr;
 }
 
@@ -57,7 +57,7 @@ Split *
 xaccTransFindSplitByAccount(const Transaction *trans, const Account *acc)
 {
     SCOPED_TRACE("");
-    const MockTransaction* mocktrans = gnc_mocktransaction(trans);
+    auto mocktrans = gnc_mocktransaction(trans);
     EXPECT_TRUE(GNC_IS_ACCOUNT(acc));
     return mocktrans ? mocktrans->find_split_by_account(acc) : nullptr;
 }
@@ -66,7 +66,7 @@ time64
 xaccTransGetDate (const Transaction *trans)
 {
     SCOPED_TRACE("");
-    const MockTransaction* mocktrans = gnc_mocktransaction(trans);
+    auto mocktrans = gnc_mocktransaction(trans);
     return mocktrans ? mocktrans->get_date() : 0;
 }
 
@@ -81,7 +81,7 @@ const char *
 xaccTransGetDescription (const Transaction *trans)
 {
     SCOPED_TRACE("");
-    const MockTransaction* mocktrans = gnc_mocktransaction(trans);
+    auto mocktrans = gnc_mocktransaction(trans);
     return mocktrans ? mocktrans->get_description() : "";
 }
 
@@ -96,7 +96,7 @@ const char *
 xaccTransGetNotes (const Transaction *trans)
 {
     SCOPED_TRACE("");
-    const MockTransaction* mocktrans = gnc_mocktransaction(trans);
+    auto mocktrans = gnc_mocktransaction(trans);
     return mocktrans ? mocktrans->get_notes() : "";
 }
 
@@ -111,7 +111,7 @@ gnc_numeric
 xaccTransGetImbalanceValue (const Transaction * trans)
 {
     SCOPED_TRACE("");
-    const MockTransaction* mocktrans = gnc_mocktransaction(trans);
+    auto mocktrans = gnc_mocktransaction(trans);
     return mocktrans ? mocktrans->get_imbalance_value() : gnc_numeric_zero();
 }
 
@@ -119,7 +119,7 @@ const char *
 xaccTransGetNum (const Transaction *trans)
 {
     SCOPED_TRACE("");
-    const MockTransaction* mocktrans = gnc_mocktransaction(trans);
+    auto mocktrans = gnc_mocktransaction(trans);
     return mocktrans ? mocktrans->get_num() : "";
 }
 
@@ -127,7 +127,7 @@ gboolean
 xaccTransIsOpen (const Transaction *trans)
 {
     SCOPED_TRACE("");
-    const MockTransaction* mocktrans = gnc_mocktransaction(trans);
+    auto mocktrans = gnc_mocktransaction(trans);
     return mocktrans ? mocktrans->is_open() : FALSE;
 }
 
diff --git a/libgnucash/engine/mocks/gmock-qofbook.cpp b/libgnucash/engine/mocks/gmock-qofbook.cpp
index d2c389d9a..1ea7d7215 100644
--- a/libgnucash/engine/mocks/gmock-qofbook.cpp
+++ b/libgnucash/engine/mocks/gmock-qofbook.cpp
@@ -30,7 +30,7 @@ gboolean
 qof_book_use_split_action_for_num_field (const QofBook *book)
 {
     SCOPED_TRACE("");
-    const QofMockBook* mockbook = qof_mockbook(book);
+    auto mockbook = qof_mockbook(book);
     return mockbook ? mockbook->use_split_action_for_num_field() : FALSE;
 }
 

commit feba64624c360ec992f3f11a78732cf9f2461e99
Author: Christian Gruber <christian.gruber at posteo.de>
Date:   Mon Oct 5 22:20:02 2020 +0200

    Fix xaccTransSetNotes()
    
    This is a bugfix for commit 954ce9577f4de5f77956e4cdc1d79d51ef8afb1f

diff --git a/libgnucash/engine/mocks/gmock-Transaction.cpp b/libgnucash/engine/mocks/gmock-Transaction.cpp
index bde81b33c..b185640b0 100644
--- a/libgnucash/engine/mocks/gmock-Transaction.cpp
+++ b/libgnucash/engine/mocks/gmock-Transaction.cpp
@@ -104,7 +104,7 @@ void
 xaccTransSetNotes (Transaction *trans, const char *notes)
 {
     ASSERT_TRUE(GNC_IS_MOCKTRANSACTION(trans));
-    gnc_mocktransaction(trans)->set_description(notes);
+    gnc_mocktransaction(trans)->set_notes(notes);
 }
 
 gnc_numeric

commit e44cf9c61f36ef29c16dafbad443d9c1a8cfdf3f
Author: Christian Gruber <christian.gruber at posteo.de>
Date:   Wed Sep 23 19:59:40 2020 +0200

    Add missing C linkage statements

diff --git a/libgnucash/app-utils/mocks/gmock-gnc-prefs.cpp b/libgnucash/app-utils/mocks/gmock-gnc-prefs.cpp
index d9e090068..7711d8608 100644
--- a/libgnucash/app-utils/mocks/gmock-gnc-prefs.cpp
+++ b/libgnucash/app-utils/mocks/gmock-gnc-prefs.cpp
@@ -10,6 +10,8 @@ gmock_gnc_prefs_set_backend(MockPrefsBackend *backend)
     prefsbackend = backend;
 }
 
+extern "C"
+{
 gboolean
 gnc_prefs_get_bool (const gchar *group, const gchar *pref_name)
 {
@@ -63,3 +65,5 @@ gnc_prefs_get_coords (const gchar *group, const gchar *pref_name, gdouble *x, gd
     if (prefsbackend != nullptr)
         prefsbackend->get_coords(group, pref_name, x, y);
 }
+
+} // extern "C"
diff --git a/libgnucash/engine/mocks/fake-qofquery.cpp b/libgnucash/engine/mocks/fake-qofquery.cpp
index 53dddfd80..15341189a 100644
--- a/libgnucash/engine/mocks/fake-qofquery.cpp
+++ b/libgnucash/engine/mocks/fake-qofquery.cpp
@@ -124,6 +124,8 @@ qof_query_set_book (QofQuery *query, QofBook *book)
     ((QofFakeQuery*)query)->set_book(book);
 }
 
+extern "C"
+{
 void
 xaccQueryAddDateMatchTT (
         QofQuery *query,
@@ -144,6 +146,8 @@ xaccQueryAddSingleAccountMatch(QofQuery *query, Account *acc, QofQueryOp op)
     ((QofFakeQuery*)query)->add_single_account_match(acc, op);
 }
 
+} // extern "C"
+
 GList *
 qof_query_run (QofQuery *query)
 {
diff --git a/libgnucash/engine/mocks/gmock-Split.h b/libgnucash/engine/mocks/gmock-Split.h
index b60da9387..d70652a5a 100644
--- a/libgnucash/engine/mocks/gmock-Split.h
+++ b/libgnucash/engine/mocks/gmock-Split.h
@@ -4,7 +4,10 @@
 #include <gmock/gmock.h>
 
 #include <Split.h>
+extern "C"
+{
 #include <SplitP.h>
+}
 
 #include "gmock-qofbook.h"
 #include "gmock-gobject.h"
diff --git a/libgnucash/engine/mocks/gmock-Transaction.h b/libgnucash/engine/mocks/gmock-Transaction.h
index d5c518d64..125012100 100644
--- a/libgnucash/engine/mocks/gmock-Transaction.h
+++ b/libgnucash/engine/mocks/gmock-Transaction.h
@@ -4,7 +4,10 @@
 #include <gmock/gmock.h>
 
 #include <Transaction.h>
+extern "C"
+{
 #include <TransactionP.h>
+}
 
 #include "gmock-gobject.h"
 
diff --git a/libgnucash/engine/mocks/gmock-qofinstance.cpp b/libgnucash/engine/mocks/gmock-qofinstance.cpp
index eb6f8aeb5..e6e0c2c82 100644
--- a/libgnucash/engine/mocks/gmock-qofinstance.cpp
+++ b/libgnucash/engine/mocks/gmock-qofinstance.cpp
@@ -23,6 +23,8 @@ qof_instance_class_init(QofInstanceClass *klass)
     // function is unused, class functions are defined in C++ code
 }
 
+extern "C"
+{
 // This is a reimplementation of the function from qofinstance.cpp
 void
 qof_instance_get (const QofInstance *inst, const gchar *first_prop, ...)
@@ -48,3 +50,4 @@ qof_instance_set (QofInstance *inst, const gchar *first_prop, ...)
     va_end (ap);
 }
 
+} // extern "C"

commit 63969e8628d4ac5ae53c8d2a72bf6bcf717b3c03
Author: Christian Gruber <christian.gruber at posteo.de>
Date:   Tue Sep 22 22:25:45 2020 +0200

    Remove unecessary include

diff --git a/libgnucash/engine/mocks/gmock-Transaction.h b/libgnucash/engine/mocks/gmock-Transaction.h
index f0901fb1b..d5c518d64 100644
--- a/libgnucash/engine/mocks/gmock-Transaction.h
+++ b/libgnucash/engine/mocks/gmock-Transaction.h
@@ -6,7 +6,6 @@
 #include <Transaction.h>
 #include <TransactionP.h>
 
-#include "gmock-qofbook.h"
 #include "gmock-gobject.h"
 
 

commit d673c32e358c53a49ff8b5ff8d17a661003dc582
Author: Christian Gruber <christian.gruber at posteo.de>
Date:   Tue Sep 22 22:24:57 2020 +0200

    Mock methods should not neccessarily return mock objects

diff --git a/libgnucash/engine/mocks/gmock-Account.h b/libgnucash/engine/mocks/gmock-Account.h
index 608e11cad..6b7bbaefa 100644
--- a/libgnucash/engine/mocks/gmock-Account.h
+++ b/libgnucash/engine/mocks/gmock-Account.h
@@ -5,8 +5,8 @@
 
 #include <Account.h>
 #include <AccountP.h>
+#include <qofbook.h>
 
-#include "gmock-qofbook.h"
 #include "gmock-gobject.h"
 
 
@@ -41,7 +41,7 @@ public:
 
     MOCK_METHOD0(begin_edit, void());
     MOCK_METHOD0(commit_edit, void());
-    MOCK_CONST_METHOD0(get_book, QofMockBook*());
+    MOCK_CONST_METHOD0(get_book, QofBook*());
     MOCK_CONST_METHOD2(for_each_transaction, gint(TransactionCallback, void*));
     MOCK_METHOD0(create_imap, GncImportMatchMap*());
 

commit 0e634c54460463de2c8bc1204835041d03a014e0
Author: Christian Gruber <christian.gruber at posteo.de>
Date:   Tue Sep 22 22:20:38 2020 +0200

    Relax runtime type checks
    
    Runtime type checks should only check for the mock up type, if
    neccessary. If objects of another class than the mocked object itself
    are processed, runtime type check should only check for the base-class
    type. It should be possible to use mockup objects and non-mockup objects
    within the same application.
    
    The included headers are adapted accordingly.

diff --git a/libgnucash/engine/mocks/fake-qofquery.cpp b/libgnucash/engine/mocks/fake-qofquery.cpp
index dc8445d4d..53dddfd80 100644
--- a/libgnucash/engine/mocks/fake-qofquery.cpp
+++ b/libgnucash/engine/mocks/fake-qofquery.cpp
@@ -4,10 +4,11 @@
 
 #include <config.h>
 
+#include <qofbook.h>
+
 #include <list>
 
 #include "fake-qofquery.h"
-#include "gmock-qofbook.h"
 
 
 
@@ -119,7 +120,7 @@ void
 qof_query_set_book (QofQuery *query, QofBook *book)
 {
     ASSERT_TRUE(queryPool.query_used(query));
-    ASSERT_TRUE(QOF_IS_MOCKBOOK(book));
+    ASSERT_TRUE(QOF_IS_BOOK(book));
     ((QofFakeQuery*)query)->set_book(book);
 }
 
diff --git a/libgnucash/engine/mocks/gmock-Split.cpp b/libgnucash/engine/mocks/gmock-Split.cpp
index 2cf34bc22..1355f121d 100644
--- a/libgnucash/engine/mocks/gmock-Split.cpp
+++ b/libgnucash/engine/mocks/gmock-Split.cpp
@@ -1,9 +1,10 @@
 #include <config.h>
 
+#include <Transaction.h>
+#include <Account.h>
+
 #include "gmock-Split.h"
 #include "gmock-qofbook.h"
-#include "gmock-Account.h"
-#include "gmock-Transaction.h"
 
 
 struct _MockSplitClass
@@ -60,7 +61,7 @@ void
 xaccSplitSetAccount (Split *split, Account *acc)
 {
     ASSERT_TRUE(GNC_IS_MOCKSPLIT(split));
-    ASSERT_TRUE(GNC_IS_MOCKACCOUNT(acc));
+    ASSERT_TRUE(GNC_IS_ACCOUNT(acc));
     gnc_mocksplit(split)->set_account(acc);
 }
 
@@ -152,6 +153,6 @@ void
 xaccSplitSetParent(Split *split, Transaction *trans)
 {
     ASSERT_TRUE(GNC_IS_MOCKSPLIT(split));
-    ASSERT_TRUE(GNC_IS_MOCKTRANSACTION(trans));
+    ASSERT_TRUE(GNC_IS_TRANSACTION(trans));
     gnc_mocksplit(split)->set_parent(trans);
 }
diff --git a/libgnucash/engine/mocks/gmock-Transaction.cpp b/libgnucash/engine/mocks/gmock-Transaction.cpp
index 597971b6e..bde81b33c 100644
--- a/libgnucash/engine/mocks/gmock-Transaction.cpp
+++ b/libgnucash/engine/mocks/gmock-Transaction.cpp
@@ -1,7 +1,8 @@
 #include <config.h>
 
+#include <Account.h>
+
 #include "gmock-Transaction.h"
-#include "gmock-Account.h"
 
 
 struct _MockTransactionClass
@@ -57,7 +58,7 @@ xaccTransFindSplitByAccount(const Transaction *trans, const Account *acc)
 {
     SCOPED_TRACE("");
     const MockTransaction* mocktrans = gnc_mocktransaction(trans);
-    EXPECT_TRUE(GNC_IS_MOCKACCOUNT(acc));
+    EXPECT_TRUE(GNC_IS_ACCOUNT(acc));
     return mocktrans ? mocktrans->find_split_by_account(acc) : nullptr;
 }
 
diff --git a/libgnucash/engine/mocks/gmock-qofbook.h b/libgnucash/engine/mocks/gmock-qofbook.h
index 035eb1a9c..7001697af 100644
--- a/libgnucash/engine/mocks/gmock-qofbook.h
+++ b/libgnucash/engine/mocks/gmock-qofbook.h
@@ -5,9 +5,9 @@
 
 #include <qofbook.h>
 #include <qofbook-p.h>
+#include <Split.h>
 
 #include "gmock-gobject.h"
-#include "gmock-Split.h"
 
 
 GType qof_mockbook_get_type(void);

commit 99256c385b21efa920650089c5ea4d948dbb4ffe
Author: Christian Gruber <christian.gruber at posteo.de>
Date:   Tue Sep 22 22:07:21 2020 +0200

    Add missing _get_type() functions of all mocked GObject classes
    
    If a GObject is replaced by a mock up, its _get_type() function has to
    be replaced as well. The replaced _get_type() functions have to return
    the type of the mock up now.

diff --git a/libgnucash/engine/mocks/gmock-Account.cpp b/libgnucash/engine/mocks/gmock-Account.cpp
index d92679f4a..1b5f30a4a 100644
--- a/libgnucash/engine/mocks/gmock-Account.cpp
+++ b/libgnucash/engine/mocks/gmock-Account.cpp
@@ -23,6 +23,12 @@ gnc_mockaccount_class_init(MockAccountClass *klass)
     // function is unused, class functions are defined in C++ code
 }
 
+
+GType gnc_account_get_type(void)
+{
+    return gnc_mockaccount_get_type();
+}
+
 void
 xaccAccountBeginEdit (Account *account)
 {
diff --git a/libgnucash/engine/mocks/gmock-Split.cpp b/libgnucash/engine/mocks/gmock-Split.cpp
index 5db4cad97..2cf34bc22 100644
--- a/libgnucash/engine/mocks/gmock-Split.cpp
+++ b/libgnucash/engine/mocks/gmock-Split.cpp
@@ -27,6 +27,11 @@ gnc_mocksplit_class_init (MockSplitClass *klass)
 }
 
 
+GType gnc_split_get_type(void)
+{
+    return gnc_mocksplit_get_type();
+}
+
 Split *
 xaccMallocSplit (QofBook *book)
 {
diff --git a/libgnucash/engine/mocks/gmock-Transaction.cpp b/libgnucash/engine/mocks/gmock-Transaction.cpp
index 487a5b4d8..597971b6e 100644
--- a/libgnucash/engine/mocks/gmock-Transaction.cpp
+++ b/libgnucash/engine/mocks/gmock-Transaction.cpp
@@ -25,6 +25,11 @@ gnc_mocktransaction_class_init(MockTransactionClass *klass)
 }
 
 
+GType gnc_transaction_get_type(void)
+{
+    return gnc_mocktransaction_get_type();
+}
+
 void
 xaccTransBeginEdit (Transaction *trans)
 {
diff --git a/libgnucash/engine/mocks/gmock-qofbook.cpp b/libgnucash/engine/mocks/gmock-qofbook.cpp
index 17a7f0061..d2c389d9a 100644
--- a/libgnucash/engine/mocks/gmock-qofbook.cpp
+++ b/libgnucash/engine/mocks/gmock-qofbook.cpp
@@ -20,6 +20,12 @@ qof_mockbook_class_init(QofMockBookClass *klass)
     // function is unused, class functions are defined in C++ code
 }
 
+
+GType qof_book_get_type(void)
+{
+    return qof_mockbook_get_type();
+}
+
 gboolean
 qof_book_use_split_action_for_num_field (const QofBook *book)
 {

commit 833edd0b29dcc936ec77ece9bf6a331d8cffdd75
Author: Christian Gruber <christian.gruber at posteo.de>
Date:   Mon Sep 21 00:50:24 2020 +0200

    Add missing comment

diff --git a/libgnucash/engine/mocks/gmock-Account.h b/libgnucash/engine/mocks/gmock-Account.h
index 04a48b5d8..608e11cad 100644
--- a/libgnucash/engine/mocks/gmock-Account.h
+++ b/libgnucash/engine/mocks/gmock-Account.h
@@ -52,6 +52,7 @@ protected:
 };
 
 
+// mock up for GncImportMatchMap
 class GncMockImportMatchMap : public GncImportMatchMap
 {
 public:

commit bc80bbb325d1814489d72bd1bc0760e8f7423a2f
Author: Christian Gruber <christian.gruber at posteo.de>
Date:   Mon Sep 21 00:47:53 2020 +0200

    Simplify type checking for GObject mockups
    
    A type conversion function is introduced for each GObject mockup. This
    function does a runtime type check and generates a GoogleTest failure in
    case of any type error. This avoids checking GObject type twice.

diff --git a/libgnucash/engine/mocks/gmock-Account.cpp b/libgnucash/engine/mocks/gmock-Account.cpp
index c25b1157f..d92679f4a 100644
--- a/libgnucash/engine/mocks/gmock-Account.cpp
+++ b/libgnucash/engine/mocks/gmock-Account.cpp
@@ -27,45 +27,39 @@ void
 xaccAccountBeginEdit (Account *account)
 {
     ASSERT_TRUE(GNC_IS_MOCKACCOUNT(account));
-    ((MockAccount*)account)->begin_edit();
+    gnc_mockaccount(account)->begin_edit();
 }
 
 void
 xaccAccountCommitEdit (Account *account)
 {
     ASSERT_TRUE(GNC_IS_MOCKACCOUNT(account));
-    ((MockAccount*)account)->commit_edit();
+    gnc_mockaccount(account)->commit_edit();
 }
 
 QofBook *
 gnc_account_get_book(const Account *account)
 {
-    EXPECT_TRUE(GNC_IS_MOCKACCOUNT(account));
-    if (GNC_IS_MOCKACCOUNT(account))
-        return ((MockAccount*)account)->get_book();
-    else
-        return nullptr;
+    SCOPED_TRACE("");
+    const MockAccount* mockaccount = gnc_mockaccount(account);
+    return mockaccount ? mockaccount->get_book() : nullptr;
 }
 
 gint
 xaccAccountForEachTransaction(const Account *acc, TransactionCallback proc,
                               void *data)
 {
-    EXPECT_TRUE(GNC_IS_MOCKACCOUNT(acc));
-    if (GNC_IS_MOCKACCOUNT(acc))
-        return ((MockAccount*)acc)->for_each_transaction(proc, data);
-    else
-        return 0;
+    SCOPED_TRACE("");
+    const MockAccount* mockaccount = gnc_mockaccount(acc);
+    return mockaccount ? mockaccount->for_each_transaction(proc, data) : 0;
 }
 
 GncImportMatchMap *
 gnc_account_imap_create_imap (Account *acc)
 {
-    EXPECT_TRUE(GNC_IS_MOCKACCOUNT(acc));
-    if (GNC_IS_MOCKACCOUNT(acc))
-        return ((MockAccount*)acc)->create_imap();
-    else
-        return nullptr;
+    SCOPED_TRACE("");
+    MockAccount* mockaccount = gnc_mockaccount(acc);
+    return mockaccount ? mockaccount->create_imap() : nullptr;
 }
 
 Account*
diff --git a/libgnucash/engine/mocks/gmock-Account.h b/libgnucash/engine/mocks/gmock-Account.h
index 9552301a5..04a48b5d8 100644
--- a/libgnucash/engine/mocks/gmock-Account.h
+++ b/libgnucash/engine/mocks/gmock-Account.h
@@ -67,4 +67,24 @@ public:
     MOCK_METHOD2(add_account_bayes, void(std::vector<const char*>&, Account*));
 };
 
+
+// type conversion functions
+static inline MockAccount*
+gnc_mockaccount (Account *account)
+{
+    if (GNC_IS_MOCKACCOUNT(account))
+        return static_cast<MockAccount*>(account);
+    ADD_FAILURE() << "Expected 'account' to be of type 'MockAccount'";
+    return nullptr;
+}
+
+static inline const MockAccount*
+gnc_mockaccount (const Account *account)
+{
+    if (GNC_IS_MOCKACCOUNT(account))
+        return static_cast<const MockAccount*>(account);
+    ADD_FAILURE() << "Expected 'account' to be of type 'MockAccount'";
+    return nullptr;
+}
+
 #endif
diff --git a/libgnucash/engine/mocks/gmock-Split.cpp b/libgnucash/engine/mocks/gmock-Split.cpp
index d33a44a1d..5db4cad97 100644
--- a/libgnucash/engine/mocks/gmock-Split.cpp
+++ b/libgnucash/engine/mocks/gmock-Split.cpp
@@ -30,31 +30,25 @@ gnc_mocksplit_class_init (MockSplitClass *klass)
 Split *
 xaccMallocSplit (QofBook *book)
 {
-    EXPECT_TRUE(QOF_IS_MOCKBOOK(book));
-    if (QOF_IS_MOCKBOOK(book))
-        return ((QofMockBook*)book)->malloc_split();
-    else
-        return nullptr;
+    SCOPED_TRACE("");
+    QofMockBook* mockbook = qof_mockbook(book);
+    return mockbook ? mockbook->malloc_split() : nullptr;
 }
 
 QofBook *
 xaccSplitGetBook (const Split *split)
 {
-    EXPECT_TRUE(GNC_IS_MOCKSPLIT(split));
-    if (GNC_IS_MOCKSPLIT(split))
-        return ((MockSplit*)split)->get_book();
-    else
-        return nullptr;
+    SCOPED_TRACE("");
+    const MockSplit* mocksplit = gnc_mocksplit(split);
+    return mocksplit ? mocksplit->get_book() : nullptr;
 }
 
 Account *
 xaccSplitGetAccount (const Split *split)
 {
-    EXPECT_TRUE(GNC_IS_MOCKSPLIT(split));
-    if (GNC_IS_MOCKSPLIT(split))
-        return ((MockSplit*)split)->get_account();
-    else
-        return nullptr;
+    SCOPED_TRACE("");
+    const MockSplit* mocksplit = gnc_mocksplit(split);
+    return mocksplit ? mocksplit->get_account() : nullptr;
 }
 
 void
@@ -62,105 +56,91 @@ xaccSplitSetAccount (Split *split, Account *acc)
 {
     ASSERT_TRUE(GNC_IS_MOCKSPLIT(split));
     ASSERT_TRUE(GNC_IS_MOCKACCOUNT(acc));
-    ((MockSplit*)split)->set_account(acc);
+    gnc_mocksplit(split)->set_account(acc);
 }
 
 gnc_numeric
 xaccSplitGetAmount (const Split *split)
 {
-    EXPECT_TRUE(GNC_IS_MOCKSPLIT(split));
-    if (GNC_IS_MOCKSPLIT(split))
-        return ((MockSplit*)split)->get_amount();
-    else
-        return gnc_numeric_zero();
+    SCOPED_TRACE("");
+    const MockSplit* mocksplit = gnc_mocksplit(split);
+    return mocksplit ? mocksplit->get_amount() : gnc_numeric_zero();
 }
 
 void
 xaccSplitSetAmount (Split *split, gnc_numeric amt)
 {
     ASSERT_TRUE(GNC_IS_MOCKSPLIT(split));
-    ((MockSplit*)split)->set_amount(amt);
+    gnc_mocksplit(split)->set_amount(amt);
 }
 
 gnc_numeric
 xaccSplitGetValue (const Split *split)
 {
-    EXPECT_TRUE(GNC_IS_MOCKSPLIT(split));
-    if (GNC_IS_MOCKSPLIT(split))
-        return ((MockSplit*)split)->get_value();
-    else
-        return gnc_numeric_zero();
+    SCOPED_TRACE("");
+    const MockSplit* mocksplit = gnc_mocksplit(split);
+    return mocksplit ? mocksplit->get_value() : gnc_numeric_zero();
 }
 
 void
 xaccSplitSetValue (Split *split, gnc_numeric val)
 {
     ASSERT_TRUE(GNC_IS_MOCKSPLIT(split));
-    ((MockSplit*)split)->set_value(val);
+    gnc_mocksplit(split)->set_value(val);
 }
 
 const char *
 xaccSplitGetMemo (const Split *split)
 {
-    EXPECT_TRUE(GNC_IS_MOCKSPLIT(split));
-    if (GNC_IS_MOCKSPLIT(split))
-        return ((MockSplit*)split)->get_memo();
-    else
-        return nullptr;
+    SCOPED_TRACE("");
+    const MockSplit* mocksplit = gnc_mocksplit(split);
+    return mocksplit ? mocksplit->get_memo() : "";
 }
 
 char
 xaccSplitGetReconcile (const Split *split)
 {
-    EXPECT_TRUE(GNC_IS_MOCKSPLIT(split));
-    if (GNC_IS_MOCKSPLIT(split))
-        return ((MockSplit*)split)->get_reconcile();
-    else
-        return VREC;
+    SCOPED_TRACE("");
+    const MockSplit* mocksplit = gnc_mocksplit(split);
+    return mocksplit ? mocksplit->get_reconcile() : VREC;
 }
 
 void
 xaccSplitSetReconcile (Split *split, char recn)
 {
     ASSERT_TRUE(GNC_IS_MOCKSPLIT(split));
-    ((MockSplit*)split)->set_reconcile(recn);
+    gnc_mocksplit(split)->set_reconcile(recn);
 }
 
 void
 xaccSplitSetDateReconciledSecs (Split *split, time64 secs)
 {
     ASSERT_TRUE(GNC_IS_MOCKSPLIT(split));
-    ((MockSplit*)split)->set_date_reconciled_secs(secs);
+    gnc_mocksplit(split)->set_date_reconciled_secs(secs);
 }
 
 const char *
 xaccSplitGetAction (const Split *split)
 {
-    EXPECT_TRUE(GNC_IS_MOCKSPLIT(split));
-    if (GNC_IS_MOCKSPLIT(split))
-        return ((MockSplit*)split)->get_action();
-    else
-        return nullptr;
+    SCOPED_TRACE("");
+    const MockSplit* mocksplit = gnc_mocksplit(split);
+    return mocksplit ? mocksplit->get_action() : "";
 }
 
 Split *
 xaccSplitGetOtherSplit (const Split *split)
 {
-    EXPECT_TRUE(GNC_IS_MOCKSPLIT(split));
-    if (GNC_IS_MOCKSPLIT(split))
-        return ((MockSplit*)split)->get_other_split();
-    else
-        return nullptr;
+    SCOPED_TRACE("");
+    const MockSplit* mocksplit = gnc_mocksplit(split);
+    return mocksplit ? mocksplit->get_other_split() : nullptr;
 }
 
 Transaction *
 xaccSplitGetParent (const Split *split)
 {
-    EXPECT_TRUE(GNC_IS_MOCKSPLIT(split));
-    if (GNC_IS_MOCKSPLIT(split))
-        return ((MockSplit*)split)->get_parent();
-    else
-        return nullptr;
+    SCOPED_TRACE("");
+    const MockSplit* mocksplit = gnc_mocksplit(split);
+    return mocksplit ? mocksplit->get_parent() : nullptr;
 }
 
 void
@@ -168,5 +148,5 @@ xaccSplitSetParent(Split *split, Transaction *trans)
 {
     ASSERT_TRUE(GNC_IS_MOCKSPLIT(split));
     ASSERT_TRUE(GNC_IS_MOCKTRANSACTION(trans));
-    ((MockSplit*)split)->set_parent(trans);
+    gnc_mocksplit(split)->set_parent(trans);
 }
diff --git a/libgnucash/engine/mocks/gmock-Split.h b/libgnucash/engine/mocks/gmock-Split.h
index c8ed05ab4..b60da9387 100644
--- a/libgnucash/engine/mocks/gmock-Split.h
+++ b/libgnucash/engine/mocks/gmock-Split.h
@@ -82,4 +82,24 @@ protected:
     ~MockSplit() {}
 };
 
+
+// type conversion functions
+static inline MockSplit*
+gnc_mocksplit (Split *split)
+{
+    if (GNC_IS_MOCKSPLIT(split))
+        return static_cast<MockSplit*>(split);
+    ADD_FAILURE() << "Expected 'split' to be of type 'MockSplit'";
+    return nullptr;
+}
+
+static inline const MockSplit*
+gnc_mocksplit (const Split *split)
+{
+    if (GNC_IS_MOCKSPLIT(split))
+        return static_cast<const MockSplit*>(split);
+    ADD_FAILURE() << "Expected 'split' to be of type 'MockSplit'";
+    return nullptr;
+}
+
 #endif
diff --git a/libgnucash/engine/mocks/gmock-Transaction.cpp b/libgnucash/engine/mocks/gmock-Transaction.cpp
index 5310ef526..487a5b4d8 100644
--- a/libgnucash/engine/mocks/gmock-Transaction.cpp
+++ b/libgnucash/engine/mocks/gmock-Transaction.cpp
@@ -29,121 +29,105 @@ void
 xaccTransBeginEdit (Transaction *trans)
 {
     ASSERT_TRUE(GNC_IS_MOCKTRANSACTION(trans));
-    ((MockTransaction*)trans)->begin_edit();
+    gnc_mocktransaction(trans)->begin_edit();
 }
 
 void
 xaccTransCommitEdit (Transaction *trans)
 {
     ASSERT_TRUE(GNC_IS_MOCKTRANSACTION(trans));
-    ((MockTransaction*)trans)->commit_edit();
+    gnc_mocktransaction(trans)->commit_edit();
 }
 
 Split *
 xaccTransGetSplit (const Transaction *trans, int i)
 {
-    EXPECT_TRUE(GNC_IS_MOCKTRANSACTION(trans));
-    if (GNC_IS_MOCKTRANSACTION(trans))
-        return ((MockTransaction*)trans)->get_split(i);
-    else
-        return nullptr;
+    SCOPED_TRACE("");
+    const MockTransaction* mocktrans = gnc_mocktransaction(trans);
+    return mocktrans ? mocktrans->get_split(i) : nullptr;
 }
 
 Split *
 xaccTransFindSplitByAccount(const Transaction *trans, const Account *acc)
 {
-    EXPECT_TRUE(GNC_IS_MOCKTRANSACTION(trans));
+    SCOPED_TRACE("");
+    const MockTransaction* mocktrans = gnc_mocktransaction(trans);
     EXPECT_TRUE(GNC_IS_MOCKACCOUNT(acc));
-    if (GNC_IS_MOCKTRANSACTION(trans))
-        return ((MockTransaction*)trans)->find_split_by_account(acc);
-    else
-        return nullptr;
+    return mocktrans ? mocktrans->find_split_by_account(acc) : nullptr;
 }
 
 time64
 xaccTransGetDate (const Transaction *trans)
 {
-    EXPECT_TRUE(GNC_IS_MOCKTRANSACTION(trans));
-    if (GNC_IS_MOCKTRANSACTION(trans))
-        return ((MockTransaction*)trans)->get_date();
-    else
-        return 0;
+    SCOPED_TRACE("");
+    const MockTransaction* mocktrans = gnc_mocktransaction(trans);
+    return mocktrans ? mocktrans->get_date() : 0;
 }
 
 void
 xaccTransSetDatePostedSecsNormalized (Transaction *trans, time64 time)
 {
     ASSERT_TRUE(GNC_IS_MOCKTRANSACTION(trans));
-    ((MockTransaction*)trans)->set_date_posted_secs_normalized(time);
+    gnc_mocktransaction(trans)->set_date_posted_secs_normalized(time);
 }
 
 const char *
 xaccTransGetDescription (const Transaction *trans)
 {
-    EXPECT_TRUE(GNC_IS_MOCKTRANSACTION(trans));
-    if (GNC_IS_MOCKTRANSACTION(trans))
-        return ((MockTransaction*)trans)->get_description();
-    else
-        return nullptr;
+    SCOPED_TRACE("");
+    const MockTransaction* mocktrans = gnc_mocktransaction(trans);
+    return mocktrans ? mocktrans->get_description() : "";
 }
 
 void
 xaccTransSetDescription (Transaction *trans, const char *desc)
 {
     ASSERT_TRUE(GNC_IS_MOCKTRANSACTION(trans));
-    ((MockTransaction*)trans)->set_description(desc);
+    gnc_mocktransaction(trans)->set_description(desc);
 }
 
 const char *
 xaccTransGetNotes (const Transaction *trans)
 {
-    EXPECT_TRUE(GNC_IS_MOCKTRANSACTION(trans));
-    if (GNC_IS_MOCKTRANSACTION(trans))
-        return ((MockTransaction*)trans)->get_notes();
-    else
-        return nullptr;
+    SCOPED_TRACE("");
+    const MockTransaction* mocktrans = gnc_mocktransaction(trans);
+    return mocktrans ? mocktrans->get_notes() : "";
 }
 
 void
 xaccTransSetNotes (Transaction *trans, const char *notes)
 {
     ASSERT_TRUE(GNC_IS_MOCKTRANSACTION(trans));
-    ((MockTransaction*)trans)->set_description(notes);
+    gnc_mocktransaction(trans)->set_description(notes);
 }
 
 gnc_numeric
 xaccTransGetImbalanceValue (const Transaction * trans)
 {
-    EXPECT_TRUE(GNC_IS_MOCKTRANSACTION(trans));
-    if (GNC_IS_MOCKTRANSACTION(trans))
-        return ((MockTransaction*)trans)->get_imbalance_value();
-    else
-        return gnc_numeric_zero();
+    SCOPED_TRACE("");
+    const MockTransaction* mocktrans = gnc_mocktransaction(trans);
+    return mocktrans ? mocktrans->get_imbalance_value() : gnc_numeric_zero();
 }
 
 const char *
 xaccTransGetNum (const Transaction *trans)
 {
-    EXPECT_TRUE(GNC_IS_MOCKTRANSACTION(trans));
-    if (GNC_IS_MOCKTRANSACTION(trans))
-        return ((MockTransaction*)trans)->get_num();
-    else
-        return nullptr;
+    SCOPED_TRACE("");
+    const MockTransaction* mocktrans = gnc_mocktransaction(trans);
+    return mocktrans ? mocktrans->get_num() : "";
 }
 
 gboolean
 xaccTransIsOpen (const Transaction *trans)
 {
-    EXPECT_TRUE(GNC_IS_MOCKTRANSACTION(trans));
-    if (GNC_IS_MOCKTRANSACTION(trans))
-        return ((MockTransaction*)trans)->is_open();
-    else
-        return FALSE;
+    SCOPED_TRACE("");
+    const MockTransaction* mocktrans = gnc_mocktransaction(trans);
+    return mocktrans ? mocktrans->is_open() : FALSE;
 }
 
 void
 xaccTransDestroy (Transaction *trans)
 {
     ASSERT_TRUE(GNC_IS_MOCKTRANSACTION(trans));
-    ((MockTransaction*)trans)->destroy();
+    gnc_mocktransaction(trans)->destroy();
 }
diff --git a/libgnucash/engine/mocks/gmock-Transaction.h b/libgnucash/engine/mocks/gmock-Transaction.h
index 150f168a2..f0901fb1b 100644
--- a/libgnucash/engine/mocks/gmock-Transaction.h
+++ b/libgnucash/engine/mocks/gmock-Transaction.h
@@ -70,4 +70,24 @@ protected:
     ~MockTransaction() {}
 };
 
+
+// type conversion functions
+static inline MockTransaction*
+gnc_mocktransaction (Transaction *trans)
+{
+    if (GNC_IS_MOCKTRANSACTION(trans))
+        return static_cast<MockTransaction*>(trans);
+    ADD_FAILURE() << "Expected 'trans' to be of type 'MockTransaction'";
+    return nullptr;
+}
+
+static inline const MockTransaction*
+gnc_mocktransaction (const Transaction *trans)
+{
+    if (GNC_IS_MOCKTRANSACTION(trans))
+        return static_cast<const MockTransaction*>(trans);
+    ADD_FAILURE() << "Expected 'trans' to be of type 'MockTransaction'";
+    return nullptr;
+}
+
 #endif
diff --git a/libgnucash/engine/mocks/gmock-qofbook.cpp b/libgnucash/engine/mocks/gmock-qofbook.cpp
index 72b755e69..17a7f0061 100644
--- a/libgnucash/engine/mocks/gmock-qofbook.cpp
+++ b/libgnucash/engine/mocks/gmock-qofbook.cpp
@@ -23,7 +23,8 @@ qof_mockbook_class_init(QofMockBookClass *klass)
 gboolean
 qof_book_use_split_action_for_num_field (const QofBook *book)
 {
-    g_return_val_if_fail(QOF_IS_MOCKBOOK(book), FALSE);
-    return ((QofMockBook*)book)->use_split_action_for_num_field();
+    SCOPED_TRACE("");
+    const QofMockBook* mockbook = qof_mockbook(book);
+    return mockbook ? mockbook->use_split_action_for_num_field() : FALSE;
 }
 
diff --git a/libgnucash/engine/mocks/gmock-qofbook.h b/libgnucash/engine/mocks/gmock-qofbook.h
index 8be7cb331..035eb1a9c 100644
--- a/libgnucash/engine/mocks/gmock-qofbook.h
+++ b/libgnucash/engine/mocks/gmock-qofbook.h
@@ -59,4 +59,25 @@ protected:
     ~QofMockBook() {}
 };
 
+
+// type conversion functions
+static inline QofMockBook*
+qof_mockbook (QofBook *book)
+{
+    if (QOF_IS_MOCKBOOK(book))
+        return static_cast<QofMockBook*>(book);
+    ADD_FAILURE() << "Expected 'book' to be of type 'QofMockBook'";
+    return nullptr;
+}
+
+static inline const QofMockBook*
+qof_mockbook (const QofBook *book)
+{
+    if (QOF_IS_MOCKBOOK(book))
+        return static_cast<const QofMockBook*>(book);
+    ADD_FAILURE() << "Expected 'book' to be of type 'QofMockBook'";
+    return nullptr;
+}
+
+
 #endif

commit b0906b5e2ac000255e6e9f58def36634edc93e0e
Author: Christian Gruber <christian.gruber at posteo.de>
Date:   Sun Sep 20 23:36:34 2020 +0200

    Use MOCK_CONST_METHODn() macro instead of MOCK_METHODn() macro if necessary

diff --git a/libgnucash/engine/mocks/gmock-Account.h b/libgnucash/engine/mocks/gmock-Account.h
index ac5d9931b..9552301a5 100644
--- a/libgnucash/engine/mocks/gmock-Account.h
+++ b/libgnucash/engine/mocks/gmock-Account.h
@@ -41,8 +41,8 @@ public:
 
     MOCK_METHOD0(begin_edit, void());
     MOCK_METHOD0(commit_edit, void());
-    MOCK_METHOD0(get_book, QofMockBook*());
-    MOCK_METHOD2(for_each_transaction, gint(TransactionCallback, void*));
+    MOCK_CONST_METHOD0(get_book, QofMockBook*());
+    MOCK_CONST_METHOD2(for_each_transaction, gint(TransactionCallback, void*));
     MOCK_METHOD0(create_imap, GncImportMatchMap*());
 
 protected:
diff --git a/libgnucash/engine/mocks/gmock-Split.h b/libgnucash/engine/mocks/gmock-Split.h
index 5fe8b29e4..c8ed05ab4 100644
--- a/libgnucash/engine/mocks/gmock-Split.h
+++ b/libgnucash/engine/mocks/gmock-Split.h
@@ -60,20 +60,20 @@ public:
     }
 
     MOCK_METHOD0(init, void());
-    MOCK_METHOD0(get_book, QofBook *());
-    MOCK_METHOD0(get_account, Account *());
+    MOCK_CONST_METHOD0(get_book, QofBook *());
+    MOCK_CONST_METHOD0(get_account, Account *());
     MOCK_METHOD1(set_account, void(Account*));
-    MOCK_METHOD0(get_amount, gnc_numeric());
+    MOCK_CONST_METHOD0(get_amount, gnc_numeric());
     MOCK_METHOD1(set_amount, void(gnc_numeric));
-    MOCK_METHOD0(get_value, gnc_numeric());
+    MOCK_CONST_METHOD0(get_value, gnc_numeric());
     MOCK_METHOD1(set_value, void(gnc_numeric));
-    MOCK_METHOD0(get_memo, const char *());
-    MOCK_METHOD0(get_reconcile, char());
+    MOCK_CONST_METHOD0(get_memo, const char *());
+    MOCK_CONST_METHOD0(get_reconcile, char());
     MOCK_METHOD1(set_reconcile, void(char));
     MOCK_METHOD1(set_date_reconciled_secs, void(time64));
-    MOCK_METHOD0(get_action, const char *());
-    MOCK_METHOD0(get_other_split, Split *());
-    MOCK_METHOD0(get_parent, Transaction *());
+    MOCK_CONST_METHOD0(get_action, const char *());
+    MOCK_CONST_METHOD0(get_other_split, Split *());
+    MOCK_CONST_METHOD0(get_parent, Transaction *());
     MOCK_METHOD1(set_parent, void(Transaction*));
 
 protected:
diff --git a/libgnucash/engine/mocks/gmock-Transaction.h b/libgnucash/engine/mocks/gmock-Transaction.h
index 50d5ac9c5..150f168a2 100644
--- a/libgnucash/engine/mocks/gmock-Transaction.h
+++ b/libgnucash/engine/mocks/gmock-Transaction.h
@@ -51,17 +51,17 @@ public:
 
     MOCK_METHOD0(begin_edit, void());
     MOCK_METHOD0(commit_edit, void());
-    MOCK_METHOD1(get_split, Split *(int));
-    MOCK_METHOD1(find_split_by_account, Split *(const Account*));
-    MOCK_METHOD0(get_date, time64());
+    MOCK_CONST_METHOD1(get_split, Split *(int));
+    MOCK_CONST_METHOD1(find_split_by_account, Split *(const Account*));
+    MOCK_CONST_METHOD0(get_date, time64());
     MOCK_METHOD1(set_date_posted_secs_normalized, void(time64));
-    MOCK_METHOD0(get_description, const char *());
+    MOCK_CONST_METHOD0(get_description, const char *());
     MOCK_METHOD1(set_description, void(const char*));
-    MOCK_METHOD0(get_notes, const char *());
+    MOCK_CONST_METHOD0(get_notes, const char *());
     MOCK_METHOD1(set_notes, void(const char*));
-    MOCK_METHOD0(get_imbalance_value, gnc_numeric());
-    MOCK_METHOD0(get_num, const char *());
-    MOCK_METHOD0(is_open, gboolean());
+    MOCK_CONST_METHOD0(get_imbalance_value, gnc_numeric());
+    MOCK_CONST_METHOD0(get_num, const char *());
+    MOCK_CONST_METHOD0(is_open, gboolean());
     MOCK_METHOD0(destroy, void());
 
 protected:
diff --git a/libgnucash/engine/mocks/gmock-qofbook.h b/libgnucash/engine/mocks/gmock-qofbook.h
index c51c3c3d9..8be7cb331 100644
--- a/libgnucash/engine/mocks/gmock-qofbook.h
+++ b/libgnucash/engine/mocks/gmock-qofbook.h
@@ -51,7 +51,7 @@ public:
     }
 
     MOCK_METHOD0(malloc_split, Split *());
-    MOCK_METHOD0(use_split_action_for_num_field, gboolean());
+    MOCK_CONST_METHOD0(use_split_action_for_num_field, gboolean());
 
 protected:
     // Protect destructor to avoid MockQofBook objects to be created on stack. MockQofBook

commit 5408854c28aa9bb47a243eed887b4bcfdc5eb049
Author: Christian Gruber <christian.gruber at posteo.de>
Date:   Sun Sep 20 22:33:51 2020 +0200

    Rename GObject type names of mock classes
    
    According to a remark in PR #738 the lower case type name is changed.
    Underscores should only be used between namespace and type name and
    between type name and suffixes.

diff --git a/libgnucash/engine/mocks/fake-qofquery.cpp b/libgnucash/engine/mocks/fake-qofquery.cpp
index d8eca210a..dc8445d4d 100644
--- a/libgnucash/engine/mocks/fake-qofquery.cpp
+++ b/libgnucash/engine/mocks/fake-qofquery.cpp
@@ -119,7 +119,7 @@ void
 qof_query_set_book (QofQuery *query, QofBook *book)
 {
     ASSERT_TRUE(queryPool.query_used(query));
-    ASSERT_TRUE(QOF_IS_MOCK_BOOK(book));
+    ASSERT_TRUE(QOF_IS_MOCKBOOK(book));
     ((QofFakeQuery*)query)->set_book(book);
 }
 
diff --git a/libgnucash/engine/mocks/gmock-Account.cpp b/libgnucash/engine/mocks/gmock-Account.cpp
index 74a7a5b74..c25b1157f 100644
--- a/libgnucash/engine/mocks/gmock-Account.cpp
+++ b/libgnucash/engine/mocks/gmock-Account.cpp
@@ -9,16 +9,16 @@ struct _MockAccountClass
 };
 typedef struct _MockAccountClass MockAccountClass;
 
-G_DEFINE_TYPE(MockAccount, gnc_mock_account, QOF_TYPE_INSTANCE);
+G_DEFINE_TYPE(MockAccount, gnc_mockaccount, QOF_TYPE_INSTANCE);
 
 static void
-gnc_mock_account_init (MockAccount *inst)
+gnc_mockaccount_init (MockAccount *inst)
 {
     // function is unused, initialization is done in the MockAccount's C++ constructor
 }
 
 static void
-gnc_mock_account_class_init(MockAccountClass *klass)
+gnc_mockaccount_class_init(MockAccountClass *klass)
 {
     // function is unused, class functions are defined in C++ code
 }
@@ -26,22 +26,22 @@ gnc_mock_account_class_init(MockAccountClass *klass)
 void
 xaccAccountBeginEdit (Account *account)
 {
-    ASSERT_TRUE(GNC_IS_MOCK_ACCOUNT(account));
+    ASSERT_TRUE(GNC_IS_MOCKACCOUNT(account));
     ((MockAccount*)account)->begin_edit();
 }
 
 void
 xaccAccountCommitEdit (Account *account)
 {
-    ASSERT_TRUE(GNC_IS_MOCK_ACCOUNT(account));
+    ASSERT_TRUE(GNC_IS_MOCKACCOUNT(account));
     ((MockAccount*)account)->commit_edit();
 }
 
 QofBook *
 gnc_account_get_book(const Account *account)
 {
-    EXPECT_TRUE(GNC_IS_MOCK_ACCOUNT(account));
-    if (GNC_IS_MOCK_ACCOUNT(account))
+    EXPECT_TRUE(GNC_IS_MOCKACCOUNT(account));
+    if (GNC_IS_MOCKACCOUNT(account))
         return ((MockAccount*)account)->get_book();
     else
         return nullptr;
@@ -51,8 +51,8 @@ gint
 xaccAccountForEachTransaction(const Account *acc, TransactionCallback proc,
                               void *data)
 {
-    EXPECT_TRUE(GNC_IS_MOCK_ACCOUNT(acc));
-    if (GNC_IS_MOCK_ACCOUNT(acc))
+    EXPECT_TRUE(GNC_IS_MOCKACCOUNT(acc));
+    if (GNC_IS_MOCKACCOUNT(acc))
         return ((MockAccount*)acc)->for_each_transaction(proc, data);
     else
         return 0;
@@ -61,8 +61,8 @@ xaccAccountForEachTransaction(const Account *acc, TransactionCallback proc,
 GncImportMatchMap *
 gnc_account_imap_create_imap (Account *acc)
 {
-    EXPECT_TRUE(GNC_IS_MOCK_ACCOUNT(acc));
-    if (GNC_IS_MOCK_ACCOUNT(acc))
+    EXPECT_TRUE(GNC_IS_MOCKACCOUNT(acc));
+    if (GNC_IS_MOCKACCOUNT(acc))
         return ((MockAccount*)acc)->create_imap();
     else
         return nullptr;
diff --git a/libgnucash/engine/mocks/gmock-Account.h b/libgnucash/engine/mocks/gmock-Account.h
index 360a8059e..ac5d9931b 100644
--- a/libgnucash/engine/mocks/gmock-Account.h
+++ b/libgnucash/engine/mocks/gmock-Account.h
@@ -10,10 +10,10 @@
 #include "gmock-gobject.h"
 
 
-GType gnc_mock_account_get_type(void);
+GType gnc_mockaccount_get_type(void);
 
-#define GNC_TYPE_MOCK_ACCOUNT   (gnc_mock_account_get_type ())
-#define GNC_IS_MOCK_ACCOUNT(o)  (G_TYPE_CHECK_INSTANCE_TYPE ((o), GNC_TYPE_MOCK_ACCOUNT))
+#define GNC_TYPE_MOCKACCOUNT   (gnc_mockaccount_get_type ())
+#define GNC_IS_MOCKACCOUNT(o)  (G_TYPE_CHECK_INSTANCE_TYPE ((o), GNC_TYPE_MOCKACCOUNT))
 
 
 // mock up for Account
@@ -26,7 +26,7 @@ public:
     MockAccount() {}
     void* operator new(size_t size)
     {
-        return mock_g_object_new (GNC_TYPE_MOCK_ACCOUNT, NULL, size);
+        return mock_g_object_new (GNC_TYPE_MOCKACCOUNT, NULL, size);
     }
 
     // define separate free() function since destructor is protected
diff --git a/libgnucash/engine/mocks/gmock-Split.cpp b/libgnucash/engine/mocks/gmock-Split.cpp
index 7156ff4fe..d33a44a1d 100644
--- a/libgnucash/engine/mocks/gmock-Split.cpp
+++ b/libgnucash/engine/mocks/gmock-Split.cpp
@@ -12,16 +12,16 @@ struct _MockSplitClass
 };
 typedef struct _MockSplitClass MockSplitClass;
 
-G_DEFINE_TYPE(MockSplit, gnc_mock_split, QOF_TYPE_INSTANCE);
+G_DEFINE_TYPE(MockSplit, gnc_mocksplit, QOF_TYPE_INSTANCE);
 
 static void
-gnc_mock_split_init (MockSplit *inst)
+gnc_mocksplit_init (MockSplit *inst)
 {
     // function is unused, initialization is done in the MockSplit's C++ constructor
 }
 
 static void
-gnc_mock_split_class_init (MockSplitClass *klass)
+gnc_mocksplit_class_init (MockSplitClass *klass)
 {
     // function is unused, class functions are defined in C++ code
 }
@@ -30,8 +30,8 @@ gnc_mock_split_class_init (MockSplitClass *klass)
 Split *
 xaccMallocSplit (QofBook *book)
 {
-    EXPECT_TRUE(QOF_IS_MOCK_BOOK(book));
-    if (QOF_IS_MOCK_BOOK(book))
+    EXPECT_TRUE(QOF_IS_MOCKBOOK(book));
+    if (QOF_IS_MOCKBOOK(book))
         return ((QofMockBook*)book)->malloc_split();
     else
         return nullptr;
@@ -40,8 +40,8 @@ xaccMallocSplit (QofBook *book)
 QofBook *
 xaccSplitGetBook (const Split *split)
 {
-    EXPECT_TRUE(GNC_IS_MOCK_SPLIT(split));
-    if (GNC_IS_MOCK_SPLIT(split))
+    EXPECT_TRUE(GNC_IS_MOCKSPLIT(split));
+    if (GNC_IS_MOCKSPLIT(split))
         return ((MockSplit*)split)->get_book();
     else
         return nullptr;
@@ -50,8 +50,8 @@ xaccSplitGetBook (const Split *split)
 Account *
 xaccSplitGetAccount (const Split *split)
 {
-    EXPECT_TRUE(GNC_IS_MOCK_SPLIT(split));
-    if (GNC_IS_MOCK_SPLIT(split))
+    EXPECT_TRUE(GNC_IS_MOCKSPLIT(split));
+    if (GNC_IS_MOCKSPLIT(split))
         return ((MockSplit*)split)->get_account();
     else
         return nullptr;
@@ -60,16 +60,16 @@ xaccSplitGetAccount (const Split *split)
 void
 xaccSplitSetAccount (Split *split, Account *acc)
 {
-    ASSERT_TRUE(GNC_IS_MOCK_SPLIT(split));
-    ASSERT_TRUE(GNC_IS_MOCK_ACCOUNT(acc));
+    ASSERT_TRUE(GNC_IS_MOCKSPLIT(split));
+    ASSERT_TRUE(GNC_IS_MOCKACCOUNT(acc));
     ((MockSplit*)split)->set_account(acc);
 }
 
 gnc_numeric
 xaccSplitGetAmount (const Split *split)
 {
-    EXPECT_TRUE(GNC_IS_MOCK_SPLIT(split));
-    if (GNC_IS_MOCK_SPLIT(split))
+    EXPECT_TRUE(GNC_IS_MOCKSPLIT(split));
+    if (GNC_IS_MOCKSPLIT(split))
         return ((MockSplit*)split)->get_amount();
     else
         return gnc_numeric_zero();
@@ -78,15 +78,15 @@ xaccSplitGetAmount (const Split *split)
 void
 xaccSplitSetAmount (Split *split, gnc_numeric amt)
 {
-    ASSERT_TRUE(GNC_IS_MOCK_SPLIT(split));
+    ASSERT_TRUE(GNC_IS_MOCKSPLIT(split));
     ((MockSplit*)split)->set_amount(amt);
 }
 
 gnc_numeric
 xaccSplitGetValue (const Split *split)
 {
-    EXPECT_TRUE(GNC_IS_MOCK_SPLIT(split));
-    if (GNC_IS_MOCK_SPLIT(split))
+    EXPECT_TRUE(GNC_IS_MOCKSPLIT(split));
+    if (GNC_IS_MOCKSPLIT(split))
         return ((MockSplit*)split)->get_value();
     else
         return gnc_numeric_zero();
@@ -95,15 +95,15 @@ xaccSplitGetValue (const Split *split)
 void
 xaccSplitSetValue (Split *split, gnc_numeric val)
 {
-    ASSERT_TRUE(GNC_IS_MOCK_SPLIT(split));
+    ASSERT_TRUE(GNC_IS_MOCKSPLIT(split));
     ((MockSplit*)split)->set_value(val);
 }
 
 const char *
 xaccSplitGetMemo (const Split *split)
 {
-    EXPECT_TRUE(GNC_IS_MOCK_SPLIT(split));
-    if (GNC_IS_MOCK_SPLIT(split))
+    EXPECT_TRUE(GNC_IS_MOCKSPLIT(split));
+    if (GNC_IS_MOCKSPLIT(split))
         return ((MockSplit*)split)->get_memo();
     else
         return nullptr;
@@ -112,8 +112,8 @@ xaccSplitGetMemo (const Split *split)
 char
 xaccSplitGetReconcile (const Split *split)
 {
-    EXPECT_TRUE(GNC_IS_MOCK_SPLIT(split));
-    if (GNC_IS_MOCK_SPLIT(split))
+    EXPECT_TRUE(GNC_IS_MOCKSPLIT(split));
+    if (GNC_IS_MOCKSPLIT(split))
         return ((MockSplit*)split)->get_reconcile();
     else
         return VREC;
@@ -122,22 +122,22 @@ xaccSplitGetReconcile (const Split *split)
 void
 xaccSplitSetReconcile (Split *split, char recn)
 {
-    ASSERT_TRUE(GNC_IS_MOCK_SPLIT(split));
+    ASSERT_TRUE(GNC_IS_MOCKSPLIT(split));
     ((MockSplit*)split)->set_reconcile(recn);
 }
 
 void
 xaccSplitSetDateReconciledSecs (Split *split, time64 secs)
 {
-    ASSERT_TRUE(GNC_IS_MOCK_SPLIT(split));
+    ASSERT_TRUE(GNC_IS_MOCKSPLIT(split));
     ((MockSplit*)split)->set_date_reconciled_secs(secs);
 }
 
 const char *
 xaccSplitGetAction (const Split *split)
 {
-    EXPECT_TRUE(GNC_IS_MOCK_SPLIT(split));
-    if (GNC_IS_MOCK_SPLIT(split))
+    EXPECT_TRUE(GNC_IS_MOCKSPLIT(split));
+    if (GNC_IS_MOCKSPLIT(split))
         return ((MockSplit*)split)->get_action();
     else
         return nullptr;
@@ -146,8 +146,8 @@ xaccSplitGetAction (const Split *split)
 Split *
 xaccSplitGetOtherSplit (const Split *split)
 {
-    EXPECT_TRUE(GNC_IS_MOCK_SPLIT(split));
-    if (GNC_IS_MOCK_SPLIT(split))
+    EXPECT_TRUE(GNC_IS_MOCKSPLIT(split));
+    if (GNC_IS_MOCKSPLIT(split))
         return ((MockSplit*)split)->get_other_split();
     else
         return nullptr;
@@ -156,8 +156,8 @@ xaccSplitGetOtherSplit (const Split *split)
 Transaction *
 xaccSplitGetParent (const Split *split)
 {
-    EXPECT_TRUE(GNC_IS_MOCK_SPLIT(split));
-    if (GNC_IS_MOCK_SPLIT(split))
+    EXPECT_TRUE(GNC_IS_MOCKSPLIT(split));
+    if (GNC_IS_MOCKSPLIT(split))
         return ((MockSplit*)split)->get_parent();
     else
         return nullptr;
@@ -166,7 +166,7 @@ xaccSplitGetParent (const Split *split)
 void
 xaccSplitSetParent(Split *split, Transaction *trans)
 {
-    ASSERT_TRUE(GNC_IS_MOCK_SPLIT(split));
-    ASSERT_TRUE(GNC_IS_MOCK_TRANSACTION(trans));
+    ASSERT_TRUE(GNC_IS_MOCKSPLIT(split));
+    ASSERT_TRUE(GNC_IS_MOCKTRANSACTION(trans));
     ((MockSplit*)split)->set_parent(trans);
 }
diff --git a/libgnucash/engine/mocks/gmock-Split.h b/libgnucash/engine/mocks/gmock-Split.h
index 9ff7dfd63..5fe8b29e4 100644
--- a/libgnucash/engine/mocks/gmock-Split.h
+++ b/libgnucash/engine/mocks/gmock-Split.h
@@ -10,10 +10,10 @@
 #include "gmock-gobject.h"
 
 
-GType gnc_mock_split_get_type(void);
+GType gnc_mocksplit_get_type(void);
 
-#define GNC_TYPE_MOCK_SPLIT   (gnc_mock_split_get_type ())
-#define GNC_IS_MOCK_SPLIT(o)  (G_TYPE_CHECK_INSTANCE_TYPE ((o), GNC_TYPE_MOCK_SPLIT))
+#define GNC_TYPE_MOCKSPLIT   (gnc_mocksplit_get_type ())
+#define GNC_IS_MOCKSPLIT(o)  (G_TYPE_CHECK_INSTANCE_TYPE ((o), GNC_TYPE_MOCKSPLIT))
 
 
 // mock up for Split
@@ -46,7 +46,7 @@ public:
     }
     void* operator new(size_t size)
     {
-        return mock_g_object_new (GNC_TYPE_MOCK_SPLIT, NULL, size);
+        return mock_g_object_new (GNC_TYPE_MOCKSPLIT, NULL, size);
     }
 
     // define separate free() function since destructor is protected
diff --git a/libgnucash/engine/mocks/gmock-Transaction.cpp b/libgnucash/engine/mocks/gmock-Transaction.cpp
index 4bb176375..5310ef526 100644
--- a/libgnucash/engine/mocks/gmock-Transaction.cpp
+++ b/libgnucash/engine/mocks/gmock-Transaction.cpp
@@ -10,16 +10,16 @@ struct _MockTransactionClass
 };
 typedef struct _MockTransactionClass MockTransactionClass;
 
-G_DEFINE_TYPE(MockTransaction, gnc_mock_transaction, QOF_TYPE_INSTANCE);
+G_DEFINE_TYPE(MockTransaction, gnc_mocktransaction, QOF_TYPE_INSTANCE);
 
 static void
-gnc_mock_transaction_init (MockTransaction *inst)
+gnc_mocktransaction_init (MockTransaction *inst)
 {
     // function is unused, initialization is done in the MockTransaction's C++ constructor
 }
 
 static void
-gnc_mock_transaction_class_init(MockTransactionClass *klass)
+gnc_mocktransaction_class_init(MockTransactionClass *klass)
 {
     // function is unused, class functions are defined in C++ code
 }
@@ -28,22 +28,22 @@ gnc_mock_transaction_class_init(MockTransactionClass *klass)
 void
 xaccTransBeginEdit (Transaction *trans)
 {
-    ASSERT_TRUE(GNC_IS_MOCK_TRANSACTION(trans));
+    ASSERT_TRUE(GNC_IS_MOCKTRANSACTION(trans));
     ((MockTransaction*)trans)->begin_edit();
 }
 
 void
 xaccTransCommitEdit (Transaction *trans)
 {
-    ASSERT_TRUE(GNC_IS_MOCK_TRANSACTION(trans));
+    ASSERT_TRUE(GNC_IS_MOCKTRANSACTION(trans));
     ((MockTransaction*)trans)->commit_edit();
 }
 
 Split *
 xaccTransGetSplit (const Transaction *trans, int i)
 {
-    EXPECT_TRUE(GNC_IS_MOCK_TRANSACTION(trans));
-    if (GNC_IS_MOCK_TRANSACTION(trans))
+    EXPECT_TRUE(GNC_IS_MOCKTRANSACTION(trans));
+    if (GNC_IS_MOCKTRANSACTION(trans))
         return ((MockTransaction*)trans)->get_split(i);
     else
         return nullptr;
@@ -52,9 +52,9 @@ xaccTransGetSplit (const Transaction *trans, int i)
 Split *
 xaccTransFindSplitByAccount(const Transaction *trans, const Account *acc)
 {
-    EXPECT_TRUE(GNC_IS_MOCK_TRANSACTION(trans));
-    EXPECT_TRUE(GNC_IS_MOCK_ACCOUNT(acc));
-    if (GNC_IS_MOCK_TRANSACTION(trans))
+    EXPECT_TRUE(GNC_IS_MOCKTRANSACTION(trans));
+    EXPECT_TRUE(GNC_IS_MOCKACCOUNT(acc));
+    if (GNC_IS_MOCKTRANSACTION(trans))
         return ((MockTransaction*)trans)->find_split_by_account(acc);
     else
         return nullptr;
@@ -63,8 +63,8 @@ xaccTransFindSplitByAccount(const Transaction *trans, const Account *acc)
 time64
 xaccTransGetDate (const Transaction *trans)
 {
-    EXPECT_TRUE(GNC_IS_MOCK_TRANSACTION(trans));
-    if (GNC_IS_MOCK_TRANSACTION(trans))
+    EXPECT_TRUE(GNC_IS_MOCKTRANSACTION(trans));
+    if (GNC_IS_MOCKTRANSACTION(trans))
         return ((MockTransaction*)trans)->get_date();
     else
         return 0;
@@ -73,15 +73,15 @@ xaccTransGetDate (const Transaction *trans)
 void
 xaccTransSetDatePostedSecsNormalized (Transaction *trans, time64 time)
 {
-    ASSERT_TRUE(GNC_IS_MOCK_TRANSACTION(trans));
+    ASSERT_TRUE(GNC_IS_MOCKTRANSACTION(trans));
     ((MockTransaction*)trans)->set_date_posted_secs_normalized(time);
 }
 
 const char *
 xaccTransGetDescription (const Transaction *trans)
 {
-    EXPECT_TRUE(GNC_IS_MOCK_TRANSACTION(trans));
-    if (GNC_IS_MOCK_TRANSACTION(trans))
+    EXPECT_TRUE(GNC_IS_MOCKTRANSACTION(trans));
+    if (GNC_IS_MOCKTRANSACTION(trans))
         return ((MockTransaction*)trans)->get_description();
     else
         return nullptr;
@@ -90,15 +90,15 @@ xaccTransGetDescription (const Transaction *trans)
 void
 xaccTransSetDescription (Transaction *trans, const char *desc)
 {
-    ASSERT_TRUE(GNC_IS_MOCK_TRANSACTION(trans));
+    ASSERT_TRUE(GNC_IS_MOCKTRANSACTION(trans));
     ((MockTransaction*)trans)->set_description(desc);
 }
 
 const char *
 xaccTransGetNotes (const Transaction *trans)
 {
-    EXPECT_TRUE(GNC_IS_MOCK_TRANSACTION(trans));
-    if (GNC_IS_MOCK_TRANSACTION(trans))
+    EXPECT_TRUE(GNC_IS_MOCKTRANSACTION(trans));
+    if (GNC_IS_MOCKTRANSACTION(trans))
         return ((MockTransaction*)trans)->get_notes();
     else
         return nullptr;
@@ -107,15 +107,15 @@ xaccTransGetNotes (const Transaction *trans)
 void
 xaccTransSetNotes (Transaction *trans, const char *notes)
 {
-    ASSERT_TRUE(GNC_IS_MOCK_TRANSACTION(trans));
+    ASSERT_TRUE(GNC_IS_MOCKTRANSACTION(trans));
     ((MockTransaction*)trans)->set_description(notes);
 }
 
 gnc_numeric
 xaccTransGetImbalanceValue (const Transaction * trans)
 {
-    EXPECT_TRUE(GNC_IS_MOCK_TRANSACTION(trans));
-    if (GNC_IS_MOCK_TRANSACTION(trans))
+    EXPECT_TRUE(GNC_IS_MOCKTRANSACTION(trans));
+    if (GNC_IS_MOCKTRANSACTION(trans))
         return ((MockTransaction*)trans)->get_imbalance_value();
     else
         return gnc_numeric_zero();
@@ -124,8 +124,8 @@ xaccTransGetImbalanceValue (const Transaction * trans)
 const char *
 xaccTransGetNum (const Transaction *trans)
 {
-    EXPECT_TRUE(GNC_IS_MOCK_TRANSACTION(trans));
-    if (GNC_IS_MOCK_TRANSACTION(trans))
+    EXPECT_TRUE(GNC_IS_MOCKTRANSACTION(trans));
+    if (GNC_IS_MOCKTRANSACTION(trans))
         return ((MockTransaction*)trans)->get_num();
     else
         return nullptr;
@@ -134,8 +134,8 @@ xaccTransGetNum (const Transaction *trans)
 gboolean
 xaccTransIsOpen (const Transaction *trans)
 {
-    EXPECT_TRUE(GNC_IS_MOCK_TRANSACTION(trans));
-    if (GNC_IS_MOCK_TRANSACTION(trans))
+    EXPECT_TRUE(GNC_IS_MOCKTRANSACTION(trans));
+    if (GNC_IS_MOCKTRANSACTION(trans))
         return ((MockTransaction*)trans)->is_open();
     else
         return FALSE;
@@ -144,6 +144,6 @@ xaccTransIsOpen (const Transaction *trans)
 void
 xaccTransDestroy (Transaction *trans)
 {
-    ASSERT_TRUE(GNC_IS_MOCK_TRANSACTION(trans));
+    ASSERT_TRUE(GNC_IS_MOCKTRANSACTION(trans));
     ((MockTransaction*)trans)->destroy();
 }
diff --git a/libgnucash/engine/mocks/gmock-Transaction.h b/libgnucash/engine/mocks/gmock-Transaction.h
index d40850ee6..50d5ac9c5 100644
--- a/libgnucash/engine/mocks/gmock-Transaction.h
+++ b/libgnucash/engine/mocks/gmock-Transaction.h
@@ -10,10 +10,10 @@
 #include "gmock-gobject.h"
 
 
-GType gnc_mock_transaction_get_type(void);
+GType gnc_mocktransaction_get_type(void);
 
-#define GNC_TYPE_MOCK_TRANSACTION   (gnc_mock_transaction_get_type ())
-#define GNC_IS_MOCK_TRANSACTION(o)  (G_TYPE_CHECK_INSTANCE_TYPE ((o), GNC_TYPE_MOCK_TRANSACTION))
+#define GNC_TYPE_MOCKTRANSACTION   (gnc_mocktransaction_get_type ())
+#define GNC_IS_MOCKTRANSACTION(o)  (G_TYPE_CHECK_INSTANCE_TYPE ((o), GNC_TYPE_MOCKTRANSACTION))
 
 
 // mock up for Transaction
@@ -36,7 +36,7 @@ public:
     }
     void* operator new(size_t size)
     {
-        return mock_g_object_new (GNC_TYPE_MOCK_TRANSACTION, NULL, size);
+        return mock_g_object_new (GNC_TYPE_MOCKTRANSACTION, NULL, size);
     }
 
     // define separate free() function since destructor is protected
diff --git a/libgnucash/engine/mocks/gmock-qofbook.cpp b/libgnucash/engine/mocks/gmock-qofbook.cpp
index ad186f863..72b755e69 100644
--- a/libgnucash/engine/mocks/gmock-qofbook.cpp
+++ b/libgnucash/engine/mocks/gmock-qofbook.cpp
@@ -6,16 +6,16 @@ struct _QofMockBookClass
 };
 typedef struct _QofMockBookClass QofMockBookClass;
 
-G_DEFINE_TYPE(QofMockBook, qof_mock_book, QOF_TYPE_INSTANCE);
+G_DEFINE_TYPE(QofMockBook, qof_mockbook, QOF_TYPE_INSTANCE);
 
 static void
-qof_mock_book_init (QofMockBook *inst)
+qof_mockbook_init (QofMockBook *inst)
 {
     // function is unused, initialization is done in the QofMockBook's C++ constructor
 }
 
 static void
-qof_mock_book_class_init(QofMockBookClass *klass)
+qof_mockbook_class_init(QofMockBookClass *klass)
 {
     // function is unused, class functions are defined in C++ code
 }
@@ -23,7 +23,7 @@ qof_mock_book_class_init(QofMockBookClass *klass)
 gboolean
 qof_book_use_split_action_for_num_field (const QofBook *book)
 {
-    g_return_val_if_fail(QOF_IS_MOCK_BOOK(book), FALSE);
+    g_return_val_if_fail(QOF_IS_MOCKBOOK(book), FALSE);
     return ((QofMockBook*)book)->use_split_action_for_num_field();
 }
 
diff --git a/libgnucash/engine/mocks/gmock-qofbook.h b/libgnucash/engine/mocks/gmock-qofbook.h
index 9b4b5cd67..c51c3c3d9 100644
--- a/libgnucash/engine/mocks/gmock-qofbook.h
+++ b/libgnucash/engine/mocks/gmock-qofbook.h
@@ -10,10 +10,10 @@
 #include "gmock-Split.h"
 
 
-GType qof_mock_book_get_type(void);
+GType qof_mockbook_get_type(void);
 
-#define QOF_TYPE_MOCK_BOOK   (qof_mock_book_get_type ())
-#define QOF_IS_MOCK_BOOK(o)  (G_TYPE_CHECK_INSTANCE_TYPE ((o), QOF_TYPE_MOCK_BOOK))
+#define QOF_TYPE_MOCKBOOK   (qof_mockbook_get_type ())
+#define QOF_IS_MOCKBOOK(o)  (G_TYPE_CHECK_INSTANCE_TYPE ((o), QOF_TYPE_MOCKBOOK))
 
 
 // mock up for QofBook
@@ -37,7 +37,7 @@ public:
     }
     void* operator new(size_t size)
     {
-        return mock_g_object_new (QOF_TYPE_MOCK_BOOK, NULL, size);
+        return mock_g_object_new (QOF_TYPE_MOCKBOOK, NULL, size);
     }
 
     // define separate free() function since destructor is protected

commit 41c147a91803b93a891c9a4da1f29b1fd7d302fa
Author: Christian Gruber <christian.gruber at posteo.de>
Date:   Mon Aug 24 23:31:08 2020 +0200

    Use /* ... */ for multi-line comments

diff --git a/libgnucash/engine/mocks/gmock-Account.h b/libgnucash/engine/mocks/gmock-Account.h
index e5c6d8a94..360a8059e 100644
--- a/libgnucash/engine/mocks/gmock-Account.h
+++ b/libgnucash/engine/mocks/gmock-Account.h
@@ -20,9 +20,9 @@ GType gnc_mock_account_get_type(void);
 class MockAccount : public Account
 {
 public:
-    // note: don't use default constructor instead of empty constructor, since
-    // it does zero initialization, which would overwrite GObject
-    // initialization, which is already done in the new operator.
+    /* note: don't use default constructor instead of empty constructor, since
+     * it does zero initialization, which would overwrite GObject
+     * initialization, which is already done in the new operator. */
     MockAccount() {}
     void* operator new(size_t size)
     {
@@ -46,8 +46,8 @@ public:
     MOCK_METHOD0(create_imap, GncImportMatchMap*());
 
 protected:
-    // Protect destructor to avoid MockAccount objects to be created on stack. MockAccount
-    // objects can only be dynamically created, since they are derived from GObject.
+    /* Protect destructor to avoid MockAccount objects to be created on stack. MockAccount
+     * objects can only be dynamically created, since they are derived from GObject. */
     ~MockAccount() {}
 };
 

commit df6621f2b54aa488468ac64f6147572cb1f50eb4
Author: Christian Gruber <christian.gruber at posteo.de>
Date:   Fri Jul 10 23:50:10 2020 +0200

    Add doxygen documentation to QofFakeQuery and QofFakeQueryPool

diff --git a/libgnucash/engine/mocks/fake-qofquery.cpp b/libgnucash/engine/mocks/fake-qofquery.cpp
index a6479040c..d8eca210a 100644
--- a/libgnucash/engine/mocks/fake-qofquery.cpp
+++ b/libgnucash/engine/mocks/fake-qofquery.cpp
@@ -1,3 +1,7 @@
+/**
+ * @file fake-qofquery.cpp
+*/
+
 #include <config.h>
 
 #include <list>
@@ -12,11 +16,14 @@
 static class QofFakeQueryPool
 {
 public:
+
+    /* Add QofFakeQuery object to the pool */
     void add_query(QofFakeQuery *query)
     {
         m_queriesNew.push_back(query);
     }
 
+    /* Request to use a QofFakeQuery object */
     QofFakeQuery* request_query(QofIdTypeConst obj_type)
     {
         QofFakeQuery* query = nullptr;
@@ -36,6 +43,8 @@ public:
         return query;
     }
 
+    /* Check if a QofFakeQuery object is currently used, i.e. it has been
+     * requested before */
     bool query_used(QofQuery *query)
     {
         auto it = std::find(m_queriesUsed.begin(), m_queriesUsed.end(), (QofFakeQuery*)query);
@@ -43,6 +52,8 @@ public:
         return (it != m_queriesUsed.end());
     }
 
+    /* Release a formerly requested QofFakeQuery object, which is not used
+     * anymore */
     void release_query(QofFakeQuery *query)
     {
         ASSERT_TRUE(query_used((QofQuery*)query));
@@ -51,6 +62,7 @@ public:
         m_queriesConsumed.push_back(*it);
     }
 
+    /* Remove a formerly added QofFakeQueryObject from the pool */
     void remove_query(QofFakeQuery *query)
     {
         ASSERT_FALSE(query_used((QofQuery*)query));
diff --git a/libgnucash/engine/mocks/fake-qofquery.h b/libgnucash/engine/mocks/fake-qofquery.h
index 13a5df2bd..803f56dbd 100644
--- a/libgnucash/engine/mocks/fake-qofquery.h
+++ b/libgnucash/engine/mocks/fake-qofquery.h
@@ -1,3 +1,9 @@
+/**
+ * @file fake-qofquery.h
+ *
+ * @brief Mocking qof queries
+*/
+
 #ifndef FAKE_QOFQUERY_H
 #define FAKE_QOFQUERY_H
 
@@ -10,8 +16,44 @@ extern "C"
 #include <Query.h>
 }
 
-// Fake object providing functionality similar to QofQuery
-// Note: QofQuery is a typedef for struct _QofQuery, which is is not public
+/** Fake object providing functionality similar to QofQuery
+ *
+ * @note QofQuery is a @c typedef for @c struct _QofQuery, which is not
+ * public. Therefore class QofFakeQuery is not derived from QofQuery.
+ *
+ * To use a QofFakeQuery object simply create it before the GnuCash code
+ * performs a query. Check that the QofFakeQuery object is created with the
+ * correct object type. Also define all expectations and return values on the
+ * created QofFakeQuery object before the GnuCash code performs the query.
+ *
+ * After the query is finished, the QofFakeQuery object can be destroyed. A
+ * QofFakeQuery object can only be used once.
+ *
+ * Internally each created QofFakeQuery object is registered at a
+ * QofFakeQueryPool, which provides it to the GnuCash code on request. This
+ * pool observes the life-cycle of each QofFakeQuery object. The following
+ * steps are expected to be done on each QofFakeQuery object in the
+ * specified order:
+ *    -# create QofFakeQuery object (test application)
+ *    -# call qof_query_create_for() (GnuCash code)
+ *    -# call qof_query_run() (GnuCash code)
+ *    -# call qof_query_destroy() (GnuCash code)
+ *    -# destroy QofFakeQuery object (test application)
+ *
+ * The calls to qof_query_create_for(), qof_query_run() and qof_query_destroy()
+ * are optional, but
+ *    -  qof_query_create_for() and qof_query_destroy() have to be called in
+ *       pairs
+ *    -  if qof_query_run() is called, qof_query_create_for() has to be called
+ *       before as well
+ *
+ * Several GTest assertions are implemented to signal violations of the
+ * QofFakeQuery object life-cycle.
+ *
+ * @note If you want to check, that a certain query is run by the GnuCash code,
+ * then define the appropriate expectations on the QofFakeQuery object in your
+ * test application.
+ */
 class QofFakeQuery
 {
 public:

commit 861a2482fe72786c3a6023b4d496fb781fb34836
Author: Christian Gruber <christian.gruber at posteo.de>
Date:   Fri Jul 10 23:03:01 2020 +0200

    Add a comment on using empty ctor for mock classes derived from GObjects

diff --git a/libgnucash/engine/mocks/gmock-Account.h b/libgnucash/engine/mocks/gmock-Account.h
index 9908b1e32..e5c6d8a94 100644
--- a/libgnucash/engine/mocks/gmock-Account.h
+++ b/libgnucash/engine/mocks/gmock-Account.h
@@ -20,6 +20,9 @@ GType gnc_mock_account_get_type(void);
 class MockAccount : public Account
 {
 public:
+    // note: don't use default constructor instead of empty constructor, since
+    // it does zero initialization, which would overwrite GObject
+    // initialization, which is already done in the new operator.
     MockAccount() {}
     void* operator new(size_t size)
     {

commit 3d92d539176e80cc5630729e02a81b57fe0e39a6
Author: Christian Gruber <christian.gruber at posteo.de>
Date:   Thu Jul 9 21:36:01 2020 +0200

    Rename all class methods using snake_case instead of camelCase

diff --git a/gnucash/import-export/test/gtest-import-backend.cpp b/gnucash/import-export/test/gtest-import-backend.cpp
index c175cea99..5adb2adf9 100644
--- a/gnucash/import-export/test/gtest-import-backend.cpp
+++ b/gnucash/import-export/test/gtest-import-backend.cpp
@@ -130,7 +130,7 @@ protected:
         using namespace testing;
 
         // define behaviour of m_import_acc
-        ON_CALL(*m_import_acc, getBook())
+        ON_CALL(*m_import_acc, get_book())
             .WillByDefault(Return(((TestEnvironment*)env)->m_book));
     }
 
@@ -164,14 +164,14 @@ TEST_F(ImportBackendTest, CreateTransInfo)
     //qof_instance_get (QOF_INSTANCE (split), "online-id", &online_id, NULL);
 
     // Define first split
-    ON_CALL(*m_trans, getSplit(0))
+    ON_CALL(*m_trans, get_split(0))
         .WillByDefault(Return(m_split));
     // define description of the transaction
-    ON_CALL(*m_trans, getDescription())
+    ON_CALL(*m_trans, get_description())
         .WillByDefault(Return("This is the description"));
 
     // function gnc_import_TransInfo_new() should try to find account using the description from the transaction
-    EXPECT_CALL(imap, findAccount(_, StrEq("This is the description")))
+    EXPECT_CALL(imap, find_account(_, StrEq("This is the description")))
         .WillOnce(Return(m_dest_acc));
 
     // call function to be tested
@@ -182,7 +182,7 @@ TEST_F(ImportBackendTest, CreateTransInfo)
     EXPECT_EQ(gnc_import_TransInfo_get_destacc(trans_info), m_dest_acc);
 
     // transaction is not open anymore
-    ON_CALL(*m_trans, isOpen())
+    ON_CALL(*m_trans, is_open())
         .WillByDefault(Return(false));
 
     // delete transaction info
@@ -202,7 +202,7 @@ protected:
         using namespace testing;
 
         // set bayesian import matching in preferences
-        ON_CALL(m_prefs, getBool(StrEq(GNC_PREFS_GROUP_IMPORT), StrEq(GNC_PREF_USE_BAYES)))
+        ON_CALL(m_prefs, get_bool(StrEq(GNC_PREFS_GROUP_IMPORT), StrEq(GNC_PREF_USE_BAYES)))
             .WillByDefault(Return(true));
     }
 
@@ -232,10 +232,10 @@ TEST_F(ImportBackendBayesTest, CreateTransInfo)
     gnc_tm_free(tm_struct);
 
     // Define first split
-    ON_CALL(*m_trans, getSplit(0))
+    ON_CALL(*m_trans, get_split(0))
         .WillByDefault(Return(m_split));
     // Transaction has no further splits
-    ON_CALL(*m_trans, getSplit(Gt(0)))
+    ON_CALL(*m_trans, get_split(Gt(0)))
         .WillByDefault(Return(nullptr));
     // Define description and memo of first split
     // This transaction is used for testing tokenization of its content.
@@ -244,16 +244,16 @@ TEST_F(ImportBackendBayesTest, CreateTransInfo)
     //   * separators at the beginning and end of string
     //   * duplicated tokens within and between description text end memo
     // The token separator is space.
-    ON_CALL(*m_trans, getDescription())
+    ON_CALL(*m_trans, get_description())
         .WillByDefault(Return(" test  tokens within   description  tokens  "));
-    ON_CALL(*m_split, getMemo())
+    ON_CALL(*m_split, get_memo())
         .WillByDefault(Return("  test   the memo test "));
     // Define transaction date
-    ON_CALL(*m_trans, getDate())
+    ON_CALL(*m_trans, get_date())
         .WillByDefault(Return(date));
 
     // check tokens created from transaction
-    EXPECT_CALL(imap, findAccountBayes(AllOf(
+    EXPECT_CALL(imap, find_account_bayes(AllOf(
             Each(Not(StrEq(""))),                // tokens must not be empty strings
             Each(Not(HasSubstr(" "))),           // tokens must not contain separator
             Not(HasDuplicates()),                // tokens must be unique
@@ -271,7 +271,7 @@ TEST_F(ImportBackendBayesTest, CreateTransInfo)
     EXPECT_EQ(gnc_import_TransInfo_get_destacc(trans_info), m_dest_acc);
 
     // transaction is not open anymore
-    ON_CALL(*m_trans, isOpen())
+    ON_CALL(*m_trans, is_open())
         .WillByDefault(Return(false));
 
     // delete transaction info
diff --git a/libgnucash/app-utils/mocks/gmock-gnc-prefs.cpp b/libgnucash/app-utils/mocks/gmock-gnc-prefs.cpp
index 0bb403874..d9e090068 100644
--- a/libgnucash/app-utils/mocks/gmock-gnc-prefs.cpp
+++ b/libgnucash/app-utils/mocks/gmock-gnc-prefs.cpp
@@ -14,42 +14,42 @@ gboolean
 gnc_prefs_get_bool (const gchar *group, const gchar *pref_name)
 {
     EXPECT_NE(prefsbackend, nullptr);
-    return prefsbackend ? prefsbackend->getBool(group, pref_name) : FALSE;
+    return prefsbackend ? prefsbackend->get_bool(group, pref_name) : FALSE;
 }
 
 gint
 gnc_prefs_get_int (const gchar *group, const gchar *pref_name)
 {
     EXPECT_NE(prefsbackend, nullptr);
-    return prefsbackend ? prefsbackend->getInt(group, pref_name) : 0;
+    return prefsbackend ? prefsbackend->get_int(group, pref_name) : 0;
 }
 
 gint64
 gnc_prefs_get_int64 (const gchar *group, const gchar *pref_name)
 {
     EXPECT_NE(prefsbackend, nullptr);
-    return prefsbackend ? prefsbackend->getInt64(group, pref_name) : 0;
+    return prefsbackend ? prefsbackend->get_int64(group, pref_name) : 0;
 }
 
 gdouble
 gnc_prefs_get_float (const gchar *group, const gchar *pref_name)
 {
     EXPECT_NE(prefsbackend, nullptr);
-    return prefsbackend ? prefsbackend->getFloat(group, pref_name) : 0.0;
+    return prefsbackend ? prefsbackend->get_float(group, pref_name) : 0.0;
 }
 
 gchar *
 gnc_prefs_get_string (const gchar *group, const gchar *pref_name)
 {
     EXPECT_NE(prefsbackend, nullptr);
-    return prefsbackend ? prefsbackend->getString(group, pref_name) : NULL;
+    return prefsbackend ? prefsbackend->get_string(group, pref_name) : NULL;
 }
 
 gint
 gnc_prefs_get_enum (const gchar *group, const gchar *pref_name)
 {
     EXPECT_NE(prefsbackend, nullptr);
-    return prefsbackend ? prefsbackend->getEnum(group, pref_name) : 0;
+    return prefsbackend ? prefsbackend->get_enum(group, pref_name) : 0;
 }
 
 void
@@ -61,5 +61,5 @@ gnc_prefs_get_coords (const gchar *group, const gchar *pref_name, gdouble *x, gd
     *y = 0.0;
 
     if (prefsbackend != nullptr)
-        prefsbackend->getCoords(group, pref_name, x, y);
+        prefsbackend->get_coords(group, pref_name, x, y);
 }
diff --git a/libgnucash/app-utils/mocks/gmock-gnc-prefs.h b/libgnucash/app-utils/mocks/gmock-gnc-prefs.h
index 7540f3671..56da9e6c4 100644
--- a/libgnucash/app-utils/mocks/gmock-gnc-prefs.h
+++ b/libgnucash/app-utils/mocks/gmock-gnc-prefs.h
@@ -13,13 +13,13 @@ extern "C"
 class MockPrefsBackend
 {
 public:
-    MOCK_METHOD2(getBool, gboolean(const gchar *, const gchar *));
-    MOCK_METHOD2(getInt, gint(const gchar *, const gchar *));
-    MOCK_METHOD2(getInt64, gint64(const gchar *, const gchar *));
-    MOCK_METHOD2(getFloat, gdouble(const gchar *, const gchar *));
-    MOCK_METHOD2(getString, gchar*(const gchar *, const gchar *));
-    MOCK_METHOD2(getEnum, gint(const gchar *, const gchar *));
-    MOCK_METHOD4(getCoords, void(const gchar *, const gchar *, gdouble *, gdouble *));
+    MOCK_METHOD2(get_bool, gboolean(const gchar *, const gchar *));
+    MOCK_METHOD2(get_int, gint(const gchar *, const gchar *));
+    MOCK_METHOD2(get_int64, gint64(const gchar *, const gchar *));
+    MOCK_METHOD2(get_float, gdouble(const gchar *, const gchar *));
+    MOCK_METHOD2(get_string, gchar*(const gchar *, const gchar *));
+    MOCK_METHOD2(get_enum, gint(const gchar *, const gchar *));
+    MOCK_METHOD4(get_coords, void(const gchar *, const gchar *, gdouble *, gdouble *));
 };
 
 /** Define a preferences backend.
diff --git a/libgnucash/engine/mocks/fake-qofquery.cpp b/libgnucash/engine/mocks/fake-qofquery.cpp
index f3d2be34f..a6479040c 100644
--- a/libgnucash/engine/mocks/fake-qofquery.cpp
+++ b/libgnucash/engine/mocks/fake-qofquery.cpp
@@ -12,12 +12,12 @@
 static class QofFakeQueryPool
 {
 public:
-    void addQuery(QofFakeQuery *query)
+    void add_query(QofFakeQuery *query)
     {
         m_queriesNew.push_back(query);
     }
 
-    QofFakeQuery* requestQuery(QofIdTypeConst obj_type)
+    QofFakeQuery* request_query(QofIdTypeConst obj_type)
     {
         QofFakeQuery* query = nullptr;
 
@@ -36,14 +36,14 @@ public:
         return query;
     }
 
-    bool queryUsed(QofQuery *query)
+    bool query_used(QofQuery *query)
     {
         auto it = std::find(m_queriesUsed.begin(), m_queriesUsed.end(), (QofFakeQuery*)query);
 
         return (it != m_queriesUsed.end());
     }
 
-    void releaseQuery(QofFakeQuery *query)
+    void release_query(QofFakeQuery *query)
     {
         ASSERT_TRUE(query_used((QofQuery*)query));
         auto it = std::find(m_queriesUsed.begin(), m_queriesUsed.end(), query);
@@ -51,9 +51,9 @@ public:
         m_queriesConsumed.push_back(*it);
     }
 
-    void removeQuery(QofFakeQuery *query)
+    void remove_query(QofFakeQuery *query)
     {
-        ASSERT_FALSE(queryUsed((QofQuery*)query));
+        ASSERT_FALSE(query_used((QofQuery*)query));
         auto it = std::find(m_queriesConsumed.begin(), m_queriesConsumed.end(), (QofFakeQuery*)query);
         if (it != m_queriesConsumed.end())
             m_queriesConsumed.erase(it);
@@ -79,12 +79,12 @@ private:
 QofFakeQuery::QofFakeQuery(QofIdTypeConst obj_type) :
     m_obj_type(obj_type)
 {
-    queryPool.addQuery(this);
+    queryPool.add_query(this);
 }
 
 QofFakeQuery::~QofFakeQuery()
 {
-    queryPool.removeQuery(this);
+    queryPool.remove_query(this);
 }
 
 
@@ -94,21 +94,21 @@ QofFakeQuery::~QofFakeQuery()
 QofQuery *
 qof_query_create_for (QofIdTypeConst obj_type)
 {
-    return (QofQuery*)queryPool.requestQuery(obj_type);
+    return (QofQuery*)queryPool.request_query(obj_type);
 }
 
 void
 qof_query_destroy (QofQuery *query)
 {
-    queryPool.releaseQuery((QofFakeQuery*)query);
+    queryPool.release_query((QofFakeQuery*)query);
 }
 
 void
 qof_query_set_book (QofQuery *query, QofBook *book)
 {
-    ASSERT_TRUE(queryPool.queryUsed(query));
+    ASSERT_TRUE(queryPool.query_used(query));
     ASSERT_TRUE(QOF_IS_MOCK_BOOK(book));
-    ((QofFakeQuery*)query)->setBook(book);
+    ((QofFakeQuery*)query)->set_book(book);
 }
 
 void
@@ -120,22 +120,22 @@ xaccQueryAddDateMatchTT (
         time64 ett,
         QofQueryOp op)
 {
-    ASSERT_TRUE(queryPool.queryUsed(query));
-    ((QofFakeQuery*)query)->addDateMatchTT(use_start, stt, use_end, ett, op);
+    ASSERT_TRUE(queryPool.query_used(query));
+    ((QofFakeQuery*)query)->add_date_match_tt(use_start, stt, use_end, ett, op);
 }
 
 void
 xaccQueryAddSingleAccountMatch(QofQuery *query, Account *acc, QofQueryOp op)
 {
-    ASSERT_TRUE(queryPool.queryUsed(query));
-    ((QofFakeQuery*)query)->addSingleAccountMatch(acc, op);
+    ASSERT_TRUE(queryPool.query_used(query));
+    ((QofFakeQuery*)query)->add_single_account_match(acc, op);
 }
 
 GList *
 qof_query_run (QofQuery *query)
 {
     GList *matching_objects = NULL;
-    bool  query_used        = queryPool.queryUsed(query);
+    bool  query_used        = queryPool.query_used(query);
 
     EXPECT_TRUE(query_used);
     if (query_used)
diff --git a/libgnucash/engine/mocks/fake-qofquery.h b/libgnucash/engine/mocks/fake-qofquery.h
index fbf914a09..13a5df2bd 100644
--- a/libgnucash/engine/mocks/fake-qofquery.h
+++ b/libgnucash/engine/mocks/fake-qofquery.h
@@ -18,9 +18,9 @@ public:
     QofFakeQuery(QofIdTypeConst obj_type);
     ~QofFakeQuery();
 
-    MOCK_METHOD1(setBook, void(QofBook*));
-    MOCK_METHOD5(addDateMatchTT, void(gboolean, time64, gboolean, time64, QofQueryOp));
-    MOCK_METHOD2(addSingleAccountMatch, void(Account*, QofQueryOp));
+    MOCK_METHOD1(set_book, void(QofBook*));
+    MOCK_METHOD5(add_date_match_tt, void(gboolean, time64, gboolean, time64, QofQueryOp));
+    MOCK_METHOD2(add_single_account_match, void(Account*, QofQueryOp));
     MOCK_METHOD0(run, std::vector<void*>());
 
     QofIdTypeConst m_obj_type;
diff --git a/libgnucash/engine/mocks/gmock-Account.cpp b/libgnucash/engine/mocks/gmock-Account.cpp
index d06877bb5..74a7a5b74 100644
--- a/libgnucash/engine/mocks/gmock-Account.cpp
+++ b/libgnucash/engine/mocks/gmock-Account.cpp
@@ -27,14 +27,14 @@ void
 xaccAccountBeginEdit (Account *account)
 {
     ASSERT_TRUE(GNC_IS_MOCK_ACCOUNT(account));
-    ((MockAccount*)account)->beginEdit();
+    ((MockAccount*)account)->begin_edit();
 }
 
 void
 xaccAccountCommitEdit (Account *account)
 {
     ASSERT_TRUE(GNC_IS_MOCK_ACCOUNT(account));
-    ((MockAccount*)account)->commitEdit();
+    ((MockAccount*)account)->commit_edit();
 }
 
 QofBook *
@@ -42,7 +42,7 @@ gnc_account_get_book(const Account *account)
 {
     EXPECT_TRUE(GNC_IS_MOCK_ACCOUNT(account));
     if (GNC_IS_MOCK_ACCOUNT(account))
-        return ((MockAccount*)account)->getBook();
+        return ((MockAccount*)account)->get_book();
     else
         return nullptr;
 }
@@ -53,7 +53,7 @@ xaccAccountForEachTransaction(const Account *acc, TransactionCallback proc,
 {
     EXPECT_TRUE(GNC_IS_MOCK_ACCOUNT(acc));
     if (GNC_IS_MOCK_ACCOUNT(acc))
-        return ((MockAccount*)acc)->forEachTransaction(proc, data);
+        return ((MockAccount*)acc)->for_each_transaction(proc, data);
     else
         return 0;
 }
@@ -63,7 +63,7 @@ gnc_account_imap_create_imap (Account *acc)
 {
     EXPECT_TRUE(GNC_IS_MOCK_ACCOUNT(acc));
     if (GNC_IS_MOCK_ACCOUNT(acc))
-        return ((MockAccount*)acc)->imapCreateImap();
+        return ((MockAccount*)acc)->create_imap();
     else
         return nullptr;
 }
@@ -74,7 +74,7 @@ gnc_account_imap_find_account (
         const char* category,
         const char *key)
 {
-    return ((GncMockImportMatchMap*)imap)->findAccount(category, key);
+    return ((GncMockImportMatchMap*)imap)->find_account(category, key);
 }
 
 void
@@ -84,7 +84,7 @@ gnc_account_imap_add_account (
         const char *key,
         Account *acc)
 {
-    ((GncMockImportMatchMap*)imap)->addAccount(category, key, acc);
+    ((GncMockImportMatchMap*)imap)->add_account(category, key, acc);
 }
 
 Account*
@@ -99,7 +99,7 @@ gnc_account_imap_find_account_bayes (
         tokenVec.push_back(static_cast <char const *> (token->data));
     }
 
-    return ((GncMockImportMatchMap*)imap)->findAccountBayes(tokenVec);
+    return ((GncMockImportMatchMap*)imap)->find_account_bayes(tokenVec);
 }
 
 void
@@ -115,6 +115,6 @@ gnc_account_imap_add_account_bayes (
         tokenVec.push_back(static_cast <char const *> (token->data));
     }
 
-    ((GncMockImportMatchMap*)imap)->addAccountBayes(tokenVec, acc);
+    ((GncMockImportMatchMap*)imap)->add_account_bayes(tokenVec, acc);
 }
 
diff --git a/libgnucash/engine/mocks/gmock-Account.h b/libgnucash/engine/mocks/gmock-Account.h
index 0783bb46a..9908b1e32 100644
--- a/libgnucash/engine/mocks/gmock-Account.h
+++ b/libgnucash/engine/mocks/gmock-Account.h
@@ -36,11 +36,11 @@ public:
         mock_g_object_unref(acc, size);
     }
 
-    MOCK_METHOD0(beginEdit, void());
-    MOCK_METHOD0(commitEdit, void());
-    MOCK_METHOD0(getBook, QofMockBook*());
-    MOCK_METHOD2(forEachTransaction, gint(TransactionCallback, void*));
-    MOCK_METHOD0(imapCreateImap, GncImportMatchMap*());
+    MOCK_METHOD0(begin_edit, void());
+    MOCK_METHOD0(commit_edit, void());
+    MOCK_METHOD0(get_book, QofMockBook*());
+    MOCK_METHOD2(for_each_transaction, gint(TransactionCallback, void*));
+    MOCK_METHOD0(create_imap, GncImportMatchMap*());
 
 protected:
     // Protect destructor to avoid MockAccount objects to be created on stack. MockAccount
@@ -55,13 +55,13 @@ public:
     GncMockImportMatchMap(MockAccount* account)
     {
         acc  = account;
-        book = account->getBook();
+        book = account->get_book();
     };
 
-    MOCK_METHOD2(findAccount, Account *(const char*, const char*));
-    MOCK_METHOD3(addAccount, void(const char*, const char*, Account*));
-    MOCK_METHOD1(findAccountBayes, Account *(std::vector<const char*>&));
-    MOCK_METHOD2(addAccountBayes, void(std::vector<const char*>&, Account*));
+    MOCK_METHOD2(find_account, Account *(const char*, const char*));
+    MOCK_METHOD3(add_account, void(const char*, const char*, Account*));
+    MOCK_METHOD1(find_account_bayes, Account *(std::vector<const char*>&));
+    MOCK_METHOD2(add_account_bayes, void(std::vector<const char*>&, Account*));
 };
 
 #endif
diff --git a/libgnucash/engine/mocks/gmock-Split.cpp b/libgnucash/engine/mocks/gmock-Split.cpp
index 7f1f14903..7156ff4fe 100644
--- a/libgnucash/engine/mocks/gmock-Split.cpp
+++ b/libgnucash/engine/mocks/gmock-Split.cpp
@@ -32,7 +32,7 @@ xaccMallocSplit (QofBook *book)
 {
     EXPECT_TRUE(QOF_IS_MOCK_BOOK(book));
     if (QOF_IS_MOCK_BOOK(book))
-        return ((QofMockBook*)book)->mallocSplit();
+        return ((QofMockBook*)book)->malloc_split();
     else
         return nullptr;
 }
@@ -42,7 +42,7 @@ xaccSplitGetBook (const Split *split)
 {
     EXPECT_TRUE(GNC_IS_MOCK_SPLIT(split));
     if (GNC_IS_MOCK_SPLIT(split))
-        return ((MockSplit*)split)->getBook();
+        return ((MockSplit*)split)->get_book();
     else
         return nullptr;
 }
@@ -52,7 +52,7 @@ xaccSplitGetAccount (const Split *split)
 {
     EXPECT_TRUE(GNC_IS_MOCK_SPLIT(split));
     if (GNC_IS_MOCK_SPLIT(split))
-        return ((MockSplit*)split)->getAccount();
+        return ((MockSplit*)split)->get_account();
     else
         return nullptr;
 }
@@ -62,7 +62,7 @@ xaccSplitSetAccount (Split *split, Account *acc)
 {
     ASSERT_TRUE(GNC_IS_MOCK_SPLIT(split));
     ASSERT_TRUE(GNC_IS_MOCK_ACCOUNT(acc));
-    ((MockSplit*)split)->setAccount(acc);
+    ((MockSplit*)split)->set_account(acc);
 }
 
 gnc_numeric
@@ -70,7 +70,7 @@ xaccSplitGetAmount (const Split *split)
 {
     EXPECT_TRUE(GNC_IS_MOCK_SPLIT(split));
     if (GNC_IS_MOCK_SPLIT(split))
-        return ((MockSplit*)split)->getAmount();
+        return ((MockSplit*)split)->get_amount();
     else
         return gnc_numeric_zero();
 }
@@ -79,7 +79,7 @@ void
 xaccSplitSetAmount (Split *split, gnc_numeric amt)
 {
     ASSERT_TRUE(GNC_IS_MOCK_SPLIT(split));
-    ((MockSplit*)split)->setAmount(amt);
+    ((MockSplit*)split)->set_amount(amt);
 }
 
 gnc_numeric
@@ -87,7 +87,7 @@ xaccSplitGetValue (const Split *split)
 {
     EXPECT_TRUE(GNC_IS_MOCK_SPLIT(split));
     if (GNC_IS_MOCK_SPLIT(split))
-        return ((MockSplit*)split)->getValue();
+        return ((MockSplit*)split)->get_value();
     else
         return gnc_numeric_zero();
 }
@@ -96,7 +96,7 @@ void
 xaccSplitSetValue (Split *split, gnc_numeric val)
 {
     ASSERT_TRUE(GNC_IS_MOCK_SPLIT(split));
-    ((MockSplit*)split)->setValue(val);
+    ((MockSplit*)split)->set_value(val);
 }
 
 const char *
@@ -104,7 +104,7 @@ xaccSplitGetMemo (const Split *split)
 {
     EXPECT_TRUE(GNC_IS_MOCK_SPLIT(split));
     if (GNC_IS_MOCK_SPLIT(split))
-        return ((MockSplit*)split)->getMemo();
+        return ((MockSplit*)split)->get_memo();
     else
         return nullptr;
 }
@@ -114,7 +114,7 @@ xaccSplitGetReconcile (const Split *split)
 {
     EXPECT_TRUE(GNC_IS_MOCK_SPLIT(split));
     if (GNC_IS_MOCK_SPLIT(split))
-        return ((MockSplit*)split)->getReconcile();
+        return ((MockSplit*)split)->get_reconcile();
     else
         return VREC;
 }
@@ -123,14 +123,14 @@ void
 xaccSplitSetReconcile (Split *split, char recn)
 {
     ASSERT_TRUE(GNC_IS_MOCK_SPLIT(split));
-    ((MockSplit*)split)->setReconcile(recn);
+    ((MockSplit*)split)->set_reconcile(recn);
 }
 
 void
 xaccSplitSetDateReconciledSecs (Split *split, time64 secs)
 {
     ASSERT_TRUE(GNC_IS_MOCK_SPLIT(split));
-    ((MockSplit*)split)->setDateReconciledSecs(secs);
+    ((MockSplit*)split)->set_date_reconciled_secs(secs);
 }
 
 const char *
@@ -138,7 +138,7 @@ xaccSplitGetAction (const Split *split)
 {
     EXPECT_TRUE(GNC_IS_MOCK_SPLIT(split));
     if (GNC_IS_MOCK_SPLIT(split))
-        return ((MockSplit*)split)->getAction();
+        return ((MockSplit*)split)->get_action();
     else
         return nullptr;
 }
@@ -148,7 +148,7 @@ xaccSplitGetOtherSplit (const Split *split)
 {
     EXPECT_TRUE(GNC_IS_MOCK_SPLIT(split));
     if (GNC_IS_MOCK_SPLIT(split))
-        return ((MockSplit*)split)->getOtherSplit();
+        return ((MockSplit*)split)->get_other_split();
     else
         return nullptr;
 }
@@ -158,7 +158,7 @@ xaccSplitGetParent (const Split *split)
 {
     EXPECT_TRUE(GNC_IS_MOCK_SPLIT(split));
     if (GNC_IS_MOCK_SPLIT(split))
-        return ((MockSplit*)split)->getParent();
+        return ((MockSplit*)split)->get_parent();
     else
         return nullptr;
 }
@@ -168,5 +168,5 @@ xaccSplitSetParent(Split *split, Transaction *trans)
 {
     ASSERT_TRUE(GNC_IS_MOCK_SPLIT(split));
     ASSERT_TRUE(GNC_IS_MOCK_TRANSACTION(trans));
-    ((MockSplit*)split)->setParent(trans);
+    ((MockSplit*)split)->set_parent(trans);
 }
diff --git a/libgnucash/engine/mocks/gmock-Split.h b/libgnucash/engine/mocks/gmock-Split.h
index 569d2fce1..9ff7dfd63 100644
--- a/libgnucash/engine/mocks/gmock-Split.h
+++ b/libgnucash/engine/mocks/gmock-Split.h
@@ -60,21 +60,21 @@ public:
     }
 
     MOCK_METHOD0(init, void());
-    MOCK_METHOD0(getBook, QofBook *());
-    MOCK_METHOD0(getAccount, Account *());
-    MOCK_METHOD1(setAccount, void(Account*));
-    MOCK_METHOD0(getAmount, gnc_numeric());
-    MOCK_METHOD1(setAmount, void(gnc_numeric));
-    MOCK_METHOD0(getValue, gnc_numeric());
-    MOCK_METHOD1(setValue, void(gnc_numeric));
-    MOCK_METHOD0(getMemo, const char *());
-    MOCK_METHOD0(getReconcile, char());
-    MOCK_METHOD1(setReconcile, void(char));
-    MOCK_METHOD1(setDateReconciledSecs, void(time64));
-    MOCK_METHOD0(getAction, const char *());
-    MOCK_METHOD0(getOtherSplit, Split *());
-    MOCK_METHOD0(getParent, Transaction *());
-    MOCK_METHOD1(setParent, void(Transaction*));
+    MOCK_METHOD0(get_book, QofBook *());
+    MOCK_METHOD0(get_account, Account *());
+    MOCK_METHOD1(set_account, void(Account*));
+    MOCK_METHOD0(get_amount, gnc_numeric());
+    MOCK_METHOD1(set_amount, void(gnc_numeric));
+    MOCK_METHOD0(get_value, gnc_numeric());
+    MOCK_METHOD1(set_value, void(gnc_numeric));
+    MOCK_METHOD0(get_memo, const char *());
+    MOCK_METHOD0(get_reconcile, char());
+    MOCK_METHOD1(set_reconcile, void(char));
+    MOCK_METHOD1(set_date_reconciled_secs, void(time64));
+    MOCK_METHOD0(get_action, const char *());
+    MOCK_METHOD0(get_other_split, Split *());
+    MOCK_METHOD0(get_parent, Transaction *());
+    MOCK_METHOD1(set_parent, void(Transaction*));
 
 protected:
     // Protect destructor to avoid MockSplit objects to be created on stack. MockSplit
diff --git a/libgnucash/engine/mocks/gmock-Transaction.cpp b/libgnucash/engine/mocks/gmock-Transaction.cpp
index 723ebb614..4bb176375 100644
--- a/libgnucash/engine/mocks/gmock-Transaction.cpp
+++ b/libgnucash/engine/mocks/gmock-Transaction.cpp
@@ -29,14 +29,14 @@ void
 xaccTransBeginEdit (Transaction *trans)
 {
     ASSERT_TRUE(GNC_IS_MOCK_TRANSACTION(trans));
-    ((MockTransaction*)trans)->beginEdit();
+    ((MockTransaction*)trans)->begin_edit();
 }
 
 void
 xaccTransCommitEdit (Transaction *trans)
 {
     ASSERT_TRUE(GNC_IS_MOCK_TRANSACTION(trans));
-    ((MockTransaction*)trans)->commitEdit();
+    ((MockTransaction*)trans)->commit_edit();
 }
 
 Split *
@@ -44,7 +44,7 @@ xaccTransGetSplit (const Transaction *trans, int i)
 {
     EXPECT_TRUE(GNC_IS_MOCK_TRANSACTION(trans));
     if (GNC_IS_MOCK_TRANSACTION(trans))
-        return ((MockTransaction*)trans)->getSplit(i);
+        return ((MockTransaction*)trans)->get_split(i);
     else
         return nullptr;
 }
@@ -55,7 +55,7 @@ xaccTransFindSplitByAccount(const Transaction *trans, const Account *acc)
     EXPECT_TRUE(GNC_IS_MOCK_TRANSACTION(trans));
     EXPECT_TRUE(GNC_IS_MOCK_ACCOUNT(acc));
     if (GNC_IS_MOCK_TRANSACTION(trans))
-        return ((MockTransaction*)trans)->findSplitByAccount(acc);
+        return ((MockTransaction*)trans)->find_split_by_account(acc);
     else
         return nullptr;
 }
@@ -65,7 +65,7 @@ xaccTransGetDate (const Transaction *trans)
 {
     EXPECT_TRUE(GNC_IS_MOCK_TRANSACTION(trans));
     if (GNC_IS_MOCK_TRANSACTION(trans))
-        return ((MockTransaction*)trans)->getDate();
+        return ((MockTransaction*)trans)->get_date();
     else
         return 0;
 }
@@ -74,7 +74,7 @@ void
 xaccTransSetDatePostedSecsNormalized (Transaction *trans, time64 time)
 {
     ASSERT_TRUE(GNC_IS_MOCK_TRANSACTION(trans));
-    ((MockTransaction*)trans)->setDatePostedSecsNormalized(time);
+    ((MockTransaction*)trans)->set_date_posted_secs_normalized(time);
 }
 
 const char *
@@ -82,7 +82,7 @@ xaccTransGetDescription (const Transaction *trans)
 {
     EXPECT_TRUE(GNC_IS_MOCK_TRANSACTION(trans));
     if (GNC_IS_MOCK_TRANSACTION(trans))
-        return ((MockTransaction*)trans)->getDescription();
+        return ((MockTransaction*)trans)->get_description();
     else
         return nullptr;
 }
@@ -91,7 +91,7 @@ void
 xaccTransSetDescription (Transaction *trans, const char *desc)
 {
     ASSERT_TRUE(GNC_IS_MOCK_TRANSACTION(trans));
-    ((MockTransaction*)trans)->setDescription(desc);
+    ((MockTransaction*)trans)->set_description(desc);
 }
 
 const char *
@@ -99,7 +99,7 @@ xaccTransGetNotes (const Transaction *trans)
 {
     EXPECT_TRUE(GNC_IS_MOCK_TRANSACTION(trans));
     if (GNC_IS_MOCK_TRANSACTION(trans))
-        return ((MockTransaction*)trans)->getNotes();
+        return ((MockTransaction*)trans)->get_notes();
     else
         return nullptr;
 }
@@ -108,7 +108,7 @@ void
 xaccTransSetNotes (Transaction *trans, const char *notes)
 {
     ASSERT_TRUE(GNC_IS_MOCK_TRANSACTION(trans));
-    ((MockTransaction*)trans)->setDescription(notes);
+    ((MockTransaction*)trans)->set_description(notes);
 }
 
 gnc_numeric
@@ -116,7 +116,7 @@ xaccTransGetImbalanceValue (const Transaction * trans)
 {
     EXPECT_TRUE(GNC_IS_MOCK_TRANSACTION(trans));
     if (GNC_IS_MOCK_TRANSACTION(trans))
-        return ((MockTransaction*)trans)->getImbalanceValue();
+        return ((MockTransaction*)trans)->get_imbalance_value();
     else
         return gnc_numeric_zero();
 }
@@ -126,7 +126,7 @@ xaccTransGetNum (const Transaction *trans)
 {
     EXPECT_TRUE(GNC_IS_MOCK_TRANSACTION(trans));
     if (GNC_IS_MOCK_TRANSACTION(trans))
-        return ((MockTransaction*)trans)->getNum();
+        return ((MockTransaction*)trans)->get_num();
     else
         return nullptr;
 }
@@ -136,7 +136,7 @@ xaccTransIsOpen (const Transaction *trans)
 {
     EXPECT_TRUE(GNC_IS_MOCK_TRANSACTION(trans));
     if (GNC_IS_MOCK_TRANSACTION(trans))
-        return ((MockTransaction*)trans)->isOpen();
+        return ((MockTransaction*)trans)->is_open();
     else
         return FALSE;
 }
diff --git a/libgnucash/engine/mocks/gmock-Transaction.h b/libgnucash/engine/mocks/gmock-Transaction.h
index 0790a7c03..d40850ee6 100644
--- a/libgnucash/engine/mocks/gmock-Transaction.h
+++ b/libgnucash/engine/mocks/gmock-Transaction.h
@@ -49,19 +49,19 @@ public:
         mock_g_object_unref(trans, size);
     }
 
-    MOCK_METHOD0(beginEdit, void());
-    MOCK_METHOD0(commitEdit, void());
-    MOCK_METHOD1(getSplit, Split *(int));
-    MOCK_METHOD1(findSplitByAccount, Split *(const Account*));
-    MOCK_METHOD0(getDate, time64());
-    MOCK_METHOD1(setDatePostedSecsNormalized, void(time64));
-    MOCK_METHOD0(getDescription, const char *());
-    MOCK_METHOD1(setDescription, void(const char*));
-    MOCK_METHOD0(getNotes, const char *());
-    MOCK_METHOD1(setNotes, void(const char*));
-    MOCK_METHOD0(getImbalanceValue, gnc_numeric());
-    MOCK_METHOD0(getNum, const char *());
-    MOCK_METHOD0(isOpen, gboolean());
+    MOCK_METHOD0(begin_edit, void());
+    MOCK_METHOD0(commit_edit, void());
+    MOCK_METHOD1(get_split, Split *(int));
+    MOCK_METHOD1(find_split_by_account, Split *(const Account*));
+    MOCK_METHOD0(get_date, time64());
+    MOCK_METHOD1(set_date_posted_secs_normalized, void(time64));
+    MOCK_METHOD0(get_description, const char *());
+    MOCK_METHOD1(set_description, void(const char*));
+    MOCK_METHOD0(get_notes, const char *());
+    MOCK_METHOD1(set_notes, void(const char*));
+    MOCK_METHOD0(get_imbalance_value, gnc_numeric());
+    MOCK_METHOD0(get_num, const char *());
+    MOCK_METHOD0(is_open, gboolean());
     MOCK_METHOD0(destroy, void());
 
 protected:
diff --git a/libgnucash/engine/mocks/gmock-qofbook.cpp b/libgnucash/engine/mocks/gmock-qofbook.cpp
index ee83a518f..ad186f863 100644
--- a/libgnucash/engine/mocks/gmock-qofbook.cpp
+++ b/libgnucash/engine/mocks/gmock-qofbook.cpp
@@ -24,6 +24,6 @@ gboolean
 qof_book_use_split_action_for_num_field (const QofBook *book)
 {
     g_return_val_if_fail(QOF_IS_MOCK_BOOK(book), FALSE);
-    return ((QofMockBook*)book)->useSplitActionForNumField();
+    return ((QofMockBook*)book)->use_split_action_for_num_field();
 }
 
diff --git a/libgnucash/engine/mocks/gmock-qofbook.h b/libgnucash/engine/mocks/gmock-qofbook.h
index e4d4536b3..9b4b5cd67 100644
--- a/libgnucash/engine/mocks/gmock-qofbook.h
+++ b/libgnucash/engine/mocks/gmock-qofbook.h
@@ -50,8 +50,8 @@ public:
         mock_g_object_unref(book, size);
     }
 
-    MOCK_METHOD0(mallocSplit, Split *());
-    MOCK_METHOD0(useSplitActionForNumField, gboolean());
+    MOCK_METHOD0(malloc_split, Split *());
+    MOCK_METHOD0(use_split_action_for_num_field, gboolean());
 
 protected:
     // Protect destructor to avoid MockQofBook objects to be created on stack. MockQofBook

commit 1fa90a54298682944abfb7504a9f74bd2bfc7b64
Author: Christian Gruber <christian.gruber at posteo.de>
Date:   Mon Jun 15 22:53:08 2020 +0200

    Cleanup some comments

diff --git a/libgnucash/engine/mocks/gmock-Account.cpp b/libgnucash/engine/mocks/gmock-Account.cpp
index 02afcd37c..d06877bb5 100644
--- a/libgnucash/engine/mocks/gmock-Account.cpp
+++ b/libgnucash/engine/mocks/gmock-Account.cpp
@@ -84,7 +84,6 @@ gnc_account_imap_add_account (
         const char *key,
         Account *acc)
 {
-    // not used at the moment
     ((GncMockImportMatchMap*)imap)->addAccount(category, key, acc);
 }
 

commit af3353a1da2659fcf705bc7b430e84899c0a16f4
Author: Christian Gruber <christian.gruber at posteo.de>
Date:   Mon Jun 15 22:52:54 2020 +0200

    Correct comments on fake functions of the test application

diff --git a/gnucash/import-export/test/gtest-import-backend.cpp b/gnucash/import-export/test/gtest-import-backend.cpp
index 850102b02..c175cea99 100644
--- a/gnucash/import-export/test/gtest-import-backend.cpp
+++ b/gnucash/import-export/test/gtest-import-backend.cpp
@@ -43,8 +43,9 @@ testing::Environment* const env = testing::AddGlobalTestEnvironment(new TestEnvi
 
 
 
-/* mock functions, which can not be mocked by mock classes */
+/* required fake functions from engine sources, which should not be linked to the test application */
 
+// fake function from qofutil.cpp
 gint
 safe_strcasecmp (const gchar * da, const gchar * db)
 {
@@ -52,6 +53,7 @@ safe_strcasecmp (const gchar * da, const gchar * db)
     return g_strcmp0(da, db);
 }
 
+// fake function from qoflog.cpp
 const char *
 qof_log_prettify (const char *name)
 {
@@ -59,7 +61,8 @@ qof_log_prettify (const char *name)
     return name;
 }
 
-// this is a slightly modified version of the function from engine-helpers.c
+// fake function from engine-helpers.c
+// this is a slightly modified version of the original function
 const char *
 gnc_get_num_action (const Transaction *trans, const Split *split)
 {
@@ -79,6 +82,10 @@ gnc_get_num_action (const Transaction *trans, const Split *split)
     else return NULL;
 }
 
+
+/* required fake functions from app-utils sources, which should not be linked to the test application */
+
+// fake function from gnc-ui-util.c
 QofBook *
 gnc_get_current_book (void)
 {

commit 1e2236afdcd216c42be4ab316470628598e830ec
Author: Christian Gruber <christian.gruber at posteo.de>
Date:   Mon Jun 15 22:36:13 2020 +0200

    Use typed queries

diff --git a/libgnucash/engine/mocks/fake-qofquery.cpp b/libgnucash/engine/mocks/fake-qofquery.cpp
index d76685460..f3d2be34f 100644
--- a/libgnucash/engine/mocks/fake-qofquery.cpp
+++ b/libgnucash/engine/mocks/fake-qofquery.cpp
@@ -17,14 +17,18 @@ public:
         m_queriesNew.push_back(query);
     }
 
-    QofFakeQuery* requestQuery()
+    QofFakeQuery* requestQuery(QofIdTypeConst obj_type)
     {
         QofFakeQuery* query = nullptr;
 
-        if (!m_queriesNew.empty())
+        auto it = std::find_if(m_queriesNew.begin(), m_queriesNew.end(),
+            [obj_type](QofFakeQuery const* query) {
+                return (g_strcmp0(query->m_obj_type, obj_type) == 0);
+            });
+        if (it != m_queriesNew.end())
         {
-            query = m_queriesNew.front();
-            m_queriesNew.pop_front();
+            query = *it;
+            m_queriesNew.erase(it);
             m_queriesUsed.push_back(query);
         }
 
@@ -72,7 +76,8 @@ private:
 
 /* class QofFakeQuery */
 
-QofFakeQuery::QofFakeQuery()
+QofFakeQuery::QofFakeQuery(QofIdTypeConst obj_type) :
+    m_obj_type(obj_type)
 {
     queryPool.addQuery(this);
 }
@@ -89,7 +94,7 @@ QofFakeQuery::~QofFakeQuery()
 QofQuery *
 qof_query_create_for (QofIdTypeConst obj_type)
 {
-    return (QofQuery*)queryPool.requestQuery();
+    return (QofQuery*)queryPool.requestQuery(obj_type);
 }
 
 void
diff --git a/libgnucash/engine/mocks/fake-qofquery.h b/libgnucash/engine/mocks/fake-qofquery.h
index a695bb3e1..fbf914a09 100644
--- a/libgnucash/engine/mocks/fake-qofquery.h
+++ b/libgnucash/engine/mocks/fake-qofquery.h
@@ -15,14 +15,15 @@ extern "C"
 class QofFakeQuery
 {
 public:
-    QofFakeQuery();
+    QofFakeQuery(QofIdTypeConst obj_type);
     ~QofFakeQuery();
 
     MOCK_METHOD1(setBook, void(QofBook*));
     MOCK_METHOD5(addDateMatchTT, void(gboolean, time64, gboolean, time64, QofQueryOp));
     MOCK_METHOD2(addSingleAccountMatch, void(Account*, QofQueryOp));
     MOCK_METHOD0(run, std::vector<void*>());
-};
 
+    QofIdTypeConst m_obj_type;
+};
 
 #endif

commit fa82a8bcce5328c6aeb20c8fc3b57949b0548c08
Author: Christian Gruber <christian.gruber at posteo.de>
Date:   Mon Jun 15 22:06:08 2020 +0200

    Replace query factory by a query pool
    
    Query factory was implemented using a public global variable
    qof_query_factory.
    
    Furthermore a query pool is easier to handle than a factory, since the
    whole management can be hidden from the user.

diff --git a/libgnucash/engine/mocks/fake-qofquery.cpp b/libgnucash/engine/mocks/fake-qofquery.cpp
index b2542a786..d76685460 100644
--- a/libgnucash/engine/mocks/fake-qofquery.cpp
+++ b/libgnucash/engine/mocks/fake-qofquery.cpp
@@ -1,46 +1,109 @@
 #include <config.h>
 
+#include <list>
+
 #include "fake-qofquery.h"
 #include "gmock-qofbook.h"
 
+
+
+/* class QofFakeQueryPool */
+
+static class QofFakeQueryPool
+{
+public:
+    void addQuery(QofFakeQuery *query)
+    {
+        m_queriesNew.push_back(query);
+    }
+
+    QofFakeQuery* requestQuery()
+    {
+        QofFakeQuery* query = nullptr;
+
+        if (!m_queriesNew.empty())
+        {
+            query = m_queriesNew.front();
+            m_queriesNew.pop_front();
+            m_queriesUsed.push_back(query);
+        }
+
+        EXPECT_NE(query, nullptr);
+        return query;
+    }
+
+    bool queryUsed(QofQuery *query)
+    {
+        auto it = std::find(m_queriesUsed.begin(), m_queriesUsed.end(), (QofFakeQuery*)query);
+
+        return (it != m_queriesUsed.end());
+    }
+
+    void releaseQuery(QofFakeQuery *query)
+    {
+        ASSERT_TRUE(query_used((QofQuery*)query));
+        auto it = std::find(m_queriesUsed.begin(), m_queriesUsed.end(), query);
+        m_queriesUsed.erase(it);
+        m_queriesConsumed.push_back(*it);
+    }
+
+    void removeQuery(QofFakeQuery *query)
+    {
+        ASSERT_FALSE(queryUsed((QofQuery*)query));
+        auto it = std::find(m_queriesConsumed.begin(), m_queriesConsumed.end(), (QofFakeQuery*)query);
+        if (it != m_queriesConsumed.end())
+            m_queriesConsumed.erase(it);
+        else
+        {
+            it = std::find(m_queriesNew.begin(), m_queriesNew.end(), (QofFakeQuery*)query);
+            bool query_found = (it != m_queriesNew.end());
+            ASSERT_TRUE(query_found);
+            m_queriesNew.erase(it);
+        }
+    }
+
+private:
+    std::list<QofFakeQuery*> m_queriesNew {};
+    std::list<QofFakeQuery*> m_queriesUsed {};
+    std::list<QofFakeQuery*> m_queriesConsumed {};
+} queryPool;
+
+
+
+/* class QofFakeQuery */
+
+QofFakeQuery::QofFakeQuery()
+{
+    queryPool.addQuery(this);
+}
+
+QofFakeQuery::~QofFakeQuery()
+{
+    queryPool.removeQuery(this);
+}
+
+
+
+/* mock functions */
+
 QofQuery *
 qof_query_create_for (QofIdTypeConst obj_type)
 {
-    return (QofQuery*)qof_query_factory.create();
-/*
-    // \todo create typed query objects
-    QofQuery *ret = NULL;
-
-    if (g_strcmp0(obj_type, GNC_ID_SPLIT) == 0)
-        ret = (QofQuery*)qof_query_factory.createForSplit();
-//    else
-//        FAIL();
-
-    return ret;
-*/
+    return (QofQuery*)queryPool.requestQuery();
 }
 
 void
-qof_query_set_book (QofQuery *query, QofBook *book)
+qof_query_destroy (QofQuery *query)
 {
-    ASSERT_TRUE(QOF_IS_MOCK_BOOK(book));
-    ((QofFakeQuery*)query)->setBook(book);
+    queryPool.releaseQuery((QofFakeQuery*)query);
 }
 
-GList *
-qof_query_run (QofQuery *query)
+void
+qof_query_set_book (QofQuery *query, QofBook *book)
 {
-    GList *matching_objects = NULL;
-
-    // \todo use typed mock objects
-    auto matchingObjects = ((QofFakeQuery*)query)->run();
-
-    for (auto object : matchingObjects)
-    {
-        matching_objects = g_list_append(matching_objects, static_cast<gpointer>(object));
-    }
-
-    return matching_objects;
+    ASSERT_TRUE(queryPool.queryUsed(query));
+    ASSERT_TRUE(QOF_IS_MOCK_BOOK(book));
+    ((QofFakeQuery*)query)->setBook(book);
 }
 
 void
@@ -52,17 +115,33 @@ xaccQueryAddDateMatchTT (
         time64 ett,
         QofQueryOp op)
 {
+    ASSERT_TRUE(queryPool.queryUsed(query));
     ((QofFakeQuery*)query)->addDateMatchTT(use_start, stt, use_end, ett, op);
 }
 
 void
 xaccQueryAddSingleAccountMatch(QofQuery *query, Account *acc, QofQueryOp op)
 {
+    ASSERT_TRUE(queryPool.queryUsed(query));
     ((QofFakeQuery*)query)->addSingleAccountMatch(acc, op);
 }
 
-void
-qof_query_destroy (QofQuery *query)
+GList *
+qof_query_run (QofQuery *query)
 {
-    ((QofFakeQuery*)query)->destroy();
+    GList *matching_objects = NULL;
+    bool  query_used        = queryPool.queryUsed(query);
+
+    EXPECT_TRUE(query_used);
+    if (query_used)
+    {
+        auto matchingObjects = ((QofFakeQuery*)query)->run();
+
+        for (auto object : matchingObjects)
+        {
+            matching_objects = g_list_append(matching_objects, static_cast<gpointer>(object));
+        }
+    }
+
+    return matching_objects;
 }
diff --git a/libgnucash/engine/mocks/fake-qofquery.h b/libgnucash/engine/mocks/fake-qofquery.h
index 6454fc33d..a695bb3e1 100644
--- a/libgnucash/engine/mocks/fake-qofquery.h
+++ b/libgnucash/engine/mocks/fake-qofquery.h
@@ -15,31 +15,14 @@ extern "C"
 class QofFakeQuery
 {
 public:
-    QofFakeQuery() {};
+    QofFakeQuery();
+    ~QofFakeQuery();
 
     MOCK_METHOD1(setBook, void(QofBook*));
-    MOCK_METHOD0(destroy, void());
     MOCK_METHOD5(addDateMatchTT, void(gboolean, time64, gboolean, time64, QofQueryOp));
     MOCK_METHOD2(addSingleAccountMatch, void(Account*, QofQueryOp));
     MOCK_METHOD0(run, std::vector<void*>());
 };
 
-/*
-// typed mock up for QofQuery
-template <typename T>
-class MockQofQueryWithType : MockQofQuery
-{
-public:
-    // \todo: write constructor
-    MOCK_METHOD0_T(run, std::list<T*>());
-};
-*/
-
-class QofQueryFactory
-{
-public:
-//    MOCK_METHOD0(createForSplit, MockQofQueryWithType<Split>*());
-    MOCK_METHOD0(create, QofFakeQuery*());
-} qof_query_factory;
 
 #endif

commit 2639cdefdfac9dadce946b14ea7ebbfa0048fce4
Author: Christian Gruber <christian.gruber at posteo.de>
Date:   Sun Jun 14 21:38:22 2020 +0200

    Remove unnecessary inclusion of qofquery-p.h

diff --git a/libgnucash/engine/mocks/fake-qofquery.h b/libgnucash/engine/mocks/fake-qofquery.h
index ba851ee8c..6454fc33d 100644
--- a/libgnucash/engine/mocks/fake-qofquery.h
+++ b/libgnucash/engine/mocks/fake-qofquery.h
@@ -4,7 +4,6 @@
 #include <gmock/gmock.h>
 
 #include <qofquery.h>
-#include <qofquery-p.h>
 
 extern "C"
 {

commit 841111e37e9c72099e881afe6157c99cc3e39a85
Author: Christian Gruber <christian.gruber at posteo.de>
Date:   Wed Jun 10 22:55:29 2020 +0200

    Rename class QofMockQuery to QofFakeQuery

diff --git a/libgnucash/engine/mocks/fake-qofquery.cpp b/libgnucash/engine/mocks/fake-qofquery.cpp
index 178844ba8..b2542a786 100644
--- a/libgnucash/engine/mocks/fake-qofquery.cpp
+++ b/libgnucash/engine/mocks/fake-qofquery.cpp
@@ -24,7 +24,7 @@ void
 qof_query_set_book (QofQuery *query, QofBook *book)
 {
     ASSERT_TRUE(QOF_IS_MOCK_BOOK(book));
-    ((QofMockQuery*)query)->setBook(book);
+    ((QofFakeQuery*)query)->setBook(book);
 }
 
 GList *
@@ -33,7 +33,7 @@ qof_query_run (QofQuery *query)
     GList *matching_objects = NULL;
 
     // \todo use typed mock objects
-    auto matchingObjects = ((QofMockQuery*)query)->run();
+    auto matchingObjects = ((QofFakeQuery*)query)->run();
 
     for (auto object : matchingObjects)
     {
@@ -52,17 +52,17 @@ xaccQueryAddDateMatchTT (
         time64 ett,
         QofQueryOp op)
 {
-    ((QofMockQuery*)query)->addDateMatchTT(use_start, stt, use_end, ett, op);
+    ((QofFakeQuery*)query)->addDateMatchTT(use_start, stt, use_end, ett, op);
 }
 
 void
 xaccQueryAddSingleAccountMatch(QofQuery *query, Account *acc, QofQueryOp op)
 {
-    ((QofMockQuery*)query)->addSingleAccountMatch(acc, op);
+    ((QofFakeQuery*)query)->addSingleAccountMatch(acc, op);
 }
 
 void
 qof_query_destroy (QofQuery *query)
 {
-    ((QofMockQuery*)query)->destroy();
+    ((QofFakeQuery*)query)->destroy();
 }
diff --git a/libgnucash/engine/mocks/fake-qofquery.h b/libgnucash/engine/mocks/fake-qofquery.h
index 0ab724e3c..ba851ee8c 100644
--- a/libgnucash/engine/mocks/fake-qofquery.h
+++ b/libgnucash/engine/mocks/fake-qofquery.h
@@ -11,12 +11,12 @@ extern "C"
 #include <Query.h>
 }
 
-// mock up for QofQuery
-// hint: class QofMockQuery can not be derived from QofQuery, since struct _QofQuery is not public
-class QofMockQuery
+// Fake object providing functionality similar to QofQuery
+// Note: QofQuery is a typedef for struct _QofQuery, which is is not public
+class QofFakeQuery
 {
 public:
-    QofMockQuery() {};
+    QofFakeQuery() {};
 
     MOCK_METHOD1(setBook, void(QofBook*));
     MOCK_METHOD0(destroy, void());
@@ -40,7 +40,7 @@ class QofQueryFactory
 {
 public:
 //    MOCK_METHOD0(createForSplit, MockQofQueryWithType<Split>*());
-    MOCK_METHOD0(create, QofMockQuery*());
+    MOCK_METHOD0(create, QofFakeQuery*());
 } qof_query_factory;
 
 #endif

commit bbfc30d70b669a3e7279377c355ada8205f7fb7b
Author: Christian Gruber <christian.gruber at posteo.de>
Date:   Wed Jun 10 22:59:02 2020 +0200

    Rename gmock-qofquery to fake-qofquery

diff --git a/gnucash/import-export/test/CMakeLists.txt b/gnucash/import-export/test/CMakeLists.txt
index 93447f8ba..7ac4fc969 100644
--- a/gnucash/import-export/test/CMakeLists.txt
+++ b/gnucash/import-export/test/CMakeLists.txt
@@ -68,7 +68,7 @@ set(gtest_import_backend_SOURCES
   ${CMAKE_SOURCE_DIR}/libgnucash/engine/mocks/gmock-Account.cpp
   ${CMAKE_SOURCE_DIR}/libgnucash/engine/mocks/gmock-Transaction.cpp
   ${CMAKE_SOURCE_DIR}/libgnucash/engine/mocks/gmock-Split.cpp
-  ${CMAKE_SOURCE_DIR}/libgnucash/engine/mocks/gmock-qofquery.cpp
+  ${CMAKE_SOURCE_DIR}/libgnucash/engine/mocks/fake-qofquery.cpp
   ${CMAKE_SOURCE_DIR}/libgnucash/engine/gnc-numeric.cpp
   ${CMAKE_SOURCE_DIR}/libgnucash/engine/gnc-rational.cpp
   ${CMAKE_SOURCE_DIR}/libgnucash/engine/gnc-int128.cpp
diff --git a/libgnucash/engine/mocks/gmock-qofquery.cpp b/libgnucash/engine/mocks/fake-qofquery.cpp
similarity index 98%
rename from libgnucash/engine/mocks/gmock-qofquery.cpp
rename to libgnucash/engine/mocks/fake-qofquery.cpp
index f2991807e..178844ba8 100644
--- a/libgnucash/engine/mocks/gmock-qofquery.cpp
+++ b/libgnucash/engine/mocks/fake-qofquery.cpp
@@ -1,6 +1,6 @@
 #include <config.h>
 
-#include "gmock-qofquery.h"
+#include "fake-qofquery.h"
 #include "gmock-qofbook.h"
 
 QofQuery *
diff --git a/libgnucash/engine/mocks/gmock-qofquery.h b/libgnucash/engine/mocks/fake-qofquery.h
similarity index 94%
rename from libgnucash/engine/mocks/gmock-qofquery.h
rename to libgnucash/engine/mocks/fake-qofquery.h
index e019ef339..0ab724e3c 100644
--- a/libgnucash/engine/mocks/gmock-qofquery.h
+++ b/libgnucash/engine/mocks/fake-qofquery.h
@@ -1,5 +1,5 @@
-#ifndef GMOCK_QOFQUERY_H
-#define GMOCK_QOFQUERY_H
+#ifndef FAKE_QOFQUERY_H
+#define FAKE_QOFQUERY_H
 
 #include <gmock/gmock.h>
 

commit 8425af784e1ef9c5ab62cff82f76f999b9012bb4
Author: Christian Gruber <christian.gruber at posteo.de>
Date:   Wed Jun 10 22:04:30 2020 +0200

    Check pointer to preferences backend before using it

diff --git a/libgnucash/app-utils/mocks/gmock-gnc-prefs.cpp b/libgnucash/app-utils/mocks/gmock-gnc-prefs.cpp
index e45b48519..0bb403874 100644
--- a/libgnucash/app-utils/mocks/gmock-gnc-prefs.cpp
+++ b/libgnucash/app-utils/mocks/gmock-gnc-prefs.cpp
@@ -13,41 +13,53 @@ gmock_gnc_prefs_set_backend(MockPrefsBackend *backend)
 gboolean
 gnc_prefs_get_bool (const gchar *group, const gchar *pref_name)
 {
-    return prefsbackend->getBool(group, pref_name);
+    EXPECT_NE(prefsbackend, nullptr);
+    return prefsbackend ? prefsbackend->getBool(group, pref_name) : FALSE;
 }
 
 gint
 gnc_prefs_get_int (const gchar *group, const gchar *pref_name)
 {
-    return prefsbackend->getInt(group, pref_name);
+    EXPECT_NE(prefsbackend, nullptr);
+    return prefsbackend ? prefsbackend->getInt(group, pref_name) : 0;
 }
 
 gint64
 gnc_prefs_get_int64 (const gchar *group, const gchar *pref_name)
 {
-    return prefsbackend->getInt64(group, pref_name);
+    EXPECT_NE(prefsbackend, nullptr);
+    return prefsbackend ? prefsbackend->getInt64(group, pref_name) : 0;
 }
 
 gdouble
 gnc_prefs_get_float (const gchar *group, const gchar *pref_name)
 {
-    return prefsbackend->getFloat(group, pref_name);
+    EXPECT_NE(prefsbackend, nullptr);
+    return prefsbackend ? prefsbackend->getFloat(group, pref_name) : 0.0;
 }
 
 gchar *
 gnc_prefs_get_string (const gchar *group, const gchar *pref_name)
 {
-    return prefsbackend->getString(group, pref_name);
+    EXPECT_NE(prefsbackend, nullptr);
+    return prefsbackend ? prefsbackend->getString(group, pref_name) : NULL;
 }
 
 gint
 gnc_prefs_get_enum (const gchar *group, const gchar *pref_name)
 {
-    return prefsbackend->getEnum(group, pref_name);
+    EXPECT_NE(prefsbackend, nullptr);
+    return prefsbackend ? prefsbackend->getEnum(group, pref_name) : 0;
 }
 
 void
 gnc_prefs_get_coords (const gchar *group, const gchar *pref_name, gdouble *x, gdouble *y)
 {
-    prefsbackend->getCoords(group, pref_name, x, y);
+    EXPECT_NE(prefsbackend, nullptr);
+
+    *x = 0.0;
+    *y = 0.0;
+
+    if (prefsbackend != nullptr)
+        prefsbackend->getCoords(group, pref_name, x, y);
 }

commit 766f88c02d6b8837fdf09d0b8660da6251cf68a3
Author: Christian Gruber <christian.gruber at posteo.de>
Date:   Wed Jun 10 21:47:50 2020 +0200

    Replace singleton class MockPrefsBackend by an ordinary class

diff --git a/gnucash/import-export/test/gtest-import-backend.cpp b/gnucash/import-export/test/gtest-import-backend.cpp
index 0f67ee909..850102b02 100644
--- a/gnucash/import-export/test/gtest-import-backend.cpp
+++ b/gnucash/import-export/test/gtest-import-backend.cpp
@@ -114,8 +114,7 @@ class ImportBackendTest : public testing::Test
 protected:
     void SetUp()
     {
-        m_prefs = MockPrefsBackend::getInstance();
-        ASSERT_NE(m_prefs, nullptr);
+        gmock_gnc_prefs_set_backend(&m_prefs);
         m_import_acc = new MockAccount();
         m_dest_acc   = new MockAccount();
         m_trans      = new MockTransaction();
@@ -136,7 +135,7 @@ protected:
         m_split->free();
     }
 
-    MockPrefsBackend* m_prefs;
+    MockPrefsBackend  m_prefs;
     MockAccount*      m_import_acc;
     MockAccount*      m_dest_acc;
     MockTransaction*  m_trans;
@@ -196,7 +195,7 @@ protected:
         using namespace testing;
 
         // set bayesian import matching in preferences
-        ON_CALL(*m_prefs, getBool(StrEq(GNC_PREFS_GROUP_IMPORT), StrEq(GNC_PREF_USE_BAYES)))
+        ON_CALL(m_prefs, getBool(StrEq(GNC_PREFS_GROUP_IMPORT), StrEq(GNC_PREF_USE_BAYES)))
             .WillByDefault(Return(true));
     }
 
diff --git a/libgnucash/app-utils/mocks/gmock-gnc-prefs.cpp b/libgnucash/app-utils/mocks/gmock-gnc-prefs.cpp
index d08dc6925..e45b48519 100644
--- a/libgnucash/app-utils/mocks/gmock-gnc-prefs.cpp
+++ b/libgnucash/app-utils/mocks/gmock-gnc-prefs.cpp
@@ -2,46 +2,52 @@
 
 #include "gmock-gnc-prefs.h"
 
-PrefsBackend* prefsbackend = NULL;
+static MockPrefsBackend* prefsbackend = nullptr;
+
+void
+gmock_gnc_prefs_set_backend(MockPrefsBackend *backend)
+{
+    prefsbackend = backend;
+}
 
 gboolean
 gnc_prefs_get_bool (const gchar *group, const gchar *pref_name)
 {
-    return ((MockPrefsBackend*)prefsbackend)->getBool(group, pref_name);
+    return prefsbackend->getBool(group, pref_name);
 }
 
 gint
 gnc_prefs_get_int (const gchar *group, const gchar *pref_name)
 {
-    return ((MockPrefsBackend*)prefsbackend)->getInt(group, pref_name);
+    return prefsbackend->getInt(group, pref_name);
 }
 
 gint64
 gnc_prefs_get_int64 (const gchar *group, const gchar *pref_name)
 {
-    return ((MockPrefsBackend*)prefsbackend)->getInt64(group, pref_name);
+    return prefsbackend->getInt64(group, pref_name);
 }
 
 gdouble
 gnc_prefs_get_float (const gchar *group, const gchar *pref_name)
 {
-    return ((MockPrefsBackend*)prefsbackend)->getFloat(group, pref_name);
+    return prefsbackend->getFloat(group, pref_name);
 }
 
 gchar *
 gnc_prefs_get_string (const gchar *group, const gchar *pref_name)
 {
-    return ((MockPrefsBackend*)prefsbackend)->getString(group, pref_name);
+    return prefsbackend->getString(group, pref_name);
 }
 
 gint
 gnc_prefs_get_enum (const gchar *group, const gchar *pref_name)
 {
-    return ((MockPrefsBackend*)prefsbackend)->getEnum(group, pref_name);
+    return prefsbackend->getEnum(group, pref_name);
 }
 
 void
 gnc_prefs_get_coords (const gchar *group, const gchar *pref_name, gdouble *x, gdouble *y)
 {
-    ((MockPrefsBackend*)prefsbackend)->getCoords(group, pref_name, x, y);
+    prefsbackend->getCoords(group, pref_name, x, y);
 }
diff --git a/libgnucash/app-utils/mocks/gmock-gnc-prefs.h b/libgnucash/app-utils/mocks/gmock-gnc-prefs.h
index 6382224cd..7540f3671 100644
--- a/libgnucash/app-utils/mocks/gmock-gnc-prefs.h
+++ b/libgnucash/app-utils/mocks/gmock-gnc-prefs.h
@@ -6,31 +6,13 @@
 extern "C"
 {
 #include <gnc-prefs.h>
-#include <gnc-prefs-p.h>
 }
 
 
-// mock up for PrefsBackend (singleton class)
-class MockPrefsBackend : PrefsBackend
+// mock up class implementing preferences backend (see struct PrefBackend in gnc-prefs-p.h)
+class MockPrefsBackend
 {
 public:
-    MockPrefsBackend(MockPrefsBackend const&) = delete;
-    MockPrefsBackend& operator=(MockPrefsBackend const&) = delete;
-
-    static MockPrefsBackend* getInstance()
-    {
-        static MockPrefsBackend prefs;  // preferences object
-
-        // register preferences object
-        if (prefsbackend == NULL)
-            prefsbackend = (PrefsBackend*)&prefs;
-
-        // check that preferences object is correctly registered
-        EXPECT_EQ((MockPrefsBackend*)prefsbackend, &prefs);
-
-        return &prefs;
-    }
-
     MOCK_METHOD2(getBool, gboolean(const gchar *, const gchar *));
     MOCK_METHOD2(getInt, gint(const gchar *, const gchar *));
     MOCK_METHOD2(getInt64, gint64(const gchar *, const gchar *));
@@ -38,10 +20,12 @@ public:
     MOCK_METHOD2(getString, gchar*(const gchar *, const gchar *));
     MOCK_METHOD2(getEnum, gint(const gchar *, const gchar *));
     MOCK_METHOD4(getCoords, void(const gchar *, const gchar *, gdouble *, gdouble *));
-
-private:
-    MockPrefsBackend() {}
-    ~MockPrefsBackend() {}
 };
 
+/** Define a preferences backend.
+ *
+ * \attention Each call to this function overwrites a previously set backend.
+ */
+void gmock_gnc_prefs_set_backend(MockPrefsBackend *backend);
+
 #endif

commit 8ac640d5fab740d4f99866c87bc6a7f08dd71c41
Author: Christian Gruber <christian.gruber at posteo.de>
Date:   Sun Jun 7 22:53:18 2020 +0200

    Fix typo

diff --git a/libgnucash/engine/mocks/gmock-qofinstance.cpp b/libgnucash/engine/mocks/gmock-qofinstance.cpp
index 272f6a32a..eb6f8aeb5 100644
--- a/libgnucash/engine/mocks/gmock-qofinstance.cpp
+++ b/libgnucash/engine/mocks/gmock-qofinstance.cpp
@@ -36,7 +36,7 @@ qof_instance_get (const QofInstance *inst, const gchar *first_prop, ...)
 }
 
 // This is a reimplementation of the function from qofinstance.cpp
-// with calling qof_instance_set_dirty()
+// without calling qof_instance_set_dirty()
 void
 qof_instance_set (QofInstance *inst, const gchar *first_prop, ...)
 {

commit 610bbda23f19e4ae3a20796c30f907a4275e84e8
Author: Christian Gruber <christian.gruber at posteo.de>
Date:   Sun Jun 7 22:52:24 2020 +0200

    Add glib-object.h to includes

diff --git a/libgnucash/engine/mocks/gmock-gobject.h b/libgnucash/engine/mocks/gmock-gobject.h
index fa09c8dcf..e09898f7d 100644
--- a/libgnucash/engine/mocks/gmock-gobject.h
+++ b/libgnucash/engine/mocks/gmock-gobject.h
@@ -2,6 +2,7 @@
 #define GMOCK_GOBJECT_H
 
 #include <glib.h>
+#include <glib-object.h>
 
 static gpointer
 mock_g_object_new (GType object_type, const gchar *first_property_name, size_t size)

commit 53c294f9e83295ccd2d9294aaba9b46e22010967
Author: Christian Gruber <christian.gruber at posteo.de>
Date:   Sun Jun 7 22:52:19 2020 +0200

    Remove unnecessary type check

diff --git a/libgnucash/engine/mocks/gmock-Account.h b/libgnucash/engine/mocks/gmock-Account.h
index 271dac16c..0783bb46a 100644
--- a/libgnucash/engine/mocks/gmock-Account.h
+++ b/libgnucash/engine/mocks/gmock-Account.h
@@ -54,8 +54,6 @@ class GncMockImportMatchMap : public GncImportMatchMap
 public:
     GncMockImportMatchMap(MockAccount* account)
     {
-        g_return_if_fail(GNC_IS_MOCK_ACCOUNT(account));
-
         acc  = account;
         book = account->getBook();
     };

commit bb0088c43c79fbf3c5a8763f66d0b44a491f774f
Author: Christian Gruber <christian.gruber at posteo.de>
Date:   Sun Jun 7 22:50:56 2020 +0200

    Replace g_return_if_fail() and g_return_val_if_fail() by ASSERT_TRUE and EXPECT_TRUE

diff --git a/libgnucash/engine/mocks/gmock-Account.cpp b/libgnucash/engine/mocks/gmock-Account.cpp
index 301d1b37f..02afcd37c 100644
--- a/libgnucash/engine/mocks/gmock-Account.cpp
+++ b/libgnucash/engine/mocks/gmock-Account.cpp
@@ -26,37 +26,46 @@ gnc_mock_account_class_init(MockAccountClass *klass)
 void
 xaccAccountBeginEdit (Account *account)
 {
-    g_return_if_fail(GNC_IS_MOCK_ACCOUNT(account));
+    ASSERT_TRUE(GNC_IS_MOCK_ACCOUNT(account));
     ((MockAccount*)account)->beginEdit();
 }
 
 void
 xaccAccountCommitEdit (Account *account)
 {
-    g_return_if_fail(GNC_IS_MOCK_ACCOUNT(account));
+    ASSERT_TRUE(GNC_IS_MOCK_ACCOUNT(account));
     ((MockAccount*)account)->commitEdit();
 }
 
 QofBook *
 gnc_account_get_book(const Account *account)
 {
-    g_return_val_if_fail(GNC_IS_MOCK_ACCOUNT(account), NULL);
-    return ((MockAccount*)account)->getBook();
+    EXPECT_TRUE(GNC_IS_MOCK_ACCOUNT(account));
+    if (GNC_IS_MOCK_ACCOUNT(account))
+        return ((MockAccount*)account)->getBook();
+    else
+        return nullptr;
 }
 
 gint
 xaccAccountForEachTransaction(const Account *acc, TransactionCallback proc,
                               void *data)
 {
-    g_return_val_if_fail(GNC_IS_MOCK_ACCOUNT(acc), 0);
-    return ((MockAccount*)acc)->forEachTransaction(proc, data);
+    EXPECT_TRUE(GNC_IS_MOCK_ACCOUNT(acc));
+    if (GNC_IS_MOCK_ACCOUNT(acc))
+        return ((MockAccount*)acc)->forEachTransaction(proc, data);
+    else
+        return 0;
 }
 
 GncImportMatchMap *
 gnc_account_imap_create_imap (Account *acc)
 {
-    g_return_val_if_fail(GNC_IS_MOCK_ACCOUNT(acc), NULL);
-    return ((MockAccount*)acc)->imapCreateImap();
+    EXPECT_TRUE(GNC_IS_MOCK_ACCOUNT(acc));
+    if (GNC_IS_MOCK_ACCOUNT(acc))
+        return ((MockAccount*)acc)->imapCreateImap();
+    else
+        return nullptr;
 }
 
 Account*
diff --git a/libgnucash/engine/mocks/gmock-Split.cpp b/libgnucash/engine/mocks/gmock-Split.cpp
index 680749bf7..7f1f14903 100644
--- a/libgnucash/engine/mocks/gmock-Split.cpp
+++ b/libgnucash/engine/mocks/gmock-Split.cpp
@@ -30,113 +30,143 @@ gnc_mock_split_class_init (MockSplitClass *klass)
 Split *
 xaccMallocSplit (QofBook *book)
 {
-    g_return_val_if_fail(QOF_IS_MOCK_BOOK(book), NULL);
-    return ((QofMockBook*)book)->mallocSplit();
+    EXPECT_TRUE(QOF_IS_MOCK_BOOK(book));
+    if (QOF_IS_MOCK_BOOK(book))
+        return ((QofMockBook*)book)->mallocSplit();
+    else
+        return nullptr;
 }
 
 QofBook *
 xaccSplitGetBook (const Split *split)
 {
-    g_return_val_if_fail(GNC_IS_MOCK_SPLIT(split), NULL);
-    return ((MockSplit*)split)->getBook();
+    EXPECT_TRUE(GNC_IS_MOCK_SPLIT(split));
+    if (GNC_IS_MOCK_SPLIT(split))
+        return ((MockSplit*)split)->getBook();
+    else
+        return nullptr;
 }
 
 Account *
 xaccSplitGetAccount (const Split *split)
 {
-    g_return_val_if_fail(GNC_IS_MOCK_SPLIT(split), NULL);
-    return ((MockSplit*)split)->getAccount();
+    EXPECT_TRUE(GNC_IS_MOCK_SPLIT(split));
+    if (GNC_IS_MOCK_SPLIT(split))
+        return ((MockSplit*)split)->getAccount();
+    else
+        return nullptr;
 }
 
 void
 xaccSplitSetAccount (Split *split, Account *acc)
 {
-    g_return_if_fail(GNC_IS_MOCK_SPLIT(split));
-    g_return_if_fail(GNC_IS_MOCK_ACCOUNT(acc));
+    ASSERT_TRUE(GNC_IS_MOCK_SPLIT(split));
+    ASSERT_TRUE(GNC_IS_MOCK_ACCOUNT(acc));
     ((MockSplit*)split)->setAccount(acc);
 }
 
 gnc_numeric
 xaccSplitGetAmount (const Split *split)
 {
-    g_return_val_if_fail(GNC_IS_MOCK_SPLIT(split), gnc_numeric_zero());
-    return ((MockSplit*)split)->getAmount();
+    EXPECT_TRUE(GNC_IS_MOCK_SPLIT(split));
+    if (GNC_IS_MOCK_SPLIT(split))
+        return ((MockSplit*)split)->getAmount();
+    else
+        return gnc_numeric_zero();
 }
 
 void
 xaccSplitSetAmount (Split *split, gnc_numeric amt)
 {
-    g_return_if_fail(GNC_IS_MOCK_SPLIT(split));
+    ASSERT_TRUE(GNC_IS_MOCK_SPLIT(split));
     ((MockSplit*)split)->setAmount(amt);
 }
 
 gnc_numeric
 xaccSplitGetValue (const Split *split)
 {
-    g_return_val_if_fail(GNC_IS_MOCK_SPLIT(split), gnc_numeric_zero());
-    return ((MockSplit*)split)->getValue();
+    EXPECT_TRUE(GNC_IS_MOCK_SPLIT(split));
+    if (GNC_IS_MOCK_SPLIT(split))
+        return ((MockSplit*)split)->getValue();
+    else
+        return gnc_numeric_zero();
 }
 
 void
 xaccSplitSetValue (Split *split, gnc_numeric val)
 {
-    g_return_if_fail(GNC_IS_MOCK_SPLIT(split));
+    ASSERT_TRUE(GNC_IS_MOCK_SPLIT(split));
     ((MockSplit*)split)->setValue(val);
 }
 
 const char *
 xaccSplitGetMemo (const Split *split)
 {
-    g_return_val_if_fail(GNC_IS_MOCK_SPLIT(split), NULL);
-    return ((MockSplit*)split)->getMemo();
+    EXPECT_TRUE(GNC_IS_MOCK_SPLIT(split));
+    if (GNC_IS_MOCK_SPLIT(split))
+        return ((MockSplit*)split)->getMemo();
+    else
+        return nullptr;
 }
 
 char
 xaccSplitGetReconcile (const Split *split)
 {
-    g_return_val_if_fail(GNC_IS_MOCK_SPLIT(split), VREC);
-    return ((MockSplit*)split)->getReconcile();
+    EXPECT_TRUE(GNC_IS_MOCK_SPLIT(split));
+    if (GNC_IS_MOCK_SPLIT(split))
+        return ((MockSplit*)split)->getReconcile();
+    else
+        return VREC;
 }
 
 void
 xaccSplitSetReconcile (Split *split, char recn)
 {
-    g_return_if_fail(GNC_IS_MOCK_SPLIT(split));
+    ASSERT_TRUE(GNC_IS_MOCK_SPLIT(split));
     ((MockSplit*)split)->setReconcile(recn);
 }
 
 void
 xaccSplitSetDateReconciledSecs (Split *split, time64 secs)
 {
-    g_return_if_fail(GNC_IS_MOCK_SPLIT(split));
+    ASSERT_TRUE(GNC_IS_MOCK_SPLIT(split));
     ((MockSplit*)split)->setDateReconciledSecs(secs);
 }
 
 const char *
 xaccSplitGetAction (const Split *split)
 {
-    g_return_val_if_fail(GNC_IS_MOCK_SPLIT(split), NULL);
-    return ((MockSplit*)split)->getAction();
+    EXPECT_TRUE(GNC_IS_MOCK_SPLIT(split));
+    if (GNC_IS_MOCK_SPLIT(split))
+        return ((MockSplit*)split)->getAction();
+    else
+        return nullptr;
 }
 
 Split *
 xaccSplitGetOtherSplit (const Split *split)
 {
-    g_return_val_if_fail(GNC_IS_MOCK_SPLIT(split), NULL);
-    return ((MockSplit*)split)->getOtherSplit();
+    EXPECT_TRUE(GNC_IS_MOCK_SPLIT(split));
+    if (GNC_IS_MOCK_SPLIT(split))
+        return ((MockSplit*)split)->getOtherSplit();
+    else
+        return nullptr;
 }
 
 Transaction *
 xaccSplitGetParent (const Split *split)
 {
-    g_return_val_if_fail(GNC_IS_MOCK_SPLIT(split), NULL);
-    return ((MockSplit*)split)->getParent();
+    EXPECT_TRUE(GNC_IS_MOCK_SPLIT(split));
+    if (GNC_IS_MOCK_SPLIT(split))
+        return ((MockSplit*)split)->getParent();
+    else
+        return nullptr;
 }
 
 void
 xaccSplitSetParent(Split *split, Transaction *trans)
 {
-    g_return_if_fail(GNC_IS_MOCK_SPLIT(split));
-    g_return_if_fail(GNC_IS_MOCK_TRANSACTION(trans));
+    ASSERT_TRUE(GNC_IS_MOCK_SPLIT(split));
+    ASSERT_TRUE(GNC_IS_MOCK_TRANSACTION(trans));
     ((MockSplit*)split)->setParent(trans);
 }
diff --git a/libgnucash/engine/mocks/gmock-Transaction.cpp b/libgnucash/engine/mocks/gmock-Transaction.cpp
index b54dc6c03..723ebb614 100644
--- a/libgnucash/engine/mocks/gmock-Transaction.cpp
+++ b/libgnucash/engine/mocks/gmock-Transaction.cpp
@@ -28,98 +28,122 @@ gnc_mock_transaction_class_init(MockTransactionClass *klass)
 void
 xaccTransBeginEdit (Transaction *trans)
 {
-    g_return_if_fail(GNC_IS_MOCK_TRANSACTION(trans));
+    ASSERT_TRUE(GNC_IS_MOCK_TRANSACTION(trans));
     ((MockTransaction*)trans)->beginEdit();
 }
 
 void
 xaccTransCommitEdit (Transaction *trans)
 {
-    g_return_if_fail(GNC_IS_MOCK_TRANSACTION(trans));
+    ASSERT_TRUE(GNC_IS_MOCK_TRANSACTION(trans));
     ((MockTransaction*)trans)->commitEdit();
 }
 
 Split *
 xaccTransGetSplit (const Transaction *trans, int i)
 {
-    g_return_val_if_fail(GNC_IS_MOCK_TRANSACTION(trans), NULL);
-    return ((MockTransaction*)trans)->getSplit(i);
+    EXPECT_TRUE(GNC_IS_MOCK_TRANSACTION(trans));
+    if (GNC_IS_MOCK_TRANSACTION(trans))
+        return ((MockTransaction*)trans)->getSplit(i);
+    else
+        return nullptr;
 }
 
 Split *
 xaccTransFindSplitByAccount(const Transaction *trans, const Account *acc)
 {
-    g_return_val_if_fail(GNC_IS_MOCK_TRANSACTION(trans), NULL);
-    g_return_val_if_fail(GNC_IS_MOCK_ACCOUNT(acc), NULL);
-    return ((MockTransaction*)trans)->findSplitByAccount(acc);
+    EXPECT_TRUE(GNC_IS_MOCK_TRANSACTION(trans));
+    EXPECT_TRUE(GNC_IS_MOCK_ACCOUNT(acc));
+    if (GNC_IS_MOCK_TRANSACTION(trans))
+        return ((MockTransaction*)trans)->findSplitByAccount(acc);
+    else
+        return nullptr;
 }
 
 time64
 xaccTransGetDate (const Transaction *trans)
 {
-    g_return_val_if_fail(GNC_IS_MOCK_TRANSACTION(trans), 0);
-    return ((MockTransaction*)trans)->getDate();
+    EXPECT_TRUE(GNC_IS_MOCK_TRANSACTION(trans));
+    if (GNC_IS_MOCK_TRANSACTION(trans))
+        return ((MockTransaction*)trans)->getDate();
+    else
+        return 0;
 }
 
 void
 xaccTransSetDatePostedSecsNormalized (Transaction *trans, time64 time)
 {
-    g_return_if_fail(GNC_IS_MOCK_TRANSACTION(trans));
+    ASSERT_TRUE(GNC_IS_MOCK_TRANSACTION(trans));
     ((MockTransaction*)trans)->setDatePostedSecsNormalized(time);
 }
 
 const char *
 xaccTransGetDescription (const Transaction *trans)
 {
-    g_return_val_if_fail(GNC_IS_MOCK_TRANSACTION(trans), NULL);
-    return ((MockTransaction*)trans)->getDescription();
+    EXPECT_TRUE(GNC_IS_MOCK_TRANSACTION(trans));
+    if (GNC_IS_MOCK_TRANSACTION(trans))
+        return ((MockTransaction*)trans)->getDescription();
+    else
+        return nullptr;
 }
 
 void
 xaccTransSetDescription (Transaction *trans, const char *desc)
 {
-    g_return_if_fail(GNC_IS_MOCK_TRANSACTION(trans));
+    ASSERT_TRUE(GNC_IS_MOCK_TRANSACTION(trans));
     ((MockTransaction*)trans)->setDescription(desc);
 }
 
 const char *
 xaccTransGetNotes (const Transaction *trans)
 {
-    g_return_val_if_fail(GNC_IS_MOCK_TRANSACTION(trans), NULL);
-    return ((MockTransaction*)trans)->getNotes();
+    EXPECT_TRUE(GNC_IS_MOCK_TRANSACTION(trans));
+    if (GNC_IS_MOCK_TRANSACTION(trans))
+        return ((MockTransaction*)trans)->getNotes();
+    else
+        return nullptr;
 }
 
 void
 xaccTransSetNotes (Transaction *trans, const char *notes)
 {
-    g_return_if_fail(GNC_IS_MOCK_TRANSACTION(trans));
+    ASSERT_TRUE(GNC_IS_MOCK_TRANSACTION(trans));
     ((MockTransaction*)trans)->setDescription(notes);
 }
 
 gnc_numeric
 xaccTransGetImbalanceValue (const Transaction * trans)
 {
-    g_return_val_if_fail(GNC_IS_MOCK_TRANSACTION(trans), gnc_numeric_zero());
-    return ((MockTransaction*)trans)->getImbalanceValue();
+    EXPECT_TRUE(GNC_IS_MOCK_TRANSACTION(trans));
+    if (GNC_IS_MOCK_TRANSACTION(trans))
+        return ((MockTransaction*)trans)->getImbalanceValue();
+    else
+        return gnc_numeric_zero();
 }
 
 const char *
 xaccTransGetNum (const Transaction *trans)
 {
-    g_return_val_if_fail(GNC_IS_MOCK_TRANSACTION(trans), NULL);
-    return ((MockTransaction*)trans)->getNum();
+    EXPECT_TRUE(GNC_IS_MOCK_TRANSACTION(trans));
+    if (GNC_IS_MOCK_TRANSACTION(trans))
+        return ((MockTransaction*)trans)->getNum();
+    else
+        return nullptr;
 }
 
 gboolean
 xaccTransIsOpen (const Transaction *trans)
 {
-    g_return_val_if_fail(GNC_IS_MOCK_TRANSACTION(trans), FALSE);
-    return ((MockTransaction*)trans)->isOpen();
+    EXPECT_TRUE(GNC_IS_MOCK_TRANSACTION(trans));
+    if (GNC_IS_MOCK_TRANSACTION(trans))
+        return ((MockTransaction*)trans)->isOpen();
+    else
+        return FALSE;
 }
 
 void
 xaccTransDestroy (Transaction *trans)
 {
-    g_return_if_fail(GNC_IS_MOCK_TRANSACTION(trans));
+    ASSERT_TRUE(GNC_IS_MOCK_TRANSACTION(trans));
     ((MockTransaction*)trans)->destroy();
 }
diff --git a/libgnucash/engine/mocks/gmock-qofinstance.cpp b/libgnucash/engine/mocks/gmock-qofinstance.cpp
index 9669ef4af..272f6a32a 100644
--- a/libgnucash/engine/mocks/gmock-qofinstance.cpp
+++ b/libgnucash/engine/mocks/gmock-qofinstance.cpp
@@ -1,5 +1,7 @@
 #include <glib.h>
 
+#include <gmock/gmock.h>
+
 extern "C"
 {
 #include <qofinstance.h>
@@ -26,7 +28,7 @@ void
 qof_instance_get (const QofInstance *inst, const gchar *first_prop, ...)
 {
     va_list ap;
-    g_return_if_fail (QOF_IS_INSTANCE (inst));
+    ASSERT_TRUE (QOF_IS_INSTANCE (inst));
 
     va_start (ap, first_prop);
     g_object_get_valist (G_OBJECT (inst), first_prop, ap);
@@ -39,7 +41,7 @@ void
 qof_instance_set (QofInstance *inst, const gchar *first_prop, ...)
 {
     va_list ap;
-    g_return_if_fail (QOF_IS_INSTANCE (inst));
+    ASSERT_TRUE (QOF_IS_INSTANCE (inst));
 
     va_start (ap, first_prop);
     g_object_set_valist (G_OBJECT (inst), first_prop, ap);
diff --git a/libgnucash/engine/mocks/gmock-qofquery.cpp b/libgnucash/engine/mocks/gmock-qofquery.cpp
index 65a545f14..f2991807e 100644
--- a/libgnucash/engine/mocks/gmock-qofquery.cpp
+++ b/libgnucash/engine/mocks/gmock-qofquery.cpp
@@ -23,7 +23,7 @@ qof_query_create_for (QofIdTypeConst obj_type)
 void
 qof_query_set_book (QofQuery *query, QofBook *book)
 {
-    g_return_if_fail(QOF_IS_MOCK_BOOK(book));
+    ASSERT_TRUE(QOF_IS_MOCK_BOOK(book));
     ((QofMockQuery*)query)->setBook(book);
 }
 

commit 967cf0b4304ad1412fbc3970a4dbac68a15356c5
Author: Christian Gruber <christian.gruber at posteo.de>
Date:   Wed Jun 3 23:41:04 2020 +0200

    Pass std::vector arguments by reference instead of by value

diff --git a/libgnucash/engine/mocks/gmock-Account.h b/libgnucash/engine/mocks/gmock-Account.h
index ee0036604..271dac16c 100644
--- a/libgnucash/engine/mocks/gmock-Account.h
+++ b/libgnucash/engine/mocks/gmock-Account.h
@@ -62,8 +62,8 @@ public:
 
     MOCK_METHOD2(findAccount, Account *(const char*, const char*));
     MOCK_METHOD3(addAccount, void(const char*, const char*, Account*));
-    MOCK_METHOD1(findAccountBayes, Account *(std::vector<const char*>));
-    MOCK_METHOD2(addAccountBayes, void(std::vector<const char*>, Account*));
+    MOCK_METHOD1(findAccountBayes, Account *(std::vector<const char*>&));
+    MOCK_METHOD2(addAccountBayes, void(std::vector<const char*>&, Account*));
 };
 
 #endif

commit d0842798917b78db777c20bf6181d2bf056a1b3a
Author: Christian Gruber <christian.gruber at posteo.de>
Date:   Wed Jun 3 23:36:48 2020 +0200

    State comment on unused GObject instance init function more precisely

diff --git a/libgnucash/engine/mocks/gmock-Account.cpp b/libgnucash/engine/mocks/gmock-Account.cpp
index 5763284c4..301d1b37f 100644
--- a/libgnucash/engine/mocks/gmock-Account.cpp
+++ b/libgnucash/engine/mocks/gmock-Account.cpp
@@ -14,7 +14,7 @@ G_DEFINE_TYPE(MockAccount, gnc_mock_account, QOF_TYPE_INSTANCE);
 static void
 gnc_mock_account_init (MockAccount *inst)
 {
-    // function is unused, initialization is done in the MockAccount's constructor
+    // function is unused, initialization is done in the MockAccount's C++ constructor
 }
 
 static void
diff --git a/libgnucash/engine/mocks/gmock-Split.cpp b/libgnucash/engine/mocks/gmock-Split.cpp
index c6ec5ecb7..680749bf7 100644
--- a/libgnucash/engine/mocks/gmock-Split.cpp
+++ b/libgnucash/engine/mocks/gmock-Split.cpp
@@ -17,7 +17,7 @@ G_DEFINE_TYPE(MockSplit, gnc_mock_split, QOF_TYPE_INSTANCE);
 static void
 gnc_mock_split_init (MockSplit *inst)
 {
-    // function is unused since it's overwritten by MockSplit's constructor anyway
+    // function is unused, initialization is done in the MockSplit's C++ constructor
 }
 
 static void
diff --git a/libgnucash/engine/mocks/gmock-Transaction.cpp b/libgnucash/engine/mocks/gmock-Transaction.cpp
index dd02f6ea8..b54dc6c03 100644
--- a/libgnucash/engine/mocks/gmock-Transaction.cpp
+++ b/libgnucash/engine/mocks/gmock-Transaction.cpp
@@ -15,7 +15,7 @@ G_DEFINE_TYPE(MockTransaction, gnc_mock_transaction, QOF_TYPE_INSTANCE);
 static void
 gnc_mock_transaction_init (MockTransaction *inst)
 {
-    // function is unused, initialization is done in the MockTransaction's constructor
+    // function is unused, initialization is done in the MockTransaction's C++ constructor
 }
 
 static void
diff --git a/libgnucash/engine/mocks/gmock-qofbook.cpp b/libgnucash/engine/mocks/gmock-qofbook.cpp
index 7c3c6d7c7..ee83a518f 100644
--- a/libgnucash/engine/mocks/gmock-qofbook.cpp
+++ b/libgnucash/engine/mocks/gmock-qofbook.cpp
@@ -11,7 +11,7 @@ G_DEFINE_TYPE(QofMockBook, qof_mock_book, QOF_TYPE_INSTANCE);
 static void
 qof_mock_book_init (QofMockBook *inst)
 {
-    // function is unused, initialization is done in the QofMockBook's constructor
+    // function is unused, initialization is done in the QofMockBook's C++ constructor
 }
 
 static void

commit 67f63053fbae56029a71d8010fed83dc3623f4ff
Author: Christian Gruber <christian.gruber at posteo.de>
Date:   Wed Jun 3 23:26:49 2020 +0200

    Remove todo comments on replacement of std::vector by std::list
    
    Replacing std::vector by std::list wouldn't have any advantage

diff --git a/libgnucash/engine/mocks/gmock-Account.cpp b/libgnucash/engine/mocks/gmock-Account.cpp
index 2e5f37060..5763284c4 100644
--- a/libgnucash/engine/mocks/gmock-Account.cpp
+++ b/libgnucash/engine/mocks/gmock-Account.cpp
@@ -84,7 +84,6 @@ gnc_account_imap_find_account_bayes (
         GncImportMatchMap *imap,
         GList *tokens)
 {
-    // \todo use std::list instead of std::vector, since GList is a double-linked list like std::list
     std::vector<const char*> tokenVec;
 
     for (auto token = tokens; token; token = token->next)
@@ -101,7 +100,6 @@ gnc_account_imap_add_account_bayes (
         GList *tokens,
         Account *acc)
 {
-    // \todo use std::list instead of std::vector, since GList is a double-linked list like std::list
     std::vector<const char*> tokenVec;
 
     for (auto token = tokens; token; token = token->next)

commit a9d85e8f8ea8ffb75bdf0927fa263fd01d9308be
Author: Christian Gruber <christian.gruber at posteo.de>
Date:   Tue Jun 2 08:16:50 2020 +0200

    Use std::vector of const char* instead of std::string where meaningful
    
    This avoids additional string allocation

diff --git a/gnucash/import-export/test/gtest-import-backend.cpp b/gnucash/import-export/test/gtest-import-backend.cpp
index eedcfba92..0f67ee909 100644
--- a/gnucash/import-export/test/gtest-import-backend.cpp
+++ b/gnucash/import-export/test/gtest-import-backend.cpp
@@ -248,7 +248,7 @@ TEST_F(ImportBackendBayesTest, CreateTransInfo)
 
     // check tokens created from transaction
     EXPECT_CALL(imap, findAccountBayes(AllOf(
-            Each(Not(IsEmpty())),                // tokens must not be empty strings
+            Each(Not(StrEq(""))),                // tokens must not be empty strings
             Each(Not(HasSubstr(" "))),           // tokens must not contain separator
             Not(HasDuplicates()),                // tokens must be unique
             Contains(StrEq(local_day_of_week)),  // tokens must contain local day of week
diff --git a/libgnucash/engine/mocks/gmock-Account.cpp b/libgnucash/engine/mocks/gmock-Account.cpp
index 5152d8866..2e5f37060 100644
--- a/libgnucash/engine/mocks/gmock-Account.cpp
+++ b/libgnucash/engine/mocks/gmock-Account.cpp
@@ -85,7 +85,7 @@ gnc_account_imap_find_account_bayes (
         GList *tokens)
 {
     // \todo use std::list instead of std::vector, since GList is a double-linked list like std::list
-    std::vector<std::string> tokenVec;
+    std::vector<const char*> tokenVec;
 
     for (auto token = tokens; token; token = token->next)
     {
@@ -102,7 +102,7 @@ gnc_account_imap_add_account_bayes (
         Account *acc)
 {
     // \todo use std::list instead of std::vector, since GList is a double-linked list like std::list
-    std::vector<std::string> tokenVec;
+    std::vector<const char*> tokenVec;
 
     for (auto token = tokens; token; token = token->next)
     {
diff --git a/libgnucash/engine/mocks/gmock-Account.h b/libgnucash/engine/mocks/gmock-Account.h
index 2a39efe6f..ee0036604 100644
--- a/libgnucash/engine/mocks/gmock-Account.h
+++ b/libgnucash/engine/mocks/gmock-Account.h
@@ -62,8 +62,8 @@ public:
 
     MOCK_METHOD2(findAccount, Account *(const char*, const char*));
     MOCK_METHOD3(addAccount, void(const char*, const char*, Account*));
-    MOCK_METHOD1(findAccountBayes, Account *(std::vector<std::string>));
-    MOCK_METHOD2(addAccountBayes, void(std::vector<std::string>, Account*));
+    MOCK_METHOD1(findAccountBayes, Account *(std::vector<const char*>));
+    MOCK_METHOD2(addAccountBayes, void(std::vector<const char*>, Account*));
 };
 
 #endif



Summary of changes:
 .gitattributes                                     |     2 +-
 .github/workflows/README.md                        |     7 +
 .github/workflows/ci-docker.yml                    |    15 +
 .github/workflows/ci-tests.yml                     |    75 +
 .github/workflows/mac-tests.yaml                   |    55 +
 CMakeLists.txt                                     |     4 +-
 bindings/core-utils.i                              |     3 +
 bindings/guile/core-utils.scm                      |     8 +
 bindings/guile/engine.scm                          |     4 +
 bindings/guile/gnc-engine-guile.c                  |    24 +-
 borrowed/goffice/go-optionmenu.c                   |     2 +-
 data/accounts/C/acctchrt_business.gnucash-xea      |     6 +
 data/accounts/C/acctchrt_checkbook.gnucash-xea     |     6 +
 data/accounts/C/acctchrt_common.gnucash-xea        |     6 +
 data/accounts/C/acctchrt_full.gnucash-xea          |     6 +
 data/accounts/da/acctchrt_common.gnucash-xea       |     6 +
 data/accounts/de_AT/acctchrt_business.gnucash-xea  |     6 +
 data/accounts/de_AT/acctchrt_common.gnucash-xea    |     6 +
 data/accounts/de_CH/acctchrt_common.gnucash-xea    |     6 +
 data/accounts/de_DE/acctchrt_common.gnucash-xea    |     6 +
 data/accounts/de_DE/acctchrt_full.gnucash-xea      |     6 +
 data/accounts/de_DE/acctchrt_skr03.gnucash-xea     |     6 +
 data/accounts/de_DE/acctchrt_skr04.gnucash-xea     |     6 +
 data/accounts/de_DE/acctchrt_skr49.gnucash-xea     |     6 +
 data/accounts/el_GR/acctchrt_common.gnucash-xea    |     6 +
 data/accounts/en_GB/acctchrt_business.gnucash-xea  |     6 +
 data/accounts/en_GB/acctchrt_checkbook.gnucash-xea |     6 +
 data/accounts/en_GB/acctchrt_common.gnucash-xea    |     6 +
 data/accounts/en_GB/acctchrt_full.gnucash-xea      |     6 +
 data/accounts/en_GB/uk-vat.gnucash-xea             |     6 +
 data/accounts/en_IN/acctchrt_gstindia.gnucash-xea  |     6 +
 data/accounts/es_ES/acctchrt_common.gnucash-xea    |     6 +
 data/accounts/es_MX/acctchrt_common.gnucash-xea    |     6 +
 data/accounts/fi_FI/acctchrt_ry.gnucash-xea        |     6 +
 data/accounts/fr_BE/acctchrt_business.gnucash-xea  |     6 +
 data/accounts/fr_BE/acctchrt_common.gnucash-xea    |     6 +
 data/accounts/fr_CH/acctchrt_business.gnucash-xea  |     6 +
 data/accounts/fr_CH/acctchrt_common.gnucash-xea    |     6 +
 data/accounts/fr_FR/acctchrt_business.gnucash-xea  |     6 +
 data/accounts/fr_FR/acctchrt_common.gnucash-xea    |     6 +
 data/accounts/he/acctchrt_checkbook.gnucash-xea    |     6 +
 data/accounts/hr/acctchrt_checkbook.gnucash-xea    |     6 +
 data/accounts/hr/acctchrt_common.gnucash-xea       |     6 +
 data/accounts/hu/acctchrt_business.gnucash-xea     |     6 +
 data/accounts/hu/acctchrt_checkbook.gnucash-xea    |     6 +
 data/accounts/hu/acctchrt_common.gnucash-xea       |     6 +
 data/accounts/it/acctchrt_checkbook.gnucash-xea    |     6 +
 data/accounts/it/acctchrt_common.gnucash-xea       |     6 +
 data/accounts/ja/acctchrt_business.gnucash-xea     |     6 +
 data/accounts/ja/acctchrt_checkbook.gnucash-xea    |     6 +
 data/accounts/ja/acctchrt_common.gnucash-xea       |     6 +
 data/accounts/ja/acctchrt_full.gnucash-xea         |     6 +
 data/accounts/lv/acctchrt_checkbook.gnucash-xea    |     6 +
 data/accounts/lv/acctchrt_common.gnucash-xea       |     6 +
 data/accounts/lv/acctchrt_full.gnucash-xea         |     6 +
 data/accounts/nb/acctchrt_common.gnucash-xea       |     6 +
 data/accounts/nb/acctchrt_full.gnucash-xea         |     6 +
 data/accounts/nl/acctchrt_checkbook.gnucash-xea    |     6 +
 data/accounts/nl/acctchrt_full.gnucash-xea         |     6 +
 data/accounts/pl/acctchrt_business.gnucash-xea     |     6 +
 data/accounts/pl/acctchrt_checkbook.gnucash-xea    |     6 +
 data/accounts/pl/acctchrt_common.gnucash-xea       |     6 +
 data/accounts/pl/acctchrt_full.gnucash-xea         |     6 +
 data/accounts/pt_BR/acctchrt_common.gnucash-xea    |     6 +
 data/accounts/pt_PT/acctchrt_common.gnucash-xea    |     6 +
 data/accounts/ru/acctchrt_common.gnucash-xea       |     6 +
 data/accounts/tr_TR/acctchrt_TEKDUZ.gnucash-xea    |    12 +
 data/accounts/zh_CN/acctchrt_business.gnucash-xea  |     6 +
 data/accounts/zh_CN/acctchrt_checkbook.gnucash-xea |     6 +
 data/accounts/zh_CN/acctchrt_common.gnucash-xea    |     6 +
 data/accounts/zh_CN/acctchrt_full.gnucash-xea      |     6 +
 gnucash/CMakeLists.txt                             |     2 +-
 gnucash/environment.in                             |     5 +-
 gnucash/gnome-search/dialog-search.c               |     9 +
 gnucash/gnome-utils/dialog-account.c               |    72 +-
 gnucash/gnome-utils/dialog-dup-trans.c             |   222 +-
 gnucash/gnome-utils/dialog-dup-trans.h             |     5 +-
 gnucash/gnome-utils/dialog-options.c               |  2020 ++--
 gnucash/gnome-utils/dialog-options.h               |    54 +-
 gnucash/gnome-utils/dialog-preferences.c           |   520 +-
 gnucash/gnome-utils/dialog-tax-table.c             |     3 +
 gnucash/gnome-utils/gnc-account-sel.c              |   297 +-
 gnucash/gnome-utils/gnc-account-sel.h              |    20 +-
 .../gnome-utils/gnc-cell-renderer-popup-entry.c    |    24 +-
 gnucash/gnome-utils/gnc-combott.c                  |    12 +-
 gnucash/gnome-utils/gnc-date-edit.c                |     5 +-
 gnucash/gnome-utils/gnc-file.c                     |    17 +-
 gnucash/gnome-utils/gnc-gnome-utils.c              |    14 +
 gnucash/gnome-utils/gnc-gnome-utils.h              |     5 +
 gnucash/gnome-utils/gnc-main-window.c              |   137 +-
 gnucash/gnome-utils/gnc-main-window.h              |    10 +
 gnucash/gnome-utils/gnc-tree-model-account.c       |     6 +
 gnucash/gnome-utils/gnc-tree-model-account.h       |     3 +-
 gnucash/gnome-utils/gnc-tree-model-price.c         |     2 +-
 gnucash/gnome-utils/gnc-tree-view-account.c        |    31 +
 gnucash/gnome-utils/gnc-tree-view.c                |     5 +-
 gnucash/gnome-utils/gnc-ui.h                       |    12 +-
 gnucash/gnome/assistant-hierarchy.c                |    14 +-
 gnucash/gnome/assistant-loan.cpp                   |     2 +
 gnucash/gnome/dialog-fincalc.c                     |    53 +-
 gnucash/gnome/dialog-invoice.c                     |    16 +-
 gnucash/gnome/dialog-job.c                         |     2 +-
 gnucash/gnome/dialog-report-style-sheet.c          |     4 +
 gnucash/gnome/gnc-plugin-page-account-tree.c       |    92 +-
 gnucash/gnome/gnc-plugin-page-invoice.c            |     4 +-
 gnucash/gnome/gnc-plugin-page-register.c           |    74 +-
 gnucash/gnome/gnc-plugin-page-register2.c          |     4 +-
 gnucash/gnome/gnc-plugin-page-report.c             |    93 +-
 gnucash/gnome/report-menus.scm                     |     2 +-
 gnucash/gnome/window-autoclear.c                   |   227 +-
 gnucash/gnucash-core-app.cpp                       |    27 +-
 gnucash/gnucash-core-app.hpp                       |     2 +-
 gnucash/gnucash-fallback.css                       |    19 +-
 .../gschemas/org.gnucash.warnings.gschema.xml.in   |    10 +
 gnucash/gtkbuilder/dialog-account.glade            |    17 +
 gnucash/gtkbuilder/dialog-import.glade             |    22 +-
 gnucash/gtkbuilder/dialog-preferences.glade        |   119 +-
 gnucash/gtkbuilder/gnc-plugin-page-register.glade  |   422 +-
 gnucash/gtkbuilder/gnc-plugin-page-register2.glade |   101 +-
 gnucash/gtkbuilder/window-autoclear.glade          |    82 +-
 gnucash/html/gnc-html.c                            |    33 +
 gnucash/html/gnc-html.h                            |     9 +
 .../import-export/bi-import/dialog-bi-import-gui.c |     2 +-
 .../customer-import/dialog-customer-import-gui.c   |     2 +-
 gnucash/import-export/import-main-matcher.c        |   514 +-
 gnucash/import-export/import-main-matcher.h        |    34 +-
 gnucash/import-export/ofx/gnc-ofx-import.c         |    24 +-
 gnucash/import-export/qif-imp/qif-dialog-utils.scm |    16 +-
 gnucash/import-export/qif-imp/qif-parse.scm        |     8 +-
 .../import-export/qif-imp/test/test-qif-parse.scm  |     4 +
 gnucash/import-export/test/CMakeLists.txt          |     2 +-
 .../import-export/test/gtest-import-backend.cpp    |    48 +-
 gnucash/register/ledger-core/gnc-ledger-display.c  |     3 +
 gnucash/register/ledger-core/split-register.c      |    22 +-
 gnucash/register/register-core/formulacell.c       |     2 +
 gnucash/register/register-core/numcell.c           |     2 +
 gnucash/register/register-core/quickfillcell.c     |     4 +-
 gnucash/register/register-gnome/combocell-gnome.c  |     4 +-
 gnucash/register/register-gnome/gnucash-header.c   |    78 +-
 gnucash/register/register-gnome/gnucash-header.h   |     5 +
 .../register-gnome/gnucash-sheet-private.c         |    97 +-
 gnucash/register/register-gnome/gnucash-sheet.c    |   378 +-
 gnucash/register/register-gnome/gnucash-sheet.h    |     8 +-
 gnucash/register/register-gnome/gnucash-sheetP.h   |     3 -
 gnucash/report/commodity-utilities.scm             |    14 +
 gnucash/report/gnc-report.c                        |     3 +-
 gnucash/report/html-acct-table.scm                 |    12 +-
 gnucash/report/html-fonts.scm                      |    32 +-
 gnucash/report/html-style-info.scm                 |     8 +-
 gnucash/report/html-style-sheet.scm                |     8 +-
 gnucash/report/html-text.scm                       |    14 +-
 gnucash/report/html-utilities.scm                  |    32 +-
 gnucash/report/report-core.scm                     |     3 +-
 gnucash/report/report-utilities.scm                |    16 +-
 gnucash/report/report.scm                          |     4 +
 .../reports/locale-specific/de_DE/taxtxf.scm       |     5 +-
 .../report/reports/standard/account-piecharts.scm  |    16 +-
 .../report/reports/standard/account-summary.scm    |     5 +-
 gnucash/report/reports/standard/balance-sheet.scm  |     3 +-
 .../reports/standard/budget-balance-sheet.scm      |     6 +-
 .../reports/standard/budget-income-statement.scm   |     5 +-
 gnucash/report/reports/standard/budget.scm         |     4 +-
 gnucash/report/reports/standard/cash-flow.scm      |    14 +-
 .../report/reports/standard/category-barchart.scm  |    12 +-
 .../report/reports/standard/customer-summary.scm   |     6 +-
 .../report/reports/standard/equity-statement.scm   |    12 +-
 .../report/reports/standard/income-statement.scm   |     6 +-
 gnucash/report/reports/standard/new-aging.scm      |     2 +-
 gnucash/report/reports/standard/register.scm       |   125 +-
 gnucash/report/reports/standard/trial-balance.scm  |     5 +-
 gnucash/report/test/test-html-fonts.scm            |    14 +-
 gnucash/report/trep-engine.scm                     |     4 +-
 gnucash/ui/gnc-plugin-page-register-ui.xml         |     1 +
 gnucash/ui/gnc-plugin-page-register2-ui.xml        |     1 +
 libgnucash/app-utils/gnc-help-utils.c              |     4 +-
 libgnucash/app-utils/gnc-ui-balances.c             |   155 +
 libgnucash/app-utils/gnc-ui-balances.h             |     9 +-
 libgnucash/app-utils/gnc-ui-util.c                 |    32 +-
 libgnucash/app-utils/gnc-ui-util.h                 |     5 +
 libgnucash/app-utils/mocks/gmock-gnc-prefs.cpp     |    38 +-
 libgnucash/app-utils/mocks/gmock-gnc-prefs.h       |    46 +-
 libgnucash/app-utils/option-util.c                 |  1091 +-
 libgnucash/app-utils/option-util.h                 |   351 +-
 libgnucash/app-utils/test/CMakeLists.txt           |    18 +
 libgnucash/app-utils/test/test-autoclear.cpp       |   174 +
 libgnucash/backend/xml/gnc-xml-backend.cpp         |     7 +
 libgnucash/backend/xml/gnc-xml-backend.hpp         |     1 +
 libgnucash/engine/Account.cpp                      |    52 +
 libgnucash/engine/Account.h                        |    25 +
 libgnucash/engine/Scrub.c                          |    15 +
 libgnucash/engine/Scrub.h                          |     1 +
 libgnucash/engine/ScrubBusiness.c                  |    14 +-
 libgnucash/engine/gnc-features.c                   |     1 +
 libgnucash/engine/gnc-features.h                   |     1 +
 libgnucash/engine/gnc-numeric.cpp                  |     2 +-
 libgnucash/engine/gnc-pricedb.c                    |   219 +-
 libgnucash/engine/gnc-pricedb.h                    |    18 +
 libgnucash/engine/gnc-timezone.cpp                 |    38 +-
 libgnucash/engine/iso-4217-currencies.xml          |     2 +-
 libgnucash/engine/mocks/fake-qofquery.cpp          |   169 +
 libgnucash/engine/mocks/fake-qofquery.h            |    71 +
 libgnucash/engine/mocks/gmock-Account.cpp          |    52 +-
 libgnucash/engine/mocks/gmock-Account.h            |    60 +-
 libgnucash/engine/mocks/gmock-Split.cpp            |    96 +-
 libgnucash/engine/mocks/gmock-Split.h              |    61 +-
 libgnucash/engine/mocks/gmock-Transaction.cpp      |    86 +-
 libgnucash/engine/mocks/gmock-Transaction.h        |    60 +-
 libgnucash/engine/mocks/gmock-gobject.h            |     1 +
 libgnucash/engine/mocks/gmock-qofbook.cpp          |    19 +-
 libgnucash/engine/mocks/gmock-qofbook.h            |    35 +-
 libgnucash/engine/mocks/gmock-qofinstance.cpp      |    11 +-
 libgnucash/engine/mocks/gmock-qofquery.cpp         |    68 -
 libgnucash/engine/mocks/gmock-qofquery.h           |    46 -
 libgnucash/engine/qof-backend.cpp                  |     7 +
 libgnucash/engine/qof-backend.hpp                  |     2 +-
 libgnucash/engine/qofinstance.cpp                  |     5 +-
 libgnucash/engine/test/gtest-gnc-datetime.cpp      |    51 +
 libgnucash/engine/test/gtest-gnc-numeric.cpp       |    12 +
 libgnucash/engine/test/test-qofinstance.cpp        |     9 +-
 libgnucash/engine/test/utest-Account.cpp           |     4 +-
 libgnucash/engine/test/utest-gnc-pricedb.c         |    80 +
 po/CMakeLists.txt                                  |     4 +-
 po/de.po                                           |   892 +-
 po/glossary/ar.po                                  |     8 +-
 po/glossary/bg.po                                  |     9 +-
 po/glossary/ca.po                                  |     8 +-
 po/glossary/da.po                                  |     8 +-
 po/glossary/de_CH.po                               |     8 +-
 po/glossary/el.po                                  |     8 +-
 po/glossary/es.po                                  |     9 +-
 po/glossary/fi.po                                  |     8 +-
 po/glossary/fr.po                                  |     8 +-
 po/glossary/he.po                                  |     8 +-
 po/glossary/hr.po                                  |     8 +-
 po/glossary/hu.po                                  |     8 +-
 po/glossary/id.po                                  |     6 +-
 po/glossary/it.po                                  |     8 +-
 po/glossary/lt.po                                  |     9 +-
 po/glossary/nb.po                                  |     9 +-
 po/glossary/nl.po                                  |     8 +-
 po/glossary/pl.po                                  |     9 +-
 po/glossary/pt.po                                  |     8 +-
 po/glossary/pt_BR.po                               |     8 +-
 po/glossary/ru.po                                  |     8 +-
 po/glossary/rw.po                                  |     8 +-
 po/glossary/sk.po                                  |     8 +-
 po/glossary/sv.po                                  |     8 +-
 po/glossary/vi.po                                  |     9 +-
 po/glossary/zh_CN.po                               |     8 +-
 po/glossary/zh_TW.po                               |     8 +-
 po/gnucash-pot.cmake                               |     1 +
 po/id.po                                           | 10927 +++++++++----------
 po/it.po                                           |   576 +-
 po/pt.po                                           |  2708 ++---
 util/add-opening-balances                          |   118 +
 .../archlinux-test/Dockerfile}                     |     5 +-
 util/ci/actions/archlinux-test/action.yaml         |     5 +
 util/ci/actions/archlinux-test/entrypoint.sh       |    13 +
 util/ci/macos-ci-deps/README.md                    |    24 +
 util/ci/macos-ci-deps/macos_bin.manifest           |    28 +
 util/ci/macos-ci-deps/macos_include.manifest       |    33 +
 util/ci/macos-ci-deps/macos_lib.manifest           |   236 +
 util/ci/macos-ci-deps/macos_share.manifest         |     7 +
 util/ci/macos-ci-deps/make-macos-deps-tarball.sh   |    24 +
 264 files changed, 14562 insertions(+), 11762 deletions(-)
 create mode 100644 .github/workflows/README.md
 create mode 100644 .github/workflows/ci-docker.yml
 create mode 100644 .github/workflows/ci-tests.yml
 create mode 100644 .github/workflows/mac-tests.yaml
 create mode 100644 libgnucash/app-utils/test/test-autoclear.cpp
 create mode 100644 libgnucash/engine/mocks/fake-qofquery.cpp
 create mode 100644 libgnucash/engine/mocks/fake-qofquery.h
 delete mode 100644 libgnucash/engine/mocks/gmock-qofquery.cpp
 delete mode 100644 libgnucash/engine/mocks/gmock-qofquery.h
 create mode 100755 util/add-opening-balances
 copy util/ci/{arch-docker => actions/archlinux-test/Dockerfile} (79%)
 create mode 100644 util/ci/actions/archlinux-test/action.yaml
 create mode 100755 util/ci/actions/archlinux-test/entrypoint.sh
 create mode 100644 util/ci/macos-ci-deps/README.md
 create mode 100644 util/ci/macos-ci-deps/macos_bin.manifest
 create mode 100644 util/ci/macos-ci-deps/macos_include.manifest
 create mode 100644 util/ci/macos-ci-deps/macos_lib.manifest
 create mode 100644 util/ci/macos-ci-deps/macos_share.manifest
 create mode 100755 util/ci/macos-ci-deps/make-macos-deps-tarball.sh



More information about the gnucash-changes mailing list