[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Bug#512210: lintian: [checks/po-debconf] Extend template check for updated strings



On Mon, 19 Jan 2009 18:27:40 +0100
Christian Perrier <bubulle@debian.org> wrote:

> Quoting Neil Williams (codehelp@debian.org):
> 
> > > Yes, we can change the severity, although I'd like to run that past
> > > debian-i18n first.
> > 
> > Christian - this is a slightly different problem to what you first
> > thought. It isn't that some translators have answered and some have
> > not, it is that a new question has been added and nobody at all has
> > replied. If a sane deadline is set, isn't it unlikely that not one of
> > the language teams managed to get a translation to the maintainer in
> > time? It is far more likely that the maintainer didn't ask the
> > translation teams before uploading the new question.
> 
> I agree here. If you manage to get through the problem of having to
> examine binary packages' templates, then I agree that having a
> template that's marked translatable and *no* translation at all makes
> it very likely that no call for translations was issued when the
> templated was added.

Something like this should work:

# i18n -- lintian check script  -*- perl -*-

package Lintian::codehelp;
use strict;
use Tags;
use Util;

sub run {

    my $pkg = shift;
    my $type = shift;

    if (-f "control/templates")
    {
        my $incomplete;
        my $stanza;
        open (I18N, '<', "control/templates") or
            fail ("cannot open lintian templates: $!");
        while (<I18N>)
        {
            if (/^Description: /)
            {
                $stanza++;
                undef $incomplete;
                next;
            }
            undef ($stanza) if (/^Description-/);
            if ((defined ($stanza) and (/^Template:/)))
            {
                $incomplete++;
                last;
            }
        }
        close (I18N);
        tag ("ch-package-contains-docs", "templates") if (defined $incomplete);
    }
}

1;


control/templates is safe as we're checking the binary here - we don't
want to be checking debian/foo.templates. It's not perfect, it probably
also need to check that this isn't a source package with:

    return if ($type eq "source");

and output the $pkg variable instead of the rather bland "templates".

It simply says that once a Description has been found, there must be a
Description- (this too can be improved) before the next empty line and
following Template stanza. That might need improvement to catch the
last question in the file, especially if there is no terminal newline.
I've not used a sensible tagname either.

Under what circumstances are questions untranslated? There should
always be some help text that needs translation.

> By "fairly likely", I mean "quite certain", indeed....
> 
> > The tag name might have to change:
> > 
> > new-question-without-translations
> 
> that would certainly help avoiding the case where maintainers entirely
> drop existing translations....
> 
> A properly worded long information will also help.

I'm sure we can come up with that. Something based on:

 debconf only ever asks the same question once - to be effective, that
 question should be translated the very first time that question is
 offered to the user. Translating it after the user has answered the
 question in English is pointless - at least as far as that user is
 concerned.
 .
 This package contains a template file containing at least one question
 that has not been translated at all. This means that translators
 were not properly warned about new strings.
 .
 Translators may be notified of changes using podebconf-report-po, for
 example:
 .
  podebconf-report-po --call --withtranslators --deadline="+10 days" \
  --languageteam
Ref: devref 6.5.2.2

I can spend some more time on this, if you'd like a fully tested patch Russ.

-- 


Neil Williams
=============
http://www.data-freedom.org/
http://www.linux.codehelp.co.uk/
http://e-mail.is-not-s.ms/

Attachment: pgpaJ7qma4NTB.pgp
Description: PGP signature


Reply to: