Previously, both the .desktop.in template and the final .desktop file
were checked into source control.
While in some ways convenient, the manual step of updating it may be
forgotten after updating a translation or adjusting the template. It
also potentially introduces confusion as to which file to modify.
Instead, generate the .desktop file at build time. Since this is now
done using msgfmt rather than intltool, there is no additional
dependency beyond gettext, which is already used at build time to
compile .po files to .mo files.
Since gettext 0.19, gettext itself has been able to extract strings from
and merge translations to .desktop files. As a result, there is no need
to use intltool. More details are available on
https://wiki.gnome.org/MigratingFromIntltoolToGettext, though that page
assumes a project using Autotools, which this project does not.
One advantage of using xgettext rather than intltool is that there is no
need to prefix translatable keys in the .desktop.in file with _. This
patch adjusts tuxpaint.desktop.in accordingly, which makes the input
file itself a valid desktop file.
The LINGUAS file contains the list of supported languages. This could
in principle be generated automatically from one of the other places in
the source tree that has a manually-maintained list of languages; but in
my experience it is generally maintained by hand and checked into the
source tree.
POTFILES.in.in must be updated to remove the intltool-specific file
encoding annotation; instead this is passed to xgettext.
Finally, update-po.sh is rewritten to invoke xgettext and msgfmt rather
than intltool commands.
The mangling of POTFILES.in.in to prefix all filenames with '../' is
only necessary to minimize the churn when updating the .pot and .po
files, to simplify review of this change. The alternative is to pass
--directory=.. to xgettext. This would cause all .po files to be updated
as follows when regenerated:
#. Response to Black (0, 0, 0) color selected
-#: ../colors.h:86
+#: colors.h:86
msgid "Black!"
msgstr "Noir !"
614f6573e7 made this "a no-op script, for
now", in September 2006. It seems safe to assume, 16 years later, that
if it is needed it can be recovered from the Git history.
SDL2 initializes the macOS menu later than SDL1 (appears to be done
around the video initialization time), so we also need to call later our
routine to override the SDL menu with our localizable version.
Change the behavior of the onscreen keyboard's quote and backtick such
that clicking them once displays the clicked key.
Previously they defaulted to composing an accented character, as
discussed here:
https://sourceforge.net/p/tuxpaint/mailman/message/37656169/
Change the behavior of the onscreen keyboard's quote and backtick such
that clicking them once displays the clicked key.
Previously they defaulted to composing an accented character, as
discussed here:
https://sourceforge.net/p/tuxpaint/mailman/message/37656169/