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:
committed by
Carlos R. Mafra
parent
fbec3a728f
commit
aadd694a6b
@@ -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
|
||||||
|
|||||||
@@ -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
|
||||||
|
|||||||
7
doc/build/Translations.texi
vendored
7
doc/build/Translations.texi
vendored
@@ -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.
|
||||||
|
|||||||
@@ -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
|
||||||
|
|||||||
@@ -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
90
wrlib/po/Makefile.am
Normal 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"
|
||||||
Reference in New Issue
Block a user