gnucash-docs maint: Multiple changes pushed

Frank H.Ellenberger fell at code.gnucash.org
Mon Sep 16 18:12:51 EDT 2019


Updated	 via  https://github.com/Gnucash/gnucash-docs/commit/00fa43ff (commit)
	 via  https://github.com/Gnucash/gnucash-docs/commit/746f6ffd (commit)
	 via  https://github.com/Gnucash/gnucash-docs/commit/59a90b05 (commit)
	 via  https://github.com/Gnucash/gnucash-docs/commit/030a7ec6 (commit)
	 via  https://github.com/Gnucash/gnucash-docs/commit/701626b2 (commit)
	 via  https://github.com/Gnucash/gnucash-docs/commit/59e550ac (commit)
	 via  https://github.com/Gnucash/gnucash-docs/commit/81795bc2 (commit)
	 via  https://github.com/Gnucash/gnucash-docs/commit/79c1ec4b (commit)
	from  https://github.com/Gnucash/gnucash-docs/commit/9b9a657d (commit)



commit 00fa43ff9588e3232f1977c36c3d10cd73d98b92
Author: Frank H. Ellenberger <frank.h.ellenberger at gmail.com>
Date:   Sat Sep 14 03:47:54 2019 +0200

    Remove Guide/de/toc.xml
    
    It seems, it has never been used

diff --git a/guide/de/toc.xml b/guide/de/toc.xml
deleted file mode 100644
index dfdf8d6..0000000
--- a/guide/de/toc.xml
+++ /dev/null
@@ -1,237 +0,0 @@
-<?xml version="1.0"?>
-<!DOCTYPE book PUBLIC "-//OASIS//DTD DocBook XML V4.1.2//EN"
-    "http://www.oasis-open.org/docbook/xml/4.1.2/docbookx.dtd" [
-]>
-<book id="toc"><title>&app; Benutzerhandbuch Gliederung</title>
-<article><sect1><title>Teil Eins: Einführung</title>
-<sect2><title>Kapitel 1 Übersicht über &app;</title>
-<itemizedlist>
-<listitem><para>1.1 Einführung in &app; (Discussion)</para></listitem>
-<listitem><para>1.2 Ãœber dieses Handbuch (Discussion)</para></listitem>
-<listitem><para>1.3 Zehn Gründe, &app; zu benutzen (Discussion)</para></listitem>
-<listitem><para>1.4 Installation (How-To)</para></listitem>
-</itemizedlist>
-</sect2>
-<sect2><title>Kapitel 2  Grundlegende Struktur und Einrichtung</title>
-<itemizedlist>
-<listitem><para>2.1 Dateneingabe (Discussion)</para></listitem>
-<listitem><para>        2.1.1 Dateien, Konten und Buchungen</para></listitem>
-<listitem><para>        2.1.2 Doppelte Buchführung</para></listitem>
-<listitem><para>2.2 Die Bedieneroberfläche von &app; (Discussion)</para></listitem>
-<listitem><para>        2.2.1 Anlegen eines neuen Benutzers</para></listitem>
-<listitem><para>        2.2.2 Tipp des Tages</para></listitem>
-<listitem><para>        2.2.3 Hauptfenster</para></listitem>
-<listitem><para>        2.2.4 Register Window</para></listitem>
-<listitem><para>        2.2.5 Werkzeugleiste</para></listitem>
-<listitem><para>        2.2.6 Menü Optionen</para></listitem>
-<listitem><para>        2.2.7 Menü Abkürzungen</para></listitem>
-<listitem><para>2.3 Einstellungen vornehmen (Discussion)</para></listitem>
-<listitem><para>2.4 Hilfe (Discussion)</para></listitem>
-<listitem><para>        2.4.1 Handbuch</para></listitem>
-<listitem><para>        2.4.2 WWW</para></listitem>
-<listitem><para>        2.4.3 Registrierung über Interet</para></listitem>
-<listitem><para>        2.4.4 Suche nach Themen</para></listitem>
-<listitem><para>2.5 Dateien anlegen, speichern und öffnen (How-To)</para></listitem>
-<listitem><para>2.6 QIF Dateien importieren (How-To)</para></listitem>
-<listitem><para>2.7 Datensicherung  (How-To)</para></listitem>
-<listitem><para>2.8 Alles zusammensetzen (Beispiele zum Erstellen und Speichern einer Datei, Importieren einer QIF Datei und zum Verändern von Einstellungen)</para></listitem>
-</itemizedlist>
-</sect2>
-<sect2><title>Kapitel 3  Organizing Your Accounts</title>
-<itemizedlist>
-<listitem><para>3.1 Accounts vs. Categories (Discussion)</para></listitem>
-<listitem><para>3.2 Arten von &app; Konten (Discussion)</para></listitem>
-<listitem><para>3.3 Ein neues Konto einrichten (How-To)</para></listitem>
-<listitem><para>        3.3.1 Allgemeine Information</para></listitem>
-<listitem><para>        3.3.2 Opening Balance</para></listitem>
-<listitem><para>3.4 Setting Up a Chart of Accounts (How-To)</para></listitem>
-<listitem><para>3.5 Konten verändern (How-To)</para></listitem>
-<listitem><para>        3.5.1 Ändern eines Kontos</para></listitem>
-<listitem><para>        3.5.2 Löschen eines Kontos</para></listitem>
-<listitem><para>3.6 Changing a Chart of Accounts</para></listitem>
-<listitem><para>        3.6.1 Moving From Subaccount to Parent Account</para></listitem>
-<listitem><para>        3.6.2 Moving From Parent Account to Subaccount</para></listitem>
-<listitem><para>        3.6.3 Moving To a Different Parent Account</para></listitem>
-<listitem><para>3.7 Konten und Unterkonten öffnen</para></listitem>
-<listitem><para>3.8 Scrubbing Accounts</para></listitem>
-<listitem><para>3.9 Alles zusammensetzen (Examples of setting up a simple chart of accounts with cash, checking, savings, credit card, income and expense accounts)</para></listitem>
-</itemizedlist>
-</sect2>
-<sect2><title>Kapitel 4 Buchungen eintragen</title>
-<itemizedlist>
-<listitem><para>4.1 Overview of Registers (Discussion)</para></listitem>
-<listitem><para>4.2 Setting Register Options (Discussion)</para></listitem>
-<listitem><para>        4.2.1 Style</para></listitem>
-<listitem><para>        4.2.2 Sort Order</para></listitem>
-<listitem><para>        4.2.3 Date Range</para></listitem>
-<listitem><para>        4.2.4 Preferences</para></listitem>
-<listitem><para>4.3 Eine Buchung eingeben (How-To)</para></listitem>
-<listitem><para>        4.3.1 Register</para></listitem>
-<listitem><para>        4.3.2 Transfer Dialog</para></listitem>
-<listitem><para>        4.3.3 General Journal Tool</para></listitem>
-<listitem><para>4.4 Entering Multiple Splits (How-To)</para></listitem>
-<listitem><para>4.5 Using Entry Shortcuts (How-To)</para></listitem>
-<listitem><para>        4.5.1 Autofill</para></listitem>
-<listitem><para>        4.5.2 Keyboard shortcuts</para></listitem>
-<listitem><para>4.6 Working with Existing Transactions (How-To)</para></listitem>
-<listitem><para>        4.6.1 Editing</para></listitem>
-<listitem><para>        4.6.2 Deleting</para></listitem>
-<listitem><para>        4.6.3 Copying</para></listitem>
-<listitem><para>        4.6.4 Jumping to Other Account</para></listitem>
-<listitem><para>        4.6.5 Finding</para></listitem>
-<listitem><para>4.7  Reconciling to a Statement (How-To)</para></listitem>
-<listitem><para>4.8  Wiederkehrende/geplante Buchungen (How-To)</para></listitem>
-<listitem><para>4.9  Alles zusammensetzen (Example of entering an opening balance in checking,  entering a paycheck with deductions, entering a second paycheck using QuickFill, and scheduling a recurring paycheck transaction)</para></listitem>
-</itemizedlist>
-</sect2></sect1>
-<sect1><title>Teil Zwei: Managing Your Records</title>
-<sect2><title>Kapitel 5  Your Checkbook  and Wallet</title>
-<itemizedlist>
-<listitem><para>5.1 Setting up Accounts (Discussion)</para></listitem>
-<listitem><para>5.2 Entering Deposits(Discussion)</para></listitem>
-<listitem><para>        5.2.1 Net Pay (How-To)</para></listitem>
-<listitem><para>        5.2.2 Gross Pay(How-To)</para></listitem>
-<listitem><para>        5.2.3 Interest Income (How-To)</para></listitem>
-<listitem><para>        5.2.4 Other (Non-Income) Deposits (How-To)</para></listitem>
-<listitem><para>5.3 Entering Withdrawals (Discussion)</para></listitem>
-<listitem><para>        5.3.1 Check Payments (How-To)</para></listitem>
-<listitem><para>        5.3.2 ATM/Cash Withdrawals(How-To)</para></listitem>
-<listitem><para>        5.3.3 Service Charges (How-To)</para></listitem>
-<listitem><para>        5.3.4 Other Withdrawals (How-To)</para></listitem>
-<listitem><para>5.4 Printing Checks (How-To)</para></listitem>
-<listitem><para>5.5 Reconciling Bank and Cash Accounts (How-To)</para></listitem>
-<listitem><para>5.6 Adjusting the Balance (How-To)</para></listitem>
-<listitem><para>5.7 Alles zusammensetzen (Examples)</para></listitem>
-</itemizedlist>
-</sect2>
-<sect2><title>Kapitel 6 Kreditkarten</title>
-<itemizedlist>
-<listitem><para>6.1 Kreditkarten-Konto einrichten (Discussion)</para></listitem>
-<listitem><para>6.2 Opening Credit Card Balance (How-To)</para></listitem>
-<listitem><para>6.3 Entering Charges(Discussion)</para></listitem>
-<listitem><para>        6.3.1 Purchases (How-To)</para></listitem>
-<listitem><para>        6.3.2 Finance/Late Charges (How-To)</para></listitem>
-<listitem><para>6.4 Zahlungen eingeben (Discussion)</para></listitem>
-<listitem><para>        6.4.1 monatliche Zahlungen (How-To)</para></listitem>
-<listitem><para>        6.4.2 Refunds/Credits (How-To)</para></listitem>
-<listitem><para>6.5 Reconciling Credit Card Accounts (How-To)</para></listitem>
-<listitem><para>6.6 Adjusting the Balance (How-To)</para></listitem>
-<listitem><para>6.7 Alles zusammensetzen (Examples)</para></listitem>
-</itemizedlist>
-</sect2>
-<sect2><title>Kapitel 7 Investments</title>
-<itemizedlist>
-<listitem><para>7.1 Setting up Accounts (Discussion - brokerage, IRA, 401(K), stock options)</para></listitem>
-<listitem><para>        -Brokerage</para></listitem>
-<listitem><para>        -CD?s</para></listitem>
-<listitem><para>        -Treasury Bills</para></listitem>
-<listitem><para>        -Money Market</para></listitem>
-<listitem><para>        -Mutual Funds</para></listitem>
-<listitem><para>        -Stocks</para></listitem>
-<listitem><para>        -Bonds</para></listitem>
-<listitem><para>        -Retirements accounts</para></listitem>
-<listitem><para>7.2 Creating a Portfolio for Your Current Holdings (How-To)</para></listitem>
-<listitem><para>7.3 Buying New Investments (How-To)</para></listitem>
-<listitem><para>7.4 Selling Investments (How-To)</para></listitem>
-<listitem><para>7.5 Recording Dividends and Interest (How-To)</para></listitem>
-<listitem><para>7.6 Recording Stock Splits and Mergers (How-To)</para></listitem>
-<listitem><para>7.7 Recording Employee Stock Plans (Discussion)</para></listitem>
-<listitem><para>        7.7.1 Stock Purchase Plans (How-To)</para></listitem>
-<listitem><para>        7.7.2 Stock Options (How-To)</para></listitem>
-<listitem><para>7.8 Managing your Portfolio (Discussion)</para></listitem>
-<listitem><para>        7.8.1  Portfolio View</para></listitem>
-<listitem><para>        7.8.2 Updating Prices (How-To)</para></listitem>
-<listitem><para>        7.8.3 Measuring Capital Gains (Discussion)</para></listitem>
-<listitem><para>7.9 Reconciling with the Brokerage Statement (How-To)</para></listitem>
-<listitem><para>7.10 Alles zusammensetzen (Examples)</para></listitem>
-</itemizedlist>
-</sect2>
-<sect2><title>Kapitel 8 Anlagevermögen und Darlehen</title>
-<itemizedlist>
-<listitem><para>8.1 Konten einrichten (Discussion of ways to handle appreciation, depreciation, principal and interest payments, gains)</para></listitem>
-<listitem><para>8.2 Buying a House with Related Mortgage (How-To)</para></listitem>
-<listitem><para>8.3 Buying a Vehicle with Related Loan (How-To)</para></listitem>
-<listitem><para>8.4 Entering a Payment Schedule</para></listitem>
-<listitem><para>        8.4.1 Monthly Payments (How-To)</para></listitem>
-<listitem><para>        8.4.2 Final Payment (How-To)</para></listitem>
-<listitem><para>8.5 Selling a House or Vehicle (How-To)</para></listitem>
-<listitem><para>8.6 Recording Changes in Value</para></listitem>
-<listitem><para>        8.6.1 Appreciation (How-To)</para></listitem>
-<listitem><para>        8.6.2 Depreciation (How-To)</para></listitem>
-<listitem><para>        8.6.3 Capital Gains (How-To)</para></listitem>
-<listitem><para>8.7 Tracking Other Assets (How-To)</para></listitem>
-<listitem><para>8.8 Reconciling with the Loan Statements (How-To)</para></listitem>
-<listitem><para>8.9 Alles zusammensetzen (Examples)</para></listitem>
-</itemizedlist>
-</sect2>
-<sect2><title>Kapitel 9  Mehrere Währungen</title>
-<itemizedlist>
-<listitem><para>9.1 Konten einrichten (Discussion of ISO codes, setup of currency accounts)</para></listitem>
-<listitem><para>9.2 &app; Währungsunterstützung (Discussion of Euro support, exchange rates)</para></listitem>
-<listitem><para>9.3 Setting International Preferences (Discussion)</para></listitem>
-<listitem><para>9.4 Recording Currency Exchange (How-To)</para></listitem>
-<listitem><para>9.5 Recording Purchases in a Foreign Currency (How-To)</para></listitem>
-<listitem><para>9.6 Tracking Currency Investments (How-To)</para></listitem>
-<listitem><para>9.7 Reconciling Statements in a Foreign Currency (How-To)</para></listitem>
-<listitem><para>9.8 Updating Exchange Rates (How-To)</para></listitem>
-<listitem><para>9.9 Alles zusammensetzen (Examples)</para></listitem>
-</itemizedlist>
-</sect2>
-<sect2><title>Kapitel 10 Berichte und Grafiken</title>
-<itemizedlist>
-<listitem><para>10.1 Übersicht über Berichte und Grafiken (Discussion)</para></listitem>
-<listitem><para>10.2 Arten von Berichten und Grafiken (Discussion)</para></listitem>
-<listitem><para>10.3 Standard-Berichte und -Grafiken erstellen (How-To)</para></listitem>
-<listitem><para>10.4 Anpassung (How-To)</para></listitem>
-<listitem><para>10.5 Berichte und Grafiken ausdrucken (How-To)</para></listitem>
-<listitem><para>10.6 Alles zusammensetzen (Examples)</para></listitem>
-</itemizedlist>
-</sect2>
-<sect2><title>Kapitel 11 Online-Unterstützung</title>
-<itemizedlist>
-<listitem><para>11.1 Verfügbare Onlinefunktionen (Discussion)</para></listitem>
-<listitem><para>11.2 Die Online-Hilfe benutzen (How-To)</para></listitem>
-<listitem><para>11.3 Softwareupdates über das Internet einspielen (How-To)</para></listitem>
-<listitem><para>11.4 Aktien- und Währungskurse online beziehen (How-To)</para></listitem>
-<listitem><para>11.5 Kontoauszüge importieren (How-To)</para></listitem>
-<listitem><para>11.6 Alles zusammensetzen (Examples)</para></listitem>
-</itemizedlist>
-</sect2>
-</sect1>
-<sect1><title>Teil Drei:  Fortgeschrittene Themen</title>
-<sect2><title>Kapitel 12  Zukunftsplanung</title>
-<itemizedlist>
-<listitem><para>12.1 Die Steuererklärung vorbereiten (Discussion)</para></listitem>
-<listitem><para>12.2 Budgets erstellen und benutzen (Discussion)</para></listitem>
-<listitem><para>12.3 Planning for Loans (Discussion)</para></listitem>
-<listitem><para>12.4 Planning to Buy a House (Discussion)</para></listitem>
-</itemizedlist>
-</sect2>
-<sect2><title>Kapitel 13 Business Needs</title>
-<itemizedlist>
-<listitem><para>13.1 Overview of Business vs. Personal Needs</para></listitem>
-<listitem><para>13.2 Mehr zur Doppelten Buchführung</para></listitem>
-<listitem><para>13.3 Hauptbuch</para></listitem>
-<listitem><para>13.4 Forderungen und Verbindlichkeiten</para></listitem>
-<listitem><para>13.5 Inventar</para></listitem>
-<listitem><para>13.6 Lohn- und Gehaltsliste</para></listitem>
-</itemizedlist>
-</sect2>
-</sect1>
-<sect1><title>Anhänge</title>
-<sect2><title>Anhang A Anleitung für Benutzer von Quicken und anderen QIF-basierten Anwendungen</title>
-<itemizedlist>
-<listitem><para>Organization of QIF Files (Discussion)</para></listitem>
-<listitem><para>Common Duplication Issues (Discussion)</para></listitem>
-<listitem><para>Checking QIF Data (Discussion)</para></listitem>
-</itemizedlist>
-</sect2>
-<sect2><title>Anhang B Häufige Fragen und Antworten (FAQ)</title>
-<itemizedlist>
-<listitem><para>(Notes: How to treat taxes (payable or expense?), how to record a txn on different dates (actual date and bank date), how to provide security for GC data using CFS, etc.)</para></listitem>
-</itemizedlist>
-</sect2>
-<sect2><title>Anhang C Fehlerbehebung</title>
-<para></para></sect2>
-</sect1>
-</article></book>

