From: Bruno Haible Date: Thu, 8 Jan 2004 11:44:51 +0000 (+0000) Subject: Sample demonstrating the use of GNU.Gettext in a C# GUI application. X-Git-Tag: v0.14~90 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=f0792600ac50536eeeacfd06b4ffce84be69798e;p=thirdparty%2Fgettext.git Sample demonstrating the use of GNU.Gettext in a C# GUI application. --- diff --git a/gettext-tools/examples/hello-csharp-forms/BUGS b/gettext-tools/examples/hello-csharp-forms/BUGS new file mode 100644 index 000000000..af7009ab9 --- /dev/null +++ b/gettext-tools/examples/hello-csharp-forms/BUGS @@ -0,0 +1,2 @@ +Correct display of characters depends on the C# execution engine. For example, +in pnet 0.6.0.1, Western fonts display fine but East Asian fonts don't work. diff --git a/gettext-tools/examples/hello-csharp-forms/INSTALL b/gettext-tools/examples/hello-csharp-forms/INSTALL new file mode 100644 index 000000000..011cc8169 --- /dev/null +++ b/gettext-tools/examples/hello-csharp-forms/INSTALL @@ -0,0 +1,11 @@ +This example relies on: + - a C# implementation with System.Windows.Forms library, e.g. pnet+pnetlib + +Installation: + ./autogen.sh + ./configure --prefix=/some/prefix + make + make install +Cleanup: + make distclean + ./autoclean.sh diff --git a/gettext-tools/examples/hello-csharp-forms/Makefile.am b/gettext-tools/examples/hello-csharp-forms/Makefile.am new file mode 100644 index 000000000..5d5ae97e5 --- /dev/null +++ b/gettext-tools/examples/hello-csharp-forms/Makefile.am @@ -0,0 +1,75 @@ +# Example for use of GNU gettext. +# Copyright (C) 2003 Free Software Foundation, Inc. +# This file is in the public domain. +# +# Makefile configuration - processed by automake. + +# General automake options. +AUTOMAKE_OPTIONS = foreign +ACLOCAL_AMFLAGS = -I m4 + +# The list of subdirectories containing Makefiles. +SUBDIRS = m4 po + +# The list of programs that are built. +bin_CSHARPPROGRAMS = hello + +# The source files of the 'hello' program. +hello_SOURCES = hello.cs + +# The link dependencies of the 'hello' program. +hello_CSHARPLIBS = @GNU_GETTEXT_LDADD@ @GNU_GETTEXT_LIBS@ -l System -l System.Drawing -l System.Windows.Forms + +# Resources that are generated from PO files. +MAINTAINERCLEANFILES = */*.resources.dll + +# Additional files to be distributed. +EXTRA_DIST = autogen.sh autoclean.sh + + +# ----------------- General rules for compiling C# programs ----------------- + +pkgdatadir = $(datadir)/$(PACKAGE) +pkglibdir = $(libdir)/$(PACKAGE) + +CSHARPCOMP = $(SHELL) csharpcomp.sh +CSHARPCOMPFLAGS = -O -g + +EXTRA_DIST += $(hello_SOURCES) +CLEANFILES = +DISTCLEANFILES = csharpcomp.sh csharpexec.sh + + +# Rules for compiling C# programs. + +all-local: hello.net.exe hello.sh + +hello.net.exe: $(hello_SOURCES) + $(CSHARPCOMP) $(CSHARPCOMPFLAGS) -o $@ $(hello_CSHARPLIBS) $(srcdir)/hello.cs + +hello.sh: + { echo '#!/bin/sh'; \ + echo "exec /bin/sh '$(pkgdatadir)/csharpexec.sh' @GNU_GETTEXT_LDADD@ '$(pkglibdir)/hello.net.exe' \"\$$@\""; \ + } > $@ + +install-exec-local: all-local + $(mkinstalldirs) $(DESTDIR)$(bindir) + $(INSTALL_SCRIPT) hello.sh $(DESTDIR)$(bindir)/hello + $(mkinstalldirs) $(DESTDIR)$(pkglibdir) + $(INSTALL_DATA) hello.net.exe $(DESTDIR)$(pkglibdir)/hello.net.exe + +install-data-local: all-local + $(mkinstalldirs) $(DESTDIR)$(pkgdatadir) + $(INSTALL_DATA) csharpexec.sh $(DESTDIR)$(pkgdatadir)/csharpexec.sh + +installdirs-local: + $(mkinstalldirs) $(DESTDIR)$(bindir) + $(mkinstalldirs) $(DESTDIR)$(pkglibdir) + $(mkinstalldirs) $(DESTDIR)$(pkgdatadir) + +uninstall-local: + rm -f $(DESTDIR)$(bindir)/hello + rm -f $(DESTDIR)$(pkglibdir)/hello.net.exe + rm -f $(DESTDIR)$(pkgdatadir)/csharpexec.sh + +CLEANFILES += hello.net.exe hello.sh diff --git a/gettext-tools/examples/hello-csharp-forms/autoclean.sh b/gettext-tools/examples/hello-csharp-forms/autoclean.sh new file mode 100755 index 000000000..73f33cf86 --- /dev/null +++ b/gettext-tools/examples/hello-csharp-forms/autoclean.sh @@ -0,0 +1,39 @@ +#!/bin/sh +# Example for use of GNU gettext. +# Copyright (C) 2003 Free Software Foundation, Inc. +# This file is in the public domain. +# +# Script for cleaning all autogenerated files. + +test ! -f Makefile || make distclean + +# Brought in by explicit copy. +rm -f m4/nls.m4 +rm -f m4/po.m4 +rm -f po/remove-potcdate.sin + +# Brought in by explicit copy. +rm -f m4/csharpcomp.m4 +rm -f m4/csharpexec.m4 +rm -f csharpcomp.sh.in +rm -f csharpexec.sh.in + +# Generated by aclocal. +rm -f aclocal.m4 + +# Generated by autoconf. +rm -f configure + +# Generated or brought in by automake. +rm -f Makefile.in +rm -f m4/Makefile.in +rm -f po/Makefile.in +rm -f install-sh +rm -f mkinstalldirs +rm -f missing +rm -f po/*.pot +rm -f po/stamp-po +for f in po/*/*.resources.dll; do + rm -f $f + rmdir `echo $f | sed -e 's,/[^/]*$,,'` +done diff --git a/gettext-tools/examples/hello-csharp-forms/autogen.sh b/gettext-tools/examples/hello-csharp-forms/autogen.sh new file mode 100755 index 000000000..497731abb --- /dev/null +++ b/gettext-tools/examples/hello-csharp-forms/autogen.sh @@ -0,0 +1,29 @@ +#!/bin/sh +# Example for use of GNU gettext. +# Copyright (C) 2003 Free Software Foundation, Inc. +# This file is in the public domain. +# +# Script for regenerating all autogenerated files. + +test -r ../Makefile.am || . ../installpaths + +cp -p ${ACLOCALDIR-../../../gettext-runtime/m4}/nls.m4 m4/nls.m4 +cp -p ${ACLOCALDIR-../../../gettext-runtime/m4}/po.m4 m4/po.m4 +cp -p ${GETTEXTSRCPODIR-../../../gettext-runtime/po}/remove-potcdate.sin po/remove-potcdate.sin + +cp -p ${EXAMPLESCONFIGDIR-../../../gettext-tools/m4}/csharpcomp.m4 m4/csharpcomp.m4 +cp -p ${EXAMPLESCONFIGDIR-../../../gettext-tools/m4}/csharpexec.m4 m4/csharpexec.m4 +cp -p ${EXAMPLESCONFIGDIR-../../../gettext-tools/lib}/csharpcomp.sh.in csharpcomp.sh.in +cp -p ${EXAMPLESCONFIGDIR-../../../gettext-tools/lib}/csharpexec.sh.in csharpexec.sh.in + +aclocal -I m4 + +autoconf + +automake -a -c + +./configure +cd po +make update-po +cd .. +make distclean diff --git a/gettext-tools/examples/hello-csharp-forms/configure.ac b/gettext-tools/examples/hello-csharp-forms/configure.ac new file mode 100644 index 000000000..5ab88af75 --- /dev/null +++ b/gettext-tools/examples/hello-csharp-forms/configure.ac @@ -0,0 +1,53 @@ +dnl Example for use of GNU gettext. +dnl Copyright (C) 2003 Free Software Foundation, Inc. +dnl This file is in the public domain. +dnl +dnl Configuration file - processed by autoconf. + +AC_INIT +AC_CONFIG_SRCDIR(hello.cs) +AM_INIT_AUTOMAKE(hello-csharp-forms, 0) + +dnl Check whether we can build C# programs at all. +gt_CSHARPCOMP +if test -n "$HAVE_CSHARPCOMP"; then + BUILDCSHARP=yes +else + BUILDCSHARP=no +fi +AC_SUBST(BUILDCSHARP) + +dnl Check whether we can execute C# programs. +gt_CSHARPEXEC +if test -n "$HAVE_CSHARPEXEC" && test $BUILDCSHARP = yes; then + TESTCSHARP=yes +else + TESTCSHARP=no +fi +AC_SUBST(TESTCSHARP) + +dnl Checks for needed libraries. +AM_PATH_PROG_WITH_TEST([GETTEXT_WITH_GNU_GETTEXT_DLL], [gettext], + [{ basedir=`echo "$ac_dir" | sed -e 's,/bin$,,'`; test -r "$basedir"/lib/GNU.Gettext.dll; }]) +if test -z "$GETTEXT_WITH_GNU_GETTEXT_DLL"; then + echo "Required library GNU.Gettext.dll not found." 1>&2 + exit 1 +fi +changequote(,)dnl +basedir=`echo "$GETTEXT_WITH_GNU_GETTEXT_DLL" | sed -e 's,/[^/]*$,,' | sed -e 's,/bin$,,'` +changequote([, ])dnl +GNU_GETTEXT_DLL="$basedir"/lib/GNU.Gettext.dll +GNU_GETTEXT_LDADD="-L $basedir/lib" +GNU_GETTEXT_LIBS="-l GNU.Gettext" +AC_SUBST([GNU_GETTEXT_LDADD]) +AC_SUBST([GNU_GETTEXT_LIBS]) + +dnl Support for the po directory. +AM_PO_SUBDIRS + +AC_CONFIG_FILES([Makefile]) +AC_CONFIG_FILES([csharpcomp.sh]) +AC_CONFIG_FILES([csharpexec.sh]) +AC_CONFIG_FILES([m4/Makefile]) +AC_CONFIG_FILES([po/Makefile], [AM_POSTPROCESS_PO_MAKEFILE]) +AC_OUTPUT diff --git a/gettext-tools/examples/hello-csharp-forms/hello.cs b/gettext-tools/examples/hello-csharp-forms/hello.cs new file mode 100644 index 000000000..ed8568caf --- /dev/null +++ b/gettext-tools/examples/hello-csharp-forms/hello.cs @@ -0,0 +1,82 @@ +// Example for use of GNU gettext. +// Copyright (C) 2003 Free Software Foundation, Inc. +// This file is in the public domain. +// +// Source code of the C#/Forms program. + +using System; /* String, EventHandler */ +using GNU.Gettext; /* GettextResourceManager */ +using System.Diagnostics; /* Process */ +using System.Threading; /* Thread */ +using System.Drawing; /* Point, Size */ +using System.Windows.Forms; /* Application, Form, Label, Button */ + +public class Hello { + + private static GettextResourceManager catalog = + new GettextResourceManager("hello-csharp-forms"); + + class HelloWindow : Form { + + private int border; + private Label label1; + private Label label2; + private Button ok; + + public HelloWindow () { + border = 2; + + label1 = new Label(); + label1.Text = catalog.GetString("Hello, world!"); + label1.ClientSize = new Size(label1.PreferredWidth, label1.PreferredHeight); + Controls.Add(label1); + + label2 = new Label(); + label2.Text = + String.Format( + catalog.GetString("This program is running as process number {0}."), + Process.GetCurrentProcess().Id); + label2.ClientSize = new Size(label2.PreferredWidth, label2.PreferredHeight); + Controls.Add(label2); + + ok = new Button(); + Label okLabel = new Label(); + ok.Text = okLabel.Text = "OK"; + ok.ClientSize = new Size(okLabel.PreferredWidth + 12, okLabel.PreferredHeight + 4); + ok.Click += new EventHandler(Quit); + Controls.Add(ok); + + Size total = ComputePreferredSizeWithoutBorder(); + LayoutControls(total.Width, total.Height); + ClientSize = new Size(border + total.Width + border, border + total.Height + border); + } + + protected override void OnResize(EventArgs ev) { + LayoutControls(ClientSize.Width - border - border, ClientSize.Height - border - border); + base.OnResize(ev); + } + + // Layout computation, part 1: The preferred size of this panel. + private Size ComputePreferredSizeWithoutBorder () { + int totalWidth = Math.Max(Math.Max(label1.PreferredWidth, label2.PreferredWidth), + ok.Width); + int totalHeight = label1.PreferredHeight + label2.PreferredHeight + 6 + ok.Height; + return new Size(totalWidth, totalHeight); + } + + // Layout computation, part 2: Determine where to put the sub-controls. + private void LayoutControls (int totalWidth, int totalHeight) { + label1.Location = new Point(border, border); + label2.Location = new Point(border, border + label1.PreferredHeight); + ok.Location = new Point(border + totalWidth - ok.Width, border + totalHeight - ok.Height); + } + + private void Quit (Object sender, EventArgs ev) { + Application.Exit(); + } + } + + public static void Main () { + Application.Run(new HelloWindow()); + } +} diff --git a/gettext-tools/examples/hello-csharp-forms/m4/Makefile.am b/gettext-tools/examples/hello-csharp-forms/m4/Makefile.am new file mode 100644 index 000000000..54e423d2a --- /dev/null +++ b/gettext-tools/examples/hello-csharp-forms/m4/Makefile.am @@ -0,0 +1,3 @@ +EXTRA_DIST = \ + nls.m4 po.m4 \ + csharpcomp.m4 csharpexec.m4 diff --git a/gettext-tools/examples/hello-csharp-forms/po/LINGUAS b/gettext-tools/examples/hello-csharp-forms/po/LINGUAS new file mode 100644 index 000000000..48654c279 --- /dev/null +++ b/gettext-tools/examples/hello-csharp-forms/po/LINGUAS @@ -0,0 +1,6 @@ +# Example for use of GNU gettext. +# Copyright (C) 2003 Free Software Foundation, Inc. +# This file is in the public domain. +# +# Set of available languages. +ca de es fr ja pl ro sr zh_CN diff --git a/gettext-tools/examples/hello-csharp-forms/po/Makefile.am b/gettext-tools/examples/hello-csharp-forms/po/Makefile.am new file mode 100644 index 000000000..23ebae624 --- /dev/null +++ b/gettext-tools/examples/hello-csharp-forms/po/Makefile.am @@ -0,0 +1,213 @@ +# Example for use of GNU gettext. +# Copyright (C) 2003 Free Software Foundation, Inc. +# This file is in the public domain. +# +# Makefile configuration - processed by automake. + +# List of files which contain translatable strings. +POTFILES = \ + hello.cs + +# Usually the message domain is the same as the package name. +DOMAIN = $(PACKAGE) + +# These options get passed to xgettext. +XGETTEXT_OPTIONS = + +# This is the copyright holder that gets inserted into the header of the +# $(DOMAIN).pot file. Set this to the copyright holder of the surrounding +# package. (Note that the msgstr strings, extracted from the package's +# sources, belong to the copyright holder of the package.) Translators are +# expected to transfer the copyright for their translations to this person +# or entity, or to disclaim their copyright. The empty string stands for +# the public domain; in this case the translators are expected to disclaim +# their copyright. +COPYRIGHT_HOLDER = Yoyodyne, Inc. + +# This is the email address or URL to which the translators shall report +# bugs in the untranslated strings: +# - Strings which are not entire sentences, see the maintainer guidelines +# in the GNU gettext documentation, section 'Preparing Strings'. +# - Strings which use unclear terms or require additional context to be +# understood. +# - Strings which make invalid assumptions about notation of date, time or +# money. +# - Pluralisation problems. +# - Incorrect English spelling. +# - Incorrect formatting. +# It can be your email address, or a mailing list address where translators +# can write to without being subscribed, or the URL of a web page through +# which the translators can contact you. +MSGID_BUGS_ADDRESS = bug-gnu-gettext@gnu.org + +pkglibdir = $(libdir)/$(PACKAGE) + +MSGMERGE = msgmerge +MSGMERGE_UPDATE = @MSGMERGE@ --update +MSGINIT = msginit +MSGCONV = msgconv +MSGFILTER = msgfilter + +# This is computed as $(foreach file, $(POTFILES), $(top_srcdir)/$(file)) +POTFILES_DEPS = @POTFILES_DEPS@ + +# This is computed as $(foreach lang, $(LINGUAS), $(srcdir)/$(lang).po) +POFILES = @POFILES@ +# This is computed as $(foreach lang, $(LINGUAS), $(lang).po-update) +UPDATEPOFILES = @UPDATEPOFILES@ +# This is computed as $(foreach lang, $(LINGUAS), $(lang).nop) +DUMMYPOFILES = @DUMMYPOFILES@ +# This is computed as $(foreach lang, $(LINGUAS), $(srcdir)/$(frob $(lang))/$(DOMAIN).resources.dll) +RESOURCESDLLFILES = @RESOURCESDLLFILES@ + +# This is computed as +# $(foreach lang, user-specified subset of $(LINGUAS), $(frob $(lang))/$(DOMAIN).resources.dll) +CATALOGS = @CSHARPCATALOGS@ + +SUFFIXES = .sed .sin .nop .po-update + +.sin.sed: + sed -e '/^#/d' $< > t-$@ + mv t-$@ $@ + + +all-local: all-local-@USE_NLS@ + +all-local-yes: stamp-po +all-local-no: + +# stamp-po is a timestamp denoting the last time at which the CATALOGS have +# been loosely updated. Its purpose is that when a developer or translator +# checks out the package via CVS, and the $(DOMAIN).pot file is not in CVS, +# "make" will update the $(DOMAIN).pot and the $(CATALOGS), but subsequent +# invocations of "make" will do nothing. This timestamp would not be necessary +# if updating the $(CATALOGS) would always touch them; however, the rule for +# $(POFILES) has been designed to not touch files that don't need to be +# changed. +stamp-po: $(srcdir)/$(DOMAIN).pot + test -z "$(RESOURCESDLLFILES)" || $(MAKE) $(RESOURCESDLLFILES) + @echo "touch stamp-po" + @echo timestamp > stamp-poT + @mv stamp-poT stamp-po + +# Note: Target 'all' must not depend on target '$(DOMAIN).pot-update', +# otherwise packages like GCC can not be built if only parts of the source +# have been downloaded. + +# This target rebuilds $(DOMAIN).pot; it is an expensive operation. +# Note that $(DOMAIN).pot is not touched if it doesn't need to be changed. +$(DOMAIN).pot-update: $(POTFILES_DEPS) remove-potcdate.sed + $(XGETTEXT) --default-domain=$(DOMAIN) --directory=$(top_srcdir) \ + --add-comments=TRANSLATORS: $(XGETTEXT_OPTIONS) \ + --copyright-holder='$(COPYRIGHT_HOLDER)' \ + --msgid-bugs-address='$(MSGID_BUGS_ADDRESS)' \ + $(POTFILES) + test ! -f $(DOMAIN).po || { \ + if test -f $(srcdir)/$(DOMAIN).pot; then \ + sed -f remove-potcdate.sed < $(srcdir)/$(DOMAIN).pot > $(DOMAIN).1po && \ + sed -f remove-potcdate.sed < $(DOMAIN).po > $(DOMAIN).2po && \ + if cmp $(DOMAIN).1po $(DOMAIN).2po >/dev/null 2>&1; then \ + rm -f $(DOMAIN).1po $(DOMAIN).2po $(DOMAIN).po; \ + else \ + rm -f $(DOMAIN).1po $(DOMAIN).2po $(srcdir)/$(DOMAIN).pot && \ + mv $(DOMAIN).po $(srcdir)/$(DOMAIN).pot; \ + fi; \ + else \ + mv $(DOMAIN).po $(srcdir)/$(DOMAIN).pot; \ + fi; \ + } + +# This rule has no dependencies: we don't need to update $(DOMAIN).pot at +# every "make" invocation, only create it when it is missing. +# Only "make $(DOMAIN).pot-update" or "make dist" will force an update. +$(srcdir)/$(DOMAIN).pot: + $(MAKE) $(DOMAIN).pot-update + +# This target rebuilds a PO file if $(DOMAIN).pot has changed. +# Note that a PO file is not touched if it doesn't need to be changed. +$(POFILES): $(srcdir)/$(DOMAIN).pot + @lang=`echo $@ | sed -e 's,.*/,,' -e 's/\.po$$//'`; \ + test "$(srcdir)" = . && cdcmd="" || cdcmd="cd $(srcdir) && "; \ + echo "$${cdcmd}$(MSGMERGE_UPDATE) $${lang}.po $(DOMAIN).pot"; \ + cd $(srcdir) && $(MSGMERGE_UPDATE) $${lang}.po $(DOMAIN).pot + + +install-data-local: install-data-local-@USE_NLS@ +install-data-local-no: all-local +install-data-local-yes: all-local + $(mkinstalldirs) $(DESTDIR)$(pkglibdir) + @catalogs='$(CATALOGS)'; \ + for cat in $$catalogs; do \ + $(mkinstalldirs) $(DESTDIR)$(pkglibdir)/`echo $$cat | sed -e 's,/[^/]*$$,,'`; \ + if test -r $$cat; then realcat=$$cat; else realcat=$(srcdir)/$$cat; fi; \ + $(INSTALL_DATA) $$realcat $(DESTDIR)$(pkglibdir)/$$cat; \ + echo "installing $$realcat as $(DESTDIR)$(pkglibdir)/$$cat"; \ + done + +installdirs-local: installdirs-local-@USE_NLS@ +installdirs-local-no: +installdirs-local-yes: + $(mkinstalldirs) $(DESTDIR)$(pkglibdir) + @catalogs='$(CATALOGS)'; \ + for cat in $$catalogs; do \ + $(mkinstalldirs) $(DESTDIR)$(pkglibdir)/`echo $$cat | sed -e 's,/[^/]*$$,,'`; \ + done + +uninstall-local: uninstall-local-@USE_NLS@ +uninstall-local-no: +uninstall-local-yes: + catalogs='$(CATALOGS)'; \ + for cat in $$catalogs; do \ + rm -f $(DESTDIR)$(pkglibdir)/$$cat; \ + done + +html ID: + +MOSTLYCLEANFILES = +MOSTLYCLEANFILES += remove-potcdate.sed +MOSTLYCLEANFILES += stamp-poT +MOSTLYCLEANFILES += core core.* $(DOMAIN).po $(DOMAIN).1po $(DOMAIN).2po *.new.po + +MAINTAINERCLEANFILES = stamp-po $(RESOURCESDLLFILES) + +EXTRA_DIST = remove-potcdate.sin LINGUAS $(DOMAIN).pot stamp-po $(POFILES) $(RESOURCESDLLFILES) + +# Hidden from automake, but really activated. Works around an automake-1.5 bug. +#distdir: distdir1 +distdir1: + $(MAKE) update-po + +update-po: Makefile + $(MAKE) $(DOMAIN).pot-update + test -z "$(UPDATEPOFILES)" || $(MAKE) $(UPDATEPOFILES) + $(MAKE) update-resourcesdll + +# General rule for updating PO files. + +.nop.po-update: + @lang=`echo $@ | sed -e 's/\.po-update$$//'`; \ + tmpdir=`pwd`; \ + echo "$$lang:"; \ + test "$(srcdir)" = . && cdcmd="" || cdcmd="cd $(srcdir) && "; \ + echo "$${cdcmd}$(MSGMERGE) $$lang.po $(DOMAIN).pot -o $$lang.new.po"; \ + cd $(srcdir); \ + if $(MSGMERGE) $$lang.po $(DOMAIN).pot -o $$tmpdir/$$lang.new.po; then \ + if cmp $$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; \ + exit 1; \ + fi; \ + fi; \ + else \ + echo "msgmerge for $$lang.po failed!" 1>&2; \ + rm -f $$tmpdir/$$lang.new.po; \ + fi + +$(DUMMYPOFILES): + +update-resourcesdll: Makefile $(RESOURCESDLLFILES) + @: diff --git a/gettext-tools/examples/hello-csharp-forms/po/ca.po b/gettext-tools/examples/hello-csharp-forms/po/ca.po new file mode 100644 index 000000000..ec323cb07 --- /dev/null +++ b/gettext-tools/examples/hello-csharp-forms/po/ca.po @@ -0,0 +1,26 @@ +# Catalan messages for GNU hello-java. +# Copyright (C) 2003 Free Software Foundation, Inc. +# This file is distributed under the same license as the hello-java package. +# Ivan Vilata i Balaguer , 2003. +# +msgid "" +msgstr "" +"Project-Id-Version: hello-java 0.13-pre1\n" +"Report-Msgid-Bugs-To: bug-gnu-gettext@gnu.org\n" +"POT-Creation-Date: 2003-12-26 23:46+0100\n" +"PO-Revision-Date: 2003-11-22 17:41+0100\n" +"Last-Translator: Ivan Vilata i Balaguer \n" +"Language-Team: Catalan \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: hello.cs:30 +msgid "Hello, world!" +msgstr "Hola, món!" + +#: hello.cs:37 +#, csharp-format +msgid "This program is running as process number {0}." +msgstr "Aquest programa està corrent amb el número de procés {0}." diff --git a/gettext-tools/examples/hello-csharp-forms/po/de.po b/gettext-tools/examples/hello-csharp-forms/po/de.po new file mode 100644 index 000000000..518892a4a --- /dev/null +++ b/gettext-tools/examples/hello-csharp-forms/po/de.po @@ -0,0 +1,27 @@ +# German messages for hello-java. +# Copyright © 2003 Free Software Foundation, Inc. +# This file is distributed under the same license as the hello-java package. +# Bruno Haible , 2003. +# Karl Eichwalder , 2003. +# +msgid "" +msgstr "" +"Project-Id-Version: hello-java 0.13-pre1\n" +"Report-Msgid-Bugs-To: bug-gnu-gettext@gnu.org\n" +"POT-Creation-Date: 2003-12-26 23:46+0100\n" +"PO-Revision-Date: 2003-11-19 05:44+0100\n" +"Last-Translator: Karl Eichwalder \n" +"Language-Team: German \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: hello.cs:30 +msgid "Hello, world!" +msgstr "Hallo Welt!" + +#: hello.cs:37 +#, csharp-format +msgid "This program is running as process number {0}." +msgstr "Dieses Programm läuft mit der Prozess-Nummer {0}." diff --git a/gettext-tools/examples/hello-csharp-forms/po/es.po b/gettext-tools/examples/hello-csharp-forms/po/es.po new file mode 100644 index 000000000..ddddbaa0a --- /dev/null +++ b/gettext-tools/examples/hello-csharp-forms/po/es.po @@ -0,0 +1,25 @@ +# Mensajes en español para GNU gettext. +# Copyright (C) 1996, 1997, 1998, 2001 Free Software Foundation, Inc. +# Max de Mendizábal , 1996, 1997, 1998, 1999, 2000, +# 2001, 2002, 2003. +msgid "" +msgstr "" +"Project-Id-Version: hello-java-0.13-pre1\n" +"Report-Msgid-Bugs-To: bug-gnu-gettext@gnu.org\n" +"POT-Creation-Date: 2003-12-26 23:46+0100\n" +"PO-Revision-Date: 2003-11-24 19:19-0600\n" +"Last-Translator: Max de Mendizábal \n" +"Language-Team: Spanish \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=ISO-8859-1\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: hello.cs:30 +msgid "Hello, world!" +msgstr "¡Hola, mundo!" + +#: hello.cs:37 +#, csharp-format +msgid "This program is running as process number {0}." +msgstr "Este programa está corriendo como el proceso número {0}." diff --git a/gettext-tools/examples/hello-csharp-forms/po/fr.po b/gettext-tools/examples/hello-csharp-forms/po/fr.po new file mode 100644 index 000000000..abca40ecf --- /dev/null +++ b/gettext-tools/examples/hello-csharp-forms/po/fr.po @@ -0,0 +1,25 @@ +# Messages français pour GNU gettext. +# Copyright © 2003 Free Software Foundation, Inc. +# Michel Robitaille , traducteur depuis/since 1996. +# +msgid "" +msgstr "" +"Project-Id-Version: GNU hello-java 0.13-pre1\n" +"Report-Msgid-Bugs-To: bug-gnu-gettext@gnu.org\n" +"POT-Creation-Date: 2003-12-26 23:46+0100\n" +"PO-Revision-Date: 2003-11-19 08:00-0500\n" +"Last-Translator: Michel Robitaille \n" +"Language-Team: French \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=ISO-8859-1\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=2; plural=(n > 1);\n" + +#: hello.cs:30 +msgid "Hello, world!" +msgstr "Bonjour, le monde!" + +#: hello.cs:37 +#, csharp-format +msgid "This program is running as process number {0}." +msgstr "Ce programme est exécuté en tant que processus numéro {0}." diff --git a/gettext-tools/examples/hello-csharp-forms/po/ja.po b/gettext-tools/examples/hello-csharp-forms/po/ja.po new file mode 100644 index 000000000..50beb498e --- /dev/null +++ b/gettext-tools/examples/hello-csharp-forms/po/ja.po @@ -0,0 +1,24 @@ +# Translation of `hello-java' messages to Japanese. +# Copyright (C) 2003 Free Software Foundation, Inc. +# Masahito Yamaga , 2003. +# +msgid "" +msgstr "" +"Project-Id-Version: GNU hello-java 0.13-pre1\n" +"Report-Msgid-Bugs-To: bug-gnu-gettext@gnu.org\n" +"POT-Creation-Date: 2003-12-26 23:46+0100\n" +"PO-Revision-Date: 2003-11-21 23:15+0900\n" +"Last-Translator: Masahito Yamaga \n" +"Language-Team: Japanese \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=EUC-JP\n" +"Content-Transfer-Encoding: 8bit\n" + +#: hello.cs:30 +msgid "Hello, world!" +msgstr "À¤³¦¤è, ¤³¤ó¤Ë¤Á¤Ï!" + +#: hello.cs:37 +#, csharp-format +msgid "This program is running as process number {0}." +msgstr "¤³¤Î¥×¥í¥°¥é¥à¤Ï¥×¥í¥»¥¹ÈÖ¹æ {0} ¤Çư¤¤¤Æ¤¤¤Þ¤¹." diff --git a/gettext-tools/examples/hello-csharp-forms/po/pl.po b/gettext-tools/examples/hello-csharp-forms/po/pl.po new file mode 100644 index 000000000..d50483ec1 --- /dev/null +++ b/gettext-tools/examples/hello-csharp-forms/po/pl.po @@ -0,0 +1,25 @@ +# Polish translations for the GNU gettext messages, hello-java domain +# Copyright (C) 2003 Free Software Foundation, Inc. +# This file is distributed under the same license as the gettext package. +# Rafa³ Maszkowski , 2003 +# +msgid "" +msgstr "" +"Project-Id-Version: hello-java-0.13-pre1\n" +"Report-Msgid-Bugs-To: bug-gnu-gettext@gnu.org\n" +"POT-Creation-Date: 2003-12-26 23:46+0100\n" +"PO-Revision-Date: 2003-11-19 13:00+0100\n" +"Last-Translator: Rafa³ Maszkowski \n" +"Language-Team: Polish \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=ISO-8859-2\n" +"Content-Transfer-Encoding: 8bit\n" + +#: hello.cs:30 +msgid "Hello, world!" +msgstr "Witaj ¶wiecie!" + +#: hello.cs:37 +#, csharp-format +msgid "This program is running as process number {0}." +msgstr "Ten program dzia³a jako proces o numerze {0}." diff --git a/gettext-tools/examples/hello-csharp-forms/po/ro.po b/gettext-tools/examples/hello-csharp-forms/po/ro.po new file mode 100644 index 000000000..33b885382 --- /dev/null +++ b/gettext-tools/examples/hello-csharp-forms/po/ro.po @@ -0,0 +1,25 @@ +# Mesajele în limba românã pentru pachetul hello-java-0.13-pre1. +# Copyright (C) 2003 Free Software Foundation, Inc. +# Acest fiºier este distribuit sub aceeaºi licenþã ca pachetul hello-java. +# Eugen Hoanca , 2003 +# +msgid "" +msgstr "" +"Project-Id-Version: hello-java 0.13-pre1\n" +"Report-Msgid-Bugs-To: bug-gnu-gettext@gnu.org\n" +"POT-Creation-Date: 2003-12-26 23:46+0100\n" +"PO-Revision-Date: 2003-11-22 11:15+0200\n" +"Last-Translator: Eugen Hoanca \n" +"Language-Team: Romanian \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=ISO-8859-2\n" +"Content-Transfer-Encoding: 8bit\n" + +#: hello.cs:30 +msgid "Hello, world!" +msgstr "Salut, lume! (Hello, world!)" + +#: hello.cs:37 +#, csharp-format +msgid "This program is running as process number {0}." +msgstr "Acest program este rulat ca procesul numãrul {0}." diff --git a/gettext-tools/examples/hello-csharp-forms/po/sr.po b/gettext-tools/examples/hello-csharp-forms/po/sr.po new file mode 100644 index 000000000..2491b0107 --- /dev/null +++ b/gettext-tools/examples/hello-csharp-forms/po/sr.po @@ -0,0 +1,24 @@ +# Serbian translation of hello-java. +# Copyright (C) 2003 Free Software Foundation, Inc. +# This file is distributed under the same license as the `hello-java' package. +# Aleksandar Jelenak , 2003. +msgid "" +msgstr "" +"Project-Id-Version: hello-java 0.13-pre1\n" +"Report-Msgid-Bugs-To: bug-gnu-gettext@gnu.org\n" +"POT-Creation-Date: 2003-12-26 23:46+0100\n" +"PO-Revision-Date: Wed, 19 Nov 2003 11:16:28 -0500\n" +"Last-Translator: Aleksandar Jelenak \n" +"Language-Team: Serbian \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +#: hello.cs:30 +msgid "Hello, world!" +msgstr "Hello, world!" + +#: hello.cs:37 +#, csharp-format +msgid "This program is running as process number {0}." +msgstr "Овај програм се извршава као процес број {0}." diff --git a/gettext-tools/examples/hello-csharp-forms/po/zh_CN.po b/gettext-tools/examples/hello-csharp-forms/po/zh_CN.po new file mode 100644 index 000000000..875b2c23e --- /dev/null +++ b/gettext-tools/examples/hello-csharp-forms/po/zh_CN.po @@ -0,0 +1,25 @@ +# zh_CN translation for hello-java. +# Copyright (C) 2003 Free Software Foundation, Inc. +# This file is distributed under the same license as the hello-java package. +# Funda Wang , 2003. +# +msgid "" +msgstr "" +"Project-Id-Version: hello-java 0.13-pre1\n" +"Report-Msgid-Bugs-To: bug-gnu-gettext@gnu.org\n" +"POT-Creation-Date: 2003-12-26 23:46+0100\n" +"PO-Revision-Date: 2003-11-19 21:30+0800\n" +"Last-Translator: Funda Wang \n" +"Language-Team: Chinese (simplified) \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=utf-8\n" +"Content-Transfer-Encoding: 8bit\n" + +#: hello.cs:30 +msgid "Hello, world!" +msgstr "世界你好!" + +#: hello.cs:37 +#, csharp-format +msgid "This program is running as process number {0}." +msgstr "此程序正以进程号 {0} 运行。"