mirror of
https://git.in.rschanz.org/ryan77627/guix.git
synced 2024-12-24 21:38:07 -05:00
gnu: po4a: Apply patch to translate partial Texinfo menus.
Fixes <https://issues.guix.gnu.org/64881>. * gnu/packages/gettext.scm (po4a) [source]: Apply patch. * gnu/packages/patches/po4a-partial-texinfo-menu-fix.patch: New patch. * gnu/local.mk (dist_patch_DATA): Register it.
This commit is contained in:
parent
310b0f72d8
commit
352c49e1a5
3 changed files with 247 additions and 2 deletions
|
@ -1781,6 +1781,7 @@ dist_patch_DATA = \
|
|||
%D%/packages/patches/plib-CVE-2011-4620.patch \
|
||||
%D%/packages/patches/plib-CVE-2012-4552.patch \
|
||||
%D%/packages/patches/plotutils-spline-test.patch \
|
||||
%D%/packages/patches/po4a-partial-texinfo-menu-fix.patch \
|
||||
%D%/packages/patches/polkit-disable-systemd.patch \
|
||||
%D%/packages/patches/portaudio-audacity-compat.patch \
|
||||
%D%/packages/patches/portmidi-modular-build.patch \
|
||||
|
|
|
@ -240,11 +240,13 @@ (define-public po4a
|
|||
(version "0.69")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (string-append "https://github.com/mquinson/po4a/releases/download/v"
|
||||
(uri (string-append "https://github.com/mquinson/po4a"
|
||||
"/releases/download/v"
|
||||
version "/po4a-" version ".tar.gz"))
|
||||
(sha256
|
||||
(base32
|
||||
"15llrfdp4ilbrxy65hmmxka86xj0mrbqfiyzv715wrk16vqszm3w"))))
|
||||
"15llrfdp4ilbrxy65hmmxka86xj0mrbqfiyzv715wrk16vqszm3w"))
|
||||
(patches (search-patches "po4a-partial-texinfo-menu-fix.patch"))))
|
||||
(build-system perl-build-system)
|
||||
(arguments
|
||||
(list
|
||||
|
|
242
gnu/packages/patches/po4a-partial-texinfo-menu-fix.patch
Normal file
242
gnu/packages/patches/po4a-partial-texinfo-menu-fix.patch
Normal file
|
@ -0,0 +1,242 @@
|
|||
Submitted upstream: https://github.com/mquinson/po4a/pull/437
|
||||
|
||||
From 43db5c0b14ec2a8ba44d338bce024df87256457b Mon Sep 17 00:00:00 2001
|
||||
From: Maxim Cournoyer <maxim.cournoyer@gmail.com>
|
||||
Date: Thu, 27 Jul 2023 17:44:49 -0400
|
||||
Subject: [PATCH] lib: Texinfo: Translate partial menu node names.
|
||||
|
||||
Fixes <https://issues.guix.gnu.org/64881>.
|
||||
|
||||
* lib/Locale/Po4a/Texinfo.pm (translate_buffer_menuentry): Refine
|
||||
regexp, so that it matches menu entries lacking a description.
|
||||
Only call 'translate_buffer' on the description if it was provided.
|
||||
* t/fmt/texinfo/partialmenus.trans: New file.
|
||||
* t/fmt/texinfo/partialmenus.texi: Likewise.
|
||||
* t/fmt/texinfo/partialmenus.pot: Likewise.
|
||||
* t/fmt/texinfo/partialmenus.po: Likewise.
|
||||
* t/fmt/texinfo/partialmenus.norm: Likewise.
|
||||
* t/fmt-texinfo.t: Register the new 'partialmenus' test.
|
||||
---
|
||||
lib/Locale/Po4a/Texinfo.pm | 7 +++---
|
||||
t/fmt-texinfo.t | 2 +-
|
||||
t/fmt/texinfo/partialmenus.norm | 21 +++++++++++++++++
|
||||
t/fmt/texinfo/partialmenus.po | 40 ++++++++++++++++++++++++++++++++
|
||||
t/fmt/texinfo/partialmenus.pot | 40 ++++++++++++++++++++++++++++++++
|
||||
t/fmt/texinfo/partialmenus.texi | 14 +++++++++++
|
||||
t/fmt/texinfo/partialmenus.trans | 21 +++++++++++++++++
|
||||
7 files changed, 141 insertions(+), 4 deletions(-)
|
||||
create mode 100644 t/fmt/texinfo/partialmenus.norm
|
||||
create mode 100644 t/fmt/texinfo/partialmenus.po
|
||||
create mode 100644 t/fmt/texinfo/partialmenus.pot
|
||||
create mode 100644 t/fmt/texinfo/partialmenus.texi
|
||||
create mode 100644 t/fmt/texinfo/partialmenus.trans
|
||||
|
||||
diff --git a/lib/Locale/Po4a/Texinfo.pm b/lib/Locale/Po4a/Texinfo.pm
|
||||
index b4750699..1c3a4bae 100644
|
||||
--- a/lib/Locale/Po4a/Texinfo.pm
|
||||
+++ b/lib/Locale/Po4a/Texinfo.pm
|
||||
@@ -336,7 +336,7 @@ sub translate_buffer_menuentry {
|
||||
|
||||
my $translated_buffer = "";
|
||||
|
||||
- if ( $buffer =~ m/^(.*?)(::)\s+(.*)$/s
|
||||
+ if ( $buffer =~ m/^(.*?)(::)(?:\s+(.*))?$/s
|
||||
or $buffer =~ m/^(.*?: .*?)(\.)\s+(.*)$/s )
|
||||
{
|
||||
my ( $name, $sep, $description ) = ( $1, $2, $3 );
|
||||
@@ -347,8 +347,9 @@ sub translate_buffer_menuentry {
|
||||
$translated_buffer .= ' ' x ( $menu_sep_width - 1 - $l );
|
||||
$l = $menu_sep_width - 1;
|
||||
}
|
||||
- ( $t, @e ) = $self->translate_buffer( $description, $no_wrap, @env );
|
||||
-
|
||||
+ if ($description) {
|
||||
+ ( $t, @e ) = $self->translate_buffer( $description, $no_wrap, @env );
|
||||
+ }
|
||||
# Replace newlines with space for proper wrapping
|
||||
# See https://github.com/mquinson/po4a/issues/122
|
||||
$t =~ s/\n/ /sg;
|
||||
diff --git a/t/fmt-texinfo.t b/t/fmt-texinfo.t
|
||||
index 4b067e43..d9ed5df3 100644
|
||||
--- a/t/fmt-texinfo.t
|
||||
+++ b/t/fmt-texinfo.t
|
||||
@@ -10,7 +10,7 @@ use Testhelper;
|
||||
|
||||
my @tests;
|
||||
|
||||
-for my $test (qw(longmenu comments tindex)) {
|
||||
+for my $test (qw(longmenu partialmenus comments tindex)) {
|
||||
push @tests,
|
||||
{
|
||||
'format' => 'texinfo',
|
||||
diff --git a/t/fmt/texinfo/partialmenus.norm b/t/fmt/texinfo/partialmenus.norm
|
||||
new file mode 100644
|
||||
index 00000000..99240682
|
||||
--- /dev/null
|
||||
+++ b/t/fmt/texinfo/partialmenus.norm
|
||||
@@ -0,0 +1,21 @@
|
||||
+\input texinfo
|
||||
+@c ===========================================================================
|
||||
+@c
|
||||
+@c This file was generated with po4a. Translate the source file.
|
||||
+@c
|
||||
+@c ===========================================================================
|
||||
+
|
||||
+
|
||||
+@c These menus do not contain a description, which used to cause a
|
||||
+@c Texinfo menu entry to not be translated.
|
||||
+@menu
|
||||
+* A menu entry without any description:: A menu entry without any
|
||||
+ description
|
||||
+* Optional menu name: The menu node:: Optional menu name: The menu node
|
||||
+@end menu
|
||||
+
|
||||
+@node A menu entry without any description
|
||||
+@chapter A menu entry without any description
|
||||
+
|
||||
+@node The menu node
|
||||
+@chapter Optional menu name
|
||||
diff --git a/t/fmt/texinfo/partialmenus.po b/t/fmt/texinfo/partialmenus.po
|
||||
new file mode 100644
|
||||
index 00000000..31a14443
|
||||
--- /dev/null
|
||||
+++ b/t/fmt/texinfo/partialmenus.po
|
||||
@@ -0,0 +1,40 @@
|
||||
+# SOME DESCRIPTIVE TITLE
|
||||
+# Copyright (C) YEAR Free Software Foundation, Inc.
|
||||
+# This file is distributed under the same license as the PACKAGE package.
|
||||
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
|
||||
+#
|
||||
+#, fuzzy
|
||||
+msgid ""
|
||||
+msgstr ""
|
||||
+"Project-Id-Version: PACKAGE VERSION\n"
|
||||
+"POT-Creation-Date: 2023-07-27 17:29-0400\n"
|
||||
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
|
||||
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
+"Language-Team: LANGUAGE <LL@li.org>\n"
|
||||
+"Language: \n"
|
||||
+"MIME-Version: 1.0\n"
|
||||
+"Content-Type: text/plain; charset=UTF-8\n"
|
||||
+"Content-Transfer-Encoding: 8bit\n"
|
||||
+
|
||||
+#. type: chapter
|
||||
+#: partialmenus.texi:8 partialmenus.texi:10 partialmenus.texi:11
|
||||
+#, no-wrap
|
||||
+msgid "A menu entry without any description"
|
||||
+msgstr "A MENU ENTRY WITHOUT ANY DESCRIPTION"
|
||||
+
|
||||
+#. type: menuentry
|
||||
+#: partialmenus.texi:8
|
||||
+msgid "Optional menu name: The menu node"
|
||||
+msgstr "OPTIONAL MENU NAME: THE MENU NODE"
|
||||
+
|
||||
+#. type: node
|
||||
+#: partialmenus.texi:13
|
||||
+#, no-wrap
|
||||
+msgid "The menu node"
|
||||
+msgstr "THE MENU NODE"
|
||||
+
|
||||
+#. type: chapter
|
||||
+#: partialmenus.texi:14
|
||||
+#, no-wrap
|
||||
+msgid "Optional menu name"
|
||||
+msgstr "OPTIONAL MENU NAME"
|
||||
diff --git a/t/fmt/texinfo/partialmenus.pot b/t/fmt/texinfo/partialmenus.pot
|
||||
new file mode 100644
|
||||
index 00000000..0379f805
|
||||
--- /dev/null
|
||||
+++ b/t/fmt/texinfo/partialmenus.pot
|
||||
@@ -0,0 +1,40 @@
|
||||
+# SOME DESCRIPTIVE TITLE
|
||||
+# Copyright (C) YEAR Free Software Foundation, Inc.
|
||||
+# This file is distributed under the same license as the PACKAGE package.
|
||||
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
|
||||
+#
|
||||
+#, fuzzy
|
||||
+msgid ""
|
||||
+msgstr ""
|
||||
+"Project-Id-Version: PACKAGE VERSION\n"
|
||||
+"POT-Creation-Date: 2023-08-16 09:47-0400\n"
|
||||
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
|
||||
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
+"Language-Team: LANGUAGE <LL@li.org>\n"
|
||||
+"Language: \n"
|
||||
+"MIME-Version: 1.0\n"
|
||||
+"Content-Type: text/plain; charset=UTF-8\n"
|
||||
+"Content-Transfer-Encoding: 8bit\n"
|
||||
+
|
||||
+#. type: chapter
|
||||
+#: partialmenus.texi:8 partialmenus.texi:10 partialmenus.texi:11
|
||||
+#, no-wrap
|
||||
+msgid "A menu entry without any description"
|
||||
+msgstr ""
|
||||
+
|
||||
+#. type: menuentry
|
||||
+#: partialmenus.texi:8
|
||||
+msgid "Optional menu name: The menu node"
|
||||
+msgstr ""
|
||||
+
|
||||
+#. type: node
|
||||
+#: partialmenus.texi:13
|
||||
+#, no-wrap
|
||||
+msgid "The menu node"
|
||||
+msgstr ""
|
||||
+
|
||||
+#. type: chapter
|
||||
+#: partialmenus.texi:14
|
||||
+#, no-wrap
|
||||
+msgid "Optional menu name"
|
||||
+msgstr ""
|
||||
diff --git a/t/fmt/texinfo/partialmenus.texi b/t/fmt/texinfo/partialmenus.texi
|
||||
new file mode 100644
|
||||
index 00000000..f8663a2b
|
||||
--- /dev/null
|
||||
+++ b/t/fmt/texinfo/partialmenus.texi
|
||||
@@ -0,0 +1,14 @@
|
||||
+\input texinfo
|
||||
+
|
||||
+@c These menus do not contain a description, which used to cause a
|
||||
+@c Texinfo menu entry to not be translated.
|
||||
+@menu
|
||||
+* A menu entry without any description::
|
||||
+* Optional menu name: The menu node::
|
||||
+@end menu
|
||||
+
|
||||
+@node A menu entry without any description
|
||||
+@chapter A menu entry without any description
|
||||
+
|
||||
+@node The menu node
|
||||
+@chapter Optional menu name
|
||||
diff --git a/t/fmt/texinfo/partialmenus.trans b/t/fmt/texinfo/partialmenus.trans
|
||||
new file mode 100644
|
||||
index 00000000..0ef742a1
|
||||
--- /dev/null
|
||||
+++ b/t/fmt/texinfo/partialmenus.trans
|
||||
@@ -0,0 +1,21 @@
|
||||
+\input texinfo
|
||||
+@c ===========================================================================
|
||||
+@c
|
||||
+@c This file was generated with po4a. Translate the source file.
|
||||
+@c
|
||||
+@c ===========================================================================
|
||||
+
|
||||
+
|
||||
+@c These menus do not contain a description, which used to cause a
|
||||
+@c Texinfo menu entry to not be translated.
|
||||
+@menu
|
||||
+* A MENU ENTRY WITHOUT ANY DESCRIPTION:: A MENU ENTRY WITHOUT ANY
|
||||
+ DESCRIPTION
|
||||
+* OPTIONAL MENU NAME: THE MENU NODE:: OPTIONAL MENU NAME: THE MENU NODE
|
||||
+@end menu
|
||||
+
|
||||
+@node A MENU ENTRY WITHOUT ANY DESCRIPTION
|
||||
+@chapter A MENU ENTRY WITHOUT ANY DESCRIPTION
|
||||
+
|
||||
+@node THE MENU NODE
|
||||
+@chapter OPTIONAL MENU NAME
|
||||
|
||||
base-commit: 5b1cd768afdf4e9445812c5d43428495a0fde3c6
|
||||
--
|
||||
2.41.0
|
||||
|
Loading…
Reference in a new issue