commit 746f6ffdf40d610cc70ec4f07b2fbcbd5d9c7d66
Author: Frank H. Ellenberger <frank.h.ellenberger at gmail.com>
Date:   Sat Sep 14 02:29:30 2019 +0200

    Merge current guide/C "Import Business Data" into de

diff --git a/guide/de/ch_import_business_data.xml b/guide/de/ch_import_business_data.xml
index c7b0b26..fab665e 100644
--- a/guide/de/ch_import_business_data.xml
+++ b/guide/de/ch_import_business_data.xml
@@ -3,349 +3,956 @@
 
 <!-- (Do not remove this comment block.)
 
-Version: 2.4.0
-Last modified: 2013-11-21
+Version: 3.4.0
+Last modified: 2019-01-13
 
 Maintainers:
 
 Author:
-  Mike Evans <mikee at saxicola.co.uk>
+	Mike Evans <mikee at saxicola.co.uk>
+Updated:
+	Rob Laan <rob.laan at chello.nl>
 
-    Translators:
-    (translators put your name and email here)
+		Translators:
+		(translators put your name and email here)
 -->
 
 <chapter id="ch_import_bus_data">
-  <title>Importing Business Data</title>
+	<title>Importing Business Data</title>
  <para>&untranslated-de;</para>
   <!--
 
