On 2026-08-25 06:51, Pádraig Brady wrote:

The gnulib-tool docs state this can be done by us adding
the following to configure.ac:
   AC_DEFINE([GNULIB_TEXT_DOMAIN], [PACKAGE])
Yes, somehow we missed that memo for coreutils. Thanks, ribbon, for reporting 
the bug.

I installed the attached coreutils patch to fix things on the coreutils side. 
While doing so I noticed a couple of glitches on the Gnulib side and installed 
the attached two Gnulib patches.

From 9068289c956063d26fe7ee2b54d620d1fc2eb27e Mon Sep 17 00:00:00 2001
From: Paul Eggert <[email protected]>
Date: Tue, 25 Aug 2026 10:24:20 -0700
Subject: [PATCH] maint: translate messages from Gnulib

Problem reported by ribbon in:
https://lists.gnu.org/r/coreutils/2026-08/msg00093.html
* configure.ac (GNULIB_TEXT_DOMAIN): Define.
* po/POTFILES.in: Add lib/parse-datetime.y.
---
 NEWS           | 3 +++
 configure.ac   | 4 ++++
 po/POTFILES.in | 1 +
 3 files changed, 8 insertions(+)

diff --git a/NEWS b/NEWS
index cf9334ef0..5250945cd 100644
--- a/NEWS
+++ b/NEWS
@@ -80,6 +80,9 @@ GNU coreutils NEWS                                    -*- outline -*-
   locales like SHIFT-JIS where a single byte can decode to a wide character.
   [bug introduced in coreutils-9.5]
 
+  Messages from Gnulib are no longer mistranslated in non-English locales.
+  [bug introduced in coreutils-9.6]
+
 ** New Features
 
   'env' now supports --env0-from=FILE to read NUL-delimited environment entries
diff --git a/configure.ac b/configure.ac
index 3b44c5778..025c3edc6 100644
--- a/configure.ac
+++ b/configure.ac
@@ -63,6 +63,10 @@ gl_SET_CRYPTO_CHECK_DEFAULT([auto-gpl-compat])
 gl_INIT
 coreutils_MACROS
 
+# Translate Gnulib msgids ourselves, instead of using the gnulib-l10n module.
+AC_DEFINE([GNULIB_TEXT_DOMAIN], [PACKAGE],
+  [The text domainname for Gnulib messages.])
+
 # These are safe, since 'sort', coreutils's only multithreaded app,
 # does not use the relevant modules, or calls their code from one thread.
 AC_DEFINE([GNULIB_EXCLUDE_SINGLE_THREAD], [1],
diff --git a/po/POTFILES.in b/po/POTFILES.in
index 905de6e26..326688ca6 100644
--- a/po/POTFILES.in
+++ b/po/POTFILES.in
@@ -14,6 +14,7 @@ lib/getopt.c
 lib/mkdir-p.c
 lib/obstack.c
 lib/openat-die.c
+lib/parse-datetime.y
 lib/quotearg.c
 lib/randread.c
 lib/regcomp.c
-- 
2.53.0

From 983e052b06e8bfa2237b1f9704c742ae34f28d76 Mon Sep 17 00:00:00 2001
From: Paul Eggert <[email protected]>
Date: Tue, 25 Aug 2026 10:00:43 -0700
Subject: [PATCH 1/2] =?UTF-8?q?gettext-h-tests:=20don=E2=80=99t=20assume?=
 =?UTF-8?q?=20ENABLE=5FNLS?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

* tests/test-gettext-h.c (main) [!ENABLE_NLS]:
Do not call textdomain, as it is not in scope.
---
 ChangeLog              | 6 ++++++
 tests/test-gettext-h.c | 2 ++
 2 files changed, 8 insertions(+)

diff --git a/ChangeLog b/ChangeLog
index 802b45cab2..86f7f3804e 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,9 @@
+2026-08-25  Paul Eggert  <[email protected]>
+
+	gettext-h-tests: don’t assume ENABLE_NLS
+	* tests/test-gettext-h.c (main) [!ENABLE_NLS]:
+	Do not call textdomain, as it is not in scope.
+
 2026-08-24  Paul Eggert  <[email protected]>
 
 	gettext: more-consistent no-op macros
diff --git a/tests/test-gettext-h.c b/tests/test-gettext-h.c
index c6ad35cd65..fa0a795c31 100644
--- a/tests/test-gettext-h.c
+++ b/tests/test-gettext-h.c
@@ -27,7 +27,9 @@ main (void)
 {
   const char *s;
 
+#if ENABLE_NLS
   textdomain ("tzlof");
+#endif
 
   s = gettext ("some text");
   if (!streq (s, "some text"))
-- 
2.53.0

From 0052b2684981072464c4ec7ab65cd8e8c0ad1376 Mon Sep 17 00:00:00 2001
From: Paul Eggert <[email protected]>
Date: Tue, 25 Aug 2026 10:03:24 -0700
Subject: [PATCH 2/2] =?UTF-8?q?getaddrinfo:=20getaddrinfo.c=20doesn?=
 =?UTF-8?q?=E2=80=99t=20need=20gettext.h?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

* lib/getaddrinfo.c: Don’t include gettext.h.
(_, N_): Remove; unused.
---
 ChangeLog         | 4 ++++
 lib/getaddrinfo.c | 4 ----
 2 files changed, 4 insertions(+), 4 deletions(-)

diff --git a/ChangeLog b/ChangeLog
index 86f7f3804e..2fbe7488ec 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,9 @@
 2026-08-25  Paul Eggert  <[email protected]>
 
+	getaddrinfo: getaddrinfo.c doesn’t need gettext.h
+	* lib/getaddrinfo.c: Don’t include gettext.h.
+	(_, N_): Remove; unused.
+
 	gettext-h-tests: don’t assume ENABLE_NLS
 	* tests/test-gettext-h.c (main) [!ENABLE_NLS]:
 	Do not call textdomain, as it is not in scope.
diff --git a/lib/getaddrinfo.c b/lib/getaddrinfo.c
index 2b60377bdb..c7d404535e 100644
--- a/lib/getaddrinfo.c
+++ b/lib/getaddrinfo.c
@@ -39,10 +39,6 @@
 /* Get snprintf. */
 #include <stdio.h>
 
-#include "gettext.h"
-#define _(msgid) dgettext (GNULIB_TEXT_DOMAIN, msgid)
-#define N_(msgid) msgid
-
 /* BeOS has AF_INET, but not PF_INET.  */
 #ifndef PF_INET
 # define PF_INET AF_INET
-- 
2.53.0

Reply via email to