From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.io!.POSTED.blaine.gmane.org!not-for-mail From: Daniel Brooks Newsgroups: gmane.emacs.devel Subject: Re: Internationalize Emacs's messages (swahili) Date: Sat, 26 Dec 2020 02:48:36 -0800 Message-ID: <87v9cosv0b.fsf@db48x.net> References: <87o8ivumn5.fsf@telefonica.net> <87v9d3nkxk.fsf@gnus.org> <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> Mime-Version: 1.0 Content-Type: text/plain Injection-Info: ciao.gmane.io; posting-host="blaine.gmane.org:116.202.254.214"; logging-data="8428"; mail-complaints-to="usenet@ciao.gmane.io" User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/27.1 (gnu/linux) Cc: all_but_last@163.com, bugs@gnu.support, dimech@gmx.com, abrochard@gmx.com, emacs-devel@gnu.org, eliz@gnu.org To: Richard Stallman Original-X-From: emacs-devel-bounces+ged-emacs-devel=m.gmane-mx.org@gnu.org Sat Dec 26 11:50:12 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 1kt79H-00026F-Oi for ged-emacs-devel@m.gmane-mx.org; Sat, 26 Dec 2020 11:50:11 +0100 Original-Received: from localhost ([::1]:39868 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1kt79G-0007pw-OR for ged-emacs-devel@m.gmane-mx.org; Sat, 26 Dec 2020 05:50:10 -0500 Original-Received: from eggs.gnu.org ([2001:470:142:3::10]:54472) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1kt77u-0007Py-1e for emacs-devel@gnu.org; Sat, 26 Dec 2020 05:48:46 -0500 Original-Received: from smtp-out-4.mxes.net ([198.205.123.69]:51635) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1kt77r-0001Mh-KM for emacs-devel@gnu.org; Sat, 26 Dec 2020 05:48:45 -0500 Original-Received: from Customer-MUA (mua.mxes.net [10.0.0.1]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.mxes.net (Postfix) with ESMTPSA id 80C6875983; Sat, 26 Dec 2020 05:48:37 -0500 (EST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=mxes.net; s=mta; t=1608979719; bh=dSEmD/PAKhOrvzhS4AeyBWKtQUAR6bPLlKzH0EBFQr4=; h=From:To:Subject:References:Date:In-Reply-To:Message-ID: MIME-Version:Content-Type; b=Q9/TCvKlyqXVE7v3JLWDzKllPypvdm+kwPX9xwYf1WanYqq5FAPOdBNBPyQT7h90s qV11cKo16myJNEgXGblbP1L595ncXUr+dADDhyf+QtY1+phKn3S2zAF8e1qtZRhH3Z bn99e8Xp1NjosfiuRL4PqRV7L8ds2guv/0Jajo6c= Face: iVBORw0KGgoAAAANSUhEUgAAADAAAAAwBAMAAAClLOS0AAAABGdBTUEAALGOfPtRkwAAABJQ TFRFpKfbdou67PD6JjJgAwUWXGSeIcyLHgAAAkZJREFUOI1VU8Fy6yAMxLi+Q13fCZ3cnQL3dqTc 7RD+/1feStDXVnXHDuvVSivZTMba2GPdw3gyCGcMAFxTyrTd9dwGoxHiZX9PmRFUHYAQlGGtXY+F Uk0SJOxgJiUEnH1qkitT9D+pQub7qGAmUbR6bu3CvI96Yv6QqkBBMrsyfZccr1/RDXGDTLf4P7ZY glVxe2V+/ACXWO1gvDO9/gDRpFFVmPluvLcmBjd5H6d8DEte+Pbk4rcY/Fa5tLKLOtCZsuQKYhpa LOkYDT7hESya7/WIET3lfQBqX0pwFtbI832Is0ayMUR9B+12xjgPCQ089cfwkCkX6L5TPmRelJTh zMS0Sz1PyjLAMCUWjcmgQLWQMds+e3aaauZDf9dU9A2/8kPVF2odCUoMKHkfjJR+mbgC+DRiycw5 3XSqGe6HmhN/AWjHypkAXOAFW5EiuA1ge2GiZuMb0s1fSEXcATeLUfbyEY2L8yPOmdSsdghQXx3K pz2eoeXuYvMCINVFDrCdNfVUp4eJ6cSEbjbgFjBEvonGGTrgv9cHjAc8aVgSAPoxaONbzfwhDIhR at7IIS7fAGiDSwIA9alhhTBzfA7YM2FY6eMwayrIGK8FDFmshmUA43WqhFtpvoqG9HHaJ7fqtgTz 8EWVkgZgtsylFliHDgk0MB7KAEC45C/rgnGvanNLXyzOeTzcT2nw/N44gfrtYXRQLoz9Q3TgmJRx 2Mx/Q51qzpm+l3m8z2SWBqC5+PZXAtNYlGFf/gKfHfjFkDT4x7od7R+w3Ls+ZdQBuQAAAABJRU5E rkJggg== In-Reply-To: (Richard Stallman's message of "Sat, 26 Dec 2020 05:28:15 -0500") X-Sent-To: Received-SPF: none client-ip=198.205.123.69; envelope-from=db48x@db48x.net; helo=smtp-out-4.mxes.net X-Spam_score_int: -25 X-Spam_score: -2.6 X-Spam_bar: -- X-Spam_report: (-2.6 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, RCVD_IN_DNSWL_LOW=-0.7, SPF_HELO_PASS=-0.001, SPF_NONE=0.001 autolearn=unavailable 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:261828 Archived-At: Richard Stallman writes: > > My personal opinion is that gettext is too limited. It works for simple > > things, but provides no help at all for complex things. > > That is true. > > > I think that the most productive way to think about translation is that > > each coherent message that we present to a user (whether it's via the > > message function or not) should explicitly be the result of calling a > > function written by the translator. > > That could be acceptable if it is designed such that the functions > are so limited that there are no insecurities. That's a good point. The Fluent "language" does only string substitution, switch statements that choose amongst a set of strings, and calling functions pre-defined by the program being translated. That makes it easy to compile into safe code, or to produce a database that can interpreted quickly. > For GNU to use it, we would want it to fit into the framework > of gettext. We could have a new function that programs should call, > which would look for a function encoded in the translation string. I haven't considered that possibility, but my first impression is that mashing them together might not be a good idea. > Would you please email me the most important parts of the description > of Project Fluent? So I don't have to hunt for them? Sure. The blurb on the FLuent website says this: * Asymmetric Localization Natural-sounding translations with genders[1] and grammatical cases only when necessary. Expressiveness is not limited by the grammar of the source language. * Progressive Enhancement Translations are isolated; locale-specific logic doesn't leak to other locales. Authors can iteratively improve translations without impact on other languages. * Fully-Featured Date, time, and number formatting. Plural categories. Bidirectionality support. Custom formatters. Easy-to-read syntax. Runtime translation and re-translation. Robust error handling. * Open Source Fluent Syntax 1.0 was released in April 2019. Client- and server-side implementations in JS, Python, and Rust. React bindings. Licensed under the Apache 2.0 License[2]. [1]: This includes both the genders of people and the genders of random nouns in the translation. It also handles other sources of variation such as plurals, declensions, inflections, and so on. [2]: Aka, it's Free Software too. db48x