-  <sect1 id="import-invoices">
-    <title>Import Bills or Invoices</title>
-    <para>This functionality is only available by default for versions greater than 2.6</para>
-   <para>For 2.4.13 the Customers and Vendors importer is an optional module and needs to enabled by editing the file <filename>$HOME/.gnucash/config.user</filename>,
-    adding the line:</para>
-    <para><code>(gnc:module-load "gnucash/plugins/bi_import" 0)</code></para>
-    <para>On Linux systems this file is found at <filename>$HOME/.gnucash/config.user</filename>
-      and on Mac OSX it is <filename>~/Library/Application Support/Gnucash/config.user</filename>.
-      If the file doesn’t already exist you will have to create it.
-      After restarting <application>&app;</application>, the item will appear at the bottom 
-    of the business menu.</para>
-    
-
-    <para>In order for the importer to work the data must be in a fixed field
-      length, comma separated line format. A example <application>Python</application> script to convert
-      a downloaded order is shown below.
-    </para>
-
-    <para>
-      <programlisting language="python" linenumbering="unnumbered">
-import sys
-import csv
-
-VENDOR_ID="000013"
-INFILE=sys.argv[1]
-INV_ID=sys.argv[2]
-try:
-  ACCOUNT=sys.argv[3]
-except:
-  ACCOUNT="Expenses:Materials General"
-
-Reader = csv.reader(open(INFILE), delimiter=',')
-
-# Need to ignore 1st and last rows
-
-for row in Reader:
-  if row[0].isdigit(): # We only use numbered lines
-    outline=(INV_ID + ",," + VENDOR_ID + ",,,," + row[1] + " > " + row[4] + ",ea," +
-      ACCOUNT + "," + row[2] + "," + row[5].replace("GBP", "") + ",,,,no,,,,,,,")
-  print outline
-      </programlisting>
-    </para>
-
-    <para>Example of a downloaded vendor order from <emphasis>Rapid Electronics</emphasis> (UK).
-      <programlisting language="python" linenumbering="unnumbered">
-line number,product code,quantity,availability,product description,unit price,discounts,line total,delivery,sub total,vat,grand total
-1,47-3524,100,100 Available,BC848C SOT-23 NPN TRANSISTOR (INF) (RC),GBP0.03,GBP0.00,GBP0.03
-2,47-3278,30,30 Available,L78L05ACZ 0.1A +5V VOLTAGE REG (ST) (RC),GBP0.18,GBP0.00,GBP0.18
-3,22-0120,1,1 Available,Tube 34 14pin DIL socket, narrow7.62mm, without central support,GBP1.05,GBP0.00,GBP1.05
-4,22-0127,1,0 Available<br />1 on Back Order,Tube 17 28pin DIL socket, wide15.24mm, without central support,GBP1.22,GBP0.00,GBP1.22
-5,62-0368,1,1 Available,820R CR25 0.25W CF Resistor Pk 100,GBP0.50,GBP0.00,GBP0.50
-6,47-3130,100,100 Available,1N4001 1A 50V SILICON RECTIFIER DIODE RC,GBP0.01,GBP0.00,GBP0.01
-7,17-0310,1,1 Available,PROFESSIONAL MINATURE PROBE HOOK RED RC,GBP0.90,GBP0.00,GBP0.90
-8,17-0312,1,1 Available,PROFESSIONAL MINATURE PROBE HOOK BLACKRC,GBP0.90,GBP0.00,GBP0.90
-9,34-0655,1,1 Available,PROTOBLOC 2 BREADBOARD,GBP4.39,GBP0.00,GBP4.39
-10,18-0200,1,1 Available,PP3 9V ALKALINE BATTERY "Not For Retail Sale",GBP1.37,GBP0.00,GBP1.37
-,,,,,,,,GBP4.95,GBP24.93,GBP4.35,GBP29.28
-      </programlisting>
-    </para>
-
-    <para>A similar file after processing with the <application>Python</application> script.</para>
-
-    <para>
-        <programlisting language="python">
-MEC-0071,,000013,,,,34-0655 > PROTOBLOC 2 BREADBOARD,ea,Expenses:Materials General,1,4.39,,,,no,,,,,,,
-MEC-0071,,000013,,,,18-0105 > PP3 / PP6 BATTERY CLIP 150MM (RC),ea,Expenses:Materials General,10,0.06,,,,no,,,,,,,
-MEC-0071,,000013,,,,62-0370 > 1k CR25 0.25W CF Resistor Pk 100,ea,Expenses:Materials General,1,0.50,,,,no,,,,,,,
-MEC-0071,,000013,,,,62-0354 > 220R CR25 0.25W CF Resistor Pk 100,ea,Expenses:Materials General,1,0.50,,,,no,,,,,,,
-MEC-0071,,000013,,,,34-5548 > PLAIN DOCUMENT WALLET ASSORTED PK 50 RE,ea,Expenses:Materials General,1,6.95,,,,no,,,,,,,
-MEC-0071,,000013,,,,62-0386 > 4k7 CR25 0.25W CF Resistor Pk 100,ea,Expenses:Materials General,1,0.50,,,,no,,,,,,,
-MEC-0071,,000013,,,,34-0860 > COPPER CLAD SRBP SS 100 X 160 (RC),ea,Expenses:Materials General,5,0.50,,,,no,,,,,,,
-MEC-0071,,000013,,,,18-0163 > PP3 BATTERY HOLDER WITH FLYING LEADS RC,ea,Expenses:Materials General,5,0.23,,,,no,,,,,,,
-MEC-0071,,000013,,,,73-4290 > ATMEGA8-16PU 8-BIT MICRO 8K DIL-28 (RC),ea,Expenses:Materials General,3,1.99,,,,no,,,,,,,
-MEC-0071,,000013,,,,81-0014 > BC108 NPN GP TRANSISTOR RC,ea,Expenses:Materials General,20,0.16,,,,no,,,,,,,
-MEC-0071,,000013,,,,DELIVERY,ea,Expenses:Postage,1,4.95,,,,no,,,,,,,
-MEC-0071,,000013,,,,VAT,tax,Expenses:VAT,1,4.35,,,,no,,,,,,,
-        </programlisting>
-    </para>
-
-    <para>
-      As can be seen there are some fields that are absent and some that
-      are not required for import. The first line is not required and the last
-      line is superfluous as <application>&app;</application> will total the order for us. All that is
-      required is to take what we want and produce an output file with the
-      correct format to import into <application>&app;</application>. In this case we join the part
-      number and description fields and these become description in <application>&app;</application>
-      invoice/bill. We need the qty and part price fields. Contrary to the
-      header line <acronym>VAT</acronym> is not included by line and is always zero, the <acronym>VAT</acronym> is
-      calculated on the last line as <acronym>VAT</acronym> on the order total.
-      <note>
-        <para>This will cause problems later.</para>
-      </note>
-      In this example I have assigned the
-      <emphasis>Expenses:Materials General</emphasis> account to be the target account. This can be
-      changed after import in the usual way, along with any other data. If there
-      is no such account as <emphasis>Expenses:Materials General</emphasis> then that field will be
-      left blank on import and will have to be set manually. Lines beginning
-      with a <quote>#</quote> are regarded as comment lines and ignored.
-    </para>
-
-    <para>The script is called with the following command:</para>
-      <para> <command>python importer.py <replaceable>file_to_import</replaceable>,
-      <replaceable>invoice_id</replaceable> > <replaceable>file_to_save_as.csv</replaceable></command>
-      </para>
-    <para>This short script can easily be
-      changed to suit any downloaded format. The only restriction is that the
-      final number of field is fixed, at least at the moment. The importer will
-      ignore lines with the wrong number of fields. (This may be fixed in future
-      version). Vendor ID is simply the ID assigned to the specific vendor, or
-      client. The row[N] items refer to the position in the line where the
-      correct data lies. Note that the first field is row[0] NOT row[1].
-    </para>
-
-    <para>Once you have converted the file navigate to <menuchoice><guimenu>Business</guimenu>
-      <guimenuitem>Invoice & Bill Import</guimenuitem></menuchoice> to open a new import window. 
-      Select the file you have just created, select <guilabel>Bill</guilabel> 
-      or <guilabel>Invoice</guilabel> and <guilabel>Comma separated</guilabel> format. At this
-      point the data should show up in the preview window. Check that the field
-      data are in the correct columns before selecting <guibutton>OK</guibutton>. Once imported the
-      invoice can be opened for editing and posting in the usual way.
-    </para>
-
-    <para>A note on <acronym>VAT</acronym>, or any purchase tax. As previously mentioned <emphasis>Rapid
-      Electronics</emphasis> calculate the <acronym>VAT</acronym> on the bill total not line by line. <application>&app;</application>
-      calculated the <acronym>VAT</acronym> per line then totals the <acronym>VAT</acronym>. This can lead to
-      inaccuracies in the <acronym>VAT</acronym> of the region of a few pennies and is enough to
-      cause problems when reconciling the purchase with your bank or credit card
-      account used to make the purchase. As to how you overcome that, for the
-      moment, is a problem for you to use whatever method suits your conscience
-      or accountant best. Personally I add the <acronym>VAT</acronym> as a separate line along with
-      delivery charges manually. So some work is left to the user but the tedium
-      of entering each item eliminated.
-    </para>
-
-    <para>Future: Currently the import format is quite strict and many users
-      may have problems with the conversion process. Adding a template for every
-      possible vendor <acronym>CSV</acronym> format would be mammoth and likely impossible task
-      notwithstanding the fact the vendors are likely to change the format
-      without informing the <application>&app;</application> team. Future import enhancements will be
-      based on user feedback and hopefully the process can be made simpler or
-      more flexible. Note that often <quote>simple</quote> is incompatible with
-      <quote>flexible</quote>.
-    </para>
-
-    <note>
-    <para>If <application>Python</application> (other languages are avaialble) is not your thing then
-      post a request to <ulink url="https://lists.gnucash.org/mailman/listinfo/gnucash-user"><citetitle>&app; user list</citetitle></ulink>, 
-      with an example of your downloaded <acronym>CSV</acronym>, and someone may write you a <application>Python</application> script to do the
-      translation.
-    </para>
-    </note>
-
-    <sect2 id="python-author-notes">
-      <title>Notes for <application>Python</application> authors</title>
-
-      <para>In order for the import to succeed the number of fields must be
-        adhered to, so the trailing commas are important.
-      </para>
-
-      <para>A complete list of the required fields is:</para>
-
-      <para>id, date_opened, owner_id, billingid, notes, date, desc, action,
-        account, quantity, price, disc_type, disc_how, discount, taxable,
-        taxincluded, tax_table, date_posted, due_date, account_posted,
-        memo_posted, accu_splits,
-      </para>
-      <note>
-        <para>Mind the trailing comma.</para>
-      </note>
-    </sect2>
-
-    <sect2 id="python-import-fields">
-      <title>A brief description of each field</title>
-
-      <itemizedlist>
-        <listitem>
-          <para><emphasis>id</emphasis> -
-            The invoice number. All lines must
-            contain this or the line will be rejected.
-          </para>
-        </listitem>
-        <listitem>
-          <para><emphasis>date_opened</emphasis> -
-             Use the same date format as setup in Preferences. Today's date is inserted if this is blank.
-          </para>
-        </listitem>
-        <listitem>
-          <para><emphasis>owner_id</emphasis> -
-            ID number of the vendor or customer. All lines must
-            contain this or the line will be rejected.
-          </para>
-        </listitem>
-        <listitem>
-          <para><emphasis>billingid</emphasis> -
-            Billing ID.
-          </para>
-        </listitem>
-        <listitem>
-          <para><emphasis>notes</emphasis> -
-            Invoice notes.
-          </para>
-        </listitem>
-        <listitem>
-          <para><emphasis>date</emphasis> -
-            The date of the item line. Can be left blank for todays
-            date.
-          </para>
-        </listitem>
-        <listitem>
-          <para><emphasis>desc</emphasis> -
-            Description as per normal invoice or bill.
-          </para>
-        </listitem>
-        <listitem>
-          <para><emphasis>action</emphasis> -
-            For bills usually <quote>ea</quote>.
-          </para>
-        </listitem>
-        <listitem>
-          <para><emphasis>account</emphasis> -
-            Account to which the item is attributed.
-          </para>
-        </listitem>
-        <listitem>
-          <para><emphasis>quantity</emphasis> -
-            Quantity of each item. Must contain a value or the line
-            will be rejected.
-          </para>
-        </listitem>
-        <listitem>
-          <para><emphasis>price</emphasis> -
-            Price of each item. Must contain a value or the line will be
-            rejected.
-          </para>
-        </listitem>
-        <listitem>
-          <para><emphasis>disc_type</emphasis> -
-            Type of discount, either <quote>%</quote> or <quote>TODO</quote>, only applies to
-            invoices. Some experimentation may be required here as may be currency
-            dependent.
-          </para>
-        </listitem>
-        <listitem>
-          <para><emphasis>disc_how</emphasis> -
-            Only applies to invoices.
-          </para>
-        </listitem>
-        <listitem>
-          <para><emphasis>discount</emphasis> -
-            Amount of discount to be applied. only applies to
-            invoices.
-          </para>
-        </listitem>
-        <listitem>
-          <para><emphasis>taxable</emphasis> -
-            Will tax be applied to the item? <quote>yes</quote> or blank.
-          </para>
-        </listitem>
-        <listitem>
-          <para><emphasis>taxincluded</emphasis> -
-            Is tax included in the item price? <quote>yes</quote> or blank.
-          </para>
-        </listitem>
-        <listitem>
-          <para><emphasis>tax_table</emphasis> -
-            Tax table to apply to item.
-          </para>
-        </listitem>
-        <listitem>
-          <para><emphasis>date_posted</emphasis> -
-            If posted, what date. Normally left blank for manual
-            posting after editing the invoice.  Use the same date format as setup in Preferences.
-          </para>
-        </listitem>
-        <listitem>
-          <para><emphasis>due_date</emphasis> -
-            Date payment is due.   Use the same date format as setup in Preferences.
-          </para>
-        </listitem>
-        <listitem>
-          <para><emphasis>account_posted</emphasis> -
-            Posted to what account.
-          </para>
-        </listitem>
-        <listitem>
-          <para><emphasis>memo_posted </emphasis> -
-            If posted insert memo here.
-          </para>
-        </listitem>
-        <listitem>
-          <para><emphasis>accu_splits</emphasis> -
-            Accumulate splits? <quote>yes</quote> or blank.
-          </para>
-        </listitem>
-      </itemizedlist>
-    </sect2>
-  
+	<sect1 id="busnss-imp-bills-invoices">
+		<title>Importing Bills and Invoices</title>
+
+		<sect2 id="busnss-imp-inv-general">
+			<title>General</title>
+	
+			<para>
+				This functionality creates invoices or bills from a csv import file containing rows of invoice entry data.
+				The import file may contain rows for new and/or existing invoices. If an invoice already exists,
+				<application>&app;</application> adds the imported entries to the invoice (unless the invoice is already posted).
+				If the import file contains posting data
+				for an invoice, then <application>&app;</application> will also attempt to post the invoice.
+				If any row of an invoice contains an error,  <application>&app;</application> will ignore all rows of the same invoice.
+			</para>
+			<para>
+				The field separator in the csv file must be either a comma or a semicolon; field values may be enclosed in double quotes.
+			</para>
+			
+			<para>
+				For the sake of readability, in this chapter the term <quote>invoice</quote> by itself is used
+				to refer to both customer invoices and vendor bills.
+			</para>
+			
+		</sect2>
+
+		<sect2 id="busnss-imp-inv-file-format">
+			<title>The format of the import file</title>
+
+			<para>
+				The import file should contain rows of invoice entry data, each row marked by an invoice ID. The file should be
+				sorted on invoice ID. Each row contains header and entry fields, but <application>&app;</application> takes the
+				invoice header data from the first row of an invoice ID. For informational purposes, 
+				the header data may be repeated for each subsequent row of the same invoice.
+			</para>
+			<para>
+				There is no information in the file to indicate whether it concerns customer invoice or vendor bill data.
+				Instead, a user option in the import dialog makes that distinction.
+			</para>
+			<para>
+				Each row should contain the fields listed below, in the same sequence, separated by a comma or a semicolon.
+				The fields are listed here by their technical name, which <application>&app;</application>
+				uses in the preview of the import data.
+			</para>
+	
+			<itemizedlist>
+				<listitem>
+					<para><emphasis><prompt>id</prompt></emphasis> -
+						The invoice ID. Mandatory. Any row without an invoice ID will be ignored. If the invoice ID already exists,
+						<application>&app;</application> will add the entries to the existing invoice (unless it is already posted).
+					</para>
+				</listitem>
+				<listitem>
+					<para><emphasis><prompt>date_opened</prompt></emphasis> -
+						 Use the same date format as defined in Preferences. Defaulted to today's date if left blank,
+						 or if the date provided is not valid.
+					</para>
+				</listitem>
+				<listitem>
+					<para><emphasis><prompt>owner_id</prompt></emphasis> -
+						Customer or vendor number. Mandatory in the first data row of an invoice. If not provided, all rows of the same
+						invoice will be ignored.
+					</para>
+				</listitem>
+				<listitem>
+					<para><emphasis><prompt>billingid</prompt></emphasis> -
+						Billing ID. Optional
+					</para>
+				</listitem>
+				<listitem>
+					<para><emphasis><prompt>notes</prompt></emphasis> -
+						Invoice notes. Optional.
+					</para>
+				</listitem>
+				<listitem>
+					<para><emphasis><prompt>date</prompt></emphasis> -
+						The date of the entry. Defaulted to date opened if left blank,
+						or if the date provided is not valid.
+					</para>
+				</listitem>
+				<listitem>
+					<para><emphasis><prompt>desc</prompt></emphasis> -
+						Description. Optional
+					</para>
+				</listitem>
+				<listitem>
+					<para><emphasis><prompt>action</prompt></emphasis> -
+						Action. Optional
+					</para>
+				</listitem>
+				<listitem>
+					<para><emphasis><prompt>account</prompt></emphasis> -
+						Account for the entry. Mandatory in each row.
+						If not provided or invalid, all rows of the same invoice will be ignored.
+					</para>
+				</listitem>
+				<listitem>
+					<para><emphasis><prompt>quantity</prompt></emphasis> -
+						Quantity. Defaulted to 1 if left blank.
+					</para>
+				</listitem>
+				<listitem>
+					<para><emphasis><prompt>price</prompt></emphasis> -
+						Price. Mandatory for each row.
+						If not provided, all rows of the same invoice will be ignored.
+					</para>
+				</listitem>
+				<listitem>
+					<para><emphasis><prompt>disc_type</prompt></emphasis> -
+						Type of discount. Optional. Only relevant for invoices, not for bills.
+						Use <quote>%</quote> or blank for percentage value, anything else for monetary value.
+					</para>
+				</listitem>
+				<listitem>
+					<para><emphasis><prompt>disc_how</prompt></emphasis> -
+						Discount how. Optional. Only relevant for invoices, not for bills.
+						Use <quote>></quote> for discount applied after tax,
+						<quote>=</quote> for discount and tax applied before tax,
+						and <quote><</quote>, blank or anything else for discount applied before tax.
+					</para>
+				</listitem>
+				<listitem>
+					<para><emphasis><prompt>discount</prompt></emphasis> -
+						Amount or percentage of discount. Optional. Only relevant for invoices, not for bills
+					</para>
+				</listitem>
+				<listitem>
+					<para><emphasis><prompt>taxable</prompt></emphasis> -
+						Is this entry taxable? Optional.
+						Use <quote>Y</quote> or <quote>X</quote> for yes, <quote>N</quote> or blank for no.
+					</para>
+				</listitem>
+				<listitem>
+					<para><emphasis><prompt>taxincluded</prompt></emphasis> -
+						Is tax included in the item price? Optional.
+						Use <quote>Y</quote> or <quote>X</quote> for yes, <quote>N</quote> or blank for no.
+					</para>
+				</listitem>
+					<listitem>
+					<para><emphasis><prompt>tax_table</prompt></emphasis> -
+						Tax table. Optional. If the tax table provided does not exist, it will be blank in the invoice.
+					</para>
+				</listitem>
+				<listitem>
+					<para><emphasis><prompt>date_posted</prompt></emphasis> -
+						Date posted. Optional. Use the same date format as defined in Preferences.
+						If you provide a date posted for the first row of an invoice, <application>&app;</application> 
+						will attempt to also post the invoice (as opposed to only saving or updating it).
+					</para>
+				</listitem>
+				<listitem>
+					<para><emphasis><prompt>due_date</prompt></emphasis> -
+						Due date. Optional. Use the same date format as defined in Preferences.
+						Defaulted to date posted, if left blank.
+						Only relevant in the first row of an invoice, if the invoice is posted.
+					</para>
+				</listitem>
+				<listitem>
+					<para><emphasis><prompt>account_posted</prompt></emphasis> -
+						Post to account, for vendor or customer posting.
+						Only mandatory in the first row of an invoice, if the invoice is posted.
+					</para>
+				</listitem>
+				<listitem>
+					<para><emphasis><prompt>memo_posted </prompt></emphasis> -
+						Memo. Optional. Only relevant in the first row of an invoice, if the invoice is posted.
+					</para>
+				</listitem>
+				<listitem>
+					<para><emphasis><prompt>accu_splits</prompt></emphasis> -
+						Accumulate splits? Optional. Use <quote>Y</quote> or <quote>X</quote> for yes, <quote>N</quote> or blank for no.
+						Only relevant in the first row of an invoice, if the invoice is posted.
+						If you use a spreadsheet program to create the import file, it is advised not to use blank for no, 
+						because a final column with only blanks may not be recognized
+						as relevant data when the spreadsheet program creates the csv file.
+					</para>
+				</listitem>
+			</itemizedlist>
+
+			<note id="busnss-imp-inv-file-format-note">
+				<title>Note on double quotes</title>
+				<para>
+					If you use the field separator character within a field, the field value should be enclosed in double quotes.
+					Only for the fields description (desc) and notes, can you also include a double quote within a quoted field value,
+					by doubling the double quote. E.g. <literal>"This field value uses the separator, and a ""quoted"" word"</literal>,
+					would be imported as <literal>This field value uses the separator, and a "quoted" word</literal>.
+				</para>
+			</note>
+			
+			<para>
+				Example content for two bills; one of 2 entries, and one of 3 entries.
+				The first is saved and posted, the second only saved.
+				Using comma field separator, decimal point and dd/mm/yyyy date format.
+			</para>
+		
+	 		<para>
+				<programlisting>
+1204;15/12/2018;2001;PO 210220;Special delivery;16/12/2018;Pride and Prejudice;pc;Expenses:Books;1;30.00;;;;X;;A1;17/12/2018;17/1/2019;Liabilities:Accounts Payable;;X
+1204;15/12/2018;2001;PO 210220;Special delivery;16/12/2018;Electronic principles;pc;Expenses:Books;1;50.00;;;;X;;A1;17/12/2018;17/1/2019;Liabilities:Accounts Payable;;X
+1205;15/12/2018;2044;PO 21099;;16/12/2018;Ultimate Guide;pc;Expenses:Books;1;10.01;;;;;;;;;;;
+1205;15/12/2018;2044;PO 21099;;16/12/2018;Dinner & drinks;pc;Expenses:Dining;1;10.01;;;;;;;;;;;
+1205;15/12/2018;2044;PO 21099;;16/12/2018;UG course;pc;Expenses:Education;1;10.01;;;;;;;;;;;
+				</programlisting>
+			</para>
+
+	 	 	<para>
+				Example content for one customer invoice, with one entry, including tax and discount.
+				Using comma fields separator, decimal point and dd/mm/yyyy date format. 
+				The the value of the description field contains the separator character.
+			</para>
+		
+	 		<para>
+				<programlisting>
+20221;16/12/2018;1001;Order 3378;Discount as agreed;4/12/2018;"Accounting part 1, 2";ea;Income:Other Income;1;769.95;%;=;10;X;N;A1;16/12/2018;16/01/2019;Assets:Accounts Receivable;Posted by import;X
+				</programlisting>
+			</para>
+
+		</sect2>
+	
+		<sect2 id="busnss-imp-inv-import-data">
+			<title>Import your data</title>
+
+			<para>
+				To import your invoice data, navigate to
+				<menuchoice><guimenu>File</guimenu>
+				<guimenuitem>Import</guimenuitem>
+				<guimenuitem>Import Bills  & Invoices…</guimenuitem></menuchoice> to open a new import dialog,
+				and provide the necessary information.
+			</para>
+			<itemizedlist>
+					<listitem>
+						<para><guilabel>1. Choose the file to import</guilabel> -
+							Select your import file, or manually type the path and file name.
+						</para>
+					</listitem>
+					<listitem>
+						<para><guilabel>2. Select import type</guilabel> -
+							Select the import type, either <guilabel>Bill</guilabel> or <guilabel>Invoice</guilabel>.
+						</para>
+					</listitem>
+					<listitem>
+						<para><guilabel>3. Select import options</guilabel> -
+							Select your csv format.
+							Use the <guilabel>with quotes</guilabel> options if your file contains fields enclosed in double quotes.
+							These options also match fields not enclosed in quotes; 
+							except for the fields for description and notes, fields should not contain the quote character itself.
+							See <xref linkend="busnss-imp-inv-file-format-note" /> above.
+							Use one of the other options if your file does not have fields enclosed in quotes; any quote characters
+							in the file will be imported as is.
+						</para>
+					</listitem>
+					<listitem>
+						<para><guilabel>4. Preview</guilabel> -
+							Once you have selected your import file and csv format,
+							<application>&app;</application> shows you a preview of the data.
+							You can verify if your data is listed in the correct columns. If you do not see any rows in the preview,
+							then <application>&app;</application> was not able to match your import data rows to the selected csv format.
+							See <xref linkend="busnss-imp-inv-errors" /> below.
+						</para>
+					</listitem>
+					<listitem>
+						<para><guilabel>5. Afterwards</guilabel> -
+							You can choose if <application>&app;</application> should open tabs for the invoices after the import.
+							Either for all invoices, or for the invoices that are saved but not posted, or for none of the invoices.
+							Opening tabs slows down the import process considerably.
+						</para>
+					</listitem>
+					<listitem>
+						<para><emphasis>Start the import</emphasis> -
+							If you are satisfied with your selections, hit the <guibutton>OK</guibutton> button to start the import.
+						</para>
+					</listitem>
+				</itemizedlist>
+			
+				<para>
+					If your data file contains invoice IDs that already exist, then <application>&app;</application> will ask you
+					(once per import session) to confirm that you want to update existing invoices.
+					If not confirmed, all rows for existing invoices will be ignored.
+				</para>
+	
+				<note>
+					<para>
+						Internally, <application>&app;</application> uses so called regular expressions to match the import rows
+						to the data fields. The import option <guilabel>Custom regular expression</guilabel> offers the option to use your own
+						regular expression for this matching process. Obviously, this option requires that you are well versed in regular expressions.
+						When you choose the option <guilabel>Custom regular expression</guilabel>, <application>&app;</application> opens a window
+						in which you can edit the <application>&app;</application> regular expression, or replace it with your own. 
+						Your regular expression should contain a named subpattern for each of the fields of the csv file
+						(using the technical names). A custom regular expression could be useful if the rows of your source data file contain 
+						all required fields, but in a different order or format. E.g. if the format of your source data file
+						starts with customer number, followed by invoice ID, followed by the due date, and uses | as separator,
+						your regular expression would start with something like this:
+					</para>
+				
+					<para>
+						<programlisting>
+	^(?<owner_id>[^|]*)\|(?<id>[^|]*)\|(?<due_date>[^|]*)
+						</programlisting>
+					</para>
+
+					<para>
+						With a custom regular expression, <application>&app;</application> could import your source data files,
+						without the need to convert them to the <application>&app;</application> import format.
+					</para>		
+				</note>
+
+			</sect2>
+
+		<sect2 id="busnss-imp-inv-feedback">
+			<title>Feedback and statistics</title>
+		
+			<para>
+				<application>&app;</application> executes the import process in three steps:
+			</para>
+			
+			<itemizedlist>
+				<listitem>
+					<para><emphasis><prompt>Import</prompt></emphasis> -
+						Imports the data file and attempts to match each row to the data fields.
+					</para>
+				</listitem>
+				<listitem>				
+					<para><emphasis><prompt>Validation and adjustment</prompt></emphasis> -
+						Validates the data fields and replaces data with defaults if applicable.
+					</para>
+				</listitem>
+				<listitem>				
+					<para><emphasis><prompt>Processing</prompt></emphasis> -
+						Handles the currency related validations, and creates, updates and posts the invoices.
+					</para>
+				</listitem>
+			</itemizedlist>
+
+			<para>
+				After all steps have finished,  <application>&app;</application> issues information about the result of the process.
+				The initial dialog shows the informational or error messages from the validation and processing steps.
+				The second dialog shows the statistics of the process:
+			</para>
+		
+			<itemizedlist>
+			<listitem>
+				<para>
+					Import - rows ignored: the number of rows that could not be matched to the data fields.
+				</para>
+			</listitem>
+			<listitem>
+				<para>
+					Import - rows imported: the number of rows that were successfully matched to the data fields.
+				</para>
+			</listitem>
+			<listitem>
+				<para>
+					Processing and validation - rows fixed: the number of rows for which a default value was used for a field.
+				</para>
+			</listitem>
+			<listitem>
+				<para>
+					Processing and validation - rows ignored: the number of rows for that were not processed because of a validation error.
+				</para>
+			</listitem>
+			<listitem>
+				<para>
+					Processing and validation - invoices created: the number of invoices created.
+				</para>
+			</listitem>
+			<listitem>
+				<para>
+					Processing and validation - invoices updated: the number of invoices that were updated.
+				</para>
+			</listitem>
+			</itemizedlist>
+		
+			<para>
+				If there were unmatched rows in the import step, a final dialog shows the actual rows that could not be matched.
+			</para>
+		
+		</sect2>
+
+		<sect2 id="busnss-imp-inv-errors">
+			<title>What could go wrong?</title>
+			
+			<sect3 id ="busnss-imp-inv-err-import">
+				<title>Errors in the import step</title>
+				
+				<para>
+					If the statistics show unmatched rows under <quote>Import - rows ignored</quote>, then there is some issue
+					with the format of your import file. Verify that you use and select the correct separator.
+					Verify that your data rows have exactly 21 separator characters (1 for each field, except for the last).
+					Verify whether you use the separator character within a data field; if so, enclose the field in double quotes.
+				</para>
+				<para>
+					If you use one of the <guilabel>with quotes</guilabel> import options, verify if you use the double quote character
+					in any of the data field values; if within the description or notes fields, 
+					make sure that the field value is quoted, and precede each double quote within the field with an extra
+					double quote; if within any other field, remove the double quote character.
+				</para>
+			</sect3>
+			
+			<sect3 id ="busnss-imp-inv-err-validation">
+				<title>Errors in the validation step</title>
+				
+				<para>
+					The following errors can occur in the validation step. Any error in a data row will cause all rows of the same
+					invoice to be ignored.
+				</para>
+				
+				<note>
+					<para>
+						In versions 3.4 and earlier, an error in a data row would cause just that row to be ignored,
+						as opposed all rows of the same invoice.
+					</para>
+				</note>
+				
+				<itemizedlist>
+					<listitem>
+						<para>
+							The field <prompt>ID</prompt> is blank. Every row should have an invoice ID.
+						</para>
+					</listitem>
+					<listitem>
+						<para>
+							The field <prompt>owner_id</prompt> is blank. Every first row of an invoice should have an owner_id.
+						</para>
+					</listitem>
+					<listitem>
+						<para>
+							The customer or vendor number in field <prompt>owner_id</prompt> does not exist.
+							The owner_id in the first row of an invoice should be an existing customer (for invoices) or vendor (for bills).
+						</para>
+					</listitem>
+					<listitem>
+						<para>
+							The date in field <prompt>date_posted</prompt> is not a valid date. If you provide a value for date_posted in the first
+							row of an invoice, it should be a valid date. Did you use the date format as set in Preferences?
+						</para>
+					</listitem>
+					<listitem>
+						<para>
+							The account in the field <prompt>account_posted</prompt> does not exist. If you provide a value for the field <prompt>date_posted</prompt>
+							in the first row of an invoice, the field <prompt>account_posted</prompt> should be an existing account.
+						</para>
+					</listitem>
+					<listitem>
+						<para>
+							The account in the field <prompt>account_posted</prompt> is not of type Accounts Receivable (for invoices)
+							or Accounts Payable (for bills). If you provide a value for the field <prompt>date_posted</prompt>
+							in the first row of an invoice, the field <prompt>account_posted</prompt> should be an account of the correct type.
+						</para>
+					</listitem>
+					<listitem>
+						<para>
+							The field <prompt>price</prompt> is blank. Every row should have a value for the field <prompt>price</prompt>.
+						</para>
+					</listitem>
+					<listitem>
+						<para>
+							The account in the field <prompt>account</prompt> does not exist. Every row should have an existing account in the field <prompt>account</prompt>.
+						</para>
+					</listitem>
+				</itemizedlist>
+				
+				<para>
+					Any error in the validation step is listed after the overall import process completes. Correct your data file accordingly.
+				</para>
+				
+			</sect3>
+			
+			<sect3 id ="busnss-imp-inv-err-processing">
+				<title>Errors in the processing step</title>
+				
+				<para>
+					The following errors can occur in the processing step.
+				</para>
+
+				<itemizedlist>
+					<listitem>
+						<para>
+							The invoice cannot be updated because it is already posted.	All rows of the same invoice will be ignored.
+							If you want to update the existing invoice, unpost it first in <application>&app;</application>.
+						</para>
+					</listitem>
+					<listitem>
+						<para>
+							The currency of the invoice differs from the currency of the account posted
+							(<quote>Invoice x NOT posted because currencies don't match</quote>).
+							<application>&app;</application>
+							determines the currency of the invoice either from the customer or vendor master data (for a new invoice)
+							or from the invoice itself (for an existing invoice). The currency of the invoice must agree with
+							the currency of the post to account in the field <prompt>account_posted</prompt>. <application>&app;</application> creates the
+							invoice but cannot post it. Manually correct the invoice in <application>&app;</application>.
+						</para>
+					</listitem>
+					<listitem>
+						<para>
+							The invoice requires currency conversion.
+							(<quote>Invoice x NOT posted because it requires currency conversion</quote>).
+							The invoice contains entries on accounts with different currencies,
+							or the currency of the entries differs from the currency of the post to account. For such an invoice,
+							<application>&app;</application> needs exchange rates to translate the currency amounts. 
+							<application>&app;</application> creates the invoice but cannot post it. Post the invoice manually
+							in <application>&app;</application>, and provide the requested exchange rates.
+						</para>
+					</listitem>
+				</itemizedlist>
+
+			</sect3>
+			
+		</sect2>
+
+		<sect2 id="busnss-imp-inv-not-supported">
+			<title>Not supported invoice functionality</title>
+			
+			<para>
+				Currently the invoice import function does not support (at least) the following:
+			</para>
+			
+		 <itemizedlist>
+			<listitem>
+				<para>
+					Import of billing terms and job.
+				</para>
+			</listitem>
+			<listitem>
+				<para>
+					Import of customer and job in default chargeback project for bills.
+				</para>
+			</listitem>
+
+			<listitem>
+				<para>
+					Application of billing terms from customer or vendor master data.
+				</para>
+			</listitem>
+			<listitem>
+				<para>
+					Automatic numbering of invoices.
+				</para>
+			</listitem>
+			<listitem>
+				<para>
+					Credit notes.
+				</para>
+			</listitem>
+		 </itemizedlist>	
+			
+		</sect2>
+		
   </sect1>
   
-<sect1 id="import-customers-vendors">
-  <title>Importing Customers and Vendors</title>
-  <para>This functionality is only available in the 2.6 versions of GnuCash and is only loaded by default for versions greater than 2.6.</para>
-   <para>For versions lower than 2.6 the Customers and Vendors importer is an optional module and needs to 
-    enabled by editing the file <filename>$HOME/.gnucash/config.user</filename>,
-    adding the line:</para>
-    <para><code>(gnc:module-load "gnucash/plugins/customer_import" 0)
-    </code></para>
-    <para>On Linux systems this file is found at <filename>$HOME/.gnucash/config.user</filename>
-      and on Mac OSX it is <filename>~/Library/Application Support/Gnucash/config.user</filename>.
-      If the file doesn’t already exist you will have to create it.
-      After restarting <application>&app;</application> the item will appear at the bottom 
-    of the business menu.</para>
-    <para>In order for the importer to work each line in the input file must have the following structure.
-    </para>
-    <para><code>
-    id,  company,  name,  addr1,  addr2,  addr3,  addr4,  phone,  fax,  email,  notes,  shipname,  shipaddr1,  shipaddr2,  shipaddr3, shipaddr4, shiphone, shipfax, shipmail
-    </code> </para>
-    
-    <para>
-    Fields can be separated with commas or semicolons and each field can be in quotes.  These options are selectable in the import dialog. Vendors don’t have shipping information so even though the fields have to exist, leave them empty.
-    The id field is optional and if it is empty a new id will be chosen. If the id field has a value this will UPDATE any vendor/customer with the same id.  This may not be what you want.  Note that in your input file the data must be a single line for each customer/vendor. 
-    </para>
-    <para>
-      The importer does not currently import billing information for customers or vendors, these will have to be edited individually after importing.
-  </para>
-  </sect1>
--->
+  <sect1 id="busnss-imp-customer-vendor">
+  	<title>Importing Customers and Vendors</title>
+
+		<sect2 id="busnss-imp-cv-general">
+			<title>General</title>
+	
+			<para>
+				This functionality creates and updates customers and vendors from a csv import file containing
+				rows of vendor/customer master data.
+				The import file may contain rows for new and/or existing customers/vendors. If a customer/vendor already exists,
+				<application>&app;</application> updates the existing customer/vendor.
+			</para>
+			
+		</sect2>
+			
+		<sect2 id="busnss-imp-cv-file-format">
+			<title>The format of the import file</title>
+
+			<para>
+				The import file should contain rows of customer/vendor data, one row for each customer/vendor.
+				The customer/vendor is identified by the customer/vendor number in the field <prompt>id</prompt> of the data rows.
+				If the field is blank, <application>&app;</application> will use the next number from the relevant counter 
+				(set in the <guilabel>Counters</guilabel> tab under
+				<menuchoice><guimenu>File</guimenu><guimenuitem>Properties</guimenuitem></menuchoice>).
+			</para>
+			
+			<para>
+				There is no data in the file to indicate whether it concerns customer or vendor master data.
+				Instead, a user option in the import dialog makes that distinction.
+			</para>
+			
+			<para>
+				Each row should contain the fields listed below, in the same sequence, separated by a comma or a semicolon.
+				The fields are listed here by their technical name, which <application>&app;</application>
+				uses in the preview of the import data.
+			</para>
+
+			<itemizedlist>
+				<listitem>
+					<para><emphasis><prompt>id</prompt></emphasis> -
+						The customer/vendor number. If it is for an existing customer/vendor, <application>&app;</application> will
+						update the customer/vendor. 
+						Note that in <application>&app;</application> e.g. '000010' is a different customer number than '10'.
+						If the id field is empty,
+						<application>&app;</application> will use the next number from the relevant counter.
+					</para>
+				</listitem>
+				<listitem>
+					<para><emphasis><prompt>company</prompt></emphasis> -
+						 The company name. If it is left blank, it is defaulted to the value of field <prompt>name</prompt>.
+						 If that is also blank, then the row is ignored.
+					</para>
+				</listitem>
+				<listitem>
+					<para><emphasis><prompt>name</prompt></emphasis> -
+						Billing address - Name. Optional.
+					</para>
+				</listitem>
+				<listitem>
+					<para><emphasis><prompt>addr1</prompt></emphasis> -
+						Billing address - Address line 1. At least one of the four address lines of the billing address
+						must be filled. If not, then the row is ignored.
+					</para>
+				</listitem>
+				<listitem>
+					<para><emphasis><prompt>addr2</prompt></emphasis> -
+						Billing address - Address line 2.
+					</para>
+				</listitem>
+				<listitem>
+					<para><emphasis><prompt>addr3</prompt></emphasis> -
+						Billing address - Address line 3.
+					</para>
+				</listitem>
+				<listitem>
+					<para><emphasis><prompt>addr4</prompt></emphasis> -
+						Billing address - Address line 4.
+					</para>
+				</listitem>
+				<listitem>
+					<para><emphasis><prompt>phone</prompt></emphasis> -
+						Billing address - Phone. Optional
+					</para>
+				</listitem>
+				<listitem>
+					<para><emphasis><prompt>fax</prompt></emphasis> -
+						Billing address - Fax. Optional
+					</para>
+				</listitem>
+				<listitem>
+					<para><emphasis><prompt>email</prompt></emphasis> -
+						Billing address - Email. Optional
+					</para>
+				</listitem>
+				<listitem>
+					<para><emphasis><prompt>notes</prompt></emphasis> -
+						Notes. Optional
+					</para>
+				</listitem>
+				<listitem>
+					<para><emphasis><prompt>shipname</prompt></emphasis> -
+						Shipping information - Name. Optional. Not relevant for vendors.
+					</para>
+				</listitem>
+				<listitem>
+					<para><emphasis><prompt>shipaddr1</prompt></emphasis> -
+						Shipping information - Address line 1. Optional. Not relevant for vendors.
+					</para>
+				</listitem>
+				<listitem>
+					<para><emphasis><prompt>shipaddr2</prompt></emphasis> -
+						Shipping information - Address line 2. Optional. Not relevant for vendors.
+					</para>
+				</listitem>
+				<listitem>
+					<para><emphasis><prompt>shipaddr3</prompt></emphasis> -
+						Shipping information - Address line 3. Optional. Not relevant for vendors.
+					</para>
+				</listitem>
+				<listitem>
+					<para><emphasis><prompt>shipaddr4</prompt></emphasis> -
+						Shipping information - Address line 4. Optional. Not relevant for vendors.
+					</para>
+				</listitem>
+				<listitem>
+					<para><emphasis><prompt>shipphone</prompt></emphasis> -
+						Shipping information - Phone. Optional. Not relevant for vendors.
+					</para>
+				</listitem>
+				<listitem>
+					<para><emphasis><prompt>shipfax</prompt></emphasis> -
+						Shipping information - Fax. Optional. Not relevant for vendors.
+					</para>
+				</listitem>
+				<listitem>
+					<para><emphasis><prompt>shipmail</prompt></emphasis> -
+						Shipping information - Email. Optional. Not relevant for vendors.
+					</para>
+				</listitem>
+			</itemizedlist>
+
+			<para>
+				Example content for a customer with a separate shipping address. Using a semicolon for separator.
+			</para>
+		
+			<para>
+				<code>2201;All Star Company;All Star Company;Union Avenue 776;San Juan;CA;;0482938838;;contact at allstar.com;Last contacted on 4/4/2018.;All Star Company; John Alderman, Office 456;Union Avenue 777;San Juan;CA;78998766;;alderman at allstar.com</code>
+			</para>
+		
+			<para>
+				Example content for a vendor; no ID given, so <application>&app;</application> will take the next number from the counter.
+				Using a comma for separator.
+			</para>
+		
+			<para>
+				<code>,Johnson Supplies,Johnson Supplies,Electric Park 56,Plains,VA,,0482986538,,jack at johnson.com,Discount negotiated,,,,,,,,</code>
+			</para>
+
+			<para>
+				All fields by technical name in the required sequence.
+			</para>
+			
+			<para>
+				<code>id,  company,  name,  addr1,  addr2,  addr3,  addr4,  phone,  fax,  email,  notes,  shipname,  shipaddr1,  shipaddr2,  shipaddr3, shipaddr4, shiphone, shipfax, shipmail</code>
+			</para>
+		
+		</sect2>
 
+		<sect2 id="busnss-imp-cv-import-data">
+			<title>Import your data</title>
+
+			<para>
+				To import your customer or vendor data, navigate to
+				<menuchoice><guimenu>File</guimenu>
+				<guimenuitem>Import</guimenuitem>
+				<guimenuitem>Import Customes  & Vendors…</guimenuitem></menuchoice> to open a new import dialog,
+				and provide the necessary information.
+			</para>
+			<itemizedlist>
+				<listitem>
+					<para><guilabel>1. Choose the file to import</guilabel> -
+						Select your import file, or manually type the path and file name.
+					</para>
+				</listitem>
+				<listitem>
+					<para><guilabel>2. Select import type</guilabel> -
+						Select the import type, either <guilabel>Customer</guilabel> or <guilabel>Vendor</guilabel>.
+					</para>
+				</listitem>
+				<listitem>
+					<para><guilabel>3. Select import options</guilabel> -
+						Select your csv format. 
+						Use the <guilabel>with quotes</guilabel> options if your file contains fields enclosed in double quotes.
+						These options also match fields not enclosed in double quotes,
+						but fields should not contain the double quote character itself.
+						Use one of the other options if your file does not have fields enclosed in quotes; any double quote characters
+						in the file will then be imported as is.
+					</para>
+				</listitem>
+				<listitem>
+					<para><guilabel>4. Preview</guilabel> -
+						Once you have selected your import file and csv format,
+						<application>&app;</application> shows you a preview of the data.
+						You can verify if your data is listed in the correct columns. If you do not see any rows in the preview,
+						then <application>&app;</application> was not able to match your import data rows to the selected csv format.
+						See <xref linkend="busnss-imp-cv-errors" /> below.
+					</para>
+				</listitem>
+				<listitem>
+					<para><emphasis>Start the import</emphasis> -
+						If you are satisfied with your selections, hit the <guibutton>OK</guibutton> button to start the import.
+					</para>
+				</listitem>
+			</itemizedlist>
+			
+			<note>
+				<para>
+					Internally, <application>&app;</application> uses so called regular expressions to match the import rows
+					to the data fields. The import option <guilabel>Custom regular expression</guilabel> offers the option to use your own
+					regular expression for this matching process. Obviously, this option requires that you are well versed in regular expressions.
+					When you choose the option <guilabel>Custom regular expression</guilabel>, <application>&app;</application> opens a window
+					in which you can edit the <application>&app;</application> regular expression, or replace it with your own. 
+					Your regular expression should contain a named subpattern for each of the fields of the csv file
+					(using the technical names). A custom regular expression could be useful if the rows of your source data file contain 
+					all necessary fields, but in a different order or format. E.g. if the format of your source data file
+					starts with customer number, followed by company name, name, and one address field, and that is all you want to import,
+					then your custom regular expression would be something like this (using comma as a separator):
+				</para>
+			
+				<para>
+					<programlisting>
+^(?<company>[^,]*),(?<id>[^,]*),(?<name>[^,]*),(?<addr1>[^,]*),(?<addr2>[^,]*),(?<addr3>[^,]*)$
+					</programlisting>
+				</para>
+
+				<para>
+					With a custom regular expression, <application>&app;</application> could import your source data files,
+					without the need to convert them to the <application>&app;</application> import format.
+				</para>		
+			</note>
+			
+		</sect2>
+
+		<sect2 id="busnss-imp-cv-feedback">
+			<title>Feedback and statistics</title>
+		
+			<para>
+				<application>&app;</application> executes the import process in three steps:
+			</para>
+			
+			<itemizedlist>
+				<listitem>
+					<para><emphasis><prompt>Import</prompt></emphasis> -
+						Imports the data file and attempts to match each row to the data fields.
+					</para>
+				</listitem>
+				<listitem>				
+					<para><emphasis><prompt>Validation and adjustment</prompt></emphasis> -
+						Validates the data fields and replaces data with defaults if applicable.
+					</para>
+				</listitem>
+				<listitem>				
+					<para><emphasis><prompt>Processing</prompt></emphasis> -
+						Creates or updates the vendor or customer master data.
+					</para>
+				</listitem>
+			</itemizedlist>
+
+			<para>
+				After all steps have finished,  <application>&app;</application> issues information about the result of the process.
+				The initial dialog shows the statistics of the process:
+			</para>
+		
+			<itemizedlist>
+			<listitem>
+				<para>
+					Import results - lines ignored: the number of rows that could not be matched to the data fields.
+				</para>
+			</listitem>
+			<listitem>
+				<para>
+					Import results - lines imported: the number of rows that were successfully matched to the data fields.
+				</para>
+			</listitem>
+			<listitem>
+				<para>
+					Import results - customers/vendors fixed: the number of rows for which a default value was used for a field.
+				</para>
+			</listitem>
+			<listitem>
+				<para>
+					Import results - customers/vendors ignored: the number of rows for that were not processed because of a validation error.
+				</para>
+			</listitem>
+			<listitem>
+				<para>
+					Import results - customers/vendors created: the number of customers/vendors created.
+				</para>
+			</listitem>
+			<listitem>
+				<para>
+					Import results - customers/vendors updated: the number of customers/vendors that were updated.
+				</para>
+			</listitem>
+			</itemizedlist>
+		
+			<para>
+				If there were unmatched rows in the import step, a final dialog shows the actual rows that could not be matched.
+			</para>
+		
+		</sect2>
+
+		<sect2 id="busnss-imp-cv-errors">
+			<title>What could go wrong?</title>
+			
+			<sect3 id ="busnss-imp-cv-err-import">
+				<title>Errors in the import step</title>
+				
+				<para>
+					If the statistics show unmatched rows under <quote>Import results - lines ignored</quote>, then there is some issue
+					with the format of your import file. Verify that you use and select the correct separator.
+					Verify that your data rows have exactly 18 separator characters (1 for each field, except for the last).
+					Verify whether you use the separator character within a data field; if so, enclose the field in double quotes.
+				</para>
+				<para>
+					If you use one of the <guilabel>with quotes</guilabel> import options, verify if you use the double quote character
+					in any of the data field values. If so, remove them; importing double quotes as is, is not supported when using the
+					<guilabel>with quotes</guilabel> import options.
+				</para>
+			</sect3>
+			
+			<sect3 id ="busnss-imp-cv-err-validation">
+				<title>Errors in the validation step</title>
+				
+				<para>
+					If the statistics show rows under <quote>Import results - customers/vendors ignored</quote>, then data rows were 
+					ignored because of one of the errors below:
+				</para>
+								
+				<itemizedlist>
+					<listitem>
+						<para>
+							The field <prompt>company</prompt> and the field <prompt>name</prompt> are both blank.
+							The field <prompt>company</prompt> is mandatory; if it is blank, then it is defaulted to the value of the 
+							field <prompt>name</prompt>, but if both are blank, then the data row cannot be processed.
+						</para>
+					</listitem>
+					<listitem>
+						<para>
+							The fields <prompt>addr1</prompt>, <prompt>addr2</prompt>, <prompt>addr3</prompt> and <prompt>addr4</prompt>
+							are all blank. At least one of these fields must have a value, otherwise the data row cannot be processed.
+						</para>
+					</listitem>
+				</itemizedlist>
+				
+			</sect3>
+						
+		</sect2>
+		
+		<sect2 id="busnss-imp-cv-not-supported">
+			<title>Not supported customer/vendor functionality</title>
+			
+			<para>
+				Currently the customer/vendor import function does not support (at least) the following:
+			</para>
+			
+		 <itemizedlist>
+			<listitem>
+				<para>
+					Import of any of the fields in the customer tab for billing information:
+					currency, terms, discount, credit limit, tax included and tax table.
+				</para>
+			</listitem>
+			<listitem>
+				<para>
+					Import of any of the fields in the vendor tab for payment information:
+					currency, terms, tax included and tax table.
+				</para>
+			</listitem>
+		 </itemizedlist>	
+			
+		</sect2>
+
+  </sect1>
+  -->
 </chapter>

commit 59a90b059017be6af4bdb413e56662f280186f53
Author: Frank H. Ellenberger <frank.h.ellenberger at gmail.com>
Date:   Sat Sep 14 02:13:24 2019 +0200

    Merge recent changes of the english FAQ in the german version.

diff --git a/docbook/gnc-docbookx.dtd b/docbook/gnc-docbookx.dtd
index 18cb736..d0c903f 100644
--- a/docbook/gnc-docbookx.dtd
+++ b/docbook/gnc-docbookx.dtd
@@ -78,6 +78,7 @@ own entity definitions to use across all of our DocBook pages. -->
 <!ENTITY url-src "https://github.com/Gnucash/gnucash/">
 <!ENTITY url-src-maint "https://github.com/Gnucash/gnucash/tree/maint/"> <!-- Append the desired topic -->
 <!ENTITY url-wiki-faq "https://wiki.gnucash.org/wiki/FAQ">
+<!ENTITY url-wiki-faq-de "https://wiki.gnucash.org/wiki/De/FAQ">
 <!ENTITY url-mail-li "https://lists.gnucash.org/mailman/listinfo/">  <!-- Append the desired list -->
 <!ENTITY url-wiki-ml "https://wiki.gnucash.org/wiki/Mailiing_Lists">
 <!ENTITY url-wiki-ml-de "https://wiki.gnucash.org/wiki/De/Feedback#Auf_der_Mailingliste">
diff --git a/guide/de/appendixb.xml b/guide/de/appendixb.xml
index 5b2bd1b..970bc13 100644
--- a/guide/de/appendixb.xml
+++ b/guide/de/appendixb.xml
@@ -5,7 +5,9 @@
       (Do not remove this comment block.)
   Version: 2.0.0
   Last modified: July 9th 2006
-  Maintainers: 
+  Converted to qandaset 2019-09-09 by Frank H. Ellenberger
+  
+  Maintainers:
                Chris Lyttle <chris at wilddev.net>
   Author:
   		Jon Lapham <lapham at extracta.com.br>
@@ -13,131 +15,137 @@
   Translators:
                (translators put your name and email here)
 -->
-  <appendix id="appendixb">
-    <title>Frequently Asked Questions</title>
+<appendix id="appendixb">
+  <title>Häufig gestellte Fragen</title>
+    <abstract><para>Dies ist eine [sehr alte] Liste von auf den Mailing-Listen gestellten Fragen, welche noch nicht in die Dokumentation eingearbeitet wurden. Aktueller sind die Online-Versionen:
+      <simplelist><member><ulink url="&url-wiki-faq-de;">deutsch</ulink>  (nicht unbedingt aktuell oder vollständig)</member>
+        <member><ulink url="&url-wiki-faq;">englisch</ulink></member>
+      </simplelist></para></abstract>
     <para>&untranslated-de;</para>
   <!--
-    <para>This is a list of questions asked on the mailing lists for which there really is no section in the documentation covering the subject.</para>
-    <sect1 id="appendixb_info">
+  <qandaset defaultlabel='qanda'>
+    <qandadiv id="appendixb_info">
       <title>Sources of Information</title>
 
-      <sect2 id="appendixb_info_where">
-        <title>Q: Where’s the FAQ?</title>
-        <para>A: You’re looking at it. The most up-to-date copy can be found <ulink url="http://wiki.gnucash.org/wiki/FAQ">within the <application>&app;</application> Wiki</ulink>.</para>
-      </sect2>
+      <qandaentry id="appendixb_info_where">
+        <question><para>Where is the FAQ?</para></question>
+        <answer><para>You’re looking at an very old copy of it. The most up-to-date copy can be found within the <ulink url="&url-wiki-faq;"><application>&app;</application> Wiki</ulink>.</para></answer>
+      </qandaentry>
 
-      <sect2 id="appendixb_info_mail">
-        <title>Q: Are there mailing lists for <application>&app;</application>?</title>
-        <para>A: Yes. Go to <ulink url="http://lists.gnucash.org/mailman/listinfo/gnucash-user">http://lists.gnucash.org/mailman/listinfo/gnucash-user</ulink> and <ulink url="http://lists.gnucash.org/mailman/listinfo/gnucash-devel">http://lists.gnucash.org/mailman/listinfo/gnucash-devel</ulink> to subscibe.</para>
-      </sect2>
+      <qandaentry id="appendixb_info_mail">
+        <question><para>Are there mailing lists for <application>&app;</application>?</para></question>
+        <answer><para>Yes. Go to <ulink url="&url-mail-li;gnucash-user" /> and <ulink url="&url-mail-li;gnucash-devel" /> to subscibe.</para></answer>
+      </qandaentry>
 
-      <sect2 id="appendixb_info_mailarchive">
-        <title>Q: Is there a searchable archive for the mailing lists?</title>
-        <para>A: Yes, you can search the mail list archives at <ulink url="http://news.gmane.org/gmane.comp.gnome.apps.gnucash.devel"></ulink> and <ulink url="http://news.gmane.org/gmane.comp.gnome.apps.gnucash.user"></ulink> (and <ulink url="http://news.gmane.org/gmane.comp.gnome.apps.gnucash.german"></ulink> if you speak German).</para>
-      </sect2>
+      <qandaentry id="appendixb_info_mailarchive">
+        <question><para>Is there a searchable archive for the mailing lists?</para></question>
+        <answer><para>Yes, you can search the mail list archives at <ulink url="http://news.gmane.org/gmane.comp.gnome.apps.gnucash.devel" /> and <ulink url="http://news.gmane.org/gmane.comp.gnome.apps.gnucash.user" /> (and <ulink url="http://news.gmane.org/gmane.comp.gnome.apps.gnucash.german" /> if you speak German).</para></answer>
+      </qandaentry>
 
-      <sect2 id="appendixb_info_other">
-        <title>Q: Are there other means of obtaining support for <application>&app;</application>?</title>
-        <para>A: Yes. Many of the developers hang out on icq in the #gnucash discussion on irc.gnome.org. Also, there is a wiki online at <ulink url="http://wiki.gnucash.org/wiki/&app;">http://wiki.gnucash.org/wiki/&app;</ulink>.</para>
-      </sect2>
-    </sect1>
+      <qandaentry id="appendixb_info_other">
+        <question><para>Are there other means of obtaining support for <application>&app;</application>?</para></question>
+        <answer><para>Yes. Many of the developers hang out on icq in the #gnucash discussion on <ulink url="&url-irc;" />. Also, there is a <ulink url="&url-wiki;">wiki</ulink> online.</para></answer>
+      </qandaentry>
+    </qandadiv>
 
-    <sect1 id="appendixb_general">
+    <qandadiv id="appendixb_general">
       <title>General Information</title>
 
-      <sect2 id="appendixb_software_windows">
-        <title>Q: Can I run <application>&app;</application> on Windows?</title>
-        <para>A: Yes. Starting with release 2.2.0, <application>&app;</application> is also available on Windows.</para>
-        <para>Other related options would be colinux, VMWare and a windows-based X-server hosting a remote <application>&app;</application> session.</para>
-      </sect2>
-
-      <sect2 id="appendixb_general_hard2compile">
-        <title>Q: I heard it is too hard to compile <application>&app;</application>!</title>
-        <para>A: This was probably true at the time when 1.6.0 was released. It is no longer true today, as almost every distribution ships with all the necessary libraries (except g-wrap, which means there is in fact <quote>one</quote> extra library to be installed before compiling <application>&app;</application>). However, by default, distributions won’t install the development packages of the required libraries, so you might need to start your distribution’s installer program and tell it to install not only the library packages but also the -devel packages. In general, it was noted that this problem concerns many applications in the gnome domain, and this also boils down to the fact that there is no such thing as <quote>one monolithic gnome package</quote>.</para>
-      </sect2>
-
-      <sect2 id="appendixb_general_batchmode">
-        <title>Q: Is there a batch mode (non-interactive) available for <application>&app;</application>, for building reports, etc?</title>
-        <para>A: No, for now <application>&app;</application> must be run interactively.</para>
-      </sect2>
-
-      <sect2 id="appendixb_general_multuser">
-        <title>Q: Can multiple people access the same datafile in <application>&app;</application>?</title>
-        <para>A: You can have multiple people with access to the same datafile, but they cannot use the data file simultaneously.</para>
-        <para>To setup multi-person access, all the people must have read/write access to the directory containing the file (to read the other’s created files, and to create new files).  One way to do this is by creating a user group and setting the data directory to be owned by the shared group and set to mode 2775. The <quote>2</quote> makes the directory setgid which copies the permissions to all files.</para>
-      </sect2>
-
-      <sect2 id="appendixb_general_WhyC">
-        <title>Q: Why is <application>&app;</application> written in C?</title>
-        <para>A: The core functionality of <application>&app;</application> is written in C, but do not forget that much of this can be accessed through Guile (scheme).  There are a number of reasons for why <application>&app;</application> is written in C.  The first is historical, <application>&app;</application> was started in 1996 (or maybe even earlier!) and many of the OOP (C++, Java, Python) compilers were not yet mature and standarized enough on the variety of platforms considered at that time, so C was the only option at that time.  A second reason is because the standard GUI <application>&app;</application> uses is GTK, which is written in C.</para>
-      </sect2>
-
-      <sect2 id="appendixb_general_rewrite">
-        <title>Q: Why don’t you rewrite <application>&app;</application> in programming language xyz so that I can contribute easily?</title>
-        <para>A: The quick answer is <quote>We won’t</quote>. The longer answer is complex but still amounts to <quote>We won’t</quote>. <application>&app;</application> is a large body of code maintained by a small group of developers who are comfortable in C and Scheme (Guile). Actually, 80% of it is in C and approx. 13% is in Scheme/Lisp. There is no valid reason that would justify rewriting this amount of existing code in a newer language. Also, creating language bindings to recent languages such as Python or Ruby or (insert your favourite language here) is labor intensive, and we’re already stretched pretty thin maintaining and developing the existing code.</para>
-        <para>Having said that, this is an open source project and you’re free to do with it or contribute what you want. Just don’t expect much support if the reason for your changes is that you’re not willing to learn C or Scheme. Also, <application>&app;</application> used to have SWIG bindings (<ulink url="http://www.swig.org"></ulink>) which have been used for some perl programming code. According to a list discussion, these SWIG bindings might still be a way to include other languages into <application>&app;</application>, but currently they are unused and unmaintained.</para>
-      </sect2>
-
-      <sect2 id="appendixb_general_newFeatures">
-        <title>Q: I really want feature XYZ but <application>&app;</application> doesn’t have it. How do I get it added?</title>
-        <para>A: Ask nicely. :-) You can file an enhancement request at <ulink url="http://bugs.gnucash.org/enter_bug.cgi?product=&app;"></ulink>. Please bear in mind to describe your proposed enhancement as verbosely as possible. The trick here is to learn how to give the best information to the programmers about what your proposed new feature should do. If you want to speed up development significantly, consider donating some money as described on <application>&app;</application>Development.</para>
-      </sect2>
-
-      <sect2 id="appendixb_software_web">
-        <title>Q: Is there a web interface available for <application>&app;</application>?</title>
-        <para>A: No</para>
-      </sect2>
-
-      <sect2 id="appendixb_software_security">
-        <title>Q: How can I provide security for <application>&app;</application> data using CFS, etc.)</title>
-        <para>A: Unanswered</para>
-      </sect2>
-
-      <sect2 id="appendixb_software_contribute">
-        <title>Q: How can I contribute to the <application>&app;</application> project?</title>
-        <para>A: We’re working on a more formal process, but for now you should subscribe to the mailing list at <ulink url="http://lists.gnucash.org/mailman/listinfo/gnucash-user">http://lists.gnucash.org/mailman/listinfo/gnucash-user</ulink> and <ulink url="http://lists.gnucash.org/mailman/listinfo/gnucash-devel">http://lists.gnucash.org/mailman/listinfo/gnucash-devel</ulink> and discuss what you can contribute with the participants on the lists. Please be aware that <application>&app;</application> is a large body of code written in C and Scheme (see the FAQ above, <quote>Why is <application>&app;</application> written in C?</quote> if you want to know why). If these are languages that you are not willing to work with, consider contributing in other ways.</para>
-      </sect2>
-
-      <sect2 id="appendixb_software_bugs">
-        <title>Q: I think I found a bug. How do I report it?</title>
-        <para>A: First of all, try to verify that it is indeed a bug and that it has not been reported before. Search the mail list archives (see FAQ above). Then search the <ulink url="http://bugs.gnucash.org">&app; Bugzilla</ulink> database.</para>
-        <para>If you feel you have indeed found a bug, you can then report it at <ulink url="http://bugs.gnucash.org/enter_bug.cgi?product=&app;"></ulink>. Please bear in mind to report your bug as verbosely as possible. The trick here is to learn how to give the best information to the programmers about how to reproduce bugs. A Programmer will usually only be able to fix a bug they can see, if you can’t make the programmer see your bug, it won’t get fixed!</para>
-      </sect2>
-
-    </sect1>
-    <sect1 id="appendixb_using">
+      <qandaentry id="appendixb_software_windows">
+        <question><para>Can I run <application>&app;</application> on Windows?</para></question>
+        <answer><para>Yes. Starting with release 2.2.0, <application>&app;</application> is also available on Windows.</para></answer>
+        <answer><para>Other related options would be colinux, VMWare and a windows-based X-server hosting a remote <application>&app;</application> session.</para></answer>
+      </qandaentry>
+
+      <qandaentry id="appendixb_general_hard2compile">
+        <question><para>I heard it is too hard to compile <application>&app;</application>!</para></question>
+        <answer><para>This was probably true at the time when 1.6.0 was released. It is no longer true today, as almost every distribution ships with all the necessary libraries. However, by default, distributions won’t install the development packages of the required libraries, so you might need to start your distribution’s installer program and tell it to install not only the library packages but also the -devel packages. In general, it was noted that this problem concerns many applications in the gnome domain, and this also boils down to the fact that there is no such thing as <quote>one monolithic gnome package</quote>.</para></answer>
+      </qandaentry>
+
+      <qandaentry id="appendixb_general_batchmode">
+        <question><para>Is there a batch mode (non-interactive) available for <application>&app;</application>, for building reports, etc?</para></question>
+        <answer><para>No, for now <application>&app;</application> must be run interactively.</para></answer>
+      </qandaentry>
+
+      <qandaentry id="appendixb_general_multuser">
+        <question><para>Can multiple people access the same datafile in <application>&app;</application>?</para></question>
+        <answer><para>You can have multiple people with access to the same datafile, but they cannot use the data file simultaneously.</para>
+        <para>To setup multi-person access, all the people must have read/write access to the directory containing the file (to read the other’s created files, and to create new files).  One way to do this is by creating a user group and setting the data directory to be owned by the shared group and set to mode 2775. The <quote>2</quote> makes the directory setgid which copies the permissions to all files.</para></answer>
+      </qandaentry>
+
+      <qandaentry id="appendixb_general_WhyC">
+        <question><para id="appendixb_general_WhyC.q">Why is <application>&app;</application> written in C?</para></question>
+        <answer><para>The core functionality of <application>&app;</application> is written in C, but do not forget that much of this can be accessed through Guile (scheme).  There are a number of reasons for why <application>&app;</application> is written in C.  The first is historical, <application>&app;</application> was started in 1996 (or maybe even earlier!) and many of the OOP (C++, Java, Python) compilers were not yet mature and standarized enough on the variety of platforms considered at that time, so C was the only option at that time.  A second reason is because the standard GUI <application>&app;</application> uses is GTK, which is written in C.</para></answer>
+      </qandaentry>
+
+      <qandaentry id="appendixb_general_rewrite">
+        <question><para>Why don’t you rewrite <application>&app;</application> in programming language xyz so that I can contribute easily?</para></question>
+        <answer><para>The quick answer is <quote>We won’t</quote>.</para></answer>
+        <answer><para>The longer answer is complex but still amounts to <quote>We won’t</quote>. <application>&app;</application> is a large body of code maintained by a small group of developers who are comfortable in C and Scheme (Guile). Actually, 80% of it is in C and approx. 13% is in Scheme/Lisp. There is no valid reason that would justify rewriting this amount of existing code in a newer language. Also, creating language bindings to recent languages such as Python or Ruby or (insert your favourite language here) is labor intensive, and we’re already stretched pretty thin maintaining and developing the existing code.</para></answer>
+        <answer><para>Having said that, this is an open source project and you’re free to do with it or contribute what you want. Just don’t expect much support if the reason for your changes is that you’re not willing to learn C or Scheme. Also, <application>&app;</application> used to have SWIG bindings (<ulink url="http://www.swig.org" />) which have been used for some perl programming code. According to a list discussion, these SWIG bindings might still be a way to include other languages into <application>&app;</application>, but currently they are unused and unmaintained.</para></answer>
+      </qandaentry>
+
+      <qandaentry id="appendixb_general_newFeatures">
+        <question><para>I really want feature XYZ but <application>&app;</application> doesn’t have it. How do I get it added?</para></question>
+        <answer><para>Ask nicely. :-) You can file an enhancement request at <ulink url="&url-bug-start;" />. Please bear in mind to describe your proposed enhancement as verbosely as possible. The trick here is to learn how to give the best information to the programmers about what your proposed new feature should do. If you want to speed up development significantly, consider donating some money as described on <application>&app;</application>Development.</para></answer>
+      </qandaentry>
+
+      <qandaentry id="appendixb_software_web">
+        <question><para>Is there a web interface available for <application>&app;</application>?</para></question>
+        <answer><para>No</para></answer>
+      </qandaentry>
+
+      <qandaentry id="appendixb_software_security">
+        <question><para>How can I provide security for <application>&app;</application> data using CFS, etc.)</para></question>
+        <answer><para>Unanswered</para></answer>
+      </qandaentry>
+
+      <qandaentry id="appendixb_software_contribute">
+        <question><para>How can I contribute to the <application>&app;</application> project?</para></question>
+        <answer><para>We’re working on a more formal process, but for now you should subscribe to the mailing list at <ulink url="&url-mail-li;gnucash-user" /> and <ulink url="&url-mail-li;gnucash-devel" /> and discuss what you can contribute with the participants on the lists. Please be aware that <application>&app;</application> is a large body of code written in C and Scheme (see <quote><link linkend="appendixb_general_WhyC" endterm="appendixb_general_WhyC.q"></link></quote> above, if you want to know why). If these are languages that you are not willing to work with, consider contributing in other ways.</para></answer>
+      </qandaentry>
+
+      <qandaentry id="appendixb_software_bugs">
+        <question><para>I think I found a bug. How do I report it?</para></question>
+        <answer><para>First of all, try to verify that it is indeed a bug and that it has not been reported before. Search the mail list archives (see FAQ above). Then search the <ulink url="&url-bug-start;">&appname; Bugzilla</ulink> database.</para>
+        <para>If you feel you have indeed found a bug, you can then report it at <ulink url="&url-bug-start;" />. Please bear in mind to report your bug as verbosely as possible. The trick here is to learn how to give the best information to the programmers about how to reproduce bugs. A Programmer will usually only be able to fix a bug they can see, if you can’t make the programmer see your bug, it won’t get fixed!</para></answer>
+      </qandaentry>
+
+    </qandadiv>
+    <qandadiv id="appendixb_using">
       <title>Using <application>&app;</application></title>
 
