1
0
mirror of https://github.com/gryf/wmaker.git synced 2025-12-19 04:20:27 +01:00

WRaster: Create structure to make the library translatable

The library did not propose the mechanisms to be translated, this patch is
creating the structure in autoconf/automake and the translation directory
so its messages can be also translated.

Signed-off-by: Christophe CURIS <christophe.curis@free.fr>
This commit is contained in:
Christophe CURIS
2021-05-17 16:32:10 +02:00
committed by Carlos R. Mafra
parent fbec3a728f
commit aadd694a6b
6 changed files with 102 additions and 8 deletions

View File

@@ -80,7 +80,7 @@ if HAVE_XGETTEXT
($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) update-lang || exit $$?); \ ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) update-lang || exit $$?); \
done done
SUBDIRS_PO = WINGs/po po util/po WPrefs.app/po SUBDIRS_PO = wrlib/po WINGs/po po util/po WPrefs.app/po
else else
@echo "Error: the program 'xgettext' was not found by configure, it is mandatory for this operation" >&2 ; exit 1 @echo "Error: the program 'xgettext' was not found by configure, it is mandatory for this operation" >&2 ; exit 1
endif endif

View File

@@ -906,7 +906,7 @@ AC_CONFIG_FILES(
Makefile Makefile
dnl WRaster Library dnl WRaster Library
wrlib/Makefile wrlib/Makefile wrlib/po/Makefile
wrlib/tests/Makefile wrlib/tests/Makefile
dnl WINGs toolkit dnl WINGs toolkit

View File

@@ -419,23 +419,24 @@ submit your contribution to the project:
this is done with @command{git}. this is done with @command{git}.
@end itemize @end itemize
In @sc{Window Maker}, you have actually 4 @code{po} files to take care of: In @sc{Window Maker}, you have actually 5 @code{po} files to take care of:
@itemize @minus @itemize @minus
@item @file{po/@emph{<lang>}.po}: for @sc{Window Maker} itself @item @file{po/@emph{<lang>}.po}: for @sc{Window Maker} itself
@item @file{WPrefs.app/po/@emph{<lang>}.po}: for the Preference Editor program @item @file{WPrefs.app/po/@emph{<lang>}.po}: for the Preference Editor program
@item @file{WINGs/po/@emph{<lang>}.po}: for the graphic toolkit library @item @file{WINGs/po/@emph{<lang>}.po}: for the graphic toolkit library
@item @file{wrlib/po/@emph{<lang>}.po}: for the image processing library
@item @file{util/po/@emph{<lang>}.po}: for the command-line tools of @sc{Window Maker} @item @file{util/po/@emph{<lang>}.po}: for the command-line tools of @sc{Window Maker}
@end itemize @end itemize
As stated previously, there is a @command{make} target that can help you to automatically generate As stated previously, there is a @command{make} target that can help you to automatically generate
the POT and update the PO for these 4 cases: the POT and update the PO for these 5 cases:
@example @example
make update-lang PO=<lang> make update-lang PO=<lang>
@end example @end example
Once run, it will have updated as needed the 4 @code{po} files against the latest source code. Once run, it will have updated as needed the 5 @code{po} files against the latest source code.
You may wish to use the command @command{git gui} to view the changes; You may wish to use the command @command{git gui} to view the changes;
you can now edit the files to complete the translation, correct them, remove deprecated stuff, ... you can now edit the files to complete the translation, correct them, remove deprecated stuff, ...
Please note that the encoding should be set to @emph{UTF-8} as this is now the standard. Please note that the encoding should be set to @emph{UTF-8} as this is now the standard.

View File

@@ -37,7 +37,7 @@ AC_DEFUN_ONCE([WM_I18N_LANGUAGES],
[AC_ARG_VAR([LINGUAS], [AC_ARG_VAR([LINGUAS],
[list of language translations to support (I18N), use 'list' to get the list of supported languages, default: none])dnl [list of language translations to support (I18N), use 'list' to get the list of supported languages, default: none])dnl
AC_DEFUN([WM_ALL_LANGUAGES], AC_DEFUN([WM_ALL_LANGUAGES],
[m4_esyscmd([( ls WINGs/po/ ; ls po/ ; ls WPrefs.app/po/ ; ls util/po/ ) | sed -n -e '/po$/{s,\.po,,;p}' | sort -u | tr '\n' ' '])])dnl [m4_esyscmd([( ls wrlib/po/ ; ls WINGs/po/ ; ls po/ ; ls WPrefs.app/po/ ; ls util/po/ ) | sed -n -e '/po$/{s,\.po,,;p}' | sort -u | tr '\n' ' '])])dnl
dnl We 'divert' the macro to have it executed as soon as the option list have dnl We 'divert' the macro to have it executed as soon as the option list have
dnl been processed, so the list of locales will be printed after the configure dnl been processed, so the list of locales will be printed after the configure
dnl options have been parsed, but before any test have been run dnl options have been parsed, but before any test have been run
@@ -66,6 +66,7 @@ AS_IF([test "x$LINGUAS" != "x"],
supported_locales="" supported_locales=""
# This is the list of locales that our archive currently supports # This is the list of locales that our archive currently supports
wraster_locales=" m4_esyscmd([ls wrlib/po/ | sed -n '/po$/{s,.po,,;p}' | tr '\n' ' '])"
wings_locales=" m4_esyscmd([ls WINGs/po/ | sed -n '/po$/{s,.po,,;p}' | tr '\n' ' '])" wings_locales=" m4_esyscmd([ls WINGs/po/ | sed -n '/po$/{s,.po,,;p}' | tr '\n' ' '])"
wmaker_locales=" m4_esyscmd([ls po/ | sed -n '/po$/{s,.po,,;p}' | tr '\n' ' '])" wmaker_locales=" m4_esyscmd([ls po/ | sed -n '/po$/{s,.po,,;p}' | tr '\n' ' '])"
wprefs_locales=" m4_esyscmd([ls WPrefs.app/po/ | sed -n '/po$/{s,.po,,;p}' | tr '\n' ' '])" wprefs_locales=" m4_esyscmd([ls WPrefs.app/po/ | sed -n '/po$/{s,.po,,;p}' | tr '\n' ' '])"
@@ -81,7 +82,7 @@ AS_IF([test "x$LINGUAS" != "x"],
for lang in $LINGUAS; do for lang in $LINGUAS; do
found=0 found=0
wm_missing="" wm_missing=""
m4_foreach([REGION], [WINGs, wmaker, WPrefs, util, man], m4_foreach([REGION], [WRaster, WINGs, wmaker, WPrefs, util, man],
[AS_IF([echo "$[]m4_tolower(REGION)[]_locales" | grep " $lang " > /dev/null], [AS_IF([echo "$[]m4_tolower(REGION)[]_locales" | grep " $lang " > /dev/null],
[m4_toupper(REGION)MOFILES="$[]m4_toupper(REGION)MOFILES $lang.mo" [m4_toupper(REGION)MOFILES="$[]m4_toupper(REGION)MOFILES $lang.mo"
found=1], found=1],
@@ -103,6 +104,7 @@ AS_IF([test "x$LINGUAS" != "x"],
MANLANGDIRS="`echo $MANMOFILES | sed -e 's,\.mo,,g' `" MANLANGDIRS="`echo $MANMOFILES | sed -e 's,\.mo,,g' `"
], ],
[INTLIBS="" [INTLIBS=""
WRASTERMOFILES=""
WINGSMOFILES="" WINGSMOFILES=""
WMAKERMOFILES="" WMAKERMOFILES=""
WPREFSMOFILES="" WPREFSMOFILES=""
@@ -112,6 +114,7 @@ AS_IF([test "x$LINGUAS" != "x"],
dnl dnl
dnl The variables that are used in the Makefiles: dnl The variables that are used in the Makefiles:
AC_SUBST([INTLIBS])dnl AC_SUBST([INTLIBS])dnl
AC_SUBST([WRASTERMOFILES])dnl
AC_SUBST([WINGSMOFILES])dnl AC_SUBST([WINGSMOFILES])dnl
AC_SUBST([WMAKERMOFILES])dnl AC_SUBST([WMAKERMOFILES])dnl
AC_SUBST([WPREFSMOFILES])dnl AC_SUBST([WPREFSMOFILES])dnl

View File

@@ -1,6 +1,6 @@
## automake input file for wrlib ## automake input file for wrlib
SUBDIRS = . SUBDIRS = . po
DIST_SUBDIRS = $(SUBDIRS) tests DIST_SUBDIRS = $(SUBDIRS) tests
AUTOMAKE_OPTIONS = AUTOMAKE_OPTIONS =

90
wrlib/po/Makefile.am Normal file
View File

@@ -0,0 +1,90 @@
DOMAIN = WRaster
CATALOGS = @WRASTERMOFILES@
CLEANFILES = $(CATALOGS) $(DOMAIN).pot
EXTRA_DIST =
POTFILES = \
$(top_srcdir)/wrlib/raster.c \
$(top_srcdir)/wrlib/alpha_combine.c \
$(top_srcdir)/wrlib/draw.c \
$(top_srcdir)/wrlib/color.c \
$(top_srcdir)/wrlib/load.c \
$(top_srcdir)/wrlib/save.c \
$(top_srcdir)/wrlib/gradient.c \
$(top_srcdir)/wrlib/xpixmap.c \
$(top_srcdir)/wrlib/convert.c \
$(top_srcdir)/wrlib/context.c \
$(top_srcdir)/wrlib/misc.c \
$(top_srcdir)/wrlib/scale.c \
$(top_srcdir)/wrlib/rotate.c \
$(top_srcdir)/wrlib/flip.c \
$(top_srcdir)/wrlib/convolve.c \
$(top_srcdir)/wrlib/save_xpm.c \
$(top_srcdir)/wrlib/xutil.c \
$(top_srcdir)/wrlib/load_ppm.c \
$(top_srcdir)/wrlib/load_gif.c \
$(top_srcdir)/wrlib/load_jpeg.c \
$(top_srcdir)/wrlib/load_png.c \
$(top_srcdir)/wrlib/load_tiff.c \
$(top_srcdir)/wrlib/load_xpm.c \
$(top_srcdir)/wrlib/load_xpm_normalized.c \
$(top_srcdir)/wrlib/load_webp.c \
$(top_srcdir)/wrlib/load_magick.c
SUFFIXES = .po .mo
.po.mo:
$(AM_V_GEN)$(MSGFMT) -c -o $@ $<
all-local: $(CATALOGS)
.PHONY: update-lang
if HAVE_XGETTEXT
update-lang: $(DOMAIN).pot
$(AM_V_GEN)$(top_srcdir)/script/generate-po-from-template.sh \
-n "$(PACKAGE_NAME)" -v "$(PACKAGE_VERSION)" -b "$(PACKAGE_BUGREPORT)" \
-t "$(DOMAIN).pot" "$(srcdir)/$(PO).po"
$(DOMAIN).pot: $(POTFILES)
$(AM_V_GEN)$(XGETTEXT) --default-domain=$(DOMAIN) \
--add-comments --keyword=_ --keyword=N_ $(POTFILES)
@if cmp -s $(DOMAIN).po $(DOMAIN).pot; then \
rm -f $(DOMAIN).po; \
else \
mv -f $(DOMAIN).po $(DOMAIN).pot; \
fi
endif
install-data-local: $(CATALOGS)
$(mkinstalldirs) $(DESTDIR)$(localedir)
for n in $(CATALOGS) __DuMmY ; do \
if test "$$n" -a "$$n" != "__DuMmY" ; then \
l=`basename $$n .mo`; \
$(mkinstalldirs) $(DESTDIR)$(localedir)/$$l/LC_MESSAGES; \
$(INSTALL_DATA) -m 644 $$n $(DESTDIR)$(localedir)/$$l/LC_MESSAGES/$(DOMAIN).mo; \
fi; \
done
uninstall-local:
for n in $(CATALOGS) ; do \
l=`basename $$n .mo`; \
rm -f $(DESTDIR)$(localedir)/$$l/LC_MESSAGES/$(DOMAIN).mo; \
done
# Create a 'silent rule' for our make check the same way automake does
AM_V_CHKTRANS = $(am__v_CHKTRANS_$(V))
am__v_CHKTRANS_ = $(am__v_CHKTRANS_$(AM_DEFAULT_VERBOSITY))
am__v_CHKTRANS_0 = @echo " CHK translations" ;
am__v_CHKTRANS_1 =
# 'make check' will make sure the tranlation sources are in line with the compiled source
check-local:
$(AM_V_CHKTRANS)$(top_srcdir)/script/check-translation-sources.sh \
"$(srcdir)" -s "$(top_srcdir)/wrlib/Makefile.am"