# La teksto por la mesaĝoj de la programo "gettext".
# Copyright (C) 2006, 2016 Yoyodyne, Inc. (msgids)
# This file is distributed under the same license as the gettext package.
# Edmund GRIMLEY EVANS <edmundo@rano.org>, 2006.
# Felipe CASTRO <fefcas@gmail.com>, 2016.
#
msgid ""
msgstr ""
"Project-Id-Version: gettext-examples 0.19.4.73\n"
"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n"
"POT-Creation-Date: 2020-04-11 22:35+0200\n"
"PO-Revision-Date: 2016-02-22 08:54-0300\n"
"Last-Translator: Felipe Castro <fefcas@gmail.com>\n"
"Language-Team: Esperanto <translation-team-eo@lists.sourceforge.net>\n"
"Language: eo\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Bugs: Report translation errors to the Language-Team address.\n"

#: hello-c/hello.c:30 hello-c-gnome/hello.c:46
#: hello-c-gnome3/hello.desktop.in.in:5 hello-c++/hello.cc:39
#: hello-c++-qt/hello.cc:45 hello-c++-kde/hellowindow.cc:42
#: hello-c++-gnome/hello.cc:50 hello-c++-wxwidgets/hello.cc:68
#: hello-objc/hello.m:30 hello-objc-gnustep/Hello.m:49
#: hello-objc-gnome/hello.m:47 hello-sh/hello.sh:14 hello-python/hello.py.in:12
#: hello-clisp/hello.lisp.in:11 hello-librep/hello.jl.in:12
#: hello-guile/hello.scm:15 hello-smalltalk/hello.st.in:31
#: hello-java/Hello.java:14 hello-java-awt/Hello.java:23
#: hello-java-swing/Hello.java:20 hello-java-qtjambi/Hello.java:27
#: hello-csharp/hello.cs:14 hello-csharp-forms/hello.cs:29
#: hello-gawk/hello.awk:11 hello-pascal/hello.hello_world
#: hello-ycp/hello.ycp:15 hello-tcl/hello.tcl:11 hello-tcl-tk/hello.tcl:13
#: hello-perl/hello-1.pl.in:17 hello-perl/hello-2.pl.in:12
#: hello-php/hello.php:12
msgid "Hello, world!"
msgstr "Saluton, mondo!"

#: hello-c/hello.c:31 hello-c-gnome/hello.c:51 hello-c++/hello.cc:40
#: hello-c++-gnome/hello.cc:55 hello-c++-wxwidgets/hello.cc:71
#: hello-objc/hello.m:31 hello-objc-gnustep/Hello.m:58
#: hello-objc-gnome/hello.m:52 hello-librep/hello.jl.in:14
#: hello-gawk/hello.awk:12 hello-pascal/hello.running_as hello-tcl/hello.tcl:12
#: hello-tcl-tk/hello.tcl:16 hello-perl/hello-1.pl.in:19 hello-php/hello.php:14
#, php-format
msgid "This program is running as process number %d."
msgstr "Ĉi tiu programo rulas kiel procezo kun numero %d."

#: hello-c-gnome3/hello.c:79
#, c-format
msgid ""
"<big>Hello world!</big>\n"
"This program is running as process number <b>%d</b>."
msgstr ""
"<big>Saluton mondo!</big>\n"
"Ĉi tiu programo rulas kiel procezo kun numero <b>%d</b>."

#: hello-c-gnome3/hello.c:84
msgid "<big><u>This is another text</u></big>"
msgstr "<big><u>Tio ĉi estas alia teksto</u></big>"

#: hello-c-gnome3/hello.c:86
msgid "<big><i>This is yet another text</i></big>"
msgstr "<big><i>Tio ĉi estas pli alia teksto</i></big>"

#: hello-c-gnome3/hello.desktop.in.in:4
msgid "Hello"
msgstr "Saluton"

#: hello-c-gnome3/hello.ui:6
msgid "Example Application"
msgstr "Ekzempla aplikaĵo"

#: hello-c-gnome3/hello.ui:34
msgid "Update text"
msgstr "Ĝisdatigi tekston"

#: hello-c-gnome3/hello.gschema.xml:8
msgid "Use XML markup"
msgstr "Uzi marklingvon XML"

#: hello-c-gnome3/hello.gschema.xml:9
msgid "Whether to use XML markup in the text."
msgstr "Ĉu uzi marklingvon XML en la teksto."

#: hello-c++-qt/hello.cc:52 hello-c++-kde/hellowindow.cc:49
#: hello-smalltalk/hello.st.in:32 hello-ycp/hello.ycp:19
#, ycp-format
msgid "This program is running as process number %1."
msgstr "Ĉi tiu programo rulas kiel procezo kun numero %1."

#: hello-c++-kde/hello.cc:46
msgid "Hello example"
msgstr "Saluton-ekzemplo"

#: hello-c++-kde/hello.cc:48
msgid "Hello world example"
msgstr "Saluton-mondo-ekzemplo"

#: hello-sh/hello.sh:17
#, sh-format
msgid "This program is running as process number $pid."
msgstr "Ĉi tiu programo rulas kiel procezo kun numero $pid."

#: hello-python/hello.py.in:13
#, python-format
msgid "This program is running as process number %(pid)d."
msgstr "Ĉi tiu programo rulas kiel procezo kun numero %(pid)d."

#: hello-clisp/hello.lisp.in:13 hello-guile/hello.scm:17
#, scheme-format
msgid "This program is running as process number ~D."
msgstr "Ĉi tiu programo rulas kiel procezo kun numero ~D."

#: hello-java/Hello.java:18 hello-java-awt/Hello.java:28
#: hello-java-swing/Hello.java:25 hello-java-qtjambi/Hello.java:34
#: hello-csharp/hello.cs:17 hello-csharp-forms/hello.cs:36
#, csharp-format
msgid "This program is running as process number {0}."
msgstr "Ĉi tiu programo rulas kiel procezo kun numero {0}."

#: hello-perl/hello-2.pl.in:14
#, perl-brace-format
msgid "This program is running as process number {pid}."
msgstr "Ĉi tiu programo rulas kiel procezo kun numero {pid}."
