Ethereal-dev: Re: [Ethereal-dev] Basic i18n (Internationalization)

Note: This archive is from the project's previous web site, ethereal.com. This list is no longer active.

Date: Sat, 22 Sep 2001 23:23:25 -0500
On Wed, Sep 19, 2001 at 01:06:18AM -0700, Guy Harris wrote:
> On Sun, May 27, 2001 at 06:49:12PM +0200, Juan Toledo wrote:
> > On Thu, May 24, 2001 at 03:05:50PM -0700, Guy Harris wrote:
> > > > Ok. I've added the i18n infrastructure,
> > > 
> > > After applying the patch:
> > > 
> > > 	tooting$ make 2>&1 | tee errs
> > > 	cd . && aclocal `./aclocal-flags`
> > > 	aclocal: configure.in: 39: macro `AM_GNU_GETTEXT' not found in library
> > > 
> > > It appears the changes require that the system have GNU "gettext"
> > > installed on it; that's not necessarily going to be the case.
> > 
> > It requires that a _developer_ rebuilding the configure file has gettext
> > installed. The user that receives the tar.gz distribution doesn't have to
> > have gettext installed.
> > 
> > Is it such a big requirement?
> 
> I'd consider it so.  I'd prefer not to add more "you must have this
> installed" items.  (In fact, I was going to look into *reducing* that
> list; a while ago, Michael Tuexen, I think, was trying to build from CVS
> on a machine that didn't have X11 installed - it had GLib installed, but
> not GTK+ - and that failed because the configure script couldn't be
> built without GTK+'s autoconf stuff being installed.  I'm going to look
> into whether I can use M4's "ifdef" to make that work.)

The solution is simple. Create a toplevel m4 directory that
*containts* the gettext autoconf macros and build acinclude.m4 from
the toplevel Makefile as:
  acinclude.m4: [files in toplevel m4 directory]
	cat [files in toplevel m4 directory] >acinclude.m4

Then the developer does not need the gettext package. You'd also need
to include any custom m4 macros that are currently in acinclude.m4 in
the toplevel m4 directory (because we're now autogenerating
acinclude.m4).

> Unfortunately, the tarball you distributed made symlinks to
> "/usr/share/gettext/intl/Makefile.in" in "intl/Makefile.in", which
> doesn't do any good on my FreeBSD 3.4 partition because there *is* no
> "/usr/share/gettext/intl/Makefile.in" because there is no
> "/usr/share/gettext".  There's a "/usr/local/share/gettext", but that's
> it.

Means he didn't run gettextize properly. I think he needs the --copy
option.

> I'd consider it a requirement that it not require that GNU gettext be
> installed in any system directory; at this point, at work, I really
> don't ever want to install anything in "/usr/local" again - if I have to
> install anything at all, I want to install it under my home directory,
> as it's just too much of a pain to install stuff under "/usr/local". 
> (Trust me on this one.  It really is.)

Apart from the gettext m4 macro, gettext does *not* need to be
installed on the system to get i18n working. Many free software
projects use gettext and very very few require gettext on the host
system. Of course, if your system doesn't have msgfmt(1) and friends,
your system probably cannot do i18n anyway.

BTW, installing to '/usr/local' isn't any worse than anywhere else.
It's just how you go about it.

-- 
albert chin (china@xxxxxxxxxxxxxxxxxx)