From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.io!.POSTED.blaine.gmane.org!not-for-mail From: Newsgroups: gmane.emacs.devel Subject: Re: Internationalize Emacs's messages (swahili) Date: Sat, 26 Dec 2020 09:57:29 +0100 Message-ID: <20201226085729.GA7535@tuxteam.de> References: <83sg7xrgr5.fsf@gnu.org> <83h7odrdwy.fsf@gnu.org> <86sg7w39fh.fsf@163.com> <83pn30pku5.fsf@gnu.org> <86wnx8otoj.fsf@163.com> <834kkbp9vr.fsf@gnu.org> <87czyxuxw6.fsf@db48x.net> <87y2hlt82w.fsf@db48x.net> Mime-Version: 1.0 Content-Type: multipart/signed; micalg=pgp-sha1; protocol="application/pgp-signature"; boundary="n8g4imXOkfNTN/H1" Injection-Info: ciao.gmane.io; posting-host="blaine.gmane.org:116.202.254.214"; logging-data="29640"; mail-complaints-to="usenet@ciao.gmane.io" User-Agent: Mutt/1.5.21 (2010-09-15) To: emacs-devel@gnu.org Original-X-From: emacs-devel-bounces+ged-emacs-devel=m.gmane-mx.org@gnu.org Sat Dec 26 09:58:35 2020 Return-path: Envelope-to: ged-emacs-devel@m.gmane-mx.org Original-Received: from lists.gnu.org ([209.51.188.17]) by ciao.gmane.io with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1kt5PH-0007cI-33 for ged-emacs-devel@m.gmane-mx.org; Sat, 26 Dec 2020 09:58:35 +0100 Original-Received: from localhost ([::1]:35384 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1kt5PG-0007mM-5S for ged-emacs-devel@m.gmane-mx.org; Sat, 26 Dec 2020 03:58:34 -0500 Original-Received: from eggs.gnu.org ([2001:470:142:3::10]:37074) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1kt5ON-0006wJ-FH for emacs-devel@gnu.org; Sat, 26 Dec 2020 03:57:39 -0500 Original-Received: from mail.tuxteam.de ([5.199.139.25]:33365) by eggs.gnu.org with esmtps (TLS1.2:DHE_RSA_AES_128_CBC_SHA1:128) (Exim 4.90_1) (envelope-from ) id 1kt5OK-0005I6-5b for emacs-devel@gnu.org; Sat, 26 Dec 2020 03:57:39 -0500 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=tuxteam.de; s=mail; h=From:In-Reply-To:Content-Type:MIME-Version:References:Message-ID:Subject:To:Date; bh=dvrkO7v/hpIKQN8TMoIALrdAZ3pkGD1U5Fv0QwnOrCk=; b=alGh514e60obfmQ++Hl4G9DCXjQUsvzJpxr0xTH2Gf5Jp+dO417/38l9MTt9GOQlcdEj5hKVwvavkDlRKPKTRNp2CBqxRXspL4oKbu/QLzcHJACrFkKvXteKRsKHyXSi+i/rHNwkzU11tjXMdr6CtuEm13ShahNSo9Xz+qS9konYIAeLYmIo3t6uIdGavhFn0l8km7vnJ5D6PFEwH9DrvSPEFigybWrRPqbcxCmlWdUFbniWzCtCB0KkpVMfuJ6pYIzYMJGMhFP3h54CfDvUS9cyN4FLWfdLjLVWp5frYgu/ZJ7NYWh8cMKTfz4JYxsVwpHp3u3qeExZ9BLUCjRHVQ==; Original-Received: from tomas by mail.tuxteam.de with local (Exim 4.80) (envelope-from ) id 1kt5OD-0002Ni-Tk for emacs-devel@gnu.org; Sat, 26 Dec 2020 09:57:29 +0100 Content-Disposition: inline In-Reply-To: <87y2hlt82w.fsf@db48x.net> Received-SPF: pass client-ip=5.199.139.25; envelope-from=tomas@tuxteam.de; helo=mail.tuxteam.de X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: emacs-devel@gnu.org X-Mailman-Version: 2.1.23 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-mx.org@gnu.org Original-Sender: "Emacs-devel" Xref: news.gmane.io gmane.emacs.devel:261793 Archived-At: --n8g4imXOkfNTN/H1 Content-Type: text/plain; charset=utf-8 Content-Disposition: inline Content-Transfer-Encoding: quoted-printable On Fri, Dec 25, 2020 at 10:06:15PM -0800, Daniel Brooks wrote: > Daniel Brooks writes: >=20 > > Thus, each translation should provide a package full of functions rather > > than a file full of strings. It could literally be that simple, though I >=20 > As a concrete example of what I see in my head when I talk about this, > here's some code that generates a moderately complex message, which I > have taken from todo-mode.el: Before you set out to reinvent wheels, you should check what's out there. The ngettext interface [1], which _is_ part of the gettext package, addresses (even multiple!) plural forms, i.e. your Slavic example. Thing is, human languages are messy. You won't get everything covered. And the more elaborate you get, the more difficult it'll be to find translators having the time to grok all that complexity. One of the nice things about this simplistic string -> string approach is that it allows "lightweight" distributed translation approaches, often web-based: those allow people to contribute translations to a project who otherwise wouldn't even dream of contributing. There are even platforms out there where you can register your Free Software project and where people can contribute translations, via a Web interface. As always, it's a tradeoff. Cheers [1] https://en.wikipedia.org/wiki/Gettext#Plural_form - t --n8g4imXOkfNTN/H1 Content-Type: application/pgp-signature; name="signature.asc" Content-Description: Digital signature -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.4.12 (GNU/Linux) iEYEARECAAYFAl/m+vkACgkQBcgs9XrR2kYsVgCeJU1j/onV/JJIub+rhhzcRHQb 8uMAnAgWYVenO50eU9SXhDYn1sTJqgY1 =h0O0 -----END PGP SIGNATURE----- --n8g4imXOkfNTN/H1--