From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.org!.POSTED.blaine.gmane.org!not-for-mail From: Eli Zaretskii Newsgroups: gmane.emacs.devel Subject: Re: Emacs i18n Date: Thu, 07 Mar 2019 22:22:29 +0200 Message-ID: <83d0n2bfju.fsf@gnu.org> 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> <83o96mbv4l.fsf@gnu.org> Injection-Info: blaine.gmane.org; posting-host="blaine.gmane.org:195.159.176.226"; logging-data="85177"; mail-complaints-to="usenet@blaine.gmane.org" Cc: juri@linkov.net, rms@gnu.org, emacs-devel@gnu.org To: Paul Eggert Original-X-From: emacs-devel-bounces+ged-emacs-devel=m.gmane.org@gnu.org Thu Mar 07 21:23:48 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 1h1zYS-000M35-7d for ged-emacs-devel@m.gmane.org; Thu, 07 Mar 2019 21:23:48 +0100 Original-Received: from localhost ([127.0.0.1]:59111 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1h1zYQ-0001Ot-UQ for ged-emacs-devel@m.gmane.org; Thu, 07 Mar 2019 15:23:46 -0500 Original-Received: from eggs.gnu.org ([209.51.188.92]:59204) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1h1zXn-0001On-Ko for emacs-devel@gnu.org; Thu, 07 Mar 2019 15:23:08 -0500 Original-Received: from fencepost.gnu.org ([2001:470:142:3::e]:41963) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1h1zXm-0000UF-Kt; Thu, 07 Mar 2019 15:23:06 -0500 Original-Received: from [176.228.60.248] (port=1181 helo=home-c4e4a596f7) by fencepost.gnu.org with esmtpsa (TLS1.2:RSA_AES_256_CBC_SHA1:256) (Exim 4.82) (envelope-from ) id 1h1zXU-0008UZ-Dl; Thu, 07 Mar 2019 15:22:52 -0500 In-reply-to: (message from Paul Eggert on Thu, 7 Mar 2019 09:19:35 -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:233897 Archived-At: > Cc: emacs-devel@gnu.org, juri@linkov.net > From: Paul Eggert > Date: Thu, 7 Mar 2019 09:19:35 -0800 > > This limitation will cause problems with Elisp code that does extensive > parsing or processing of English syntax (doctor.el, say), and that sort > of Elisp code will remain English-only (unless someone takes the time to > i18nize them specially). However most Elisp code does not parse English > or generate idiomatic English on the fly: instead, it uses a fixed, > stilted style that can routinely be converted to calls like (message > FORMAT ARG1 ARG2 ...) where FORMAT is translated and the ARG values are not. > > To get a quick feel for this issue, I did a simple grep for the string > '(message (concat' in the Emacs source code. I found 41 instances of > this string. But 'message' is just a representative of a class of such functions. There are others: 'signal', 'error', 'user-error', 'princ', 'format', and probably some more I'm missing. So the actual number of occurrences is larger than the 40 you found. I guess I'm saying that we should think some more whether we indeed want to give up marking translatable strings and instead rely on some functions always translating their argument strings. Perhaps doing so will impose restrictions on what a Lisp program can do, and we don't want to live with such restrictions without some fire escape, in the form of explicitly translated strings? In general, I think we should not blindly accept any technique used for localization, because Emacs is so much different from a typical console program written in C.