diff options
Diffstat (limited to 'doc')
-rw-r--r-- | doc/I18N-HOWTO | 249 | ||||
-rw-r--r-- | doc/Makefile.am | 15 | ||||
-rw-r--r-- | doc/Makefile.in | 347 | ||||
-rw-r--r-- | doc/intltool-extract.8 | 87 | ||||
-rw-r--r-- | doc/intltool-merge.8 | 120 | ||||
-rw-r--r-- | doc/intltool-prepare.8 | 82 | ||||
-rw-r--r-- | doc/intltool-update.8 | 155 | ||||
-rw-r--r-- | doc/intltoolize.8 | 60 |
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) |