Package: gcl
Version: 2.6.6-1
Severity: wishlist
Tags: patch l10n

Using the "new" gettext format for debconf templates helps for templates
translations. For instance, detecting outdated or untranslated strings 
becomes considerably easier. It also keeps track of who did which
translation.

Patch description:
------------------
The attached patch does the required modifications:
- debian/control modification for dependencies:
  build-dep: debhelper (>= 4.1.16) which depends on po-debconf
  depend: debconf (>= 1.2.0) since old versions have problems with templates
          specifying the encoding of their content
- Add 'debconf-updatepo' to the clean target of your debian/rules
  (to make sure that the relevant files are ready for translation in the
   distributed source packages, and thus help translators)
- execute "debconf-gettextize debian/*templates*". This does:
  - generate po/ directory containing all the translation mecanism
  - change the template file to mark some strings as translatable by putting
    a _ before the field name.
- mark the right strings as translatable in the templates. This is a manual
  check to make sure that fields containing stuff which cannot be
  translated such as kernel module name, and the one not shown to the users
  are not marked as translatable.
- removed files left by debconf-gettextize (*.templates.XX which are the
  old-style translations and now live in debian/po/XX.po)

  The previously existing translation were not lost in the process, but
  automatically converted to po files. You may however want to ask your
  previous translator to review them and update them if needed. Also ask
  them to add their name in the header of the po files, to ease future
  maintainance and update of the file.
  
For more details, see po-debconf documentation, especially "man 7
po-debconf"

Aditionally I had to add an extra dependacy to the clean target. For the
templates to update correctly the final templates files must exist when
debconf-updatepo is invoked.

The way you build your package is not very po-debconf friendly. I was unable
to make both the gcl and gclcvs templates get included for translations
without fiddling too much with your rules files.

A possible solution could be to have both templates as fixed files.

Another one, better IMHO, is to avoid using the @EXT@ replacement in the
translatable parts of the templates. In that way the same translations could
be used for both packages.


About backports:
----------------
Please note that the suggested modifications will make your
package a little bit harder to backport to earlier Debian releases. If
this is a concern to you, you may try to adopt the method used by the
openssh package and detailed by Colin Watson in
http://lists.debian.org/debian-i18n/2003/debian-i18n-200307/msg00026.html

This patch does not includes this method as this would make it too
invasive, IMHO. So, preserving backportability is up to you...

Stylistic considerations:
-------------------------
The templates of your package may be easily improved by applying the advices
contained at the following address:

http://people.debian.org/~bubulle/dtsg/dtsg.txt

Don't get me wrong, I don't want to criticize, I just want the template to
reach a translatable state (ie quite stable) rather soon.
                      
Future:
-------
Once the switch is achieved, and style improvements are done (if any), I
guess that you will receive translations of your templates rather soon. They
will consist in XX.po files where XX is the code of the language they
contain. Simply put them to debian/po, add a changelog entry, and your
package is ready for rebuilding and uploading after the usual checks.

If you modify your templates in the future, no action is absolutely
mandatory from you to take care of the translations (outdated translations
will be automatically discarded). But it is nicer to your translators and
your not english speaking users to include the updated translations in the
same upload. For that, run debconf-updatepo, and mail each translator the
XX.po file they provided you. Their adress can be found in the headers of
the po file. Wait a few days so that they can do their work, and put the new
version of the po file back in position in debian/po before upload.



Thanks for helping the translators, and thus your non english speaker
end-users.



-- System Information:
Debian Release: 3.1
  APT prefers unstable
  APT policy: (500, 'unstable'), (500, 'testing'), (1, 'experimental')
Architecture: i386 (i686)
Kernel: Linux 2.6.10-1-k7
Locale: LANG=en_US, LC_CTYPE=en_US (charmap=ISO-8859-1)