-      <sect2 id="appendixb_using_moveAtoB">
-        <title>Q: How can I move the transactions from account <quote>A</quote> into account <quote>B</quote>, thus combining them?</title>
-        <para>A: At present, <application>&app;</application> does not offer a way to move groups of splits from one account to another. You will need to move them one at a time. Open the register for account <quote>A</quote> and select the pulldown menu item <menuchoice><guimenu>View</guimenu><guimenuitem>Transaction Journal</guimenuitem></menuchoice> to expose all the splits.  For every split where the <quote>Account</quote> field shows account <quote>A</quote> reset it to account <quote>B</quote>. To do this quickly and safely, first use <keycombo><keycap>Ctrl</keycap><keycap>C</keycap></keycombo> to copy the destination account name (<quote>account B</quote>) to the clipboard.  Then highlight each reference to account <quote>A</quote> by double clicking on it and use <keycombo><keycap>Ctrl</keycap><keycap>V</keycap></keycombo> to paste the destination account name.  Pressing <keycap function="enter">Enter</keycap> after each paste, silently moves the transaction out of the register.</para>
-        <para>Be careful!  If you inadvertently set the <quote>Account</quote> field to an unintended location, you will need to search through all your accounts to find the lost transaction to correct your mistake.</para>
-      </sect2>
-
-      <sect2 id="appendixb_using_merge2files">
-        <title>Q: Is it possible to merge two <application>&app;</application> files?</title>
-        <para>A: At present this is not possible.</para>
-      </sect2>
-
-      <sect2 id="appendixb_using_SaveAcctTemplate">
-        <title>Q: How can I save a template of my account structure?</title>
-        <para>A: This is available from the menu: <menuchoice><guimenu>File</guimenu><guisubmenu>Export</guisubmenu><guimenuitem>Export Accounts</guimenuitem></menuchoice></para>
-      </sect2>
-      <sect2 id="appendixb_using_ListAll">
-        <title>Q: When I search for customers (or anything else for that matter), how can I return a list of everything?</title>
-        <para>A: Enter a search criteria of <guilabel>matches regex</guilabel>, and place a single dot <quote>.</quote> in the text field area. Then, click <guibutton>Find</guibutton>. The regular expression <quote>.</quote> means to match anything.</para>
-      </sect2>
-      <sect2 id="appendixb_using_Dates">
-        <title>Q: How can I record a transaction on different dates (actual date and bank date)?</title>
-        <para>A: You record the transaction on the date you write the check or initiate the transaction.  When it <quote>clears</quote> the bank, you can click in the <quote>Reconciled</quote> field to <quote>clear</quote> the transaction (change the <quote>n</quote>on-reconciled to <quote>c</quote>leared).</para>
-      </sect2>
-    </sect1>
-    <sect1 id="appendixb_accounting">
+      <qandaentry id="appendixb_using_moveAtoB">
+        <question><para>How can I move the transactions from account <quote>A</quote> into account <quote>B</quote>, thus combining them?</para></question>
+        <answer><para>At present, <application>&app;</application> does not offer a way to move groups of splits from one account to another. You will need to move them one at a time. Open the register for account <quote>A</quote> and select the pulldown menu item <menuchoice><guimenu>View</guimenu><guimenuitem>Transaction Journal</guimenuitem></menuchoice> to expose all the splits.  For every split where the <quote>Account</quote> field shows account <quote>A</quote> reset it to account <quote>B</quote>. To do this quickly and safely, first use <keycombo><keycap>Ctrl</keycap><keycap>C</keycap></keycombo> to copy the destination account name (<quote>account B</quote>) to the clipboard.  Then highlight each reference to account <quote>A</quote> by double clicking on it and use <keycombo><keycap>Ctrl</keycap><keycap>V</keycap></keycombo> to paste the destination account name.  Pressing <keycap function="enter">Enter</keycap> after each paste, silently moves the transaction out of the register.</para>
+        <caution><para>If you inadvertently set the <quote>Account</quote> field to an unintended location, you will need to search through all your accounts to find the lost transaction to correct your mistake.</para></caution></answer>
+      </qandaentry>
+
+      <qandaentry id="appendixb_using_merge2files">
+        <question><para>Is it possible to merge two <application>&app;</application> files?</para></question>
+        <answer><para>At present this is not possible.</para></answer>
+      </qandaentry>
+
+      <qandaentry id="appendixb_using_SaveAcctTemplate">
+        <question><para>How can I save a template of my account structure?</para></question>
+        <answer><para>This is available from the menu: <menuchoice><guimenu>File</guimenu><guisubmenu>Export</guisubmenu><guimenuitem>Export Accounts</guimenuitem></menuchoice></para></answer>
+      </qandaentry>
+      <qandaentry id="appendixb_using_ListAll">
+        <question><para>When I search for customers (or anything else for that matter), how can I return a list of everything?</para></question>
+        <answer><para>Enter a search criteria of <guilabel>matches regex</guilabel>, and place a single dot <quote>.</quote> in the text field area. Then, click <guibutton>Find</guibutton>. The regular expression <quote>.</quote> means to match anything.</para></answer>
+      </qandaentry>
+      <qandaentry id="appendixb_using_Dates">
+        <question><para>How can I record a transaction on different dates (actual date and bank date)?</para></question>
+        <answer><para>You record the transaction on the date you write the check or initiate the transaction.  When it <quote>clears</quote> the bank, you can click in the <quote>Reconciled</quote> field to <quote>clear</quote> the transaction (change the <quote>n</quote>on-reconciled to <quote>c</quote>leared).</para></answer>
+      </qandaentry>
+    </qandadiv>
+    <qandadiv id="appendixb_accounting">
       <title>Accounting</title>
