From: Richard Stallman <rms@gnu.org>
To: Paul Eggert <eggert@cs.ucla.edu>
Cc: eliz@gnu.org, juri@linkov.net, emacs-devel@gnu.org
Subject: Re: Emacs i18n
Date: Thu, 07 Mar 2019 23:07:03 -0500 [thread overview]
Message-ID: <E1h26ml-0005N6-N6@fencepost.gnu.org> (raw)
In-Reply-To: <65e3fe78-3264-12ff-1edf-a05bfd86a9a9@cs.ucla.edu> (message from Paul Eggert on Wed, 6 Mar 2019 11:47:23 -0800)
[[[ To any NSA and FBI agents reading my email: please consider ]]]
[[[ whether defending the US Constitution against all enemies, ]]]
[[[ foreign or domestic, requires you to follow Snowden's example. ]]]
> we do something like this:
> (nmessage count
> "The highlighted item is not up to date."
> "The highlighted items are not up to date."
> timestamp)
It might be better to define a function like this
(defun numeric-select (count &rest messages)
(or (nth count messages)
(car (last messages))))
and then write
(message (numeric-select count
"The highlighted item is not up to date."
"The highlighted items are not up to date."))
Translation infrastructure might be able to recognize this construct
and mark the two strings as translatable if they are constants.
Even better, translation could allow replacing that list of messages
with a different list of messages, perhaps longer. That would
make possible perfect support for a language where you need a different
text for 2 and for numbers larger than 2.
We could decide that the first element is for COUNT = 0,
and if that element is a number instead of a string, it means
to use the element for that number.
(message (numeric-select count
2
"The highlighted item is not up to date."
"The highlighted items are not up to date."))
This, together with the feature of translating the list
as a different list, could be totally general.
--
Dr Richard Stallman
President, Free Software Foundation (https://gnu.org, https://fsf.org)
Internet Hall-of-Famer (https://internethalloffame.org)
next prev parent reply other threads:[~2019-03-08 4:07 UTC|newest]
Thread overview: 161+ messages / expand[flat|nested] mbox.gz Atom feed top
[not found] <87o97aq6gz.fsf@jidanni.org>
[not found] ` <87tvgoud56.fsf@mail.linkov.net>
[not found] ` <83o96wk2mi.fsf@gnu.org>
[not found] ` <87k1hjfvjd.fsf@mail.linkov.net>
[not found] ` <E1gzZKP-0000kS-Iw@fencepost.gnu.org>
[not found] ` <871s3p0zdz.fsf@mail.linkov.net>
2019-03-03 3:04 ` bug#34520: delete-matching-lines should report how many lines it deleted Richard Stallman
2019-03-03 15:31 ` Emacs i18n (was: bug#34520: delete-matching-lines should report how many lines it deleted) Eli Zaretskii
2019-03-03 20:57 ` Emacs i18n Juri Linkov
2019-03-04 1:46 ` Jean-Christophe Helary
2019-03-06 9:38 ` Elias Mårtenson
2019-03-06 11:23 ` Jean-Christophe Helary
2019-03-21 20:33 ` Clément Pit-Claudel
2019-03-21 20:50 ` Eli Zaretskii
2019-03-21 21:03 ` Clément Pit-Claudel
2019-03-21 21:21 ` Jean-Christophe Helary
2019-03-21 21:34 ` Clément Pit-Claudel
2019-03-21 21:56 ` Jean-Christophe Helary
2019-03-21 22:05 ` Clément Pit-Claudel
2019-03-21 23:46 ` Jean-Christophe Helary
2019-03-22 8:22 ` Eli Zaretskii
2019-03-22 16:10 ` Clément Pit-Claudel
2019-03-22 16:35 ` Eli Zaretskii
2019-03-22 17:16 ` Clément Pit-Claudel
2019-03-22 17:35 ` Eli Zaretskii
2019-03-22 23:17 ` Clément Pit-Claudel
2019-03-21 21:17 ` Jean-Christophe Helary
2019-03-21 21:59 ` Juri Linkov
2019-03-22 8:22 ` Eli Zaretskii
2019-03-23 21:50 ` Juri Linkov
2019-03-24 3:36 ` Eli Zaretskii
2019-03-24 21:55 ` Juri Linkov
2019-03-24 23:31 ` Jean-Christophe Helary
2019-03-25 21:32 ` Juri Linkov
2019-03-25 22:31 ` Paul Eggert
2019-03-26 16:11 ` Eli Zaretskii
2019-03-26 16:22 ` Stefan Monnier
2019-03-26 16:55 ` Eli Zaretskii
2019-03-26 22:35 ` Paul Eggert
2019-03-27 3:43 ` Eli Zaretskii
2019-03-28 14:56 ` Clément Pit-Claudel
2019-03-28 15:52 ` Eli Zaretskii
2019-03-27 2:34 ` Jean-Christophe Helary
2019-03-26 23:16 ` Juri Linkov
2019-03-27 1:35 ` Paul Eggert
2019-04-24 6:39 ` Jean-Christophe Helary
2019-04-24 20:18 ` Juri Linkov
2019-03-25 3:35 ` Eli Zaretskii
2019-03-25 9:04 ` Jean-Christophe Helary
2019-03-25 21:02 ` Juri Linkov
2019-03-26 3:27 ` Eli Zaretskii
2019-03-27 23:06 ` Richard Stallman
2019-03-25 10:52 ` Mattias Engdegård
2019-03-25 15:37 ` Eli Zaretskii
2019-03-25 21:11 ` Juri Linkov
2019-03-25 22:05 ` Mattias Engdegård
2019-03-27 21:22 ` Juri Linkov
2019-03-28 11:03 ` Mattias Engdegård
2019-03-04 3:27 ` Emacs i18n (was: bug#34520: delete-matching-lines should report how many lines it deleted) Richard Stallman
2019-03-04 16:36 ` Eli Zaretskii
2019-03-04 18:37 ` Paul Eggert
2019-03-04 19:07 ` Eli Zaretskii
2019-03-05 2:09 ` Paul Eggert
2019-03-05 21:58 ` Emacs i18n Juri Linkov
2019-03-06 2:16 ` Richard Stallman
2019-03-06 18:15 ` Eli Zaretskii
2019-03-06 19:47 ` Paul Eggert
2019-03-06 20:19 ` Eli Zaretskii
2019-03-07 1:52 ` Paul Eggert
2019-03-07 3:37 ` Eli Zaretskii
2019-03-08 4:07 ` Richard Stallman
2019-03-08 8:16 ` Eli Zaretskii
2019-03-08 4:07 ` Richard Stallman [this message]
2019-03-08 4:33 ` Elias Mårtenson
2019-03-08 8:22 ` Eli Zaretskii
2019-03-09 3:11 ` Richard Stallman
2019-03-09 7:54 ` Paul Eggert
2019-03-09 10:30 ` Eli Zaretskii
2019-03-10 3:05 ` Richard Stallman
2019-03-10 6:07 ` Paul Eggert
2019-03-11 1:20 ` Richard Stallman
2019-03-11 3:52 ` Paul Eggert
2019-03-12 3:31 ` Richard Stallman
2019-03-12 3:31 ` Richard Stallman
2019-03-10 8:45 ` Yuri Khan
2019-03-10 3:05 ` Richard Stallman
2019-03-10 6:14 ` Paul Eggert
2019-03-10 3:05 ` Richard Stallman
2019-03-07 3:42 ` Richard Stallman
2019-03-07 14:46 ` Eli Zaretskii
2019-03-07 17:19 ` Paul Eggert
2019-03-07 18:24 ` martin rudalics
2019-03-07 18:44 ` Paul Eggert
2019-03-07 20:22 ` Eli Zaretskii
2019-03-07 22:25 ` Paul Eggert
2019-03-08 7:29 ` Eli Zaretskii
2019-03-08 4:18 ` Richard Stallman
2019-03-08 4:11 ` Richard Stallman
2019-03-06 17:30 ` Eli Zaretskii
2019-03-06 18:09 ` Eli Zaretskii
2019-03-06 19:39 ` Paul Eggert
2019-03-06 19:49 ` Eli Zaretskii
2019-03-07 1:33 ` Paul Eggert
2019-03-07 3:30 ` Eli Zaretskii
2019-03-07 16:06 ` Paul Eggert
2019-03-07 4:35 ` Jean-Christophe Helary
2019-03-07 16:04 ` Paul Eggert
2019-03-08 4:09 ` Richard Stallman
2019-03-11 21:48 ` Juri Linkov
2019-03-11 22:51 ` Paul Eggert
2019-03-12 21:45 ` Juri Linkov
2019-03-17 21:23 ` Juri Linkov
2019-03-18 21:20 ` Juri Linkov
2019-03-18 21:55 ` Paul Eggert
2019-03-19 20:40 ` Juri Linkov
2019-03-11 23:59 ` Jean-Christophe Helary
2019-03-12 9:16 ` Michael Albinus
2019-03-06 19:47 ` Paul Eggert
2019-03-06 20:21 ` Eli Zaretskii
2019-03-07 1:43 ` Paul Eggert
2019-03-07 3:31 ` Eli Zaretskii
2019-03-07 3:44 ` Richard Stallman
2019-03-07 14:48 ` Eli Zaretskii
2019-03-07 22:29 ` Juri Linkov
2019-03-08 1:48 ` Jean-Christophe Helary
2019-03-08 8:08 ` Eli Zaretskii
2019-03-08 15:11 ` Jean-Christophe Helary
2019-03-08 20:11 ` Eli Zaretskii
2019-03-09 2:44 ` Jean-Christophe Helary
2019-03-09 6:40 ` Eli Zaretskii
2019-03-09 8:37 ` Michael Albinus
2019-03-09 10:45 ` Eli Zaretskii
2019-03-09 11:27 ` Michael Albinus
2019-03-09 17:23 ` Eli Zaretskii
2019-03-09 19:55 ` Paul Eggert
2019-03-09 20:07 ` Eli Zaretskii
2019-03-09 20:47 ` Paul Eggert
2019-03-09 20:04 ` Michael Albinus
2019-03-09 20:14 ` Eli Zaretskii
2019-03-09 19:22 ` Paul Eggert
2019-03-09 19:39 ` Eli Zaretskii
2019-03-09 20:48 ` Paul Eggert
2019-03-09 20:08 ` Michael Albinus
2019-03-10 3:09 ` Richard Stallman
2019-03-10 13:38 ` Eli Zaretskii
2019-03-08 7:37 ` Eli Zaretskii
2019-03-09 3:12 ` Richard Stallman
2019-03-08 4:11 ` Richard Stallman
2019-03-06 2:09 ` Emacs i18n (was: bug#34520: delete-matching-lines should report how many lines it deleted) Richard Stallman
2019-03-05 2:49 ` Richard Stallman
2019-03-05 3:31 ` Eli Zaretskii
2019-03-20 11:59 Emacs i18n Bruno Haible
2019-03-20 16:36 ` Paul Eggert
2019-03-20 21:32 ` Juri Linkov
2019-03-21 2:14 ` Richard Stallman
[not found] ` <E1h6nE3-0000bt-SW-iW7gFb+/I3LZHJUXO5efmti2O/JbrIOy@public.gmane.org>
2019-03-21 21:45 ` Juri Linkov
2019-03-23 2:28 ` Richard Stallman
2019-03-23 7:55 ` Yuri Khan
[not found] ` <CAP_d_8WjQwAtcWCfkjXHtc-dqYyBfnaP0+9L8KK6eCp4r_ZsPQ-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2019-03-23 17:50 ` Ineiev
2019-03-24 1:43 ` Richard Stallman
[not found] ` <E1h7WOF-0006T8-Be-iW7gFb+/I3LZHJUXO5efmti2O/JbrIOy@public.gmane.org>
2019-03-23 21:48 ` Juri Linkov
2019-03-24 1:47 ` Richard Stallman
2019-03-22 20:50 ` Chusslove Illich
[not found] ` <87h8bx5ijn.fsf-i9wRM+HIrmlRTR8OWt4JRw@public.gmane.org>
2019-03-21 2:55 ` Bruno Haible
2019-03-21 2:14 ` Richard Stallman
2019-03-22 1:26 ` Bruno Haible
2019-03-23 2:29 ` Richard Stallman
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=E1h26ml-0005N6-N6@fencepost.gnu.org \
--to=rms@gnu.org \
--cc=eggert@cs.ucla.edu \
--cc=eliz@gnu.org \
--cc=emacs-devel@gnu.org \
--cc=juri@linkov.net \
/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).