[gnome-mahjongg] Use gettext (bgo#793129)



commit fe67f0cc1726d31ff875f3aafde4c3d978f300d4
Author: Robert Roth <robert roth off gmail com>
Date:   Sat Feb 3 00:01:28 2018 +0200

    Use gettext (bgo#793129)

 autogen.sh                         |    1 -
 configure.ac                       |    3 +-
 data/Makefile.am                   |    7 +-
 data/gnome-mahjongg.appdata.xml.in |   14 ++--
 data/gnome-mahjongg.desktop.in     |    8 ++-
 git.mk                             |  135 +++++++++++++++++++++++++++++++-----
 po/Makevars                        |   78 +++++++++++++++++++++
 po/POTFILES.in                     |    3 +-
 8 files changed, 213 insertions(+), 36 deletions(-)
---
diff --git a/autogen.sh b/autogen.sh
index 60d0584..6ef8fc6 100755
--- a/autogen.sh
+++ b/autogen.sh
@@ -32,7 +32,6 @@ if [ "$#" = 0 -a "x$NOCONFIGURE" = "x" ]; then
 fi
 
 aclocal --install || exit 1
-intltoolize --force --copy --automake || exit 1
 autoreconf --verbose --force --install -Wno-portability || exit 1
 
 cd $olddir
diff --git a/configure.ac b/configure.ac
index 0947961..8d8aa33 100644
--- a/configure.ac
+++ b/configure.ac
@@ -38,7 +38,8 @@ dnl ###########################################################################
 dnl Internationalization
 dnl ###########################################################################
 
-IT_PROG_INTLTOOL([0.50])
+AM_GNU_GETTEXT_VERSION([0.19.8])
+AM_GNU_GETTEXT([external])
 AC_SUBST(GETTEXT_PACKAGE, gnome-mahjongg)
 
 dnl ###########################################################################
diff --git a/data/Makefile.am b/data/Makefile.am
index 9eec532..c243111 100644
--- a/data/Makefile.am
+++ b/data/Makefile.am
@@ -19,12 +19,13 @@ man_MANS = gnome-mahjongg.6
 desktopdir = $(datadir)/applications
 desktop_in_files = gnome-mahjongg.desktop.in
 desktop_DATA = $(desktop_in_files:.desktop.in=.desktop)
-@INTLTOOL_DESKTOP_RULE@
+$(desktop_DATA): $(desktop_in_files)
+               $(AM_V_GEN)$(MSGFMT) --desktop --template $< -d $(top_srcdir)/po -o $@
 
 appstream_in_files = gnome-mahjongg.appdata.xml.in
 appstream_XML = $(appstream_in_files:.xml.in=.xml)
-@APPSTREAM_XML_RULES@
-@INTLTOOL_XML_RULE@
+$(appstream_XML): $(appstream_in_files)
+               $(AM_V_GEN)$(MSGFMT) --xml --template $< -d $(top_srcdir)/po -o $@
 
 EXTRA_DIST = \
        $(appstream_in_files)   \
diff --git a/data/gnome-mahjongg.appdata.xml.in b/data/gnome-mahjongg.appdata.xml.in
index 8c476a4..0c70204 100644
--- a/data/gnome-mahjongg.appdata.xml.in
+++ b/data/gnome-mahjongg.appdata.xml.in
@@ -4,27 +4,27 @@
   <id>gnome-mahjongg.desktop</id>
   <metadata_license>CC0-1.0</metadata_license>
   <project_license>GPL-2.0+ and CC-BY-SA-3.0</project_license>
-  <_name>GNOME Mahjongg</_name>
-  <_summary>Match tiles and clear the board</_summary>
+  <name>GNOME Mahjongg</name>
+  <summary>Match tiles and clear the board</summary>
   <description>
-    <_p>
+    <p>
    A solitaire version of the classic Eastern tile game. Tiles are stacked on
    the board at the start of the game. The goal is to remove all the tiles in
    as little time as possible. Select two matching tiles and they will disappear
    from the board, but you can only select a tile if there is an empty space to
    its left or right at the same level. Be careful: tiles that look alike
    may actually be slightly different.
-  </_p>
-    <_p>
+  </p>
+    <p>
    GNOME Mahjongg features a variety of starting layouts, some easy and some
    difficult. If you get stuck, you can ask for a hint, but this adds a large
    time penalty.
-  </_p>
+  </p>
   </description>
   <screenshots>
     <screenshot height="524" width="972" type="default">
       <image>https://people.gnome.org/~mcatanzaro/gnome-mahjongg.png</image>
-      <_caption><!-- Describe this screenshot in less than ~10 words --></_caption>
+      <caption><!-- Describe this screenshot in less than ~10 words --></caption>
     </screenshot>
   </screenshots>
   <url type="homepage">https://wiki.gnome.org/Apps/Mahjongg</url>
diff --git a/data/gnome-mahjongg.desktop.in b/data/gnome-mahjongg.desktop.in
index 2a6f68d..da468bb 100644
--- a/data/gnome-mahjongg.desktop.in
+++ b/data/gnome-mahjongg.desktop.in
@@ -1,8 +1,10 @@
 [Desktop Entry]
-_Name=Mahjongg
-_Comment=Disassemble a pile of tiles by removing matching pairs
-_Keywords=game;strategy;puzzle;board;
+Name=Mahjongg
+Comment=Disassemble a pile of tiles by removing matching pairs
+# Translators: Search terms to find this application. Do NOT translate or localize the semicolons! The list 
MUST also end with a semicolon!
+Keywords=game;strategy;puzzle;board;
 Exec=gnome-mahjongg
+# Translators: Do NOT translate or transliterate this text (this is an icon file name)!
 Icon=gnome-mahjongg
 Terminal=false
 Type=Application
diff --git a/git.mk b/git.mk
index 5467b86..90de80f 100644
--- a/git.mk
+++ b/git.mk
@@ -1,4 +1,5 @@
-# git.mk
+# git.mk, a small Makefile to autogenerate .gitignore files
+# for autotools-based projects.
 #
 # Copyright 2009, Red Hat, Inc.
 # Copyright 2010,2011,2012,2013 Behdad Esfahbod
@@ -9,7 +10,8 @@
 # notice and this notice are preserved.
 #
 # The latest version of this file can be downloaded from:
-#   https://raw.github.com/behdad/git.mk/master/git.mk
+GIT_MK_URL = https://raw.githubusercontent.com/behdad/git.mk/master/git.mk
+#
 # Bugs, etc, should be reported upstream at:
 #   https://github.com/behdad/git.mk
 #
@@ -45,7 +47,8 @@
 # build dir.
 #
 # This file knows how to handle autoconf, automake, libtool, gtk-doc,
-# gnome-doc-utils, yelp.m4, mallard, intltool, gsettings, dejagnu.
+# gnome-doc-utils, yelp.m4, mallard, intltool, gsettings, dejagnu, appdata,
+# appstream, hotdoc.
 #
 # This makefile provides the following targets:
 #
@@ -77,39 +80,88 @@ GITIGNORE_MAINTAINERCLEANFILES_TOPLEVEL = \
        $(srcdir)/aclocal.m4 \
        $(srcdir)/autoscan.log \
        $(srcdir)/configure.scan \
-       `AUX_DIR=$(srcdir)/$$($(AUTOCONF) --trace 'AC_CONFIG_AUX_DIR:$$1' $(srcdir)/configure.ac); \
+       `AUX_DIR=$(srcdir)/$$(cd $(top_srcdir); $(AUTOCONF) --trace 'AC_CONFIG_AUX_DIR:$$1' ./configure.ac); \
         test "x$$AUX_DIR" = "x$(srcdir)/" && AUX_DIR=$(srcdir); \
         for x in \
                ar-lib \
                compile \
                config.guess \
+               config.rpath \
                config.sub \
                depcomp \
                install-sh \
                ltmain.sh \
                missing \
                mkinstalldirs \
+               test-driver \
+               ylwrap \
         ; do echo "$$AUX_DIR/$$x"; done` \
-       `$(AUTOCONF) --trace 'AC_CONFIG_HEADERS:$$1' $(srcdir)/configure.ac | \
+       `cd $(top_srcdir); $(AUTOCONF) --trace 'AC_CONFIG_HEADERS:$$1' ./configure.ac | \
        head -n 1 | while read f; do echo "$(srcdir)/$$f.in"; done`
 #
 # All modules should also be fine including the following variable, which
 # removes automake-generated Makefile.in files:
 GITIGNORE_MAINTAINERCLEANFILES_MAKEFILE_IN = \
-       `$(AUTOCONF) --trace 'AC_CONFIG_FILES:$$1' $(srcdir)/configure.ac | \
+       `cd $(top_srcdir); $(AUTOCONF) --trace 'AC_CONFIG_FILES:$$1' ./configure.ac | \
        while read f; do \
          case $$f in Makefile|*/Makefile) \
            test -f "$(srcdir)/$$f.am" && echo "$(srcdir)/$$f.in";; esac; \
        done`
 #
-# Modules that use libtool /and/ use  AC_CONFIG_MACRO_DIR([m4]) may also
-# include this:
+# Modules that use libtool and use  AC_CONFIG_MACRO_DIR() may also include this,
+# though it's harmless to include regardless.
 GITIGNORE_MAINTAINERCLEANFILES_M4_LIBTOOL = \
-       $(srcdir)/m4/libtool.m4 \
-       $(srcdir)/m4/ltoptions.m4 \
-       $(srcdir)/m4/ltsugar.m4 \
-       $(srcdir)/m4/ltversion.m4 \
-       $(srcdir)/m4/lt~obsolete.m4
+       `MACRO_DIR=$(srcdir)/$$(cd $(top_srcdir); $(AUTOCONF) --trace 'AC_CONFIG_MACRO_DIR:$$1' 
./configure.ac); \
+        if test "x$$MACRO_DIR" != "x$(srcdir)/"; then \
+               for x in \
+                       libtool.m4 \
+                       ltoptions.m4 \
+                       ltsugar.m4 \
+                       ltversion.m4 \
+                       lt~obsolete.m4 \
+               ; do echo "$$MACRO_DIR/$$x"; done; \
+        fi`
+#
+# Modules that use gettext and use  AC_CONFIG_MACRO_DIR() may also include this,
+# though it's harmless to include regardless.
+GITIGNORE_MAINTAINERCLEANFILES_M4_GETTEXT = \
+       `MACRO_DIR=$(srcdir)/$$(cd $(top_srcdir); $(AUTOCONF) --trace 'AC_CONFIG_MACRO_DIR:$$1' 
./configure.ac); \
+       if test "x$$MACRO_DIR" != "x$(srcdir)/"; then   \
+               for x in                                \
+                       codeset.m4                      \
+                       extern-inline.m4                \
+                       fcntl-o.m4                      \
+                       gettext.m4                      \
+                       glibc2.m4                       \
+                       glibc21.m4                      \
+                       iconv.m4                        \
+                       intdiv0.m4                      \
+                       intl.m4                         \
+                       intldir.m4                      \
+                       intlmacosx.m4                   \
+                       intmax.m4                       \
+                       inttypes-pri.m4                 \
+                       inttypes_h.m4                   \
+                       lcmessage.m4                    \
+                       lib-ld.m4                       \
+                       lib-link.m4                     \
+                       lib-prefix.m4                   \
+                       lock.m4                         \
+                       longlong.m4                     \
+                       nls.m4                          \
+                       po.m4                           \
+                       printf-posix.m4                 \
+                       progtest.m4                     \
+                       size_max.m4                     \
+                       stdint_h.m4                     \
+                       threadlib.m4                    \
+                       uintmax_t.m4                    \
+                       visibility.m4                   \
+                       wchar_t.m4                      \
+                       wint_t.m4                       \
+                       xsize.m4                        \
+               ; do echo "$$MACRO_DIR/$$x"; done; \
+       fi`
 
 
 
@@ -141,7 +193,10 @@ git-mk-install:
                        fi; \
        fi; done; test -z "$$any_failed"
 
-.PHONY: git-all git-mk-install
+git-mk-update:
+       wget $(GIT_MK_URL) -O $(top_srcdir)/git.mk
+
+.PHONY: git-all git-mk-install git-mk-update
 
 
 
@@ -149,7 +204,7 @@ git-mk-install:
 # Actual .gitignore generation:
 ###############################################################################
 
-$(srcdir)/.gitignore: Makefile.am $(top_srcdir)/git.mk
+$(srcdir)/.gitignore: Makefile.am $(top_srcdir)/git.mk $(top_srcdir)/configure.ac
        @echo "git.mk: Generating $@"
        @{ \
                if test "x$(DOC_MODULE)" = x -o "x$(DOC_MAIN_SGML_FILE)" = x; then :; else \
@@ -158,8 +213,24 @@ $(srcdir)/.gitignore: Makefile.am $(top_srcdir)/git.mk
                                $(DOC_MODULE)-decl.txt \
                                tmpl/$(DOC_MODULE)-unused.sgml \
                                "tmpl/*.bak" \
+                               $(REPORT_FILES) \
+                               $(DOC_MODULE).pdf \
                                xml html \
                        ; do echo "/$$x"; done; \
+                       FLAVOR=$$(cd $(top_srcdir); $(AUTOCONF) --trace 'GTK_DOC_CHECK:$$2' ./configure.ac); \
+                       case $$FLAVOR in *no-tmpl*) echo /tmpl;; esac; \
+                       if echo "$(SCAN_OPTIONS)" | grep -q "\-\-rebuild-types"; then \
+                               echo "/$(DOC_MODULE).types"; \
+                       fi; \
+                       if echo "$(SCAN_OPTIONS)" | grep -q "\-\-rebuild-sections"; then \
+                               echo "/$(DOC_MODULE)-sections.txt"; \
+                       fi; \
+                       if test "$(abs_srcdir)" != "$(abs_builddir)" ; then \
+                               for x in \
+                                       $(SETUP_FILES) \
+                                       $(DOC_MODULE).types \
+                               ; do echo "/$$x"; done; \
+                       fi; \
                fi; \
                if test "x$(DOC_MODULE)$(DOC_ID)" = x -o "x$(DOC_LINGUAS)" = x; then :; else \
                        for lc in $(DOC_LINGUAS); do \
@@ -179,6 +250,15 @@ $(srcdir)/.gitignore: Makefile.am $(top_srcdir)/git.mk
                                "*/*.omf.out" \
                        ; do echo /$$x; done; \
                fi; \
+               if test "x$(HOTDOC)" = x; then :; else \
+                       $(foreach project, $(HOTDOC_PROJECTS),echo "/$(call HOTDOC_TARGET,$(project))"; \
+                               echo "/$(shell $(call HOTDOC_PROJECT_COMMAND,$(project)) --get-conf-path 
output)" ; \
+                               echo "/$(shell $(call HOTDOC_PROJECT_COMMAND,$(project)) 
--get-private-folder)" ; \
+                       ) \
+                       for x in \
+                               .hotdoc.d \
+                       ; do echo "/$$x"; done; \
+               fi; \
                if test "x$(HELP_ID)" = x -o "x$(HELP_LINGUAS)" = x; then :; else \
                        for lc in $(HELP_LINGUAS); do \
                                for x in \
@@ -194,8 +274,19 @@ $(srcdir)/.gitignore: Makefile.am $(top_srcdir)/git.mk
                                $(gsettings__enum_file) \
                        ; do echo "/$$x"; done; \
                fi; \
+               if test "x$(appdata_XML)" = x; then :; else \
+                       for x in \
+                               $(appdata_XML:.xml=.valid) \
+                       ; do echo "/$$x"; done; \
+               fi; \
+               if test "x$(appstream_XML)" = x; then :; else \
+                       for x in \
+                               $(appstream_XML:.xml=.valid) \
+                       ; do echo "/$$x"; done; \
+               fi; \
                if test -f $(srcdir)/po/Makefile.in.in; then \
                        for x in \
+                               ABOUT-NLS \
                                po/Makefile.in.in \
                                po/Makefile.in.in~ \
                                po/Makefile.in \
@@ -204,6 +295,7 @@ $(srcdir)/.gitignore: Makefile.am $(top_srcdir)/git.mk
                                po/POTFILES \
                                po/Rules-quot \
                                po/stamp-it \
+                               po/stamp-po \
                                po/.intltool-merge-cache \
                                "po/*.gmo" \
                                "po/*.header" \
@@ -235,7 +327,7 @@ $(srcdir)/.gitignore: Makefile.am $(top_srcdir)/git.mk
                if test "x$(am__dirstamp)" = x; then :; else \
                        echo "$(am__dirstamp)"; \
                fi; \
-               if test "x$(LTCOMPILE)" = x; then :; else \
+               if test "x$(findstring libtool,$(LTCOMPILE))" = x -a "x$(findstring libtool,$(LTCXXCOMPILE))" 
= x -a "x$(GTKDOC_RUN)" = x; then :; else \
                        for x in \
                                "*.lo" \
                                ".libs" "_libs" \
@@ -253,7 +345,9 @@ $(srcdir)/.gitignore: Makefile.am $(top_srcdir)/git.mk
                        $(TEST_LOGS) \
                        $(TEST_LOGS:.log=.trs) \
                        $(TEST_SUITE_LOG) \
-                       "*.$(OBJEXT)" \
+                       $(TESTS:=.test) \
+                       "*.gcda" \
+                       "*.gcno" \
                        $(DISTCLEANFILES) \
                        $(am__CONFIG_DISTCLEAN_FILES) \
                        $(CONFIG_CLEAN_FILES) \
@@ -261,11 +355,10 @@ $(srcdir)/.gitignore: Makefile.am $(top_srcdir)/git.mk
                        "*.tab.c" \
                        $(MAINTAINERCLEANFILES) \
                        $(BUILT_SOURCES) \
-                       $(DEPDIR) \
                        $(patsubst %.vala,%.c,$(filter %.vala,$(SOURCES))) \
                        $(filter %_vala.stamp,$(DIST_COMMON)) \
                        $(filter %.vapi,$(DIST_COMMON)) \
-                       $(patsubst %.vapi,%.h,$(filter %.vapi,$(DIST_COMMON))) \
+                       $(filter $(addprefix %,$(notdir $(patsubst %.vapi,%.h,$(filter 
%.vapi,$(DIST_COMMON))))),$(DIST_COMMON)) \
                        Makefile \
                        Makefile.in \
                        "*.orig" \
@@ -275,6 +368,10 @@ $(srcdir)/.gitignore: Makefile.am $(top_srcdir)/git.mk
                        ".*.sw[nop]" \
                        ".dirstamp" \
                ; do echo "/$$x"; done; \
+               for x in \
+                       "*.$(OBJEXT)" \
+                       $(DEPDIR) \
+               ; do echo "$$x"; done; \
        } | \
        sed "s@^/`echo "$(srcdir)" | sed 's/\(.\)/[\1]/g'`/@/@" | \
        sed 's@/[.]/@/@g' | \
diff --git a/po/Makevars b/po/Makevars
new file mode 100644
index 0000000..98ed178
--- /dev/null
+++ b/po/Makevars
@@ -0,0 +1,78 @@
+# Makefile variables for PO directory in any package using GNU gettext.
+ 
+# Usually the message domain is the same as the package name.
+DOMAIN = $(PACKAGE)
+ 
+# These two variables depend on the location of this directory.
+subdir = po
+top_builddir = ..
+ 
+# These options get passed to xgettext.
+XGETTEXT_OPTIONS = --from-code=UTF-8 --keyword=_ --keyword=N_ --keyword=C_:1c,2 --keyword=NC_:1c,2 
--keyword=g_dngettext:2,3 --add-comments
+ 
+# This is the copyright holder that gets inserted into the header of the
+# $(DOMAIN).pot file.  Set this to the copyright holder of the surrounding
+# package.  (Note that the msgstr strings, extracted from the package's
+# sources, belong to the copyright holder of the package.)  Translators are
+# expected to transfer the copyright for their translations to this person
+# or entity, or to disclaim their copyright.  The empty string stands for
+# the public domain; in this case the translators are expected to disclaim
+# their copyright.
+COPYRIGHT_HOLDER = GNOME Mahjongg Contributors
+ 
+# This tells whether or not to prepend "GNU " prefix to the package
+# name that gets inserted into the header of the $(DOMAIN).pot file.
+# Possible values are "yes", "no", or empty.  If it is empty, try to
+# detect it automatically by scanning the files in $(top_srcdir) for
+# "GNU packagename" string.
+PACKAGE_GNU = no
+ 
+# This is the email address or URL to which the translators shall report
+# bugs in the untranslated strings:
+# - Strings which are not entire sentences, see the maintainer guidelines
+#   in the GNU gettext documentation, section 'Preparing Strings'.
+# - Strings which use unclear terms or require additional context to be
+#   understood.
+# - Strings which make invalid assumptions about notation of date, time or
+#   money.
+# - Pluralisation problems.
+# - Incorrect English spelling.
+# - Incorrect formatting.
+# It can be your email address, or a mailing list address where translators
+# can write to without being subscribed, or the URL of a web page through
+# which the translators can contact you.
+MSGID_BUGS_ADDRESS = 
https://bugzilla.gnome.org/enter_bug.cgi?product=gnome-mahjongg&keywords=I18N+L10N&component=general
+ 
+# This is the list of locale categories, beyond LC_MESSAGES, for which the
+# message catalogs shall be used.  It is usually empty.
+EXTRA_LOCALE_CATEGORIES =
+ 
+# This tells whether the $(DOMAIN).pot file contains messages with an 'msgctxt'
+# context.  Possible values are "yes" and "no".  Set this to yes if the
+# package uses functions taking also a message context, like pgettext(), or
+# if in $(XGETTEXT_OPTIONS) you define keywords with a context argument.
+USE_MSGCTXT = yes
+ 
+# These options get passed to msgmerge.
+# Useful options are in particular:
+#   --previous            to keep previous msgids of translated messages,
+#   --quiet               to reduce the verbosity.
+MSGMERGE_OPTIONS =
+ 
+# These options get passed to msginit.
+# If you want to disable line wrapping when writing PO files, add
+# --no-wrap to MSGMERGE_OPTIONS, XGETTEXT_OPTIONS, and
+# MSGINIT_OPTIONS.
+MSGINIT_OPTIONS =
+ 
+# This tells whether or not to regenerate a PO file when $(DOMAIN).pot
+# has changed.  Possible values are "yes" and "no".  Set this to no if
+# the POT file is checked in the repository and the version control
+# program ignores timestamps.
+PO_DEPENDS_ON_POT = no
+ 
+# This tells whether or not to forcibly update $(DOMAIN).pot and
+# regenerate PO files on "make dist".  Possible values are "yes" and
+# "no".  Set this to no if the POT file and PO files are maintained
+# externally.
+DIST_DEPENDS_ON_UPDATE_PO = no
diff --git a/po/POTFILES.in b/po/POTFILES.in
index 21b0798..1deb74e 100644
--- a/po/POTFILES.in
+++ b/po/POTFILES.in
@@ -1,6 +1,5 @@
 # List of source files containing translatable strings.
 # Please keep this file in alphabetical order.
-[encoding: UTF-8]
 data/gnome-mahjongg.appdata.xml.in
 data/gnome-mahjongg.desktop.in
 data/org.gnome.mahjongg.gschema.xml
@@ -9,5 +8,5 @@ src/game.vala
 src/game-view.vala
 src/gnome-mahjongg.vala
 src/map.vala
-[type: gettext/glade]src/menu.ui
+src/menu.ui
 src/score-dialog.vala


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]