aboutsummaryrefslogtreecommitdiff
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
guix-ee76417972b3a749a28a627c2858c09311d9c0c5.zip
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