From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.org!.POSTED!not-for-mail From: Jean-Christophe Helary Newsgroups: gmane.emacs.devel Subject: Re: Before l10n, better practices for (message) ? Date: Fri, 26 May 2017 23:21:59 +0900 Message-ID: References: <2623E5C5-4D40-4C9F-BFF6-181D2E69F984@gmail.com> <831srgnuyc.fsf@gnu.org> <83vaormn2x.fsf@gnu.org> <1B4DE39C-E293-4370-9E76-82E1B7385C00@gmail.com> <83o9ugjaqd.fsf@gnu.org> NNTP-Posting-Host: blaine.gmane.org Mime-Version: 1.0 (Mac OS X Mail 10.3 \(3273\)) Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: quoted-printable X-Trace: blaine.gmane.org 1495808589 25743 195.159.176.226 (26 May 2017 14:23:09 GMT) X-Complaints-To: usenet@blaine.gmane.org NNTP-Posting-Date: Fri, 26 May 2017 14:23:09 +0000 (UTC) To: emacs-devel Original-X-From: emacs-devel-bounces+ged-emacs-devel=m.gmane.org@gnu.org Fri May 26 16:23:03 2017 Return-path: Envelope-to: ged-emacs-devel@m.gmane.org Original-Received: from lists.gnu.org ([208.118.235.17]) by blaine.gmane.org with esmtp (Exim 4.84_2) (envelope-from ) id 1dEG8r-0006WW-NB for ged-emacs-devel@m.gmane.org; Fri, 26 May 2017 16:23:01 +0200 Original-Received: from localhost ([::1]:37034 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1dEG8x-00042u-3F for ged-emacs-devel@m.gmane.org; Fri, 26 May 2017 10:23:07 -0400 Original-Received: from eggs.gnu.org ([2001:4830:134:3::10]:58185) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1dEG81-0003sg-61 for emacs-devel@gnu.org; Fri, 26 May 2017 10:22:10 -0400 Original-Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1dEG7w-0005GN-9B for emacs-devel@gnu.org; Fri, 26 May 2017 10:22:09 -0400 Original-Received: from mail-pf0-x231.google.com ([2607:f8b0:400e:c00::231]:33235) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1dEG7w-0005Ef-2e for emacs-devel@gnu.org; Fri, 26 May 2017 10:22:04 -0400 Original-Received: by mail-pf0-x231.google.com with SMTP id e193so13182809pfh.0 for ; Fri, 26 May 2017 07:22:03 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:content-transfer-encoding:mime-version:subject:date:references :to:in-reply-to:message-id; bh=BUjhZQpaeEKnrdHqmdzaNKgu+JmS6jD95hmdHP0mKqg=; b=Iv1H9d4QPS4HPkuhu6ypruoZwD0I705VUawvJZTzXCg8+PMD2u+Gl1rjo36AzpvGrl ZlfwMTrjqdMO5bswvu9K74KM5DphUUZB6F04KQXcNUTZBTBawqQJv34B2QZPdb+LdBnx ZbTc3sffUesfWvvU/AAJKFr8jtjX/Ys+GRDQAWiM3hj5PKCsPKUVCnBF2VCCI6VduM24 5Jhg1bh+YmzkE3QQHm3pS5oqpSUmIUdgIJBhmyL7d5vzBs6/cV4lIkIRBnigEQhA6z11 9PFi224jCp5JUh/C9fqSYdthVBoDQc6dUVXlehH+cUjknfOKzbbg1fc4dCnezER1NZR9 j88A== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:content-transfer-encoding:mime-version :subject:date:references:to:in-reply-to:message-id; bh=BUjhZQpaeEKnrdHqmdzaNKgu+JmS6jD95hmdHP0mKqg=; b=ROyCBsiiHLvbUzroc5eQauI3xSsgpDuBONeudjaltMTQGpMESk9Co8qpuH0JJ9b5KM wNuLFdFWrrFo8uMicfYVR34BqPExx5MrZoyhTpVdG85o92G0ZMvjIN+PpIhMdApx3P2C j5TK1JFVtNxNAig8ycEorCKhZ2hcjIVyipUUuMgWxecR3Zy4pCpVYa+SsZQ3pDPa0iJ4 yzsSohfIanSxn2GwOGeN/E9oefolhH/gk7jatGNO0Hi8l6WmCUwEeTefDuzd4me59f1F gRPTFDthPhwvuXkO3obEnVKheObQII8Uy38TKC7SkxUn2u755EwZHTRX5/zhxqL0qCj+ IQLg== X-Gm-Message-State: AODbwcCFI5iTklZzXgn16+a3CVhkdCu42qmUTEowSN0IoQZNqzEIRtNJ TeVKn4asuFF/rG1brRs= X-Received: by 10.84.211.136 with SMTP id c8mr2441706pli.96.1495808522836; Fri, 26 May 2017 07:22:02 -0700 (PDT) Original-Received: from [192.168.24.63] (pl25298.ag0304.nttpc.ne.jp. [133.232.153.210]) by smtp.gmail.com with ESMTPSA id y5sm1993812pgb.4.2017.05.26.07.22.01 for (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Fri, 26 May 2017 07:22:02 -0700 (PDT) In-Reply-To: <83o9ugjaqd.fsf@gnu.org> X-Mailer: Apple Mail (2.3273) X-detected-operating-system: by eggs.gnu.org: Genre and OS details not recognized. X-Received-From: 2607:f8b0:400e:c00::231 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:215217 Archived-At: > I believe you meant something like >=20 > (setq key1 "string1" > key2 "string2") >=20 >> (message key1) >> (message key2) >=20 > 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... = So all gettext really does is create a POT with the key, the PO is = created with the localized string, and the binary MO provides the = localized string if present and if not the program displays the original = which already is *in* the code... The key=3Dstring format I'm showing above is actually the format Java = programs use (and until now I was mostly involved with i18n/l10n of FOSS = java programs). So the programer is actually creating the catalogue = leaving only arbitrary key names in the source... > 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? > 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 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... Jean-Christophe=