From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.org!.POSTED.blaine.gmane.org!not-for-mail From: Richard Stallman Newsgroups: gmane.emacs.devel Subject: Re: Emacs i18n Date: Thu, 07 Mar 2019 23:07:03 -0500 Message-ID: References: <87o97aq6gz.fsf@jidanni.org> <87tvgoud56.fsf@mail.linkov.net> <83o96wk2mi.fsf@gnu.org> <87k1hjfvjd.fsf@mail.linkov.net> <871s3p0zdz.fsf@mail.linkov.net> <83h8ckezyt.fsf@gnu.org> <83o96qegv1.fsf@gnu.org> <32b1ab1b-bef4-629a-8830-b1dcc6915087@cs.ucla.edu> <83a7iae9va.fsf@gnu.org> <05ed2dec-2a84-f7dc-1af5-c9d923992785@cs.ucla.edu> <87bm2p56gu.fsf@mail.linkov.net> <837edbdg33.fsf@gnu.org> <65e3fe78-3264-12ff-1edf-a05bfd86a9a9@cs.ucla.edu> Reply-To: rms@gnu.org Content-Type: text/plain; charset=Utf-8 Injection-Info: blaine.gmane.org; posting-host="blaine.gmane.org:195.159.176.226"; logging-data="147224"; mail-complaints-to="usenet@blaine.gmane.org" Cc: eliz@gnu.org, juri@linkov.net, emacs-devel@gnu.org To: Paul Eggert Original-X-From: emacs-devel-bounces+ged-emacs-devel=m.gmane.org@gnu.org Fri Mar 08 05:07:21 2019 Return-path: Envelope-to: ged-emacs-devel@m.gmane.org Original-Received: from lists.gnu.org ([209.51.188.17]) by blaine.gmane.org with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:256) (Exim 4.89) (envelope-from ) id 1h26n1-000cBM-7p for ged-emacs-devel@m.gmane.org; Fri, 08 Mar 2019 05:07:19 +0100 Original-Received: from localhost ([127.0.0.1]:36734 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1h26n0-0006Z5-5N for ged-emacs-devel@m.gmane.org; Thu, 07 Mar 2019 23:07:18 -0500 Original-Received: from eggs.gnu.org ([209.51.188.92]:50286) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1h26mq-0006Z0-QP for emacs-devel@gnu.org; Thu, 07 Mar 2019 23:07:09 -0500 Original-Received: from fencepost.gnu.org ([2001:470:142:3::e]:47803) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1h26mm-0002Kj-Na; Thu, 07 Mar 2019 23:07:05 -0500 Original-Received: from rms by fencepost.gnu.org with local (Exim 4.82) (envelope-from ) id 1h26ml-0005N6-N6; Thu, 07 Mar 2019 23:07:03 -0500 In-Reply-To: <65e3fe78-3264-12ff-1edf-a05bfd86a9a9@cs.ucla.edu> (message from Paul Eggert on Wed, 6 Mar 2019 11:47:23 -0800) X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] X-BeenThere: emacs-devel@gnu.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: "Emacs development discussions." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: emacs-devel-bounces+ged-emacs-devel=m.gmane.org@gnu.org Original-Sender: "Emacs-devel" Xref: news.gmane.org gmane.emacs.devel:233905 Archived-At: [[[ 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)