[gnome-mines] Fix up .desktop and appdata translations with meson



commit 0f32eeee89c9c0592d04f2eecd55cb56d0604501
Author: Robert Ancell <robert ancell canonical com>
Date:   Thu May 25 14:37:38 2017 +1200

    Fix up .desktop and appdata translations with meson

 autogen.sh                      |    1 -
 configure.ac                    |    3 +-
 data/Makefile.am                |    8 +++-
 data/gnome-mines.appdata.xml.in |   14 +++---
 data/gnome-mines.desktop.in     |   13 +++---
 data/meson.build                |   27 ++++++-------
 meson.build                     |    1 -
 po/Makevars                     |   78 +++++++++++++++++++++++++++++++++++++++
 po/POTFILES.in                  |    3 +-
 9 files changed, 114 insertions(+), 34 deletions(-)
---
diff --git a/autogen.sh b/autogen.sh
index 0c05d44..d1deec7 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 f0965c1..0159994 100644
--- a/configure.ac
+++ b/configure.ac
@@ -38,7 +38,8 @@ dnl ###########################################################################
 dnl Internationalization
 dnl ###########################################################################
 
-IT_PROG_INTLTOOL([0.50])
+AM_GNU_GETTEXT([external])
+AM_GNU_GETTEXT_VERSION([0.19.8])
 AC_SUBST(GETTEXT_PACKAGE, gnome-mines)
 
 dnl ###########################################################################
diff --git a/data/Makefile.am b/data/Makefile.am
index b3d4ceb..c5d0a5d 100644
--- a/data/Makefile.am
+++ b/data/Makefile.am
@@ -11,12 +11,16 @@ icon_symbolic_DATA=flag-symbolic.svg
 desktopdir = $(datadir)/applications
 desktop_in_files = gnome-mines.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-mines.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-mines.appdata.xml.in b/data/gnome-mines.appdata.xml.in
index e04d32e..c675caf 100644
--- a/data/gnome-mines.appdata.xml.in
+++ b/data/gnome-mines.appdata.xml.in
@@ -5,20 +5,20 @@
   <metadata_license>CC0-1.0</metadata_license>
 
   <project_license>GPL-3.0+ and CC-BY-SA-3.0</project_license>
-  <_name>GNOME Mines</_name>
-  <_summary>Clear hidden mines from a minefield</_summary>
+  <name>GNOME Mines</name>
+  <summary>Clear hidden mines from a minefield</summary>
   <description>
-    <_p>
+    <p>
       GNOME Mines is a puzzle game where you search for hidden mines. Flag the
       spaces with mines as quickly as possible to make the board a safer place. You
       win the game when you’ve flagged every mine on the board. Be careful not to
       trigger one, or the game is over!
-    </_p>
-    <_p>
+    </p>
+    <p>
       You can select the size of the field you want to play on at the start of the
       game. If you get stuck, you can ask for a hint: there’s a time penalty, but
       that’s better than hitting a mine!
-    </_p>
+    </p>
   </description>
   <screenshots>
     <screenshot type="default" height="563" width="748">
@@ -39,7 +39,7 @@
     <kudo>UserDocs</kudo>
   </kudos>
   <translation type="gettext">gnome-mines</translation>
-  <_developer_name>The GNOME Project</_developer_name>
+  <developer_name>The GNOME Project</developer_name>
   <!-- Generated by  http://apps-xdgapp.rhcloud.com/oars --> 
   <content_rating type="oars-1.0">
     <content_attribute id="violence-cartoon">none</content_attribute>
diff --git a/data/gnome-mines.desktop.in b/data/gnome-mines.desktop.in
index 67e2ac5..ffbe669 100644
--- a/data/gnome-mines.desktop.in
+++ b/data/gnome-mines.desktop.in
@@ -1,23 +1,24 @@
 [Desktop Entry]
-_Name=Mines
-_Comment=Clear hidden mines from a minefield
+Name=Mines
+Comment=Clear hidden mines from a minefield
 Exec=gnome-mines
+# Translators: Do NOT translate or transliterate this text (this is an icon file name)!
 Icon=gnome-mines
 Terminal=false
 Type=Application
 Categories=GNOME;GTK;Game;LogicGame;
-_Keywords=minesweeper;
+Keywords=minesweeper;
 StartupNotify=true
 Actions=Small;Medium;Big;
 
 [Desktop Action Small]
-_Name=Small board
+Name=Small board
 Exec=gnome-mines --small
 
 [Desktop Action Medium]
-_Name=Medium board
+Name=Medium board
 Exec=gnome-mines --medium
 
 [Desktop Action Big]
-_Name=Big board
+Name=Big board
 Exec=gnome-mines --big
diff --git a/data/meson.build b/data/meson.build
index 239ffe6..1b3585c 100644
--- a/data/meson.build
+++ b/data/meson.build
@@ -19,20 +19,19 @@ foreach theme: [ 'default', 'bgcolors', 'classic' ]
     endforeach
 endforeach
 
-# Note the keywords explicitly listed to stop the icon field being translated
-# https://bugs.launchpad.net/bugs/1624662
-custom_target ('gnome-mines.desktop',
-               output: 'gnome-mines.desktop',
-               input: 'gnome-mines.desktop.in',
-               command: [ msgfmt, '--desktop', '--keyword=Name', '--keyword=GenericName', 
'--keyword=Comment', '--keyword=Keywords', '--template', '@INPUT@', '-d', podir, '-o', '@OUTPUT@' ],
-               install: true,
-               install_dir: join_paths (datadir, 'applications'))
+i18n.merge_file ('desktop-file',
+                 input: 'gnome-mines.desktop.in',
+                 output: 'gnome-mines.desktop',
+                 install: true,
+                 install_dir: join_paths (datadir, 'applications'),
+                 po_dir: '../po',
+                 type: 'desktop')
 
-custom_target ('gnome-mines.appdata.xml',
-               output: 'gnome-mines.appdata.xml',
-               input: 'gnome-mines.appdata.xml.in',
-               command: [ msgfmt, '--xml', '--template', '@INPUT@', '-d', podir, '-o', '@OUTPUT@' ],
-               install: true,
-               install_dir: join_paths (datadir, 'appdata'))
+i18n.merge_file ('appdata-file',
+                 input: 'gnome-mines.appdata.xml.in',
+                 output: 'gnome-mines.appdata.xml',
+                 install: true,
+                 install_dir: join_paths (datadir, 'appdata'),
+                 po_dir: '../po')
 
 install_man ('gnome-mines.6')
diff --git a/meson.build b/meson.build
index 2652dab..edcc05a 100644
--- a/meson.build
+++ b/meson.build
@@ -22,7 +22,6 @@ gee_dep = dependency ('gee-0.8')
 gtk_dep = dependency ('gtk+-3.0', version: '>= 3.12')
 librsvg_dep = dependency ('librsvg-2.0', version: '>=2.32.0')
 libgnome_games_support_dep = dependency ('libgnome-games-support-1')
-msgfmt = find_program  ('msgfmt')
 
 subdir ('po')
 subdir ('data')
diff --git a/po/Makevars b/po/Makevars
new file mode 100644
index 0000000..275323e
--- /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 Mines 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-mines&keywords=I18N+L10N&component=I18N
+
+# 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 8b44902..9b9b4fc 100644
--- a/po/POTFILES.in
+++ b/po/POTFILES.in
@@ -1,10 +1,9 @@
 # List of source files containing translatable strings.
 # Please keep this file in alphabetical order.
-[encoding: UTF-8]
 data/gnome-mines.appdata.xml.in
 data/gnome-mines.desktop.in
 data/org.gnome.mines.gschema.xml
-[type: gettext/glade]src/interface.ui
+src/interface.ui
 src/gnome-mines.vala
 src/minefield.vala
 src/minefield-view.vala


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