From bb8bd5490a71bc77570653cf53be88edd37679e3 Mon Sep 17 00:00:00 2001 From: Lennart Poettering Date: Mon, 17 Dec 2007 12:36:14 +0000 Subject: add i18n support git-svn-id: file:///home/lennart/svn/public/avahi/trunk@1593 941a03a8-eaeb-0310-b9a0-b1bbd8fe43fe --- Makefile.am | 14 +- autogen.sh | 7 + avahi-common/Makefile.am | 10 +- avahi-common/error.c | 133 +++++++++--------- avahi-common/i18n.c | 40 ++++++ avahi-common/i18n.h | 55 ++++++++ avahi-ui/avahi-ui.c | 39 +++--- avahi-ui/bssh.c | 59 ++++---- common/Makefile.am | 2 +- configure.ac | 13 ++ po/POTFILES.in | 9 ++ po/POTFILES.skip | 3 + po/avahi.pot | 350 ++++++++++++++++++++++++++++++++++++++++++++++ po/de.po | 353 +++++++++++++++++++++++++++++++++++++++++++++++ 14 files changed, 968 insertions(+), 119 deletions(-) create mode 100644 avahi-common/i18n.c create mode 100644 avahi-common/i18n.h create mode 100644 po/POTFILES.in create mode 100644 po/POTFILES.skip create mode 100644 po/avahi.pot create mode 100644 po/de.po diff --git a/Makefile.am b/Makefile.am index a5a0ab0..f65e9e3 100644 --- a/Makefile.am +++ b/Makefile.am @@ -50,7 +50,10 @@ EXTRA_DIST = \ avahi-compat-libdns_sd.pc.in \ avahi-compat-howl.pc.in \ avahi-ui.pc.in \ - doxygen_to_devhelp.xsl + doxygen_to_devhelp.xsl \ + intltool-merge.in \ + intltool-update.in \ + intltool-extract.in SUBDIRS = \ common \ @@ -75,7 +78,8 @@ SUBDIRS = \ avahi-compat-howl \ avahi-autoipd \ avahi-ui \ - avahi-ui-sharp + avahi-ui-sharp \ + po DX_INPUT = \ $(srcdir)/avahi-common/address.h \ @@ -307,3 +311,9 @@ dist-hook: chmod u+w ${distdir}/ChangeLog || true ; \ svn2cl -o ${distdir}/ChangeLog ; \ fi + +DISTCLEANFILES = \ + intltool-extract \ + intltool-merge \ + intltool-update \ + po/.intltool-merge-cache diff --git a/autogen.sh b/autogen.sh index f75ad60..78f26c9 100755 --- a/autogen.sh +++ b/autogen.sh @@ -49,8 +49,15 @@ else rm -rf autom4te.cache rm -f config.cache + rm -f Makefile.am~ configure.ac~ + # Evil, evil, evil, evil hack + sed 's/read dummy/\#/' `which gettextize` | sh -s -- --copy --force + test -f Makefile.am~ && mv Makefile.am~ Makefile.am + test -f configure.ac~ && mv configure.ac~ configure.ac + test "x$LIBTOOLIZE" = "x" && LIBTOOLIZE=libtoolize + intltoolize --copy --force --automake "$LIBTOOLIZE" -c --force run_versioned aclocal "$VERSION" -I common run_versioned autoconf 2.59 -Wall diff --git a/avahi-common/Makefile.am b/avahi-common/Makefile.am index cd21c11..e0aa56e 100644 --- a/avahi-common/Makefile.am +++ b/avahi-common/Makefile.am @@ -1,7 +1,7 @@ # $Id: Makefile.am 90 2005-05-23 16:15:12Z lennart $ # # This file is part of avahi. -# +# # avahi is free software; you can redistribute it and/or modify it # under the terms of the GNU Lesser General Public License as # published by the Free Software Foundation; either version 2 of the @@ -53,7 +53,7 @@ noinst_PROGRAMS = \ endif lib_LTLIBRARIES = \ - libavahi-common.la + libavahi-common.la libavahi_common_la_SOURCES = \ malloc.c malloc.h \ @@ -67,9 +67,10 @@ libavahi_common_la_SOURCES = \ thread-watch.c thread-watch.h \ watch.h gccmacro.h \ rlist.h rlist.c \ - utf8.c utf8.h + utf8.c utf8.h \ + i18n.c i18n.h -libavahi_common_la_CFLAGS = $(AM_CFLAGS) $(PTHREAD_CFLAGS) +libavahi_common_la_CFLAGS = $(AM_CFLAGS) $(PTHREAD_CFLAGS) -DAVAHI_LOCALEDIR=\"$(avahilocaledir)\" libavahi_common_la_LIBADD = $(AM_LDADD) $(PTHREAD_CFLAGS) $(PTHREAD_LIBS) libavahi_common_la_LDFLAGS = $(AM_LDFLAGS) -export-dynamic -version-info $(LIBAVAHI_COMMON_VERSION_INFO) @@ -128,4 +129,3 @@ noinst_HEADERS = \ dbus-watch-glue.h endif - diff --git a/avahi-common/error.c b/avahi-common/error.c index 92a2234..fb9bd38 100644 --- a/avahi-common/error.c +++ b/avahi-common/error.c @@ -2,17 +2,17 @@ /*** This file is part of avahi. - + avahi is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 of the License, or (at your option) any later version. - + avahi is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. - + You should have received a copy of the GNU Lesser General Public License along with avahi; if not, write to the Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 @@ -24,73 +24,76 @@ #endif #include "error.h" +#include "i18n.h" const char *avahi_strerror(int error) { - + const char * const msg[- AVAHI_ERR_MAX] = { - "OK", - "Operation failed", - "Bad state", - "Invalid host name", - "Invalid domain name", - "No suitable network protocol available", - "Invalid DNS TTL", - "Resource record key is pattern", - "Local name collision", - "Invalid record", - - "Invalid service name", - "Invalid service type", - "Invalid port number", - "Invalid record key", - "Invalid address", - "Timeout reached", - "Too many clients", - "Too many objects", - "Too many entries", - "OS Error", - - "Access denied", - "Invalid operation", - "An unexpected D-Bus error occured", - "Daemon connection failed", - "Memory exhausted", - "The object passed in was not valid", - "Daemon not running", - "Invalid interface index", - "Invalid protocol specification", - "Invalid flags", - - "Not found", - "Invalid configuration", - "Version mismatch", - "Invalid service subtype", - "Invalid packet", - "Invalid DNS return code", - "DNS failure: FORMERR", - "DNS failure: SERVFAIL", - "DNS failure: NXDOMAIN", - "DNS failure: NOTIMP", - - "DNS failure: REFUSED", - "DNS failure: YXDOMAIN", - "DNS failure: YXRRSET", - "DNS failure: NXRRSET", - "DNS failure: NOTAUTH", - "DNS failure: NOTZONE", - "Invalid RDATA", - "Invalid DNS type", - "Invalid DNS class", - "Not supported", - - "Not permitted", - "Invalid argument", - "Is empty", - "The requested operation is invalid because redundant" + N_("OK"), + N_("Operation failed"), + N_("Bad state"), + N_("Invalid host name"), + N_("Invalid domain name"), + N_("No suitable network protocol available"), + N_("Invalid DNS TTL"), + N_("Resource record key is pattern"), + N_("Local name collision"), + N_("Invalid record"), + + N_("Invalid service name"), + N_("Invalid service type"), + N_("Invalid port number"), + N_("Invalid record key"), + N_("Invalid address"), + N_("Timeout reached"), + N_("Too many clients"), + N_("Too many objects"), + N_("Too many entries"), + N_("OS Error"), + + N_("Access denied"), + N_("Invalid operation"), + N_("An unexpected D-Bus error occured"), + N_("Daemon connection failed"), + N_("Memory exhausted"), + N_("The object passed in was not valid"), + N_("Daemon not running"), + N_("Invalid interface index"), + N_("Invalid protocol specification"), + N_("Invalid flags"), + + N_("Not found"), + N_("Invalid configuration"), + N_("Version mismatch"), + N_("Invalid service subtype"), + N_("Invalid packet"), + N_("Invalid DNS return code"), + N_("DNS failure: FORMERR"), + N_("DNS failure: SERVFAIL"), + N_("DNS failure: NXDOMAIN"), + N_("DNS failure: NOTIMP"), + + N_("DNS failure: REFUSED"), + N_("DNS failure: YXDOMAIN"), + N_("DNS failure: YXRRSET"), + N_("DNS failure: NXRRSET"), + N_("DNS failure: NOTAUTH"), + N_("DNS failure: NOTZONE"), + N_("Invalid RDATA"), + N_("Invalid DNS type"), + N_("Invalid DNS class"), + N_("Not supported"), + + N_("Not permitted"), + N_("Invalid argument"), + N_("Is empty"), + N_("The requested operation is invalid because redundant") }; + avahi_init_i18n(); + if (-error < 0 || -error >= -AVAHI_ERR_MAX) - return "Invalid Error Code"; + return _("Invalid Error Code"); - return msg[-error]; + return _(msg[-error]); } diff --git a/avahi-common/i18n.c b/avahi-common/i18n.c new file mode 100644 index 0000000..20f3b3a --- /dev/null +++ b/avahi-common/i18n.c @@ -0,0 +1,40 @@ +/* $Id$ */ + +/*** + This file is part of avahi. + + avahi is free software; you can redistribute it and/or modify it + under the terms of the GNU Lesser General Public License as + published by the Free Software Foundation; either version 2.1 of the + License, or (at your option) any later version. + + avahi is distributed in the hope that it will be useful, but WITHOUT + ANY WARRANTY; without even the implied warranty of MERCHANTABILITY + or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General + Public License for more details. + + You should have received a copy of the GNU Lesser General Public + License along with avahi; if not, write to the Free Software + Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 + USA. + ***/ + +#ifdef HAVE_CONFIG_H +#include +#endif + +#include "i18n.h" + +void avahi_init_i18n(void) { + + /* Not really thread safe, but this doesn't matter much since + * bindtextdomain is supposed to be idempotent anyway. */ + + static int done = 0; + + if (!done) { + bindtextdomain(GETTEXT_PACKAGE, AVAHI_LOCALEDIR); + bind_textdomain_codeset(GETTEXT_PACKAGE, "UTF-8"); + done = 1; + } +} diff --git a/avahi-common/i18n.h b/avahi-common/i18n.h new file mode 100644 index 0000000..e246736 --- /dev/null +++ b/avahi-common/i18n.h @@ -0,0 +1,55 @@ +#ifndef fooi18nhfoo +#define fooi18nhfoo + +/* $Id$ */ + +/*** + This file is part of avahi. + + avahi is free software; you can redistribute it and/or modify it + under the terms of the GNU Lesser General Public License as + published by the Free Software Foundation; either version 2.1 of the + License, or (at your option) any later version. + + avahi is distributed in the hope that it will be useful, but WITHOUT + ANY WARRANTY; without even the implied warranty of MERCHANTABILITY + or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General + Public License for more details. + + You should have received a copy of the GNU Lesser General Public + License along with avahi; if not, write to the Free Software + Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 + USA. +***/ + +#if !defined(GETTEXT_PACKAGE) +#error "Something is very wrong here, config.h needs to be included first" +#endif + +#ifdef ENABLE_NLS + +#include + +#define _(String) dgettext(GETTEXT_PACKAGE, String) +#ifdef gettext_noop +#define N_(String) gettext_noop(String) +#else +#define N_(String) (String) +#endif + +#else /* NLS is disabled */ + +#define _(String) (String) +#define N_(String) (String) +#define textdomain(String) (String) +#define gettext(String) (String) +#define dgettext(Domain,String) (String) +#define dcgettext(Domain,String,Type) (String) +#define bindtextdomain(Domain,Directory) (Domain) +#define bind_textdomain_codeset(Domain,Codeset) (Codeset) + +#endif /* ENABLE_NLS */ + +void avahi_init_i18n(void); + +#endif diff --git a/avahi-ui/avahi-ui.c b/avahi-ui/avahi-ui.c index 643c181..537ca5b 100644 --- a/avahi-ui/avahi-ui.c +++ b/avahi-ui/avahi-ui.c @@ -37,6 +37,7 @@ #include #include #include +#include #include "avahi-ui.h" @@ -172,6 +173,8 @@ G_DEFINE_TYPE(AuiServiceDialog, aui_service_dialog, GTK_TYPE_DIALOG) static void aui_service_dialog_class_init(AuiServiceDialogClass *klass) { GObjectClass *object_class; + avahi_init_i18n(); + object_class = (GObjectClass*) klass; object_class->finalize = aui_service_dialog_finalize; @@ -320,7 +323,7 @@ static void client_callback(AvahiClient *c, AvahiClientState state, void *userda GTK_DIALOG_DESTROY_WITH_PARENT, GTK_MESSAGE_ERROR, GTK_BUTTONS_CLOSE, - "Avahi client failure: %s", + _("Avahi client failure: %s"), avahi_strerror(avahi_client_errno(c))); gtk_dialog_run(GTK_DIALOG(m)); gtk_widget_destroy(m); @@ -382,7 +385,7 @@ static void resolve_callback( GTK_DIALOG_DESTROY_WITH_PARENT, GTK_MESSAGE_ERROR, GTK_BUTTONS_CLOSE, - "Avahi resolver failure: %s", + _("Avahi resolver failure: %s"), avahi_strerror(avahi_client_errno(d->priv->client))); gtk_dialog_run(GTK_DIALOG(m)); gtk_widget_destroy(m); @@ -512,8 +515,8 @@ static void browse_callback( GTK_DIALOG_DESTROY_WITH_PARENT, GTK_MESSAGE_ERROR, GTK_BUTTONS_CLOSE, - "Browsing for service type %s in domain %s failed: %s", - type, domain ? domain : "n/a", + _("Browsing for service type %s in domain %s failed: %s"), + type, domain ? domain : _("n/a"), avahi_strerror(avahi_client_errno(d->priv->client))); gtk_dialog_run(GTK_DIALOG(m)); gtk_widget_destroy(m); @@ -643,7 +646,7 @@ static void domain_browse_callback( GTK_DIALOG_DESTROY_WITH_PARENT, GTK_MESSAGE_ERROR, GTK_BUTTONS_CLOSE, - "Avahi domain browser failure: %s", + _("Avahi domain browser failure: %s"), avahi_strerror(avahi_client_errno(d->priv->client))); gtk_dialog_run(GTK_DIALOG(m)); gtk_widget_destroy(m); @@ -678,7 +681,7 @@ static const gchar *get_domain_name(AuiServiceDialog *d) { GTK_DIALOG_DESTROY_WITH_PARENT, GTK_MESSAGE_ERROR, GTK_BUTTONS_CLOSE, - "Failed to read Avahi domain : %s", + _("Failed to read Avahi domain : %s"), avahi_strerror(avahi_client_errno(d->priv->client))); gtk_dialog_run(GTK_DIALOG(m)); gtk_widget_destroy(m); @@ -711,7 +714,7 @@ static gboolean start_callback(gpointer data) { GTK_DIALOG_DESTROY_WITH_PARENT, GTK_MESSAGE_ERROR, GTK_BUTTONS_CLOSE, - "Failed to connect to Avahi server: %s", + _("Failed to connect to Avahi server: %s"), avahi_strerror(error)); gtk_dialog_run(GTK_DIALOG(m)); gtk_widget_destroy(m); @@ -729,9 +732,9 @@ static gboolean start_callback(gpointer data) { g_assert(domain); if (avahi_domain_equal(domain, "local.")) - gtk_label_set_markup(GTK_LABEL(d->priv->domain_label), "Browsing for services on local network:"); + gtk_label_set_markup(GTK_LABEL(d->priv->domain_label), _("Browsing for services on local network:")); else { - gchar *t = g_strdup_printf("Browsing for services in domain %s:", domain); + gchar *t = g_strdup_printf(_("Browsing for services in domain %s:"), domain); gtk_label_set_markup(GTK_LABEL(d->priv->domain_label), t); g_free(t); } @@ -767,7 +770,7 @@ static gboolean start_callback(gpointer data) { GTK_DIALOG_DESTROY_WITH_PARENT, GTK_MESSAGE_ERROR, GTK_BUTTONS_CLOSE, - "Failed to create browser for %s: %s", + _("Failed to create browser for %s: %s"), *st, avahi_strerror(avahi_client_errno(d->priv->client))); gtk_dialog_run(GTK_DIALOG(m)); @@ -897,7 +900,7 @@ static void response_callback(GtkDialog *dialog, gint response, gpointer user_da GTK_DIALOG_DESTROY_WITH_PARENT, GTK_MESSAGE_ERROR, GTK_BUTTONS_CLOSE, - "Failed to create resolver for %s of type %s in domain %s: %s", + _("Failed to create resolver for %s of type %s in domain %s: %s"), name, type, d->priv->domain, avahi_strerror(avahi_client_errno(d->priv->client))); gtk_dialog_run(GTK_DIALOG(m)); @@ -972,7 +975,7 @@ static void domain_button_clicked(GtkButton *button G_GNUC_UNUSED, gpointer user GTK_DIALOG_DESTROY_WITH_PARENT, GTK_MESSAGE_ERROR, GTK_BUTTONS_CLOSE, - "Failed to create domain browser: %s", + _("Failed to create domain browser: %s"), avahi_strerror(avahi_client_errno(p->client))); gtk_dialog_run(GTK_DIALOG(m)); gtk_widget_destroy(m); @@ -983,7 +986,7 @@ static void domain_button_clicked(GtkButton *button G_GNUC_UNUSED, gpointer user p->domain_dialog = gtk_dialog_new(); gtk_container_set_border_width(GTK_CONTAINER(p->domain_dialog), 5); - gtk_window_set_title(GTK_WINDOW(p->domain_dialog), "Change domain"); + gtk_window_set_title(GTK_WINDOW(p->domain_dialog), _("Change domain")); gtk_dialog_set_has_separator(GTK_DIALOG(p->domain_dialog), FALSE); vbox = gtk_vbox_new(FALSE, 8); @@ -1015,7 +1018,7 @@ static void domain_button_clicked(GtkButton *button G_GNUC_UNUSED, gpointer user g_signal_connect(selection, "changed", G_CALLBACK(domain_selection_changed_callback), d); renderer = gtk_cell_renderer_text_new(); - column = gtk_tree_view_column_new_with_attributes("Service Name", renderer, "text", DOMAIN_COLUMN_NAME, NULL); + column = gtk_tree_view_column_new_with_attributes(_("Service Name"), renderer, "text", DOMAIN_COLUMN_NAME, NULL); gtk_tree_view_column_set_expand(column, TRUE); gtk_tree_view_append_column(GTK_TREE_VIEW(p->domain_tree_view), column); @@ -1023,7 +1026,7 @@ static void domain_button_clicked(GtkButton *button G_GNUC_UNUSED, gpointer user gtk_container_add(GTK_CONTAINER(scrolled_window), p->domain_tree_view); p->domain_progress_bar = gtk_progress_bar_new(); - gtk_progress_bar_set_text(GTK_PROGRESS_BAR(p->domain_progress_bar), "Browsing ..."); + gtk_progress_bar_set_text(GTK_PROGRESS_BAR(p->domain_progress_bar), _("Browsing ...")); gtk_progress_bar_set_pulse_step(GTK_PROGRESS_BAR(p->domain_progress_bar), 0.1); gtk_box_pack_end(GTK_BOX(vbox2), p->domain_progress_bar, FALSE, FALSE, 0); @@ -1112,7 +1115,7 @@ static void aui_service_dialog_init(AuiServiceDialog *d) { gtk_container_set_border_width(GTK_CONTAINER(vbox), 8); gtk_box_pack_start(GTK_BOX(GTK_DIALOG(d)->vbox), vbox, TRUE, TRUE, 0); - p->domain_label = gtk_label_new("Initializing..."); + p->domain_label = gtk_label_new(_("Initializing...")); gtk_label_set_ellipsize(GTK_LABEL(p->domain_label), TRUE); gtk_misc_set_alignment(GTK_MISC(p->domain_label), 0, 0.5); gtk_box_pack_start(GTK_BOX(vbox), p->domain_label, FALSE, FALSE, 0); @@ -1154,11 +1157,11 @@ static void aui_service_dialog_init(AuiServiceDialog *d) { gtk_container_add(GTK_CONTAINER(scrolled_window), p->service_tree_view); p->service_progress_bar = gtk_progress_bar_new(); - gtk_progress_bar_set_text(GTK_PROGRESS_BAR(p->service_progress_bar), "Browsing ..."); + gtk_progress_bar_set_text(GTK_PROGRESS_BAR(p->service_progress_bar), _("Browsing ...")); gtk_progress_bar_set_pulse_step(GTK_PROGRESS_BAR(p->service_progress_bar), 0.1); gtk_box_pack_end(GTK_BOX(vbox2), p->service_progress_bar, FALSE, FALSE, 0); - p->domain_button = gtk_button_new_with_mnemonic("_Domain..."); + p->domain_button = gtk_button_new_with_mnemonic(_("_Domain...")); gtk_button_set_image(GTK_BUTTON(p->domain_button), gtk_image_new_from_stock(GTK_STOCK_NETWORK, GTK_ICON_SIZE_BUTTON)); g_signal_connect(p->domain_button, "clicked", G_CALLBACK(domain_button_clicked), d); gtk_box_pack_start(GTK_BOX(GTK_DIALOG(d)->action_area), p->domain_button, FALSE, TRUE, 0); diff --git a/avahi-ui/bssh.c b/avahi-ui/bssh.c index 54c7dd9..d5bec12 100644 --- a/avahi-ui/bssh.c +++ b/avahi-ui/bssh.c @@ -2,17 +2,17 @@ /*** This file is part of avahi. - + avahi is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 of the License, or (at your option) any later version. - + avahi is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. - + You should have received a copy of the GNU Lesser General Public License along with avahi; if not, write to the Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 @@ -34,27 +34,30 @@ #include #include #include +#include #include "avahi-ui.h" int main(int argc, char*argv[]) { GtkWidget *d; + avahi_init_i18n(); + gtk_init(&argc, &argv); if (g_str_has_suffix(argv[0], "bshell")) { - d = aui_service_dialog_new("Choose Shell Server", NULL, GTK_STOCK_CANCEL, GTK_RESPONSE_CANCEL, GTK_STOCK_CONNECT, GTK_RESPONSE_ACCEPT, NULL); + d = aui_service_dialog_new(_("Choose Shell Server"), NULL, GTK_STOCK_CANCEL, GTK_RESPONSE_CANCEL, GTK_STOCK_CONNECT, GTK_RESPONSE_ACCEPT, NULL); aui_service_dialog_set_browse_service_types(AUI_SERVICE_DIALOG(d), "_rfb._tcp", "_ssh._tcp", NULL); - aui_service_dialog_set_service_type_name(AUI_SERVICE_DIALOG(d), "_rfb._tcp", "Desktop"); - aui_service_dialog_set_service_type_name(AUI_SERVICE_DIALOG(d), "_ssh._tcp", "Terminal"); + aui_service_dialog_set_service_type_name(AUI_SERVICE_DIALOG(d), "_rfb._tcp", _("Desktop")); + aui_service_dialog_set_service_type_name(AUI_SERVICE_DIALOG(d), "_ssh._tcp", _("Terminal")); } else if (g_str_has_suffix(argv[0], "bvnc")) { - d = aui_service_dialog_new("Choose VNC server", NULL, GTK_STOCK_CANCEL, GTK_RESPONSE_CANCEL, GTK_STOCK_CONNECT, GTK_RESPONSE_ACCEPT, NULL); + d = aui_service_dialog_new(_("Choose VNC server"), NULL, GTK_STOCK_CANCEL, GTK_RESPONSE_CANCEL, GTK_STOCK_CONNECT, GTK_RESPONSE_ACCEPT, NULL); aui_service_dialog_set_browse_service_types(AUI_SERVICE_DIALOG(d), "_rfb._tcp", NULL); } else { - d = aui_service_dialog_new("Choose SSH server", NULL, GTK_STOCK_CANCEL, GTK_RESPONSE_CANCEL, GTK_STOCK_CONNECT, GTK_RESPONSE_ACCEPT, NULL); + d = aui_service_dialog_new(_("Choose SSH server"), NULL, GTK_STOCK_CANCEL, GTK_RESPONSE_CANCEL, GTK_STOCK_CONNECT, GTK_RESPONSE_ACCEPT, NULL); aui_service_dialog_set_browse_service_types(AUI_SERVICE_DIALOG(d), "_ssh._tcp", NULL); } - + aui_service_dialog_set_resolve_service(AUI_SERVICE_DIALOG(d), TRUE); aui_service_dialog_set_resolve_host_name(AUI_SERVICE_DIALOG(d), !avahi_nss_support()); @@ -67,37 +70,37 @@ int main(int argc, char*argv[]) { t = g_strdup(aui_service_dialog_get_service_type(AUI_SERVICE_DIALOG(d))); n = g_strdup(aui_service_dialog_get_service_name(AUI_SERVICE_DIALOG(d))); - + if (avahi_nss_support()) h = g_strdup(aui_service_dialog_get_host_name(AUI_SERVICE_DIALOG(d))); else h = g_strdup(avahi_address_snprint(a, sizeof(a), aui_service_dialog_get_address(AUI_SERVICE_DIALOG(d)))); - g_print("Connecting to '%s' ...\n", n); - + g_print(_("Connecting to '%s' ...\n"), n); + if (avahi_domain_equal(t, "_rfb._tcp")) { char p[AVAHI_DOMAIN_NAME_MAX+16]; snprintf(p, sizeof(p), "%s:%u", h, aui_service_dialog_get_port(AUI_SERVICE_DIALOG(d))-5900); gtk_widget_destroy(d); - + g_print("xvncviewer %s\n", p); - execlp("xvncviewer", "xvncviewer", p, NULL); - + execlp("xvncviewer", "xvncviewer", p, NULL); + } else { char p[16]; - + snprintf(p, sizeof(p), "%u", aui_service_dialog_get_port(AUI_SERVICE_DIALOG(d))); - + for (txt = aui_service_dialog_get_txt_data(AUI_SERVICE_DIALOG(d)); txt; txt = txt->next) { char *key, *value; - + if (avahi_string_list_get_pair((AvahiStringList*) txt, &key, &value, NULL) < 0) break; - + if (strcmp(key, "u") == 0) u = g_strdup(value); - + avahi_free(key); avahi_free(value); } @@ -110,35 +113,35 @@ int main(int argc, char*argv[]) { if (isatty(0) || !getenv("DISPLAY")) execlp("ssh", "ssh", "-p", p, "-l", u, h, NULL); else { - execlp("x-terminal-emulator", "x-terminal-emulator", "-T", n, "-e", "ssh", "-p", p, "-l", u, h, NULL); + execlp("x-terminal-emulator", "x-terminal-emulator", "-T", n, "-e", "ssh", "-p", p, "-l", u, h, NULL); execlp("gnome-terminal", "gnome-terminal", "-t", n, "-x", "ssh", "-p", p, "-l", u, h, NULL); execlp("xterm", "xterm", "-T", n, "-e", "ssh", "-p", p, "-l", u, h, NULL); } } else { g_print("ssh -p %s %s\n", p, h); - + if (isatty(0) || !getenv("DISPLAY")) - execlp("ssh", "ssh", "-p", p, h, NULL); + execlp("ssh", "ssh", "-p", p, h, NULL); else { - execlp("x-terminal-emulator", "x-terminal-emulator", "-T", n, "-e", "ssh", "-p", p, h, NULL); + execlp("x-terminal-emulator", "x-terminal-emulator", "-T", n, "-e", "ssh", "-p", p, h, NULL); execlp("gnome-terminal", "gnome-terminal", "-t", n, "-x", "ssh", "-p", p, h, NULL); execlp("xterm", "xterm", "-T", n, "-e", "ssh", "-p", p, h, NULL); } } } - g_warning("execlp() failed: %s\n", strerror(errno)); + g_warning(_("execlp() failed: %s\n"), strerror(errno)); g_free(h); g_free(u); g_free(t); g_free(n); - + } else { gtk_widget_destroy(d); - g_print("Canceled.\n"); + g_print(_("Canceled.\n")); } - + return 1; } diff --git a/common/Makefile.am b/common/Makefile.am index e51c02a..ef89f76 100644 --- a/common/Makefile.am +++ b/common/Makefile.am @@ -17,7 +17,7 @@ # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 # USA. -EXTRA_DIST = \ +EXTRA_DIST = gettext.m4 iconv.m4 lib-ld.m4 lib-link.m4 lib-prefix.m4 nls.m4 po.m4 progtest.m4 \ doxygen.m4 \ doxygen.mk \ python.m4 diff --git a/configure.ac b/configure.ac index 8ec3b5d..d5b0272 100644 --- a/configure.ac +++ b/configure.ac @@ -396,6 +396,18 @@ if test "x$have_kqueue" = "xyes" ; then AC_DEFINE([HAVE_KQUEUE], 1, [Enable BSD kqueue() usage]) fi +AM_GNU_GETTEXT([external]) + +IT_PROG_INTLTOOL([0.35.0]) +GETTEXT_PACKAGE=avahi +AC_SUBST([GETTEXT_PACKAGE]) +AC_DEFINE_UNQUOTED([GETTEXT_PACKAGE],["$GETTEXT_PACKAGE"],[Gettext package]) +AM_GLIB_GNU_GETTEXT + +avahilocaledir='${prefix}/${DATADIRNAME}/locale' +AC_SUBST(avahilocaledir) + + # Check for pkg-config manually first, as if its not installed the # PKG_PROG_PKG_CONFIG macro won't be defined. AC_CHECK_PROG(have_pkg_config, pkg-config, yes, no) @@ -1066,6 +1078,7 @@ avahi-compat-howl/Makefile avahi-compat-howl/samples/Makefile avahi-autoipd/Makefile avahi-ui/Makefile +po/Makefile.in ]) AC_OUTPUT diff --git a/po/POTFILES.in b/po/POTFILES.in new file mode 100644 index 0000000..618de8b --- /dev/null +++ b/po/POTFILES.in @@ -0,0 +1,9 @@ +# List of source files which contain translatable strings. +avahi-common/error.c +avahi-ui/avahi-ui.c +avahi-ui/bssh.c +avahi-utils/avahi-browse.c +avahi-utils/avahi-publish.c +avahi-utils/avahi-resolve.c +avahi-utils/avahi-set-host-name.c + diff --git a/po/POTFILES.skip b/po/POTFILES.skip new file mode 100644 index 0000000..8bedfdf --- /dev/null +++ b/po/POTFILES.skip @@ -0,0 +1,3 @@ +avahi-discover-standalone/avahi-discover.glade +tests/c-plus-plus-test-gen.py + diff --git a/po/avahi.pot b/po/avahi.pot new file mode 100644 index 0000000..91405de --- /dev/null +++ b/po/avahi.pot @@ -0,0 +1,350 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER +# This file is distributed under the same license as the PACKAGE package. +# FIRST AUTHOR , YEAR. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: PACKAGE VERSION\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2007-12-17 13:17+0100\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language-Team: LANGUAGE \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=CHARSET\n" +"Content-Transfer-Encoding: 8bit\n" + +#: ../avahi-common/error.c:32 +msgid "OK" +msgstr "" + +#: ../avahi-common/error.c:33 +msgid "Operation failed" +msgstr "" + +#: ../avahi-common/error.c:34 +msgid "Bad state" +msgstr "" + +#: ../avahi-common/error.c:35 +msgid "Invalid host name" +msgstr "" + +#: ../avahi-common/error.c:36 +msgid "Invalid domain name" +msgstr "" + +#: ../avahi-common/error.c:37 +msgid "No suitable network protocol available" +msgstr "" + +#: ../avahi-common/error.c:38 +msgid "Invalid DNS TTL" +msgstr "" + +#: ../avahi-common/error.c:39 +msgid "Resource record key is pattern" +msgstr "" + +#: ../avahi-common/error.c:40 +msgid "Local name collision" +msgstr "" + +#: ../avahi-common/error.c:41 +msgid "Invalid record" +msgstr "" + +#: ../avahi-common/error.c:43 +msgid "Invalid service name" +msgstr "" + +#: ../avahi-common/error.c:44 +msgid "Invalid service type" +msgstr "" + +#: ../avahi-common/error.c:45 +msgid "Invalid port number" +msgstr "" + +#: ../avahi-common/error.c:46 +msgid "Invalid record key" +msgstr "" + +#: ../avahi-common/error.c:47 +msgid "Invalid address" +msgstr "" + +#: ../avahi-common/error.c:48 +msgid "Timeout reached" +msgstr "" + +#: ../avahi-common/error.c:49 +msgid "Too many clients" +msgstr "" + +#: ../avahi-common/error.c:50 +msgid "Too many objects" +msgstr "" + +#: ../avahi-common/error.c:51 +msgid "Too many entries" +msgstr "" + +#: ../avahi-common/error.c:52 +msgid "OS Error" +msgstr "" + +#: ../avahi-common/error.c:54 +msgid "Access denied" +msgstr "" + +#: ../avahi-common/error.c:55 +msgid "Invalid operation" +msgstr "" + +#: ../avahi-common/error.c:56 +msgid "An unexpected D-Bus error occured" +msgstr "" + +#: ../avahi-common/error.c:57 +msgid "Daemon connection failed" +msgstr "" + +#: ../avahi-common/error.c:58 +msgid "Memory exhausted" +msgstr "" + +#: ../avahi-common/error.c:59 +msgid "The object passed in was not valid" +msgstr "" + +#: ../avahi-common/error.c:60 +msgid "Daemon not running" +msgstr "" + +#: ../avahi-common/error.c:61 +msgid "Invalid interface index" +msgstr "" + +#: ../avahi-common/error.c:62 +msgid "Invalid protocol specification" +msgstr "" + +#: ../avahi-common/error.c:63 +msgid "Invalid flags" +msgstr "" + +#: ../avahi-common/error.c:65 +msgid "Not found" +msgstr "" + +#: ../avahi-common/error.c:66 +msgid "Invalid configuration" +msgstr "" + +#: ../avahi-common/error.c:67 +msgid "Version mismatch" +msgstr "" + +#: ../avahi-common/error.c:68 +msgid "Invalid service subtype" +msgstr "" + +#: ../avahi-common/error.c:69 +msgid "Invalid packet" +msgstr "" + +#: ../avahi-common/error.c:70 +msgid "Invalid DNS return code" +msgstr "" + +#: ../avahi-common/error.c:71 +msgid "DNS failure: FORMERR" +msgstr "" + +#: ../avahi-common/error.c:72 +msgid "DNS failure: SERVFAIL" +msgstr "" + +#: ../avahi-common/error.c:73 +msgid "DNS failure: NXDOMAIN" +msgstr "" + +#: ../avahi-common/error.c:74 +msgid "DNS failure: NOTIMP" +msgstr "" + +#: ../avahi-common/error.c:76 +msgid "DNS failure: REFUSED" +msgstr "" + +#: ../avahi-common/error.c:77 +msgid "DNS failure: YXDOMAIN" +msgstr "" + +#: ../avahi-common/error.c:78 +msgid "DNS failure: YXRRSET" +msgstr "" + +#: ../avahi-common/error.c:79 +msgid "DNS failure: NXRRSET" +msgstr "" + +#: ../avahi-common/error.c:80 +msgid "DNS failure: NOTAUTH" +msgstr "" + +#: ../avahi-common/error.c:81 +msgid "DNS failure: NOTZONE" +msgstr "" + +#: ../avahi-common/error.c:82 +msgid "Invalid RDATA" +msgstr "" + +#: ../avahi-common/error.c:83 +msgid "Invalid DNS type" +msgstr "" + +#: ../avahi-common/error.c:84 +msgid "Invalid DNS class" +msgstr "" + +#: ../avahi-common/error.c:85 +msgid "Not supported" +msgstr "" + +#: ../avahi-common/error.c:87 +msgid "Not permitted" +msgstr "" + +#: ../avahi-common/error.c:88 +msgid "Invalid argument" +msgstr "" + +#: ../avahi-common/error.c:89 +msgid "Is empty" +msgstr "" + +#: ../avahi-common/error.c:90 +msgid "The requested operation is invalid because redundant" +msgstr "" + +#: ../avahi-common/error.c:96 +msgid "Invalid Error Code" +msgstr "" + +#: ../avahi-ui/avahi-ui.c:326 +#, c-format +msgid "Avahi client failure: %s" +msgstr "" + +#: ../avahi-ui/avahi-ui.c:388 +#, c-format +msgid "Avahi resolver failure: %s" +msgstr "" + +#: ../avahi-ui/avahi-ui.c:518 +#, c-format +msgid "Browsing for service type %s in domain %s failed: %s" +msgstr "" + +#: ../avahi-ui/avahi-ui.c:519 +msgid "n/a" +msgstr "" + +#: ../avahi-ui/avahi-ui.c:649 +#, c-format +msgid "Avahi domain browser failure: %s" +msgstr "" + +#: ../avahi-ui/avahi-ui.c:684 +#, c-format +msgid "Failed to read Avahi domain : %s" +msgstr "" + +#: ../avahi-ui/avahi-ui.c:717 +#, c-format +msgid "Failed to connect to Avahi server: %s" +msgstr "" + +#: ../avahi-ui/avahi-ui.c:735 +msgid "Browsing for services on local network:" +msgstr "" + +#: ../avahi-ui/avahi-ui.c:737 +#, c-format +msgid "Browsing for services in domain %s:" +msgstr "" + +#: ../avahi-ui/avahi-ui.c:773 +#, c-format +msgid "Failed to create browser for %s: %s" +msgstr "" + +#: ../avahi-ui/avahi-ui.c:903 +#, c-format +msgid "Failed to create resolver for %s of type %s in domain %s: %s" +msgstr "" + +#: ../avahi-ui/avahi-ui.c:978 +#, c-format +msgid "Failed to create domain browser: %s" +msgstr "" + +#: ../avahi-ui/avahi-ui.c:989 +msgid "Change domain" +msgstr "" + +#: ../avahi-ui/avahi-ui.c:1021 +msgid "Service Name" +msgstr "" + +#: ../avahi-ui/avahi-ui.c:1029 ../avahi-ui/avahi-ui.c:1160 +msgid "Browsing ..." +msgstr "" + +#: ../avahi-ui/avahi-ui.c:1118 +msgid "Initializing..." +msgstr "" + +#: ../avahi-ui/avahi-ui.c:1164 +msgid "_Domain..." +msgstr "" + +#: ../avahi-ui/bssh.c:49 +msgid "Choose Shell Server" +msgstr "" + +#: ../avahi-ui/bssh.c:51 +msgid "Desktop" +msgstr "" + +#: ../avahi-ui/bssh.c:52 +msgid "Terminal" +msgstr "" + +#: ../avahi-ui/bssh.c:54 +msgid "Choose VNC server" +msgstr "" + +#: ../avahi-ui/bssh.c:57 +msgid "Choose SSH server" +msgstr "" + +#: ../avahi-ui/bssh.c:79 +#, c-format +msgid "Connecting to '%s' ...\n" +msgstr "" + +#: ../avahi-ui/bssh.c:133 +#, c-format +msgid "execlp() failed: %s\n" +msgstr "" + +#: ../avahi-ui/bssh.c:143 +#, c-format +msgid "Canceled.\n" +msgstr "" diff --git a/po/de.po b/po/de.po new file mode 100644 index 0000000..960819b --- /dev/null +++ b/po/de.po @@ -0,0 +1,353 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER +# This file is distributed under the same license as the PACKAGE package. +# FIRST AUTHOR , YEAR. +# +msgid "" +msgstr "" +"Project-Id-Version: Avahi\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2007-12-17 13:17+0100\n" +"PO-Revision-Date: 2007-12-17 13:26+0100\n" +"Last-Translator: \n" +"Language-Team: de\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=utf-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Poedit-Language: de\n" +"X-Poedit-Country: DE\n" + +#: ../avahi-common/error.c:32 +msgid "OK" +msgstr "OK" + +#: ../avahi-common/error.c:33 +msgid "Operation failed" +msgstr "Operation fehlgeschlagen" + +#: ../avahi-common/error.c:34 +msgid "Bad state" +msgstr "Ungültiger Zustand" + +#: ../avahi-common/error.c:35 +msgid "Invalid host name" +msgstr "Ungültiger Maschinenname" + +#: ../avahi-common/error.c:36 +msgid "Invalid domain name" +msgstr "Ungültiger Domänenname" + +#: ../avahi-common/error.c:37 +msgid "No suitable network protocol available" +msgstr "Kein passendes Netzwerkprotokoll verfügbar" + +#: ../avahi-common/error.c:38 +msgid "Invalid DNS TTL" +msgstr "Ungültige DNS TTL" + +#: ../avahi-common/error.c:39 +msgid "Resource record key is pattern" +msgstr "Datensatzschlüssel ist Muster" + +#: ../avahi-common/error.c:40 +msgid "Local name collision" +msgstr "Lokale Namenskollision" + +#: ../avahi-common/error.c:41 +msgid "Invalid record" +msgstr "Ungültiger Datensatz" + +#: ../avahi-common/error.c:43 +msgid "Invalid service name" +msgstr "Ungültiger Dienstename" + +#: ../avahi-common/error.c:44 +msgid "Invalid service type" +msgstr "Ungültiger Dienstetyp" + +#: ../avahi-common/error.c:45 +msgid "Invalid port number" +msgstr "Ungültige Port-Nummer" + +#: ../avahi-common/error.c:46 +msgid "Invalid record key" +msgstr "Ungültiger Datensatzschlüssel" + +#: ../avahi-common/error.c:47 +msgid "Invalid address" +msgstr "Ungültige Adresse" + +#: ../avahi-common/error.c:48 +msgid "Timeout reached" +msgstr "Zeit abgelaufen" + +#: ../avahi-common/error.c:49 +msgid "Too many clients" +msgstr "Zu viele Clients" + +#: ../avahi-common/error.c:50 +msgid "Too many objects" +msgstr "Zu viele Objekte" + +#: ../avahi-common/error.c:51 +msgid "Too many entries" +msgstr "Zu viele Einträge" + +#: ../avahi-common/error.c:52 +msgid "OS Error" +msgstr "Betriebssystemfehler" + +#: ../avahi-common/error.c:54 +msgid "Access denied" +msgstr "Zugriff abgelehnt" + +#: ../avahi-common/error.c:55 +msgid "Invalid operation" +msgstr "Ungültige Operation" + +#: ../avahi-common/error.c:56 +msgid "An unexpected D-Bus error occured" +msgstr "Ein unerwarteter D-Bus-Fehler ist aufgetreten" + +#: ../avahi-common/error.c:57 +msgid "Daemon connection failed" +msgstr "Verbindung zum Daemon fehlgeschlagen" + +#: ../avahi-common/error.c:58 +msgid "Memory exhausted" +msgstr "Ungültiges Argument" + +#: ../avahi-common/error.c:59 +msgid "The object passed in was not valid" +msgstr "Das übergebene Objekt ist nicht gültig" + +#: ../avahi-common/error.c:60 +msgid "Daemon not running" +msgstr "Daemon läuft nicht" + +#: ../avahi-common/error.c:61 +msgid "Invalid interface index" +msgstr "Ungültiger Schnittstellenindex" + +#: ../avahi-common/error.c:62 +msgid "Invalid protocol specification" +msgstr "Ungültige Protokollspezifikation" + +#: ../avahi-common/error.c:63 +msgid "Invalid flags" +msgstr "Ungültige Flags" + +#: ../avahi-common/error.c:65 +msgid "Not found" +msgstr "Nicht gefunden" + +#: ../avahi-common/error.c:66 +msgid "Invalid configuration" +msgstr "Ungültige Konfiguration" + +#: ../avahi-common/error.c:67 +msgid "Version mismatch" +msgstr "Unpassende Version" + +#: ../avahi-common/error.c:68 +msgid "Invalid service subtype" +msgstr "Ungültiger Dienstesubtyp" + +#: ../avahi-common/error.c:69 +msgid "Invalid packet" +msgstr "Ungültiges Paket" + +#: ../avahi-common/error.c:70 +msgid "Invalid DNS return code" +msgstr "Ungültiger DNS Rückgabewert" + +#: ../avahi-common/error.c:71 +msgid "DNS failure: FORMERR" +msgstr "DNS-Fehler: FORMERR" + +#: ../avahi-common/error.c:72 +msgid "DNS failure: SERVFAIL" +msgstr "DNS-Fehler: SERVFAIL" + +#: ../avahi-common/error.c:73 +msgid "DNS failure: NXDOMAIN" +msgstr "" + +#: ../avahi-common/error.c:74 +msgid "DNS failure: NOTIMP" +msgstr "" + +#: ../avahi-common/error.c:76 +msgid "DNS failure: REFUSED" +msgstr "" + +#: ../avahi-common/error.c:77 +msgid "DNS failure: YXDOMAIN" +msgstr "" + +#: ../avahi-common/error.c:78 +msgid "DNS failure: YXRRSET" +msgstr "" + +#: ../avahi-common/error.c:79 +msgid "DNS failure: NXRRSET" +msgstr "" + +#: ../avahi-common/error.c:80 +msgid "DNS failure: NOTAUTH" +msgstr "" + +#: ../avahi-common/error.c:81 +msgid "DNS failure: NOTZONE" +msgstr "" + +#: ../avahi-common/error.c:82 +msgid "Invalid RDATA" +msgstr "" + +#: ../avahi-common/error.c:83 +msgid "Invalid DNS type" +msgstr "" + +#: ../avahi-common/error.c:84 +msgid "Invalid DNS class" +msgstr "" + +#: ../avahi-common/error.c:85 +msgid "Not supported" +msgstr "" + +#: ../avahi-common/error.c:87 +msgid "Not permitted" +msgstr "" + +#: ../avahi-common/error.c:88 +msgid "Invalid argument" +msgstr "Ungültiges Argument" + +#: ../avahi-common/error.c:89 +msgid "Is empty" +msgstr "Leer" + +#: ../avahi-common/error.c:90 +msgid "The requested operation is invalid because redundant" +msgstr "" + +#: ../avahi-common/error.c:96 +msgid "Invalid Error Code" +msgstr "Ungültiger Fehlercode" + +#: ../avahi-ui/avahi-ui.c:326 +#, c-format +msgid "Avahi client failure: %s" +msgstr "" + +#: ../avahi-ui/avahi-ui.c:388 +#, c-format +msgid "Avahi resolver failure: %s" +msgstr "" + +#: ../avahi-ui/avahi-ui.c:518 +#, c-format +msgid "Browsing for service type %s in domain %s failed: %s" +msgstr "" + +#: ../avahi-ui/avahi-ui.c:519 +msgid "n/a" +msgstr "n/a" + +#: ../avahi-ui/avahi-ui.c:649 +#, c-format +msgid "Avahi domain browser failure: %s" +msgstr "" + +#: ../avahi-ui/avahi-ui.c:684 +#, c-format +msgid "Failed to read Avahi domain : %s" +msgstr "" + +#: ../avahi-ui/avahi-ui.c:717 +#, c-format +msgid "Failed to connect to Avahi server: %s" +msgstr "" + +#: ../avahi-ui/avahi-ui.c:735 +msgid "Browsing for services on local network:" +msgstr "Durchsuche lokales Netzwerk nach Diensten:" + +#: ../avahi-ui/avahi-ui.c:737 +#, c-format +msgid "Browsing for services in domain %s:" +msgstr "Durchsuche Domäne %s nach Diensten:" + +#: ../avahi-ui/avahi-ui.c:773 +#, c-format +msgid "Failed to create browser for %s: %s" +msgstr "" + +#: ../avahi-ui/avahi-ui.c:903 +#, c-format +msgid "Failed to create resolver for %s of type %s in domain %s: %s" +msgstr "" + +#: ../avahi-ui/avahi-ui.c:978 +#, c-format +msgid "Failed to create domain browser: %s" +msgstr "" + +#: ../avahi-ui/avahi-ui.c:989 +msgid "Change domain" +msgstr "Domäne Ändern" + +#: ../avahi-ui/avahi-ui.c:1021 +msgid "Service Name" +msgstr "Dienstename" + +#: ../avahi-ui/avahi-ui.c:1029 +#: ../avahi-ui/avahi-ui.c:1160 +msgid "Browsing ..." +msgstr "Durchsuchen..." + +#: ../avahi-ui/avahi-ui.c:1118 +msgid "Initializing..." +msgstr "Initialisieren..." + +#: ../avahi-ui/avahi-ui.c:1164 +msgid "_Domain..." +msgstr "_Domäne..." + +#: ../avahi-ui/bssh.c:49 +msgid "Choose Shell Server" +msgstr "Shell-Dienst Auswählen" + +#: ../avahi-ui/bssh.c:51 +msgid "Desktop" +msgstr "Arbeitsplatz" + +#: ../avahi-ui/bssh.c:52 +msgid "Terminal" +msgstr "Terminal" + +#: ../avahi-ui/bssh.c:54 +msgid "Choose VNC server" +msgstr "VNC-Dienst Auswählen" + +#: ../avahi-ui/bssh.c:57 +msgid "Choose SSH server" +msgstr "SSH-Dienst Auswählen" + +#: ../avahi-ui/bssh.c:79 +#, c-format +msgid "Connecting to '%s' ...\n" +msgstr "Verbinde zu '%s' ...\n" + +#: ../avahi-ui/bssh.c:133 +#, c-format +msgid "execlp() failed: %s\n" +msgstr "execlp() fehlgeschlagen: %s\n" + +#: ../avahi-ui/bssh.c:143 +#, c-format +msgid "Canceled.\n" +msgstr "Abgebrochen.\n" + -- cgit