[GRASS-dev] GRASS 6.4.2RC1 planning

Glynn Clements glynn at gclements.plus.com
Thu Sep 29 02:00:23 EDT 2011


Hamish wrote:

> also, don't know if it really matters, but:
> 
> [...]
> make htmlscript scriptstrings
> [...]
> .../1470.0/dist.i686/scripts/r.surf.volcano --html-description < /dev/null | grep -v '</body>\|</html>' > r.surf.volcano.tmp.html ; true ; fi
> ERROR: G_getenv(): Variable LOCATION_NAME not set

Does 6.x include demolocation in the installation?

The actual command is:

htmldesc = \
	GISRC=$(RUN_GISRC) \
	GISBASE=$(RUN_GISBASE) \
	PATH="$(BIN):$$PATH" \
	$(LD_LIBRARY_PATH_VAR)="$(BIN):$(ARCH_LIBDIR):$($(LD_LIBRARY_PATH_VAR))" \
	LC_ALL=C $(1) --html-description < /dev/null | grep -v '</body>\|</html>' > $(PGM).tmp.html ; true

where $(1) is the full path to the program.

GISRC needs to point at a valid $GISRC file (valid insofar as it
contains settings for GISDBASE, LOCATION_NAME and MAPSET). In 7.0,
this is:

RUN_GISRC       = $(GISBASE)/demolocation/.grassrc$(GRASS_VERSION_MAJOR)$(GRASS_VERSION_MINOR)

> [...]
> ...g.parser -t r.surf.volcano | sed s/\"/\\\\\"/g | sed 's/.*/_("&")/' > /usr/lib/grass64/locale/scriptstrings/r.surf.volcano_to_translate.c ; true
> /bin/sh: cannot create /usr/lib/grass64/locale/scriptstrings/r.surf.volcano_to_translate.c: Directory nonexistent

The resulting C file is used by "make -C locale pot" to make the .pot
files (the untranslated message catalogues, containing the strings
which require translation), which are then translated ... by humans.

In order for add-ons to get translations, we'd need to have "make pot"
(from locale/Makefile) scan the add-ons source tree as well as the
main source tree, so that any localisable strings are included in the
.pot files from which the translators work. The translations would
then end up as part of the main GRASS distribution.

I don't think that there's any realistic mechanism for add-ons to have
their own message catalogues. Particularly for scripts, where it's
g.parser's message catalogue (i.e. "grassmods.mo") which is used.

About the only thing which we can do about the above error is to
modify the corresponding rule (in Script.make) to check that the
destination directory exists before running the command.

-- 
Glynn Clements <glynn at gclements.plus.com>


More information about the grass-dev mailing list