Versions of packages gcl depends on:
ii  binutils-dev             2.15-5          The GNU binary utilities (BFD deve
ii  debconf [debconf-2.0]    1.4.45          Debian configuration management sy
ii  gcc                      4:3.3.5-1       The GNU C compiler
ii  libc6                    2.3.2.ds1-20    GNU C Library: Shared libraries an
ii  libgmp3                  4.1.4-5         Multiprecision arithmetic library
ii  libncurses5              5.4-4           Shared libraries for terminal hand
ii  libreadline4             4.3-15          GNU readline and history libraries
ii  libx11-6                 4.3.0.dfsg.1-10 X Window System protocol client li
ii  tcl8.4                   8.4.9-1         Tcl (the Tool Command Language) v8
ii  tk8.4                    8.4.9-1         Tk toolkit for Tcl and X11, v8.4 -
ii  xlibs                    4.3.0.dfsg.1-10 X Keyboard Extension (XKB) configu

-- debconf information:
* gcl/default_gcl_ansi:
* gcl/default_gcl_prof:

-- 
Lucas Wall <[EMAIL PROTECTED]>      .''`.                      
Buenos Aires, Argentina                : :ø :   Debian GNU/Linux   
http://www.kadath.com.ar               `. `'  http://www.debian.org
PGP: 1024D/84FB46D6                      `-                        
     5D25 528A 83AB 489B 356A        http://people.debian.org/~lwall
     4087 BC9B 4733 84FB 46D6        mailto:[EMAIL PROTECTED]        
diff -ruN orig/gcl-2.6.6/debian/control gcl-2.6.6/debian/control
--- orig/gcl-2.6.6/debian/control       2004-08-12 13:52:42.000000000 -0300
+++ gcl-2.6.6/debian/control    2005-02-19 01:37:10.000000000 -0300
@@ -2,12 +2,12 @@
 Section: interpreters
 Priority: optional
 Maintainer: Camm Maguire <[EMAIL PROTECTED]>
-Build-Depends: debhelper ( >= 4.1.0 ), emacs21 | emacsen, libreadline4-dev, 
m4, tk8.4-dev, tetex-bin, texinfo, binutils-dev, libgmp3-dev, autotools-dev
+Build-Depends: debhelper (>= 4.1.16), emacs21 | emacsen, libreadline4-dev, m4, 
tk8.4-dev, tetex-bin, texinfo, binutils-dev, libgmp3-dev, autotools-dev
 Standards-Version: 3.6.1
 
 Package: gcl
 Architecture: any
-Depends: ${shlibs:Depends}, ${misc:Depends}, ${gcc}, ${binutils}
+Depends: ${shlibs:Depends}, ${misc:Depends}, ${gcc}, ${binutils}, debconf (>= 
1.2.0)
 Suggests: gcl-doc
 Description: GNU Common Lisp compiler
  GNU Common Lisp (GCL) is a Common Lisp compiler and interpreter
diff -ruN orig/gcl-2.6.6/debian/control. gcl-2.6.6/debian/control.
--- orig/gcl-2.6.6/debian/control.      2004-08-12 13:47:47.000000000 -0300
+++ gcl-2.6.6/debian/control.   2005-02-19 01:27:05.000000000 -0300
@@ -2,12 +2,12 @@
 Section: interpreters
 Priority: optional
 Maintainer: Camm Maguire <[EMAIL PROTECTED]>
-Build-Depends: debhelper ( >= 4.1.0 ), emacs21 | emacsen, libreadline4-dev, 
m4, tk8.4-dev, tetex-bin, texinfo, binutils-dev, libgmp3-dev, autotools-dev
+Build-Depends: debhelper (>= 4.1.16), emacs21 | emacsen, libreadline4-dev, m4, 
tk8.4-dev, tetex-bin, texinfo, binutils-dev, libgmp3-dev, autotools-dev
 Standards-Version: 3.6.1
 
 Package: gcl
 Architecture: any
-Depends: ${shlibs:Depends}, ${misc:Depends}, ${gcc}, ${binutils}
+Depends: ${shlibs:Depends}, ${misc:Depends}, ${gcc}, ${binutils}, debconf (>= 
1.2.0)
 Suggests: gcl-doc
 Description: GNU Common Lisp compiler
  GNU Common Lisp (GCL) is a Common Lisp compiler and interpreter
diff -ruN orig/gcl-2.6.6/debian/control.cvs gcl-2.6.6/debian/control.cvs
--- orig/gcl-2.6.6/debian/control.cvs   2004-08-12 13:47:47.000000000 -0300
+++ gcl-2.6.6/debian/control.cvs        2005-02-19 01:27:30.000000000 -0300
@@ -2,12 +2,12 @@
 Section: interpreters
 Priority: optional
 Maintainer: Camm Maguire <[EMAIL PROTECTED]>
-Build-Depends: debhelper ( >= 4.1.0 ), emacs21 | emacsen, libreadline4-dev, 
m4, tk8.4-dev, tetex-bin, texinfo, binutils-dev, libgmp3-dev, autotools-dev
+Build-Depends: debhelper (>= 4.1.16), emacs21 | emacsen, libreadline4-dev, m4, 
tk8.4-dev, tetex-bin, texinfo, binutils-dev, libgmp3-dev, autotools-dev
 Standards-Version: 3.6.1
 
 Package: gclcvs
 Architecture: any
-Depends: ${shlibs:Depends}, ${misc:Depends}, ${gcc}, ${binutils}
+Depends: ${shlibs:Depends}, ${misc:Depends}, ${gcc}, ${binutils}, debconf (>= 
1.2.0)
 Suggests: gclcvs-doc
 Description: GNU Common Lisp compiler, CVS snapshot
  GNU Common Lisp (GCL) is a Common Lisp compiler and interpreter
diff -ruN orig/gcl-2.6.6/debian/in.gcl.templates 
gcl-2.6.6/debian/in.gcl.templates
--- orig/gcl-2.6.6/debian/in.gcl.templates      2004-08-05 19:01:43.000000000 
-0300
+++ gcl-2.6.6/debian/in.gcl.templates   2005-02-19 01:25:33.000000000 -0300
@@ -1,32 +1,32 @@
 Template: [EMAIL PROTECTED]@/default_gcl_ansi
 Type: boolean
-Description: Use the work-in-progress ansi build by default
- GCL is one of the oldest free common lisp systems still in use.
- Several production systems have used it for over a decade.  The common
- lisp standard in effect when GCL was first released is known as
- "Common Lisp, the Language" (CLtL1) after a book by Steele of the same
- name providing this specification.  Subsequently, a much expanded
- standard was adopted by the American National Standards Institute
- (ANSI), which is still considered the definitive common lisp language
- specification to this day.  GCL is in the process of providing an ANSI
- compliant image in addition to its traditional CLtL1 image still in
- production use.  Setting this variable will determine which image you
- will use by default on executing '[EMAIL PROTECTED]@'.  You can locally 
override this
- choice by setting the GCL_ANSI environment variable to any non-empty
- string for the ANSI build, and to the empty string for the CLtL1
- build, e.g. GCL_ANSI=t [EMAIL PROTECTED]@.  You may be interested in 
reviewing the
- ANSI test results sketching the level of compliance achieved thus far
- in /usr/share/doc/[EMAIL PROTECTED]@/test_results.gz.  The flavor of the 
build in force
- will be reported in the initial startup banner.
+_Description: Use the work-in-progress ansi build by default
+ GCL is one of the oldest free common lisp systems still in use. Several
+ production systems have used it for over a decade.  The common lisp
+ standard in effect when GCL was first released is known as "Common Lisp,
+ the Language" (CLtL1) after a book by Steele of the same name providing
+ this specification.  Subsequently, a much expanded standard was adopted by
+ the American National Standards Institute (ANSI), which is still
+ considered the definitive common lisp language specification to this day. 
+ GCL is in the process of providing an ANSI compliant image in addition to
+ its traditional CLtL1 image still in production use.  Setting this
+ variable will determine which image you will use by default on executing
+ '[EMAIL PROTECTED]@'.  You can locally override this choice by setting the 
GCL_ANSI
+ environment variable to any non-empty string for the ANSI build, and to
+ the empty string for the CLtL1 build, e.g. GCL_ANSI=t [EMAIL PROTECTED]@.  
You may
+ be interested in reviewing the ANSI test results sketching the level of
+ compliance achieved thus far in /usr/share/doc/[EMAIL 
PROTECTED]@/test_results.gz. 
+ The flavor of the build in force will be reported in the initial startup
+ banner.
 
 Template: [EMAIL PROTECTED]@/default_gcl_prof
 Type: boolean
-Description: Use the profiling build by default
- GCL now has support for profiling via gprof.  Please see the
- documentation for si::gprof-start and si::gprof-quit for details.
- This build is slower than builds without gprof support, so this is not
- recommended for final production use. You can locally override this
- choice by setting the GCL_PROF environment variable to any non-empty
- string for profiling support, and to the empty string for the more
- optimized builds, e.g. GCL_PROF=t [EMAIL PROTECTED]@.  If profiling is 
enabled, this will
- be reported in the initial startup banner.
+_Description: Use the profiling build by default
+ GCL now has support for profiling via gprof.  Please see the documentation
+ for si::gprof-start and si::gprof-quit for details. This build is slower
+ than builds without gprof support, so this is not recommended for final
+ production use. You can locally override this choice by setting the
+ GCL_PROF environment variable to any non-empty string for profiling
+ support, and to the empty string for the more optimized builds, e.g.
+ GCL_PROF=t [EMAIL PROTECTED]@.  If profiling is enabled, this will be 
reported in
+ the initial startup banner.
diff -ruN orig/gcl-2.6.6/debian/po/POTFILES.in gcl-2.6.6/debian/po/POTFILES.in
--- orig/gcl-2.6.6/debian/po/POTFILES.in        1969-12-31 21:00:00.000000000 
-0300
+++ gcl-2.6.6/debian/po/POTFILES.in     2005-02-19 01:37:05.000000000 -0300
@@ -0,0 +1 @@
+[type: gettext/rfc822deb] gcl.templates
diff -ruN orig/gcl-2.6.6/debian/po/templates.pot 
gcl-2.6.6/debian/po/templates.pot
--- orig/gcl-2.6.6/debian/po/templates.pot      1969-12-31 21:00:00.000000000 
-0300
+++ gcl-2.6.6/debian/po/templates.pot   2005-02-19 01:34:10.000000000 -0300
@@ -0,0 +1,72 @@
+#
+#    Translators, if you are not familiar with the PO format, gettext
+#    documentation is worth reading, especially sections dedicated to
+#    this format, e.g. by running:
+#         info -n '(gettext)PO Files'
+#         info -n '(gettext)Header Entry'
+#
+#    Some information specific to po-debconf are available at
+#            /usr/share/doc/po-debconf/README-trans
+#         or http://www.debian.org/intl/l10n/po-debconf/README-trans
+#
+#    Developers do not need to manually edit POT or PO files.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2005-02-19 01:34-0300\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <[EMAIL PROTECTED]>\n"
+"Language-Team: LANGUAGE <[EMAIL PROTECTED]>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=CHARSET\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Type: boolean
+#. Description
+#: ../gcl.templates:3
+msgid "Use the work-in-progress ansi build by default"
+msgstr ""
+
+#. Type: boolean
+#. Description
+#: ../gcl.templates:3
+msgid ""
+"GCL is one of the oldest free common lisp systems still in use. Several "
+"production systems have used it for over a decade.  The common lisp standard "
+"in effect when GCL was first released is known as \"Common Lisp, the Language"
+"\" (CLtL1) after a book by Steele of the same name providing this "
+"specification.  Subsequently, a much expanded standard was adopted by the "
+"American National Standards Institute (ANSI), which is still considered the "
+"definitive common lisp language specification to this day.  GCL is in the "
+"process of providing an ANSI compliant image in addition to its traditional "
+"CLtL1 image still in production use.  Setting this variable will determine "
+"which image you will use by default on executing 'gcl'.  You can locally "
+"override this choice by setting the GCL_ANSI environment variable to any non-"
+"empty string for the ANSI build, and to the empty string for the CLtL1 "
+"build, e.g. GCL_ANSI=t gcl.  You may be interested in reviewing the ANSI "
+"test results sketching the level of compliance achieved thus far in /usr/"
+"share/doc/gcl/test_results.gz.  The flavor of the build in force will be "
+"reported in the initial startup banner."
+msgstr ""
+
+#. Type: boolean
+#. Description
+#: ../gcl.templates:24
+msgid "Use the profiling build by default"
+msgstr ""
+
+#. Type: boolean
+#. Description
+#: ../gcl.templates:24
+msgid ""
+"GCL now has support for profiling via gprof.  Please see the documentation "
+"for si::gprof-start and si::gprof-quit for details. This build is slower "
+"than builds without gprof support, so this is not recommended for final "
+"production use. You can locally override this choice by setting the GCL_PROF "
+"environment variable to any non-empty string for profiling support, and to "
+"the empty string for the more optimized builds, e.g. GCL_PROF=t gcl.  If "
+"profiling is enabled, this will be reported in the initial startup banner."
+msgstr ""
diff -ruN orig/gcl-2.6.6/debian/rules gcl-2.6.6/debian/rules
--- orig/gcl-2.6.6/debian/rules 2004-08-12 16:57:26.000000000 -0300
+++ gcl-2.6.6/debian/rules      2005-02-19 01:37:01.000000000 -0300
@@ -134,10 +134,11 @@
 debian/control: debian/control.rm
        cp debian/control.$(EXT) debian/control
 
-clean: debian/control
+clean: debian/control debian/gcl.templates
        dh_testdir
        dh_testroot
        rm -f *stamp
+       debconf-updatepo
 
        -$(MAKE) clean
 

Attachment: signature.asc
Description: Digital signature

Reply via email to