-      <sect2 id="appendixb_accounting_Taxes">
-        <title>Q: How do I treat taxes?  As an account payable or as an expense?</title>
-        <para>A: This is a loaded question, and you should really talk to your accountant.  How you treat taxes really depends on what kind of taxes they are, and how you WANT to treat them..  In some cases they are expenses, in some cases they are liabilities.</para>
-      </sect2>
-    </sect1>
-    -->
-  </appendix>
+      <qandaentry id="appendixb_accounting_Taxes">
+        <question><para>How do I treat taxes?  As an account payable or as an expense?</para></question>
+        <answer><para>This is a loaded question, and you should really talk to your accountant.  How you treat taxes really depends on what kind of taxes they are, and how you WANT to treat them..  In some cases they are expenses, in some cases they are liabilities.</para></answer>
+      </qandaentry>
+    </qandadiv>
+  </qandaset>
+  untranslated -->
+</appendix>

commit 030a7ec6d10c07a79c6b17f6b14a20db0ae4028b
Author: Frank H. Ellenberger <frank.h.ellenberger at gmail.com>
Date:   Thu Sep 12 22:24:52 2019 +0200

    Update the data directory for Linux to 3.x in Guide/C
    
    No occurrence seen in Help/C
    TBD: Macos & Windows
    
    Improve comments on app/appname

