mailing list of musl libc
 help / color / mirror / code / Atom feed
From: Pablo Correa Gomez <pabloyoyoista@postmarketos.org>
To: musl@lists.openwall.com
Subject: [musl] On musl-locales, gettext, and easying translatable strings detections
Date: Tue, 30 Jan 2024 00:02:03 +0100	[thread overview]
Message-ID: <150a43fecb5b775052693c9f34b30140cc483bed.camel@postmarketos.org> (raw)

Hello everybody,

I've been working on musl-locales with the general goal of improving
localization in musl. I'd hope that some of the locale-related patches
in the pipeline could be merged if we improve the locales, and prove
that we can maintain them. 

While going through the current status, I've realized that the ".pot"
file contains a multitude of strings that are not supposed to be
localized in musl (e.g: strings in src/misc/fmtmsg.c), and it has
missing some others (like key-related errors from
src/errno/__strerror.h). Manually crafting such a file is complete
madness, and gettext can help here, but we need to be able to provide
it with some way to identify what is a translatable string, as it does
not understand static strings with '\0' as separator. I've come with an
example of something that would work for gettext, but would maintain
the behavior of static strings. Would this be something that might be
considered, given a complete patch is provided? 
          
==============================================================        
diff --git i/src/network/hstrerror.c w/src/network/hstrerror.c
index a4d001c5..c86e3e8f 100644
--- i/src/network/hstrerror.c
+++ w/src/network/hstrerror.c
@@ -3,11 +3,14 @@
 #include "locale_impl.h"
 
 static const char msgs[] =
-       "Host not found\0"
-       "Try again\0"
-       "Non-recoverable error\0"
-       "Address not available\0"
-       "\0Unknown error";
+#define MSG(m) m"\0"
+       MSG("Host not found")
+       MSG("Try again")
+       MSG("Non-recoverable error")
+       MSG("Address not available")
+       "\0"
+       MSG("Unknown error");
+#undef MSG
 
 const char *hstrerror(int ecode)
 {
==============================================================

Would probably mean applying the same logic to the relevant strings in 

 src/network/gai_strerror.c                                           
 src/network/hstrerror.c                                              
 src/regex/regerror.c                                                 
 src/string/strsignal.c                                               
 src/locale/langinfo.c                                                
 
Anything else I might have missed?

Best regards,
Pablo Correa Gomez.

             reply	other threads:[~2024-01-29 23:02 UTC|newest]

Thread overview: 3+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2024-01-29 23:02 Pablo Correa Gomez [this message]
2024-01-30 12:12 ` Konstantin P.
2024-01-31 22:44   ` Pablo Correa Gomez

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=150a43fecb5b775052693c9f34b30140cc483bed.camel@postmarketos.org \
    --to=pabloyoyoista@postmarketos.org \
    --cc=musl@lists.openwall.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
Code repositories for project(s) associated with this public inbox

	https://git.vuxu.org/mirror/musl/

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).