gnucash unstable: Multiple changes pushed

Geert Janssens gjanssens at code.gnucash.org
Thu Jan 25 04:38:40 EST 2018


Updated	 via  https://github.com/Gnucash/gnucash/commit/ad1267da (commit)
	 via  https://github.com/Gnucash/gnucash/commit/b4c62047 (commit)
	 via  https://github.com/Gnucash/gnucash/commit/52b0c06d (commit)
	 via  https://github.com/Gnucash/gnucash/commit/adba439b (commit)
	 via  https://github.com/Gnucash/gnucash/commit/cb2b0396 (commit)
	 via  https://github.com/Gnucash/gnucash/commit/18094e30 (commit)
	 via  https://github.com/Gnucash/gnucash/commit/d35f8f96 (commit)
	 via  https://github.com/Gnucash/gnucash/commit/779e7246 (commit)
	 via  https://github.com/Gnucash/gnucash/commit/75bae0ad (commit)
	 via  https://github.com/Gnucash/gnucash/commit/068975ef (commit)
	 via  https://github.com/Gnucash/gnucash/commit/938b1acf (commit)
	 via  https://github.com/Gnucash/gnucash/commit/d284aa37 (commit)
	 via  https://github.com/Gnucash/gnucash/commit/0210e11e (commit)
	 via  https://github.com/Gnucash/gnucash/commit/6678141f (commit)
	 via  https://github.com/Gnucash/gnucash/commit/2836e026 (commit)
	from  https://github.com/Gnucash/gnucash/commit/b4877301 (commit)



commit ad1267da2d136d6b2fd38c2f65da7078af0626d1
Merge: b4c6204 18094e3
Author: Geert Janssens <geert at kobaltwit.be>
Date:   Thu Jan 25 10:33:50 2018 +0100

    Merge branch 'unstable-update-translation' of https://github.com/DiMan/gnucash into unstable


commit b4c620478c60cbe1b2a05b1bf3de9cdec49bdd26
Author: Geert Janssens <geert at kobaltwit.be>
Date:   Thu Jan 25 10:33:13 2018 +0100

    Display detected Finance::Quote version in About dialog

diff --git a/gnucash/gnome-utils/gnc-main-window.c b/gnucash/gnome-utils/gnc-main-window.c
index 38f1073..b77b56a 100644
--- a/gnucash/gnome-utils/gnc-main-window.c
+++ b/gnucash/gnome-utils/gnc-main-window.c
@@ -4500,11 +4500,13 @@ gnc_main_window_cmd_help_about (GtkAction *action, GncMainWindow *window)
         /* Allow builder to override the build id (eg distributions may want to
          * print an package source version number (rpm, dpkg,...) instead of our git ref */
         if (g_strcmp0("", GNUCASH_BUILD_ID) != 0)
-            version = g_strdup_printf ("%s: %s\n%s: %s", _("Version"), VERSION,
-                                       _("Build ID"), GNUCASH_BUILD_ID);
+            version = g_strdup_printf ("%s: %s\n%s: %s\nFinance::Quote: %s", _("Version"), VERSION,
+                                       _("Build ID"), GNUCASH_BUILD_ID,
+                                       gnc_quote_source_fq_version () ? gnc_quote_source_fq_version () : "-");
         else
-            version = g_strdup_printf ("%s: %s\n%s: %s%s (%s)", _("Version"), VERSION,
-                                       _("Build ID"), vcs, GNC_VCS_REV, GNC_VCS_REV_DATE);
+            version = g_strdup_printf ("%s: %s\n%s: %s%s (%s)\nFinance::Quote: %s", _("Version"), VERSION,
+                                       _("Build ID"), vcs, GNC_VCS_REV, GNC_VCS_REV_DATE,
+                                       gnc_quote_source_fq_version () ? gnc_quote_source_fq_version () : "-");
 	priv->about_dialog = gtk_about_dialog_new ();
 	g_object_set (priv->about_dialog,
 		      "authors", authors,

commit 52b0c06d3022c3c400c7c2bccc3d3207c4e05cfe
Merge: b487730 adba439
Author: Geert Janssens <geert at kobaltwit.be>
Date:   Thu Jan 25 10:24:53 2018 +0100

    Merge branch 'maint' into unstable
    
    Conflicts:
    - gnucash/gnome-utils/gnc-main-window.c
      I have chosen to ignore the changes pulled in from maint. The same change will
      be reimplemented in a followup commit.
    - po/ru.po
      Same here. The translation conflicted too much and there's a
      translation update available for unstable I will pull in soon.

diff --cc libgnucash/engine/engine.i
index fe307ce,0000000..45c62d6
mode 100644,000000..100644
--- a/libgnucash/engine/engine.i
+++ b/libgnucash/engine/engine.i
@@@ -1,415 -1,0 +1,416 @@@
 +/********************************************************************\
 + * 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, 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                   *
 + *                                                                  *
 +\********************************************************************/
 +
 +%module sw_engine
 +%{
 +/* Includes the header in the wrapper code */
 +#include <config.h>
 +#include <glib.h>
 +#include "qof.h"
 +#include "Query.h"
 +#include "gnc-budget.h"
 +#include "gnc-commodity.h"
 +#include "gnc-engine.h"
 +#include "gnc-filepath-utils.h"
 +#include "gnc-pricedb.h"
 +#include "gnc-lot.h"
 +#include "gnc-session.h"
 +#include "gnc-hooks-scm.h"
 +#include "engine-helpers.h"
 +#include "engine-helpers-guile.h"
 +#include "policy.h"
 +#include "SX-book.h"
 +#include "kvp-scm.h"
 +#include "glib-helpers.h"
 +
 +#include "gncAddress.h"
 +#include "gncBillTerm.h"
 +#include "gncCustomer.h"
 +#include "gncEmployee.h"
 +#include "gncEntry.h"
 +#include "gncInvoice.h"
 +#include "gncJob.h"
 +#include "gncOrder.h"
 +#include "gncOwner.h"
 +#include "gncTaxTable.h"
 +#include "gncVendor.h"
 +#include "gncBusGuile.h"
 +%}
 +#if defined(SWIGGUILE)
 +%{
 +#include "guile-mappings.h"
 +
 +SCM scm_init_sw_engine_module (void);
 +%}
 +#endif
 +
 +%import "base-typemaps.i"
 +
 +GLIST_HELPER_INOUT(SplitList, SWIGTYPE_p_Split);
 +GLIST_HELPER_INOUT(TransList, SWIGTYPE_p_Transaction);
 +GLIST_HELPER_INOUT(LotList, SWIGTYPE_p_GNCLot);
 +GLIST_HELPER_INOUT(AccountList, SWIGTYPE_p_Account);
 +GLIST_HELPER_INOUT(PriceList, SWIGTYPE_p_GNCPrice);
 +// TODO: free PriceList?
 +GLIST_HELPER_INOUT(CommodityList, SWIGTYPE_p_gnc_commodity);
 +
 +%typemap(newfree) gchar * "g_free($1);"
 +
 +/* These need to be here so that they are *before* the function
 +declarations in the header files, some of which are included by
 +engine-common.i */
 +
 +%newobject gnc_account_get_full_name;
 +
 +%include "engine-common.i"
 +
 +%inline %{
 +static const GncGUID * gncPriceGetGUID(GNCPrice *x)
 +{ return qof_instance_get_guid(QOF_INSTANCE(x)); }
 +static const GncGUID * gncBudgetGetGUID(GncBudget *x)
 +{ return qof_instance_get_guid(QOF_INSTANCE(x)); }
 +%}
 +
 +/* NB: The object ownership annotations should already cover all the
 +functions currently used in guile, but not all the functions that are
 +wrapped.  So, we should contract the interface to wrap only the used
 +functions. */
 +
 +%delobject gnc_price_list_destroy;
 +%newobject gnc_pricedb_lookup_latest_any_currency;
 +
 +%newobject gnc_pricedb_lookup_nearest_in_time_any_currency;
 +%newobject gnc_pricedb_lookup_latest_before_any_currency;
 +%newobject gnc_pricedb_get_prices;
 +%newobject gnc_pricedb_lookup_at_time;
 +%newobject gnc_pricedb_lookup_day;
 +
 +%newobject xaccQueryGetSplitsUniqueTrans;
 +%newobject xaccQueryGetTransactions;
 +%newobject xaccQueryGetLots;
 +
 +%newobject xaccSplitGetCorrAccountFullName;
 +%newobject gnc_numeric_to_string;
 +
 +%newobject gnc_localtime;
 +%newobject gnc_gmtime;
 +
 +/* Parse the header file to generate wrappers */
 +%inline {
 +  static QofIdType QOF_ID_BOOK_SCM (void) { return QOF_ID_BOOK; }
 +}
 +
 +/* Allow '#f' in guile to be used to represent NULL in 'C' for functions *
 + * 'gnc_set_num_action', 'gnc_get_num_action' and 'gnc_get_action_num' in *
 + * 'engine-helpers.c' */
 +%typemap(in) Transaction *trans {
 +  if ($input == SCM_BOOL_F)
 +    $1 = NULL;
 +  else
 +    $1 = (Transaction *)SWIG_MustGetPtr($input, SWIGTYPE_p_Transaction, 1, 0);
 +}
 +
 +%typemap(in) Split *split {
 +  if ($input == SCM_BOOL_F)
 +    $1 = NULL;
 +  else
 +    $1 = (Split *)SWIG_MustGetPtr($input, SWIGTYPE_p_Split, 2, 0);
 +}
 +
 +%typemap(in) char * num (int must_free = 0) {
 +  if ($input == SCM_BOOL_F)
 +    $1 = NULL;
 +  else
 +  {
 +    $1 = (char *)SWIG_scm2str($input);
 +    must_free3 = 1;
 +  }
 +}
 +
 +%typemap(in) char * action (int must_free = 0) {
 +  if ($input == SCM_BOOL_F)
 +    $1 = NULL;
 +  else
 +  {
 +    $1 = (char *)SWIG_scm2str($input);
 +    must_free4 = 1;
 +  }
 +}
 +
 +%include <engine-helpers.h>
 +%include <engine-helpers-guile.h>
 +%typemap(in) Transaction *trans;
 +%typemap(in) Split *split;
 +%typemap(in) char * num;
 +%typemap(in) char * action;
 +
 +%include <policy.h>
 +%include <gnc-pricedb.h>
 +
 +QofSession * qof_session_new (void);
 +QofBook * qof_session_get_book (QofSession *session);
 +// TODO: Unroll/remove
 +const char *qof_session_get_url (QofSession *session);
 +
 +%ignore qof_print_date_time_buff;
 +%ignore gnc_tm_free;
 +%include <gnc-date.h>
 +extern const char *gnc_default_strftime_date_format;
 +
 +GncGUID guid_new_return(void);
 +
 +%inline {
 +static QofQuery * qof_query_create_for_splits(void) {
 +  return qof_query_create_for(GNC_ID_SPLIT);
 +}
 +}
 +
 +SplitList * qof_query_run (QofQuery *q);
 +SplitList * qof_query_last_run (QofQuery *q);
 +SplitList * qof_query_run_subquery (QofQuery *q, const QofQuery *q);
 +
 +%typemap(in) QofQueryParamList * "$1 = gnc_query_scm2path($input);"
 +
 +%include <gnc-session.h>
 +%include <Query.h>
 +%ignore qof_query_run;
 +%ignore qof_query_last_run;
 +%ignore qof_query_run_subquery;
 +%include <qofquery.h>
 +%include <qofquerycore.h>
 +%include <qofbookslots.h>
 +%include <qofbook.h>
 +
 +%ignore GNC_DENOM_AUTO;
 +%ignore GNCNumericErrorCodes;
 +%ignore GNC_ERROR_OK;
 +%ignore GNC_ERROR_ARG;
 +%ignore GNC_ERROR_OVERFLOW;
 +%ignore GNC_ERROR_DENOM_DIFF;
 +%ignore GNC_ERROR_REMAINDER;
 +%include <gnc-numeric.h>
 +
 +Timespec timespecCanonicalDayTime(Timespec t);
 +time64 time64CanonicalDayTime(time64 t);
 +
 +%include <gnc-budget.h>
 +
 +%typemap(in) GList * {
 +  SCM path_scm = $input;
 +  GList *path = NULL;
 +
 +  while (!scm_is_null (path_scm))
 +  {
 +    SCM key_scm = SCM_CAR (path_scm);
 +    char *key;
 +    gchar* gkey;
 +
 +    if (!scm_is_string (key_scm))
 +      break;
 +
 +    key = scm_to_locale_string (key_scm);
 +    gkey = g_strdup (key);
 +    free (key);
 +
 +    path = g_list_prepend (path, gkey);
 +
 +    path_scm = SCM_CDR (path_scm);
 +  }
 +
 +  $1 = g_list_reverse (path);
 +}
 +
- void gnc_quote_source_set_fq_installed (GList *sources_list);
++void gnc_quote_source_set_fq_installed (const char* version_string,
++                                        GList *sources_list);
 +%clear GList *;
 +%ignore gnc_quote_source_set_fq_installed;
 +%ignore gnc_commodity_table_get_quotable_commodities;
 +%include <gnc-commodity.h>
 +
 +void gnc_hook_add_scm_dangler (const gchar *name, SCM proc);
 +void gnc_hook_run (const gchar *name, gpointer data);
 +%include <gnc-hooks.h>
 +
 +Account * gnc_book_get_template_root(QofBook *book);
 +
 +// KVP stuff
 +%typemap(in) KvpValue * " $1 = gnc_scm_to_kvp_value_ptr($input); "
 +%typemap(out) KvpValue * " $result = gnc_kvp_value_ptr_to_scm($1); "
 +%typemap(in) GSList *key_path " $1 = gnc_scm_to_gslist_string($input);"
 +
 +void qof_book_options_delete (QofBook *book, GSList *key_path);
 +void qof_book_set_option (QofBook *book, KvpValue *new_value, GSList *key_path);
 +KvpValue* qof_book_get_option (QofBook *book, GSList *key_path);
 +
 +%clear GSList *key_path;
 +
 +const char* qof_book_get_string_option(const QofBook* book, const char* opt_name);
 +void qof_book_set_string_option(QofBook* book, const char* opt_name, const char* opt_val);
 +
 +#if defined(SWIGGUILE)
 +%init {
 +  {
 +    char tmp[100];
 +
 +#define SET_ENUM(e) snprintf(tmp, 100, "(set! %s (%s))", (e), (e));  \
 +    scm_c_eval_string(tmp);
 +
 +    SET_ENUM("TXN-TYPE-NONE");
 +    SET_ENUM("TXN-TYPE-INVOICE");
 +    SET_ENUM("TXN-TYPE-PAYMENT");
 +
 +    SET_ENUM("ACCT-TYPE-INVALID");
 +    SET_ENUM("ACCT-TYPE-NONE");
 +    SET_ENUM("ACCT-TYPE-BANK");
 +    SET_ENUM("ACCT-TYPE-CASH");
 +    SET_ENUM("ACCT-TYPE-CREDIT");
 +    SET_ENUM("ACCT-TYPE-ASSET");
 +    SET_ENUM("ACCT-TYPE-LIABILITY");
 +    SET_ENUM("ACCT-TYPE-STOCK");
 +    SET_ENUM("ACCT-TYPE-MUTUAL");
 +    SET_ENUM("ACCT-TYPE-CURRENCY");
 +    SET_ENUM("ACCT-TYPE-INCOME");
 +    SET_ENUM("ACCT-TYPE-EXPENSE");
 +    SET_ENUM("ACCT-TYPE-EQUITY");
 +    SET_ENUM("ACCT-TYPE-RECEIVABLE");
 +    SET_ENUM("ACCT-TYPE-PAYABLE");
 +    SET_ENUM("ACCT-TYPE-ROOT");
 +    SET_ENUM("ACCT-TYPE-TRADING");
 +    SET_ENUM("NUM-ACCOUNT-TYPES");
 +    SET_ENUM("ACCT-TYPE-CHECKING");
 +    SET_ENUM("ACCT-TYPE-SAVINGS");
 +    SET_ENUM("ACCT-TYPE-MONEYMRKT");
 +    SET_ENUM("ACCT-TYPE-CREDITLINE");
 +
 +    SET_ENUM("QOF-QUERY-AND");
 +    SET_ENUM("QOF-QUERY-OR");
 +
 +    SET_ENUM("QUERY-TXN-MATCH-ALL");
 +    SET_ENUM("QUERY-TXN-MATCH-ANY");
 +
 +    SET_ENUM("QOF-GUID-MATCH-ALL");
 +    SET_ENUM("QOF-GUID-MATCH-ANY");
 +    SET_ENUM("QOF-GUID-MATCH-NULL");
 +    SET_ENUM("QOF-GUID-MATCH-NONE");
 +    SET_ENUM("QOF-GUID-MATCH-LIST-ANY");
 +
 +    SET_ENUM("QOF-COMPARE-LT");
 +    SET_ENUM("QOF-COMPARE-LTE");
 +    SET_ENUM("QOF-COMPARE-EQUAL");
 +    SET_ENUM("QOF-COMPARE-GT");
 +    SET_ENUM("QOF-COMPARE-GTE");
 +    SET_ENUM("QOF-COMPARE-NEQ");
 +    SET_ENUM("QOF-COMPARE-CONTAINS");
 +    SET_ENUM("QOF-COMPARE-NCONTAINS");
 +
 +    SET_ENUM("QOF-NUMERIC-MATCH-ANY");
 +    SET_ENUM("QOF-NUMERIC-MATCH-CREDIT");
 +    SET_ENUM("QOF-NUMERIC-MATCH-DEBIT");
 +
 +    SET_ENUM("QOF-PARAM-BOOK");
 +    SET_ENUM("QOF-PARAM-GUID");
 +    SET_ENUM("QOF-PARAM-KVP");
 +    SET_ENUM("QOF-PARAM-ACTIVE");
 +    SET_ENUM("QOF-PARAM-VERSION");
 +
 +    SET_ENUM("CLEARED-NO");
 +    SET_ENUM("CLEARED-CLEARED");
 +    SET_ENUM("CLEARED-FROZEN");
 +    SET_ENUM("CLEARED-RECONCILED");
 +    SET_ENUM("CLEARED-VOIDED");
 +
 +    SET_ENUM("HOOK-REPORT");
 +    SET_ENUM("HOOK-SAVE-OPTIONS");
 +
 +    //SET_ENUM("GNC-ID-ACCOUNT");
 +    SET_ENUM("QOF-ID-BOOK-SCM");
 +    //SET_ENUM("GNC-ID-BUDGET");
 +    //SET_ENUM("GNC-ID-LOT");
 +    //SET_ENUM("GNC-ID-PRICE");
 +    //SET_ENUM("GNC-ID-SPLIT");
 +    //SET_ENUM("GNC-ID-SCHEDXACTION");
 +    //SET_ENUM("QOF-ID-SESSION");
 +    //SET_ENUM("GNC-ID-TRANS");
 +
 +    SET_ENUM("QUERY-DEFAULT-SORT");
 +    SET_ENUM("SPLIT-LOT");
 +    SET_ENUM("SPLIT-TRANS");
 +    SET_ENUM("SPLIT-ACCOUNT");
 +    SET_ENUM("SPLIT-VALUE");
 +    SET_ENUM("SPLIT-MEMO");
 +    SET_ENUM("SPLIT-ACTION");
 +    SET_ENUM("SPLIT-DATE-RECONCILED");
 +    SET_ENUM("SPLIT-ACCT-FULLNAME");
 +    SET_ENUM("SPLIT-CORR-ACCT-NAME");
 +    SET_ENUM("SPLIT-CORR-ACCT-CODE");
 +
 +    SET_ENUM("TRANS-DATE-POSTED");
 +    SET_ENUM("TRANS-DESCRIPTION");
 +    SET_ENUM("TRANS-NUM");
 +
 +    SET_ENUM("KVP-OPTION-PATH");
 +
 +    SET_ENUM("OPTION-SECTION-ACCOUNTS");
 +    SET_ENUM("OPTION-NAME-TRADING-ACCOUNTS");
 +    SET_ENUM("OPTION-NAME-CURRENCY-ACCOUNTING");
 +    SET_ENUM("OPTION-NAME-BOOK-CURRENCY");
 +    SET_ENUM("OPTION-NAME-DEFAULT-GAINS-POLICY");
 +    SET_ENUM("OPTION-NAME-DEFAULT-GAINS-LOSS-ACCT-GUID");
 +    SET_ENUM("OPTION-NAME-AUTO-READONLY-DAYS");
 +    SET_ENUM("OPTION-NAME-NUM-FIELD-SOURCE");
 +
 +    SET_ENUM("OPTION-SECTION-BUDGETING");
 +    SET_ENUM("OPTION-NAME-DEFAULT-BUDGET");
 +
 +    SET_ENUM("ACCOUNT-CODE-");  /* sic */
 +
 +    SET_ENUM("GNC-HOW-RND-CEIL");
 +    SET_ENUM("GNC-HOW-RND-TRUNC");
 +    SET_ENUM("GNC-HOW-RND-PROMOTE");
 +    SET_ENUM("GNC-HOW-RND-ROUND-HALF-DOWN");
 +    SET_ENUM("GNC-HOW-RND-ROUND-HALF-UP");
 +    SET_ENUM("GNC-HOW-RND-ROUND");
 +    SET_ENUM("GNC-HOW-RND-NEVER");
 +
 +    SET_ENUM("PRICE-SOURCE-EDIT-DLG");
 +    SET_ENUM("PRICE-SOURCE-FQ");
 +    SET_ENUM("PRICE-SOURCE-USER-PRICE");
 +    SET_ENUM("PRICE-SOURCE-XFER-DLG-VAL");
 +    SET_ENUM("PRICE-SOURCE-SPLIT-REG");
 +    SET_ENUM("PRICE-SOURCE-STOCK-SPLIT");
 +    SET_ENUM("PRICE-SOURCE-TEMP");
 +    SET_ENUM("PRICE-SOURCE-INVALID");
 +
 +    SET_ENUM("QOF-DATE-FORMAT-US");
 +    SET_ENUM("QOF-DATE-FORMAT-UK");
 +    SET_ENUM("QOF-DATE-FORMAT-CE");
 +    SET_ENUM("QOF-DATE-FORMAT-ISO");
 +    SET_ENUM("QOF-DATE-FORMAT-LOCALE");
 +    SET_ENUM("QOF-DATE-FORMAT-UTC");
 +    SET_ENUM("QOF-DATE-FORMAT-CUSTOM");
 +
 +
 +#undef SET_ENUM
 +  }
 +
 +}
 +#endif
 +
 +%include business-core.i
diff --cc libgnucash/engine/gnc-commodity.c
index b31832b,0000000..ae37acb
mode 100644,000000..100644
--- a/libgnucash/engine/gnc-commodity.c
+++ b/libgnucash/engine/gnc-commodity.c
@@@ -1,2606 -1,0 +1,2629 @@@
 +/********************************************************************
 + * gnc-commodity.c -- api for tradable commodities (incl. currency) *
 + * Copyright (C) 2000 Bill Gribble                                  *
 + * Copyright (C) 2001,2003 Linas Vepstas <linas at linas.org>          *
 + * Copyright (c) 2006 David Hampton <hampton at employees.org>         *
 + *                                                                  *
 + * 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, 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>
 +
 +#include <glib.h>
 +#include <glib/gi18n.h>
 +#include <ctype.h>
 +#include <limits.h>
 +#include <string.h>
 +#include <stdio.h>
 +#include <stdlib.h>
 +#include <regex.h>
 +#include <qofinstance-p.h>
 +
 +#include "gnc-commodity.h"
 +#include "gnc-locale-utils.h"
 +#include "gnc-prefs.h"
 +
 +static QofLogModule log_module = GNC_MOD_COMMODITY;
 +
 +/* Parts per unit is nominal, i.e. number of 'partname' units in
 + * a 'unitname' unit.  fraction is transactional, i.e. how many
 + * of the smallest-transactional-units of the currency are there
 + * in a 'unitname' unit. */
 +
 +enum
 +{
 +    PROP_0,
 +    PROP_NAMESPACE,	/* Table */
 +    PROP_FULL_NAME,	/* Table */
 +    PROP_MNEMONIC,	/* Table */
 +    PROP_PRINTNAME,	/* Constructed */
 +    PROP_CUSIP,		/* Table */
 +    PROP_FRACTION,	/* Table */
 +    PROP_UNIQUE_NAME,	/* Constructed */
 +    PROP_QUOTE_FLAG,	/* Table */
 +    PROP_QUOTE_SOURCE,	/* Table */
 +    PROP_QUOTE_TZ,	/* Table */
 +};
 +
 +struct gnc_commodity_s
 +{
 +    QofInstance inst;
 +};
 +
 +typedef struct CommodityPrivate
 +{
 +    gnc_commodity_namespace *name_space;
 +
 +    char    * fullname;
 +    char    * mnemonic;
 +    char    * printname;
 +    char    * cusip;          /* CUSIP or other identifying code */
 +    int       fraction;
 +    char    * unique_name;
 +
 +    gboolean  quote_flag;	    /* user wants price quotes */
 +    gnc_quote_source * quote_source;   /* current/old source of quotes */
 +    char    * quote_tz;
 +
 +    /* the number of accounts using this commodity - this field is not
 +     * persisted */
 +    int       usage_count;
 +
 +    /* the default display_symbol, set in iso-4217-currencies at start-up */
 +    const char * default_symbol;
 +} CommodityPrivate;
 +
 +#define GET_PRIVATE(o) \
 +    (G_TYPE_INSTANCE_GET_PRIVATE((o), GNC_TYPE_COMMODITY, CommodityPrivate))
 +
 +struct _GncCommodityClass
 +{
 +    QofInstanceClass parent_class;
 +};
 +
 +static void commodity_free(gnc_commodity * cm);
 +static void gnc_commodity_set_default_symbol(gnc_commodity *, const char *);
 +
 +struct gnc_commodity_namespace_s
 +{
 +    QofInstance inst;
 +
 +    gchar      * name;
 +    gboolean     iso4217;
 +    GHashTable * cm_table;
 +    GList      * cm_list;
 +};
 +
 +struct _GncCommodityNamespaceClass
 +{
 +    QofInstanceClass parent_class;
 +};
 +
 +struct gnc_commodity_table_s
 +{
 +    GHashTable * ns_table;
 +    GList      * ns_list;
 +};
 +
 +struct gnc_new_iso_code
 +{
 +    const char *old_code;
 +    const char *new_code;
 +} gnc_new_iso_codes[] =
 +{
 +    {"RUR", "RUB"}, /* Russian Ruble: RUR through 1997-12, RUB from 1998-01 onwards; see bug #393185 */
 +    {"PLZ", "PLN"}, /* Polish Zloty */
 +    {"UAG", "UAH"}, /* Ukraine Hryvnia */
 +    {"NIS", "ILS"}, /* New Israeli Shekel: The informal abbreviation may be "NIS", but
 +		     its iso-4217 is clearly ILS and only this! Incorrectly changed
 +		     due to bug#152755 (Nov 2004) and changed back again by bug#492417
 +		     (Oct 2008). */
 +    {"MXP", "MXN"}, /* Mexican (Nuevo) Peso */
 +    {"TRL", "TRY"}, /* New Turkish Lira: changed 2005 */
 +
 +    /* Only add currencies to this table when the old currency no longer
 +     * exists in the file iso-4217-currencies.scm */
 +};
 +#define GNC_NEW_ISO_CODES \
 +        (sizeof(gnc_new_iso_codes) / sizeof(struct gnc_new_iso_code))
 +
- static gboolean fq_is_installed = FALSE;
++static char *fq_version = NULL;
 +
 +struct gnc_quote_source_s
 +{
 +    gboolean supported;
 +    QuoteSourceType type;
 +    gint index;
 +    char *user_name;		/* User friendly name */
 +    char *old_internal_name;	/* Name used internally (deprecated) */
 +    char *internal_name;		/* Name used internally and by finance::quote. */
 +};
 +
 +static gnc_quote_source currency_quote_source =
 +{ TRUE, 0, 0, "Currency", "CURRENCY", "currency" };
 +
 +static gnc_quote_source single_quote_sources[] =
 +{
 +    { FALSE, 0, 0, "Alphavantage USA", "ALPHAVANTAGE", "alphavantage" },
 +    { FALSE, 0, 0, "Amsterdam Euronext eXchange, NL", "AEX", "aex" },
 +    { FALSE, 0, 0, "American International Assurance, HK", "AIAHK", "aiahk" },
 +    { FALSE, 0, 0, "Association  of  Mutual  Funds  in  India", "AMFIINDIA", "amfiindia" },
 +    { FALSE, 0, 0, "Athens Stock Exchange, GR", "ASEGR", "asegr" },
 +    { FALSE, 0, 0, "Australian Stock Exchange, AU", "ASX", "asx" },
 +    { FALSE, 0, 0, "BAMOSZ funds, HU", "BAMOSZ", "bamosz" },
 +    { FALSE, 0, 0, "BMO NesbittBurns, CA", "BMONESBITTBURNS", "bmonesbittburns" },
 +    { FALSE, 0, 0, "Bucharest Stock Exchange, RO", "BSERO", "bsero" },
 +    { FALSE, 0, 0, "Budapest Stock Exchange (BET), ex-BUX, HU", "BSE", "bse" },
 +    { FALSE, 0, 0, "Canada Mutual", "CANADAMUTUAL", "canadamutual" },
 +    { FALSE, 0, 0, "Citywire Funds, GB", "citywire", "citywire" },
 +    { FALSE, 0, 0, "Colombo Stock Exchange, LK", "CSE", "cse" },
 +    { FALSE, 0, 0, "Cominvest, ex-Adig, DE", "COMINVEST", "cominvest" },
 +    { FALSE, 0, 0, "Deka Investments, DE", "DEKA", "deka" },
 +    { FALSE, 0, 0, "Dutch", "DUTCH", "dutch" },
 +    { FALSE, 0, 0, "DWS, DE", "DWS", "dwsfunds" },
 +    { FALSE, 0, 0, "Equinox Unit Trusts, ZA", "ZA_unittrusts", "za_unittrusts" },
 +    { FALSE, 0, 0, "Fidelity", "FIDELITY", "fidelity" },
 +    { FALSE, 0, 0, "Fidelity Direct", "FIDELITY_DIRECT", "fidelity_direct" },
 +    { FALSE, 0, 0, "Finance Canada", "FINANCECANADA", "financecanada" },
 +    { FALSE, 0, 0, "Financial Times Funds service, GB", "FTFUNDS", "ftfunds" },
 +    { FALSE, 0, 0, "Finanzpartner, DE", "FINANZPARTNER", "finanzpartner" },
 +    { FALSE, 0, 0, "First Trust Portfolios, US", "FTPORTFOLIOS", "ftportfolios" },
 +    { FALSE, 0, 0, "Fund Library, CA", "FUNDLIBRARY", "fundlibrary" },
 +    { FALSE, 0, 0, "GoldMoney spot rates, JE", "GOLDMONEY", "goldmoney" },
 +    { FALSE, 0, 0, "Greece", "GREECE", "greece" },
 +    { FALSE, 0, 0, "Helsinki stock eXchange, FI", "HEX", "hex" },
 +    { FALSE, 0, 0, "Hungary", "HU", "hu" },
 +    { FALSE, 0, 0, "India Mutual", "INDIAMUTUAL", "indiamutual" },
 +    { FALSE, 0, 0, "Man Investments, AU", "maninv", "maninv" },
 +    { FALSE, 0, 0, "Morningstar, GB", "MSTARUK", "mstaruk" },
 +    { FALSE, 0, 0, "Morningstar, JP", "MORNINGSTARJP", "morningstarjp" },
 +    { FALSE, 0, 0, "Morningstar, SE", "MORNINGSTAR", "morningstar" },
 +    { FALSE, 0, 0, "Motley Fool, US", "FOOL", "fool" },
 +    { FALSE, 0, 0, "New Zealand stock eXchange, NZ", "NZX", "nzx" },
 +    { FALSE, 0, 0, "Paris Stock Exchange/Boursorama, FR", "BOURSO", "bourso" },
 +    { FALSE, 0, 0, "Paris Stock Exchange/LeRevenu, FR", "LEREVENU", "lerevenu" },
 +    { FALSE, 0, 0, "Platinum Asset Management, AU", "PLATINUM", "platinum" },
 +    { FALSE, 0, 0, "Romania", "romania", "romania" },
 +    { FALSE, 0, 0, "SIX Swiss Exchange funds, CH", "SIXFUNDS", "sixfunds" },
 +    { FALSE, 0, 0, "SIX Swiss Exchange shares, CH", "SIXSHARES", "sixshares" },
 +    { FALSE, 0, 0, "Skandinaviska Enskilda Banken, SE", "SEB_FUNDS", "seb_funds" },
 +    { FALSE, 0, 0, "Sharenet, ZA", "ZA", "za" },
 +    { FALSE, 0, 0, "StockHouse Canada", "STOCKHOUSE_FUND", "stockhousecanada_fund" },
 +    { FALSE, 0, 0, "TD Waterhouse Canada", "TDWATERHOUSE", "tdwaterhouse" },
 +    { FALSE, 0, 0, "TD Efunds, CA", "TDEFUNDS", "tdefunds" },
 +    { FALSE, 0, 0, "TIAA-CREF, US", "TIAACREF", "tiaacref" },
 +    { FALSE, 0, 0, "Toronto Stock eXchange, CA", "TSX", "tsx" },
 +    { FALSE, 0, 0, "T. Rowe Price", "TRPRICE", "troweprice" },
 +    { FALSE, 0, 0, "T. Rowe Price, US", "TRPRICE_DIRECT", "troweprice_direct" },
 +    { FALSE, 0, 0, "Trustnet via tnetuk.pm, GB", "TNETUK", "tnetuk" },
 +    { FALSE, 0, 0, "Trustnet via trustnet.pm, GB", "TRUSTNET", "trustnet" },
 +    { FALSE, 0, 0, "U.K. Unit Trusts", "UKUNITTRUSTS", "uk_unit_trusts" },
 +    { FALSE, 0, 0, "Union Investment, DE", "UNIONFUNDS", "unionfunds" },
 +    { FALSE, 0, 0, "US Treasury Bonds", "usfedbonds", "usfedbonds" },
 +    { FALSE, 0, 0, "US Govt. Thrift Savings Plan", "TSP", "tsp" },
 +    { FALSE, 0, 0, "Vanguard", "VANGUARD", "vanguard" }, /* No module seen in F::Q 1.17. */
 +    { FALSE, 0, 0, "VWD, DE (unmaintained)", "VWD", "vwd" },
 +    { FALSE, 0, 0, "Yahoo as JSON", "YAHOO_JSON", "yahoo_json" },
 +};
 +static gnc_quote_source multiple_quote_sources[] =
 +{
 +    { FALSE, 0, 0, "Europe (Athens, Boursorama, Bucharest)", "EUROPE", "europe" },
 +    { FALSE, 0, 0, "France (Boursorama, LeRevenue)", "FRANCE", "france" },
 +    { FALSE, 0, 0, "U.K. Funds (citywire, FTfunds, MStar, tnetuk, ...)", "ukfunds", "ukfunds" },
 +};
 +
 +static const int num_single_quote_sources =
 +    sizeof(single_quote_sources) / sizeof(gnc_quote_source);
 +static const int num_multiple_quote_sources =
 +    sizeof(multiple_quote_sources) / sizeof(gnc_quote_source);
 +static GList *new_quote_sources = NULL;
 +
 +
 +/********************************************************************
 + * gnc_quote_source_fq_installed
 + *
 + * This function indicates whether or not the Finance::Quote module
 + * is installed on a users computer.
 + ********************************************************************/
 +gboolean
 +gnc_quote_source_fq_installed (void)
 +{
-     return fq_is_installed;
++    return (fq_version != NULL);
++}
++
++
++/********************************************************************
++ * gnc_quote_source_fq_version
++ *
++ * This function the version of the Finance::Quote module installed
++ * on a user's computer or NULL if no installation is found.
++ ********************************************************************/
++const char*
++gnc_quote_source_fq_version (void)
++{
++    return fq_version;
 +}
 +
 +/********************************************************************
 + * gnc_quote_source_num_entries
 + *
 + * Return the number of entries for a given type of price source.
 + ********************************************************************/
 +gint gnc_quote_source_num_entries(QuoteSourceType type)
 +{
 +    if  (type == SOURCE_CURRENCY)
 +        return 1;
 +
 +    if  (type == SOURCE_SINGLE)
 +        return num_single_quote_sources;
 +
 +    if (type == SOURCE_MULTI)
 +        return num_multiple_quote_sources;
 +
 +    return g_list_length(new_quote_sources);
 +}
 +
 +/********************************************************************
 + * gnc_quote_source_init_tables
 + *
 + * Update the type/index values for prices sources.
 + ********************************************************************/
 +static void
 +gnc_quote_source_init_tables (void)
 +{
 +    gint i;
 +
 +    for (i = 0; i < num_single_quote_sources; i++)
 +    {
 +        single_quote_sources[i].type = SOURCE_SINGLE;
 +        single_quote_sources[i].index = i;
 +    }
 +
 +    for (i = 0; i < num_multiple_quote_sources; i++)
 +    {
 +        multiple_quote_sources[i].type = SOURCE_MULTI;
 +        multiple_quote_sources[i].index = i;
 +    }
 +
 +    currency_quote_source.type = SOURCE_CURRENCY;
 +    currency_quote_source.index = 0;
 +}
 +
 +
 +/********************************************************************
 + * gnc_quote_source_add_new
 + *
 + * Add a new price source. Called when unknown source names are found
 + * either in the F::Q installation (a newly available source) or in
 + * the user's data file (a source that has vanished but needs to be
 + * tracked.)
 + ********************************************************************/
 +gnc_quote_source *
 +gnc_quote_source_add_new (const char *source_name, gboolean supported)
 +{
 +    gnc_quote_source *new_source;
 +
 +    DEBUG("Creating new source %s", (source_name == NULL ? "(null)" : source_name));
 +    new_source = malloc(sizeof(gnc_quote_source));
 +    new_source->supported = supported;
 +    new_source->type = SOURCE_UNKNOWN;
 +    new_source->index = g_list_length(new_quote_sources);
 +
 +    /* This name can be changed if/when support for this price source is
 +     * integrated into gnucash. */
 +    new_source->user_name = g_strdup(source_name);
 +
 +    /* This name is permanent and must be kept the same if/when support
 +     * for this price source is integrated into gnucash (i.e. for a
 +     * nice user name). */
 +    new_source->old_internal_name = g_strdup(source_name);
 +    new_source->internal_name = g_strdup(source_name);
 +    new_quote_sources = g_list_append(new_quote_sources, new_source);
 +    return new_source;
 +}
 +
 +/********************************************************************
 + * gnc_quote_source_lookup_by_xxx
 + *
 + * Lookup a price source data structure based upon various criteria.
 + ********************************************************************/
 +gnc_quote_source *
 +gnc_quote_source_lookup_by_ti (QuoteSourceType type, gint index)
 +{
 +    gnc_quote_source *source;
 +    GList *node;
 +
 +    ENTER("type/index is %d/%d", type, index);
 +    switch (type)
 +    {
 +    case SOURCE_CURRENCY:
 +        LEAVE("found %s", currency_quote_source.user_name);
 +        return &currency_quote_source;
 +        break;
 +
 +    case SOURCE_SINGLE:
 +        if (index < num_single_quote_sources)
 +        {
 +            LEAVE("found %s", single_quote_sources[index].user_name);
 +            return &single_quote_sources[index];
 +        }
 +        break;
 +
 +    case SOURCE_MULTI:
 +        if (index < num_multiple_quote_sources)
 +        {
 +            LEAVE("found %s", multiple_quote_sources[index].user_name);
 +            return &multiple_quote_sources[index];
 +        }
 +        break;
 +
 +    case SOURCE_UNKNOWN:
 +    default:
 +        node = g_list_nth(new_quote_sources, index);
 +        if (node)
 +        {
 +            source = node->data;
 +            LEAVE("found %s", source->user_name);
 +            return source;
 +        }
 +        break;
 +    }
 +
 +    LEAVE("not found");
 +    return NULL;
 +}
 +
 +gnc_quote_source *
 +gnc_quote_source_lookup_by_internal(const char * name)
 +{
 +    gnc_quote_source *source;
 +    GList *node;
 +    gint i;
 +
 +    if ((name == NULL) || (g_strcmp0(name, "") == 0))
 +    {
 +        return NULL;
 +    }
 +
 +    if (g_strcmp0(name, currency_quote_source.internal_name) == 0)
 +        return &currency_quote_source;
 +    if (g_strcmp0(name, currency_quote_source.old_internal_name) == 0)
 +        return &currency_quote_source;
 +
 +    for (i = 0; i < num_single_quote_sources; i++)
 +    {
 +        if (g_strcmp0(name, single_quote_sources[i].internal_name) == 0)
 +            return &single_quote_sources[i];
 +        if (g_strcmp0(name, single_quote_sources[i].old_internal_name) == 0)
 +            return &single_quote_sources[i];
 +    }
 +
 +    for (i = 0; i < num_multiple_quote_sources; i++)
 +    {
 +        if (g_strcmp0(name, multiple_quote_sources[i].internal_name) == 0)
 +            return &multiple_quote_sources[i];
 +        if (g_strcmp0(name, multiple_quote_sources[i].old_internal_name) == 0)
 +            return &multiple_quote_sources[i];
 +    }
 +
 +    for (i = 0, node = new_quote_sources; node; node = node->next, i++)
 +    {
 +        source = node->data;
 +        if (g_strcmp0(name, source->internal_name) == 0)
 +            return source;
 +        if (g_strcmp0(name, source->old_internal_name) == 0)
 +            return source;
 +    }
 +
 +    DEBUG("gnc_quote_source_lookup_by_internal: Unknown source %s", name);
 +    return NULL;
 +}
 +
 +/********************************************************************
 + * gnc_quote_source_get_xxx
 + *
 + * Accessor functions - get functions only. There are no set functions.
 + ********************************************************************/
 +QuoteSourceType
 +gnc_quote_source_get_type (const gnc_quote_source *source)
 +{
 +    ENTER("%p", source);
 +    if (!source)
 +    {
 +        LEAVE("bad source");
 +        return SOURCE_SINGLE;
 +    }
 +
 +    LEAVE("type is %d", source->type);
 +    return source->type;
 +}
 +
 +gint
 +gnc_quote_source_get_index (const gnc_quote_source *source)
 +{
 +    ENTER("%p", source);
 +    if (!source)
 +    {
 +        LEAVE("bad source");
 +        return 0;
 +    }
 +
 +    LEAVE("index is %d", source->index);
 +    return source->index;
 +}
 +
 +gboolean
 +gnc_quote_source_get_supported (const gnc_quote_source *source)
 +{
 +    ENTER("%p", source);
 +    if (!source)
 +    {
 +        LEAVE("bad source");
 +        return FALSE;
 +    }
 +
 +    LEAVE("%ssupported", source && source->supported ? "" : "not ");
 +    return source->supported;
 +}
 +
 +const char *
 +gnc_quote_source_get_user_name (const gnc_quote_source *source)
 +{
 +    ENTER("%p", source);
 +    if (!source)
 +    {
 +        LEAVE("bad source");
 +        return NULL;
 +    }
 +    LEAVE("user name %s", source->user_name);
 +    return source->user_name;
 +}
 +
 +const char *
 +gnc_quote_source_get_internal_name (const gnc_quote_source *source)
 +{
 +    ENTER("%p", source);
 +    if (!source)
 +    {
 +        LEAVE("bad source");
 +        return NULL;
 +    }
 +    LEAVE("internal name %s", source->internal_name);
 +    return source->internal_name;
 +}
 +
++
 +/********************************************************************
 + * gnc_quote_source_set_fq_installed
 + *
 + * Update gnucash internal tables on what Finance::Quote sources are
 + * installed.
 + ********************************************************************/
 +void
- gnc_quote_source_set_fq_installed (const GList *sources_list)
++gnc_quote_source_set_fq_installed (const char* version_string,
++                                   const GList *sources_list)
 +{
 +    gnc_quote_source *source;
 +    char *source_name;
 +    const GList *node;
 +
 +    ENTER(" ");
-     fq_is_installed = TRUE;
 +
 +    if (!sources_list)
 +        return;
 +
++    if (fq_version)
++    {
++        g_free (fq_version);
++        fq_version = NULL;
++    }
++
++    if (version_string)
++        fq_version = g_strdup (version_string);
++
 +    for (node = sources_list; node; node = node->next)
 +    {
 +        source_name = node->data;
 +
 +        source = gnc_quote_source_lookup_by_internal(source_name);
 +        if (source != NULL)
 +        {
 +            DEBUG("Found source %s: %s", source_name, source->user_name);
 +            source->supported = TRUE;
 +            continue;
 +        }
 +
 +        gnc_quote_source_add_new(source_name, TRUE);
 +    }
 +    LEAVE(" ");
 +}
 +
 +/********************************************************************
 + * QoF Helpers
 + ********************************************************************/
 +
 +void
 +gnc_commodity_begin_edit (gnc_commodity *cm)
 +{
 +    qof_begin_edit(&cm->inst);
 +}
 +
 +static void commit_err (QofInstance *inst, QofBackendError errcode)
 +{
 +    PERR ("Failed to commit: %d", errcode);
 +    gnc_engine_signal_commit_error( errcode );
 +}
 +
 +static void noop (QofInstance *inst) {}
 +
 +static void
 +comm_free(QofInstance* inst)
 +{
 +    commodity_free( GNC_COMMODITY(inst) );
 +}
 +
 +void
 +gnc_commodity_commit_edit (gnc_commodity *cm)
 +{
 +    if (!qof_commit_edit (QOF_INSTANCE(cm))) return;
 +    qof_commit_edit_part2 (&cm->inst, commit_err, noop, comm_free);
 +}
 +
 +/********************************************************************
 + * gnc_commodity_new
 + ********************************************************************/
 +
 +static void
 +mark_commodity_dirty (gnc_commodity *cm)
 +{
 +    qof_instance_set_dirty(&cm->inst);
 +    qof_event_gen (&cm->inst, QOF_EVENT_MODIFY, NULL);
 +}
 +
 +static void
 +reset_printname(CommodityPrivate *priv)
 +{
 +    g_free(priv->printname);
 +    priv->printname = g_strdup_printf("%s (%s)",
 +                                      priv->mnemonic ? priv->mnemonic : "",
 +                                      priv->fullname ? priv->fullname : "");
 +}
 +
 +static void
 +reset_unique_name(CommodityPrivate *priv)
 +{
 +    gnc_commodity_namespace *ns;
 +
 +    g_free(priv->unique_name);
 +    ns = priv->name_space;
 +    priv->unique_name = g_strdup_printf("%s::%s",
 +                                        ns ? ns->name : "",
 +                                        priv->mnemonic ? priv->mnemonic : "");
 +}
 +
 +/* GObject Initialization */
 +G_DEFINE_TYPE(gnc_commodity, gnc_commodity, QOF_TYPE_INSTANCE);
 +
 +static void
 +gnc_commodity_init(gnc_commodity* com)
 +{
 +    CommodityPrivate* priv;
 +
 +    priv = GET_PRIVATE(com);
 +
 +    priv->name_space = NULL;
 +    priv->fullname = CACHE_INSERT("");
 +    priv->mnemonic = CACHE_INSERT("");
 +    priv->cusip = CACHE_INSERT("");
 +    priv->fraction = 10000;
 +    priv->quote_flag = 0;
 +    priv->quote_source = NULL;
 +    priv->quote_tz = CACHE_INSERT("");
 +
 +    reset_printname(priv);
 +    reset_unique_name(priv);
 +}
 +
 +static void
 +gnc_commodity_dispose(GObject *comp)
 +{
 +    G_OBJECT_CLASS(gnc_commodity_parent_class)->dispose(comp);
 +}
 +
 +static void
 +gnc_commodity_finalize(GObject* comp)
 +{
 +    G_OBJECT_CLASS(gnc_commodity_parent_class)->finalize(comp);
 +}
 +/* Note that g_value_set_object() refs the object, as does
 + * g_object_get(). But g_object_get() only unrefs once when it disgorges
 + * the object, leaving an unbalanced ref, which leaks. So instead of
 + * using g_value_set_object(), use g_value_take_object() which doesn't
 + * ref the object when used in get_property().
 + */
 +static void
 +gnc_commodity_get_property (GObject         *object,
 +                            guint            prop_id,
 +                            GValue          *value,
 +                            GParamSpec      *pspec)
 +{
 +    gnc_commodity *commodity;
 +    CommodityPrivate* priv;
 +
 +    g_return_if_fail(GNC_IS_COMMODITY(object));
 +
 +    commodity = GNC_COMMODITY(object);
 +    priv = GET_PRIVATE(commodity);
 +    switch (prop_id)
 +    {
 +    case PROP_NAMESPACE:
 +        g_value_take_object(value, priv->name_space);
 +        break;
 +    case PROP_FULL_NAME:
 +        g_value_set_string(value, priv->fullname);
 +        break;
 +    case PROP_MNEMONIC:
 +        g_value_set_string(value, priv->mnemonic);
 +        break;
 +    case PROP_PRINTNAME:
 +        g_value_set_string(value, priv->printname);
 +        break;
 +    case PROP_CUSIP:
 +        g_value_set_string(value, priv->cusip);
 +        break;
 +    case PROP_FRACTION:
 +        g_value_set_int(value, priv->fraction);
 +        break;
 +    case PROP_UNIQUE_NAME:
 +        g_value_set_string(value, priv->unique_name);
 +        break;
 +    case PROP_QUOTE_FLAG:
 +        g_value_set_boolean(value, priv->quote_flag);
 +        break;
 +    case PROP_QUOTE_SOURCE:
 +        g_value_set_pointer(value, priv->quote_source);
 +        break;
 +    case PROP_QUOTE_TZ:
 +        g_value_set_string(value, priv->quote_tz);
 +        break;
 +    default:
 +        G_OBJECT_WARN_INVALID_PROPERTY_ID(object, prop_id, pspec);
 +        break;
 +    }
 +}
 +
 +static void
 +gnc_commodity_set_property (GObject         *object,
 +                            guint            prop_id,
 +                            const GValue    *value,
 +                            GParamSpec      *pspec)
 +{
 +    gnc_commodity *commodity;
 +
 +    g_return_if_fail(GNC_IS_COMMODITY(object));
 +
 +    commodity = GNC_COMMODITY(object);
 +    g_assert (qof_instance_get_editlevel(commodity));
 +
 +    switch (prop_id)
 +    {
 +    case PROP_NAMESPACE:
 +        gnc_commodity_set_namespace(commodity, g_value_get_object(value));
 +        break;
 +    case PROP_FULL_NAME:
 +        gnc_commodity_set_fullname(commodity, g_value_get_string(value));
 +        break;
 +    case PROP_MNEMONIC:
 +        gnc_commodity_set_mnemonic(commodity, g_value_get_string(value));
 +        break;
 +    case PROP_CUSIP:
 +        gnc_commodity_set_cusip(commodity, g_value_get_string(value));
 +        break;
 +    case PROP_FRACTION:
 +        gnc_commodity_set_fraction(commodity, g_value_get_int(value));
 +        break;
 +    case PROP_QUOTE_FLAG:
 +        gnc_commodity_set_quote_flag(commodity, g_value_get_boolean(value));
 +        break;
 +    case PROP_QUOTE_SOURCE:
 +        gnc_commodity_set_quote_source(commodity, g_value_get_pointer(value));
 +        break;
 +    case PROP_QUOTE_TZ:
 +        gnc_commodity_set_quote_tz(commodity, g_value_get_string(value));
 +        break;
 +    default:
 +        G_OBJECT_WARN_INVALID_PROPERTY_ID(object, prop_id, pspec);
 +        break;
 +    }
 +}
 +static void
 +gnc_commodity_class_init(struct _GncCommodityClass* klass)
 +{
 +    GObjectClass *gobject_class = G_OBJECT_CLASS(klass);
 +
 +    gobject_class->dispose = gnc_commodity_dispose;
 +    gobject_class->finalize = gnc_commodity_finalize;
 +    gobject_class->set_property = gnc_commodity_set_property;
 +    gobject_class->get_property = gnc_commodity_get_property;
 +
 +    g_type_class_add_private(klass, sizeof(CommodityPrivate));
 +
 +    g_object_class_install_property(gobject_class,
 +                                    PROP_NAMESPACE,
 +                                    g_param_spec_object ("namespace",
 +                                            "Namespace",
 +                                            "The namespace field denotes the "
 +                                            "namespace for this commodity, either "
 +                                            "a currency or symbol from a quote source.",
 +                                            GNC_TYPE_COMMODITY_NAMESPACE,
 +                                            G_PARAM_READWRITE));
 +    g_object_class_install_property(gobject_class,
 +                                    PROP_FULL_NAME,
 +                                    g_param_spec_string ("fullname",
 +                                            "Full Commodity Name",
 +                                            "The fullname is the official full name of"
 +                                            "the currency.",
 +                                            NULL,
 +                                            G_PARAM_READWRITE));
 +    g_object_class_install_property(gobject_class,
 +                                    PROP_MNEMONIC,
 +                                    g_param_spec_string ("mnemonic",
 +                                            "Commodity Mnemonic",
 +                                            "The mnemonic is the official abbreviated"
 +                                            "designation for the currency.",
 +                                            NULL,
 +                                            G_PARAM_READWRITE));
 +    g_object_class_install_property(gobject_class,
 +                                    PROP_PRINTNAME,
 +                                    g_param_spec_string ("printname",
 +                                            "Commodity Print Name",
 +                                            "Printable form of the commodity name.",
 +                                            NULL,
 +                                            G_PARAM_READABLE));
 +    g_object_class_install_property(gobject_class,
 +                                    PROP_CUSIP,
 +                                    g_param_spec_string ("cusip",
 +                                            "Commodity CUSIP Code",
 +                                            "?????",
 +                                            NULL,
 +                                            G_PARAM_READWRITE));
 +    g_object_class_install_property(gobject_class,
 +                                    PROP_FRACTION,
 +                                    g_param_spec_int ("fraction",
 +                                            "Fraction",
 +                                            "The fraction is the number of sub-units that "
 +                                            "the basic commodity can be divided into.",
 +                                            1,
 +                                            1000000,
 +                                            1,
 +                                            G_PARAM_READWRITE));
 +    g_object_class_install_property(gobject_class,
 +                                    PROP_UNIQUE_NAME,
 +                                    g_param_spec_string ("unique-name",
 +                                            "Commodity Unique Name",
 +                                            "Unique form of the commodity name which combines "
 +                                            "the namespace name and the commodity name.",
 +                                            NULL,
 +                                            G_PARAM_READABLE));
 +    g_object_class_install_property(gobject_class,
 +                                    PROP_QUOTE_FLAG,
 +                                    g_param_spec_boolean ("quote_flag",
 +                                            "Quote Flag",
 +                                            "TRUE if prices are to be downloaded for this "
 +                                            "commodity from a quote source.",
 +                                            FALSE,
 +                                            G_PARAM_READWRITE));
 +    g_object_class_install_property(gobject_class,
 +                                    PROP_QUOTE_SOURCE,
 +                                    g_param_spec_pointer("quote-source",
 +                                            "Quote Source",
 +                                            "The quote source from which prices are downloaded.",
 +                                            G_PARAM_READWRITE));
 +    g_object_class_install_property(gobject_class,
 +                                    PROP_QUOTE_TZ,
 +                                    g_param_spec_string ("quote-tz",
 +                                            "Commodity Quote Timezone",
 +                                            "?????",
 +                                            NULL,
 +                                            G_PARAM_READWRITE));
 +}
 +
 +gnc_commodity *
 +gnc_commodity_new(QofBook *book, const char * fullname,
 +                  const char * name_space, const char * mnemonic,
 +                  const char * cusip, int fraction)
 +{
 +    gnc_commodity * retval = g_object_new(GNC_TYPE_COMMODITY, NULL);
 +
 +    qof_instance_init_data (&retval->inst, GNC_ID_COMMODITY, book);
 +    gnc_commodity_begin_edit(retval);
 +
 +    if ( name_space != NULL )
 +    {
 +	/* Prevent setting anything except template in namespace template. */
 +        if (g_strcmp0 (name_space, GNC_COMMODITY_NS_TEMPLATE) == 0 &&
 +	    g_strcmp0 (mnemonic, "template") != 0)
 +	{
 +	    PWARN("Converting commodity %s from namespace template to "
 +		  "namespace User", mnemonic);
 +	    name_space = "User";
 +	}
 +        gnc_commodity_set_namespace(retval, name_space);
 +        if (gnc_commodity_namespace_is_iso(name_space))
 +        {
 +            gnc_commodity_set_quote_source(retval,
 +                                           gnc_quote_source_lookup_by_internal("currency") );
 +        }
 +    }
 +    gnc_commodity_set_fullname(retval, fullname);
 +    gnc_commodity_set_mnemonic(retval, mnemonic);
 +    gnc_commodity_set_cusip(retval, cusip);
 +    gnc_commodity_set_fraction(retval, fraction);
 +    mark_commodity_dirty (retval);
 +    gnc_commodity_commit_edit(retval);
 +
 +    qof_event_gen (&retval->inst, QOF_EVENT_CREATE, NULL);
 +
 +    return retval;
 +}
 +
 +
 +/********************************************************************
 + * gnc_commodity_destroy
 + ********************************************************************/
 +
 +static void
 +commodity_free(gnc_commodity * cm)
 +{
 +    QofBook *book;
 +    gnc_commodity_table *table;
 +    CommodityPrivate* priv;
 +
 +    if (!cm) return;
 +
 +    book = qof_instance_get_book(&cm->inst);
 +    table = gnc_commodity_table_get_table(book);
 +    gnc_commodity_table_remove(table, cm);
 +    priv = GET_PRIVATE(cm);
 +
 +    qof_event_gen (&cm->inst, QOF_EVENT_DESTROY, NULL);
 +
 +    /* Set at creation */
 +    CACHE_REMOVE (priv->fullname);
 +    CACHE_REMOVE (priv->cusip);
 +    CACHE_REMOVE (priv->mnemonic);
 +    CACHE_REMOVE (priv->quote_tz);
 +    priv->name_space = NULL;
 +
 +    /* Set through accessor functions */
 +    priv->quote_source = NULL;
 +
 +    /* Automatically generated */
 +    g_free(priv->printname);
 +    priv->printname = NULL;
 +
 +    g_free(priv->unique_name);
 +    priv->unique_name = NULL;
 +
 +#ifdef ACCOUNTS_CLEANED_UP
 +    /* Account objects are not actually cleaned up when a book is closed (in fact
 +     * a memory leak), but commodities are, so in currently this warning gets hit
 +     * quite frequently.  Disable the check until cleaning up of accounts objects
 +     * on close is implemented.  */
 +    if (priv->usage_count != 0)
 +    {
 +        PWARN("Destroying commodity (%p) with non-zero usage_count (%d).", cm,
 +              priv->usage_count);
 +    }
 +#endif
 +
 +    /* qof_instance_release (&cm->inst); */
 +    g_object_unref(cm);
 +}
 +
 +void
 +gnc_commodity_destroy(gnc_commodity * cm)
 +{
 +    gnc_commodity_begin_edit(cm);
 +    qof_instance_set_destroying(cm, TRUE);
 +    gnc_commodity_commit_edit(cm);
 +}
 +
 +void
 +gnc_commodity_copy(gnc_commodity * dest, const gnc_commodity *src)
 +{
 +    CommodityPrivate* src_priv = GET_PRIVATE(src);
 +    CommodityPrivate* dest_priv = GET_PRIVATE(dest);
 +
 +    gnc_commodity_set_fullname (dest, src_priv->fullname);
 +    gnc_commodity_set_mnemonic (dest, src_priv->mnemonic);
 +    dest_priv->name_space = src_priv->name_space;
 +    gnc_commodity_set_fraction (dest, src_priv->fraction);
 +    gnc_commodity_set_cusip (dest, src_priv->cusip);
 +    gnc_commodity_set_quote_flag (dest, src_priv->quote_flag);
 +    gnc_commodity_set_quote_source (dest, gnc_commodity_get_quote_source (src));
 +    gnc_commodity_set_quote_tz (dest, src_priv->quote_tz);
 +    qof_instance_copy_kvp (QOF_INSTANCE (dest), QOF_INSTANCE (src));
 +}
 +
 +gnc_commodity *
 +gnc_commodity_clone(const gnc_commodity *src, QofBook *dest_book)
 +{
 +    CommodityPrivate* src_priv;
 +    CommodityPrivate* dest_priv;
 +
 +    gnc_commodity * dest = g_object_new(GNC_TYPE_COMMODITY, NULL);
 +    qof_instance_init_data (&dest->inst, GNC_ID_COMMODITY, dest_book);
 +    src_priv = GET_PRIVATE(src);
 +    dest_priv = GET_PRIVATE(dest);
 +
 +    dest_priv->fullname = CACHE_INSERT(src_priv->fullname);
 +    dest_priv->mnemonic = CACHE_INSERT(src_priv->mnemonic);
 +    dest_priv->cusip = CACHE_INSERT(src_priv->cusip);
 +    dest_priv->quote_tz = CACHE_INSERT(src_priv->quote_tz);
 +
 +    dest_priv->name_space = src_priv->name_space;
 +
 +    dest_priv->fraction = src_priv->fraction;
 +    dest_priv->quote_flag = src_priv->quote_flag;
 +
 +    gnc_commodity_set_quote_source (dest, gnc_commodity_get_quote_source (src));
 +
 +    qof_instance_copy_kvp (QOF_INSTANCE (dest), QOF_INSTANCE (src));
 +
 +    reset_printname(dest_priv);
 +    reset_unique_name(dest_priv);
 +
 +    return dest;
 +}
 +
 +/********************************************************************
 + * gnc_commodity_get_mnemonic
 + ********************************************************************/
 +
 +const char *
 +gnc_commodity_get_mnemonic(const gnc_commodity * cm)
 +{
 +    if (!cm) return NULL;
 +    return GET_PRIVATE(cm)->mnemonic;
 +}
 +
 +/********************************************************************
 + * gnc_commodity_get_printname
 + ********************************************************************/
 +
 +const char *
 +gnc_commodity_get_printname(const gnc_commodity * cm)
 +{
 +    if (!cm) return NULL;
 +    return GET_PRIVATE(cm)->printname;
 +}
 +
 +
 +/********************************************************************
 + * gnc_commodity_get_namespace
 + ********************************************************************/
 +
 +const char *
 +gnc_commodity_get_namespace(const gnc_commodity * cm)
 +{
 +    if (!cm) return NULL;
 +    return gnc_commodity_namespace_get_name(GET_PRIVATE(cm)->name_space);
 +}
 +
 +gnc_commodity_namespace *
 +gnc_commodity_get_namespace_ds(const gnc_commodity * cm)
 +{
 +    if (!cm) return NULL;
 +    return GET_PRIVATE(cm)->name_space;
 +}
 +
 +/********************************************************************
 + * gnc_commodity_get_fullname
 + ********************************************************************/
 +
 +const char *
 +gnc_commodity_get_fullname(const gnc_commodity * cm)
 +{
 +    if (!cm) return NULL;
 +    return GET_PRIVATE(cm)->fullname;
 +}
 +
 +
 +/********************************************************************
 + * gnc_commodity_get_unique_name
 + ********************************************************************/
 +
 +const char *
 +gnc_commodity_get_unique_name(const gnc_commodity * cm)
 +{
 +    if (!cm) return NULL;
 +    return GET_PRIVATE(cm)->unique_name;
 +}
 +
 +
 +/********************************************************************
 + * gnc_commodity_get_cusip
 + ********************************************************************/
 +
 +const char *
 +gnc_commodity_get_cusip(const gnc_commodity * cm)
 +{
 +    if (!cm) return NULL;
 +    return GET_PRIVATE(cm)->cusip;
 +}
 +
 +/********************************************************************
 + * gnc_commodity_get_fraction
 + ********************************************************************/
 +
 +int
 +gnc_commodity_get_fraction(const gnc_commodity * cm)
 +{
 +    if (!cm) return 0;
 +    return GET_PRIVATE(cm)->fraction;
 +}
 +
 +/********************************************************************
 + * gnc_commodity_get_auto_quote_control_flag
 + ********************************************************************/
 +
 +static gboolean
 +gnc_commodity_get_auto_quote_control_flag(const gnc_commodity *cm)
 +{
 +    GValue v = G_VALUE_INIT;
 +
 +    if (!cm) return FALSE;
 +    qof_instance_get_kvp (QOF_INSTANCE (cm), &v, 1, "auto_quote_control");
 +    if (G_VALUE_HOLDS_STRING (&v) &&
 +        strcmp(g_value_get_string (&v), "false") == 0)
 +        return FALSE;
 +    return TRUE;
 +}
 +
 +/********************************************************************
 + * gnc_commodity_get_quote_flag
 + ********************************************************************/
 +
 +gboolean
 +gnc_commodity_get_quote_flag(const gnc_commodity *cm)
 +{
 +    if (!cm) return FALSE;
 +    return (GET_PRIVATE(cm)->quote_flag);
 +}
 +
 +/********************************************************************
 + * gnc_commodity_get_quote_source
 + ********************************************************************/
 +
 +gnc_quote_source*
 +gnc_commodity_get_quote_source(const gnc_commodity *cm)
 +{
 +    CommodityPrivate* priv;
 +
 +    if (!cm) return NULL;
 +    priv = GET_PRIVATE(cm);
 +    if (!priv->quote_source && gnc_commodity_is_iso(cm))
 +        return &currency_quote_source;
 +    return priv->quote_source;
 +}
 +
 +gnc_quote_source*
 +gnc_commodity_get_default_quote_source(const gnc_commodity *cm)
 +{
 +    if (cm && gnc_commodity_is_iso(cm))
 +        return &currency_quote_source;
 +    /* Should make this a user option at some point. */
 +    return gnc_quote_source_lookup_by_internal("alphavantage");
 +}
 +
 +/********************************************************************
 + * gnc_commodity_get_quote_tz
 + ********************************************************************/
 +
 +const char*
 +gnc_commodity_get_quote_tz(const gnc_commodity *cm)
 +{
 +    if (!cm) return NULL;
 +    return GET_PRIVATE(cm)->quote_tz;
 +}
 +
 +/********************************************************************
 + * gnc_commodity_get_user_symbol
 + ********************************************************************/
 +const char*
 +gnc_commodity_get_user_symbol(const gnc_commodity *cm)
 +{
 +    GValue v = G_VALUE_INIT;
 +    if (!cm) return NULL;
 +    qof_instance_get_kvp (QOF_INSTANCE(cm), &v, 1, "user_symbol");
 +    if (G_VALUE_HOLDS_STRING (&v))
 +        return g_value_get_string (&v);
 +    return NULL;
 +}
 +
 +/********************************************************************
 + * gnc_commodity_get_default_symbol
 + *******************************************************************/
 +const char*
 +gnc_commodity_get_default_symbol(const gnc_commodity *cm)
 +{
 +    if (!cm) return NULL;
 +    return GET_PRIVATE(cm)->default_symbol;
 +}
 +
 +/********************************************************************
 + * gnc_commodity_get_nice_symbol
 + *******************************************************************/
 +const char*
 +gnc_commodity_get_nice_symbol (const gnc_commodity *cm)
 +{
 +    const char *nice_symbol;
 +    struct lconv *lc;
 +    if (!cm) return NULL;
 +
 +    nice_symbol = gnc_commodity_get_user_symbol(cm);
 +    if (nice_symbol && *nice_symbol)
 +        return nice_symbol;
 +
 +    lc = gnc_localeconv();
 +    nice_symbol = lc->currency_symbol;
 +    if (!g_strcmp0(gnc_commodity_get_mnemonic(cm), lc->int_curr_symbol))
 +        return nice_symbol;
 +
 +    nice_symbol = gnc_commodity_get_default_symbol(cm);
 +    if (nice_symbol && *nice_symbol)
 +        return nice_symbol;
 +
 +    return gnc_commodity_get_mnemonic(cm);
 +}
 +
 +/********************************************************************
 + * gnc_commodity_set_mnemonic
 + ********************************************************************/
 +
 +void
 +gnc_commodity_set_mnemonic(gnc_commodity * cm, const char * mnemonic)
 +{
 +    CommodityPrivate* priv;
 +
 +    if (!cm) return;
 +    priv = GET_PRIVATE(cm);
 +    if (priv->mnemonic == mnemonic) return;
 +
 +    gnc_commodity_begin_edit(cm);
 +    CACHE_REMOVE (priv->mnemonic);
 +    priv->mnemonic = CACHE_INSERT(mnemonic);
 +
 +    mark_commodity_dirty (cm);
 +    reset_printname(priv);
 +    reset_unique_name(priv);
 +    gnc_commodity_commit_edit(cm);
 +}
 +
 +/********************************************************************
 + * gnc_commodity_set_namespace
 + ********************************************************************/
 +
 +void
 +gnc_commodity_set_namespace(gnc_commodity * cm, const char * name_space)
 +{
 +    QofBook *book;
 +    gnc_commodity_table *table;
 +    gnc_commodity_namespace *nsp;
 +    CommodityPrivate* priv;
 +
 +    if (!cm) return;
 +    priv = GET_PRIVATE(cm);
 +    book = qof_instance_get_book (&cm->inst);
 +    table = gnc_commodity_table_get_table(book);
 +    nsp = gnc_commodity_table_add_namespace(table, name_space, book);
 +    if (priv->name_space == nsp)
 +        return;
 +
 +    gnc_commodity_begin_edit(cm);
 +    priv->name_space = nsp;
 +    if (nsp->iso4217)
 +        priv->quote_source = gnc_quote_source_lookup_by_internal("currency");
 +    mark_commodity_dirty(cm);
 +    reset_printname(priv);
 +    reset_unique_name(priv);
 +    gnc_commodity_commit_edit(cm);
 +}
 +
 +/********************************************************************
 + * gnc_commodity_set_fullname
 + ********************************************************************/
 +
 +void
 +gnc_commodity_set_fullname(gnc_commodity * cm, const char * fullname)
 +{
 +    CommodityPrivate* priv;
 +
 +    if (!cm) return;
 +    priv = GET_PRIVATE(cm);
 +    if (priv->fullname == fullname) return;
 +
 +    CACHE_REMOVE (priv->fullname);
 +    priv->fullname = CACHE_INSERT (fullname);
 +
 +    gnc_commodity_begin_edit(cm);
 +    mark_commodity_dirty(cm);
 +    reset_printname(priv);
 +    gnc_commodity_commit_edit(cm);
 +}
 +
 +/********************************************************************
 + * gnc_commodity_set_cusip
 + ********************************************************************/
 +
 +void
 +gnc_commodity_set_cusip(gnc_commodity * cm,
 +                        const char * cusip)
 +{
 +    CommodityPrivate* priv;
 +
 +    if (!cm) return;
 +
 +    priv = GET_PRIVATE(cm);
 +    if (priv->cusip == cusip) return;
 +
 +    gnc_commodity_begin_edit(cm);
 +    CACHE_REMOVE (priv->cusip);
 +    priv->cusip = CACHE_INSERT (cusip);
 +    mark_commodity_dirty(cm);
 +    gnc_commodity_commit_edit(cm);
 +}
 +
 +/********************************************************************
 + * gnc_commodity_set_fraction
 + ********************************************************************/
 +
 +void
 +gnc_commodity_set_fraction(gnc_commodity * cm, int fraction)
 +{
 +    if (!cm) return;
 +    gnc_commodity_begin_edit(cm);
 +    GET_PRIVATE(cm)->fraction = fraction;
 +    mark_commodity_dirty(cm);
 +    gnc_commodity_commit_edit(cm);
 +}
 +
 +/********************************************************************
 + * gnc_commodity_set_auto_quote_control_flag
 + ********************************************************************/
 +
 +static void
 +gnc_commodity_set_auto_quote_control_flag(gnc_commodity *cm,
 +        const gboolean flag)
 +{
 +    GValue v = G_VALUE_INIT;
 +    ENTER ("(cm=%p, flag=%d)", cm, flag);
 +
 +    if (!cm)
 +    {
 +        LEAVE("");
 +        return;
 +    }
 +    gnc_commodity_begin_edit(cm);
 +    if (flag)
 +        qof_instance_set_kvp (QOF_INSTANCE (cm), NULL, 1, "auto_quote_control");
 +    else
 +    {
 +        g_value_init (&v, G_TYPE_STRING);
 +        g_value_set_string (&v, "false");
 +        qof_instance_set_kvp (QOF_INSTANCE (cm), &v, 1, "auto_quote_control");
 +    }
 +    mark_commodity_dirty(cm);
 +    gnc_commodity_commit_edit(cm);
 +    LEAVE("");
 +}
 +
 +/********************************************************************
 + * gnc_commodity_user_set_quote_flag
 + ********************************************************************/
 +
 +void
 +gnc_commodity_user_set_quote_flag(gnc_commodity *cm, const gboolean flag)
 +{
 +    CommodityPrivate* priv;
 +
 +    ENTER ("(cm=%p, flag=%d)", cm, flag);
 +
 +    if (!cm)
 +    {
 +        LEAVE("");
 +        return;
 +    }
 +
 +    priv = GET_PRIVATE(cm);
 +    gnc_commodity_begin_edit(cm);
 +    gnc_commodity_set_quote_flag(cm, flag);
 +    if (gnc_commodity_is_iso(cm))
 +    {
 +        /* For currencies, disable auto quote control if the quote flag is being
 +         * changed from its default value and enable it if the quote flag is being
 +         * reset to its default value.  The defaults for the quote flag are
 +         * disabled if no accounts are using the currency, and true otherwise.
 +         * Thus enable auto quote control if flag is FALSE and there are not any
 +         * accounts using this currency OR flag is TRUE and there are accounts
 +         * using this currency; otherwise disable auto quote control */
 +        gnc_commodity_set_auto_quote_control_flag(cm,
 +                (!flag && (priv->usage_count == 0)) || (flag && (priv->usage_count != 0)));
 +    }
 +    gnc_commodity_commit_edit(cm);
 +    LEAVE("");
 +}
 +
 +/********************************************************************
 + * gnc_commodity_set_quote_flag
 + ********************************************************************/
 +
 +void
 +gnc_commodity_set_quote_flag(gnc_commodity *cm, const gboolean flag)
 +{
 +    ENTER ("(cm=%p, flag=%d)", cm, flag);
 +
 +    if (!cm) return;
 +    gnc_commodity_begin_edit(cm);
 +    GET_PRIVATE(cm)->quote_flag = flag;
 +    mark_commodity_dirty(cm);
 +    gnc_commodity_commit_edit(cm);
 +    LEAVE(" ");
 +}
 +
 +/********************************************************************
 + * gnc_commodity_set_quote_source
 + ********************************************************************/
 +
 +void
 +gnc_commodity_set_quote_source(gnc_commodity *cm, gnc_quote_source *src)
 +{
 +    ENTER ("(cm=%p, src=%p(%s))", cm, src, src ? src->internal_name : "unknown");
 +
 +    if (!cm) return;
 +    gnc_commodity_begin_edit(cm);
 +    GET_PRIVATE(cm)->quote_source = src;
 +    mark_commodity_dirty(cm);
 +    gnc_commodity_commit_edit(cm);
 +    LEAVE(" ");
 +}
 +
 +/********************************************************************
 + * gnc_commodity_set_quote_tz
 + ********************************************************************/
 +
 +void
 +gnc_commodity_set_quote_tz(gnc_commodity *cm, const char *tz)
 +{
 +    CommodityPrivate* priv;
 +
 +    if (!cm) return;
 +
 +    ENTER ("(cm=%p, tz=%s)", cm, tz ? tz : "(null)");
 +
 +    priv = GET_PRIVATE(cm);
 +
 +    if (tz == priv->quote_tz)
 +    {
 +        LEAVE("Already correct TZ");
 +        return;
 +    }
 +
 +    gnc_commodity_begin_edit(cm);
 +    CACHE_REMOVE (priv->quote_tz);
 +    priv->quote_tz = CACHE_INSERT (tz);
 +    mark_commodity_dirty(cm);
 +    gnc_commodity_commit_edit(cm);
 +    LEAVE(" ");
 +}
 +
 +/********************************************************************
 + * gnc_commodity_set_user_symbol
 + ********************************************************************/
 +
 +void
 +gnc_commodity_set_user_symbol(gnc_commodity * cm, const char * user_symbol)
 +{
 +    struct lconv *lc;
 +    GValue v = G_VALUE_INIT;
 +    if (!cm) return;
 +
 +    ENTER ("(cm=%p, symbol=%s)", cm, user_symbol ? user_symbol : "(null)");
 +
 +    gnc_commodity_begin_edit(cm);
 +
 +    lc = gnc_localeconv();
 +    if (!user_symbol || !*user_symbol)
 +	user_symbol = NULL;
 +    else if (!g_strcmp0(lc->int_curr_symbol, gnc_commodity_get_mnemonic(cm)) &&
 +	     !g_strcmp0(lc->currency_symbol, user_symbol))
 +	/* if the user gives the ISO symbol for the locale currency or the
 +	 * default symbol, actually remove the user symbol */
 +	user_symbol = NULL;
 +    else if (!g_strcmp0(user_symbol, gnc_commodity_get_default_symbol(cm)))
 +	user_symbol = NULL;
 +    if (user_symbol)
 +    {
 +        g_value_init (&v, G_TYPE_STRING);
 +        g_value_set_string (&v, user_symbol);
 +        qof_instance_set_kvp (QOF_INSTANCE(cm), &v, 1, "user_symbol");
 +    }
 +    else
 +        qof_instance_set_kvp (QOF_INSTANCE(cm), NULL, 1, "user_symbol");
 +
 +    mark_commodity_dirty(cm);
 +    gnc_commodity_commit_edit(cm);
 +
 +    LEAVE(" ");
 +}
 +
 +/********************************************************************
 + * gnc_commodity_set_default_symbol
 + * Not made visible in gnc-commodity.h, it is only called from
 + * iso-4217-currencies.c at startup.
 + ********************************************************************/
 +void
 +gnc_commodity_set_default_symbol(gnc_commodity * cm,
 +				 const char * default_symbol)
 +{
 +    GET_PRIVATE(cm)->default_symbol = default_symbol;
 +}
 +
 +/********************************************************************
 + * gnc_commodity_increment_usage_count
 + ********************************************************************/
 +
 +void
 +gnc_commodity_increment_usage_count(gnc_commodity *cm)
 +{
 +    CommodityPrivate* priv;
 +
 +    ENTER("(cm=%p)", cm);
 +
 +    if (!cm)
 +    {
 +        LEAVE("");
 +        return;
 +    }
 +
 +    priv = GET_PRIVATE(cm);
 +
 +    if ((priv->usage_count == 0) && !priv->quote_flag
 +            && gnc_commodity_get_auto_quote_control_flag(cm)
 +            && gnc_commodity_is_iso(cm))
 +    {
 +        /* compatibility hack - Gnucash 1.8 gets currency quotes when a
 +           non-default currency is assigned to an account.  */
 +        gnc_commodity_begin_edit(cm);
 +        gnc_commodity_set_quote_flag(cm, TRUE);
 +        gnc_commodity_set_quote_source(cm,
 +                                       gnc_commodity_get_default_quote_source(cm));
 +        gnc_commodity_commit_edit(cm);
 +    }
 +    priv->usage_count++;
 +    LEAVE("(usage_count=%d)", priv->usage_count);
 +}
 +
 +/********************************************************************
 + * gnc_commodity_decrement_usage_count
 + ********************************************************************/
 +
 +void
 +gnc_commodity_decrement_usage_count(gnc_commodity *cm)
 +{
 +    CommodityPrivate* priv;
 +
 +    ENTER("(cm=%p)", cm);
 +
 +    if (!cm)
 +    {
 +        LEAVE("");
 +        return;
 +    }
 +
 +    priv = GET_PRIVATE(cm);
 +
 +    if (priv->usage_count == 0)
 +    {
 +        PWARN("usage_count already zero");
 +        LEAVE("");
 +        return;
 +    }
 +
 +    priv->usage_count--;
 +    if ((priv->usage_count == 0) && priv->quote_flag
 +            && gnc_commodity_get_auto_quote_control_flag(cm)
 +            && gnc_commodity_is_iso(cm))
 +    {
 +        /* if this is a currency with auto quote control enabled and no more
 +         * accounts reference this currency, disable quote retrieval */
 +        gnc_commodity_set_quote_flag(cm, FALSE);
 +    }
 +    LEAVE("(usage_count=%d)", priv->usage_count);
 +}
 +
 +/********************************************************************\
 +\********************************************************************/
 +
 +
 +/********************************************************************
 + * gnc_commodity_equiv
 + * are two commodities the same?
 + ********************************************************************/
 +
 +gboolean
 +gnc_commodity_equiv(const gnc_commodity * a, const gnc_commodity * b)
 +{
 +    CommodityPrivate* priv_a;
 +    CommodityPrivate* priv_b;
 +
 +    if (a == b) return TRUE;
 +    if (!a || !b) return FALSE;
 +
 +    priv_a = GET_PRIVATE(a);
 +    priv_b = GET_PRIVATE(b);
 +    if (priv_a->name_space != priv_b->name_space) return FALSE;
 +    if (g_strcmp0(priv_a->mnemonic, priv_b->mnemonic) != 0) return FALSE;
 +    return TRUE;
 +}
 +
 +gboolean
 +gnc_commodity_equal(const gnc_commodity * a, const gnc_commodity * b)
 +{
 +    CommodityPrivate* priv_a;
 +    CommodityPrivate* priv_b;
 +    gboolean same_book;
 +
 +    if (a == b) return TRUE;
 +
 +    if (!a || !b)
 +    {
 +        DEBUG ("one is NULL");
 +        return FALSE;
 +    }
 +
 +    priv_a = GET_PRIVATE(a);
 +    priv_b = GET_PRIVATE(b);
 +    same_book = qof_instance_get_book(QOF_INSTANCE(a)) == qof_instance_get_book(QOF_INSTANCE(b));
 +
 +    if ((same_book && priv_a->name_space != priv_b->name_space)
 +            || (!same_book && g_strcmp0( gnc_commodity_namespace_get_name(priv_a->name_space),
 +                                           gnc_commodity_namespace_get_name(priv_b->name_space)) != 0))
 +    {
 +        DEBUG ("namespaces differ: %p(%s) vs %p(%s)",
 +               priv_a->name_space, gnc_commodity_namespace_get_name(priv_a->name_space),
 +               priv_b->name_space, gnc_commodity_namespace_get_name(priv_b->name_space));
 +        return FALSE;
 +    }
 +
 +    if (g_strcmp0(priv_a->mnemonic, priv_b->mnemonic) != 0)
 +    {
 +        DEBUG ("mnemonics differ: %s vs %s", priv_a->mnemonic, priv_b->mnemonic);
 +        return FALSE;
 +    }
 +
 +    if (g_strcmp0(priv_a->fullname, priv_b->fullname) != 0)
 +    {
 +        DEBUG ("fullnames differ: %s vs %s", priv_a->fullname, priv_b->fullname);
 +        return FALSE;
 +    }
 +
 +    if (g_strcmp0(priv_a->cusip, priv_b->cusip) != 0)
 +    {
 +        DEBUG ("cusips differ: %s vs %s", priv_a->cusip, priv_b->cusip);
 +        return FALSE;
 +    }
 +
 +    if (priv_a->fraction != priv_b->fraction)
 +    {
 +        DEBUG ("fractions differ: %d vs %d", priv_a->fraction, priv_b->fraction);
 +        return FALSE;
 +    }
 +
 +    return TRUE;
 +}
 +
 +int gnc_commodity_compare(const gnc_commodity * a, const gnc_commodity * b)
 +{
 +    if (gnc_commodity_equal(a, b))
 +    {
 +        return 0;
 +    }
 +    else
 +    {
 +        return 1;
 +    }
 +}
 +
 +int gnc_commodity_compare_void(const void * a, const void * b)
 +{
 +    return gnc_commodity_compare(a, b);
 +}
 +
 +/************************************************************
 + *                   Namespace functions                    *
 + ************************************************************/
 +const char *
 +gnc_commodity_namespace_get_name (const gnc_commodity_namespace *ns)
 +{
 +    if (ns == NULL)
 +        return NULL;
 +    return ns->name;
 +}
 +
 +const char *
 +gnc_commodity_namespace_get_gui_name (const gnc_commodity_namespace *ns)
 +{
 +    if (ns == NULL)
 +        return NULL;
 +    if (g_strcmp0 (ns->name, GNC_COMMODITY_NS_CURRENCY) == 0)
 +        return GNC_COMMODITY_NS_ISO_GUI;
 +    return ns->name;
 +}
 +
 +GList *
 +gnc_commodity_namespace_get_commodity_list(const gnc_commodity_namespace *name_space)
 +{
 +    if (!name_space)
 +        return NULL;
 +
 +    return name_space->cm_list;
 +}
 +
 +gboolean
 +gnc_commodity_namespace_is_iso(const char *name_space)
 +{
 +    return ((g_strcmp0(name_space, GNC_COMMODITY_NS_ISO) == 0) ||
 +            (g_strcmp0(name_space, GNC_COMMODITY_NS_CURRENCY) == 0));
 +}
 +
 +static const gchar *
 +gnc_commodity_table_map_namespace(const char * name_space)
 +{
 +    if (g_strcmp0(name_space, GNC_COMMODITY_NS_ISO) == 0)
 +        return GNC_COMMODITY_NS_CURRENCY;
 +    return name_space;
 +}
 +
 +/********************************************************************
 + * gnc_commodity_table_new
 + * make a new commodity table
 + ********************************************************************/
 +
 +gnc_commodity_table *
 +gnc_commodity_table_new(void)
 +{
 +    gnc_commodity_table * retval = g_new0(gnc_commodity_table, 1);
 +    retval->ns_table = g_hash_table_new(&g_str_hash, &g_str_equal);
 +    retval->ns_list = NULL;
 +    return retval;
 +}
 +
 +/********************************************************************
 + * book anchor functons
 + ********************************************************************/
 +
 +gnc_commodity_table *
 +gnc_commodity_table_get_table(QofBook *book)
 +{
 +    if (!book) return NULL;
 +    return qof_book_get_data (book, GNC_COMMODITY_TABLE);
 +}
 +
 +gnc_commodity *
 +gnc_commodity_obtain_twin (const gnc_commodity *from, QofBook *book)
 +{
 +    gnc_commodity *twin;
 +    const char * ucom;
 +    gnc_commodity_table * comtbl;
 +
 +    if (!from) return NULL;
 +    comtbl = gnc_commodity_table_get_table (book);
 +    if (!comtbl) return NULL;
 +
 +    ucom = gnc_commodity_get_unique_name (from);
 +    twin = gnc_commodity_table_lookup_unique (comtbl, ucom);
 +    if (!twin)
 +    {
 +        twin = gnc_commodity_clone (from, book);
 +        twin = gnc_commodity_table_insert (comtbl, twin);
 +    }
 +    return twin;
 +}
 +
 +/********************************************************************
 + * gnc_commodity_table_get_size
 + * get the size of the commodity table
 + ********************************************************************/
 +
 +static void
 +count_coms(gpointer key, gpointer value, gpointer user_data)
 +{
 +    GHashTable *tbl = ((gnc_commodity_namespace*)value)->cm_table;
 +    guint *count = (guint*)user_data;
 +
 +    if (g_strcmp0((char*)key, GNC_COMMODITY_NS_CURRENCY) == 0)
 +    {
 +        /* don't count default commodities */
 +        return;
 +    }
 +
 +    if (!value) return;
 +
 +    *count += g_hash_table_size(tbl);
 +}
 +
 +guint
 +gnc_commodity_table_get_size(const gnc_commodity_table* tbl)
 +{
 +    guint count = 0;
 +    g_return_val_if_fail(tbl, 0);
 +    g_return_val_if_fail(tbl->ns_table, 0);
 +
 +    g_hash_table_foreach(tbl->ns_table, count_coms, (gpointer)&count);
 +
 +    return count;
 +}
 +
 +/********************************************************************
 + * gnc_commodity_table_lookup
 + * locate a commodity by namespace and mnemonic.
 + ********************************************************************/
 +
 +gnc_commodity *
 +gnc_commodity_table_lookup(const gnc_commodity_table * table,
 +                           const char * name_space, const char * mnemonic)
 +{
 +    gnc_commodity_namespace * nsp = NULL;
 +    unsigned int i;
 +
 +    if (!table || !name_space || !mnemonic) return NULL;
 +
 +    nsp = gnc_commodity_table_find_namespace(table, name_space);
 +
 +    if (nsp)
 +    {
 +        /*
 +         * Backward compatibility support for currencies that have
 +         * recently changed.
 +         */
 +        if (nsp->iso4217)
 +        {
 +            for (i = 0; i < GNC_NEW_ISO_CODES; i++)
 +            {
 +                if (strcmp(mnemonic, gnc_new_iso_codes[i].old_code) == 0)
 +                {
 +                    mnemonic = gnc_new_iso_codes[i].new_code;
 +                    break;
 +                }
 +            }
 +        }
 +        return g_hash_table_lookup(nsp->cm_table, (gpointer)mnemonic);
 +    }
 +    else
 +    {
 +        return NULL;
 +    }
 +}
 +
 +/********************************************************************
 + * gnc_commodity_table_lookup
 + * locate a commodity by unique name.
 + ********************************************************************/
 +
 +gnc_commodity *
 +gnc_commodity_table_lookup_unique(const gnc_commodity_table *table,
 +                                  const char * unique_name)
 +{
 +    char *name_space;
 +    char *mnemonic;
 +    gnc_commodity *commodity;
 +
 +    if (!table || !unique_name) return NULL;
 +
 +    name_space = g_strdup (unique_name);
 +    mnemonic = strstr (name_space, "::");
 +    if (!mnemonic)
 +    {
 +        g_free (name_space);
 +        return NULL;
 +    }
 +
 +    *mnemonic = '\0';
 +    mnemonic += 2;
 +
 +    commodity = gnc_commodity_table_lookup (table, name_space, mnemonic);
 +
 +    g_free (name_space);
 +
 +    return commodity;
 +}
 +
 +/********************************************************************
 + * gnc_commodity_table_find_full
 + * locate a commodity by namespace and printable name
 + ********************************************************************/
 +
 +gnc_commodity *
 +gnc_commodity_table_find_full(const gnc_commodity_table * table,
 +                              const char * name_space,
 +                              const char * fullname)
 +{
 +    gnc_commodity * retval = NULL;
 +    GList         * all;
 +    GList         * iterator;
 +
 +    if (!fullname || (fullname[0] == '\0'))
 +        return NULL;
 +
 +    all = gnc_commodity_table_get_commodities(table, name_space);
 +
 +    for (iterator = all; iterator; iterator = iterator->next)
 +    {
 +        if (!strcmp(fullname,
 +                    gnc_commodity_get_printname(iterator->data)))
 +        {
 +            retval = iterator->data;
 +            break;
 +        }
 +    }
 +
 +    g_list_free (all);
 +
 +    return retval;
 +}
 +
 +
 +/********************************************************************
 + * gnc_commodity_table_insert
 + * add a commodity to the table.
 + ********************************************************************/
 +
 +gnc_commodity *
 +gnc_commodity_table_insert(gnc_commodity_table * table,
 +                           gnc_commodity * comm)
 +{
 +    gnc_commodity_namespace * nsp = NULL;
 +    gnc_commodity *c;
 +    const char *ns_name;
 +    CommodityPrivate* priv;
 +    QofBook *book;
 +
 +    if (!table) return NULL;
 +    if (!comm) return NULL;
 +
 +    priv = GET_PRIVATE(comm);
 +
 +    ENTER ("(table=%p, comm=%p) %s %s", table, comm,
 +           (priv->mnemonic == NULL ? "(null)" : priv->mnemonic),
 +           (priv->fullname == NULL ? "(null)" : priv->fullname));
 +    ns_name = gnc_commodity_namespace_get_name(priv->name_space);
 +    c = gnc_commodity_table_lookup (table, ns_name, priv->mnemonic);
 +
 +    if (c)
 +    {
 +        if (c == comm)
 +        {
 +            LEAVE("already in table");
 +            return c;
 +        }
 +
 +        /* Backward compatibility support for currencies that have
 +         * recently changed. */
 +        if (priv->name_space->iso4217)
 +        {
 +            guint i;
 +            for (i = 0; i < GNC_NEW_ISO_CODES; i++)
 +            {
 +                if (!priv->mnemonic
 +                        || !strcmp(priv->mnemonic, gnc_new_iso_codes[i].old_code))
 +                {
 +                    gnc_commodity_set_mnemonic(comm, gnc_new_iso_codes[i].new_code);
 +                    break;
 +                }
 +            }
 +        }
 +        gnc_commodity_copy (c, comm);
 +        gnc_commodity_destroy (comm);
 +        LEAVE("found at %p", c);
 +        return c;
 +    }
 +
 +    /* Prevent setting anything except template in namespace template. */
 +    if (g_strcmp0 (ns_name, GNC_COMMODITY_NS_TEMPLATE) == 0 &&
 +	g_strcmp0 (priv->mnemonic, "template") != 0)
 +    {
 +	PWARN("Converting commodity %s from namespace template to "
 +	      "namespace User", priv->mnemonic);
 +	gnc_commodity_set_namespace (comm, "User");
 +	ns_name = "User";
 +	mark_commodity_dirty (comm);
 +    }
 +
 +    book = qof_instance_get_book (&comm->inst);
 +    nsp = gnc_commodity_table_add_namespace(table, ns_name, book);
 +
 +    PINFO ("insert %p %s into nsp=%p %s", priv->mnemonic, priv->mnemonic,
 +           nsp->cm_table, nsp->name);
 +    g_hash_table_insert(nsp->cm_table,
 +                        CACHE_INSERT(priv->mnemonic),
 +                        (gpointer)comm);
 +    nsp->cm_list = g_list_append(nsp->cm_list, comm);
 +
 +    qof_event_gen (&comm->inst, QOF_EVENT_ADD, NULL);
 +    LEAVE ("(table=%p, comm=%p)", table, comm);
 +    return comm;
 +}
 +
 +/********************************************************************
 + * gnc_commodity_table_remove
 + * remove a commodity from the table.
 + ********************************************************************/
 +
 +void
 +gnc_commodity_table_remove(gnc_commodity_table * table,
 +                           gnc_commodity * comm)
 +{
 +    gnc_commodity_namespace * nsp;
 +    gnc_commodity *c;
 +    CommodityPrivate* priv;
 +    const char *ns_name;
 +
 +    if (!table) return;
 +    if (!comm) return;
 +
 +    priv = GET_PRIVATE(comm);
 +    ns_name = gnc_commodity_namespace_get_name(priv->name_space);
 +    c = gnc_commodity_table_lookup (table, ns_name, priv->mnemonic);
 +    if (c != comm) return;
 +
 +    qof_event_gen (&comm->inst, QOF_EVENT_REMOVE, NULL);
 +
 +    nsp = gnc_commodity_table_find_namespace(table, ns_name);
 +    if (!nsp) return;
 +
 +    nsp->cm_list = g_list_remove(nsp->cm_list, comm);
 +    g_hash_table_remove (nsp->cm_table, priv->mnemonic);
 +    /* XXX minor mem leak, should remove the key as well */
 +}
 +
 +/********************************************************************
 + * gnc_commodity_table_has_namespace
 + * see if the commodities namespace exists. May have zero commodities.
 + ********************************************************************/
 +
 +int
 +gnc_commodity_table_has_namespace(const gnc_commodity_table * table,
 +                                  const char * name_space)
 +{
 +    gnc_commodity_namespace * nsp = NULL;
 +
 +    if (!table || !name_space)
 +    {
 +        return 0;
 +    }
 +
 +    nsp = gnc_commodity_table_find_namespace(table, name_space);
 +    if (nsp)
 +    {
 +        return 1;
 +    }
 +    else
 +    {
 +        return 0;
 +    }
 +}
 +
 +static void
 +hash_keys_helper(gpointer key, gpointer value, gpointer data)
 +{
 +    GList ** l = data;
 +    *l = g_list_prepend(*l, key);
 +}
 +
 +static GList *
 +g_hash_table_keys(GHashTable * table)
 +{
 +    GList * l = NULL;
 +    g_hash_table_foreach(table, &hash_keys_helper, (gpointer) &l);
 +    return l;
 +}
 +
 +static void
 +hash_values_helper(gpointer key, gpointer value, gpointer data)
 +{
 +    GList ** l = data;
 +    *l = g_list_prepend(*l, value);
 +}
 +
 +static GList *
 +g_hash_table_values(GHashTable * table)
 +{
 +    GList * l = NULL;
 +    g_hash_table_foreach(table, &hash_values_helper, (gpointer) &l);
 +    return l;
 +}
 +
 +/********************************************************************
 + * gnc_commodity_table_get_namespaces
 + * see if any commodities in the namespace exist
 + ********************************************************************/
 +
 +GList *
 +gnc_commodity_table_get_namespaces(const gnc_commodity_table * table)
 +{
 +    if (!table)
 +        return NULL;
 +
 +    return g_hash_table_keys(table->ns_table);
 +}
 +
 +GList *
 +gnc_commodity_table_get_namespaces_list(const gnc_commodity_table * table)
 +{
 +    if (!table)
 +        return NULL;
 +
 +    return table->ns_list;
 +}
 +
 +/* Because gnc_commodity_table_add_namespace maps GNC_COMMODITY_NS_ISO to
 +   GNC_COMMODITY_NS_CURRENCY and then sets iso4217 if the namespace is
 +   either of these, the net result is that the iso4217 bit is set only
 +   for GNC_COMMODITY_NS_CURRENCY.  This means that gnc_commodity_is_iso is
 +   a subset of gnc_commodity_is_currency.  Most callers seem to use
 +   gnc_commodity_is_iso. */
 +gboolean
 +gnc_commodity_is_iso(const gnc_commodity * cm)
 +{
 +    CommodityPrivate* priv;
 +
 +    if (!cm) return FALSE;
 +
 +    priv = GET_PRIVATE(cm);
 +    if ( !priv->name_space) return FALSE;
 +    return priv->name_space->iso4217;
 +}
 +
 +gboolean
 +gnc_commodity_is_currency(const gnc_commodity *cm)
 +{
 +    const char *ns_name;
 +    if (!cm) return FALSE;
 +
 +    ns_name = gnc_commodity_namespace_get_name(GET_PRIVATE(cm)->name_space);
 +    return (!g_strcmp0(ns_name, GNC_COMMODITY_NS_LEGACY) ||
 +            !g_strcmp0(ns_name, GNC_COMMODITY_NS_CURRENCY));
 +}
 +
 +/********************************************************************
 + * gnc_commodity_table_get_commodities
 + * list commodities in a given namespace
 + ********************************************************************/
 +
 +static CommodityList*
 +commodity_table_get_all_noncurrency_commodities(const gnc_commodity_table* table)
 +{
 +    GList *node = NULL, *nslist = gnc_commodity_table_get_namespaces(table);
 +    CommodityList *retval = NULL;
 +    for (node = nslist; node; node=g_list_next(node))
 +    {
 +        gnc_commodity_namespace *ns = NULL;
 +        if (g_strcmp0((char*)(node->data), GNC_COMMODITY_NS_CURRENCY) == 0
 +            || g_strcmp0((char*)(node->data), GNC_COMMODITY_NS_TEMPLATE) == 0)
 +            continue;
 +        ns = gnc_commodity_table_find_namespace(table, (char*)(node->data));
 +        if (!ns)
 +            continue;
 +        retval = g_list_concat(g_hash_table_values(ns->cm_table), retval);
 +    }
 +    g_list_free(nslist);
 +    return retval;
 +}
 +
 +CommodityList *
 +gnc_commodity_table_get_commodities(const gnc_commodity_table * table,
 +                                    const char * name_space)
 +{
 +    gnc_commodity_namespace * ns = NULL;
 +
 +    if (!table)
 +        return NULL;
 +    if (g_strcmp0(name_space, GNC_COMMODITY_NS_NONCURRENCY) == 0)
 +        return commodity_table_get_all_noncurrency_commodities(table);
 +    ns = gnc_commodity_table_find_namespace(table, name_space);
 +    if (!ns)
 +        return NULL;
 +
 +    return g_hash_table_values(ns->cm_table);
 +}
 +
 +/********************************************************************
 + * gnc_commodity_table_get_quotable_commodities
 + * list commodities in a given namespace that get price quotes
 + ********************************************************************/
 +
 +static void
 +get_quotables_helper1(gpointer key, gpointer value, gpointer data)
 +{
 +    gnc_commodity *comm = value;
 +    CommodityPrivate* priv = GET_PRIVATE(comm);
 +    GList ** l = data;
 +
 +    if (!priv->quote_flag ||
 +            !priv->quote_source || !priv->quote_source->supported)
 +        return;
 +    *l = g_list_prepend(*l, value);
 +}
 +
 +static gboolean
 +get_quotables_helper2 (gnc_commodity *comm, gpointer data)
 +{
 +    GList ** l = data;
 +    CommodityPrivate* priv = GET_PRIVATE(comm);
 +
 +    if (!priv->quote_flag ||
 +            !priv->quote_source || !priv->quote_source->supported)
 +        return TRUE;
 +    *l = g_list_prepend(*l, comm);
 +    return TRUE;
 +}
 +
 +CommodityList *
 +gnc_commodity_table_get_quotable_commodities(const gnc_commodity_table * table)
 +{
 +    gnc_commodity_namespace * ns = NULL;
 +    const char *name_space;
 +    GList * nslist, * tmp;
 +    GList * l = NULL;
 +    regex_t pattern;
 +    const char *expression = gnc_prefs_get_namespace_regexp();
 +
 +    ENTER("table=%p, expression=%s", table, expression);
 +    if (!table)
 +        return NULL;
 +
 +    if (expression && *expression)
 +    {
 +        if (regcomp(&pattern, expression, REG_EXTENDED | REG_ICASE) != 0)
 +        {
 +            LEAVE("Cannot compile regex");
 +            return NULL;
 +        }
 +
 +        nslist = gnc_commodity_table_get_namespaces(table);
 +        for (tmp = nslist; tmp; tmp = tmp->next)
 +        {
 +            name_space = tmp->data;
 +            if (regexec(&pattern, name_space, 0, NULL, 0) == 0)
 +            {
 +                DEBUG("Running list of %s commodities", name_space);
 +                ns = gnc_commodity_table_find_namespace(table, name_space);
 +                if (ns)
 +                {
 +                    g_hash_table_foreach(ns->cm_table, &get_quotables_helper1, (gpointer) &l);
 +                }
 +            }
 +        }
 +        g_list_free(nslist);
 +        regfree(&pattern);
 +    }
 +    else
 +    {
 +        gnc_commodity_table_foreach_commodity(table, get_quotables_helper2,
 +                                              (gpointer) &l);
 +    }
 +    LEAVE("list head %p", l);
 +    return l;
 +}
 +
 +/********************************************************************
 + * gnc_commodity_table_add_namespace
 + * add an empty namespace if it does not exist
 + ********************************************************************/
 +
 +/* GObject Initialization */
 +QOF_GOBJECT_IMPL(gnc_commodity_namespace, gnc_commodity_namespace, QOF_TYPE_INSTANCE);
 +
 +static void
 +gnc_commodity_namespace_init(gnc_commodity_namespace* ns)
 +{
 +}
 +
 +static void
 +gnc_commodity_namespace_dispose_real (GObject *nsp)
 +{
 +}
 +
 +static void
 +gnc_commodity_namespace_finalize_real(GObject* nsp)
 +{
 +}
 +
 +gnc_commodity_namespace *
 +gnc_commodity_table_add_namespace(gnc_commodity_table * table,
 +                                  const char * name_space,
 +                                  QofBook *book)
 +{
 +    gnc_commodity_namespace * ns = NULL;
 +
 +    if (!table) return NULL;
 +
 +    name_space = gnc_commodity_table_map_namespace(name_space);
 +    ns = gnc_commodity_table_find_namespace(table, name_space);
 +    if (!ns)
 +    {
 +        ns = g_object_new(GNC_TYPE_COMMODITY_NAMESPACE, NULL);
 +        ns->cm_table = g_hash_table_new(g_str_hash, g_str_equal);
 +        ns->name = CACHE_INSERT((gpointer)name_space);
 +        ns->iso4217 = gnc_commodity_namespace_is_iso(name_space);
 +        qof_instance_init_data (&ns->inst, GNC_ID_COMMODITY_NAMESPACE, book);
 +        qof_event_gen (&ns->inst, QOF_EVENT_CREATE, NULL);
 +
 +        g_hash_table_insert(table->ns_table,
 +                            (gpointer) ns->name,
 +                            (gpointer) ns);
 +        table->ns_list = g_list_append(table->ns_list, ns);
 +        qof_event_gen (&ns->inst, QOF_EVENT_ADD, NULL);
 +    }
 +    return ns;
 +}
 +
 +
 +gnc_commodity_namespace *
 +gnc_commodity_table_find_namespace(const gnc_commodity_table * table,
 +                                   const char * name_space)
 +{
 +    if (!table || !name_space)
 +        return NULL;
 +
 +    name_space = gnc_commodity_table_map_namespace(name_space);
 +    return g_hash_table_lookup(table->ns_table, (gpointer)name_space);
 +}
 +
 +
 +gnc_commodity *
 +gnc_commodity_find_commodity_by_guid(const GncGUID *guid, QofBook *book)
 +{
 +    QofCollection *col;
 +    if (!guid || !book) return NULL;
 +    col = qof_book_get_collection (book, GNC_ID_COMMODITY);
 +    return (gnc_commodity *) qof_collection_lookup_entity (col, guid);
 +}
 +
 +/********************************************************************
 + * gnc_commodity_table_delete_namespace
 + * delete a namespace
 + ********************************************************************/
 +
 +static int
 +ns_helper(gpointer key, gpointer value, gpointer user_data)
 +{
 +    gnc_commodity * c = value;
 +    gnc_commodity_destroy(c);
 +    CACHE_REMOVE(key);  /* key is commodity mnemonic */
 +    return TRUE;
 +}
 +
 +void
 +gnc_commodity_table_delete_namespace(gnc_commodity_table * table,
 +                                     const char * name_space)
 +{
 +    gnc_commodity_namespace * ns;
 +
 +    if (!table) return;
 +
 +    ns = gnc_commodity_table_find_namespace(table, name_space);
 +    if (!ns)
 +        return;
 +
 +    qof_event_gen (&ns->inst, QOF_EVENT_REMOVE, NULL);
 +    g_hash_table_remove(table->ns_table, name_space);
 +    table->ns_list = g_list_remove(table->ns_list, ns);
 +
 +    g_list_free(ns->cm_list);
 +    ns->cm_list = NULL;
 +
 +    g_hash_table_foreach_remove(ns->cm_table, ns_helper, NULL);
 +    g_hash_table_destroy(ns->cm_table);
 +    CACHE_REMOVE(ns->name);
 +
 +    qof_event_gen (&ns->inst, QOF_EVENT_DESTROY, NULL);
 +    /* qof_instance_release(&ns->inst); */
 +    g_object_unref(ns);
 +}
 +
 +/********************************************************************
 + * gnc_commodity_table_foreach_commodity
 + * call user-defined function once for every commodity in every
 + * namespace
 + ********************************************************************/
 +
 +typedef struct
 +{
 +    gboolean ok;
 +    gboolean (*func)(gnc_commodity *, gpointer);
 +    gpointer user_data;
 +} IterData;
 +
 +static void
 +iter_commodity (gpointer key, gpointer value, gpointer user_data)
 +{
 +    IterData *iter_data = (IterData *) user_data;
 +    gnc_commodity *cm = (gnc_commodity *) value;
 +
 +    if (iter_data->ok)
 +    {
 +        iter_data->ok = (iter_data->func)(cm, iter_data->user_data);
 +    }
 +}
 +
 +static void
 +iter_namespace (gpointer key, gpointer value, gpointer user_data)
 +{
 +    GHashTable *namespace_hash = ((gnc_commodity_namespace *) value)->cm_table;
 +    g_hash_table_foreach (namespace_hash, iter_commodity, user_data);
 +}
 +
 +gboolean
 +gnc_commodity_table_foreach_commodity (const gnc_commodity_table * tbl,
 +                                       gboolean (*f)(gnc_commodity *, gpointer),
 +                                       gpointer user_data)
 +{
 +    IterData iter_data;
 +
 +    if (!tbl || !f) return FALSE;
 +
 +    iter_data.ok = TRUE;
 +    iter_data.func = f;
 +    iter_data.user_data = user_data;
 +
 +    g_hash_table_foreach(tbl->ns_table, iter_namespace, (gpointer)&iter_data);
 +
 +    return iter_data.ok;
 +}
 +
 +/********************************************************************
 + * gnc_commodity_table_destroy
 + * cleanup and free.
 + ********************************************************************/
 +
 +void
 +gnc_commodity_table_destroy(gnc_commodity_table * t)
 +{
 +    gnc_commodity_namespace * ns;
 +    GList *item, *next;
 +
 +    if (!t) return;
 +    ENTER ("table=%p", t);
 +
 +    for (item = t->ns_list; item; item = next)
 +    {
 +        next = g_list_next(item);
 +        ns = item->data;
 +        gnc_commodity_table_delete_namespace(t, ns->name);
 +    }
 +
 +    g_list_free(t->ns_list);
 +    t->ns_list = NULL;
 +    g_hash_table_destroy(t->ns_table);
 +    t->ns_table = NULL;
 +    g_free(t);
 +    LEAVE ("table=%p", t);
 +}
 +
 +/* =========================================================== */
 +
 +/********************************************************************
 + * gnc_commodity_table_add_default_data
 + ********************************************************************/
 +
 +#define CUR_I18N(String) dgettext ("iso_4217", String)
 +
 +gboolean
 +gnc_commodity_table_add_default_data(gnc_commodity_table *table, QofBook *book)
 +{
 +    QofCollection *col;
 +    gnc_commodity* c;
 +
 +    ENTER ("table=%p", table);
 +    gnc_commodity_table_add_namespace(table, GNC_COMMODITY_NS_AMEX, book);
 +    gnc_commodity_table_add_namespace(table, GNC_COMMODITY_NS_NYSE, book);
 +    gnc_commodity_table_add_namespace(table, GNC_COMMODITY_NS_NASDAQ, book);
 +    gnc_commodity_table_add_namespace(table, GNC_COMMODITY_NS_EUREX, book);
 +    gnc_commodity_table_add_namespace(table, GNC_COMMODITY_NS_MUTUAL, book);
 +    gnc_commodity_table_add_namespace(table, GNC_COMMODITY_NS_TEMPLATE, book);
 +    c = gnc_commodity_new(book, "template", GNC_COMMODITY_NS_TEMPLATE, "template", "template", 1);
 +    gnc_commodity_table_insert(table, c);
 +
 +#include "iso-4217-currencies.c"
 +
 +    /* We've just created the default namespaces and currencies.  Mark
 +     * these collections as clean because there is no USER entered data
 +     * in these collections as of yet. */
 +    col = qof_book_get_collection(book, GNC_ID_COMMODITY);
 +    qof_collection_mark_clean(col);
 +    col = qof_book_get_collection(book, GNC_ID_COMMODITY_NAMESPACE);
 +    qof_collection_mark_clean(col);
 +
 +    LEAVE ("table=%p", table);
 +    return TRUE;
 +}
 +
 +/********************************************************************
 + ********************************************************************/
 +/* QofObject function implementation and registration */
 +
 +#ifdef _MSC_VER
 +/* MSVC compiler doesn't have C99 "designated initializers"
 + * so we wrap them in a macro that is empty on MSVC. */
 +# define DI(x) /* */
 +#else
 +# define DI(x) x
 +#endif
 +static QofObject commodity_object_def =
 +{
 +    DI(.interface_version = ) QOF_OBJECT_VERSION,
 +    DI(.e_type            = ) GNC_ID_COMMODITY,
 +    DI(.type_label        = ) "Commodity",
 +    DI(.create            = ) NULL,
 +    DI(.book_begin        = ) NULL,
 +    DI(.book_end          = ) NULL,
 +    DI(.is_dirty          = ) qof_collection_is_dirty,
 +    DI(.mark_clean        = ) qof_collection_mark_clean,
 +    DI(.foreach           = ) qof_collection_foreach,
 +    DI(.printable         = ) (const char * (*)(gpointer)) gnc_commodity_get_fullname,
 +};
 +
 +static QofObject namespace_object_def =
 +{
 +    DI(.interface_version = ) QOF_OBJECT_VERSION,
 +    DI(.e_type            = ) GNC_ID_COMMODITY_NAMESPACE,
 +    DI(.type_label        = ) "Namespace",
 +    DI(.create            = ) NULL,
 +    DI(.book_begin        = ) NULL,
 +    DI(.book_end          = ) NULL,
 +    DI(.is_dirty          = ) NULL,
 +    DI(.mark_clean        = ) NULL,
 +    DI(.foreach           = ) NULL,
 +    DI(.printable         = ) NULL,
 +};
 +
 +static void
 +commodity_table_book_begin (QofBook *book)
 +{
 +    gnc_commodity_table *ct;
 +    ENTER ("book=%p", book);
 +
 +    if (gnc_commodity_table_get_table(book))
 +        return;
 +
 +    ct = gnc_commodity_table_new ();
 +    qof_book_set_data (book, GNC_COMMODITY_TABLE, ct);
 +
 +    if (!gnc_commodity_table_add_default_data(ct, book))
 +    {
 +        PWARN("unable to initialize book's commodity_table");
 +    }
 +
 +    LEAVE ("book=%p", book);
 +}
 +
 +static void
 +commodity_table_book_end (QofBook *book)
 +{
 +    gnc_commodity_table *ct;
 +
 +    ct = gnc_commodity_table_get_table (book);
 +    qof_book_set_data (book, GNC_COMMODITY_TABLE, NULL);
 +    gnc_commodity_table_destroy (ct);
 +}
 +
 +static QofObject commodity_table_object_def =
 +{
 +    DI(.interface_version = ) QOF_OBJECT_VERSION,
 +    DI(.e_type            = ) GNC_ID_COMMODITY_TABLE,
 +    DI(.type_label        = ) "CommodityTable",
 +    DI(.create            = ) NULL,
 +    DI(.book_begin        = ) commodity_table_book_begin,
 +    DI(.book_end          = ) commodity_table_book_end,
 +    DI(.is_dirty          = ) qof_collection_is_dirty,
 +    DI(.mark_clean        = ) qof_collection_mark_clean,
 +    DI(.foreach           = ) NULL,
 +    DI(.printable         = ) NULL,
 +    DI(.version_cmp       = ) NULL,
 +};
 +
 +gboolean
 +gnc_commodity_table_register (void)
 +{
 +    gnc_quote_source_init_tables();
 +
 +    if (!qof_object_register (&commodity_object_def))
 +        return FALSE;
 +    if (!qof_object_register (&namespace_object_def))
 +        return FALSE;
 +    return qof_object_register (&commodity_table_object_def);
 +}
 +
 +/* *******************************************************************
 +*  gnc_monetary methods
 +********************************************************************/
 +
 +/** Add a gnc_monetary to the list */
 +MonetaryList *
 +gnc_monetary_list_add_monetary(MonetaryList *list, gnc_monetary add_mon)
 +{
 +    MonetaryList *l = list, *tmp;
 +    for (tmp = list; tmp; tmp = tmp->next)
 +    {
 +        gnc_monetary *list_mon = tmp->data;
 +        if (gnc_commodity_equiv(list_mon->commodity, add_mon.commodity))
 +        {
 +            list_mon->value = gnc_numeric_add(list_mon->value, add_mon.value,
 +                                              GNC_DENOM_AUTO, GNC_HOW_DENOM_EXACT);
 +            break;
 +        }
 +    }
 +
 +    /* See if we found an entry, and add one if not */
 +    if (tmp == NULL)
 +    {
 +        gnc_monetary *new_mon = g_new0(gnc_monetary, 1);
 +        *new_mon = add_mon;
 +        l = g_list_prepend(l, new_mon);
 +    }
 +
 +    return l;
 +}
 +
 +/** Delete all entries in the list that have zero value.  Return list
 +    pointer will be a null pointer if there are no non-zero entries **/
 +MonetaryList *
 +gnc_monetary_list_delete_zeros(MonetaryList *list)
 +{
 +    MonetaryList *node, *next;
 +    for (node = list; node; node = next)
 +    {
 +        gnc_monetary *mon = node->data;
 +        next = node->next;
 +        if (gnc_numeric_zero_p(mon->value))
 +        {
 +            g_free(mon);
 +            list = g_list_delete_link(list, node);
 +        }
 +    }
 +    return list;
 +}
 +
 +/** Free a MonetaryList and all the monetaries it points to */
 +void
 +gnc_monetary_list_free(MonetaryList *list)
 +{
 +    MonetaryList *tmp;
 +    for (tmp = list; tmp; tmp = tmp->next)
 +    {
 +        g_free(tmp->data);
 +    }
 +
 +    g_list_free(list);
 +}
 +
 +/* ========================= END OF FILE ============================== */
diff --cc libgnucash/engine/gnc-commodity.h
index b5dcc93,0000000..a2d3f28
mode 100644,000000..100644
--- a/libgnucash/engine/gnc-commodity.h
+++ b/libgnucash/engine/gnc-commodity.h
@@@ -1,1069 -1,0 +1,1078 @@@
 +/********************************************************************
 + * gnc-commodity.h -- API for tradable commodities (incl. currency) *
 + *                                                                  *
 + * 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, 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                   *
 + *                                                                  *
 + *******************************************************************/
 +
 +/** @addtogroup Engine
 +    @{ */
 +/** @addtogroup Commodity Commodities
 +    A commodity is something of value that is easily tradeable or
 +    sellable; for example, currencies, stocks, bonds, grain,
 +    copper, and oil are all commodities.  This file provides
 +    an API for defining a commodities, and for working with
 +    collections of commodities.  All GnuCash financial transactions
 +    must identify the commodity that is being traded.
 +
 +    @warning The system used here does not follow the object
 +    handling and identification system (GncGUID's, Entities, etc.)
 +    that the other parts of GnuCash use.  The API really should be
 +    ported over.  This would allow us to get rid of the
 +    commodity table routines defined below.
 +
 +    @{ */
 +/** @file gnc-commodity.h
 + *  @brief Commodity handling public routines
 + *  @author Copyright (C) 2000 Bill Gribble
 + *  @author Copyright (C) 2001 Linas Vepstas <linas at linas.org>
 + */
 +
 +#ifndef GNC_COMMODITY_H
 +#define GNC_COMMODITY_H
 +
 +typedef struct _GncCommodityClass gnc_commodityClass;
 +typedef struct _GncCommodityNamespaceClass gnc_commodity_namespaceClass;
 +
 +#include <glib.h>
 +#include <glib/gi18n.h>
 +#include "gnc-engine.h"
 +
 +#ifdef __cplusplus
 +extern "C" {
 +#endif
 +
 +/* --- type macros --- */
 +#define GNC_TYPE_COMMODITY            (gnc_commodity_get_type ())
 +#define GNC_COMMODITY(o)              \
 +     (G_TYPE_CHECK_INSTANCE_CAST ((o), GNC_TYPE_COMMODITY, gnc_commodity))
 +#define GNC_COMMODITY_CLASS(k)        \
 +     (G_TYPE_CHECK_CLASS_CAST((k), GNC_TYPE_COMMODITY, gnc_commodityClass))
 +#define GNC_IS_COMMODITY(o)           \
 +     (G_TYPE_CHECK_INSTANCE_TYPE ((o), GNC_TYPE_COMMODITY))
 +#define GNC_IS_COMMODITY_CLASS(k)     \
 +     (G_TYPE_CHECK_CLASS_TYPE ((k), GNC_TYPE_COMMODITY))
 +#define GNC_COMMODITY_GET_CLASS(o)    \
 +     (G_TYPE_INSTANCE_GET_CLASS ((o), GNC_TYPE_COMMODITY, gnc_commodityClass))
 +GType gnc_commodity_get_type(void);
 +
 +/* --- type macros --- */
 +#define GNC_TYPE_COMMODITY_NAMESPACE            (gnc_commodity_namespace_get_type ())
 +#define GNC_COMMODITY_NAMESPACE(o)              \
 +     (G_TYPE_CHECK_INSTANCE_CAST ((o), GNC_TYPE_COMMODITY_NAMESPACE, gnc_commodity_namespace))
 +#define GNC_COMMODITY_NAMESPACE_CLASS(k)        \
 +     (G_TYPE_CHECK_CLASS_CAST((k), GNC_TYPE_COMMODITY_NAMESPACE, gnc_commodity_namespaceClass))
 +#define GNC_IS_COMMODITY_NAMESPACE(o)           \
 +     (G_TYPE_CHECK_INSTANCE_TYPE ((o), GNC_TYPE_COMMODITY_NAMESPACE))
 +#define GNC_IS_COMMODITY_NAMESPACE_CLASS(k)     \
 +     (G_TYPE_CHECK_CLASS_TYPE ((k), GNC_TYPE_COMMODITY_NAMESPACE))
 +#define GNC_COMMODITY_NAMESPACE_GET_CLASS(o)    \
 +     (G_TYPE_INSTANCE_GET_CLASS ((o), GNC_TYPE_COMMODITY_NAMESPACE, gnc_commodity_namespaceClass))
 +GType gnc_commodity_namespace_get_type(void);
 +
 +
 +#define GNC_COMMODITY_TABLE "gnc_commodity_table"
 +
 +/** The commodity namespace definitions are used to tag a commodity by
 + *  its type, or a stocks by the exchange where it is traded.
 + *
 + *  The LEGACY name is only used by the file i/o routines, and is
 + *  converted to another commodity namespace before it is seen by the
 + *  rest of the system.  The ISO namespace represents currencies.
 + *  With the exception of the NASDAQ namespace (which is used once in
 + *  the binary importer) the rest of the namespace declarations are
 + *  only used to populate an option menu in the commodity selection
 + *  window.
 + */
 +#define GNC_COMMODITY_NS_LEGACY "GNC_LEGACY_CURRENCIES"
 +#define GNC_COMMODITY_NS_TEMPLATE "template"
 +/* The ISO define is deprecated in favor of CURRENCY */
 +#define GNC_COMMODITY_NS_ISO    "ISO4217"
 +#define GNC_COMMODITY_NS_CURRENCY "CURRENCY"
 +#define GNC_COMMODITY_NS_NASDAQ "NASDAQ"
 +#define GNC_COMMODITY_NS_NYSE   "NYSE"
 +#define GNC_COMMODITY_NS_EUREX  "EUREX"
 +#define GNC_COMMODITY_NS_MUTUAL "FUND"
 +#define GNC_COMMODITY_NS_AMEX   "AMEX"
 +#define GNC_COMMODITY_NS_ASX    "ASX"
 +#define GNC_COMMODITY_NS_NONCURRENCY _("All non-currency")
 +/* Delay translation of this one, we use it in both translated and untranslated form
 +   when presenting the currency related namespace to the user */
 +#define GNC_COMMODITY_NS_ISO_GUI N_("Currencies")
 +
 +typedef GList CommodityList;
 +
 +/** @name Commodity Quote Source functions
 + @{
 +*/
 +
 +/** The quote source type enum account types are used to determine how
 + *  the transaction data in the account is displayed.  These values
 + *  can be safely changed from one release to the next.
 + */
 +typedef enum
 +{
 +    SOURCE_SINGLE = 0,	/**< This quote source pulls from a single
 +			 *   specific web site.  For example, the
 +			 *   yahoo_australia source only pulls from
 +			 *   the yahoo web site. */
 +    SOURCE_MULTI,		/**< This quote source may pull from multiple
 +			 *   web sites.  For example, the australia
 +			 *   source may pull from ASX, yahoo, etc. */
 +    SOURCE_UNKNOWN,	/**< This is a locally installed quote source
 +			 *   that gnucash knows nothing about. May
 +			 *   pull from single or multiple
 +			 *   locations. */
 +    SOURCE_MAX,
 +    SOURCE_CURRENCY = SOURCE_MAX, /**< The special currency quote source. */
 +} QuoteSourceType;
 +
 +/** This function indicates whether or not the Finance::Quote module
-  *  is installed on a users computer.  This includes any other related
++ *  is installed on a user's computer.  This includes any other related
 + *  modules that gnucash need to process F::Q information.
 + *
 + *  @return TRUE is F::Q is installed properly.
 + */
 +gboolean gnc_quote_source_fq_installed (void);
 +
++/** This function returns the version of the Finance::Quote module
++ *  installed on a user's computer. If no proper installation is found
++ *  it will return NULL.
++ *
++ *  @return a version string or NULL
++ */
++const char* gnc_quote_source_fq_version (void);
++
 +/** Update gnucash internal tables based on what Finance::Quote
 + *  sources are installed.  Sources that have been explicitly coded
 + *  into gnucash are marked sensitive/insensitive based upon whether
 + *  they are present. New sources that gnucash doesn't know about are
 + *  added to its internal tables.
 + *
 + *  @param sources_list A list of strings containing the source names
 + *  as they are known to F::Q.
 + */
- void gnc_quote_source_set_fq_installed (const GList *sources_list);
++void gnc_quote_source_set_fq_installed (const char* version_string,
++                                        const GList *sources_list);
 +
 +/** Return the number of entries for a given type of quote source.
 + *
 + *  @param type The quote source type whose count should be returned.
 + *
 + *  @return The number of entries for this type of quote source.
 + */
 +gint gnc_quote_source_num_entries(QuoteSourceType type);
 +
 +/** Create a new quote source. This is called by the F::Q startup code
 + *  or the XML parsing code to add new entries to the list of
 + *  available quote sources.
 + *
 + *  @param name The internal name for this new quote source.
 + *
 + *  @param supported TRUE if this quote source is supported by F::Q.
 + *  Should only be set by the F::Q startup routine.
 + *
 + *  @return A pointer to the newly created quote source.
 + */
 +gnc_quote_source *gnc_quote_source_add_new(const char * name, gboolean supported);
 +
 +/** Given the internal (gnucash or F::Q) name of a quote source, find
 + *  the data structure identified by this name.
 + *
 + *  @param internal_name The name of this quote source.
 + *
 + *  @return A pointer to the price quote source that has the specified
 + *  internal name.
 + */
 +/*@ dependent @*/
 +gnc_quote_source *gnc_quote_source_lookup_by_internal(const char * internal_name);
 +
 +/** Given the type/index of a quote source, find the data structure
 + *  identified by this pair.
 + *
 + *  @param type The type of this quote source.
 + *
 + *  @param index The index of this quote source within its type.
 + *
 + *  @return A pointer to the price quote source that has the specified
 + *  type/index.
 + */
 +gnc_quote_source *gnc_quote_source_lookup_by_ti(QuoteSourceType type, gint index);
 +
 +/** Given a gnc_quote_source data structure, return the flag that
 + *  indicates whether this particular quote source is supported by
 + *  the user's F::Q installation.
 + *
 + *  @param source The quote source in question.
 + *
 + *  @return TRUE if the user's computer supports this quote source.
 + */
 +gboolean gnc_quote_source_get_supported (const gnc_quote_source *source);
 +
 +/** Given a gnc_quote_source data structure, return the type of this
 + *  particular quote source. (SINGLE, MULTI, UNKNOWN)
 + *
 + *  @param source The quote source in question.
 + *
 + *  @return The type of this quote source.
 + */
 +QuoteSourceType gnc_quote_source_get_type (const gnc_quote_source *source);
 +
 +/** Given a gnc_quote_source data structure, return the index of this
 + *  particular quote source within its type.
 + *
 + *  @param source The quote source in question.
 + *
 + *  @return The index of this quote source in its type.
 + */
 +gint gnc_quote_source_get_index (const gnc_quote_source *source);
 +
 +/** Given a gnc_quote_source data structure, return the user friendly
 + *  name of this quote source.  E.G. "Yahoo Australia" or "Australia
 + *  (Yahoo, ASX, ...)"
 + *
 + *  @param source The quote source in question.
 + *
 + *  @return The user friendly name.
 + */
 +/*@ dependent @*/
 +const char *gnc_quote_source_get_user_name (const gnc_quote_source *source);
 +
 +/** Given a gnc_quote_source data structure, return the internal name
 + *  of this quote source.  This is the name used by both gnucash and
 + *  by Finance::Quote.  E.G. "yahoo_australia" or "australia"
 + *
 + *  @param source The quote source in question.
 + *
 + *  @return The internal name.
 + */
 +/*@ dependent @*/
 +const char *gnc_quote_source_get_internal_name (const gnc_quote_source *source);
 +
 +/** @} */
 +
 +
 +/** @name Commodity Creation
 + @{
 +*/
 +
 +/** Create a new commodity. This function allocates a new commodity
 + *  data structure, populates it with the data provided, and then
 + *  generates the dynamic names that exist as part of a commodity.
 + *
 + *  @note This function does not check to see if the commodity exists
 + *  before adding a new commodity.
 + *
 + *  @param book The book that the new commodity will belong to.
 + *
 + *  @param fullname The complete name of this commodity. E.G. "Acme
 + *  Systems, Inc."
 + *
 + *  @param commodity_namespace An aggregation of commodities. E.G. ISO4217,
 + *  Nasdaq, Downbelow, etc.
 + *
 + *  @param mnemonic An abbreviation for this stock.  For publicly
 + *  traced stocks, this field should contain the stock ticker
 + *  symbol. This field is used to get online price quotes, so it must
 + *  match the stock ticker symbol used by the exchange where you want
 + *  to get automatic stock quote updates.  E.G. ACME, ACME.US, etc.
 + *
 + *  @param cusip A string containing the CUSIP code or similar
 + *  UNIQUE code for this commodity like the ISIN. The stock ticker is
 + *  NOT appropriate as that goes in the mnemonic field.
 + *
 + *  @param fraction The smallest division of this commodity
 + *  allowed. I.E. If this is 1, then the commodity must be traded in
 + *  whole units; if 100 then the commodity may be traded in 0.01
 + *  units, etc.
 + *
 + *  @return A pointer to the new commodity.
 + */
 +/*@ dependent @*/
 +gnc_commodity * gnc_commodity_new(QofBook *book,
 +                                  /*@ null @*/ const char * fullname,
 +                                  /*@ null @*/ const char * commodity_namespace,
 +                                  /*@ null @*/ const char * mnemonic,
 +                                  /*@ null @*/ const char * cusip,
 +                                  int fraction);
 +
 +/** Destroy a commodity.  Release all memory attached to this data structure.
 + *  @note This function does not (can not) check to see if the
 + *  commodity is referenced anywhere.
 + *  @param cm The commodity to destroy.
 + */
 +void  gnc_commodity_destroy(gnc_commodity * cm);
 +
 +/** Copy src into dest */
 +void  gnc_commodity_copy(gnc_commodity * dest, const gnc_commodity *src);
 +
 +/** allocate and copy */
 +gnc_commodity * gnc_commodity_clone(const gnc_commodity *src, QofBook *dest_book);
 +/** @} */
 +
 +
 +
 +/** @name Commodity Accessor Routines - Get
 +@{
 +*/
 +
 +/** Retrieve the mnemonic for the specified commodity.  This will be a
 + *  pointer to a null terminated string of the form "ACME", "QWER",
 + *  etc.
 + *
 + *  @param cm A pointer to a commodity data structure.
 + *
 + *  @return A pointer to the mnemonic for this commodity.  This string
 + *  is owned by the engine and should not be freed by the caller.
 + */
 +const char * gnc_commodity_get_mnemonic(const gnc_commodity * cm);
 +
 +/** Retrieve the namespace for the specified commodity.  This will be
 + *  a pointer to a null terminated string of the form "AMEX",
 + *  "NASDAQ", etc.
 + *
 + *  @param cm A pointer to a commodity data structure.
 + *
 + *  @return A pointer to the namespace for this commodity.  This string
 + *  is owned by the engine and should not be freed by the caller.
 + */
 +const char * gnc_commodity_get_namespace(const gnc_commodity * cm);
 +
 +/** Retrieve the namespace data strucure for the specified commodity.
 + *  This will be a pointer to another data structure.
 + *
 + *  @param cm A pointer to a commodity data structure.
 + *
 + *  @return A pointer to the namespace data structure for this
 + *  commodity.
 + */
 +gnc_commodity_namespace *gnc_commodity_get_namespace_ds(const gnc_commodity * cm);
 +
 +/** Retrieve the full name for the specified commodity.  This will be
 + *  a pointer to a null terminated string of the form "Acme Systems,
 + *  Inc.", etc.
 + *
 + *  @param cm A pointer to a commodity data structure.
 + *
 + *  @return A pointer to the full name for this commodity.  This string
 + *  is owned by the engine and should not be freed by the caller.
 + */
 +const char * gnc_commodity_get_fullname(const gnc_commodity * cm);
 +
 +/** Retrieve the 'print' name for the specified commodity.  This will
 + *  be a pointer to a null terminated string of the form "Acme
 + *  Systems, Inc. (ACME)", etc.
 + *
 + *  @param cm A pointer to a commodity data structure.
 + *
 + *  @return A pointer to the print name for this commodity.  This
 + *  string is owned by the engine and should not be freed by the
 + *  caller.
 + */
 +const char * gnc_commodity_get_printname(const gnc_commodity * cm);
 +
 +/** Retrieve the 'exchange code' for the specified commodity.  This
 + *  will be a pointer to a null terminated string of the form
 + *  "AXQ14728", etc.  This field is often used when presenting
 + *  information to the user.
 + *
 + *  @note This is a unique code that specifies a particular item or
 + *  set of shares of a commodity, not a code that specifies a stock
 + *  exchange.  That is the namespace field.
 + *
 + *  @param cm A pointer to a commodity data structure.
 + *
 + *  @return A pointer to the exchange code for this commodity.  This
 + *  string is owned by the engine and should not be freed by the
 + *  caller.
 + */
 +const char * gnc_commodity_get_cusip(const gnc_commodity * cm);
 +
 +/** Retrieve the 'unique' name for the specified commodity.  This will
 + *  be a pointer to a null terminated string of the form "AMEX::ACME",
 + *  etc.  This field is often used when performing comparisons or
 + *  other functions invisible to the user.
 + *
 + *  @param cm A pointer to a commodity data structure.
 + *
 + *  @return A pointer to the 'unique' name for this commodity.  This
 + *  string is owned by the engine and should not be freed by the
 + *  caller.
 + */
 +const char * gnc_commodity_get_unique_name(const gnc_commodity * cm);
 +
 +/** Retrieve the fraction for the specified commodity.  This will be
 + *  an integer value specifying the number of fractional units that
 + *  one of these commodities can be divided into.  Should always be a
 + *  power of 10.
 + *
 + *  @param cm A pointer to a commodity data structure.
 + *
 + *  @return The number of fractional units that one of these
 + *  commodities can be divided into.
 + */
 +int     gnc_commodity_get_fraction(const gnc_commodity * cm);
 +
 +/** Retrieve the automatic price quote flag for the specified
 + *  commodity.  This flag indicates whether stock quotes should be
 + *  retrieved for the specified stock.
 + *
 + *  @param cm A pointer to a commodity data structure.
 + *
 + *  @return TRUE if quotes should be pulled for this commodity, FALSE
 + *  otherwise.
 + */
 +gboolean    gnc_commodity_get_quote_flag(const gnc_commodity *cm);
 +
 +/** Retrieve the automatic price quote source for the specified
 + *  commodity.  This will be a pointer to a null terminated string of
 + *  the form "Yahoo (Asia)", etc.
 + *
 + *  @param cm A pointer to a commodity data structure.
 + *
 + *  @return A pointer to the price quote source for this commodity.
 + */
 +/*@ dependent @*/
 +gnc_quote_source* gnc_commodity_get_quote_source(const gnc_commodity *cm);
 +/*@ dependent @*/
 +gnc_quote_source* gnc_commodity_get_default_quote_source(const gnc_commodity *cm);
 +
 +/** Retrieve the automatic price quote timezone for the specified
 + *  commodity.  This will be a pointer to a null terminated string of
 + *  the form "America/New_York", etc.
 + *
 + *  @param cm A pointer to a commodity data structure.
 + *
 + *  @return A pointer to the price quote timezone for this commodity.
 + *  This string is owned by the engine and should not be freed by the
 + *  caller.
 + */
 +const char* gnc_commodity_get_quote_tz(const gnc_commodity *cm);
 +
 +/** Retrieve the user-defined symbol for the specified commodity. This
 + *  will be a pointer to a nul terminated string like "£", "US$", etc.
 + *
 + *  @param cm A pointer to a commodity data structure.
 + *
 + *  @return A pointer to the user-defined symbol for this commodity.
 + *  NULL means that the user didn't define any symbol, and that fallback to
 + *  e.g. the mnemonic is in order. This string is owned by the engine and
 + *  should not be freed by the caller.
 + */
 +const char* gnc_commodity_get_user_symbol(const gnc_commodity *cm);
 +
 +/** Retrieve the default symbol for the specified commodity. This will
 + *  be a pointer to a nul terminated string like "£", "US$", etc. Note
 + *  that for the locale currency, you probably want to look at the
 + *  system-provided symbol first. See gnc_commodity_get_nice_symbol.
 + *
 + * @param cm A pointer to a commodity data structure.
 + *
 + * @return A pointer to the default symbol for this commodity.
 + */
 +const char* gnc_commodity_get_default_symbol(const gnc_commodity *cm);
 +
 +/** Retrieve a symbol for the specified commodity, suitable for
 + *  display to the user. This will be a pointer to a nul terminated
 + *  string like "£", "US$", etc. That function is locale-aware and
 + *  will base its choice of symbol on the user-configured symbol,
 + *  the locale a
 + *
 + * @param cm A pointer to a commodity data structure.
 + *
 + * @return A pointer to the symbol for this commodity.
 + */
 +const char*gnc_commodity_get_nice_symbol(const gnc_commodity *cm);
 +/** @} */
 +
 +/** @name Commodity Accessor Routines - Set
 +@{
 +*/
 +
 +/** Set the mnemonic for the specified commodity.  This should be a
 + *  pointer to a null terminated string of the form "ACME", "QWER",
 + *  etc.
 + *
 + *  @param cm A pointer to a commodity data structure.
 + *
 + *  @param mnemonic A pointer to the mnemonic for this commodity.
 + *  This string belongs to the caller and will be duplicated by the
 + *  engine.
 + */
 +void  gnc_commodity_set_mnemonic(gnc_commodity * cm, const char * mnemonic);
 +
 +/** Set the namespace for the specified commodity.  This should be a
 + *  pointer to a null terminated string of the form "AMEX", "NASDAQ",
 + *  etc.
 + *
 + *  @param cm A pointer to a commodity data structure.
 + *
 + *  @param new_namespace A pointer to the namespace for this commodity.
 + *  This string belongs to the caller and will be duplicated by the
 + *  engine.
 + */
 +void  gnc_commodity_set_namespace(gnc_commodity * cm, const char * new_namespace);
 +
 +/** Set the full name for the specified commodity.  This should be
 + *  a pointer to a null terminated string of the form "Acme Systems,
 + *  Inc.", etc.
 + *
 + *  @param cm A pointer to a commodity data structure.
 + *
 + *  @param fullname A pointer to the full name for this commodity.
 + *  This string belongs to the caller and will be duplicated by the
 + *  engine.
 + */
 +void  gnc_commodity_set_fullname(gnc_commodity * cm, const char * fullname);
 +
 +/** Set the 'exchange code' for the specified commodity.  This should
 + *  be a pointer to a null terminated string of the form "AXQ14728",
 + *  etc.
 + *
 + *  @note This is a unique code that specifies a particular item or
 + *  set of shares of a commodity, not a code that specifies a stock
 + *  exchange.  That is the namespace field.
 + *
 + *  @param cm A pointer to a commodity data structure.
 + *
 + *  @param cusip A pointer to the cusip or other exchange specific
 + *  data for this commodity.  This string belongs to the caller and
 + *  will be duplicated by the engine.
 + */
 +void  gnc_commodity_set_cusip(gnc_commodity * cm, const char * cusip);
 +
 +/** Set the fraction for the specified commodity.  This should be
 + *  an integer value specifying the number of fractional units that
 + *  one of these commodities can be divided into.  Should always be a
 + *  power of 10.
 + *
 + *  @param cm A pointer to a commodity data structure.
 + *
 + *  @param smallest_fraction The number of fractional units that one of
 + *  these commodities can be divided into.
 + */
 +void  gnc_commodity_set_fraction(gnc_commodity * cm, int smallest_fraction);
 +
 +/** Set the automatic price quote flag for the specified commodity,
 + *  based on user input. This flag indicates whether stock quotes
 + *  should be retrieved for the specified stock.
 + *
 + *  It is necessary to have a separate function to distinguish when
 + *  this setting is being modified by a user so that the
 + *  auto-enabling/auto-disabling of currencies can be handled
 + *  properly.
 + *
 + *  @param cm A pointer to a commodity data structure.
 + *
 + *  @param flag TRUE if quotes should be pulled for this commodity, FALSE
 + *  otherwise.
 + */
 +void  gnc_commodity_user_set_quote_flag(gnc_commodity *cm,
 +                                        const gboolean flag);
 +
 +/** Set the automatic price quote flag for the specified commodity.
 + *  This flag indicates whether stock quotes should be retrieved for
 + *  the specified stock.
 + *
 + *  @param cm A pointer to a commodity data structure.
 + *
 + *  @param flag TRUE if quotes should be pulled for this commodity, FALSE
 + *  otherwise.
 + */
 +void  gnc_commodity_set_quote_flag(gnc_commodity *cm, const gboolean flag);
 +
 +/** Set the automatic price quote source for the specified commodity.
 + *  This should be a pointer to a null terminated string of the form
 + *  "Yahoo (Asia)", etc.  Legal values can be found in the
 + *  quote_sources array in the file gnc-ui-util.c.
 + *
 + *  @param cm A pointer to a commodity data structure.
 + *
 + *  @param src A pointer to the price quote source for this commodity.
 + */
 +void  gnc_commodity_set_quote_source(gnc_commodity *cm, gnc_quote_source *src);
 +
 +/** Set the automatic price quote timezone for the specified
 + *  commodity.  This should be a pointer to a null terminated string
 + *  of the form "America/New_York", etc.  Legal values can be found in
 + *  the known_timezones array in the file src/gnome-utils/dialog-commodity.c.
 + *
 + *  @param cm A pointer to a commodity data structure.
 + *
 + *  @param tz A pointer to the price quote timezone for this commodity.
 + *  This string belongs to the caller and will be duplicated by the
 + *  engine.
 + */
 +void  gnc_commodity_set_quote_tz(gnc_commodity *cm, const char *tz);
 +
 +/** Set a user-defined symbol for the specified commodity. This should
 + *  be a pointer to a nul terminated string like "£", "US$", etc.
 + *
 + *  @param cm A pointer to a commodity data structure.
 + *
 + *  @param tz A pointer to the symbol for this commodity. This string
 + *  belongs to the caller and will be duplicated by the engine.
 + */
 +void  gnc_commodity_set_user_symbol(gnc_commodity *cm, const char *user_symbol);
 +/** @} */
 +
 +/** @name Commodity Usage Count Adjustment Routines
 +@{
 +*/
 +
 +/** Increment a commodity's internal counter that tracks how many
 + *  accounts are using that commodity.  For currencies, this may have
 + *  the side effect of enabling the commodity's quote flag.
 + *
 + *  @param cm A pointer to a commodity data structure.
 + */
 +void
 +gnc_commodity_increment_usage_count(gnc_commodity *cm);
 +
 +/** Decrement a commodity's internal counter that tracks how many
 + *  accounts are using that commodity.  For currencies, this may have
 + *  the side effect of disabling the commodity's quote flag.
 + *
 + *  @param cm A pointer to a commodity data structure.
 + */
 +void
 +gnc_commodity_decrement_usage_count(gnc_commodity *cm);
 +/** @} */
 +
 +
 +/** @name Commodity Comparison
 + @{
 +*/
 +
 +/** This routine returns TRUE if the two commodities are equivalent.
 + *  Commodities are equivalent if they have the same namespace and
 + *  mnemonic.  Equivalent commodities may belong to different
 + *  exchanges, may have different fullnames, and may have different
 + *  fractions.
 + */
 +gboolean gnc_commodity_equiv(const gnc_commodity * a, const gnc_commodity * b);
 +
 +/** This routine returns TRUE if the two commodities are equal.
 + *  Commodities are equal if they have the same namespace, mnemonic,
 + *  fullname, exchange private code and fraction.
 + */
 +gboolean gnc_commodity_equal(const gnc_commodity * a, const gnc_commodity * b);
 +
 +/** This routine returns 0 if the two commodities are equal, 1 otherwise.
 + *  Commodities are equal if they have the same namespace, mnemonic,
 + *  fullname, exchange private code and fraction.
 + *  This function is useful for list-traversal comparison purposes where
 + *  The semantics are 0, <0, or >0 (equal, greater than, less than) rather
 + *   than "true or false"
 + */
 +int gnc_commodity_compare(const gnc_commodity * a, const gnc_commodity * b);
 +
 +/** A wrapper around gnc_commodity_compare() which offers the function
 + * declaration that is needed for g_list_find_custom(), which needs
 + * void pointers instead of gnc_commodity ones.
 + */
 +int gnc_commodity_compare_void(const void * a, const void * b);
 +/** @} */
 +
 +
 +/** @name Currency Checks
 + @{
 +*/
 +
 +/** Checks to see if the specified commodity namespace is the
 + *  namespace for ISO 4217 currencies.
 + *
 + *  @param commodity_namespace The string to check.
 + *
 + *  @return TRUE if the string indicates an ISO currency, FALSE otherwise. */
 +gboolean gnc_commodity_namespace_is_iso(const char *commodity_namespace);
 +
 +/** Checks to see if the specified commodity is an ISO 4217 recognized currency.
 + *
 + *  @param cm The commodity to check.
 + *
 + *  @return TRUE if the commodity represents a currency, FALSE otherwise. */
 +gboolean gnc_commodity_is_iso(const gnc_commodity * cm);
 +
 +/** Checks to see if the specified commodity is an ISO 4217 recognized
 + * currency or a legacy currency.
 + *
 + *  @param cm The commodity to check.
 + *
 + *  @return TRUE if the commodity represents a currency, FALSE otherwise. */
 +gboolean gnc_commodity_is_currency(const gnc_commodity *cm);
 +
 +/** @} */
 +
 +
 +/* =============================================================== */
 +/** @name Commodity Table
 +@{
 +*/
 +
 +/** Returns the commodity table associated with a book.
 + */
 +/*@ dependent @*/
 +gnc_commodity_table * gnc_commodity_table_get_table(QofBook *book);
 +
 +/** @} */
 +/* ---------------------------------------------------------- */
 +/** @name Commodity Table Lookup functions
 +@{
 +*/
 +gnc_commodity * gnc_commodity_table_lookup(const gnc_commodity_table * table,
 +        const char * commodity_namespace,
 +        const char * mnemonic);
 +gnc_commodity *
 +gnc_commodity_table_lookup_unique(const gnc_commodity_table *table,
 +                                  const char * unique_name);
 +gnc_commodity * gnc_commodity_table_find_full(const gnc_commodity_table * t,
 +        const char * commodity_namespace,
 +        const char * fullname);
 +
 +/*@ dependent @*/
 +gnc_commodity * gnc_commodity_find_commodity_by_guid(const GncGUID *guid,
 +        QofBook *book);
 +
 +/** @} */
 +/* ---------------------------------------------------------- */
 +
 +/** @name Commodity Table Maintenance functions
 + @{
 +*/
 +
 +/** Add a new commodity to the commodity table.  This routine handles
 + *  the cases where the commodity already exists in the database (does
 + *  nothing), or another entries has the same namespace and mnemonic
 + *  (updates the existing entry).
 + *
 + *  @param table A pointer to the commodity table
 + *
 + *  @param comm A pointer to the commodity to add.
 + *
 + *  @return The added commodity. Null on error.
 + *
 + *  @note The commodity pointer passed to this function should not be
 + *  used after its return, as it may have been destroyed.  Use the
 + *  return value which is guaranteed to be valid. */
 +/*@ dependent @*/
 +gnc_commodity * gnc_commodity_table_insert(gnc_commodity_table * table,
 +        gnc_commodity * comm);
 +
 +/** Remove a commodity from the commodity table. If the commodity to
 + *  remove doesn't exist, nothing happens.
 + *
 + *  @param table A pointer to the commodity table
 + *
 + *  @param comm A pointer to the commodity to remove. */
 +void gnc_commodity_table_remove(gnc_commodity_table * table,
 +                                gnc_commodity * comm);
 +
 +/** Add all the standard namespaces and currencies to the commodity
 + *  table.  This routine creates the namespaces for the NYSE, NASDAQ,
 + *  etc.  It also adds all of the ISO 4217 currencies to the commodity
 + *  table.
 + *
 + *  @param table A pointer to the commodity table.
 + *
 + *  @param book Unused. */
 +gboolean gnc_commodity_table_add_default_data(gnc_commodity_table *table, QofBook *book);
 +
 +/** @} */
 +/* ---------------------------------------------------------- */
 +/** @name Commodity Table Namespace functions
 + @{
 +*/
 +
 +/** Return the textual name of a namespace data strucure.
 + *
 + *  @param ns A pointer to the namespace data strucure.
 + *
 + *  @return A pointer to the name of the namespace.  This string is
 + *  owned by the engine and should not be freed by the caller. */
 +const char * gnc_commodity_namespace_get_name (const gnc_commodity_namespace *ns) ;
 +
 +/** Return the textual name of a namespace data strucure in a form suitable to
 + * present to the user.
 + *
 + *  @param ns A pointer to the namespace data strucure.
 + *
 + *  @return A pointer to the gui friendly name of the namespace.  This string is
 + *  owned by the engine and should not be freed by the caller.
 + *
 + *  @notes The returned string is marked for translation, but not translated yet.
 + *  If you want it translated pass the return value on to gettext.
 + */
 +const char * gnc_commodity_namespace_get_gui_name (const gnc_commodity_namespace *ns) ;
 +
 +
 +/** Return a list of all commodity data structures in the specified namespace.
 + *
 + *  @return A pointer to the list of structures.  NULL if an invalid
 + *  argument was supplied.
 + *
 + *  @note This list is owned by the engine.  The caller must not free the list. */
 +GList * gnc_commodity_namespace_get_commodity_list(const gnc_commodity_namespace * ns);
 +
 +
 +/** Test to see if the indicated namespace exits in the commodity table.
 + *
 + *  @param table A pointer to the commodity table
 + *
 + *  @param commodity_namespace The new namespace to check.
 + *
 + *  @return 1 if the namespace exists. 0 if it doesn't exist, or the
 + *  routine was passed a bad argument. */
 +int gnc_commodity_table_has_namespace(const gnc_commodity_table * table,
 +                                      const char * commodity_namespace);
 +
 +/** Return a list of all namespaces in the commodity table.  This
 + *  returns both system and user defined namespaces.
 + *
 + *  @return A pointer to the list of names.  NULL if an invalid
 + *  argument was supplied.
 + *
 + *  @note It is the callers responsibility to free the list. */
 +GList * gnc_commodity_table_get_namespaces(const gnc_commodity_table * t);
 +
 +/** Return a list of all namespace data structures in the commodity table.  This
 + *  returns both system and user defined namespace structures.
 + *
 + *  @return A pointer to the list of structures.  NULL if an invalid
 + *  argument was supplied.
 + *
 + *  @note This list is owned by the engine.  The caller must not free the list. */
 +GList * gnc_commodity_table_get_namespaces_list(const gnc_commodity_table * t);
 +
 +/** This function adds a new string to the list of commodity namespaces.
 + *  If the new namespace already exists, nothing happens.
 + *
 + *  @param table A pointer to the commodity table
 + *
 + *  @param commodity_namespace The new namespace to be added.
 + *
 + *  @param book The book that the new namespace will belong to.
 + *
 + *  @return A pointer to the newly created namespace. */
 +gnc_commodity_namespace * gnc_commodity_table_add_namespace(gnc_commodity_table * table,
 +        const char * commodity_namespace,
 +        QofBook *book);
 +
 +/** This function finds a commodity namespace in the set of existing commodity namespaces.
 + *
 + *  @param table A pointer to the commodity table
 + *
 + *  @param commodity_namespace The new namespace to be added.
 + *
 + *  @return The a pointer to the namespace found, or NULL if the
 + *  namespace doesn't exist. */
 +gnc_commodity_namespace * gnc_commodity_table_find_namespace(const gnc_commodity_table * table,
 +        const char * commodity_namespace);
 +
 +/** This function deletes a string from the list of commodity namespaces.
 + *  If the namespace does not exist, nothing happens.
 + *
 + *  @param table A pointer to the commodity table
 + *
 + *  @param commodity_namespace The namespace to be deleted.
 + *
 + *  @note This routine will destroy any commodities that exist as part
 + *  of this namespace.  Use it carefully. */
 +void      gnc_commodity_table_delete_namespace(gnc_commodity_table * table,
 +        const char * commodity_namespace);
 +/** @} */
 +/* ---------------------------------------------------------- */
 +/** @name Commodity Table Accessor functions
 + @{
 +*/
 +
 +/** Returns the number of commodities in the commodity table.
 + *
 + *  @param tbl A pointer to the commodity table
 + *
 + *  @return The number of commodities in the table. 0 if there are no
 + *  commodities, or the routine was passed a bad argument. */
 +guint gnc_commodity_table_get_size(const gnc_commodity_table* tbl);
 +
 +/** Return a list of all commodities in the commodity table that are
 + *  in the given namespace.
 + *
 + *  @param table A pointer to the commodity table
 + *
 + *  @param commodity_namespace A string indicating which commodities should be
 + *  returned. It is a required argument.
 + *
 + *  @return A pointer to the list of commodities.  NULL if an invalid
 + *  argument was supplied, or the namespace could not be found.
 + *
 + *  @note It is the callers responsibility to free the list. */
 +CommodityList * gnc_commodity_table_get_commodities(
 +    const gnc_commodity_table * table, const char * commodity_namespace);
 +
 +/** This function returns a list of commodities for which price quotes
 + *  should be retrieved.  It will scan the entire commodity table (or
 + *  a subset) and check each commodity to see if the price_quote_flag
 + *  field has been set.  All matching commodities are queued onto a
 + *  list, and the head of that list is returned.  Use the command-line
 + *  given expression as a filter on the commodities to be returned. If
 + *  non-null, only commodities in namespace that match the specified
 + *  regular expression are checked.  If none was given, all
 + *  commodities are checked.
 + *
 + *  @param table A pointer to the commodity table
 + *
 + *  @return A pointer to a list of commodities.  NULL if invalid
 + *  arguments were supplied or if there no commodities are flagged for
 + *  quote retrieval.
 + *
 + *  @note It is the callers responsibility to free the list. */
 +CommodityList * gnc_commodity_table_get_quotable_commodities(
 +    const gnc_commodity_table * table);
 +
 +/** Call a function once for each commodity in the commodity table.
 + *  This table walk returns whenever the end of the table is reached,
 + *  or the function returns FALSE.
 + *
 + *  @param table A pointer to the commodity table
 + *
 + *  @param f The function to call for each commodity.
 + *
 + *  @param user_data A pointer that is passed into the function
 + *  unchanged by the table walk routine. */
 +gboolean gnc_commodity_table_foreach_commodity(const gnc_commodity_table * table,
 +        gboolean (*f)(gnc_commodity *cm,
 +                      gpointer user_data),
 +        gpointer user_data);
 +/** @} */
 +
 +
 +/* ---------------------------------------------------------- */
 +/** @name Commodity Table Private/Internal-Use Only Routines
 + @{
 +*/
 +
 +/** You proably shouldn't be using gnc_commodity_table_new() directly,
 + * its for internal use only. You should probably be using
 + * gnc_commodity_table_get_table()
 + */
 +gnc_commodity_table * gnc_commodity_table_new(void);
 +void          gnc_commodity_table_destroy(gnc_commodity_table * table);
 +
 +/** Given the commodity 'findlike', this routine will find and return the
 + *   equivalent commodity (commodity with the same 'unique name') in
 + *   the indicated book.  This routine is primarily useful for setting
 + *   up clones of things across multiple books.
 + */
 +gnc_commodity * gnc_commodity_obtain_twin (const gnc_commodity *findlike, QofBook *book);
 +
 +/** You should probably not be using gnc_commodity_table_register()
 + * It is an internal routine for registering the gncObject for the
 + * commodity table.
 + */
 +gboolean gnc_commodity_table_register (void);
 +
 +void gnc_commodity_begin_edit (gnc_commodity *cm);
 +void gnc_commodity_commit_edit (gnc_commodity *cm);
 +
 +/** Get the internal KVP from of the currency.
 + * You should rather use the individual accessors for individual properties
 + */
 +#define gnc_commodity_get_kvp_frame(cm) \
 +	qof_instance_get_slots(QOF_INSTANCE(cm))
 +
 +/** @} */
 +
 +/** @name Monetary value, commodity identity and numeric value
 +@{
 +  */
 +struct _gnc_monetary
 +{
 +    gnc_commodity *commodity;
 +    gnc_numeric value;
 +};
 +
 +typedef struct _gnc_monetary gnc_monetary;
 +
 +/* A list of monetary values.  This could be a hash table, but as currently
 +* used it rarely contains more than one or two different commodities so
 +* it doesn't seem worth the trouble.
 +*/
 +typedef GList MonetaryList;
 +
 +/** @name Constructors
 +@{
 +  Make a gnc_monetary from a gnc_commodity and gnc_numeric */
 +static inline
 +gnc_monetary gnc_monetary_create(gnc_commodity *commod, gnc_numeric val)
 +{
 +    gnc_monetary out;
 +    out.commodity = commod;
 +    out.value = val;
 +    return out;
 +}
 +/** @} */
 +
 +/** @name Accessors
 +@{
 +  */
 +static inline
 +gnc_commodity * gnc_monetary_commodity(gnc_monetary a)
 +{
 +    return a.commodity;
 +}
 +
 +static inline
 +gnc_numeric gnc_monetary_value(gnc_monetary a)
 +{
 +    return a.value;
 +}
 +/** @} */
 +
 +/** @name Manipulate MonetaryList lists
 +@{
 +*/
 +
 +/** Add a gnc_monetary to the list */
 +MonetaryList *gnc_monetary_list_add_monetary(MonetaryList *list, gnc_monetary mon);
 +
 +/** Add something to the list given a commodity and value */
 +static inline
 +MonetaryList *gnc_monetary_list_add_value(MonetaryList *list,
 +        gnc_commodity *commod,
 +        gnc_numeric value)
 +{
 +    return gnc_monetary_list_add_monetary(list,
 +                                          gnc_monetary_create(commod, value));
 +}
 +
 +/** Delete all the zero-value entries from a list */
 +MonetaryList *gnc_monetary_list_delete_zeros(MonetaryList *list);
 +
 +/** Free a monetary list and all the items it points to */
 +void gnc_monetary_list_free(MonetaryList *list);
 +/** @} */
 +
 +/** @} */
 +
 +#ifdef __cplusplus
 +} /* extern "C" */
 +#endif
 +
 +#endif /* GNC_COMMODITY_H */
 +/** @} */
 +/** @} */
diff --cc libgnucash/scm/price-quotes.scm
index f644f54,0000000..1b8c0cb
mode 100644,000000..100644
--- a/libgnucash/scm/price-quotes.scm
+++ b/libgnucash/scm/price-quotes.scm
@@@ -1,626 -1,0 +1,626 @@@
 +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
 +;;; price-quotes.scm - manage sub-processes.
 +;;; Copyright 2001 Rob Browning <rlb at cs.utexas.edu>
 +;;;
 +;;; 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, 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
 +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
 +
 +(define-module (gnucash price-quotes))
 +
 +(export gnc:book-add-quotes) ;; called from gnome/dialog-price-edit-db.c
 +(export gnc:price-quotes-install-sources)
 +
 +(use-modules (gnucash main)) ;; FIXME: delete after we finish modularizing.
 +(use-modules (gnucash gnc-module))
 +(use-modules (gnucash core-utils))
 +(use-modules (srfi srfi-1))
 +
 +(gnc:module-load "gnucash/gnome-utils" 0) ;; for gnucash-ui-is-running
 +(gnc:module-load "gnucash/app-utils" 0)
 +
 +(define (item-list->hash! lst hash
 +			  getkey getval
 +			  hashref hashset
 +			  list-duplicates?)
 +  ;; Takes a list of the form (item item item item) and returns a hash
 +  ;; formed by traversing the list, and getting the key and val from
 +  ;; each item using the supplied get-key and get-val functions, and
 +  ;; building a hash table from the result using the given hashref and
 +  ;; hashset functions.  list-duplicates? determines whether or not in
 +  ;; the resulting hash, the value for a given key is a list of all
 +  ;; the values associated with that key in the input or just the
 +  ;; first one encountered.
 +
 +  (define (handle-item item)
 +    (let* ((key (getkey item))
 +	   (val (getval item))
 +	   (existing-val (hashref hash key)))
 +
 +      (if (not list-duplicates?)
 +	  ;; ignore if not first value.
 +	  (if (not existing-val) (hashset hash key val))
 +	  ;; else result is list.
 +	  (if existing-val
 +	      (hashset hash key (cons val existing-val))
 +	      (hashset hash key (list val))))))
 +
 +  (for-each handle-item lst)
 +  hash)
 +
 +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
 +
 +(define gnc:*finance-quote-check*
 +  (string-append (gnc-path-get-bindir) "/gnc-fq-check"))
 +
 +(define (gnc:fq-check-sources)
 +  (let ((program '())
 +        (from-child #f))
 +
 +    (define (start-program)
 +      (if (not (string-null? gnc:*finance-quote-check*))
 +          (set! program (gnc-spawn-process-async
 +                         (list "perl" "-w" gnc:*finance-quote-check*) #t))))
 +
 +    (define (get-sources)
 +      (if (not (null? program))
 +          (let ((results #f))
 +            (set! from-child (fdes->inport (gnc-process-get-fd program 1)))
 +            (catch
 +             #t
 +             (lambda ()
 +               (set! results (read from-child))
 +               (gnc:debug "results: " results)
 +               results)
 +             (lambda (key . args)
 +               key)))))
 +
 +    (define (kill-program)
 +      (if (not (null? program))
 +          (gnc-detach-process program #t)))
 +
 +    (dynamic-wind
 +        start-program
 +        get-sources
 +        kill-program)))
 +
 +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
 +;;
 +;; Finance::Quote based instantaneous quotes -- used by the
 +;; --add-price-quotes command line option, etc.
 +;;
 +;; Note From: Dave Peticolas <dave at krondo.com> Date: Sun, 01 Apr 2001
 +;; Those aren't pricedb functions, those are online quote functions,
 +;; i.e., low-level functions for getting online-quotes and putting
 +;; them into the price db.  Reports should not be using those
 +;; functions, they should be using the price db. See
 +;; src/engine/gnc-pricedb.h
 +
 +(define gnc:*finance-quote-helper*
 +  (string-append (gnc-path-get-bindir) "/gnc-fq-helper"))
 +
 +(define (gnc:fq-get-quotes requests)
 +  ;; requests should be a list where each item is of the form
 +  ;;
 +  ;; (<fq-method> sym sym ...)
 +  ;;
 +  ;; i.e. (alphavantage "RHAT" "LNUX" "IBM")
 +  ;;
 +  ;; for currencies, we have
 +  ;;
 +  ;; (currency "USD" "AUD") for the conversion from USD to AUD,
 +  ;;                        i.e., the price of USD in AUD.
 +  ;;
 +  ;; This function will return #f on catastrophic failure or a list
 +  ;; where, for each element in requests, the output list will contain
 +  ;; a quote-result element. This element will be #f or an error
 +  ;; symbol if the corresponding method call fails, or a list
 +  ;; otherwise. A quote-result list will contain the symbol
 +  ;; representing the item being quoted, followed by an alist
 +  ;; detailing the quote data from gnc-fq-helper.
 +  ;;
 +  ;; Possible error symbols and their meanings are:
 +  ;;   missing-lib    One of the required perl libs is missing
 +  ;;
 +  ;; So for the example method call above, the resulting item in the
 +  ;; output list might look like this:
 +  ;;
 +  ;; (("RHAT" (symbol . "RHAT") (gnc:time-no-zone . "...")
 +  ;;   (last . 6.59375) (currency . "USD"))
 +  ;;  ("LNUX" (symbol . "LNUX") (gnc:time-no-zone . "...")
 +  ;;   (last . 3.5) (currency . "USD"))
 +  ;;  ("IBM" (symbol . "IBM") (gnc:time-no-zone . "...")
 +  ;;   (last . 104.42) (currency . "USD")))
 +  ;;
 +  ;; Also note that any given value in the alist might be
 +  ;; 'failed-conversion if the Finance::Quote result for that field
 +  ;; was unparsable.  See the gnc-fq-helper for more details
 +  ;; about it's output.
 +
 +  (let ((quoter '())
 +        (to-child #f)
 +        (from-child #f))
 +
 +    (define (start-quoter)
 +      (if (not (string-null? gnc:*finance-quote-helper*))
 +          (set! quoter (gnc-spawn-process-async
 +                        (list "perl" "-w" gnc:*finance-quote-helper*) #t))))
 +
 +    (define (get-quotes)
 +      (if (not (null? quoter))
 +          (let ((results #f))
 +            (set! to-child (fdes->outport (gnc-process-get-fd quoter 0)))
 +            (set! from-child (fdes->inport (gnc-process-get-fd quoter 1)))
 +            (map
 +             (lambda (request)
 +               (catch
 +                #t
 +                (lambda ()
 +                  (gnc:debug "handling-request: " request)
 +                  ;; we need to display the first element (the method, so it
 +                  ;; won't be quoted) and then write the rest
 +                  (display #\( to-child)
 +                  (display (car request) to-child)
 +                  (display " " to-child)
 +                  (for-each (lambda (x) (write x to-child)) (cdr request))
 +                  (display #\) to-child)
 +                  (newline to-child)
 +                  (force-output to-child)
 +                  (set! results (read from-child))
 +                  (gnc:debug "results: " results)
 +                  results)
 +                (lambda (key . args)
 +                  key)))
 +             requests))))
 +
 +    (define (kill-quoter)
 +      (if (not (null? quoter))
 +          (gnc-detach-process quoter #t)))
 +
 +    (dynamic-wind
 +        start-quoter
 +        get-quotes
 +        kill-quoter)))
 +
 +(define (gnc:book-add-quotes window book)
 +
 +  (define (book->commodity->fq-call-data book)
 +    ;; Call helper that walks all of the defined commodities to see if
 +    ;; any are marked for quote retrieval.  This function returns a
 +    ;; list of info needed for the relevant Finance::Quote calls, and
 +    ;; a list of the corresponding commodities.  Also perform a bit of
 +    ;; optimization, merging calls for symbols to the same
 +    ;; Finance::Quote method.
 +    ;;
 +    ;; Returns a list of the info needed for a set of calls to
 +    ;; gnc-fq-helper.  Each item will of the list will be of the
 +    ;; form:
 +    ;;
 +    ;; (("alphavantage" (commodity-1 currency-1 tz-1)
 +    ;;           (commodity-2 currency-2 tz-2) ...)
 +    ;;  ("fidelity_direct" (commodity-3 currency-3 tz-3)
 +    ;;                     (commodity-4 currency-4 tz-4) ...)
 +    ;;  ...)
 +
 +    (let* ((ct (gnc-commodity-table-get-table book))
 +	   (big-list
 +	    (gnc-commodity-table-get-quotable-commodities
 +	     ct))
 +	   (commodity-list #f)
 +	   (currency-list (filter
 +			   (lambda (a)
 +                             (and
 +                              (not (gnc-commodity-equiv (cadr a) (caddr a)))
 +                              (not (string=? "XXX" (gnc-commodity-get-mnemonic (cadr a))))
 +                              ))
 +			   (call-with-values
 +                               (lambda () (partition!
 +                                           (lambda (cmd)
 +                                             (not (string=? (car cmd) "currency")))
 +                                           big-list))
 +                             (lambda (a b) (set! commodity-list a) b))))
 +	   (quote-hash (make-hash-table 31)))
 +
 +      (if (and (null? commodity-list) (null? currency-list))
 +	  #f
 +	  (begin
 +
 +	    ;; Now collect symbols going to the same backend.
 +	    (item-list->hash! commodity-list quote-hash car cdr hash-ref hash-set! #t)
 +
 +	    ;; Now translate to just what gnc-fq-helper expects.
 +	    (append
 +	     (hash-fold
 +	      (lambda (key value prior-result)
 +		(cons (cons key value)
 +		      prior-result))
 +	      '()
 +	      quote-hash)
 +	     (map (lambda (cmd) (cons (car cmd) (list (cdr cmd))))
 +		  currency-list))))))
 +
 +  (define (fq-call-data->fq-calls fq-call-data)
 +    ;; take an output element from book->commodity->fq-call-data and
 +    ;; return a list where the gnc_commodities have been converted to
 +    ;; their fq-suitable symbol strings.  i.e. turn the former into
 +    ;; the latter:
 +    ;;
 +    ;; ("alphavantage" (commodity-1 currency-1 tz-1)
 +    ;;          (commodity-2 currency-2 tz-2) ...)
 +    ;;
 +    ;; ("alphavantage" "IBM" "AMD" ...)
 +    ;;
 +
 +    (if (equal? (car fq-call-data) "currency")
 +        (map (lambda (quote-item-info)
 +               (list (car fq-call-data)
 +                     (gnc-commodity-get-mnemonic (car quote-item-info))
 +                     (gnc-commodity-get-mnemonic (cadr quote-item-info))))
 +             (cdr fq-call-data))
 +        (list
 +         (cons (car fq-call-data)
 +               (map
 +                (lambda (quote-item-info)
 +                  (gnc-commodity-get-mnemonic (car quote-item-info)))
 +                (cdr fq-call-data))))))
 +
 +  (define (fq-results->commod-tz-quote-triples fq-call-data fq-results)
 +    ;; Change output of gnc:fq-get-quotes to a list of (commod
 +    ;; timezone quote) triples using the matching commodity items from
 +    ;; fq-call-data.
 +    ;;
 +    ;; This function presumes that fq-call-data is "correct" -- it
 +    ;; contains the correct number of calls, and has the commodity
 +    ;; pointers in all the right places.  If not, then the results of
 +    ;; this function are undefined.
 +    ;;
 +    ;; If there's a catatstrophic error, this function might return
 +    ;; #f.  If there's an error for any given input element, there
 +    ;; will be a pair like this in the output (#f . <commodity>)
 +    ;; indicating the commodity for which the quote failed.
 +    ;;
 +    ;; If this function doesn't return #f, it will return a list with
 +    ;; as many elements as there were commodities in the fq-call-data.
 +    ;;
 +    ;; We might want more sophisticated error handling later, but this
 +    ;; will do for now .
 +    (let ((result-list '()))
 +
 +      (define (process-a-quote call-data call-result)
 +        ;; data -> (commod-1 currency-1 tz-1)
 +        ;; result -> (commod-1-sym . result-alist) or some kind of garbage.
 +        (if (and (list? call-result)
 +                 (not (null? call-result))
 +                 (list? (cdr call-result))
 +                 (every
 +                  (lambda (alist-item)
 +                    (and (pair? alist-item)
 +                         (not (eq? 'failed-conversion (cdr alist-item)))))
 +                  (cdr call-result)))
 +            ;; OK, data is good (as far as we can tell).
 +            (set! result-list
 +                  (cons (list (car call-data)
 +                              (caddr call-data)
 +                              (cdr call-result))
 +                        result-list))
 +            (set! result-list
 +                  (cons (cons #f (car call-data))
 +                        result-list))))
 +
 +      (define (process-call-result-pair call-data call-result)
 +        (if (and (list? call-result)
 +                 (= (length call-data) (+ 1 (length call-result))))
 +
 +            ;; OK, continue.
 +	    (for-each
 +	     (lambda (call-data-item call-result-item)
 +	       (if (and (list? call-result-item) (list? (car call-result-item)))
 +		   (for-each
 +		    (lambda (result-subitem)
 +		      (gnc:debug "call-data-item: " call-data-item)
 +		      (gnc:debug "result-subitem: " result-subitem)
 +		      (process-a-quote call-data-item result-subitem))
 +		    call-result-item)
 +		   (process-a-quote call-data-item call-result-item)))
 +	     (cdr call-data) call-result)
 +
 +            ;; else badly formed result, must assume all garbage.
 +            (for-each
 +             (lambda (call-item)
 +               (set! result-list (cons (cons #f (car call-item)) result-list)))
 +             (cdr call-data))))
 +
 +      (and (list? fq-call-data)
 +           (list? fq-results)
 +           (= (length fq-call-data) (length fq-results))
 +           (begin
 +             (for-each process-call-result-pair
 +                       fq-call-data
 +                       fq-results)
 +             (reverse result-list)))))
 +
 +  (define (timestr->time64 timestr time-zone)
 +    ;; time-zone is ignored currently
 +    (gnc-parse-time-to-time64 timestr "%Y-%m-%d %H:%M:%S"))
 +
 +  (define (commodity-tz-quote-triple->price book c-tz-quote-triple)
 +    ;; return a string like "NASDAQ:CSCO" on error, or a price on
 +    ;; success.  Presume that F::Q currencies are ISO4217 currencies.
 +    (let* ((commodity (first c-tz-quote-triple))
 +           (time-zone (second c-tz-quote-triple))
 +           (quote-data (third c-tz-quote-triple))
 +           (gnc-time (assq-ref quote-data 'gnc:time-no-zone))
 +           (price #f)
 +           (price-type #f)
 +           (currency-str (assq-ref quote-data 'currency))
 +           (commodity-table (gnc-commodity-table-get-table book))
 +           (currency
 +            (and commodity-table
 +                 (string? currency-str)
 +                 (gnc-commodity-table-lookup commodity-table
 +                                             "ISO4217"
 +                                             (string-upcase currency-str))))
 +           (pricedb (gnc-pricedb-get-db book))
 +           (saved-price #f)
 +           (commodity-str (gnc-commodity-get-printname commodity))
 +           )
 +      (if (equal? (gnc-commodity-get-printname currency) commodity-str)
 +          (let* ((symbol (assq-ref quote-data 'symbol))
 +                 (other-curr
 +                  (and commodity-table
 +                       (string? symbol)
 +                       (gnc-commodity-table-lookup commodity-table "ISO4217"
 +                                                   (string-upcase symbol)))))
 +            (set! commodity other-curr))
 +        )
 +      (or-map (lambda (price-sym)
 +                (let ((p (assq-ref quote-data price-sym)))
 +                  (if p
 +                      (begin (set! price p)
 +                             (set! price-type price-sym)
 +                             #t)
 +                      #f)))
 +              '(last nav price))
 +
 +      (set! price-type
 +            (case price-type
 +              ((last) "last")
 +              ((nav) "nav")
 +              ((price) "unknown")
 +              (else #f)))
 +
 +      ;; FIXME: SIGFIGS is not what we want here...
 +      (if price
 +          (set! price
 +                (double-to-gnc-numeric price
 +                                           GNC-DENOM-AUTO
 +                                           (logior (GNC-DENOM-SIGFIGS 9)
 +                                                   GNC-RND-ROUND))))
 +
 +      (if gnc-time
 +          (set! gnc-time (timestr->time64 gnc-time time-zone))
 +          (set! gnc-time (gnc:get-today)))
 +
 +      (if (not (and commodity currency gnc-time price price-type))
 +          (string-append
 +           currency-str ":" (gnc-commodity-get-mnemonic commodity))
 +          (begin
 +            (set! saved-price (gnc-pricedb-lookup-day64 pricedb
 +							commodity currency
 +							gnc-time))
 +            (if (not (null? saved-price))
 +                (begin
 +                  (if (gnc-commodity-equiv (gnc-price-get-currency saved-price)
 +                                           commodity)
 +                      (set! price (gnc-numeric-invert price)))
 +                  (if (>= (gnc-price-get-source saved-price) PRICE-SOURCE-FQ)
 +                      (begin
 +                        (gnc-price-begin-edit saved-price)
 +                        (gnc-price-set-time64 saved-price gnc-time)
 +                        (gnc-price-set-source saved-price PRICE-SOURCE-FQ)
 +                        (gnc-price-set-typestr saved-price price-type)
 +                        (gnc-price-set-value saved-price price)
 +                        (gnc-price-commit-edit saved-price)
 +                        #f)
 +                      #f))
 +                (let ((gnc-price (gnc-price-create book)))
 +                  (if (not gnc-price)
 +                      (string-append
 +                       currency-str ":" (gnc-commodity-get-mnemonic commodity))
 +                      (begin
 +                        (gnc-price-begin-edit gnc-price)
 +                        (gnc-price-set-commodity gnc-price commodity)
 +                        (gnc-price-set-currency gnc-price currency)
 +                        (gnc-price-set-time64 gnc-price gnc-time)
 +                        (gnc-price-set-source gnc-price PRICE-SOURCE-FQ)
 +                        (gnc-price-set-typestr gnc-price price-type)
 +                        (gnc-price-set-value gnc-price price)
 +                        (gnc-price-commit-edit gnc-price)
 +                        gnc-price))))
 +            ))
 +      ))
 +
 +  (define (book-add-prices! book prices)
 +    (let ((pricedb (gnc-pricedb-get-db book)))
 +      (for-each
 +       (lambda (price)
 +         (if price
 +             (begin
 +               (gnc-pricedb-add-price pricedb price)
 +               (gnc-price-unref price)
 +               #f)))
 +       prices)))
 +
 +  ;; FIXME: uses of gnc:warn in here need to be cleaned up.  Right
 +  ;; now, they'll result in funny formatting.
 +
 +  (let* ((fq-call-data (book->commodity->fq-call-data book))
 +         (fq-calls (and fq-call-data
 +                        (apply append
 +                               (map fq-call-data->fq-calls fq-call-data))))
 +         (fq-results (and fq-calls (gnc:fq-get-quotes fq-calls)))
 +         (commod-tz-quote-triples
 +          (and fq-results (list? (car fq-results))
 +               (fq-results->commod-tz-quote-triples fq-call-data fq-results)))
 +         ;; At this point commod-tz-quote-triples will either be #f or a
 +         ;; list of items. Each item will either be (commodity
 +         ;; timezone quote-data) or (#f . problem-commodity)
 +         (problem-syms
 +          (and commod-tz-quote-triples
 +               (filter-map (lambda (cq-pair)
 +                             (if (car cq-pair)
 +                                 #f
 +                                 (string-append
 +                                  (gnc-commodity-get-namespace (cdr cq-pair))
 +                                  ":"
 +                                  (gnc-commodity-get-mnemonic (cdr cq-pair)))))
 +                           commod-tz-quote-triples)))
 +         ;; strip out the "bad" ones from above.
 +         (ok-syms
 +          (and commod-tz-quote-triples
 +               (filter car commod-tz-quote-triples)))
 +         (keep-going? #t))
 +
 +    (cond
 +     ((eq? fq-call-data #f)
 +      (set! keep-going? #f)
 +      (if (gnucash-ui-is-running)
 +          (gnc-error-dialog window (_ "No commodities marked for quote retrieval."))
 +	  (gnc:warn (_ "No commodities marked for quote retrieval."))))
 +     ((eq? fq-results #f)
 +      (set! keep-going? #f)
 +      (if (gnucash-ui-is-running)
 +          (gnc-error-dialog window (_ "Unable to get quotes or diagnose the problem."))
 +	  (gnc:warn (_ "Unable to get quotes or diagnose the problem."))))
 +     ((member 'missing-lib fq-results)
 +      (set! keep-going? #f)
 +      (if (gnucash-ui-is-running)
 +          (gnc-error-dialog window
 +           (_ "You are missing some needed Perl libraries.
 +Run 'gnc-fq-update' as root to install them."))
 +          (gnc:warn (_ "You are missing some needed Perl libraries.
 +Run 'gnc-fq-update' as root to install them.") "\n")))
 +     ((member 'system-error fq-results)
 +      (set! keep-going? #f)
 +      (if (gnucash-ui-is-running)
 +          (gnc-error-dialog window
 +           (_ "There was a system error while retrieving the price quotes."))
 +          (gnc:warn (_ "There was a system error while retrieving the price quotes.") "\n")))
 +     ((not (list? (car fq-results)))
 +      (set! keep-going? #f)
 +      (if (gnucash-ui-is-running)
 +          (gnc-error-dialog window
 +           (_ "There was an unknown error while retrieving the price quotes."))
 +          (gnc:warn (_ "There was an unknown error while retrieving the price quotes.") "\n")))
 +     ((and (not commod-tz-quote-triples) (gnucash-ui-is-running))
 +      (gnc-error-dialog window
 +       (_ "Unable to get quotes or diagnose the problem."))
 +       (set! keep-going? #f))
 +     ((not commod-tz-quote-triples)
 +      (gnc:warn (_ "Unable to get quotes or diagnose the problem."))
 +      (set! keep-going? #f))
 +     ((not (null? problem-syms))
 +      (if (gnucash-ui-is-running)
 +          (if (and ok-syms (not (null? ok-syms)))
 +              (set!
 +               keep-going?
 +               (gnc-verify-dialog window #t
 +                (call-with-output-string
 +                 (lambda (p)
 +                   (display (_ "Unable to retrieve quotes for these items:") p)
 +                   (newline p)
 +                   (display "  " p)
 +                   (display (string-join problem-syms "\n  ") p)
 +                   (newline p)
 +                   (display (_ "Continue using only the good quotes?") p)))))
 +              (begin
 +                (gnc-error-dialog window
 +                 (call-with-output-string
 +                  (lambda (p)
 +                    (display
 +                     (_ "Unable to retrieve quotes for these items:") p)
 +                    (newline p)
 +                    (display "  " p)
 +                    (display (string-join problem-syms "\n  ") p))))
 +                (set! keep-going? #f)))
 +          (gnc:warn
 +           (call-with-output-string
 +            (lambda (p)
 +              (display (_ "Unable to retrieve quotes for these items:") p)
 +              (newline p)
 +              (display "  " p)
 +              (display (string-join problem-syms "\n  ") p)
 +              (newline p)
 +              (display (_ "Continuing with good quotes.") p)
 +              (newline p)))))))
 +
 +    (if
 +     keep-going?
 +     (let ((prices (map (lambda (triple)
 +                          (commodity-tz-quote-triple->price book triple))
 +                        ok-syms)))
 +       (if (any string? prices)
 +           (if (gnucash-ui-is-running)
 +               (set!
 +                keep-going?
 +                (gnc-verify-dialog window #t
 +                 (call-with-output-string
 +                  (lambda (p)
 +                    (display (_ "Unable to create prices for these items:") p)
 +                    (newline p)
 +                    (display "  " p)
 +                    (display (string-join (filter string? prices) "\n  ") p)
 +                    (newline p)
 +                    (display (_ "Add remaining good quotes?") p)))))
 +               (gnc:warn
 +                (call-with-output-string
 +                 (lambda (p)
 +                   (display (_ "Unable to create prices for these items:") p)
 +                   (newline p)
 +                   (display "  " p)
 +                   (display (string-join (filter string? prices) "\n  ") p)
 +                   (newline p)
 +                   (display (_ "Adding remaining good quotes.") p)
 +                   (newline p))))))
 +
 +       (if keep-going?
 +           (book-add-prices! book (filter
 +                                   (lambda (x) (not (string? x)))
 +                                   prices)))))))
 +
 +; (define (get-1-quote exchange . items)
 +;   (let ((cmd (apply list 'fetch exchange items))
 +; 	(quoter (run-sub-process #f
 +; 				 gnc:*finance-quote-helper*
 +; 				 gnc:*finance-quote-helper*)))
 +;     (and quoter
 +; 	 (write cmd (caddr quoter))
 +; 	 (newline (caddr quoter))
 +; 	 (force-output (caddr quoter))
 +; 	 (let ((result (read (cadr quoter))))
 +; 	   (close-input-port (cadr quoter))
 +; 	   (close-output-port (caddr quoter))
 +; 	   result))))
 +
 +(define (gnc:price-quotes-install-sources)
 +  (let ((sources (gnc:fq-check-sources)))
 +    (if (list? sources)
 +	(begin
 +      (format #t "Found Finance::Quote version ~A" (car sources))
 +      (newline)
 +	  (gnc:msg "Found Finance::Quote version " (car sources))
- 	  (gnc-quote-source-set-fq-installed (cdr sources))))))
++	  (gnc-quote-source-set-fq-installed (car sources) (cdr sources))))))

commit adba439b1cc44cea1a806c3d9b020973a21a5f53
Author: Geert Janssens <geert at kobaltwit.be>
Date:   Thu Jan 25 10:09:50 2018 +0100

    Display detected Finance::Quote version in about dialog

diff --git a/src/engine/engine.i b/src/engine/engine.i
index 9001eb6..7c8a1a0 100644
--- a/src/engine/engine.i
+++ b/src/engine/engine.i
@@ -237,7 +237,8 @@ Timespec timespecCanonicalDayTime(Timespec t);
   $1 = g_list_reverse (path);
 }
 
-void gnc_quote_source_set_fq_installed (GList *sources_list);
+void gnc_quote_source_set_fq_installed (const char* version_string,
+                                        GList *sources_list);
 %clear GList *;
 %ignore gnc_quote_source_set_fq_installed;
 %ignore gnc_commodity_table_get_quotable_commodities;
diff --git a/src/engine/gnc-commodity.c b/src/engine/gnc-commodity.c
index a48cb79..7993d14 100644
--- a/src/engine/gnc-commodity.c
+++ b/src/engine/gnc-commodity.c
@@ -142,7 +142,7 @@ struct gnc_new_iso_code
 #define GNC_NEW_ISO_CODES \
         (sizeof(gnc_new_iso_codes) / sizeof(struct gnc_new_iso_code))
 
-static gboolean fq_is_installed = FALSE;
+static char *fq_version = NULL;
 
 struct gnc_quote_source_s
 {
@@ -259,7 +259,20 @@ static GList *new_quote_sources = NULL;
 gboolean
 gnc_quote_source_fq_installed (void)
 {
-    return fq_is_installed;
+    return (fq_version != NULL);
+}
+
+
+/********************************************************************
+ * gnc_quote_source_fq_version
+ *
+ * This function the version of the Finance::Quote module installed
+ * on a user's computer or NULL if no installation is found.
+ ********************************************************************/
+const char*
+gnc_quote_source_fq_version (void)
+{
+    return fq_version;
 }
 
 /********************************************************************
@@ -510,6 +523,7 @@ gnc_quote_source_get_internal_name (const gnc_quote_source *source)
     return source->internal_name;
 }
 
+
 /********************************************************************
  * gnc_quote_source_set_fq_installed
  *
@@ -517,18 +531,27 @@ gnc_quote_source_get_internal_name (const gnc_quote_source *source)
  * installed.
  ********************************************************************/
 void
-gnc_quote_source_set_fq_installed (const GList *sources_list)
+gnc_quote_source_set_fq_installed (const char* version_string,
+                                   const GList *sources_list)
 {
     gnc_quote_source *source;
     char *source_name;
     const GList *node;
 
     ENTER(" ");
-    fq_is_installed = TRUE;
 
     if (!sources_list)
         return;
 
+    if (fq_version)
+    {
+        g_free (fq_version);
+        fq_version = NULL;
+    }
+
+    if (version_string)
+        fq_version = g_strdup (version_string);
+
     for (node = sources_list; node; node = node->next)
     {
         source_name = node->data;
diff --git a/src/engine/gnc-commodity.h b/src/engine/gnc-commodity.h
index 161996e..479366c 100644
--- a/src/engine/gnc-commodity.h
+++ b/src/engine/gnc-commodity.h
@@ -139,13 +139,21 @@ typedef enum
 } QuoteSourceType;
 
 /** This function indicates whether or not the Finance::Quote module
- *  is installed on a users computer.  This includes any other related
+ *  is installed on a user's computer.  This includes any other related
  *  modules that gnucash need to process F::Q information.
  *
  *  @return TRUE is F::Q is installed properly.
  */
 gboolean gnc_quote_source_fq_installed (void);
 
+/** This function returns the version of the Finance::Quote module
+ *  installed on a user's computer. If no proper installation is found
+ *  it will return NULL.
+ *
+ *  @return a version string or NULL
+ */
+const char* gnc_quote_source_fq_version (void);
+
 /** Update gnucash internal tables based on what Finance::Quote
  *  sources are installed.  Sources that have been explicitly coded
  *  into gnucash are marked sensitive/insensitive based upon whether
@@ -155,7 +163,8 @@ gboolean gnc_quote_source_fq_installed (void);
  *  @param sources_list A list of strings containing the source names
  *  as they are known to F::Q.
  */
-void gnc_quote_source_set_fq_installed (const GList *sources_list);
+void gnc_quote_source_set_fq_installed (const char* version_string,
+                                        const GList *sources_list);
 
 /** Return the number of entries for a given type of quote source.
  *
diff --git a/src/gnome-utils/gnc-main-window.c b/src/gnome-utils/gnc-main-window.c
index 347805a..95a3890 100644
--- a/src/gnome-utils/gnc-main-window.c
+++ b/src/gnome-utils/gnc-main-window.c
@@ -4374,7 +4374,7 @@ gnc_main_window_cmd_help_about (GtkAction *action, GncMainWindow *window)
 	gchar **authors = get_file_strsplit("AUTHORS");
 	gchar **documenters = get_file_strsplit("DOCUMENTERS");
 	gchar *license = get_file("LICENSE");
-	gchar *message;
+	gchar *message, *tmp_msg;
 	GdkPixbuf *logo = gnc_gnome_get_gdkpixbuf ("gnucash-icon-48x48.png");
 
 #ifdef GNUCASH_SCM
@@ -4383,17 +4383,20 @@ gnc_main_window_cmd_help_about (GtkAction *action, GncMainWindow *window)
                     2nd %s is the scm type (svn/svk/git/bzr);
                     3rd %s is the scm revision number;
                     4th %s is the build date */
-	message = g_strdup_printf(_("%s\nThis copy was built from %s rev %s on %s."),
+	tmp_msg = g_strdup_printf(_("%s\nThis copy was built from %s rev %s on %s."),
 				  fixed_message, GNUCASH_SCM, GNUCASH_SCM_REV,
 				  GNUCASH_BUILD_DATE);
 #else
     /* Translators: 1st %s is a fixed message, which is translated independently;
                     2nd %s is the scm (svn/svk/git/bzr) revision number;
                     3rd %s is the build date */
-	message = g_strdup_printf(_("%s\nThis copy was built from rev %s on %s."),
+	tmp_msg = g_strdup_printf(_("%s\nThis copy was built from rev %s on %s."),
 				  fixed_message, GNUCASH_SCM_REV,
 				  GNUCASH_BUILD_DATE);
 #endif
+        message = g_strdup_printf ("%s\n\nFinance::Quote: %s", tmp_msg,
+                                   gnc_quote_source_fq_version () ? gnc_quote_source_fq_version () : "-");
+        g_free (tmp_msg);
 	priv->about_dialog = gtk_about_dialog_new ();
 	g_object_set (priv->about_dialog,
 		      "authors", authors,
diff --git a/src/scm/price-quotes.scm b/src/scm/price-quotes.scm
index 8161e83..0008dd8 100644
--- a/src/scm/price-quotes.scm
+++ b/src/scm/price-quotes.scm
@@ -611,4 +611,4 @@ Run 'gnc-fq-update' as root to install them.") "\n")))
       (format #t "Found Finance::Quote version ~A" (car sources))
       (newline)
 	  (gnc:msg "Found Finance::Quote version " (car sources))
-	  (gnc-quote-source-set-fq-installed (cdr sources))))))
+	  (gnc-quote-source-set-fq-installed (car sources) (cdr sources))))))

commit cb2b03963406a7f3d499f099b6dc9daa03ffc7c9
Merge: 45f61a3 75bae0a
Author: fell <frank.h.ellenberger at gmail.com>
Date:   Tue Jan 23 15:43:49 2018 +0100

    Merge remote-tracking branch 'DiMan/update-trans-ru-01' into maint
    
    4677 translated messages, 3 fuzzy translations, 4 untranslated messages.


commit 18094e309ec62d5aba907b43ddf698b2e68b0e34
Author: Di Mang <dimang.freenet at gmail.com>
Date:   Mon Jan 22 23:03:32 2018 +0100

    ru.po (unstable): adaptation to translation in project goffice
    
    Source: https://github.com/GNOME/goffice/blob/master/po/ru.po

diff --git a/po/ru.po b/po/ru.po
index 06cf4bd..a0d681f 100644
--- a/po/ru.po
+++ b/po/ru.po
@@ -27,30 +27,33 @@ msgstr ""
 "X-Generator: Poedit 1.5.4\n"
 "X-Source-Language: C\n"
 
+# For the translation in '../borrowed/goffice/go-charmap-sel.c' see 
+# the GOffice project: https://github.com/GNOME/goffice/blob/master/po/ru.po
+
 #: ../borrowed/goffice/go-charmap-sel.c:70
 msgid "Arabic"
-msgstr "Арабский"
+msgstr "Арабская"
 
 #: ../borrowed/goffice/go-charmap-sel.c:71
 msgid "Baltic"
-msgstr "Прибалтийский"
+msgstr "Балтийская"
 
 #: ../borrowed/goffice/go-charmap-sel.c:72
 msgid "Central European"
-msgstr "Центральноевропейский"
+msgstr "Центральноевропейская"
 
 #: ../borrowed/goffice/go-charmap-sel.c:73
 msgid "Chinese"
-msgstr "Китайский"
+msgstr "Китайская"
 
 #: ../borrowed/goffice/go-charmap-sel.c:74
 #: ../gnucash/gnome-utils/assistant-xml-encoding.c:242
 msgid "Cyrillic"
-msgstr "Кириллица"
+msgstr "Кириллическая"
 
 #: ../borrowed/goffice/go-charmap-sel.c:75
 msgid "Greek"
-msgstr "Греческий"
+msgstr "Греческая"
 
 #: ../borrowed/goffice/go-charmap-sel.c:76
 msgid "Hebrew"
@@ -58,19 +61,19 @@ msgstr "Иврит"
 
 #: ../borrowed/goffice/go-charmap-sel.c:77
 msgid "Indian"
-msgstr "Индийский"
+msgstr "Индийская"
 
 #: ../borrowed/goffice/go-charmap-sel.c:78
 msgid "Japanese"
-msgstr "Японский"
+msgstr "Японская"
 
 #: ../borrowed/goffice/go-charmap-sel.c:79
 msgid "Korean"
-msgstr "Корейский"
+msgstr "Корейская"
 
 #: ../borrowed/goffice/go-charmap-sel.c:80
 msgid "Turkish"
-msgstr "Турецкий"
+msgstr "Турецкая"
 
 #: ../borrowed/goffice/go-charmap-sel.c:81
 #: ../gnucash/gnome-utils/assistant-xml-encoding.c:224
@@ -79,11 +82,11 @@ msgstr "Юникод"
 
 #: ../borrowed/goffice/go-charmap-sel.c:82
 msgid "Vietnamese"
-msgstr "Вьетнамский"
+msgstr "Вьетнамская"
 
 #: ../borrowed/goffice/go-charmap-sel.c:83
 msgid "Western"
-msgstr "Западноевропейский"
+msgstr "Западная"
 
 #: ../borrowed/goffice/go-charmap-sel.c:84
 #: ../gnucash/gnome/gtkbuilder/assistant-loan.glade.h:60
@@ -95,143 +98,143 @@ msgstr "Другое"
 
 #: ../borrowed/goffice/go-charmap-sel.c:115
 msgid "Arabic (IBM-864)"
-msgstr "Арабский (IBM-864)"
+msgstr "Арабская (IBM-864)"
 
 #: ../borrowed/goffice/go-charmap-sel.c:116
 msgid "Arabic (IBM-864-I)"
-msgstr "Арабский (IBM-864-I)"
+msgstr "Арабская (IBM-864-I)"
 
 #: ../borrowed/goffice/go-charmap-sel.c:117
 msgid "Arabic (ISO-8859-6)"
-msgstr "Арабский (ISO-8859-6)"
+msgstr "Арабская (ISO-8859-6)"
 
 #: ../borrowed/goffice/go-charmap-sel.c:118
 msgid "Arabic (ISO-8859-6-E)"
-msgstr "Арабский (ISO-8859-6-E)"
+msgstr "Арабская (ISO-8859-6-E)"
 
 #: ../borrowed/goffice/go-charmap-sel.c:120
 msgid "Arabic (ISO-8859-6-I)"
-msgstr "Арабский (ISO-8859-6-I)"
+msgstr "Арабская (ISO-8859-6-I)"
 
 #: ../borrowed/goffice/go-charmap-sel.c:121
 msgid "Arabic (MacArabic)"
-msgstr "Арабский (MacArabic)"
+msgstr "Арабская (MacArabic)"
 
 #: ../borrowed/goffice/go-charmap-sel.c:122
 msgid "Arabic (Windows-1256)"
-msgstr "Арабский (Windows-1256)"
+msgstr "Арабская (Windows-1256)"
 
 #: ../borrowed/goffice/go-charmap-sel.c:123
 msgid "Armenian (ARMSCII-8)"
-msgstr "Армянский (ARMSCII-8)"
+msgstr "Армянская (ARMSCII-8)"
 
 #: ../borrowed/goffice/go-charmap-sel.c:124
 msgid "Baltic (ISO-8859-13)"
-msgstr "Прибалтийский (ISO-8859-13)"
+msgstr "Балтийская (ISO-8859-13)"
 
 #: ../borrowed/goffice/go-charmap-sel.c:125
 msgid "Baltic (ISO-8859-4)"
-msgstr "Прибалтийский (ISO-8859-4)"
+msgstr "Балтийская (ISO-8859-4)"
 
 #: ../borrowed/goffice/go-charmap-sel.c:126
 msgid "Baltic (Windows-1257)"
-msgstr "Прибалтийский (Windows-1257)"
+msgstr "Балтийская (Windows-1257)"
 
 #: ../borrowed/goffice/go-charmap-sel.c:127
 msgid "Celtic (ISO-8859-14)"
-msgstr "Кельтский (ISO-8859-14)"
+msgstr "Кельтская (ISO-8859-14)"
 
 #: ../borrowed/goffice/go-charmap-sel.c:128
 msgid "Central European (IBM-852)"
-msgstr "Центральноевропейский (IBM-852)"
+msgstr "Центральноевропейская (IBM-852)"
 
 #: ../borrowed/goffice/go-charmap-sel.c:130
 msgid "Central European (ISO-8859-2)"
-msgstr "Центральноевропейский (ISO-8859-2)"
+msgstr "Центральноевропейская (ISO-8859-2)"
 
 #: ../borrowed/goffice/go-charmap-sel.c:132
 msgid "Central European (MacCE)"
-msgstr "Центральноевропейский (MacCE)"
+msgstr "Центральноевропейская (MacCE)"
 
 #: ../borrowed/goffice/go-charmap-sel.c:134
 msgid "Central European (Windows-1250)"
-msgstr "Центральноевропейский (Windows-1250)"
+msgstr "Центральноевропейская (Windows-1250)"
 
 #: ../borrowed/goffice/go-charmap-sel.c:136
 msgid "Chinese Simplified (GB18030)"
-msgstr "Китайский упрощенный (GB18030)"
+msgstr "Китайская упрощённая (GB18030)"
 
 #: ../borrowed/goffice/go-charmap-sel.c:137
 msgid "Chinese Simplified (GB2312)"
-msgstr "Китайский упрощенный (GB2312)"
+msgstr "Китайская упрощённая (GB2312)"
 
 #: ../borrowed/goffice/go-charmap-sel.c:138
 msgid "Chinese Simplified (GBK)"
-msgstr "Китайский упрощенный (GBK)"
+msgstr "Китайская упрощённая (GBK)"
 
 #: ../borrowed/goffice/go-charmap-sel.c:139
 msgid "Chinese Simplified (HZ)"
-msgstr "Китайский упрощенный (HZ)"
+msgstr "Китайская упрощённая (HZ)"
 
 #: ../borrowed/goffice/go-charmap-sel.c:140
 msgid "Chinese Simplified (Windows-936)"
-msgstr "Китайский упрощенный (Windows-936)"
+msgstr "Китайская упрощённая (Windows-936)"
 
 #: ../borrowed/goffice/go-charmap-sel.c:142
 msgid "Chinese Traditional (Big5)"
-msgstr "Китайский традиционный (Big5)"
+msgstr "Китайская традиционная (Big5)"
 
 #: ../borrowed/goffice/go-charmap-sel.c:143
 msgid "Chinese Traditional (Big5-HKSCS)"
-msgstr "Китайский традиционный (Big5-HKSCS)"
+msgstr "Китайская традиционная (Big5-HKSCS)"
 
 #: ../borrowed/goffice/go-charmap-sel.c:145
 msgid "Chinese Traditional (EUC-TW)"
-msgstr "Китайский традиционный (EUC-TW)"
+msgstr "Китайская традиционная (EUC-TW)"
 
 #: ../borrowed/goffice/go-charmap-sel.c:147
 msgid "Croatian (MacCroatian)"
-msgstr "Хорватский (MacCroatian)"
+msgstr "Хорватская (MacCroatian)"
 
 #: ../borrowed/goffice/go-charmap-sel.c:149
 msgid "Cyrillic (IBM-855)"
-msgstr "Кириллица (IBM-855)"
+msgstr "Кириллическая (IBM-855)"
 
 #: ../borrowed/goffice/go-charmap-sel.c:150
 msgid "Cyrillic (ISO-8859-5)"
-msgstr "Кириллица (ISO-8859-5)"
+msgstr "Кириллическая (ISO-8859-5)"
 
 #: ../borrowed/goffice/go-charmap-sel.c:152
 msgid "Cyrillic (ISO-IR-111)"
-msgstr "Кириллица (ISO-IR-111)"
+msgstr "Кириллическая (ISO-IR-111)"
 
 #: ../borrowed/goffice/go-charmap-sel.c:154
 msgid "Cyrillic (KOI8-R)"
-msgstr "Кириллица (KOI8-R)"
+msgstr "Кириллическая (KOI8-R)"
 
 #: ../borrowed/goffice/go-charmap-sel.c:155
 msgid "Cyrillic (MacCyrillic)"
-msgstr "Кириллица (MacCyrillic)"
+msgstr "Кириллическая (MacCyrillic)"
 
 #: ../borrowed/goffice/go-charmap-sel.c:157
 msgid "Cyrillic (Windows-1251)"
-msgstr "Кириллица (Windows-1251)"
+msgstr "Кириллическая (Windows-1251)"
 
 #: ../borrowed/goffice/go-charmap-sel.c:159
 msgid "Russian (CP-866)"
-msgstr "Русский (CP-866)"
+msgstr "Русская (CP-866)"
 
 #: ../borrowed/goffice/go-charmap-sel.c:160
 msgid "Ukrainian (KOI8-U)"
-msgstr "Украинский (KOI8-U)"
+msgstr "Украинская (KOI8-U)"
 
 #: ../borrowed/goffice/go-charmap-sel.c:161
 msgid "Ukrainian (MacUkrainian)"
-msgstr "Украинский (MacUkrainian)"
+msgstr "Украинская (MacUkrainian)"
 
 #: ../borrowed/goffice/go-charmap-sel.c:163
 msgid "English (ASCII)"
-msgstr "Английский (ASCII)"
+msgstr "Английская (ASCII)"
 
 #: ../borrowed/goffice/go-charmap-sel.c:165
 msgid "Farsi (MacFarsi)"
@@ -239,11 +242,11 @@ msgstr "Фарси (MacFarsi)"
 
 #: ../borrowed/goffice/go-charmap-sel.c:166
 msgid "Georgian (GEOSTD8)"
-msgstr "Грузинский (GEOSTD8)"
+msgstr "Грузинская (GEOSTD8)"
 
 #: ../borrowed/goffice/go-charmap-sel.c:167
 msgid "Greek (ISO-8859-7)"
-msgstr "Греческий (ISO-8859-7)"
+msgstr "Греческая (ISO-8859-7)"
 
 #: ../borrowed/goffice/go-charmap-sel.c:168
 msgid "Greek (MacGreek)"
@@ -251,15 +254,13 @@ msgstr "Греческий (MacGreek)"
 
 #: ../borrowed/goffice/go-charmap-sel.c:169
 msgid "Greek (Windows-1253)"
-msgstr "Греческий (Windows-1253)"
+msgstr "Греческая (Windows-1253)"
 
 #: ../borrowed/goffice/go-charmap-sel.c:170
-#, fuzzy
 msgid "Gujarati (MacGujarati)"
 msgstr "Гуджарати (MacGujarati)"
 
 #: ../borrowed/goffice/go-charmap-sel.c:172
-#, fuzzy
 msgid "Gurmukhi (MacGurmukhi)"
 msgstr "Гурмухи (MacGurmukhi)"
 
@@ -289,71 +290,71 @@ msgstr "Хинди (MacDevanagari)"
 
 #: ../borrowed/goffice/go-charmap-sel.c:184
 msgid "Icelandic (MacIcelandic)"
-msgstr "Исландский (MacIcelandic)"
+msgstr "Исландская (MacIcelandic)"
 
 #: ../borrowed/goffice/go-charmap-sel.c:186
 msgid "Japanese (EUC-JP)"
-msgstr "Японский (EUC-JP)"
+msgstr "Японская (EUC-JP)"
 
 #: ../borrowed/goffice/go-charmap-sel.c:187
 msgid "Japanese (ISO-2022-JP)"
-msgstr "Японский (ISO-2022-JP)"
+msgstr "Японская (ISO-2022-JP)"
 
 #: ../borrowed/goffice/go-charmap-sel.c:189
 msgid "Japanese (Shift_JIS)"
-msgstr "Японский (Shift_JIS)"
+msgstr "Японская (Shift_JIS)"
 
 #: ../borrowed/goffice/go-charmap-sel.c:190
 msgid "Korean (EUC-KR)"
-msgstr "Корейский (EUC-KR)"
+msgstr "Корейская (EUC-KR)"
 
 #: ../borrowed/goffice/go-charmap-sel.c:191
 msgid "Korean (ISO-2022-KR)"
-msgstr "Корейский (ISO-2022-KR)"
+msgstr "Корейская (ISO-2022-KR)"
 
 #: ../borrowed/goffice/go-charmap-sel.c:192
 msgid "Korean (JOHAB)"
-msgstr "Корейский (JOHAB)"
+msgstr "Корейская (JOHAB)"
 
 #: ../borrowed/goffice/go-charmap-sel.c:193
 msgid "Korean (UHC)"
-msgstr "Корейский (UHC)"
+msgstr "Корейская (UHC)"
 
 #: ../borrowed/goffice/go-charmap-sel.c:194
 msgid "Nordic (ISO-8859-10)"
-msgstr "Скандинавский (ISO-8859-10)"
+msgstr "Скандинавскaя (ISO-8859-10)"
 
 #: ../borrowed/goffice/go-charmap-sel.c:195
 msgid "Romanian (MacRomanian)"
-msgstr "Румынский (MacRomanian)"
+msgstr "Румынская (MacRomanian)"
 
 #: ../borrowed/goffice/go-charmap-sel.c:197
 msgid "Romanian (ISO-8859-16)"
-msgstr "Румынский (ISO-8859-16)"
+msgstr "Румынская (ISO-8859-16)"
 
 #: ../borrowed/goffice/go-charmap-sel.c:199
 msgid "South European (ISO-8859-3)"
-msgstr "Южноевропейский (ISO-8859-3)"
+msgstr "Южноевропейская (ISO-8859-3)"
 
 #: ../borrowed/goffice/go-charmap-sel.c:201
 msgid "Thai (TIS-620)"
-msgstr "Тайский (TIS-620)"
+msgstr "Тайская (TIS-620)"
 
 #: ../borrowed/goffice/go-charmap-sel.c:202
 msgid "Turkish (IBM-857)"
-msgstr "Турецкий (IBM-857)"
+msgstr "Турецкая (IBM-857)"
 
 #: ../borrowed/goffice/go-charmap-sel.c:203
 msgid "Turkish (ISO-8859-9)"
-msgstr "Турецкий (ISO-8859-9)"
+msgstr "Турецкая (ISO-8859-9)"
 
 #: ../borrowed/goffice/go-charmap-sel.c:204
 msgid "Turkish (MacTurkish)"
-msgstr "Турецкий (MacTurkish)"
+msgstr "Турецкая (MacTurkish)"
 
 #: ../borrowed/goffice/go-charmap-sel.c:206
 msgid "Turkish (Windows-1254)"
-msgstr "Турецкий (Windows-1254)"
+msgstr "Турецкая (Windows-1254)"
 
 #: ../borrowed/goffice/go-charmap-sel.c:208
 msgid "Unicode (UTF-7)"
@@ -381,52 +382,51 @@ msgstr "Юникод (UTF-32LE)"
 
 #: ../borrowed/goffice/go-charmap-sel.c:214
 msgid "User Defined"
-msgstr "Пользовательский"
+msgstr "Определённая пользователем"
 
 #: ../borrowed/goffice/go-charmap-sel.c:215
 msgid "Vietnamese (TCVN)"
-msgstr "Вьетнамский (TCVN)"
+msgstr "Вьетнамская (TCVN)"
 
 #: ../borrowed/goffice/go-charmap-sel.c:217
 msgid "Vietnamese (VISCII)"
-msgstr "Вьетнамский (VISCII)"
+msgstr "Вьетнамская (VISCII)"
 
 #: ../borrowed/goffice/go-charmap-sel.c:218
 msgid "Vietnamese (VPS)"
-msgstr "Вьетнамский (VPS)"
+msgstr "Вьетнамская (VPS)"
 
 #: ../borrowed/goffice/go-charmap-sel.c:219
 msgid "Vietnamese (Windows-1258)"
-msgstr "Вьетнамский (Windows-1258)"
+msgstr "Вьетнамская (Windows-1258)"
 
 #: ../borrowed/goffice/go-charmap-sel.c:221
 msgid "Visual Hebrew (ISO-8859-8)"
-msgstr "Иврит визуальный (ISO-8859-8)"
+msgstr "Визуальный иврит (ISO-8859-8)"
 
 #: ../borrowed/goffice/go-charmap-sel.c:223
 msgid "Western (IBM-850)"
-msgstr "Западноевропейский (IBM-850)"
+msgstr "Западная (IBM-850)"
 
 #: ../borrowed/goffice/go-charmap-sel.c:224
 msgid "Western (ISO-8859-1)"
-msgstr "Западноевропейский (ISO-8859-1)"
+msgstr "Западная (ISO-8859-1)"
 
 #: ../borrowed/goffice/go-charmap-sel.c:225
 msgid "Western (ISO-8859-15)"
-msgstr "Западноевропейский (ISO-8859-15)"
+msgstr "Западная (ISO-8859-15)"
 
 #: ../borrowed/goffice/go-charmap-sel.c:227
 msgid "Western (MacRoman)"
-msgstr "Западноевропейский (MacRoman)"
+msgstr "Западная (MacRoman)"
 
 #: ../borrowed/goffice/go-charmap-sel.c:228
 msgid "Western (Windows-1252)"
-msgstr "Западноевропейский (Windows-1252)"
+msgstr "Западная (Windows-1252)"
 
 #: ../borrowed/goffice/go-charmap-sel.c:441
-#, fuzzy
 msgid "Locale: "
-msgstr "Местоположение:"
+msgstr "Локаль:"
 
 #: ../borrowed/goffice/go-charmap-sel.c:476
 msgid "Conversion Direction"
@@ -434,7 +434,7 @@ msgstr "Направление преобразования"
 
 #: ../borrowed/goffice/go-charmap-sel.c:477
 msgid "This value determines which iconv test to perform."
-msgstr "Это значение определяет, какой iconv-тест выполнить."
+msgstr "Это значение определяет какой тест iconv выполнить."
 
 #: ../borrowed/goffice/go-optionmenu.c:410
 msgid "Menu"

commit d35f8f966c1105e9556798ede744792fa0bd8999
Author: Di Mang <dimang.freenet at gmail.com>
Date:   Mon Jan 22 20:47:32 2018 +0100

    de.po (unstable): add Dmitriy Mangul as translator

diff --git a/po/de.po b/po/de.po
index 533fc49..a80a4d0 100644
--- a/po/de.po
+++ b/po/de.po
@@ -10,6 +10,7 @@
 # Rolf Leggewie, 2008.
 # Mechtilde Stehmann <ooo at mechtilde.de>, 2014-2018.
 # quazgar <quazgar at posteo.de> 2017.
+# Dmitriy Mangul <dimang.freetime at gmail.com>, 2017, 2018
 #
 msgid ""
 msgstr ""

commit 779e72461eb075638d0f51ba209653ad3cce882b
Author: Di Mang <dimang.freenet at gmail.com>
Date:   Mon Jan 22 20:19:41 2018 +0100

    ru.po (unstable): some improvments for translation of frequency words in gnc-frequency.glade

diff --git a/po/ru.po b/po/ru.po
index 7cc984e..06cf4bd 100644
--- a/po/ru.po
+++ b/po/ru.po
@@ -15298,28 +15298,24 @@ msgid "Select occurrence date above."
 msgstr "Выберите дату события выше."
 
 #: ../gnucash/gnome-utils/gtkbuilder/gnc-frequency.glade.h:81
-#, fuzzy
 msgctxt "Daily"
 msgid "Every"
 msgstr "Каждый"
 
 #: ../gnucash/gnome-utils/gtkbuilder/gnc-frequency.glade.h:82
-#, fuzzy
 msgctxt "Daily"
 msgid "days."
-msgstr "дней."
+msgstr "день."
 
 #: ../gnucash/gnome-utils/gtkbuilder/gnc-frequency.glade.h:83
-#, fuzzy
 msgctxt "Weekly"
 msgid "Every"
-msgstr "Каждый"
+msgstr "Каждую"
 
 #: ../gnucash/gnome-utils/gtkbuilder/gnc-frequency.glade.h:84
-#, fuzzy
 msgctxt "Weekly"
 msgid "weeks."
-msgstr "недель."
+msgstr "неделю."
 
 #: ../gnucash/gnome-utils/gtkbuilder/gnc-frequency.glade.h:85
 #: ../gnucash/report/standard-reports/daily-reports.scm:355
@@ -15363,16 +15359,14 @@ msgid "Tuesday"
 msgstr "Вторник"
 
 #: ../gnucash/gnome-utils/gtkbuilder/gnc-frequency.glade.h:93
-#, fuzzy
 msgctxt "Semimonthly"
 msgid "Every"
 msgstr "Каждый"
 
 #: ../gnucash/gnome-utils/gtkbuilder/gnc-frequency.glade.h:94
-#, fuzzy
 msgctxt "Semimonthly"
 msgid "months."
-msgstr "месяцев."
+msgstr "месяц."
 
 #: ../gnucash/gnome-utils/gtkbuilder/gnc-frequency.glade.h:95
 msgid "First on the:"
@@ -15387,16 +15381,14 @@ msgid "then on the:"
 msgstr "затем на:"
 
 #: ../gnucash/gnome-utils/gtkbuilder/gnc-frequency.glade.h:98
-#, fuzzy
 msgctxt "Monthly"
 msgid "Every"
 msgstr "Каждый"
 
 #: ../gnucash/gnome-utils/gtkbuilder/gnc-frequency.glade.h:99
-#, fuzzy
 msgctxt "Monthly"
 msgid "months."
-msgstr "месяцев."
+msgstr "месяц."
 
 #: ../gnucash/gnome-utils/gtkbuilder/gnc-frequency.glade.h:100
 msgid "On the"

commit 75bae0adfa845d465f205f78275313e59570b3d9
Author: Di Mang <dimang.freenet at gmail.com>
Date:   Mon Jan 22 19:57:33 2018 +0100

    ru.po (maint): some improvments for translation of frequency words in gnc-frequency.glade

diff --git a/po/ru.po b/po/ru.po
index f2f697a..dc9ca63 100644
--- a/po/ru.po
+++ b/po/ru.po
@@ -14722,28 +14722,24 @@ msgid "Select occurrence date above."
 msgstr "Выберите дату события выше."
 
 #: ../src/gnome-utils/gtkbuilder/gnc-frequency.glade.h:7
-#, fuzzy
 msgctxt "Daily"
 msgid "Every"
 msgstr "Каждый"
 
 #: ../src/gnome-utils/gtkbuilder/gnc-frequency.glade.h:8
-#, fuzzy
 msgctxt "Daily"
 msgid "days."
-msgstr "дней."
+msgstr "день."
 
 #: ../src/gnome-utils/gtkbuilder/gnc-frequency.glade.h:10
-#, fuzzy
 msgctxt "Weekly"
 msgid "Every"
-msgstr "Каждые"
+msgstr "Каждую"
 
 #: ../src/gnome-utils/gtkbuilder/gnc-frequency.glade.h:11
-#, fuzzy
 msgctxt "Weekly"
 msgid "weeks."
-msgstr "недель."
+msgstr "неделю."
 
 #: ../src/gnome-utils/gtkbuilder/gnc-frequency.glade.h:12
 #: ../src/report/standard-reports/daily-reports.scm:355
@@ -14787,16 +14783,14 @@ msgid "Tuesday"
 msgstr "Вторник"
 
 #: ../src/gnome-utils/gtkbuilder/gnc-frequency.glade.h:21
-#, fuzzy
 msgctxt "Semimonthly"
 msgid "Every"
 msgstr "Каждый"
 
 #: ../src/gnome-utils/gtkbuilder/gnc-frequency.glade.h:22
-#, fuzzy
 msgctxt "Semimonthly"
 msgid "months."
-msgstr "месяцев."
+msgstr "месяц."
 
 #: ../src/gnome-utils/gtkbuilder/gnc-frequency.glade.h:23
 msgid "First on the:"
@@ -14815,16 +14809,14 @@ msgid "Semi-Monthly"
 msgstr "Дважды в месяц"
 
 #: ../src/gnome-utils/gtkbuilder/gnc-frequency.glade.h:27
-#, fuzzy
 msgctxt "Monthly"
 msgid "Every"
 msgstr "Каждый"
 
 #: ../src/gnome-utils/gtkbuilder/gnc-frequency.glade.h:28
-#, fuzzy
 msgctxt "Monthly"
 msgid "months."
-msgstr "месяцев."
+msgstr "месяц."
 
 #: ../src/gnome-utils/gtkbuilder/gnc-frequency.glade.h:29
 msgid "On the"

commit 068975ef097a510f711afcb3ef6bce30c61c3bac
Author: Di Mang <dimang.freenet at gmail.com>
Date:   Sat Jan 20 21:15:43 2018 +0100

    de.po: update german translation
    
    * Transaction Associations Dialog
    * Find Account Dialog
    * About Dialog
    * some other translations

diff --git a/po/de.po b/po/de.po
index ab3eb07..533fc49 100644
--- a/po/de.po
+++ b/po/de.po
@@ -485,6 +485,7 @@ msgstr ""
 msgid "Period %s - %s"
 msgstr "Zeitraum von %s bis %s"
 
+# TODO: check translation
 #: ../gnucash/gnome/assistant-acct-period.c:404
 #, c-format
 msgid ""
@@ -1370,7 +1371,7 @@ msgstr "Platzhalter"
 
 #: ../gnucash/gnome/dialog-find-account.c:321
 msgid "Hidden"
-msgstr "_Versteckt"
+msgstr "Versteckt"
 
 #: ../gnucash/gnome/dialog-find-account.c:332
 msgid "Not Used"
@@ -1378,7 +1379,7 @@ msgstr "Nicht genutzt"
 
 #: ../gnucash/gnome/dialog-find-account.c:343
 msgid "Balance Zero"
-msgstr "Bilanz (Periodenbezogen)"
+msgstr "Bilanz Null"
 
 #: ../gnucash/gnome/dialog-find-account.c:361
 msgid "Search from "
@@ -2863,7 +2864,7 @@ msgstr "Adresse gefunden"
 
 #: ../gnucash/gnome/dialog-trans-assoc.c:217
 msgid "Address Not Found"
-msgstr "adresse nicht gefunden"
+msgstr "Adresse nicht gefunden"
 
 #: ../gnucash/gnome/dialog-trans-assoc.c:276
 #: ../gnucash/gnome/gnc-split-reg.c:1143
@@ -2880,7 +2881,7 @@ msgstr ""
 
 #: ../gnucash/gnome/dialog-trans-assoc.c:432
 msgid "Relative"
-msgstr "_Relativ:"
+msgstr "Relativ"
 
 #: ../gnucash/gnome/dialog-vendor.c:214
 msgid ""
@@ -3167,14 +3168,12 @@ msgid "View and Delete Bayesian and Non Bayesian information"
 msgstr ""
 
 #: ../gnucash/gnome/gnc-plugin-basic-commands.c:216
-#, fuzzy
 msgid "_Transaction Associations"
-msgstr "Buchungsinformationen"
+msgstr "_Buchungsverknüpfungen"
 
 #: ../gnucash/gnome/gnc-plugin-basic-commands.c:217
-#, fuzzy
 msgid "View all Transaction Associations"
-msgstr "Buchungsinformationen"
+msgstr "Alle Transaktionsverknüpfungen zeigen"
 
 #: ../gnucash/gnome/gnc-plugin-basic-commands.c:224
 msgid "_Tips Of The Day"
@@ -5057,7 +5056,6 @@ msgstr ""
 
 #: ../gnucash/gnome/gnc-plugin-register2.c:57
 #: ../gnucash/gnome/gnc-plugin-register.c:58
-#, fuzzy
 msgid "_General Journal"
 msgstr "Hauptbuch Journal"
 
@@ -8349,47 +8347,42 @@ msgid "<b>Period:</b>"
 msgstr "<b>Zeitintervall:</b>"
 
 #: ../gnucash/gnome/gtkbuilder/dialog-find-account.glade.h:1
-#, fuzzy
 msgid "Find Account Dialog"
-msgstr "Kontenlöschung"
+msgstr "Dialog Konto Suchen"
 
 #: ../gnucash/gnome/gtkbuilder/dialog-find-account.glade.h:2
-#, fuzzy
 msgid "Close on Jump"
-msgstr "Buch abschließen"
+msgstr "Schließen beim Springen"
 
 #: ../gnucash/gnome/gtkbuilder/dialog-find-account.glade.h:3
-#, fuzzy
 msgid "_Jump To"
-msgstr "_Gegenbuchung"
+msgstr "S_pringen zu"
 
 #: ../gnucash/gnome/gtkbuilder/dialog-find-account.glade.h:5
-#, fuzzy
 msgid "<b>Search the Account List</b>"
-msgstr "<b>Ha_uptkonto</b>"
+msgstr "<b>Kontenstruktur durchsuchen</b>"
 
 #: ../gnucash/gnome/gtkbuilder/dialog-find-account.glade.h:6
-#, fuzzy
 msgid "Search from Root"
-msgstr "Suchergebnisse"
+msgstr "Suchen von Hauptkonten"
 
 #: ../gnucash/gnome/gtkbuilder/dialog-find-account.glade.h:7
-#, fuzzy
 msgid "Search from Sub Account"
-msgstr "K_onto überprüfen"
+msgstr "Suchen von Unterkonten"
 
 #: ../gnucash/gnome/gtkbuilder/dialog-find-account.glade.h:8
-#, fuzzy
 msgid "Account Full Name"
-msgstr "Kontobezeichnung"
+msgstr "Vollständige Kontobezeichnung"
 
 #: ../gnucash/gnome/gtkbuilder/dialog-find-account.glade.h:9
 msgid "Case insensitive searching is available on 'Account Full Name'."
 msgstr ""
+"Im Feld 'Vollständige Kontobezeichnung' wird ohne Unterscheidung zwischen "
+"Groß- und Kleinschreibung gesucht."
 
 #: ../gnucash/gnome/gtkbuilder/dialog-find-account.glade.h:10
 msgid "_Search"
-msgstr " Suchen "
+msgstr "_Suchen"
 
 #: ../gnucash/gnome/gtkbuilder/dialog-find-account.glade.h:11
 msgid ""
@@ -8397,6 +8390,10 @@ msgid ""
 "Tree,\n"
 "if account should not be shown, this will be temporarily overridden."
 msgstr ""
+"Wählen Sie eine Zeile aus und drücken Sie auf 'Springen zu', um zu einem "
+"Konto in der Kontenstruktur zu springen. \n"
+"Wenn das Konto nicht angezeigt werden soll, wird dies vorübergehend außer "
+"Kraft gesetzt."
 
 #: ../gnucash/gnome/gtkbuilder/dialog-imap-editor.glade.h:1
 msgid "Import Map Editor"
@@ -9467,29 +9464,24 @@ msgid "<b>Copy Number</b>"
 msgstr "<b>Durchschlag-Nummer</b>"
 
 #: ../gnucash/gnome/gtkbuilder/dialog-trans-assoc.glade.h:1
-#, fuzzy
 msgid "Transaction Association Dialog"
-msgstr "Buchungsinformationen"
+msgstr "Dialog Buchungsverknüpfungen"
 
 #: ../gnucash/gnome/gtkbuilder/dialog-trans-assoc.glade.h:2
-#, fuzzy
 msgid "_Sort Association"
-msgstr "Sortieren nach Beschreibung"
+msgstr "Verknüpfungen _sortieren"
 
 #: ../gnucash/gnome/gtkbuilder/dialog-trans-assoc.glade.h:3
-#, fuzzy
 msgid "_Locate Association"
-msgstr "Internetadresse zuordnen"
+msgstr "Verknüpfung _prüfen"
 
 #: ../gnucash/gnome/gtkbuilder/dialog-trans-assoc.glade.h:4
-#, fuzzy
 msgid "All Transaction Associations"
-msgstr "Buchungsinformationen"
+msgstr "Alle Buchungsverknüpfungen"
 
 #: ../gnucash/gnome/gtkbuilder/dialog-trans-assoc.glade.h:7
-#, fuzzy
 msgid "Association"
-msgstr "Internetadresse zuordnen"
+msgstr "Verknüpfung"
 
 #: ../gnucash/gnome/gtkbuilder/dialog-trans-assoc.glade.h:8
 msgid "Available ?"
@@ -9500,6 +9492,8 @@ msgid ""
 "     To jump to the Transaction, double click on the entry in the\n"
 "Description column or Association column to open the Association"
 msgstr ""
+"Um zur Buchung zu springen, klicken Sie doppelt auf den Eintrag in der Spalte \n"
+"'Beschreibung' oder in der Spalte 'Verknüpfung' zum Öffnen der Verknüpfung."
 
 #: ../gnucash/gnome/gtkbuilder/dialog-vendor.glade.h:5
 msgid "Vendor Number: "
@@ -12089,16 +12083,16 @@ msgstr "Buch-Optionen"
 
 #. Translators: %s will be replaced with the current year
 #: ../gnucash/gnome-utils/gnc-main-window.c:4480
-#, fuzzy, c-format
+#, c-format
 msgid "Copyright © 1997-%s The GnuCash contributors."
-msgstr "© 1997-%s Mitwirkende"
+msgstr "© 1997-%s GnuCash-Mitwirkende."
 
 #: ../gnucash/gnome-utils/gnc-main-window.c:4503
 #: ../gnucash/gnome-utils/gnc-main-window.c:4506
 #: ../gnucash/gnome-utils/gnc-splash.c:106
 #: ../gnucash/gnome-utils/gnc-splash.c:109
 msgid "Version"
-msgstr ""
+msgstr "Version"
 
 #: ../gnucash/gnome-utils/gnc-main-window.c:4504
 #: ../gnucash/gnome-utils/gnc-main-window.c:4507
@@ -12106,11 +12100,11 @@ msgstr ""
 #: ../gnucash/gnome-utils/gnc-splash.c:110 ../gnucash/gnucash-bin.c:460
 #: ../gnucash/gnucash-bin.c:463
 msgid "Build ID"
-msgstr ""
+msgstr "Build ID"
 
 #: ../gnucash/gnome-utils/gnc-main-window.c:4512
 msgid "Accounting for personal and small business finance."
-msgstr "- GnuCash, die Finanzverwaltung für Privatanwender und Kleinbetriebe"
+msgstr "Finanzverwaltung für Privatanwender und Kleinbetriebe."
 
 #. Translators: the following string will be shown in Help->About->Credits
 #. * Enter your name or that of your team and an email contact for feedback.
@@ -12122,7 +12116,7 @@ msgstr "Christian Stimming <christian at cstimming.de> et. al."
 
 #: ../gnucash/gnome-utils/gnc-main-window.c:4524
 msgid "Visit the GnuCash website."
-msgstr ""
+msgstr "Besuchen Sie die GnuCash-Website."
 
 #: ../gnucash/gnome-utils/gnc-period-select.c:71
 #: ../libgnucash/app-utils/date-utilities.scm:888
@@ -18495,7 +18489,7 @@ msgstr "I_mport"
 # Fixme: Source
 #: ../gnucash/import-export/customer-import/gnc-plugin-customer-import.c:57
 msgid "Import Customers and Vendors"
-msgstr "Importiert K_unden und Lieferanten"
+msgstr "K_unden und Lieferanten importieren"
 
 # Fixme: Source
 #: ../gnucash/import-export/customer-import/gnc-plugin-customer-import.c:57

commit 938b1acfec154b90b2677c009d67278175327fb6
Author: Di Mang <dimang.freenet at gmail.com>
Date:   Sat Jan 20 21:13:34 2018 +0100

    ru.po: update russian translation for 2.3.7

diff --git a/po/ru.po b/po/ru.po
index 90e68b3..7cc984e 100644
--- a/po/ru.po
+++ b/po/ru.po
@@ -15,7 +15,7 @@ msgstr ""
 "Project-Id-Version: GnuCash 2.7.3\n"
 "Report-Msgid-Bugs-To: \n"
 "POT-Creation-Date: 2018-01-20 13:13+0100\n"
-"PO-Revision-Date: 2017-10-01 04:09+0500\n"
+"PO-Revision-Date: 2018-01-20 13:13+0100\n"
 "Last-Translator: Dmitriy Mangul <dimang.freetime at gmail.com>\n"
 "Language-Team: russian <gnucash-ru at googlegroups.com>\n"
 "Language: ru\n"
@@ -29,20 +29,19 @@ msgstr ""
 
 #: ../borrowed/goffice/go-charmap-sel.c:70
 msgid "Arabic"
-msgstr ""
+msgstr "Арабский"
 
 #: ../borrowed/goffice/go-charmap-sel.c:71
 msgid "Baltic"
-msgstr ""
+msgstr "Прибалтийский"
 
 #: ../borrowed/goffice/go-charmap-sel.c:72
-#, fuzzy
 msgid "Central European"
-msgstr "Европейский"
+msgstr "Центральноевропейский"
 
 #: ../borrowed/goffice/go-charmap-sel.c:73
 msgid "Chinese"
-msgstr ""
+msgstr "Китайский"
 
 #: ../borrowed/goffice/go-charmap-sel.c:74
 #: ../gnucash/gnome-utils/assistant-xml-encoding.c:242
@@ -50,29 +49,28 @@ msgid "Cyrillic"
 msgstr "Кириллица"
 
 #: ../borrowed/goffice/go-charmap-sel.c:75
-#, fuzzy
 msgid "Greek"
-msgstr "Зеленый"
+msgstr "Греческий"
 
 #: ../borrowed/goffice/go-charmap-sel.c:76
 msgid "Hebrew"
-msgstr ""
+msgstr "Иврит"
 
 #: ../borrowed/goffice/go-charmap-sel.c:77
 msgid "Indian"
-msgstr ""
+msgstr "Индийский"
 
 #: ../borrowed/goffice/go-charmap-sel.c:78
 msgid "Japanese"
-msgstr ""
+msgstr "Японский"
 
 #: ../borrowed/goffice/go-charmap-sel.c:79
 msgid "Korean"
-msgstr ""
+msgstr "Корейский"
 
 #: ../borrowed/goffice/go-charmap-sel.c:80
 msgid "Turkish"
-msgstr ""
+msgstr "Турецкий"
 
 #: ../borrowed/goffice/go-charmap-sel.c:81
 #: ../gnucash/gnome-utils/assistant-xml-encoding.c:224
@@ -81,12 +79,11 @@ msgstr "Юникод"
 
 #: ../borrowed/goffice/go-charmap-sel.c:82
 msgid "Vietnamese"
-msgstr ""
+msgstr "Вьетнамский"
 
 #: ../borrowed/goffice/go-charmap-sel.c:83
-#, fuzzy
 msgid "Western"
-msgstr "Журнал"
+msgstr "Западноевропейский"
 
 #: ../borrowed/goffice/go-charmap-sel.c:84
 #: ../gnucash/gnome/gtkbuilder/assistant-loan.glade.h:60
@@ -98,364 +95,354 @@ msgstr "Другое"
 
 #: ../borrowed/goffice/go-charmap-sel.c:115
 msgid "Arabic (IBM-864)"
-msgstr ""
+msgstr "Арабский (IBM-864)"
 
 #: ../borrowed/goffice/go-charmap-sel.c:116
 msgid "Arabic (IBM-864-I)"
-msgstr ""
+msgstr "Арабский (IBM-864-I)"
 
 #: ../borrowed/goffice/go-charmap-sel.c:117
 msgid "Arabic (ISO-8859-6)"
-msgstr ""
+msgstr "Арабский (ISO-8859-6)"
 
 #: ../borrowed/goffice/go-charmap-sel.c:118
 msgid "Arabic (ISO-8859-6-E)"
-msgstr ""
+msgstr "Арабский (ISO-8859-6-E)"
 
 #: ../borrowed/goffice/go-charmap-sel.c:120
 msgid "Arabic (ISO-8859-6-I)"
-msgstr ""
+msgstr "Арабский (ISO-8859-6-I)"
 
 #: ../borrowed/goffice/go-charmap-sel.c:121
 msgid "Arabic (MacArabic)"
-msgstr ""
+msgstr "Арабский (MacArabic)"
 
 #: ../borrowed/goffice/go-charmap-sel.c:122
 msgid "Arabic (Windows-1256)"
-msgstr ""
+msgstr "Арабский (Windows-1256)"
 
 #: ../borrowed/goffice/go-charmap-sel.c:123
 msgid "Armenian (ARMSCII-8)"
-msgstr ""
+msgstr "Армянский (ARMSCII-8)"
 
 #: ../borrowed/goffice/go-charmap-sel.c:124
-#, fuzzy
 msgid "Baltic (ISO-8859-13)"
-msgstr "ISO-8859-13 (Балтийская)"
+msgstr "Прибалтийский (ISO-8859-13)"
 
 #: ../borrowed/goffice/go-charmap-sel.c:125
 msgid "Baltic (ISO-8859-4)"
-msgstr ""
+msgstr "Прибалтийский (ISO-8859-4)"
 
 #: ../borrowed/goffice/go-charmap-sel.c:126
 msgid "Baltic (Windows-1257)"
-msgstr ""
+msgstr "Прибалтийский (Windows-1257)"
 
 #: ../borrowed/goffice/go-charmap-sel.c:127
-#, fuzzy
 msgid "Celtic (ISO-8859-14)"
-msgstr "ISO-8859-14 (Кельтская)"
+msgstr "Кельтский (ISO-8859-14)"
 
 #: ../borrowed/goffice/go-charmap-sel.c:128
 msgid "Central European (IBM-852)"
-msgstr ""
+msgstr "Центральноевропейский (IBM-852)"
 
 #: ../borrowed/goffice/go-charmap-sel.c:130
 msgid "Central European (ISO-8859-2)"
-msgstr ""
+msgstr "Центральноевропейский (ISO-8859-2)"
 
 #: ../borrowed/goffice/go-charmap-sel.c:132
 msgid "Central European (MacCE)"
-msgstr ""
+msgstr "Центральноевропейский (MacCE)"
 
 #: ../borrowed/goffice/go-charmap-sel.c:134
 msgid "Central European (Windows-1250)"
-msgstr ""
+msgstr "Центральноевропейский (Windows-1250)"
 
 #: ../borrowed/goffice/go-charmap-sel.c:136
 msgid "Chinese Simplified (GB18030)"
-msgstr ""
+msgstr "Китайский упрощенный (GB18030)"
 
 #: ../borrowed/goffice/go-charmap-sel.c:137
 msgid "Chinese Simplified (GB2312)"
-msgstr ""
+msgstr "Китайский упрощенный (GB2312)"
 
 #: ../borrowed/goffice/go-charmap-sel.c:138
 msgid "Chinese Simplified (GBK)"
-msgstr ""
+msgstr "Китайский упрощенный (GBK)"
 
 #: ../borrowed/goffice/go-charmap-sel.c:139
 msgid "Chinese Simplified (HZ)"
-msgstr ""
+msgstr "Китайский упрощенный (HZ)"
 
 #: ../borrowed/goffice/go-charmap-sel.c:140
 msgid "Chinese Simplified (Windows-936)"
-msgstr ""
+msgstr "Китайский упрощенный (Windows-936)"
 
 #: ../borrowed/goffice/go-charmap-sel.c:142
 msgid "Chinese Traditional (Big5)"
-msgstr ""
+msgstr "Китайский традиционный (Big5)"
 
 #: ../borrowed/goffice/go-charmap-sel.c:143
 msgid "Chinese Traditional (Big5-HKSCS)"
-msgstr ""
+msgstr "Китайский традиционный (Big5-HKSCS)"
 
 #: ../borrowed/goffice/go-charmap-sel.c:145
 msgid "Chinese Traditional (EUC-TW)"
-msgstr ""
+msgstr "Китайский традиционный (EUC-TW)"
 
 #: ../borrowed/goffice/go-charmap-sel.c:147
 msgid "Croatian (MacCroatian)"
-msgstr ""
+msgstr "Хорватский (MacCroatian)"
 
 #: ../borrowed/goffice/go-charmap-sel.c:149
-#, fuzzy
 msgid "Cyrillic (IBM-855)"
-msgstr "Кириллица"
+msgstr "Кириллица (IBM-855)"
 
 #: ../borrowed/goffice/go-charmap-sel.c:150
 msgid "Cyrillic (ISO-8859-5)"
-msgstr ""
+msgstr "Кириллица (ISO-8859-5)"
 
 #: ../borrowed/goffice/go-charmap-sel.c:152
 msgid "Cyrillic (ISO-IR-111)"
-msgstr ""
+msgstr "Кириллица (ISO-IR-111)"
 
 #: ../borrowed/goffice/go-charmap-sel.c:154
-#, fuzzy
 msgid "Cyrillic (KOI8-R)"
-msgstr "Кириллица"
+msgstr "Кириллица (KOI8-R)"
 
 #: ../borrowed/goffice/go-charmap-sel.c:155
 msgid "Cyrillic (MacCyrillic)"
-msgstr ""
+msgstr "Кириллица (MacCyrillic)"
 
 #: ../borrowed/goffice/go-charmap-sel.c:157
 msgid "Cyrillic (Windows-1251)"
-msgstr ""
+msgstr "Кириллица (Windows-1251)"
 
 #: ../borrowed/goffice/go-charmap-sel.c:159
 msgid "Russian (CP-866)"
-msgstr ""
+msgstr "Русский (CP-866)"
 
 #: ../borrowed/goffice/go-charmap-sel.c:160
 msgid "Ukrainian (KOI8-U)"
-msgstr ""
+msgstr "Украинский (KOI8-U)"
 
 #: ../borrowed/goffice/go-charmap-sel.c:161
-#, fuzzy
 msgid "Ukrainian (MacUkrainian)"
-msgstr "KOI8-U (Украинская)"
+msgstr "Украинский (MacUkrainian)"
 
 #: ../borrowed/goffice/go-charmap-sel.c:163
 msgid "English (ASCII)"
-msgstr ""
+msgstr "Английский (ASCII)"
 
 #: ../borrowed/goffice/go-charmap-sel.c:165
 msgid "Farsi (MacFarsi)"
-msgstr ""
+msgstr "Фарси (MacFarsi)"
 
 #: ../borrowed/goffice/go-charmap-sel.c:166
 msgid "Georgian (GEOSTD8)"
-msgstr ""
+msgstr "Грузинский (GEOSTD8)"
 
 #: ../borrowed/goffice/go-charmap-sel.c:167
-#, fuzzy
 msgid "Greek (ISO-8859-7)"
-msgstr "ISO-8859-7 (Греческая)"
+msgstr "Греческий (ISO-8859-7)"
 
 #: ../borrowed/goffice/go-charmap-sel.c:168
 msgid "Greek (MacGreek)"
-msgstr ""
+msgstr "Греческий (MacGreek)"
 
 #: ../borrowed/goffice/go-charmap-sel.c:169
 msgid "Greek (Windows-1253)"
-msgstr ""
+msgstr "Греческий (Windows-1253)"
 
 #: ../borrowed/goffice/go-charmap-sel.c:170
+#, fuzzy
 msgid "Gujarati (MacGujarati)"
-msgstr ""
+msgstr "Гуджарати (MacGujarati)"
 
 #: ../borrowed/goffice/go-charmap-sel.c:172
+#, fuzzy
 msgid "Gurmukhi (MacGurmukhi)"
-msgstr ""
+msgstr "Гурмухи (MacGurmukhi)"
 
 #: ../borrowed/goffice/go-charmap-sel.c:174
 msgid "Hebrew (IBM-862)"
-msgstr ""
+msgstr "Иврит (IBM-862)"
 
 #: ../borrowed/goffice/go-charmap-sel.c:175
 msgid "Hebrew (ISO-8859-8-E)"
-msgstr ""
+msgstr "Иврит (ISO-8859-8-E)"
 
 #: ../borrowed/goffice/go-charmap-sel.c:177
 msgid "Hebrew (ISO-8859-8-I)"
-msgstr ""
+msgstr "Иврит (ISO-8859-8-I)"
 
 #: ../borrowed/goffice/go-charmap-sel.c:179
 msgid "Hebrew (MacHebrew)"
-msgstr ""
+msgstr "Иврит (MacHebrew)"
 
 #: ../borrowed/goffice/go-charmap-sel.c:180
 msgid "Hebrew (Windows-1255)"
-msgstr ""
+msgstr "Иврит (Windows-1255)"
 
 #: ../borrowed/goffice/go-charmap-sel.c:182
 msgid "Hindi (MacDevanagari)"
-msgstr ""
+msgstr "Хинди (MacDevanagari)"
 
 #: ../borrowed/goffice/go-charmap-sel.c:184
 msgid "Icelandic (MacIcelandic)"
-msgstr ""
+msgstr "Исландский (MacIcelandic)"
 
 #: ../borrowed/goffice/go-charmap-sel.c:186
 msgid "Japanese (EUC-JP)"
-msgstr ""
+msgstr "Японский (EUC-JP)"
 
 #: ../borrowed/goffice/go-charmap-sel.c:187
 msgid "Japanese (ISO-2022-JP)"
-msgstr ""
+msgstr "Японский (ISO-2022-JP)"
 
 #: ../borrowed/goffice/go-charmap-sel.c:189
 msgid "Japanese (Shift_JIS)"
-msgstr ""
+msgstr "Японский (Shift_JIS)"
 
 #: ../borrowed/goffice/go-charmap-sel.c:190
 msgid "Korean (EUC-KR)"
-msgstr ""
+msgstr "Корейский (EUC-KR)"
 
 #: ../borrowed/goffice/go-charmap-sel.c:191
 msgid "Korean (ISO-2022-KR)"
-msgstr ""
+msgstr "Корейский (ISO-2022-KR)"
 
 #: ../borrowed/goffice/go-charmap-sel.c:192
 msgid "Korean (JOHAB)"
-msgstr ""
+msgstr "Корейский (JOHAB)"
 
 #: ../borrowed/goffice/go-charmap-sel.c:193
 msgid "Korean (UHC)"
-msgstr ""
+msgstr "Корейский (UHC)"
 
 #: ../borrowed/goffice/go-charmap-sel.c:194
-#, fuzzy
 msgid "Nordic (ISO-8859-10)"
-msgstr "ISO-8859-10 (Скандинавская)"
+msgstr "Скандинавский (ISO-8859-10)"
 
 #: ../borrowed/goffice/go-charmap-sel.c:195
 msgid "Romanian (MacRomanian)"
-msgstr ""
+msgstr "Румынский (MacRomanian)"
 
 #: ../borrowed/goffice/go-charmap-sel.c:197
 msgid "Romanian (ISO-8859-16)"
-msgstr ""
+msgstr "Румынский (ISO-8859-16)"
 
 #: ../borrowed/goffice/go-charmap-sel.c:199
 msgid "South European (ISO-8859-3)"
-msgstr ""
+msgstr "Южноевропейский (ISO-8859-3)"
 
 #: ../borrowed/goffice/go-charmap-sel.c:201
 msgid "Thai (TIS-620)"
-msgstr ""
+msgstr "Тайский (TIS-620)"
 
 #: ../borrowed/goffice/go-charmap-sel.c:202
 msgid "Turkish (IBM-857)"
-msgstr ""
+msgstr "Турецкий (IBM-857)"
 
 #: ../borrowed/goffice/go-charmap-sel.c:203
 msgid "Turkish (ISO-8859-9)"
-msgstr ""
+msgstr "Турецкий (ISO-8859-9)"
 
 #: ../borrowed/goffice/go-charmap-sel.c:204
 msgid "Turkish (MacTurkish)"
-msgstr ""
+msgstr "Турецкий (MacTurkish)"
 
 #: ../borrowed/goffice/go-charmap-sel.c:206
 msgid "Turkish (Windows-1254)"
-msgstr ""
+msgstr "Турецкий (Windows-1254)"
 
 #: ../borrowed/goffice/go-charmap-sel.c:208
-#, fuzzy
 msgid "Unicode (UTF-7)"
-msgstr "Юникод"
+msgstr "Юникод (UTF-7)"
 
 #: ../borrowed/goffice/go-charmap-sel.c:209
-#, fuzzy
 msgid "Unicode (UTF-8)"
-msgstr "Юникод"
+msgstr "Юникод (UTF-8)"
 
 #: ../borrowed/goffice/go-charmap-sel.c:210
 msgid "Unicode (UTF-16BE)"
-msgstr ""
+msgstr "Юникод (UTF-16BE)"
 
 #: ../borrowed/goffice/go-charmap-sel.c:211
 msgid "Unicode (UTF-16LE)"
-msgstr ""
+msgstr "Юникод (UTF-16LE)"
 
 #: ../borrowed/goffice/go-charmap-sel.c:212
 msgid "Unicode (UTF-32BE)"
-msgstr ""
+msgstr "Юникод (UTF-32BE)"
 
 #: ../borrowed/goffice/go-charmap-sel.c:213
 msgid "Unicode (UTF-32LE)"
-msgstr ""
+msgstr "Юникод (UTF-32LE)"
 
 #: ../borrowed/goffice/go-charmap-sel.c:214
-#, fuzzy
 msgid "User Defined"
-msgstr "Имя пользователя"
+msgstr "Пользовательский"
 
 #: ../borrowed/goffice/go-charmap-sel.c:215
 msgid "Vietnamese (TCVN)"
-msgstr ""
+msgstr "Вьетнамский (TCVN)"
 
 #: ../borrowed/goffice/go-charmap-sel.c:217
 msgid "Vietnamese (VISCII)"
-msgstr ""
+msgstr "Вьетнамский (VISCII)"
 
 #: ../borrowed/goffice/go-charmap-sel.c:218
 msgid "Vietnamese (VPS)"
-msgstr ""
+msgstr "Вьетнамский (VPS)"
 
 #: ../borrowed/goffice/go-charmap-sel.c:219
 msgid "Vietnamese (Windows-1258)"
-msgstr ""
+msgstr "Вьетнамский (Windows-1258)"
 
 #: ../borrowed/goffice/go-charmap-sel.c:221
 msgid "Visual Hebrew (ISO-8859-8)"
-msgstr ""
+msgstr "Иврит визуальный (ISO-8859-8)"
 
 #: ../borrowed/goffice/go-charmap-sel.c:223
 msgid "Western (IBM-850)"
-msgstr ""
+msgstr "Западноевропейский (IBM-850)"
 
 #: ../borrowed/goffice/go-charmap-sel.c:224
 msgid "Western (ISO-8859-1)"
-msgstr ""
+msgstr "Западноевропейский (ISO-8859-1)"
 
 #: ../borrowed/goffice/go-charmap-sel.c:225
 msgid "Western (ISO-8859-15)"
-msgstr ""
+msgstr "Западноевропейский (ISO-8859-15)"
 
 #: ../borrowed/goffice/go-charmap-sel.c:227
 msgid "Western (MacRoman)"
-msgstr ""
+msgstr "Западноевропейский (MacRoman)"
 
 #: ../borrowed/goffice/go-charmap-sel.c:228
 msgid "Western (Windows-1252)"
-msgstr ""
+msgstr "Западноевропейский (Windows-1252)"
 
 #: ../borrowed/goffice/go-charmap-sel.c:441
 #, fuzzy
 msgid "Locale: "
-msgstr "_Местный:"
+msgstr "Местоположение:"
 
 #: ../borrowed/goffice/go-charmap-sel.c:476
-#, fuzzy
 msgid "Conversion Direction"
-msgstr "Преобразование завершено"
+msgstr "Направление преобразования"
 
 #: ../borrowed/goffice/go-charmap-sel.c:477
 msgid "This value determines which iconv test to perform."
-msgstr ""
+msgstr "Это значение определяет, какой iconv-тест выполнить."
 
 #: ../borrowed/goffice/go-optionmenu.c:410
 msgid "Menu"
-msgstr ""
+msgstr "Меню"
 
 #: ../borrowed/goffice/go-optionmenu.c:410
-#, fuzzy
 msgid "The menu of options"
-msgstr "Числовой параметр: %s."
+msgstr "Меню опций"
 
 #: ../gnucash/gnome/assistant-acct-period.c:190
 msgid "The book was closed successfully."
@@ -477,12 +464,10 @@ msgstr[0] ""
 "ранее выборе, эта книга будет поделена на %d книгу."
 msgstr[1] ""
 "Самая ранняя проводка, найденная в книге, была %s. Основываясь на сделанном "
-"ранее выборе, эта книга будет поделена на %d книги. Нажмите \"Далее\" для "
-"запуска закрытия самой ранней книги."
+"ранее выборе, эта книга будет поделена на %d книги."
 msgstr[2] ""
 "Самая ранняя проводка, найденная в книге, была %s. Основываясь на сделанном "
-"ранее выборе, эта книга будет поделена на %d книг. Нажмите \"Далее\" для "
-"запуска закрытия самой ранней книги."
+"ранее выборе, эта книга будет поделена на %d книг."
 
 #: ../gnucash/gnome/assistant-acct-period.c:369
 #, c-format
@@ -1384,27 +1369,22 @@ msgid "The number of payments cannot be negative."
 msgstr "Число платежей не может быть отрицательным."
 
 #: ../gnucash/gnome/dialog-find-account.c:310
-#, fuzzy
 msgid "Place Holder"
 msgstr "Виртуальный"
 
 #: ../gnucash/gnome/dialog-find-account.c:321
-#, fuzzy
 msgid "Hidden"
-msgstr "С_крытый"
+msgstr "Скрытый"
 
 #: ../gnucash/gnome/dialog-find-account.c:332
-#, fuzzy
 msgid "Not Used"
-msgstr "Не запланировано"
+msgstr "Не используется"
 
 #: ../gnucash/gnome/dialog-find-account.c:343
-#, fuzzy
 msgid "Balance Zero"
-msgstr "Остатки (период)"
+msgstr "Нулевой баланс"
 
 #: ../gnucash/gnome/dialog-find-account.c:361
-#, fuzzy
 msgid "Search from "
 msgstr " Поиск "
 
@@ -2855,28 +2835,24 @@ msgstr "Форма"
 
 #: ../gnucash/gnome/dialog-trans-assoc.c:203
 msgid "File Found"
-msgstr ""
+msgstr "Документ найден"
 
 #: ../gnucash/gnome/dialog-trans-assoc.c:205
-#, fuzzy
 msgid "File Not Found"
-msgstr "Не найдено"
+msgstr "Документ не найден"
 
 #: ../gnucash/gnome/dialog-trans-assoc.c:215
-#, fuzzy
 msgid "Address Found"
-msgstr "Телефон адреса"
+msgstr "Адрес найден"
 
 #: ../gnucash/gnome/dialog-trans-assoc.c:217
-#, fuzzy
 msgid "Address Not Found"
-msgstr "Телефон адреса"
+msgstr "Адрес не найден"
 
 #: ../gnucash/gnome/dialog-trans-assoc.c:276
 #: ../gnucash/gnome/gnc-split-reg.c:1143
-#, fuzzy
 msgid "This transaction is not associated with a valid URI."
-msgstr "С этой проводкой не связана ссылка."
+msgstr "Этой проводке не привязан действительный адрес URI."
 
 #: ../gnucash/gnome/dialog-trans-assoc.c:418
 msgid "Path head for files is, "
@@ -2887,9 +2863,8 @@ msgid "Path head does not exist, "
 msgstr ""
 
 #: ../gnucash/gnome/dialog-trans-assoc.c:432
-#, fuzzy
 msgid "Relative"
-msgstr "_Относительно:"
+msgstr "Относительно"
 
 #: ../gnucash/gnome/dialog-vendor.c:214
 msgid ""
@@ -3135,7 +3110,6 @@ msgid "Archive old data using accounting periods"
 msgstr "Архивировать старые данные используя отчетные периоды"
 
 #: ../gnucash/gnome/gnc-plugin-basic-commands.c:191
-#, fuzzy
 msgid "_Price Database"
 msgstr "База данных цен"
 
@@ -3177,14 +3151,12 @@ msgid "View and Delete Bayesian and Non Bayesian information"
 msgstr ""
 
 #: ../gnucash/gnome/gnc-plugin-basic-commands.c:216
-#, fuzzy
 msgid "_Transaction Associations"
-msgstr "Информация о проводке"
+msgstr "_Документы проводок"
 
 #: ../gnucash/gnome/gnc-plugin-basic-commands.c:217
-#, fuzzy
 msgid "View all Transaction Associations"
-msgstr "Информация о проводке"
+msgstr "Просмотр всех документов проводок"
 
 #: ../gnucash/gnome/gnc-plugin-basic-commands.c:224
 msgid "_Tips Of The Day"
@@ -3625,9 +3597,8 @@ msgstr "Удалить выбранный счёт"
 #: ../gnucash/gnome/gnc-plugin-page-account-tree.c:233
 #: ../gnucash/gnome/gnc-plugin-page-register2.c:248
 #: ../gnucash/gnome/gnc-plugin-page-register.c:256
-#, fuzzy
 msgid "F_ind Account"
-msgstr "_Изменить счет"
+msgstr "_Найти счёт"
 
 #: ../gnucash/gnome/gnc-plugin-page-account-tree.c:229
 #: ../gnucash/gnome/gnc-plugin-page-account-tree.c:234
@@ -5042,7 +5013,6 @@ msgstr "Вы действительно хотите удалить эту за
 
 #: ../gnucash/gnome/gnc-plugin-register2.c:57
 #: ../gnucash/gnome/gnc-plugin-register.c:58
-#, fuzzy
 msgid "_General Journal"
 msgstr "Основной журнал"
 
@@ -7681,7 +7651,7 @@ msgstr "Извещать о счетах-платежах к оплате"
 
 #: ../gnucash/gnome/gtkbuilder/business-prefs.glade.h:12
 msgid "Whether to display the list of Bills Due at startup."
-msgstr "Показывать ли список счетов-платежей к оплате при запуске."
+msgstr "Показывать список счетов-платежей к оплате при запуске."
 
 #: ../gnucash/gnome/gtkbuilder/business-prefs.glade.h:13
 msgid "<b>Bills</b>"
@@ -7750,14 +7720,12 @@ msgid "Pro_cess payments on posting"
 msgstr "Автоматически _оплачивать при вводе"
 
 #: ../gnucash/gnome/gtkbuilder/business-prefs.glade.h:31
-#, fuzzy
 msgid "Not_ify when due"
-msgstr "Извещать о счетах-платежах к оплате"
+msgstr "Извещать о счетах-фактурах к оплате"
 
 #: ../gnucash/gnome/gtkbuilder/business-prefs.glade.h:32
-#, fuzzy
 msgid "Whether to display the list of Invoices Due at startup."
-msgstr "Показывать ли список счетов-платежей к оплате при запуске."
+msgstr "Показывать ли список счетов-фактурах к оплате при запуске."
 
 #: ../gnucash/gnome/gtkbuilder/dialog-billterms.glade.h:1
 msgid "Due Days: "
@@ -8313,48 +8281,41 @@ msgid "<b>Period:</b>"
 msgstr "<b>Период:</b>"
 
 #: ../gnucash/gnome/gtkbuilder/dialog-find-account.glade.h:1
-#, fuzzy
 msgid "Find Account Dialog"
-msgstr "Удаление счета"
+msgstr "Диалог поиска счетов"
 
 #: ../gnucash/gnome/gtkbuilder/dialog-find-account.glade.h:2
-#, fuzzy
 msgid "Close on Jump"
-msgstr "Закрыть книгу"
+msgstr "Закрыть при переходе"
 
 #: ../gnucash/gnome/gtkbuilder/dialog-find-account.glade.h:3
-#, fuzzy
 msgid "_Jump To"
 msgstr "П_ерейти"
 
 #: ../gnucash/gnome/gtkbuilder/dialog-find-account.glade.h:5
-#, fuzzy
 msgid "<b>Search the Account List</b>"
-msgstr "<b>Родительский счет</b>"
+msgstr "<b>Поиск в списке счетов</b>"
 
 #: ../gnucash/gnome/gtkbuilder/dialog-find-account.glade.h:6
-#, fuzzy
 msgid "Search from Root"
-msgstr "Результаты поиска"
+msgstr "Поиск с родительских счетов"
 
 #: ../gnucash/gnome/gtkbuilder/dialog-find-account.glade.h:7
-#, fuzzy
 msgid "Search from Sub Account"
-msgstr "Аннулировать _счет"
+msgstr "Поиск с субсчетов"
 
 #: ../gnucash/gnome/gtkbuilder/dialog-find-account.glade.h:8
-#, fuzzy
 msgid "Account Full Name"
-msgstr "Название счёта"
+msgstr "Полное название счёта"
 
 #: ../gnucash/gnome/gtkbuilder/dialog-find-account.glade.h:9
 msgid "Case insensitive searching is available on 'Account Full Name'."
 msgstr ""
+"Поиск в поле 'Полное название счёта' не чувствителен к регистру букв."
 
 #: ../gnucash/gnome/gtkbuilder/dialog-find-account.glade.h:10
-#, fuzzy
 msgid "_Search"
-msgstr " Поиск "
+msgstr "_Поиск"
 
 #: ../gnucash/gnome/gtkbuilder/dialog-find-account.glade.h:11
 msgid ""
@@ -8362,10 +8323,12 @@ msgid ""
 "Tree,\n"
 "if account should not be shown, this will be temporarily overridden."
 msgstr ""
+"Выберите строку, а затем нажмите 'Перейти', чтобы перейти к счёту в дереве \n"
+"счетов. Если счёт является скрытым, то это будет временно отменено."
 
 #: ../gnucash/gnome/gtkbuilder/dialog-imap-editor.glade.h:1
 msgid "Import Map Editor"
-msgstr ""
+msgstr "Редактор карты-импорта"
 
 #: ../gnucash/gnome/gtkbuilder/dialog-imap-editor.glade.h:4
 msgid "<b>What type of information to display?</b>"
@@ -8376,9 +8339,8 @@ msgid "Non-Bayesian"
 msgstr ""
 
 #: ../gnucash/gnome/gtkbuilder/dialog-imap-editor.glade.h:7
-#, fuzzy
 msgid "Online ID"
-msgstr "Онлайн"
+msgstr "Онлайн ID"
 
 #: ../gnucash/gnome/gtkbuilder/dialog-imap-editor.glade.h:8
 #, fuzzy
@@ -8416,12 +8378,12 @@ msgstr "_Файл"
 
 #: ../gnucash/gnome/gtkbuilder/dialog-imap-editor.glade.h:15
 msgid "_Expand All"
-msgstr ""
+msgstr "Развернуть всё"
 
 #: ../gnucash/gnome/gtkbuilder/dialog-imap-editor.glade.h:16
 #, fuzzy
 msgid "_Collapse All"
-msgstr "Очистить все"
+msgstr "Свернуть всё"
 
 #: ../gnucash/gnome/gtkbuilder/dialog-imap-editor.glade.h:17
 msgid ""
@@ -9442,40 +9404,36 @@ msgid "<b>Copy Number</b>"
 msgstr "<b>Номер копии</b>"
 
 #: ../gnucash/gnome/gtkbuilder/dialog-trans-assoc.glade.h:1
-#, fuzzy
 msgid "Transaction Association Dialog"
-msgstr "Информация о проводке"
+msgstr "Диалог 'Документы проводок'"
 
 #: ../gnucash/gnome/gtkbuilder/dialog-trans-assoc.glade.h:2
-#, fuzzy
 msgid "_Sort Association"
-msgstr "Упорядочить по описанию"
+msgstr "Отсортировать документы"
 
 #: ../gnucash/gnome/gtkbuilder/dialog-trans-assoc.glade.h:3
-#, fuzzy
 msgid "_Locate Association"
-msgstr "Привязать ссылку"
+msgstr "Проверить документ"
 
 #: ../gnucash/gnome/gtkbuilder/dialog-trans-assoc.glade.h:4
-#, fuzzy
 msgid "All Transaction Associations"
-msgstr "Информация о проводке"
+msgstr "Все документы проводок"
 
 #: ../gnucash/gnome/gtkbuilder/dialog-trans-assoc.glade.h:7
-#, fuzzy
 msgid "Association"
-msgstr "Привязать ссылку"
+msgstr "Документ"
 
 #: ../gnucash/gnome/gtkbuilder/dialog-trans-assoc.glade.h:8
-#, fuzzy
 msgid "Available ?"
-msgstr "Оплачиваемо?"
+msgstr "Доступен ?"
 
 #: ../gnucash/gnome/gtkbuilder/dialog-trans-assoc.glade.h:9
 msgid ""
 "     To jump to the Transaction, double click on the entry in the\n"
 "Description column or Association column to open the Association"
 msgstr ""
+"Для перехода к проводке, дважды щелкните по полю 'Описание' или по полю "
+"'Документ', чтобы открыть Документ."
 
 #: ../gnucash/gnome/gtkbuilder/dialog-vendor.glade.h:5
 msgid "Vendor Number: "
@@ -11639,7 +11597,7 @@ msgstr ""
 
 #: ../gnucash/gnome-utils/gnc-file.c:789
 msgid "_Open Read-Only"
-msgstr "Открыть только для _чтения"
+msgstr "Открыть для _чтения"
 
 #: ../gnucash/gnome-utils/gnc-file.c:791
 msgid "_Create New File"
@@ -11989,7 +11947,6 @@ msgid "Unsaved Book"
 msgstr "Несохранённая книга"
 
 #: ../gnucash/gnome-utils/gnc-main-window.c:1658
-#, fuzzy
 msgid "Last modified on %a, %b %d, %Y at %I:%M %p"
 msgstr "Последнее изменение в %a, %b %e, %Y %I:%M%P"
 
@@ -12014,16 +11971,16 @@ msgstr "Настройки книги"
 
 #. Translators: %s will be replaced with the current year
 #: ../gnucash/gnome-utils/gnc-main-window.c:4480
-#, fuzzy, c-format
+#, c-format
 msgid "Copyright © 1997-%s The GnuCash contributors."
-msgstr "© 1997-%s Участники"
+msgstr "© 1997-%s GnuCash-разработчики."
 
 #: ../gnucash/gnome-utils/gnc-main-window.c:4503
 #: ../gnucash/gnome-utils/gnc-main-window.c:4506
 #: ../gnucash/gnome-utils/gnc-splash.c:106
 #: ../gnucash/gnome-utils/gnc-splash.c:109
 msgid "Version"
-msgstr ""
+msgstr "Версия"
 
 #: ../gnucash/gnome-utils/gnc-main-window.c:4504
 #: ../gnucash/gnome-utils/gnc-main-window.c:4507
@@ -12031,12 +11988,11 @@ msgstr ""
 #: ../gnucash/gnome-utils/gnc-splash.c:110 ../gnucash/gnucash-bin.c:460
 #: ../gnucash/gnucash-bin.c:463
 msgid "Build ID"
-msgstr ""
+msgstr "ID сборки"
 
 #: ../gnucash/gnome-utils/gnc-main-window.c:4512
-#, fuzzy
 msgid "Accounting for personal and small business finance."
-msgstr "- GnuCash управление финансами для частных лиц и малого бизнеса"
+msgstr "Управление финансами для частных лиц и малого бизнеса."
 
 #. Translators: the following string will be shown in Help->About->Credits
 #. * Enter your name or that of your team and an email contact for feedback.
@@ -12055,7 +12011,7 @@ msgstr ""
 
 #: ../gnucash/gnome-utils/gnc-main-window.c:4524
 msgid "Visit the GnuCash website."
-msgstr ""
+msgstr "Перейти на веб-страницу GnuCash."
 
 #: ../gnucash/gnome-utils/gnc-period-select.c:71
 #: ../libgnucash/app-utils/date-utilities.scm:888

commit d284aa3758ebde5792f635d8ed5052b7624efab1
Author: Di Mang <dimang.freenet at gmail.com>
Date:   Sat Jan 20 15:20:31 2018 +0100

    unstable: ru.po - update to new gnucash.pot file

diff --git a/po/ru.po b/po/ru.po
index d258486..90e68b3 100644
--- a/po/ru.po
+++ b/po/ru.po
@@ -9,12 +9,12 @@
 # Sergey Belyashov <Sergey.Belyashov at gmail.com>, 2009, 2011.
 # Dmitry Pavlov  <zeldigas at gmail.com>, 2014.
 # ashed <craysy at gmail.com>, 2017
-# Dmitriy Mangul <dimang.freetime at gmail.com>, 2017
+# Dmitriy Mangul <dimang.freetime at gmail.com>, 2017, 2018
 msgid ""
 msgstr ""
-"Project-Id-Version: GnuCash 2.6.18\n"
+"Project-Id-Version: GnuCash 2.7.3\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2018-01-13 20:39+0100\n"
+"POT-Creation-Date: 2018-01-20 13:13+0100\n"
 "PO-Revision-Date: 2017-10-01 04:09+0500\n"
 "Last-Translator: Dmitriy Mangul <dimang.freetime at gmail.com>\n"
 "Language-Team: russian <gnucash-ru at googlegroups.com>\n"
@@ -29,19 +29,20 @@ msgstr ""
 
 #: ../borrowed/goffice/go-charmap-sel.c:70
 msgid "Arabic"
-msgstr "Арабская"
+msgstr ""
 
 #: ../borrowed/goffice/go-charmap-sel.c:71
 msgid "Baltic"
-msgstr "Балтийская"
+msgstr ""
 
 #: ../borrowed/goffice/go-charmap-sel.c:72
+#, fuzzy
 msgid "Central European"
-msgstr "Центральноевропейская"
+msgstr "Европейский"
 
 #: ../borrowed/goffice/go-charmap-sel.c:73
 msgid "Chinese"
-msgstr "Китайская"
+msgstr ""
 
 #: ../borrowed/goffice/go-charmap-sel.c:74
 #: ../gnucash/gnome-utils/assistant-xml-encoding.c:242
@@ -49,28 +50,29 @@ msgid "Cyrillic"
 msgstr "Кириллица"
 
 #: ../borrowed/goffice/go-charmap-sel.c:75
+#, fuzzy
 msgid "Greek"
-msgstr "Греческая"
+msgstr "Зеленый"
 
 #: ../borrowed/goffice/go-charmap-sel.c:76
 msgid "Hebrew"
-msgstr "Иврит"
+msgstr ""
 
 #: ../borrowed/goffice/go-charmap-sel.c:77
 msgid "Indian"
-msgstr "Индийская"
+msgstr ""
 
 #: ../borrowed/goffice/go-charmap-sel.c:78
 msgid "Japanese"
-msgstr "Японская"
+msgstr ""
 
 #: ../borrowed/goffice/go-charmap-sel.c:79
 msgid "Korean"
-msgstr "Корейская"
+msgstr ""
 
 #: ../borrowed/goffice/go-charmap-sel.c:80
 msgid "Turkish"
-msgstr "Турецкая"
+msgstr ""
 
 #: ../borrowed/goffice/go-charmap-sel.c:81
 #: ../gnucash/gnome-utils/assistant-xml-encoding.c:224
@@ -79,243 +81,250 @@ msgstr "Юникод"
 
 #: ../borrowed/goffice/go-charmap-sel.c:82
 msgid "Vietnamese"
-msgstr "Вьетнамская"
+msgstr ""
 
 #: ../borrowed/goffice/go-charmap-sel.c:83
+#, fuzzy
 msgid "Western"
-msgstr "Западная"
+msgstr "Журнал"
 
 #: ../borrowed/goffice/go-charmap-sel.c:84
 #: ../gnucash/gnome/gtkbuilder/assistant-loan.glade.h:60
 #: ../gnucash/gnome-utils/gtkbuilder/dialog-account.glade.h:27
 #: ../gnucash/report/standard-reports/account-piecharts.scm:533
-#: ../gnucash/report/standard-reports/category-barchart.scm:597
+#: ../gnucash/report/standard-reports/category-barchart.scm:591
 msgid "Other"
 msgstr "Другое"
 
 #: ../borrowed/goffice/go-charmap-sel.c:115
 msgid "Arabic (IBM-864)"
-msgstr "Арабская (IBM-864)"
+msgstr ""
 
 #: ../borrowed/goffice/go-charmap-sel.c:116
 msgid "Arabic (IBM-864-I)"
-msgstr "Арабская (IBM-864-I)"
+msgstr ""
 
 #: ../borrowed/goffice/go-charmap-sel.c:117
 msgid "Arabic (ISO-8859-6)"
-msgstr "Арабская (ISO-8859-6)"
+msgstr ""
 
 #: ../borrowed/goffice/go-charmap-sel.c:118
 msgid "Arabic (ISO-8859-6-E)"
-msgstr "Арабская (ISO-8859-6-E)"
+msgstr ""
 
 #: ../borrowed/goffice/go-charmap-sel.c:120
 msgid "Arabic (ISO-8859-6-I)"
-msgstr "Арабская (ISO-8859-6-I)"
+msgstr ""
 
 #: ../borrowed/goffice/go-charmap-sel.c:121
 msgid "Arabic (MacArabic)"
-msgstr "Арабская (MacArabic)"
+msgstr ""
 
 #: ../borrowed/goffice/go-charmap-sel.c:122
 msgid "Arabic (Windows-1256)"
-msgstr "Арабская (Windows-1256)"
+msgstr ""
 
 #: ../borrowed/goffice/go-charmap-sel.c:123
 msgid "Armenian (ARMSCII-8)"
-msgstr "Армянская (ARMSCII-8)"
+msgstr ""
 
 #: ../borrowed/goffice/go-charmap-sel.c:124
+#, fuzzy
 msgid "Baltic (ISO-8859-13)"
-msgstr "Балтийская (ISO-8859-13)"
+msgstr "ISO-8859-13 (Балтийская)"
 
 #: ../borrowed/goffice/go-charmap-sel.c:125
 msgid "Baltic (ISO-8859-4)"
-msgstr "Балтийская (ISO-8859-4)"
+msgstr ""
 
 #: ../borrowed/goffice/go-charmap-sel.c:126
 msgid "Baltic (Windows-1257)"
-msgstr "Балтийская (Windows-1257)"
+msgstr ""
 
 #: ../borrowed/goffice/go-charmap-sel.c:127
+#, fuzzy
 msgid "Celtic (ISO-8859-14)"
-msgstr "Кельтская (ISO-8859-14)"
+msgstr "ISO-8859-14 (Кельтская)"
 
 #: ../borrowed/goffice/go-charmap-sel.c:128
 msgid "Central European (IBM-852)"
-msgstr "Центральноевропейская (IBM-852)"
+msgstr ""
 
 #: ../borrowed/goffice/go-charmap-sel.c:130
 msgid "Central European (ISO-8859-2)"
-msgstr "Центральноевропейская (ISO-8859-2)"
+msgstr ""
 
 #: ../borrowed/goffice/go-charmap-sel.c:132
 msgid "Central European (MacCE)"
-msgstr "Центральноевропейская (MacCE)"
+msgstr ""
 
 #: ../borrowed/goffice/go-charmap-sel.c:134
 msgid "Central European (Windows-1250)"
-msgstr "Центральноевропейская (Windows-1250)"
+msgstr ""
 
 #: ../borrowed/goffice/go-charmap-sel.c:136
 msgid "Chinese Simplified (GB18030)"
-msgstr "Китайская упрощённая (GB18030)"
+msgstr ""
 
 #: ../borrowed/goffice/go-charmap-sel.c:137
 msgid "Chinese Simplified (GB2312)"
-msgstr "Китайская упрощённая (GB2312)"
+msgstr ""
 
 #: ../borrowed/goffice/go-charmap-sel.c:138
 msgid "Chinese Simplified (GBK)"
-msgstr "Китайская упрощённая (GBK)"
+msgstr ""
 
 #: ../borrowed/goffice/go-charmap-sel.c:139
 msgid "Chinese Simplified (HZ)"
-msgstr "Китайская упрощённая (HZ)"
+msgstr ""
 
 #: ../borrowed/goffice/go-charmap-sel.c:140
 msgid "Chinese Simplified (Windows-936)"
-msgstr "Китайская упрощённая (Windows-936)"
+msgstr ""
 
 #: ../borrowed/goffice/go-charmap-sel.c:142
 msgid "Chinese Traditional (Big5)"
-msgstr "Китайская традиционная (Big5)"
+msgstr ""
 
 #: ../borrowed/goffice/go-charmap-sel.c:143
 msgid "Chinese Traditional (Big5-HKSCS)"
-msgstr "Китайская традиционная (Big5-HKSCS)"
+msgstr ""
 
 #: ../borrowed/goffice/go-charmap-sel.c:145
 msgid "Chinese Traditional (EUC-TW)"
-msgstr "Китайская традиционная (EUC-TW)"
+msgstr ""
 
 #: ../borrowed/goffice/go-charmap-sel.c:147
 msgid "Croatian (MacCroatian)"
-msgstr "Хорватская (MacCroatian)"
+msgstr ""
 
 #: ../borrowed/goffice/go-charmap-sel.c:149
+#, fuzzy
 msgid "Cyrillic (IBM-855)"
-msgstr "Кириллическая (IBM-855)"
+msgstr "Кириллица"
 
 #: ../borrowed/goffice/go-charmap-sel.c:150
 msgid "Cyrillic (ISO-8859-5)"
-msgstr "Кириллическая (ISO-8859-5)"
+msgstr ""
 
 #: ../borrowed/goffice/go-charmap-sel.c:152
 msgid "Cyrillic (ISO-IR-111)"
-msgstr "Кириллическая (ISO-IR-111)"
+msgstr ""
 
 #: ../borrowed/goffice/go-charmap-sel.c:154
+#, fuzzy
 msgid "Cyrillic (KOI8-R)"
-msgstr "Кириллическая (KOI8-R)"
+msgstr "Кириллица"
 
 #: ../borrowed/goffice/go-charmap-sel.c:155
 msgid "Cyrillic (MacCyrillic)"
-msgstr "Кириллическая (MacCyrillic)"
+msgstr ""
 
 #: ../borrowed/goffice/go-charmap-sel.c:157
 msgid "Cyrillic (Windows-1251)"
-msgstr "Кириллическая (Windows-1251)"
+msgstr ""
 
 #: ../borrowed/goffice/go-charmap-sel.c:159
 msgid "Russian (CP-866)"
-msgstr "Русская (CP-866)"
+msgstr ""
 
 #: ../borrowed/goffice/go-charmap-sel.c:160
 msgid "Ukrainian (KOI8-U)"
-msgstr "Украинская (KOI8-U)"
+msgstr ""
 
 #: ../borrowed/goffice/go-charmap-sel.c:161
+#, fuzzy
 msgid "Ukrainian (MacUkrainian)"
-msgstr "Украинская (MacUkrainian)"
+msgstr "KOI8-U (Украинская)"
 
 #: ../borrowed/goffice/go-charmap-sel.c:163
 msgid "English (ASCII)"
-msgstr "Английская (ASCII)"
+msgstr ""
 
 #: ../borrowed/goffice/go-charmap-sel.c:165
 msgid "Farsi (MacFarsi)"
-msgstr "Фарси (MacFarsi)"
+msgstr ""
 
 #: ../borrowed/goffice/go-charmap-sel.c:166
 msgid "Georgian (GEOSTD8)"
-msgstr "Грузинская (GEOSTD8)"
+msgstr ""
 
 #: ../borrowed/goffice/go-charmap-sel.c:167
+#, fuzzy
 msgid "Greek (ISO-8859-7)"
-msgstr "Греческая (ISO-8859-7)"
+msgstr "ISO-8859-7 (Греческая)"
 
 #: ../borrowed/goffice/go-charmap-sel.c:168
 msgid "Greek (MacGreek)"
-msgstr "Греческая (MacGreek)"
+msgstr ""
 
 #: ../borrowed/goffice/go-charmap-sel.c:169
 msgid "Greek (Windows-1253)"
-msgstr "Греческая (Windows-1253)"
+msgstr ""
 
 #: ../borrowed/goffice/go-charmap-sel.c:170
 msgid "Gujarati (MacGujarati)"
-msgstr "Гуджарати (MacGujarati)"
+msgstr ""
 
 #: ../borrowed/goffice/go-charmap-sel.c:172
 msgid "Gurmukhi (MacGurmukhi)"
-msgstr "Гурмухи (MacGurmukhi)"
+msgstr ""
 
 #: ../borrowed/goffice/go-charmap-sel.c:174
 msgid "Hebrew (IBM-862)"
-msgstr "Иврит (IBM-862)"
+msgstr ""
 
 #: ../borrowed/goffice/go-charmap-sel.c:175
 msgid "Hebrew (ISO-8859-8-E)"
-msgstr "Иврит (ISO-8859-8-E)"
+msgstr ""
 
 #: ../borrowed/goffice/go-charmap-sel.c:177
 msgid "Hebrew (ISO-8859-8-I)"
-msgstr "Иврит (ISO-8859-8-I)"
+msgstr ""
 
 #: ../borrowed/goffice/go-charmap-sel.c:179
 msgid "Hebrew (MacHebrew)"
-msgstr "Иврит (MacHebrew)"
+msgstr ""
 
 #: ../borrowed/goffice/go-charmap-sel.c:180
 msgid "Hebrew (Windows-1255)"
-msgstr "Иврит (Windows-1255)"
+msgstr ""
 
 #: ../borrowed/goffice/go-charmap-sel.c:182
 msgid "Hindi (MacDevanagari)"
-msgstr "Хинди (MacDevanagari)"
+msgstr ""
 
 #: ../borrowed/goffice/go-charmap-sel.c:184
 msgid "Icelandic (MacIcelandic)"
-msgstr "Исландская (MacIcelandic)"
+msgstr ""
 
 #: ../borrowed/goffice/go-charmap-sel.c:186
 msgid "Japanese (EUC-JP)"
-msgstr "Японская (EUC-JP)"
+msgstr ""
 
 #: ../borrowed/goffice/go-charmap-sel.c:187
 msgid "Japanese (ISO-2022-JP)"
-msgstr "Японская (ISO-2022-JP)"
+msgstr ""
 
 #: ../borrowed/goffice/go-charmap-sel.c:189
 msgid "Japanese (Shift_JIS)"
-msgstr "Японская (Shift_JIS)"
+msgstr ""
 
 #: ../borrowed/goffice/go-charmap-sel.c:190
 msgid "Korean (EUC-KR)"
-msgstr "Корейская (EUC-KR)"
+msgstr ""
 
 #: ../borrowed/goffice/go-charmap-sel.c:191
 msgid "Korean (ISO-2022-KR)"
-msgstr "Корейская (ISO-2022-KR)"
+msgstr ""
 
 #: ../borrowed/goffice/go-charmap-sel.c:192
 msgid "Korean (JOHAB)"
-msgstr "Корейская (JOHAB)"
+msgstr ""
 
 #: ../borrowed/goffice/go-charmap-sel.c:193
 msgid "Korean (UHC)"
-msgstr "Корейская (UHC)"
+msgstr ""
 
 #: ../borrowed/goffice/go-charmap-sel.c:194
 #, fuzzy
@@ -324,123 +333,129 @@ msgstr "ISO-8859-10 (Скандинавская)"
 
 #: ../borrowed/goffice/go-charmap-sel.c:195
 msgid "Romanian (MacRomanian)"
-msgstr "Румынская (MacRomanian)"
+msgstr ""
 
 #: ../borrowed/goffice/go-charmap-sel.c:197
 msgid "Romanian (ISO-8859-16)"
-msgstr "Румынская (ISO-8859-16)"
+msgstr ""
 
 #: ../borrowed/goffice/go-charmap-sel.c:199
 msgid "South European (ISO-8859-3)"
-msgstr "Южноевропейская (ISO-8859-3)"
+msgstr ""
 
 #: ../borrowed/goffice/go-charmap-sel.c:201
 msgid "Thai (TIS-620)"
-msgstr "Тайская (TIS-620)"
+msgstr ""
 
 #: ../borrowed/goffice/go-charmap-sel.c:202
 msgid "Turkish (IBM-857)"
-msgstr "Турецкая (IBM-857)"
+msgstr ""
 
 #: ../borrowed/goffice/go-charmap-sel.c:203
 msgid "Turkish (ISO-8859-9)"
-msgstr "Турецкая (ISO-8859-9)"
+msgstr ""
 
 #: ../borrowed/goffice/go-charmap-sel.c:204
 msgid "Turkish (MacTurkish)"
-msgstr "Турецкая (MacTurkish)"
+msgstr ""
 
 #: ../borrowed/goffice/go-charmap-sel.c:206
 msgid "Turkish (Windows-1254)"
-msgstr "Турецкая (Windows-1254)"
+msgstr ""
 
 #: ../borrowed/goffice/go-charmap-sel.c:208
+#, fuzzy
 msgid "Unicode (UTF-7)"
-msgstr "Юникод (UTF-7)"
+msgstr "Юникод"
 
 #: ../borrowed/goffice/go-charmap-sel.c:209
+#, fuzzy
 msgid "Unicode (UTF-8)"
-msgstr "Юникод (UTF-8)"
+msgstr "Юникод"
 
 #: ../borrowed/goffice/go-charmap-sel.c:210
 msgid "Unicode (UTF-16BE)"
-msgstr "Юникод (UTF-16BE)"
+msgstr ""
 
 #: ../borrowed/goffice/go-charmap-sel.c:211
 msgid "Unicode (UTF-16LE)"
-msgstr "Юникод (UTF-16LE)"
+msgstr ""
 
 #: ../borrowed/goffice/go-charmap-sel.c:212
 msgid "Unicode (UTF-32BE)"
-msgstr "Юникод (UTF-32BE)"
+msgstr ""
 
 #: ../borrowed/goffice/go-charmap-sel.c:213
 msgid "Unicode (UTF-32LE)"
-msgstr "Юникод (UTF-32LE)"
+msgstr ""
 
 #: ../borrowed/goffice/go-charmap-sel.c:214
+#, fuzzy
 msgid "User Defined"
-msgstr "Определённая пользователем"
+msgstr "Имя пользователя"
 
 #: ../borrowed/goffice/go-charmap-sel.c:215
 msgid "Vietnamese (TCVN)"
-msgstr "Вьетнамская (TCVN)"
+msgstr ""
 
 #: ../borrowed/goffice/go-charmap-sel.c:217
 msgid "Vietnamese (VISCII)"
-msgstr "Вьетнамская (VISCII)"
+msgstr ""
 
 #: ../borrowed/goffice/go-charmap-sel.c:218
 msgid "Vietnamese (VPS)"
-msgstr "Вьетнамская (VPS)"
+msgstr ""
 
 #: ../borrowed/goffice/go-charmap-sel.c:219
 msgid "Vietnamese (Windows-1258)"
-msgstr "Вьетнамская (Windows-1258)"
+msgstr ""
 
 #: ../borrowed/goffice/go-charmap-sel.c:221
 msgid "Visual Hebrew (ISO-8859-8)"
-msgstr "Визуальный иврит (ISO-8859-8)"
+msgstr ""
 
 #: ../borrowed/goffice/go-charmap-sel.c:223
 msgid "Western (IBM-850)"
-msgstr "Западная (IBM-850)"
+msgstr ""
 
 #: ../borrowed/goffice/go-charmap-sel.c:224
 msgid "Western (ISO-8859-1)"
-msgstr "Западная (ISO-8859-1)"
+msgstr ""
 
 #: ../borrowed/goffice/go-charmap-sel.c:225
 msgid "Western (ISO-8859-15)"
-msgstr "Западная (ISO-8859-15)"
+msgstr ""
 
 #: ../borrowed/goffice/go-charmap-sel.c:227
 msgid "Western (MacRoman)"
-msgstr "Западная (MacRoman)"
+msgstr ""
 
 #: ../borrowed/goffice/go-charmap-sel.c:228
 msgid "Western (Windows-1252)"
-msgstr "Западная (Windows-1252)"
+msgstr ""
 
 #: ../borrowed/goffice/go-charmap-sel.c:441
+#, fuzzy
 msgid "Locale: "
-msgstr "Локаль: "
+msgstr "_Местный:"
 
 #: ../borrowed/goffice/go-charmap-sel.c:476
+#, fuzzy
 msgid "Conversion Direction"
-msgstr "Направление преобразования"
+msgstr "Преобразование завершено"
 
 #: ../borrowed/goffice/go-charmap-sel.c:477
 msgid "This value determines which iconv test to perform."
-msgstr "Это значение определяет какой тест iconv выполнить."
+msgstr ""
 
 #: ../borrowed/goffice/go-optionmenu.c:410
 msgid "Menu"
-msgstr "Меню"
+msgstr ""
 
 #: ../borrowed/goffice/go-optionmenu.c:410
+#, fuzzy
 msgid "The menu of options"
-msgstr "Параметры меню"
+msgstr "Числовой параметр: %s."
 
 #: ../gnucash/gnome/assistant-acct-period.c:190
 msgid "The book was closed successfully."
@@ -698,7 +713,7 @@ msgstr "Параметры выплат по займу: \"%s\""
 #: ../gnucash/report/standard-reports/account-summary.scm:72
 #: ../gnucash/report/standard-reports/advanced-portfolio.scm:68
 #: ../gnucash/report/standard-reports/cashflow-barchart.scm:356
-#: ../gnucash/report/standard-reports/category-barchart.scm:739
+#: ../gnucash/report/standard-reports/category-barchart.scm:733
 #: ../gnucash/report/standard-reports/general-journal.scm:107
 #: ../gnucash/report/standard-reports/general-ledger.scm:76
 #: ../gnucash/report/standard-reports/general-ledger.scm:97
@@ -2872,8 +2887,9 @@ msgid "Path head does not exist, "
 msgstr ""
 
 #: ../gnucash/gnome/dialog-trans-assoc.c:432
+#, fuzzy
 msgid "Relative"
-msgstr "Относительное"
+msgstr "_Относительно:"
 
 #: ../gnucash/gnome/dialog-vendor.c:214
 msgid ""
@@ -10979,8 +10995,9 @@ msgid "Pixels"
 msgstr ""
 
 #: ../gnucash/gnome-utils/dialog-options.c:3019
+#, fuzzy
 msgid "Percent"
-msgstr "В процентах"
+msgstr "Процент %"
 
 #. Translators: Both %s will be the account separator character; the
 #. resulting string is a demonstration how the account separator
@@ -20749,7 +20766,7 @@ msgstr "Электронная почта"
 
 #: ../gnucash/report/business-reports/aging.scm:789
 msgid "Y"
-msgstr "Y"
+msgstr ""
 
 #: ../gnucash/report/business-reports/aging.scm:789
 msgid "N"
@@ -23975,20 +23992,20 @@ msgid "Yearly Average"
 msgstr "Средне-годовой"
 
 #: ../gnucash/report/standard-reports/account-piecharts.scm:455
-#: ../gnucash/report/standard-reports/category-barchart.scm:336
+#: ../gnucash/report/standard-reports/category-barchart.scm:327
 msgid "Monthly Average"
 msgstr "Средне-месячный"
 
 #: ../gnucash/report/standard-reports/account-piecharts.scm:456
-#: ../gnucash/report/standard-reports/category-barchart.scm:337
+#: ../gnucash/report/standard-reports/category-barchart.scm:328
 msgid "Weekly Average"
 msgstr "Средне-недельный"
 
 #: ../gnucash/report/standard-reports/account-piecharts.scm:569
 #: ../gnucash/report/standard-reports/cashflow-barchart.scm:313
 #: ../gnucash/report/standard-reports/cash-flow.scm:167
-#: ../gnucash/report/standard-reports/category-barchart.scm:537
-#: ../gnucash/report/standard-reports/category-barchart.scm:563
+#: ../gnucash/report/standard-reports/category-barchart.scm:531
+#: ../gnucash/report/standard-reports/category-barchart.scm:557
 #: ../gnucash/report/standard-reports/daily-reports.scm:484
 #: ../gnucash/report/standard-reports/equity-statement.scm:347
 #: ../gnucash/report/standard-reports/income-statement.scm:475
@@ -25391,16 +25408,16 @@ msgstr "Показать гистограмму, как гистограмму 
 msgid "Maximum number of stacks in the chart."
 msgstr "Максимальное количество столбцов в гистограмме"
 
-#: ../gnucash/report/standard-reports/category-barchart.scm:338
+#: ../gnucash/report/standard-reports/category-barchart.scm:329
 msgid "Daily Average"
 msgstr "Средне-дневной"
 
-#: ../gnucash/report/standard-reports/category-barchart.scm:538
-#: ../gnucash/report/standard-reports/category-barchart.scm:564
+#: ../gnucash/report/standard-reports/category-barchart.scm:532
+#: ../gnucash/report/standard-reports/category-barchart.scm:558
 msgid "Balances %s to %s"
 msgstr "Баланс %s по %s"
 
-#: ../gnucash/report/standard-reports/category-barchart.scm:748
+#: ../gnucash/report/standard-reports/category-barchart.scm:742
 #: ../gnucash/report/standard-reports/income-gst-statement.scm:331
 #: ../gnucash/report/standard-reports/income-gst-statement.scm:1170
 #: ../gnucash/report/standard-reports/transaction.scm:1392
@@ -28096,8 +28113,9 @@ msgid "Fancy Date Format"
 msgstr "Расширенный формат даты"
 
 #: ../libgnucash/app-utils/app-utils.scm:330
+#, fuzzy
 msgid "custom"
-msgstr "другой"
+msgstr "Настроенный"
 
 #: ../libgnucash/app-utils/business-prefs.scm:24
 msgid "Counters"
@@ -28843,18 +28861,18 @@ msgstr "д-м"
 msgid "m-d"
 msgstr "м-д"
 
-#: ../libgnucash/engine/gnc-datetime.cpp:383
+#: ../libgnucash/engine/gnc-datetime.cpp:397
 #, fuzzy
 msgid "Unknown date format specifier passed as argument."
 msgstr ""
 "Использовать формат даты, определённый региональными настройками системы."
 
 #. regex didn't find a match
-#: ../libgnucash/engine/gnc-datetime.cpp:388
+#: ../libgnucash/engine/gnc-datetime.cpp:402
 msgid "Value can't be parsed into a date using the selected date format."
 msgstr ""
 
-#: ../libgnucash/engine/gnc-datetime.cpp:393
+#: ../libgnucash/engine/gnc-datetime.cpp:407
 msgid "Value appears to contain a year while the selected format forbids this."
 msgstr ""
 
@@ -29458,3 +29476,1691 @@ msgstr ""
 "Чтобы визуально сравнить на экране содержимое двух вкладок, выберите в одной "
 "из вкладок \"Окно\" -> \"Новое окно со страницей\" из меню, чтобы "
 "продублировать эту вкладку в новом окне."
+
+#~ msgid "Enable debugging mode: increasing logging to provide deep detail."
+#~ msgstr "Включить режим отладки: увеличивает детализацию лога."
+
+#~ msgid ""
+#~ "Log level overrides, of the form \"log.ger.path={debug,info,warn,crit,"
+#~ "error}\""
+#~ msgstr ""
+#~ "Изменение уровня детализации лога в форме: \"log.ger.path={debug,info,"
+#~ "warn,crit,error}\""
+
+#~ msgid ""
+#~ "%s\n"
+#~ "This copy was built from %s rev %s on %s."
+#~ msgstr ""
+#~ "%s\n"
+#~ "Эта копия собрана из %s, ревизия %s. \n"
+#~ "Дата сборки %s."
+
+#~ msgid ""
+#~ "%s\n"
+#~ "This copy was built from rev %s on %s."
+#~ msgstr ""
+#~ "%s\n"
+#~ "Эта копия была собрана из ревизии %s. Дата сборки %s."
+
+#~ msgid ""
+#~ "An error occurred while creating the directory:\n"
+#~ "  %s\n"
+#~ "Please correct the problem and restart GnuCash.\n"
+#~ "The reported error was '%s' (errno %d).\n"
+#~ msgstr ""
+#~ "Произошла ошибка при создании папки:\n"
+#~ "  %s\n"
+#~ "Пожалуйста, исправьте проблему и перезапустите GnuCash.\n"
+#~ "Ошибка: \"%s\" (errno %d).\n"
+
+#~ msgid ""
+#~ "Note: the directory\n"
+#~ "  %s\n"
+#~ "doesn't exist. This is however not fatal.\n"
+#~ msgstr ""
+#~ "Примечание: каталог\n"
+#~ "  %s\n"
+#~ "не существует. Это, однако, не смертельно.\n"
+
+#~ msgid ""
+#~ "The directory\n"
+#~ "  %s\n"
+#~ "exists but cannot be accessed. This program \n"
+#~ "must have full access (read/write/execute) to \n"
+#~ "the directory in order to function properly.\n"
+#~ msgstr ""
+#~ "Папка\n"
+#~ "  %s\n"
+#~ "существует, но недоступна. Данная программа должна \n"
+#~ "иметь к ней полный доступ (чтение/запись/исполнение) \n"
+#~ "для нормального функционирования.\n"
+
+#~ msgid ""
+#~ "The path\n"
+#~ "  %s\n"
+#~ "exists but it is not a directory. Please delete\n"
+#~ "the file and start GnuCash again.\n"
+#~ msgstr ""
+#~ "Путь\n"
+#~ "  %s\n"
+#~ "существует, но не является папкой. Пожалуйста удалите\n"
+#~ "файл и запустите GnuCash заново.\n"
+
+#~ msgid ""
+#~ "An unknown error occurred when validating that the\n"
+#~ "  %s\n"
+#~ "directory exists and is usable. Please correct the\n"
+#~ "problem and restart GnuCash. The reported error \n"
+#~ "was '%s' (errno %d)."
+#~ msgstr ""
+#~ "Возникла неизвестная ошибка при проверке, что папка\n"
+#~ "  %s\n"
+#~ "существует и может быть использована. Пожалуйста, решите\n"
+#~ "проблему и перезапустите GnuCash.\n"
+#~ "Ошибка: \"%s\" (errno %d)."
+
+#~ msgid ""
+#~ "The permissions are wrong on the directory\n"
+#~ "  %s\n"
+#~ "They must be at least 'rwx' for the user.\n"
+#~ msgstr ""
+#~ "Неверные разрешения на папку\n"
+#~ "  %s\n"
+#~ "Они должны быть 'rwx' для пользователя.\n"
+
+#~ msgid "_Price Editor"
+#~ msgstr "Редактор цен"
+
+#~ msgid "General Ledger2"
+#~ msgstr "Главная книга 2"
+
+#~ msgid "General Ledger Report"
+#~ msgstr "Отчёт по главной книге"
+
+#~ msgid "_General Ledger"
+#~ msgstr "_Главная Книга"
+
+#~ msgid "<No information>"
+#~ msgstr "<Нет информации>"
+
+#~ msgid ""
+#~ "If active, the register will be colored as specified by the system theme. "
+#~ "This can be overridden to provide custom colors by editing the gtkrc file "
+#~ "in the users home directory. Otherwise the standard register colors will "
+#~ "be used that GnuCash has always used."
+#~ msgstr ""
+#~ "Если включено, журнал раскрашивается в соответствие с системной темой "
+#~ "оформления. Можно настроить собственные цвета редактируя файл .gtkrc с "
+#~ "домашней папке пользователя. Если опция не включена, то используются "
+#~ "стандартные цвета GnuCash."
+
+#~ msgid ""
+#~ "If activated, delete manually entered stock prices dated earlier than the "
+#~ "specified date. Otherwise only stock prices added by Finance::Quote will "
+#~ "be deleted."
+#~ msgstr ""
+#~ "Если включено, удаляются введённые вручную цены пакетов датированные "
+#~ "ранее указанной даты. Иначе удалены будут только цены, добавленные "
+#~ "Finance::Quote."
+
+#~ msgid "Delete _last price for a stock"
+#~ msgstr "Удалить _последнюю цену пакета акций"
+
+#~ msgid ""
+#~ "If activated, delete all prices before the specified date. Otherwise the "
+#~ "last stock price dated before the date will be kept and all earlier "
+#~ "quotes deleted."
+#~ msgstr ""
+#~ "Если включено, удалять все цены до указанной даты. Иначе последняя цена "
+#~ "пакета, датированная ранее указанной даты, будет сохранена, а все более "
+#~ "ранние котировки удалены."
+
+#~ msgid "Get _Quotes"
+#~ msgstr "Получить _котировки"
+
+#~ msgid "_Delete Account"
+#~ msgstr "_Удалить счет"
+
+#~ msgid "_New Account"
+#~ msgstr "_Новый счет"
+
+# Последнее изменение в %a, %b %e, %Y %H:%M
+#~ msgid "Last modified on %x %X"
+#~ msgstr "Последнее изменение в %x %X"
+
+#~ msgid ""
+#~ "The GnuCash personal finance manager. The GNU way to manage your money!"
+#~ msgstr ""
+#~ "Персональный финансовый менеджер GnuCash. \n"
+#~ "GNU-способ распоряжения вашими деньгами!"
+
+#~ msgid "Version: GnuCash-%s %s (rev %s built %s)"
+#~ msgstr "Версия: Gnucash-%s %s (ревизия %s, дата сборки %s)"
+
+#~ msgid "Version: GnuCash-%s (rev %s built %s)"
+#~ msgstr "Версия: Gnucash-%s (ревизия %s, дата сборки %s)"
+
+#~ msgid "Remember _PIN"
+#~ msgstr "Запомнить _PIN-код"
+
+#~ msgid ""
+#~ "This assistant will help you export the Transactions to a file.\n"
+#~ "\n"
+#~ "Select the settings you require for the file and then click 'Forward' to "
+#~ "proceed or 'Cancel' to Abort Export.\n"
+#~ msgstr ""
+#~ "Этот мастер поможет вам экспортировать проводки в файл.\n"
+#~ "\n"
+#~ "Установите требуемые параметры экспорта и затем нажмите на кнопку \"Вперёд"
+#~ "\" или нажмите \"Отмена\", чтобы прервать экспорт.\n"
+
+#~ msgid "Quotes"
+#~ msgstr "Кавычки"
+
+#~ msgid "Category"
+#~ msgstr "Категория"
+
+#~ msgid "From With Sym"
+#~ msgstr "Списано (с симв. валюты)"
+
+#~ msgid "To Num."
+#~ msgstr "Получено (число)"
+
+#~ msgid "From Num."
+#~ msgstr "Списано (число)"
+
+#~ msgid "From Rate/Price"
+#~ msgstr "Коэффицент зачисления"
+
+#~ msgid ""
+#~ "The rows displayed below had errors which are in the last column. You can "
+#~ "attempt to correct them by changing the configuration."
+#~ msgstr ""
+#~ "Строки, указанные ниже, содержат ошибки, текст которых находится в "
+#~ "последней колонке. Вы можете попытаться исправить их путём изменения "
+#~ "конфигурации."
+
+#~ msgid ""
+#~ "There are problems with the import settings!\n"
+#~ "The date format could be wrong or there are not enough columns set..."
+#~ msgstr ""
+#~ "Настройки импорта заданы некорректно!\n"
+#~ "Это может быть связано с неверным форматом даны или с тем что не все "
+#~ "необходимые колонки заданы"
+
+#~ msgid ""
+#~ "To Change the account, double click on the required account, click "
+#~ "Forward to proceed."
+#~ msgstr ""
+#~ "Для изменения счетов, дважды щёлкните по нужному счету. Нажмите \"Вперед"
+#~ "\", чтобы продолжить"
+
+#~ msgid ""
+#~ "This assistant will help you import a delimited file containing a list of "
+#~ "transactions.\n"
+#~ "\n"
+#~ "All transactions imported will be associated to one account for each "
+#~ "import and if you select the account column, the account in the first row "
+#~ "will be used for all rows.\n"
+#~ "\n"
+#~ "Various options exist for specifying the delimiter as well as a fixed "
+#~ "width option. With the fixed width option, double click on the bar above "
+#~ "the displayed rows to set the column width.\n"
+#~ "\n"
+#~ "There is an option for specifying the start row, end row and an option to "
+#~ "skip alternate rows begining from the start row. These can be used if you "
+#~ "have some header text, a points collected status row or multiple accounts "
+#~ "in the same file."
+#~ msgstr ""
+#~ "Этот мастер поможет вам импортировать файл с разделителями, содержащий "
+#~ "список проводок.\n"
+#~ "\n"
+#~ "Все импортируемые проводки будут привязаны к одному счету для каждой "
+#~ "процедуры импорта  и если вы укажете колонку со счетами, счет, "
+#~ "находящийся в первой строке, будет использован для всех остальных строк.\n"
+#~ "\n"
+#~ "В качестве разделителя колонок вы можете указать различные значения, "
+#~ "включая задание фиксированной ширины колонок. Если вы выбрали режим с "
+#~ "фиксированной шириной, дважды щёлкните по панели над отображаемыми "
+#~ "строками для задания ширины.\n"
+#~ "\n"
+#~ "В настройках импорта также доступно задание начальной и конечной строки "
+#~ "для обработки. Эта возможность будет полезна, если в файле есть строки, "
+#~ "содержащие заголовки, или файл содержит проводки по нескольким счетам."
+
+#~ msgid "Transaction Import Assistant"
+#~ msgstr "Мастер импорта проводок"
+
+#~ msgid "Start import on row "
+#~ msgstr "Начать импорт со строки "
+
+#~ msgid " and stop on row "
+#~ msgstr " и закончить на строке "
+
+#~ msgid "Skip alternate rows from the start row"
+#~ msgstr "Пропустить альтернативные строки от стартовой строки"
+
+#~ msgid "Data type: "
+#~ msgstr "Тип данных: "
+
+#~ msgid "Separated"
+#~ msgstr "Разделенные"
+
+#~ msgid "Step over Account Page if Setup"
+#~ msgstr "Пропустить настройку счёта, если он определён"
+
+#~ msgid "File opening failed."
+#~ msgstr "Не удалось открыть файл."
+
+#~ msgid "Unknown encoding."
+#~ msgstr "Неизвестная кодировка."
+
+#~ msgid "This report has no options."
+#~ msgstr "Этот отчёт не требует настройки."
+
+#~ msgid "Compress prior/later periods"
+#~ msgstr "Сжать периоды до и после"
+
+#~ msgid ""
+#~ "Accumulate columns for periods before and after the current period to "
+#~ "allow focus on the current period."
+#~ msgstr ""
+#~ "Объединить колонки для периодов до и после текущего, чтобы заострить "
+#~ "внимание на последнем."
+
+#~ msgid "Income Barchart"
+#~ msgstr "Гистограмма доходов"
+
+#~ msgid "Expense Barchart"
+#~ msgstr "Гистограмма расходов"
+
+#~ msgid "Liability Barchart"
+#~ msgstr "Гистограмма обязательств"
+
+#~ msgid "Style"
+#~ msgstr "Стиль"
+
+#~ msgid "Report style."
+#~ msgstr "Стиль отчета."
+
+#~ msgid "Display N lines."
+#~ msgstr "Отображать N строк."
+
+#~ msgid "Display 1 line."
+#~ msgstr "Отображать 1 строку."
+
+#~ msgid "Account Substring"
+#~ msgstr "Подстрока счёта"
+
+#~ msgid "Exact Time"
+#~ msgstr "Точное время"
+
+#~ msgid "Sort by exact time."
+#~ msgstr "Сортировать по точному времени."
+
+#~ msgid "Dummy message"
+#~ msgstr "сообщение-заглушка"
+
+#~ msgid "postd"
+#~ msgstr "введено"
+
+#~ msgid "duedate"
+#~ msgstr "оплатить к"
+
+#~ msgid "acct"
+#~ msgstr "счет"
+
+#~ msgid "question"
+#~ msgstr "вопрос"
+
+#~ msgid "Clear the entry"
+#~ msgstr "Очистить запись"
+
+#~ msgid "set true"
+#~ msgstr "истинно"
+
+#~ msgid "You must select a commodity. To create a new one, click \"New\""
+#~ msgstr "Вы должны выбрать товар. Чтобы создать новый, нажмите \"Новый\""
+
+#~ msgid "Owner Name"
+#~ msgstr "Имя владельца"
+
+#~ msgid "Owner ID"
+#~ msgstr "ID владельца"
+
+#~ msgid "UTC"
+#~ msgstr "UTC"
+
+#~ msgid "Dates earlier than 1970 are not supported."
+#~ msgstr "Даты ранее 1970 года не поддерживаются."
+
+#~ msgid "Auto pay on post_ing"
+#~ msgstr "Автоматически оплачивать при вводе"
+
+#~ msgid "_Use system theme colors"
+#~ msgstr "Испол_ьзовать цвета темы оформления системы"
+
+#~ msgid ""
+#~ "If checked, the system color theme will be applied to register windows. "
+#~ "If clear, the original GnuCash register colors will be used."
+#~ msgstr ""
+#~ "Если включено, то журнал будет раскрашен в цвета системной темы. В "
+#~ "противном случае, будут использоваться стандартные цвета журнала GnuCash."
+
+#~ msgid "Retrieve the current online quote"
+#~ msgstr "Получить текущую цену по сети"
+
+#~ msgid "New item"
+#~ msgstr "Новый пункт"
+
+#~ msgid "%s at %s (code %s)"
+#~ msgstr "%s в %s (код %s)"
+
+#~ msgid "%s at bank code %s"
+#~ msgstr "%s в банке с кодом %s"
+
+#~ msgid "Semicolon Separated with Quotes"
+#~ msgstr "Точка с запятой, значения в кавычках"
+
+#~ msgid "Comma Separated with Quotes"
+#~ msgstr "Запятая, значения в кавычках"
+
+#~ msgid "Negative amounts are not allowed."
+#~ msgstr "Отрицательные суммы недопустимы."
+
+#~ msgid "Percentage amount must be between 0 and 100."
+#~ msgstr "Величина процентов должна быть между 0 и 100."
+
+#~ msgid "You must select at least one document or pre-payment to process."
+#~ msgstr ""
+#~ "Вы должны выбрать хотя бы один документ или предоплату для обработки."
+
+#~ msgid "Internal link between invoice and payment lots"
+#~ msgstr "Внутренняя ссылка между счётом-фактурой и платежом"
+
+#~ msgid "Net Price"
+#~ msgstr "Цена без налогов"
+
+#~ msgid "Total Price"
+#~ msgstr "Итоговая цена"
+
+#~ msgid "Amount Due"
+#~ msgstr "Сумма задолженности"
+
+#~ msgid "Invoice number: "
+#~ msgstr "Номер счёта-фактуры: "
+
+#~ msgid "Job number: "
+#~ msgstr "Номер операции: "
+
+#~ msgid "Job name: "
+#~ msgstr "Название операции: "
+
+#~ msgid "Set the prefix path for gconf queries"
+#~ msgstr "Установка префикса пути для поиска файлов gconf"
+
+#~ msgid "GCONFPATH"
+#~ msgstr "GCONFPATH"
+
+#, fuzzy
+#~ msgid "Credit note"
+#~ msgstr "Кредитные линии"
+
+#, fuzzy
+#~ msgid ""
+#~ "You must enter the amount of the payment. The payment amount must not be "
+#~ "zero."
+#~ msgstr "Вы должны ввести сумму платежа, которая должна быть больше нуля."
+
+#, fuzzy
+#~ msgid "Customer Credit Note"
+#~ msgstr "Отчёт клиента"
+
+#, fuzzy
+#~ msgid "Vendor Credit Note"
+#~ msgstr "Отчёт поставщика"
+
+#, fuzzy
+#~ msgid "Employee Credit Note"
+#~ msgstr "Отчёт работника"
+
+#~ msgid "Remo_ve Transaction Splits"
+#~ msgstr "_Удалить части проводки"
+
+#~ msgid "_Shift Transaction Forward"
+#~ msgstr "Сдвинуть проводку в_перёд"
+
+#~ msgid "Account Transaction Report"
+#~ msgstr "Отчёт о проводках по счёту"
+
+#~ msgid "Order of columns in the dialog"
+#~ msgstr "Порядок столбцов в диалоге"
+
+#~ msgid "Show the Full Name column"
+#~ msgstr "Показывать столбец полных названий"
+
+#~ msgid "Show the ISIN/CUSIP Code (Exchange Specific Data) column"
+#~ msgstr "Показывать столбец кодов ISIN/CUSIP (код на бирже)"
+
+#~ msgid "Show the Namespace column"
+#~ msgstr "Показать столбец видов"
+
+#~ msgid "Show the Print Name column"
+#~ msgstr "Показывать столбец выводимых имен"
+
+#~ msgid "Show the Quote Flag column"
+#~ msgstr "Показать столбец флагов котировки"
+
+#~ msgid "Show the Quote Source column"
+#~ msgstr "Показать столбец источников котировок"
+
+#~ msgid "Show the Quote Timezone column"
+#~ msgstr "Показать столбец часовых поясов квот"
+
+#~ msgid "Show the Unique Name column"
+#~ msgstr "Показать столбец уникальных имен"
+
+#~ msgid "Show the fraction column"
+#~ msgstr "Показать столбец долей"
+
+#~ msgid "Show the name column"
+#~ msgstr "Показать столбец имен"
+
+#~ msgid "Show the symbol column"
+#~ msgstr "Показать столбец символов"
+
+#~ msgid ""
+#~ "This setting contains a list of names which controls the order in which "
+#~ "the columns are listed in the dialog. Names may be reordered or removed "
+#~ "from this list to control which columns appear in the dialog and in what "
+#~ "order."
+#~ msgstr ""
+#~ "Этот параметр содержит список названий, определяющих порядок, в котором "
+#~ "столбцы отображаются в диалоге. Названия могут быть переставлены или "
+#~ "удалены, чтобы столбцы отображались в нужном порядке."
+
+#~ msgid "Columns used for sorting"
+#~ msgstr "Столбцы, используемые для сортировки"
+
+#~ msgid ""
+#~ "The X,Y coordinates of the top left corner of the window when it was last "
+#~ "closed."
+#~ msgstr ""
+#~ "Координаты X и Y левого верхнего угла диалога при последнем его закрытии."
+
+#~ msgid "The width and size of the window when it was last closed."
+#~ msgstr "Ширина и высота окна диалога при последнем его закрытии."
+
+#~ msgid ""
+#~ "This setting indicates how the key column is sorted. Possible values for "
+#~ "this setting are 'ascending' and 'descending'."
+#~ msgstr ""
+#~ "Эта настройка указывает, как упорядочен ключевой столбец. Возможные "
+#~ "значения - \"по возрастанию\" и \"по убыванию\". "
+
+#~ msgid ""
+#~ "This setting indicates which column in the tree is used for sorting. "
+#~ "Possible values for this setting are the name of any column in this "
+#~ "window (see the column_order key) or the keyword 'none'."
+#~ msgstr ""
+#~ "Этот параметр показывает, какой столбец в дереве используется для "
+#~ "сортировки. Возможные его значения - название любого столбца в диалоге "
+#~ "или \"ничего\"."
+
+#~ msgid "Window position"
+#~ msgstr "Расположение окна"
+
+#~ msgid "Show the Price column"
+#~ msgstr "Показать столбец цен"
+
+#~ msgid "Show the Source column"
+#~ msgstr "Показать столбец источников"
+
+#~ msgid "Show the Type column"
+#~ msgstr "Показать столбец типов"
+
+#~ msgid "Show the date column"
+#~ msgstr "Показать столбец дат"
+
+#~ msgid "This setting enables the Price column."
+#~ msgstr "Этот параметр включает отображение столбца цен."
+
+#~ msgid "This setting enables the Source column."
+#~ msgstr "Этот параметр включает отображение столбца источников."
+
+#~ msgid "This setting enables the Type column."
+#~ msgstr "Этот параметр включает отображение столбца типов."
+
+#~ msgid "This setting enables the commodity column."
+#~ msgstr "Этот параметр включает отображение столбца товаров."
+
+#~ msgid "This setting enables the currency column."
+#~ msgstr "Этот параметр включает отображение столбца валют."
+
+#~ msgid ""
+#~ "This value contains the Y coordinate for the bottom edge of the check. "
+#~ "This coordinate is from the bottom edge of the sheet of paper."
+#~ msgstr ""
+#~ "Это значения является координатой Y нижнего края чека. Она отсчитывается "
+#~ "от нижнего края листа бумаги."
+
+#~ msgid "Accounts to reverse the balance"
+#~ msgstr "Счета для обращения баланса"
+
+#~ msgid "Default view style for new register"
+#~ msgstr "Стиль отображения нового реестра по умолчанию"
+
+#~ msgid "Enables Euro support"
+#~ msgstr "Включить поддержку Евро"
+
+#~ msgid "Enables additional support for the European Union EURO currency."
+#~ msgstr "Включить поддержку Евро - валюты Европейского сообщества."
+
+#~ msgid "How to interpret dates without a year"
+#~ msgstr "Как воспринимать даты без года"
+
+#~ msgid "Labels on toolbar buttons"
+#~ msgstr "Подписи к кнопкам панели инструментов"
+
+#~ msgid "Position of the notebook tabs"
+#~ msgstr "Положение закладок блокнота"
+
+#, fuzzy
+#~ msgid "Show the Calendar buttons"
+#~ msgstr "Показать столбец имен"
+
+#, fuzzy
+#~ msgid "Show the Date Entered"
+#~ msgstr "Показать столбец дат"
+
+#~ msgid "Source of default account currency"
+#~ msgstr "Источник умолчальной валюты счета"
+
+#~ msgid "Source of default report currency"
+#~ msgstr "Источник умолчальной валюты отчета"
+
+#, fuzzy
+#~ msgid "The number of Characters needed"
+#~ msgstr "Показать количество акций"
+
+#, fuzzy
+#~ msgid "The number of transactions displayed"
+#~ msgstr "Числ_о проводок:"
+
+#~ msgid ""
+#~ "This setting controls how the labels on toolbar buttons are shown. If set "
+#~ "to \"system\" then GnuCash will use the desktop setting for how to draw "
+#~ "toolbar buttons. If set to \"icon\" then only icons will be show on "
+#~ "toolbar buttons.. If set to \"text\" only the labels will be shown. If "
+#~ "set to \"both\" then both icons and labels will be shown. If set to "
+#~ "\"both-horiz\" then icons will be shown for all buttons with labels added "
+#~ "on important buttons."
+#~ msgstr ""
+#~ "Этот параметр определяет способ отображения текста на кнопках панели "
+#~ "инструментов. Если выбрано \"системные установки\", то GnuCash будет "
+#~ "использовать настройки среды. Если выбрано \"текст под иконками\", то под "
+#~ "всеми иконками будет выводиться текст. Если выбрано \"текст слева для "
+#~ "важных кнопок\", то текст будет выводиться справа, но только для важных "
+#~ "кнопок.Если выбрано \"только иконки\", то текст не будет выводиться "
+#~ "вообще. Если выбрано \"только текст\", то иконки не будут отображаться "
+#~ "вообще."
+
+#~ msgid ""
+#~ "This setting specifies the default currency used for reports if the "
+#~ "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 ""
+#~ "Этот параметр определяет валюту по умолчанию, используемую для отчетов, "
+#~ "если параметр \"Выбор валюты\" выставлен в значение \"другая\". Это поле "
+#~ "должно содержать три буквы кода валюты, соответствующие стандарту ISO "
+#~ "4217 (например: USD, GBP, RUB)."
+
+#~ msgid ""
+#~ "This setting contains the width of the named column in the most recently "
+#~ "closed register window. Changing these values will change the sizes of "
+#~ "the columns in the next opened register"
+#~ msgstr ""
+#~ "Этот параметр содержит ширину именованого столбца в последнем закрытом "
+#~ "окне журнала. Изменение этих значений изменит размеры столбцов в "
+#~ "следующем открытом журнале"
+
+#~ msgid "Width of a column in the dialog"
+#~ msgstr "Ширина столбца в диалоге"
+
+#~ msgid ""
+#~ "Error: Failure saving state file.\n"
+#~ "  %s"
+#~ msgstr ""
+#~ "Ошибка: Невозможно сохранить состояние в файл\n"
+#~ "  %s"
+
+#, fuzzy
+#~ msgid ""
+#~ "When you click Apply, GnuCash will modify your ~/.gconf.path file and "
+#~ "restart the gconf backend. There will be a short delay before GnuCash is "
+#~ "loaded."
+#~ msgstr ""
+#~ "После нажатия на \"Применить\", GnuCash изменить ваш файл ~/.gconf.path и "
+#~ "перезапустит gconf."
+
+#, fuzzy
+#~ msgid ""
+#~ "When you click Apply, GnuCash will install the gconf data into your local "
+#~ "~/.gconf file and restart the gconf backend. The %s script must be found "
+#~ "in your search path for this to work correctly."
+#~ msgstr ""
+#~ "Когда будет нажата кнопка \"Применить\", GnuCash установит данные gconf в "
+#~ "локальный файл ~/.gconf и перезапустить gconf. Скрипт %s должен "
+#~ "присутствовать в переменной окружения PATH, чтобы операция завершилась "
+#~ "успешно."
+
+#, fuzzy
+#~ msgid ""
+#~ "You have chosen to correct the problem by yourself. When you click Apply, "
+#~ "GnuCash will exit. Please correct the problem and restart the gconf "
+#~ "backend with the command 'gconftool-2 --shutdown' before restarting "
+#~ "GnuCash. If you have not already done so, you can click the Back button "
+#~ "and copy the necessary text from the dialog."
+#~ msgstr ""
+#~ "Был выбран ручной способ решения проблемы. Когда будет нажата кнопка "
+#~ "\"Применить\", GnuCash завершит работу. После исправления проблемы до "
+#~ "запуска GnuCash нужно перезапустить gconf командой \"gconftool-2 --"
+#~ "shutdown\". Если это еще не сделано, то есть возможность нажать кнопку "
+#~ "\"Назад\" и скопировать необходимый текст."
+
+#, fuzzy
+#~ msgid ""
+#~ "You have chosen to correct the problem by yourself. When you click Apply, "
+#~ "GnuCash will exit. Please run the %s script which will install the "
+#~ "configuration data and restart the gconf backend."
+#~ msgstr ""
+#~ "Был выбран ручной способ решения проблемы. Когда будет нажата кнопка "
+#~ "\"Применить\", GnuCash завершит работу. Необходимо запустить скрипт %s, "
+#~ "который установит конфигурационные данные и перезапустит gconf."
+
+#, fuzzy
+#~ msgid ""
+#~ "You have already corrected the problem and restarted the gconf backend "
+#~ "with the command 'gconftool-2 --shutdown'. When you click Apply, there "
+#~ "will be a short delay before GnuCash is loaded."
+#~ msgstr ""
+#~ "Проблема уже решена и gconf перезапущен командой \"gconftool-2 --shutdown"
+#~ "\". После нажатия на \"Применить\" GnuCash продолжит загрузку."
+
+#, fuzzy
+#~ msgid "Withdrawl"
+#~ msgstr "Снято"
+
+#~ msgid ""
+#~ "<b>Cannot find default values</b>\n"
+#~ "\n"
+#~ "The configuration data used to specify default values for GnuCash cannot "
+#~ "be found in the default system locations. Without this data GnuCash will "
+#~ "still operate properly but it may require some extra time to setup. Do "
+#~ "you wish to setup the configuration data?"
+#~ msgstr ""
+#~ "<b>Невозможно найти умолчальные значения</b>\n"
+#~ "\n"
+#~ "Конфигурационные данные определяющие значения по умолчанию в GnuCash не "
+#~ "могут быть найдены в стандартном месте. Без этих данных GnuCash будет "
+#~ "работать правильно, но это может потребовать дополнительное время на "
+#~ "настройку. Настроить конфигурационные данные?"
+
+#, fuzzy
+#~ msgid "Apply Changes"
+#~ msgstr "Изменение значение"
+
+#, fuzzy
+#~ msgid "Choose Method"
+#~ msgstr "Способ выбора"
+
+#~ msgid "GnuCash will install the data for you."
+#~ msgstr "GnuCash установить данные."
+
+#~ msgid "GnuCash will update the system path for you."
+#~ msgstr "GnuCash обновит системные пути."
+
+#, fuzzy
+#~ msgid "Install Into Home Directory"
+#~ msgstr "Установить в домашний каталог"
+
+#~ msgid ""
+#~ "Please add the following lines at the end of your ~/.gconf.path file:"
+#~ msgstr "Пожалуйста, добавьте следующие строки в конец файла ~/.gconf.path:"
+
+#~ msgid "Please run the following commands:"
+#~ msgstr "Пожалуйста, выполните следующие команды:"
+
+#~ msgid "S_kip"
+#~ msgstr "Пропустить"
+
+#, fuzzy
+#~ msgid ""
+#~ "The configuration data is stored in a non-standard location. There are "
+#~ "two methods that can be used to make this data visible to GnuCash. The "
+#~ "first is to modify a system search path to include the data location. The "
+#~ "second is to copy the data into your home directory."
+#~ msgstr ""
+#~ "Конфигурационные данных размещены в нестандартном месте. Есть два способа "
+#~ "сделать их видимыми GnuCash. Первый - изменить системные пути поиска, "
+#~ "включив путь размещения данных. Второй - скопировать данный в домашнюю "
+#~ "директорию."
+
+#~ msgid ""
+#~ "The configuration data used by GnuCash to specify its default values "
+#~ "cannot be found in the default system locations. Without this data "
+#~ "GnuCash will still operate properly, but it may require some extra time "
+#~ "to set up."
+#~ msgstr ""
+#~ "Конфигурационные данные определяющие значения по умолчанию в GnuCash не "
+#~ "могут быть найдены в стандартном месте. Без этих данных GnuCash будет "
+#~ "работать правильно, но это может потребовать дополнительное время на "
+#~ "настройку."
+
+#~ msgid "The data has _already been installed in another window"
+#~ msgstr "Данные уже были установлены в другом окне"
+
+#~ msgid "The search path has _already been updated in another window"
+#~ msgstr "Пути поиска уже были обновлены в другом окне"
+
+#, fuzzy
+#~ msgid ""
+#~ "This method will install the GnuCash default settings and descriptions "
+#~ "into the .gconf directory within your home directory. The disadvantage to "
+#~ "this method is that future updates to GnuCash will not update your local "
+#~ "settings to add in new keys."
+#~ msgstr ""
+#~ "Этот метод установит умолчальные настройки и описания в директорию ."
+#~ "gconf, находящуюся в домашней директории. Недостаток этого метода - при "
+#~ "будущих обновлениях GnuCash не будут обновляться локальные настройки."
+
+#, fuzzy
+#~ msgid ""
+#~ "This method will modify the file .gconf.path in your home directory. It "
+#~ "will add the GnuCash install directory to this path so that GnuCash can "
+#~ "find its default settings and their descriptions."
+#~ msgstr ""
+#~ "Этот метод изменит файл .gconf.path в вашей домашней директории, добавит "
+#~ "в него путь установки GnuCash, что позволит GnuCash найти свои настройки "
+#~ "и описания."
+
+#, fuzzy
+#~ msgid "Update GnuCash Configuration Data"
+#~ msgstr "Обновить настройки GnuCash"
+
+#~ msgid "Update GnuCash configuration data"
+#~ msgstr "Обновить настройки GnuCash"
+
+#, fuzzy
+#~ msgid "Update Search Path"
+#~ msgstr "Обновить путь поиска"
+
+#, fuzzy
+#~ msgid ""
+#~ "You have chosen to install the configuration data used by GnuCash into "
+#~ "the ~/.gconf directory. GnuCash can do this for you, or tell you how to "
+#~ "do it yourself."
+#~ msgstr ""
+#~ "Была выбрана установка конфигурационных данных, используемых GnuCash, в "
+#~ "директорию ~/.gconf. GnuCash может сделать это сам или рассказать, как "
+#~ "это сделать вручную."
+
+#, fuzzy
+#~ msgid ""
+#~ "You have chosen to update the system search path. GnuCash can do this for "
+#~ "you, or it can tell you how to do it yourself."
+#~ msgstr ""
+#~ "Вы выбрали обновление системных путей поиска. GnuCash может сделать это "
+#~ "самостоятельно или рассказать, как сделать вручную."
+
+#, fuzzy
+#~ msgid ""
+#~ "You will then need to restart the gconf backend with the command "
+#~ "'gconftool-2 --shutdown'."
+#~ msgstr ""
+#~ "Вам тогда потребуется перезапустить gconf командой\n"
+#~ "\"gconftool-2 --shutdown\"."
+
+#~ msgid "_GnuCash installs the data"
+#~ msgstr "GnuCash _устанавливает данные"
+
+#~ msgid "_GnuCash updates the search path"
+#~ msgstr "GnuCash о_бновляет путь поиска"
+
+#~ msgid "_Install into home directory"
+#~ msgstr "_Установить в домашний каталог"
+
+#~ msgid "_Setup"
+#~ msgstr "_Настроить"
+
+#~ msgid "_Update search path"
+#~ msgstr "_Обновить путь поиска"
+
+#~ msgid "_You install the data yourself"
+#~ msgstr "_Вы устанавливаете данные самостоятельно"
+
+#~ msgid "_You update the search path yourself"
+#~ msgstr "_Вы обновляете путь поиска самостоятельно"
+
+#~ msgid "<b>Toolbar Style</b>"
+#~ msgstr "<b>Стиль панели инструментов</b>"
+
+#~ msgid "Display toolbar items as icons only."
+#~ msgstr "Отображать только иконки в панели инструментов."
+
+#~ msgid "Display toolbar items as text only."
+#~ msgstr "Отображать только текст в панели инструментов."
+
+#~ msgid ""
+#~ "Display toolbar items with the text label below the icon. Labels are show "
+#~ "for all items."
+#~ msgstr ""
+#~ "Отображать элементы панели инструментов в виде иконок с подписью внизу. "
+#~ "Подписи показываются для всех элементов."
+
+#~ msgid ""
+#~ "Display toolbar items with the text label beside the icon. Labels are "
+#~ "only shown for the most important items."
+#~ msgstr ""
+#~ "Отображать элементы панели инструментов в виде иконок с подписью, "
+#~ "располагаемой рядом. Подписи показываются только для наиболее важных "
+#~ "элементов."
+
+#~ msgid "Priority text besi_de icons"
+#~ msgstr "Текст _рядом с важными иконками"
+
+#~ msgid "Text _below icons"
+#~ msgstr "Текст _под иконками"
+
+#~ msgid "Use s_ystem default"
+#~ msgstr "Использовать _системные установки по умолчанию"
+
+#~ msgid "Use the date format common in continental Europe."
+#~ msgstr "Использовать формат даты, принятый в континентальной Европе."
+
+#~ msgid "Use the date format common in the United Kingdom."
+#~ msgstr "Использовать формат даты, принятый в Соединенном Королевстве."
+
+#~ msgid "Use the date format common in the United States."
+#~ msgstr "Использовать формат даты, принятый в Соединенных Штатах Америки."
+
+#~ msgid "Use the date format specified by the ISO-8601 standard."
+#~ msgstr "Использовать формат даты, соответствующий стандарту ISO-8601."
+
+#~ msgid "Use the system setting for displaying toolbar items."
+#~ msgstr ""
+#~ "Использовать системные настройки для отображения элементов панели "
+#~ "инструментов."
+
+#~ msgid "_Europe:"
+#~ msgstr "_Европейский:"
+
+#~ msgid "_Icons only"
+#~ msgstr "Только _иконки"
+
+#~ msgid "_Text only"
+#~ msgstr "Только _текст"
+
+#~ msgid ""
+#~ "Do you really want to overwrite your changes with the contents of the "
+#~ "template \"%s\"?"
+#~ msgstr "Желаете перезаписать изменения содержимым шаблона \"%s\"?"
+
+#~ msgid "Delete the currently selected report"
+#~ msgstr "Удалить выбранный отчёт"
+
+#~ msgid "Run the currently selected report"
+#~ msgstr "Выполнить текущий отчёт"
+
+#~ msgid "_Run"
+#~ msgstr "_Выполнить"
+
+#~ msgid "Add _Report"
+#~ msgstr "Добавить _отчёт"
+
+#~ msgid "Custom Reports"
+#~ msgstr "Пользовательские отчёты"
+
+#~ msgid ""
+#~ "Your report \"%s\" has been saved into the configuration file \"%s\"."
+#~ msgstr "Отчёт \"%s\" был сохранён в конфигурационном файле \"%s\"."
+
+#~ msgid "and"
+#~ msgstr "и"
+
+#~ msgid "Most recent to report"
+#~ msgstr "Последняя перед отчетом"
+
+#~ msgid "The most recent recorded price before report date"
+#~ msgstr "Последняя цена, записанная перед датой отчёта"
+
+#~ msgid "FILO"
+#~ msgstr "FILO"
+
+#~ msgid "Use first-in last-out method for basis"
+#~ msgstr "Использовать метод \"Первым пришел - последним уйдешь\""
+
+#~ msgid "Enable hyperlinks in reports"
+#~ msgstr "Разрешить ссылки в отчётах"
+
+#~ msgid "Welcome to GnuCash 2.4!"
+#~ msgstr "Добро пожаловать в GnuCash 2.4!"
+
+#~ msgid "The last stable version was "
+#~ msgstr "Последняя стабильная версия была "
+
+#~ msgid "The next stable version will be "
+#~ msgstr "Следующая стабильная версия будет "
+
+#~ msgid "Built %s from r%s"
+#~ msgstr "Сборка %s (r%s)"
+
+#~ msgid "You may not post an invoice with a negative total value."
+#~ msgstr "Нельзя ввести счёт-фактуру с отрицательной суммой."
+
+#~ msgid ""
+#~ "You may not post an expense voucher with a negative total cash value."
+#~ msgstr "Вы не можете ввести товарный чек с отрицательной суммой."
+
+#~ msgid "Your selected post account, %s, does not exist"
+#~ msgstr "Выбранный счёт для зачисления %s не существует"
+
+#~ msgid ""
+#~ "Days\n"
+#~ "Proximo"
+#~ msgstr ""
+#~ "Дней\n"
+#~ "Следующего месяца"
+
+#~ msgid "What Tax Table should be applied to this customer?"
+#~ msgstr "Какая таблица налогов должна быть применена к этому клиенту?"
+
+#, fuzzy
+#~ msgid ""
+#~ "The invoice being paid.\n"
+#~ "\n"
+#~ "Note that is field is optional. If you leave it blank, GnuCash will "
+#~ "automatically assign the payment to the first unpaid invoice for this "
+#~ "company."
+#~ msgstr ""
+#~ "Оплаченный счёт-фактура.\n"
+#~ "\n"
+#~ "Это поле не обязательно к заполнению. Если оставить его пустым, GnuCash "
+#~ "автоматически присвоит его первому неоплаченному счёту этой компании."
+
+#~ msgid "What Tax Table should be applied to this vendor?"
+#~ msgstr "Какая таблица налогов используется для этого поставщика?"
+
+#~ msgid "Reload invoice report"
+#~ msgstr "Перезагрузить отчёт по счету-фактуре"
+
+#~ msgid "Reload invoice report scheme file"
+#~ msgstr "Перезагрузить схему отчета счета-фактуры"
+
+#~ msgid "Reload owner report"
+#~ msgstr "Перезагрузить отчёт владельца"
+
+#~ msgid "Reload owner report scheme file"
+#~ msgstr "Перезагрузить схему отчёта владельца"
+
+#~ msgid "Reload receivable report"
+#~ msgstr "Перезагрузить отчёт по суммам, подлежащим получению"
+
+#~ msgid "Reload receivable report scheme file"
+#~ msgstr "Перезагрузить схему отчёта сумм, подлежащих получению"
+
+#~ msgid "Automatic Payment Forward"
+#~ msgstr "Автоматический наложенный платёж"
+
+#~ msgid "You must select a commodity."
+#~ msgstr "Вы должны выбрать товар."
+
+#~ msgid ""
+#~ "You must select closing date that is greater than the closing date of the "
+#~ "previous book."
+#~ msgstr ""
+#~ "Вы должны выбрать дату закрытия после той, которой была закрыта "
+#~ "предыдущая книга."
+
+#~ msgid "You must select closing date that is not in the future."
+#~ msgstr "Вы должны выбрать дату закрытия (не в будущем)."
+
+#~ msgid "Are you sure you want to cancel the Mortgage/Loan Setup Assistant?"
+#~ msgstr "Желаете выйти из мастера настройки залогов и займов?"
+
+#~ msgid "Please select a valid \"from\" account."
+#~ msgstr "Выберите корректный счёт \"откуда\"."
+
+#~ msgid "Please select a valid \"to\" account."
+#~ msgstr "Выберите корректный счёт \"куда\"."
+
+#~ msgid "Please select a valid \"interest\" account."
+#~ msgstr "Выберите правильный \"процентный\" счёт."
+
+#~ msgid "Payment: \"%s\""
+#~ msgstr "Платёж за: \"%s\""
+
+#~ msgid "You must enter a valid distribution amount."
+#~ msgstr "Вы должны указать правильное распределяемое количество."
+
+#~ msgid "You must enter a distribution amount."
+#~ msgstr "Вы должны указать распределяемое количество."
+
+#~ msgid "You must either enter a valid price or leave it blank."
+#~ msgstr ""
+#~ "Вы должны либо указать правильную цену, или оставить это поле пустым."
+
+#~ msgid "The price must be positive."
+#~ msgstr "Цена должна быть положительной."
+
+#~ msgid "You must either enter a valid cash amount or leave it blank."
+#~ msgstr ""
+#~ "Вы должны либо указать правильную сумму денег, или оставить это поле "
+#~ "пустым."
+
+#~ msgid "The cash distribution must be positive."
+#~ msgstr "Распределение денег должно быть положительным."
+
+#~ msgid "You must select an income account for the cash distribution."
+#~ msgstr "Вы должны выбрать приходный счёт для распределения наличных."
+
+#~ msgid "You must select an asset account for the cash distribution."
+#~ msgstr "Вы должны выбрать активный счёт для распределения наличных."
+
+#~ msgid "New Account (not implemented)"
+#~ msgstr "Новый счёт (не реализовано)"
+
+#~ msgid "Select or add a GnuCash account"
+#~ msgstr "Выберите или добавьте счёт GnuCash"
+
+#~ msgid ""
+#~ "Use Commodity Value\n"
+#~ "1\n"
+#~ "1/10\n"
+#~ "1/100\n"
+#~ "1/1000\n"
+#~ "1/10000\n"
+#~ "1/100000\n"
+#~ "1/1000000"
+#~ msgstr ""
+#~ "Использовать значение предмета\n"
+#~ "1\n"
+#~ "1/10\n"
+#~ "1/100\n"
+#~ "1/1000\n"
+#~ "1/10000\n"
+#~ "1/100000\n"
+#~ "1/1000000"
+
+#~ msgid "Enter a title for this book."
+#~ msgstr "Введите название этой книги."
+
+#~ msgid "Enter notes that describe this book."
+#~ msgstr "Введите примечание, описывающее эту книгу."
+
+#~ msgid "Finish Closing Books"
+#~ msgstr "Завершение закрытия книг"
+
+#~ msgid ""
+#~ "day(s)\n"
+#~ "week(s)\n"
+#~ "month(s)\n"
+#~ "year(s)"
+#~ msgstr ""
+#~ "день(дни)\n"
+#~ "неделя(ли)\n"
+#~ "месяц(ы)\n"
+#~ "год(ы)"
+
+#~ msgid "Account Information"
+#~ msgstr "Информация о счете"
+
+#~ msgid ""
+#~ "Annual\n"
+#~ "Semi-annual\n"
+#~ "Tri-annual\n"
+#~ "Quarterly\n"
+#~ "Bi-monthly\n"
+#~ "Monthly\n"
+#~ "Semi-monthly\n"
+#~ "Bi-weekly\n"
+#~ "Weekly\n"
+#~ "Daily (360)\n"
+#~ "Daily (365)"
+#~ msgstr ""
+#~ "Ежегодно\n"
+#~ "Раз в пол года\n"
+#~ "Три раза в год\n"
+#~ "Ежеквартально\n"
+#~ "Раз в два месяца\n"
+#~ "Помесячно\n"
+#~ "Два раза в месяц\n"
+#~ "Раз в две недели\n"
+#~ "Еженедельно\n"
+#~ "Ежедневно (360)\n"
+#~ "Ежедневно (365)"
+
+#~ msgid "Co_mpounding:"
+#~ msgstr "Компаундинг:"
+
+#~ msgid "_Effective Date:"
+#~ msgstr "Дата вступления в силу:"
+
+#~ msgid "_Initial Payment:"
+#~ msgstr "Начальный платёж:"
+
+#~ msgid "_Payments:"
+#~ msgstr "Платежи:"
+
+#~ msgid "<b>_Mini-Viewer</b>"
+#~ msgstr "<b>Мини-просмотр</b>"
+
+#~ msgid "A summary of all of the transactions in the selected lot"
+#~ msgstr "Сводка всех проводок в выбранном наборе"
+
+#~ msgid ""
+#~ "Bid\n"
+#~ "Ask\n"
+#~ "Last\n"
+#~ "Net Asset Value\n"
+#~ "Unknown"
+#~ msgstr ""
+#~ "Заявка\n"
+#~ "Запрос\n"
+#~ "Последний\n"
+#~ "Чистые активы\n"
+#~ "Неизвестно"
+
+#~ msgid ""
+#~ "Inches\n"
+#~ "Centimeters\n"
+#~ "Millimeters\n"
+#~ "Points"
+#~ msgstr ""
+#~ "Дюймы\n"
+#~ "Сантиметры\n"
+#~ "Миллиметры\n"
+#~ "Точки"
+
+#~ msgid ""
+#~ "Quicken/QuickBooks (tm) US-Letter\n"
+#~ "Deluxe(tm) Personal Checks US-Letter\n"
+#~ "Quicken(tm) Wallet Checks w/ side stub\n"
+#~ "Custom"
+#~ msgstr ""
+#~ "Quicken/QuickBooks (tm) US-Letter\n"
+#~ "Deluxe(tm) Personal Checks US-Letter\n"
+#~ "Quicken(tm) Wallet Checks с корешком\n"
+#~ "Настроить"
+
+#~ msgid ""
+#~ "Top\n"
+#~ "Middle\n"
+#~ "Bottom\n"
+#~ "Custom"
+#~ msgstr ""
+#~ "Верх\n"
+#~ "Середина\n"
+#~ "Низ\n"
+#~ "Настроить"
+
+#~ msgid "Copy Transaction"
+#~ msgstr "Копировать проводку"
+
+#~ msgid "Copy the selected transaction"
+#~ msgstr "Копировать выбранную проводку"
+
+#~ msgid "Cut Transaction"
+#~ msgstr "Вырезать проводку"
+
+#~ msgid "Dup_licate Transaction..."
+#~ msgstr "Дублировать проводку..."
+
+#~ msgid "Edit Exchange Rate"
+#~ msgstr "Изменить обменный курс"
+
+#~ msgid "Edit the exchange rate for the current split"
+#~ msgstr "Изменить обменный курс для текущей части"
+
+#~ msgid "Erase all splits except the one for this account."
+#~ msgstr "Удалить все части кроме одной проведенной этим счетом."
+
+#~ msgid "Jump"
+#~ msgstr "Перейти"
+
+#~ msgid "Remove Transaction Splits"
+#~ msgstr "Удалить части проводки"
+
+#~ msgid "Schedule..."
+#~ msgstr "Запланировать..."
+
+#~ msgid "Sort by Amount"
+#~ msgstr "Упорядочить по сумме"
+
+#~ msgid "Sort by Date"
+#~ msgstr "Упорядочить по дате"
+
+#~ msgid "Sort by Description"
+#~ msgstr "Упорядочить по описанию"
+
+#~ msgid "Sort by Memo"
+#~ msgstr "Упорядочить по памятке"
+
+#~ msgid "Sort by Number"
+#~ msgstr "Упорядочить по номеру"
+
+#~ msgid "St_yle"
+#~ msgstr "Стил_ь"
+
+#~ msgid "_Amount"
+#~ msgstr "_Сумма"
+
+#~ msgid "_Number"
+#~ msgstr "_Номер"
+
+#~ msgid "_Statement Date"
+#~ msgstr "_Дата декларации"
+
+#~ msgid ""
+#~ "1st\n"
+#~ "2nd\n"
+#~ "3rd\n"
+#~ "4th\n"
+#~ "5th\n"
+#~ "6th\n"
+#~ "7th\n"
+#~ "8th\n"
+#~ "9th\n"
+#~ "10th\n"
+#~ "11th\n"
+#~ "12th\n"
+#~ "13th\n"
+#~ "14th\n"
+#~ "15th\n"
+#~ "16th\n"
+#~ "17th\n"
+#~ "18th\n"
+#~ "19th\n"
+#~ "20th\n"
+#~ "21st\n"
+#~ "22nd\n"
+#~ "23rd\n"
+#~ "24th\n"
+#~ "25th\n"
+#~ "26th\n"
+#~ "27th\n"
+#~ "28th\n"
+#~ "29th\n"
+#~ "30th\n"
+#~ "31st\n"
+#~ "Last day of month\n"
+#~ "Last Monday\n"
+#~ "Last Tuesday\n"
+#~ "Last Wednesday\n"
+#~ "Last Thursday\n"
+#~ "Last Friday\n"
+#~ "Last Saturday\n"
+#~ "Last Sunday"
+#~ msgstr ""
+#~ "1-е\n"
+#~ "2-е\n"
+#~ "3-е\n"
+#~ "4-е\n"
+#~ "5-е\n"
+#~ "6-е\n"
+#~ "7-е\n"
+#~ "8-е\n"
+#~ "9-е\n"
+#~ "10-е\n"
+#~ "11-е\n"
+#~ "12-е\n"
+#~ "13-е\n"
+#~ "14-е\n"
+#~ "15-е\n"
+#~ "16-е\n"
+#~ "17-е\n"
+#~ "18-е\n"
+#~ "19-е\n"
+#~ "20-е\n"
+#~ "21-е\n"
+#~ "22-е\n"
+#~ "23-е\n"
+#~ "24-е\n"
+#~ "25-е\n"
+#~ "26-е\n"
+#~ "27-е\n"
+#~ "28-е\n"
+#~ "29-е\n"
+#~ "30-е\n"
+#~ "31-е\n"
+#~ "Последний день месяца\n"
+#~ "Последний понедельник\n"
+#~ "Последний вторник\n"
+#~ "Последняя среда\n"
+#~ "Последний четверг\n"
+#~ "Последняя пятница\n"
+#~ "Последняя суббота\n"
+#~ "Последнее воскресенье"
+
+#~ msgid "<b>End</b>"
+#~ msgstr "<b>Конец</b>"
+
+#~ msgid "<b>Upcoming</b>"
+#~ msgstr "<b>Предстоящее</b>"
+
+#~ msgid "Creation State"
+#~ msgstr "Состояние создания"
+
+#~ msgid ""
+#~ "Current Year\n"
+#~ "Now + 1 Year\n"
+#~ "Whole Loan\n"
+#~ "Custom"
+#~ msgstr ""
+#~ "Текущий год\n"
+#~ "Через год\n"
+#~ "Целая ссуда\n"
+#~ "Настроить"
+
+#~ msgid ""
+#~ "Daily\n"
+#~ "Weekly\n"
+#~ "Bi-Weekly\n"
+#~ "Monthly\n"
+#~ "Quarterly\n"
+#~ "Yearly"
+#~ msgstr ""
+#~ "Ежедневно\n"
+#~ "Еженедельно\n"
+#~ "Каждые две недели\n"
+#~ "Ежемесячно\n"
+#~ "Ежеквартально\n"
+#~ "Ежегодно"
+
+#~ msgid "Do you..."
+#~ msgstr "Вы желаете..."
+
+#~ msgid ""
+#~ "Fixed Rate\n"
+#~ "3/1 Year ARM\n"
+#~ "5/1 Year ARM\n"
+#~ "7/1 Year ARM\n"
+#~ "10/1 Year ARM"
+#~ msgstr ""
+#~ "Постоянная ставка\n"
+#~ "3/1 годовой ARM\n"
+#~ "5/1 годовой ARM\n"
+#~ "7/1 годовой ARM\n"
+#~ "10/1 годовой ARM"
+
+#~ msgid "Loan Information"
+#~ msgstr "Информация о займах"
+
+#~ msgid ""
+#~ "No change\n"
+#~ "Use previous weekday\n"
+#~ "Use next weekday"
+#~ msgstr ""
+#~ "Нет изменений\n"
+#~ "Используется предыдущий день недели\n"
+#~ "Используется следующий день недели"
+
+#~ msgid ""
+#~ "None\n"
+#~ "Once\n"
+#~ "Daily\n"
+#~ "Weekly\n"
+#~ "Semi-Monthly\n"
+#~ "Monthly"
+#~ msgstr ""
+#~ "Никогда\n"
+#~ "Однократно\n"
+#~ "Ежедневно\n"
+#~ "Еженедельно\n"
+#~ "Два раза в месяц\n"
+#~ "Ежемесячно"
+
+#~ msgid "Press apply to commit these changes."
+#~ msgstr "Нажмите 'Применить' для внесения изменений."
+
+#~ msgid "Repayment Type"
+#~ msgstr "Тип возврата"
+
+#~ msgid "Start Date: "
+#~ msgstr "Начальная дата: "
+
+#~ msgid ""
+#~ "months\n"
+#~ "years"
+#~ msgstr ""
+#~ "месяцев\n"
+#~ "лет"
+
+#~ msgid "Set the budget options using this dialog."
+#~ msgstr "Установите параметры бюджета используя данный диалог."
+
+#~ msgid "Case Insensitive?"
+#~ msgstr "Нечувствительность к регистру?"
+
+#~ msgid "That GnuCash XML file is already loaded. Please select another file."
+#~ msgstr ""
+#~ "Это GnuCash XML файл уже загружен. Пожалуйста, выберите другой файл."
+
+#~ msgid ""
+#~ "No files to merge. Please add ones by clicking on 'Load another file'."
+#~ msgstr ""
+#~ "Нет файлов для объединения. Пожалуйста, добавьте их, щелкнув на "
+#~ "\"Загрузить другой файл\"."
+
+#~ msgid "Finish changes"
+#~ msgstr "Изменение окончания"
+
+#~ msgid "Update gconf settings - GnuCash"
+#~ msgstr "Обновить настройки gconf - GnuCash"
+
+#~ msgid ""
+#~ "Click \"Load another file\" if you have more data to import at this time. "
+#~ "Do this if you have saved your accounts to separate GnuCash files.\n"
+#~ "\n"
+#~ "Click \"Forward\" to finish loading files and move to the next step of "
+#~ "the GnuCash Datafile import process."
+#~ msgstr ""
+#~ "Нажмите \"Загрузить другой файл\" если требуется импортировать еще "
+#~ "данные. Это может понадобиться в том случае, если счета были сохранены в "
+#~ "несколько отдельных файлов GnuCash.\n"
+#~ "\n"
+#~ "Нажмите \"Далее\", чтобы завершить загрузку файлов и перейти к следующему "
+#~ "шагу процесса импорта файлов."
+
+#~ msgid "Do not merge"
+#~ msgstr "Не объединять"
+
+#~ msgid "GnuCash data files you have loaded"
+#~ msgstr "Загруженные файлы данных GnuCash"
+
+#~ msgid "Load another file"
+#~ msgstr "Загрузить другой файл"
+
+#~ msgid "Unload selected file"
+#~ msgstr "Выгрузить выбранный файл"
+
+#~ msgid "<b>Current File List</b>"
+#~ msgstr "<b>Текущий список файлов</b>"
+
+#~ msgid ""
+#~ "Click \"Load another file\" if you have more data to load at this time.\n"
+#~ "\n"
+#~ "Click \"Next\" to finish loading files and move to the next step. "
+#~ msgstr ""
+#~ "Нажмите \"Загрузить другой файл\" есть еще файл для загрузки.\n"
+#~ "\n"
+#~ "Нажмите \"Далее\", чтобы завершить загрузку файлов и перейти на следующий "
+#~ "этап. "
+
+#~ msgid "<b>Exchange/Price Information</b>"
+#~ msgstr "<b>Информация о цене или курсе</b>"
+
+#~ msgid "To A_mount:"
+#~ msgstr "К сумме:"
+
+#~ msgid "_Exchange Rate:"
+#~ msgstr "Курс обмена:"
+
+#~ msgid "_From:"
+#~ msgstr "Откуда:"
+
+#~ msgid "_To:"
+#~ msgstr "Куда:"
+
+#~ msgid ""
+#~ "US (12/31/2001)\n"
+#~ "UK (31/12/2001)\n"
+#~ "Europe (31.12.2001)\n"
+#~ "ISO (2001-12-31)\n"
+#~ "UTC\n"
+#~ "Locale\n"
+#~ "Custom\n"
+#~ msgstr ""
+#~ "США (12/31/2001)\n"
+#~ "Англия (31/12/2001)\n"
+#~ "Европа (31.12.2001)\n"
+#~ "ISO (2001-12-31)\n"
+#~ "UTC\n"
+#~ "Местный\n"
+#~ "Пользовательский\n"
+
+#~ msgid "Don't tell me again this session."
+#~ msgstr "Больше не повторять в течение этой сессии."
+
+#~ msgid "Don't tell me again."
+#~ msgstr "Больше не повторять."
+
+#~ msgid "Remember the answer and don't tell me again this session."
+#~ msgstr "Запомнить ответ и больше не повторять в течение этой сессии."
+
+#~ msgid "Remember the answer and don't tell me again."
+#~ msgstr "Запомнить ответ и больше не повторять."
+
+#~ msgid "Failed to process file: %s"
+#~ msgstr "Сбой разбора файла: %s"
+
+#~ msgid "Failed to open file: %s: %s"
+#~ msgstr "Невозможно открыть файл \"%s\": %s"
+
+#~ msgid "Add a new transaction to the account"
+#~ msgstr "Добавить новую проводку на счёт"
+
+#~ msgid "Select an CSV/Fixed-Width file to import"
+#~ msgstr "Выберите файл CSV для импорта"
+
+#~ msgid "Import CSV/Fixed-Width File"
+#~ msgstr "Импорт CSV файла"
+
+#~ msgid "Import _CSV/Fixed-Width..."
+#~ msgstr "Импорт CSV..."
+
+#~ msgid " a CSV/Fixed-Width file"
+#~ msgstr " файл CSV"
+
+#~ 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 SKIPed by "
+#~ "default."
+#~ msgstr ""
+#~ "Разрешить действие \"Пропуск\" сравнивателю проводок. Если включено, то "
+#~ "проводка, чей лучший соответствующий счёт находится в жёлтой зоне (выше "
+#~ "порога автодобавления, но ниже порога автоочистки) будет пропущена по "
+#~ "умолчанию."
+
+#~ msgid ""
+#~ "For a new transaction, click on the \"Other Account\" entry to choose the "
+#~ "other (destination) account of this transaction.\n"
+#~ "For a transaction that is a duplicate of an existing one, click on the "
+#~ "\"Other Account\" or \"Description\" entry to \n"
+#~ "check whether GnuCash chose the right existing transaction.\n"
+#~ "To switch transactions between both states, click on the checkmark in the "
+#~ "\"New\" column.\n"
+#~ "When all new transactions have the correct destination account and all "
+#~ "duplicates are matched with the right existing transaction, \n"
+#~ "click \"OK\"."
+#~ msgstr ""
+#~ "Для новой проводки нажмите \"Другой счёт\" для выбора другого (целевого) "
+#~ "счёта этой проводки.\n"
+#~ "Для проводки, являющейся дубликатом уже имеющейся, нажмите на \"Другой "
+#~ "счет\" или \"Описание\" для проверки, может ли GnuCash выбрать правильную "
+#~ "существующую проводку.\n"
+#~ "Для переключения состояний проводок, нажмите на \"квадратик\" столбца "
+#~ "\"Новый\".\n"
+#~ "Когда у всех новых проводок будет правильный целевой счёт, и все "
+#~ "дубликаты будут соответствовать подходящим проводкам, нажмите \"ОК\"."
+
+#~ msgid "Other Account"
+#~ msgstr "Другой счет"
+
+#~ msgid "Period-as-decimal (1,000.00)"
+#~ msgstr "Десятичная точка (1,000.00)"
+
+#~ msgid "Comma-as-decimal (1.000,00)"
+#~ msgstr "Десятичная запятая (1.000,00)"
+
+#~ msgid "y-d-m"
+#~ msgstr "г-д-м"
+
+#~ msgid "(no)"
+#~ msgstr "(нет)"
+
+#~ msgid "You must enter an account name."
+#~ msgstr "Вы должны указать название счёта."
+
+#~ msgid ""
+#~ "No valid customer selected. Click on the Options button to select a "
+#~ "customer."
+#~ msgstr ""
+#~ "Подходящий клиент не выбран. Нажмите кнопку \"Настройки\" и выберите "
+#~ "клиента."
+
+#~ msgid ""
+#~ "No valid employee selected. Click on the Options button to select an "
+#~ "employee."
+#~ msgstr ""
+#~ "Подходящий работник не выбран. Нажмите кнопку \"Настройки\" и выберите "
+#~ "работника."
+
+#~ msgid ""
+#~ "No valid company selected. Click on the Options button to select a "
+#~ "company."
+#~ msgstr ""
+#~ "Подходящая фирма не выбрана. Нажмите кнопку \"Настройки\" и выберите "
+#~ "фирму."
+
+#~ msgid ""
+#~ "Blue items are exportable to a German Tax XML file. Press Export to "
+#~ "actually export them."
+#~ msgstr ""
+#~ "Голубые поля выгружатся в Германские налоговые XML файлы. Нажмите "
+#~ "\"Экспорт\", чтобы выгрузить их."
+
+#~ msgid ""
+#~ "No Tax Related accounts were found. Go to the Edit->Tax Options dialog to "
+#~ "set up tax-related accounts."
+#~ msgstr ""
+#~ "Нет налогооблагаемых счетов. Настройте их в \"Правка\" - \"Параметры "
+#~ "налогов\"."
+
+#~ msgid "Asterisk"
+#~ msgstr "Звездочка"
+
+#~ msgid ""
+#~ "A list of directories (strings) indicating where to look for html and "
+#~ "parsed-html files. Each element must be a string representing a directory "
+#~ "or a symbol where 'default expands to the default path, and 'current "
+#~ "expands to the current value of the path."
+#~ msgstr ""
+#~ "Список директорий, указывающих где искать html и обработанные html файлы. "
+#~ "Каждый элемент должен быть строкой, представляющей собой директорию или "
+#~ "символ, где \"'default\" означает путь по умолчанию и \"'current\" - "
+#~ "текущей путь."
+
+#~ msgid "Set the search path for documentation files"
+#~ msgstr "Установка пути поиска файлов документации"

commit 0210e11edeabc5275e9e5028914fa99b1b40da25
Author: Di Mang <dimang.freenet at gmail.com>
Date:   Sat Jan 20 02:01:39 2018 +0100

    ru.po: update PO-Revision-Date

diff --git a/po/ru.po b/po/ru.po
index f449fdf..f2f697a 100644
--- a/po/ru.po
+++ b/po/ru.po
@@ -15,7 +15,7 @@ msgstr ""
 "Project-Id-Version: GnuCash 2.6.19\n"
 "Report-Msgid-Bugs-To: \n"
 "POT-Creation-Date: 2018-01-19 22:36+0100\n"
-"PO-Revision-Date: 2017-10-01 04:09+0500\n"
+"PO-Revision-Date: 2018-01-19 22:36+0100\n"
 "Last-Translator: Dmitriy Mangul <dimang.freetime at gmail.com>\n"
 "Language-Team: russian <gnucash-ru at googlegroups.com>\n"
 "Language: ru\n"

commit 6678141f1d10a3ccbaeeb3b56be316cb0e5208bb
Author: Di Mang <dimang.freenet at gmail.com>
Date:   Sat Jan 20 01:54:06 2018 +0100

    ru.po: improvement of some translations

diff --git a/po/ru.po b/po/ru.po
index d1c1d15..f449fdf 100644
--- a/po/ru.po
+++ b/po/ru.po
@@ -4645,12 +4645,11 @@ msgid "Yearly"
 msgstr "Ежегодно"
 
 #: ../src/engine/ScrubBusiness.c:522
-#, fuzzy
 msgid ""
 "Please delete this transaction. Explanation at https://wiki.gnucash.org/wiki/"
 "Business_Features_Issues#Double_posting"
 msgstr ""
-"Удалите эту проводку. Объяснение: http://wiki.gnucash.org/wiki/"
+"Пожалуйста удалите эту проводку. Объяснение: http://wiki.gnucash.org/wiki/"
 "Business_Features_Issues#Double_Posting"
 
 #: ../src/engine/ScrubBusiness.c:592
@@ -14738,7 +14737,7 @@ msgstr "дней."
 #, fuzzy
 msgctxt "Weekly"
 msgid "Every"
-msgstr "Каждый"
+msgstr "Каждые"
 
 #: ../src/gnome-utils/gtkbuilder/gnc-frequency.glade.h:11
 #, fuzzy
@@ -22201,7 +22200,7 @@ msgstr "Выберите стиль оформления отчёта."
 
 #: ../src/report/report-system/report.scm:257
 msgid "stylesheet."
-msgstr "лист cтилей."
+msgstr "таблица стилей."
 
 #: ../src/report/report-system/report.scm:860
 msgid ""
@@ -22383,7 +22382,7 @@ msgstr "Максимум кусков"
 #: ../src/report/standard-reports/net-linechart.scm:57
 #: ../src/report/standard-reports/price-scatter.scm:59
 msgid "Plot Width"
-msgstr "Ширина рисования"
+msgstr "Ширина графика"
 
 #: ../src/report/standard-reports/account-piecharts.scm:76
 #: ../src/report/standard-reports/average-balance.scm:130
@@ -22394,7 +22393,7 @@ msgstr "Ширина рисования"
 #: ../src/report/standard-reports/net-linechart.scm:58
 #: ../src/report/standard-reports/price-scatter.scm:60
 msgid "Plot Height"
-msgstr "Высота рисования"
+msgstr "Высота графика"
 
 #: ../src/report/standard-reports/account-piecharts.scm:77
 #: ../src/report/standard-reports/category-barchart.scm:89
@@ -25477,7 +25476,7 @@ msgid ""
 "You can learn more about writing scheme at <http://www.scheme.com/tspl2d/"
 ">."
 msgstr ""
-"О создании схем вы можете узнать больше здесь: <http://www.scheme.com/"
+"О програмировании на Scheme вы можете узнать больше здесь: <http://www.scheme.com/"
 "tspl2d/>."
 
 #: ../src/report/utility-reports/hello-world.scm:363

commit 2836e026d6ec5ac76ce48bb5b1dcb285e0a384bb
Author: Di Mang <dimang.freenet at gmail.com>
Date:   Sat Jan 20 01:11:03 2018 +0100

    update ru.po to 2.6.19

diff --git a/po/ru.po b/po/ru.po
index 8451a09..d1c1d15 100644
--- a/po/ru.po
+++ b/po/ru.po
@@ -9,12 +9,12 @@
 # Sergey Belyashov <Sergey.Belyashov at gmail.com>, 2009, 2011.
 # Dmitry Pavlov  <zeldigas at gmail.com>, 2014.
 # ashed <craysy at gmail.com>, 2017
-# Dmitriy Mangul <dimang.freetime at gmail.com>, 2017
+# Dmitriy Mangul <dimang.freetime at gmail.com>, 2017, 2018
 msgid ""
 msgstr ""
-"Project-Id-Version: GnuCash 2.6.18\n"
+"Project-Id-Version: GnuCash 2.6.19\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2017-10-02 06:36+0200\n"
+"POT-Creation-Date: 2018-01-19 22:36+0100\n"
 "PO-Revision-Date: 2017-10-01 04:09+0500\n"
 "Last-Translator: Dmitriy Mangul <dimang.freetime at gmail.com>\n"
 "Language-Team: russian <gnucash-ru at googlegroups.com>\n"
@@ -340,8 +340,8 @@ msgid ""
 msgstr ""
 "Укажите число дней после истечения которых проводки будут доступны только "
 "для просмотра и не смогут быть отредактированы. Эта граница помечена красной "
-"линией в окне журнала проводок. Если установлено значение 0, то можно изменять "
-"все транзакции."
+"линией в окне журнала проводок. Если установлено значение 0, то можно "
+"изменять все транзакции."
 
 # TODO: check translation
 # "Отметьте для размещения поля с типом проводки,  для ввода номеров проводок. "
@@ -360,7 +360,9 @@ msgstr ""
 
 #: ../src/app-utils/business-prefs.scm:158
 msgid "Budget to be used when none has been otherwise specified."
-msgstr "Бюджет, который будет использоваться по умолчанию, если не указано что-то другое."
+msgstr ""
+"Бюджет, который будет использоваться по умолчанию, если не указано что-то "
+"другое."
 
 #: ../src/app-utils/date-utilities.scm:122
 #: ../src/report/standard-reports/account-piecharts.scm:470
@@ -371,7 +373,7 @@ msgstr "Бюджет, который будет использоваться п
 #: ../src/report/standard-reports/income-statement.scm:474
 #: ../src/report/standard-reports/net-barchart.scm:320
 #: ../src/report/standard-reports/net-linechart.scm:357
-#: ../src/report/standard-reports/price-scatter.scm:202
+#: ../src/report/standard-reports/price-scatter.scm:204
 #: ../src/report/standard-reports/trial-balance.scm:390
 msgid "%s to %s"
 msgstr "%s по %s"
@@ -546,7 +548,7 @@ msgstr "Конец следующего квартала"
 msgid "Last day of next quarterly accounting period."
 msgstr "Последний день следующего квартального учётного периода."
 
-#. CY Strings
+#. CY (current year) Strings
 #: ../src/app-utils/date-utilities.scm:972
 #: ../src/gnome-utils/gnc-cell-renderer-date.c:164
 #: ../src/gnome-utils/gnc-period-select.c:70
@@ -800,7 +802,7 @@ msgstr "Начальное сальдо"
 #: ../src/app-utils/guile-util.c:906
 #: ../src/business/business-gnome/gtkbuilder/dialog-payment.glade.h:8
 #: ../src/gnome/gnc-plugin-page-register2.c:2466
-#: ../src/gnome/gnc-plugin-page-register.c:2674
+#: ../src/gnome/gnc-plugin-page-register.c:2676
 #: ../src/gnome-utils/gnc-tree-view-split-reg.c:3199
 #: ../src/gnome-utils/gnc-tree-view-split-reg.c:3204
 #: ../src/register/ledger-core/split-register.c:2369
@@ -814,7 +816,7 @@ msgstr "Дебет"
 #: ../src/app-utils/guile-util.c:937
 #: ../src/business/business-gnome/gtkbuilder/dialog-payment.glade.h:9
 #: ../src/gnome/gnc-plugin-page-register2.c:2463
-#: ../src/gnome/gnc-plugin-page-register.c:2670
+#: ../src/gnome/gnc-plugin-page-register.c:2672
 #: ../src/gnome-utils/gnc-tree-model-split-reg.c:2898
 #: ../src/gnome-utils/gnc-tree-model-split-reg.c:2917
 #: ../src/gnome-utils/gnc-tree-model-split-reg.c:2935
@@ -877,9 +879,9 @@ msgstr "Приход"
 #: ../src/register/ledger-core/split-register.c:2519
 #: ../src/register/ledger-core/split-register.c:2524
 #: ../src/register/ledger-core/split-register.c:2535
-#: ../src/report/business-reports/customer-summary.scm:222
-#: ../src/report/business-reports/customer-summary.scm:223
-#: ../src/report/business-reports/owner-report.scm:344
+#: ../src/report/business-reports/customer-summary.scm:229
+#: ../src/report/business-reports/customer-summary.scm:230
+#: ../src/report/business-reports/owner-report.scm:348
 msgid "Payment"
 msgstr "Платёж"
 
@@ -955,8 +957,8 @@ msgstr "Расход"
 #: ../src/app-utils/prefs.scm:73 ../src/engine/Account.c:4008
 #: ../src/engine/gncInvoice.c:973
 #: ../src/gnome-utils/gnc-tree-view-split-reg.c:3161
-#: ../src/report/business-reports/customer-summary.scm:462
-#: ../src/report/business-reports/customer-summary.scm:847
+#: ../src/report/business-reports/customer-summary.scm:469
+#: ../src/report/business-reports/customer-summary.scm:855
 #: ../src/report/standard-reports/net-barchart.scm:351
 #: ../src/report/standard-reports/net-barchart.scm:413
 #: ../src/report/standard-reports/net-linechart.scm:389
@@ -975,7 +977,7 @@ msgstr "Издержки"
 #: ../src/gnome-utils/gnc-tree-view-split-reg.c:3173
 #: ../src/plugins/bi_import/gtkbuilder/dialog-bi-import-gui.glade.h:5
 #: ../src/register/ledger-core/split-register.c:2523
-#: ../src/report/business-reports/customer-summary.scm:509
+#: ../src/report/business-reports/customer-summary.scm:516
 #: ../src/report/business-reports/easy-invoice.scm:692
 #: ../src/report/business-reports/fancy-invoice.scm:791
 #: ../src/report/business-reports/invoice.scm:658
@@ -1064,7 +1066,7 @@ msgstr "Возврат"
 #: ../src/engine/gncInvoice.c:971 ../src/gnome-search/dialog-search.c:1053
 #: ../src/gnome-utils/gnc-tree-view-split-reg.c:3098
 #: ../src/plugins/bi_import/gtkbuilder/dialog-bi-import-gui.glade.h:3
-#: ../src/report/business-reports/customer-summary.scm:513
+#: ../src/report/business-reports/customer-summary.scm:520
 #: ../src/report/business-reports/easy-invoice.scm:710
 #: ../src/report/business-reports/fancy-invoice.scm:809
 #: ../src/report/business-reports/invoice.scm:679
@@ -1199,7 +1201,8 @@ msgid ""
 "This copy was built from %s rev %s on %s."
 msgstr ""
 "%s\n"
-"Эта копия собрана из %s, ревизия %s. \nДата сборки %s."
+"Эта копия собрана из %s, ревизия %s. \n"
+"Дата сборки %s."
 
 #: ../src/bin/gnucash-bin.c:458
 #, c-format
@@ -1353,7 +1356,7 @@ msgstr ""
 #: ../src/business/business-gnome/gtkbuilder/dialog-billterms.glade.h:17
 #: ../src/gnome-utils/gnc-date-delta.c:216
 #: ../src/gnome-utils/gtkbuilder/gnc-frequency.glade.h:19
-#: ../src/report/standard-reports/price-scatter.scm:228
+#: ../src/report/standard-reports/price-scatter.scm:230
 msgid "Days"
 msgstr "Дни"
 
@@ -1365,10 +1368,10 @@ msgstr "В следующем месяце"
 #: ../src/business/business-gnome/dialog-billterms.c:533
 #: ../src/business/business-gnome/gnc-plugin-page-owner-tree.c:607
 #: ../src/gnome/gtkbuilder/dialog-price.glade.h:27
-#: ../src/report/business-reports/customer-summary.scm:224
+#: ../src/report/business-reports/customer-summary.scm:231
 #: ../src/report/business-reports/job-report.scm:255
-#: ../src/report/business-reports/owner-report.scm:340
-#: ../src/report/business-reports/owner-report.scm:345
+#: ../src/report/business-reports/owner-report.scm:344
+#: ../src/report/business-reports/owner-report.scm:349
 msgid "Unknown"
 msgstr "Неизвестно"
 
@@ -1485,7 +1488,6 @@ msgstr "ID клиента"
 msgid "Contact"
 msgstr "Персона"
 
-#. FALL THROUGH
 #: ../src/business/business-gnome/dialog-customer.c:932
 #: ../src/business/business-gnome/dialog-invoice.c:3144
 #: ../src/business/business-gnome/dialog-invoice.c:3285
@@ -1493,7 +1495,7 @@ msgstr "Персона"
 #: ../src/business/business-gnome/dialog-order.c:885
 #: ../src/business/business-gnome/dialog-vendor.c:735
 #: ../src/report/business-reports/aging.scm:556
-#: ../src/report/business-reports/owner-report.scm:73
+#: ../src/report/business-reports/owner-report.scm:74
 msgid "Company"
 msgstr "Фирма"
 
@@ -1609,11 +1611,11 @@ msgstr "Данная запись прикреплена к заказу и бу
 #: ../src/register/ledger-core/split-register-model.c:231
 #: ../src/report/business-reports/aging.scm:406
 #: ../src/report/business-reports/easy-invoice.scm:304
-#: ../src/report/business-reports/fancy-invoice.scm:898
+#: ../src/report/business-reports/fancy-invoice.scm:901
 #: ../src/report/business-reports/invoice.scm:725
 #: ../src/report/business-reports/job-report.scm:44
 #: ../src/report/business-reports/owner-report.scm:51
-#: ../src/report/business-reports/owner-report.scm:569
+#: ../src/report/business-reports/owner-report.scm:573
 #: ../src/report/business-reports/taxinvoice.eguile.scm:243
 msgid "Due Date"
 msgstr "Дата оплаты"
@@ -1621,7 +1623,7 @@ msgstr "Дата оплаты"
 #. Should be using standard label for due date?
 #: ../src/business/business-gnome/dialog-invoice.c:693
 #: ../src/report/business-reports/aging.scm:407
-#: ../src/report/business-reports/owner-report.scm:570
+#: ../src/report/business-reports/owner-report.scm:574
 msgid "Post Date"
 msgstr "Дата ввода"
 
@@ -1800,7 +1802,7 @@ msgstr "Просмотреть/изменить счёт-фактуру"
 #: ../src/business/business-gnome/dialog-invoice.c:3020
 #: ../src/business/business-gnome/gnc-plugin-page-invoice.c:261
 #: ../src/gnome/gnc-plugin-page-register2.c:480
-#: ../src/gnome/gnc-plugin-page-register.c:485
+#: ../src/gnome/gnc-plugin-page-register.c:487
 msgid "Duplicate"
 msgstr "Дублировать"
 
@@ -1920,9 +1922,9 @@ msgstr "Примечание к товарному чеку"
 #: ../src/gnome-utils/gnc-tree-view-owner.c:429
 #: ../src/gnome-utils/gnc-tree-view-price.c:448
 #: ../src/gnome-utils/gnc-tree-view-split-reg.c:2972
-#: ../src/import-export/csv-exp/csv-transactions-export.c:421
-#: ../src/register/ledger-core/split-register-model.c:353
-#: ../src/report/business-reports/customer-summary.scm:69
+#: ../src/import-export/csv-exp/csv-transactions-export.c:424
+#: ../src/register/ledger-core/split-register-model.c:354
+#: ../src/report/business-reports/customer-summary.scm:73
 #: ../src/report/business-reports/job-report.scm:46
 #: ../src/report/business-reports/owner-report.scm:53
 #: ../src/report/standard-reports/account-summary.scm:441
@@ -1931,7 +1933,7 @@ msgid "Type"
 msgstr "Тип"
 
 #: ../src/business/business-gnome/dialog-invoice.c:3139
-#: ../src/register/ledger-core/split-register-model.c:300
+#: ../src/register/ledger-core/split-register-model.c:301
 msgid "Paid"
 msgstr "Оплачено"
 
@@ -1957,8 +1959,8 @@ msgstr "Открыто"
 #: ../src/gnome/dialog-lot-viewer.c:919 ../src/gnome/reconcile-view.c:381
 #: ../src/gnome/reconcile-view.c:385
 #: ../src/import-export/csv-imp/gnc-csv-model.c:72
-#: ../src/register/ledger-core/split-register-model.c:246
-#: ../src/register/ledger-core/split-register-model.c:266
+#: ../src/register/ledger-core/split-register-model.c:247
+#: ../src/register/ledger-core/split-register-model.c:267
 #: ../src/report/standard-reports/general-journal.scm:110
 #: ../src/report/standard-reports/general-ledger.scm:99
 #: ../src/report/standard-reports/register.scm:146
@@ -2001,13 +2003,13 @@ msgstr "Ст?"
 #: ../src/gnome/dialog-lot-viewer.c:931 ../src/gnome/reconcile-view.c:373
 #: ../src/gnome-utils/gnc-tree-view-split-reg.c:2992
 #: ../src/gnome-utils/gnc-tree-view-split-reg.c:3004
-#: ../src/import-export/aqb/dialog-ab.glade.h:35
-#: ../src/import-export/import-main-matcher.c:467
+#: ../src/import-export/aqb/dialog-ab.glade.h:39
+#: ../src/import-export/import-main-matcher.c:469
 #: ../src/import-export/import-match-picker.c:394
 #: ../src/import-export/import-match-picker.c:434
 #: ../src/import-export/qif-imp/assistant-qif-import.c:3508
 #: ../src/import-export/qif-imp/assistant-qif-import.c:3545
-#: ../src/report/business-reports/customer-summary.scm:71
+#: ../src/report/business-reports/customer-summary.scm:75
 #: ../src/report/business-reports/job-report.scm:48
 #: ../src/report/business-reports/owner-report.scm:57
 #: ../src/report/report-system/options-utilities.scm:244
@@ -2626,7 +2628,7 @@ msgid "Keep normal invoice order"
 msgstr "Сохранять нормальный порядок счетов"
 
 #: ../src/business/business-gnome/gnc-plugin-page-invoice.c:210
-#: ../src/gnome/gtkbuilder/gnc-plugin-page-register.glade.h:29
+#: ../src/gnome/gtkbuilder/gnc-plugin-page-register.glade.h:37
 msgid "_Date"
 msgstr "_Дата"
 
@@ -2635,7 +2637,7 @@ msgid "Sort by date"
 msgstr "Упорядочить по дате"
 
 #: ../src/business/business-gnome/gnc-plugin-page-invoice.c:211
-#: ../src/gnome/gtkbuilder/gnc-plugin-page-register.glade.h:31
+#: ../src/gnome/gtkbuilder/gnc-plugin-page-register.glade.h:39
 msgid "Date of _Entry"
 msgstr "Дата _записи"
 
@@ -2664,7 +2666,7 @@ msgid "Sort by price"
 msgstr "Упорядочить по цене"
 
 #: ../src/business/business-gnome/gnc-plugin-page-invoice.c:214
-#: ../src/gnome/gtkbuilder/gnc-plugin-page-register.glade.h:41
+#: ../src/gnome/gtkbuilder/gnc-plugin-page-register.glade.h:49
 msgid "Descri_ption"
 msgstr "Опис_ание"
 
@@ -2674,13 +2676,13 @@ msgstr "Упорядочить по описанию"
 
 #: ../src/business/business-gnome/gnc-plugin-page-invoice.c:258
 #: ../src/gnome/gnc-plugin-page-register2.c:477
-#: ../src/gnome/gnc-plugin-page-register.c:482
+#: ../src/gnome/gnc-plugin-page-register.c:484
 msgid "Enter"
 msgstr "Ввести"
 
 #: ../src/business/business-gnome/gnc-plugin-page-invoice.c:259
 #: ../src/gnome/gnc-plugin-page-register2.c:478
-#: ../src/gnome/gnc-plugin-page-register.c:483
+#: ../src/gnome/gnc-plugin-page-register.c:485
 #: ../src/gnome-utils/gnc-cell-renderer-date.c:158
 msgid "Cancel"
 msgstr "Отменить"
@@ -2689,7 +2691,7 @@ msgstr "Отменить"
 #: ../src/gnome/gnc-plugin-page-account-tree.c:346
 #: ../src/gnome/gnc-plugin-page-budget.c:177
 #: ../src/gnome/gnc-plugin-page-register2.c:479
-#: ../src/gnome/gnc-plugin-page-register.c:484
+#: ../src/gnome/gnc-plugin-page-register.c:486
 msgid "Delete"
 msgstr "Удалить"
 
@@ -2705,7 +2707,7 @@ msgstr "Вниз"
 
 #: ../src/business/business-gnome/gnc-plugin-page-invoice.c:264
 #: ../src/gnome/gnc-plugin-page-register2.c:483
-#: ../src/gnome/gnc-plugin-page-register.c:488
+#: ../src/gnome/gnc-plugin-page-register.c:490
 msgid "Blank"
 msgstr "Очистить"
 
@@ -2804,7 +2806,7 @@ msgstr "Показать обзор возраста клиентов для в
 
 #: ../src/business/business-gnome/gnc-plugin-page-owner-tree.c:212
 #: ../src/report/business-reports/job-report.scm:580
-#: ../src/report/business-reports/owner-report.scm:828
+#: ../src/report/business-reports/owner-report.scm:832
 msgid "Vendor Report"
 msgstr "Отчёт по поставщику"
 
@@ -2814,7 +2816,7 @@ msgstr "Показать отчёт по поставщику"
 
 #: ../src/business/business-gnome/gnc-plugin-page-owner-tree.c:217
 #: ../src/report/business-reports/job-report.scm:574
-#: ../src/report/business-reports/owner-report.scm:819
+#: ../src/report/business-reports/owner-report.scm:823
 msgid "Customer Report"
 msgstr "Отчёт по клиенту"
 
@@ -2824,7 +2826,7 @@ msgstr "Показать отчёт по клиенту"
 
 #: ../src/business/business-gnome/gnc-plugin-page-owner-tree.c:222
 #: ../src/report/business-reports/job-report.scm:583
-#: ../src/report/business-reports/owner-report.scm:837
+#: ../src/report/business-reports/owner-report.scm:841
 msgid "Employee Report"
 msgstr "Отчёт по работнику"
 
@@ -3084,7 +3086,7 @@ msgid "Easy Invoice"
 msgstr "Простой счёт-фактура"
 
 #: ../src/business/business-gnome/gtkbuilder/business-prefs.glade.h:4
-#: ../src/report/business-reports/fancy-invoice.scm:1013
+#: ../src/report/business-reports/fancy-invoice.scm:1017
 #: ../src/report/report-gnome/gnc-plugin-page-report.c:1779
 msgid "Fancy Invoice"
 msgstr "Современный счёт-фактура"
@@ -3170,6 +3172,7 @@ msgstr ""
 "Если выбрано, каждая счёт-фактура будет открыта в отдельном окне. Если нет - "
 "счета будут открываться в текущем окне."
 
+#. Preferences Dialog, General Tab
 #: ../src/business/business-gnome/gtkbuilder/business-prefs.glade.h:20
 #: ../src/gnome-utils/gtkbuilder/dialog-preferences.glade.h:69
 msgid "<b>General</b>"
@@ -3301,7 +3304,7 @@ msgstr "Таблица"
 #: ../src/business/business-gnome/gtkbuilder/dialog-billterms.glade.h:27
 #: ../src/business/business-gnome/gtkbuilder/dialog-invoice.glade.h:12
 #: ../src/report/business-reports/easy-invoice.scm:840
-#: ../src/report/business-reports/fancy-invoice.scm:947
+#: ../src/report/business-reports/fancy-invoice.scm:951
 #: ../src/report/business-reports/invoice.scm:765
 msgid "Terms"
 msgstr "Сроки"
@@ -3339,15 +3342,15 @@ msgstr "Диалог выбора владельца"
 #: ../src/gnome-utils/gnc-tree-model-budget.c:102
 #: ../src/gnome-utils/gnc-tree-view-account.c:742
 #: ../src/gnome-utils/gnc-tree-view-split-reg.c:2912
-#: ../src/import-export/csv-exp/csv-transactions-export.c:419
+#: ../src/import-export/csv-exp/csv-transactions-export.c:422
 #: ../src/import-export/csv-imp/gnc-csv-model.c:73
-#: ../src/import-export/import-main-matcher.c:468
+#: ../src/import-export/import-main-matcher.c:470
 #: ../src/import-export/import-match-picker.c:395
 #: ../src/import-export/import-match-picker.c:435
 #: ../src/import-export/qif-imp/assistant-qif-import.c:3499
 #: ../src/import-export/qif-imp/assistant-qif-import.c:3536
-#: ../src/register/ledger-core/split-register-model.c:286
-#: ../src/report/business-reports/customer-summary.scm:70
+#: ../src/register/ledger-core/split-register-model.c:287
+#: ../src/report/business-reports/customer-summary.scm:74
 #: ../src/report/business-reports/easy-invoice.scm:112
 #: ../src/report/business-reports/easy-invoice.scm:254
 #: ../src/report/business-reports/fancy-invoice.scm:130
@@ -3450,9 +3453,9 @@ msgstr "Назначение платежа"
 #: ../src/gnome-utils/gnc-tree-view-account.c:871
 #: ../src/gnome-utils/gnc-tree-view-owner.c:501
 #: ../src/gnome-utils/gnc-tree-view-split-reg.c:2914
-#: ../src/import-export/csv-exp/csv-transactions-export.c:419
+#: ../src/import-export/csv-exp/csv-transactions-export.c:422
 #: ../src/import-export/csv-imp/gnc-csv-model.c:74
-#: ../src/register/ledger-core/split-register-model.c:475
+#: ../src/register/ledger-core/split-register-model.c:476
 #: ../src/report/business-reports/balsheet-eg.scm:301
 #: ../src/report/business-reports/taxinvoice.scm:91
 #: ../src/report/standard-reports/account-summary.scm:483
@@ -3464,19 +3467,18 @@ msgstr "Назначение платежа"
 msgid "Notes"
 msgstr "Заметки"
 
-#. Translators: "Markup" is profit amount divided by sales amount
 #: ../src/business/business-gnome/gtkbuilder/dialog-customer.glade.h:14
 #: ../src/business/business-gnome/gtkbuilder/dialog-invoice.glade.h:24
 #: ../src/business/business-gnome/search-owner.c:238
 #: ../src/gnome-search/dialog-search.c:1057
 #: ../src/gnome-utils/gnc-tree-view-split-reg.c:2883
 #: ../src/plugins/customer_import/gtkbuilder/dialog-customer-import-gui.glade.h:3
-#: ../src/register/ledger-core/split-register-model.c:282
-#: ../src/report/business-reports/customer-summary.scm:728
-#: ../src/report/business-reports/customer-summary.scm:839
+#: ../src/register/ledger-core/split-register-model.c:283
+#: ../src/report/business-reports/customer-summary.scm:735
+#: ../src/report/business-reports/customer-summary.scm:845
 #: ../src/report/business-reports/job-report.scm:573
 #: ../src/report/business-reports/owner-report.scm:70
-#: ../src/report/business-reports/owner-report.scm:108
+#: ../src/report/business-reports/owner-report.scm:111
 msgid "Customer"
 msgstr "Клиент"
 
@@ -3576,10 +3578,10 @@ msgstr "Кредитный счет"
 #: ../src/business/business-gnome/gtkbuilder/dialog-employee.glade.h:20
 #: ../src/business/business-gnome/search-owner.c:240
 #: ../src/gnome-search/dialog-search.c:1061
-#: ../src/report/business-reports/customer-summary.scm:732
+#: ../src/report/business-reports/customer-summary.scm:739
 #: ../src/report/business-reports/job-report.scm:582
 #: ../src/report/business-reports/owner-report.scm:71
-#: ../src/report/business-reports/owner-report.scm:109
+#: ../src/report/business-reports/owner-report.scm:112
 msgid "Employee"
 msgstr "Работник"
 
@@ -3706,8 +3708,8 @@ msgstr "Информация о заказе"
 
 #: ../src/business/business-gnome/gtkbuilder/dialog-order.glade.h:7
 #: ../src/gnome-utils/gnc-tree-view-split-reg.c:2847
-#: ../src/report/business-reports/customer-summary.scm:68
-#: ../src/report/business-reports/fancy-invoice.scm:935
+#: ../src/report/business-reports/customer-summary.scm:72
+#: ../src/report/business-reports/fancy-invoice.scm:939
 #: ../src/report/business-reports/invoice.scm:752
 #: ../src/report/business-reports/job-report.scm:45
 #: ../src/report/business-reports/owner-report.scm:52
@@ -3738,24 +3740,24 @@ msgstr "Фирма, связанная с этим платежом."
 msgid "Post To"
 msgstr "Ввести в"
 
-#. Header string
-#. Add the columns
+#. Translators: The following symbols will build the *
+#. * header line of exported CSV files:
 #: ../src/business/business-gnome/gtkbuilder/dialog-payment.glade.h:5
 #: ../src/business/business-ledger/gncEntryLedgerModel.c:61
 #: ../src/gnome/assistant-loan.c:1825 ../src/gnome/dialog-lot-viewer.c:909
 #: ../src/gnome/gtkbuilder/gnc-plugin-page-register2.glade.h:16
-#: ../src/gnome/gtkbuilder/gnc-plugin-page-register.glade.h:17
+#: ../src/gnome/gtkbuilder/gnc-plugin-page-register.glade.h:22
 #: ../src/gnome/reconcile-view.c:389
 #: ../src/gnome-utils/gnc-tree-view-price.c:436
-#: ../src/import-export/csv-exp/csv-transactions-export.c:417
+#: ../src/import-export/csv-exp/csv-transactions-export.c:420
 #: ../src/import-export/csv-imp/gnc-csv-model.c:71
-#: ../src/import-export/import-main-matcher.c:464
+#: ../src/import-export/import-main-matcher.c:466
 #: ../src/import-export/import-match-picker.c:393
 #: ../src/import-export/import-match-picker.c:433
 #: ../src/import-export/qif-imp/assistant-qif-import.c:3491
 #: ../src/import-export/qif-imp/assistant-qif-import.c:3528
 #: ../src/register/ledger-core/split-register-model.c:224
-#: ../src/report/business-reports/customer-summary.scm:67
+#: ../src/report/business-reports/customer-summary.scm:71
 #: ../src/report/business-reports/easy-invoice.scm:110
 #: ../src/report/business-reports/easy-invoice.scm:249
 #: ../src/report/business-reports/easy-invoice.scm:797
@@ -3794,12 +3796,12 @@ msgstr "Дата"
 #: ../src/gnome/dialog-find-transactions.c:133
 #: ../src/gnome/dialog-find-transactions.c:168
 #: ../src/gnome/dialog-find-transactions.c:176
-#: ../src/gnome/gnc-plugin-page-register.c:1886
+#: ../src/gnome/gnc-plugin-page-register.c:1888
 #: ../src/gnome-search/dialog-search.c:894
 #: ../src/gnome-search/dialog-search.c:902
 #: ../src/gnome-utils/gnc-tree-view-split-reg.c:2865
 #: ../src/gnome-utils/gtkbuilder/gnc-date-format.glade.h:6
-#: ../src/import-export/csv-exp/csv-transactions-export.c:418
+#: ../src/import-export/csv-exp/csv-transactions-export.c:421
 #: ../src/report/standard-reports/transaction.scm:826
 msgid "Number"
 msgstr "Номер"
@@ -3844,11 +3846,11 @@ msgstr "Возврат средств"
 #: ../src/gnome-utils/gnc-tree-view-split-reg.c:2896
 #: ../src/gnome-utils/gnc-tree-view-split-reg.c:2898
 #: ../src/gnome-utils/gnc-tree-view-split-reg.c:2916
-#: ../src/import-export/csv-exp/csv-transactions-export.c:420
-#: ../src/import-export/import-main-matcher.c:469
+#: ../src/import-export/csv-exp/csv-transactions-export.c:423
+#: ../src/import-export/import-main-matcher.c:471
 #: ../src/import-export/import-match-picker.c:396
 #: ../src/import-export/import-match-picker.c:436
-#: ../src/register/ledger-core/split-register-model.c:346
+#: ../src/register/ledger-core/split-register-model.c:347
 #: ../src/report/standard-reports/general-ledger.scm:81
 #: ../src/report/standard-reports/general-ledger.scm:101
 #: ../src/report/standard-reports/register.scm:150
@@ -3887,16 +3889,15 @@ msgstr ""
 "Идентификатор поставщика. Если оставлено незаполненным, подходящее  число "
 "будет проставлено автоматически"
 
-#. FALL THROUGH
 #: ../src/business/business-gnome/gtkbuilder/dialog-vendor.glade.h:14
 #: ../src/business/business-gnome/search-owner.c:239
 #: ../src/gnome-search/dialog-search.c:1089
 #: ../src/gnome-utils/gnc-tree-view-split-reg.c:2894
 #: ../src/plugins/customer_import/gtkbuilder/dialog-customer-import-gui.glade.h:5
-#: ../src/register/ledger-core/split-register-model.c:284
-#: ../src/report/business-reports/customer-summary.scm:730
+#: ../src/register/ledger-core/split-register-model.c:285
+#: ../src/report/business-reports/customer-summary.scm:737
 #: ../src/report/business-reports/job-report.scm:579
-#: ../src/report/business-reports/owner-report.scm:111
+#: ../src/report/business-reports/owner-report.scm:115
 msgid "Vendor"
 msgstr "Поставщик"
 
@@ -3929,14 +3930,14 @@ msgstr "не является"
 
 #: ../src/business/business-ledger/gncEntryLedger.c:85
 #: ../src/gnome-utils/dialog-transfer.c:1455
-#: ../src/gnome-utils/gnc-tree-control-split-reg.c:1961
+#: ../src/gnome-utils/gnc-tree-control-split-reg.c:1962
 #: ../src/register/ledger-core/split-register.c:1830
 #, c-format
 msgid "The account %s does not allow transactions."
 msgstr "Счет %s не поддерживает проводки."
 
 #: ../src/business/business-ledger/gncEntryLedger.c:86
-#: ../src/gnome-utils/gnc-tree-control-split-reg.c:1962
+#: ../src/gnome-utils/gnc-tree-control-split-reg.c:1963
 #: ../src/register/ledger-core/split-register.c:1831
 #, c-format
 msgid "The account %s does not exist. Would you like to create it?"
@@ -4017,9 +4018,14 @@ msgstr "Текущая позиция была изменена. Сохрани
 msgid "sample:X"
 msgstr "sample:X"
 
+#. Translators: The 'sample:' items are
+#. strings which are not displayed, but only
+#. used to estimate widths. Please only
+#. translate the portion after the ':' and
+#. leave the rest ("sample:") as is.
 #: ../src/business/business-ledger/gncEntryLedgerLayout.c:80
-#: ../src/register/ledger-core/split-register-layout.c:637
-#: ../src/register/ledger-core/split-register-layout.c:645
+#: ../src/register/ledger-core/split-register-layout.c:642
+#: ../src/register/ledger-core/split-register-layout.c:650
 msgid "sample:12/12/2000"
 msgstr "sample:12/12/2000"
 
@@ -4051,8 +4057,8 @@ msgstr "sample(DH):+%"
 
 #: ../src/business/business-ledger/gncEntryLedgerLayout.c:116
 #: ../src/business/business-ledger/gncEntryLedgerLayout.c:121
-#: ../src/register/ledger-core/split-register-layout.c:722
-#: ../src/register/ledger-core/split-register-layout.c:730
+#: ../src/register/ledger-core/split-register-layout.c:735
+#: ../src/register/ledger-core/split-register-layout.c:743
 msgid "sample:Expenses:Automobile:Gasoline"
 msgstr "sample:Расходы:Автомобиль:Топливо"
 
@@ -4129,15 +4135,15 @@ msgstr "Расходный счет"
 #: ../src/gnome/dialog-find-transactions.c:129
 #: ../src/gnome/dialog-find-transactions.c:166
 #: ../src/gnome/dialog-find-transactions.c:174
-#: ../src/gnome/gnc-plugin-page-register.c:1887
+#: ../src/gnome/gnc-plugin-page-register.c:1889
 #: ../src/gnome-search/dialog-search.c:892
 #: ../src/gnome-search/dialog-search.c:900
 #: ../src/gnome-utils/gnc-tree-view-split-reg.c:2849
 #: ../src/gnome-utils/gnc-tree-view-split-reg.c:2851
 #: ../src/gnome-utils/gnc-tree-view-split-reg.c:2869
 #: ../src/gnome-utils/gnc-tree-view-split-reg.c:2871
-#: ../src/import-export/csv-exp/csv-transactions-export.c:422
-#: ../src/register/ledger-core/split-register-model.c:318
+#: ../src/import-export/csv-exp/csv-transactions-export.c:425
+#: ../src/register/ledger-core/split-register-model.c:319
 #: ../src/report/business-reports/fancy-invoice.scm:269
 #: ../src/report/business-reports/invoice.scm:254
 msgid "Action"
@@ -4225,7 +4231,7 @@ msgstr "Введите тип позиции"
 
 #: ../src/business/business-ledger/gncEntryLedgerModel.c:585
 #: ../src/gnome-utils/gnc-tree-util-split-reg.c:460
-#: ../src/register/ledger-core/split-register-model.c:945
+#: ../src/register/ledger-core/split-register-model.c:946
 msgid "%A %d %B %Y"
 msgstr "%A %d %B %Y"
 
@@ -4329,7 +4335,7 @@ msgstr "Эта запись оплачивается клиентом или о
 msgid "How did you pay for this item?"
 msgstr "Как вы оплатили этот пункт?"
 
-#: ../src/core-utils/gnc-features.c:117
+#: ../src/core-utils/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 "
@@ -4562,7 +4568,7 @@ msgstr "Еженедельно"
 #. translators: %u is the recurrence multiplier.
 #: ../src/engine/Recurrence.c:603 ../src/engine/Recurrence.c:692
 #: ../src/engine/Recurrence.c:723 ../src/engine/Recurrence.c:740
-#: ../src/engine/Recurrence.c:754 ../src/engine/Recurrence.c:766
+#: ../src/engine/Recurrence.c:756 ../src/engine/Recurrence.c:768
 #, c-format
 msgid " (x%u)"
 msgstr " (x%u)"
@@ -4622,9 +4628,7 @@ msgstr "Однократно"
 msgid "Daily"
 msgstr "Ежедневно"
 
-#. g_warning("nth weekday not handled");
-#. g_string_printf(buf, "@fixme: nth weekday not handled");
-#: ../src/engine/Recurrence.c:736 ../src/engine/Recurrence.c:750
+#: ../src/engine/Recurrence.c:736 ../src/engine/Recurrence.c:752
 #: ../src/gnome/gtkbuilder/dialog-fincalc.glade.h:29
 #: ../src/gnome/gtkbuilder/dialog-sx.glade.h:43
 #: ../src/gnome-utils/gtkbuilder/gnc-frequency.glade.h:30
@@ -4634,16 +4638,17 @@ msgstr "Ежедневно"
 msgid "Monthly"
 msgstr "Ежемесячно"
 
-#: ../src/engine/Recurrence.c:762 ../src/gnome/gtkbuilder/dialog-sx.glade.h:45
+#: ../src/engine/Recurrence.c:764 ../src/gnome/gtkbuilder/dialog-sx.glade.h:45
 #: ../src/report/standard-reports/account-piecharts.scm:119
 #: ../src/report/standard-reports/transaction.scm:848
 msgid "Yearly"
 msgstr "Ежегодно"
 
 #: ../src/engine/ScrubBusiness.c:522
+#, fuzzy
 msgid ""
-"Please delete this transaction. Explanation at http://wiki.gnucash.org/wiki/"
-"Business_Features_Issues#Double_Posting"
+"Please delete this transaction. Explanation at https://wiki.gnucash.org/wiki/"
+"Business_Features_Issues#Double_posting"
 msgstr ""
 "Удалите эту проводку. Объяснение: http://wiki.gnucash.org/wiki/"
 "Business_Features_Issues#Double_Posting"
@@ -4658,8 +4663,7 @@ msgstr "Проверка бизнес-лотов в счёте %s: %u из %u"
 msgid "Checking business splits in account %s: %u of %u"
 msgstr "Проверка бизнес-разделений в счёте %s: %u из %u"
 
-#. Reason 2: zero Orphan a/c
-#: ../src/engine/Scrub.c:89 ../src/report/business-reports/balsheet-eg.scm:511
+#: ../src/engine/Scrub.c:89 ../src/report/business-reports/balsheet-eg.scm:514
 msgid "Orphan"
 msgstr "Упущенный"
 
@@ -4673,10 +4677,8 @@ msgstr "Просмотр потерянных в счёте %s: %u из %u"
 msgid "Looking for imbalances in account %s: %u of %u"
 msgstr "Поиск дисбаланса в счёте %s: %u из %u"
 
-#. (> (accrec-depth accrec) 1))
-#. Reason 1: zero Imbalance a/c
 #: ../src/engine/Scrub.c:363 ../src/gnome-utils/gnc-tree-view-split-reg.c:1292
-#: ../src/report/business-reports/balsheet-eg.scm:509
+#: ../src/report/business-reports/balsheet-eg.scm:511
 msgid "Imbalance"
 msgstr "Дисбаланс"
 
@@ -4933,15 +4935,15 @@ msgstr "Ошибка при добавлении цены."
 #: ../src/gnome-utils/gnc-icons.c:38
 #: ../src/import-export/aqb/gnc-ab-utils.c:469
 #: ../src/import-export/csv-imp/gnc-csv-model.c:75
-#: ../src/import-export/import-main-matcher.c:465
+#: ../src/import-export/import-main-matcher.c:467
 #: ../src/import-export/import-match-picker.c:392
 #: ../src/import-export/qif-imp/dialog-account-picker.c:369
-#: ../src/register/ledger-core/split-register-model.c:332
+#: ../src/register/ledger-core/split-register-model.c:333
 #: ../src/report/business-reports/job-report.scm:39
 #: ../src/report/business-reports/owner-report.scm:48
 #: ../src/report/standard-reports/advanced-portfolio.scm:1042
-#: ../src/report/standard-reports/budget-flow.scm:43
-#: ../src/report/standard-reports/budget.scm:48
+#: ../src/report/standard-reports/budget-flow.scm:44
+#: ../src/report/standard-reports/budget.scm:49
 #: ../src/report/standard-reports/cash-flow.scm:51
 #: ../src/report/standard-reports/general-journal.scm:112
 #: ../src/report/standard-reports/portfolio.scm:243
@@ -4961,7 +4963,7 @@ msgstr "Символ"
 #: ../src/gnome/assistant-stock-split.c:581
 #: ../src/gnome/dialog-find-transactions2.c:121
 #: ../src/gnome/dialog-find-transactions.c:120
-#: ../src/register/ledger-core/split-register-model.c:403
+#: ../src/register/ledger-core/split-register-model.c:404
 #: ../src/report/standard-reports/advanced-portfolio.scm:1062
 #: ../src/report/standard-reports/general-journal.scm:113
 #: ../src/report/standard-reports/general-ledger.scm:88
@@ -5053,9 +5055,9 @@ msgstr "Закрывающие записи"
 #: ../src/gnome/dialog-find-transactions2.c:117
 #: ../src/gnome/dialog-find-transactions.c:116
 #: ../src/gnome/gnc-plugin-page-register2.c:484
-#: ../src/gnome/gnc-plugin-page-register.c:489
+#: ../src/gnome/gnc-plugin-page-register.c:491
 #: ../src/gnome/window-reconcile2.c:1316 ../src/gnome/window-reconcile.c:1353
-#: ../src/import-export/csv-exp/csv-transactions-export.c:423
+#: ../src/import-export/csv-exp/csv-transactions-export.c:426
 msgid "Reconcile"
 msgstr "Согласование"
 
@@ -5083,11 +5085,11 @@ msgstr "Значение"
 #: ../src/gnome/dialog-find-transactions.c:128
 #: ../src/gnome/dialog-find-transactions.c:167
 #: ../src/gnome/dialog-find-transactions.c:173
-#: ../src/gnome/gnc-plugin-page-register.c:1882
-#: ../src/gnome/gnc-plugin-page-register.c:3156
+#: ../src/gnome/gnc-plugin-page-register.c:1884
+#: ../src/gnome/gnc-plugin-page-register.c:3158
 #: ../src/gnome-search/dialog-search.c:893
 #: ../src/gnome-search/dialog-search.c:899
-#: ../src/import-export/csv-exp/csv-transactions-export.c:422
+#: ../src/import-export/csv-exp/csv-transactions-export.c:425
 #: ../src/report/standard-reports/transaction.scm:771
 msgid "Number/Action"
 msgstr "Номер/Действие"
@@ -5098,11 +5100,11 @@ msgstr "Номер/Действие"
 #: ../src/gnome/dialog-find-transactions.c:132
 #: ../src/gnome/dialog-find-transactions.c:169
 #: ../src/gnome/dialog-find-transactions.c:175
-#: ../src/gnome/gnc-plugin-page-register.c:1881
-#: ../src/gnome/gnc-plugin-page-register.c:3155
+#: ../src/gnome/gnc-plugin-page-register.c:1883
+#: ../src/gnome/gnc-plugin-page-register.c:3157
 #: ../src/gnome-search/dialog-search.c:895
 #: ../src/gnome-search/dialog-search.c:901
-#: ../src/import-export/csv-exp/csv-transactions-export.c:418
+#: ../src/import-export/csv-exp/csv-transactions-export.c:421
 #: ../src/report/standard-reports/transaction.scm:775
 msgid "Transaction Number"
 msgstr "Номер проводки"
@@ -5112,10 +5114,9 @@ msgstr "Номер проводки"
 msgid "Description, Notes, or Memo"
 msgstr "Описание / Заметки / Памятка"
 
-#. FIXME: All this does is leak.
 #: ../src/gnome/dialog-find-transactions2.c:224
 #: ../src/gnome/dialog-find-transactions.c:223
-#: ../src/gnome-search/dialog-search.c:1449
+#: ../src/gnome-search/dialog-search.c:1452
 msgid "Find Transaction"
 msgstr "Поиск проводок"
 
@@ -5140,11 +5141,11 @@ msgstr "Заголовок"
 #: ../src/gnome-utils/gnc-tree-view-owner.c:493
 #: ../src/gnome-utils/gnc-tree-view-split-reg.c:3212
 #: ../src/import-export/csv-imp/gnc-csv-model.c:78
-#: ../src/register/ledger-core/split-register-model.c:311
-#: ../src/register/ledger-core/split-register-model.c:468
-#: ../src/report/business-reports/customer-summary.scm:184
+#: ../src/register/ledger-core/split-register-model.c:312
+#: ../src/register/ledger-core/split-register-model.c:469
+#: ../src/report/business-reports/customer-summary.scm:191
 #: ../src/report/business-reports/job-report.scm:221
-#: ../src/report/business-reports/owner-report.scm:308
+#: ../src/report/business-reports/owner-report.scm:312
 #: ../src/report/report-system/html-utilities.scm:727
 #: ../src/report/standard-reports/account-summary.scm:460
 #: ../src/report/standard-reports/register.scm:174
@@ -5202,12 +5203,13 @@ msgstr "Невозможно сохранить файл чековых форм
 msgid "There is a duplicate check format file."
 msgstr "Уже существует файл чековых форматов."
 
-#. Translators: %1$s is the type of the first check
-#. * format (user defined or application defined); %2$s
-#. * is the filename of that format; %3$s the type of
-#. * the other check format; and %4$s the filename of
-#. * that other format.
-#: ../src/gnome/dialog-print-check.c:1516
+#. Translators:
+#. * %1$s is the type of the first check format
+#. *  (user defined or application defined);
+#. * %2$s is the filename of that format;
+#. * %3$s the type of the other check format; and
+#. * %4$s the filename of that other format.
+#: ../src/gnome/dialog-print-check.c:1517
 #, c-format
 msgid ""
 "The GUIDs in the %s check format file '%s' and the %s check format file '%s' "
@@ -5218,19 +5220,19 @@ msgstr ""
 #. Translators: This is a directory name. It may be presented to
 #. * the user to indicate that some data file was defined by the
 #. * gnucash application.
-#: ../src/gnome/dialog-print-check.c:1557
+#: ../src/gnome/dialog-print-check.c:1558
 msgid "application"
 msgstr "application"
 
 #. Translators: This is a directory name. It may be presented to
 #. * the user to indicate that some data file was defined by a
 #. * user herself.
-#: ../src/gnome/dialog-print-check.c:1565
+#: ../src/gnome/dialog-print-check.c:1566
 msgid "user"
 msgstr "user"
 
-#: ../src/gnome/dialog-print-check.c:1589
-#: ../src/gnome/dialog-print-check.c:2595
+#: ../src/gnome/dialog-print-check.c:1590
+#: ../src/gnome/dialog-print-check.c:2596
 #: ../src/gnome/gtkbuilder/assistant-loan.glade.h:61
 #: ../src/gnome/gtkbuilder/dialog-print-check.glade.h:40
 #: ../src/gnome-utils/gtkbuilder/gnc-date-format.glade.h:20
@@ -5239,9 +5241,9 @@ msgstr "user"
 msgid "Custom"
 msgstr "Настроенный"
 
-#: ../src/gnome/dialog-print-check.c:2587
+#: ../src/gnome/dialog-print-check.c:2588
 #: ../src/gnome/gtkbuilder/dialog-print-check.glade.h:37
-#: ../src/gnome-utils/gtkbuilder/dialog-preferences.glade.h:196
+#: ../src/gnome-utils/gtkbuilder/dialog-preferences.glade.h:206
 msgid "Top"
 msgstr "Сверху"
 
@@ -5478,7 +5480,7 @@ msgstr "Проводка"
 
 #: ../src/gnome/dialog-sx-since-last-run.c:1003
 #: ../src/gnome/gtkbuilder/gnc-plugin-page-register2.glade.h:23
-#: ../src/gnome/gtkbuilder/gnc-plugin-page-register.glade.h:24
+#: ../src/gnome/gtkbuilder/gnc-plugin-page-register.glade.h:30
 msgid "Status"
 msgstr "Состояние"
 
@@ -5542,8 +5544,8 @@ msgstr "Переводы"
 #: ../src/report/business-reports/aging.scm:562
 #: ../src/report/business-reports/aging.scm:846
 #: ../src/report/business-reports/balsheet-eg.eguile.scm:120
-#: ../src/report/business-reports/customer-summary.scm:310
-#: ../src/report/business-reports/customer-summary.scm:954
+#: ../src/report/business-reports/customer-summary.scm:317
+#: ../src/report/business-reports/customer-summary.scm:962
 #: ../src/report/business-reports/easy-invoice.scm:126
 #: ../src/report/business-reports/easy-invoice.scm:289
 #: ../src/report/business-reports/fancy-invoice.scm:144
@@ -5554,8 +5556,8 @@ msgstr "Переводы"
 #: ../src/report/report-system/html-acct-table.scm:899
 #: ../src/report/report-system/html-utilities.scm:619
 #: ../src/report/standard-reports/advanced-portfolio.scm:1043
-#: ../src/report/standard-reports/budget-flow.scm:170
-#: ../src/report/standard-reports/budget-flow.scm:252
+#: ../src/report/standard-reports/budget-flow.scm:171
+#: ../src/report/standard-reports/budget-flow.scm:253
 #: ../src/report/standard-reports/portfolio.scm:268
 msgid "Total"
 msgstr "Всего"
@@ -5999,7 +6001,7 @@ msgstr "Открыть2"
 #: ../src/gnome-utils/gnc-tree-view-split-reg.c:2935
 #: ../src/gnome-utils/gnc-tree-view-split-reg.c:2946
 #: ../src/gnome-utils/gnc-tree-view-split-reg.c:2950
-#: ../src/gnome-utils/gtkbuilder/dialog-preferences.glade.h:53
+#: ../src/gnome-utils/gtkbuilder/dialog-preferences.glade.h:52
 #: ../src/report/report-system/report.scm:72
 #: ../src/report/standard-reports/account-piecharts.scm:68
 #: ../src/report/standard-reports/account-summary.scm:75
@@ -6008,7 +6010,7 @@ msgstr "Открыть2"
 #: ../src/report/standard-reports/average-balance.scm:337
 #: ../src/report/standard-reports/balance-sheet.scm:88
 #: ../src/report/standard-reports/budget-balance-sheet.scm:53
-#: ../src/report/standard-reports/budget-barchart.scm:44
+#: ../src/report/standard-reports/budget-barchart.scm:45
 #: ../src/report/standard-reports/budget-income-statement.scm:77
 #: ../src/report/standard-reports/category-barchart.scm:81
 #: ../src/report/standard-reports/daily-reports.scm:61
@@ -6109,11 +6111,11 @@ msgstr "Оценить"
 #: ../src/gnome/gnc-plugin-page-budget.c:314
 #: ../src/gnome/gnc-plugin-page-budget.c:803
 #: ../src/report/standard-reports/budget-balance-sheet.scm:111
-#: ../src/report/standard-reports/budget-barchart.scm:45
-#: ../src/report/standard-reports/budget-barchart.scm:106
-#: ../src/report/standard-reports/budget-flow.scm:45
+#: ../src/report/standard-reports/budget-barchart.scm:46
+#: ../src/report/standard-reports/budget-barchart.scm:107
+#: ../src/report/standard-reports/budget-flow.scm:46
 #: ../src/report/standard-reports/budget-income-statement.scm:59
-#: ../src/report/standard-reports/budget.scm:72
+#: ../src/report/standard-reports/budget.scm:73
 msgid "Budget"
 msgstr "Бюджет"
 
@@ -6151,7 +6153,7 @@ msgstr "Ду_блировать проводку"
 
 #: ../src/gnome/gnc-plugin-page-register2.c:194
 #: ../src/gnome/gnc-plugin-page-register.c:198
-#: ../src/gnome/gnc-split-reg.c:1335
+#: ../src/gnome/gnc-split-reg.c:1337
 #: ../src/gnome-utils/gnc-tree-control-split-reg.c:1065
 msgid "_Delete Transaction"
 msgstr "_Удалить проводку"
@@ -6178,7 +6180,7 @@ msgstr "Ду_блировать часть"
 
 #: ../src/gnome/gnc-plugin-page-register2.c:199
 #: ../src/gnome/gnc-plugin-page-register.c:206
-#: ../src/gnome/gnc-split-reg.c:1295
+#: ../src/gnome/gnc-split-reg.c:1297
 #: ../src/gnome-utils/gnc-tree-control-split-reg.c:1025
 msgid "_Delete Split"
 msgstr "Удалить часть"
@@ -6405,43 +6407,44 @@ msgid ""
 "Create a Scheduled Transaction with the current transaction as a template"
 msgstr "Создать запланированную проводку, используя текущую в качестве шаблона"
 
+#. Translators: The following 2 are Scrub actions in register view
 #: ../src/gnome/gnc-plugin-page-register2.c:376
-#: ../src/gnome/gnc-plugin-page-register.c:387
+#: ../src/gnome/gnc-plugin-page-register.c:389
 msgid "_All transactions"
 msgstr "_Все проводки"
 
 #: ../src/gnome/gnc-plugin-page-register2.c:380
-#: ../src/gnome/gnc-plugin-page-register.c:391
+#: ../src/gnome/gnc-plugin-page-register.c:393
 msgid "_This transaction"
 msgstr "_Эта проводка"
 
 #: ../src/gnome/gnc-plugin-page-register2.c:387
-#: ../src/gnome/gnc-plugin-page-register.c:398
+#: ../src/gnome/gnc-plugin-page-register.c:400
 msgid "Account Report"
 msgstr "Отчёт по счёту"
 
 #: ../src/gnome/gnc-plugin-page-register2.c:388
-#: ../src/gnome/gnc-plugin-page-register.c:399
+#: ../src/gnome/gnc-plugin-page-register.c:401
 msgid "Open a register report for this Account"
 msgstr "Открыть отчёт по журналу этого счета"
 
 #: ../src/gnome/gnc-plugin-page-register2.c:392
-#: ../src/gnome/gnc-plugin-page-register.c:403
+#: ../src/gnome/gnc-plugin-page-register.c:405
 msgid "Account Report - Single Transaction"
 msgstr "Отчёт по счету - одна проводка"
 
 #: ../src/gnome/gnc-plugin-page-register2.c:393
-#: ../src/gnome/gnc-plugin-page-register.c:404
+#: ../src/gnome/gnc-plugin-page-register.c:406
 msgid "Open a register report for the selected Transaction"
 msgstr "Открыть отчёт по журналу для выбранной проводки"
 
 #: ../src/gnome/gnc-plugin-page-register2.c:403
-#: ../src/gnome/gnc-plugin-page-register.c:414
+#: ../src/gnome/gnc-plugin-page-register.c:416
 msgid "_Double Line"
 msgstr "_Две строки"
 
 #: ../src/gnome/gnc-plugin-page-register2.c:404
-#: ../src/gnome/gnc-plugin-page-register.c:415
+#: ../src/gnome/gnc-plugin-page-register.c:417
 #: ../src/gnome/gschemas/org.gnucash.gschema.xml.in.in.h:89
 msgid "Show two lines of information for each transaction"
 msgstr "Показывать информацию по каждой проводке в две строки"
@@ -6455,73 +6458,73 @@ msgid "Show entered and reconciled dates"
 msgstr "Показывать даты создания и согласования"
 
 #: ../src/gnome/gnc-plugin-page-register2.c:415
-#: ../src/gnome/gnc-plugin-page-register.c:420
+#: ../src/gnome/gnc-plugin-page-register.c:422
 #: ../src/gnome-utils/gnc-icons.c:44
 msgid "S_plit Transaction"
 msgstr "По_делить проводку"
 
 #: ../src/gnome/gnc-plugin-page-register2.c:416
-#: ../src/gnome/gnc-plugin-page-register.c:421
+#: ../src/gnome/gnc-plugin-page-register.c:423
 msgid "Show all splits in the current transaction"
 msgstr "Показать все части текущей проводки"
 
 #: ../src/gnome/gnc-plugin-page-register2.c:427
-#: ../src/gnome/gnc-plugin-page-register.c:432
+#: ../src/gnome/gnc-plugin-page-register.c:434
 msgid "_Basic Ledger"
 msgstr "_Простой журнал"
 
 #: ../src/gnome/gnc-plugin-page-register2.c:428
-#: ../src/gnome/gnc-plugin-page-register.c:433
+#: ../src/gnome/gnc-plugin-page-register.c:435
 msgid "Show transactions on one or two lines"
 msgstr "Показывать проводки на одной или двух строках"
 
 #: ../src/gnome/gnc-plugin-page-register2.c:432
-#: ../src/gnome/gnc-plugin-page-register.c:437
+#: ../src/gnome/gnc-plugin-page-register.c:439
 msgid "_Auto-Split Ledger"
 msgstr "_Авторазворачиваемый журнал"
 
 #: ../src/gnome/gnc-plugin-page-register2.c:433
-#: ../src/gnome/gnc-plugin-page-register.c:438
+#: ../src/gnome/gnc-plugin-page-register.c:440
 msgid ""
 "Show transactions on one or two lines and expand the current transaction"
 msgstr ""
 "Показать проводки на одной или двух строках, разворачивая текущую проводку"
 
 #: ../src/gnome/gnc-plugin-page-register2.c:437
-#: ../src/gnome/gnc-plugin-page-register.c:442
+#: ../src/gnome/gnc-plugin-page-register.c:444
 #: ../src/gnome-utils/gtkbuilder/dialog-preferences.glade.h:151
 msgid "Transaction _Journal"
 msgstr "Журнал _проводок"
 
 #: ../src/gnome/gnc-plugin-page-register2.c:438
-#: ../src/gnome/gnc-plugin-page-register.c:443
+#: ../src/gnome/gnc-plugin-page-register.c:445
 msgid "Show expanded transactions with all splits"
 msgstr "Показать расширение проводки со всеми частями"
 
 #: ../src/gnome/gnc-plugin-page-register2.c:476
-#: ../src/gnome/gnc-plugin-page-register.c:481
+#: ../src/gnome/gnc-plugin-page-register.c:483
 #: ../src/gnome-utils/gnc-tree-model-split-reg.c:2900
 #: ../src/register/ledger-core/split-register.c:2491
-#: ../src/register/ledger-core/split-register-layout.c:714
-#: ../src/register/ledger-core/split-register-model.c:339
+#: ../src/register/ledger-core/split-register-layout.c:727
+#: ../src/register/ledger-core/split-register-model.c:340
 #: ../src/report/standard-reports/register.scm:154
 msgid "Transfer"
 msgstr "Перевести"
 
 #: ../src/gnome/gnc-plugin-page-register2.c:481
-#: ../src/gnome/gnc-plugin-page-register.c:486
+#: ../src/gnome/gnc-plugin-page-register.c:488
 #: ../src/gnome-search/dialog-search.c:1085
 msgid "Split"
 msgstr "Разделить"
 
 #: ../src/gnome/gnc-plugin-page-register2.c:482
-#: ../src/gnome/gnc-plugin-page-register.c:487
+#: ../src/gnome/gnc-plugin-page-register.c:489
 #: ../src/gnome/gtkbuilder/dialog-fincalc.glade.h:23
 msgid "Schedule"
 msgstr "Запланировать"
 
 #: ../src/gnome/gnc-plugin-page-register2.c:485
-#: ../src/gnome/gnc-plugin-page-register.c:490
+#: ../src/gnome/gnc-plugin-page-register.c:492
 #: ../src/gnome/window-autoclear.c:92
 msgid "Auto-clear"
 msgstr "Автоочистка"
@@ -6540,13 +6543,13 @@ msgstr "Главная книга 2"
 #. Translators: %s is the name
 #. of the tab page
 #: ../src/gnome/gnc-plugin-page-register2.c:1613
-#: ../src/gnome/gnc-plugin-page-register.c:1553
+#: ../src/gnome/gnc-plugin-page-register.c:1555
 #, c-format
 msgid "Save changes to %s?"
 msgstr "Сохранить изменения в %s?"
 
 #: ../src/gnome/gnc-plugin-page-register2.c:1617
-#: ../src/gnome/gnc-plugin-page-register.c:1557
+#: ../src/gnome/gnc-plugin-page-register.c:1559
 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 "
@@ -6556,12 +6559,12 @@ msgstr ""
 "изменения в эту проводку, отказаться от неё или отменить операцию?"
 
 #: ../src/gnome/gnc-plugin-page-register2.c:1620
-#: ../src/gnome/gnc-plugin-page-register.c:1560
+#: ../src/gnome/gnc-plugin-page-register.c:1562
 msgid "_Discard Transaction"
 msgstr "_Отказаться от проводки"
 
 #: ../src/gnome/gnc-plugin-page-register2.c:1624
-#: ../src/gnome/gnc-plugin-page-register.c:1564
+#: ../src/gnome/gnc-plugin-page-register.c:1566
 msgid "_Save Transaction"
 msgstr "_Сохранить проводку"
 
@@ -6570,35 +6573,35 @@ msgstr "_Сохранить проводку"
 #: ../src/gnome/gnc-plugin-page-register2.c:1700
 #: ../src/gnome/gnc-plugin-page-register2.c:1723
 #: ../src/gnome/gnc-plugin-page-register2.c:1773
-#: ../src/gnome/gnc-plugin-page-register.c:1596
-#: ../src/gnome/gnc-plugin-page-register.c:1631
-#: ../src/gnome/gnc-plugin-page-register.c:1643
-#: ../src/gnome/gnc-plugin-page-register.c:1666
-#: ../src/gnome/gnc-plugin-page-register.c:1716
-#: ../src/gnome/gnc-plugin-page-register.c:1799
+#: ../src/gnome/gnc-plugin-page-register.c:1598
+#: ../src/gnome/gnc-plugin-page-register.c:1633
+#: ../src/gnome/gnc-plugin-page-register.c:1645
+#: ../src/gnome/gnc-plugin-page-register.c:1668
+#: ../src/gnome/gnc-plugin-page-register.c:1718
+#: ../src/gnome/gnc-plugin-page-register.c:1801
 msgid "unknown"
 msgstr "неизвестно"
 
 #: ../src/gnome/gnc-plugin-page-register2.c:1674
 #: ../src/gnome/gnc-plugin-page-register2.c:2395
-#: ../src/gnome/gnc-plugin-page-register.c:761
-#: ../src/gnome/gnc-plugin-page-register.c:1617
-#: ../src/gnome/gnc-plugin-page-register.c:2606
+#: ../src/gnome/gnc-plugin-page-register.c:763
+#: ../src/gnome/gnc-plugin-page-register.c:1619
+#: ../src/gnome/gnc-plugin-page-register.c:2608
 #: ../src/report/standard-reports/general-ledger.scm:40
 msgid "General Ledger"
 msgstr "Главная книга"
 
 #: ../src/gnome/gnc-plugin-page-register2.c:1676
 #: ../src/gnome/gnc-plugin-page-register2.c:2401
-#: ../src/gnome/gnc-plugin-page-register.c:1619
-#: ../src/gnome/gnc-plugin-page-register.c:2612
+#: ../src/gnome/gnc-plugin-page-register.c:1621
+#: ../src/gnome/gnc-plugin-page-register.c:2614
 msgid "Portfolio"
 msgstr "Портфель"
 
 #: ../src/gnome/gnc-plugin-page-register2.c:1678
 #: ../src/gnome/gnc-plugin-page-register2.c:2407
-#: ../src/gnome/gnc-plugin-page-register.c:1621
-#: ../src/gnome/gnc-plugin-page-register.c:2618
+#: ../src/gnome/gnc-plugin-page-register.c:1623
+#: ../src/gnome/gnc-plugin-page-register.c:2620
 msgid "Search Results"
 msgstr "Результаты поиска"
 
@@ -6607,17 +6610,17 @@ msgid "General Ledger Report"
 msgstr "Отчёт по главной книге"
 
 #: ../src/gnome/gnc-plugin-page-register2.c:2403
-#: ../src/gnome/gnc-plugin-page-register.c:2614
+#: ../src/gnome/gnc-plugin-page-register.c:2616
 msgid "Portfolio Report"
 msgstr "Отчёт по портфелю"
 
 #: ../src/gnome/gnc-plugin-page-register2.c:2409
-#: ../src/gnome/gnc-plugin-page-register.c:2620
+#: ../src/gnome/gnc-plugin-page-register.c:2622
 msgid "Search Results Report"
 msgstr "Отчёт по результатам поиска"
 
 #: ../src/gnome/gnc-plugin-page-register2.c:2413
-#: ../src/gnome/gnc-plugin-page-register.c:2624
+#: ../src/gnome/gnc-plugin-page-register.c:2626
 #: ../src/gnome-utils/gtkbuilder/dialog-preferences.glade.h:144
 #: ../src/report/standard-reports/general-journal.scm:38
 #: ../src/report/standard-reports/register.scm:894
@@ -6630,17 +6633,17 @@ msgid "Register Report"
 msgstr "Отчёт по журналу"
 
 #: ../src/gnome/gnc-plugin-page-register2.c:2431
-#: ../src/gnome/gnc-plugin-page-register.c:2642
+#: ../src/gnome/gnc-plugin-page-register.c:2644
 msgid "and subaccounts"
 msgstr "и субсчета"
 
 #: ../src/gnome/gnc-plugin-page-register2.c:2632
-#: ../src/gnome/gnc-plugin-page-register.c:2807
+#: ../src/gnome/gnc-plugin-page-register.c:2809
 msgid "Print checks from multiple accounts?"
 msgstr "Напечатать чеки из нескольких счетов?"
 
 #: ../src/gnome/gnc-plugin-page-register2.c:2634
-#: ../src/gnome/gnc-plugin-page-register.c:2809
+#: ../src/gnome/gnc-plugin-page-register.c:2811
 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?"
@@ -6649,12 +6652,12 @@ msgstr ""
 "распечатать чеки даже если они не по одному счёту?"
 
 #: ../src/gnome/gnc-plugin-page-register2.c:2644
-#: ../src/gnome/gnc-plugin-page-register.c:2819
+#: ../src/gnome/gnc-plugin-page-register.c:2821
 msgid "_Print checks"
 msgstr "_Печатать чеки"
 
 #: ../src/gnome/gnc-plugin-page-register2.c:2663
-#: ../src/gnome/gnc-plugin-page-register.c:2838
+#: ../src/gnome/gnc-plugin-page-register.c:2840
 msgid ""
 "You can only print checks from a bank account register or search results."
 msgstr ""
@@ -6662,14 +6665,14 @@ msgstr ""
 "поиска."
 
 #: ../src/gnome/gnc-plugin-page-register2.c:2855
-#: ../src/gnome/gnc-plugin-page-register.c:2998
+#: ../src/gnome/gnc-plugin-page-register.c:3000
 msgid "You cannot void a transaction with reconciled or cleared splits."
 msgstr ""
 "Вы не можете аннулировать проводку с согласованными или очищенными частями."
 
 #. Translators: The %s is the name of the plugin page
 #: ../src/gnome/gnc-plugin-page-register2.c:2999
-#: ../src/gnome/gnc-plugin-page-register.c:3204
+#: ../src/gnome/gnc-plugin-page-register.c:3206
 #: ../src/gnome-utils/gnc-tree-view-account.c:2144
 #: ../src/gnome-utils/gnc-tree-view-owner.c:1205
 #, c-format
@@ -6709,19 +6712,19 @@ msgstr "У_далить все другие части"
 msgid "_Sort By..."
 msgstr "_Упорядочить по..."
 
-#: ../src/gnome/gnc-plugin-page-register.c:491
+#: ../src/gnome/gnc-plugin-page-register.c:493
 msgid "Associate File"
 msgstr "Привязать файл"
 
-#: ../src/gnome/gnc-plugin-page-register.c:492
+#: ../src/gnome/gnc-plugin-page-register.c:494
 msgid "Associate Location"
 msgstr "Привязать ссылку"
 
-#: ../src/gnome/gnc-plugin-page-register.c:493
+#: ../src/gnome/gnc-plugin-page-register.c:495
 msgid "Open File/Location"
 msgstr "Открыть файл/ссылку"
 
-#: ../src/gnome/gnc-plugin-page-register.c:688
+#: ../src/gnome/gnc-plugin-page-register.c:690
 msgid ""
 "You have tried to open an account in the old register while it is open in "
 "the new register."
@@ -6730,32 +6733,32 @@ msgstr ""
 "новом журнале"
 
 #. Define the strings here to avoid typos and make changes easier.
-#: ../src/gnome/gnc-plugin-page-register.c:2608
-#: ../src/gnome/gnc-plugin-page-register.c:2626
+#: ../src/gnome/gnc-plugin-page-register.c:2610
+#: ../src/gnome/gnc-plugin-page-register.c:2628
 #: ../src/report/standard-reports/transaction.scm:48
 msgid "Transaction Report"
 msgstr "Отчёт о проводке"
 
-#: ../src/gnome/gnc-plugin-page-register.c:3004
+#: ../src/gnome/gnc-plugin-page-register.c:3006
 #: ../src/gnome/gnc-split-reg.c:909
 #: ../src/gnome-utils/gnc-tree-control-split-reg.c:68
 #, c-format
 msgid "This transaction is marked read-only with the comment: '%s'"
 msgstr "Эта проводка отмечена как неизменяемая, с комментарием: \"%s\""
 
-#: ../src/gnome/gnc-plugin-page-register.c:3075
+#: ../src/gnome/gnc-plugin-page-register.c:3077
 #: ../src/gnome/gnc-split-reg.c:880
 #: ../src/gnome-utils/gnc-tree-control-split-reg.c:1123
 msgid "A reversing entry has already been created for this transaction."
 msgstr "Обратная запись уже была создана для этой проводки."
 
 #. Translations: The %s is the name of the plugin page
-#: ../src/gnome/gnc-plugin-page-register.c:3126
+#: ../src/gnome/gnc-plugin-page-register.c:3128
 #, c-format
 msgid "Sort %s by..."
 msgstr "Упорядочить %s по..."
 
-#: ../src/gnome/gnc-plugin-page-register.c:3798
+#: ../src/gnome/gnc-plugin-page-register.c:3800
 #, c-format
 msgid "Checking splits in current register: %u of %u"
 msgstr "Проверка разделений в текущем журнале: %u из %u"
@@ -6843,35 +6846,35 @@ msgstr "Открыть окно главной книги"
 msgid "<No information>"
 msgstr "<Нет информации>"
 
-#: ../src/gnome/gnc-split-reg2.c:765 ../src/gnome/gnc-split-reg.c:1622
+#: ../src/gnome/gnc-split-reg2.c:765 ../src/gnome/gnc-split-reg.c:1624
 msgid "Balancing entry from reconcilation"
 msgstr "Корректирующая запись из согласования"
 
-#: ../src/gnome/gnc-split-reg2.c:936 ../src/gnome/gnc-split-reg.c:2075
+#: ../src/gnome/gnc-split-reg2.c:936 ../src/gnome/gnc-split-reg.c:2077
 msgid "Present:"
 msgstr "Настоящее:"
 
-#: ../src/gnome/gnc-split-reg2.c:937 ../src/gnome/gnc-split-reg.c:2076
+#: ../src/gnome/gnc-split-reg2.c:937 ../src/gnome/gnc-split-reg.c:2078
 msgid "Future:"
 msgstr "Будущее:"
 
-#: ../src/gnome/gnc-split-reg2.c:938 ../src/gnome/gnc-split-reg.c:2077
+#: ../src/gnome/gnc-split-reg2.c:938 ../src/gnome/gnc-split-reg.c:2079
 msgid "Cleared:"
 msgstr "Очищено:"
 
-#: ../src/gnome/gnc-split-reg2.c:939 ../src/gnome/gnc-split-reg.c:2078
+#: ../src/gnome/gnc-split-reg2.c:939 ../src/gnome/gnc-split-reg.c:2080
 msgid "Reconciled:"
 msgstr "Согласовано:"
 
-#: ../src/gnome/gnc-split-reg2.c:940 ../src/gnome/gnc-split-reg.c:2079
+#: ../src/gnome/gnc-split-reg2.c:940 ../src/gnome/gnc-split-reg.c:2081
 msgid "Projected Minimum:"
 msgstr "Проектный минимум:"
 
-#: ../src/gnome/gnc-split-reg2.c:944 ../src/gnome/gnc-split-reg.c:2083
+#: ../src/gnome/gnc-split-reg2.c:944 ../src/gnome/gnc-split-reg.c:2085
 msgid "Shares:"
 msgstr "Акции:"
 
-#: ../src/gnome/gnc-split-reg2.c:945 ../src/gnome/gnc-split-reg.c:2084
+#: ../src/gnome/gnc-split-reg2.c:945 ../src/gnome/gnc-split-reg.c:2086
 msgid "Current Value:"
 msgstr "Текущее значение:"
 
@@ -6889,11 +6892,11 @@ msgstr ""
 "Изменения записей в нём может вызвать повреждение данных, пожалуйста "
 "используйте инструменты для бизнес операций, чтобы изменять в нём записи"
 
-#: ../src/gnome/gnc-split-reg2.c:1069 ../src/gnome/gnc-split-reg.c:2158
+#: ../src/gnome/gnc-split-reg2.c:1069 ../src/gnome/gnc-split-reg.c:2160
 msgid "This account register is read-only."
 msgstr "Этот реестр счетов только для чтения."
 
-#: ../src/gnome/gnc-split-reg2.c:1112 ../src/gnome/gnc-split-reg.c:2201
+#: ../src/gnome/gnc-split-reg2.c:1112 ../src/gnome/gnc-split-reg.c:2203
 msgid ""
 "This account may not be edited. If you want to edit transactions in this "
 "register, please open the account options and turn off the placeholder "
@@ -6903,7 +6906,7 @@ msgstr ""
 "реестре, пожалуйста откройте настройки счета и выключите параметр "
 "\"виртуальный\"."
 
-#: ../src/gnome/gnc-split-reg2.c:1119 ../src/gnome/gnc-split-reg.c:2208
+#: ../src/gnome/gnc-split-reg2.c:1119 ../src/gnome/gnc-split-reg.c:2210
 msgid ""
 "One of the sub-accounts selected may not be edited. If you want to edit "
 "transactions in this register, please open the sub-account options and turn "
@@ -6944,34 +6947,35 @@ msgstr ""
 "Эта проводка содержит согласованные части. Её изменение повредит "
 "согласованность баланса."
 
-#: ../src/gnome/gnc-split-reg.c:985
+#. Translators: This is the confirmation button in a warning dialog
+#: ../src/gnome/gnc-split-reg.c:987
 #: ../src/gnome-utils/gnc-tree-control-split-reg.c:888
 msgid "_Remove Splits"
 msgstr "Удалить части"
 
-#: ../src/gnome/gnc-split-reg.c:1178
+#: ../src/gnome/gnc-split-reg.c:1180
 msgid "This transaction is not associated with a URI."
 msgstr "С этой проводкой не связана ссылка."
 
-#: ../src/gnome/gnc-split-reg.c:1234
+#: ../src/gnome/gnc-split-reg.c:1236
 #: ../src/gnome-utils/gnc-tree-control-split-reg.c:964
 #, c-format
 msgid "Delete the split '%s' from the transaction '%s'?"
 msgstr "Удалить часть \"%s\" из проводки \"%s\"?"
 
-#: ../src/gnome/gnc-split-reg.c:1235
+#: ../src/gnome/gnc-split-reg.c:1237
 #: ../src/gnome-utils/gnc-tree-control-split-reg.c:965
 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 "Вы удаляете согласованную часть! Это повредит согласованность баланса."
 
-#: ../src/gnome/gnc-split-reg.c:1238
+#: ../src/gnome/gnc-split-reg.c:1240
 #: ../src/gnome-utils/gnc-tree-control-split-reg.c:968
 msgid "You cannot delete this split."
 msgstr "Вы не можете удалить эту часть."
 
-#: ../src/gnome/gnc-split-reg.c:1239
+#: ../src/gnome/gnc-split-reg.c:1241
 #: ../src/gnome-utils/gnc-tree-control-split-reg.c:969
 msgid ""
 "This is the split anchoring this transaction to the register. You may not "
@@ -6984,22 +6988,22 @@ msgstr ""
 "найти реестр, в котором отображена другая сторона проводки, и удалить из "
 "него эту часть."
 
-#: ../src/gnome/gnc-split-reg.c:1267
+#: ../src/gnome/gnc-split-reg.c:1269
 #: ../src/gnome-utils/gnc-tree-control-split-reg.c:997
 msgid "(no memo)"
 msgstr "(нет памятки)"
 
-#: ../src/gnome/gnc-split-reg.c:1270
+#: ../src/gnome/gnc-split-reg.c:1272
 #: ../src/gnome-utils/gnc-tree-control-split-reg.c:1000
 msgid "(no description)"
 msgstr "(нет описания)"
 
-#: ../src/gnome/gnc-split-reg.c:1311
+#: ../src/gnome/gnc-split-reg.c:1313
 #: ../src/gnome-utils/gnc-tree-control-split-reg.c:1041
 msgid "Delete the current transaction?"
 msgstr "Удалить текущую проводку?"
 
-#: ../src/gnome/gnc-split-reg.c:1312
+#: ../src/gnome/gnc-split-reg.c:1314
 #: ../src/gnome-utils/gnc-tree-control-split-reg.c:1042
 msgid ""
 "You would be deleting a transaction with reconciled splits! This is not a "
@@ -7658,7 +7662,7 @@ msgstr ""
 "резервные копии будут удаляться (0 - никогда)."
 
 #: ../src/gnome/gschemas/org.gnucash.gschema.xml.in.in.h:28
-#: ../src/gnome-utils/gtkbuilder/dialog-preferences.glade.h:33
+#: ../src/gnome-utils/gtkbuilder/dialog-preferences.glade.h:32
 msgid "Don't sign reverse any accounts."
 msgstr "Не помечать счета обратными."
 
@@ -7679,7 +7683,7 @@ msgstr ""
 "обращен."
 
 #: ../src/gnome/gschemas/org.gnucash.gschema.xml.in.in.h:30
-#: ../src/gnome-utils/gtkbuilder/dialog-preferences.glade.h:35
+#: ../src/gnome-utils/gtkbuilder/dialog-preferences.glade.h:34
 msgid ""
 "Sign reverse balances on the following: Credit Card, Payable, Liability, "
 "Equity, and Income."
@@ -7688,7 +7692,7 @@ msgstr ""
 "и Доход."
 
 #: ../src/gnome/gschemas/org.gnucash.gschema.xml.in.in.h:31
-#: ../src/gnome-utils/gtkbuilder/dialog-preferences.glade.h:37
+#: ../src/gnome-utils/gtkbuilder/dialog-preferences.glade.h:36
 msgid "Sign reverse balances on income and expense accounts."
 msgstr "Менять знак у счетов Приход и Расход."
 
@@ -7764,7 +7768,7 @@ msgstr ""
 "на многоточие."
 
 #: ../src/gnome/gschemas/org.gnucash.gschema.xml.in.in.h:42
-#: ../src/gnome-utils/gtkbuilder/dialog-preferences.glade.h:42
+#: ../src/gnome-utils/gtkbuilder/dialog-preferences.glade.h:41
 msgid "Use the system locale currency for all newly created accounts."
 msgstr ""
 "Использовать валюту, определяемую региональными настройками, для всех новых "
@@ -7783,7 +7787,7 @@ msgstr ""
 "валюта\"."
 
 #: ../src/gnome/gschemas/org.gnucash.gschema.xml.in.in.h:44
-#: ../src/gnome-utils/gtkbuilder/dialog-preferences.glade.h:44
+#: ../src/gnome-utils/gtkbuilder/dialog-preferences.glade.h:43
 msgid "Use the specified currency for all newly created accounts."
 msgstr "Валюта, используемая для всех новых счетов."
 
@@ -7832,7 +7836,7 @@ msgstr ""
 "Америки."
 
 #: ../src/gnome/gschemas/org.gnucash.gschema.xml.in.in.h:51
-#: ../src/gnome-utils/gtkbuilder/dialog-preferences.glade.h:61
+#: ../src/gnome-utils/gtkbuilder/dialog-preferences.glade.h:60
 msgid "In the current calendar year"
 msgstr "В текущем календарном году"
 
@@ -7859,7 +7863,7 @@ msgid "Maximum number of months to go back."
 msgstr "Максимальное количество месяцев для возврата."
 
 #: ../src/gnome/gschemas/org.gnucash.gschema.xml.in.in.h:55
-#: ../src/gnome-utils/gtkbuilder/dialog-preferences.glade.h:65
+#: ../src/gnome-utils/gtkbuilder/dialog-preferences.glade.h:64
 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."
@@ -7881,7 +7885,7 @@ msgstr ""
 "заставки не будет показываться."
 
 #: ../src/gnome/gschemas/org.gnucash.gschema.xml.in.in.h:58
-#: ../src/gnome-utils/gtkbuilder/dialog-preferences.glade.h:188
+#: ../src/gnome-utils/gtkbuilder/dialog-preferences.glade.h:198
 msgid "Display the notebook tabs at the top of the window."
 msgstr "Показывать закладки блокнота у верхней границы окна."
 
@@ -7896,22 +7900,22 @@ msgstr ""
 "умолчанию - \"сверху\"."
 
 #: ../src/gnome/gschemas/org.gnucash.gschema.xml.in.in.h:60
-#: ../src/gnome-utils/gtkbuilder/dialog-preferences.glade.h:190
+#: ../src/gnome-utils/gtkbuilder/dialog-preferences.glade.h:200
 msgid "Display the notebook tabs at the bottom of the window."
 msgstr "Показывать закладки блокнота у нижней границы окна."
 
 #: ../src/gnome/gschemas/org.gnucash.gschema.xml.in.in.h:61
-#: ../src/gnome-utils/gtkbuilder/dialog-preferences.glade.h:192
+#: ../src/gnome-utils/gtkbuilder/dialog-preferences.glade.h:202
 msgid "Display the notebook tabs at the left of the window."
 msgstr "Показывать закладки блокнота у левой границы окна."
 
 #: ../src/gnome/gschemas/org.gnucash.gschema.xml.in.in.h:62
-#: ../src/gnome-utils/gtkbuilder/dialog-preferences.glade.h:194
+#: ../src/gnome-utils/gtkbuilder/dialog-preferences.glade.h:204
 msgid "Display the notebook tabs at the right of the window."
 msgstr "Показывать закладки блокнота у правой границы окна."
 
 #: ../src/gnome/gschemas/org.gnucash.gschema.xml.in.in.h:63
-#: ../src/gnome-utils/gtkbuilder/dialog-preferences.glade.h:197
+#: ../src/gnome-utils/gtkbuilder/dialog-preferences.glade.h:207
 msgid "Display the summary bar at the top of the page."
 msgstr "Показывать строку итогов у верхней границы окна."
 
@@ -7925,12 +7929,12 @@ msgstr ""
 "\"сверху\" и \"снизу\". По умолчанию - \"снизу\"."
 
 #: ../src/gnome/gschemas/org.gnucash.gschema.xml.in.in.h:65
-#: ../src/gnome-utils/gtkbuilder/dialog-preferences.glade.h:199
+#: ../src/gnome-utils/gtkbuilder/dialog-preferences.glade.h:209
 msgid "Display the summary bar at the bottom of the page."
 msgstr "Показывать строку итогов у нижней границы окна."
 
 #: ../src/gnome/gschemas/org.gnucash.gschema.xml.in.in.h:66
-#: ../src/gnome-utils/gtkbuilder/dialog-preferences.glade.h:185
+#: ../src/gnome-utils/gtkbuilder/dialog-preferences.glade.h:195
 msgid "Closing a tab moves to the most recently visited tab."
 msgstr "Закрытие закладки перемещает в недавно посещенные."
 
@@ -8135,8 +8139,9 @@ msgstr ""
 msgid "Show the entered and reconcile dates"
 msgstr "Отображать даты создания и согласования"
 
+#. Register2 feature
 #: ../src/gnome/gschemas/org.gnucash.gschema.xml.in.in.h:94
-#: ../src/gnome-utils/gtkbuilder/dialog-preferences.glade.h:164
+#: ../src/gnome-utils/gtkbuilder/dialog-preferences.glade.h:168
 msgid ""
 "Show the date when the transaction was entered below the posted date and "
 "reconciled date on split row."
@@ -8148,8 +8153,9 @@ msgstr ""
 msgid "Show entered and reconciled dates on selection"
 msgstr "Показывать даты создания и согласования при выборе проводки"
 
+#. Register2 feature
 #: ../src/gnome/gschemas/org.gnucash.gschema.xml.in.in.h:96
-#: ../src/gnome-utils/gtkbuilder/dialog-preferences.glade.h:170
+#: ../src/gnome-utils/gtkbuilder/dialog-preferences.glade.h:180
 msgid "Show the entered date and reconciled date on transaction selection."
 msgstr "Показывать даты создания и согласования при выборе проводки"
 
@@ -8157,8 +8163,9 @@ msgstr "Показывать даты создания и согласовани
 msgid "Show the calendar buttons"
 msgstr "Показать кнопки для календаря"
 
+#. Register2 feature
 #: ../src/gnome/gschemas/org.gnucash.gschema.xml.in.in.h:98
-#: ../src/gnome-utils/gtkbuilder/dialog-preferences.glade.h:166
+#: ../src/gnome-utils/gtkbuilder/dialog-preferences.glade.h:172
 msgid "Show the calendar buttons Cancel, Today and Select."
 msgstr "Показывать кнопки для календаря: Отмена, Сегодня и Выбор"
 
@@ -8166,8 +8173,9 @@ msgstr "Показывать кнопки для календаря: Отмен
 msgid "Move the selection to the blank split on expand"
 msgstr "При разваорачивании проводки выбирать пустую строку"
 
+#. Register2 feature
 #: ../src/gnome/gschemas/org.gnucash.gschema.xml.in.in.h:100
-#: ../src/gnome-utils/gtkbuilder/dialog-preferences.glade.h:168
+#: ../src/gnome-utils/gtkbuilder/dialog-preferences.glade.h:176
 msgid ""
 "This will move the selection to the blank split when the transaction is "
 "expanded."
@@ -8192,8 +8200,9 @@ msgstr ""
 msgid "Number of characters for auto complete."
 msgstr "Число символов для автозаполнения."
 
+#. Register2 feature
 #: ../src/gnome/gschemas/org.gnucash.gschema.xml.in.in.h:104
-#: ../src/gnome-utils/gtkbuilder/dialog-preferences.glade.h:162
+#: ../src/gnome-utils/gtkbuilder/dialog-preferences.glade.h:164
 msgid ""
 "This sets the number of characters before auto complete starts for "
 "description, notes and memo fields."
@@ -8214,7 +8223,7 @@ msgstr ""
 "противном случае, открывается в виде вкладки основного окна."
 
 #: ../src/gnome/gschemas/org.gnucash.gschema.xml.in.in.h:107
-#: ../src/gnome-utils/gtkbuilder/dialog-preferences.glade.h:173
+#: ../src/gnome-utils/gtkbuilder/dialog-preferences.glade.h:183
 msgid "Use the system locale currency for all newly created reports."
 msgstr ""
 "Использовать валюту, определяемую региональными настройками, для всех новых "
@@ -8233,7 +8242,7 @@ msgstr ""
 "валюта\"."
 
 #: ../src/gnome/gschemas/org.gnucash.gschema.xml.in.in.h:109
-#: ../src/gnome-utils/gtkbuilder/dialog-preferences.glade.h:172
+#: ../src/gnome-utils/gtkbuilder/dialog-preferences.glade.h:182
 msgid "Use the specified currency for all newly created reports."
 msgstr "Валюта, используемая для всех новых отчётов."
 
@@ -8247,7 +8256,7 @@ msgid "Zoom factor to use by default for reports."
 msgstr "Коэффициент масштабирования по умолчанию для отчётов."
 
 #: ../src/gnome/gschemas/org.gnucash.gschema.xml.in.in.h:112
-#: ../src/gnome-utils/gtkbuilder/dialog-preferences.glade.h:179
+#: ../src/gnome-utils/gtkbuilder/dialog-preferences.glade.h:189
 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 "
@@ -8858,7 +8867,7 @@ msgstr "Конечная дата:"
 
 #: ../src/gnome/gtkbuilder/assistant-loan.glade.h:52
 #: ../src/report/business-reports/job-report.scm:632
-#: ../src/report/business-reports/owner-report.scm:771
+#: ../src/report/business-reports/owner-report.scm:775
 msgid "Date Range"
 msgstr "Диапазон дат"
 
@@ -8876,13 +8885,13 @@ msgstr "Результаты создания выплат"
 
 #: ../src/gnome/gtkbuilder/assistant-loan.glade.h:56
 #: ../src/gnome-utils/gnc-date-delta.c:220
-#: ../src/report/standard-reports/price-scatter.scm:231
+#: ../src/report/standard-reports/price-scatter.scm:233
 msgid "Months"
 msgstr "Месяцы"
 
 #: ../src/gnome/gtkbuilder/assistant-loan.glade.h:57
 #: ../src/gnome-utils/gnc-date-delta.c:222
-#: ../src/report/standard-reports/price-scatter.scm:232
+#: ../src/report/standard-reports/price-scatter.scm:234
 msgid "Years"
 msgstr "Годы"
 
@@ -8979,7 +8988,7 @@ msgstr ""
 #: ../src/gnome/gtkbuilder/dialog-price.glade.h:6
 #: ../src/gnome/gtkbuilder/dialog-print-check.glade.h:16
 #: ../src/gnome/gtkbuilder/gnc-plugin-page-register2.glade.h:3
-#: ../src/gnome/gtkbuilder/gnc-plugin-page-register.glade.h:3
+#: ../src/gnome/gtkbuilder/gnc-plugin-page-register.glade.h:4
 #: ../src/gnome-utils/gtkbuilder/dialog-account.glade.h:33
 msgid "_Date:"
 msgstr "_Дата:"
@@ -9384,7 +9393,7 @@ msgid "_Price:"
 msgstr "Ц_ена:"
 
 #: ../src/gnome/gtkbuilder/dialog-price.glade.h:14
-#: ../src/report/standard-reports/price-scatter.scm:96
+#: ../src/report/standard-reports/price-scatter.scm:98
 msgid "Price Database"
 msgstr "База данных цен"
 
@@ -9580,7 +9589,7 @@ msgid "Middle"
 msgstr "Посередине"
 
 #: ../src/gnome/gtkbuilder/dialog-print-check.glade.h:39
-#: ../src/gnome-utils/gtkbuilder/dialog-preferences.glade.h:198
+#: ../src/gnome-utils/gtkbuilder/dialog-preferences.glade.h:208
 msgid "Bottom"
 msgstr "Снизу"
 
@@ -9942,232 +9951,241 @@ msgstr "Количество периодов:"
 msgid "Budget Period:"
 msgstr "Период бюджета:"
 
+#. Duplicate Transaction Dialog
 #: ../src/gnome/gtkbuilder/gnc-plugin-page-register2.glade.h:1
-#: ../src/gnome/gtkbuilder/gnc-plugin-page-register.glade.h:1
+#: ../src/gnome/gtkbuilder/gnc-plugin-page-register.glade.h:2
 msgid "Duplicate Transaction"
 msgstr "Дублировать проводку"
 
 #: ../src/gnome/gtkbuilder/gnc-plugin-page-register2.glade.h:2
-#: ../src/gnome/gtkbuilder/gnc-plugin-page-register.glade.h:2
+#: ../src/gnome/gtkbuilder/gnc-plugin-page-register.glade.h:3
 msgid "<b>New Transaction Information</b>"
 msgstr "<b>Информация о новой проводке</b>"
 
 #: ../src/gnome/gtkbuilder/gnc-plugin-page-register2.glade.h:4
-#: ../src/gnome/gtkbuilder/gnc-plugin-page-register.glade.h:4
+#: ../src/gnome/gtkbuilder/gnc-plugin-page-register.glade.h:5
 msgid "_Number:"
 msgstr "_Номер:"
 
+#. Filter register by... Dialog
 #: ../src/gnome/gtkbuilder/gnc-plugin-page-register2.glade.h:5
-#: ../src/gnome/gtkbuilder/gnc-plugin-page-register.glade.h:6
+#: ../src/gnome/gtkbuilder/gnc-plugin-page-register.glade.h:8
 msgid "Filter register by..."
 msgstr "Отфильтровать журнал по..."
 
+#. Filter By Dialog, Date Tab
 #: ../src/gnome/gtkbuilder/gnc-plugin-page-register2.glade.h:6
-#: ../src/gnome/gtkbuilder/gnc-plugin-page-register.glade.h:7
+#: ../src/gnome/gtkbuilder/gnc-plugin-page-register.glade.h:10
 #: ../src/import-export/csv-exp/assistant-csv-export.glade.h:23
 msgid "Show _All"
 msgstr "Показать _все"
 
 #: ../src/gnome/gtkbuilder/gnc-plugin-page-register2.glade.h:7
-#: ../src/gnome/gtkbuilder/gnc-plugin-page-register.glade.h:8
+#: ../src/gnome/gtkbuilder/gnc-plugin-page-register.glade.h:11
 #: ../src/import-export/csv-exp/assistant-csv-export.glade.h:24
 msgid "Select Range:"
 msgstr "Выбрать диапазон:"
 
+#. Filter By Dialog, Date Tab, Start section
 #: ../src/gnome/gtkbuilder/gnc-plugin-page-register2.glade.h:8
-#: ../src/gnome/gtkbuilder/gnc-plugin-page-register.glade.h:9
+#: ../src/gnome/gtkbuilder/gnc-plugin-page-register.glade.h:13
 #: ../src/import-export/csv-exp/assistant-csv-export.glade.h:25
 msgid "Start:"
 msgstr "Начало:"
 
 #: ../src/gnome/gtkbuilder/gnc-plugin-page-register2.glade.h:9
-#: ../src/gnome/gtkbuilder/gnc-plugin-page-register.glade.h:10
+#: ../src/gnome/gtkbuilder/gnc-plugin-page-register.glade.h:14
 #: ../src/import-export/csv-exp/assistant-csv-export.glade.h:26
 msgid "_Earliest"
 msgstr "Сам_ые ранние"
 
 #: ../src/gnome/gtkbuilder/gnc-plugin-page-register2.glade.h:10
-#: ../src/gnome/gtkbuilder/gnc-plugin-page-register.glade.h:11
+#: ../src/gnome/gtkbuilder/gnc-plugin-page-register.glade.h:15
 #: ../src/import-export/csv-exp/assistant-csv-export.glade.h:27
 msgid "Choo_se Date:"
 msgstr "Вы_берите дату:"
 
 #: ../src/gnome/gtkbuilder/gnc-plugin-page-register2.glade.h:11
-#: ../src/gnome/gtkbuilder/gnc-plugin-page-register.glade.h:12
+#: ../src/gnome/gtkbuilder/gnc-plugin-page-register.glade.h:16
 #: ../src/import-export/csv-exp/assistant-csv-export.glade.h:28
 msgid "Toda_y"
 msgstr "Сегодн_я"
 
 #: ../src/gnome/gtkbuilder/gnc-plugin-page-register2.glade.h:12
-#: ../src/gnome/gtkbuilder/gnc-plugin-page-register.glade.h:13
+#: ../src/gnome/gtkbuilder/gnc-plugin-page-register.glade.h:17
 #: ../src/import-export/csv-exp/assistant-csv-export.glade.h:29
 msgid "_Latest"
 msgstr "П_оследние"
 
+#. Filter By Dialog, Date Tab, End section
 #: ../src/gnome/gtkbuilder/gnc-plugin-page-register2.glade.h:13
-#: ../src/gnome/gtkbuilder/gnc-plugin-page-register.glade.h:14
+#: ../src/gnome/gtkbuilder/gnc-plugin-page-register.glade.h:19
 #: ../src/import-export/csv-exp/assistant-csv-export.glade.h:30
 msgid "End:"
 msgstr "Конец:"
 
 #: ../src/gnome/gtkbuilder/gnc-plugin-page-register2.glade.h:14
-#: ../src/gnome/gtkbuilder/gnc-plugin-page-register.glade.h:15
+#: ../src/gnome/gtkbuilder/gnc-plugin-page-register.glade.h:20
 #: ../src/import-export/csv-exp/assistant-csv-export.glade.h:31
 msgid "C_hoose Date:"
 msgstr "Выб_ерите дату:"
 
 #: ../src/gnome/gtkbuilder/gnc-plugin-page-register2.glade.h:15
-#: ../src/gnome/gtkbuilder/gnc-plugin-page-register.glade.h:16
+#: ../src/gnome/gtkbuilder/gnc-plugin-page-register.glade.h:21
 #: ../src/import-export/csv-exp/assistant-csv-export.glade.h:32
 msgid "_Today"
 msgstr "Сегодн_я"
 
+#. Filter By Dialog, State Tab
 #: ../src/gnome/gtkbuilder/gnc-plugin-page-register2.glade.h:17
-#: ../src/gnome/gtkbuilder/gnc-plugin-page-register.glade.h:18
+#: ../src/gnome/gtkbuilder/gnc-plugin-page-register.glade.h:24
 msgid "_Unreconciled"
 msgstr "Н_есогласовано"
 
 #: ../src/gnome/gtkbuilder/gnc-plugin-page-register2.glade.h:18
-#: ../src/gnome/gtkbuilder/gnc-plugin-page-register.glade.h:19
+#: ../src/gnome/gtkbuilder/gnc-plugin-page-register.glade.h:25
 #: ../src/import-export/qif-imp/dialog-account-picker.glade.h:5
 msgid "_Reconciled"
 msgstr "_Согласовано"
 
 #: ../src/gnome/gtkbuilder/gnc-plugin-page-register2.glade.h:19
-#: ../src/gnome/gtkbuilder/gnc-plugin-page-register.glade.h:20
+#: ../src/gnome/gtkbuilder/gnc-plugin-page-register.glade.h:26
 msgid "C_leared"
 msgstr "О_чищено"
 
 #: ../src/gnome/gtkbuilder/gnc-plugin-page-register2.glade.h:20
-#: ../src/gnome/gtkbuilder/gnc-plugin-page-register.glade.h:21
+#: ../src/gnome/gtkbuilder/gnc-plugin-page-register.glade.h:27
 msgid "_Voided"
 msgstr "_Аннулировано"
 
 #: ../src/gnome/gtkbuilder/gnc-plugin-page-register2.glade.h:21
-#: ../src/gnome/gtkbuilder/gnc-plugin-page-register.glade.h:22
+#: ../src/gnome/gtkbuilder/gnc-plugin-page-register.glade.h:28
 msgid "_Frozen"
 msgstr "_Заморожено"
 
 #: ../src/gnome/gtkbuilder/gnc-plugin-page-register2.glade.h:22
-#: ../src/gnome/gtkbuilder/gnc-plugin-page-register.glade.h:23
+#: ../src/gnome/gtkbuilder/gnc-plugin-page-register.glade.h:29
 msgid "Select _All"
 msgstr "Выбрать _все"
 
+#. Filter By Dialog, below tabs
 #: ../src/gnome/gtkbuilder/gnc-plugin-page-register2.glade.h:24
-#: ../src/gnome/gtkbuilder/gnc-plugin-page-register.glade.h:25
+#: ../src/gnome/gtkbuilder/gnc-plugin-page-register.glade.h:32
 msgid "Sa_ve Filter"
 msgstr "Сохранить _фильтр"
 
 #: ../src/gnome/gtkbuilder/gnc-plugin-page-register2.glade.h:25
-#: ../src/gnome/gtkbuilder/gnc-plugin-page-register.glade.h:51
+#: ../src/gnome/gtkbuilder/gnc-plugin-page-register.glade.h:59
 msgid "Void Transaction"
 msgstr "Аннулированные проводки"
 
 #: ../src/gnome/gtkbuilder/gnc-plugin-page-register2.glade.h:26
-#: ../src/gnome/gtkbuilder/gnc-plugin-page-register.glade.h:52
+#: ../src/gnome/gtkbuilder/gnc-plugin-page-register.glade.h:60
 msgid "Reason for voiding transaction:"
 msgstr "Причина аннулирования проводки:"
 
-#: ../src/gnome/gtkbuilder/gnc-plugin-page-register.glade.h:5
+#: ../src/gnome/gtkbuilder/gnc-plugin-page-register.glade.h:6
 msgid "_Transaction Number:"
 msgstr "Номер _проводки"
 
-#: ../src/gnome/gtkbuilder/gnc-plugin-page-register.glade.h:26
+#. Sort register by Dialog
+#: ../src/gnome/gtkbuilder/gnc-plugin-page-register.glade.h:34
 msgid "Sort register by..."
 msgstr "Упорядочить журнал по..."
 
-#: ../src/gnome/gtkbuilder/gnc-plugin-page-register.glade.h:27
+#: ../src/gnome/gtkbuilder/gnc-plugin-page-register.glade.h:35
 msgid "_Standard Order"
 msgstr "Обычны_й порядок"
 
-#: ../src/gnome/gtkbuilder/gnc-plugin-page-register.glade.h:28
+#: ../src/gnome/gtkbuilder/gnc-plugin-page-register.glade.h:36
 msgid "Keep normal account order."
 msgstr "Сохранять нормальный порядок счетов."
 
-#: ../src/gnome/gtkbuilder/gnc-plugin-page-register.glade.h:30
+#: ../src/gnome/gtkbuilder/gnc-plugin-page-register.glade.h:38
 #: ../src/report/standard-reports/transaction.scm:740
 #: ../src/report/standard-reports/transaction.scm:795
 msgid "Sort by date."
 msgstr "Упорядочить по дате."
 
-#: ../src/gnome/gtkbuilder/gnc-plugin-page-register.glade.h:32
+#: ../src/gnome/gtkbuilder/gnc-plugin-page-register.glade.h:40
 msgid "Sort by the date of entry."
 msgstr "Упорядочить по дате записи."
 
-#: ../src/gnome/gtkbuilder/gnc-plugin-page-register.glade.h:33
+#: ../src/gnome/gtkbuilder/gnc-plugin-page-register.glade.h:41
 msgid "S_tatement Date"
 msgstr "_Дата декларации"
 
-#: ../src/gnome/gtkbuilder/gnc-plugin-page-register.glade.h:34
+#: ../src/gnome/gtkbuilder/gnc-plugin-page-register.glade.h:42
 msgid ""
 "Sort by the statement date (and group by cleared, unreconciled, reconciled)."
 msgstr ""
 "Упорядочить по дате записи (и сгруппировать по согласованности - очищенные, "
 "несогласованные, согласованные)."
 
-#: ../src/gnome/gtkbuilder/gnc-plugin-page-register.glade.h:35
+#: ../src/gnome/gtkbuilder/gnc-plugin-page-register.glade.h:43
 msgid "Num_ber"
 msgstr "Но_мер"
 
-#: ../src/gnome/gtkbuilder/gnc-plugin-page-register.glade.h:36
+#: ../src/gnome/gtkbuilder/gnc-plugin-page-register.glade.h:44
 msgid "Sort by number."
 msgstr "Упорядочить по номеру."
 
-#: ../src/gnome/gtkbuilder/gnc-plugin-page-register.glade.h:37
+#: ../src/gnome/gtkbuilder/gnc-plugin-page-register.glade.h:45
 msgid "Amo_unt"
 msgstr "С_умма"
 
-#: ../src/gnome/gtkbuilder/gnc-plugin-page-register.glade.h:38
+#: ../src/gnome/gtkbuilder/gnc-plugin-page-register.glade.h:46
 #: ../src/report/standard-reports/transaction.scm:764
 #: ../src/report/standard-reports/transaction.scm:819
 msgid "Sort by amount."
 msgstr "Упорядочить по сумме."
 
-#: ../src/gnome/gtkbuilder/gnc-plugin-page-register.glade.h:39
+#: ../src/gnome/gtkbuilder/gnc-plugin-page-register.glade.h:47
 msgid "_Memo"
 msgstr "_Памятка"
 
-#: ../src/gnome/gtkbuilder/gnc-plugin-page-register.glade.h:40
+#: ../src/gnome/gtkbuilder/gnc-plugin-page-register.glade.h:48
 #: ../src/report/standard-reports/transaction.scm:780
 #: ../src/report/standard-reports/transaction.scm:831
 msgid "Sort by memo."
 msgstr "Упорядочить по памятке."
 
-#: ../src/gnome/gtkbuilder/gnc-plugin-page-register.glade.h:42
+#: ../src/gnome/gtkbuilder/gnc-plugin-page-register.glade.h:50
 #: ../src/report/standard-reports/transaction.scm:768
 #: ../src/report/standard-reports/transaction.scm:823
 msgid "Sort by description."
 msgstr "Упорядочить по описанию."
 
-#: ../src/gnome/gtkbuilder/gnc-plugin-page-register.glade.h:43
+#: ../src/gnome/gtkbuilder/gnc-plugin-page-register.glade.h:51
 msgid "_Action"
 msgstr "_Действие"
 
-#: ../src/gnome/gtkbuilder/gnc-plugin-page-register.glade.h:44
+#: ../src/gnome/gtkbuilder/gnc-plugin-page-register.glade.h:52
 msgid "Sort by action field."
 msgstr "Упорядочить по действию."
 
-#: ../src/gnome/gtkbuilder/gnc-plugin-page-register.glade.h:45
+#: ../src/gnome/gtkbuilder/gnc-plugin-page-register.glade.h:53
 msgid "_Notes"
 msgstr "_Заметки"
 
-#: ../src/gnome/gtkbuilder/gnc-plugin-page-register.glade.h:46
+#: ../src/gnome/gtkbuilder/gnc-plugin-page-register.glade.h:54
 msgid "Sort by notes field."
 msgstr "Упорядочить по заметкам."
 
-#: ../src/gnome/gtkbuilder/gnc-plugin-page-register.glade.h:47
+#: ../src/gnome/gtkbuilder/gnc-plugin-page-register.glade.h:55
 msgid "Sa_ve Sort Order"
 msgstr "Со_хранить порядок сортировки"
 
-#: ../src/gnome/gtkbuilder/gnc-plugin-page-register.glade.h:48
+#: ../src/gnome/gtkbuilder/gnc-plugin-page-register.glade.h:56
 msgid "Save the sort order for this register."
 msgstr "Сохранить порядок сортировки для этого журнала."
 
-#: ../src/gnome/gtkbuilder/gnc-plugin-page-register.glade.h:49
-msgid "Reverse Order"
+#: ../src/gnome/gtkbuilder/gnc-plugin-page-register.glade.h:57
+#, fuzzy
+msgid "_Reverse Order"
 msgstr "Обратный порядок"
 
-#: ../src/gnome/gtkbuilder/gnc-plugin-page-register.glade.h:50
+#: ../src/gnome/gtkbuilder/gnc-plugin-page-register.glade.h:58
 msgid "Sort in descending order."
 msgstr "Упорядочить в убывающем порядке."
 
@@ -10211,9 +10229,13 @@ msgstr ""
 msgid "Enter _Interest Payment..."
 msgstr "Ввод платежа по процентам..."
 
+#. Translators: The abbreviation for 'Reconciled'
+#. in the header row of the register. Please only
+#. translate the portion after the ':' and
+#. leave the rest ("Reconciled:") as is.
 #: ../src/gnome/reconcile-view.c:368
-#: ../src/register/ledger-core/split-register-layout.c:690
-#: ../src/register/ledger-core/split-register-model.c:303
+#: ../src/register/ledger-core/split-register-layout.c:699
+#: ../src/register/ledger-core/split-register-model.c:304
 msgid "Reconciled:R"
 msgstr "Reconciled:С"
 
@@ -10239,7 +10261,8 @@ msgstr "Новая проводка"
 msgid "New Split"
 msgstr "Новая часть"
 
-#: ../src/gnome-search/dialog-search.c:1096
+#. Translators: This string has a disambiguation prefix. Translate only the part behind '|'
+#: ../src/gnome-search/dialog-search.c:1097
 msgid ""
 "Item represents an unknown object type (in the sense of bill, customer, "
 "invoice, transaction, split,...)|New item"
@@ -10247,11 +10270,11 @@ msgstr ""
 "Элемент - неизвестный тип объекта (в смысле счет, клиент, счёт-фактура, "
 "транзакция, разделение,...)|Новый элемент"
 
-#: ../src/gnome-search/dialog-search.c:1145
+#: ../src/gnome-search/dialog-search.c:1146
 msgid "all criteria are met"
 msgstr "соответствуют всем критериям"
 
-#: ../src/gnome-search/dialog-search.c:1146
+#: ../src/gnome-search/dialog-search.c:1147
 msgid "any criteria are met"
 msgstr "соответствуют любому критерию"
 
@@ -11231,7 +11254,7 @@ msgid "_No, not this time"
 msgstr "_Нет, не сейчас"
 
 #: ../src/gnome-utils/gnc-date-delta.c:218
-#: ../src/report/standard-reports/price-scatter.scm:229
+#: ../src/report/standard-reports/price-scatter.scm:231
 msgid "Weeks"
 msgstr "Недели"
 
@@ -11721,7 +11744,9 @@ msgstr "_Удалить счет"
 msgid "_Edit Account"
 msgstr "_Изменить счет"
 
+#. Add the New Account Button
 #: ../src/gnome-utils/gnc-icons.c:41
+#: ../src/import-export/import-account-matcher.c:438
 msgid "_New Account"
 msgstr "_Новый счет"
 
@@ -12026,8 +12051,8 @@ msgstr "Настройки книги"
 #: ../src/gnome-utils/gnc-main-window.c:4370
 msgid "The GnuCash personal finance manager. The GNU way to manage your money!"
 msgstr ""
-"Персональный финансовый менеджер GnuCash. \nGNU-способ распоряжения вашими "
-"деньгами!"
+"Персональный финансовый менеджер GnuCash. \n"
+"GNU-способ распоряжения вашими деньгами!"
 
 #: ../src/gnome-utils/gnc-main-window.c:4372
 #, c-format
@@ -12053,7 +12078,7 @@ msgstr ""
 msgid "Start of this quarter"
 msgstr "Начало текущего квартала"
 
-#. FY Strings
+#. FY (fiscal year) Strings
 #: ../src/gnome-utils/gnc-period-select.c:79
 msgid "Start of this accounting period"
 msgstr "Начало этого отчётного периода"
@@ -12066,7 +12091,7 @@ msgstr "Начало предыдущего учётного периода"
 msgid "End of this quarter"
 msgstr "Конец текущегоо квартала"
 
-#. FY Strings
+#. FY (fiscal year) Strings
 #: ../src/gnome-utils/gnc-period-select.c:95
 msgid "End of this accounting period"
 msgstr "Конец текущего учётного периода"
@@ -12077,8 +12102,8 @@ msgstr "Конец предыдущего учётного периода"
 
 #. Development version
 #. Translators: 1st %s is the GnuCash version (eg 2.4.11);
-#. 2nd %s is the scm type (svn/svk/git/bzr);
-#. 3rd %s is the scm revision number;
+#. 2nd %s is the vcs type (svn/svk/git/bzr);
+#. 3rd %s is the vcs revision number;
 #. 4th %s is the build date
 #: ../src/gnome-utils/gnc-splash.c:96
 #, c-format
@@ -12087,7 +12112,7 @@ msgstr "Версия: Gnucash-%s %s (ревизия %s, дата сборки %s
 
 #. Dist Tarball
 #. Translators: 1st %s is the GnuCash version (eg 2.4.11);
-#. 2nd %s is the scm (svn/svk/git/bzr) revision number;
+#. 2nd %s is the vcs (svn/svk/git/bzr) revision number;
 #. 3rd %s is the build date
 #: ../src/gnome-utils/gnc-splash.c:104
 #, c-format
@@ -12226,16 +12251,17 @@ msgstr ""
 "Пустая проводка содержит недостаточно информации, чтобы её сохранить. Вы "
 "хотите вернуться чтобы отредактировать проводку или отменить сохранение?"
 
-#: ../src/gnome-utils/gnc-tree-control-split-reg.c:1740
+#. Translators: Return to the transaction to update
+#: ../src/gnome-utils/gnc-tree-control-split-reg.c:1741
 msgid "_Return"
 msgstr "_Вернуться"
 
-#: ../src/gnome-utils/gnc-tree-control-split-reg.c:1783
+#: ../src/gnome-utils/gnc-tree-control-split-reg.c:1784
 #: ../src/register/ledger-core/split-register-control.c:1835
 msgid "Mark split as unreconciled?"
 msgstr "Отметить часть, как несогласованную?"
 
-#: ../src/gnome-utils/gnc-tree-control-split-reg.c:1785
+#: ../src/gnome-utils/gnc-tree-control-split-reg.c:1786
 #: ../src/register/ledger-core/split-register-control.c:1837
 msgid ""
 "You are about to mark a reconciled split as unreconciled. Doing so might "
@@ -12244,18 +12270,18 @@ msgstr ""
 "Вы действительно хотите пометить эту проводку, как несогласованную? Если вы "
 "так сделаете, то согласование в будущем будет усложнено! Продолжить?"
 
-#: ../src/gnome-utils/gnc-tree-control-split-reg.c:1829
+#: ../src/gnome-utils/gnc-tree-control-split-reg.c:1830
 #: ../src/register/ledger-core/split-register-control.c:1854
 msgid "_Unreconcile"
 msgstr "_Отменить согласование"
 
-#: ../src/gnome-utils/gnc-tree-control-split-reg.c:1914
-#: ../src/register/ledger-core/split-register-model.c:2064
+#: ../src/gnome-utils/gnc-tree-control-split-reg.c:1915
+#: ../src/register/ledger-core/split-register-model.c:2065
 msgid "Change reconciled split?"
 msgstr "Изменить согласованную часть?"
 
-#: ../src/gnome-utils/gnc-tree-control-split-reg.c:1916
-#: ../src/register/ledger-core/split-register-model.c:2066
+#: ../src/gnome-utils/gnc-tree-control-split-reg.c:1917
+#: ../src/register/ledger-core/split-register-model.c:2067
 msgid ""
 "You are about to change a reconciled split. Doing so might make future "
 "reconciliation difficult! Continue with this change?"
@@ -12263,13 +12289,13 @@ msgstr ""
 "Вы действительно хотите изменить согласованную часть? Если вы так сделаете, "
 "то согласование в будущем будет усложнено!"
 
-#: ../src/gnome-utils/gnc-tree-control-split-reg.c:1921
-#: ../src/register/ledger-core/split-register-model.c:2071
+#: ../src/gnome-utils/gnc-tree-control-split-reg.c:1922
+#: ../src/register/ledger-core/split-register-model.c:2072
 msgid "Change split linked to a reconciled split?"
 msgstr "Изменить часть, связанную с согласованной частью?"
 
-#: ../src/gnome-utils/gnc-tree-control-split-reg.c:1923
-#: ../src/register/ledger-core/split-register-model.c:2073
+#: ../src/gnome-utils/gnc-tree-control-split-reg.c:1924
+#: ../src/register/ledger-core/split-register-model.c:2074
 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?"
@@ -12278,12 +12304,12 @@ msgstr ""
 "проводки? Если вы так сделаете, то согласование в будущем будет усложнено! "
 "Продолжить?"
 
-#: ../src/gnome-utils/gnc-tree-control-split-reg.c:1937
-#: ../src/register/ledger-core/split-register-model.c:2087
+#: ../src/gnome-utils/gnc-tree-control-split-reg.c:1938
+#: ../src/register/ledger-core/split-register-model.c:2088
 msgid "Chan_ge Split"
 msgstr "_Изменить часть"
 
-#: ../src/gnome-utils/gnc-tree-control-split-reg.c:2125
+#: ../src/gnome-utils/gnc-tree-control-split-reg.c:2126
 msgid "You can not paste from the general ledger to a register."
 msgstr "Вы не можете вставлять проводки из главной книги в журнал."
 
@@ -12391,7 +12417,7 @@ msgstr "Чек"
 #: ../src/gnome-utils/gnc-tree-view-price.c:454
 #: ../src/gnome-utils/gnc-tree-view-split-reg.c:3036
 #: ../src/register/ledger-core/split-register.c:2557
-#: ../src/register/ledger-core/split-register-model.c:386
+#: ../src/register/ledger-core/split-register-model.c:387
 #: ../src/report/business-reports/easy-invoice.scm:269
 #: ../src/report/business-reports/fancy-invoice.scm:279
 #: ../src/report/business-reports/invoice.scm:264
@@ -12401,7 +12427,7 @@ msgstr "Чек"
 #: ../src/report/standard-reports/general-ledger.scm:109
 #: ../src/report/standard-reports/portfolio.scm:247
 #: ../src/report/standard-reports/price-scatter.scm:41
-#: ../src/report/standard-reports/price-scatter.scm:346
+#: ../src/report/standard-reports/price-scatter.scm:348
 #: ../src/report/standard-reports/register.scm:160
 #: ../src/report/standard-reports/register.scm:450
 #: ../src/report/standard-reports/transaction.scm:396
@@ -12500,7 +12526,7 @@ msgid "_Recalculate"
 msgstr "_Пересчитать"
 
 #: ../src/gnome-utils/gnc-tree-view-account.c:719
-#: ../src/import-export/csv-exp/csv-transactions-export.c:417
+#: ../src/import-export/csv-exp/csv-transactions-export.c:420
 #: ../src/report/locale-specific/us/taxtxf-de_DE.scm:303
 #: ../src/report/standard-reports/general-ledger.scm:82
 #: ../src/report/standard-reports/general-ledger.scm:102
@@ -12818,8 +12844,9 @@ msgstr "Причина аннулирования"
 msgid "Accounts / Void Reason"
 msgstr "Счета / Причина аннулирования"
 
+#. toggle column: mark existing transaction reconciled
 #: ../src/gnome-utils/gnc-tree-view-split-reg.c:2962
-#: ../src/import-export/import-main-matcher.c:475
+#: ../src/import-export/import-main-matcher.c:483
 msgid "R"
 msgstr "С"
 
@@ -12832,12 +12859,12 @@ msgid "Rate"
 msgstr "Курс"
 
 #: ../src/gnome-utils/gnc-tree-view-split-reg.c:3112
-#: ../src/register/ledger-core/split-register-model.c:489
+#: ../src/register/ledger-core/split-register-model.c:490
 msgid "Credit Formula"
 msgstr "Формула кредита"
 
 #: ../src/gnome-utils/gnc-tree-view-split-reg.c:3193
-#: ../src/register/ledger-core/split-register-model.c:482
+#: ../src/register/ledger-core/split-register-model.c:483
 msgid "Debit Formula"
 msgstr "Формула дебета"
 
@@ -12859,14 +12886,14 @@ msgid "Enter the transaction number, such as the check number"
 msgstr "Введите номер проводки, такой как номер чека"
 
 #: ../src/gnome-utils/gnc-tree-view-split-reg.c:3293
-#: ../src/register/ledger-core/split-register-model.c:1077
+#: ../src/register/ledger-core/split-register-model.c:1078
 msgid "Enter the name of the Customer"
 msgstr "Введите имя клиента"
 
 #: ../src/gnome-utils/gnc-tree-view-split-reg.c:3295
 #: ../src/gnome-utils/gnc-tree-view-split-reg.c:3304
 #: ../src/gnome-utils/gnc-tree-view-split-reg.c:3313
-#: ../src/register/ledger-core/split-register-model.c:1114
+#: ../src/register/ledger-core/split-register-model.c:1115
 msgid "Enter notes for the transaction"
 msgstr "Введите замечание к проводке"
 
@@ -12874,30 +12901,30 @@ msgstr "Введите замечание к проводке"
 #: ../src/gnome-utils/gnc-tree-view-split-reg.c:3297
 #: ../src/gnome-utils/gnc-tree-view-split-reg.c:3306
 #: ../src/gnome-utils/gnc-tree-view-split-reg.c:3315
-#: ../src/register/ledger-core/split-register-model.c:1273
+#: ../src/register/ledger-core/split-register-model.c:1274
 msgid "Enter a description of the split"
 msgstr "Введите описание разделения"
 
 #: ../src/gnome-utils/gnc-tree-view-split-reg.c:3302
-#: ../src/register/ledger-core/split-register-model.c:1080
+#: ../src/register/ledger-core/split-register-model.c:1081
 msgid "Enter the name of the Vendor"
 msgstr "Введите имя поставщика"
 
 #: ../src/gnome-utils/gnc-tree-view-split-reg.c:3311
-#: ../src/register/ledger-core/split-register-model.c:1083
+#: ../src/register/ledger-core/split-register-model.c:1084
 msgid "Enter a description of the transaction"
 msgstr "Введите описание проводки"
 
 #: ../src/gnome-utils/gnc-tree-view-split-reg.c:3325
 #: ../src/gnome-utils/gnc-tree-view-split-reg.c:3329
-#: ../src/register/ledger-core/split-register-model.c:1432
-#: ../src/register/ledger-core/split-register-model.c:1498
+#: ../src/register/ledger-core/split-register-model.c:1433
+#: ../src/register/ledger-core/split-register-model.c:1499
 msgid "Enter the account to transfer from, or choose one from the list"
 msgstr ""
 "Введите счет, откуда будет производиться перевод, или выберите его из списка"
 
 #: ../src/gnome-utils/gnc-tree-view-split-reg.c:3327
-#: ../src/register/ledger-core/split-register-model.c:1147
+#: ../src/register/ledger-core/split-register-model.c:1148
 msgid "Reason the transaction was voided"
 msgstr "Причина аннулирования проводки"
 
@@ -12916,7 +12943,7 @@ msgstr "Введите число проданных или купленных 
 
 #: ../src/gnome-utils/gnc-tree-view-split-reg.c:3369
 #: ../src/gnome-utils/gnc-tree-view-split-reg.c:3381
-#: ../src/register/ledger-core/split-register-model.c:1381
+#: ../src/register/ledger-core/split-register-model.c:1382
 msgid "Enter the number of shares bought or sold"
 msgstr "Введите число продаваемых или покупаемых акций"
 
@@ -12929,17 +12956,17 @@ msgid "Enter the rate"
 msgstr "Введите курс"
 
 #: ../src/gnome-utils/gnc-tree-view-split-reg.c:3411
-#: ../src/register/ledger-core/split-register-model.c:1345
+#: ../src/register/ledger-core/split-register-model.c:1346
 msgid "Enter the effective share price"
 msgstr "Введите действительную цену акции"
 
 #: ../src/gnome-utils/gnc-tree-view-split-reg.c:3421
-#: ../src/register/ledger-core/split-register-model.c:2203
+#: ../src/register/ledger-core/split-register-model.c:2204
 msgid "Enter credit formula for real transaction"
 msgstr "Введите кредитовую формулу для реальной проводки"
 
 #: ../src/gnome-utils/gnc-tree-view-split-reg.c:3431
-#: ../src/register/ledger-core/split-register-model.c:2173
+#: ../src/register/ledger-core/split-register-model.c:2174
 msgid "Enter debit formula for real transaction"
 msgstr "Введите дебетовую формулу для реальной проводки"
 
@@ -13302,7 +13329,7 @@ msgstr "_Цвет счёта:"
 #. instantiate a default style sheet
 #: ../src/gnome-utils/gtkbuilder/dialog-account.glade.h:17
 #: ../src/report/report-system/html-style-sheet.scm:291
-#: ../src/report/report-system/report.scm:248
+#: ../src/report/report-system/report.scm:250
 #: ../src/report/stylesheets/stylesheet-plain.scm:316
 msgid "Default"
 msgstr "По умолчанию"
@@ -13315,7 +13342,7 @@ msgstr "З_аметки:"
 msgid "Ta_x related"
 msgstr "Относящиеся к _налогам"
 
-#. Translators: use the same words here as in 'Ta_x Report Options'.
+#. Translators: use the same words here as in
 #: ../src/gnome-utils/gtkbuilder/dialog-account.glade.h:21
 msgid ""
 "Use Edit->Tax Report Options to set the tax-related flag and assign a tax "
@@ -13774,33 +13801,29 @@ msgid "Locale"
 msgstr "Региональные настройки"
 
 #: ../src/gnome-utils/gtkbuilder/dialog-preferences.glade.h:10
-msgid "(dummy)"
-msgstr ""
-
-#: ../src/gnome-utils/gtkbuilder/dialog-preferences.glade.h:11
 msgid "GnuCash Preferences"
 msgstr "Настройки GnuCash"
 
-#: ../src/gnome-utils/gtkbuilder/dialog-preferences.glade.h:12
+#: ../src/gnome-utils/gtkbuilder/dialog-preferences.glade.h:11
 msgid "<b>Summarybar Content</b>"
 msgstr "<b>Содержание строки итогов</b>"
 
-#: ../src/gnome-utils/gtkbuilder/dialog-preferences.glade.h:13
+#: ../src/gnome-utils/gtkbuilder/dialog-preferences.glade.h:12
 msgid "Include _grand total"
 msgstr "Включить _полный итог"
 
-#: ../src/gnome-utils/gtkbuilder/dialog-preferences.glade.h:14
+#: ../src/gnome-utils/gtkbuilder/dialog-preferences.glade.h:13
 msgid ""
 "Show a grand total of all accounts converted to the default report currency."
 msgstr ""
 "Показывать полный итог всех счетов, переведённый в умолчальную валюту "
 "отчетов."
 
-#: ../src/gnome-utils/gtkbuilder/dialog-preferences.glade.h:15
+#: ../src/gnome-utils/gtkbuilder/dialog-preferences.glade.h:14
 msgid "Include _non-currency totals"
 msgstr "Включить невал_ютные итоги"
 
-#: ../src/gnome-utils/gtkbuilder/dialog-preferences.glade.h:16
+#: ../src/gnome-utils/gtkbuilder/dialog-preferences.glade.h:15
 msgid ""
 "If checked, non-currency commodities will be shown in the summary bar. If "
 "clear, only currencies will be shown."
@@ -13808,39 +13831,39 @@ msgstr ""
 "Если включено, то невалютные товары будут отображаться в итоговой строке. В "
 "противном случае будут отображаться только валютные."
 
-#: ../src/gnome-utils/gtkbuilder/dialog-preferences.glade.h:17
+#: ../src/gnome-utils/gtkbuilder/dialog-preferences.glade.h:16
 msgid "<b>Start Date</b>"
 msgstr "<b>Начальная дата</b>"
 
-#: ../src/gnome-utils/gtkbuilder/dialog-preferences.glade.h:18
+#: ../src/gnome-utils/gtkbuilder/dialog-preferences.glade.h:17
 msgid "<b>End Date</b>"
 msgstr "<b>Конечная дата</b>"
 
-#: ../src/gnome-utils/gtkbuilder/dialog-preferences.glade.h:19
+#: ../src/gnome-utils/gtkbuilder/dialog-preferences.glade.h:18
 msgid "_Relative:"
 msgstr "_Относительно:"
 
-#: ../src/gnome-utils/gtkbuilder/dialog-preferences.glade.h:20
+#: ../src/gnome-utils/gtkbuilder/dialog-preferences.glade.h:19
 msgid "Use the specified relative starting date for profit/loss calculations."
 msgstr ""
 "Использовать указанную относительную начальную дату для расчётов прибыли/"
 "убытков."
 
-#: ../src/gnome-utils/gtkbuilder/dialog-preferences.glade.h:21
+#: ../src/gnome-utils/gtkbuilder/dialog-preferences.glade.h:20
 msgid "_Absolute:"
 msgstr "_Абсолютная:"
 
-#: ../src/gnome-utils/gtkbuilder/dialog-preferences.glade.h:22
+#: ../src/gnome-utils/gtkbuilder/dialog-preferences.glade.h:21
 msgid "Use the specified absolute starting date for profit/loss calculations."
 msgstr ""
 "Использовать указанную абсолютную начальную дату для расчётов прибыли/"
 "убытков."
 
-#: ../src/gnome-utils/gtkbuilder/dialog-preferences.glade.h:23
+#: ../src/gnome-utils/gtkbuilder/dialog-preferences.glade.h:22
 msgid "Re_lative:"
 msgstr "_Относительная:"
 
-#: ../src/gnome-utils/gtkbuilder/dialog-preferences.glade.h:24
+#: ../src/gnome-utils/gtkbuilder/dialog-preferences.glade.h:23
 msgid ""
 "Use the specified relative ending date for profit/loss calculations. Also "
 "use this date for net assets calculations."
@@ -13848,11 +13871,11 @@ msgstr ""
 "Использовать указанную относительную конечную дату для расчётов прибыли/"
 "убытков. Также эта дата используется для подсчета чистых активов."
 
-#: ../src/gnome-utils/gtkbuilder/dialog-preferences.glade.h:25
+#: ../src/gnome-utils/gtkbuilder/dialog-preferences.glade.h:24
 msgid "Ab_solute:"
 msgstr "_Абсолютная:"
 
-#: ../src/gnome-utils/gtkbuilder/dialog-preferences.glade.h:26
+#: ../src/gnome-utils/gtkbuilder/dialog-preferences.glade.h:25
 msgid ""
 "Use the specified absolute ending date for profit/loss calculations. Also "
 "use this date for net assets calculations."
@@ -13860,59 +13883,59 @@ msgstr ""
 "Использовать указанную абсолютную конечную дату для расчётов прибыли/"
 "убытков. Также эта дата используется для подсчёта чистых активов."
 
-#: ../src/gnome-utils/gtkbuilder/dialog-preferences.glade.h:27
+#: ../src/gnome-utils/gtkbuilder/dialog-preferences.glade.h:26
 msgid "Accounting Period"
 msgstr "Расчётный период"
 
-#: ../src/gnome-utils/gtkbuilder/dialog-preferences.glade.h:28
+#: ../src/gnome-utils/gtkbuilder/dialog-preferences.glade.h:27
 msgid "<b>Separator Character</b>"
 msgstr "<b>Разделитель</b>"
 
-#: ../src/gnome-utils/gtkbuilder/dialog-preferences.glade.h:29
+#: ../src/gnome-utils/gtkbuilder/dialog-preferences.glade.h:28
 msgid "Use _formal accounting labels"
 msgstr "Использовать формальные обозначения счетов"
 
-#: ../src/gnome-utils/gtkbuilder/dialog-preferences.glade.h:30
+#: ../src/gnome-utils/gtkbuilder/dialog-preferences.glade.h:29
 msgid "Use only 'debit' and 'credit' instead of informal synonyms."
 msgstr "Использовать только 'дебет' и 'кредит' вместо неформальных синонимов."
 
-#: ../src/gnome-utils/gtkbuilder/dialog-preferences.glade.h:31
+#: ../src/gnome-utils/gtkbuilder/dialog-preferences.glade.h:30
 msgid "<b>Labels</b>"
 msgstr "<b>Метки</b>"
 
-#: ../src/gnome-utils/gtkbuilder/dialog-preferences.glade.h:32
+#: ../src/gnome-utils/gtkbuilder/dialog-preferences.glade.h:31
 msgid "_None"
 msgstr "_Нет"
 
-#: ../src/gnome-utils/gtkbuilder/dialog-preferences.glade.h:34
+#: ../src/gnome-utils/gtkbuilder/dialog-preferences.glade.h:33
 msgid "C_redit accounts"
 msgstr "_Кредитные счета"
 
-#: ../src/gnome-utils/gtkbuilder/dialog-preferences.glade.h:36
+#: ../src/gnome-utils/gtkbuilder/dialog-preferences.glade.h:35
 msgid "_Income & expense"
 msgstr "_Доходы и расходы"
 
-#: ../src/gnome-utils/gtkbuilder/dialog-preferences.glade.h:38
+#: ../src/gnome-utils/gtkbuilder/dialog-preferences.glade.h:37
 msgid "<b>Reverse Balanced Accounts</b>"
 msgstr "<b>Счета с обратным сальдо</b>"
 
-#: ../src/gnome-utils/gtkbuilder/dialog-preferences.glade.h:39
+#: ../src/gnome-utils/gtkbuilder/dialog-preferences.glade.h:38
 msgid "<b>Default Currency</b>"
 msgstr "<b>Валюта по умолчанию</b>"
 
-#: ../src/gnome-utils/gtkbuilder/dialog-preferences.glade.h:40
+#: ../src/gnome-utils/gtkbuilder/dialog-preferences.glade.h:39
 msgid "US Dollars (USD)"
 msgstr "Доллары США (USD)"
 
-#: ../src/gnome-utils/gtkbuilder/dialog-preferences.glade.h:41
+#: ../src/gnome-utils/gtkbuilder/dialog-preferences.glade.h:40
 msgid "Loc_ale:"
 msgstr "_Местный:"
 
-#: ../src/gnome-utils/gtkbuilder/dialog-preferences.glade.h:43
+#: ../src/gnome-utils/gtkbuilder/dialog-preferences.glade.h:42
 msgid "Ch_oose:"
 msgstr "_Выберите:"
 
-#: ../src/gnome-utils/gtkbuilder/dialog-preferences.glade.h:45
+#: ../src/gnome-utils/gtkbuilder/dialog-preferences.glade.h:44
 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 "
@@ -13924,70 +13947,70 @@ msgstr ""
 "\"slash\" (дробь), \"backslash\" (обратная дробь), \"dash\" (дефис) и "
 "\"period\" (точка)."
 
-#: ../src/gnome-utils/gtkbuilder/dialog-preferences.glade.h:46
+#: ../src/gnome-utils/gtkbuilder/dialog-preferences.glade.h:45
 msgid "Character:"
 msgstr "Символ:"
 
-#: ../src/gnome-utils/gtkbuilder/dialog-preferences.glade.h:47
+#: ../src/gnome-utils/gtkbuilder/dialog-preferences.glade.h:46
 #: ../src/gnome-utils/gtkbuilder/gnc-date-format.glade.h:12
 msgid "Sample:"
 msgstr "Пример:"
 
-#: ../src/gnome-utils/gtkbuilder/dialog-preferences.glade.h:48
+#: ../src/gnome-utils/gtkbuilder/dialog-preferences.glade.h:47
 msgid "<b>Account Color</b>"
 msgstr "<b>Цвет счёта</b>"
 
-#: ../src/gnome-utils/gtkbuilder/dialog-preferences.glade.h:49
+#: ../src/gnome-utils/gtkbuilder/dialog-preferences.glade.h:48
 msgid "Show the Account Color as background"
 msgstr "Использовать цвет счета для фонового цвета в названии"
 
-#: ../src/gnome-utils/gtkbuilder/dialog-preferences.glade.h:50
+#: ../src/gnome-utils/gtkbuilder/dialog-preferences.glade.h:49
 msgid "Show the Account Color as Account Name Background."
 msgstr ""
 "Использовать цвет счёта в качестве цвета в фона в колонке \"Название счета\"."
 
-#: ../src/gnome-utils/gtkbuilder/dialog-preferences.glade.h:51
+#: ../src/gnome-utils/gtkbuilder/dialog-preferences.glade.h:50
 msgid "Show the Account Color on tabs"
 msgstr "Показывать цвет счёта на вкладках"
 
-#: ../src/gnome-utils/gtkbuilder/dialog-preferences.glade.h:52
+#: ../src/gnome-utils/gtkbuilder/dialog-preferences.glade.h:51
 msgid "Show the Account Color as tab background."
 msgstr "Использовать цвет счёта в качестве цвета фона в заголовке вкладки."
 
-#: ../src/gnome-utils/gtkbuilder/dialog-preferences.glade.h:54
+#: ../src/gnome-utils/gtkbuilder/dialog-preferences.glade.h:53
 msgid "<b>Fancy Date Format</b>"
 msgstr "<b>Красивый формат даты</b>"
 
-#: ../src/gnome-utils/gtkbuilder/dialog-preferences.glade.h:55
+#: ../src/gnome-utils/gtkbuilder/dialog-preferences.glade.h:54
 msgid "<b>Date Format</b>"
 msgstr "<b>Формат даты</b>"
 
-#: ../src/gnome-utils/gtkbuilder/dialog-preferences.glade.h:56
+#: ../src/gnome-utils/gtkbuilder/dialog-preferences.glade.h:55
 msgid "<b>Time Format</b>"
 msgstr "<b>Формат времени</b>"
 
-#: ../src/gnome-utils/gtkbuilder/dialog-preferences.glade.h:57
+#: ../src/gnome-utils/gtkbuilder/dialog-preferences.glade.h:56
 msgid "U_se 24-hour clock"
 msgstr "Использовать 24-х часовой формат времени"
 
-#: ../src/gnome-utils/gtkbuilder/dialog-preferences.glade.h:58
+#: ../src/gnome-utils/gtkbuilder/dialog-preferences.glade.h:57
 msgid "Use a 24 hour (instead of a 12 hour) time format."
 msgstr "Использовать 24-х часовой формат времени вместо 12-ти часового."
 
-#: ../src/gnome-utils/gtkbuilder/dialog-preferences.glade.h:59
+#: ../src/gnome-utils/gtkbuilder/dialog-preferences.glade.h:58
 msgid "<b>Date Completion</b>"
 msgstr "<b>Дополнение даты</b>"
 
-#: ../src/gnome-utils/gtkbuilder/dialog-preferences.glade.h:60
+#: ../src/gnome-utils/gtkbuilder/dialog-preferences.glade.h:59
 msgid "When a date is entered without year, it should be taken:"
 msgstr "Если дата введена без года, то она должна быть дополнена:"
 
-#: ../src/gnome-utils/gtkbuilder/dialog-preferences.glade.h:62
+#: ../src/gnome-utils/gtkbuilder/dialog-preferences.glade.h:61
 msgid ""
 "Dates will be completed so that they are within the current calendar year."
 msgstr "Даты будут дополняться так, как будто они в текущем календарном году."
 
-#: ../src/gnome-utils/gtkbuilder/dialog-preferences.glade.h:63
+#: ../src/gnome-utils/gtkbuilder/dialog-preferences.glade.h:62
 msgid ""
 "In a sliding 12-month window starting this\n"
 "many months before the current month:"
@@ -13995,16 +14018,16 @@ msgstr ""
 "В скользящем 12-ти месячном окне. \n"
 "Число прошедших месяцев входящих в окно:"
 
-#: ../src/gnome-utils/gtkbuilder/dialog-preferences.glade.h:66
+#: ../src/gnome-utils/gtkbuilder/dialog-preferences.glade.h:65
 msgid "Enter number of months."
 msgstr "Введите количество месяцев."
 
-#: ../src/gnome-utils/gtkbuilder/dialog-preferences.glade.h:67
+#: ../src/gnome-utils/gtkbuilder/dialog-preferences.glade.h:66
 msgid "Use the date format specified by the system locale."
 msgstr ""
 "Использовать формат даты, определённый региональными настройками системы."
 
-#: ../src/gnome-utils/gtkbuilder/dialog-preferences.glade.h:68
+#: ../src/gnome-utils/gtkbuilder/dialog-preferences.glade.h:67
 msgid "Date/Time"
 msgstr "Дата/время"
 
@@ -14122,7 +14145,8 @@ msgstr ""
 "разрешение. В противном случае не будет."
 
 #: ../src/gnome-utils/gtkbuilder/dialog-preferences.glade.h:107
-msgid "Time to wait for answer:"
+#, fuzzy
+msgid "Time to _wait for answer:"
 msgstr "Время для ожидания ответа:"
 
 #: ../src/gnome-utils/gtkbuilder/dialog-preferences.glade.h:109
@@ -14163,7 +14187,7 @@ msgid "Printing"
 msgstr "Печать"
 
 #: ../src/gnome-utils/gtkbuilder/dialog-preferences.glade.h:119
-#: ../src/import-export/dialog-import.glade.h:34
+#: ../src/import-export/dialog-import.glade.h:45
 msgid "<b>Actions</b>"
 msgstr "<b>Действия</b>"
 
@@ -14340,43 +14364,48 @@ msgstr ""
 "название, включая путь по дереву счетов. Включение этого параметра "
 "подразумевает, что используются уникальные названия подсчетов."
 
-#: ../src/gnome-utils/gtkbuilder/dialog-preferences.glade.h:161
+#. Register2 feature
+#: ../src/gnome-utils/gtkbuilder/dialog-preferences.glade.h:162
 msgid "Number of _characters for auto complete:"
 msgstr "Число символов для автозаполнения:"
 
-#: ../src/gnome-utils/gtkbuilder/dialog-preferences.glade.h:163
+#. Register2 feature
+#: ../src/gnome-utils/gtkbuilder/dialog-preferences.glade.h:166
 msgid "Show the _entered and reconcile dates"
 msgstr "Отображать даты ввода и согласования"
 
-#: ../src/gnome-utils/gtkbuilder/dialog-preferences.glade.h:165
+#. Register2 feature
+#: ../src/gnome-utils/gtkbuilder/dialog-preferences.glade.h:170
 msgid "Show the calendar b_uttons"
 msgstr "Показать кнопки календаря"
 
-#: ../src/gnome-utils/gtkbuilder/dialog-preferences.glade.h:167
+#. Register2 feature
+#: ../src/gnome-utils/gtkbuilder/dialog-preferences.glade.h:174
 msgid "_Move the selection to the blank split on expand"
 msgstr "При разворачивании выбирать пустую строчку"
 
-#: ../src/gnome-utils/gtkbuilder/dialog-preferences.glade.h:169
+#. Register2 feature
+#: ../src/gnome-utils/gtkbuilder/dialog-preferences.glade.h:178
 msgid "_Show entered and reconciled dates on selection"
 msgstr "Отображать даты создания и согласования при выборе"
 
-#: ../src/gnome-utils/gtkbuilder/dialog-preferences.glade.h:171
+#: ../src/gnome-utils/gtkbuilder/dialog-preferences.glade.h:181
 msgid "Register Defaults"
 msgstr "Настройки журнала"
 
-#: ../src/gnome-utils/gtkbuilder/dialog-preferences.glade.h:174
+#: ../src/gnome-utils/gtkbuilder/dialog-preferences.glade.h:184
 msgid "<b>Default Report Currency</b>"
 msgstr "<b>Валюта отчета по умолчанию</b>"
 
-#: ../src/gnome-utils/gtkbuilder/dialog-preferences.glade.h:175
+#: ../src/gnome-utils/gtkbuilder/dialog-preferences.glade.h:185
 msgid "<b>Location</b>"
 msgstr "<b>Размещение</b>"
 
-#: ../src/gnome-utils/gtkbuilder/dialog-preferences.glade.h:176
+#: ../src/gnome-utils/gtkbuilder/dialog-preferences.glade.h:186
 msgid "Report opens in a new _window"
 msgstr "Отчеты открываются в _новом окне"
 
-#: ../src/gnome-utils/gtkbuilder/dialog-preferences.glade.h:177
+#: ../src/gnome-utils/gtkbuilder/dialog-preferences.glade.h:187
 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."
@@ -14384,63 +14413,63 @@ msgstr ""
 "Если включено, каждый отчёт будет открываться в новом окне. В противном "
 "случае, в текущем окне."
 
-#: ../src/gnome-utils/gtkbuilder/dialog-preferences.glade.h:178
+#: ../src/gnome-utils/gtkbuilder/dialog-preferences.glade.h:188
 msgid "<b>Default zoom level</b>"
 msgstr "<b>Масштаб по умолчанию</b>"
 
-#: ../src/gnome-utils/gtkbuilder/dialog-preferences.glade.h:180
+#: ../src/gnome-utils/gtkbuilder/dialog-preferences.glade.h:190
 msgid "Reports"
 msgstr "Отчеты"
 
-#: ../src/gnome-utils/gtkbuilder/dialog-preferences.glade.h:181
+#: ../src/gnome-utils/gtkbuilder/dialog-preferences.glade.h:191
 msgid "<b>Window Geometry</b>"
 msgstr "<b>Геометрия окна</b>"
 
-#: ../src/gnome-utils/gtkbuilder/dialog-preferences.glade.h:182
+#: ../src/gnome-utils/gtkbuilder/dialog-preferences.glade.h:192
 msgid "_Save window size and position"
 msgstr "Со_хранять размер и положение окна"
 
-#: ../src/gnome-utils/gtkbuilder/dialog-preferences.glade.h:183
+#: ../src/gnome-utils/gtkbuilder/dialog-preferences.glade.h:193
 msgid "Save window size and location when it is closed."
 msgstr "Запоминать размеры и положения окна при закрытии."
 
-#: ../src/gnome-utils/gtkbuilder/dialog-preferences.glade.h:184
+#: ../src/gnome-utils/gtkbuilder/dialog-preferences.glade.h:194
 msgid "Bring the most _recent tab to the front"
 msgstr "Перенести наиболее часто используемую закладку вперед"
 
-#: ../src/gnome-utils/gtkbuilder/dialog-preferences.glade.h:186
+#: ../src/gnome-utils/gtkbuilder/dialog-preferences.glade.h:196
 msgid "<b>Tab Position</b>"
 msgstr "<b>Размещение закладки</b>"
 
-#: ../src/gnome-utils/gtkbuilder/dialog-preferences.glade.h:187
+#: ../src/gnome-utils/gtkbuilder/dialog-preferences.glade.h:197
 msgid "To_p"
 msgstr "С_верху"
 
-#: ../src/gnome-utils/gtkbuilder/dialog-preferences.glade.h:189
+#: ../src/gnome-utils/gtkbuilder/dialog-preferences.glade.h:199
 msgid "B_ottom"
 msgstr "С_низу"
 
-#: ../src/gnome-utils/gtkbuilder/dialog-preferences.glade.h:191
+#: ../src/gnome-utils/gtkbuilder/dialog-preferences.glade.h:201
 msgid "_Left"
 msgstr "С_лева"
 
-#: ../src/gnome-utils/gtkbuilder/dialog-preferences.glade.h:193
+#: ../src/gnome-utils/gtkbuilder/dialog-preferences.glade.h:203
 msgid "_Right"
 msgstr "С_права"
 
-#: ../src/gnome-utils/gtkbuilder/dialog-preferences.glade.h:195
+#: ../src/gnome-utils/gtkbuilder/dialog-preferences.glade.h:205
 msgid "<b>Summary Bar Position</b>"
 msgstr "<b>Расположение строки итогов</b>"
 
-#: ../src/gnome-utils/gtkbuilder/dialog-preferences.glade.h:200
+#: ../src/gnome-utils/gtkbuilder/dialog-preferences.glade.h:210
 msgid "<b>Tabs</b>"
 msgstr "<b>Закладки</b>"
 
-#: ../src/gnome-utils/gtkbuilder/dialog-preferences.glade.h:201
+#: ../src/gnome-utils/gtkbuilder/dialog-preferences.glade.h:211
 msgid "Show close button on _notebook tabs"
 msgstr "Показывать кнопку закрытия на закладках _блокнота"
 
-#: ../src/gnome-utils/gtkbuilder/dialog-preferences.glade.h:202
+#: ../src/gnome-utils/gtkbuilder/dialog-preferences.glade.h:212
 msgid ""
 "Show a close button on each notebook tab. These function identically to the "
 "'Close' menu item."
@@ -14448,11 +14477,11 @@ msgstr ""
 "Показывать кнопку закрытия на каждой вкладке. Её функция аналогична пункту "
 "меню \"Закрыть\"."
 
-#: ../src/gnome-utils/gtkbuilder/dialog-preferences.glade.h:203
+#: ../src/gnome-utils/gtkbuilder/dialog-preferences.glade.h:213
 msgid "_Width:"
 msgstr "_Ширина:"
 
-#: ../src/gnome-utils/gtkbuilder/dialog-preferences.glade.h:204
+#: ../src/gnome-utils/gtkbuilder/dialog-preferences.glade.h:214
 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."
@@ -14461,11 +14490,11 @@ msgstr ""
 "приблизительная), то у него вырезается средняя часть и заменяется на "
 "многоточие."
 
-#: ../src/gnome-utils/gtkbuilder/dialog-preferences.glade.h:205
+#: ../src/gnome-utils/gtkbuilder/dialog-preferences.glade.h:215
 msgid "characters"
 msgstr "символов"
 
-#: ../src/gnome-utils/gtkbuilder/dialog-preferences.glade.h:206
+#: ../src/gnome-utils/gtkbuilder/dialog-preferences.glade.h:216
 msgid "Windows"
 msgstr "Окна"
 
@@ -14583,11 +14612,10 @@ msgstr "<b>Перевести с</b>"
 msgid "Currency:"
 msgstr "Валюта:"
 
-#. (optname-accounts (N_ "Accounts"))
 #: ../src/gnome-utils/gtkbuilder/dialog-transfer.glade.h:10
 #: ../src/report/standard-reports/net-barchart.scm:55
 #: ../src/report/standard-reports/net-linechart.scm:51
-#: ../src/report/standard-reports/price-scatter.scm:49
+#: ../src/report/standard-reports/price-scatter.scm:51
 msgid "Show Income/Expense"
 msgstr "Показывать Приход/Расход"
 
@@ -15366,7 +15394,7 @@ msgstr ""
 msgid "There was an error accessing %s."
 msgstr "Произошла ошибка при доступе к \"%s\"."
 
-#. Before we save the PDF file, we always as the user for the export
+#. Before we save the PDF file, we always ask the user for the export
 #. file name. We will store the chosen directory in the gtk print settings
 #. as well.
 #: ../src/html/gnc-html-webkit.c:1152
@@ -15637,126 +15665,165 @@ msgid "Confirm Password:"
 msgstr "Подтверждение пароля:"
 
 #: ../src/import-export/aqb/dialog-ab.glade.h:21
-msgid "Remember _PIN"
-msgstr "Запомнить _PIN-код"
+#, fuzzy
+msgid "Remember the _PIN in memory"
+msgstr "Запомнить PIN-код"
 
 #: ../src/import-export/aqb/dialog-ab.glade.h:22
+#: ../src/import-export/aqb/gschemas/org.gnucash.dialogs.import.hbci.gschema.xml.in.in.h:6
+msgid ""
+"If active, the PIN for HBCI/AqBanking actions will be remembered in memory "
+"during a session. Otherwise it will have to be entered again each time "
+"during a session when it is needed."
+msgstr ""
+"Если активно, PIN-код для действий HBCI/AqBanking будет запоминаться в "
+"памяти во время сеанса. В противном случае его нужно будет вводить повторно "
+"каждый раз во время сеанса, когда это необходимо."
+
+#: ../src/import-export/aqb/dialog-ab.glade.h:23
 msgid "<b>Online Banking</b>"
 msgstr "<b>Интернет банкинг</b>"
 
-#: ../src/import-export/aqb/dialog-ab.glade.h:23
+#: ../src/import-export/aqb/dialog-ab.glade.h:24
 msgid "_Close log window when finished"
 msgstr "_Закрывать окно лога после завершения"
 
-#: ../src/import-export/aqb/dialog-ab.glade.h:24
+#: ../src/import-export/aqb/dialog-ab.glade.h:25
+#: ../src/import-export/aqb/gschemas/org.gnucash.dialogs.import.hbci.gschema.xml.in.in.h:4
+msgid ""
+"If active, the window will be closed automatically when you finish the HBCI/"
+"AqBanking import process. Otherwise it will stay open."
+msgstr ""
+"Если активно, окно будет закрыто автоматически, когда вы закончите процесс "
+"импорта HBCI/AqBanking. В противном случае оно останется открытым."
+
+#: ../src/import-export/aqb/dialog-ab.glade.h:26
 msgid "Use Non-SWIFT _transaction text"
 msgstr "Использовать Non-SWIFT текст _проводки"
 
-#: ../src/import-export/aqb/dialog-ab.glade.h:25
+#: ../src/import-export/aqb/dialog-ab.glade.h:27
+#: ../src/import-export/aqb/gschemas/org.gnucash.dialogs.import.hbci.gschema.xml.in.in.h:8
+msgid ""
+"Some banks place part of transaction description as \"transaction text\" in "
+"the MT940 file. Normally GNUcash ignores this text. However by activating "
+"this option, the transaction text is used for the transaction description "
+"too."
+msgstr ""
+"Некоторые банки помещают часть описания проводки как «текст транзакции» в "
+"файл MT940. Обычно GNUcash игнорирует этот текст. При активации этой опции "
+"текст проводки также используется для описания проводки."
+
+#: ../src/import-export/aqb/dialog-ab.glade.h:28
 msgid "_Verbose debug messages"
 msgstr "_Расширенные отладочные сообщения"
 
-#: ../src/import-export/aqb/dialog-ab.glade.h:26
+#: ../src/import-export/aqb/dialog-ab.glade.h:29
+#: ../src/import-export/aqb/gschemas/org.gnucash.dialogs.import.hbci.gschema.xml.in.in.h:10
+msgid "Enables verbose debug messages for HBCI/AqBanking Online Banking."
+msgstr ""
+"Включить подробные отладочные сообщения для интернет-банкинга HBCI/AqBanking."
+
+#: ../src/import-export/aqb/dialog-ab.glade.h:30
 msgid "Name for new template"
 msgstr "Название нового шаблона"
 
-#: ../src/import-export/aqb/dialog-ab.glade.h:27
+#: ../src/import-export/aqb/dialog-ab.glade.h:31
 msgid "Enter name for new template:"
 msgstr "Ввести название нового шаблона:"
 
-#: ../src/import-export/aqb/dialog-ab.glade.h:28
+#: ../src/import-export/aqb/dialog-ab.glade.h:32
 msgid "Online Transaction"
 msgstr "Онлайн проводка"
 
-#: ../src/import-export/aqb/dialog-ab.glade.h:29
+#: ../src/import-export/aqb/dialog-ab.glade.h:33
 msgid "Enter an Online Transaction"
 msgstr "Введите онлайновую проводку"
 
-#: ../src/import-export/aqb/dialog-ab.glade.h:30
+#: ../src/import-export/aqb/dialog-ab.glade.h:34
 msgid "Recipient Account Number"
 msgstr "Номер счета получателя"
 
-#: ../src/import-export/aqb/dialog-ab.glade.h:31
+#: ../src/import-export/aqb/dialog-ab.glade.h:35
 msgid "Recipient Bank Code"
 msgstr "Код банка получателя"
 
-#: ../src/import-export/aqb/dialog-ab.glade.h:32
+#: ../src/import-export/aqb/dialog-ab.glade.h:36
 msgid "Recipient Name"
 msgstr "Название получателя"
 
-#: ../src/import-export/aqb/dialog-ab.glade.h:33
+#: ../src/import-export/aqb/dialog-ab.glade.h:37
 msgid "at Bank"
 msgstr "в банке"
 
-#: ../src/import-export/aqb/dialog-ab.glade.h:34
+#: ../src/import-export/aqb/dialog-ab.glade.h:38
 msgid "(filled in automatically)"
 msgstr "(заполнено автоматически)"
 
-#: ../src/import-export/aqb/dialog-ab.glade.h:36
+#: ../src/import-export/aqb/dialog-ab.glade.h:40
 msgid "Payment Purpose (only for recipient)"
 msgstr "Назначение платежа (только для получателя)"
 
-#: ../src/import-export/aqb/dialog-ab.glade.h:37
+#: ../src/import-export/aqb/dialog-ab.glade.h:41
 msgid "Payment Purpose continued"
 msgstr "Продолжение назначения платежа"
 
-#: ../src/import-export/aqb/dialog-ab.glade.h:38
+#: ../src/import-export/aqb/dialog-ab.glade.h:42
 msgid "Originator Name"
 msgstr "Название инициатора"
 
-#: ../src/import-export/aqb/dialog-ab.glade.h:39
+#: ../src/import-export/aqb/dialog-ab.glade.h:43
 msgid "something"
 msgstr "что-то"
 
-#: ../src/import-export/aqb/dialog-ab.glade.h:40
+#: ../src/import-export/aqb/dialog-ab.glade.h:44
 msgid "Originator Account Number"
 msgstr "Номер счета инициатора"
 
-#: ../src/import-export/aqb/dialog-ab.glade.h:41
+#: ../src/import-export/aqb/dialog-ab.glade.h:45
 msgid "Bank Code"
 msgstr "Код банка"
 
-#: ../src/import-export/aqb/dialog-ab.glade.h:42
+#: ../src/import-export/aqb/dialog-ab.glade.h:46
 msgid "Add the current online transaction as a new transaction template"
 msgstr "Добавить текущую интернет проводку в качестве нового шаблона"
 
-#: ../src/import-export/aqb/dialog-ab.glade.h:43
+#: ../src/import-export/aqb/dialog-ab.glade.h:47
 msgid "Add current"
 msgstr "Добавить текущее"
 
-#: ../src/import-export/aqb/dialog-ab.glade.h:44
+#: ../src/import-export/aqb/dialog-ab.glade.h:48
 msgid "Move the selected transaction template one row up"
 msgstr "Переместить выделенный шаблон проводок на строку выше"
 
-#: ../src/import-export/aqb/dialog-ab.glade.h:45
+#: ../src/import-export/aqb/dialog-ab.glade.h:49
 msgid "Move the selected transaction template one row down"
 msgstr "Переместить выделенный шаблон проводок на строку ниже"
 
-#: ../src/import-export/aqb/dialog-ab.glade.h:46
+#: ../src/import-export/aqb/dialog-ab.glade.h:50
 msgid "Sort the list of transaction templates alphabetically"
 msgstr "Упорядочить список шаблонов проводок по алфавиту"
 
-#: ../src/import-export/aqb/dialog-ab.glade.h:47
+#: ../src/import-export/aqb/dialog-ab.glade.h:51
 msgid "Sort"
 msgstr "Упорядочить"
 
-#: ../src/import-export/aqb/dialog-ab.glade.h:48
+#: ../src/import-export/aqb/dialog-ab.glade.h:52
 msgid "Delete the currently selected transaction template"
 msgstr "Удалить выбранный шаблон проводки"
 
-#: ../src/import-export/aqb/dialog-ab.glade.h:49
+#: ../src/import-export/aqb/dialog-ab.glade.h:53
 msgid "Templates"
 msgstr "Шаблоны"
 
-#: ../src/import-export/aqb/dialog-ab.glade.h:50
+#: ../src/import-export/aqb/dialog-ab.glade.h:54
 msgid "Execute later (unimpl.)"
 msgstr "Выполнить позже (не реализовано)"
 
-#: ../src/import-export/aqb/dialog-ab.glade.h:51
+#: ../src/import-export/aqb/dialog-ab.glade.h:55
 msgid "Execute this online transaction now"
 msgstr "Выполнить эту онлайновую проводку сейчас"
 
-#: ../src/import-export/aqb/dialog-ab.glade.h:52
+#: ../src/import-export/aqb/dialog-ab.glade.h:56
 msgid "Execute Now"
 msgstr "Выполнить сейчас"
 
@@ -15772,7 +15839,7 @@ msgstr "(неизвестно)"
 #. * needed only in countries that have one of
 #. * aqbanking's Online Banking techniques
 #. * available. This is 'OFX DirectConnect'
-#. * (U.S. and others), 'HBCI' (in Germany),
+#. * (U.S. and others), 'HBCI' (Germany),
 #. * or 'YellowNet' (Switzerland). If none of
 #. * these techniques are available in your
 #. * country, you may safely ignore strings
@@ -16262,11 +16329,12 @@ msgstr "_Выполнить проводки..."
 msgid "Issue a new transaction online through Online Banking"
 msgstr "Выполненть новую проводку онлайн через Интернет-банк"
 
-#: ../src/import-export/aqb/gnc-plugin-aqbanking.c:118
+#. Translators: https://en.wikipedia.org/wiki/Single_Euro_Payments_Area
+#: ../src/import-export/aqb/gnc-plugin-aqbanking.c:120
 msgid "_Issue SEPA Transaction..."
 msgstr "_Проводка SEPA..."
 
-#: ../src/import-export/aqb/gnc-plugin-aqbanking.c:119
+#: ../src/import-export/aqb/gnc-plugin-aqbanking.c:121
 msgid ""
 "Issue a new international European (SEPA) transaction online through Online "
 "Banking"
@@ -16274,27 +16342,27 @@ msgstr ""
 "Выполнить новую интернациональную European (SEPA) проводку через Интернет-"
 "банк"
 
-#: ../src/import-export/aqb/gnc-plugin-aqbanking.c:123
+#: ../src/import-export/aqb/gnc-plugin-aqbanking.c:125
 msgid "I_nternal Transaction..."
 msgstr "Вн_утренняя проводка..."
 
-#: ../src/import-export/aqb/gnc-plugin-aqbanking.c:124
+#: ../src/import-export/aqb/gnc-plugin-aqbanking.c:126
 msgid "Issue a new bank-internal transaction online through Online Banking"
 msgstr "Выполнить новую банковскую проводку онлайн через Интернет-банкинг"
 
-#: ../src/import-export/aqb/gnc-plugin-aqbanking.c:128
+#: ../src/import-export/aqb/gnc-plugin-aqbanking.c:130
 msgid "_Direct Debit..."
 msgstr "_Прямой дебет..."
 
-#: ../src/import-export/aqb/gnc-plugin-aqbanking.c:129
+#: ../src/import-export/aqb/gnc-plugin-aqbanking.c:131
 msgid "Issue a new direct debit note online through Online Banking"
 msgstr "Выполнить новую прямую дебетовую запись через Интернет-банкинг"
 
-#: ../src/import-export/aqb/gnc-plugin-aqbanking.c:133
+#: ../src/import-export/aqb/gnc-plugin-aqbanking.c:135
 msgid "_Issue SEPA Direct Debit..."
 msgstr "_Прямой дебет..."
 
-#: ../src/import-export/aqb/gnc-plugin-aqbanking.c:134
+#: ../src/import-export/aqb/gnc-plugin-aqbanking.c:136
 msgid ""
 "Issue a new international European (SEPA) direct debit note online through "
 "Online Banking"
@@ -16302,35 +16370,39 @@ msgstr ""
 "Выполнить новую международную европейскую (SEPA) прямую дебетовую запись "
 "онлайн через Интернет-банкинг"
 
-#: ../src/import-export/aqb/gnc-plugin-aqbanking.c:140
+#. Translators: Message types MTxxxx are exchange formats used by the SWIFT network
+#. https://en.wikipedia.org/wiki/Society_for_Worldwide_Interbank_Financial_Telecommunication
+#: ../src/import-export/aqb/gnc-plugin-aqbanking.c:145
 msgid "Import _MT940"
 msgstr "Импорт _MT940"
 
-#: ../src/import-export/aqb/gnc-plugin-aqbanking.c:141
+#: ../src/import-export/aqb/gnc-plugin-aqbanking.c:146
 msgid "Import a MT940 file into GnuCash"
 msgstr "Импорт MT940 файл в GnuCash"
 
-#: ../src/import-export/aqb/gnc-plugin-aqbanking.c:145
+#: ../src/import-export/aqb/gnc-plugin-aqbanking.c:150
 msgid "Import MT94_2"
 msgstr "Импорт MT94_2"
 
-#: ../src/import-export/aqb/gnc-plugin-aqbanking.c:146
+#: ../src/import-export/aqb/gnc-plugin-aqbanking.c:151
 msgid "Import a MT942 file into GnuCash"
 msgstr "Импорт MT942 файл в GnuCash"
 
-#: ../src/import-export/aqb/gnc-plugin-aqbanking.c:150
+#. Translators: DTAUS is a traditional german exchange format.
+#. https://de.wikipedia.org/wiki/Datentr%C3%A4geraustauschverfahren
+#: ../src/import-export/aqb/gnc-plugin-aqbanking.c:158
 msgid "Import _DTAUS"
 msgstr "Импорт _DTAUS"
 
-#: ../src/import-export/aqb/gnc-plugin-aqbanking.c:151
+#: ../src/import-export/aqb/gnc-plugin-aqbanking.c:159
 msgid "Import a DTAUS file into GnuCash"
 msgstr "Импорт DTAUS файл в GnuCash"
 
-#: ../src/import-export/aqb/gnc-plugin-aqbanking.c:163
+#: ../src/import-export/aqb/gnc-plugin-aqbanking.c:171
 msgid "Import DTAUS and _send..."
 msgstr "Импорт DTAUS и _отправить..."
 
-#: ../src/import-export/aqb/gnc-plugin-aqbanking.c:164
+#: ../src/import-export/aqb/gnc-plugin-aqbanking.c:172
 msgid ""
 "Import a DTAUS file into GnuCash and send the transfers online through "
 "Online Banking"
@@ -16338,11 +16410,11 @@ msgstr ""
 "Импортируйте файл DTAUS в GnuCash и отправьте переводы онлайн через Интернет-"
 "банкинг"
 
-#: ../src/import-export/aqb/gnc-plugin-aqbanking.c:174
+#: ../src/import-export/aqb/gnc-plugin-aqbanking.c:182
 msgid "Show _log window"
 msgstr "Показывать окно _лога"
 
-#: ../src/import-export/aqb/gnc-plugin-aqbanking.c:175
+#: ../src/import-export/aqb/gnc-plugin-aqbanking.c:183
 msgid "Show the online banking log window."
 msgstr "Отображать окно лога интернет-банкинга."
 
@@ -16350,52 +16422,18 @@ msgstr "Отображать окно лога интернет-банкинга
 msgid "Close window when finished"
 msgstr "Закрыть окно после завершения"
 
-#: ../src/import-export/aqb/gschemas/org.gnucash.dialogs.import.hbci.gschema.xml.in.in.h:4
-msgid ""
-"If active, the window will be closed automatically when you finish the HBCI/"
-"AqBanking import process. Otherwise it will stay open."
-msgstr ""
-"Если активно, окно будет закрыто автоматически, когда вы закончите процесс "
-"импорта HBCI/AqBanking. В противном случае оно останется открытым."
-
 #: ../src/import-export/aqb/gschemas/org.gnucash.dialogs.import.hbci.gschema.xml.in.in.h:5
 msgid "Remember the PIN in memory"
 msgstr "Запомнить PIN-код"
 
-#: ../src/import-export/aqb/gschemas/org.gnucash.dialogs.import.hbci.gschema.xml.in.in.h:6
-msgid ""
-"If active, the PIN for HBCI/AqBanking actions will be remembered in memory "
-"during a session. Otherwise it will have to be entered again each time "
-"during a session when it is needed."
-msgstr ""
-"Если активно, PIN-код для действий HBCI/AqBanking будет запоминаться в "
-"памяти во время сеанса. В противном случае его нужно будет вводить повторно "
-"каждый раз во время сеанса, когда это необходимо."
-
 #: ../src/import-export/aqb/gschemas/org.gnucash.dialogs.import.hbci.gschema.xml.in.in.h:7
 msgid "Put the transaction text in front of the purpose of a transaction."
 msgstr "Поместить текст проводки перед целью проводки."
 
-#: ../src/import-export/aqb/gschemas/org.gnucash.dialogs.import.hbci.gschema.xml.in.in.h:8
-msgid ""
-"Some banks place part of transaction description as \"transaction text\" in "
-"the MT940 file. Normally GNUcash ignores this text. However by activating "
-"this option, the transaction text is used for the transaction description "
-"too."
-msgstr ""
-"Некоторые банки помещают часть описания проводки как «текст транзакции» в "
-"файл MT940. Обычно GNUcash игнорирует этот текст. При активации этой опции "
-"текст проводки также используется для описания проводки."
-
 #: ../src/import-export/aqb/gschemas/org.gnucash.dialogs.import.hbci.gschema.xml.in.in.h:9
 msgid "Verbose HBCI debug messages"
 msgstr "Подробные сообщения отладки HBCI"
 
-#: ../src/import-export/aqb/gschemas/org.gnucash.dialogs.import.hbci.gschema.xml.in.in.h:10
-msgid "Enables verbose debug messages for HBCI/AqBanking Online Banking."
-msgstr ""
-"Включить подробные отладочные сообщения для интернет-банкинга HBCI/AqBanking."
-
 #: ../src/import-export/aqb/gschemas/org.gnucash.dialogs.import.hbci.gschema.xml.in.in.h:11
 msgid "DTAUS import data format"
 msgstr "Формат импорта данных DTAUS"
@@ -16611,31 +16649,36 @@ msgstr "Результаты"
 msgid "Export Summary"
 msgstr "Результаты"
 
-#: ../src/import-export/csv-exp/csv-transactions-export.c:420
+#: ../src/import-export/csv-exp/csv-transactions-export.c:423
 msgid "Category"
 msgstr "Категория"
 
-#: ../src/import-export/csv-exp/csv-transactions-export.c:424
+#. Translators: To amount with currency symbol
+#: ../src/import-export/csv-exp/csv-transactions-export.c:428
 msgid "To With Sym"
 msgstr "Получено (с симв. валюты)"
 
-#: ../src/import-export/csv-exp/csv-transactions-export.c:424
+#. Translators: From amount with currency symbol
+#: ../src/import-export/csv-exp/csv-transactions-export.c:430
 msgid "From With Sym"
 msgstr "Списано (с симв. валюты)"
 
-#: ../src/import-export/csv-exp/csv-transactions-export.c:425
+#. Translators: To amount, numerical only
+#: ../src/import-export/csv-exp/csv-transactions-export.c:432
 msgid "To Num."
 msgstr "Получено (число)"
 
-#: ../src/import-export/csv-exp/csv-transactions-export.c:425
+#. Translators: From amount, numerical only
+#: ../src/import-export/csv-exp/csv-transactions-export.c:434
 msgid "From Num."
 msgstr "Списано (число)"
 
-#: ../src/import-export/csv-exp/csv-transactions-export.c:426
+#. Translators: Exchange rates
+#: ../src/import-export/csv-exp/csv-transactions-export.c:436
 msgid "To Rate/Price"
 msgstr "Коэффицент списания"
 
-#: ../src/import-export/csv-exp/csv-transactions-export.c:426
+#: ../src/import-export/csv-exp/csv-transactions-export.c:436
 msgid "From Rate/Price"
 msgstr "Коэффицент зачисления"
 
@@ -17209,11 +17252,12 @@ msgstr "Идентификатор онлайн-счета здесь..."
 msgid "Choose a format"
 msgstr "Выберите формат"
 
-#: ../src/import-export/dialog-import.glade.h:7
+#. Preferences->Online Banking:Generic
+#: ../src/import-export/dialog-import.glade.h:8
 msgid "Enable skip transaction action"
 msgstr "Разрешить пропуск проводки"
 
-#: ../src/import-export/dialog-import.glade.h:8
+#: ../src/import-export/dialog-import.glade.h:9
 #: ../src/import-export/gschemas/org.gnucash.dialogs.import.generic.gschema.xml.in.in.h:2
 msgid ""
 "Enable the SKIP action in the transaction matcher. If enabled, a transaction "
@@ -17224,11 +17268,12 @@ msgstr ""
 "проводка, чей балл соответствия - в жёлтой зоне (выше порога Автодобавления, "
 "но ниже Автоудаления), будет по умолчанию пропущена."
 
-#: ../src/import-export/dialog-import.glade.h:9
+#. Preferences->Online Banking:Generic
+#: ../src/import-export/dialog-import.glade.h:11
 msgid "Enable update match action"
 msgstr "Включить действие Обновить сравнение"
 
-#: ../src/import-export/dialog-import.glade.h:10
+#: ../src/import-export/dialog-import.glade.h:12
 #: ../src/import-export/gschemas/org.gnucash.dialogs.import.generic.gschema.xml.in.in.h:4
 msgid ""
 "Enable the UPDATE AND RECONCILE action in the transaction matcher. If "
@@ -17242,11 +17287,11 @@ msgstr ""
 "дату или сумму, чем соответствующая существующая проводка, по умолчанию "
 "вызовет обновление и очистку существующей проводки."
 
-#: ../src/import-export/dialog-import.glade.h:11
+#: ../src/import-export/dialog-import.glade.h:13
 msgid "<b>Generic Importer</b>"
 msgstr "<b>Основной загрузчик</b>"
 
-#: ../src/import-export/dialog-import.glade.h:12
+#: ../src/import-export/dialog-import.glade.h:14
 msgid ""
 "In some places commercial ATMs (not belonging to a financial institution) "
 "are installed in places like convenience stores. These ATMs add their fee "
@@ -17265,7 +17310,7 @@ msgstr ""
 "регионе (в единицах вашей локальной валюты), чтобы проводка распозналась, "
 "как подходящая."
 
-#: ../src/import-export/dialog-import.glade.h:13
+#: ../src/import-export/dialog-import.glade.h:15
 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."
@@ -17273,7 +17318,7 @@ msgstr ""
 "Проводка, чей лучший балл соответствия - в зелёной зоне (выше либо равен "
 "порогу Автоочистки), будет очищена по умолчанию."
 
-#: ../src/import-export/dialog-import.glade.h:14
+#: ../src/import-export/dialog-import.glade.h:16
 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 "
@@ -17283,7 +17328,7 @@ msgstr ""
 "отображения, но ниже или равен порогу Автодобавления), будет добавлена по "
 "умолчанию."
 
-#: ../src/import-export/dialog-import.glade.h:15
+#: ../src/import-export/dialog-import.glade.h:17
 msgid ""
 "The minimum score a potential match must have to be displayed in the match "
 "list."
@@ -17291,37 +17336,43 @@ msgstr ""
 "Минимальное количество баллов, при котором проводка считается потенциально "
 "подходящей и отображается в списке."
 
-#: ../src/import-export/dialog-import.glade.h:16
+#. Preferences->Online Banking:Generic
+#: ../src/import-export/dialog-import.glade.h:19
 msgid "Commercial ATM _fees threshold"
 msgstr "Максимальный сбор торгового автомата"
 
-#: ../src/import-export/dialog-import.glade.h:17
+#. Preferences->Online Banking:Generic
+#: ../src/import-export/dialog-import.glade.h:21
 msgid "Auto-c_lear threshold"
 msgstr "Порог авто_очищения"
 
-#: ../src/import-export/dialog-import.glade.h:18
+#. Preferences->Online Banking:Generic
+#: ../src/import-export/dialog-import.glade.h:23
 msgid "Auto-_add threshold"
 msgstr "Порог авто_добавления"
 
-#: ../src/import-export/dialog-import.glade.h:19
+#. Preferences->Online Banking:Generic
+#: ../src/import-export/dialog-import.glade.h:25
 msgid "Match _display threshold"
 msgstr "Не выводить более"
 
-#: ../src/import-export/dialog-import.glade.h:20
+#. Preferences->Online Banking:Generic
+#: ../src/import-export/dialog-import.glade.h:27
 msgid "Use _bayesian matching"
 msgstr "Использовать сравнение по _Байесу"
 
-#: ../src/import-export/dialog-import.glade.h:21
+#: ../src/import-export/dialog-import.glade.h:28
 msgid ""
 "Use bayesian algorithms to match new transactions with existing accounts."
 msgstr "Использовать алгоритм Байеса, для поиска проводкам подходящего счета."
 
-#: ../src/import-export/dialog-import.glade.h:22
+#. Preferences->Online Banking:Generic
+#: ../src/import-export/dialog-import.glade.h:30
 #: ../src/import-export/gschemas/org.gnucash.dialogs.import.generic.gschema.xml.in.in.h:15
 msgid "Automatically create new commodities"
 msgstr "Автоматически создавать новые товары"
 
-#: ../src/import-export/dialog-import.glade.h:23
+#: ../src/import-export/dialog-import.glade.h:31
 #: ../src/import-export/gschemas/org.gnucash.dialogs.import.generic.gschema.xml.in.in.h:16
 msgid ""
 "Enables the automatic creation of new commodities if any unknown commodity "
@@ -17332,23 +17383,26 @@ msgstr ""
 "встречается неизвестный товар. В противном случае пользователю будет задан "
 "вопрос что делать с каждым неизвестным товаром."
 
-#: ../src/import-export/dialog-import.glade.h:24
+#: ../src/import-export/dialog-import.glade.h:32
 msgid "Select matching existing transaction"
 msgstr "Выберите подходящую существующую проводку"
 
-#: ../src/import-export/dialog-import.glade.h:25
+#. Dialog Select matching transactions
+#: ../src/import-export/dialog-import.glade.h:34
 msgid "Show Reconciled"
 msgstr "Показать согласованные"
 
-#: ../src/import-export/dialog-import.glade.h:26
+#. Dialog Select matching transactions
+#: ../src/import-export/dialog-import.glade.h:36
 msgid "Imported transaction's first split:"
 msgstr "Первая часть импортированной проводки:"
 
-#: ../src/import-export/dialog-import.glade.h:27
+#. Dialog Select matching transactions
+#: ../src/import-export/dialog-import.glade.h:38
 msgid "Potential splits matching the selected transaction: "
 msgstr "Возможные части, подходящие выбранной транзакции: "
 
-#: ../src/import-export/dialog-import.glade.h:28
+#: ../src/import-export/dialog-import.glade.h:39
 msgid ""
 "This transaction probably requires your intervention or it will be imported "
 "unbalanced."
@@ -17356,7 +17410,7 @@ msgstr ""
 "Эта проводка вероятно требует вашего вмешательства или она будет "
 "импортирована несбалансированной."
 
-#: ../src/import-export/dialog-import.glade.h:29
+#: ../src/import-export/dialog-import.glade.h:40
 msgid ""
 "This transaction will be imported balanced (you may still want to double "
 "check the match or destination account)."
@@ -17364,12 +17418,12 @@ msgstr ""
 "Эта проводка будет импортирована сбалансированной (вы можете перепроверить "
 "соответствующий или целевой счет)."
 
-#: ../src/import-export/dialog-import.glade.h:30
+#: ../src/import-export/dialog-import.glade.h:41
 msgid "This transaction requires your intervention or it will NOT be imported."
 msgstr ""
 "Эта проводка требует вашего вмешательства или она не будет импортирована."
 
-#: ../src/import-export/dialog-import.glade.h:31
+#: ../src/import-export/dialog-import.glade.h:42
 msgid ""
 "Double click on the transaction to change the matching transaction to "
 "reconcile, or the destination account of the auto-balance split (if "
@@ -17378,63 +17432,63 @@ msgstr ""
 "Двойной щелчок позволит поменять соответствующую проводку для согласования "
 "или целевой счёта для автобалансируемой части (если требуется)."
 
-#: ../src/import-export/dialog-import.glade.h:32
+#: ../src/import-export/dialog-import.glade.h:43
 msgid "Transaction List Help"
 msgstr "Справка по списку проводок"
 
-#: ../src/import-export/dialog-import.glade.h:33
+#: ../src/import-export/dialog-import.glade.h:44
 msgid "<b>Colors</b>"
 msgstr "<b>Цвета</b>"
 
-#: ../src/import-export/dialog-import.glade.h:35
+#: ../src/import-export/dialog-import.glade.h:46
 msgid "\"A\""
 msgstr "\"Д\""
 
-#: ../src/import-export/dialog-import.glade.h:36
+#: ../src/import-export/dialog-import.glade.h:47
 msgid "\"U+R\""
 msgstr "\"О+С\""
 
-#: ../src/import-export/dialog-import.glade.h:37
+#: ../src/import-export/dialog-import.glade.h:48
 msgid "\"R\""
 msgstr "\"С\""
 
-#: ../src/import-export/dialog-import.glade.h:38
+#: ../src/import-export/dialog-import.glade.h:49
 msgid "Select \"A\" to add the transaction as new."
 msgstr "Выберите \"Д\", чтобы добавить проводку, как новую."
 
-#: ../src/import-export/dialog-import.glade.h:39
+#: ../src/import-export/dialog-import.glade.h:50
 msgid "Select \"U+R\" to update and reconcile a matching transaction."
 msgstr "Выберите \"О+С\", чтобы обновить и согласовать подходящую проводку."
 
-#: ../src/import-export/dialog-import.glade.h:40
+#: ../src/import-export/dialog-import.glade.h:51
 msgid "Select \"R\" to reconcile a matching transaction."
 msgstr "Выберите \"С\", чтобы согласовать подходящую проводку."
 
-#: ../src/import-export/dialog-import.glade.h:41
+#: ../src/import-export/dialog-import.glade.h:52
 msgid "Select neither to skip the transaction (it won't be imported at all)."
 msgstr "Не пропускайте проводку (она не будет импортирована)."
 
-#: ../src/import-export/dialog-import.glade.h:42
+#: ../src/import-export/dialog-import.glade.h:53
 msgid "(none)"
 msgstr "(нет)"
 
-#: ../src/import-export/dialog-import.glade.h:43
+#: ../src/import-export/dialog-import.glade.h:54
 msgid "Red"
 msgstr "Красный"
 
-#: ../src/import-export/dialog-import.glade.h:44
+#: ../src/import-export/dialog-import.glade.h:55
 msgid "Yellow"
 msgstr "Желтый"
 
-#: ../src/import-export/dialog-import.glade.h:45
+#: ../src/import-export/dialog-import.glade.h:56
 msgid "Green"
 msgstr "Зеленый"
 
-#: ../src/import-export/dialog-import.glade.h:46
+#: ../src/import-export/dialog-import.glade.h:57
 msgid "Generic import transaction matcher"
 msgstr "Универсальное сравнение импортированных проводок"
 
-#: ../src/import-export/dialog-import.glade.h:47
+#: ../src/import-export/dialog-import.glade.h:58
 msgid "List of downloaded transactions (source split shown):"
 msgstr "Список загруженных проводок (источник частей показывается):"
 
@@ -17590,64 +17644,66 @@ msgstr "г/д/м"
 msgid "Destination account for the auto-balance split."
 msgstr "Целевой счёт для автобалансирующей части."
 
-#: ../src/import-export/import-main-matcher.c:470
+#. toggle column: add new transaction
+#: ../src/import-export/import-main-matcher.c:474
 msgid "A"
 msgstr "Д"
 
-#: ../src/import-export/import-main-matcher.c:472
+#. toggle column: update existing transaction & mark it reconciled
+#: ../src/import-export/import-main-matcher.c:478
 msgid "U+R"
 msgstr "О+С"
 
-#: ../src/import-export/import-main-matcher.c:481
+#: ../src/import-export/import-main-matcher.c:489
 msgid "Info"
 msgstr "Информация"
 
-#: ../src/import-export/import-main-matcher.c:719
+#: ../src/import-export/import-main-matcher.c:727
 msgid "New, already balanced"
 msgstr "Новая, уже сбалансирована"
 
 #. Translators: %1$s is the amount to be
 #. transferred. %2$s is the destination account.
-#: ../src/import-export/import-main-matcher.c:745
+#: ../src/import-export/import-main-matcher.c:753
 #, c-format
 msgid "New, transfer %s to (manual) \"%s\""
 msgstr "Новая, передать %s на \"%s\" (вручную)"
 
 #. Translators: %1$s is the amount to be
 #. transferred. %2$s is the destination account.
-#: ../src/import-export/import-main-matcher.c:753
+#: ../src/import-export/import-main-matcher.c:761
 #, c-format
 msgid "New, transfer %s to (auto) \"%s\""
 msgstr "Новая, передать %s на \"%s\" (автоматически)"
 
 #. Translators: %s is the amount to be transferred.
-#: ../src/import-export/import-main-matcher.c:764
+#: ../src/import-export/import-main-matcher.c:772
 #, c-format
 msgid "New, UNBALANCED (need acct to transfer %s)!"
 msgstr "Новая, несбалансированная (нужен счёт для перевода %s)!"
 
-#: ../src/import-export/import-main-matcher.c:776
+#: ../src/import-export/import-main-matcher.c:784
 msgid "Reconcile (manual) match"
 msgstr "Согласовательное соответствие (ручное)"
 
-#: ../src/import-export/import-main-matcher.c:780
+#: ../src/import-export/import-main-matcher.c:788
 msgid "Reconcile (auto) match"
 msgstr "Согласовательное соответствие (авто)"
 
-#: ../src/import-export/import-main-matcher.c:786
-#: ../src/import-export/import-main-matcher.c:805
+#: ../src/import-export/import-main-matcher.c:794
+#: ../src/import-export/import-main-matcher.c:813
 msgid "Match missing!"
 msgstr "Соответствие не найдено!"
 
-#: ../src/import-export/import-main-matcher.c:795
+#: ../src/import-export/import-main-matcher.c:803
 msgid "Update and reconcile (manual) match"
 msgstr "Обновить и согласовать (вручную) подходящее"
 
-#: ../src/import-export/import-main-matcher.c:799
+#: ../src/import-export/import-main-matcher.c:807
 msgid "Update and reconcile (auto) match"
 msgstr "Обновить и согласовать (авто) подходящее"
 
-#: ../src/import-export/import-main-matcher.c:810
+#: ../src/import-export/import-main-matcher.c:818
 msgid "Do not import (no action selected)"
 msgstr "Не импортировать (действия не выбраны)"
 
@@ -17745,19 +17801,20 @@ msgstr "Неизвестный валютно-биржевой счёт OFX"
 msgid "Unknown OFX credit line account"
 msgstr "Неизвестный кредитный счёт OFX"
 
-#: ../src/import-export/ofx/gnc-ofx-import.c:899
+#. Cash Management Account
+#: ../src/import-export/ofx/gnc-ofx-import.c:900
 msgid "Unknown OFX CMA account"
 msgstr "Неизвестный CMA счёт OFX"
 
-#: ../src/import-export/ofx/gnc-ofx-import.c:903
+#: ../src/import-export/ofx/gnc-ofx-import.c:904
 msgid "Unknown OFX credit card account"
 msgstr "Неизвестный счёт OFX кредитных карт"
 
-#: ../src/import-export/ofx/gnc-ofx-import.c:907
+#: ../src/import-export/ofx/gnc-ofx-import.c:908
 msgid "Unknown OFX investment account"
 msgstr "Неизвестный инвестиционный счёт OFX"
 
-#: ../src/import-export/ofx/gnc-ofx-import.c:990
+#: ../src/import-export/ofx/gnc-ofx-import.c:991
 msgid "Select an OFX/QFX file to process"
 msgstr "Выберите файл OFX/QFX для обработки"
 
@@ -18674,13 +18731,13 @@ msgid "Missing transaction date."
 msgstr "Отсутствует дата проводки."
 
 #. The default date format for use with strftime in Win32.
-#: ../src/libqof/qof/gnc-date.c:90
+#: ../src/libqof/qof/gnc-date.c:79
 msgid "%B %#d, %Y"
 msgstr "%#d %B %Y"
 
 #. The default date format for use with strftime in other OS.
 #. Translators: call "man strftime" for possible values.
-#: ../src/libqof/qof/gnc-date.c:94
+#: ../src/libqof/qof/gnc-date.c:83
 msgid "%B %e, %Y"
 msgstr "%e %B %Y"
 
@@ -18997,51 +19054,59 @@ msgstr ""
 #. used to estimate widths. Please only
 #. translate the portion after the ':' and
 #. leave the rest ("sample:") as is.
-#: ../src/register/ledger-core/split-register-layout.c:658
-#: ../src/register/ledger-core/split-register-layout.c:666
+#: ../src/register/ledger-core/split-register-layout.c:663
+#: ../src/register/ledger-core/split-register-layout.c:671
 msgid "sample:99999"
 msgstr "sample:99999"
 
-#: ../src/register/ledger-core/split-register-layout.c:674
+#: ../src/register/ledger-core/split-register-layout.c:679
 msgid "sample:Description of a transaction"
 msgstr "sample:Описание проводки"
 
-#: ../src/register/ledger-core/split-register-layout.c:698
-#: ../src/register/ledger-core/split-register-model.c:325
+#. Translators: The abbreviation for 'Associate'
+#. in the header row of the register. Please only
+#. translate the portion after the ':' and
+#. leave the rest ("Associate:") as is.
+#: ../src/register/ledger-core/split-register-layout.c:711
+#: ../src/register/ledger-core/split-register-model.c:326
 msgid "Associate:A"
 msgstr "Associate:A"
 
-#: ../src/register/ledger-core/split-register-layout.c:706
-#: ../src/register/ledger-core/split-register-layout.c:746
-#: ../src/register/ledger-core/split-register-layout.c:754
-#: ../src/register/ledger-core/split-register-layout.c:762
-#: ../src/register/ledger-core/split-register-layout.c:772
-#: ../src/register/ledger-core/split-register-layout.c:780
-#: ../src/register/ledger-core/split-register-layout.c:788
-#: ../src/register/ledger-core/split-register-layout.c:796
-#: ../src/register/ledger-core/split-register-layout.c:804
-#: ../src/register/ledger-core/split-register-layout.c:852
+#: ../src/register/ledger-core/split-register-layout.c:719
+#: ../src/register/ledger-core/split-register-layout.c:759
+#: ../src/register/ledger-core/split-register-layout.c:767
+#: ../src/register/ledger-core/split-register-layout.c:775
+#: ../src/register/ledger-core/split-register-layout.c:785
+#: ../src/register/ledger-core/split-register-layout.c:793
+#: ../src/register/ledger-core/split-register-layout.c:801
+#: ../src/register/ledger-core/split-register-layout.c:809
+#: ../src/register/ledger-core/split-register-layout.c:817
+#: ../src/register/ledger-core/split-register-layout.c:869
 msgid "sample:999,999.000"
 msgstr "sample:999,999.000"
 
-#: ../src/register/ledger-core/split-register-layout.c:738
+#: ../src/register/ledger-core/split-register-layout.c:751
 msgid "sample:Memo field sample text string"
 msgstr "sample:пример памятки"
 
-#: ../src/register/ledger-core/split-register-layout.c:812
+#. Translators: The abbreviation for 'Type'
+#. in the header row of the register. Please only
+#. translate the portion after the ':' and
+#. leave the rest ("Type:") as is.
+#: ../src/register/ledger-core/split-register-layout.c:829
 msgid "Type:T"
 msgstr "Type:Т"
 
-#: ../src/register/ledger-core/split-register-layout.c:820
+#: ../src/register/ledger-core/split-register-layout.c:837
 msgid "sample:Notes field sample text string"
 msgstr "sample: пример заметок"
 
-#: ../src/register/ledger-core/split-register-layout.c:828
+#: ../src/register/ledger-core/split-register-layout.c:845
 msgid "sample:No Particular Reason"
 msgstr "sample:Нет особых причин"
 
-#: ../src/register/ledger-core/split-register-layout.c:836
-#: ../src/register/ledger-core/split-register-layout.c:844
+#: ../src/register/ledger-core/split-register-layout.c:853
+#: ../src/register/ledger-core/split-register-layout.c:861
 msgid "sample:(x + 0.33 * y + (x+y) )"
 msgstr "sample:(x + 0.33 * y + (x+y) )"
 
@@ -19053,52 +19118,53 @@ msgstr ""
 "Невозможно определить валюту счета. Используется валюта, определённая в "
 "системе по умолчанию."
 
-#: ../src/register/ledger-core/split-register-model.c:244
+#. Column label for Invoice IDs in A/P & A/R accounts
+#: ../src/register/ledger-core/split-register-model.c:245
 msgid "Ref"
 msgstr "Ссылка"
 
-#: ../src/register/ledger-core/split-register-model.c:260
+#: ../src/register/ledger-core/split-register-model.c:261
 msgid "T-Ref"
 msgstr "Н-отн"
 
-#: ../src/register/ledger-core/split-register-model.c:269
+#: ../src/register/ledger-core/split-register-model.c:270
 #: ../src/report/standard-reports/register.scm:144
 msgid "T-Num"
 msgstr "â„–"
 
-#: ../src/register/ledger-core/split-register-model.c:388
+#: ../src/register/ledger-core/split-register-model.c:389
 msgid "Exch. Rate"
 msgstr "Курс обмена:"
 
-#: ../src/register/ledger-core/split-register-model.c:405
+#: ../src/register/ledger-core/split-register-model.c:406
 msgid "Oth. Curr."
 msgstr "Проч. Вал."
 
-#: ../src/register/ledger-core/split-register-model.c:422
-#: ../src/register/ledger-core/split-register-model.c:446
+#: ../src/register/ledger-core/split-register-model.c:423
+#: ../src/register/ledger-core/split-register-model.c:447
 #, c-format
 msgid "Tot %s"
 msgstr "Итого %s"
 
-#: ../src/register/ledger-core/split-register-model.c:428
+#: ../src/register/ledger-core/split-register-model.c:429
 msgid "Tot Credit"
 msgstr "Всего кредит"
 
-#: ../src/register/ledger-core/split-register-model.c:452
+#: ../src/register/ledger-core/split-register-model.c:453
 msgid "Tot Debit"
 msgstr "Всего дебет"
 
-#: ../src/register/ledger-core/split-register-model.c:461
+#: ../src/register/ledger-core/split-register-model.c:462
 msgid "Tot Shares"
 msgstr "Всего акций"
 
 #. This seems to be the one that initially gets used, the InactiveDateCell
 #. is set to, and subsequently displayed.
-#: ../src/register/ledger-core/split-register-model.c:958
+#: ../src/register/ledger-core/split-register-model.c:959
 msgid "Scheduled"
 msgstr "Запланировано"
 
-#: ../src/register/ledger-core/split-register-model.c:1007
+#: ../src/register/ledger-core/split-register-model.c:1008
 msgid ""
 "Enter a reference, such as an invoice or check number, common to all entry "
 "lines (splits)"
@@ -19106,7 +19172,7 @@ msgstr ""
 "Введите идентификатор, например номер чека или счёта-фактуры, общий для всех "
 "частей"
 
-#: ../src/register/ledger-core/split-register-model.c:1009
+#: ../src/register/ledger-core/split-register-model.c:1010
 msgid ""
 "Enter a reference, such as an invoice or check number, unique to each entry "
 "line (split)"
@@ -19114,18 +19180,18 @@ msgstr ""
 "Введите идентификатор, например номер чека или счёта-фактуры, уникальный для "
 "каждой части"
 
-#: ../src/register/ledger-core/split-register-model.c:1014
+#: ../src/register/ledger-core/split-register-model.c:1015
 msgid ""
 "Enter a reference, such as a check number, common to all entry lines (splits)"
 msgstr "Введите идентификатор, например номер чека, общий для всех частей"
 
-#: ../src/register/ledger-core/split-register-model.c:1016
+#: ../src/register/ledger-core/split-register-model.c:1017
 msgid ""
 "Enter a reference, such as a check number, unique to each entry line (split)"
 msgstr ""
 "Введите идентификатор, например номер чека, уникальный для каждой части"
 
-#: ../src/register/ledger-core/split-register-model.c:1037
+#: ../src/register/ledger-core/split-register-model.c:1038
 msgid ""
 "Enter a transaction reference, such as an invoice or check number, common to "
 "all entry lines (splits)"
@@ -19133,16 +19199,16 @@ msgstr ""
 "Введите идентификатор проводки, например номер чека или счета-фактуры, общий "
 "для всех частей"
 
-#: ../src/register/ledger-core/split-register-model.c:1041
+#: ../src/register/ledger-core/split-register-model.c:1042
 msgid ""
 "Enter a transaction reference that will be common to all entry lines (splits)"
 msgstr "Введите идентификатор проводки, общий для всех частей"
 
-#: ../src/register/ledger-core/split-register-model.c:1244
+#: ../src/register/ledger-core/split-register-model.c:1245
 msgid "Enter an action type, or choose one from the list"
 msgstr "Введите тип проводки или выберите один из списка"
 
-#: ../src/register/ledger-core/split-register-model.c:1245
+#: ../src/register/ledger-core/split-register-model.c:1246
 msgid ""
 "Enter a reference number, such as the next check number, or choose an action "
 "type from the list"
@@ -19150,21 +19216,21 @@ msgstr ""
 "Введите идентификационный номер, например следующий номер чека, или выберите "
 "тип проводки из списка"
 
-#: ../src/register/ledger-core/split-register-model.c:1508
+#: ../src/register/ledger-core/split-register-model.c:1509
 msgid ""
 "This transaction has multiple splits; press the Split button to see them all"
 msgstr ""
 "Эта проводка разделена на несколько частей, нажмите кнопку \"Части\", чтобы "
 "увидеть их все"
 
-#: ../src/register/ledger-core/split-register-model.c:1511
+#: ../src/register/ledger-core/split-register-model.c:1512
 msgid ""
 "This transaction is a stock split; press the Split button to see details"
 msgstr ""
 "Данная проводка является частью ценных бумаг. Нажмите кнопку \"Части\", "
 "чтобы увидеть подробности"
 
-#: ../src/register/ledger-core/split-register-model.c:1998
+#: ../src/register/ledger-core/split-register-model.c:1999
 #, c-format
 msgid ""
 "Cannot modify or delete this transaction. This transaction is marked read-"
@@ -19196,7 +19262,7 @@ msgid "Sort By"
 msgstr "Упорядочить по"
 
 #: ../src/report/business-reports/aging.scm:41
-#: ../src/report/business-reports/customer-summary.scm:89
+#: ../src/report/business-reports/customer-summary.scm:96
 msgid "Sort Order"
 msgstr "Порядок сортировки"
 
@@ -19208,7 +19274,7 @@ msgstr "Порядок сортировки"
 #: ../src/report/standard-reports/average-balance.scm:41
 #: ../src/report/standard-reports/balance-sheet.scm:138
 #: ../src/report/standard-reports/budget-balance-sheet.scm:103
-#: ../src/report/standard-reports/budget-flow.scm:47
+#: ../src/report/standard-reports/budget-flow.scm:48
 #: ../src/report/standard-reports/budget-income-statement.scm:118
 #: ../src/report/standard-reports/cash-flow.scm:53
 #: ../src/report/standard-reports/category-barchart.scm:78
@@ -19233,9 +19299,9 @@ msgstr "Валюта отчета"
 #: ../src/report/standard-reports/average-balance.scm:42
 #: ../src/report/standard-reports/balance-sheet.scm:139
 #: ../src/report/standard-reports/budget-balance-sheet.scm:104
-#: ../src/report/standard-reports/budget-flow.scm:44
+#: ../src/report/standard-reports/budget-flow.scm:45
 #: ../src/report/standard-reports/budget-income-statement.scm:119
-#: ../src/report/standard-reports/budget.scm:50
+#: ../src/report/standard-reports/budget.scm:51
 #: ../src/report/standard-reports/cash-flow.scm:54
 #: ../src/report/standard-reports/category-barchart.scm:79
 #: ../src/report/standard-reports/daily-reports.scm:59
@@ -19348,17 +19414,17 @@ msgid "Show all vendors/customers even if they have a zero balance."
 msgstr "Показать всех поставщиков/клиентов с ненулевым балансом."
 
 #: ../src/report/business-reports/aging.scm:403
-#: ../src/report/business-reports/owner-report.scm:566
+#: ../src/report/business-reports/owner-report.scm:570
 msgid "Leading date."
 msgstr "Основная дата"
 
 #: ../src/report/business-reports/aging.scm:406
-#: ../src/report/business-reports/owner-report.scm:569
+#: ../src/report/business-reports/owner-report.scm:573
 msgid "Due date is leading."
 msgstr "Дата оплаты будет основной."
 
 #: ../src/report/business-reports/aging.scm:407
-#: ../src/report/business-reports/owner-report.scm:570
+#: ../src/report/business-reports/owner-report.scm:574
 msgid "Post date is leading."
 msgstr "Дата ввода будет основной."
 
@@ -19403,31 +19469,31 @@ msgid "Display Active status."
 msgstr "Показывать активный статус."
 
 #: ../src/report/business-reports/aging.scm:557
-#: ../src/report/business-reports/owner-report.scm:253
+#: ../src/report/business-reports/owner-report.scm:257
 msgid "Current"
 msgstr "Текущая"
 
 #: ../src/report/business-reports/aging.scm:558
 #: ../src/report/business-reports/job-report.scm:173
-#: ../src/report/business-reports/owner-report.scm:254
+#: ../src/report/business-reports/owner-report.scm:258
 msgid "0-30 days"
 msgstr "0-30 дней"
 
 #: ../src/report/business-reports/aging.scm:559
 #: ../src/report/business-reports/job-report.scm:174
-#: ../src/report/business-reports/owner-report.scm:255
+#: ../src/report/business-reports/owner-report.scm:259
 msgid "31-60 days"
 msgstr "31-60 дней"
 
 #: ../src/report/business-reports/aging.scm:560
 #: ../src/report/business-reports/job-report.scm:175
-#: ../src/report/business-reports/owner-report.scm:256
+#: ../src/report/business-reports/owner-report.scm:260
 msgid "61-90 days"
 msgstr "61-90 дней"
 
 #: ../src/report/business-reports/aging.scm:561
 #: ../src/report/business-reports/job-report.scm:176
-#: ../src/report/business-reports/owner-report.scm:257
+#: ../src/report/business-reports/owner-report.scm:261
 msgid "91+ days"
 msgstr "91+ день"
 
@@ -19562,7 +19628,7 @@ msgstr "Максимальное количество уровней, отобр
 #: ../src/report/standard-reports/balance-sheet.scm:94
 #: ../src/report/standard-reports/budget-balance-sheet.scm:59
 #: ../src/report/standard-reports/budget-income-statement.scm:83
-#: ../src/report/standard-reports/budget.scm:68
+#: ../src/report/standard-reports/budget.scm:69
 #: ../src/report/standard-reports/income-statement.scm:70
 msgid "Flatten list to depth limit"
 msgstr "Выровнять список с учетом предела глубины"
@@ -19571,7 +19637,7 @@ msgstr "Выровнять список с учетом предела глуб
 #: ../src/report/standard-reports/balance-sheet.scm:96
 #: ../src/report/standard-reports/budget-balance-sheet.scm:61
 #: ../src/report/standard-reports/budget-income-statement.scm:85
-#: ../src/report/standard-reports/budget.scm:70
+#: ../src/report/standard-reports/budget.scm:71
 #: ../src/report/standard-reports/income-statement.scm:72
 msgid "Displays accounts which exceed the depth limit at the depth limit."
 msgstr ""
@@ -19767,11 +19833,11 @@ msgstr ""
 "убедившись в их корректности.<br>Чтобы избавиться от этого сообщения "
 "измените его в \"Дополнительных заметках\")"
 
-#: ../src/report/business-reports/balsheet-eg.scm:692
+#: ../src/report/business-reports/balsheet-eg.scm:695
 msgid "Balance Sheet using eguile-gnc"
 msgstr "Шаблон баланса, использующий eguile-gnc"
 
-#: ../src/report/business-reports/balsheet-eg.scm:693
+#: ../src/report/business-reports/balsheet-eg.scm:696
 msgid "Display a balance sheet (using eguile template)"
 msgstr "Показать баланс (используя шаблон eguile)"
 
@@ -19799,15 +19865,13 @@ msgstr "Счета доходов"
 msgid "The income accounts where the sales and income was recorded."
 msgstr "Счёт доходов, по которому проходят доход и продажи."
 
-#. (define optname-account-ar (N_ "A/R Account"))
-#: ../src/report/business-reports/customer-summary.scm:56
-#: ../src/report/business-reports/customer-summary.scm:57
+#: ../src/report/business-reports/customer-summary.scm:58
+#: ../src/report/business-reports/customer-summary.scm:59
 #: ../src/report/standard-reports/account-piecharts.scm:59
 msgid "Expense Accounts"
 msgstr "Счета расходов"
 
-#. (define optname-account-ap (N_ "A/P Account"))
-#: ../src/report/business-reports/customer-summary.scm:59
+#: ../src/report/business-reports/customer-summary.scm:63
 msgid ""
 "The expense accounts where the expenses are recorded which are subtracted "
 "from the sales to give the profit."
@@ -19815,23 +19879,23 @@ msgstr ""
 "Счёт расходов, по которому проходят затраты, вычитаемые из продаж для "
 "получения прибыли."
 
-#: ../src/report/business-reports/customer-summary.scm:61
+#: ../src/report/business-reports/customer-summary.scm:65
 msgid "Show Expense Column"
 msgstr "Показать столбец расхода"
 
-#: ../src/report/business-reports/customer-summary.scm:62
+#: ../src/report/business-reports/customer-summary.scm:66
 msgid "Show the column with the expenses per customer."
 msgstr "Показать столбец с расходами по клиентам."
 
-#: ../src/report/business-reports/customer-summary.scm:63
+#: ../src/report/business-reports/customer-summary.scm:67
 msgid "Show Company Address"
 msgstr "Показать адрес фирмы"
 
-#: ../src/report/business-reports/customer-summary.scm:64
+#: ../src/report/business-reports/customer-summary.scm:68
 msgid "Show your own company's address and the date of printing."
 msgstr "Показать адрес вашей фирмы и дату формирования отчета."
 
-#: ../src/report/business-reports/customer-summary.scm:66
+#: ../src/report/business-reports/customer-summary.scm:70
 #: ../src/report/business-reports/easy-invoice.scm:249
 #: ../src/report/business-reports/easy-invoice.scm:254
 #: ../src/report/business-reports/easy-invoice.scm:259
@@ -19865,28 +19929,22 @@ msgstr "Показать адрес вашей фирмы и дату форми
 #: ../src/report/business-reports/job-report.scm:398
 #: ../src/report/business-reports/job-report.scm:403
 #: ../src/report/business-reports/job-report.scm:408
-#: ../src/report/business-reports/owner-report.scm:517
-#: ../src/report/business-reports/owner-report.scm:522
-#: ../src/report/business-reports/owner-report.scm:527
-#: ../src/report/business-reports/owner-report.scm:532
-#: ../src/report/business-reports/owner-report.scm:537
-#: ../src/report/business-reports/owner-report.scm:542
-#: ../src/report/business-reports/owner-report.scm:547
-#: ../src/report/business-reports/owner-report.scm:552
+#: ../src/report/business-reports/owner-report.scm:521
+#: ../src/report/business-reports/owner-report.scm:526
+#: ../src/report/business-reports/owner-report.scm:531
+#: ../src/report/business-reports/owner-report.scm:536
+#: ../src/report/business-reports/owner-report.scm:541
+#: ../src/report/business-reports/owner-report.scm:546
+#: ../src/report/business-reports/owner-report.scm:551
+#: ../src/report/business-reports/owner-report.scm:556
 msgid "Display Columns"
 msgstr "Показать столбцы"
 
-#. (define optname-invoicelines (N_ "Show Invoices"))
-#. (define opthelp-invoicelines (N_ "Show Invoice Transactions and include them in the balance."))
-#. (define optname-paymentlines (N_ "(Experimental) Show Payments"))
-#. (define opthelp-paymentlines (N_ "Show Payment Transactions and include them in the balance."))
-#. (define optname-show-txn-table (N_ "(Experimental) Show Transaction Table"))
-#. (define opthelp-show-txn-table (N_ "Show the table with all transactions. If false, only show the total amount per customer."))
-#: ../src/report/business-reports/customer-summary.scm:82
+#: ../src/report/business-reports/customer-summary.scm:89
 msgid "Show Lines with All Zeros"
 msgstr "Показывать строки со всеми нулями"
 
-#: ../src/report/business-reports/customer-summary.scm:83
+#: ../src/report/business-reports/customer-summary.scm:90
 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."
@@ -19894,113 +19952,113 @@ msgstr ""
 "Показывать строки таблицы с клиентами, у которых отсутствуют проводки в "
 "отчётном периоде и, соответственно, нули во всех колонках."
 
-#: ../src/report/business-reports/customer-summary.scm:84
+#: ../src/report/business-reports/customer-summary.scm:91
 msgid "Show Inactive Customers"
 msgstr "Показывать неактивных клиентов"
 
-#: ../src/report/business-reports/customer-summary.scm:85
+#: ../src/report/business-reports/customer-summary.scm:92
 msgid "Include customers that have been marked inactive."
 msgstr "Показать клиентов, помеченных как неактивные."
 
-#: ../src/report/business-reports/customer-summary.scm:87
+#: ../src/report/business-reports/customer-summary.scm:94
 msgid "Sort Column"
 msgstr "Упорядочить столбец"
 
-#: ../src/report/business-reports/customer-summary.scm:88
+#: ../src/report/business-reports/customer-summary.scm:95
 msgid "Choose the column by which the result table is sorted."
 msgstr "Выберите столбец, по значению которого упорядочить таблицу."
 
-#: ../src/report/business-reports/customer-summary.scm:90
+#: ../src/report/business-reports/customer-summary.scm:97
 msgid "Choose the ordering of the column sort: Either ascending or descending."
 msgstr "Выберите вид сортировки столбца: по возрастанию или по убыванию"
 
-#: ../src/report/business-reports/customer-summary.scm:449
+#: ../src/report/business-reports/customer-summary.scm:456
 msgid "Customer Name"
 msgstr "Имя клиента"
 
-#: ../src/report/business-reports/customer-summary.scm:450
+#: ../src/report/business-reports/customer-summary.scm:457
 msgid "Sort alphabetically by customer name."
 msgstr "Упорядочить в алфавитном порядке по имени клиента."
 
-#: ../src/report/business-reports/customer-summary.scm:452
-#: ../src/report/business-reports/customer-summary.scm:839
+#: ../src/report/business-reports/customer-summary.scm:459
+#: ../src/report/business-reports/customer-summary.scm:845
 #: ../src/report/standard-reports/average-balance.scm:126
 #: ../src/report/standard-reports/average-balance.scm:147
 msgid "Profit"
 msgstr "Прибыль"
 
-#: ../src/report/business-reports/customer-summary.scm:453
+#: ../src/report/business-reports/customer-summary.scm:460
 msgid "Sort by profit amount."
 msgstr "Упорядочить по сумме прибыли."
 
 #. Translators: "Markup" is profit amount divided by sales amount
-#: ../src/report/business-reports/customer-summary.scm:456
-#: ../src/report/business-reports/customer-summary.scm:839
+#: ../src/report/business-reports/customer-summary.scm:463
+#: ../src/report/business-reports/customer-summary.scm:847
 msgid "Markup"
 msgstr "Маркер"
 
-#: ../src/report/business-reports/customer-summary.scm:457
+#: ../src/report/business-reports/customer-summary.scm:464
 msgid "Sort by markup (which is profit amount divided by sales)."
 msgstr "Упорядочить по маркеру (прибыль делённая на продажи)."
 
-#: ../src/report/business-reports/customer-summary.scm:459
-#: ../src/report/business-reports/customer-summary.scm:839
+#: ../src/report/business-reports/customer-summary.scm:466
+#: ../src/report/business-reports/customer-summary.scm:847
 msgid "Sales"
 msgstr "Продажи"
 
-#: ../src/report/business-reports/customer-summary.scm:460
+#: ../src/report/business-reports/customer-summary.scm:467
 msgid "Sort by sales amount."
 msgstr "Упорядочить по сумме с продаж."
 
-#: ../src/report/business-reports/customer-summary.scm:463
+#: ../src/report/business-reports/customer-summary.scm:470
 msgid "Sort by expense amount."
 msgstr "Упорядочить по сумме затрат."
 
-#: ../src/report/business-reports/customer-summary.scm:472
+#: ../src/report/business-reports/customer-summary.scm:479
 #: ../src/report/standard-reports/transaction.scm:836
 msgid "Ascending"
 msgstr "Возрастанию"
 
-#: ../src/report/business-reports/customer-summary.scm:473
+#: ../src/report/business-reports/customer-summary.scm:480
 msgid "A to Z, smallest to largest."
 msgstr "От А до Я, от меньшего к большему."
 
-#: ../src/report/business-reports/customer-summary.scm:475
+#: ../src/report/business-reports/customer-summary.scm:482
 #: ../src/report/standard-reports/transaction.scm:839
 msgid "Descending"
 msgstr "Убыванию"
 
-#: ../src/report/business-reports/customer-summary.scm:476
+#: ../src/report/business-reports/customer-summary.scm:483
 msgid "Z to A, largest to smallest."
 msgstr "От Я до А, от большего к меньшему."
 
-#: ../src/report/business-reports/customer-summary.scm:517
+#: ../src/report/business-reports/customer-summary.scm:524
 #: ../src/report/business-reports/job-report.scm:435
 msgid "Expense Report"
 msgstr "Отчёт о расходах"
 
-#: ../src/report/business-reports/customer-summary.scm:735
-#: ../src/report/business-reports/owner-report.scm:718
+#: ../src/report/business-reports/customer-summary.scm:742
+#: ../src/report/business-reports/owner-report.scm:722
 #: ../src/report/report-gnome/dialog-report-column-view.c:351
 #: ../src/report/report-gnome/report-gnome.scm:80
 msgid "Report"
 msgstr "Отчёт"
 
-#: ../src/report/business-reports/customer-summary.scm:923
+#: ../src/report/business-reports/customer-summary.scm:931
 msgid "No Customer"
 msgstr "Не клиент"
 
-#: ../src/report/business-reports/customer-summary.scm:998
+#: ../src/report/business-reports/customer-summary.scm:1006
 msgid "%s %s - %s"
 msgstr "%s %s - %s"
 
-#: ../src/report/business-reports/customer-summary.scm:1018
+#: ../src/report/business-reports/customer-summary.scm:1026
 #: ../src/report/business-reports/job-report.scm:647
 msgid "No valid %s selected. Click on the Options button to select a company."
 msgstr ""
 "Подходящая %s не выбрана. Нажмите кнопку \"Настройки\" и выберите фирму."
 
-#: ../src/report/business-reports/customer-summary.scm:1031
+#: ../src/report/business-reports/customer-summary.scm:1039
 msgid "Customer Summary"
 msgstr "Итог по клиенту"
 
@@ -20315,15 +20373,15 @@ msgstr "Спасибо за вашу поддержку"
 #: ../src/report/business-reports/invoice.scm:336
 #: ../src/report/business-reports/job-report.scm:413
 #: ../src/report/business-reports/job-report.scm:620
-#: ../src/report/business-reports/owner-report.scm:557
-#: ../src/report/business-reports/owner-report.scm:759
+#: ../src/report/business-reports/owner-report.scm:561
+#: ../src/report/business-reports/owner-report.scm:763
 msgid "Today Date Format"
 msgstr "Формат сегодняшней даты"
 
 #: ../src/report/business-reports/easy-invoice.scm:362
 #: ../src/report/business-reports/invoice.scm:337
 #: ../src/report/business-reports/job-report.scm:414
-#: ../src/report/business-reports/owner-report.scm:558
+#: ../src/report/business-reports/owner-report.scm:562
 msgid "The format for the date->string conversion for today's date."
 msgstr "Формат преобразования даты в строку для сегодняшней даты."
 
@@ -20375,7 +20433,7 @@ msgid "INVOICE NOT POSTED"
 msgstr "СЧЁТ-ФАКТУРА НЕ ВВЕДЕНА"
 
 #: ../src/report/business-reports/easy-invoice.scm:880
-#: ../src/report/business-reports/fancy-invoice.scm:1005
+#: ../src/report/business-reports/fancy-invoice.scm:1009
 #: ../src/report/business-reports/invoice.scm:818
 msgid ""
 "No valid invoice selected. Click on the Options button and select the "
@@ -20454,7 +20512,10 @@ msgstr "Факс:"
 msgid "Web:"
 msgstr "Сайт:"
 
-#: ../src/report/business-reports/fancy-invoice.scm:891
+#. Translators: %s below is "Invoice" or "Bill" or even the
+#. custom title from the options. The next column contains
+#. the number of the document.
+#: ../src/report/business-reports/fancy-invoice.scm:894
 msgid "%s #"
 msgstr "%s â„–"
 
@@ -20463,13 +20524,11 @@ msgstr "%s â„–"
 #. options. This string sucks for i18n, but I don't
 #. have a better solution right now without breaking
 #. other people's invoices.
-#: ../src/report/business-reports/fancy-invoice.scm:897
+#: ../src/report/business-reports/fancy-invoice.scm:900
 msgid "%s Date"
 msgstr "%s Ð”ата"
 
-#. oli-custom - FIXME: I have a feeling I broke a
-#. translation by not using string-expand for  
-#: ../src/report/business-reports/fancy-invoice.scm:903
+#: ../src/report/business-reports/fancy-invoice.scm:907
 #: ../src/report/business-reports/invoice.scm:730
 #: ../src/report/business-reports/taxinvoice.eguile.scm:235
 msgid "Invoice in progress..."
@@ -20488,12 +20547,12 @@ msgid "Job name"
 msgstr "Название операции"
 
 #: ../src/report/business-reports/job-report.scm:332
-#: ../src/report/business-reports/owner-report.scm:465
+#: ../src/report/business-reports/owner-report.scm:469
 msgid "Total Credit"
 msgstr "Итого кредит"
 
 #: ../src/report/business-reports/job-report.scm:333
-#: ../src/report/business-reports/owner-report.scm:466
+#: ../src/report/business-reports/owner-report.scm:470
 msgid "Total Due"
 msgstr "Итого взносы"
 
@@ -20502,34 +20561,34 @@ msgid "The job for this report."
 msgstr "Операция для этого отчёта."
 
 #: ../src/report/business-reports/job-report.scm:374
-#: ../src/report/business-reports/owner-report.scm:503
+#: ../src/report/business-reports/owner-report.scm:507
 msgid "The account to search for transactions."
 msgstr "Счета для поиска проводок."
 
 #: ../src/report/business-reports/job-report.scm:384
 #: ../src/report/business-reports/job-report.scm:389
-#: ../src/report/business-reports/owner-report.scm:518
-#: ../src/report/business-reports/owner-report.scm:523
+#: ../src/report/business-reports/owner-report.scm:522
+#: ../src/report/business-reports/owner-report.scm:527
 msgid "Display the transaction date?"
 msgstr "Показать дату проводки?"
 
 #: ../src/report/business-reports/job-report.scm:394
-#: ../src/report/business-reports/owner-report.scm:528
+#: ../src/report/business-reports/owner-report.scm:532
 msgid "Display the transaction reference?"
 msgstr "Показать ссылку проводки?"
 
 #: ../src/report/business-reports/job-report.scm:399
-#: ../src/report/business-reports/owner-report.scm:533
+#: ../src/report/business-reports/owner-report.scm:537
 msgid "Display the transaction type?"
 msgstr "Показать тип проводки?"
 
 #: ../src/report/business-reports/job-report.scm:404
-#: ../src/report/business-reports/owner-report.scm:538
+#: ../src/report/business-reports/owner-report.scm:542
 msgid "Display the transaction description?"
 msgstr "Показать описание проводки?"
 
 #: ../src/report/business-reports/job-report.scm:409
-#: ../src/report/business-reports/owner-report.scm:553
+#: ../src/report/business-reports/owner-report.scm:557
 msgid "Display the transaction amount?"
 msgstr "Показать сумму проводки?"
 
@@ -20538,57 +20597,55 @@ msgstr "Показать сумму проводки?"
 msgid "Job Report"
 msgstr "Отчёт об операции"
 
-#: ../src/report/business-reports/owner-report.scm:77
+#: ../src/report/business-reports/owner-report.scm:78
 msgid "No valid customer selected."
 msgstr "Клиент не выбран."
 
-#: ../src/report/business-reports/owner-report.scm:78
+#: ../src/report/business-reports/owner-report.scm:79
 msgid "No valid employee selected."
 msgstr "Сотрудник не выбран."
 
-#. FALL THROUGH
-#: ../src/report/business-reports/owner-report.scm:80
+#: ../src/report/business-reports/owner-report.scm:82
 msgid "No valid company selected."
 msgstr "Фирма не выбрана."
 
-#: ../src/report/business-reports/owner-report.scm:83
+#: ../src/report/business-reports/owner-report.scm:85
 msgid "This report requires a customer to be selected."
 msgstr "Этот отчёт требует, чтобы был выбран клиент."
 
-#: ../src/report/business-reports/owner-report.scm:84
+#: ../src/report/business-reports/owner-report.scm:86
 msgid "This report requires a employee to be selected."
 msgstr "Этот отчёт требует, чтобы был выбран сотрудник."
 
-#. FALL THROUGH
-#: ../src/report/business-reports/owner-report.scm:86
+#: ../src/report/business-reports/owner-report.scm:89
 msgid "This report requires a company to be selected."
 msgstr "Этот отчёт требует, чтоб была выбрана фирма."
 
-#: ../src/report/business-reports/owner-report.scm:102
+#: ../src/report/business-reports/owner-report.scm:105
 msgid "No valid account selected"
 msgstr "Счет не выбран"
 
-#: ../src/report/business-reports/owner-report.scm:103
+#: ../src/report/business-reports/owner-report.scm:106
 msgid "This report requires a valid account to be selected."
 msgstr "Этот отчёт требует, чтобы был выбран счет."
 
-#: ../src/report/business-reports/owner-report.scm:431
+#: ../src/report/business-reports/owner-report.scm:435
 msgid "Period Totals"
 msgstr "Итого по периоду"
 
-#: ../src/report/business-reports/owner-report.scm:495
+#: ../src/report/business-reports/owner-report.scm:499
 msgid "The company for this report."
 msgstr "Фирма для этого отчета."
 
-#: ../src/report/business-reports/owner-report.scm:543
+#: ../src/report/business-reports/owner-report.scm:547
 msgid "Display the period credits column?"
 msgstr "Показать колонку кредита по периоду?"
 
-#: ../src/report/business-reports/owner-report.scm:548
+#: ../src/report/business-reports/owner-report.scm:552
 msgid "Display a period debits column?"
 msgstr "Показать колонку дебета по периоду?"
 
-#: ../src/report/business-reports/owner-report.scm:744
+#: ../src/report/business-reports/owner-report.scm:748
 msgid "Report:"
 msgstr "Отчет:"
 
@@ -21732,7 +21789,7 @@ msgid "This report requires accounts to be selected in the report options."
 msgstr "Этот отчёт требует, чтобы были выбраны счета."
 
 #: ../src/report/report-system/html-utilities.scm:848
-#: ../src/report/standard-reports/price-scatter.scm:330
+#: ../src/report/standard-reports/price-scatter.scm:332
 msgid "No data"
 msgstr "Нет данных"
 
@@ -21885,7 +21942,7 @@ msgstr "Выводить сумму в иностранной валюте эт
 
 #: ../src/report/report-system/options-utilities.scm:174
 #: ../src/report/standard-reports/advanced-portfolio.scm:76
-#: ../src/report/standard-reports/price-scatter.scm:87
+#: ../src/report/standard-reports/price-scatter.scm:89
 msgid "The source of price information."
 msgstr "Источник информации о цене."
 
@@ -21898,12 +21955,12 @@ msgid "The volume-weighted average cost of purchases."
 msgstr "Средняя цена покупок, взвешенная по объему (VWAP)."
 
 #: ../src/report/report-system/options-utilities.scm:179
-#: ../src/report/standard-reports/price-scatter.scm:90
+#: ../src/report/standard-reports/price-scatter.scm:92
 msgid "Weighted Average"
 msgstr "Средневзвешенное"
 
 #: ../src/report/report-system/options-utilities.scm:180
-#: ../src/report/standard-reports/price-scatter.scm:91
+#: ../src/report/standard-reports/price-scatter.scm:93
 msgid "The weighted average of all currency transactions of the past."
 msgstr "Средневзвешенное значение цены всех прошедших валютных проводок."
 
@@ -22115,10 +22172,7 @@ msgstr "Стиль оформления"
 msgid "Invoice Number"
 msgstr "Номер счета-фактуры"
 
-#. FIXME: We should pass the top-level window
-#. instead of the '() to gnc-error-dialog, but I
-#. have no idea where to get it from.
-#: ../src/report/report-system/report.scm:145
+#: ../src/report/report-system/report.scm:146
 msgid ""
 "One of your reports has a report-guid that is a duplicate. Please check the "
 "report system, especially your saved reports, for a report with this report-"
@@ -22127,7 +22181,7 @@ msgstr ""
 "Один из отчётов имеет повторяющийся guid. Проверьте файлы отчетов, в "
 "особенности сохраненные отчёты, на наличие отчёта со следующим guid: "
 
-#: ../src/report/report-system/report.scm:177
+#: ../src/report/report-system/report.scm:179
 msgid ""
 "The GnuCash report system has been upgraded. Your old saved reports have "
 "been transfered into a new format. If you experience trouble with saved "
@@ -22137,19 +22191,19 @@ msgstr ""
 "новый формат. Если возникнут проблемы с сохранёнными отчётами, то сообщите "
 "об этом команде разработчиков GnuCash."
 
-#: ../src/report/report-system/report.scm:242
+#: ../src/report/report-system/report.scm:244
 msgid "Enter a descriptive name for this report."
 msgstr "Введите описательное название для этого отчёта."
 
-#: ../src/report/report-system/report.scm:247
+#: ../src/report/report-system/report.scm:249
 msgid "Select a stylesheet for the report."
 msgstr "Выберите стиль оформления отчёта."
 
-#: ../src/report/report-system/report.scm:255
+#: ../src/report/report-system/report.scm:257
 msgid "stylesheet."
 msgstr "лист cтилей."
 
-#: ../src/report/report-system/report.scm:858
+#: ../src/report/report-system/report.scm:860
 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."
@@ -22327,7 +22381,7 @@ msgstr "Максимум кусков"
 #: ../src/report/standard-reports/daily-reports.scm:68
 #: ../src/report/standard-reports/net-barchart.scm:61
 #: ../src/report/standard-reports/net-linechart.scm:57
-#: ../src/report/standard-reports/price-scatter.scm:57
+#: ../src/report/standard-reports/price-scatter.scm:59
 msgid "Plot Width"
 msgstr "Ширина рисования"
 
@@ -22338,7 +22392,7 @@ msgstr "Ширина рисования"
 #: ../src/report/standard-reports/daily-reports.scm:69
 #: ../src/report/standard-reports/net-barchart.scm:62
 #: ../src/report/standard-reports/net-linechart.scm:58
-#: ../src/report/standard-reports/price-scatter.scm:58
+#: ../src/report/standard-reports/price-scatter.scm:60
 msgid "Plot Height"
 msgstr "Высота рисования"
 
@@ -22597,7 +22651,7 @@ msgstr "Показать примечание к счёту."
 #: ../src/report/standard-reports/balance-sheet.scm:143
 #: ../src/report/standard-reports/budget-balance-sheet.scm:108
 #: ../src/report/standard-reports/budget-income-statement.scm:123
-#: ../src/report/standard-reports/budget.scm:51
+#: ../src/report/standard-reports/budget.scm:52
 #: ../src/report/standard-reports/cash-flow.scm:55
 #: ../src/report/standard-reports/equity-statement.scm:84
 #: ../src/report/standard-reports/income-statement.scm:116
@@ -23123,10 +23177,10 @@ msgid ""
 msgstr "Включить или нет строку, отражающую изменение итогов из-за бюджета."
 
 #: ../src/report/standard-reports/budget-balance-sheet.scm:112
-#: ../src/report/standard-reports/budget-barchart.scm:62
-#: ../src/report/standard-reports/budget-flow.scm:58
+#: ../src/report/standard-reports/budget-barchart.scm:63
+#: ../src/report/standard-reports/budget-flow.scm:59
 #: ../src/report/standard-reports/budget-income-statement.scm:60
-#: ../src/report/standard-reports/budget.scm:85
+#: ../src/report/standard-reports/budget.scm:86
 msgid "Budget to use."
 msgstr "Используемый бюджет."
 
@@ -23182,39 +23236,35 @@ msgstr "Существующие собственные средства"
 msgid "New Equity"
 msgstr "Новые собственные средства"
 
-#. included since Bug726449
-#. for regexp-substitute/global, used by jpqplot
-#. for jqplot-escape-string
-#: ../src/report/standard-reports/budget-barchart.scm:42
-#: ../src/report/standard-reports/budget-barchart.scm:222
+#: ../src/report/standard-reports/budget-barchart.scm:43
+#: ../src/report/standard-reports/budget-barchart.scm:223
 msgid "Budget Barchart"
 msgstr "Гистограмма бюджета"
 
-#: ../src/report/standard-reports/budget-barchart.scm:47
+#: ../src/report/standard-reports/budget-barchart.scm:48
 msgid "Running Sum"
 msgstr "Текущая сумма"
 
-#: ../src/report/standard-reports/budget-barchart.scm:70
+#: ../src/report/standard-reports/budget-barchart.scm:71
 msgid "Calculate as running sum?"
 msgstr "Посчитать как текущую сумму?"
 
-#: ../src/report/standard-reports/budget-barchart.scm:76
-#: ../src/report/standard-reports/budget-flow.scm:89
+#: ../src/report/standard-reports/budget-barchart.scm:77
+#: ../src/report/standard-reports/budget-flow.scm:90
 #: ../src/report/standard-reports/transaction.scm:653
 #: ../src/report/standard-reports/trial-balance.scm:79
 msgid "Report on these accounts."
 msgstr "Отчёт по этим счетам."
 
-#: ../src/report/standard-reports/budget-barchart.scm:106
+#: ../src/report/standard-reports/budget-barchart.scm:107
 msgid "Actual"
 msgstr "Текущий"
 
-#. for gnc-build-url
-#: ../src/report/standard-reports/budget-flow.scm:38
+#: ../src/report/standard-reports/budget-flow.scm:39
 msgid "Budget Flow"
 msgstr "Бюджетный поток"
 
-#: ../src/report/standard-reports/budget-flow.scm:46
+#: ../src/report/standard-reports/budget-flow.scm:47
 msgid "Period"
 msgstr "Период"
 
@@ -23225,11 +23275,11 @@ msgstr "Период"
 #. FIXME: It would be even nicer if the max number of budget
 #. periods was determined by the number of periods in the
 #. currently selected budget
-#: ../src/report/standard-reports/budget-flow.scm:72
+#: ../src/report/standard-reports/budget-flow.scm:73
 msgid "Period number."
 msgstr "Номер периода."
 
-#: ../src/report/standard-reports/budget-flow.scm:320
+#: ../src/report/standard-reports/budget-flow.scm:321
 msgid "%s: %s - %s"
 msgstr "%s: %s - %s"
 
@@ -23383,66 +23433,62 @@ msgstr "Бюджетные прибыль и убыток"
 msgid "Budget Report"
 msgstr "Бюджетный отчет"
 
-#. define all option's names so that they are properly defined
-#. in *one* place.
-#. (define optname-from-date (N_ "Start Date"))
-#. (define optname-to-date (N_ "End Date"))
-#: ../src/report/standard-reports/budget.scm:46
+#: ../src/report/standard-reports/budget.scm:47
 #: ../src/report/standard-reports/cash-flow.scm:49
 msgid "Account Display Depth"
 msgstr "Глубина отображаемых счетов"
 
-#: ../src/report/standard-reports/budget.scm:47
+#: ../src/report/standard-reports/budget.scm:48
 #: ../src/report/standard-reports/cash-flow.scm:50
 msgid "Always show sub-accounts"
 msgstr "Всегда показывать субсчета"
 
-#: ../src/report/standard-reports/budget.scm:52
+#: ../src/report/standard-reports/budget.scm:53
 #: ../src/report/standard-reports/cash-flow.scm:56
 msgid "Show Full Account Names"
 msgstr "Показывать полные названия счетов"
 
-#: ../src/report/standard-reports/budget.scm:53
+#: ../src/report/standard-reports/budget.scm:54
 msgid "Select Columns"
 msgstr "Выбрать колонки"
 
-#: ../src/report/standard-reports/budget.scm:54
+#: ../src/report/standard-reports/budget.scm:55
 msgid "Show Budget"
 msgstr "Показать бюджет"
 
-#: ../src/report/standard-reports/budget.scm:55
+#: ../src/report/standard-reports/budget.scm:56
 msgid "Display a column for the budget values."
 msgstr "Показать колонку со значениями бюджета."
 
-#: ../src/report/standard-reports/budget.scm:56
+#: ../src/report/standard-reports/budget.scm:57
 msgid "Show Actual"
 msgstr "Показать текущие"
 
-#: ../src/report/standard-reports/budget.scm:57
+#: ../src/report/standard-reports/budget.scm:58
 msgid "Display a column for the actual values."
 msgstr "Показать колонку с текущими значениями."
 
-#: ../src/report/standard-reports/budget.scm:58
+#: ../src/report/standard-reports/budget.scm:59
 msgid "Show Difference"
 msgstr "Показать разницу"
 
-#: ../src/report/standard-reports/budget.scm:59
+#: ../src/report/standard-reports/budget.scm:60
 msgid "Display the difference as budget - actual."
 msgstr "Показать разницу между бюжетом и текущим."
 
-#: ../src/report/standard-reports/budget.scm:60
+#: ../src/report/standard-reports/budget.scm:61
 msgid "Show Column with Totals"
 msgstr "Показать колонку с итогами"
 
-#: ../src/report/standard-reports/budget.scm:61
+#: ../src/report/standard-reports/budget.scm:62
 msgid "Display a column with the row totals."
 msgstr "Показать колонку с итогами строки."
 
-#: ../src/report/standard-reports/budget.scm:62
+#: ../src/report/standard-reports/budget.scm:63
 msgid "Roll up budget amounts to parent"
 msgstr "Бюджетные суммы в родительском счёте"
 
-#: ../src/report/standard-reports/budget.scm:63
+#: ../src/report/standard-reports/budget.scm:64
 msgid ""
 "If parent account does not have its own budget value, use the sum of the "
 "child account budget values."
@@ -23450,11 +23496,11 @@ msgstr ""
 "Если родительский счёт не имеет собственного значения бюджета, то "
 "использовать сумму значений дочерних счетов."
 
-#: ../src/report/standard-reports/budget.scm:64
+#: ../src/report/standard-reports/budget.scm:65
 msgid "Include accounts with zero total balances and budget values"
 msgstr "Включить счета с нулевым балансом и значениями бюджета"
 
-#: ../src/report/standard-reports/budget.scm:65
+#: ../src/report/standard-reports/budget.scm:66
 msgid ""
 "Include accounts with zero total (recursive) balances and budget values in "
 "this report."
@@ -23462,11 +23508,11 @@ msgstr ""
 "Включить в этот отчёт счета с нулевыми итоговым балансом (рекурсивно) и "
 "бюджетными значениями."
 
-#: ../src/report/standard-reports/budget.scm:66
+#: ../src/report/standard-reports/budget.scm:67
 msgid "Compress prior/later periods"
 msgstr "Сжать периоды до и после"
 
-#: ../src/report/standard-reports/budget.scm:67
+#: ../src/report/standard-reports/budget.scm:68
 msgid ""
 "Accumulate columns for periods before and after the current period to allow "
 "focus on the current period."
@@ -23474,25 +23520,25 @@ msgstr ""
 "Объединить колонки для периодов до и после текущего, чтобы заострить "
 "внимание на последнем."
 
-#: ../src/report/standard-reports/budget.scm:105
+#: ../src/report/standard-reports/budget.scm:106
 #: ../src/report/standard-reports/cash-flow.scm:87
 msgid "Show full account names (including parent accounts)."
 msgstr ""
 "Показывать полные названия счетов (включая названия родительских счетов)."
 
-#: ../src/report/standard-reports/budget.scm:448
+#: ../src/report/standard-reports/budget.scm:449
 msgid "Bgt"
 msgstr "Бюджет"
 
-#: ../src/report/standard-reports/budget.scm:456
+#: ../src/report/standard-reports/budget.scm:457
 msgid "Act"
 msgstr "Счет"
 
-#: ../src/report/standard-reports/budget.scm:464
+#: ../src/report/standard-reports/budget.scm:465
 msgid "Diff"
 msgstr "Разница"
 
-#: ../src/report/standard-reports/budget.scm:621
+#: ../src/report/standard-reports/budget.scm:622
 msgid "%s: %s"
 msgstr "%s: %s"
 
@@ -23918,17 +23964,17 @@ msgstr "График Дохода/Расхода"
 
 #: ../src/report/standard-reports/net-barchart.scm:56
 #: ../src/report/standard-reports/net-linechart.scm:52
-#: ../src/report/standard-reports/price-scatter.scm:50
+#: ../src/report/standard-reports/price-scatter.scm:52
 msgid "Show Net Profit"
 msgstr "Показать чистую прибыль"
 
 #: ../src/report/standard-reports/net-barchart.scm:58
-#: ../src/report/standard-reports/price-scatter.scm:52
+#: ../src/report/standard-reports/price-scatter.scm:54
 msgid "Show Asset & Liability bars"
 msgstr "Показать прямоугольники активов и обязательств"
 
 #: ../src/report/standard-reports/net-barchart.scm:59
-#: ../src/report/standard-reports/price-scatter.scm:53
+#: ../src/report/standard-reports/price-scatter.scm:55
 msgid "Show Net Worth bars"
 msgstr "Показать прямоугольники чистой стоимости"
 
@@ -24043,47 +24089,47 @@ msgstr "Цены на товары"
 msgid "Invert prices"
 msgstr "Обратить цены"
 
-#: ../src/report/standard-reports/price-scatter.scm:55
+#: ../src/report/standard-reports/price-scatter.scm:57
 msgid "Marker"
 msgstr "Маркер"
 
-#: ../src/report/standard-reports/price-scatter.scm:56
+#: ../src/report/standard-reports/price-scatter.scm:58
 msgid "Marker Color"
 msgstr "Цвет маркера"
 
-#: ../src/report/standard-reports/price-scatter.scm:81
+#: ../src/report/standard-reports/price-scatter.scm:83
 msgid "Calculate the price of this commodity."
 msgstr "Посчитать цену этого товара."
 
-#: ../src/report/standard-reports/price-scatter.scm:93
+#: ../src/report/standard-reports/price-scatter.scm:95
 msgid "Actual Transactions"
 msgstr "Фактические проводки"
 
-#: ../src/report/standard-reports/price-scatter.scm:94
+#: ../src/report/standard-reports/price-scatter.scm:96
 msgid "The instantaneous price of actual currency transactions in the past."
 msgstr "Мгновенная цена проводки в реальной валюте в прошлом."
 
-#: ../src/report/standard-reports/price-scatter.scm:97
+#: ../src/report/standard-reports/price-scatter.scm:99
 msgid "The recorded prices."
 msgstr "Записанные цены."
 
-#: ../src/report/standard-reports/price-scatter.scm:104
+#: ../src/report/standard-reports/price-scatter.scm:106
 msgid "Plot commodity per currency rather than currency per commodity."
 msgstr "Нарисовать график зависимости товара от денег, а не денег от товара."
 
-#: ../src/report/standard-reports/price-scatter.scm:120
+#: ../src/report/standard-reports/price-scatter.scm:122
 msgid "Color of the marker."
 msgstr "Цвет маркера."
 
-#: ../src/report/standard-reports/price-scatter.scm:230
+#: ../src/report/standard-reports/price-scatter.scm:232
 msgid "Double-Weeks"
 msgstr "Двухнедельный"
 
-#: ../src/report/standard-reports/price-scatter.scm:311
+#: ../src/report/standard-reports/price-scatter.scm:313
 msgid "All Prices equal"
 msgstr "Все цены равны"
 
-#: ../src/report/standard-reports/price-scatter.scm:312
+#: ../src/report/standard-reports/price-scatter.scm:314
 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."
@@ -24091,11 +24137,11 @@ msgstr ""
 "Все найденные цены равны. В результате будет нарисована одна сплошная "
 "прямая. К сожалению, инструмент рисования не справится с ней."
 
-#: ../src/report/standard-reports/price-scatter.scm:317
+#: ../src/report/standard-reports/price-scatter.scm:319
 msgid "All Prices at the same date"
 msgstr "Все цены одной даты"
 
-#: ../src/report/standard-reports/price-scatter.scm:318
+#: ../src/report/standard-reports/price-scatter.scm:320
 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."
@@ -24103,11 +24149,11 @@ msgstr ""
 "Все найденные цены одной даты. В результате будет нарисована одна сплошная "
 "прямая. К сожалению, инструмент рисования не справится с ней."
 
-#: ../src/report/standard-reports/price-scatter.scm:325
+#: ../src/report/standard-reports/price-scatter.scm:327
 msgid "Only one price"
 msgstr "Только одна цена"
 
-#: ../src/report/standard-reports/price-scatter.scm:326
+#: ../src/report/standard-reports/price-scatter.scm:328
 msgid ""
 "There was only one single price found for the selected commodities in the "
 "selected time period. This doesn't give a useful plot."
@@ -24115,7 +24161,7 @@ msgstr ""
 "В указанный период была найдена только одна цена выбранных предметов. Это не "
 "позволит получить полезный рисунок."
 
-#: ../src/report/standard-reports/price-scatter.scm:331
+#: ../src/report/standard-reports/price-scatter.scm:333
 msgid ""
 "There is no price information available for the selected commodities in the "
 "selected time period."
@@ -24123,11 +24169,11 @@ msgstr ""
 "Информация о ценах не доступна для выбранных товаров в указанный период "
 "времени."
 
-#: ../src/report/standard-reports/price-scatter.scm:336
+#: ../src/report/standard-reports/price-scatter.scm:338
 msgid "Identical commodities"
 msgstr "Идентичные предметы"
 
-#: ../src/report/standard-reports/price-scatter.scm:337
+#: ../src/report/standard-reports/price-scatter.scm:339
 msgid ""
 "Your selected commodity and the currency of the report are identical. It "
 "doesn't make sense to show prices for identical commodities."
@@ -24135,7 +24181,7 @@ msgstr ""
 "Выбранный товар и валюта отчета совпадают. Нет никакого смысла показывать "
 "цену товара измеряемую в нём же."
 
-#: ../src/report/standard-reports/price-scatter.scm:349
+#: ../src/report/standard-reports/price-scatter.scm:351
 msgid "Price Scatterplot"
 msgstr "Рассеяный график цен"
 
@@ -25726,17 +25772,28 @@ msgstr ""
 
 #: ../doc/tip_of_the_day.list.in:4
 msgid ""
+"The GnuCash developers are easy to contact. As well as several mailing "
+"lists, you can chat to them live on IRC! Join them on #gnucash at irc.gnome."
+"org"
+msgstr ""
+"С разработчиками GnuCash очень просто связаться. Существует несколько "
+"списков рассылки, также вы можете пообщаться с ними вживую на IRC! Ищите их "
+"на #gnucash на irc.gnome.org"
+
+#: ../doc/tip_of_the_day.list.in:8
+msgid ""
 "You can easily import your existing financial data from Quicken, MS Money or "
 "other programs that export QIF files or OFX files. In the File menu, click "
 "on the sub-menu Import and click on QIF or OFX file, respectively. Then, "
 "follow the instructions provided."
 msgstr ""
 "Вы можете очень просто импортировать имеющиеся у вас финансовые данные из "
-"таких программ, как Quicken, MS Money и других, позволяющих экспортировать данные в "
-"формат файлов QIF или OFX. В меню \"Файл\" выберите подменю \"Импорт\" и "
-"выберите нужный файл QIF или OFX. Далее следуйте предложенным инструкциям."
+"таких программ, как Quicken, MS Money и других, позволяющих экспортировать "
+"данные в формат файлов QIF или OFX. В меню \"Файл\" выберите подменю \"Импорт"
+"\" и выберите нужный файл QIF или OFX. Далее следуйте предложенным "
+"инструкциям."
 
-#: ../doc/tip_of_the_day.list.in:9
+#: ../doc/tip_of_the_day.list.in:13
 msgid ""
 "If you are familiar with other financial programs such as Quicken, note that "
 "GnuCash uses accounts instead of categories to track income and expenses. "
@@ -25748,7 +25805,7 @@ msgstr ""
 "приходов и расходов. За дополнительной информацией о счетах Приход и Расход, "
 "пожалуйста, обращайтесь к практическому руководству GnuCash."
 
-#: ../doc/tip_of_the_day.list.in:14
+#: ../doc/tip_of_the_day.list.in:18
 msgid ""
 "Create new accounts by clicking the New button in the main window tool bar. "
 "This will bring up a dialog box where you can enter account details. For "
@@ -25761,7 +25818,7 @@ msgstr ""
 "счёта или настройке плана счетов, обращайтесь к практическому руководству "
 "GnuCash."
 
-#: ../doc/tip_of_the_day.list.in:20
+#: ../doc/tip_of_the_day.list.in:24
 msgid ""
 "Click the right mouse button (control-click in Mac OS X) in the Accounts tab "
 "of the main window to bring up the account menu options. Within each "
@@ -25772,7 +25829,7 @@ msgstr ""
 "главного окна, чтобы открыть параметры меню счёта. В каждом регистре щелчок "
 "правой кнопки мыши открывает параметры меню проводки."
 
-#: ../doc/tip_of_the_day.list.in:25
+#: ../doc/tip_of_the_day.list.in:29
 msgid ""
 "To enter multiple-split transactions such as a paycheck with multiple "
 "deductions, click the Split button in the tool bar. Alternatively, in the "
@@ -25784,7 +25841,7 @@ msgstr ""
 "инструментов. Также вы можете выбрать стиль журнала в меню \"Вид\", например "
 "\"Авторазворачиваемый\" или \"Журнал проводок\"."
 
-#: ../doc/tip_of_the_day.list.in:30
+#: ../doc/tip_of_the_day.list.in:34
 msgid ""
 "As you enter amounts in the register, you can use the GnuCash calculator to "
 "add, subtract, multiply and divide. Simply type the first value, then select "
@@ -25796,7 +25853,7 @@ msgstr ""
 "затем '+', '-', '*' или '/'. Введите второе значение и нажмите Enter для "
 "записи вычисленной суммы."
 
-#: ../doc/tip_of_the_day.list.in:35
+#: ../doc/tip_of_the_day.list.in:39
 msgid ""
 "Quick-fill makes it easy to enter common transactions. When you type the "
 "first letter(s) of a common transaction description, then press the Tab key, "
@@ -25804,11 +25861,10 @@ msgid ""
 "was last entered."
 msgstr ""
 "Быстрое заполнение упрощает ввод повторяющихся проводок. Когда вы набираете "
-"первые буквы описания какой-либо частой проводки, GnuCash "
-"автоматически дополняет оставшуюся часть описания так, как она была введена "
-"до этого."
+"первые буквы описания какой-либо частой проводки, GnuCash автоматически "
+"дополняет оставшуюся часть описания так, как она была введена до этого."
 
-#: ../doc/tip_of_the_day.list.in:40
+#: ../doc/tip_of_the_day.list.in:44
 msgid ""
 "Type the first letter(s) of an existing account name in the Transfer "
 "register column, and GnuCash will complete the name from your list of "
@@ -25822,7 +25878,7 @@ msgstr ""
 "двоеточия и первые буквы субсчёта (например, А:Н для получения Активы:"
 "Наличные)."
 
-#: ../doc/tip_of_the_day.list.in:46
+#: ../doc/tip_of_the_day.list.in:50
 msgid ""
 "Want to see all your subaccount transactions in one register? From the "
 "Accounts tab in the main window, highlight the parent account and select "
@@ -25832,7 +25888,7 @@ msgstr ""
 "главного окна выделите родительский счёт и выберите из меню \"Правка\" -> "
 "\"Открыть субсчета\"."
 
-#: ../doc/tip_of_the_day.list.in:50
+#: ../doc/tip_of_the_day.list.in:54
 msgid ""
 "When entering dates, you can type '+' or '-' to increment or decrement the "
 "selected date. You can use '+' and '-' to increment and decrement check "
@@ -25842,7 +25898,7 @@ msgstr ""
 "выбранной даты. Также вы можете использовать '+' и '-' для увеличения или "
 "уменьшения номеров."
 
-#: ../doc/tip_of_the_day.list.in:54
+#: ../doc/tip_of_the_day.list.in:58
 msgid ""
 "To switch between multiple tabs in the main window, press Control+Page Up/"
 "Down."
@@ -25850,7 +25906,7 @@ msgstr ""
 "Для переключения между вкладками основного окна используйте Ctrl+PageUp и "
 "Ctrl+PageDown."
 
-#: ../doc/tip_of_the_day.list.in:57
+#: ../doc/tip_of_the_day.list.in:61
 msgid ""
 "In the reconcile window, you can press the spacebar to mark transactions as "
 "reconciled. You can also press Tab and Shift-Tab to move between deposits "
@@ -25860,7 +25916,7 @@ msgstr ""
 "согласованные. Также вы можете нажимать Tab и Shift-Tab для перемещения "
 "между зачислениями и снятиями."
 
-#: ../doc/tip_of_the_day.list.in:61
+#: ../doc/tip_of_the_day.list.in:65
 msgid ""
 "To transfer funds between accounts with different currencies, click on the "
 "Transfer button in the register toolbar, select the accounts, and the "
@@ -25871,7 +25927,7 @@ msgstr ""
 "\"Передать\" в панели инструментов журнала, выберите счета и укажите "
 "параметры передачи валюты - курс обмена или сумму в другой валюте."
 
-#: ../doc/tip_of_the_day.list.in:66
+#: ../doc/tip_of_the_day.list.in:70
 msgid ""
 "You can pack multiple reports into a single window,  providing all the "
 "financial information you want at a glance. To do so, use the Sample & "
@@ -25881,17 +25937,17 @@ msgstr ""
 "необходимую финансовую информацию сразу. Чтобы это сделать, выберите в меню "
 "\"Отчеты\" - \"Примеры и настроенные\" - \"Многоколоночный отчет\"."
 
-#: ../doc/tip_of_the_day.list.in:71
+#: ../doc/tip_of_the_day.list.in:75
 msgid ""
 "Style Sheets affect how reports are displayed. Choose a style sheet for your "
 "report as a report option, and use the Edit -> Style Sheets menu to "
 "customize style sheets."
 msgstr ""
-"Стили оформления влияют на то, как будут показываться отчеты. Выберите "
-"стиль оформления для вашего отчета и используйте меню \"Правка\" - \"Стили "
+"Стили оформления влияют на то, как будут показываться отчеты. Выберите стиль "
+"оформления для вашего отчета и используйте меню \"Правка\" - \"Стили "
 "оформления\" для его настройки."
 
-#: ../doc/tip_of_the_day.list.in:75
+#: ../doc/tip_of_the_day.list.in:79
 msgid ""
 "To raise the accounts menu in the transfer field of a register page, press "
 "the Menu key or the Ctrl-Down key combination."
@@ -25899,7 +25955,7 @@ msgstr ""
 "Для получения списка счетов в поле \"перевести\" нажмите кнопку \"Меню\" или "
 "Ctrl+Down."
 
-#: ../doc/tip_of_the_day.list.in:78
+#: ../doc/tip_of_the_day.list.in:82
 msgid ""
 "The scheduled transaction editor comes with a very flexible frequency "
 "configurator. Basic frequencies to schedule a transaction include daily, "
@@ -25923,7 +25979,7 @@ msgstr ""
 "Для того чтобы запланировать выполнение проводки раз в год, следует выбрать "
 "периодичность \"Ежемесячно\" и указать \"Каждые 12 месяцев\""
 
-#: ../doc/tip_of_the_day.list.in:87
+#: ../doc/tip_of_the_day.list.in:91
 msgid ""
 "If you work overnight, you should close and reopen your working registers "
 "after midnight, to get the new date as default for new transactions. It is "
@@ -25933,17 +25989,27 @@ msgstr ""
 "журналы, для установки новой даты по умолчанию для новых проводок. Поэтому "
 "нет необходимости перезапускать GnuCash."
 
-#: ../doc/tip_of_the_day.list.in:91
+#: ../doc/tip_of_the_day.list.in:95
 msgid ""
-"The GnuCash developers are easy to contact. As well as several mailing "
-"lists, you can chat to them live on IRC! Join them on #gnucash at irc.gnome."
-"org"
+"To search through all your transactions, start a search (Edit -> Find...) "
+"from the main accounts hierarchy page. To limit your search to a single "
+"account, start the search from that account's register."
 msgstr ""
-"С разработчиками GnuCash очень просто связаться. Существует несколько "
-"списков рассылки, также вы можете пообщаться с ними вживую на IRC! Ищите их "
-"на #gnucash на irc.gnome.org"
+"Для поиска по всем транзакциям, откройте диалог поиска (\"Правка\" -> "
+"\"Найти...\") со страницы иерархии счетов. Чтобы искать в пределах одного "
+"счета, откройте диалог поиска со страницы журнала этого счета."
 
-#: ../doc/tip_of_the_day.list.in:95
+#: ../doc/tip_of_the_day.list.in:99
+msgid ""
+"To visually compare on screen the contents of 2 tabs, in one of the tabs, "
+"select Window -> New Window with Page from the menu to duplicate that tab in "
+"a new window."
+msgstr ""
+"Чтобы визуально сравнить на экране содержимое двух вкладок, выберите в одной "
+"из вкладок \"Окно\" -> \"Новое окно со страницей\" из меню, чтобы "
+"продублировать эту вкладку в новом окне."
+
+#: ../doc/tip_of_the_day.list.in:103
 msgid ""
 "There is a theory that if ever anyone discovers what the Universe is for and "
 "why it is here, it will instantly disappear and be replaced with something "
@@ -25959,25 +26025,8 @@ msgstr ""
 "\n"
 "Дуглас Адамс, \"Ресторан в конце Вселенной\""
 
-#: ../doc/tip_of_the_day.list.in:102
-msgid ""
-"To search through all your transactions, start a search (Edit -> Find...) "
-"from the main accounts hierarchy page. To limit your search to a single "
-"account, start the search from that account's register."
-msgstr ""
-"Для поиска по всем транзакциям, откройте диалог поиска (\"Правка\" -> \"Найти...\") "
-"со страницы иерархии счетов. Чтобы искать в пределах одного счета, откройте "
-"диалог поиска со страницы журнала этого счета."
-
-#: ../doc/tip_of_the_day.list.in:106
-msgid ""
-"To visually compare on screen the contents of 2 tabs, in one of the tabs, "
-"select Window -> New Window with Page from the menu to duplicate that tab in "
-"a new window."
-msgstr ""
-"Чтобы визуально сравнить на экране содержимое двух вкладок, выберите в одной из "
-"вкладок \"Окно\" -> \"Новое окно со страницей\" из меню, чтобы продублировать "
-"эту вкладку в новом окне."
+#~ msgid "Remember _PIN"
+#~ msgstr "Запомнить _PIN-код"
 
 #~ msgid "Dummy message"
 #~ msgstr "сообщение-заглушка"



Summary of changes:
 gnucash/gnome-utils/gnc-main-window.c |   10 +-
 libgnucash/engine/engine.i            |    3 +-
 libgnucash/engine/gnc-commodity.c     |   31 +-
 libgnucash/engine/gnc-commodity.h     |   13 +-
 libgnucash/scm/price-quotes.scm       |    2 +-
 po/de.po                              |   77 +-
 po/ru.po                              | 1884 +++++++++++++++++++++++++++++++--
 7 files changed, 1852 insertions(+), 168 deletions(-)



More information about the gnucash-changes mailing list