diff --git a/docbook/gnc-docbookx.dtd b/docbook/gnc-docbookx.dtd
index 9334449..18cb736 100644
--- a/docbook/gnc-docbookx.dtd
+++ b/docbook/gnc-docbookx.dtd
@@ -90,8 +90,8 @@ own entity definitions to use across all of our DocBook pages. -->
     "&appname;" replaces all occurences of "GnuCash" in the docs,
     so transliterate "GnuCash" here.
 -->
-<!ENTITY app "GnuCash"> <!-- This is deprecated and will later contain "<app>GnuCash</app>" -->
-<!ENTITY appname "GnuCash">
+<!ENTITY app "GnuCash">  <!-- This should be used in text and will later contain "<app>GnuCash</app>" -->
+<!ENTITY appname "GnuCash">  <!-- This should be used, where no further markup is desired, e.g. in GUI elements -->
 
 <!--
   Translators:
diff --git a/guide/C/appendixd.xml b/guide/C/appendixd.xml
index a2fe53c..b776eeb 100644
--- a/guide/C/appendixd.xml
+++ b/guide/C/appendixd.xml
@@ -20,15 +20,41 @@
 
       <sect2 id="check_format_overview">
         <title>Overview</title>
-        <para>The check format file is used to tell <application>&app;</application> how to print a check or checks onto a page of paper.  This file first describes the overall layout of a page (number of checks, orientation, etc) and then describes the layout of the specific items on a single check.  The file is organized as a typical Key/Value file used by many Linux applications.  Keys/values pairs are grouped into sections that begin with the group name enclosed in square brackets.</para>
-        <para><application>&app;</application> looks for check format files in two different locations when you bring up the check printing dialog.  The first location is typically <filename class="directory">/usr/share/gnucash/checks</filename>, where check files distributed with the application can be found.  The second location is the user private <filename class="directory">~/.gnucash/checks</filename> directory.  Users may add check formats at any time (even while <application>&app;</application> is running) simply by dropping a new <filename>*.chk</filename> file in this directory.  The next time the check printing dialog is opened the new check format will appear in the list of available check formats.</para>
+        <para> The check format file is used to tell <application>&app;</application> how to print a check or
+          checks onto a page of paper. This file first describes the overall layout of
+          a page (number of checks, orientation, etc) and then describes the layout of
+          the specific items on a single check. The file is organized as a typical
+          Key/Value file used by many Linux applications. Keys/values pairs are
+          grouped into sections that begin with the group name enclosed in square
+          brackets. 
+        </para>
+        <para><application>&app;</application> looks for check format files in two different locations when
+          you bring up the check printing dialog. The first location is typically
+          <filename class="directory">/usr/share/gnucash/checks</filename>, 
+          where check files distributed with the application can be found. The
+          second location is the user private
+          <filename class="directory">&dir-data;checks</filename>
+          <footnote id="dir-old-chk"><para>Up to <application>&app;</application> 2.21 it was <filename class="directory">&dir-old;checks</filename></para></footnote>
+          directory. Users may add check formats at any time (even while <application>&app;</application> is
+          running) simply by dropping a new
+          <filename>*.chk</filename>
+          file in this directory. The next time the check printing dialog is opened
+          the new check format will appear in the list of available check formats.
+        </para>
         <note>
