summary refs log tree commit diff
diff options
context:
space:
mode:
authorLudovic Courtès <ludo@gnu.org>2014-06-13 17:30:40 +0200
committerLudovic Courtès <ludo@gnu.org>2014-06-13 17:30:40 +0200
commitee76417972b3a749a28a627c2858c09311d9c0c5 (patch)
treeb47f7f0959763d3b445bf5dbd11025c2e4480b1f
parentef1a9bb7d6fd64f05607042fdb266ee974d16e26 (diff)
downloadguix-ee76417972b3a749a28a627c2858c09311d9c0c5.tar.gz
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'.
-rw-r--r--.gitignore17
-rw-r--r--Makefile.am2
-rw-r--r--configure.ac3
-rw-r--r--guix/scripts/package.scm6
-rw-r--r--guix/ui.scm11
-rw-r--r--po/guix/Makevars6
-rw-r--r--po/guix/POTFILES.in5
-rw-r--r--po/packages/LINGUAS4
-rw-r--r--po/packages/Makevars19
-rw-r--r--po/packages/POTFILES.in6
10 files changed, 64 insertions, 15 deletions
diff --git a/.gitignore b/.gitignore
index 755773567c..dacd234c9b 100644
--- a/.gitignore
+++ b/.gitignore
@@ -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/*
diff --git a/Makefile.am b/Makefile.am
index 6c63c96345..c2345409a6 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -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
 
diff --git a/configure.ac b/configure.ac
index 398d8fc705..eb038db253 100644
--- a/configure.ac
+++ b/configure.ac
@@ -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])
diff --git a/guix/scripts/package.scm b/guix/scripts/package.scm
index 3947159c2e..f930b00804 100644
--- a/guix/scripts/package.scm
+++ b/guix/scripts/package.scm
@@ -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))
                    '())
diff --git a/guix/ui.scm b/guix/ui.scm
index 48b5c745c6..6fef9b36e4 100644
--- a/guix/ui.scm
+++ b/guix/ui.scm
@@ -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))
diff --git a/po/guix/Makevars b/po/guix/Makevars
index 3f85141efb..87bb438418 100644
--- a/po/guix/Makevars
+++ b/po/guix/Makevars
@@ -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
diff --git a/po/guix/POTFILES.in b/po/guix/POTFILES.in
index ef864fe817..bf2d31306a 100644
--- a/po/guix/POTFILES.in
+++ b/po/guix/POTFILES.in
@@ -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
diff --git a/po/packages/LINGUAS b/po/packages/LINGUAS
new file mode 100644
index 0000000000..dcb16dfaa7
--- /dev/null
+++ b/po/packages/LINGUAS
@@ -0,0 +1,4 @@
+# Set of available languages.
+
+en@boldquot
+en@quot
diff --git a/po/packages/Makevars b/po/packages/Makevars
new file mode 100644
index 0000000000..1b4689b7c3
--- /dev/null
+++ b/po/packages/Makevars
@@ -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 =
diff --git a/po/packages/POTFILES.in b/po/packages/POTFILES.in
new file mode 100644
index 0000000000..43db1b2719
--- /dev/null
+++ b/po/packages/POTFILES.in
@@ -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