gnucash future: Multiple changes pushed
Christopher Lam
clam at code.gnucash.org
Thu Sep 24 07:32:47 EDT 2026
Updated via https://github.com/Gnucash/gnucash/commit/e4006dac (commit)
via https://github.com/Gnucash/gnucash/commit/c8317b15 (commit)
via https://github.com/Gnucash/gnucash/commit/0cbce35a (commit)
via https://github.com/Gnucash/gnucash/commit/cb304edf (commit)
via https://github.com/Gnucash/gnucash/commit/f488cf35 (commit)
via https://github.com/Gnucash/gnucash/commit/3c9cfbb9 (commit)
via https://github.com/Gnucash/gnucash/commit/1e5f5d18 (commit)
via https://github.com/Gnucash/gnucash/commit/6bf9adf0 (commit)
via https://github.com/Gnucash/gnucash/commit/4f25b389 (commit)
via https://github.com/Gnucash/gnucash/commit/f4c17f2a (commit)
via https://github.com/Gnucash/gnucash/commit/15947a7e (commit)
via https://github.com/Gnucash/gnucash/commit/9745b68a (commit)
via https://github.com/Gnucash/gnucash/commit/a347b898 (commit)
via https://github.com/Gnucash/gnucash/commit/fb2c773b (commit)
via https://github.com/Gnucash/gnucash/commit/1969d781 (commit)
via https://github.com/Gnucash/gnucash/commit/06f7324e (commit)
via https://github.com/Gnucash/gnucash/commit/6b69ea72 (commit)
via https://github.com/Gnucash/gnucash/commit/e27a3c62 (commit)
via https://github.com/Gnucash/gnucash/commit/38754227 (commit)
via https://github.com/Gnucash/gnucash/commit/038f90a7 (commit)
via https://github.com/Gnucash/gnucash/commit/7303d9ae (commit)
via https://github.com/Gnucash/gnucash/commit/6d18e5a7 (commit)
via https://github.com/Gnucash/gnucash/commit/9176d196 (commit)
from https://github.com/Gnucash/gnucash/commit/e9a041f8 (commit)
commit e4006dac0190d0f8b04c53c898b5a3b3adeef151
Merge: e9a041f8c2 c8317b15a0
Author: Christopher Lam <christopher.lck at gmail.com>
Date: Thu Sep 24 19:31:30 2026 +0800
Merge branch 'stable' into future
commit c8317b15a01a8797a06f7c4ee5315a46d79827d3
Author: Christopher Lam <christopher.lck at gmail.com>
Date: Thu Sep 24 09:25:39 2026 +0800
[test-scm-utilities.scm] addendum last commit "quote" now sanitized
commit 0cbce35a474e2d234eaab940626c24846c12183a
Author: Christopher Lam <christopher.lck at gmail.com>
Date: Thu Sep 24 08:24:41 2026 +0800
[engine.i] delegate gnc:html-string-sanitize to g_markup_escape_text
commit cb304edfa6863f66bd6ff8df04721ff39aa29e72
Author: John Ralls <jralls at ceridwen.us>
Date: Tue Sep 22 15:52:16 2026 -0700
Bug 799813 - gnucash-cli issue for price updates using Postgressql back-end
Reorder the CLI quotes get startup sequence to load GncQuotes before
loading the session so that preconfigured quote sources don't null
out other supported sources.
Make the SQL backend create a new source when an unknown one is found in
the commodities table like the XML backend does.
Thanks to Ganesh Suriyanarayanan for diagnosing the problem and
proposing a solution.
commit f488cf356a3d6eb0ecdfdb16d4cec3eb722e7557
Author: John Ralls <jralls at ceridwen.us>
Date: Mon Sep 21 12:44:48 2026 -0700
Qif Import: Fix segment order when parsing YDM dates.
commit 3c9cfbb91661688034e09168a0631804a639f95e
Merge: 1e5f5d184d 1969d781e4
Author: John Ralls <jralls at ceridwen.us>
Date: Sat Sep 19 17:08:55 2026 -0700
Merge Roy Hansen's 'improve/natural-sort-id-columns' into stable.
commit 1e5f5d184d7287008060875c538d496cdf1e1f76
Merge: 6bf9adf09b 7303d9ae38
Author: John Ralls <jralls at ceridwen.us>
Date: Sat Sep 19 15:47:38 2026 -0700
Merge Huang Zhaoquan's 'bug-799803' into stable.
commit 6bf9adf09b0a5053ff15c631626c9abb35acc82b
Author: John Ralls <jralls at ceridwen.us>
Date: Sat Sep 19 15:35:45 2026 -0700
msgmerge the 5.17 gnucash.pot to prepare for next release.
commit 4f25b38997ab0b340cb60b7555c429c8b41da4d0
Merge: fb2c773bf6 f4c17f2a0a
Author: John Ralls <jralls at ceridwen.us>
Date: Sat Sep 19 15:20:30 2026 -0700
Merge latest translations from Weblate.
commit f4c17f2a0a987c5b7a3d7ccd5fe43c1f16c25921
Author: Yegor Derevenets <yegor.derevenets at gmail.com>
Date: Mon Sep 14 00:51:40 2026 +0200
Translation update by Yegor Derevenets <yegor.derevenets at gmail.com> using Weblate
po/ru.po: 98.1% (5594 of 5699 strings; 84 fuzzy)
107 failing checks (1.8%)
Translation: GnuCash/Program (Russian)
Translate-URL: https://hosted.weblate.org/projects/gnucash/gnucash/ru/
Co-authored-by: Yegor Derevenets <yegor.derevenets at gmail.com>
commit 15947a7e267b334accc7754f008380035da4cec7
Author: Arve Eriksson <arve.eriksson at startmail.com>
Date: Mon Sep 14 00:51:38 2026 +0200
Translation update by Arve Eriksson <arve.eriksson at startmail.com> using Weblate
po/sv.po: 100.0% (5699 of 5699 strings; 0 fuzzy)
0 failing checks (0.0%)
Translation: GnuCash/Program (Swedish)
Translate-URL: https://hosted.weblate.org/projects/gnucash/gnucash/sv/
Co-authored-by: Arve Eriksson <arve.eriksson at startmail.com>
commit 9745b68ae15394e36ed66761ae101ceaec1991ef
Author: Zhaoquan Huang <zhaoquan2008 at hotmail.com>
Date: Mon Sep 14 00:51:36 2026 +0200
Translation update by Zhaoquan Huang <zhaoquan2008 at hotmail.com> using Weblate
po/zh_CN.po: 99.7% (5687 of 5699 strings; 8 fuzzy)
18 failing checks (0.3%)
Translation: GnuCash/Program (Chinese (Simplified Han script))
Translate-URL: https://hosted.weblate.org/projects/gnucash/gnucash/zh_Hans/
Translation update by Zhaoquan Huang <zhaoquan2008 at hotmail.com> using Weblate
po/zh_CN.po: 99.7% (5687 of 5699 strings; 8 fuzzy)
18 failing checks (0.3%)
Translation: GnuCash/Program (Chinese (Simplified Han script))
Translate-URL: https://hosted.weblate.org/projects/gnucash/gnucash/zh_Hans/
Translation update by Zhaoquan Huang <zhaoquan2008 at hotmail.com> using Weblate
po/zh_CN.po: 99.7% (5687 of 5699 strings; 8 fuzzy)
18 failing checks (0.3%)
Translation: GnuCash/Program (Chinese (Simplified Han script))
Translate-URL: https://hosted.weblate.org/projects/gnucash/gnucash/zh_Hans/
Translation update by Zhaoquan Huang <zhaoquan2008 at hotmail.com> using Weblate
po/zh_CN.po: 99.7% (5687 of 5699 strings; 8 fuzzy)
18 failing checks (0.3%)
Translation: GnuCash/Program (Chinese (Simplified Han script))
Translate-URL: https://hosted.weblate.org/projects/gnucash/gnucash/zh_Hans/
Co-authored-by: Zhaoquan Huang <zhaoquan2008 at hotmail.com>
commit a347b89830f9d71e268a67c7c2e52a6278a19826
Author: Szia Tomi <sziatomi01 at gmail.com>
Date: Mon Sep 14 00:51:32 2026 +0200
Translation update by Szia Tomi <sziatomi01 at gmail.com> using Weblate
po/glossary/hu.po: 100.0% (213 of 213 strings; 0 fuzzy)
0 failing checks (0.0%)
Translation: GnuCash/Glossary (Hungarian)
Translate-URL: https://hosted.weblate.org/projects/gnucash/glossary/hu/
Translation update by Szia Tomi <sziatomi01 at gmail.com> using Weblate
po/hu.po: 91.4% (5210 of 5699 strings; 114 fuzzy)
1 failing checks (0.1%)
Translation: GnuCash/Program (Hungarian)
Translate-URL: https://hosted.weblate.org/projects/gnucash/gnucash/hu/
Translation update by Szia Tomi <sziatomi01 at gmail.com> using Weblate
po/hu.po: 91.4% (5210 of 5699 strings; 114 fuzzy)
1 failing checks (0.1%)
Translation: GnuCash/Program (Hungarian)
Translate-URL: https://hosted.weblate.org/projects/gnucash/gnucash/hu/
Translation update by Szia Tomi <sziatomi01 at gmail.com> using Weblate
po/hu.po: 91.4% (5209 of 5699 strings; 115 fuzzy)
1 failing checks (0.1%)
Translation: GnuCash/Program (Hungarian)
Translate-URL: https://hosted.weblate.org/projects/gnucash/gnucash/hu/
Co-authored-by: Szia Tomi <sziatomi01 at gmail.com>
commit fb2c773bf698999c8a0806c726a8dfc8ccd91f0b
Author: Christopher Lam <christopher.lck at gmail.com>
Date: Fri Sep 18 18:38:30 2026 +0800
[libgnucash/app-utils/test] test shouldn't include gnc-gnome-utils
commit 1969d781e4067c80d5e33ccb054c614d5694bf13
Author: Roy Hansen <roy at royhansen.no>
Date: Fri Sep 11 14:18:53 2026 +0200
Sort Id columns naturally in qof-query, which is used in gnucash search
dialogs.
Changed sorting to be natural (chunks), instead of sequential ascii-sort.
Number chunks are compared as whole numbers instead of one at a time.
commit 06f7324e589cf5f4c0dd5e221b8bc3f67544acf1
Author: Roy Hansen <roy at royhansen.no>
Date: Fri Sep 11 14:09:36 2026 +0200
Sort Id columns naturally in gnc-tree-views.
Changed sorting to be natural (chunks), instead of sequential ascii-sort.
Number chunks are compared as whole numbers instead of one at a time.
After this change, customer-overview, vendor-overview and
employee-overview will naturally sort "id" columns.
commit 6b69ea727868fa5b550e04167d0a3ab6d2759619
Author: John Ralls <jralls at ceridwen.us>
Date: Wed Sep 16 17:57:17 2026 -0700
mingw32: Use msvcrt's _wsetlocale in set_platform_ctype_to_acp.
The setlocale we get is from libintl which doesn't do anything for
locale "C".
This commit should be reverted immediately after merging into future.
Assisted-by: Claude Code Opus 5
Signed-off: John Ralls <jralls at ceridwen.us>
commit e27a3c6230aac638128c73345a6936e9fe912e77
Author: John Ralls <jralls at ceridwen.us>
Date: Sun Sep 13 15:45:10 2026 -0700
mingw32: Force the C runtime to use the process's code page.
The process code page is set by the manifest created in the
previous commit. Left to its own devices msvcrt will set the
character set to the locale's DOS codepage. This commit overrides
that by setting the locale charset to the C locale's which is
always the process one.
ucrt doesn't override the process char set so this isn't necessary
and will be reverted immediately after merge.
Assisted-by: Claude Code Opus 5
Signed-off: John Ralls <jralls at ceridwen.us>
commit 38754227f356c4c303f6d215d47e0c5deb6bb45e
Author: Claude <noreply at anthropic.com>
Date: Sat Sep 12 00:08:26 2026 +0000
[new-owner-report] Scope script to its table, use keyboard toggle
Wrap in IIFE to prevent script variables interfering with other owner
reports in multi-report scenarios. Target current report table, marked
with gensym.
Add keyboard support: Space on a focused cell (e.g. link to invoice or
register) toggles the highlight. Enter on a focused cell still opens
the invoice or register.
Wrap the script in //<![CDATA[ ... //]]> avoiding need for escaping
&&.
Assisted-By: Claude Sonnet 5 <noreply at anthropic.com>
Signed-Off: Christopher Lam
commit 038f90a798f205c4495062373aa5628bac39347a
Author: John Ralls <jralls at ceridwen.us>
Date: Sun Sep 13 15:45:10 2026 -0700
Mingw64: Use a manifest to force the codepage to UTF8
Fixes a variety of path with special character problems on Windows.
Assisted-by: Gemini <https://gemini.google.com>
Signed-off: John Ralls <jralls at ceridwen.us>
commit 7303d9ae38012ff0868bf79a26c70b3811be9a53
Author: Huang, Zhaoquan <zhaoquan2008 at hotmail.com>
Date: Tue Sep 8 21:32:31 2026 +0800
Split context/category to msgctxt field in gnc-glossary.txt
* The `rename-glossary.py` script is used to move the context/category from msgid to msgctxt.
* The translations are kept as-is, with a fuzzy flag.
* Considering that these renamed terms are not proper nouns, they have been changed to start with lowercase letters.
Fix https://bugs.gnucash.org/show_bug.cgi?id=799803
The command used to rename the terms:
```
cd po/glossary
./rename-glossary.py -o "\"\"" -nc "quoting convention" -n "\"\"" *.po -t gnc-glossary.txt
./rename-glossary.py -o "account type: Active" -nc "account type" -n "active" *.po -t gnc-glossary.txt
./rename-glossary.py -o "account type: Asset" -nc "account type" -n "asset" *.po -t gnc-glossary.txt
./rename-glossary.py -o "account type: Assets & Liabilities" -nc "account type" -n "assets & liabilities" *.po -t gnc-glossary.txt
./rename-glossary.py -o "account type: checking" -nc "account type" -n "checking" *.po -t gnc-glossary.txt
./rename-glossary.py -o "account type: currency" -nc "account type" -n "currency" *.po -t gnc-glossary.txt
./rename-glossary.py -o "account type: Equity" -nc "account type" -n "equity" *.po -t gnc-glossary.txt
./rename-glossary.py -o "account type: Expense" -nc "account type" -n "expense" *.po -t gnc-glossary.txt
./rename-glossary.py -o "account type: Income" -nc "account type" -n "income" *.po -t gnc-glossary.txt
./rename-glossary.py -o "account type: Liability" -nc "account type" -n "liability" *.po -t gnc-glossary.txt
./rename-glossary.py -o "account type: money-market" -nc "account type" -n "money-market" *.po -t gnc-glossary.txt
./rename-glossary.py -o "account type: Mutual fund" -nc "account type" -n "mutual fund" *.po -t gnc-glossary.txt
./rename-glossary.py -o "account type: Passive" -nc "account type" -n "passive" *.po -t gnc-glossary.txt
./rename-glossary.py -o "account type: Profit & Loss" -nc "account type" -n "profit & loss" *.po -t gnc-glossary.txt
./rename-glossary.py -o "account type: saving" -nc "account type" -n "saving" *.po -t gnc-glossary.txt
./rename-glossary.py -o "account type: Stock" -nc "account type" -n "stock" *.po -t gnc-glossary.txt
./rename-glossary.py -o "account type: trading" -nc "account type" -n "trading" *.po -t gnc-glossary.txt
./rename-glossary.py -o "account: parent account" -nc "account" -n "parent account" *.po -t gnc-glossary.txt
./rename-glossary.py -o "account: subaccount" -nc "account" -n "subaccount" *.po -t gnc-glossary.txt
./rename-glossary.py -o "account: top level account" -nc "account" -n "top level account" *.po -t gnc-glossary.txt
./rename-glossary.py -o "Action (register)" -nc "register" -n "action" *.po -t gnc-glossary.txt
./rename-glossary.py -o "action: ATM" -nc "action" -n "ATM" *.po -t gnc-glossary.txt
./rename-glossary.py -o "action: autoDep" -nc "action" -n "autoDep" *.po -t gnc-glossary.txt
./rename-glossary.py -o "action: buy" -nc "action" -n "buy" *.po -t gnc-glossary.txt
./rename-glossary.py -o "action: deposit" -nc "action" -n "deposit" *.po -t gnc-glossary.txt
./rename-glossary.py -o "action: direct debit" -nc "action" -n "direct debit" *.po -t gnc-glossary.txt
./rename-glossary.py -o "action: dist" -nc "action" -n "dist" *.po -t gnc-glossary.txt
./rename-glossary.py -o "action: div" -nc "action" -n "div" *.po -t gnc-glossary.txt
./rename-glossary.py -o "action: fee" -nc "action" -n "fee" *.po -t gnc-glossary.txt
./rename-glossary.py -o "action: int" -nc "action" -n "int" *.po -t gnc-glossary.txt
./rename-glossary.py -o "action: loan" -nc "action" -n "loan" *.po -t gnc-glossary.txt
./rename-glossary.py -o "action: payment" -nc "action" -n "payment" *.po -t gnc-glossary.txt
./rename-glossary.py -o "action: POS" -nc "action" -n "POS" *.po -t gnc-glossary.txt
./rename-glossary.py -o "action: rebate" -nc "action" -n "rebate" *.po -t gnc-glossary.txt
./rename-glossary.py -o "action: sell" -nc "action" -n "sell" *.po -t gnc-glossary.txt
./rename-glossary.py -o "action: Teller" -nc "action" -n "teller" *.po -t gnc-glossary.txt
./rename-glossary.py -o "action: transfer" -nc "action" -n "transfer" *.po -t gnc-glossary.txt
./rename-glossary.py -o "action: wire" -nc "action" -n "wire" *.po -t gnc-glossary.txt
./rename-glossary.py -o "action: withdraw" -nc "action" -n "withdraw" *.po -t gnc-glossary.txt
./rename-glossary.py -o "balance (noun)" -nc "noun" -n "balance" *.po -t gnc-glossary.txt
./rename-glossary.py -o "balance, to" -nc "verb" -n "balance" *.po -t gnc-glossary.txt
./rename-glossary.py -o "business (adjective)" -nc "adjective" -n "business" *.po -t gnc-glossary.txt
./rename-glossary.py -o "business (noun)" -nc "noun" -n "business" *.po -t gnc-glossary.txt
./rename-glossary.py -o "check and repair, to" -nc "verb" -n "check and repair" *.po -t gnc-glossary.txt
./rename-glossary.py -o "close, to" -nc "verb" -n "close" *.po -t gnc-glossary.txt
./rename-glossary.py -o "commodity option: fraction" -nc "commodity option" -n "fraction" *.po -t gnc-glossary.txt
./rename-glossary.py -o "commodity option: Symbol" -nc "commodity option" -n "symbol" *.po -t gnc-glossary.txt
./rename-glossary.py -o "Credit (column in register)" -nc "column in register" -n "credit" *.po -t gnc-glossary.txt
./rename-glossary.py -o "Debit (column in register)" -nc "column in register" -n "debit" *.po -t gnc-glossary.txt
./rename-glossary.py -o "deposit (in the reconcile dialog)" -nc "reconcile dialog" -n "deposit" *.po -t gnc-glossary.txt
./rename-glossary.py -o "Description (column in register)" -nc "column in register" -n "description" *.po -t gnc-glossary.txt
./rename-glossary.py -o "escrow (account)" -nc "account" -n "escrow" *.po -t gnc-glossary.txt
./rename-glossary.py -o "financial calculator: interest rate" -nc "financial calculator" -n "interest rate" *.po -t gnc-glossary.txt
./rename-glossary.py -o "financial calculator: payments" -nc "financial calculator" -n "payments" *.po -t gnc-glossary.txt
./rename-glossary.py -o "loan: APR" -nc "loan" -n "APR" *.po -t gnc-glossary.txt
./rename-glossary.py -o "merge, to" -nc "verb" -n "merge" *.po -t gnc-glossary.txt
./rename-glossary.py -o "mortgage: ARM" -nc "mortgage" -n "ARM" *.po -t gnc-glossary.txt
./rename-glossary.py -o "mortgage: FRM" -nc "mortgage" -n "FRM" *.po -t gnc-glossary.txt
./rename-glossary.py -o "notes (register)" -nc "column in register" -n "notes" *.po -t gnc-glossary.txt
./rename-glossary.py -o "Num (column in register)" -nc "column in register" -n "num" *.po -t gnc-glossary.txt
./rename-glossary.py -o "open, to" -nc "verb" -n "open" *.po -t gnc-glossary.txt
./rename-glossary.py -o "post, to" -nc "verb" -n "post" *.po -t gnc-glossary.txt
./rename-glossary.py -o "price (in a split)" -nc "split property" -n "price" *.po -t gnc-glossary.txt
./rename-glossary.py -o "price type: ask" -nc "price type" -n "ask" *.po -t gnc-glossary.txt
./rename-glossary.py -o "price type: bid" -nc "price type" -n "bid" *.po -t gnc-glossary.txt
./rename-glossary.py -o "price: quotes" -nc "price" -n "quotes" *.po -t gnc-glossary.txt
./rename-glossary.py -o "rebalance, to (a transaction)" -nc "verb, on a transaction" -n "rebalance" *.po -t gnc-glossary.txt
./rename-glossary.py -o "reconcile, to" -nc "verb" -n "reconcile" *.po -t gnc-glossary.txt
./rename-glossary.py -o "register entry: split transaction" -nc "register entry" -n "split transaction" *.po -t gnc-glossary.txt
./rename-glossary.py -o "register entry: stock split" -nc "register entry" -n "stock split" *.po -t gnc-glossary.txt
./rename-glossary.py -o "register: auto-split ledger" -nc "register" -n "auto-split ledger" *.po -t gnc-glossary.txt
./rename-glossary.py -o "register: basic ledger" -nc "register" -n "basic ledger" *.po -t gnc-glossary.txt
./rename-glossary.py -o "register: general ledger" -nc "register" -n "general ledger" *.po -t gnc-glossary.txt
./rename-glossary.py -o "register: transaction journal" -nc "register" -n "transaction journal" *.po -t gnc-glossary.txt
./rename-glossary.py -o "reload, to" -nc "verb" -n "reload" *.po -t gnc-glossary.txt
./rename-glossary.py -o "report form: T Account Form" -nc "report form" -n "T account form" *.po -t gnc-glossary.txt
./rename-glossary.py -o "report form: Vertical Form" -nc "report form" -n "vertical form" *.po -t gnc-glossary.txt
./rename-glossary.py -o "reverse transaction, to (Action in the register)" -nc "action in the register, verb" -n "reverse transaction" *.po -t gnc-glossary.txt
./rename-glossary.py -o "save, to (to a file)" -nc "verb, to a file" -n "save" *.po -t gnc-glossary.txt
./rename-glossary.py -o "scrub, to" -nc "verb" -n "scrub" *.po -t gnc-glossary.txt
./rename-glossary.py -o "Share Balance (register)" -nc "register" -n "share balance" *.po -t gnc-glossary.txt
./rename-glossary.py -o "tax type: income tax" -nc "tax type" -n "income tax" *.po -t gnc-glossary.txt
./rename-glossary.py -o "tax type: sales tax" -nc "tax type" -n "sales tax" *.po -t gnc-glossary.txt
./rename-glossary.py -o "tax type: GST" -nc "tax type" -n "GST" *.po -t gnc-glossary.txt
./rename-glossary.py -o "tax type: VAT" -nc "tax type" -n "VAT" *.po -t gnc-glossary.txt
./rename-glossary.py -o "transaction state: cleared" -nc "transaction state" -n "cleared" *.po -t gnc-glossary.txt
./rename-glossary.py -o "transaction state: frozen" -nc "transaction state" -n "frozen" *.po -t gnc-glossary.txt
./rename-glossary.py -o "transaction state: reconciled" -nc "transaction state" -n "reconciled" *.po -t gnc-glossary.txt
./rename-glossary.py -o "transaction state: voided" -nc "transaction state" -n "voided" *.po -t gnc-glossary.txt
./rename-glossary.py -o "transfer (noun)" -nc "noun" -n "transfer" *.po -t gnc-glossary.txt
./rename-glossary.py -o "transfer, to (register toolbar)" -nc "register toolbar, verb" -n "transfer" *.po -t gnc-glossary.txt
./rename-glossary.py -o "trial balance (report)" -nc "report" -n "trial balance" *.po -t gnc-glossary.txt
./rename-glossary.py -o "value (in a split)" -nc "split property" -n "value" *.po -t gnc-glossary.txt
./rename-glossary.py -o "withdraw (in the reconcile dialog)" -nc "reconcile dialog" -n "withdraw" *.po -t gnc-glossary.txt
```
commit 6d18e5a78f98a2fa3e0ca302d55623e894374e1c
Author: Huang, Zhaoquan <zhaoquan2008 at hotmail.com>
Date: Tue Sep 8 21:30:48 2026 +0800
Format all glossary po files through rename-glossary.py
All the glossary .po files are processed by rename-glossary.py to simplify the diff of the following glossary renames.
The formatting diff includes:
* Metadata ordering is changed.
* Empty comments are deleted, due to `polib` doesn't flush empty comments to .po files.
The command used to do the formatting is:
```
cd po/glossary
./rename-glossary.py -o "" -n "" *.po --skip-check
```
commit 9176d1964f9fd2f62d78e38b1ba37700a71ca9e0
Author: Huang, Zhaoquan <zhaoquan2008 at hotmail.com>
Date: Tue Sep 8 21:30:06 2026 +0800
Add context field in gnc-glossary.txt
* txt-to-pot.sh is updated to populate msgctxt to the .pot file and skip the header row
* The new .pot file is `msgmerge`d into the .po files
* gnc-glossary.txt is updated to provide an empty context for each glossary
* A new script `rename-glossary.py` is introduced to rename a term in both the .txt file and all the .po files
Co-authored-by: Frank H. Ellenberger <frank.h.ellenberger at gmail.com>
Summary of changes:
bindings/engine.i | 9 +
bindings/guile/test/test-scm-utilities.scm | 6 +-
bindings/guile/utilities.scm | 14 +-
gnucash/CMakeLists.txt | 5 +-
gnucash/gnome-search/search-core-type.c | 2 +
gnucash/gnome-utils/gnc-tree-view-owner.c | 31 +-
gnucash/gnucash-core-app.cpp | 3 +
gnucash/gnucash-locale-platform.h | 9 +
gnucash/gnucash-locale-windows.c | 9 +
gnucash/gnucash-manifest.rc | 4 +
gnucash/gnucash-utf8.manifest | 9 +
gnucash/gnucash.cpp | 6 +
gnucash/import-export/qif-imp/qif-parse.scm | 2 +-
.../report/reports/standard/new-owner-report.scm | 67 +-
libgnucash/app-utils/test/CMakeLists.txt | 2 +-
libgnucash/backend/sql/gnc-commodity-sql.cpp | 2 +
libgnucash/core-utils/gnc-string-utils.cpp | 29 +
libgnucash/core-utils/gnc-string-utils.h | 12 +
libgnucash/engine/gncCustomer.c | 2 +-
libgnucash/engine/gncEmployee.c | 2 +-
libgnucash/engine/gncInvoice.c | 4 +-
libgnucash/engine/gncVendor.c | 2 +-
libgnucash/engine/qofclass.h | 1 +
libgnucash/engine/qofquerycore.cpp | 31 +
po/ar.po | 3598 ++++++------
po/as.po | 5047 +++++++++--------
po/az.po | 2728 ++++-----
po/bg.po | 2834 +++++-----
po/brx.po | 3089 ++++++-----
po/ca.po | 2965 +++++-----
po/cs.po | 2827 +++++-----
po/da.po | 2923 +++++-----
po/de.po | 2997 +++++-----
po/doi.po | 3178 ++++++-----
po/el.po | 2799 +++++-----
po/en_AU.po | 2900 +++++-----
po/en_GB.po | 2900 +++++-----
po/en_NZ.po | 2906 +++++-----
po/es.po | 3084 ++++++-----
po/es_NI.po | 2739 +++++-----
po/et.po | 2731 ++++-----
po/eu.po | 2746 +++++-----
po/fa.po | 2962 +++++-----
po/fi.po | 2792 +++++-----
po/fr.po | 3018 +++++-----
po/glossary/ar.po | 480 +-
po/glossary/as.po | 430 +-
po/glossary/az.po | 384 +-
po/glossary/bg.po | 467 +-
po/glossary/brx.po | 384 +-
po/glossary/ca.po | 461 +-
po/glossary/cs.po | 426 +-
po/glossary/da.po | 481 +-
po/glossary/de.po | 481 +-
po/glossary/doi.po | 384 +-
po/glossary/el.po | 506 +-
po/glossary/en_AU.po | 481 +-
po/glossary/en_GB.po | 481 +-
po/glossary/en_NZ.po | 481 +-
po/glossary/es.po | 481 +-
po/glossary/et.po | 384 +-
po/glossary/fa.po | 384 +-
po/glossary/fi.po | 481 +-
po/glossary/fr.po | 481 +-
po/glossary/gnc-glossary.txt | 426 +-
po/glossary/gu.po | 384 +-
po/glossary/he.po | 481 +-
po/glossary/hi.po | 384 +-
po/glossary/hr.po | 481 +-
po/glossary/hu.po | 481 +-
po/glossary/id.po | 481 +-
po/glossary/it.po | 481 +-
po/glossary/ja.po | 385 +-
po/glossary/kn.po | 384 +-
po/glossary/ko.po | 481 +-
po/glossary/kok.po | 384 +-
po/glossary/kok at latin.po | 384 +-
po/glossary/ks.po | 384 +-
po/glossary/lt.po | 465 +-
po/glossary/lv.po | 384 +-
po/glossary/mai.po | 384 +-
po/glossary/mk.po | 481 +-
po/glossary/mni.po | 384 +-
po/glossary/mni at bengali.po | 384 +-
po/glossary/mr.po | 394 +-
po/glossary/nb.po | 480 +-
po/glossary/ne.po | 384 +-
po/glossary/nl.po | 481 +-
po/glossary/pl.po | 481 +-
po/glossary/pt.po | 481 +-
po/glossary/pt_BR.po | 481 +-
po/glossary/rename-glossary.py | 181 +
po/glossary/ro.po | 384 +-
po/glossary/ru.po | 481 +-
po/glossary/rw.po | 384 +-
po/glossary/sk.po | 481 +-
po/glossary/sr.po | 384 +-
po/glossary/sv.po | 481 +-
po/glossary/ta.po | 481 +-
po/glossary/te.po | 384 +-
po/glossary/tr.po | 433 +-
po/glossary/txt-to-pot.sh | 2 +-
po/glossary/uk.po | 481 +-
po/glossary/ur.po | 389 +-
po/glossary/vi.po | 461 +-
po/glossary/zh_CN.po | 485 +-
po/glossary/zh_TW.po | 481 +-
po/gu.po | 3011 +++++-----
po/he.po | 2921 +++++-----
po/hi.po | 3140 ++++++-----
po/hr.po | 3028 +++++-----
po/hu.po | 3103 ++++++-----
po/id.po | 2866 +++++-----
po/it.po | 3012 +++++-----
po/ja.po | 3614 ++++++------
po/kn.po | 5779 +++++++++++---------
po/ko.po | 5126 +++++++++--------
po/kok.po | 2961 +++++-----
po/kok at latin.po | 2860 +++++-----
po/ks.po | 2961 +++++-----
po/lt.po | 2914 +++++-----
po/lv.po | 2863 +++++-----
po/mai.po | 3101 ++++++-----
po/mk.po | 2734 ++++-----
po/mni.po | 2963 +++++-----
po/mni at bengali.po | 5014 +++++++++--------
po/mr.po | 3019 +++++-----
po/nb.po | 2870 +++++-----
po/ne.po | 3063 ++++++-----
po/nl.po | 3023 +++++-----
po/pl.po | 2845 +++++-----
po/pt.po | 2868 +++++-----
po/pt_BR.po | 2900 +++++-----
po/ro.po | 2825 +++++-----
po/ru.po | 3041 +++++-----
po/rw.po | 2769 +++++-----
po/sk.po | 2954 +++++-----
po/sr.po | 2982 +++++-----
po/sv.po | 3072 ++++++-----
po/ta.po | 4577 ++++++++--------
po/te.po | 3272 +++++------
po/tr.po | 2831 +++++-----
po/uk.po | 3091 ++++++-----
po/ur.po | 3174 ++++++-----
po/vi.po | 2890 +++++-----
po/zh_CN.po | 3308 ++++++-----
po/zh_TW.po | 3189 ++++++-----
147 files changed, 126686 insertions(+), 92450 deletions(-)
create mode 100644 gnucash/gnucash-manifest.rc
create mode 100644 gnucash/gnucash-utf8.manifest
create mode 100755 po/glossary/rename-glossary.py
More information about the gnucash-patches
mailing list