summaryrefslogtreecommitdiff
path: root/doc
diff options
context:
space:
mode:
Diffstat (limited to 'doc')
-rw-r--r--doc/I18N-HOWTO249
-rw-r--r--doc/Makefile.am15
-rw-r--r--doc/Makefile.in347
-rw-r--r--doc/intltool-extract.887
-rw-r--r--doc/intltool-merge.8120
-rw-r--r--doc/intltool-prepare.882
-rw-r--r--doc/intltool-update.8155
-rw-r--r--doc/intltoolize.860
8 files changed, 1115 insertions, 0 deletions
diff --git a/doc/I18N-HOWTO b/doc/I18N-HOWTO
new file mode 100644
index 0000000..36c14d0
--- /dev/null
+++ b/doc/I18N-HOWTO
@@ -0,0 +1,249 @@
+Autoconf/I18n-ify HelloWorld HOW-TO
+-----------------------------------
+
+Authors:
+ Kenneth Christiansen <kenneth at gnu dot org>
+ Thomas Vander Stichele <thomas at apestaart dot org>
+
+Help from: Bruno Haible <bruno at clisp dot org>
+
+Disclaimer:
+ Kenneth last used autoconf 2.52 and automake 1.4p5 to test this guide.
+ Thomas last used autoconf 2.52 and automake 1.5 to test this guide.
+ We would like you to let us know if you have different versions of
+ these tools and things don't work out the same way.
+ No authors of any autotools were harmed during the making of this guide.
+
+In this article we are going to explain how to turn a simple
+Hello World application with a standard Makefile into an autotools-
+and I18N-enabled tree up to the point where it can be distributed.
+
+Our existing helloworld.c file looks like the following:
+
+#include <stdio.h>
+
+int main (void) {
+ printf ("Hello, world!\n");
+}
+
+1. First we create a source tree :
+
+ / - This is the top level directory
+ /src/ - Here the source will end up.
+
+ and place the helloworld.c file in the src/ dir
+
+2. If your program has not been autoconf-enabled yet, you can
+ create configure.scan (which is a good starting point for configure.ac)
+ and rename it to configure.ac
+
+ autoscan # creates configure.scan
+ mv configure.scan configure.ac
+
+ Now edit configure.ac and make some changes.
+ You can remove everything after AC_INIT, we'll be using AM_INIT_AUTOMAKE
+ to pass on variables.
+
+ Add the lines
+ PACKAGE=helloworld
+ VERSION=0.0.1
+ AM_INIT_AUTOMAKE($PACKAGE, $VERSION)
+ to configure.in, just after AC_INIT
+
+ Change AC_CONFIG_HEADER to AM_CONFIG_HEADER as well.
+
+ If you have an empty AC_CONFIG_FILES macro, then comment that, or automake
+ will fail in the next step.
+
+ Finally, add Makefile to the AC_OUTPUT macro by changing that
+ line to read
+ AC_OUTPUT(Makefile)
+
+ NOTE: configure.ac used to be called configure.in
+
+3. We add some files that automake does not make but are necessary
+ to adhere to GNU standards.
+
+ touch NEWS README AUTHORS ChangeLog
+
+ These two files need to be created to satisfy automake
+
+ touch config.h.in Makefile.am
+
+ We will create Makefile.am later on.
+
+4. To add some basic files (like COPYING, INSTALL, etc..)
+ we run automake in the toplevel directory.
+
+ automake --add-missing --gnu
+
+5. After that we do the big i18n trick :-), also in the toplevel
+ directory.
+
+ intltoolize # bring in the perl helper scripts
+ # and our Makefile.in.in for the po directory
+
+6. Run autoheader which will create config.h.in
+
+ autoheader # create config.h.in
+
+7. Now, open up configure.in and make some modifications.
+
+ The gettext macros need to be added after the initial checks.
+ Putting them after the checks for library functions is a good idea.
+
+ IT_PROG_INTLTOOL(0.26)
+
+ AM_GNU_GETTEXT([external]) # Only one of these two macro calls
+ AM_GLIB_GNU_GETTEXT # is needed to set up your project
+
+ ALL_LINGUAS="da nl" # Internationalization, means there is
+ # a .po file for danish and dutch.
+
+ AC_OUTPUT(
+ Makefile
+ src/Makefile
+ intl/Makefile
+ po/Makefile.in
+ )
+
+ IT_PROG_INTLTOOL checks if a good enough intltool is available.
+ Please require the latest intltool that exists. Intltool releases
+ are pretty stable and often only contains bugfixes.
+
+ AM_GNU_GETTEXT adds native language support to automake, together
+ with a compile option.
+
+ AM_GNU_GETTEXT will check for additional required functions and
+ programs and will finally create po/POTFILES during configure.
+
+ Instead of AM_GNU_GETTEXT you can use AM_GLIB_GNU_GETTEXT, which
+ will do a few less things than AM_GNU_GETTEXT, but does more than
+ enough for what intltool needs to work.
+
+ You do NOT need to use both AM_GNU_GETTEXT and AM_GLIB_GNU_GETTEXT
+ together though. Only one of them will suffice.
+
+ The text domain is identified by PACKAGE. We will need to add a few
+ functions later on to helloworld.c that will use this #define'd variable.
+
+ Also, this will be the base filename for all your translation files,
+ so make sure you choose a unique one.
+
+8.
+ Now add the add the supported languages to po/LINGUAS:
+
+ da nl
+
+ NOTE: These used to be in configure.{in,ac} in the ALL_LINGUAS
+ variable. This is deprecated since gettext 0.11
+
+9. Run
+ aclocal
+ to make sure that the necessary autoconf and automake macros
+ are inserted in aclocal.m4
+
+ Run
+ autoconf
+ to create the configure script.
+
+10. install the gettext.h file (since gettext 0.11) and include it:
+
+ #include "gettext.h"
+ #define _(String) gettext (String)
+
+11. Now add the following to helloworld.c
+
+ #include <locale.h>
+ #include "gettext.h"
+ #define _(String) gettext (String)
+ /* includes used by original program here */
+
+ int main (void)
+ {
+
+ setlocale (LC_ALL, "");
+ bindtextdomain (PACKAGE, LOCALEDIR);
+ textdomain (PACKAGE);
+
+ /* Original Helloworld code here */
+ }
+
+ If you use GNOME or GTK+ the setlocale sentence shouldn't be needed
+
+ We also substitute all strings we want to be translated with
+ _("original string") to make sure that gettext is run on the strings.
+ So the printf now looks like
+
+ printf (_("Hello, world!\n"));
+
+12. We create src/Makefile.am (from which Makefile.in and Makefile will be
+ generated)
+
+ INCLUDES = -I$(top_srcdir) -I$(includedir) \
+ -DLOCALEDIR=\""$(datadir)/locale"\"
+
+ bin_PROGRAMS = helloworld
+
+ helloworld_SOURCES = helloworld.c
+ noinst_HEADERS = i18n-support.h
+
+13. Now we create the following toplevel Makefile.am
+
+ SUBDIRS = src po
+
+14. Go into the directory po/ and create POTFILES.in
+ This file should contain a list of all the files in your distribution
+ (starting from the top, one level above the po dir) that contain
+ strings to be internationalized.
+
+ For the helloworld sample, it would contain
+ src/helloworld.c
+
+ Run
+ intltool-update --pot
+
+ Run
+ intltool-update --maintain
+ to see if you are missing files that contain marked strings.
+ You should consider adding these to POTFILES.in
+
+
+15. Now we start making a Danish and Dutch translation
+
+ msginit --locale=da
+ msginit --locale=nl
+
+ intltool-update da
+ intltool-update nl
+
+ edit and update da.po and nl.po
+ (The respective translations are "Hej verden" and "Hallo wereld")
+
+16. Now we can compile. We will test it later, so we will install it in
+ a temporary location.
+ Close your eyes and type
+ ./configure --prefix=/tmp/helloworld && make
+ in the toplevel directory. :-)
+
+17. To test if it works, you have to install the package.
+ Run
+ make install
+ in the toplevel directory.
+
+18. Now set the environment variable LC_ALL to your preferred language :
+ export LC_ALL=nl_NL
+ /tmp/helloworld/bin/helloworld
+ export LC_ALL=da_DK
+ /tmp/helloworld/bin/helloworld
+
+ And if all goes well, the string should be translated in the two languages.
+
+19. To finish it all up, run
+ make dist
+ to create a distributable tarball containing your internationalized
+ program.
+
+20. Exercises :
+ - add another language
+
diff --git a/doc/Makefile.am b/doc/Makefile.am
new file mode 100644
index 0000000..a77b2a2
--- /dev/null
+++ b/doc/Makefile.am
@@ -0,0 +1,15 @@
+man_MANS = \
+ intltoolize.8 \
+ intltool-extract.8 \
+ intltool-merge.8 \
+ intltool-prepare.8 \
+ intltool-update.8
+
+EXTRA_DIST = \
+ I18N-HOWTO \
+ intltoolize.8 \
+ intltool-extract.8 \
+ intltool-merge.8 \
+ intltool-prepare.8 \
+ intltool-update.8
+
diff --git a/doc/Makefile.in b/doc/Makefile.in
new file mode 100644
index 0000000..c5770bd
--- /dev/null
+++ b/doc/Makefile.in
@@ -0,0 +1,347 @@
+# Makefile.in generated by automake 1.10.2 from Makefile.am.
+# @configure_input@
+
+# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
+# 2003, 2004, 2005, 2006, 2007, 2008 Free Software Foundation, Inc.
+# This Makefile.in is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
+# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
+# PARTICULAR PURPOSE.
+
+@SET_MAKE@
+VPATH = @srcdir@
+pkglibdir = $(libdir)/@PACKAGE@
+pkgincludedir = $(includedir)/@PACKAGE@
+am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
+install_sh_DATA = $(install_sh) -c -m 644
+install_sh_PROGRAM = $(install_sh) -c
+install_sh_SCRIPT = $(install_sh) -c
+INSTALL_HEADER = $(INSTALL_DATA)
+transform = $(program_transform_name)
+NORMAL_INSTALL = :
+PRE_INSTALL = :
+POST_INSTALL = :
+NORMAL_UNINSTALL = :
+PRE_UNINSTALL = :
+POST_UNINSTALL = :
+subdir = doc
+DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in
+ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
+am__aclocal_m4_deps = $(top_srcdir)/configure.ac
+am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
+ $(ACLOCAL_M4)
+mkinstalldirs = $(install_sh) -d
+CONFIG_CLEAN_FILES =
+SOURCES =
+DIST_SOURCES =
+man8dir = $(mandir)/man8
+am__installdirs = "$(DESTDIR)$(man8dir)"
+NROFF = nroff
+MANS = $(man_MANS)
+DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
+pkgdatadir = @pkgdatadir@
+ACLOCAL = @ACLOCAL@
+AMTAR = @AMTAR@
+AUTOCONF = @AUTOCONF@
+AUTOHEADER = @AUTOHEADER@
+AUTOMAKE = @AUTOMAKE@
+AWK = @AWK@
+CYGPATH_W = @CYGPATH_W@
+DEFS = @DEFS@
+ECHO_C = @ECHO_C@
+ECHO_N = @ECHO_N@
+ECHO_T = @ECHO_T@
+INSTALL = @INSTALL@
+INSTALL_DATA = @INSTALL_DATA@
+INSTALL_PROGRAM = @INSTALL_PROGRAM@
+INSTALL_SCRIPT = @INSTALL_SCRIPT@
+INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
+LIBOBJS = @LIBOBJS@
+LIBS = @LIBS@
+LTLIBOBJS = @LTLIBOBJS@
+MAKEINFO = @MAKEINFO@
+MKDIR_P = @MKDIR_P@
+PACKAGE = @PACKAGE@
+PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
+PACKAGE_NAME = @PACKAGE_NAME@
+PACKAGE_STRING = @PACKAGE_STRING@
+PACKAGE_TARNAME = @PACKAGE_TARNAME@
+PACKAGE_VERSION = @PACKAGE_VERSION@
+PATH_SEPARATOR = @PATH_SEPARATOR@
+PERL = @PERL@
+SET_MAKE = @SET_MAKE@
+SHELL = @SHELL@
+STRIP = @STRIP@
+VERSION = @VERSION@
+abs_builddir = @abs_builddir@
+abs_srcdir = @abs_srcdir@
+abs_top_builddir = @abs_top_builddir@
+abs_top_srcdir = @abs_top_srcdir@
+aclocaldir = @aclocaldir@
+am__leading_dot = @am__leading_dot@
+am__tar = @am__tar@
+am__untar = @am__untar@
+bindir = @bindir@
+build_alias = @build_alias@
+builddir = @builddir@
+datadir = @datadir@
+datarootdir = @datarootdir@
+docdir = @docdir@
+dvidir = @dvidir@
+exec_prefix = @exec_prefix@
+host_alias = @host_alias@
+htmldir = @htmldir@
+includedir = @includedir@
+infodir = @infodir@
+install_sh = @install_sh@
+libdir = @libdir@
+libexecdir = @libexecdir@
+localedir = @localedir@
+localstatedir = @localstatedir@
+mandir = @mandir@
+mkdir_p = @mkdir_p@
+oldincludedir = @oldincludedir@
+pdfdir = @pdfdir@
+prefix = @prefix@
+program_transform_name = @program_transform_name@
+psdir = @psdir@
+sbindir = @sbindir@
+sharedstatedir = @sharedstatedir@
+srcdir = @srcdir@
+sysconfdir = @sysconfdir@
+target_alias = @target_alias@
+top_build_prefix = @top_build_prefix@
+top_builddir = @top_builddir@
+top_srcdir = @top_srcdir@
+man_MANS = \
+ intltoolize.8 \
+ intltool-extract.8 \
+ intltool-merge.8 \
+ intltool-prepare.8 \
+ intltool-update.8
+
+EXTRA_DIST = \
+ I18N-HOWTO \
+ intltoolize.8 \
+ intltool-extract.8 \
+ intltool-merge.8 \
+ intltool-prepare.8 \
+ intltool-update.8
+
+all: all-am
+
+.SUFFIXES:
+$(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps)
+ @for dep in $?; do \
+ case '$(am__configure_deps)' in \
+ *$$dep*) \
+ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \
+ && { if test -f $@; then exit 0; else break; fi; }; \
+ exit 1;; \
+ esac; \
+ done; \
+ echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign doc/Makefile'; \
+ cd $(top_srcdir) && \
+ $(AUTOMAKE) --foreign doc/Makefile
+.PRECIOUS: Makefile
+Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
+ @case '$?' in \
+ *config.status*) \
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \
+ *) \
+ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
+ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
+ esac;
+
+$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+
+$(top_srcdir)/configure: $(am__configure_deps)
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+$(ACLOCAL_M4): $(am__aclocal_m4_deps)
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+install-man8: $(man8_MANS) $(man_MANS)
+ @$(NORMAL_INSTALL)
+ test -z "$(man8dir)" || $(MKDIR_P) "$(DESTDIR)$(man8dir)"
+ @list='$(man8_MANS) $(dist_man8_MANS) $(nodist_man8_MANS)'; \
+ l2='$(man_MANS) $(dist_man_MANS) $(nodist_man_MANS)'; \
+ for i in $$l2; do \
+ case "$$i" in \
+ *.8*) list="$$list $$i" ;; \
+ esac; \
+ done; \
+ for i in $$list; do \
+ if test -f $$i; then file=$$i; \
+ else file=$(srcdir)/$$i; fi; \
+ ext=`echo $$i | sed -e 's/^.*\\.//'`; \
+ case "$$ext" in \
+ 8*) ;; \
+ *) ext='8' ;; \
+ esac; \
+ inst=`echo $$i | sed -e 's/\\.[0-9a-z]*$$//'`; \
+ inst=`echo $$inst | sed -e 's/^.*\///'`; \
+ inst=`echo $$inst | sed '$(transform)'`.$$ext; \
+ echo " $(INSTALL_DATA) '$$file' '$(DESTDIR)$(man8dir)/$$inst'"; \
+ $(INSTALL_DATA) "$$file" "$(DESTDIR)$(man8dir)/$$inst"; \
+ done
+uninstall-man8:
+ @$(NORMAL_UNINSTALL)
+ @list='$(man8_MANS) $(dist_man8_MANS) $(nodist_man8_MANS)'; \
+ l2='$(man_MANS) $(dist_man_MANS) $(nodist_man_MANS)'; \
+ for i in $$l2; do \
+ case "$$i" in \
+ *.8*) list="$$list $$i" ;; \
+ esac; \
+ done; \
+ for i in $$list; do \
+ ext=`echo $$i | sed -e 's/^.*\\.//'`; \
+ case "$$ext" in \
+ 8*) ;; \
+ *) ext='8' ;; \
+ esac; \
+ inst=`echo $$i | sed -e 's/\\.[0-9a-z]*$$//'`; \
+ inst=`echo $$inst | sed -e 's/^.*\///'`; \
+ inst=`echo $$inst | sed '$(transform)'`.$$ext; \
+ echo " rm -f '$(DESTDIR)$(man8dir)/$$inst'"; \
+ rm -f "$(DESTDIR)$(man8dir)/$$inst"; \
+ done
+tags: TAGS
+TAGS:
+
+ctags: CTAGS
+CTAGS:
+
+
+distdir: $(DISTFILES)
+ @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
+ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
+ list='$(DISTFILES)'; \
+ dist_files=`for file in $$list; do echo $$file; done | \
+ sed -e "s|^$$srcdirstrip/||;t" \
+ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \
+ case $$dist_files in \
+ */*) $(MKDIR_P) `echo "$$dist_files" | \
+ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \
+ sort -u` ;; \
+ esac; \
+ for file in $$dist_files; do \
+ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
+ if test -d $$d/$$file; then \
+ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \
+ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
+ cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \
+ fi; \
+ cp -pR $$d/$$file $(distdir)$$dir || exit 1; \
+ else \
+ test -f $(distdir)/$$file \
+ || cp -p $$d/$$file $(distdir)/$$file \
+ || exit 1; \
+ fi; \
+ done
+check-am: all-am
+check: check-am
+all-am: Makefile $(MANS)
+installdirs:
+ for dir in "$(DESTDIR)$(man8dir)"; do \
+ test -z "$$dir" || $(MKDIR_P) "$$dir"; \
+ done
+install: install-am
+install-exec: install-exec-am
+install-data: install-data-am
+uninstall: uninstall-am
+
+install-am: all-am
+ @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
+
+installcheck: installcheck-am
+install-strip:
+ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+ `test -z '$(STRIP)' || \
+ echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
+mostlyclean-generic:
+
+clean-generic:
+
+distclean-generic:
+ -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
+
+maintainer-clean-generic:
+ @echo "This command is intended for maintainers to use"
+ @echo "it deletes files that may require special tools to rebuild."
+clean: clean-am
+
+clean-am: clean-generic mostlyclean-am
+
+distclean: distclean-am
+ -rm -f Makefile
+distclean-am: clean-am distclean-generic
+
+dvi: dvi-am
+
+dvi-am:
+
+html: html-am
+
+info: info-am
+
+info-am:
+
+install-data-am: install-man
+
+install-dvi: install-dvi-am
+
+install-exec-am:
+
+install-html: install-html-am
+
+install-info: install-info-am
+
+install-man: install-man8
+
+install-pdf: install-pdf-am
+
+install-ps: install-ps-am
+
+installcheck-am:
+
+maintainer-clean: maintainer-clean-am
+ -rm -f Makefile
+maintainer-clean-am: distclean-am maintainer-clean-generic
+
+mostlyclean: mostlyclean-am
+
+mostlyclean-am: mostlyclean-generic
+
+pdf: pdf-am
+
+pdf-am:
+
+ps: ps-am
+
+ps-am:
+
+uninstall-am: uninstall-man
+
+uninstall-man: uninstall-man8
+
+.MAKE: install-am install-strip
+
+.PHONY: all all-am check check-am clean clean-generic distclean \
+ distclean-generic distdir dvi dvi-am html html-am info info-am \
+ install install-am install-data install-data-am install-dvi \
+ install-dvi-am install-exec install-exec-am install-html \
+ install-html-am install-info install-info-am install-man \
+ install-man8 install-pdf install-pdf-am install-ps \
+ install-ps-am install-strip installcheck installcheck-am \
+ installdirs maintainer-clean maintainer-clean-generic \
+ mostlyclean mostlyclean-generic pdf pdf-am ps ps-am uninstall \
+ uninstall-am uninstall-man uninstall-man8
+
+# Tell versions [3.59,3.63) of GNU make to not export all variables.
+# Otherwise a system limit (for SysV at least) may be exceeded.
+.NOEXPORT:
diff --git a/doc/intltool-extract.8 b/doc/intltool-extract.8
new file mode 100644
index 0000000..bdf3733
--- /dev/null
+++ b/doc/intltool-extract.8
@@ -0,0 +1,87 @@
+.TH INTLTOOL-EXTRACT 8 "2003-08-02" "intltool"
+
+.SH NAME
+intltool-extract \- generate header files which can be read by gettext
+
+.SH SYNOPSIS
+.B intltool-extract
+.I "[options]..." SOURCE_FILE
+
+
+.SH DESCRIPTION
+.B intltool-extract
+extracts strings in the specified XML/INI type \fISOURCE_FILE\fR and writes
+them into a C header file. Then \fBxgettext\fR(1) can merge these strings
+inside header file into po template.
+
+.B intltool-extract
+is usually not executed manually, but called from \fBintltool-update\fR(8)
+instead.
+
+.SH OPTIONS
+.IP "\fB\-l\fR" 4
+.PD 0
+.IP "\fB\--local\fR" 4
+.PD
+Creates a subdirectory under current working directory (named "\fBtmp/\fR")
+and writes files there. This option can't be used with \fB\--update\fR option.
+.IP "\fB\--update\fR" 4
+.PD
+Writes header file into the same directory the source file is in. New file
+name is the source file name appending ".h" extension. This option can't be
+used with
+.BR \-l / \--local
+option. Besides, this option is the default option if neither \fB\--local\fR
+nor \fB\--update\fR is specified.
+.IP "\fB\--type\fR=\fITYPE\fR" 4
+.PD
+Specify the type of source file. Currently supported types are:
+.br
+"gettext/glade" (.glade, .glade2)
+.br
+"gettext/ini" (Generic INI file)
+.br
+"gettext/keys" (.keys)
+.br
+"gettext/rfc822deb" (RFC 822 format file)
+.br
+"gettext/quoted" (all strings within "")
+.br
+"gettext/schemas" (.schemas)
+.br
+"gettext/scheme" (.scm)
+.br
+"gettext/xml" (Generic XML file)
+.IP "\fB\-v\fR" 4
+.PD 0
+.IP "\fB\--version\fR" 4
+.PD
+Show version information.
+.IP "\fB\-h\fR" 4
+.PD 0
+.IP "\fB\--help\fR" 4
+.PD
+Show usage and basic help information.
+.IP "\fB\-q\fR" 4
+.PD 0
+.IP "\fB\--quiet\fR" 4
+.PD
+Be quiet while running.
+
+.SH REPORTING BUGS
+Report bugs to http://bugs.launchpad.net/intltool
+
+.SH AUTHOR
+Darin Adler <darin@bentspoon.com>
+.br
+Kenneth Christiansen <kenneth@gnu.org>
+.br
+Maciej Stachowiak <mjs@eazel.com>
+
+
+.SH SEE ALSO
+.BR intltoolize (8),
+.BR intltool-prepare (8),
+.BR intltool-merge (8),
+.BR intltool-update (8),
+.BR xgettext (1)
diff --git a/doc/intltool-merge.8 b/doc/intltool-merge.8
new file mode 100644
index 0000000..291b344
--- /dev/null
+++ b/doc/intltool-merge.8
@@ -0,0 +1,120 @@
+.TH INTLTOOL-MERGE 8 "2003-08-02" "intltool"
+
+.SH NAME
+intltool-merge \- merge translated strings into various types of file
+
+.SH SYNOPSIS
+.B "intltool-merge"
+.I "[option]..." PO_DIRECTORY FILENAME OUTPUT_FILE
+
+
+.SH DESCRIPTION
+.PP
+Merge translated strings in po files in \fIPO_DIRECTORY\fR with the original
+application file \fIFILENAME\fR, and output the file \fIOUTPUT_FILE\fR
+containing both original and localized strings.
+.PP
+If \fIFILENAME\fR is an XML file, \fIOUTPUT_FILE\fR will contain repeated
+xml nodes, where each node contains one of the localized strings with
+"xml:lang" attribute.
+
+
+.SH OPTIONS
+.\" -------------------------------------------------------
+.SS "Mode of operation"
+.\" -------------------------------------------------------
+.IP "\fB\-b\fR" 4
+.PD 0
+.IP "\fB\--ba-style\fR" 4
+.PD
+Merge files in bonobo-activation style, which is used for bonobo servers.
+.IP "\fB\-d\fR" 4
+.PD 0
+.IP "\fB\--desktop-style\fR" 4
+.PD
+Merge files in desktop style, which is similar to the Windows .ini file format.
+.IP "\fB\-k\fR" 4
+.PD 0
+.IP "\fB\--keys-style\fR" 4
+.PD
+Merge files in keys style, which is used for metadata.
+.IP "\fB\-o\fR" 4
+.PD 0
+.IP "\fB\--oaf-style\fR" 4
+.PD
+(OBSOLETE) Same as
+.BR \-b / \--ba-style "."
+.IP "\fB\-r\fR" 4
+.PD 0
+.IP "\fB\--rfc822deb-style\fR" 4
+.PD
+Merge files in RFC 822 style, which is usually used in Debian configuration files.
+.IP "\fB\--quoted-style\fR" 4
+.PD
+Merge files in quoted string style, which just translates any strings within "".
+.IP "\fB\-x\fR" 4
+.PD 0
+.IP "\fB\--xml-style\fR" 4
+.PD
+Merge files in standard XML style, both as attributes and as raw pcdata.
+
+.\" -------------------------------------------------------
+.SS "Other options"
+.\" -------------------------------------------------------
+.IP "\fB\-u\fR" 4
+.PD 0
+.IP "\fB\--utf8\fR" 4
+.PD
+Convert all strings to UTF-8 before merging.
+.IP "\fB\-p\fR" 4
+.PD 0
+.IP "\fB\--pass-through\fR" 4
+.PD
+Use strings as is in .po files without conversion (STRONGLY unrecommended
+with -x).
+.IP "\fB\-c\fR" 4
+.PD 0
+.IP "\fB\--cache\fR" 4
+.PD
+(TBD)
+.IP "\fB\-q\fR" 4
+.PD 0
+.IP "\fB\--quiet\fR" 4
+.PD
+Be quiet while running.
+.IP "\fB\-v\fR" 4
+.PD 0
+.IP "\fB\--version\fR" 4
+.PD
+Show version information.
+.IP "\fB\-h\fR" 4
+.PD 0
+.IP "\fB\--help\fR" 4
+.PD
+Show usage and basic help information.
+
+
+.SH FILES
+.IP "\fBpo/.intltool-merge-cache\fR"
+Cache file generated by \fBintltool-merge\fR, that contains all strings
+in all po files separated by \\01.
+
+
+.SH REPORTING BUGS
+Report bugs to http://bugs.launchpad.net/intltool
+
+
+.SH AUTHOR
+Darin Adler <darin@bentspoon.com>
+.br
+Kenneth Christiansen <kenneth@gnu.org>
+.br
+Maciej Stachowiak <mjs@eazel.com>
+
+
+.SH SEE ALSO
+.BR iconv (1),
+.BR intltoolize (8),
+.BR intltool-prepare (8),
+.BR intltool-extract (8),
+.BR intltool-update (8)
diff --git a/doc/intltool-prepare.8 b/doc/intltool-prepare.8
new file mode 100644
index 0000000..21128f9
--- /dev/null
+++ b/doc/intltool-prepare.8
@@ -0,0 +1,82 @@
+.TH INTLTOOL-PREPARE 8 "2003-08-02" "intltool"
+
+.SH NAME
+intltool-prepare \- Prepare software to make use of intltool
+
+.SH SYNOPSIS
+.B intltool-prepare
+[\fIoption\fR] [\fI\s-1KEYWORD\s0\fR]...
+
+
+.SH DESCRIPTION
+.PP
+For software packages that include some specific type of translatable
+files (such as .desktop and .soundlist), before they make use of
+\fBintltool\fR, translators have to dig through them one by one, and add
+their localization into each file. This process is error prone, since
+translators may include typing errors, or add their localization in wrong
+encoding. Besides, translators may not alwas know other files (beside .po
+files) are translatable.
+.PP
+.I intltool
+avoids all the problems above by extracting strings inside those translatable
+files into po template (.pot) file. All translators need to care about is
+just translating po files. Afterwards, \fBintltool-merge\fR(8) will merge
+localized strings into those files.
+.PP
+Before your software becomes intltool-aware, a few issues have to be sorted
+out, and \fBintltool-prepare\fR tries to take care of all of them.
+\fBintltool-prepare\fR will:
+.IP \[bu] 2
+Extract all localized strings in .desktop style files (including ".desktop",
+".soundlist", ".keys" and ".directory") into corresponding po files.
+.IP \[bu]
+Convert the translatable files into templates that don't contain any
+localization.
+.IP \[bu]
+Add the list of template files above into \fBPOTFILES.in\fR.
+.IP \[bu]
+Add the list of old translatable files into \fB.cvsignore\fR (since they
+will be generated by \fIintltool\fR later).
+.IP \[bu]
+Add the rules for generating these files into Makefile.am.
+.PP
+NOTE: You must change working directory to the top level source directory
+before running \fBintltool-prepare\fR.
+
+.SH OPTIONS
+.PP
+\fIKEYWORD\fR is a list of additional keywords beside "Name", "Comment" and
+"description". \fBintltool-prepare\fR will recognize any line starting with
+those \fIKEYWORD\fR and extract localized strings after equal sign ("=").
+.IP "\fB\-x\fR" 4
+.PD 0
+.IP "\fB\-\-verbose\fR" 4
+.PD
+Be verbose to give user additional feedback.
+.IP "\fB\-v\fR" 4
+.PD 0
+.IP "\fB\-\-version\fR" 4
+Show version information.
+.IP "\fB\-h\fR" 4
+.PD 0
+.IP "\fB\-\-help\fR" 4
+Show usage and basic help information.
+
+
+.SH REPORTING BUGS
+Report bugs to http://bugs.launchpad.net/intltool
+
+.SH AUTHOR
+Darin Adler <darin@bentspoon.com>
+.br
+Kenneth Christiansen <kenneth@gnu.org>
+.br
+Maciej Stachowiak <mjs@eazel.com>
+
+
+.SH SEE ALSO
+.BR intltoolize (8),
+.BR intltool-update (8),
+.BR intltool-extract (8),
+.BR intltool-merge (8)
diff --git a/doc/intltool-update.8 b/doc/intltool-update.8
new file mode 100644
index 0000000..4fc87f6
--- /dev/null
+++ b/doc/intltool-update.8
@@ -0,0 +1,155 @@
+.TH INTLTOOL-UPDATE 8 "2003-08-02" "intltool"
+
+.SH NAME
+intltool-update \- updates PO template file and merge translations with it
+
+.SH SYNOPSIS
+.BI intltool-update " [option]..."
+.br
+.BI intltool-update " LANGCODE"
+
+.SH DESCRIPTION
+.B intltool-update
+generates new po file templates from source code, and merges existing
+translations with these new po templates.
+.PP
+You must change working directory to the subdirectory containing translations
+(usually "\fIpo/\fR") before running \fBintltool-update\fR.
+
+.SH OPTIONS
+When executing
+.B intltool-update
+, only one mode of operation is allowed each time.
+.\" -------------------------------------------------------
+.SS "Mode of operation"
+.\" -------------------------------------------------------
+.IP "\fB\-p\fR" 4
+.PD 0
+.IP "\fB\-\-pot\fR" 4
+.PD
+Generate po template (.pot) only.
+.IP "\fB\-s\fR" 4
+.PD 0
+.IP "\fB\-\-headers\fR" 4
+.PD
+Executes \fBintltool-extract\fR(8) to extract strings inside XML/INI
+style files listed in \fBPOTFILES.in\fR, and writes the extracted
+strings into header files, so that the strings can be recognised
+by \fBxgettext\fR(1).
+.IP "\fB\-m\fR" 4
+.PD 0
+.IP "\fB\-\-maintain\fR" 4
+.PD
+Search for left out files, which should have been listed in
+.B POTFILES.in
+or
+.BR POTFILES.skip "."
+A list of all these files are written into another file called
+"\fBmissing\fR".
+.IP "\fB\-r\fR" 4
+.PD 0
+.IP "\fB\-\-report\fR" 4
+.PD
+Display a status report for all translations in the software.
+.IP "\fB\-d \fILANGCODE\fR" 4
+.PD 0
+.IP "\fB\-\-dist \fILANGCODE \fR" 4
+.PD
+Merge
+.BR LANGCODE .po
+with existing PO template.
+.\" -------------------------------------------------------
+.SS "Other options"
+.\" -------------------------------------------------------
+.
+.IP "\fB\-g \fINAME\fR" 4
+.PD 0
+.IP "\fB\-\-gettext-package\fR=\fINAME\fR" 4
+.PD
+Manually specify PO template file name, instead of determining the
+name automatically from source. Useful with
+.BR \-p / \-\-pot
+option. This option has an additional effect: the name of current working
+directory is no more limited to "po" or "po-*".
+.IP "\fB\-o \fIFILENAME\fR" 4
+.PD 0
+.IP "\fB\-\-output-file\fR=\fIFILENAME\fR" 4
+.PD
+Manually specify output \fIFILENAME\fR after merging old translation with
+PO template. Useful either with
+.BR \-d / \-\-dist
+option or without any option.
+.IP "\fB\-x\fR" 4
+.PD 0
+.IP "\fB\-\-verbose\fR" 4
+.PD
+Display lots of feedback.
+.IP "\fB\-\-version\fR" 4
+Show version information.
+.IP "\fB\-\-help\fR" 4
+Show usage and basic help information.
+
+.SH EXAMPLES
+Creates a new PO template from source code, and name it foo.pot:
+.PP
+.RS 2
+.nf
+.ft CW
+.ne 1
+intltool-update \-\-pot \-\-gettext\-package=foo
+.ft R
+.fi
+.RE
+.PP
+Updates translation file xy.po using existing po template called
+"bar.pot", and writes output into "xy1.po":
+.PP
+.RS 2
+.nf
+.ft CW
+.ne 1
+intltool-update --dist --gettext-package=bar --output-file=xy1.po xy
+.ft R
+.fi
+.RE
+.PP
+Creates new PO template and updates translation file xy.po
+(xy.po is overwritten with new content):
+.PP
+.RS 2
+.nf
+.ft CW
+.ne 1
+intltool-update xy
+.ft R
+.fi
+(same as \fBintltool-update --pot && intltool-update --dist xy\fR)
+.RE
+
+.SH FILES
+.IP "\fBpo/POTFILES.in\fR"
+Contains list of source files which contain translatable strings,
+one file per line.
+.IP "\fBpo/POTFILES.skip\fR"
+.PD 0
+.IP "\fBpo/POTFILES.ignore\fR (obsolete)"
+.PD
+Contains list of source files which should be ignored when searching
+for translatable strings.
+
+.SH REPORTING BUGS
+Report bugs to http://bugs.launchpad.net/intltool
+
+.SH AUTHOR
+Darin Adler <darin@bentspoon.com>
+.br
+Kenneth Christiansen <kenneth@gnu.org>
+.br
+Maciej Stachowiak <mjs@eazel.com>
+
+.SH SEE ALSO
+.BR intltoolize (8),
+.BR intltool-prepare (8),
+.BR intltool-extract (8),
+.BR intltool-merge (8),
+.BR xgettext (1)
diff --git a/doc/intltoolize.8 b/doc/intltoolize.8
new file mode 100644
index 0000000..ea788f5
--- /dev/null
+++ b/doc/intltoolize.8
@@ -0,0 +1,60 @@
+.TH INTLTOOLIZE 8 "2003-08-02" "intltool"
+
+.SH NAME
+intltoolize \- copy intltool related files to software package
+
+.SH SYNOPSIS
+.B intltoolize
+[\fIoption\fR]...
+
+
+.SH DESCRIPTION
+This prepares a package to use intltool by linking or copying
+various files needed by intltool into place for use when building.
+Note that you must change your working directory to the top
+level directory of the package before running
+.B intltoolize.
+
+
+.SH OPTIONS
+.IP "\fB\--automake\fR" 4
+Work silently and assume that \fIautomake\fR is being used in software.
+.IP "\fB\-c\fR" 4
+.PD 0
+.IP "\fB\--copy\fR" 4
+.PD
+Copy files rather than creating symbolic links to them.
+.IP "\fB\--debug\fR" 4
+Enable verbose shell tracing.
+.IP "\fB\-n\fR" 4
+.PD 0
+.IP "\fB\--dry-run\fR" 4
+.PD
+Print commands only, instead of executing them.
+.IP "\fB\-f\fR" 4
+.PD 0
+.IP "\fB\--force\fR" 4
+.PD
+Replace existing files if they exist.
+.IP "\fB\-\-help\fR" 4
+Show usage and basic help information.
+.IP "\fB\-\-version\fR" 4
+Show version information.
+
+
+.SH REPORTING BUGS
+Report bugs to http://bugs.launchpad.net/intltool
+
+.SH AUTHOR
+Darin Adler <darin@bentspoon.com>
+.br
+Kenneth Christiansen <kenneth@gnu.org>
+.br
+Maciej Stachowiak <mjs@eazel.com>
+
+
+.SH SEE ALSO
+.BR intltool-prepare (8),
+.BR intltool-extract (8),
+.BR intltool-merge (8),
+.BR intltool-update (8)