[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
No subject
From: |
bogus |
Subject: |
No subject |
Date: |
Mon, 28 Jun 2010 07:45:32 -0000 |
po/POTFILES.in.
Documentation for translators is in README.translators.
The INSTALL file is updated with intltool reference.
---
INSTALL | 2 +-
Makefile.am | 2 +-
README.translators | 88 +++++++++++++++++++++
configure.in | 17 ++++-
po/LINGUAS | 1 +
po/Makefile.in.in | 217 ++++++++++++++++++++++++++++++++++++++++++++++++++++
6 files changed, 324 insertions(+), 3 deletions(-)
create mode 100644 README.translators
create mode 100644 po/LINGUAS
create mode 100644 po/Makefile.in.in
create mode 100644 po/POTFILES.in
diff --git a/INSTALL b/INSTALL
index 5f89a6b..5a7d174 100644
--- a/INSTALL
+++ b/INSTALL
@@ -17,6 +17,7 @@ We recommend to also install these packages:
- PulseAudio (http://www.pulseaudio.org)
- Festival (http://www.cstr.ed.ac.uk/projects/festival/)
- Espeak (http://espeak.sourceforge.net/)
+ - Intltool 0.40.0+ (http://freedesktop.org/wiki/Software/intltool) for
internationalization support.
These packages are known to work with Speech Dispatcher:
Software synthesizers:
@@ -238,4 +239,3 @@ Now the configure file should be created and you can
proceed like with
an ordinary instalation.
-
diff --git a/Makefile.am b/Makefile.am
index 5353ce9..b7e507b 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -1,6 +1,6 @@
## Process this file with automake to produce Makefile.in
-SUBDIRS= src config doc
+SUBDIRS= src config doc po
EXTRA_DIST= ChangeLog NEWS TODO AUTHORS COPYING INSTALL README intl/*.c
intl/*.h build.sh version.sh
diff --git a/README.translators b/README.translators
new file mode 100644
index 0000000..5e5269d
--- /dev/null
+++ b/README.translators
@@ -0,0 +1,88 @@
+This file contains instructions for translators to translate Speech Dispatcher
+interface to their languages. Speech Dispatcher uses intltool[1] for its
+internationalization support.
+Intltool is a superset of gettext[2] so any
+translator used to gettext .po files can translate Speech Dispatcher
+the same way.
+If you're not familiar with gettext po files we recommend that you read the
+Gettext manual[2] before continuing.
+
+== Requirements ==
+
+To translate Speech Dispatcher you need a git clone of speech dispatcher.
+If you are not reading this file from a git checkout
+please check the `INSTALL` file for detailed
+instructions. You will also need intltool and gettext packages installed, as
+recommended on the `InSTALL` file.
+
+== Adding a new Language ==
+
+If your locale is not already supported by Speech Dispatcher you must create a
+new <locale>.po file and translate all contained messages. The following steps
+explain the process.
+
+1. ON your Speech Dispatcher source directory change to the po directory.
+
+2. Create a pot template for Speech Dispatcher running:
+$ intltool-update -p
+This will create a file called Speech Dispatcher.pot with all translatable
+Speech Dispatcher messages.
+
+3. Create the po template for the current system locale from Speech
+Dispatcher.pot running
+$ msginit
+And follow the prompts. If you want to create
+a translation for a different locale please run
+$ msginit -l <locale>
+where <locale> is the locale's name. This will create a <locale>.po file.
+msginit will fill in the po template header for you from your
+environment but we recommend to
+double-check that information.
+
+You may also copy the Speech Dispatcher.pot file to <locale>.po and fill in the
+header information yourself.
+
+At this stage you can remove the Speech-Dispatcher.pot file since it is not
+needed anymore.
+
+4. Open the file `LINGUAS` and add your locale name there.
+Please put one locale on each line and keep the file alphabetically sorted.
+
+5. Translate all messages in <locale>.po and run make. If you found errors
+reported by msgfmt about your <locale>.po file please correct them before
+continuing.
+
+6. When you're done see the section about testing bellow.
+
+== Updating an existing Translation ==
+
+When there are new Speech Dispatcher messages for translation or some messages
+are changed, you need to update your <locale.>.po file.
+
+To update an existing po file wit new messages please run
+$ intltool-update <locale>
+Where <locale> is the locale po file to update.
+
+Then you can translate new messages and, if needed, update the ones gettext
+guessed wrong when updating the po file.
+
+== Testing your Translation ==
+
+To confirm that your translation works, please install Speech Dispatcher with
+your translation included
+and test it with your system configured for your locale.
+
+We recommend you test with spd-say and spd-conf,
+since those are the tools with more translatable content.
+
+== Sending your Translation to Speech Dispatcher ==
+
+When you think your translation is ready
+to be included in Speech Dispatcher send the po file
+to our development mailling-list at
+speechd at lists.freebsoft.org
+
+== References ==
+
+[1] Intltool: http://freedesktop.org/wiki/Software/intltool
+[2] Gettext Manual: http://www.gnu.org/software/gettext/manual/gettext.html
diff --git a/configure.in b/configure.in
index 1bd7cd9..392d6bd 100644
--- a/configure.in
+++ b/configure.in
@@ -2,6 +2,8 @@
dnl Process this file with autoconf to produce a configure script.
AC_INIT(configure.in)
+
+
AC_LANG(C)
dnl progs
@@ -18,6 +20,15 @@ AC_ARG_ENABLE([python],
[],
[enable_python=check])
+#
+# Setup GETTEXT
+#
+GETTEXT_PACKAGE=speech-dispatcher
+AC_SUBST(GETTEXT_PACKAGE)
+AM_GLIB_GNU_GETTEXT
+IT_PROG_INTLTOOL([0.40.0])
+
+
dnl Checks for header files.
AC_HEADER_STDC
AC_CHECK_HEADERS(limits.h sys/ioctl.h sys/time.h unistd.h)
@@ -399,5 +410,9 @@ AC_SUBST(ERROR_CFLAGS)
AC_SUBST(RPATH)
AC_SUBST(RDYNAMIC)
-AC_OUTPUT([Makefile src/Makefile src/server/Makefile src/modules/Makefile
src/c/Makefile src/c/api/Makefile src/c/clients/Makefile
src/c/clients/say/Makefile src/c/clients/spdsend/Makefile src/tests/Makefile
src/audio/Makefile src/audio/static_plugins.c config/Makefile
config/modules/Makefile config/clients/Makefile doc/Makefile
src/python/Makefile src/python/speechd/Makefile
src/python/speechd_config/Makefile])
+# Path of installed localization files:
+localedir=${datadir}/locale
+AC_SUBST(localedir)
+
+AC_OUTPUT([Makefile src/Makefile src/server/Makefile src/modules/Makefile
src/c/Makefile src/c/api/Makefile src/c/clients/Makefile
src/c/clients/say/Makefile src/c/clients/spdsend/Makefile src/tests/Makefile
src/audio/Makefile src/audio/static_plugins.c config/Makefile
config/modules/Makefile config/clients/Makefile doc/Makefile
src/python/Makefile src/python/speechd/Makefile
src/python/speechd_config/Makefile po/Makefile.in])
diff --git a/po/LINGUAS b/po/LINGUAS
new file mode 100644
index 0000000..16ff432
--- /dev/null
+++ b/po/LINGUAS
@@ -0,0 +1 @@
+# Keep this file sorted, one language per line.
diff --git a/po/Makefile.in.in b/po/Makefile.in.in
new file mode 100644
index 0000000..cc8a222
--- /dev/null
+++ b/po/Makefile.in.in
@@ -0,0 +1,217 @@
+# Makefile for program source directory in GNU NLS utilities package.
+# Copyright (C) 1995, 1996, 1997 by Ulrich Drepper <drepper at gnu.ai.mit.edu>
+# Copyright (C) 2004-2008 Rodney Dawes <dobey.pwns at gmail.com>
+#
+# This file may be copied and used freely without restrictions. It may
+# be used in projects which are not available under a GNU Public License,
+# but which still want to provide support for the GNU gettext functionality.
+#
+# - Modified by Owen Taylor <otaylor at redhat.com> to use GETTEXT_PACKAGE
+# instead of PACKAGE and to look for po2tbl in ./ not in intl/
+#
+# - Modified by jacob berkman <jacob at ximian.com> to install
+# Makefile.in.in and po2tbl.sed.in for use with glib-gettextize
+#
+# - Modified by Rodney Dawes <dobey.pwns at gmail.com> for use with intltool
+#
+# We have the following line for use by intltoolize:
+# INTLTOOL_MAKEFILE
+
+GETTEXT_PACKAGE = @GETTEXT_PACKAGE@
+PACKAGE = @PACKAGE@
+VERSION = @VERSION@
+
+SHELL = @SHELL@
+
+srcdir = @srcdir@
+top_srcdir = @top_srcdir@
+top_builddir = @top_builddir@
+VPATH = @srcdir@
+
+prefix = @prefix@
+exec_prefix = @exec_prefix@
+datadir = @datadir@
+datarootdir = @datarootdir@
+libdir = @libdir@
+DATADIRNAME = @DATADIRNAME@
+itlocaledir = $(prefix)/$(DATADIRNAME)/locale
+subdir = po
+install_sh = @install_sh@
+# Automake >= 1.8 provides @mkdir_p at .
+# Until it can be supposed, use the safe fallback:
+mkdir_p = $(install_sh) -d
+
+INSTALL = @INSTALL@
+INSTALL_DATA = @INSTALL_DATA@
+
+GMSGFMT = @GMSGFMT@
+MSGFMT = @MSGFMT@
+XGETTEXT = @XGETTEXT@
+INTLTOOL_UPDATE = @INTLTOOL_UPDATE@
+INTLTOOL_EXTRACT = @INTLTOOL_EXTRACT@
+MSGMERGE = INTLTOOL_EXTRACT=$(INTLTOOL_EXTRACT) srcdir=$(srcdir)
$(INTLTOOL_UPDATE) --gettext-package $(GETTEXT_PACKAGE) --dist
+GENPOT = INTLTOOL_EXTRACT=$(INTLTOOL_EXTRACT) srcdir=$(srcdir)
$(INTLTOOL_UPDATE) --gettext-package $(GETTEXT_PACKAGE) --pot
+
+ALL_LINGUAS = @ALL_LINGUAS@
+
+PO_LINGUAS=$(shell if test -r $(srcdir)/LINGUAS; then grep -v "^\#"
$(srcdir)/LINGUAS; else echo "$(ALL_LINGUAS)"; fi)
+
+USER_LINGUAS=$(shell if test -n "$(LINGUAS)"; then LLINGUAS="$(LINGUAS)";
ALINGUAS="$(ALL_LINGUAS)"; for lang in $$LLINGUAS; do if test -n "`grep
\^$$lang$$ $(srcdir)/LINGUAS 2>/dev/null`" -o -n "`echo $$ALINGUAS|tr ' '
'\n'|grep \^$$lang$$`"; then printf "$$lang "; fi; done; fi)
+
+USE_LINGUAS=$(shell if test -n "$(USER_LINGUAS)" -o -n "$(LINGUAS)"; then
LLINGUAS="$(USER_LINGUAS)"; else if test -n "$(PO_LINGUAS)"; then
LLINGUAS="$(PO_LINGUAS)"; else LLINGUAS="$(ALL_LINGUAS)"; fi; fi; for lang in
$$LLINGUAS; do printf "$$lang "; done)
+
+POFILES=$(shell LINGUAS="$(PO_LINGUAS)"; for lang in $$LINGUAS; do printf
"$$lang.po "; done)
+
+DISTFILES = Makefile.in.in POTFILES.in $(POFILES)
+EXTRA_DISTFILES = ChangeLog POTFILES.skip Makevars LINGUAS
+
+POTFILES = \
+# This comment gets stripped out
+
+CATALOGS=$(shell LINGUAS="$(USE_LINGUAS)"; for lang in $$LINGUAS; do printf
"$$lang.gmo "; done)
+
+.SUFFIXES:
+.SUFFIXES: .po .pox .gmo .mo .msg .cat
+
+.po.pox:
+ $(MAKE) $(GETTEXT_PACKAGE).pot
+ $(MSGMERGE) $< $(GETTEXT_PACKAGE).pot -o $*.pox
+
+.po.mo:
+ $(MSGFMT) -o $@ $<
+
+.po.gmo:
+ file=`echo $* | sed 's,.*/,,'`.gmo \
+ && rm -f $$file && $(GMSGFMT) -o $$file $<
+
+.po.cat:
+ sed -f ../intl/po2msg.sed < $< > $*.msg \
+ && rm -f $@ && gencat $@ $*.msg
+
+
+all: all- at USE_NLS@
+
+all-yes: $(CATALOGS)
+all-no:
+
+$(GETTEXT_PACKAGE).pot: $(POTFILES)
+ $(GENPOT)
+
+install: install-data
+install-data: install-data- at USE_NLS@
+install-data-no: all
+install-data-yes: all
+ linguas="$(USE_LINGUAS)"; \
+ for lang in $$linguas; do \
+ dir=$(DESTDIR)$(itlocaledir)/$$lang/LC_MESSAGES; \
+ $(mkdir_p) $$dir; \
+ if test -r $$lang.gmo; then \
+ $(INSTALL_DATA) $$lang.gmo $$dir/$(GETTEXT_PACKAGE).mo; \
+ echo "installing $$lang.gmo as $$dir/$(GETTEXT_PACKAGE).mo"; \
+ else \
+ $(INSTALL_DATA) $(srcdir)/$$lang.gmo $$dir/$(GETTEXT_PACKAGE).mo; \
+ echo "installing $(srcdir)/$$lang.gmo as" \
+ "$$dir/$(GETTEXT_PACKAGE).mo"; \
+ fi; \
+ if test -r $$lang.gmo.m; then \
+ $(INSTALL_DATA) $$lang.gmo.m $$dir/$(GETTEXT_PACKAGE).mo.m; \
+ echo "installing $$lang.gmo.m as $$dir/$(GETTEXT_PACKAGE).mo.m"; \
+ else \
+ if test -r $(srcdir)/$$lang.gmo.m ; then \
+ $(INSTALL_DATA) $(srcdir)/$$lang.gmo.m \
+ $$dir/$(GETTEXT_PACKAGE).mo.m; \
+ echo "installing $(srcdir)/$$lang.gmo.m as" \
+ "$$dir/$(GETTEXT_PACKAGE).mo.m"; \
+ else \
+ true; \
+ fi; \
+ fi; \
+ done
+
+# Empty stubs to satisfy archaic automake needs
+dvi info ctags tags CTAGS TAGS ID:
+
+# Define this as empty until I found a useful application.
+install-exec installcheck:
+
+uninstall:
+ linguas="$(USE_LINGUAS)"; \
+ for lang in $$linguas; do \
+ rm -f
$(DESTDIR)$(itlocaledir)/$$lang/LC_MESSAGES/$(GETTEXT_PACKAGE).mo; \
+ rm -f
$(DESTDIR)$(itlocaledir)/$$lang/LC_MESSAGES/$(GETTEXT_PACKAGE).mo.m; \
+ done
+
+check: all $(GETTEXT_PACKAGE).pot
+ rm -f missing notexist
+ srcdir=$(srcdir) $(INTLTOOL_UPDATE) -m
+ if [ -r missing -o -r notexist ]; then \
+ exit 1; \
+ fi
+
+mostlyclean:
+ rm -f *.pox $(GETTEXT_PACKAGE).pot *.old.po cat-id-tbl.tmp
+ rm -f .intltool-merge-cache
+
+clean: mostlyclean
+
+distclean: clean
+ rm -f Makefile Makefile.in POTFILES stamp-it
+ rm -f *.mo *.msg *.cat *.cat.m *.gmo
+
+maintainer-clean: distclean
+ @echo "This command is intended for maintainers to use;"
+ @echo "it deletes files that may require special tools to rebuild."
+ rm -f Makefile.in.in
+
+distdir = ../$(PACKAGE)-$(VERSION)/$(subdir)
+dist distdir: $(DISTFILES)
+ dists="$(DISTFILES)"; \
+ extra_dists="$(EXTRA_DISTFILES)"; \
+ for file in $$extra_dists; do \
+ test -f $(srcdir)/$$file && dists="$$dists $(srcdir)/$$file"; \
+ done; \
+ for file in $$dists; do \
+ test -f $$file || file="$(srcdir)/$$file"; \
+ ln $$file $(distdir) 2> /dev/null \
+ || cp -p $$file $(distdir); \
+ done
+
+update-po: Makefile
+ $(MAKE) $(GETTEXT_PACKAGE).pot
+ tmpdir=`pwd`; \
+ linguas="$(USE_LINGUAS)"; \
+ for lang in $$linguas; do \
+ echo "$$lang:"; \
+ result="`$(MSGMERGE) -o $$tmpdir/$$lang.new.po $$lang`"; \
+ if $$result; then \
+ if cmp $(srcdir)/$$lang.po $$tmpdir/$$lang.new.po >/dev/null 2>&1;
then \
+ rm -f $$tmpdir/$$lang.new.po; \
+ else \
+ if mv -f $$tmpdir/$$lang.new.po $$lang.po; then \
+ :; \
+ else \
+ echo "msgmerge for $$lang.po failed: cannot move
$$tmpdir/$$lang.new.po to $$lang.po" 1>&2; \
+ rm -f $$tmpdir/$$lang.new.po; \
+ exit 1; \
+ fi; \
+ fi; \
+ else \
+ echo "msgmerge for $$lang.gmo failed!"; \
+ rm -f $$tmpdir/$$lang.new.po; \
+ fi; \
+ done
+
+Makefile POTFILES: stamp-it
+ @if test ! -f $@; then \
+ rm -f stamp-it; \
+ $(MAKE) stamp-it; \
+ fi
+
+stamp-it: Makefile.in.in $(top_builddir)/config.status POTFILES.in
+ cd $(top_builddir) \
+ && CONFIG_FILES=$(subdir)/Makefile.in CONFIG_HEADERS= CONFIG_LINKS= \
+ $(SHELL) ./config.status
+
+# Tell versions [3.59,3.63) of GNU make not to export all variables.
+# Otherwise a system limit (for SysV at least) may be exceeded.
+.NOEXPORT:
diff --git a/po/POTFILES.in b/po/POTFILES.in
new file mode 100644
index 0000000..e69de29
--
1.7.0.4