-          <para>Printing functions differently depending on the version of GTK that is installed on your system.  When <application>&app;</application> is using a version of GTK prior to 2.10 all offsets are measured from the lower left corner of the page or check.  When using GTK 2.10 or later, all offsets are measured from the upper left corner of the page or check.</para>
+          <para> Printing functions differently depending on the version of GTK that
+            is installed on your system. When <application>&app;</application> is using a version of GTK prior to
+            2.10 all offsets are measured from the lower left corner of the page or
+            check. When using GTK 2.10 or later, all offsets are measured from the
+            upper left corner of the page or check. 
+          </para>
         </note>
       </sect2>
       <sect2>
         <title>Example file</title>
-        <para>A typical <application>&app;</application> check file is presented below.  The contents of this file will be described in the next sections.</para>
+        <para>A typical <application>&app;</application> check file is presented below. The contents of this file
+          will be described in the next sections.
+        </para>
 
         <programlisting>
 [Top]
@@ -219,7 +245,20 @@ Coords_5 = 50.0;212.0
                   <entry>Filename_<emphasis>n</emphasis></entry>
                   <entry>string</entry>
                   <entry>optional</entry>
-                  <entry>This field is only used when the item type is <emphasis>PICTURE</emphasis>. It specifies the filename of the image that should be printed on the check.  The string may specify either an absolute path name or as a relative path name.  If a relative path name is specified, <application>&app;</application> first looks in in the application check format folder (typically <filename class="directory">/usr/share/gnucash/checks</filename>) for the image file, and if it isn’t found there then it looks in the user private <filename class="directory">~/.gnucash/checks</filename> directory for the image.  This field is only recognized when using gtk version 2.10 or later.</entry>
+                  <entry>
+                    This field is only used when the item type is <emphasis>PICTURE</emphasis>.
+                    It specifies the filename of the image that should be printed on the
+                    check. The string may specify either an absolute path name or as a relative
+                    path name. If a relative path name is specified,
+                    <application>&app;</application>
+                    first looks in in the application check format folder (typically
+                    <filename class="directory">/usr/share/gnucash/checks</filename>
+                    ) for the image file, and if it is not found there then it looks in the user
+                    private
+                    <filename class="directory">&dir-data;checks</filename><footnoteref linkend="dir-old-chk" />
+                    directory for the image. This field is only recognized when using gtk
+                    version 2.10 or later.
+                  </entry>
                 </row>
                 <row>
                   <entry>Blocking_Chars_<emphasis>n</emphasis></entry>
