From: Jakub Narebski <jnareb@gmail.com>
To: "Ævar Arnfjörð Bjarmason" <avarab@gmail.com>
Cc: Piotr Krukowiecki <piotr.krukowiecki@gmail.com>,
Junio C Hamano <gitster@pobox.com>, Jeff King <peff@peff.net>,
Sverre Rabbelier <srabbelier@gmail.com>,
git@vger.kernel.org
Subject: Re: What's cooking in git.git (Feb 2011, #06; Sun, 27)
Date: Thu, 10 Mar 2011 17:37:29 +0100 [thread overview]
Message-ID: <201103101737.32237.jnareb@gmail.com> (raw)
In-Reply-To: <AANLkTikD2M=33B9E2mpBEmT5rLsZHPFc-T5Yqp3EMRJx@mail.gmail.com>
On Thu, 10 Mar 2011, Ævar Arnfjörð Bjarmason wrote:
> On Wed, Mar 2, 2011 at 11:32, Jakub Narebski <jnareb@gmail.com> wrote:
> > Piotr Krukowiecki <piotr.krukowiecki@gmail.com> writes:
> > > Don't know how it's handled in shell scripts or perl or whatever other
> > > language (which does not use gettext?)
> >
> > Both shell scripts and Perl scripts would use gettext: gettext.sh for
> > shell, Locale::Messages for Perl (we need lower level than Text::Domain,
> > and Locale::Maketext is first no longer recommended, and second does
> > not use gettext at least by default).
>
> The i18n series uses Locale::Maketext:
> https://github.com/avar/git/blob/ab%2Fi18n/perl/Git/I18N.pm
If I remember correctly previous version (maybe a few iterations in
the back) used Locale::Messages for Perl i18n, isn't it?
> What do you mean it's not recommended? There are some articles about
> Perl i18n saying you shouldn't use it, effectively because:
>
> * Building GNU gettext is hard, let's go shopping.
Git would use gettext for C and shell anyway, so this doesn't apply.
> * There were some bugs in it, which do not apply to us.
* Gettext support for plural forms etc. (ngettext) is better
and easier to use for translators; Locale::Maketext requires one to
be a programmer.
> So using it is fine. I might still write some Gettext::XS::Tiny module
> that works with both GNU gettext and Solaris, stick it on the CPAN and
> make us depend on it. It would more closely align with what we
> need. But that's something for the far future.
The Perl Journal article on using Locale::Maketext is supposedly outdated,
see http://rassie.org/archives/247 (On the state of i18n in Perl) from 2009.
<blockquote>
One basic, but fatal, mistake Maketext does is off-loading a lot of
linguistic work onto programmer.
* One particularly important point is the plural forms support ('1 apple',
'2 apples'), which is important for many languages outside of USA and
Western Europe . Maketext requires you to write a quant function that
gets a string and a number as parameters and does some voodoo to
produce the right string. Voodoo is undefined. In gettext it is --
a formula for producing plural forms is defined which selects one of
provided plural phrases.
* No translator in his sane mind will ever write a Perl module for a
language (they aren't programmers, remember?), the programmer will
have to do it and will also have to understand the implications.
* The quant notation ("Your search matched [quant,_1,document]!")
foolishly assumes word order is the same in all languages.
Implementing a quant method properly would require passing the whole
sentence into the function and doing a complete linguistic
transformation which is highly non-trivial and better done by human.
* Most of those linguistic “conventions” like number formatting or
plural forms do not change over time and can be compiled at one place.
One such place is Unicode’s CLDR project, which also includes plural
form building and number/date formatting among other country- and
language-dependant data.
* It can’t even be assumed that the translators actually know all of
these conventions! They might assume they know them, but translator
is not necessarily doing translations for a living, he might be a
volunteer, like in most open source projects. Imagine what happens
when an amateur translator explains the inner workings of his native
language to a programmer?
</blockquote>
--
Jakub Narebski
Poland
next prev parent reply other threads:[~2011-03-10 16:38 UTC|newest]
Thread overview: 12+ messages / expand[flat|nested] mbox.gz Atom feed top
2011-02-28 6:48 What's cooking in git.git (Feb 2011, #06; Sun, 27) Junio C Hamano
2011-02-28 13:22 ` Sverre Rabbelier
2011-02-28 16:52 ` Junio C Hamano
2011-03-01 20:54 ` Jeff King
2011-03-02 2:07 ` Junio C Hamano
2011-03-02 21:27 ` Jeff King
2011-03-02 5:24 ` Junio C Hamano
2011-03-02 7:17 ` Piotr Krukowiecki
2011-03-02 10:32 ` Jakub Narebski
2011-03-10 9:44 ` Ævar Arnfjörð Bjarmason
2011-03-10 16:37 ` Jakub Narebski [this message]
2011-03-02 21:28 ` Jeff King
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=201103101737.32237.jnareb@gmail.com \
--to=jnareb@gmail.com \
--cc=avarab@gmail.com \
--cc=git@vger.kernel.org \
--cc=gitster@pobox.com \
--cc=peff@peff.net \
--cc=piotr.krukowiecki@gmail.com \
--cc=srabbelier@gmail.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).