Hey, On Mon, Mar 22, 2021 at 04:31:19PM +0100, Miguel Ángel Arruga Vivas wrote: > Hi, > > Daniel Kiper <daniel.ki...@oracle.com> writes: > > > Translators can use http://alpha.gnu.org/pub/gnu/grub/grub-2.06~rc1.pot for > > translation. > > The pot signature is available at > > http://alpha.gnu.org/pub/gnu/grub/grub-2.06~rc1.pot.sig > > Sorry for the delay to report, but during translation I noticed that two > messages from the POT file have a problem related to the usage of > PRI[ux]GRUB_UINT64_T on format strings. This isn't supported by GNU > Gettext as explained on its manual[1], therefore the strings aren't > extracted properly by xgettext.
Thank you for the report! > The attached patch provides a trivial solution close to the one proposed > by the manual. Could you send this patch using "git send-email"? > From 750ab1afaf54c61d14419b7a5610856879f4851c Mon Sep 17 00:00:00 2001 > From: =?UTF-8?q?Miguel=20=C3=81ngel=20Arruga=20Vivas?= > <rosen644...@gmail.com> > Date: Mon, 22 Mar 2021 16:12:41 +0100 > Subject: [PATCH] i18n: Format large integers before the translation message. > > GNU gettext only supports C99 macros for integral types, more specific > macros should be used to format the number to a string before the > internationalization, as explained on the section of gettext's manual > "Preparing Strings": > <http://www.gnu.org/software/gettext/manual/html_node/Preparing-Strings.html#No-string-concatenation> Could you add your SOB here? ...and some nits below... > --- > grub-core/disk/luks2.c | 5 ++++- > grub-core/efiemu/i386/loadcore64.c | 14 ++++++++++---- > grub-core/kern/arm64/dl.c | 12 ++++++++---- > grub-core/kern/ia64/dl.c | 12 ++++++++---- > grub-core/kern/riscv/dl.c | 13 +++++++++---- > grub-core/kern/sparc64/dl.c | 11 +++++++---- > grub-core/kern/x86_64/dl.c | 12 ++++++++---- > 7 files changed, 54 insertions(+), 25 deletions(-) > > diff --git a/grub-core/disk/luks2.c b/grub-core/disk/luks2.c > index 125e8609a..5525e3c66 100644 > --- a/grub-core/disk/luks2.c > +++ b/grub-core/disk/luks2.c > @@ -612,6 +612,7 @@ luks2_recover_key (grub_disk_t source, > /* Try all keyslot */ > for (json_idx = 0; json_idx < size; json_idx++) > { > + char indexstr[21]; /* log10 (2^64) ~ 20, plus nul character. */ > typeof (source->total_sectors) max_crypt_sectors = 0; > > grub_errno = GRUB_ERR_NONE; > @@ -732,11 +733,13 @@ luks2_recover_key (grub_disk_t source, > continue; > } > > + grub_snprintf (indexstr, sizeof (indexstr) - 1, "%" PRIuGRUB_UINT64_T, > + keyslot.idx); > /* > * TRANSLATORS: It's a cryptographic key slot: one element of an array > * where each element is either empty or holds a key. > */ > - grub_printf_ (N_("Slot \"%" PRIuGRUB_UINT64_T "\" opened\n"), > keyslot.idx); > + grub_printf_ (N_("Slot \"%s\" opened\n"), indexstr); > > candidate_key_len = keyslot.key_size; > break; > diff --git a/grub-core/efiemu/i386/loadcore64.c > b/grub-core/efiemu/i386/loadcore64.c > index 7316efc39..ea0b207c2 100644 > --- a/grub-core/efiemu/i386/loadcore64.c > +++ b/grub-core/efiemu/i386/loadcore64.c > @@ -121,10 +121,16 @@ grub_arch_efiemu_relocate_symbols64 > (grub_efiemu_segment_t segs, > return err; > break; > default: > - return grub_error (GRUB_ERR_NOT_IMPLEMENTED_YET, > - N_("relocation 0x%" PRIxGRUB_UINT64_T > - " is not implemented yet"), > - ELF_R_TYPE (rel->r_info)); > + { > + char rel_info[17]; /* log16 (2^64) = 16, plus nul. */ Please add empty line here and s/nul/NUL/. > + grub_snprintf (rel_info, sizeof (rel_info) - 1, > + "%" PRIxGRUB_UINT64_T, > + ELF_R_TYPE (rel->r_info)); > + return grub_error (GRUB_ERR_NOT_IMPLEMENTED_YET, > + N_("relocation 0x%s" > + " is not implemented yet"), > + rel_info); Please merge all these 3 lines into one, i.e: N_("relocation 0x%s" is not implemented yet"), rel_info); > + } > } > } > } > diff --git a/grub-core/kern/arm64/dl.c b/grub-core/kern/arm64/dl.c > index 401672374..566bb84e0 100644 > --- a/grub-core/kern/arm64/dl.c > +++ b/grub-core/kern/arm64/dl.c > @@ -183,10 +183,14 @@ grub_arch_dl_relocate_symbols (grub_dl_t mod, void > *ehdr, > break; > > default: > - return grub_error (GRUB_ERR_NOT_IMPLEMENTED_YET, > - N_("relocation 0x%" PRIxGRUB_UINT64_T > - " is not implemented yet"), > - ELF_R_TYPE (rel->r_info)); > + { > + char rel_info[17]; /* log16 (2^64) = 16, plus nul. */ Ditto and below please... Does this patch fix all PRI* translation issues? When I get next version of patch from you I will rebuild and update pot file. Daniel _______________________________________________ Grub-devel mailing list Grub-devel@gnu.org https://lists.gnu.org/mailman/listinfo/grub-devel