From 3248c6852ca027f3168c9a9e5ab867111d31cfc8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Florian=20M=C3=BCllner?= Date: Fri, 22 Jul 2016 02:13:54 +0200 Subject: [PATCH] build: Say good-bye to intltool intltool is unmaintained nowadays while upstream gettext gained support for formats like GSettings schemas and .desktop files, and offers a mechanism to teach it about other XML formats not yet supported out of the box which we can use for the rest. So there's nothing stopping us, just make the switch ... https://bugzilla.gnome.org/show_bug.cgi?id=769073 --- .gitignore | 6 ++ configure.ac | 4 +- ...gation.xml.in => 50-mutter-navigation.xml} | 76 +++++++++---------- ...ter-system.xml.in => 50-mutter-system.xml} | 6 +- data/50-mutter-windows.xml | 50 ++++++++++++ data/50-mutter-windows.xml.in | 50 ------------ data/Makefile.am | 22 +++--- data/mutter.desktop.in | 2 +- data/org.gnome.mutter.gschema.xml.in | 64 ++++++++-------- data/org.gnome.mutter.wayland.gschema.xml.in | 24 +++--- po/Makevars | 68 +++++++++++++++++ po/POTFILES.in | 6 +- 12 files changed, 228 insertions(+), 150 deletions(-) rename data/{50-mutter-navigation.xml.in => 50-mutter-navigation.xml} (54%) rename data/{50-mutter-system.xml.in => 50-mutter-system.xml} (52%) create mode 100644 data/50-mutter-windows.xml delete mode 100644 data/50-mutter-windows.xml.in create mode 100644 po/Makevars diff --git a/.gitignore b/.gitignore index 043127afe..8350c5ee8 100644 --- a/.gitignore +++ b/.gitignore @@ -41,8 +41,14 @@ stamp-h1 *~ stamp-it .intltool-merge-cache +ABOUT-NLS POTFILES +Makevars.template +po/*.header po/*.pot +po/*.sed +po/*.sin +Rules-quot libmutter.pc mutter mutter-restart-helper diff --git a/configure.ac b/configure.ac index 2756145de..df36620ca 100644 --- a/configure.ac +++ b/configure.ac @@ -43,9 +43,11 @@ GETTEXT_PACKAGE=mutter AC_SUBST(GETTEXT_PACKAGE) AC_DEFINE_UNQUOTED(GETTEXT_PACKAGE,"$GETTEXT_PACKAGE",[Name of default gettext domain]) +AM_GNU_GETTEXT_VERSION([0.19.6]) +AM_GNU_GETTEXT([external]) + LT_PREREQ([2.2.6]) LT_INIT([disable-static]) -IT_PROG_INTLTOOL([0.41]) AC_PROG_CC AC_PROG_CC_C_O AC_PROG_INSTALL diff --git a/data/50-mutter-navigation.xml.in b/data/50-mutter-navigation.xml similarity index 54% rename from data/50-mutter-navigation.xml.in rename to data/50-mutter-navigation.xml index 65742299c..1f9161b36 100644 --- a/data/50-mutter-navigation.xml.in +++ b/data/50-mutter-navigation.xml @@ -1,140 +1,140 @@ + description="Move window to workspace 1" /> + description="Move window to workspace 2" /> + description="Move window to workspace 3" /> + description="Move window to workspace 4" /> + description="Move window to last workspace" /> + description="Move window one workspace to the left" /> + description="Move window one workspace to the right" /> + description="Move window one workspace up" /> + description="Move window one workspace down" /> + description="Move window one monitor to the left" /> + description="Move window one monitor to the right" /> + description="Move window one monitor up" /> + description="Move window one monitor down" /> + description="Switch applications"/> diff --git a/data/50-mutter-system.xml.in b/data/50-mutter-system.xml similarity index 52% rename from data/50-mutter-system.xml.in rename to data/50-mutter-system.xml index b8f4e6bda..07da17a89 100644 --- a/data/50-mutter-system.xml.in +++ b/data/50-mutter-system.xml @@ -1,13 +1,13 @@ - + - + diff --git a/data/50-mutter-windows.xml b/data/50-mutter-windows.xml new file mode 100644 index 000000000..a9316d1e9 --- /dev/null +++ b/data/50-mutter-windows.xml @@ -0,0 +1,50 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/data/50-mutter-windows.xml.in b/data/50-mutter-windows.xml.in deleted file mode 100644 index 6679958a7..000000000 --- a/data/50-mutter-windows.xml.in +++ /dev/null @@ -1,50 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/data/Makefile.am b/data/Makefile.am index 699a83401..5188765a8 100644 --- a/data/Makefile.am +++ b/data/Makefile.am @@ -3,21 +3,24 @@ desktopfiles_in_files = \ desktopfilesdir = $(datadir)/applications desktopfiles_DATA = $(desktopfiles_in_files:.desktop.in=.desktop) -@INTLTOOL_DESKTOP_RULE@ +%.desktop:%.desktop.in + $(AM_V_GET) $(MSGFMT) --desktop --template $< -d $(top_srcdir)/po -o $@ -xml_in_files = \ - 50-mutter-navigation.xml.in \ - 50-mutter-system.xml.in \ - 50-mutter-windows.xml.in xmldir = $(GNOME_KEYBINDINGS_KEYSDIR) -xml_DATA = $(xml_in_files:.xml.in=.xml) +xml_DATA = \ + 50-mutter-navigation.xml \ + 50-mutter-system.xml \ + 50-mutter-windows.xml gschema_in_files = \ org.gnome.mutter.gschema.xml.in \ org.gnome.mutter.wayland.gschema.xml.in gsettings_SCHEMAS = $(gschema_in_files:.xml.in=.xml) -@INTLTOOL_XML_NOMERGE_RULE@ +%.gschema.xml: %.gschema.xml.in Makefile + $(AM_V_GEN) sed -e 's|@GETTEXT_DOMAIN[@]|$(GETTEXT_DOMAIN)|g' \ + $< > $@ || rm $@ + @GSETTINGS_RULES@ convertdir = $(datadir)/GConf/gsettings @@ -25,11 +28,10 @@ convert_DATA = mutter-schemas.convert CLEANFILES = \ $(desktopfiles_DATA) \ - $(gsettings_SCHEMAS) \ - $(xml_DATA) + $(gsettings_SCHEMAS) EXTRA_DIST = \ $(convert_DATA) \ $(desktopfiles_in_files) \ $(gschema_in_files) \ - $(xml_in_files) + $(xml_DATA) diff --git a/data/mutter.desktop.in b/data/mutter.desktop.in index 3bfb88d2d..e3ae07009 100644 --- a/data/mutter.desktop.in +++ b/data/mutter.desktop.in @@ -1,6 +1,6 @@ [Desktop Entry] Type=Application -_Name=Mutter +Name=Mutter Exec=mutter NoDisplay=true # name of loadable control center module diff --git a/data/org.gnome.mutter.gschema.xml.in b/data/org.gnome.mutter.gschema.xml.in index cffeeb8c5..3e3f8f790 100644 --- a/data/org.gnome.mutter.gschema.xml.in +++ b/data/org.gnome.mutter.gschema.xml.in @@ -4,102 +4,102 @@ 'Super_L' - <_summary>Modifier to use for extended window management operations - <_description> + Modifier to use for extended window management operations + This key will initiate the "overlay", which is a combination window overview and application launching system. The default is intended to be the "Windows key" on PC hardware. It's expected that this binding either the default or set to the empty string. - + false - <_summary>Attach modal dialogs - <_description> + Attach modal dialogs + When true, instead of having independent titlebars, modal dialogs appear attached to the titlebar of the parent window and are moved together with the parent window. - + false - <_summary>Enable edge tiling when dropping windows on screen edges - <_description> + Enable edge tiling when dropping windows on screen edges + If enabled, dropping windows on vertical screen edges maximizes them vertically and resizes them horizontally to cover half of the available area. Dropping windows on the top screen edge maximizes them completely. - + false - <_summary>Workspaces are managed dynamically - <_description> + Workspaces are managed dynamically + Determines whether workspaces are managed dynamically or whether there's a static number of workspaces (determined by the num-workspaces key in org.gnome.desktop.wm.preferences). - + false - <_summary>Workspaces only on primary - <_description> + Workspaces only on primary + Determines whether workspace switching should happen for windows on all monitors or only for windows on the primary monitor. - + false - <_summary>No tab popup - <_description> + No tab popup + Determines whether the use of popup and highlight frame should be disabled for window cycling. - + false - <_summary>Delay focus changes until the pointer stops moving - <_description> + Delay focus changes until the pointer stops moving + If set to true, and the focus mode is either "sloppy" or "mouse" then the focus will not be changed immediately when entering a window, but only after the pointer stops moving. - + 10 - <_summary>Draggable border width - <_description> + Draggable border width + The amount of total draggable borders. If the theme's visible borders are not enough, invisible borders will be added to meet this value. - + true - <_summary>Auto maximize nearly monitor sized windows - <_description> + Auto maximize nearly monitor sized windows + If enabled, new windows that are initially the size of the monitor automatically get maximized. - + false - <_summary>Place new windows in the center - <_description> + Place new windows in the center + When true, the new windows will always be put in the center of the active screen of the monitor. - + @@ -117,12 +117,12 @@ [] - <_summary>Select window from tab popup + Select window from tab popup [] - <_summary>Cancel tab popup + Cancel tab popup diff --git a/data/org.gnome.mutter.wayland.gschema.xml.in b/data/org.gnome.mutter.wayland.gschema.xml.in index d7c9ed4a0..44334d664 100644 --- a/data/org.gnome.mutter.wayland.gschema.xml.in +++ b/data/org.gnome.mutter.wayland.gschema.xml.in @@ -3,51 +3,51 @@ gettext-domain="@GETTEXT_DOMAIN@"> F1']]]> - <_summary>Switch to VT 1 + Switch to VT 1 F2']]]> - <_summary>Switch to VT 2 + Switch to VT 2 F3']]]> - <_summary>Switch to VT 3 + Switch to VT 3 F4']]]> - <_summary>Switch to VT 4 + Switch to VT 4 F5']]]> - <_summary>Switch to VT 5 + Switch to VT 5 F6']]]> - <_summary>Switch to VT 6 + Switch to VT 6 F7']]]> - <_summary>Switch to VT 7 + Switch to VT 7 F8']]]> - <_summary>Switch to VT 8 + Switch to VT 8 F9']]]> - <_summary>Switch to VT 9 + Switch to VT 9 F10']]]> - <_summary>Switch to VT 10 + Switch to VT 10 F11']]]> - <_summary>Switch to VT 11 + Switch to VT 11 F12']]]> - <_summary>Switch to VT 12 + Switch to VT 12 diff --git a/po/Makevars b/po/Makevars new file mode 100644 index 000000000..2ea1a45d2 --- /dev/null +++ b/po/Makevars @@ -0,0 +1,68 @@ +# 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 \ + --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 + + +# 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 = Translation copyright holder +# 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 = http://bugzilla.gnome.org/enter_bug.cgi?product=mutter&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 = + +# Ignore the timestamp of the .pot file, as git clones do not have +# deterministic timestamps, and .po files are updated by translators +# (only) in GNOME projects. +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 fdfdb4ea0..a463e6418 100644 --- a/po/POTFILES.in +++ b/po/POTFILES.in @@ -1,8 +1,8 @@ # List of source files containing translatable strings. # Please keep this file sorted alphabetically. -data/50-mutter-navigation.xml.in -data/50-mutter-system.xml.in -data/50-mutter-windows.xml.in +data/50-mutter-navigation.xml +data/50-mutter-system.xml +data/50-mutter-windows.xml data/mutter.desktop.in data/org.gnome.mutter.gschema.xml.in data/org.gnome.mutter.wayland.gschema.xml.in