@@ -435,9 +474,9 @@ Blocking_Chars
       </sect2>
       <sect2 id="check_format_notes">
         <title>Creating Check Format Files</title>
-        <para>Creating your own check format file is a fairly simple task.  The easiest way to start is to copy an existing check format file from the application directory (typically <filename class="directory">/usr/share/gnucash/checks</filename>) to the directory <filename class="directory">~/.gnucash/checks</filename>.  Make sure to change the guid so the new file will be accepted by gnucash, and change the title to something descriptive.  Then change or add individual item fields as necessary.  You can also create a new check file by clicking the <guibutton>Save Format</guibutton> button on the <guilabel>Custom format</guilabel> page of the check printing dialog.</para>
+        <para>Creating your own check format file is a fairly simple task.  The easiest way to start is to copy an existing check format file from the application directory (typically <filename class="directory">/usr/share/gnucash/checks</filename>) to the directory <filename class="directory">&dir-data;checks</filename><footnoteref linkend="dir-old-chk" />.  Make sure to change the guid so the new file will be accepted by gnucash, and change the title to something descriptive.  Then change or add individual item fields as necessary.  You can also create a new check file by clicking the <guibutton>Save Format</guibutton> button on the <guilabel>Custom format</guilabel> page of the check printing dialog.</para>
         <note>
-          <para>Key names are case sensitive.  If you’re having problems with a check format file, ensure that all key names have capital letters as documented above.</para>
+          <para>Key names are case sensitive.  If you are having problems with a check format file, ensure that all key names have capital letters as documented above.</para>
         </note>
       </sect2>
     </sect1>
diff --git a/guide/C/ch_basics.xml b/guide/C/ch_basics.xml
index 204e6fe..1ab1e58 100644
--- a/guide/C/ch_basics.xml
+++ b/guide/C/ch_basics.xml
@@ -1270,7 +1270,9 @@
 	  <tbody>
             <row>
      	      <entry>Unix</entry>
-              <entry><filename class="directory">~/.gnucash</filename></entry>
+              <entry><filename class="directory">&dir-data;</filename>
+                <footnote><para>Up to &app; 2.21 it was <filename class="directory">&dir-old;</filename></para></footnote>
+              </entry>
             </row>
             <row>
               <entry>Mac OSX</entry>

commit 701626b2325e34580e2d7c555fdd0b35f8a29a8e
Author: Frank H. Ellenberger <frank.h.ellenberger at gmail.com>
Date:   Thu Sep 12 18:50:29 2019 +0200

    Add entities for common dicectories

diff --git a/docbook/gnc-docbookx.dtd b/docbook/gnc-docbookx.dtd
index 012719d..9334449 100644
--- a/docbook/gnc-docbookx.dtd
+++ b/docbook/gnc-docbookx.dtd
@@ -39,6 +39,14 @@ own entity definitions to use across all of our DocBook pages. -->
 <!ENTITY series-unstable "master">
 <!ENTITY series-stable "3">
 
+<!-- 
+  2. Some common dicectories - change rarely.
+  FIXME: OS independed?
+-->
+<!ENTITY dir-conf "~/.conf/gnucash/">
+<!ENTITY dir-data "~/.local/share/gnucash/">
+<!ENTITY dir-old "~/.gnucash/">  <!-- Up to 2.21 common for conf & data -->
+
 <!-- 
   2. Some common URLs - should be changed on demand.
   

commit 59e550ac0a77c603faa92329cce4ce21af70f7cc
Author: Frank H. Ellenberger <frank.h.ellenberger at gmail.com>
Date:   Thu Sep 12 16:17:02 2019 +0200

    Add notes about ancient state and how to contribute templates

diff --git a/guide/C/appendixc.xml b/guide/C/appendixc.xml
index 2f87cb6..4a8ce54 100644
--- a/guide/C/appendixc.xml
+++ b/guide/C/appendixc.xml
@@ -16,8 +16,9 @@
 -->
  <appendix id="appendixc">
  <title>Contributed Account Trees</title>
- <para>
+ <para>This is an ancient example. For recent account trees see <ulink url="&url-src-maint;data/accounts" />, select your language and if existing region.
    </para>
+   <para>If you want to contribute your new or improved templates, read <ulink url="&url-wiki;Translation#How_to_translate_the_files_containing_the_new_account_hierarchies" />.</para>
  <sect1 id="appendixc_vat1">
  <title>UK Vat</title>
  <para>

commit 81795bc2490bd90de3d8a90f80226f0cef12b801
Author: Frank H. Ellenberger <frank.h.ellenberger at gmail.com>
Date:   Thu Sep 12 16:15:25 2019 +0200

    Add Entities for url-src*

diff --git a/docbook/gnc-docbookx.dtd b/docbook/gnc-docbookx.dtd
index 7af5f77..012719d 100644
--- a/docbook/gnc-docbookx.dtd
+++ b/docbook/gnc-docbookx.dtd
@@ -67,6 +67,8 @@ own entity definitions to use across all of our DocBook pages. -->
 <!ENTITY url-gnome-dev "https://developer.gnome.org/">  <!-- Append the desired topic -->
 <!ENTITY url-irc "irc://irc.gnome.org/gnucash">
 <!ENTITY url-gnu "https://www.gnu.org/"> <!-- Append the desired topic -->
+<!ENTITY url-src "https://github.com/Gnucash/gnucash/">
+<!ENTITY url-src-maint "https://github.com/Gnucash/gnucash/tree/maint/"> <!-- Append the desired topic -->
 <!ENTITY url-wiki-faq "https://wiki.gnucash.org/wiki/FAQ">
 <!ENTITY url-mail-li "https://lists.gnucash.org/mailman/listinfo/">  <!-- Append the desired list -->
 <!ENTITY url-wiki-ml "https://wiki.gnucash.org/wiki/Mailiing_Lists">

commit 79c1ec4b61975f55f4d635b4b4ab363d03454438
Author: Frank H. Ellenberger <frank.h.ellenberger at gmail.com>
Date:   Thu Sep 12 15:51:06 2019 +0200

    UK VAT: EEC became EC became EU

diff --git a/guide/C/appendixc.xml b/guide/C/appendixc.xml
index e2a0e23..2f87cb6 100644
--- a/guide/C/appendixc.xml
+++ b/guide/C/appendixc.xml
@@ -4,7 +4,8 @@
 <!--
       (Do not remove this comment block.)
   Version: 2.0.0
-  Last modified: July 9th 2006
+  Last modified: 2019-09-12 Fell: EEC->EU
+   modified: July 9th 2006
   Maintainers:
                Chris Lyttle <chris at wilddev.net>
   Author:
@@ -70,7 +71,7 @@ Cash [A]
 Assets [A]
   |___ Capital Equipment    (Box 7 - Part) - additions only, not absolute value
   |           |___ Computers      Can be depreciated to zero this year
-  |           |___ EEC reverse VAT purchase  (Box 6 - Part) create sub-accounts if needed
+  |           |___ EU reverse VAT purchase  (Box 6 - Part) create sub-accounts if needed
   |___  Other
 
 Receivable [R] Customers to whom you give credit - (business section)
@@ -89,7 +90,7 @@ VAT [L]   Net (Box 5)
   |___ i/p [A]   purchases (Box4)
   |___  o/p [L]     (Box3)
              |___EEC   on reverse VAT purchases (Box 2)
-             |___Sales   all including zero rate UK/ EEC  and World (Box1)
+             |___Sales   all including zero rate UK/ EU  and World (Box1)
 
 Payable [P]   Suppliers who give you credit (business section)
 
@@ -107,7 +108,7 @@ Income [I]   (Box 6 - part)
    |___ Interest
    |___ Misc
    | ___ Sales
-                |___ EEC
+                |___ EU
                 |     |____ goods  (Box 8) (sub accounts as needed)
                 |     |____ services includes software (sub accounts as needed)
                 | ___ UK
@@ -128,7 +129,7 @@ Expenses [E]
                     |___  Accountancy
                     |___  Bank Charges
                     |___  Consumables
-                    |___  EEC  reverse VAT purchases  (Box 6 - Part)
+                    |___  EU  reverse VAT purchases  (Box 6 - Part)
                     |         |___ goods (Box 9) (sub accounts as needed)
                     |         |___ services   includes software (sub accounts as needed)
                     |___  Office



Summary of changes:
 docbook/gnc-docbookx.dtd             |   15 +-
 guide/C/appendixc.xml                |   14 +-
 guide/C/appendixd.xml                |   53 +-
 guide/C/ch_basics.xml                |    4 +-
 guide/de/appendixb.xml               |  240 +++----
 guide/de/ch_import_business_data.xml | 1269 +++++++++++++++++++++++++---------
 guide/de/toc.xml                     |  237 -------
 7 files changed, 1132 insertions(+), 700 deletions(-)
 delete mode 100644 guide/de/toc.xml



More information about the gnucash-changes mailing list