summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorjoe <joe@61a7d7f5-40b7-0310-9c16-bb0ea8cb1845>2005-08-19 09:24:20 +0000
committerjoe <joe@61a7d7f5-40b7-0310-9c16-bb0ea8cb1845>2005-08-19 09:24:20 +0000
commitef3565de9526bf9b23097b820a21d9893c87861a (patch)
tree81add0fe7d10d31265a5e397735d6b2ee9ce3dc7
parent03916caccf27c16dfa3f70788f7c796f885c953d (diff)
downloadneon-ef3565de9526bf9b23097b820a21d9893c87861a.tar.gz
Implement support for internationalization of error message:
* src/Makefile.in (NEON_BASEOBJS): Build ne_i18n.o. * src/ne_i18n.c: Include config.h, ne_i18n.h. (ne_i18n_init): Renamed from neon_i18n_init. * src/ne_i18n.h: Remove library-private definition of '_' and 'N_' macros. * src/ne_internal.h: New header; add definitions of _ and N_. * src/*.c: Update all sources to include ne_internal.h instead of ne_i18n.h. * po/: New directory. Add message catalog template and translated message catalogs extracted from sitecopy. * macros/neon-test.m4: Check for setlocale and locale.h. * test/common/tests.c: Include locale.h, ne_i18n.h. (main): Call setlocale and ne_i18n_init. * test/run.sh: By default disable i18n to allow checks for English error messages to succeed. * .release.sh: Compile the gmo files here. * macros/neon.m4 (NEON_I18N): Add macro. * configure.in: Use NEON_I18N. Define ALL_LINGUAS. git-svn-id: http://svn.webdav.org/repos/projects/neon/trunk@680 61a7d7f5-40b7-0310-9c16-bb0ea8cb1845
-rwxr-xr-x.release.sh12
-rw-r--r--Makefile.in35
-rw-r--r--configure.in7
-rw-r--r--macros/neon-test.m46
-rw-r--r--macros/neon.m430
-rw-r--r--neon-config.in6
-rw-r--r--po/cs.po350
-rw-r--r--po/de.po336
-rw-r--r--po/fr.po343
-rw-r--r--po/it.po332
-rw-r--r--po/ja.po337
-rw-r--r--po/neon.pot323
-rw-r--r--po/nn.po343
-rw-r--r--po/ru.po331
-rw-r--r--po/tr.po340
-rw-r--r--src/Makefile.in14
-rw-r--r--src/ne_207.c2
-rw-r--r--src/ne_auth.c2
-rw-r--r--src/ne_basic.c2
-rw-r--r--src/ne_compress.c2
-rw-r--r--src/ne_gnutls.c2
-rw-r--r--src/ne_i18n.c24
-rw-r--r--src/ne_i18n.h27
-rw-r--r--src/ne_internal.h39
-rw-r--r--src/ne_locks.c2
-rw-r--r--src/ne_openssl.c2
-rw-r--r--src/ne_props.c2
-rw-r--r--src/ne_redirect.c2
-rw-r--r--src/ne_request.c2
-rw-r--r--src/ne_session.c2
-rw-r--r--src/ne_socket.c2
-rw-r--r--src/ne_xml.c2
-rw-r--r--src/ne_xmlreq.c2
-rw-r--r--test/common/tests.c12
-rw-r--r--test/run.sh3
35 files changed, 3222 insertions, 56 deletions
diff --git a/.release.sh b/.release.sh
index 549b76f..7e79f23 100755
--- a/.release.sh
+++ b/.release.sh
@@ -13,7 +13,8 @@ out=$f
sed -e "s/@VERSION@/$version/g" \
-e "s/@MAJOR@/$major/g" \
-e "s/@MINOR@/$minor/g" \
- -e "s/@RELEASE@/$release/g" < $in > $out
+ -e "s/@RELEASE@/$release/g" \
+ -e "s,@top_srcdir@,`pwd`,g" < $in > $out
done
echo $1 > .version
@@ -22,8 +23,13 @@ echo $1 > .version
date +"%e %B %Y" | tr -d '\n' > doc/date.xml
echo -n $1 > doc/version.xml
+ALL_LINGUAS=`echo po/*.po | sed 's,po/,,g;s,\.po,,g'`
+
# Try to create a valid Makefile
tmp=`mktemp /tmp/neon-XXXXXX`
-sed -e "s/@SET_MAKE@//g" -e "s|@SHELL@|/bin/sh|g" < Makefile.in > $tmp
-make -f $tmp docs
+sed -e 's,@SET_MAKE@,,;s,@SHELL@,/bin/sh,' \
+ -e "s,@top_srcdir@,`pwd`," \
+ -e "s,@ALL_LINGUAS@,${ALL_LINGUAS}," \
+ < Makefile.in > $tmp
+make -f $tmp docs compile-gmo
rm -f $tmp
diff --git a/Makefile.in b/Makefile.in
index dd82e6a..4d75a3f 100644
--- a/Makefile.in
+++ b/Makefile.in
@@ -25,6 +25,7 @@ docdir = $(datadir)/doc/neon-@NEON_VERSION@
includedir = @includedir@
neonincludes = $(includedir)/neon
pkgconfigdir = $(libdir)/pkgconfig
+localedir = $(datadir)/locale
top_srcdir = @top_srcdir@
top_builddir = .
@@ -43,9 +44,16 @@ INSTALL = @INSTALL@
transform = @program_transform_name@
LIBTOOL = @LIBTOOL@
-
XMLTO = xmlto
GCOV = gcov
+XGETTEXT_OPTS = --keyword=_ --keyword=N_ --msgid-bugs-address=neon@webdav.org \
+ --default-domain=neon
+POTFILE = $(top_srcdir)/po/neon.pot
+XGETTEXT = xgettext
+MSGFMT = msgfmt
+MSGMERGE = msgmerge
+
+LINGUAS = @ALL_LINGUAS@
# The headers to distribute - making up the public interface of neon
DIST_HEADERS = ne_request.h ne_session.h ne_utils.h ne_uri.h ne_socket.h \
@@ -137,7 +145,7 @@ install-memleak:
@echo "ERROR: purposes only; this copy of neon must not be installed."
@false
-install-yes: install-lib install-headers install-config install-docs
+install-yes: install-lib install-headers install-config install-docs install-nls
# libtool does all the necessary magic here
install-lib: subdirs
@@ -164,6 +172,29 @@ install-config: neon-config neon.pc
install-tests: install-lib
@cd test && make install
+install-nls: install-nls-@NE_FLAG_I18N@
+
+install-nls-no:
+ @echo NLS not enabled.
+
+install-nls-yes:
+ @for f in $(LINGUAS); do \
+ $(INSTALL) -d $(DESTDIR)$(localedir)/$$f/LC_MESSAGES; \
+ $(INSTALL_DATA) po/$$f.gmo $(DESTDIR)$(localedir)/$$f/LC_MESSAGES/neon.mo; \
+ done
+
ChangeLog:
svn log > $@
+update-po:
+ @xgettext $(XGETTEXT_OPTS) $(top_srcdir)/src/ne*.c -o $(POTFILE)
+ @for f in $(LINGUAS); do \
+ echo "> Updating \"$$f\" catalog:"; \
+ $(MSGMERGE) --update $(top_srcdir)/po/$$f.po $(POTFILE); \
+ done
+
+compile-gmo:
+ @for f in $(LINGUAS); do \
+ echo "> Compiling \"$$f\" catalog:"; \
+ $(MSGFMT) --statistics -c -o po/$$f.gmo $(top_srcdir)/po/$$f.po; \
+ done
diff --git a/configure.in b/configure.in
index 0e9fb3b..aa1c953 100644
--- a/configure.in
+++ b/configure.in
@@ -78,6 +78,9 @@ LIBNEON_SOURCE_CHECKS
NEON_LIBTOOL_BUILD
# Find an XML parser
NEON_XML_PARSER
+# Internationalization support.
+NEON_I18N()
+
# Extra checks for debugging, compiler warnings
NEON_DEBUG
# Leave till last to prevent CFLAGS affecting checks.
@@ -130,6 +133,10 @@ fi
AC_SUBST(TEST_LDFLAGS)
+# Bundled language catalogs
+ALL_LINGUAS="cs de fr it ja nn ru tr"
+AC_SUBST(ALL_LINGUAS)
+
AC_CONFIG_FILES([neon-config], [chmod +x neon-config])
AC_CONFIG_FILES([Makefile src/Makefile test/Makefile neon.pc])
diff --git a/macros/neon-test.m4 b/macros/neon-test.m4
index aec38dd..d76e332 100644
--- a/macros/neon-test.m4
+++ b/macros/neon-test.m4
@@ -1,4 +1,4 @@
-# Copyright (C) 2001-2004 Joe Orton <joe@manyfish.co.uk> -*- autoconf -*-
+# Copyright (C) 2001-2005 Joe Orton <joe@manyfish.co.uk> -*- autoconf -*-
#
# This file is free software; you may copy and/or distribute it with
# or without modifications, as long as this notice is preserved.
@@ -29,9 +29,9 @@ dnl CPPFLAGS which make "gcc -Werror" fail in NEON_FORMAT; suggest
dnl this macro is used first.
AC_BEFORE([$0], [NEON_XML_PARSER])
-AC_CHECK_HEADERS(sys/time.h stdint.h)
+AC_CHECK_HEADERS(sys/time.h stdint.h locale.h)
-AC_CHECK_FUNCS(pipe isatty usleep shutdown)
+AC_CHECK_FUNCS(pipe isatty usleep shutdown setlocale)
AC_REQUIRE([NE_FIND_AR])
diff --git a/macros/neon.m4 b/macros/neon.m4
index 314d07f..6c90f25 100644
--- a/macros/neon.m4
+++ b/macros/neon.m4
@@ -218,7 +218,7 @@ else
fi
])
-dnl enable support for feature $1 with define $2, message $2
+dnl enable support for feature $1 with define NE_HAVE_$1, message $2
AC_DEFUN([NE_ENABLE_SUPPORT], [
NE_FLAG_$1=yes
AC_SUBST(NE_FLAG_$1)
@@ -230,7 +230,7 @@ m4_if([$2], [],
AC_MSG_NOTICE([$2])])
])
-dnl Disable support for feature $1 with define $1, message $3
+dnl Disable support for feature $1, giving message $2
AC_DEFUN([NE_DISABLE_SUPPORT], [
NE_FLAG_$1=no
AC_SUBST(NE_FLAG_$1)
@@ -559,7 +559,7 @@ AC_REQUIRE([AC_C_BIGENDIAN])
dnl Is strerror_r present; if so, which variant
AC_REQUIRE([AC_FUNC_STRERROR_R])
-AC_CHECK_HEADERS([sys/time.h limits.h sys/select.h arpa/inet.h \
+AC_CHECK_HEADERS([sys/time.h limits.h sys/select.h arpa/inet.h libintl.h \
signal.h sys/socket.h netinet/in.h netinet/tcp.h netdb.h sys/poll.h],,,
[AC_INCLUDES_DEFAULT
/* netinet/tcp.h requires netinet/in.h on some platforms. */
@@ -1037,3 +1037,27 @@ yes|no) AC_MSG_ERROR([--with-libs must be passed a directory argument]) ;;
LDFLAGS="${ne_add_LDFLAGS} $LDFLAGS"
PATH=${ne_add_PATH}$PATH ;;
esac])])
+
+AC_DEFUN([NEON_I18N], [
+
+AC_ARG_ENABLE(nls,
+ AS_HELP_STRING(--disable-nls, [disable internationalization support]),,,
+ [enable_nls=yes])
+
+if test "x${enable_nls}${ac_cv_header_libintl_h}" = "xyesyes"; then
+ # presume that dgettext() is available if bindtextdomain() is...
+ # checking for dgettext() itself is awkward because gcc has a
+ # builtin of that function, which confuses AC_CHECK_FUNCS et al.
+ NE_SEARCH_LIBS(bindtextdomain, intl,,[enable_nls=no])
+fi
+
+if test "$enable_nls" = "no"; then
+ NE_DISABLE_SUPPORT(I18N, [Internationalization support not enabled])
+else
+ NE_ENABLE_SUPPORT(I18N, [Internationalization support enabled])
+ eval localedir="${datadir}/locale"
+ AC_DEFINE_UNQUOTED([LOCALEDIR], "$localedir",
+ [Define to be location of localedir])
+fi
+
+])
diff --git a/neon-config.in b/neon-config.in
index c13f080..83ace56 100644
--- a/neon-config.in
+++ b/neon-config.in
@@ -7,6 +7,9 @@ exec_prefix=@exec_prefix@
includedir=@includedir@
libdir=@libdir@
+features="dav [@NE_FLAG_DAV@], ssl [@NE_FLAG_SSL@], zlib [@NE_FLAG_ZLIB@], \
+ipv6 [@NE_FLAG_IPV6@], lfs [@NE_FLAG_LFS@], i18n [@NE_FLAG_I18N@]"
+
usage()
{
cat <<EOF
@@ -21,7 +24,7 @@ Known values for OPTION are:
--help display this help and exit
--version output version information
--support FEATURE exit with success if feature is supported
- Known features: dav [@NE_FLAG_DAV@], ssl [@NE_FLAG_SSL@], zlib [@NE_FLAG_ZLIB@], ipv6 [@NE_FLAG_IPV6@], lfs [@NE_FLAG_LFS@]
+ Known features: $features
EOF
@@ -91,6 +94,7 @@ while test $# -gt 0; do
ipv6|IPV6) support @NE_FLAG_IPV6@ ;;
dav|DAV) support @NE_FLAG_DAV@ ;;
lfs|LFS) support @NE_FLAG_LFS@ ;;
+ i18n|I18N) support @NE_FLAG_I18N@ ;;
*) support no ;;
esac
;;
diff --git a/po/cs.po b/po/cs.po
new file mode 100644
index 0000000..b83c62c
--- /dev/null
+++ b/po/cs.po
@@ -0,0 +1,350 @@
+# The czech translation for sitecopy
+# Copyright (C) 2000 Free Software Foundation, Inc.
+# Petr Prazak <prazak@grisoft.cz>, 2000-2002.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: sitecopy 0.11.4\n"
+"Report-Msgid-Bugs-To: neon@webdav.org\n"
+"POT-Creation-Date: 2005-08-14 22:46+0100\n"
+"PO-Revision-Date: 2002-04-09 11:12+0100\n"
+"Last-Translator: Petr Prazak <prazak@grisoft.cz>\n"
+"Language-Team: cz\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=iso-8859-2\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: src/ne_207.c:188
+#, c-format
+msgid ""
+"Invalid HTTP status line in status element at line %d of response:\n"
+"Status line was: %s"
+msgstr ""
+"Neplatná øádka HTTP stavu ve stavovém prvku na øádku %d odpovìdi:\n"
+"Stavová øádka byla: %s"
+
+#: src/ne_auth.c:124
+msgid "Server was not authenticated correctly."
+msgstr ""
+
+#: src/ne_auth.c:128
+msgid "Proxy server was not authenticated correctly."
+msgstr ""
+
+#: src/ne_auth.c:431
+#, fuzzy, c-format
+msgid "GSSAPI authentication error (%s)"
+msgstr "Je vy¾adována autentizace na %s `%s':\n"
+
+# src/console_fe.c:992
+#: src/ne_basic.c:86
+#, fuzzy, c-format
+msgid "Could not determine file size: %s"
+msgstr "Nelze zjistit dílku souboru: %s"
+
+#: src/ne_basic.c:132
+msgid "Response did not include requested range"
+msgstr ""
+
+#: src/ne_basic.c:176
+#, fuzzy
+msgid "Range is not satisfiable"
+msgstr "Rozsah není uspokojivý."
+
+#: src/ne_basic.c:181
+#, fuzzy
+msgid "Resource does not support ranged GETs."
+msgstr "Server nedovoluje èásteèné pøíkazy GET."
+
+#: src/ne_compress.c:173
+#, fuzzy, c-format
+msgid "%s: %s"
+msgstr "%s: Chyba: %s\n"
+
+#: src/ne_compress.c:184
+#, c-format
+msgid "%s: %s (code %d)"
+msgstr ""
+
+# src/console_fe.c:992
+#: src/ne_compress.c:232
+#, fuzzy
+msgid "Could not inflate data"
+msgstr "Nelze otevøít soubor: "
+
+# src/console_fe.c:992
+#: src/ne_compress.c:293
+#, fuzzy
+msgid "Could not initialize zlib"
+msgstr "Nelze otevøít soubor: "
+
+#: src/ne_gnutls.c:434 src/ne_openssl.c:386
+msgid "Server certificate was missing commonName attribute in subject name"
+msgstr ""
+
+# src/console_fe.c:992
+#: src/ne_gnutls.c:471 src/ne_openssl.c:581
+#, fuzzy, c-format
+msgid "SSL negotiation failed: %s"
+msgstr "Nelze zapsat do souboru: %s"
+
+#: src/ne_gnutls.c:480
+msgid "Server did not send certificate chain"
+msgstr ""
+
+#: src/ne_locks.c:591
+msgid "LOCK response missing Lock-Token header"
+msgstr ""
+
+#: src/ne_locks.c:744
+msgid "No Lock-Token header given"
+msgstr ""
+
+#: src/ne_locks.c:772
+#, c-format
+msgid "Response missing activelock for %s"
+msgstr ""
+
+#: src/ne_locks.c:816
+#, c-format
+msgid "No activelock for <%s> returned in LOCK refresh response"
+msgstr ""
+
+#: src/ne_openssl.c:169
+msgid "certificate is not yet valid"
+msgstr ""
+
+#: src/ne_openssl.c:170
+msgid "certificate has expired"
+msgstr ""
+
+#: src/ne_openssl.c:171
+msgid "certificate issued for a different hostname"
+msgstr ""
+
+#: src/ne_openssl.c:172
+msgid "issuer is not trusted"
+msgstr ""
+
+#: src/ne_openssl.c:177
+msgid "Server certificate verification failed: "
+msgstr ""
+
+#: src/ne_openssl.c:195
+msgid "[invalid date]"
+msgstr ""
+
+#: src/ne_openssl.c:418
+#, c-format
+msgid "Certificate verification error: %s"
+msgstr ""
+
+#: src/ne_openssl.c:600
+msgid "SSL server did not present certificate"
+msgstr ""
+
+#: src/ne_openssl.c:609
+msgid "Server certificate changed: connection intercepted?"
+msgstr ""
+
+#: src/ne_props.c:372 src/ne_props.c:412
+#, fuzzy
+msgid "Response exceeds maximum property count"
+msgstr "Odpovìï pøekrocila maximální poøet polo¾ek v hlavicce."
+
+#: src/ne_redirect.c:92
+#, fuzzy
+msgid "Could not parse redirect location."
+msgstr "Nelze zpracovat stavový øádek odpovìdi."
+
+#: src/ne_request.c:224
+#, c-format
+msgid "%s: connection was closed by proxy server."
+msgstr "%s: proxy server ukonèil spojení."
+
+#: src/ne_request.c:227
+#, c-format
+msgid "%s: connection was closed by server."
+msgstr "%s: server ukonèil spojení."
+
+#: src/ne_request.c:232
+#, c-format
+msgid "%s: connection timed out."
+msgstr "%s: spojení vypr¹elo."
+
+#: src/ne_request.c:380
+msgid "offset invalid"
+msgstr ""
+
+# src/console_fe.c:992
+#: src/ne_request.c:383
+#, fuzzy
+msgid "Could not seek to offset %"
+msgstr "Nelze zapsat do souboru: %s"
+
+# src/console_fe.c:992
+#: src/ne_request.c:384
+#, fuzzy, c-format
+msgid " of request body file: %s"
+msgstr "Nelze zapsat do souboru: %s"
+
+#: src/ne_request.c:428
+msgid "Could not send request body"
+msgstr "Nelze odeslat tìlo po¾adavku"
+
+#: src/ne_request.c:772
+msgid "Could not read chunk size"
+msgstr "Nelze naèíst velikost bloku"
+
+#: src/ne_request.c:779
+msgid "Could not parse chunk size"
+msgstr "Nelze zpracovat velikost bloku"
+
+#: src/ne_request.c:816
+msgid "Could not read response body"
+msgstr "Nelze naèíst tìlo odpovìdi"
+
+#: src/ne_request.c:832
+#, fuzzy
+msgid "Could not read chunk delimiter"
+msgstr "Nelze naèíst velikost bloku"
+
+#: src/ne_request.c:835
+msgid "Chunk delimiter was invalid"
+msgstr ""
+
+#: src/ne_request.c:941
+msgid "Could not read status line"
+msgstr "Nelze pøeèíst stavový øádek"
+
+#: src/ne_request.c:952
+msgid "Could not parse response status line."
+msgstr "Nelze zpracovat stavový øádek odpovìdi."
+
+#: src/ne_request.c:963
+#, fuzzy
+msgid "Could not read interim response headers"
+msgstr "Nelze naèíst tìlo odpovìdi"
+
+#: src/ne_request.c:997
+msgid "Could not send request"
+msgstr "Nelze poslat po¾adavek"
+
+#: src/ne_request.c:1045 src/ne_request.c:1063 src/ne_request.c:1073
+msgid "Error reading response headers"
+msgstr "Chyba pøi ètení hlavièek odpovìdi"
+
+#: src/ne_request.c:1091
+msgid "Response header too long"
+msgstr "Hlavièka odpovìdi je pøíli¹ dlouhá"
+
+#: src/ne_request.c:1173
+msgid "Response exceeded maximum number of header fields."
+msgstr "Odpovìï pøekrocila maximální poøet polo¾ek v hlavicce."
+
+# src/console_fe.c:956
+#: src/ne_request.c:1190
+#, fuzzy, c-format
+msgid "Could not resolve hostname `%s': %s"
+msgstr "%s: Chyba: Nelze najít adresu vzdáleného poèítaèe (%s).\n"
+
+#: src/ne_request.c:1300
+msgid "Invalid Content-Length in response"
+msgstr ""
+
+# src/console_fe.c:992
+#: src/ne_request.c:1362
+#, c-format
+msgid "Could not write to file: %s"
+msgstr "Nelze zapsat do souboru: %s"
+
+#: src/ne_request.c:1435
+msgid "Could not create SSL connection through proxy server"
+msgstr "Nelze navázat SSL spojení pøes proxy server."
+
+#: src/ne_request.c:1481
+#, fuzzy
+msgid "Could not create socket"
+msgstr "Nelze navázat SSL spojení"
+
+# src/console_fe.c:961
+#: src/ne_request.c:1526
+msgid "Could not connect to server"
+msgstr "Nelze se pøipojit k serveru"
+
+# src/console_fe.c:961
+#: src/ne_request.c:1529
+msgid "Could not connect to proxy server"
+msgstr "Nelze se pøipojit k proxy serveru"
+
+#: src/ne_socket.c:490 src/ne_socket.c:538 src/ne_socket.c:641
+#, fuzzy
+msgid "Connection closed"
+msgstr "Server ukonèil spojení."
+
+#: src/ne_socket.c:548
+#, fuzzy
+msgid "Secure connection truncated"
+msgstr "Spojení vypr¹elo."
+
+#: src/ne_socket.c:560 src/ne_socket.c:645 src/ne_socket.c:650
+#, fuzzy, c-format
+msgid "SSL error: %s"
+msgstr "%s: Chyba: %s\n"
+
+#: src/ne_socket.c:563
+#, c-format
+msgid "SSL error code %d/%d/%lu"
+msgstr ""
+
+#: src/ne_socket.c:745
+msgid "Line too long"
+msgstr "Øádek je pøíli¹ dlouhý"
+
+#: src/ne_socket.c:885 src/ne_socket.c:891
+msgid "Host not found"
+msgstr "Poèítaè nenalezen"
+
+#: src/ne_socket.c:1001
+msgid "Socket descriptor number exceeds FD_SETSIZE"
+msgstr ""
+
+#: src/ne_socket.c:1161
+msgid "SSL disabled due to lack of entropy"
+msgstr ""
+
+#: src/ne_socket.c:1168
+msgid "SSL disabled due to library version mismatch"
+msgstr ""
+
+#: src/ne_socket.c:1174
+#, fuzzy
+msgid "Could not create SSL structure"
+msgstr "Nelze navázat SSL spojení"
+
+# src/console_fe.c:821
+#: src/ne_xml.c:280
+#, fuzzy, c-format
+msgid "XML parse error at line %d: invalid element name"
+msgstr "Chyba zpracování XML na øádku %d: %s."
+
+# src/common.c:87
+#: src/ne_xml.c:436
+#, fuzzy
+msgid "Unknown error"
+msgstr "Neznámá systémová chyba"
+
+#: src/ne_xml.c:521
+msgid "Invalid Byte Order Mark"
+msgstr ""
+
+# src/console_fe.c:821
+#: src/ne_xml.c:609
+#, c-format
+msgid "XML parse error at line %d: %s."
+msgstr "Chyba zpracování XML na øádku %d: %s."
+
+#: src/ne_xmlreq.c:31
+#, fuzzy, c-format
+msgid "Could not parse response: %s"
+msgstr "Nelze naèíst tìlo odpovìdi"
diff --git a/po/de.po b/po/de.po
new file mode 100644
index 0000000..0073aab
--- /dev/null
+++ b/po/de.po
@@ -0,0 +1,336 @@
+# The German translation for sitecopy.
+# Thomas Schultz <tststs@gmx.de>, 2000.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: sitecopy 0.11.3\n"
+"Report-Msgid-Bugs-To: neon@webdav.org\n"
+"POT-Creation-Date: 2005-08-14 22:46+0100\n"
+"PO-Revision-Date: 2002-01-13 13:37+0100\n"
+"Last-Translator: Thomas Schultz <tststs@gmx.de>\n"
+"Language-Team: de\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=iso-8859-1\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: src/ne_207.c:188
+#, c-format
+msgid ""
+"Invalid HTTP status line in status element at line %d of response:\n"
+"Status line was: %s"
+msgstr ""
+"Ungültige HTTP Status-Zeile im Status-Element in Zeile %d der Antwort:\n"
+"Status-Zeile war: %s"
+
+#: src/ne_auth.c:124
+msgid "Server was not authenticated correctly."
+msgstr ""
+
+#: src/ne_auth.c:128
+msgid "Proxy server was not authenticated correctly."
+msgstr ""
+
+#: src/ne_auth.c:431
+#, fuzzy, c-format
+msgid "GSSAPI authentication error (%s)"
+msgstr "Anmeldung wird benötigt auf %s `%s':\n"
+
+#: src/ne_basic.c:86
+#, fuzzy, c-format
+msgid "Could not determine file size: %s"
+msgstr "Konnte Länge der Datei nicht herausfinden: %s"
+
+#: src/ne_basic.c:132
+msgid "Response did not include requested range"
+msgstr ""
+
+#: src/ne_basic.c:176
+#, fuzzy
+msgid "Range is not satisfiable"
+msgstr "Range is not satisfiable."
+
+#: src/ne_basic.c:181
+#, fuzzy
+msgid "Resource does not support ranged GETs."
+msgstr "Server ermöglicht keine teilweisen GETs."
+
+#: src/ne_compress.c:173
+#, fuzzy, c-format
+msgid "%s: %s"
+msgstr "%s: %s\n"
+
+#: src/ne_compress.c:184
+#, c-format
+msgid "%s: %s (code %d)"
+msgstr ""
+
+#: src/ne_compress.c:232
+#, fuzzy
+msgid "Could not inflate data"
+msgstr "Konnte Datei nicht öffnen: "
+
+#: src/ne_compress.c:293
+#, fuzzy
+msgid "Could not initialize zlib"
+msgstr "Konnte Datei nicht öffnen: "
+
+#: src/ne_gnutls.c:434 src/ne_openssl.c:386
+msgid "Server certificate was missing commonName attribute in subject name"
+msgstr ""
+
+#: src/ne_gnutls.c:471 src/ne_openssl.c:581
+#, fuzzy, c-format
+msgid "SSL negotiation failed: %s"
+msgstr "Konnte nicht in diese Datei schreiben: %s"
+
+#: src/ne_gnutls.c:480
+msgid "Server did not send certificate chain"
+msgstr ""
+
+#: src/ne_locks.c:591
+msgid "LOCK response missing Lock-Token header"
+msgstr ""
+
+#: src/ne_locks.c:744
+msgid "No Lock-Token header given"
+msgstr ""
+
+#: src/ne_locks.c:772
+#, c-format
+msgid "Response missing activelock for %s"
+msgstr ""
+
+#: src/ne_locks.c:816
+#, c-format
+msgid "No activelock for <%s> returned in LOCK refresh response"
+msgstr ""
+
+#: src/ne_openssl.c:169
+msgid "certificate is not yet valid"
+msgstr ""
+
+#: src/ne_openssl.c:170
+msgid "certificate has expired"
+msgstr ""
+
+#: src/ne_openssl.c:171
+msgid "certificate issued for a different hostname"
+msgstr ""
+
+#: src/ne_openssl.c:172
+msgid "issuer is not trusted"
+msgstr ""
+
+#: src/ne_openssl.c:177
+msgid "Server certificate verification failed: "
+msgstr ""
+
+#: src/ne_openssl.c:195
+msgid "[invalid date]"
+msgstr ""
+
+#: src/ne_openssl.c:418
+#, c-format
+msgid "Certificate verification error: %s"
+msgstr ""
+
+#: src/ne_openssl.c:600
+msgid "SSL server did not present certificate"
+msgstr ""
+
+#: src/ne_openssl.c:609
+msgid "Server certificate changed: connection intercepted?"
+msgstr ""
+
+#: src/ne_props.c:372 src/ne_props.c:412
+#, fuzzy
+msgid "Response exceeds maximum property count"
+msgstr "Antwort hatte zu viele Header-Felder."
+
+#: src/ne_redirect.c:92
+#, fuzzy
+msgid "Could not parse redirect location."
+msgstr "Konnte Status-Zeile des Servers nicht interpretieren."
+
+#: src/ne_request.c:224
+#, c-format
+msgid "%s: connection was closed by proxy server."
+msgstr "%s: Verbindung vom Proxy-Server geschlossen."
+
+#: src/ne_request.c:227
+#, c-format
+msgid "%s: connection was closed by server."
+msgstr "%s: Verbindung vom Server geschlossen."
+
+#: src/ne_request.c:232
+#, c-format
+msgid "%s: connection timed out."
+msgstr "%s: Verbindung wegen Zeitüberschreitung geschlossen."
+
+#: src/ne_request.c:380
+msgid "offset invalid"
+msgstr ""
+
+#: src/ne_request.c:383
+#, fuzzy
+msgid "Could not seek to offset %"
+msgstr "Konnte nicht in diese Datei schreiben: %s"
+
+#: src/ne_request.c:384
+#, fuzzy, c-format
+msgid " of request body file: %s"
+msgstr "Konnte nicht in diese Datei schreiben: %s"
+
+#: src/ne_request.c:428
+msgid "Could not send request body"
+msgstr "Konnte den Rumpf der Anfrage nicht schicken"
+
+#: src/ne_request.c:772
+msgid "Could not read chunk size"
+msgstr "Lesefehler bei Ermittlung der Blockgröße"
+
+#: src/ne_request.c:779
+msgid "Could not parse chunk size"
+msgstr "Parser-Fehler bei Ermittlung der Blockgröße"
+
+#: src/ne_request.c:816
+msgid "Could not read response body"
+msgstr "Konnte Rumpf der Antwort nicht lesen"
+
+#: src/ne_request.c:832
+#, fuzzy
+msgid "Could not read chunk delimiter"
+msgstr "Lesefehler bei Ermittlung der Blockgröße"
+
+#: src/ne_request.c:835
+msgid "Chunk delimiter was invalid"
+msgstr ""
+
+#: src/ne_request.c:941
+msgid "Could not read status line"
+msgstr "Konnte Status-Zeile des Servers nicht lesen"
+
+#: src/ne_request.c:952
+msgid "Could not parse response status line."
+msgstr "Konnte Status-Zeile des Servers nicht interpretieren."
+
+#: src/ne_request.c:963
+#, fuzzy
+msgid "Could not read interim response headers"
+msgstr "Konnte Rumpf der Antwort nicht lesen"
+
+#: src/ne_request.c:997
+msgid "Could not send request"
+msgstr "Konnte keine Anfrage (request) schicken"
+
+#: src/ne_request.c:1045 src/ne_request.c:1063 src/ne_request.c:1073
+msgid "Error reading response headers"
+msgstr "Fehler beim Lesen der Kopfzeilen (header) der Antwort"
+
+#: src/ne_request.c:1091
+msgid "Response header too long"
+msgstr "Kopfzeilen (header) der Antwort zu lang"
+
+#: src/ne_request.c:1173
+msgid "Response exceeded maximum number of header fields."
+msgstr "Antwort hatte zu viele Header-Felder."
+
+#: src/ne_request.c:1190
+#, fuzzy, c-format
+msgid "Could not resolve hostname `%s': %s"
+msgstr "%s: Fehler: Konnte den Namen des Servers nicht auflösen (%s).\n"
+
+#: src/ne_request.c:1300
+msgid "Invalid Content-Length in response"
+msgstr ""
+
+#: src/ne_request.c:1362
+#, c-format
+msgid "Could not write to file: %s"
+msgstr "Konnte nicht in diese Datei schreiben: %s"
+
+#: src/ne_request.c:1435
+msgid "Could not create SSL connection through proxy server"
+msgstr "Konnte durch den Proxy-Server keine SSL-Verbindung herstellen"
+
+#: src/ne_request.c:1481
+#, fuzzy
+msgid "Could not create socket"
+msgstr "Konnte keine SSL-Sitzung herstellen"
+
+#: src/ne_request.c:1526
+msgid "Could not connect to server"
+msgstr "Verbindungsaufbau zum Server gescheitert."
+
+#: src/ne_request.c:1529
+msgid "Could not connect to proxy server"
+msgstr "Verbindungsaufbau zum Proxy-Server gescheitert."
+
+#: src/ne_socket.c:490 src/ne_socket.c:538 src/ne_socket.c:641
+#, fuzzy
+msgid "Connection closed"
+msgstr "Verbindung vom Server geschlossen"
+
+#: src/ne_socket.c:548
+#, fuzzy
+msgid "Secure connection truncated"
+msgstr "Verbindung wegen Zeitüberschreitung abgebrochen."
+
+#: src/ne_socket.c:560 src/ne_socket.c:645 src/ne_socket.c:650
+#, fuzzy, c-format
+msgid "SSL error: %s"
+msgstr "%s: Fehler: %s\n"
+
+#: src/ne_socket.c:563
+#, c-format
+msgid "SSL error code %d/%d/%lu"
+msgstr ""
+
+#: src/ne_socket.c:745
+msgid "Line too long"
+msgstr "Zeile zu lang"
+
+#: src/ne_socket.c:885 src/ne_socket.c:891
+msgid "Host not found"
+msgstr "Host nicht gefunden"
+
+#: src/ne_socket.c:1001
+msgid "Socket descriptor number exceeds FD_SETSIZE"
+msgstr ""
+
+#: src/ne_socket.c:1161
+msgid "SSL disabled due to lack of entropy"
+msgstr ""
+
+#: src/ne_socket.c:1168
+msgid "SSL disabled due to library version mismatch"
+msgstr ""
+
+#: src/ne_socket.c:1174
+#, fuzzy
+msgid "Could not create SSL structure"
+msgstr "Konnte keine SSL-Sitzung herstellen"
+
+#: src/ne_xml.c:280
+#, fuzzy, c-format
+msgid "XML parse error at line %d: invalid element name"
+msgstr "Fehler beim XML-Parsing in Zeile %d: %s."
+
+#: src/ne_xml.c:436
+#, fuzzy
+msgid "Unknown error"
+msgstr "Unbekannter System-Fehler"
+
+#: src/ne_xml.c:521
+msgid "Invalid Byte Order Mark"
+msgstr ""
+
+#: src/ne_xml.c:609
+#, c-format
+msgid "XML parse error at line %d: %s."
+msgstr "Fehler beim XML-Parsing in Zeile %d: %s."
+
+#: src/ne_xmlreq.c:31
+#, fuzzy, c-format
+msgid "Could not parse response: %s"
+msgstr "Konnte Rumpf der Antwort nicht lesen"
diff --git a/po/fr.po b/po/fr.po
new file mode 100644
index 0000000..b52d3bf
--- /dev/null
+++ b/po/fr.po
@@ -0,0 +1,343 @@
+# SOME DESCRIPTIVE TITLE.
+# Copyright (C) YEAR Free Software Foundation, Inc.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: sitecopy 0.9.3\n"
+"Report-Msgid-Bugs-To: neon@webdav.org\n"
+"POT-Creation-Date: 2005-08-14 22:46+0100\n"
+"PO-Revision-Date: 2000-01-31 00:00+0100\n"
+"Last-Translator: Sylvain Glaize <mokona@puupuu.org>\n"
+"Language-Team: fr\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=ISO-8859-1\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: src/ne_207.c:188
+#, c-format
+msgid ""
+"Invalid HTTP status line in status element at line %d of response:\n"
+"Status line was: %s"
+msgstr ""
+
+#: src/ne_auth.c:124
+msgid "Server was not authenticated correctly."
+msgstr ""
+
+#: src/ne_auth.c:128
+msgid "Proxy server was not authenticated correctly."
+msgstr ""
+
+#: src/ne_auth.c:431
+#, c-format
+msgid "GSSAPI authentication error (%s)"
+msgstr ""
+
+#: src/ne_basic.c:86
+#, fuzzy, c-format
+msgid "Could not determine file size: %s"
+msgstr "%s: erreur: impossible d'ouvrir le fichier de ressources: %s\n"
+
+#: src/ne_basic.c:132
+msgid "Response did not include requested range"
+msgstr ""
+
+#: src/ne_basic.c:176
+msgid "Range is not satisfiable"
+msgstr ""
+
+#: src/ne_basic.c:181
+msgid "Resource does not support ranged GETs."
+msgstr ""
+
+#: src/ne_compress.c:173
+#, fuzzy, c-format
+msgid "%s: %s"
+msgstr ""
+"%s: dans issue_error\n"
+"%s"
+
+#: src/ne_compress.c:184
+#, c-format
+msgid "%s: %s (code %d)"
+msgstr ""
+
+#: src/ne_compress.c:232
+#, fuzzy
+msgid "Could not inflate data"
+msgstr "%s: erreur: impossible d'ouvrir le fichier de ressources: %s\n"
+
+#: src/ne_compress.c:293
+#, fuzzy
+msgid "Could not initialize zlib"
+msgstr "%s: erreur: impossible d'ouvrir le fichier de ressources: %s\n"
+
+#: src/ne_gnutls.c:434 src/ne_openssl.c:386
+msgid "Server certificate was missing commonName attribute in subject name"
+msgstr ""
+
+#: src/ne_gnutls.c:471 src/ne_openssl.c:581
+#, fuzzy, c-format
+msgid "SSL negotiation failed: %s"
+msgstr "%s: erreur: impossible d'ouvrir le fichier de ressources: %s\n"
+
+#: src/ne_gnutls.c:480
+msgid "Server did not send certificate chain"
+msgstr ""
+
+#: src/ne_locks.c:591
+msgid "LOCK response missing Lock-Token header"
+msgstr ""
+
+#: src/ne_locks.c:744
+msgid "No Lock-Token header given"
+msgstr ""
+
+#: src/ne_locks.c:772
+#, c-format
+msgid "Response missing activelock for %s"
+msgstr ""
+
+#: src/ne_locks.c:816
+#, c-format
+msgid "No activelock for <%s> returned in LOCK refresh response"
+msgstr ""
+
+#: src/ne_openssl.c:169
+msgid "certificate is not yet valid"
+msgstr ""
+
+#: src/ne_openssl.c:170
+msgid "certificate has expired"
+msgstr ""
+
+#: src/ne_openssl.c:171
+msgid "certificate issued for a different hostname"
+msgstr ""
+
+#: src/ne_openssl.c:172
+msgid "issuer is not trusted"
+msgstr ""
+
+#: src/ne_openssl.c:177
+msgid "Server certificate verification failed: "
+msgstr ""
+
+#: src/ne_openssl.c:195
+msgid "[invalid date]"
+msgstr ""
+
+#: src/ne_openssl.c:418
+#, c-format
+msgid "Certificate verification error: %s"
+msgstr ""
+
+#: src/ne_openssl.c:600
+msgid "SSL server did not present certificate"
+msgstr ""
+
+#: src/ne_openssl.c:609
+msgid "Server certificate changed: connection intercepted?"
+msgstr ""
+
+#: src/ne_props.c:372 src/ne_props.c:412
+msgid "Response exceeds maximum property count"
+msgstr ""
+
+#: src/ne_redirect.c:92
+#, fuzzy
+msgid "Could not parse redirect location."
+msgstr "%s: erreur: impossible d'ouvrir le fichier de ressources: %s\n"
+
+#: src/ne_request.c:224
+#, c-format
+msgid "%s: connection was closed by proxy server."
+msgstr ""
+
+#: src/ne_request.c:227
+#, c-format
+msgid "%s: connection was closed by server."
+msgstr ""
+
+#: src/ne_request.c:232
+#, c-format
+msgid "%s: connection timed out."
+msgstr ""
+
+#: src/ne_request.c:380
+msgid "offset invalid"
+msgstr ""
+
+#: src/ne_request.c:383
+#, fuzzy
+msgid "Could not seek to offset %"
+msgstr "%s: erreur: impossible d'ouvrir le fichier de ressources: %s\n"
+
+#: src/ne_request.c:384
+#, fuzzy, c-format
+msgid " of request body file: %s"
+msgstr "%s: erreur: impossible d'ouvrir le fichier de ressources: %s\n"
+
+#: src/ne_request.c:428
+msgid "Could not send request body"
+msgstr ""
+
+#: src/ne_request.c:772
+msgid "Could not read chunk size"
+msgstr ""
+
+#: src/ne_request.c:779
+#, fuzzy
+msgid "Could not parse chunk size"
+msgstr "%s: erreur: impossible d'ouvrir le fichier de ressources: %s\n"
+
+#: src/ne_request.c:816
+msgid "Could not read response body"
+msgstr ""
+
+#: src/ne_request.c:832
+#, fuzzy
+msgid "Could not read chunk delimiter"
+msgstr "%s: erreur: impossible d'ouvrir le fichier de ressources: %s\n"
+
+#: src/ne_request.c:835
+msgid "Chunk delimiter was invalid"
+msgstr ""
+
+#: src/ne_request.c:941
+msgid "Could not read status line"
+msgstr ""
+
+#: src/ne_request.c:952
+#, fuzzy
+msgid "Could not parse response status line."
+msgstr "%s: erreur: impossible d'ouvrir le fichier de ressources: %s\n"
+
+#: src/ne_request.c:963
+#, fuzzy
+msgid "Could not read interim response headers"
+msgstr "%s: erreur: impossible d'ouvrir le fichier de ressources: %s\n"
+
+#: src/ne_request.c:997
+msgid "Could not send request"
+msgstr ""
+
+#: src/ne_request.c:1045 src/ne_request.c:1063 src/ne_request.c:1073
+msgid "Error reading response headers"
+msgstr ""
+
+#: src/ne_request.c:1091
+msgid "Response header too long"
+msgstr ""
+
+#: src/ne_request.c:1173
+msgid "Response exceeded maximum number of header fields."
+msgstr ""
+
+#: src/ne_request.c:1190
+#, fuzzy, c-format
+msgid "Could not resolve hostname `%s': %s"
+msgstr "%s: erreur: impossible de trouver le nom de l'hôte distant.\n"
+
+#: src/ne_request.c:1300
+msgid "Invalid Content-Length in response"
+msgstr ""
+
+#: src/ne_request.c:1362
+#, fuzzy, c-format
+msgid "Could not write to file: %s"
+msgstr "%s: erreur: impossible d'ouvrir le fichier de ressources: %s\n"
+
+#: src/ne_request.c:1435
+msgid "Could not create SSL connection through proxy server"
+msgstr ""
+
+#: src/ne_request.c:1481
+#, fuzzy
+msgid "Could not create socket"
+msgstr "%s: erreur: impossible de se connecter à l'hôte distant.\n"
+
+#: src/ne_request.c:1526
+#, fuzzy
+msgid "Could not connect to server"
+msgstr "%s: erreur: impossible de se connecter à l'hôte distant.\n"
+
+#: src/ne_request.c:1529
+#, fuzzy
+msgid "Could not connect to proxy server"
+msgstr "%s: erreur: impossible de se connecter à l'hôte distant.\n"
+
+#: src/ne_socket.c:490 src/ne_socket.c:538 src/ne_socket.c:641
+msgid "Connection closed"
+msgstr ""
+
+#: src/ne_socket.c:548
+msgid "Secure connection truncated"
+msgstr ""
+
+#: src/ne_socket.c:560 src/ne_socket.c:645 src/ne_socket.c:650
+#, fuzzy, c-format
+msgid "SSL error: %s"
+msgstr ""
+"%s: dans issue_error\n"
+"%s"
+
+#: src/ne_socket.c:563
+#, c-format
+msgid "SSL error code %d/%d/%lu"
+msgstr ""
+
+#: src/ne_socket.c:745
+msgid "Line too long"
+msgstr ""
+
+#: src/ne_socket.c:885 src/ne_socket.c:891
+msgid "Host not found"
+msgstr ""
+
+#: src/ne_socket.c:1001
+msgid "Socket descriptor number exceeds FD_SETSIZE"
+msgstr ""
+
+#: src/ne_socket.c:1161
+msgid "SSL disabled due to lack of entropy"
+msgstr ""
+
+#: src/ne_socket.c:1168
+msgid "SSL disabled due to library version mismatch"
+msgstr ""
+
+#: src/ne_socket.c:1174
+#, fuzzy
+msgid "Could not create SSL structure"
+msgstr "%s: erreur: impossible de se connecter à l'hôte distant.\n"
+
+#: src/ne_xml.c:280
+#, fuzzy, c-format
+msgid "XML parse error at line %d: invalid element name"
+msgstr ""
+"%s: erreur dans le fichier de ressources à la ligne %d:\n"
+"%s\n"
+
+#: src/ne_xml.c:436
+#, fuzzy
+msgid "Unknown error"
+msgstr "Erreur système inconnue"
+
+#: src/ne_xml.c:521
+msgid "Invalid Byte Order Mark"
+msgstr ""
+
+#: src/ne_xml.c:609
+#, fuzzy, c-format
+msgid "XML parse error at line %d: %s."
+msgstr ""
+"%s: erreur dans le fichier de ressources à la ligne %d:\n"
+"%s\n"
+
+#: src/ne_xmlreq.c:31
+#, fuzzy, c-format
+msgid "Could not parse response: %s"
+msgstr "%s: erreur: impossible d'ouvrir le fichier de ressources: %s\n"
diff --git a/po/it.po b/po/it.po
new file mode 100644
index 0000000..57cefd3
--- /dev/null
+++ b/po/it.po
@@ -0,0 +1,332 @@
+# Italian translations for sitecopy package.
+# Copyright (C) 2003 Joe Orton
+# This file is distributed under the same license as the sitecopy package.
+# Cristian Rigamonti <cri@linux.it>, 2003, 2004, 2005.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: sitecopy 0.15.0\n"
+"Report-Msgid-Bugs-To: neon@webdav.org\n"
+"POT-Creation-Date: 2005-08-14 22:46+0100\n"
+"PO-Revision-Date: 2005-03-12 22:38+0100\n"
+"Last-Translator: Cristian Rigamonti <cri@linux.it>\n"
+"Language-Team: Italian <tp@lists.linux.it>\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"
+
+#: src/ne_207.c:188
+#, c-format
+msgid ""
+"Invalid HTTP status line in status element at line %d of response:\n"
+"Status line was: %s"
+msgstr ""
+"Linea di stato HTTP non valida nell'elemento di stato alla riga %d della "
+"risposta:\n"
+"La riga di stato era: %s"
+
+#: src/ne_auth.c:124
+msgid "Server was not authenticated correctly."
+msgstr "Il server non si è autenticato correttamente"
+
+#: src/ne_auth.c:128
+msgid "Proxy server was not authenticated correctly."
+msgstr "Il server proxy non si è autenticato correttamente"
+
+#: src/ne_auth.c:431
+#, c-format
+msgid "GSSAPI authentication error (%s)"
+msgstr "Errore di autenticazione GSSAPI (%s)"
+
+#: src/ne_basic.c:86
+#, c-format
+msgid "Could not determine file size: %s"
+msgstr "Impossibile determinare la dimensione del file: %s"
+
+#: src/ne_basic.c:132
+msgid "Response did not include requested range"
+msgstr "La risposta non includeva l'intervallo richiesto"
+
+#: src/ne_basic.c:176
+msgid "Range is not satisfiable"
+msgstr "Impossibile soddisfare il range"
+
+#: src/ne_basic.c:181
+msgid "Resource does not support ranged GETs."
+msgstr "La risorsa non supporta GET con range."
+
+#: src/ne_compress.c:173
+#, c-format
+msgid "%s: %s"
+msgstr "%s: %s"
+
+#: src/ne_compress.c:184
+#, c-format
+msgid "%s: %s (code %d)"
+msgstr "%s: %s (codice %d)"
+
+#: src/ne_compress.c:232
+msgid "Could not inflate data"
+msgstr "Impossibile decomprimere i dati"
+
+#: src/ne_compress.c:293
+msgid "Could not initialize zlib"
+msgstr "Impossibile inizializzare zlib"
+
+#: src/ne_gnutls.c:434 src/ne_openssl.c:386
+msgid "Server certificate was missing commonName attribute in subject name"
+msgstr ""
+"Il certificato del server non contiene l'attributo commonName nel nome del "
+"soggetto"
+
+#: src/ne_gnutls.c:471 src/ne_openssl.c:581
+#, c-format
+msgid "SSL negotiation failed: %s"
+msgstr "Errore di negoziazione SSL: %s"
+
+#: src/ne_gnutls.c:480
+msgid "Server did not send certificate chain"
+msgstr "Il server non ha spedito la catena di certificazione"
+
+#: src/ne_locks.c:591
+msgid "LOCK response missing Lock-Token header"
+msgstr "Header Lock-Token mancante nella risposta LOCK"
+
+#: src/ne_locks.c:744
+msgid "No Lock-Token header given"
+msgstr "Header Lock-Token mancante"
+
+#: src/ne_locks.c:772
+#, c-format
+msgid "Response missing activelock for %s"
+msgstr "Activelock mancante nella risposta per %s"
+
+#: src/ne_locks.c:816
+#, c-format
+msgid "No activelock for <%s> returned in LOCK refresh response"
+msgstr "Nessun activelock per <%s> nella risposta di refresh LOCK"
+
+#: src/ne_openssl.c:169
+msgid "certificate is not yet valid"
+msgstr "il certificato non è ancora valido"
+
+#: src/ne_openssl.c:170
+msgid "certificate has expired"
+msgstr "il certificato è scaduto"
+
+#: src/ne_openssl.c:171
+msgid "certificate issued for a different hostname"
+msgstr "il certificato è stato emesso per un altro nome host"
+
+#: src/ne_openssl.c:172
+msgid "issuer is not trusted"
+msgstr "chi ha rilasciato il certificato non è fidato"
+
+#: src/ne_openssl.c:177
+msgid "Server certificate verification failed: "
+msgstr "Errore nella verifica del certificato del server: "
+
+#: src/ne_openssl.c:195
+msgid "[invalid date]"
+msgstr "[data non valida]"
+
+#: src/ne_openssl.c:418
+#, c-format
+msgid "Certificate verification error: %s"
+msgstr "Errore di verifica del certificato: %s"
+
+#: src/ne_openssl.c:600
+msgid "SSL server did not present certificate"
+msgstr "Il server SSL non ha offerto alcun certificato"
+
+#: src/ne_openssl.c:609
+msgid "Server certificate changed: connection intercepted?"
+msgstr ""
+"Il certificato del server è cambiato: la connessione può essere stata "
+"intercettata?"
+
+#: src/ne_props.c:372 src/ne_props.c:412
+msgid "Response exceeds maximum property count"
+msgstr "La risposta ha oltrepassato il numero massimo di proprietà"
+
+#: src/ne_redirect.c:92
+msgid "Could not parse redirect location."
+msgstr "Impossibile analizzare l'indirizzo di redirezione"
+
+#: src/ne_request.c:224
+#, c-format
+msgid "%s: connection was closed by proxy server."
+msgstr "%s: la connessione è stata chiusa dal server proxy."
+
+#: src/ne_request.c:227
+#, c-format
+msgid "%s: connection was closed by server."
+msgstr "%s: la connessione è stata chiusa dal server."
+
+#: src/ne_request.c:232
+#, c-format
+msgid "%s: connection timed out."
+msgstr "%s: tempo di connessione scaduto."
+
+#: src/ne_request.c:380
+msgid "offset invalid"
+msgstr ""
+
+#: src/ne_request.c:383
+#, fuzzy
+msgid "Could not seek to offset %"
+msgstr "Impossibile scrivere il file: %s"
+
+#: src/ne_request.c:384
+#, fuzzy, c-format
+msgid " of request body file: %s"
+msgstr "Impossibile scrivere il file: %s"
+
+#: src/ne_request.c:428
+msgid "Could not send request body"
+msgstr "Impossibile inviare il corpo della richiesta"
+
+#: src/ne_request.c:772
+msgid "Could not read chunk size"
+msgstr "Impossibile leggere la dimensione del chunk"
+
+#: src/ne_request.c:779
+msgid "Could not parse chunk size"
+msgstr "Impossibile analizzare la dimensione del chunk"
+
+#: src/ne_request.c:816
+msgid "Could not read response body"
+msgstr "Impossibile leggere il corpo della risposta"
+
+#: src/ne_request.c:832
+msgid "Could not read chunk delimiter"
+msgstr "Impossibile leggere il delimitatore del chunk"
+
+#: src/ne_request.c:835
+msgid "Chunk delimiter was invalid"
+msgstr "Delimitatore del chunk non valido"
+
+#: src/ne_request.c:941
+msgid "Could not read status line"
+msgstr "Impossibile leggere la riga di stato"
+
+#: src/ne_request.c:952
+msgid "Could not parse response status line."
+msgstr "Impossibile analizzare la riga di stato della risposta."
+
+#: src/ne_request.c:963
+msgid "Could not read interim response headers"
+msgstr "Impossibile leggere le intestazioni della risposta temporanea"
+
+#: src/ne_request.c:997
+msgid "Could not send request"
+msgstr "Impossibile inviare la richiesta"
+
+#: src/ne_request.c:1045 src/ne_request.c:1063 src/ne_request.c:1073
+msgid "Error reading response headers"
+msgstr "Errore nella lettura delle intestazioni di risposta"
+
+#: src/ne_request.c:1091
+msgid "Response header too long"
+msgstr "Intestazione di risposta troppo lunga"
+
+#: src/ne_request.c:1173
+msgid "Response exceeded maximum number of header fields."
+msgstr ""
+"La risposta ha oltrepassato il numero massimo di campi di intestazione."
+
+#: src/ne_request.c:1190
+#, c-format
+msgid "Could not resolve hostname `%s': %s"
+msgstr "Impossibile risolvere il nome dell'host \"%s\": %s"
+
+#: src/ne_request.c:1300
+msgid "Invalid Content-Length in response"
+msgstr "Content-Length non valido nella risposta"
+
+#: src/ne_request.c:1362
+#, c-format
+msgid "Could not write to file: %s"
+msgstr "Impossibile scrivere il file: %s"
+
+#: src/ne_request.c:1435
+msgid "Could not create SSL connection through proxy server"
+msgstr "Impossibile creare una connessione SSL attraverso il server proxy"
+
+#: src/ne_request.c:1481
+msgid "Could not create socket"
+msgstr "Impossibile creare il socket"
+
+#: src/ne_request.c:1526
+msgid "Could not connect to server"
+msgstr "Impossibile connettersi al server"
+
+#: src/ne_request.c:1529
+msgid "Could not connect to proxy server"
+msgstr "Impossibile connettersi al server proxy"
+
+#: src/ne_socket.c:490 src/ne_socket.c:538 src/ne_socket.c:641
+msgid "Connection closed"
+msgstr "Connessione chiusa"
+
+#: src/ne_socket.c:548
+msgid "Secure connection truncated"
+msgstr "Connessione sicura interrotta"
+
+#: src/ne_socket.c:560 src/ne_socket.c:645 src/ne_socket.c:650
+#, c-format
+msgid "SSL error: %s"
+msgstr "errore SSL: %s"
+
+#: src/ne_socket.c:563
+#, c-format
+msgid "SSL error code %d/%d/%lu"
+msgstr "Codice di errore SSL %d/%d/%lu"
+
+#: src/ne_socket.c:745
+msgid "Line too long"
+msgstr "Linea troppo lunga"
+
+#: src/ne_socket.c:885 src/ne_socket.c:891
+msgid "Host not found"
+msgstr "Host non trovato"
+
+#: src/ne_socket.c:1001
+msgid "Socket descriptor number exceeds FD_SETSIZE"
+msgstr "Il numero del descrittore socket eccede FD_SETSIZE"
+
+#: src/ne_socket.c:1161
+msgid "SSL disabled due to lack of entropy"
+msgstr "SSL disabilitato per mancanza di entropia"
+
+#: src/ne_socket.c:1168
+msgid "SSL disabled due to library version mismatch"
+msgstr "SSL disabilitato: la versione della libreria non corrisponde"
+
+#: src/ne_socket.c:1174
+msgid "Could not create SSL structure"
+msgstr "Impossibile creare la struttura SSL"
+
+#: src/ne_xml.c:280
+#, c-format
+msgid "XML parse error at line %d: invalid element name"
+msgstr "Errore di analisi XML alla riga %d: nome di elemento non valido"
+
+#: src/ne_xml.c:436
+msgid "Unknown error"
+msgstr "Errore sconosciuto"
+
+#: src/ne_xml.c:521
+msgid "Invalid Byte Order Mark"
+msgstr "Byte Order Mark non valido"
+
+#: src/ne_xml.c:609
+#, c-format
+msgid "XML parse error at line %d: %s."
+msgstr "Errore di analisi XML alla riga %d: %s."
+
+#: src/ne_xmlreq.c:31
+#, fuzzy, c-format
+msgid "Could not parse response: %s"
+msgstr "Impossibile leggere la risposta PASV"
diff --git a/po/ja.po b/po/ja.po
new file mode 100644
index 0000000..4b5a4f5
--- /dev/null
+++ b/po/ja.po
@@ -0,0 +1,337 @@
+# The Japanese translation for sitecopy
+# Nobuyuki Tsuchimura <tutimura@nn.iij4u.or.jp>, 2000.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: sitecopy 0.10.14\n"
+"Report-Msgid-Bugs-To: neon@webdav.org\n"
+"POT-Creation-Date: 2005-08-14 22:46+0100\n"
+"PO-Revision-Date: 2001-01-16 07:32+0900\n"
+"Last-Translator: Nobuyuki Tsuchimura <tutimura@nn.iij4u.or.jp>\n"
+"Language-Team: ja\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=EUC-JP\n"
+"Content-Transfer-Encoding: 8-bit\n"
+
+#: src/ne_207.c:188
+#, c-format
+msgid ""
+"Invalid HTTP status line in status element at line %d of response:\n"
+"Status line was: %s"
+msgstr ""
+
+#: src/ne_auth.c:124
+msgid "Server was not authenticated correctly."
+msgstr ""
+
+#: src/ne_auth.c:128
+msgid "Proxy server was not authenticated correctly."
+msgstr ""
+
+#: src/ne_auth.c:431
+#, fuzzy, c-format
+msgid "GSSAPI authentication error (%s)"
+msgstr "%s ¤Ø¤Îǧ¾Ú¤¬ %s ¤ÇɬÍפǤ¹ '%s':\n"
+
+#: src/ne_basic.c:86
+#, fuzzy, c-format
+msgid "Could not determine file size: %s"
+msgstr "¥Õ¥¡¥¤¥ë¤¬Æɤá¤Þ¤»¤ó: "
+
+#: src/ne_basic.c:132
+msgid "Response did not include requested range"
+msgstr ""
+
+#: src/ne_basic.c:176
+msgid "Range is not satisfiable"
+msgstr ""
+
+#: src/ne_basic.c:181
+#, fuzzy
+msgid "Resource does not support ranged GETs."
+msgstr "¥µ¡¼¥Ð¡¼¤¬¥Õ¥¡¥¤¥ë¤ÎÉôʬ¼èÆÀ¤ò¥µ¥Ý¡¼¥È¤·¤Æ¤¤¤Þ¤»¤ó¡£"
+
+#: src/ne_compress.c:173
+#, fuzzy, c-format
+msgid "%s: %s"
+msgstr "¥æ¡¼¥¶¡¼Ì¾: %s\n"
+
+#: src/ne_compress.c:184
+#, c-format
+msgid "%s: %s (code %d)"
+msgstr ""
+
+#: src/ne_compress.c:232
+#, fuzzy
+msgid "Could not inflate data"
+msgstr "¥Õ¥¡¥¤¥ë¤¬Æɤá¤Þ¤»¤ó: "
+
+#: src/ne_compress.c:293
+#, fuzzy
+msgid "Could not initialize zlib"
+msgstr "¥Õ¥¡¥¤¥ë¤¬½ñ¤±¤Þ¤»¤ó: "
+
+#: src/ne_gnutls.c:434 src/ne_openssl.c:386
+msgid "Server certificate was missing commonName attribute in subject name"
+msgstr ""
+
+#: src/ne_gnutls.c:471 src/ne_openssl.c:581
+#, fuzzy, c-format
+msgid "SSL negotiation failed: %s"
+msgstr "¥Õ¥¡¥¤¥ë¤¬½ñ¤±¤Þ¤»¤ó: %s"
+
+#: src/ne_gnutls.c:480
+msgid "Server did not send certificate chain"
+msgstr ""
+
+#: src/ne_locks.c:591
+msgid "LOCK response missing Lock-Token header"
+msgstr ""
+
+#: src/ne_locks.c:744
+msgid "No Lock-Token header given"
+msgstr ""
+
+#: src/ne_locks.c:772
+#, c-format
+msgid "Response missing activelock for %s"
+msgstr ""
+
+#: src/ne_locks.c:816
+#, c-format
+msgid "No activelock for <%s> returned in LOCK refresh response"
+msgstr ""
+
+#: src/ne_openssl.c:169
+msgid "certificate is not yet valid"
+msgstr ""
+
+#: src/ne_openssl.c:170
+msgid "certificate has expired"
+msgstr ""
+
+#: src/ne_openssl.c:171
+msgid "certificate issued for a different hostname"
+msgstr ""
+
+#: src/ne_openssl.c:172
+msgid "issuer is not trusted"
+msgstr ""
+
+#: src/ne_openssl.c:177
+msgid "Server certificate verification failed: "
+msgstr ""
+
+#: src/ne_openssl.c:195
+msgid "[invalid date]"
+msgstr ""
+
+#: src/ne_openssl.c:418
+#, c-format
+msgid "Certificate verification error: %s"
+msgstr ""
+
+#: src/ne_openssl.c:600
+msgid "SSL server did not present certificate"
+msgstr ""
+
+#: src/ne_openssl.c:609
+msgid "Server certificate changed: connection intercepted?"
+msgstr ""
+
+#: src/ne_props.c:372 src/ne_props.c:412
+msgid "Response exceeds maximum property count"
+msgstr ""
+
+#: src/ne_redirect.c:92
+#, fuzzy
+msgid "Could not parse redirect location."
+msgstr "chunk ¤ÎÂ礭¤µ¤ò²òÀϤǤ­¤Þ¤»¤ó"
+
+#: src/ne_request.c:224
+#, c-format
+msgid "%s: connection was closed by proxy server."
+msgstr "%s: Àܳ¤¬¥×¥í¥­¥·¡¼¥µ¡¼¥Ð¡¼¤ËÀÚ¤é¤ì¤Þ¤·¤¿¡£"
+
+#: src/ne_request.c:227
+#, c-format
+msgid "%s: connection was closed by server."
+msgstr "%s: Àܳ¤¬¥µ¡¼¥Ð¡¼¤ËÀÚ¤é¤ì¤Þ¤·¤¿¡£"
+
+#: src/ne_request.c:232
+#, c-format
+msgid "%s: connection timed out."
+msgstr "%s: Àܳ¥¿¥¤¥à¥¢¥¦¥È¤Ç¤¹¡£"
+
+#: src/ne_request.c:380
+msgid "offset invalid"
+msgstr ""
+
+#: src/ne_request.c:383
+#, fuzzy
+msgid "Could not seek to offset %"
+msgstr "¥Õ¥¡¥¤¥ë¤¬½ñ¤±¤Þ¤»¤ó: %s"
+
+#: src/ne_request.c:384
+#, fuzzy, c-format
+msgid " of request body file: %s"
+msgstr "¥Õ¥¡¥¤¥ë¤¬½ñ¤±¤Þ¤»¤ó: %s"
+
+#: src/ne_request.c:428
+msgid "Could not send request body"
+msgstr ""
+
+#: src/ne_request.c:772
+msgid "Could not read chunk size"
+msgstr "chunk ¤ÎÂ礭¤µ¤¬Æɤá¤Þ¤»¤ó"
+
+#: src/ne_request.c:779
+msgid "Could not parse chunk size"
+msgstr "chunk ¤ÎÂ礭¤µ¤ò²òÀϤǤ­¤Þ¤»¤ó"
+
+#: src/ne_request.c:816
+msgid "Could not read response body"
+msgstr "response body ¤¬Æɤá¤Þ¤»¤ó"
+
+#: src/ne_request.c:832
+#, fuzzy
+msgid "Could not read chunk delimiter"
+msgstr "chunk ¤ÎÂ礭¤µ¤¬Æɤá¤Þ¤»¤ó"
+
+#: src/ne_request.c:835
+msgid "Chunk delimiter was invalid"
+msgstr ""
+
+#: src/ne_request.c:941
+msgid "Could not read status line"
+msgstr ""
+
+#: src/ne_request.c:952
+msgid "Could not parse response status line."
+msgstr ""
+
+#: src/ne_request.c:963
+#, fuzzy
+msgid "Could not read interim response headers"
+msgstr "response body ¤¬Æɤá¤Þ¤»¤ó"
+
+#: src/ne_request.c:997
+msgid "Could not send request"
+msgstr ""
+
+#: src/ne_request.c:1045 src/ne_request.c:1063 src/ne_request.c:1073
+msgid "Error reading response headers"
+msgstr ""
+
+#: src/ne_request.c:1091
+msgid "Response header too long"
+msgstr ""
+
+#: src/ne_request.c:1173
+msgid "Response exceeded maximum number of header fields."
+msgstr ""
+
+#: src/ne_request.c:1190
+#, fuzzy, c-format
+msgid "Could not resolve hostname `%s': %s"
+msgstr "%s: ¥¨¥é¡¼: ¥µ¡¼¥Ð¡¼¤Î¥Û¥¹¥È̾ (%s) ¤ò IP ¥¢¥É¥ì¥¹¤ËÊÑ´¹¤Ç¤­¤Þ¤»¤ó¡£\n"
+
+#: src/ne_request.c:1300
+msgid "Invalid Content-Length in response"
+msgstr ""
+
+#: src/ne_request.c:1362
+#, c-format
+msgid "Could not write to file: %s"
+msgstr "¥Õ¥¡¥¤¥ë¤¬½ñ¤±¤Þ¤»¤ó: %s"
+
+#: src/ne_request.c:1435
+msgid "Could not create SSL connection through proxy server"
+msgstr "¥×¥í¥­¥·¡¼¥µ¡¼¥Ð¡¼¤Ë SSL Àܳ¤Ç¤­¤Þ¤»¤ó"
+
+#: src/ne_request.c:1481
+#, fuzzy
+msgid "Could not create socket"
+msgstr "¥×¥í¥­¥·¡¼¥µ¡¼¥Ð¡¼¤Ë SSL Àܳ¤Ç¤­¤Þ¤»¤ó"
+
+#: src/ne_request.c:1526
+msgid "Could not connect to server"
+msgstr "¥×¥í¥­¥·¡¼¥µ¡¼¥Ð¡¼¤ËÀܳ¤Ç¤­¤Þ¤»¤ó"
+
+#: src/ne_request.c:1529
+msgid "Could not connect to proxy server"
+msgstr "¥×¥í¥­¥·¡¼¥µ¡¼¥Ð¡¼¤ËÀܳ¤Ç¤­¤Þ¤»¤ó"
+
+#: src/ne_socket.c:490 src/ne_socket.c:538 src/ne_socket.c:641
+#, fuzzy
+msgid "Connection closed"
+msgstr "%s: Àܳ¤¬¥µ¡¼¥Ð¡¼¤ËÀÚ¤é¤ì¤Þ¤·¤¿¡£"
+
+#: src/ne_socket.c:548
+#, fuzzy
+msgid "Secure connection truncated"
+msgstr "Àܳ¥¿¥¤¥à¥¢¥¦¥È¡£"
+
+#: src/ne_socket.c:560 src/ne_socket.c:645 src/ne_socket.c:650
+#, c-format
+msgid "SSL error: %s"
+msgstr ""
+
+#: src/ne_socket.c:563
+#, c-format
+msgid "SSL error code %d/%d/%lu"
+msgstr ""
+
+#: src/ne_socket.c:745
+msgid "Line too long"
+msgstr ""
+
+#: src/ne_socket.c:885 src/ne_socket.c:891
+msgid "Host not found"
+msgstr ""
+
+#: src/ne_socket.c:1001
+msgid "Socket descriptor number exceeds FD_SETSIZE"
+msgstr ""
+
+#: src/ne_socket.c:1161
+msgid "SSL disabled due to lack of entropy"
+msgstr ""
+
+#: src/ne_socket.c:1168
+msgid "SSL disabled due to library version mismatch"
+msgstr ""
+
+#: src/ne_socket.c:1174
+#, fuzzy
+msgid "Could not create SSL structure"
+msgstr "¥×¥í¥­¥·¡¼¥µ¡¼¥Ð¡¼¤Ë SSL Àܳ¤Ç¤­¤Þ¤»¤ó"
+
+#: src/ne_xml.c:280
+#, fuzzy, c-format
+msgid "XML parse error at line %d: invalid element name"
+msgstr ""
+"%s: rcfile ¤¬ %d ¹Ô¤Ç´Ö°ã¤Ã¤Æ¤¤¤Þ¤¹¡£:\n"
+"%s\n"
+
+#: src/ne_xml.c:436
+#, fuzzy
+msgid "Unknown error"
+msgstr "̤ÃΤΥ·¥¹¥Æ¥à¥¨¥é¡¼"
+
+#: src/ne_xml.c:521
+msgid "Invalid Byte Order Mark"
+msgstr ""
+
+#: src/ne_xml.c:609
+#, fuzzy, c-format
+msgid "XML parse error at line %d: %s."
+msgstr ""
+"%s: rcfile ¤¬ %d ¹Ô¤Ç´Ö°ã¤Ã¤Æ¤¤¤Þ¤¹¡£:\n"
+"%s\n"
+
+#: src/ne_xmlreq.c:31
+#, fuzzy, c-format
+msgid "Could not parse response: %s"
+msgstr "response body ¤¬Æɤá¤Þ¤»¤ó"
diff --git a/po/neon.pot b/po/neon.pot
new file mode 100644
index 0000000..78b761a
--- /dev/null
+++ b/po/neon.pot
@@ -0,0 +1,323 @@
+# 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 <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: neon@webdav.org\n"
+"POT-Creation-Date: 2005-08-14 22:46+0100\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=CHARSET\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: src/ne_207.c:188
+#, c-format
+msgid ""
+"Invalid HTTP status line in status element at line %d of response:\n"
+"Status line was: %s"
+msgstr ""
+
+#: src/ne_auth.c:124
+msgid "Server was not authenticated correctly."
+msgstr ""
+
+#: src/ne_auth.c:128
+msgid "Proxy server was not authenticated correctly."
+msgstr ""
+
+#: src/ne_auth.c:431
+#, c-format
+msgid "GSSAPI authentication error (%s)"
+msgstr ""
+
+#: src/ne_basic.c:86
+#, c-format
+msgid "Could not determine file size: %s"
+msgstr ""
+
+#: src/ne_basic.c:132
+msgid "Response did not include requested range"
+msgstr ""
+
+#: src/ne_basic.c:176
+msgid "Range is not satisfiable"
+msgstr ""
+
+#: src/ne_basic.c:181
+msgid "Resource does not support ranged GETs."
+msgstr ""
+
+#: src/ne_compress.c:173
+#, c-format
+msgid "%s: %s"
+msgstr ""
+
+#: src/ne_compress.c:184
+#, c-format
+msgid "%s: %s (code %d)"
+msgstr ""
+
+#: src/ne_compress.c:232
+msgid "Could not inflate data"
+msgstr ""
+
+#: src/ne_compress.c:293
+msgid "Could not initialize zlib"
+msgstr ""
+
+#: src/ne_gnutls.c:434 src/ne_openssl.c:386
+msgid "Server certificate was missing commonName attribute in subject name"
+msgstr ""
+
+#: src/ne_gnutls.c:471 src/ne_openssl.c:581
+#, c-format
+msgid "SSL negotiation failed: %s"
+msgstr ""
+
+#: src/ne_gnutls.c:480
+msgid "Server did not send certificate chain"
+msgstr ""
+
+#: src/ne_locks.c:591
+msgid "LOCK response missing Lock-Token header"
+msgstr ""
+
+#: src/ne_locks.c:744
+msgid "No Lock-Token header given"
+msgstr ""
+
+#: src/ne_locks.c:772
+#, c-format
+msgid "Response missing activelock for %s"
+msgstr ""
+
+#: src/ne_locks.c:816
+#, c-format
+msgid "No activelock for <%s> returned in LOCK refresh response"
+msgstr ""
+
+#: src/ne_openssl.c:169
+msgid "certificate is not yet valid"
+msgstr ""
+
+#: src/ne_openssl.c:170
+msgid "certificate has expired"
+msgstr ""
+
+#: src/ne_openssl.c:171
+msgid "certificate issued for a different hostname"
+msgstr ""
+
+#: src/ne_openssl.c:172
+msgid "issuer is not trusted"
+msgstr ""
+
+#: src/ne_openssl.c:177
+msgid "Server certificate verification failed: "
+msgstr ""
+
+#: src/ne_openssl.c:195
+msgid "[invalid date]"
+msgstr ""
+
+#: src/ne_openssl.c:418
+#, c-format
+msgid "Certificate verification error: %s"
+msgstr ""
+
+#: src/ne_openssl.c:600
+msgid "SSL server did not present certificate"
+msgstr ""
+
+#: src/ne_openssl.c:609
+msgid "Server certificate changed: connection intercepted?"
+msgstr ""
+
+#: src/ne_props.c:372 src/ne_props.c:412
+msgid "Response exceeds maximum property count"
+msgstr ""
+
+#: src/ne_redirect.c:92
+msgid "Could not parse redirect location."
+msgstr ""
+
+#: src/ne_request.c:224
+#, c-format
+msgid "%s: connection was closed by proxy server."
+msgstr ""
+
+#: src/ne_request.c:227
+#, c-format
+msgid "%s: connection was closed by server."
+msgstr ""
+
+#: src/ne_request.c:232
+#, c-format
+msgid "%s: connection timed out."
+msgstr ""
+
+#: src/ne_request.c:380
+msgid "offset invalid"
+msgstr ""
+
+#: src/ne_request.c:383
+msgid "Could not seek to offset %"
+msgstr ""
+
+#: src/ne_request.c:384
+#, c-format
+msgid " of request body file: %s"
+msgstr ""
+
+#: src/ne_request.c:428
+msgid "Could not send request body"
+msgstr ""
+
+#: src/ne_request.c:772
+msgid "Could not read chunk size"
+msgstr ""
+
+#: src/ne_request.c:779
+msgid "Could not parse chunk size"
+msgstr ""
+
+#: src/ne_request.c:816
+msgid "Could not read response body"
+msgstr ""
+
+#: src/ne_request.c:832
+msgid "Could not read chunk delimiter"
+msgstr ""
+
+#: src/ne_request.c:835
+msgid "Chunk delimiter was invalid"
+msgstr ""
+
+#: src/ne_request.c:941
+msgid "Could not read status line"
+msgstr ""
+
+#: src/ne_request.c:952
+msgid "Could not parse response status line."
+msgstr ""
+
+#: src/ne_request.c:963
+msgid "Could not read interim response headers"
+msgstr ""
+
+#: src/ne_request.c:997
+msgid "Could not send request"
+msgstr ""
+
+#: src/ne_request.c:1045 src/ne_request.c:1063 src/ne_request.c:1073
+msgid "Error reading response headers"
+msgstr ""
+
+#: src/ne_request.c:1091
+msgid "Response header too long"
+msgstr ""
+
+#: src/ne_request.c:1173
+msgid "Response exceeded maximum number of header fields."
+msgstr ""
+
+#: src/ne_request.c:1190
+#, c-format
+msgid "Could not resolve hostname `%s': %s"
+msgstr ""
+
+#: src/ne_request.c:1300
+msgid "Invalid Content-Length in response"
+msgstr ""
+
+#: src/ne_request.c:1362
+#, c-format
+msgid "Could not write to file: %s"
+msgstr ""
+
+#: src/ne_request.c:1435
+msgid "Could not create SSL connection through proxy server"
+msgstr ""
+
+#: src/ne_request.c:1481
+msgid "Could not create socket"
+msgstr ""
+
+#: src/ne_request.c:1526
+msgid "Could not connect to server"
+msgstr ""
+
+#: src/ne_request.c:1529
+msgid "Could not connect to proxy server"
+msgstr ""
+
+#: src/ne_socket.c:490 src/ne_socket.c:538 src/ne_socket.c:641
+msgid "Connection closed"
+msgstr ""
+
+#: src/ne_socket.c:548
+msgid "Secure connection truncated"
+msgstr ""
+
+#: src/ne_socket.c:560 src/ne_socket.c:645 src/ne_socket.c:650
+#, c-format
+msgid "SSL error: %s"
+msgstr ""
+
+#: src/ne_socket.c:563
+#, c-format
+msgid "SSL error code %d/%d/%lu"
+msgstr ""
+
+#: src/ne_socket.c:745
+msgid "Line too long"
+msgstr ""
+
+#: src/ne_socket.c:885 src/ne_socket.c:891
+msgid "Host not found"
+msgstr ""
+
+#: src/ne_socket.c:1001
+msgid "Socket descriptor number exceeds FD_SETSIZE"
+msgstr ""
+
+#: src/ne_socket.c:1161
+msgid "SSL disabled due to lack of entropy"
+msgstr ""
+
+#: src/ne_socket.c:1168
+msgid "SSL disabled due to library version mismatch"
+msgstr ""
+
+#: src/ne_socket.c:1174
+msgid "Could not create SSL structure"
+msgstr ""
+
+#: src/ne_xml.c:280
+#, c-format
+msgid "XML parse error at line %d: invalid element name"
+msgstr ""
+
+#: src/ne_xml.c:436
+msgid "Unknown error"
+msgstr ""
+
+#: src/ne_xml.c:521
+msgid "Invalid Byte Order Mark"
+msgstr ""
+
+#: src/ne_xml.c:609
+#, c-format
+msgid "XML parse error at line %d: %s."
+msgstr ""
+
+#: src/ne_xmlreq.c:31
+#, c-format
+msgid "Could not parse response: %s"
+msgstr ""
diff --git a/po/nn.po b/po/nn.po
new file mode 100644
index 0000000..14c0337
--- /dev/null
+++ b/po/nn.po
@@ -0,0 +1,343 @@
+# Norwegian Nynorsk sitecopy translation.
+# Copyright (C) 2001 Karl Ove Hufthammer.
+# Karl Ove Hufthammer <karl@huftis.org>, 2002.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: sitecopy 0.11.4\n"
+"Report-Msgid-Bugs-To: neon@webdav.org\n"
+"POT-Creation-Date: 2005-08-14 22:46+0100\n"
+"PO-Revision-Date: 2002-11-07 18:11+0100\n"
+"Last-Translator: Karl Ove Hufthammer <karl@huftis.org>\n"
+"Language-Team: Norwegian Nynorsk <i18n-nn@lister.ping.uio.no>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=utf-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: src/ne_207.c:188
+#, c-format
+msgid ""
+"Invalid HTTP status line in status element at line %d of response:\n"
+"Status line was: %s"
+msgstr ""
+"Ugyldig HTTP-statuslinje i statuselement på linje %d av svaret:\n"
+"Statuslinja var: %s"
+
+#: src/ne_auth.c:124
+msgid "Server was not authenticated correctly."
+msgstr "Tenaren vart ikkje rett autentisert."
+
+#: src/ne_auth.c:128
+msgid "Proxy server was not authenticated correctly."
+msgstr "Mellomtenaren vart ikkje rett autentisert."
+
+#: src/ne_auth.c:431
+#, fuzzy, c-format
+msgid "GSSAPI authentication error (%s)"
+msgstr "Krev autentisering på %s «%s»:\n"
+
+#: src/ne_basic.c:86
+#, fuzzy, c-format
+msgid "Could not determine file size: %s"
+msgstr "Fann ikkje fillengda: %s"
+
+#: src/ne_basic.c:132
+msgid "Response did not include requested range"
+msgstr ""
+
+#: src/ne_basic.c:176
+#, fuzzy
+msgid "Range is not satisfiable"
+msgstr "Området finst ikkje."
+
+#: src/ne_basic.c:181
+#, fuzzy
+msgid "Resource does not support ranged GETs."
+msgstr "Tenaren kan ikkje handtera kommandoar for delvis GET."
+
+#: src/ne_compress.c:173
+#, fuzzy, c-format
+msgid "%s: %s"
+msgstr "%s: %s\n"
+
+#: src/ne_compress.c:184
+#, c-format
+msgid "%s: %s (code %d)"
+msgstr ""
+
+#: src/ne_compress.c:232
+#, fuzzy
+msgid "Could not inflate data"
+msgstr "Klarte ikkje opna fil: "
+
+#: src/ne_compress.c:293
+#, fuzzy
+msgid "Could not initialize zlib"
+msgstr "Klarte ikkje opna fil: "
+
+#: src/ne_gnutls.c:434 src/ne_openssl.c:386
+msgid "Server certificate was missing commonName attribute in subject name"
+msgstr ""
+
+#: src/ne_gnutls.c:471 src/ne_openssl.c:581
+#, fuzzy, c-format
+msgid "SSL negotiation failed: %s"
+msgstr "Klarte ikkje skriva til fil: %s"
+
+#: src/ne_gnutls.c:480
+msgid "Server did not send certificate chain"
+msgstr ""
+
+#: src/ne_locks.c:591
+msgid "LOCK response missing Lock-Token header"
+msgstr ""
+
+#: src/ne_locks.c:744
+msgid "No Lock-Token header given"
+msgstr ""
+
+#: src/ne_locks.c:772
+#, c-format
+msgid "Response missing activelock for %s"
+msgstr ""
+
+#: src/ne_locks.c:816
+#, c-format
+msgid "No activelock for <%s> returned in LOCK refresh response"
+msgstr ""
+
+#: src/ne_openssl.c:169
+#, fuzzy
+msgid "certificate is not yet valid"
+msgstr "Sertifikatet er gyldig"
+
+#: src/ne_openssl.c:170
+#, fuzzy
+msgid "certificate has expired"
+msgstr "Tenarsertifikatet er utgått på dato."
+
+#: src/ne_openssl.c:171
+#, fuzzy
+msgid "certificate issued for a different hostname"
+msgstr "Sertifikatet er utferda av:"
+
+#: src/ne_openssl.c:172
+msgid "issuer is not trusted"
+msgstr ""
+
+#: src/ne_openssl.c:177
+#, fuzzy
+msgid "Server certificate verification failed: "
+msgstr "Tenarsertifikatet er utgått på dato."
+
+#: src/ne_openssl.c:195
+msgid "[invalid date]"
+msgstr "[ugyldig dato]"
+
+#: src/ne_openssl.c:418
+#, c-format
+msgid "Certificate verification error: %s"
+msgstr ""
+
+#: src/ne_openssl.c:600
+msgid "SSL server did not present certificate"
+msgstr ""
+
+#: src/ne_openssl.c:609
+#, fuzzy
+msgid "Server certificate changed: connection intercepted?"
+msgstr "Tenarsertifikatet er utgått på dato."
+
+#: src/ne_props.c:372 src/ne_props.c:412
+#, fuzzy
+msgid "Response exceeds maximum property count"
+msgstr "Svaret inneheld for mange header-felt."
+
+#: src/ne_redirect.c:92
+msgid "Could not parse redirect location."
+msgstr "Klarte ikkje tolka vidaresendingsadresse."
+
+#: src/ne_request.c:224
+#, c-format
+msgid "%s: connection was closed by proxy server."
+msgstr "%s: tilkoplinga vart lukka av mellomtenaren."
+
+#: src/ne_request.c:227
+#, c-format
+msgid "%s: connection was closed by server."
+msgstr "%s: tilkoplinga vart lukka av tenaren."
+
+#: src/ne_request.c:232
+#, c-format
+msgid "%s: connection timed out."
+msgstr "%s: sambandet vart tidsavbrote."
+
+#: src/ne_request.c:380
+msgid "offset invalid"
+msgstr ""
+
+#: src/ne_request.c:383
+#, fuzzy
+msgid "Could not seek to offset %"
+msgstr "Klarte ikkje skriva til fil: %s"
+
+#: src/ne_request.c:384
+#, fuzzy, c-format
+msgid " of request body file: %s"
+msgstr "Klarte ikkje skriva til fil: %s"
+
+#: src/ne_request.c:428
+msgid "Could not send request body"
+msgstr "Klarte ikkje senda førespurnad"
+
+#: src/ne_request.c:772
+msgid "Could not read chunk size"
+msgstr "Klarte ikkje lesa storleik på oppdelt svar"
+
+#: src/ne_request.c:779
+msgid "Could not parse chunk size"
+msgstr "Klarte ikkje tolka storleik på oppdelt svar"
+
+#: src/ne_request.c:816
+msgid "Could not read response body"
+msgstr "Klarte ikkje lesa svar"
+
+#: src/ne_request.c:832
+#, fuzzy
+msgid "Could not read chunk delimiter"
+msgstr "Klarte ikkje lesa storleik på oppdelt svar"
+
+#: src/ne_request.c:835
+msgid "Chunk delimiter was invalid"
+msgstr ""
+
+#: src/ne_request.c:941
+msgid "Could not read status line"
+msgstr "Klarte ikkje lesa statuslinja"
+
+#: src/ne_request.c:952
+msgid "Could not parse response status line."
+msgstr "Klarte ikkje tolka statuslinja i svaret."
+
+#: src/ne_request.c:963
+#, fuzzy
+msgid "Could not read interim response headers"
+msgstr "Klarte ikkje lesa svarlinje"
+
+#: src/ne_request.c:997
+msgid "Could not send request"
+msgstr "Klarte ikkje senda førespurnad"
+
+#: src/ne_request.c:1045 src/ne_request.c:1063 src/ne_request.c:1073
+msgid "Error reading response headers"
+msgstr "Feil ved lesing av svarhovud"
+
+#: src/ne_request.c:1091
+msgid "Response header too long"
+msgstr "For langt svarhovud"
+
+#: src/ne_request.c:1173
+msgid "Response exceeded maximum number of header fields."
+msgstr "Svaret inneheld for mange header-felt."
+
+#: src/ne_request.c:1190
+#, fuzzy, c-format
+msgid "Could not resolve hostname `%s': %s"
+msgstr "%s: Feil: Fann ikkje adressa til nettverksvert (%s).\n"
+
+#: src/ne_request.c:1300
+msgid "Invalid Content-Length in response"
+msgstr ""
+
+#: src/ne_request.c:1362
+#, c-format
+msgid "Could not write to file: %s"
+msgstr "Klarte ikkje skriva til fil: %s"
+
+#: src/ne_request.c:1435
+msgid "Could not create SSL connection through proxy server"
+msgstr "Klarte ikkje oppretta SSL-tilkopling til mellomtenar"
+
+#: src/ne_request.c:1481
+#, fuzzy
+msgid "Could not create socket"
+msgstr "Klarte ikkje forhandla SSL-økt"
+
+#: src/ne_request.c:1526
+msgid "Could not connect to server"
+msgstr "Klarte ikkje kopla til tenaren."
+
+#: src/ne_request.c:1529
+msgid "Could not connect to proxy server"
+msgstr "Klarte ikkje kopla til mellomtenar"
+
+#: src/ne_socket.c:490 src/ne_socket.c:538 src/ne_socket.c:641
+#, fuzzy
+msgid "Connection closed"
+msgstr "Tilkoplinga vart lukka av tenaren"
+
+#: src/ne_socket.c:548
+#, fuzzy
+msgid "Secure connection truncated"
+msgstr "Sambandet vart tidsavbrote."
+
+#: src/ne_socket.c:560 src/ne_socket.c:645 src/ne_socket.c:650
+#, fuzzy, c-format
+msgid "SSL error: %s"
+msgstr "%s: Feil: %s\n"
+
+#: src/ne_socket.c:563
+#, c-format
+msgid "SSL error code %d/%d/%lu"
+msgstr ""
+
+#: src/ne_socket.c:745
+msgid "Line too long"
+msgstr "For lang linje"
+
+#: src/ne_socket.c:885 src/ne_socket.c:891
+msgid "Host not found"
+msgstr "Fann ikkje vert"
+
+#: src/ne_socket.c:1001
+msgid "Socket descriptor number exceeds FD_SETSIZE"
+msgstr ""
+
+#: src/ne_socket.c:1161
+#, fuzzy
+msgid "SSL disabled due to lack of entropy"
+msgstr "SSL avslått grunna mangel på entropi"
+
+#: src/ne_socket.c:1168
+#, fuzzy
+msgid "SSL disabled due to library version mismatch"
+msgstr "SSL avslått grunna mangel på entropi"
+
+#: src/ne_socket.c:1174
+#, fuzzy
+msgid "Could not create SSL structure"
+msgstr "Klarte ikkje forhandla SSL-økt"
+
+#: src/ne_xml.c:280
+#, fuzzy, c-format
+msgid "XML parse error at line %d: invalid element name"
+msgstr "XML-tolkingsfeil på linje %d: %s."
+
+#: src/ne_xml.c:436
+#, fuzzy
+msgid "Unknown error"
+msgstr "Ukjend systemfeil"
+
+#: src/ne_xml.c:521
+msgid "Invalid Byte Order Mark"
+msgstr ""
+
+#: src/ne_xml.c:609
+#, c-format
+msgid "XML parse error at line %d: %s."
+msgstr "XML-tolkingsfeil på linje %d: %s."
+
+#: src/ne_xmlreq.c:31
+#, fuzzy, c-format
+msgid "Could not parse response: %s"
+msgstr "Klarte ikkje lesa «LIST»-svar."
diff --git a/po/ru.po b/po/ru.po
new file mode 100644
index 0000000..e23887b
--- /dev/null
+++ b/po/ru.po
@@ -0,0 +1,331 @@
+# SOME DESCRIPTIVE TITLE.
+# Copyright (C) Michael Sobolev, 1999
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: sitecopy 0.11.5\n"
+"Report-Msgid-Bugs-To: neon@webdav.org\n"
+"POT-Creation-Date: 2005-08-14 22:46+0100\n"
+"PO-Revision-Date: 2002-11-11 14:28+0000\n"
+"Last-Translator: Michael Sobolev <sitecopy@lyra.org>\n"
+"Language-Team: ru\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=koi8-r\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: src/ne_207.c:188
+#, c-format
+msgid ""
+"Invalid HTTP status line in status element at line %d of response:\n"
+"Status line was: %s"
+msgstr ""
+
+#: src/ne_auth.c:124
+msgid "Server was not authenticated correctly."
+msgstr ""
+
+#: src/ne_auth.c:128
+msgid "Proxy server was not authenticated correctly."
+msgstr ""
+
+#: src/ne_auth.c:431
+#, c-format
+msgid "GSSAPI authentication error (%s)"
+msgstr ""
+
+#: src/ne_basic.c:86
+#, fuzzy, c-format
+msgid "Could not determine file size: %s"
+msgstr "%s: ïÛÉÂËÁ: îÅ ÕÄÁÌÏÓØ ÏÔËÒÙÔØ ËÏÎÆÉÇÕÒÁÃÉÏÎÎÙÊ ÆÁÊÌ: %s\n"
+
+#: src/ne_basic.c:132
+msgid "Response did not include requested range"
+msgstr ""
+
+#: src/ne_basic.c:176
+msgid "Range is not satisfiable"
+msgstr ""
+
+#: src/ne_basic.c:181
+msgid "Resource does not support ranged GETs."
+msgstr ""
+
+#: src/ne_compress.c:173
+#, fuzzy, c-format
+msgid "%s: %s"
+msgstr "%s\n"
+
+#: src/ne_compress.c:184
+#, c-format
+msgid "%s: %s (code %d)"
+msgstr ""
+
+#: src/ne_compress.c:232
+#, fuzzy
+msgid "Could not inflate data"
+msgstr "%s: ïÛÉÂËÁ: îÅ ÕÄÁÌÏÓØ ÏÔËÒÙÔØ ËÏÎÆÉÇÕÒÁÃÉÏÎÎÙÊ ÆÁÊÌ: %s\n"
+
+#: src/ne_compress.c:293
+#, fuzzy
+msgid "Could not initialize zlib"
+msgstr "%s: ïÛÉÂËÁ: îÅ ÕÄÁÌÏÓØ ÏÔËÒÙÔØ ËÏÎÆÉÇÕÒÁÃÉÏÎÎÙÊ ÆÁÊÌ: %s\n"
+
+#: src/ne_gnutls.c:434 src/ne_openssl.c:386
+msgid "Server certificate was missing commonName attribute in subject name"
+msgstr ""
+
+#: src/ne_gnutls.c:471 src/ne_openssl.c:581
+#, fuzzy, c-format
+msgid "SSL negotiation failed: %s"
+msgstr "%s: ïÛÉÂËÁ: îÅ ÕÄÁÌÏÓØ ÏÔËÒÙÔØ ËÏÎÆÉÇÕÒÁÃÉÏÎÎÙÊ ÆÁÊÌ: %s\n"
+
+#: src/ne_gnutls.c:480
+msgid "Server did not send certificate chain"
+msgstr ""
+
+#: src/ne_locks.c:591
+msgid "LOCK response missing Lock-Token header"
+msgstr ""
+
+#: src/ne_locks.c:744
+msgid "No Lock-Token header given"
+msgstr ""
+
+#: src/ne_locks.c:772
+#, c-format
+msgid "Response missing activelock for %s"
+msgstr ""
+
+#: src/ne_locks.c:816
+#, c-format
+msgid "No activelock for <%s> returned in LOCK refresh response"
+msgstr ""
+
+#: src/ne_openssl.c:169
+msgid "certificate is not yet valid"
+msgstr ""
+
+#: src/ne_openssl.c:170
+msgid "certificate has expired"
+msgstr ""
+
+#: src/ne_openssl.c:171
+msgid "certificate issued for a different hostname"
+msgstr ""
+
+#: src/ne_openssl.c:172
+msgid "issuer is not trusted"
+msgstr ""
+
+#: src/ne_openssl.c:177
+msgid "Server certificate verification failed: "
+msgstr ""
+
+#: src/ne_openssl.c:195
+msgid "[invalid date]"
+msgstr ""
+
+#: src/ne_openssl.c:418
+#, c-format
+msgid "Certificate verification error: %s"
+msgstr ""
+
+#: src/ne_openssl.c:600
+msgid "SSL server did not present certificate"
+msgstr ""
+
+#: src/ne_openssl.c:609
+msgid "Server certificate changed: connection intercepted?"
+msgstr ""
+
+#: src/ne_props.c:372 src/ne_props.c:412
+msgid "Response exceeds maximum property count"
+msgstr ""
+
+#: src/ne_redirect.c:92
+#, fuzzy
+msgid "Could not parse redirect location."
+msgstr "%s: ïÛÉÂËÁ: îÅ ÕÄÁÌÏÓØ ÏÔËÒÙÔØ ËÏÎÆÉÇÕÒÁÃÉÏÎÎÙÊ ÆÁÊÌ: %s\n"
+
+#: src/ne_request.c:224
+#, c-format
+msgid "%s: connection was closed by proxy server."
+msgstr ""
+
+#: src/ne_request.c:227
+#, c-format
+msgid "%s: connection was closed by server."
+msgstr ""
+
+#: src/ne_request.c:232
+#, c-format
+msgid "%s: connection timed out."
+msgstr ""
+
+#: src/ne_request.c:380
+msgid "offset invalid"
+msgstr ""
+
+#: src/ne_request.c:383
+#, fuzzy
+msgid "Could not seek to offset %"
+msgstr "%s: ïÛÉÂËÁ: îÅ ÕÄÁÌÏÓØ ÏÔËÒÙÔØ ËÏÎÆÉÇÕÒÁÃÉÏÎÎÙÊ ÆÁÊÌ: %s\n"
+
+#: src/ne_request.c:384
+#, fuzzy, c-format
+msgid " of request body file: %s"
+msgstr "%s: ïÛÉÂËÁ: îÅ ÕÄÁÌÏÓØ ÏÔËÒÙÔØ ËÏÎÆÉÇÕÒÁÃÉÏÎÎÙÊ ÆÁÊÌ: %s\n"
+
+#: src/ne_request.c:428
+msgid "Could not send request body"
+msgstr ""
+
+#: src/ne_request.c:772
+msgid "Could not read chunk size"
+msgstr ""
+
+#: src/ne_request.c:779
+#, fuzzy
+msgid "Could not parse chunk size"
+msgstr "%s: ïÛÉÂËÁ: îÅ ÕÄÁÌÏÓØ ÏÔËÒÙÔØ ËÏÎÆÉÇÕÒÁÃÉÏÎÎÙÊ ÆÁÊÌ: %s\n"
+
+#: src/ne_request.c:816
+msgid "Could not read response body"
+msgstr ""
+
+#: src/ne_request.c:832
+#, fuzzy
+msgid "Could not read chunk delimiter"
+msgstr "%s: ïÛÉÂËÁ: îÅ ÕÄÁÌÏÓØ ÏÔËÒÙÔØ ËÏÎÆÉÇÕÒÁÃÉÏÎÎÙÊ ÆÁÊÌ: %s\n"
+
+#: src/ne_request.c:835
+msgid "Chunk delimiter was invalid"
+msgstr ""
+
+#: src/ne_request.c:941
+msgid "Could not read status line"
+msgstr ""
+
+#: src/ne_request.c:952
+#, fuzzy
+msgid "Could not parse response status line."
+msgstr "%s: ïÛÉÂËÁ: îÅ ÕÄÁÌÏÓØ ÏÔËÒÙÔØ ËÏÎÆÉÇÕÒÁÃÉÏÎÎÙÊ ÆÁÊÌ: %s\n"
+
+#: src/ne_request.c:963
+#, fuzzy
+msgid "Could not read interim response headers"
+msgstr "%s: ïÛÉÂËÁ: îÅ ÕÄÁÌÏÓØ ÏÔËÒÙÔØ ËÏÎÆÉÇÕÒÁÃÉÏÎÎÙÊ ÆÁÊÌ: %s\n"
+
+#: src/ne_request.c:997
+msgid "Could not send request"
+msgstr ""
+
+#: src/ne_request.c:1045 src/ne_request.c:1063 src/ne_request.c:1073
+msgid "Error reading response headers"
+msgstr ""
+
+#: src/ne_request.c:1091
+msgid "Response header too long"
+msgstr ""
+
+#: src/ne_request.c:1173
+msgid "Response exceeded maximum number of header fields."
+msgstr ""
+
+#: src/ne_request.c:1190
+#, fuzzy, c-format
+msgid "Could not resolve hostname `%s': %s"
+msgstr "%s: ïÛÉÂËÁ: îÅ ÕÄÁÌÏÓØ ÏÔËÒÙÔØ ËÏÎÆÉÇÕÒÁÃÉÏÎÎÙÊ ÆÁÊÌ: %s.\n"
+
+#: src/ne_request.c:1300
+msgid "Invalid Content-Length in response"
+msgstr ""
+
+#: src/ne_request.c:1362
+#, fuzzy, c-format
+msgid "Could not write to file: %s"
+msgstr "%s: ïÛÉÂËÁ: îÅ ÕÄÁÌÏÓØ ÏÔËÒÙÔØ ËÏÎÆÉÇÕÒÁÃÉÏÎÎÙÊ ÆÁÊÌ: %s\n"
+
+#: src/ne_request.c:1435
+msgid "Could not create SSL connection through proxy server"
+msgstr ""
+
+#: src/ne_request.c:1481
+#, fuzzy
+msgid "Could not create socket"
+msgstr "%s: ïÛÉÂËÁ: îÅ ÕÄÁÌÏÓØ ÏÔËÒÙÔØ ËÏÎÆÉÇÕÒÁÃÉÏÎÎÙÊ ÆÁÊÌ: %s\n"
+
+#: src/ne_request.c:1526
+msgid "Could not connect to server"
+msgstr ""
+
+#: src/ne_request.c:1529
+msgid "Could not connect to proxy server"
+msgstr ""
+
+#: src/ne_socket.c:490 src/ne_socket.c:538 src/ne_socket.c:641
+msgid "Connection closed"
+msgstr ""
+
+#: src/ne_socket.c:548
+msgid "Secure connection truncated"
+msgstr ""
+
+#: src/ne_socket.c:560 src/ne_socket.c:645 src/ne_socket.c:650
+#, c-format
+msgid "SSL error: %s"
+msgstr ""
+
+#: src/ne_socket.c:563
+#, c-format
+msgid "SSL error code %d/%d/%lu"
+msgstr ""
+
+#: src/ne_socket.c:745
+msgid "Line too long"
+msgstr ""
+
+#: src/ne_socket.c:885 src/ne_socket.c:891
+msgid "Host not found"
+msgstr ""
+
+#: src/ne_socket.c:1001
+msgid "Socket descriptor number exceeds FD_SETSIZE"
+msgstr ""
+
+#: src/ne_socket.c:1161
+msgid "SSL disabled due to lack of entropy"
+msgstr ""
+
+#: src/ne_socket.c:1168
+msgid "SSL disabled due to library version mismatch"
+msgstr ""
+
+#: src/ne_socket.c:1174
+msgid "Could not create SSL structure"
+msgstr ""
+
+#: src/ne_xml.c:280
+#, c-format
+msgid "XML parse error at line %d: invalid element name"
+msgstr ""
+
+#: src/ne_xml.c:436
+#, fuzzy
+msgid "Unknown error"
+msgstr "îÅÉÚ×ÅÓÔÎÁÑ ÓÉÓÔÅÍÎÁÑ ÏÛÉÂËÁ"
+
+#: src/ne_xml.c:521
+msgid "Invalid Byte Order Mark"
+msgstr ""
+
+#: src/ne_xml.c:609
+#, c-format
+msgid "XML parse error at line %d: %s."
+msgstr ""
+
+#: src/ne_xmlreq.c:31
+#, fuzzy, c-format
+msgid "Could not parse response: %s"
+msgstr "%s: ïÛÉÂËÁ: îÅ ÕÄÁÌÏÓØ ÏÔËÒÙÔØ ËÏÎÆÉÇÕÒÁÃÉÏÎÎÙÊ ÆÁÊÌ: %s\n"
diff --git a/po/tr.po b/po/tr.po
new file mode 100644
index 0000000..f4c3272
--- /dev/null
+++ b/po/tr.po
@@ -0,0 +1,340 @@
+# sitecopy localization for turkish (tr)
+# Copyright (C) 2001 Free Software Foundation, Inc.
+# A. Sinan Unur <sinan@unur.com>, 2001.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: sitecopy-0.10.10\n"
+"Report-Msgid-Bugs-To: neon@webdav.org\n"
+"POT-Creation-Date: 2005-08-14 22:46+0100\n"
+"PO-Revision-Date: 2001-01-03 HO:MI+ZONE\n"
+"Last-Translator: A. Sinan Unur <sinan@unur.com>\n"
+"Language-Team: tr\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=iso-8859-9\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: src/ne_207.c:188
+#, c-format
+msgid ""
+"Invalid HTTP status line in status element at line %d of response:\n"
+"Status line was: %s"
+msgstr ""
+"Invalid HTTP status line in status element at line %d of response:\n"
+"Status line was: %s"
+
+#: src/ne_auth.c:124
+msgid "Server was not authenticated correctly."
+msgstr "Server was not authenticated correctly."
+
+#: src/ne_auth.c:128
+msgid "Proxy server was not authenticated correctly."
+msgstr "Proxy server was not authenticated correctly."
+
+#: src/ne_auth.c:431
+#, c-format
+msgid "GSSAPI authentication error (%s)"
+msgstr ""
+
+#: src/ne_basic.c:86
+#, fuzzy, c-format
+msgid "Could not determine file size: %s"
+msgstr "Dosya açýlamadý: "
+
+#: src/ne_basic.c:132
+msgid "Response did not include requested range"
+msgstr ""
+
+#: src/ne_basic.c:176
+msgid "Range is not satisfiable"
+msgstr ""
+
+#: src/ne_basic.c:181
+#, fuzzy
+msgid "Resource does not support ranged GETs."
+msgstr "Sunucu kýsmi GET iþlemini desteklemiyor."
+
+#: src/ne_compress.c:173
+#, fuzzy, c-format
+msgid "%s: %s"
+msgstr "%s: Hata: %s\n"
+
+#: src/ne_compress.c:184
+#, c-format
+msgid "%s: %s (code %d)"
+msgstr ""
+
+#: src/ne_compress.c:232
+#, fuzzy
+msgid "Could not inflate data"
+msgstr "Dosya açýlamadý: "
+
+#: src/ne_compress.c:293
+#, fuzzy
+msgid "Could not initialize zlib"
+msgstr "Dosyaya yazým yapýlamadý: "
+
+#: src/ne_gnutls.c:434 src/ne_openssl.c:386
+msgid "Server certificate was missing commonName attribute in subject name"
+msgstr ""
+
+#: src/ne_gnutls.c:471 src/ne_openssl.c:581
+#, fuzzy, c-format
+msgid "SSL negotiation failed: %s"
+msgstr "%s dosyasýna yazým yapýlamadý"
+
+#: src/ne_gnutls.c:480
+msgid "Server did not send certificate chain"
+msgstr ""
+
+#: src/ne_locks.c:591
+msgid "LOCK response missing Lock-Token header"
+msgstr ""
+
+#: src/ne_locks.c:744
+msgid "No Lock-Token header given"
+msgstr ""
+
+#: src/ne_locks.c:772
+#, c-format
+msgid "Response missing activelock for %s"
+msgstr ""
+
+#: src/ne_locks.c:816
+#, c-format
+msgid "No activelock for <%s> returned in LOCK refresh response"
+msgstr ""
+
+#: src/ne_openssl.c:169
+msgid "certificate is not yet valid"
+msgstr ""
+
+#: src/ne_openssl.c:170
+msgid "certificate has expired"
+msgstr ""
+
+#: src/ne_openssl.c:171
+msgid "certificate issued for a different hostname"
+msgstr ""
+
+#: src/ne_openssl.c:172
+msgid "issuer is not trusted"
+msgstr ""
+
+#: src/ne_openssl.c:177
+msgid "Server certificate verification failed: "
+msgstr ""
+
+#: src/ne_openssl.c:195
+msgid "[invalid date]"
+msgstr ""
+
+#: src/ne_openssl.c:418
+#, c-format
+msgid "Certificate verification error: %s"
+msgstr ""
+
+#: src/ne_openssl.c:600
+msgid "SSL server did not present certificate"
+msgstr ""
+
+#: src/ne_openssl.c:609
+msgid "Server certificate changed: connection intercepted?"
+msgstr ""
+
+#: src/ne_props.c:372 src/ne_props.c:412
+msgid "Response exceeds maximum property count"
+msgstr ""
+
+#: src/ne_redirect.c:92
+#, fuzzy
+msgid "Could not parse redirect location."
+msgstr "Durum satýrý anlaþýlamadý."
+
+#: src/ne_request.c:224
+#, c-format
+msgid "%s: connection was closed by proxy server."
+msgstr "%s: baðlantý ara sunucu tarafinden kesildi."
+
+#: src/ne_request.c:227
+#, c-format
+msgid "%s: connection was closed by server."
+msgstr "%s: baðlantý sunucu tarafinden kesildi."
+
+#: src/ne_request.c:232
+#, c-format
+msgid "%s: connection timed out."
+msgstr "%s: baðlantý bekleme sýnýrý aþýldý."
+
+#: src/ne_request.c:380
+msgid "offset invalid"
+msgstr ""
+
+#: src/ne_request.c:383
+#, fuzzy
+msgid "Could not seek to offset %"
+msgstr "%s dosyasýna yazým yapýlamadý"
+
+#: src/ne_request.c:384
+#, fuzzy, c-format
+msgid " of request body file: %s"
+msgstr "%s dosyasýna yazým yapýlamadý"
+
+#: src/ne_request.c:428
+msgid "Could not send request body"
+msgstr "Ýstek metni gönderilemedi"
+
+#: src/ne_request.c:772
+msgid "Could not read chunk size"
+msgstr "Parça boyutu öðrenilemedi"
+
+#: src/ne_request.c:779
+msgid "Could not parse chunk size"
+msgstr "Parça boyutu anlaþýlamadý"
+
+#: src/ne_request.c:816
+msgid "Could not read response body"
+msgstr "Yanýt metni okunamadý"
+
+#: src/ne_request.c:832
+#, fuzzy
+msgid "Could not read chunk delimiter"
+msgstr "Parça boyutu öðrenilemedi"
+
+#: src/ne_request.c:835
+msgid "Chunk delimiter was invalid"
+msgstr ""
+
+#: src/ne_request.c:941
+msgid "Could not read status line"
+msgstr "Durum satýrý okunamadý"
+
+#: src/ne_request.c:952
+msgid "Could not parse response status line."
+msgstr "Durum satýrý anlaþýlamadý."
+
+#: src/ne_request.c:963
+#, fuzzy
+msgid "Could not read interim response headers"
+msgstr "Yanýt metni okunamadý"
+
+#: src/ne_request.c:997
+msgid "Could not send request"
+msgstr "Ýstek gönderilemedi"
+
+#: src/ne_request.c:1045 src/ne_request.c:1063 src/ne_request.c:1073
+msgid "Error reading response headers"
+msgstr "Yanýt baþlýklarý okunurken hata"
+
+#: src/ne_request.c:1091
+msgid "Response header too long"
+msgstr "Yanýt baþlýðý çok uzun"
+
+#: src/ne_request.c:1173
+msgid "Response exceeded maximum number of header fields."
+msgstr ""
+
+#: src/ne_request.c:1190
+#, fuzzy, c-format
+msgid "Could not resolve hostname `%s': %s"
+msgstr "%s: Hata: %s sunucusunun adresi bulunamadý.\n"
+
+#: src/ne_request.c:1300
+msgid "Invalid Content-Length in response"
+msgstr ""
+
+#: src/ne_request.c:1362
+#, c-format
+msgid "Could not write to file: %s"
+msgstr "%s dosyasýna yazým yapýlamadý"
+
+#: src/ne_request.c:1435
+msgid "Could not create SSL connection through proxy server"
+msgstr "Ara sunucu üzerinden SSL baðlantýsý kurulamadý"
+
+#: src/ne_request.c:1481
+#, fuzzy
+msgid "Could not create socket"
+msgstr "SSL baðlantýsý kurulamadý"
+
+#: src/ne_request.c:1526
+msgid "Could not connect to server"
+msgstr "Sunucuyla baðlantý kurulamadý"
+
+#: src/ne_request.c:1529
+msgid "Could not connect to proxy server"
+msgstr "Ara sunucuyla baðlantý kurulamadý"
+
+#: src/ne_socket.c:490 src/ne_socket.c:538 src/ne_socket.c:641
+#, fuzzy
+msgid "Connection closed"
+msgstr "Baðlantý sunucu tarafýndan kesildi"
+
+#: src/ne_socket.c:548
+#, fuzzy
+msgid "Secure connection truncated"
+msgstr "Baðlantý süre sýnýrý aþýldý."
+
+#: src/ne_socket.c:560 src/ne_socket.c:645 src/ne_socket.c:650
+#, fuzzy, c-format
+msgid "SSL error: %s"
+msgstr "%s: Hata: %s\n"
+
+#: src/ne_socket.c:563
+#, c-format
+msgid "SSL error code %d/%d/%lu"
+msgstr ""
+
+#: src/ne_socket.c:745
+msgid "Line too long"
+msgstr "Satýr çok uzun"
+
+#: src/ne_socket.c:885 src/ne_socket.c:891
+msgid "Host not found"
+msgstr "Sunucu bulunamadý"
+
+#: src/ne_socket.c:1001
+msgid "Socket descriptor number exceeds FD_SETSIZE"
+msgstr ""
+
+#: src/ne_socket.c:1161
+msgid "SSL disabled due to lack of entropy"
+msgstr ""
+
+#: src/ne_socket.c:1168
+msgid "SSL disabled due to library version mismatch"
+msgstr ""
+
+#: src/ne_socket.c:1174
+#, fuzzy
+msgid "Could not create SSL structure"
+msgstr "SSL baðlantýsý kurulamadý"
+
+#: src/ne_xml.c:280
+#, fuzzy, c-format
+msgid "XML parse error at line %d: invalid element name"
+msgstr ""
+"%s: kurulum dosyasýnda bozukluk var. satýr %d:\n"
+"%s\n"
+
+#: src/ne_xml.c:436
+#, fuzzy
+msgid "Unknown error"
+msgstr "Bilinmeyen sistem hatasý"
+
+#: src/ne_xml.c:521
+msgid "Invalid Byte Order Mark"
+msgstr ""
+
+#: src/ne_xml.c:609
+#, fuzzy, c-format
+msgid "XML parse error at line %d: %s."
+msgstr ""
+"%s: kurulum dosyasýnda bozukluk var. satýr %d:\n"
+"%s\n"
+
+#: src/ne_xmlreq.c:31
+#, fuzzy, c-format
+msgid "Could not parse response: %s"
+msgstr "Yanýt metni okunamadý"
diff --git a/src/Makefile.in b/src/Makefile.in
index 503da2f..7e4db76 100644
--- a/src/Makefile.in
+++ b/src/Makefile.in
@@ -40,7 +40,8 @@ NEON_BASEOBJS = ne_request.@NEON_OBJEXT@ ne_session.@NEON_OBJEXT@ \
ne_uri.@NEON_OBJEXT@ ne_dates.@NEON_OBJEXT@ ne_alloc.@NEON_OBJEXT@ \
ne_md5.@NEON_OBJEXT@ ne_utils.@NEON_OBJEXT@ \
ne_socket.@NEON_OBJEXT@ ne_auth.@NEON_OBJEXT@ \
- ne_redirect.@NEON_OBJEXT@ ne_compress.@NEON_OBJEXT@
+ ne_redirect.@NEON_OBJEXT@ ne_compress.@NEON_OBJEXT@ \
+ ne_i18n.@NEON_OBJEXT@
NEON_DAVOBJS = $(NEON_BASEOBJS) \
ne_207.@NEON_OBJEXT@ ne_xml.@NEON_OBJEXT@ \
@@ -92,10 +93,9 @@ check-incl:
$(COMPILE) -c checkincl.c -o checkincl.o || exit 1; done
neonreq = ne_request.h ne_session.h ne_utils.h ne_string.h ne_socket.h \
- ne_alloc.h $(top_builddir)/config.h ne_private.h
+ ne_alloc.h $(top_builddir)/config.h ne_internal.h
-ne_request.@NEON_OBJEXT@: ne_request.c $(neonreq) ne_i18n.h ne_private.h \
- ne_uri.h
+ne_request.@NEON_OBJEXT@: ne_request.c $(neonreq) ne_private.h ne_uri.h
ne_session.@NEON_OBJEXT@: ne_session.c ne_session.h ne_alloc.h \
ne_utils.h ne_private.h $(top_builddir)/config.h
@@ -109,7 +109,7 @@ ne_gnutls.@NEON_OBJEXT@: ne_gnutls.c ne_session.h ne_ssl.h ne_privssl.h \
ne_socket.@NEON_OBJEXT@: ne_socket.c ne_socket.h $(top_builddir)/config.h \
ne_privssl.h ne_string.h
-ne_auth.@NEON_OBJEXT@: ne_auth.c ne_auth.h $(neonreq) \
+ne_auth.@NEON_OBJEXT@: ne_auth.c ne_auth.h $(neonreq) ne_private.h \
ne_dates.h ne_md5.h ne_uri.h
ne_basic.@NEON_OBJEXT@: ne_basic.c ne_basic.h $(neonreq)
@@ -121,7 +121,7 @@ ne_xml.@NEON_OBJEXT@: ne_xml.c ne_xml.h ne_string.h ne_utils.h \
$(top_builddir)/config.h
ne_207.@NEON_OBJEXT@: ne_207.c ne_207.h ne_xml.h \
- $(top_builddir)/config.h ne_utils.h ne_i18n.h
+ $(top_builddir)/config.h ne_utils.h ne_internal.h
ne_string.@NEON_OBJEXT@: ne_string.c ne_string.h ne_alloc.h \
$(top_builddir)/config.h
@@ -150,3 +150,5 @@ ne_acl.@NEON_OBJEXT@: ne_acl.c ne_acl.h $(neonreq)
ne_xmlreq.@NEON_OBJEXT@: ne_xmlreq.c ne_xmlreq.h ne_xml.h $(neonreq)
ne_stubssl.@NEON_OBJEXT@: ne_stubssl.c $(neonreq)
+
+ne_i18n.@NEON_OBJEXT@: ne_i18n.c ne_i18n.h $(top_builddir)/config.h
diff --git a/src/ne_207.c b/src/ne_207.c
index ad3b272..13611f2 100644
--- a/src/ne_207.c
+++ b/src/ne_207.c
@@ -34,7 +34,7 @@
#include "ne_uri.h"
#include "ne_basic.h"
-#include "ne_i18n.h"
+#include "ne_internal.h"
struct ne_207_parser_s {
ne_207_start_response *start_response;
diff --git a/src/ne_auth.c b/src/ne_auth.c
index 480968c..da7ea6d 100644
--- a/src/ne_auth.c
+++ b/src/ne_auth.c
@@ -57,7 +57,7 @@
#include "ne_utils.h"
#include "ne_alloc.h"
#include "ne_uri.h"
-#include "ne_i18n.h"
+#include "ne_internal.h"
#ifdef HAVE_GSSAPI
#ifdef HAVE_GSSAPI_GSSAPI_H
diff --git a/src/ne_basic.c b/src/ne_basic.c
index de210e9..7d8b264 100644
--- a/src/ne_basic.c
+++ b/src/ne_basic.c
@@ -48,7 +48,7 @@
#endif
#include "ne_dates.h"
-#include "ne_i18n.h"
+#include "ne_internal.h"
int ne_getmodtime(ne_session *sess, const char *uri, time_t *modtime)
{
diff --git a/src/ne_compress.c b/src/ne_compress.c
index 7e248d3..a5d42b4 100644
--- a/src/ne_compress.c
+++ b/src/ne_compress.c
@@ -31,7 +31,7 @@
#include "ne_request.h"
#include "ne_compress.h"
#include "ne_utils.h"
-#include "ne_i18n.h"
+#include "ne_internal.h"
#ifdef NE_HAVE_ZLIB
diff --git a/src/ne_gnutls.c b/src/ne_gnutls.c
index 441d551..4a3f6af 100644
--- a/src/ne_gnutls.c
+++ b/src/ne_gnutls.c
@@ -40,7 +40,7 @@
#include "ne_ssl.h"
#include "ne_string.h"
#include "ne_session.h"
-#include "ne_i18n.h"
+#include "ne_internal.h"
#include "ne_private.h"
#include "ne_privssl.h"
diff --git a/src/ne_i18n.c b/src/ne_i18n.c
index afbb3f9..608bed2 100644
--- a/src/ne_i18n.c
+++ b/src/ne_i18n.c
@@ -1,6 +1,6 @@
/*
Internationalization of neon
- Copyright (C) 1999-2003, Joe Orton <joe@manyfish.co.uk>
+ Copyright (C) 1999-2005, Joe Orton <joe@manyfish.co.uk>
This library is free software; you can redistribute it and/or
modify it under the terms of the GNU Library General Public
@@ -19,14 +19,22 @@
*/
-void neon_i18n_init(void)
+#include "config.h"
+
+#include "ne_i18n.h"
+
+#ifdef HAVE_LIBINTL_H
+#include <libintl.h>
+#endif
+
+void ne_i18n_init(void)
{
-#if defined(ENABLE_NLS) && defined(NEON_IS_LIBRARY)
- /* if neon is build bundled in (i.e., not as a standalone
- * library), then there is probably no point in this, since the
- * messages won't be pointing in the right direction.
- * there's not really any point in doing this if neon is
- * a library since the messages aren't i18n'ized, but... */
+#if defined(NE_HAVE_I18N) && defined(NEON_IS_LIBRARY)
+ /* The bindtextdomain call is only enabled if neon is built as a
+ * library rather than as a bundled source; it would be possible
+ * in the future to allow it for bundled builds too, if the neon
+ * message catalogs could be installed alongside the app's own
+ * message catalogs. */
bindtextdomain("neon", LOCALEDIR);
#endif
}
diff --git a/src/ne_i18n.h b/src/ne_i18n.h
index 2b715a8..e1d8469 100644
--- a/src/ne_i18n.h
+++ b/src/ne_i18n.h
@@ -1,6 +1,6 @@
/*
Internationalization of neon
- Copyright (C) 1999-2002, Joe Orton <joe@manyfish.co.uk>
+ Copyright (C) 2005, Joe Orton <joe@manyfish.co.uk>
This library is free software; you can redistribute it and/or
modify it under the terms of the GNU Library General Public
@@ -19,19 +19,16 @@
*/
-#ifndef NEON_I18N_H
-#define NEON_I18N_H
+#ifndef NE_I18N_H
+#define NE_I18N_H
-#undef _
-#ifdef ENABLE_NLS
-#include <libintl.h>
-#define _(str) gettext(str)
-#else
-#define _(str) (str)
-#endif /* ENABLE_NLS */
-#define N_(str) (str)
+/* Initialize translated error messages within neon. This call is
+ * strictly only necessary if this copy of the neon library has been
+ * installed into a different prefix than the gettext() implementation
+ * on which it depends for i18n purposes. If this call is not made,
+ * the message catalogs will not be found in that case, but the
+ * library will operate otherwise correctly (albeit giving
+ * English-only error messages). */
+void ne_i18n_init(void);
-/* Initialize i18n in neon */
-void neon_i18n_init(void);
-
-#endif /* NEON_I18N_H */
+#endif /* NE_I18N_H */
diff --git a/src/ne_internal.h b/src/ne_internal.h
new file mode 100644
index 0000000..4e46ab9
--- /dev/null
+++ b/src/ne_internal.h
@@ -0,0 +1,39 @@
+/*
+ Global interfaces private to neon.
+ Copyright (C) 2005, Joe Orton <joe@manyfish.co.uk>
+
+ This library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Library General Public
+ License as published by the Free Software Foundation; either
+ version 2 of the License, or (at your option) any later version.
+
+ This library 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
+ Library General Public License for more details.
+
+ You should have received a copy of the GNU Library General Public
+ License along with this library; if not, write to the Free
+ Software Foundation, Inc., 59 Temple Place - Suite 330, Boston,
+ MA 02111-1307, USA
+
+*/
+
+/* NOTE WELL: The interfaces defined in this file are internal to neon
+ * and MUST NOT be used by neon-based applications. */
+
+#ifndef NE_INTERNAL_H
+#define NE_INTERNAL_H 1
+
+#include "config.h"
+
+#undef _
+#ifdef NE_HAVE_I18N
+#include <libintl.h>
+#define _(str) dgettext(PACKAGE_NAME, str)
+#else
+#define _(str) (str)
+#endif /* NE_ENABLE_NLS */
+#define N_(str) (str)
+
+#endif /* NE_INTERNAL_H */
diff --git a/src/ne_locks.c b/src/ne_locks.c
index a30b0a5..54c0e0f 100644
--- a/src/ne_locks.c
+++ b/src/ne_locks.c
@@ -44,7 +44,7 @@
#include "ne_basic.h"
#include "ne_props.h"
#include "ne_207.h"
-#include "ne_i18n.h"
+#include "ne_internal.h"
#include "ne_xmlreq.h"
#define HOOK_ID "http://webdav.org/neon/hooks/webdav-locking"
diff --git a/src/ne_openssl.c b/src/ne_openssl.c
index 984626b..d2cfcb8 100644
--- a/src/ne_openssl.c
+++ b/src/ne_openssl.c
@@ -40,7 +40,7 @@
#include "ne_ssl.h"
#include "ne_string.h"
#include "ne_session.h"
-#include "ne_i18n.h"
+#include "ne_internal.h"
#include "ne_private.h"
#include "ne_privssl.h"
diff --git a/src/ne_props.c b/src/ne_props.c
index 2e73f48..02692b5 100644
--- a/src/ne_props.c
+++ b/src/ne_props.c
@@ -33,7 +33,7 @@
#include "ne_props.h"
#include "ne_basic.h"
#include "ne_locks.h"
-#include "ne_i18n.h"
+#include "ne_internal.h"
/* don't store flat props with a value > 10K */
#define MAX_FLATPROP_LEN (102400)
diff --git a/src/ne_redirect.c b/src/ne_redirect.c
index 5a72a83..a127ce0 100644
--- a/src/ne_redirect.c
+++ b/src/ne_redirect.c
@@ -33,7 +33,7 @@
#include "ne_alloc.h"
#include "ne_uri.h"
#include "ne_redirect.h"
-#include "ne_i18n.h"
+#include "ne_internal.h"
#include "ne_string.h"
#define REDIRECT_ID "http://www.webdav.org/neon/hooks/http-redirect"
diff --git a/src/ne_request.c b/src/ne_request.c
index b98a53b..2f61701 100644
--- a/src/ne_request.c
+++ b/src/ne_request.c
@@ -47,7 +47,7 @@
#include <unistd.h>
#endif
-#include "ne_i18n.h"
+#include "ne_internal.h"
#include "ne_alloc.h"
#include "ne_request.h"
diff --git a/src/ne_session.c b/src/ne_session.c
index 2f9debf..707be3d 100644
--- a/src/ne_session.c
+++ b/src/ne_session.c
@@ -36,7 +36,7 @@
#include "ne_session.h"
#include "ne_alloc.h"
#include "ne_utils.h"
-#include "ne_i18n.h"
+#include "ne_internal.h"
#include "ne_string.h"
#include "ne_private.h"
diff --git a/src/ne_socket.c b/src/ne_socket.c
index ed21138..ef332cf 100644
--- a/src/ne_socket.c
+++ b/src/ne_socket.c
@@ -129,7 +129,7 @@ typedef struct in_addr ne_inet_addr;
#define USE_CHECK_IPV6
#endif
-#include "ne_i18n.h"
+#include "ne_internal.h"
#include "ne_utils.h"
#include "ne_string.h"
#include "ne_socket.h"
diff --git a/src/ne_xml.c b/src/ne_xml.c
index cfdb558..2b32fc8 100644
--- a/src/ne_xml.c
+++ b/src/ne_xml.c
@@ -31,7 +31,7 @@
#include <strings.h>
#endif
-#include "ne_i18n.h"
+#include "ne_internal.h"
#include "ne_alloc.h"
#include "ne_xml.h"
diff --git a/src/ne_xmlreq.c b/src/ne_xmlreq.c
index f676dd1..4aefc83 100644
--- a/src/ne_xmlreq.c
+++ b/src/ne_xmlreq.c
@@ -22,7 +22,7 @@
#include "config.h"
#include "ne_xmlreq.h"
-#include "ne_i18n.h"
+#include "ne_internal.h"
/* Handle an XML response parse error, setting session error string
* and closing the connection. */
diff --git a/test/common/tests.c b/test/common/tests.c
index d94ab54..31d3644 100644
--- a/test/common/tests.c
+++ b/test/common/tests.c
@@ -1,6 +1,6 @@
/*
Stupidly simple test framework
- Copyright (C) 2001-2002, 2004, Joe Orton <joe@manyfish.co.uk>
+ Copyright (C) 2001-2002, 2004, 2005, Joe Orton <joe@manyfish.co.uk>
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
@@ -40,10 +40,14 @@
#ifdef HAVE_ERRNO_H
#include <errno.h>
#endif
+#ifdef HAVE_LOCALE_H
+#include <locale.h>
+#endif
#include "ne_string.h"
#include "ne_utils.h"
#include "ne_socket.h"
+#include "ne_i18n.h"
#include "tests.h"
#include "child.h"
@@ -151,6 +155,12 @@ int main(int argc, char *argv[])
test_suite++;
}
+#ifdef HAVE_SETLOCALE
+ setlocale(LC_MESSAGES, "");
+#endif
+
+ ne_i18n_init();
+
#if defined(HAVE_ISATTY) && defined(STDOUT_FILENO)
if (isatty(STDOUT_FILENO)) {
use_colour = 1;
diff --git a/test/run.sh b/test/run.sh
index f05c321..c45a5c9 100644
--- a/test/run.sh
+++ b/test/run.sh
@@ -5,6 +5,9 @@ rm -f debug.log child.log
ulimit -c unlimited
ulimit -v 10240
+unset LANG
+unset LC_MESSAGES
+
# enable an safety-checking malloc in glibc which will abort() if
# heap corruption is detected.
MALLOC_CHECK_=2