~ruther/guix-local

ee76417972b3a749a28a627c2858c09311d9c0c5 — Ludovic Courtès 11 years ago ef1a9bb
Separate package description translations from string translations.

* po/packages/LINGUAS, po/packages/Makevars, po/packages/POTFILES.in:
  New files.
* po/guix/Makevars (DOMAIN): Change to "guix".
  (XGETTEXT_OPTIONS): Remove "--keyword=synopsis --keyword=description".
* po/guix/POTFILES.in: Remove gnu/packages/*.scm.
* configure.ac: Change to gettext 0.18.3.  Produce
  po/packages/Makefile.in.
* Makefile.am (SUBDIRS): Add po/packages.
* guix/ui.scm (%package-text-domain): New variable.
  (P_): New procedure.
  (package->recutils): Use 'P_' instead of '_'.
* guix/scripts/package.scm (find-packages-by-description): Use 'P_'
  instead of 'gettext'.
M .gitignore => .gitignore +17 -0
@@ 39,6 39,23 @@ config.cache
/po/guix/guix.pot
/po/guix/*.mo
/po/guix/*.gmo
/po/packages/ChangeLog
/po/packages/Makefile.in.in
/po/packages/Makevars.template
/po/packages/POTFILES
/po/packages/Rules-quot
/po/packages/boldquot.sed
/po/packages/en@boldquot.*
/po/packages/en@quot.*
/po/packages/insert-header.sin
/po/packages/*.insert-header
/po/packages/quot.sed
/po/packages/remove-potcdate.sed
/po/packages/remove-potcdate.sin
/po/packages/stamp-po
/po/packages/guix-packages.pot
/po/packages/*.mo
/po/packages/*.gmo
/tests/*.trs
/INSTALL
/m4/*

M Makefile.am => Makefile.am +1 -1
@@ 246,7 246,7 @@ SUFFIXES = .go
guix_install_go_files = install-nobase_nodist_guilemoduleDATA
$(guix_install_go_files): install-nobase_dist_guilemoduleDATA

SUBDIRS = po/guix
SUBDIRS = po/guix po/packages

include doc.am


M configure.ac => configure.ac +2 -1
@@ 16,7 16,7 @@ dnl For the C++ code.  This must be used early.
AC_USE_SYSTEM_EXTENSIONS

AM_GNU_GETTEXT([external])
AM_GNU_GETTEXT_VERSION([0.18.1])
AM_GNU_GETTEXT_VERSION([0.18.3])

guilemoduledir="${datarootdir}/guile/site/2.0"
AC_SUBST([guilemoduledir])


@@ 167,6 167,7 @@ AM_MISSING_PROG([DOT], [dot])

AC_CONFIG_FILES([Makefile
                 po/guix/Makefile.in
                 po/packages/Makefile.in
		 guix/config.scm])

AC_CONFIG_FILES([scripts/guix], [chmod +x scripts/guix])

M guix/scripts/package.scm => guix/scripts/package.scm +3 -3
@@ 228,11 228,11 @@ RX."
                     (define matches?
                       (cut regexp-exec rx <>))

                     (if (or (matches? (gettext (package-name package)))
                     (if (or (matches? (package-name package))
                             (and=> (package-synopsis package)
                                    (compose matches? gettext))
                                    (compose matches? P_))
                             (and=> (package-description package)
                                    (compose matches? gettext)))
                                    (compose matches? P_)))
                         (cons package result)
                         result))
                   '())

M guix/ui.scm => guix/ui.scm +9 -2
@@ 39,6 39,7 @@
  #:use-module (ice-9 regex)
  #:export (_
            N_
            P_
            leave
            show-version-and-exit
            show-bug-report-information


@@ 72,10 73,16 @@
;;; Code:

(define %gettext-domain
  ;; Text domain for strings used in the tools.
  "guix")

(define %package-text-domain
  ;; Text domain for package synopses and descriptions.
  "guix-packages")

(define _ (cut gettext <> %gettext-domain))
(define N_ (cut ngettext <> <> <> %gettext-domain))
(define P_ (cut gettext <> %package-text-domain))

(define-syntax-rule (define-diagnostic name prefix)
  "Create a diagnostic macro (i.e., NAME), which will prepend PREFIX to all


@@ 431,7 438,7 @@ followed by \"+ \", which makes for a valid multi-line field value in the
  "Write to PORT a `recutils' record of package P, arranging to fit within
WIDTH columns."
  (define (description->recutils str)
    (let ((str (_ str)))
    (let ((str (P_ str)))
      (string->recutils
       (fill-paragraph str width
                       (string-length "description: ")))))


@@ 460,7 467,7 @@ WIDTH columns."
          (string-map (match-lambda
                       (#\newline #\space)
                       (chr       chr))
                      (or (and=> (package-synopsis p) _)
                      (or (and=> (package-synopsis p) P_)
                          "")))
  (format port "description: ~a~%"
          (and=> (package-description p) description->recutils))

M po/guix/Makevars => po/guix/Makevars +2 -4
@@ 1,17 1,15 @@
# Makefile variables for PO directory in any package using GNU gettext.

DOMAIN = $(PACKAGE)
DOMAIN = guix

subdir = po/guix
top_builddir = ../..

# These options get passed to xgettext.  We want to catch standard
# gettext uses, package synopses and descriptions, and SRFI-35 error
# condition messages.
# gettext uses, and SRFI-35 error condition messages.
XGETTEXT_OPTIONS =				\
  --language=Scheme --from-code=UTF-8		\
  --keyword=_ --keyword=N_			\
  --keyword=synopsis --keyword=description	\
  --keyword=message

COPYRIGHT_HOLDER = Ludovic Courtès

M po/guix/POTFILES.in => po/guix/POTFILES.in +1 -4
@@ 1,9 1,6 @@
# List of source files which contain translatable strings.
# This should be source files of the various tools, and not package modules.
gnu/packages.scm
gnu/packages/base.scm
gnu/packages/guile.scm
gnu/packages/lout.scm
gnu/packages/recutils.scm
guix/scripts/build.scm
guix/scripts/download.scm
guix/scripts/package.scm

A po/packages/LINGUAS => po/packages/LINGUAS +4 -0
@@ 0,0 1,4 @@
# Set of available languages.

en@boldquot
en@quot

A po/packages/Makevars => po/packages/Makevars +19 -0
@@ 0,0 1,19 @@
# Makefile variables for PO directory in any package using GNU gettext.

# This domain contains only translations of package synopses and descriptions.
DOMAIN = guix-packages

subdir = po/packages
top_builddir = ../..

# These options get passed to xgettext.  We want to catch exclusively package
# synopses and descriptions.
XGETTEXT_OPTIONS =				\
  --language=Scheme --from-code=UTF-8		\
  --keyword=synopsis --keyword=description

COPYRIGHT_HOLDER = Ludovic Courtès

MSGID_BUGS_ADDRESS = ludo@gnu.org

EXTRA_LOCALE_CATEGORIES =

A po/packages/POTFILES.in => po/packages/POTFILES.in +6 -0
@@ 0,0 1,6 @@
# List of source files which contain translatable strings.  These should be
# only package modules.  Strings of the tools are in 'po/guix'.
gnu/packages/base.scm
gnu/packages/guile.scm
gnu/packages/lout.scm
gnu/packages/recutils.scm