unofficial mirror of emacs-devel@gnu.org 
 help / color / mirror / code / Atom feed
From: Eli Zaretskii <eliz@gnu.org>
To: Jean-Christophe Helary <jean.christophe.helary@gmail.com>
Cc: emacs-devel@gnu.org
Subject: Re: Before l10n, better practices for (message) ?
Date: Fri, 26 May 2017 17:44:58 +0300	[thread overview]
Message-ID: <83bmqfk785.fsf@gnu.org> (raw)
In-Reply-To: <A6738AF0-BFF8-4B8A-BA41-5D27A40C4434@gmail.com> (message from Jean-Christophe Helary on Fri, 26 May 2017 23:21:59 +0900)

> From: Jean-Christophe Helary <jean.christophe.helary@gmail.com>
> Date: Fri, 26 May 2017 23:21:59 +0900
> 
> >  (setq key1 "string1"
> >        key2 "string2")
> > 
> >> (message key1)
> >> (message key2)
> > 
> > One problem with this approach is that the programmer who writes the
> > original code and provides the messages in English will have to
> > manually create the English message catalog.
> 
> It just occurred to me that in gettext, "key" *is* the English string...

Yes.  But then you cannot use setq on literal strings.

> > Another problem is how to combine such catalogs from different source
> > files, and/or make sure the "keyN" names from different files don't
> > clash.
> 
> Is it very different from global variables clashing or not between packages?

No.  But the need to name messages with package qualifiers is a
significant nuisance, and will fill the "namespace" of a file with
many symbols.

> > IOW, the question of suitable infrastructure is still there, with any
> > approach.  That's why it is better to start by using whatever relevant
> > infrastructure is provided by gettext, because at least some of these
> > issues are already solved there, and because the package itself is
> > widely available.
> 
> Yes, but to me it looks like gettext works like it does this because C is not an interpreted language and forcing Lisp code to use the full gettext process does look a bit unnatural.

I didn't say we should use all of the capabilities of gettext.  We
just need to use what suits us.

> I can see that we use gettext to extract strings and create POTs to get POs. But once the POs are there, do we need to create binary MO blobs ? I'm not sure at all. So in the end gettext would be used only for string extraction and a few checks. But I may be missing something important here...

Figuring out which parts of gettext should be used is part of the
job.  Whatever we find useful will be net win, since we will not need
to develop and maintain that.

Also, even if we don't use some part, it could provide ideas for
similar infrastructure tailored to our needs.



  reply	other threads:[~2017-05-26 14:44 UTC|newest]

Thread overview: 41+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2017-05-22 23:30 Before l10n, better practices for (message) ? Jean-Christophe Helary
2017-05-23  0:59 ` Tino Calancha
2017-05-23  1:18   ` Jean-Christophe Helary
2017-05-23  2:55     ` Eli Zaretskii
2017-05-23  3:38       ` Jean-Christophe Helary
2017-05-23 18:36         ` Eli Zaretskii
2017-05-23 22:00           ` Jean-Christophe Helary
2017-05-24  2:32             ` Eli Zaretskii
2017-05-24  2:40               ` Jean-Christophe Helary
2017-05-24  4:22                 ` Paul Eggert
2017-05-24  8:08                   ` Jean-Christophe Helary
2017-05-24 19:12                     ` Eli Zaretskii
2017-05-24 21:29                       ` Jean-Christophe Helary
2017-05-26  3:50                         ` Richard Stallman
2017-05-24 22:09                       ` Paul Eggert
2017-05-24 22:35                         ` Jean-Christophe Helary
2017-05-26  8:07                           ` Eli Zaretskii
2017-05-24 23:51                         ` Jean-Christophe Helary
2017-05-23  7:52       ` Jean-Christophe Helary
2017-05-23 18:42         ` Eli Zaretskii
2017-05-23 22:03           ` Jean-Christophe Helary
2017-05-26  8:14             ` Eli Zaretskii
2017-05-26 14:21               ` Jean-Christophe Helary
2017-05-26 14:44                 ` Eli Zaretskii [this message]
2017-05-26 18:08                   ` Yuri Khan
2017-05-26 19:00                     ` Eli Zaretskii
2017-05-27  1:52                       ` Jean-Christophe Helary
2017-05-26 18:54               ` Etienne Prud’homme
2017-05-26 19:06                 ` Eli Zaretskii
2017-05-26 19:15                   ` Etienne Prud’homme
2017-05-26 19:27                     ` Eli Zaretskii
2017-05-26 21:57                       ` Etienne Prud’homme
2017-05-27  7:22                         ` Eli Zaretskii
2017-05-27  1:16                 ` Jean-Christophe Helary
2017-05-27  7:43                   ` Eli Zaretskii
2017-05-27  4:08       ` Marcin Borkowski
2017-05-27  7:49         ` Eli Zaretskii
2017-05-28  4:00           ` Marcin Borkowski
2017-05-27 23:27         ` Göktuğ Kayaalp
2017-05-28  0:44           ` Jean-Christophe Helary
2017-05-28 14:44             ` Göktuğ Kayaalp

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

  List information: https://www.gnu.org/software/emacs/

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

  git send-email \
    --in-reply-to=83bmqfk785.fsf@gnu.org \
    --to=eliz@gnu.org \
    --cc=emacs-devel@gnu.org \
    --cc=jean.christophe.helary@gmail.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.savannah.gnu.org/cgit/emacs.git

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 read-only IMAP folder(s) and NNTP newsgroup(s).