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

Re: RFC: Signed packages and translations



On Sat, Sep 01, 2001 at 07:59:32AM +0200, Simon Richter wrote:
> 
> Step 1: Signed archives
> -----------------------

I don't make comments on this. 

I am not a dpkg guru and IMHO dpkg support now some signaturs. 

> Step 2: Allow addition/removal of members in .deb archives
> ----------------------------------------------------------
> 
> In order for automatic insertion of translated texts into ready .deb
> archives to work, dpkg-deb needs to support adding and removing of members,
> together with their signatures.

this is a nice idea and it make something like subpackages. 

but maybe we must make thoughts about that. some dpkg mens?

If we can make this, read the following:

> Step 3: Translations
> ----------------------------------------------------------
> 
> Translations are added inside special member archives which have their name
> derived from control.tar.gz by a) prepending "_t" during the transitional
> period and b) appending their locale name to the first component
> ("control"), separated by a dash. If the resulting name exceeds
> sizeof(ar_name) bytes, the first component is shortened accordingly (but
> never the locale name):
> 
> The translation archive can contain a "control" and a "templates" file.
> These files have much the same format as the corresponding files from the
> control.tar.gz file but with the exception that they contain only the
> identifiers ("Package: xyz" for "control" and "Template: foo/bar" for
> "templates") and the translated "Description-ll_CC:" field. These files are
> merged by dpkg-deb when extracting the package.

(btw: in the template file we have more translateable tags)

I like this all, but we have the problem with outdated translations. 

Now I make a extra proposal:

The maintainer put the translations in not direct in the deb. He put
the translation in a po-file per languages in the debian source
directory. (controll-XX.po). 

A to written script (dh_i10ndesc) include the translation only in the
deb, if the orignal description from the po file comform with the
description in the controll file. With this we don't have outdate
descriptions in the deb. 

dpkg isself use the dgettext patch. The patch is very small, and
gettext make the work. With this we have dselect and dpkg --list,
--yet-to-unpack and --audit translated. 

dpkg --info should show the normal output (without dgettext) and all
translations in the deb. 

The dgettext use the mo file in /usr/share/desc-trans/<locale>/ and
this file will generated from all po file in
/usr/share/desc-trans/<locale>/desc.d/ 

dpkg -i regenerate the po file with the orignal and translated
description from the package and save this po files in the desc.d
directory. 

The user can install a desc-trans-XX.deb and have with this deb a
local override file.

this all is only for dpkg, and not for apt. Apt can use dgettext also,
but in the mo file are no descriptions from new packages (maybe some
from the local override file). We need a solution for apt.

katie has all informations. it has the descriptions from the packages,
the translations from the packages and maybe one/some override files
with traslations. It can make Packages-XX files. But I don't like
this. 

IMHO better is this: 
katie make the normal Packages file and some Descriptions-XX files.
With only Package: and Description-XX: tags. Apt can download the
Packages file like normal and/or on/some Descriptions file(s). 

The user can config what languages he will support. Apt can use this
Descriptions files itself or (IMHO) better make a po file with the
Packages and Description file and make with this a mo file. And use
the normal dgettext. With this we don't use the desc-trans-XX.deb in
real. 


On word to the 'fallback langauges'. It is not nice that the fallback
languages is english in the normal way. Maybe someone should patch the
gettext lib and add multilanges support to this lib. 

The gettext should probe some languages (like this pseudo code:
  if not text=gettext ("hello","de_DE") {
     if not text=gettext ("hello","fr") {
        text="hello"
     }
  }
  printf text; )
The use can set the LANG enviroment like LANG=de_DE:fr to get first
the german, as first fallback the french and as last fallback the
english text. With this modified gettext lang, all gettext
applications use this (like mutt). 

(I am not a gettext guru, and gettext support this feature already?)
  

Gruss
Grisu
-- 
Michael Bramer  -  a Debian Linux Developer http://www.debian.org
PGP: finger grisu@db.debian.org  -- Linux Sysadmin   -- Use Debian Linux
Traue nie einer Computerzeitschrift mit schoenen Frauen auf dem Cover.
                            (Besim Karadeniz in de.comm.internet.misc)

Attachment: pgpeIQhTj6ppA.pgp
Description: PGP signature


Reply to: