From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.org!.POSTED.blaine.gmane.org!not-for-mail From: Paul Eggert Newsgroups: gmane.emacs.devel Subject: Re: Emacs i18n Date: Mon, 18 Mar 2019 14:55:44 -0700 Organization: UCLA Computer Science Department Message-ID: <7f5a6a09-9cdf-4522-7eda-4fa0e288563c@cs.ucla.edu> References: <87o97aq6gz.fsf@jidanni.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> <838sxrdgco.fsf@gnu.org> <831s3jdbrk.fsf@gnu.org> <507BBC71-4E90-476A-9F1D-E0D7F0EB56C9@gmail.com> <87k1h5w08o.fsf@mail.linkov.net> <1b23d0ff-3998-b795-9895-7320e7028f70@cs.ucla.edu> <87d0mvu6wo.fsf@mail.linkov.net> <87va0htcss.fsf@mail.linkov.net> <87o967yjcf.fsf@mail.linkov.net> Mime-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable Injection-Info: blaine.gmane.org; posting-host="blaine.gmane.org:195.159.176.226"; logging-data="15153"; mail-complaints-to="usenet@blaine.gmane.org" User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:60.0) Gecko/20100101 Thunderbird/60.5.1 Cc: emacs-devel To: Juri Linkov Original-X-From: emacs-devel-bounces+ged-emacs-devel=m.gmane.org@gnu.org Mon Mar 18 22:55:59 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 1h60Eg-0003dd-MX for ged-emacs-devel@m.gmane.org; Mon, 18 Mar 2019 22:55:58 +0100 Original-Received: from localhost ([127.0.0.1]:48068 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1h60Ef-0006Go-LK for ged-emacs-devel@m.gmane.org; Mon, 18 Mar 2019 17:55:57 -0400 Original-Received: from eggs.gnu.org ([209.51.188.92]:39698) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1h60EW-0006Gh-Od for emacs-devel@gnu.org; Mon, 18 Mar 2019 17:55:49 -0400 Original-Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1h60EW-0006UL-0z for emacs-devel@gnu.org; Mon, 18 Mar 2019 17:55:48 -0400 Original-Received: from zimbra.cs.ucla.edu ([131.179.128.68]:48676) by eggs.gnu.org with esmtps (TLS1.0:DHE_RSA_AES_256_CBC_SHA1:32) (Exim 4.71) (envelope-from ) id 1h60EV-0006Tb-Hn for emacs-devel@gnu.org; Mon, 18 Mar 2019 17:55:47 -0400 Original-Received: from localhost (localhost [127.0.0.1]) by zimbra.cs.ucla.edu (Postfix) with ESMTP id 75EE31615B6; Mon, 18 Mar 2019 14:55:45 -0700 (PDT) Original-Received: from zimbra.cs.ucla.edu ([127.0.0.1]) by localhost (zimbra.cs.ucla.edu [127.0.0.1]) (amavisd-new, port 10032) with ESMTP id pUDrGRNGkedX; Mon, 18 Mar 2019 14:55:44 -0700 (PDT) Original-Received: from localhost (localhost [127.0.0.1]) by zimbra.cs.ucla.edu (Postfix) with ESMTP id B5D381615DD; Mon, 18 Mar 2019 14:55:44 -0700 (PDT) X-Virus-Scanned: amavisd-new at zimbra.cs.ucla.edu Original-Received: from zimbra.cs.ucla.edu ([127.0.0.1]) by localhost (zimbra.cs.ucla.edu [127.0.0.1]) (amavisd-new, port 10026) with ESMTP id l6wFM9ldy4kh; Mon, 18 Mar 2019 14:55:44 -0700 (PDT) Original-Received: from Penguin.CS.UCLA.EDU (Penguin.CS.UCLA.EDU [131.179.64.200]) by zimbra.cs.ucla.edu (Postfix) with ESMTPSA id 9909C161585; Mon, 18 Mar 2019 14:55:44 -0700 (PDT) Openpgp: preference=signencrypt Autocrypt: addr=eggert@cs.ucla.edu; prefer-encrypt=mutual; keydata= xsFNBEyAcmQBEADAAyH2xoTu7ppG5D3a8FMZEon74dCvc4+q1XA2J2tBy2pwaTqfhpxxdGA9 Jj50UJ3PD4bSUEgN8tLZ0san47l5XTAFLi2456ciSl5m8sKaHlGdt9XmAAtmXqeZVIYX/UFS 96fDzf4xhEmm/y7LbYEPQdUdxu47xA5KhTYp5bltF3WYDz1Ygd7gx07Auwp7iw7eNvnoDTAl KAl8KYDZzbDNCQGEbpY3efZIvPdeI+FWQN4W+kghy+P6au6PrIIhYraeua7XDdb2LS1en3Ss mE3QjqfRqI/A2ue8JMwsvXe/WK38Ezs6x74iTaqI3AFH6ilAhDqpMnd/msSESNFt76DiO1ZK QMr9amVPknjfPmJISqdhgB1DlEdw34sROf6V8mZw0xfqT6PKE46LcFefzs0kbg4GORf8vjG2 Sf1tk5eU8MBiyN/bZ03bKNjNYMpODDQQwuP84kYLkX2wBxxMAhBxwbDVZudzxDZJ1C2VXujC OJVxq2kljBM9ETYuUGqd75AW2LXrLw6+MuIsHFAYAgRr7+KcwDgBAfwhPBYX34nSSiHlmLC+ KaHLeCLF5ZI2vKm3HEeCTtlOg7xZEONgwzL+fdKo+D6SoC8RRxJKs8a3sVfI4t6CnrQzvJbB n6gxdgCu5i29J1QCYrCYvql2UyFPAK+do99/1jOXT4m2836j1wARAQABzSBQYXVsIEVnZ2Vy dCA8ZWdnZXJ0QGNzLnVjbGEuZWR1PsLBfgQTAQIAKAUCTIByZAIbAwUJEswDAAYLCQgHAwIG FQgCCQoLBBYCAwECH In-Reply-To: <87o967yjcf.fsf@mail.linkov.net> Content-Language: en-US X-detected-operating-system: by eggs.gnu.org: GNU/Linux 3.x X-Received-From: 131.179.128.68 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:234343 Archived-At: On 3/18/19 2:20 PM, Juri Linkov wrote: > Using only =E2=80=98ngettext=E2=80=99 has an additional advantage: > there will be no need to add more such functions as > nmessage, nerror, nuser-error, ntramp-error, etc. That's not a real advantage, as there is no need to add those functions anyway. They are merely conveniences that we can either add or not add, depending on whether the convenience in use is worth the hassle of supporting and documenting the functions. For example, suppose 'message' always translates its format argument and that there is no 'nmessage' function. Then you can use 'message' this way to handle plurals: =C2=A0 (message "%s" (format (ngettext n "%d item" "%d items") n)) If we find expressions like the above to be common, we can easily write an nmessage function in Lisp, so that the code can look like this instead= : =C2=A0 (nmessage n "%d item" "%d items" n) but this is merely a convenience. > =E2=80=98format-message=E2=80=99 should check if its first argument is = translated, > and not to call gettext again. > I'd rather not involve dynamic checking like that, as it's fragile and more complicated to explain and a bit slower. format-message should either always translate, or never translate. In practice, it'll be more convenient for format-message to always translate, so I expect we should do it that way.