From 79321c0d8a0a5ed75a441b6720aaf8edb0dba6f9 Mon Sep 17 00:00:00 2001 From: Matthias Clasen Date: Tue, 3 Mar 2015 07:11:41 -0500 Subject: [PATCH] Make a pot generating command available Translators don't want to run autogen before generating pot, so give them a script. --- Makefile.am | 3 +- make-pot | 61 ++++++++++++++++++++++++++++++++++++ po-properties/Makefile.in.in | 13 ++++---- po/Makefile.in.in | 36 +++++---------------- 4 files changed, 77 insertions(+), 36 deletions(-) create mode 100755 make-pot diff --git a/Makefile.am b/Makefile.am index 2b72ff93b2..a4c56a7701 100644 --- a/Makefile.am +++ b/Makefile.am @@ -21,7 +21,8 @@ EXTRA_DIST += \ gtk-zip.sh.in \ sanitize-la.sh \ po/README.translators \ - po/po2tbl.sed.in + po/po2tbl.sed.in \ + make-pot MAINTAINERCLEANFILES = \ $(GITIGNORE_MAINTAINERCLEANFILES_TOPLEVEL) \ diff --git a/make-pot b/make-pot new file mode 100755 index 0000000000..279cfaa15c --- /dev/null +++ b/make-pot @@ -0,0 +1,61 @@ +#! /bin/bash + +# This script extracts the typical xgettext invokation out of +# po/Makefile.in.in, in order for it to be available as a shell +# command without the need to autogen first. This is needed for +# translation tools such as the damn lies website. +# +# Call this from your GTK+ checkout directory, like this: +# +# ./make-pot +# +# to generate po/gtk30.pot, and like this: +# +# ./make-pot properties +# +# to generate po-properties/gtk30-properties.pot. + + +XGETTEXT="${XGETTEXT:-xgettext}" +top_srcdir="${top_srcdir:-.}" + +if test "$1" = "properties"; then + srcdir="${srcdir:-$top_srcdir/po-properties}" + GETTEXT_PACKAGE="${GETTEXT_PACKAGE:-gtk30-properties}" + XGETTEXT_KEYWORDS="${XGETTEXT_KEYWORDS:- --keyword --keyword=P_ }" +else + srcdir="${srcdir:-$top_srcdir/po}" + GETTEXT_PACKAGE="${GETTEXT_PACKAGE:-gtk30}" + XGETTEXT_KEYWORDS="${XGETTEXT_KEYWORDS:- --keyword=_ --keyword=N_ --keyword=C_:1c,2 --keyword=NC_:1c,2 --keyword=g_dngettext:2,3 }" +fi + +$XGETTEXT --default-domain="$GETTEXT_PACKAGE" \ + --directory="$top_srcdir" \ + --add-comments \ + $XGETTEXT_KEYWORDS \ + --from-code=utf-8 \ + --flag=g_dngettext:2:pass-c-format \ + --flag=g_strdup_printf:1:c-format \ + --flag=g_string_printf:2:c-format \ + --flag=g_string_append_printf:2:c-format \ + --flag=g_error_new:3:c-format \ + --flag=g_set_error:4:c-format \ + --flag=g_markup_printf_escaped:1:c-format \ + --flag=g_log:3:c-format \ + --flag=g_print:1:c-format \ + --flag=g_printerr:1:c-format \ + --flag=g_printf:1:c-format \ + --flag=g_fprintf:2:c-format \ + --flag=g_sprintf:2:c-format \ + --flag=g_snprintf:3:c-format \ + --flag=g_scanner_error:2:c-format \ + --flag=g_scanner_warn:2:c-format \ + --flag=gtk_message_dialog_format_secondary_markup:2:c-format \ + --flag=gtk_message_dialog_format_secondary_text:2:c-format \ + --flag=gtk_message_dialog_new:5:c-format \ + --flag=gtk_message_dialog_new_with_markup:5:c-format \ + --files-from="$srcdir/POTFILES.in" \ + && test ! -f "$GETTEXT_PACKAGE.po" \ + || ( rm -f "$srcdir/$GETTEXT_PACKAGE.pot" \ + && mv "$GETTEXT_PACKAGE.po" "$srcdir/$GETTEXT_PACKAGE.pot" ) + diff --git a/po-properties/Makefile.in.in b/po-properties/Makefile.in.in index 86571778f3..41b41df04f 100644 --- a/po-properties/Makefile.in.in +++ b/po-properties/Makefile.in.in @@ -95,13 +95,12 @@ all-yes: $(CATALOGS) all-no: $(srcdir)/$(GETTEXT_PACKAGE).pot: $(POTFILES) - $(XGETTEXT) --default-domain=$(GETTEXT_PACKAGE) --directory=$(top_srcdir) \ - --add-comments --keyword --keyword=P_ \ - --from-code=utf-8 \ - --files-from=$(srcdir)/POTFILES.in \ - && test ! -f $(GETTEXT_PACKAGE).po \ - || ( rm -f $(srcdir)/$(GETTEXT_PACKAGE).pot \ - && mv $(GETTEXT_PACKAGE).po $(srcdir)/$(GETTEXT_PACKAGE).pot ) + XGETTEXT="$(XGETTEXT)" \ + XGETTEXT_KEYWORDS=$(XGETTEXT_KEYWORDS)" \ + GETTEXT_PACKAGE="$(GETTEXT_PACKAGE)" \ + top_srcdir="$(top_srcdir)" \ + srcdir="$(srcdir)" \ + $(top_srcdir)/make-pot install: install-exec install-data install-exec: diff --git a/po/Makefile.in.in b/po/Makefile.in.in index 9774e73b6f..55bc85f4b1 100644 --- a/po/Makefile.in.in +++ b/po/Makefile.in.in @@ -16,6 +16,8 @@ GETTEXT_PACKAGE = @GETTEXT_PACKAGE@ PACKAGE = @PACKAGE@ VERSION = @VERSION@ +XGETTEXT_KEYWORDS= --keyword=_ --keyword=N_ --keyword=C_:1c,2 --keyword=NC_:1c,2 --keyword=g_dngettext:2,3 + SHELL = @SHELL@ @SET_MAKE@ @@ -96,34 +98,12 @@ all-yes: $(CATALOGS) all-no: $(srcdir)/$(GETTEXT_PACKAGE).pot: $(POTFILES) - $(XGETTEXT) --default-domain=$(GETTEXT_PACKAGE) --directory=$(top_srcdir) \ - --add-comments --keyword=_ --keyword=N_ --keyword=C_:1c,2 --keyword=NC_:1c,2 \ - --from-code=utf-8 \ - --keyword=g_dngettext:2,3 \ - --flag=g_dngettext:2:pass-c-format \ - --flag=g_strdup_printf:1:c-format \ - --flag=g_string_printf:2:c-format \ - --flag=g_string_append_printf:2:c-format \ - --flag=g_error_new:3:c-format \ - --flag=g_set_error:4:c-format \ - --flag=g_markup_printf_escaped:1:c-format \ - --flag=g_log:3:c-format \ - --flag=g_print:1:c-format \ - --flag=g_printerr:1:c-format \ - --flag=g_printf:1:c-format \ - --flag=g_fprintf:2:c-format \ - --flag=g_sprintf:2:c-format \ - --flag=g_snprintf:3:c-format \ - --flag=g_scanner_error:2:c-format \ - --flag=g_scanner_warn:2:c-format \ - --flag=gtk_message_dialog_format_secondary_markup:2:c-format \ - --flag=gtk_message_dialog_format_secondary_text:2:c-format \ - --flag=gtk_message_dialog_new:5:c-format \ - --flag=gtk_message_dialog_new_with_markup:5:c-format \ - --files-from=$(srcdir)/POTFILES.in \ - && test ! -f $(GETTEXT_PACKAGE).po \ - || ( rm -f $(srcdir)/$(GETTEXT_PACKAGE).pot \ - && mv $(GETTEXT_PACKAGE).po $(srcdir)/$(GETTEXT_PACKAGE).pot ) + XGETTEXT="$(XGETTEXT)" \ + XGETTEXT_KEYWORDS="$(XGETTEXT_KEYWORDS)" \ + GETTEXT_PACKAGE="$(GETTEXT_PACKAGE)" \ + top_srcdir="$(top_srcdir)" \ + srcdir="$(srcdir)" \ + $(top_srcdir)/make-pot install: install-exec install-data install-exec: