[five-or-more] Migrate to Gettext
- From: Robert Roth <robertroth src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [five-or-more] Migrate to Gettext
- Date: Mon, 26 Feb 2018 17:06:50 +0000 (UTC)
commit 032961ffa3be3523e8f525d1648ed8140430e2eb
Author: Ruxandra Simion <ruxandra simion93 gmail com>
Date: Sat Feb 24 18:46:17 2018 +0200
Migrate to Gettext
https://bugzilla.gnome.org/show_bug.cgi?id=793042
autogen.sh | 1 -
configure.ac | 3 +-
data/Makefile.am | 6 +-
data/five-or-more.appdata.xml.in | 14 ++--
data/five-or-more.desktop.in | 8 ++-
git.mk | 135 ++++++++++++++++++++++++++++++++-----
po/Makevars | 78 ++++++++++++++++++++++
po/POTFILES.in | 7 +-
8 files changed, 215 insertions(+), 37 deletions(-)
---
diff --git a/autogen.sh b/autogen.sh
index 941dd06..ace9e51 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 fd83970..584d740 100644
--- a/configure.ac
+++ b/configure.ac
@@ -36,7 +36,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, five-or-more)
AC_DEFINE_UNQUOTED(GETTEXT_PACKAGE,"$GETTEXT_PACKAGE", [The gettext package name])
diff --git a/data/Makefile.am b/data/Makefile.am
index caf95bc..2b2d31f 100644
--- a/data/Makefile.am
+++ b/data/Makefile.am
@@ -21,12 +21,14 @@ man_MANS = five-or-more.6
desktop_in_files = five-or-more.desktop.in
desktopdir = $(datadir)/applications
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 = five-or-more.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 = \
$(theme_DATA) \
diff --git a/data/five-or-more.appdata.xml.in b/data/five-or-more.appdata.xml.in
index 3e2f0d9..74a315b 100644
--- a/data/five-or-more.appdata.xml.in
+++ b/data/five-or-more.appdata.xml.in
@@ -4,19 +4,19 @@
<id>five-or-more.desktop</id>
<metadata_license>CC0-1.0</metadata_license>
<project_license>GPL-3.0+</project_license>
- <_name>Five or More</_name>
- <_summary>Remove colored balls from the board by forming lines</_summary>
+ <name>Five or More</name>
+ <summary>Remove colored balls from the board by forming lines</summary>
<description>
- <_p>
+ <p>
Five or More is the GNOME port of a once-popular computer game. Align five or
more objects of the same color into a line to cause them to disappear and
score points. Earn many more points by lining up as many objects as possible
before clearing them.
- </_p>
- <_p>
+ </p>
+ <p>
More objects appear after every turn. Play for as long as possible, until the
board is completely full!
- </_p>
+ </p>
</description>
<screenshots>
<screenshot height="524" width="972" type="default">
@@ -37,7 +37,7 @@
<kudo>UserDocs</kudo>
</kudos>
<translation type="gettext">five-or-more</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/five-or-more.desktop.in b/data/five-or-more.desktop.in
index bb53905..f3fcc44 100644
--- a/data/five-or-more.desktop.in
+++ b/data/five-or-more.desktop.in
@@ -1,8 +1,10 @@
[Desktop Entry]
-_Name=Five or More
-_Comment=Remove colored balls from the board by forming lines
-_Keywords=game;strategy;logic;
+Name=Five or More
+Comment=Remove colored balls from the board by forming lines
+# 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;logic;
Exec=five-or-more
+# Translators: Do NOT translate or transliterate this text (this is an icon file name)!
Icon=five-or-more
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..0dc7b90
--- /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 = five-or-more 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=five-or-more&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 9edc91f..faa06d8 100644
--- a/po/POTFILES.in
+++ b/po/POTFILES.in
@@ -1,11 +1,10 @@
# List of source files containing translatable strings.
# Please keep this file in alphabetical order.
-[encoding: UTF-8]
data/five-or-more.appdata.xml.in
data/five-or-more.desktop.in
-[type: gettext/glade]data/five-or-more-preferences.ui
-[type: gettext/glade]data/five-or-more.ui
-[type: gettext/glade]data/menu.ui
+data/five-or-more-preferences.ui
+data/five-or-more.ui
+data/menu.ui
data/org.gnome.five-or-more.gschema.xml
src/five-or-more.c
src/games-scores-dialog.c
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]