From 795e7d4b591b129106ad812a908ec9e2a5cffc32 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Florian=20M=C3=BCllner?= Date: Thu, 21 Jul 2016 22:42:19 +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=769074 --- .gitignore | 4 - configure.ac | 6 +- ...ystem.xml.in => 50-gnome-shell-system.xml} | 12 +- data/Makefile.am | 24 ++- .../gnome-shell-extension-prefs.desktop.in.in | 4 +- ...rg.gnome.Shell.PortalHelper.desktop.in.in} | 2 +- data/org.gnome.Shell.desktop.in.in | 4 +- ...l.in.in => org.gnome.shell.gschema.xml.in} | 142 +++++++++--------- po/Makevars | 68 +++++++++ po/POTFILES.in | 9 +- po/POTFILES.skip | 4 - src/Makefile-calendar-server.am | 5 +- ...op.in.in => evolution-calendar.desktop.in} | 2 +- 13 files changed, 173 insertions(+), 113 deletions(-) rename data/{50-gnome-shell-system.xml.in => 50-gnome-shell-system.xml} (56%) rename data/{org.gnome.Shell.PortalHelper.desktop.in => org.gnome.Shell.PortalHelper.desktop.in.in} (90%) rename data/{org.gnome.shell.gschema.xml.in.in => org.gnome.shell.gschema.xml.in} (70%) create mode 100644 po/Makevars delete mode 100644 po/POTFILES.skip rename src/calendar-server/{evolution-calendar.desktop.in.in => evolution-calendar.desktop.in} (81%) diff --git a/.gitignore b/.gitignore index f39b4775c..5d72ddf04 100644 --- a/.gitignore +++ b/.gitignore @@ -16,7 +16,6 @@ config.log config.status config configure -data/50-gnome-shell-*.xml data/org.gnome.Shell.desktop data/org.gnome.Shell.desktop.in data/gnome-shell-extension-prefs.desktop @@ -26,8 +25,6 @@ data/gschemas.compiled data/perf-background.xml data/org.gnome.shell.gschema.xml data/org.gnome.shell.gschema.valid -data/org.gnome.shell.evolution.calendar.gschema.xml -data/org.gnome.shell.evolution.calendar.gschema.valid data/org.gnome.Shell.PortalHelper.desktop data/org.gnome.Shell.PortalHelper.service data/theme/.sass-cache @@ -74,7 +71,6 @@ src/*-marshal.[ch] src/Makefile src/Makefile.in src/calendar-server/evolution-calendar.desktop -src/calendar-server/evolution-calendar.desktop.in src/calendar-server/org.gnome.Shell.CalendarServer.service src/gnome-shell src/gnome-shell-calendar-server diff --git a/configure.ac b/configure.ac index 4aecf263c..3c0258566 100644 --- a/configure.ac +++ b/configure.ac @@ -24,13 +24,14 @@ LT_PREREQ([2.2.6]) LT_INIT([disable-static]) # i18n -IT_PROG_INTLTOOL([0.40]) - GETTEXT_PACKAGE=gnome-shell AC_SUBST(GETTEXT_PACKAGE) AC_DEFINE_UNQUOTED(GETTEXT_PACKAGE, "$GETTEXT_PACKAGE", [The prefix for our gettext translation domains.]) +AM_GNU_GETTEXT_VERSION([0.19.6]) +AM_GNU_GETTEXT([external]) + PKG_PROG_PKG_CONFIG([0.22]) AC_PATH_PROG([XSLTPROC], [xsltproc]) @@ -254,7 +255,6 @@ AC_CONFIG_FILES([ docs/reference/st/Makefile docs/reference/st/st-docs.sgml js/Makefile - src/calendar-server/evolution-calendar.desktop.in src/Makefile src/gvc/Makefile browser-plugin/Makefile diff --git a/data/50-gnome-shell-system.xml.in b/data/50-gnome-shell-system.xml similarity index 56% rename from data/50-gnome-shell-system.xml.in rename to data/50-gnome-shell-system.xml index dea69f03e..33e5ba532 100644 --- a/data/50-gnome-shell-system.xml.in +++ b/data/50-gnome-shell-system.xml @@ -1,24 +1,24 @@ + description="Show the notification list"/> + description="Focus the active notification"/> + description="Show the overview"/> + description="Show all applications"/> + description="Open the application menu"/> diff --git a/data/Makefile.am b/data/Makefile.am index 7b569b1b8..2eee47903 100644 --- a/data/Makefile.am +++ b/data/Makefile.am @@ -14,8 +14,9 @@ servicedir = $(datadir)/dbus-1/services service_DATA = org.gnome.Shell.PortalHelper.service CLEANFILES += \ - org.gnome.Shell.PortalHelper.service \ - org.gnome.Shell.PortalHelper.desktop \ + org.gnome.Shell.PortalHelper.service \ + org.gnome.Shell.PortalHelper.desktop \ + org.gnome.Shell.PortalHelper.desktop.in \ $(NULL) endif @@ -31,7 +32,9 @@ endif -e "s|@VERSION[@]|$(VERSION)|" \ $< > $@ || rm $@ -@INTLTOOL_DESKTOP_RULE@ +%.desktop:%.desktop.in + $(AM_V_GEN) $(MSGFMT) --desktop --template $(builddir)/$< \ + -d $(top_srcdir)/po -o $@ introspectiondir = $(datadir)/dbus-1/interfaces introspection_DATA = \ @@ -83,14 +86,11 @@ perf-background.xml: perf-background.xml.in $< > $@ || rm $@ keysdir = @GNOME_KEYBINDINGS_KEYSDIR@ -keys_in_files = 50-gnome-shell-system.xml.in -keys_DATA = $(keys_in_files:.xml.in=.xml) +keys_DATA = 50-gnome-shell-system.xml gsettings_SCHEMAS = org.gnome.shell.gschema.xml -@INTLTOOL_XML_NOMERGE_RULE@ - -%.gschema.xml.in: %.gschema.xml.in.in Makefile +%.gschema.xml: %.gschema.xml.in Makefile $(AM_V_GEN) sed -e 's|@GETTEXT_PACKAGE[@]|$(GETTEXT_PACKAGE)|g' \ $< > $@ || rm $@ @@ -113,12 +113,12 @@ EXTRA_DIST = \ $(introspection_DATA) \ $(menu_DATA) \ $(convert_DATA) \ - $(keys_in_files) \ + $(keys_DATA) \ $(dist_theme_files) \ perf-background.xml.in \ - org.gnome.Shell.PortalHelper.desktop.in \ + org.gnome.Shell.PortalHelper.desktop.in.in \ org.gnome.Shell.PortalHelper.service.in \ - org.gnome.shell.gschema.xml.in.in \ + org.gnome.shell.gschema.xml.in \ gnome-shell-theme.gresource.xml \ $(resource_files) \ $(NULL) @@ -127,11 +127,9 @@ CLEANFILES += \ org.gnome.Shell.desktop.in \ gnome-shell-extension-prefs.in \ $(desktop_DATA) \ - $(keys_DATA) \ $(gsettings_SCHEMAS) \ perf-background.xml \ gschemas.compiled \ org.gnome.shell.gschema.valid \ - org.gnome.shell.gschema.xml.in \ gnome-shell-theme.gresource \ $(NULL) diff --git a/data/gnome-shell-extension-prefs.desktop.in.in b/data/gnome-shell-extension-prefs.desktop.in.in index 9f8bbf405..d96292c30 100644 --- a/data/gnome-shell-extension-prefs.desktop.in.in +++ b/data/gnome-shell-extension-prefs.desktop.in.in @@ -1,7 +1,7 @@ [Desktop Entry] Type=Application -_Name=GNOME Shell Extension Preferences -_Comment=Configure GNOME Shell Extensions +Name=GNOME Shell Extension Preferences +Comment=Configure GNOME Shell Extensions Exec=@bindir@/gnome-shell-extension-prefs %u X-GNOME-Bugzilla-Bugzilla=GNOME X-GNOME-Bugzilla-Product=gnome-shell diff --git a/data/org.gnome.Shell.PortalHelper.desktop.in b/data/org.gnome.Shell.PortalHelper.desktop.in.in similarity index 90% rename from data/org.gnome.Shell.PortalHelper.desktop.in rename to data/org.gnome.Shell.PortalHelper.desktop.in.in index 8633067a4..eab88591a 100644 --- a/data/org.gnome.Shell.PortalHelper.desktop.in +++ b/data/org.gnome.Shell.PortalHelper.desktop.in.in @@ -1,5 +1,5 @@ [Desktop Entry] -_Name=Network Login +Name=Network Login Type=Application Exec=gapplication launch org.gnome.Shell.PortalHelper DBusActivatable=true diff --git a/data/org.gnome.Shell.desktop.in.in b/data/org.gnome.Shell.desktop.in.in index d3321b68e..09543e858 100644 --- a/data/org.gnome.Shell.desktop.in.in +++ b/data/org.gnome.Shell.desktop.in.in @@ -1,7 +1,7 @@ [Desktop Entry] Type=Application -_Name=GNOME Shell -_Comment=Window management and application launching +Name=GNOME Shell +Comment=Window management and application launching Exec=@bindir@/gnome-shell X-GNOME-Bugzilla-Bugzilla=GNOME X-GNOME-Bugzilla-Product=gnome-shell diff --git a/data/org.gnome.shell.gschema.xml.in.in b/data/org.gnome.shell.gschema.xml.in similarity index 70% rename from data/org.gnome.shell.gschema.xml.in.in rename to data/org.gnome.shell.gschema.xml.in index d5cbb4bf4..613c2784b 100644 --- a/data/org.gnome.shell.gschema.xml.in.in +++ b/data/org.gnome.shell.gschema.xml.in @@ -3,84 +3,84 @@ gettext-domain="@GETTEXT_PACKAGE@"> true - <_summary> + Enable internal tools useful for developers and testers from Alt-F2 - - <_description> + + Allows access to internal debugging and monitoring tools using the Alt-F2 dialog. - + [] - <_summary>UUIDs of extensions to enable - <_description> + UUIDs of extensions to enable + GNOME Shell extensions have a UUID property; this key lists extensions which should be loaded. Any extension that wants to be loaded needs to be in this list. You can also manipulate this list with the EnableExtension and DisableExtension D-Bus methods on org.gnome.Shell. - + false - <_summary>Disables the validation of extension version compatibility - <_description> + Disables the validation of extension version compatibility + GNOME Shell will only load extensions that claim to support the current running version. Enabling this option will disable this check and try to load all extensions regardless of the versions they claim to support. - + [ 'epiphany.desktop', 'evolution.desktop', 'rhythmbox.desktop', 'shotwell.desktop', 'org.gnome.Nautilus.desktop', 'org.gnome.Software.desktop' ] - <_summary>List of desktop file IDs for favorite applications - <_description> + List of desktop file IDs for favorite applications + The applications corresponding to these identifiers will be displayed in the favorites area. - + 0 - <_summary>App Picker View - <_description> + App Picker View + Index of the currently selected view in the application picker. - + [] - <_summary>History for command (Alt-F2) dialog + History for command (Alt-F2) dialog [] - <_summary>History for the looking glass dialog + History for the looking glass dialog false - <_summary>Always show the 'Log out' menu item in the user menu. - <_description> + Always show the 'Log out' menu item in the user menu. + This key overrides the automatic hiding of the 'Log out' menu item in single-user, single-session situations. - + false - <_summary>Whether to remember password for mounting encrypted or remote filesystems - <_description> + Whether to remember password for mounting encrypted or remote filesystems + The shell will request a password when an encrypted device or a remote filesystem is mounted. If the password can be saved for future use a 'Remember Password' checkbox will be present. This key sets the default state of the checkbox. - + false - <_summary>Whether the default Bluetooth adapter had set up devices associated to it - <_description> + Whether the default Bluetooth adapter had set up devices associated to it + The shell will only show a Bluetooth menu item if a Bluetooth adapter is powered, or if there were devices set up associated with the default adapter. This will be reset if the default adapter is ever seen not to have devices associated to it. - + @@ -90,44 +90,44 @@ gettext-domain="@GETTEXT_PACKAGE@"> ["<Super>F10"] - <_summary>Keybinding to open the application menu - <_description> + Keybinding to open the application menu + Keybinding to open the application menu. - + ["<Super>a"] - <_summary>Keybinding to open the "Show Applications" view - <_description> + Keybinding to open the "Show Applications" view + Keybinding to open the "Show Applications" view of the Activities Overview. - + ["<Super>s"] - <_summary>Keybinding to open the overview - <_description> + Keybinding to open the overview + Keybinding to open the Activities Overview. - + ["<Super>v","<Super>m"] - <_summary>Keybinding to toggle the visibility of the notification list - <_description> + Keybinding to toggle the visibility of the notification list + Keybinding to toggle the visibility of the notification list. - + ["<Super>n"] - <_summary>Keybinding to focus the active notification - <_description> + Keybinding to focus the active notification + Keybinding to focus the active notification. - + [] - <_summary>Keybinding that pauses and resumes all running tweens, for debugging purposes - <_description> + Keybinding that pauses and resumes all running tweens, for debugging purposes + @@ -135,10 +135,10 @@ gettext-domain="@GETTEXT_PACKAGE@"> 'touch' - <_summary>Which keyboard to use - <_description> + Which keyboard to use + The type of keyboard to use. - + @@ -147,11 +147,11 @@ gettext-domain="@GETTEXT_PACKAGE@"> false - <_summary>Limit switcher to current workspace. - <_description> + Limit switcher to current workspace. + If true, only applications that have windows on the current workspace are shown in the switcher. Otherwise, all applications are included. - + @@ -165,20 +165,20 @@ gettext-domain="@GETTEXT_PACKAGE@"> 'both' - <_summary>The application icon mode. - <_description> + The application icon mode. + Configures how the windows are shown in the switcher. Valid possibilities are 'thumbnail-only' (shows a thumbnail of the window), 'app-icon-only' (shows only the application icon) or 'both'. - + true - <_summary>Limit switcher to current workspace. - <_description> + Limit switcher to current workspace. + If true, only windows from the current workspace are shown in the switcher. Otherwise, all windows are included. - + @@ -186,43 +186,43 @@ gettext-domain="@GETTEXT_PACKAGE@"> true - <_summary>Attach modal dialog to the parent window - <_description> + Attach modal dialog to the parent window + This key overrides the key in org.gnome.mutter when running GNOME Shell. - + true - <_summary>Enable edge tiling when dropping windows on screen edges - <_description> + Enable edge tiling when dropping windows on screen edges + This key overrides the key in org.gnome.mutter when running GNOME Shell. - + true - <_summary>Workspaces are managed dynamically - <_description> + Workspaces are managed dynamically + This key overrides the key in org.gnome.mutter when running GNOME Shell. - + true - <_summary>Workspaces only on primary monitor - <_description> + Workspaces only on primary monitor + This key overrides the key in org.gnome.mutter when running GNOME Shell. - + true - <_summary>Delay focus changes in mouse mode until the pointer stops moving - <_description> + Delay focus changes in mouse mode until the pointer stops moving + This key overrides the key in org.gnome.mutter when running GNOME Shell. - + diff --git a/po/Makevars b/po/Makevars new file mode 100644 index 000000000..4481d3d54 --- /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=gnome-shell&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 6fc84391a..3f24e7d68 100644 --- a/po/POTFILES.in +++ b/po/POTFILES.in @@ -1,11 +1,10 @@ # List of source files containing translatable strings. # Please keep this file sorted alphabetically. -[encoding: UTF-8] -data/50-gnome-shell-system.xml.in +data/50-gnome-shell-system.xml data/gnome-shell-extension-prefs.desktop.in.in data/org.gnome.Shell.desktop.in.in -data/org.gnome.shell.gschema.xml.in.in -data/org.gnome.Shell.PortalHelper.desktop.in +data/org.gnome.shell.gschema.xml.in +data/org.gnome.Shell.PortalHelper.desktop.in.in js/extensionPrefs/main.js js/gdm/authPrompt.js js/gdm/loginDialog.js @@ -62,7 +61,7 @@ js/ui/viewSelector.js js/ui/windowAttentionHandler.js js/ui/windowManager.js js/ui/windowMenu.js -src/calendar-server/evolution-calendar.desktop.in.in +src/calendar-server/evolution-calendar.desktop.in # Please do not remove this file from POTFILES.in. Run "git submodule init && git submodule update" to get it. src/gvc/gvc-mixer-control.c src/main.c diff --git a/po/POTFILES.skip b/po/POTFILES.skip deleted file mode 100644 index 31998fe4c..000000000 --- a/po/POTFILES.skip +++ /dev/null @@ -1,4 +0,0 @@ -data/org.gnome.shell.evolution.calendar.gschema.xml.in -src/calendar-server/evolution-calendar.desktop.in -# Meh, autofools :-( -sub/src/calendar-server/evolution-calendar.desktop.in diff --git a/src/Makefile-calendar-server.am b/src/Makefile-calendar-server.am index 41dced6f0..9ec04eb07 100644 --- a/src/Makefile-calendar-server.am +++ b/src/Makefile-calendar-server.am @@ -12,7 +12,9 @@ desktopdir=$(datadir)/applications desktop_DATA = $(desktop_in_files:.desktop.in=.desktop) desktop_in_files = calendar-server/evolution-calendar.desktop.in -@INTLTOOL_DESKTOP_RULE@ +%.desktop:%.desktop.in + @$(MKDIR_P) $(builddir)/calendar-server + $(AM_V_GEN) $(MSGFMT) --desktop --template $< -d $(top_srcdir)/po -o $@ gnome_shell_calendar_server_CFLAGS = \ -I$(top_srcdir)/src \ @@ -30,6 +32,7 @@ gnome_shell_calendar_server_LDADD = \ EXTRA_DIST += \ calendar-server/README \ calendar-server/org.gnome.Shell.CalendarServer.service.in \ + $(desktop_in_files) \ $(NULL) CLEANFILES += \ diff --git a/src/calendar-server/evolution-calendar.desktop.in.in b/src/calendar-server/evolution-calendar.desktop.in similarity index 81% rename from src/calendar-server/evolution-calendar.desktop.in.in rename to src/calendar-server/evolution-calendar.desktop.in index 4ce0bda0a..6daf9ff0e 100644 --- a/src/calendar-server/evolution-calendar.desktop.in.in +++ b/src/calendar-server/evolution-calendar.desktop.in @@ -1,5 +1,5 @@ [Desktop Entry] -_Name=Evolution Calendar +Name=Evolution Calendar Exec=evolution -c calendar Icon=evolution NoDisplay=true