1
0
mirror of https://github.com/gryf/wmaker.git synced 2025-12-18 20:10:29 +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 $$?); \
done
SUBDIRS_PO = WINGs/po po util/po WPrefs.app/po
SUBDIRS_PO = wrlib/po WINGs/po po util/po WPrefs.app/po
else
@echo "Error: the program 'xgettext' was not found by configure, it is mandatory for this operation" >&2 ; exit 1
endif

View File

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

View File

@@ -419,23 +419,24 @@ submit your contribution to the project:
this is done with @command{git}.
@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
@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{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}
@end itemize
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
make update-lang PO=<lang>
@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 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.

View File

@@ -37,7 +37,7 @@ AC_DEFUN_ONCE([WM_I18N_LANGUAGES],
[AC_ARG_VAR([LINGUAS],
[list of language translations to support (I18N), use 'list' to get the list of supported languages, default: none])dnl
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 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
@@ -66,6 +66,7 @@ AS_IF([test "x$LINGUAS" != "x"],
supported_locales=""
# 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' ' '])"
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' ' '])"
@@ -81,7 +82,7 @@ AS_IF([test "x$LINGUAS" != "x"],
for lang in $LINGUAS; do
found=0
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],
[m4_toupper(REGION)MOFILES="$[]m4_toupper(REGION)MOFILES $lang.mo"
found=1],
@@ -103,6 +104,7 @@ AS_IF([test "x$LINGUAS" != "x"],
MANLANGDIRS="`echo $MANMOFILES | sed -e 's,\.mo,,g' `"
],
[INTLIBS=""
WRASTERMOFILES=""
WINGSMOFILES=""
WMAKERMOFILES=""
WPREFSMOFILES=""
@@ -112,6 +114,7 @@ AS_IF([test "x$LINGUAS" != "x"],
dnl
dnl The variables that are used in the Makefiles:
AC_SUBST([INTLIBS])dnl
AC_SUBST([WRASTERMOFILES])dnl
AC_SUBST([WINGSMOFILES])dnl
AC_SUBST([WMAKERMOFILES])dnl
AC_SUBST([WPREFSMOFILES])dnl

View File

@@ -1,6 +1,6 @@
## automake input file for wrlib
SUBDIRS = .
SUBDIRS = . po
DIST_SUBDIRS = $(SUBDIRS) tests
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"