summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMotonobu Takahashi <monyo@samba.org>2001-09-24 16:13:06 +0000
committerMotonobu Takahashi <monyo@samba.org>2001-09-24 16:13:06 +0000
commit1207c4320490a1eb80bc88aacd57b8eccb3d8d4f (patch)
treeb94df2e4039f20fa1eb68455eb9df119495ea9d1
parentb8369b62c2dca96e486f6bce0ba4daf9f3eae3ad (diff)
downloadsamba-1207c4320490a1eb80bc88aacd57b8eccb3d8d4f.tar.gz
samba-1207c4320490a1eb80bc88aacd57b8eccb3d8d4f.tar.bz2
samba-1207c4320490a1eb80bc88aacd57b8eccb3d8d4f.zip
added files and directories to support gettext() feature
Also added some po files to support: English, Japanese, Polish, Turlish (This used to be commit 736b713c49ebe45923169b70f5c47f5afda8d94a)
-rw-r--r--source3/intl/ChangeLog1086
-rw-r--r--source3/intl/Makefile.in222
-rw-r--r--source3/intl/VERSION1
-rw-r--r--source3/intl/bindtextdom.c203
-rw-r--r--source3/intl/cat-compat.c262
-rw-r--r--source3/intl/dcgettext.c659
-rw-r--r--source3/intl/dgettext.c60
-rw-r--r--source3/intl/explodename.c197
-rw-r--r--source3/intl/finddomain.c216
-rw-r--r--source3/intl/gettext.c70
-rw-r--r--source3/intl/gettext.h111
-rw-r--r--source3/intl/gettextP.h89
-rw-r--r--source3/intl/hash-string.h59
-rw-r--r--source3/intl/intl-compat.c76
-rw-r--r--source3/intl/l10nflist.c411
-rw-r--r--source3/intl/libgettext.h182
-rw-r--r--source3/intl/linux-msg.sed100
-rw-r--r--source3/intl/loadinfo.h78
-rw-r--r--source3/intl/loadmsgcat.c220
-rw-r--r--source3/intl/localealias.c438
-rw-r--r--source3/intl/po2tbl.sed.in102
-rw-r--r--source3/intl/textdomain.c108
-rw-r--r--source3/intl/xopen-msg.sed106
-rw-r--r--source3/po/Makefile.in252
-rw-r--r--source3/po/Makefile.in.in252
-rw-r--r--source3/po/POTFILES.in7
-rw-r--r--source3/po/cat-id-tbl.c433
-rw-r--r--source3/po/en.gmobin0 -> 339 bytes
-rw-r--r--source3/po/en.po1707
-rw-r--r--source3/po/i18n_swat.pot1561
-rw-r--r--source3/po/ja.gmobin0 -> 19937 bytes
-rw-r--r--source3/po/ja.po1808
-rw-r--r--source3/po/pl.gmobin0 -> 6062 bytes
-rw-r--r--source3/po/pl.po1760
-rw-r--r--source3/po/stamp-cat-id1
-rw-r--r--source3/po/tr.gmobin0 -> 22830 bytes
-rw-r--r--source3/po/tr.po1723
-rw-r--r--source3/po/zh_CN.gmobin0 -> 62 bytes
-rw-r--r--source3/po/zh_CN.po1561
39 files changed, 16121 insertions, 0 deletions
diff --git a/source3/intl/ChangeLog b/source3/intl/ChangeLog
new file mode 100644
index 0000000000..198950159d
--- /dev/null
+++ b/source3/intl/ChangeLog
@@ -0,0 +1,1086 @@
+1998-04-29 Ulrich Drepper <drepper@cygnus.com>
+
+ * intl/localealias.c (read_alias_file): Use unsigned char for
+ local variables. Remove unused variable tp.
+ * intl/l10nflist.c (_nl_normalize_codeset): Use unsigned char *
+ for type of codeset. For loosing Solaris systems.
+ * intl/loadinfo.h: Adapt prototype of _nl_normalize_codeset.
+ * intl/bindtextdom.c (BINDTEXTDOMAIN): Don't define local variable
+ len if not needed.
+ Patches by Jim Meyering.
+
+1998-04-28 Ulrich Drepper <drepper@cygnus.com>
+
+ * loadmsgcat.c (_nl_load_domain): Don't assign the element use_mmap if
+ mmap is not supported.
+
+ * hash-string.h: Don't include <values.h>.
+
+1998-04-27 Ulrich Drepper <drepper@cygnus.com>
+
+ * textdomain.c: Use strdup is available.
+
+ * localealias.c: Define HAVE_MEMPCPY so that we can use this
+ function. Define and use semapahores to protect modfication of
+ global objects when compiling for glibc. Add code to allow
+ freeing alias table.
+
+ * l10nflist.c: Don't assume stpcpy not being a macro.
+
+ * gettextP.h: Define internal_function macri if not already done.
+ Use glibc byte-swap macros instead of defining SWAP when compiled
+ for glibc.
+ (struct loaded_domain): Add elements to allow unloading.
+
+ * Makefile.in (distclean): Don't remove libintl.h here.
+
+ * bindtextdomain.c: Carry over changes from glibc. Use strdup if
+ available.
+
+ * dcgettext.c: Don't assume stpcpy not being a macro. Mark internal
+ functions. Add memory freeing code for glibc.
+
+ * dgettext.c: Update copyright.
+
+ * explodename.c: Include stdlib.h and string.h only if they exist.
+ Use strings.h eventually.
+
+ * finddomain.c: Mark internal functions. Use strdup if available.
+ Add memory freeing code for glibc.
+
+1997-10-10 20:00 Ulrich Drepper <drepper@cygnus.com>
+
+ * libgettext.h: Fix dummy textdomain and bindtextdomain macros.
+ They should return reasonable values.
+ Reported by Tom Tromey <tromey@cygnus.com>.
+
+1997-09-16 03:33 Ulrich Drepper <drepper@cygnus.com>
+
+ * libgettext.h: Define PARAMS also to `args' if __cplusplus is defined.
+ * intlh.inst.in: Likewise.
+ Reported by Jean-Marc Lasgouttes <Jean-Marc.Lasgouttes@inria.fr>.
+
+ * libintl.glibc: Update from current glibc version.
+
+1997-09-06 02:10 Ulrich Drepper <drepper@cygnus.com>
+
+ * intlh.inst.in: Reformat copyright.
+
+1997-08-19 15:22 Ulrich Drepper <drepper@cygnus.com>
+
+ * dcgettext.c (DCGETTEXT): Remove wrong comment.
+
+1997-08-16 00:13 Ulrich Drepper <drepper@cygnus.com>
+
+ * Makefile.in (install-data): Don't change directory to install.
+
+1997-08-01 14:30 Ulrich Drepper <drepper@cygnus.com>
+
+ * cat-compat.c: Fix copyright.
+
+ * localealias.c: Don't define strchr unless !HAVE_STRCHR.
+
+ * loadmsgcat.c: Update copyright. Fix typos.
+
+ * l10nflist.c: Don't define strchr unless !HAVE_STRCHR.
+ (_nl_make_l10nflist): Handle sponsor and revision correctly.
+
+ * gettext.c: Update copyright.
+ * gettext.h: Likewise.
+ * hash-string.h: Likewise.
+
+ * finddomain.c: Remoave dead code. Define strchr only if
+ !HAVE_STRCHR.
+
+ * explodename.c: Include <sys/types.h>.
+
+ * explodename.c: Reformat copyright text.
+ (_nl_explode_name): Fix typo.
+
+ * dcgettext.c: Define and use __set_errno.
+ (guess_category_value): Don't use setlocale if HAVE_LC_MESSAGES is
+ not defined.
+
+ * bindtextdom.c: Pretty printing.
+
+1997-05-01 02:25 Ulrich Drepper <drepper@cygnus.com>
+
+ * dcgettext.c (guess_category_value): Don't depend on
+ HAVE_LC_MESSAGES. We don't need the macro here.
+ Patch by Bruno Haible <haible@ilog.fr>.
+
+ * cat-compat.c (textdomain): DoN't refer to HAVE_SETLOCALE_NULL
+ macro. Instead use HAVE_LOCALE_NULL and define it when using
+ glibc, as in dcgettext.c.
+ Patch by Bruno Haible <haible@ilog.fr>.
+
+ * Makefile.in (CPPFLAGS): New variable. Reported by Franc,ois
+ Pinard.
+
+Mon Mar 10 06:51:17 1997 Ulrich Drepper <drepper@cygnus.com>
+
+ * Makefile.in: Implement handling of libtool.
+
+ * gettextP.h: Change data structures for use of generic lowlevel
+ i18n file handling.
+
+Wed Dec 4 20:21:18 1996 Ulrich Drepper <drepper@cygnus.com>
+
+ * textdomain.c: Put parentheses around arguments of memcpy macro
+ definition.
+ * localealias.c: Likewise.
+ * l10nflist.c: Likewise.
+ * finddomain.c: Likewise.
+ * bindtextdom.c: Likewise.
+ Reported by Thomas Esken.
+
+Mon Nov 25 22:57:51 1996 Ulrich Drepper <drepper@cygnus.com>
+
+ * textdomain.c: Move definition of `memcpy` macro to right
+ position.
+
+Fri Nov 22 04:01:58 1996 Ulrich Drepper <drepper@cygnus.com>
+
+ * finddomain.c [!HAVE_STRING_H && !_LIBC]: Define memcpy using
+ bcopy if not already defined. Reported by Thomas Esken.
+ * bindtextdom.c: Likewise.
+ * l10nflist.c: Likewise.
+ * localealias.c: Likewise.
+ * textdomain.c: Likewise.
+
+Tue Oct 29 11:10:27 1996 Ulrich Drepper <drepper@cygnus.com>
+
+ * Makefile.in (libdir): Change to use exec_prefix instead of
+ prefix. Reported by Knut-HåvardAksnes <etokna@eto.ericsson.se>.
+
+Sat Aug 31 03:07:09 1996 Ulrich Drepper <drepper@cygnus.com>
+
+ * l10nflist.c (_nl_normalize_codeset): We convert to lower case,
+ so don't prepend uppercase `ISO' for only numeric arg.
+
+Fri Jul 19 00:15:46 1996 Ulrich Drepper <drepper@cygnus.com>
+
+ * l10nflist.c: Move inclusion of argz.h, ctype.h, stdlib.h after
+ definition of _GNU_SOURCE. Patch by Roland McGrath.
+
+ * Makefile.in (uninstall): Fix another bug with `for' loop and
+ empty arguments. Patch by Jim Meyering. Correct name os
+ uninstalled files: no intl- prefix anymore.
+
+ * Makefile.in (install-data): Again work around shells which
+ cannot handle mpty for list. Reported by Jim Meyering.
+
+Sat Jul 13 18:11:35 1996 Ulrich Drepper <drepper@cygnus.com>
+
+ * Makefile.in (install): Split goal. Now depend on install-exec
+ and install-data.
+ (install-exec, install-data): New goals. Created from former
+ install goal.
+ Reported by Karl Berry.
+
+Sat Jun 22 04:58:14 1996 Ulrich Drepper <drepper@cygnus.com>
+
+ * Makefile.in (MKINSTALLDIRS): New variable. Path to
+ mkinstalldirs script.
+ (install): use MKINSTALLDIRS variable or if the script is not present
+ try to find it in the $top_scrdir).
+
+Wed Jun 19 02:56:56 1996 Ulrich Drepper <drepper@cygnus.com>
+
+ * l10nflist.c: Linux libc *partly* includes the argz_* functions.
+ Grr. Work around by renaming the static version and use macros
+ for renaming.
+
+Tue Jun 18 20:11:17 1996 Ulrich Drepper <drepper@cygnus.com>
+
+ * l10nflist.c: Correct presence test macros of __argz_* functions.
+
+ * l10nflist.c: Include <argz.h> based on test of it instead when
+ __argz_* functions are available.
+ Reported by Andreas Schwab.
+
+Thu Jun 13 15:17:44 1996 Ulrich Drepper <drepper@cygnus.com>
+
+ * explodename.c, l10nflist.c: Define NULL for dumb systems.
+
+Tue Jun 11 17:05:13 1996 Ulrich Drepper <drepper@cygnus.com>
+
+ * intlh.inst.in, libgettext.h (dcgettext): Rename local variable
+ result to __result to prevent name clash.
+
+ * l10nflist.c, localealias.c, dcgettext.c: Define _GNU_SOURCE to
+ get prototype for stpcpy and strcasecmp.
+
+ * intlh.inst.in, libgettext.h: Move declaration of
+ `_nl_msg_cat_cntr' outside __extension__ block to prevent warning
+ from gcc's -Wnested-extern option.
+
+Fri Jun 7 01:58:00 1996 Ulrich Drepper <drepper@cygnus.com>
+
+ * Makefile.in (install): Remove comment.
+
+Thu Jun 6 17:28:17 1996 Ulrich Drepper <drepper@cygnus.com>
+
+ * Makefile.in (install): Work around for another Buglix stupidity.
+ Always use an `else' close for `if's. Reported by Nelson Beebe.
+
+ * Makefile.in (intlh.inst): Correct typo in phony rule.
+ Reported by Nelson Beebe.
+
+Thu Jun 6 01:49:52 1996 Ulrich Drepper <drepper@cygnus.com>
+
+ * dcgettext.c (read_alias_file): Rename variable alloca_list to
+ block_list as the macro calls assume.
+ Patch by Eric Backus.
+
+ * localealias.c [!HAVE_ALLOCA]: Define alloca as macro using
+ malloc.
+ (read_alias_file): Rename varriabe alloca_list to block_list as the
+ macro calls assume.
+ Patch by Eric Backus.
+
+ * l10nflist.c: Correct conditional for <argz.h> inclusion.
+ Reported by Roland McGrath.
+
+ * Makefile.in (all): Depend on all-@USE_INCLUDED_LIBINTL@, not
+ all-@USE_NLS@.
+
+ * Makefile.in (install): intlh.inst comes from local dir, not
+ $(srcdir).
+
+ * Makefile.in (intlh.inst): Special handling of this goal. If
+ used in gettext, this is really a rul to construct this file. If
+ used in any other package it is defined as a .PHONY rule with
+ empty body.
+
+ * finddomain.c: Extract locale file information handling into
+ l10nfile.c. Rename local stpcpy__ function to stpcpy.
+
+ * dcgettext.c (stpcpy): Add local definition.
+
+ * l10nflist.c: Solve some portability problems. Patches partly by
+ Thomas Esken. Add local definition of stpcpy.
+
+Tue Jun 4 02:47:49 1996 Ulrich Drepper <drepper@cygnus.com>
+
+ * intlh.inst.in: Don't depend including <locale.h> on
+ HAVE_LOCALE_H. Instead configure must rewrite this fiile
+ depending on the result of the configure run.
+
+ * Makefile.in (install): libintl.inst is now called intlh.inst.
+ Add rules for updating intlh.inst from intlh.inst.in.
+
+ * libintl.inst: Renamed to intlh.inst.in.
+
+ * localealias.c, dcgettext.c [__GNUC__]: Define HAVE_ALLOCA to 1
+ because gcc has __buitlin_alloca.
+ Reported by Roland McGrath.
+
+Mon Jun 3 00:32:16 1996 Ulrich Drepper <drepper@cygnus.com>
+
+ * Makefile.in (installcheck): New goal to fulfill needs of
+ automake's distcheck.
+
+ * Makefile.in (install): Reorder commands so that VERSION is
+ found.
+
+ * Makefile.in (gettextsrcdir): Now use subdirectory intl/ in
+ @datadir@/gettext.
+ (COMSRCS): Add l10nfile.c.
+ (OBJECTS): Add l10nfile.o.
+ (DISTFILES): Rename to DISTFILE.normal. Remove $(DISTFILES.common).
+ (DISTFILE.gettext): Remove $(DISTFILES.common).
+ (all-gettext): Remove goal.
+ (install): If $(PACKAGE) = gettext install, otherwose do nothing. No
+ package but gettext itself should install libintl.h + headers.
+ (dist): Extend goal to work for gettext, too.
+ (dist-gettext): Remove goal.
+
+ * dcgettext.c [!HAVE_ALLOCA]: Define macro alloca by using malloc.
+
+Sun Jun 2 17:33:06 1996 Ulrich Drepper <drepper@cygnus.com>
+
+ * loadmsgcat.c (_nl_load_domain): Parameter is now comes from
+ find_l10nfile.
+
+Sat Jun 1 02:23:03 1996 Ulrich Drepper <drepper@cygnus.com>
+
+ * l10nflist.c (__argz_next): Add definition.
+
+ * dcgettext.c [!HAVE_ALLOCA]: Add code for handling missing alloca
+ code. Use new l10nfile handling.
+
+ * localealias.c [!HAVE_ALLOCA]: Add code for handling missing
+ alloca code.
+
+ * l10nflist.c: Initial revision.
+
+Tue Apr 2 18:51:18 1996 Ulrich Drepper <drepper@myware>
+
+ * Makefile.in (all-gettext): New goal. Same as all-yes.
+
+Thu Mar 28 23:01:22 1996 Karl Eichwalder <ke@ke.central.de>
+
+ * Makefile.in (gettextsrcdir): Define using @datadir@.
+
+Tue Mar 26 12:39:14 1996 Ulrich Drepper <drepper@myware>
+
+ * finddomain.c: Include <ctype.h>. Reported by Roland McGrath.
+
+Sat Mar 23 02:00:35 1996 Ulrich Drepper <drepper@myware>
+
+ * finddomain.c (stpcpy): Rename to stpcpy__ to prevent clashing
+ with external declaration.
+
+Sat Mar 2 00:47:09 1996 Ulrich Drepper <drepper@myware>
+
+ * Makefile.in (all-no): Rename from all_no.
+
+Sat Feb 17 00:25:59 1996 Ulrich Drepper <drepper@myware>
+
+ * gettextP.h [loaded_domain]: Array `successor' must now contain up
+ to 63 elements (because of codeset name normalization).
+
+ * finddomain.c: Implement codeset name normalization.
+
+Thu Feb 15 04:39:09 1996 Ulrich Drepper <drepper@myware>
+
+ * Makefile.in (all): Define to `all-@USE_NLS@'.
+ (all-yes, all_no): New goals. `all-no' is noop, `all-yes'
+ is former all.
+
+Mon Jan 15 21:46:01 1996 Howard Gayle <howard@hal.com>
+
+ * localealias.c (alias_compare): Increment string pointers in loop
+ of strcasecmp replacement.
+
+Fri Dec 29 21:16:34 1995 Ulrich Drepper <drepper@myware>
+
+ * Makefile.in (install-src): Who commented this goal out ? :-)
+
+Fri Dec 29 15:08:16 1995 Ulrich Drepper <drepper@myware>
+
+ * dcgettext.c (DCGETTEXT): Save `errno'. Failing system calls
+ should not effect it because a missing catalog is no error.
+ Reported by Harald K<o:>nig <koenig@tat.physik.uni-tuebingen.de>.
+
+Tue Dec 19 22:09:13 1995 Ulrich Drepper <drepper@myware>
+
+ * Makefile.in (Makefile): Explicitly use $(SHELL) for running
+ shell scripts.
+
+Fri Dec 15 17:34:59 1995 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
+
+ * Makefile.in (install-src): Only install library and header when
+ we use the own implementation. Don't do it when using the
+ system's gettext or catgets functions.
+
+ * dcgettext.c (find_msg): Must not swap domain->hash_size here.
+
+Sat Dec 9 16:24:37 1995 Ulrich Drepper <drepper@myware>
+
+ * localealias.c, libintl.inst, libgettext.h, hash-string.h,
+ gettextP.h, finddomain.c, dcgettext.c, cat-compat.c:
+ Use PARAMS instead of __P. Suggested by Roland McGrath.
+
+Tue Dec 5 11:39:14 1995 Larry Schwimmer <rosebud@cyclone.stanford.edu>
+
+ * libgettext.h: Use `#if !defined (_LIBINTL_H)' instead of `#if
+ !_LIBINTL_H' because Solaris defines _LIBINTL_H as empty.
+
+Mon Dec 4 15:42:07 1995 Ulrich Drepper <drepper@myware>
+
+ * Makefile.in (install-src):
+ Install libintl.inst instead of libintl.h.install.
+
+Sat Dec 2 22:51:38 1995 Marcus Daniels <marcus@sysc.pdx.edu>
+
+ * cat-compat.c (textdomain):
+ Reverse order in which files are tried you load. First
+ try local file, when this failed absolute path.
+
+Wed Nov 29 02:03:53 1995 Nelson H. F. Beebe <beebe@math.utah.edu>
+
+ * cat-compat.c (bindtextdomain): Add missing { }.
+
+Sun Nov 26 18:21:41 1995 Ulrich Drepper <drepper@myware>
+
+ * libintl.inst: Add missing __P definition. Reported by Nelson Beebe.
+
+ * Makefile.in:
+ Add dummy `all' and `dvi' goals. Reported by Tom Tromey.
+
+Sat Nov 25 16:12:01 1995 Franc,ois Pinard <pinard@iro.umontreal.ca>
+
+ * hash-string.h: Capitalize arguments of macros.
+
+Sat Nov 25 12:01:36 1995 Ulrich Drepper <drepper@myware>
+
+ * Makefile.in (DISTFILES): Prevent files names longer than 13
+ characters. libintl.h.glibc->libintl.glibc,
+ libintl.h.install->libintl.inst. Reported by Joshua R. Poulson.
+
+Sat Nov 25 11:31:12 1995 Eric Backus <ericb@lsid.hp.com>
+
+ * dcgettext.c: Fix bug in preprocessor conditionals.
+
+Sat Nov 25 02:35:27 1995 Nelson H. F. Beebe <beebe@math.utah.edu>
+
+ * libgettext.h: Solaris cc does not understand
+ #if !SYMBOL1 && !SYMBOL2. Sad but true.
+
+Thu Nov 23 16:22:14 1995 Ulrich Drepper <drepper@myware>
+
+ * hash-string.h (hash_string):
+ Fix for machine with >32 bit `unsigned long's.
+
+ * dcgettext.c (DCGETTEXT):
+ Fix horrible bug in loop for alternative translation.
+
+Thu Nov 23 01:45:29 1995 Ulrich Drepper <drepper@myware>
+
+ * po2tbl.sed.in, linux-msg.sed, xopen-msg.sed:
+ Some further simplifications in message number generation.
+
+Mon Nov 20 21:08:43 1995 Ulrich Drepper <drepper@myware>
+
+ * libintl.h.glibc: Use __const instead of const in prototypes.
+
+ * Makefile.in (install-src):
+ Install libintl.h.install instead of libintl.h. This
+ is a stripped-down version. Suggested by Peter Miller.
+
+ * libintl.h.install, libintl.h.glibc: Initial revision.
+
+ * localealias.c (_nl_expand_alias, read_alias_file):
+ Protect prototypes in type casts by __P.
+
+Tue Nov 14 16:43:58 1995 Ulrich Drepper <drepper@myware>
+
+ * hash-string.h: Correct prototype for hash_string.
+
+Sun Nov 12 12:42:30 1995 Ulrich Drepper <drepper@myware>
+
+ * hash-string.h (hash_string): Add prototype.
+
+ * gettextP.h: Fix copyright.
+ (SWAP): Add prototype.
+
+Wed Nov 8 22:56:33 1995 Ulrich Drepper <drepper@myware>
+
+ * localealias.c (read_alias_file): Forgot sizeof.
+ Avoid calling *printf function. This introduces a big overhead.
+ Patch by Roland McGrath.
+
+Tue Nov 7 14:21:08 1995 Ulrich Drepper <drepper@myware>
+
+ * finddomain.c, cat-compat.c: Wrong indentation in #if for stpcpy.
+
+ * finddomain.c (stpcpy):
+ Define substitution function local. The macro was to flaky.
+
+ * cat-compat.c: Fix typo.
+
+ * xopen-msg.sed, linux-msg.sed:
+ While bringing message number to right place only accept digits.
+
+ * linux-msg.sed, xopen-msg.sed: Now that the counter does not have
+ leading 0s we don't need to remove them. Reported by Marcus
+ Daniels.
+
+ * Makefile.in (../po/cat-id-tbl.o): Use $(top_srdir) in
+ dependency. Reported by Marcus Daniels.
+
+ * cat-compat.c: (stpcpy) [!_LIBC && !HAVE_STPCPY]: Define replacement.
+ Generally cleanup using #if instead of #ifndef.
+
+ * Makefile.in: Correct typos in comment. By Franc,ois Pinard.
+
+Mon Nov 6 00:27:02 1995 Ulrich Drepper <drepper@myware>
+
+ * Makefile.in (install-src): Don't install libintl.h and libintl.a
+ if we use an available gettext implementation.
+
+Sun Nov 5 22:02:08 1995 Ulrich Drepper <drepper@myware>
+
+ * libgettext.h: Fix typo: HAVE_CATGETTS -> HAVE_CATGETS. Reported
+ by Franc,ois Pinard.
+
+ * libgettext.h: Use #if instead of #ifdef/#ifndef.
+
+ * finddomain.c:
+ Comments describing what has to be done should start with FIXME.
+
+Sun Nov 5 19:38:01 1995 Ulrich Drepper <drepper@myware>
+
+ * Makefile.in (DISTFILES): Split. Use DISTFILES with normal meaning.
+ DISTFILES.common names the files common to both dist goals.
+ DISTFILES.gettext are the files only distributed in GNU gettext.
+
+Sun Nov 5 17:32:54 1995 Ulrich Drepper <drepper@myware>
+
+ * dcgettext.c (DCGETTEXT): Correct searching in derived locales.
+ This was necessary since a change in _nl_find_msg several weeks
+ ago. I really don't know this is still not fixed.
+
+Sun Nov 5 12:43:12 1995 Ulrich Drepper <drepper@myware>
+
+ * loadmsgcat.c (_nl_load_domain): Test for FILENAME == NULL. This
+ might mark a special condition.
+
+ * finddomain.c (make_entry_rec): Don't make illegal entry as decided.
+
+ * Makefile.in (dist): Suppress error message when ln failed.
+ Get files from $(srcdir) explicitly.
+
+ * libgettext.h (gettext_const): Rename to gettext_noop.
+
+Fri Nov 3 07:36:50 1995 Ulrich Drepper <drepper@myware>
+
+ * finddomain.c (make_entry_rec):
+ Protect against wrong locale names by testing mask.
+
+ * libgettext.h (gettext_const): Add macro definition.
+ Capitalize macro arguments.
+
+Thu Nov 2 23:15:51 1995 Ulrich Drepper <drepper@myware>
+
+ * finddomain.c (_nl_find_domain):
+ Test for pointer != NULL before accessing value.
+ Reported by Tom Tromey.
+
+ * gettext.c (NULL):
+ Define as (void*)0 instad of 0. Reported by Franc,ois Pinard.
+
+Mon Oct 30 21:28:52 1995 Ulrich Drepper <drepper@myware>
+
+ * po2tbl.sed.in: Serious typo bug fixed by Jim Meyering.
+
+Sat Oct 28 23:20:47 1995 Ulrich Drepper <drepper@myware>
+
+ * libgettext.h: Disable dcgettext optimization for Solaris 2.3.
+
+ * localealias.c (alias_compare):
+ Peter Miller reported that tolower in some systems is
+ even dumber than I thought. Protect call by `isupper'.
+
+Fri Oct 27 22:22:51 1995 Ulrich Drepper <drepper@myware>
+
+ * Makefile.in (libdir, includedir): New variables.
+ (install-src): Install libintl.a and libintl.h in correct dirs.
+
+Fri Oct 27 22:07:29 1995 Ulrich Drepper <drepper@myware>
+
+ * Makefile.in (SOURCES): Fix typo: intrl.compat.c -> intl-compat.c.
+
+ * po2tbl.sed.in: Patch for buggy SEDs by Christian von Roques.
+
+ * localealias.c:
+ Fix typo and superflous test. Reported by Christian von Roques.
+
+Fri Oct 6 11:52:05 1995 Ulrich Drepper <drepper@myware>
+
+ * finddomain.c (_nl_find_domain):
+ Correct some remainder from the pre-CEN syntax. Now
+ we don't have a constant number of successors anymore.
+
+Wed Sep 27 21:41:13 1995 Ulrich Drepper <drepper@myware>
+
+ * Makefile.in (DISTFILES): Add libintl.h.glibc.
+
+ * Makefile.in (dist-libc): Add goal for packing sources for glibc.
+ (COMSRCS, COMHDRS): Splitted to separate sources shared with glibc.
+
+ * loadmsgcat.c: Forget to continue #if line.
+
+ * localealias.c:
+ [_LIBC]: Rename strcasecmp to __strcasecmp to keep ANSI C name
+ space clean.
+
+ * dcgettext.c, finddomain.c: Better comment to last change.
+
+ * loadmsgcat.c:
+ [_LIBC]: Rename fstat, open, close, read, mmap, and munmap to
+ __fstat, __open, __close, __read, __mmap, and __munmap resp
+ to keep ANSI C name space clean.
+
+ * finddomain.c:
+ [_LIBC]: Rename stpcpy to __stpcpy to keep ANSI C name space clean.
+
+ * dcgettext.c:
+ [_LIBC]: Rename getced and stpcpy to __getcwd and __stpcpy resp to
+ keep ANSI C name space clean.
+
+ * libgettext.h:
+ Include sys/types.h for those old SysV systems out there.
+ Reported by Francesco Potorti`.
+
+ * loadmsgcat.c (use_mmap): Define if compiled for glibc.
+
+ * bindtextdom.c: Include all those standard headers
+ unconditionally if _LIBC is defined.
+
+ * finddomain.c: Fix 2 times defiend -> defined.
+
+ * textdomain.c: Include libintl.h instead of libgettext.h when
+ compiling for glibc. Include all those standard headers
+ unconditionally if _LIBC is defined.
+
+ * localealias.c, loadmsgcat.c: Prepare to be compiled in glibc.
+
+ * gettext.c:
+ Include libintl.h instead of libgettext.h when compiling for glibc.
+ Get NULL from stddef.h if we compile for glibc.
+
+ * finddomain.c: Include libintl.h instead of libgettext.h when
+ compiling for glibc. Include all those standard headers
+ unconditionally if _LIBC is defined.
+
+ * dcgettext.c: Include all those standard headers unconditionally
+ if _LIBC is defined.
+
+ * dgettext.c: If compiled in glibc include libintl.h instead of
+ libgettext.h.
+ (locale.h): Don't rely on HAVE_LOCALE_H when compiling for glibc.
+
+ * dcgettext.c: If compiled in glibc include libintl.h instead of
+ libgettext.h.
+ (getcwd): Don't rely on HAVE_GETCWD when compiling for glibc.
+
+ * bindtextdom.c:
+ If compiled in glibc include libintl.h instead of libgettext.h.
+
+Mon Sep 25 22:23:06 1995 Ulrich Drepper <drepper@myware>
+
+ * localealias.c (_nl_expand_alias): Don't call bsearch if NMAP <= 0.
+ Reported by Marcus Daniels.
+
+ * cat-compat.c (bindtextdomain):
+ String used in putenv must not be recycled.
+ Reported by Marcus Daniels.
+
+ * libgettext.h (__USE_GNU_GETTEXT):
+ Additional symbol to signal that we use GNU gettext
+ library.
+
+ * cat-compat.c (bindtextdomain):
+ Fix bug with the strange stpcpy replacement.
+ Reported by Nelson Beebe.
+
+Sat Sep 23 08:23:51 1995 Ulrich Drepper <drepper@myware>
+
+ * cat-compat.c: Include <string.h> for stpcpy prototype.
+
+ * localealias.c (read_alias_file):
+ While expand strdup code temporary variable `cp' hided
+ higher level variable with same name. Rename to `tp'.
+
+ * textdomain.c (textdomain):
+ Avoid warning by using temporary variable in strdup code.
+
+ * finddomain.c (_nl_find_domain): Remove unused variable `application'.
+
+Thu Sep 21 15:51:44 1995 Ulrich Drepper <drepper@myware>
+
+ * localealias.c (alias_compare):
+ Use strcasecmp() only if available. Else use
+ implementation in place.
+
+ * intl-compat.c:
+ Wrapper functions now call *__ functions instead of __*.
+
+ * libgettext.h: Declare prototypes for *__ functions instead for __*.
+
+ * cat-compat.c, loadmsgcat.c:
+ Don't use xmalloc, xstrdup, and stpcpy. These functions are not part
+ of the standard libc and so prevent libintl.a from being used
+ standalone.
+
+ * bindtextdom.c:
+ Don't use xmalloc, xstrdup, and stpcpy. These functions are not part
+ of the standard libc and so prevent libintl.a from being used
+ standalone.
+ Rename to bindtextdomain__ if not used in GNU C Library.
+
+ * dgettext.c:
+ Rename function to dgettext__ if not used in GNU C Library.
+
+ * gettext.c:
+ Don't use xmalloc, xstrdup, and stpcpy. These functions are not part
+ of the standard libc and so prevent libintl.a from being used
+ standalone.
+ Functions now called gettext__ if not used in GNU C Library.
+
+ * dcgettext.c, localealias.c, textdomain.c, finddomain.c:
+ Don't use xmalloc, xstrdup, and stpcpy. These functions are not part
+ of the standard libc and so prevent libintl.a from being used
+ standalone.
+
+Sun Sep 17 23:14:49 1995 Ulrich Drepper <drepper@myware>
+
+ * finddomain.c: Correct some bugs in handling of CEN standard
+ locale definitions.
+
+Thu Sep 7 01:49:28 1995 Ulrich Drepper <drepper@myware>
+
+ * finddomain.c: Implement CEN syntax.
+
+ * gettextP.h (loaded_domain): Extend number of successors to 31.
+
+Sat Aug 19 19:25:29 1995 Ulrich Drepper <drepper@myware>
+
+ * Makefile.in (aliaspath): Remove path to X11 locale dir.
+
+ * Makefile.in: Make install-src depend on install. This helps
+ gettext to install the sources and other packages can use the
+ install goal.
+
+Sat Aug 19 15:19:33 1995 Ulrich Drepper <drepper@myware>
+
+ * Makefile.in (uninstall): Remove stuff installed by install-src.
+
+Tue Aug 15 13:13:53 1995 Ulrich Drepper <drepper@myware>
+
+ * VERSION.in: Initial revision.
+
+ * Makefile.in (DISTFILES):
+ Add VERSION file. This is not necessary for gettext, but
+ for other packages using this library.
+
+Tue Aug 15 06:16:44 1995 Ulrich Drepper <drepper@myware>
+
+ * gettextP.h (_nl_find_domain):
+ New prototype after changing search strategy.
+
+ * finddomain.c (_nl_find_domain):
+ We now try only to find a specified catalog. Fall back to other
+ catalogs listed in the locale list is now done in __dcgettext.
+
+ * dcgettext.c (__dcgettext):
+ Now we provide message fall back even to different languages.
+ I.e. if a message is not available in one language all the other
+ in the locale list a tried. Formerly fall back was only possible
+ within one language. Implemented by moving one loop from
+ _nl_find_domain to here.
+
+Mon Aug 14 23:45:50 1995 Ulrich Drepper <drepper@myware>
+
+ * Makefile.in (gettextsrcdir):
+ Directory where source of GNU gettext library are made
+ available.
+ (INSTALL, INSTALL_DATA): Programs used for installing sources.
+ (gettext-src): New. Rule to install GNU gettext sources for use in
+ gettextize shell script.
+
+Sun Aug 13 14:40:48 1995 Ulrich Drepper <drepper@myware>
+
+ * loadmsgcat.c (_nl_load_domain):
+ Use mmap for loading only when munmap function is
+ also available.
+
+ * Makefile.in (install): Depend on `all' goal.
+
+Wed Aug 9 11:04:33 1995 Ulrich Drepper <drepper@myware>
+
+ * localealias.c (read_alias_file):
+ Do not overwrite '\n' when terminating alias value string.
+
+ * localealias.c (read_alias_file):
+ Handle long lines. Ignore the rest not fitting in
+ the buffer after the initial `fgets' call.
+
+Wed Aug 9 00:54:29 1995 Ulrich Drepper <drepper@myware>
+
+ * gettextP.h (_nl_load_domain):
+ Add prototype, replacing prototype for _nl_load_msg_cat.
+
+ * finddomain.c (_nl_find_domain):
+ Remove unneeded variable filename and filename_len.
+ (expand_alias): Remove prototype because functions does not
+ exist anymore.
+
+ * localealias.c (read_alias_file):
+ Change type of fname_len parameter to int.
+ (xmalloc): Add prototype.
+
+ * loadmsgcat.c: Better prototypes for xmalloc.
+
+Tue Aug 8 22:30:39 1995 Ulrich Drepper <drepper@myware>
+
+ * finddomain.c (_nl_find_domain):
+ Allow alias name to be constructed from the four components.
+
+ * Makefile.in (aliaspath): New variable. Set to preliminary value.
+ (SOURCES): Add localealias.c.
+ (OBJECTS): Add localealias.o.
+
+ * gettextP.h: Add prototype for _nl_expand_alias.
+
+ * finddomain.c: Aliasing handled in intl/localealias.c.
+
+ * localealias.c: Aliasing for locale names.
+
+ * bindtextdom.c: Better prototypes for xmalloc and xstrdup.
+
+Mon Aug 7 23:47:42 1995 Ulrich Drepper <drepper@myware>
+
+ * Makefile.in (DISTFILES): gettext.perl is now found in misc/.
+
+ * cat-compat.c (bindtextdomain):
+ Correct implementation. dirname parameter was not used.
+ Reported by Marcus Daniels.
+
+ * gettextP.h (loaded_domain):
+ New fields `successor' and `decided' for oo, lazy
+ message handling implementation.
+
+ * dcgettext.c:
+ Adopt for oo, lazy message handliing.
+ Now we can inherit translations from less specific locales.
+ (find_msg): New function.
+
+ * loadmsgcat.c, finddomain.c:
+ Complete rewrite. Implement oo, lazy message handling :-).
+ We now have an additional environment variable `LANGUAGE' with
+ a higher priority than LC_ALL for the LC_MESSAGE locale.
+ Here we can set a colon separated list of specifications each
+ of the form `language[_territory[.codeset]][@modifier]'.
+
+Sat Aug 5 09:55:42 1995 Ulrich Drepper <drepper@myware>
+
+ * finddomain.c (unistd.h):
+ Include to get _PC_PATH_MAX defined on system having it.
+
+Fri Aug 4 22:42:00 1995 Ulrich Drepper <drepper@myware>
+
+ * finddomain.c (stpcpy): Include prototype.
+
+ * Makefile.in (dist): Remove `copying instead' message.
+
+Wed Aug 2 18:52:03 1995 Ulrich Drepper <drepper@myware>
+
+ * Makefile.in (ID, TAGS): Do not use $^.
+
+Tue Aug 1 20:07:11 1995 Ulrich Drepper <drepper@myware>
+
+ * Makefile.in (TAGS, ID): Use $^ as command argument.
+ (TAGS): Give etags -o option t write to current directory,
+ not $(srcdir).
+ (ID): Use $(srcdir) instead os $(top_srcdir)/src.
+ (distclean): Remove ID.
+
+Sun Jul 30 11:51:46 1995 Ulrich Drepper <drepper@myware>
+
+ * Makefile.in (gnulocaledir):
+ New variable, always using share/ for data directory.
+ (DEFS): Add GNULOCALEDIR, used in finddomain.c.
+
+ * finddomain.c (_nl_default_dirname):
+ Set to GNULOCALEDIR, because it always has to point
+ to the directory where GNU gettext Library writes it to.
+
+ * intl-compat.c (textdomain, bindtextdomain):
+ Undefine macros before function definition.
+
+Sat Jul 22 01:10:02 1995 Ulrich Drepper <drepper@myware>
+
+ * libgettext.h (_LIBINTL_H):
+ Protect definition in case where this file is included as
+ libgettext.h on Solaris machines. Add comment about this.
+
+Wed Jul 19 02:36:42 1995 Ulrich Drepper <drepper@myware>
+
+ * intl-compat.c (textdomain): Correct typo.
+
+Wed Jul 19 01:51:35 1995 Ulrich Drepper <drepper@myware>
+
+ * dcgettext.c (dcgettext): Function now called __dcgettext.
+
+ * dgettext.c (dgettext): Now called __dgettext and calls
+ __dcgettext.
+
+ * gettext.c (gettext):
+ Function now called __gettext and calls __dgettext.
+
+ * textdomain.c (textdomain): Function now called __textdomain.
+
+ * bindtextdom.c (bindtextdomain): Function now called
+ __bindtextdomain.
+
+ * intl-compat.c: Initial revision.
+
+ * Makefile.in (SOURCES): Add intl-compat.c.
+ (OBJECTS): We always compile the GNU gettext library functions.
+ OBJECTS contains all objects but cat-compat.o, ../po/cat-if-tbl.o,
+ and intl-compat.o.
+ (GETTOBJS): Contains now only intl-compat.o.
+
+ * libgettext.h:
+ Re-include protection matches dualistic character of libgettext.h.
+ For all functions in GNU gettext library define __ counter part.
+
+ * finddomain.c (strchr): Define as index if not found in C library.
+ (_nl_find_domain): For relative paths paste / in between.
+
+Tue Jul 18 16:37:45 1995 Ulrich Drepper <drepper@myware>
+
+ * loadmsgcat.c, finddomain.c: Add inclusion of sys/types.h.
+
+ * xopen-msg.sed: Fix bug with `msgstr ""' lines.
+ A little bit better comments.
+
+Tue Jul 18 01:18:27 1995 Ulrich Drepper <drepper@myware>
+
+ * Makefile.in:
+ po-mode.el, makelinks, combine-sh are now found in ../misc.
+
+ * po-mode.el, makelinks, combine-sh, elisp-comp:
+ Moved to ../misc/.
+
+ * libgettext.h, gettextP.h, gettext.h: Uniform test for __STDC__.
+
+Sun Jul 16 22:33:02 1995 Ulrich Drepper <drepper@myware>
+
+ * Makefile.in (INSTALL, INSTALL_DATA): New variables.
+ (install-data, uninstall): Install/uninstall .elc file.
+
+ * po-mode.el (Installation comment):
+ Add .pox as possible extension of .po files.
+
+Sun Jul 16 13:23:27 1995 Ulrich Drepper <drepper@myware>
+
+ * elisp-comp: Complete new version by Franc,ois: This does not
+ fail when not compiling in the source directory.
+
+Sun Jul 16 00:12:17 1995 Ulrich Drepper <drepper@myware>
+
+ * Makefile.in (../po/cat-id-tbl.o):
+ Use $(MAKE) instead of make for recursive make.
+
+ * Makefile.in (.el.elc): Use $(SHELL) instead of /bin/sh.
+ (install-exec): Add missing dummy goal.
+ (install-data, uninstall): @ in multi-line shell command at
+ beginning, not in front of echo. Reported by Eric Backus.
+
+Sat Jul 15 00:21:28 1995 Ulrich Drepper <drepper@myware>
+
+ * Makefile.in (DISTFILES):
+ Rename libgettext.perl to gettext.perl to fit in 14 chars
+ file systems.
+
+ * gettext.perl:
+ Rename to gettext.perl to fit in 14 chars file systems.
+
+Thu Jul 13 23:17:20 1995 Ulrich Drepper <drepper@myware>
+
+ * cat-compat.c: If !STDC_HEADERS try to include malloc.h.
+
+Thu Jul 13 20:55:02 1995 Ulrich Drepper <drepper@myware>
+
+ * po2tbl.sed.in: Pretty printing.
+
+ * linux-msg.sed, xopen-msg.sed:
+ Correct bugs with handling substitute flags in branches.
+
+ * hash-string.h (hash_string):
+ Old K&R compilers don't under stand `unsigned char'.
+
+ * gettext.h (nls_uint32):
+ Some old K&R compilers (eg HP) don't understand `unsigned int'.
+
+ * cat-compat.c (msg_to_cat_id): De-ANSI-fy prototypes.
+
+Thu Jul 13 01:34:33 1995 Ulrich Drepper <drepper@myware>
+
+ * Makefile.in (ELCFILES): New variable.
+ (DISTFILES): Add elisp-comp.
+ Add implicit rule for .el -> .elc compilation.
+ (install-data): install $ELCFILES
+ (clean): renamed po-to-tbl and po-to-msg to po2tbl and po2msg resp.
+
+ * elisp-comp: Initial revision
+
+Wed Jul 12 16:14:52 1995 Ulrich Drepper <drepper@myware>
+
+ * Makefile.in:
+ cat-id-tbl.c is now found in po/. This enables us to use an identical
+ intl/ directory in all packages.
+
+ * dcgettext.c (dcgettext): hashing does not work for table size <= 2.
+
+ * textdomain.c: fix typo (#if def -> #if defined)
+
+Tue Jul 11 18:44:43 1995 Ulrich Drepper <drepper@myware>
+
+ * Makefile.in (stamp-cat-id): use top_srcdir to address source files
+ (DISTFILES,distclean): move tupdate.perl to src/
+
+ * po-to-tbl.sed.in:
+ add additional jump to clear change flag to recognize multiline strings
+
+Tue Jul 11 01:32:50 1995 Ulrich Drepper <drepper@myware>
+
+ * textdomain.c: Protect inclusion of stdlib.h and string.h.
+
+ * loadmsgcat.c: Protect inclusion of stdlib.h.
+
+ * libgettext.h: Protect inclusion of locale.h.
+ Allow use in C++ programs.
+ Define NULL is not happened already.
+
+ * Makefile.in (DISTFILES): ship po-to-tbl.sed.in instead of
+ po-to-tbl.sed.
+ (distclean): remove po-to-tbl.sed and tupdate.perl.
+
+ * tupdate.perl.in: Substitute Perl path even in exec line.
+ Don't include entries without translation from old .po file.
+
+Tue Jul 4 00:41:51 1995 Ulrich Drepper <drepper@myware>
+
+ * tupdate.perl.in: use "Updated: " in msgid "".
+
+ * cat-compat.c: Fix typo (LOCALDIR -> LOCALEDIR).
+ Define getenv if !__STDC__.
+
+ * bindtextdom.c: Protect stdlib.h and string.h inclusion.
+ Define free if !__STDC__.
+
+ * finddomain.c: Change DEF_MSG_DOM_DIR to LOCALEDIR.
+ Define free if !__STDC__.
+
+ * cat-compat.c: Change DEF_MSG_DOM_DIR to LOCALEDIR.
+
+Mon Jul 3 23:56:30 1995 Ulrich Drepper <drepper@myware>
+
+ * Makefile.in: Use LOCALEDIR instead of DEF_MSG_DOM_DIR.
+ Remove unneeded $(srcdir) from Makefile.in dependency.
+
+ * makelinks: Add copyright and short description.
+
+ * po-mode.el: Last version for 0.7.
+
+ * tupdate.perl.in: Fix die message.
+
+ * dcgettext.c: Protect include of string.h.
+
+ * gettext.c: Protect include of stdlib.h and further tries to get NULL.
+
+ * finddomain.c: Some corrections in includes.
+
+ * Makefile.in (INCLUDES): Prune list correct path to Makefile.in.
+
+ * po-to-tbl.sed: Adopt for new .po file format.
+
+ * linux-msg.sed, xopen-msg.sed: Adopt for new .po file format.
+
+Sun Jul 2 23:55:03 1995 Ulrich Drepper <drepper@myware>
+
+ * tupdate.perl.in: Complete rewrite for new .po file format.
+
+Sun Jul 2 02:06:50 1995 Ulrich Drepper <drepper@myware>
+
+ * First official release. This directory contains all the code
+ needed to internationalize own packages. It provides functions
+ which allow to use the X/Open catgets function with an interface
+ like the Uniforum gettext function. For system which does not
+ have neither of those a complete implementation is provided.
diff --git a/source3/intl/Makefile.in b/source3/intl/Makefile.in
new file mode 100644
index 0000000000..f4eee8ac80
--- /dev/null
+++ b/source3/intl/Makefile.in
@@ -0,0 +1,222 @@
+# Makefile for directory with message catalog handling in GNU NLS Utilities.
+# Copyright (C) 1995, 1996, 1997 Free Software Foundation, Inc.
+#
+# 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
+# the Free Software Foundation; either version 2, or (at your option)
+# any later version.
+#
+# This program 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 General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+
+# re-written by rkawa (rkawa@lbe.co.jp)
+# because config.h of samba is not in @top_srcdir@.
+
+PACKAGE = @PACKAGE@
+VERSION = @VERSION@
+
+SHELL = /bin/sh
+
+srcdir = @srcdir@
+top_srcdir = @top_srcdir@
+top_builddir = ..
+VPATH = @srcdir@
+
+prefix = @prefix@
+exec_prefix = @exec_prefix@
+transform = @program_transform_name@
+libdir = $(exec_prefix)/lib
+includedir = $(prefix)/include
+datadir = $(prefix)/@DATADIRNAME@
+localedir = $(datadir)/locale
+gnulocaledir = $(prefix)/share/locale
+gettextsrcdir = @datadir@/gettext/intl
+aliaspath = $(localedir):.
+subdir = intl
+
+INSTALL = @INSTALL@
+INSTALL_DATA = @INSTALL_DATA@
+MKINSTALLDIRS = @MKINSTALLDIRS@
+
+l = @l@
+
+AR = ar
+CC = @CC@
+LIBTOOL = @LIBTOOL@
+RANLIB = @RANLIB@
+
+DEFS = -DLOCALEDIR=\"$(localedir)\" -DGNULOCALEDIR=\"$(gnulocaledir)\" \
+-DLOCALE_ALIAS_PATH=\"$(aliaspath)\" @DEFS@
+CPPFLAGS = @CPPFLAGS@
+CFLAGS = @CFLAGS@
+LDFLAGS = @LDFLAGS@
+
+COMPILE = $(CC) -c $(DEFS) $(INCLUDES) $(CPPFLAGS) $(CFLAGS) $(XCFLAGS)
+
+HEADERS = $(COMHDRS) libgettext.h loadinfo.h
+COMHDRS = gettext.h gettextP.h hash-string.h
+SOURCES = $(COMSRCS) intl-compat.c cat-compat.c
+COMSRCS = bindtextdom.c dcgettext.c dgettext.c gettext.c \
+finddomain.c loadmsgcat.c localealias.c textdomain.c l10nflist.c \
+explodename.c
+OBJECTS = @INTLOBJS@ bindtextdom.$lo dcgettext.$lo dgettext.$lo gettext.$lo \
+finddomain.$lo loadmsgcat.$lo localealias.$lo textdomain.$lo l10nflist.$lo \
+explodename.$lo
+CATOBJS = cat-compat.$lo ../po/cat-id-tbl.$lo
+GETTOBJS = intl-compat.$lo
+DISTFILES.common = ChangeLog Makefile.in linux-msg.sed po2tbl.sed.in \
+xopen-msg.sed $(HEADERS) $(SOURCES)
+DISTFILES.normal = VERSION
+DISTFILES.gettext = libintl.glibc intlh.inst.in
+
+.SUFFIXES:
+.SUFFIXES: .c .o .lo
+.c.o:
+ $(COMPILE) $<
+.c.lo:
+ $(LIBTOOL) --mode=compile $(COMPILE) $<
+
+# re-written by rkawa because config.h of samba is not in @top_srcdir@.
+INCLUDES = -I.. -I. -I$(top_srcdir)/intl -I$(top_srcdir)/lib -I$(top_srcdir)/include
+
+all: all-@USE_INCLUDED_LIBINTL@
+
+all-yes: libintl.$la intlh.inst
+all-no:
+
+libintl.a: $(OBJECTS)
+ rm -f $@
+ $(AR) cru $@ $(OBJECTS)
+ $(RANLIB) $@
+
+libintl.la: $(OBJECTS)
+ $(LIBTOOL) --mode=link $(CC) $(LDFLAGS) -o $@ $(OBJECTS) \
+ -version-info 1:0 -rpath $(libdir)
+
+../po/cat-id-tbl.$lo: ../po/cat-id-tbl.c $(top_srcdir)/po/$(PACKAGE).pot
+ cd ../po && $(MAKE) cat-id-tbl.$lo
+
+check: all
+
+# This installation goal is only used in GNU gettext. Packages which
+# only use the library should use install instead.
+
+# We must not install the libintl.h/libintl.a files if we are on a
+# system which has the gettext() function in its C library or in a
+# separate library or use the catgets interface. A special case is
+# where configure found a previously installed GNU gettext library.
+# If you want to use the one which comes with this version of the
+# package, you have to use `configure --with-included-gettext'.
+install: install-exec install-data
+install-exec: all
+ if test "$(PACKAGE)" = "gettext" \
+ && test '@INTLOBJS@' = '$(GETTOBJS)'; then \
+ if test -r $(MKINSTALLDIRS); then \
+ . $(MKINSTALLDIRS) $(libdir) $(includedir); \
+ else \
+ . $(top_srcdir)/mkinstalldirs $(libdir) $(includedir); \
+ fi; \
+ $(INSTALL_DATA) intlh.inst $(includedir)/libintl.h; \
+ $(INSTALL_DATA) libintl.a $(libdir)/libintl.a; \
+ else \
+ : ; \
+ fi
+install-data: all
+ if test "$(PACKAGE)" = "gettext"; then \
+ if test -r $(MKINSTALLDIRS); then \
+ . $(MKINSTALLDIRS) $(gettextsrcdir); \
+ else \
+ . $(top_srcdir)/mkinstalldirs $(gettextsrcdir); \
+ fi; \
+ $(INSTALL_DATA) VERSION $(gettextsrcdir)/VERSION; \
+ dists="$(DISTFILES.common)"; \
+ for file in $$dists; do \
+ $(INSTALL_DATA) $(srcdir)/$$file $(gettextsrcdir)/$$file; \
+ done; \
+ else \
+ : ; \
+ fi
+
+# Define this as empty until I found a useful application.
+installcheck:
+
+uninstall:
+ dists="$(DISTFILES.common)"; \
+ for file in $$dists; do \
+ rm -f $(gettextsrcdir)/$$file; \
+ done
+
+info dvi:
+
+# re-written by rkawa because config.h of samba is not in @top_srcdir@.
+$(OBJECTS): $(top_srcdir)/include/config.h libgettext.h
+bindtextdom.$lo finddomain.$lo loadmsgcat.$lo: gettextP.h gettext.h loadinfo.h
+dcgettext.$lo: gettextP.h gettext.h hash-string.h loadinfo.h
+
+tags: TAGS
+
+TAGS: $(HEADERS) $(SOURCES)
+ here=`pwd`; cd $(srcdir) && etags -o $$here/TAGS $(HEADERS) $(SOURCES)
+
+id: ID
+
+ID: $(HEADERS) $(SOURCES)
+ here=`pwd`; cd $(srcdir) && mkid -f$$here/ID $(HEADERS) $(SOURCES)
+
+
+mostlyclean:
+ rm -f *.a *.o *.lo core core.*
+
+clean: mostlyclean
+
+distclean: clean
+ rm -f Makefile ID TAGS po2msg.sed po2tbl.sed
+
+maintainer-clean: distclean
+ @echo "This command is intended for maintainers to use;"
+ @echo "it deletes files that may require special tools to rebuild."
+
+
+# GNU gettext needs not contain the file `VERSION' but contains some
+# other files which should not be distributed in other packages.
+distdir = ../$(PACKAGE)-$(VERSION)/$(subdir)
+dist distdir: Makefile $(DISTFILES)
+ if test "$(PACKAGE)" = gettext; then \
+ additional="$(DISTFILES.gettext)"; \
+ else \
+ additional="$(DISTFILES.normal)"; \
+ fi; \
+ for file in $(DISTFILES.common) $$additional; do \
+ ln $(srcdir)/$$file $(distdir) 2> /dev/null \
+ || cp -p $(srcdir)/$$file $(distdir); \
+ done
+
+dist-libc:
+ tar zcvf intl-glibc.tar.gz $(COMSRCS) $(COMHDRS) libintl.h.glibc
+
+Makefile: Makefile.in ../config.status
+ cd .. \
+ && CONFIG_FILES=$(subdir)/$@ CONFIG_HEADERS= $(SHELL) ./config.status
+
+# The dependency for intlh.inst is different in gettext and all other
+# packages. Because we cannot you GNU make features we have to solve
+# the problem while rewriting Makefile.in.
+@GT_YES@intlh.inst: intlh.inst.in ../config.status
+@GT_YES@ cd .. \
+@GT_YES@ && CONFIG_FILES=$(subdir)/$@ CONFIG_HEADERS= \
+@GT_YES@ $(SHELL) ./config.status
+@GT_NO@.PHONY: intlh.inst
+@GT_NO@intlh.inst:
+
+# Tell versions [3.59,3.63) of GNU make not to export all variables.
+# Otherwise a system limit (for SysV at least) may be exceeded.
+.NOEXPORT:
+
+
+
diff --git a/source3/intl/VERSION b/source3/intl/VERSION
new file mode 100644
index 0000000000..ee66b0612b
--- /dev/null
+++ b/source3/intl/VERSION
@@ -0,0 +1 @@
+GNU gettext library from gettext-0.10.35
diff --git a/source3/intl/bindtextdom.c b/source3/intl/bindtextdom.c
new file mode 100644
index 0000000000..d9c3f349e0
--- /dev/null
+++ b/source3/intl/bindtextdom.c
@@ -0,0 +1,203 @@
+/* Implementation of the bindtextdomain(3) function
+ Copyright (C) 1995, 1996, 1997, 1998 Free Software Foundation, Inc.
+
+ 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
+ the Free Software Foundation; either version 2, or (at your option)
+ any later version.
+
+ This program 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 General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program; if not, write to the Free Software Foundation,
+ Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
+
+#ifdef HAVE_CONFIG_H
+# include <config.h>
+#endif
+
+#if defined STDC_HEADERS || defined _LIBC
+# include <stdlib.h>
+#else
+# ifdef HAVE_MALLOC_H
+# include <malloc.h>
+# else
+void free ();
+# endif
+#endif
+
+#if defined HAVE_STRING_H || defined _LIBC
+# include <string.h>
+#else
+# include <strings.h>
+# ifndef memcpy
+# define memcpy(Dst, Src, Num) bcopy (Src, Dst, Num)
+# endif
+#endif
+
+#ifdef _LIBC
+# include <libintl.h>
+#else
+# include "libgettext.h"
+#endif
+#include "gettext.h"
+#include "gettextP.h"
+
+/* @@ end of prolog @@ */
+
+/* Contains the default location of the message catalogs. */
+extern const char _nl_default_dirname[];
+
+/* List with bindings of specific domains. */
+extern struct binding *_nl_domain_bindings;
+
+
+/* Names for the libintl functions are a problem. They must not clash
+ with existing names and they should follow ANSI C. But this source
+ code is also used in GNU C Library where the names have a __
+ prefix. So we have to make a difference here. */
+#ifdef _LIBC
+# define BINDTEXTDOMAIN __bindtextdomain
+# ifndef strdup
+# define strdup(str) __strdup (str)
+# endif
+#else
+# define BINDTEXTDOMAIN bindtextdomain__
+#endif
+
+/* Specify that the DOMAINNAME message catalog will be found
+ in DIRNAME rather than in the system locale data base. */
+char *
+BINDTEXTDOMAIN (domainname, dirname)
+ const char *domainname;
+ const char *dirname;
+{
+ struct binding *binding;
+
+ /* Some sanity checks. */
+ if (domainname == NULL || domainname[0] == '\0')
+ return NULL;
+
+ for (binding = _nl_domain_bindings; binding != NULL; binding = binding->next)
+ {
+ int compare = strcmp (domainname, binding->domainname);
+ if (compare == 0)
+ /* We found it! */
+ break;
+ if (compare < 0)
+ {
+ /* It is not in the list. */
+ binding = NULL;
+ break;
+ }
+ }
+
+ if (dirname == NULL)
+ /* The current binding has be to returned. */
+ return binding == NULL ? (char *) _nl_default_dirname : binding->dirname;
+
+ if (binding != NULL)
+ {
+ /* The domain is already bound. If the new value and the old
+ one are equal we simply do nothing. Otherwise replace the
+ old binding. */
+ if (strcmp (dirname, binding->dirname) != 0)
+ {
+ char *new_dirname;
+
+ if (strcmp (dirname, _nl_default_dirname) == 0)
+ new_dirname = (char *) _nl_default_dirname;
+ else
+ {
+#if defined _LIBC || defined HAVE_STRDUP
+ new_dirname = strdup (dirname);
+ if (new_dirname == NULL)
+ return NULL;
+#else
+ size_t len = strlen (dirname) + 1;
+ new_dirname = (char *) malloc (len);
+ if (new_dirname == NULL)
+ return NULL;
+
+ memcpy (new_dirname, dirname, len);
+#endif
+ }
+
+ if (binding->dirname != _nl_default_dirname)
+ free (binding->dirname);
+
+ binding->dirname = new_dirname;
+ }
+ }
+ else
+ {
+ /* We have to create a new binding. */
+#if !defined _LIBC && !defined HAVE_STRDUP
+ size_t len;
+#endif
+ struct binding *new_binding =
+ (struct binding *) malloc (sizeof (*new_binding));
+
+ if (new_binding == NULL)
+ return NULL;
+
+#if defined _LIBC || defined HAVE_STRDUP
+ new_binding->domainname = strdup (domainname);
+ if (new_binding->domainname == NULL)
+ return NULL;
+#else
+ len = strlen (domainname) + 1;
+ new_binding->domainname = (char *) malloc (len);
+ if (new_binding->domainname == NULL)
+ return NULL;
+ memcpy (new_binding->domainname, domainname, len);
+#endif
+
+ if (strcmp (dirname, _nl_default_dirname) == 0)
+ new_binding->dirname = (char *) _nl_default_dirname;
+ else
+ {
+#if defined _LIBC || defined HAVE_STRDUP
+ new_binding->dirname = strdup (dirname);
+ if (new_binding->dirname == NULL)
+ return NULL;
+#else
+ len = strlen (dirname) + 1;
+ new_binding->dirname = (char *) malloc (len);
+ if (new_binding->dirname == NULL)
+ return NULL;
+ memcpy (new_binding->dirname, dirname, len);
+#endif
+ }
+
+ /* Now enqueue it. */
+ if (_nl_domain_bindings == NULL
+ || strcmp (domainname, _nl_domain_bindings->domainname) < 0)
+ {
+ new_binding->next = _nl_domain_bindings;
+ _nl_domain_bindings = new_binding;
+ }
+ else
+ {
+ binding = _nl_domain_bindings;
+ while (binding->next != NULL
+ && strcmp (domainname, binding->next->domainname) > 0)
+ binding = binding->next;
+
+ new_binding->next = binding->next;
+ binding->next = new_binding;
+ }
+
+ binding = new_binding;
+ }
+
+ return binding->dirname;
+}
+
+#ifdef _LIBC
+/* Alias for function name in GNU C Library. */
+weak_alias (__bindtextdomain, bindtextdomain);
+#endif
diff --git a/source3/intl/cat-compat.c b/source3/intl/cat-compat.c
new file mode 100644
index 0000000000..867d901b8f
--- /dev/null
+++ b/source3/intl/cat-compat.c
@@ -0,0 +1,262 @@
+/* Compatibility code for gettext-using-catgets interface.
+ Copyright (C) 1995, 1997 Free Software Foundation, Inc.
+
+ 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
+ the Free Software Foundation; either version 2, or (at your option)
+ any later version.
+
+ This program 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 General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program; if not, write to the Free Software Foundation,
+ Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
+
+#ifdef HAVE_CONFIG_H
+# include <config.h>
+#endif
+
+#include <stdio.h>
+
+#ifdef STDC_HEADERS
+# include <stdlib.h>
+# include <string.h>
+#else
+char *getenv ();
+# ifdef HAVE_MALLOC_H
+# include <malloc.h>
+# endif
+#endif
+
+#ifdef HAVE_NL_TYPES_H
+# include <nl_types.h>
+#endif
+
+#include "libgettext.h"
+
+/* @@ end of prolog @@ */
+
+/* XPG3 defines the result of `setlocale (category, NULL)' as:
+ ``Directs `setlocale()' to query `category' and return the current
+ setting of `local'.''
+ However it does not specify the exact format. And even worse: POSIX
+ defines this not at all. So we can use this feature only on selected
+ system (e.g. those using GNU C Library). */
+#ifdef _LIBC
+# define HAVE_LOCALE_NULL
+#endif
+
+/* The catalog descriptor. */
+static nl_catd catalog = (nl_catd) -1;
+
+/* Name of the default catalog. */
+static const char default_catalog_name[] = "messages";
+
+/* Name of currently used catalog. */
+static const char *catalog_name = default_catalog_name;
+
+/* Get ID for given string. If not found return -1. */
+static int msg_to_cat_id PARAMS ((const char *msg));
+
+/* Substitution for systems lacking this function in their C library. */
+#if !_LIBC && !HAVE_STPCPY
+static char *stpcpy PARAMS ((char *dest, const char *src));
+#endif
+
+
+/* Set currently used domain/catalog. */
+char *
+textdomain (domainname)
+ const char *domainname;
+{
+ nl_catd new_catalog;
+ char *new_name;
+ size_t new_name_len;
+ char *lang;
+
+#if defined HAVE_SETLOCALE && defined HAVE_LC_MESSAGES \
+ && defined HAVE_LOCALE_NULL
+ lang = setlocale (LC_MESSAGES, NULL);
+#else
+ lang = getenv ("LC_ALL");
+ if (lang == NULL || lang[0] == '\0')
+ {
+ lang = getenv ("LC_MESSAGES");
+ if (lang == NULL || lang[0] == '\0')
+ lang = getenv ("LANG");
+ }
+#endif
+ if (lang == NULL || lang[0] == '\0')
+ lang = "C";
+
+ /* See whether name of currently used domain is asked. */
+ if (domainname == NULL)
+ return (char *) catalog_name;
+
+ if (domainname[0] == '\0')
+ domainname = default_catalog_name;
+
+ /* Compute length of added path element. */
+ new_name_len = sizeof (LOCALEDIR) - 1 + 1 + strlen (lang)
+ + sizeof ("/LC_MESSAGES/") - 1 + sizeof (PACKAGE) - 1
+ + sizeof (".cat");
+
+ new_name = (char *) malloc (new_name_len);
+ if (new_name == NULL)
+ return NULL;
+
+ strcpy (new_name, PACKAGE);
+ new_catalog = catopen (new_name, 0);
+
+ if (new_catalog == (nl_catd) -1)
+ {
+ /* NLSPATH search didn't work, try absolute path */
+ sprintf (new_name, "%s/%s/LC_MESSAGES/%s.cat", LOCALEDIR, lang,
+ PACKAGE);
+ new_catalog = catopen (new_name, 0);
+
+ if (new_catalog == (nl_catd) -1)
+ {
+ free (new_name);
+ return (char *) catalog_name;
+ }
+ }
+
+ /* Close old catalog. */
+ if (catalog != (nl_catd) -1)
+ catclose (catalog);
+ if (catalog_name != default_catalog_name)
+ free ((char *) catalog_name);
+
+ catalog = new_catalog;
+ catalog_name = new_name;
+
+ return (char *) catalog_name;
+}
+
+char *
+bindtextdomain (domainname, dirname)
+ const char *domainname;
+ const char *dirname;
+{
+#if HAVE_SETENV || HAVE_PUTENV
+ char *old_val, *new_val, *cp;
+ size_t new_val_len;
+
+ /* This does not make much sense here but to be compatible do it. */
+ if (domainname == NULL)
+ return NULL;
+
+ /* Compute length of added path element. If we use setenv we don't need
+ the first byts for NLSPATH=, but why complicate the code for this
+ peanuts. */
+ new_val_len = sizeof ("NLSPATH=") - 1 + strlen (dirname)
+ + sizeof ("/%L/LC_MESSAGES/%N.cat");
+
+ old_val = getenv ("NLSPATH");
+ if (old_val == NULL || old_val[0] == '\0')
+ {
+ old_val = NULL;
+ new_val_len += 1 + sizeof (LOCALEDIR) - 1
+ + sizeof ("/%L/LC_MESSAGES/%N.cat");
+ }
+ else
+ new_val_len += strlen (old_val);
+
+ new_val = (char *) malloc (new_val_len);
+ if (new_val == NULL)
+ return NULL;
+
+# if HAVE_SETENV
+ cp = new_val;
+# else
+ cp = stpcpy (new_val, "NLSPATH=");
+# endif
+
+ cp = stpcpy (cp, dirname);
+ cp = stpcpy (cp, "/%L/LC_MESSAGES/%N.cat:");
+
+ if (old_val == NULL)
+ {
+# if __STDC__
+ stpcpy (cp, LOCALEDIR "/%L/LC_MESSAGES/%N.cat");
+# else
+
+ cp = stpcpy (cp, LOCALEDIR);
+ stpcpy (cp, "/%L/LC_MESSAGES/%N.cat");
+# endif
+ }
+ else
+ stpcpy (cp, old_val);
+
+# if HAVE_SETENV
+ setenv ("NLSPATH", new_val, 1);
+ free (new_val);
+# else
+ putenv (new_val);
+ /* Do *not* free the environment entry we just entered. It is used
+ from now on. */
+# endif
+
+#endif
+
+ return (char *) domainname;
+}
+
+#undef gettext
+char *
+gettext (msg)
+ const char *msg;
+{
+ int msgid;
+
+ if (msg == NULL || catalog == (nl_catd) -1)
+ return (char *) msg;
+
+ /* Get the message from the catalog. We always use set number 1.
+ The message ID is computed by the function `msg_to_cat_id'
+ which works on the table generated by `po-to-tbl'. */
+ msgid = msg_to_cat_id (msg);
+ if (msgid == -1)
+ return (char *) msg;
+
+ return catgets (catalog, 1, msgid, (char *) msg);
+}
+
+/* Look through the table `_msg_tbl' which has `_msg_tbl_length' entries
+ for the one equal to msg. If it is found return the ID. In case when
+ the string is not found return -1. */
+static int
+msg_to_cat_id (msg)
+ const char *msg;
+{
+ int cnt;
+
+ for (cnt = 0; cnt < _msg_tbl_length; ++cnt)
+ if (strcmp (msg, _msg_tbl[cnt]._msg) == 0)
+ return _msg_tbl[cnt]._msg_number;
+
+ return -1;
+}
+
+
+/* @@ begin of epilog @@ */
+
+/* We don't want libintl.a to depend on any other library. So we
+ avoid the non-standard function stpcpy. In GNU C Library this
+ function is available, though. Also allow the symbol HAVE_STPCPY
+ to be defined. */
+#if !_LIBC && !HAVE_STPCPY
+static char *
+stpcpy (dest, src)
+ char *dest;
+ const char *src;
+{
+ while ((*dest++ = *src++) != '\0')
+ /* Do nothing. */ ;
+ return dest - 1;
+}
+#endif
diff --git a/source3/intl/dcgettext.c b/source3/intl/dcgettext.c
new file mode 100644
index 0000000000..c8360971de
--- /dev/null
+++ b/source3/intl/dcgettext.c
@@ -0,0 +1,659 @@
+/* Implementation of the dcgettext(3) function.
+ Copyright (C) 1995, 1996, 1997, 1998 Free Software Foundation, Inc.
+
+ 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
+ the Free Software Foundation; either version 2, or (at your option)
+ any later version.
+
+ This program 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 General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program; if not, write to the Free Software Foundation,
+ Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
+
+#ifdef HAVE_CONFIG_H
+# include <config.h>
+#endif
+
+#include <sys/types.h>
+
+#if defined __GNUC__ && !defined C_ALLOCA
+# define alloca __builtin_alloca
+# define HAVE_ALLOCA 1
+#else
+# if (defined HAVE_ALLOCA_H || defined _LIBC) && !defined C_ALLOCA
+# include <alloca.h>
+# else
+# ifdef _AIX
+ #pragma alloca
+# else
+# ifndef alloca
+char *alloca ();
+# endif
+# endif
+# endif
+#endif
+
+#include <errno.h>
+#ifndef errno
+extern int errno;
+#endif
+#ifndef __set_errno
+# define __set_errno(val) errno = (val)
+#endif
+
+#if defined STDC_HEADERS || defined _LIBC
+# include <stdlib.h>
+#else
+char *getenv ();
+# ifdef HAVE_MALLOC_H
+# include <malloc.h>
+# else
+void free ();
+# endif
+#endif
+
+#if defined HAVE_STRING_H || defined _LIBC
+# ifndef _GNU_SOURCE
+# define _GNU_SOURCE 1
+# endif
+# include <string.h>
+#else
+# include <strings.h>
+#endif
+#if !HAVE_STRCHR && !defined _LIBC
+# ifndef strchr
+# define strchr index
+# endif
+#endif
+
+#if defined HAVE_UNISTD_H || defined _LIBC
+# include <unistd.h>
+#endif
+
+#include "gettext.h"
+#include "gettextP.h"
+#ifdef _LIBC
+# include <libintl.h>
+#else
+# include "libgettext.h"
+#endif
+#include "hash-string.h"
+
+/* @@ end of prolog @@ */
+
+#ifdef _LIBC
+/* Rename the non ANSI C functions. This is required by the standard
+ because some ANSI C functions will require linking with this object
+ file and the name space must not be polluted. */
+# define getcwd __getcwd
+# ifndef stpcpy
+# define stpcpy __stpcpy
+# endif
+#else
+# if !defined HAVE_GETCWD
+char *getwd ();
+# define getcwd(buf, max) getwd (buf)
+# else
+char *getcwd ();
+# endif
+# ifndef HAVE_STPCPY
+static char *stpcpy PARAMS ((char *dest, const char *src));
+# endif
+#endif
+
+/* Amount to increase buffer size by in each try. */
+#define PATH_INCR 32
+
+/* The following is from pathmax.h. */
+/* Non-POSIX BSD systems might have gcc's limits.h, which doesn't define
+ PATH_MAX but might cause redefinition warnings when sys/param.h is
+ later included (as on MORE/BSD 4.3). */
+#ifdef NEWS4
+/* on NEWS-OS 4 limits.h hasn't PATH_MAX */
+#undef HAVE_LIMITS_H
+#endif
+#if defined(_POSIX_VERSION) || (defined(HAVE_LIMITS_H) && !defined(__GNUC__))
+# include <limits.h>
+#endif
+
+#ifndef _POSIX_PATH_MAX
+# define _POSIX_PATH_MAX 255
+#endif
+
+#if !defined(PATH_MAX) && defined(_PC_PATH_MAX)
+# define PATH_MAX (pathconf ("/", _PC_PATH_MAX) < 1 ? 1024 : pathconf ("/", _PC_PATH_MAX))
+#endif
+
+/* Don't include sys/param.h if it already has been. */
+#if defined(HAVE_SYS_PARAM_H) && !defined(PATH_MAX) && !defined(MAXPATHLEN)
+# include <sys/param.h>
+#endif
+
+#if !defined(PATH_MAX) && defined(MAXPATHLEN)
+# define PATH_MAX MAXPATHLEN
+#endif
+
+#ifndef PATH_MAX
+# define PATH_MAX _POSIX_PATH_MAX
+#endif
+
+/* XPG3 defines the result of `setlocale (category, NULL)' as:
+ ``Directs `setlocale()' to query `category' and return the current
+ setting of `local'.''
+ However it does not specify the exact format. And even worse: POSIX
+ defines this not at all. So we can use this feature only on selected
+ system (e.g. those using GNU C Library). */
+#ifdef _LIBC
+# define HAVE_LOCALE_NULL
+#endif
+
+/* Name of the default domain used for gettext(3) prior any call to
+ textdomain(3). The default value for this is "messages". */
+const char _nl_default_default_domain[] = "messages";
+
+/* Value used as the default domain for gettext(3). */
+const char *_nl_current_default_domain = _nl_default_default_domain;
+
+/* Contains the default location of the message catalogs. */
+const char *_nl_default_dirname = GNULOCALEDIR;
+
+/* List with bindings of specific domains created by bindtextdomain()
+ calls. */
+struct binding *_nl_domain_bindings;
+
+/* Prototypes for local functions. */
+static char *find_msg PARAMS ((struct loaded_l10nfile *domain_file,
+ const char *msgid)) internal_function;
+static const char *category_to_name PARAMS ((int category)) internal_function;
+static const char *guess_category_value PARAMS ((int category,
+ const char *categoryname))
+ internal_function;
+
+
+/* For those loosing systems which don't have `alloca' we have to add
+ some additional code emulating it. */
+#ifdef HAVE_ALLOCA
+/* Nothing has to be done. */
+# define ADD_BLOCK(list, address) /* nothing */
+# define FREE_BLOCKS(list) /* nothing */
+#else
+struct block_list
+{
+ void *address;
+ struct block_list *next;
+};
+# define ADD_BLOCK(list, addr) \
+ do { \
+ struct block_list *newp = (struct block_list *) malloc (sizeof (*newp)); \
+ /* If we cannot get a free block we cannot add the new element to \
+ the list. */ \
+ if (newp != NULL) { \
+ newp->address = (addr); \
+ newp->next = (list); \
+ (list) = newp; \
+ } \
+ } while (0)
+# define FREE_BLOCKS(list) \
+ do { \
+ while (list != NULL) { \
+ struct block_list *old = list; \
+ list = list->next; \
+ free (old); \
+ } \
+ } while (0)
+# undef alloca
+# define alloca(size) (malloc (size))
+#endif /* have alloca */
+
+
+/* Names for the libintl functions are a problem. They must not clash
+ with existing names and they should follow ANSI C. But this source
+ code is also used in GNU C Library where the names have a __
+ prefix. So we have to make a difference here. */
+#ifdef _LIBC
+# define DCGETTEXT __dcgettext
+#else
+# define DCGETTEXT dcgettext__
+#endif
+
+/* Checking whether the binaries runs SUID must be done and glibc provides
+ easier methods therefore we make a difference here. */
+#ifdef _LIBC
+# define ENABLE_SECURE __libc_enable_secure
+# define DETERMINE_SECURE
+#else
+static int enable_secure;
+# define ENABLE_SECURE (enable_secure == 1)
+# define DETERMINE_SECURE \
+ if (enable_secure == 0) \
+ { \
+ if (getuid () != geteuid () || getgid () != getegid ()) \
+ enable_secure = 1; \
+ else \
+ enable_secure = -1; \
+ }
+#endif
+
+/* Look up MSGID in the DOMAINNAME message catalog for the current CATEGORY
+ locale. */
+char *
+DCGETTEXT (domainname, msgid, category)
+ const char *domainname;
+ const char *msgid;
+ int category;
+{
+#ifndef HAVE_ALLOCA
+ struct block_list *block_list = NULL;
+#endif
+ struct loaded_l10nfile *domain;
+ struct binding *binding;
+ const char *categoryname;
+ const char *categoryvalue;
+ char *dirname, *xdomainname;
+ char *single_locale;
+ char *retval;
+ int saved_errno = errno;
+
+ /* If no real MSGID is given return NULL. */
+ if (msgid == NULL)
+ return NULL;
+
+ /* See whether this is a SUID binary or not. */
+ DETERMINE_SECURE;
+
+ /* If DOMAINNAME is NULL, we are interested in the default domain. If
+ CATEGORY is not LC_MESSAGES this might not make much sense but the
+ definition left this undefined. */
+ if (domainname == NULL)
+ domainname = _nl_current_default_domain;
+
+ /* First find matching binding. */
+ for (binding = _nl_domain_bindings; binding != NULL; binding = binding->next)
+ {
+ int compare = strcmp (domainname, binding->domainname);
+ if (compare == 0)
+ /* We found it! */
+ break;
+ if (compare < 0)
+ {
+ /* It is not in the list. */
+ binding = NULL;
+ break;
+ }
+ }
+
+ if (binding == NULL)
+ dirname = (char *) _nl_default_dirname;
+ else if (binding->dirname[0] == '/')
+ dirname = binding->dirname;
+ else
+ {
+ /* We have a relative path. Make it absolute now. */
+ size_t dirname_len = strlen (binding->dirname) + 1;
+ size_t path_max;
+ char *ret;
+
+ path_max = (unsigned int) PATH_MAX;
+ path_max += 2; /* The getcwd docs say to do this. */
+
+ dirname = (char *) alloca (path_max + dirname_len);
+ ADD_BLOCK (block_list, dirname);
+
+ __set_errno (0);
+ while ((ret = getcwd (dirname, path_max)) == NULL && errno == ERANGE)
+ {
+ path_max += PATH_INCR;
+ dirname = (char *) alloca (path_max + dirname_len);
+ ADD_BLOCK (block_list, dirname);
+ __set_errno (0);
+ }
+
+ if (ret == NULL)
+ {
+ /* We cannot get the current working directory. Don't signal an
+ error but simply return the default string. */
+ FREE_BLOCKS (block_list);
+ __set_errno (saved_errno);
+ return (char *) msgid;
+ }
+
+ stpcpy (stpcpy (strchr (dirname, '\0'), "/"), binding->dirname);
+ }
+
+ /* Now determine the symbolic name of CATEGORY and its value. */
+ categoryname = category_to_name (category);
+ categoryvalue = guess_category_value (category, categoryname);
+
+ xdomainname = (char *) alloca (strlen (categoryname)
+ + strlen (domainname) + 5);
+ ADD_BLOCK (block_list, xdomainname);
+
+ stpcpy (stpcpy (stpcpy (stpcpy (xdomainname, categoryname), "/"),
+ domainname),
+ ".mo");
+
+ /* Creating working area. */
+ single_locale = (char *) alloca (strlen (categoryvalue) + 1);
+ ADD_BLOCK (block_list, single_locale);
+
+
+ /* Search for the given string. This is a loop because we perhaps
+ got an ordered list of languages to consider for the translation. */
+ while (1)
+ {
+ /* Make CATEGORYVALUE point to the next element of the list. */
+ while (categoryvalue[0] != '\0' && categoryvalue[0] == ':')
+ ++categoryvalue;
+ if (categoryvalue[0] == '\0')
+ {
+ /* The whole contents of CATEGORYVALUE has been searched but
+ no valid entry has been found. We solve this situation
+ by implicitly appending a "C" entry, i.e. no translation
+ will take place. */
+ single_locale[0] = 'C';
+ single_locale[1] = '\0';
+ }
+ else
+ {
+ char *cp = single_locale;
+ while (categoryvalue[0] != '\0' && categoryvalue[0] != ':')
+ *cp++ = *categoryvalue++;
+ *cp = '\0';
+
+ /* When this is a SUID binary we must not allow accessing files
+ outside the dedicated directories. */
+ if (ENABLE_SECURE
+ && (memchr (single_locale, '/',
+ _nl_find_language (single_locale) - single_locale)
+ != NULL))
+ /* Ingore this entry. */
+ continue;
+ }
+
+ /* If the current locale value is C (or POSIX) we don't load a
+ domain. Return the MSGID. */
+ if (strcmp (single_locale, "C") == 0
+ || strcmp (single_locale, "POSIX") == 0)
+ {
+ FREE_BLOCKS (block_list);
+ __set_errno (saved_errno);
+ return (char *) msgid;
+ }
+
+
+ /* Find structure describing the message catalog matching the
+ DOMAINNAME and CATEGORY. */
+ domain = _nl_find_domain (dirname, single_locale, xdomainname);
+
+ if (domain != NULL)
+ {
+ retval = find_msg (domain, msgid);
+
+ if (retval == NULL)
+ {
+ int cnt;
+
+ for (cnt = 0; domain->successor[cnt] != NULL; ++cnt)
+ {
+ retval = find_msg (domain->successor[cnt], msgid);
+
+ if (retval != NULL)
+ break;
+ }
+ }
+
+ if (retval != NULL)
+ {
+ FREE_BLOCKS (block_list);
+ __set_errno (saved_errno);
+ return retval;
+ }
+ }
+ }
+ /* NOTREACHED */
+}
+
+#ifdef _LIBC
+/* Alias for function name in GNU C Library. */
+weak_alias (__dcgettext, dcgettext);
+#endif
+
+
+static char *
+internal_function
+find_msg (domain_file, msgid)
+ struct loaded_l10nfile *domain_file;
+ const char *msgid;
+{
+ size_t act = 0;
+ size_t top, bottom;
+ struct loaded_domain *domain;
+
+ if (domain_file->decided == 0)
+ _nl_load_domain (domain_file);
+
+ if (domain_file->data == NULL)
+ return NULL;
+
+ domain = (struct loaded_domain *) domain_file->data;
+
+ /* Locate the MSGID and its translation. */
+ if (domain->hash_size > 2 && domain->hash_tab != NULL)
+ {
+ /* Use the hashing table. */
+ nls_uint32 len = strlen (msgid);
+ nls_uint32 hash_val = hash_string (msgid);
+ nls_uint32 idx = hash_val % domain->hash_size;
+ nls_uint32 incr = 1 + (hash_val % (domain->hash_size - 2));
+ nls_uint32 nstr = W (domain->must_swap, domain->hash_tab[idx]);
+
+ if (nstr == 0)
+ /* Hash table entry is empty. */
+ return NULL;
+
+ if (W (domain->must_swap, domain->orig_tab[nstr - 1].length) == len
+ && strcmp (msgid,
+ domain->data + W (domain->must_swap,
+ domain->orig_tab[nstr - 1].offset)) == 0)
+ return (char *) domain->data + W (domain->must_swap,
+ domain->trans_tab[nstr - 1].offset);
+
+ while (1)
+ {
+ if (idx >= domain->hash_size - incr)
+ idx -= domain->hash_size - incr;
+ else
+ idx += incr;
+
+ nstr = W (domain->must_swap, domain->hash_tab[idx]);
+ if (nstr == 0)
+ /* Hash table entry is empty. */
+ return NULL;
+
+ if (W (domain->must_swap, domain->orig_tab[nstr - 1].length) == len
+ && strcmp (msgid,
+ domain->data + W (domain->must_swap,
+ domain->orig_tab[nstr - 1].offset))
+ == 0)
+ return (char *) domain->data
+ + W (domain->must_swap, domain->trans_tab[nstr - 1].offset);
+ }
+ /* NOTREACHED */
+ }
+
+ /* Now we try the default method: binary search in the sorted
+ array of messages. */
+ bottom = 0;
+ top = domain->nstrings;
+ while (bottom < top)
+ {
+ int cmp_val;
+
+ act = (bottom + top) / 2;
+ cmp_val = strcmp (msgid, domain->data
+ + W (domain->must_swap,
+ domain->orig_tab[act].offset));
+ if (cmp_val < 0)
+ top = act;
+ else if (cmp_val > 0)
+ bottom = act + 1;
+ else
+ break;
+ }
+
+ /* If an translation is found return this. */
+ return bottom >= top ? NULL : (char *) domain->data
+ + W (domain->must_swap,
+ domain->trans_tab[act].offset);
+}
+
+
+/* Return string representation of locale CATEGORY. */
+static const char *
+internal_function
+category_to_name (category)
+ int category;
+{
+ const char *retval;
+
+ switch (category)
+ {
+#ifdef LC_COLLATE
+ case LC_COLLATE:
+ retval = "LC_COLLATE";
+ break;
+#endif
+#ifdef LC_CTYPE
+ case LC_CTYPE:
+ retval = "LC_CTYPE";
+ break;
+#endif
+#ifdef LC_MONETARY
+ case LC_MONETARY:
+ retval = "LC_MONETARY";
+ break;
+#endif
+#ifdef LC_NUMERIC
+ case LC_NUMERIC:
+ retval = "LC_NUMERIC";
+ break;
+#endif
+#ifdef LC_TIME
+ case LC_TIME:
+ retval = "LC_TIME";
+ break;
+#endif
+#ifdef LC_MESSAGES
+ case LC_MESSAGES:
+ retval = "LC_MESSAGES";
+ break;
+#endif
+#ifdef LC_RESPONSE
+ case LC_RESPONSE:
+ retval = "LC_RESPONSE";
+ break;
+#endif
+#ifdef LC_ALL
+ case LC_ALL:
+ /* This might not make sense but is perhaps better than any other
+ value. */
+ retval = "LC_ALL";
+ break;
+#endif
+ default:
+ /* If you have a better idea for a default value let me know. */
+ retval = "LC_XXX";
+ }
+
+ return retval;
+}
+
+/* Guess value of current locale from value of the environment variables. */
+static const char *
+internal_function
+guess_category_value (category, categoryname)
+ int category;
+ const char *categoryname;
+{
+ const char *retval;
+
+ /* The highest priority value is the `LANGUAGE' environment
+ variable. This is a GNU extension. */
+ retval = getenv ("LANGUAGE");
+ if (retval != NULL && retval[0] != '\0')
+ return retval;
+
+ /* `LANGUAGE' is not set. So we have to proceed with the POSIX
+ methods of looking to `LC_ALL', `LC_xxx', and `LANG'. On some
+ systems this can be done by the `setlocale' function itself. */
+#if defined HAVE_SETLOCALE && defined HAVE_LC_MESSAGES && defined HAVE_LOCALE_NULL
+ return setlocale (category, NULL);
+#else
+ /* Setting of LC_ALL overwrites all other. */
+ retval = getenv ("LC_ALL");
+ if (retval != NULL && retval[0] != '\0')
+ return retval;
+
+ /* Next comes the name of the desired category. */
+ retval = getenv (categoryname);
+ if (retval != NULL && retval[0] != '\0')
+ return retval;
+
+ /* Last possibility is the LANG environment variable. */
+ retval = getenv ("LANG");
+ if (retval != NULL && retval[0] != '\0')
+ return retval;
+
+ /* We use C as the default domain. POSIX says this is implementation
+ defined. */
+ return "C";
+#endif
+}
+
+/* @@ begin of epilog @@ */
+
+/* We don't want libintl.a to depend on any other library. So we
+ avoid the non-standard function stpcpy. In GNU C Library this
+ function is available, though. Also allow the symbol HAVE_STPCPY
+ to be defined. */
+#if !_LIBC && !HAVE_STPCPY
+static char *
+stpcpy (dest, src)
+ char *dest;
+ const char *src;
+{
+ while ((*dest++ = *src++) != '\0')
+ /* Do nothing. */ ;
+ return dest - 1;
+}
+#endif
+
+
+#ifdef _LIBC
+/* If we want to free all resources we have to do some work at
+ program's end. */
+static void __attribute__ ((unused))
+free_mem (void)
+{
+ struct binding *runp;
+
+ for (runp = _nl_domain_bindings; runp != NULL; runp = runp->next)
+ {
+ free (runp->domainname);
+ if (runp->dirname != _nl_default_dirname)
+ /* Yes, this is a pointer comparison. */
+ free (runp->dirname);
+ }
+
+ if (_nl_current_default_domain != _nl_default_default_domain)
+ /* Yes, again a pointer comparison. */
+ free ((char *) _nl_current_default_domain);
+}
+
+text_set_element (__libc_subfreeres, free_mem);
+#endif
diff --git a/source3/intl/dgettext.c b/source3/intl/dgettext.c
new file mode 100644
index 0000000000..269e36fdd7
--- /dev/null
+++ b/source3/intl/dgettext.c
@@ -0,0 +1,60 @@
+/* Implementation of the dgettext(3) function
+ Copyright (C) 1995, 1996, 1997 Free Software Foundation, Inc.
+
+ 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
+ the Free Software Foundation; either version 2, or (at your option)
+ any later version.
+
+ This program 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 General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program; if not, write to the Free Software Foundation,
+ Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
+
+#ifdef HAVE_CONFIG_H
+# include <config.h>
+#endif
+
+#if defined HAVE_LOCALE_H || defined _LIBC
+# include <locale.h>
+#endif
+
+# include <locale.h>
+#ifdef _LIBC
+# include <libintl.h>
+#else
+# include "libgettext.h"
+#endif
+
+/* @@ end of prolog @@ */
+
+/* Names for the libintl functions are a problem. They must not clash
+ with existing names and they should follow ANSI C. But this source
+ code is also used in GNU C Library where the names have a __
+ prefix. So we have to make a difference here. */
+#ifdef _LIBC
+# define DGETTEXT __dgettext
+# define DCGETTEXT __dcgettext
+#else
+# define DGETTEXT dgettext__
+# define DCGETTEXT dcgettext__
+#endif
+
+/* Look up MSGID in the DOMAINNAME message catalog of the current
+ LC_MESSAGES locale. */
+char *
+DGETTEXT (domainname, msgid)
+ const char *domainname;
+ const char *msgid;
+{
+ return DCGETTEXT (domainname, msgid, LC_MESSAGES);
+}
+
+#ifdef _LIBC
+/* Alias for function name in GNU C Library. */
+weak_alias (__dgettext, dgettext);
+#endif
diff --git a/source3/intl/explodename.c b/source3/intl/explodename.c
new file mode 100644
index 0000000000..80a3111c9f
--- /dev/null
+++ b/source3/intl/explodename.c
@@ -0,0 +1,197 @@
+/* Copyright (C) 1995, 1996, 1997, 1998 Free Software Foundation, Inc.
+ Contributed by Ulrich Drepper <drepper@gnu.ai.mit.edu>, 1995.
+
+ 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
+ the Free Software Foundation; either version 2, or (at your option)
+ any later version.
+
+ This program 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 General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program; if not, write to the Free Software Foundation,
+ Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
+
+#ifdef HAVE_CONFIG_H
+# include <config.h>
+#endif
+
+#if defined STDC_HEADERS || defined _LIBC
+# include <stdlib.h>
+#endif
+
+#if defined HAVE_STRING_H || defined _LIBC
+# include <string.h>
+#else
+# include <strings.h>
+#endif
+#include <sys/types.h>
+
+#include "loadinfo.h"
+
+/* On some strange systems still no definition of NULL is found. Sigh! */
+#ifndef NULL
+# if defined __STDC__ && __STDC__
+# define NULL ((void *) 0)
+# else
+# define NULL 0
+# endif
+#endif
+
+/* @@ end of prolog @@ */
+
+char *
+_nl_find_language (const char *name)
+{
+ while (name[0] != '\0' && name[0] != '_' && name[0] != '@'
+ && name[0] != '+' && name[0] != ',')
+ ++name;
+
+ return (char *) name;
+}
+
+
+int
+_nl_explode_name (name, language, modifier, territory, codeset,
+ normalized_codeset, special, sponsor, revision)
+ char *name;
+ const char **language;
+ const char **modifier;
+ const char **territory;
+ const char **codeset;
+ const char **normalized_codeset;
+ const char **special;
+ const char **sponsor;
+ const char **revision;
+{
+ enum { undecided, xpg, cen } syntax;
+ char *cp;
+ int mask;
+
+ *modifier = NULL;
+ *territory = NULL;
+ *codeset = NULL;
+ *normalized_codeset = NULL;
+ *special = NULL;
+ *sponsor = NULL;
+ *revision = NULL;
+
+ /* Now we determine the single parts of the locale name. First
+ look for the language. Termination symbols are `_' and `@' if
+ we use XPG4 style, and `_', `+', and `,' if we use CEN syntax. */
+ mask = 0;
+ syntax = undecided;
+ *language = cp = name;
+ cp = _nl_find_language (*language);
+
+ if (*language == cp)
+ /* This does not make sense: language has to be specified. Use
+ this entry as it is without exploding. Perhaps it is an alias. */
+ cp = strchr (*language, '\0');
+ else if (cp[0] == '_')
+ {
+ /* Next is the territory. */
+ cp[0] = '\0';
+ *territory = ++cp;
+
+ while (cp[0] != '\0' && cp[0] != '.' && cp[0] != '@'
+ && cp[0] != '+' && cp[0] != ',' && cp[0] != '_')
+ ++cp;
+
+ mask |= TERRITORY;
+
+ if (cp[0] == '.')
+ {
+ /* Next is the codeset. */
+ syntax = xpg;
+ cp[0] = '\0';
+ *codeset = ++cp;
+
+ while (cp[0] != '\0' && cp[0] != '@')
+ ++cp;
+
+ mask |= XPG_CODESET;
+
+ if (*codeset != cp && (*codeset)[0] != '\0')
+ {
+ *normalized_codeset = _nl_normalize_codeset (*codeset,
+ cp - *codeset);
+ if (strcmp (*codeset, *normalized_codeset) == 0)
+ free ((char *) *normalized_codeset);
+ else
+ mask |= XPG_NORM_CODESET;
+ }
+ }
+ }
+
+ if (cp[0] == '@' || (syntax != xpg && cp[0] == '+'))
+ {
+ /* Next is the modifier. */
+ syntax = cp[0] == '@' ? xpg : cen;
+ cp[0] = '\0';
+ *modifier = ++cp;
+
+ while (syntax == cen && cp[0] != '\0' && cp[0] != '+'
+ && cp[0] != ',' && cp[0] != '_')
+ ++cp;
+
+ mask |= XPG_MODIFIER | CEN_AUDIENCE;
+ }
+
+ if (syntax != xpg && (cp[0] == '+' || cp[0] == ',' || cp[0] == '_'))
+ {
+ syntax = cen;
+
+ if (cp[0] == '+')
+ {
+ /* Next is special application (CEN syntax). */
+ cp[0] = '\0';
+ *special = ++cp;
+
+ while (cp[0] != '\0' && cp[0] != ',' && cp[0] != '_')
+ ++cp;
+
+ mask |= CEN_SPECIAL;
+ }
+
+ if (cp[0] == ',')
+ {
+ /* Next is sponsor (CEN syntax). */
+ cp[0] = '\0';
+ *sponsor = ++cp;
+
+ while (cp[0] != '\0' && cp[0] != '_')
+ ++cp;
+
+ mask |= CEN_SPONSOR;
+ }
+
+ if (cp[0] == '_')
+ {
+ /* Next is revision (CEN syntax). */
+ cp[0] = '\0';
+ *revision = ++cp;
+
+ mask |= CEN_REVISION;
+ }
+ }
+
+ /* For CEN syntax values it might be important to have the
+ separator character in the file name, not for XPG syntax. */
+ if (syntax == xpg)
+ {
+ if (*territory != NULL && (*territory)[0] == '\0')
+ mask &= ~TERRITORY;
+
+ if (*codeset != NULL && (*codeset)[0] == '\0')
+ mask &= ~XPG_CODESET;
+
+ if (*modifier != NULL && (*modifier)[0] == '\0')
+ mask &= ~XPG_MODIFIER;
+ }
+
+ return mask;
+}
diff --git a/source3/intl/finddomain.c b/source3/intl/finddomain.c
new file mode 100644
index 0000000000..81ea29bf4e
--- /dev/null
+++ b/source3/intl/finddomain.c
@@ -0,0 +1,216 @@
+/* Handle list of needed message catalogs
+ Copyright (C) 1995, 1996, 1997, 1998 Free Software Foundation, Inc.
+ Written by Ulrich Drepper <drepper@gnu.ai.mit.edu>, 1995.
+
+ 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
+ the Free Software Foundation; either version 2, or (at your option)
+ any later version.
+
+ This program 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 General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program; if not, write to the Free Software Foundation,
+ Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
+
+#ifdef HAVE_CONFIG_H
+# include <config.h>
+#endif
+
+#include <ctype.h>
+#include <errno.h>
+#include <stdio.h>
+#include <sys/types.h>
+
+#if defined STDC_HEADERS || defined _LIBC
+# include <stdlib.h>
+#else
+# ifdef HAVE_MALLOC_H
+# include <malloc.h>
+# else
+void free ();
+# endif
+#endif
+
+#if defined HAVE_STRING_H || defined _LIBC
+# include <string.h>
+#else
+# include <strings.h>
+# ifndef memcpy
+# define memcpy(Dst, Src, Num) bcopy (Src, Dst, Num)
+# endif
+#endif
+#if !HAVE_STRCHR && !defined _LIBC
+# ifndef strchr
+# define strchr index
+# endif
+#endif
+
+#if defined HAVE_UNISTD_H || defined _LIBC
+# include <unistd.h>
+#endif
+
+#include "gettext.h"
+#include "gettextP.h"
+#ifdef _LIBC
+# include <libintl.h>
+#else
+# include "libgettext.h"
+#endif
+
+/* @@ end of prolog @@ */
+/* List of already loaded domains. */
+static struct loaded_l10nfile *_nl_loaded_domains;
+
+
+/* Return a data structure describing the message catalog described by
+ the DOMAINNAME and CATEGORY parameters with respect to the currently
+ established bindings. */
+struct loaded_l10nfile *
+internal_function
+_nl_find_domain (dirname, locale, domainname)
+ const char *dirname;
+ char *locale;
+ const char *domainname;
+{
+ struct loaded_l10nfile *retval;
+ const char *language;
+ const char *modifier;
+ const char *territory;
+ const char *codeset;
+ const char *normalized_codeset;
+ const char *special;
+ const char *sponsor;
+ const char *revision;
+ const char *alias_value;
+ int mask;
+
+ /* LOCALE can consist of up to four recognized parts for the XPG syntax:
+
+ language[_territory[.codeset]][@modifier]
+
+ and six parts for the CEN syntax:
+
+ language[_territory][+audience][+special][,[sponsor][_revision]]
+
+ Beside the first part all of them are allowed to be missing. If
+ the full specified locale is not found, the less specific one are
+ looked for. The various parts will be stripped off according to
+ the following order:
+ (1) revision
+ (2) sponsor
+ (3) special
+ (4) codeset
+ (5) normalized codeset
+ (6) territory
+ (7) audience/modifier
+ */
+
+ /* If we have already tested for this locale entry there has to
+ be one data set in the list of loaded domains. */
+ retval = _nl_make_l10nflist (&_nl_loaded_domains, dirname,
+ strlen (dirname) + 1, 0, locale, NULL, NULL,
+ NULL, NULL, NULL, NULL, NULL, domainname, 0);
+ if (retval != NULL)
+ {
+ /* We know something about this locale. */
+ int cnt;
+
+ if (retval->decided == 0)
+ _nl_load_domain (retval);
+
+ if (retval->data != NULL)
+ return retval;
+
+ for (cnt = 0; retval->successor[cnt] != NULL; ++cnt)
+ {
+ if (retval->successor[cnt]->decided == 0)
+ _nl_load_domain (retval->successor[cnt]);
+
+ if (retval->successor[cnt]->data != NULL)
+ break;
+ }
+ return cnt >= 0 ? retval : NULL;
+ /* NOTREACHED */
+ }
+
+ /* See whether the locale value is an alias. If yes its value
+ *overwrites* the alias name. No test for the original value is
+ done. */
+ alias_value = _nl_expand_alias (locale);
+ if (alias_value != NULL)
+ {
+#if defined _LIBC || defined HAVE_STRDUP
+ locale = strdup (alias_value);
+ if (locale == NULL)
+ return NULL;
+#else
+ size_t len = strlen (alias_value) + 1;
+ locale = (char *) malloc (len);
+ if (locale == NULL)
+ return NULL;
+
+ memcpy (locale, alias_value, len);
+#endif
+ }
+
+ /* Now we determine the single parts of the locale name. First
+ look for the language. Termination symbols are `_' and `@' if
+ we use XPG4 style, and `_', `+', and `,' if we use CEN syntax. */
+ mask = _nl_explode_name (locale, &language, &modifier, &territory,
+ &codeset, &normalized_codeset, &special,
+ &sponsor, &revision);
+
+ /* Create all possible locale entries which might be interested in
+ generalization. */
+ retval = _nl_make_l10nflist (&_nl_loaded_domains, dirname,
+ strlen (dirname) + 1, mask, language, territory,
+ codeset, normalized_codeset, modifier, special,
+ sponsor, revision, domainname, 1);
+ if (retval == NULL)
+ /* This means we are out of core. */
+ return NULL;
+
+ if (retval->decided == 0)
+ _nl_load_domain (retval);
+ if (retval->data == NULL)
+ {
+ int cnt;
+ for (cnt = 0; retval->successor[cnt] != NULL; ++cnt)
+ {
+ if (retval->successor[cnt]->decided == 0)
+ _nl_load_domain (retval->successor[cnt]);
+ if (retval->successor[cnt]->data != NULL)
+ break;
+ }
+ }
+
+ /* The room for an alias was dynamically allocated. Free it now. */
+ if (alias_value != NULL)
+ free (locale);
+
+ return retval;
+}
+
+
+#ifdef _LIBC
+static void __attribute__ ((unused))
+free_mem (void)
+{
+ struct loaded_l10nfile *runp = _nl_loaded_domains;
+
+ while (runp != NULL)
+ {
+ struct loaded_l10nfile *here = runp;
+ if (runp->data != NULL)
+ _nl_unload_domain ((struct loaded_domain *) runp->data);
+ runp = runp->next;
+ free (here);
+ }
+}
+
+text_set_element (__libc_subfreeres, free_mem);
+#endif
diff --git a/source3/intl/gettext.c b/source3/intl/gettext.c
new file mode 100644
index 0000000000..d929f98d68
--- /dev/null
+++ b/source3/intl/gettext.c
@@ -0,0 +1,70 @@
+/* Implementation of gettext(3) function.
+ Copyright (C) 1995, 1997 Free Software Foundation, Inc.
+
+ 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
+ the Free Software Foundation; either version 2, or (at your option)
+ any later version.
+
+ This program 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 General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program; if not, write to the Free Software Foundation,
+ Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
+
+#ifdef HAVE_CONFIG_H
+# include <config.h>
+#endif
+
+#ifdef _LIBC
+# define __need_NULL
+# include <stddef.h>
+#else
+# ifdef STDC_HEADERS
+# include <stdlib.h> /* Just for NULL. */
+# else
+# ifdef HAVE_STRING_H
+# include <string.h>
+# else
+# define NULL ((void *) 0)
+# endif
+# endif
+#endif
+
+#ifdef _LIBC
+# include <libintl.h>
+#else
+# include "libgettext.h"
+#endif
+
+/* @@ end of prolog @@ */
+
+/* Names for the libintl functions are a problem. They must not clash
+ with existing names and they should follow ANSI C. But this source
+ code is also used in GNU C Library where the names have a __
+ prefix. So we have to make a difference here. */
+#ifdef _LIBC
+# define GETTEXT __gettext
+# define DGETTEXT __dgettext
+#else
+# define GETTEXT gettext__
+# define DGETTEXT dgettext__
+#endif
+
+/* Look up MSGID in the current default message catalog for the current
+ LC_MESSAGES locale. If not found, returns MSGID itself (the default
+ text). */
+char *
+GETTEXT (msgid)
+ const char *msgid;
+{
+ return DGETTEXT (NULL, msgid);
+}
+
+#ifdef _LIBC
+/* Alias for function name in GNU C Library. */
+weak_alias (__gettext, gettext);
+#endif
diff --git a/source3/intl/gettext.h b/source3/intl/gettext.h
new file mode 100644
index 0000000000..92ce63d779
--- /dev/null
+++ b/source3/intl/gettext.h
@@ -0,0 +1,111 @@
+/* Internal header for GNU gettext internationalization functions.
+ Copyright (C) 1995, 1997 Free Software Foundation, Inc.
+
+ 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
+ the Free Software Foundation; either version 2, or (at your option)
+ any later version.
+
+ This program 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 General Public License for more details.
+
+ You should have received a copy of the GNU Library General Public
+ License along with the GNU C Library; see the file COPYING.LIB. If not,
+ write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
+ Boston, MA 02111-1307, USA. */
+
+#ifndef _GETTEXT_H
+#define _GETTEXT_H 1
+
+#include <stdio.h>
+
+#ifdef NEWS4
+/* on NEWS-OS 4 limits.h is overrided by sys/param.h */
+#undef HAVE_LIMITS_H
+# include <sys/param.h>
+#endif
+
+#if HAVE_LIMITS_H || _LIBC
+# include <limits.h>
+#endif
+
+/* @@ end of prolog @@ */
+
+/* The magic number of the GNU message catalog format. */
+#define _MAGIC 0x950412de
+#define _MAGIC_SWAPPED 0xde120495
+
+/* Revision number of the currently used .mo (binary) file format. */
+#define MO_REVISION_NUMBER 0
+
+/* The following contortions are an attempt to use the C preprocessor
+ to determine an unsigned integral type that is 32 bits wide. An
+ alternative approach is to use autoconf's AC_CHECK_SIZEOF macro, but
+ doing that would require that the configure script compile and *run*
+ the resulting executable. Locally running cross-compiled executables
+ is usually not possible. */
+
+#if __STDC__
+# define UINT_MAX_32_BITS 4294967295U
+#else
+# define UINT_MAX_32_BITS 0xFFFFFFFF
+#endif
+
+/* If UINT_MAX isn't defined, assume it's a 32-bit type.
+ This should be valid for all systems GNU cares about because
+ that doesn't include 16-bit systems, and only modern systems
+ (that certainly have <limits.h>) have 64+-bit integral types. */
+
+#ifndef UINT_MAX
+# define UINT_MAX UINT_MAX_32_BITS
+#endif
+
+#if UINT_MAX == UINT_MAX_32_BITS
+typedef unsigned nls_uint32;
+#else
+# if USHRT_MAX == UINT_MAX_32_BITS
+typedef unsigned short nls_uint32;
+# else
+# if ULONG_MAX == UINT_MAX_32_BITS
+typedef unsigned long nls_uint32;
+# else
+ /* The following line is intended to throw an error. Using #error is
+ not portable enough. */
+ "Cannot determine unsigned 32-bit data type."
+# endif
+# endif
+#endif
+
+
+/* Header for binary .mo file format. */
+struct mo_file_header
+{
+ /* The magic number. */
+ nls_uint32 magic;
+ /* The revision number of the file format. */
+ nls_uint32 revision;
+ /* The number of strings pairs. */
+ nls_uint32 nstrings;
+ /* Offset of table with start offsets of original strings. */
+ nls_uint32 orig_tab_offset;
+ /* Offset of table with start offsets of translation strings. */
+ nls_uint32 trans_tab_offset;
+ /* Size of hashing table. */
+ nls_uint32 hash_tab_size;
+ /* Offset of first hashing entry. */
+ nls_uint32 hash_tab_offset;
+};
+
+struct string_desc
+{
+ /* Length of addressed string. */
+ nls_uint32 length;
+ /* Offset of string in file. */
+ nls_uint32 offset;
+};
+
+/* @@ begin of epilog @@ */
+
+#endif /* gettext.h */
diff --git a/source3/intl/gettextP.h b/source3/intl/gettextP.h
new file mode 100644
index 0000000000..00c5203197
--- /dev/null
+++ b/source3/intl/gettextP.h
@@ -0,0 +1,89 @@
+/* Header describing internals of gettext library
+ Copyright (C) 1995, 1996, 1997, 1998 Free Software Foundation, Inc.
+ Written by Ulrich Drepper <drepper@gnu.ai.mit.edu>, 1995.
+
+ 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
+ the Free Software Foundation; either version 2, or (at your option)
+ any later version.
+
+ This program 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 General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program; if not, write to the Free Software Foundation,
+ Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
+
+#ifndef _GETTEXTP_H
+#define _GETTEXTP_H
+
+#include "loadinfo.h"
+
+/* @@ end of prolog @@ */
+
+#ifndef PARAMS
+# if __STDC__
+# define PARAMS(args) args
+# else
+# define PARAMS(args) ()
+# endif
+#endif
+
+#ifndef internal_function
+# define internal_function
+#endif
+
+#ifndef W
+# define W(flag, data) ((flag) ? SWAP (data) : (data))
+#endif
+
+
+#ifdef _LIBC
+# include <byteswap.h>
+# define SWAP(i) bswap_32 (i)
+#else
+static nls_uint32 SWAP PARAMS ((nls_uint32 i));
+
+static inline nls_uint32
+SWAP (i)
+ nls_uint32 i;
+{
+ return (i << 24) | ((i & 0xff00) << 8) | ((i >> 8) & 0xff00) | (i >> 24);
+}
+#endif
+
+
+struct loaded_domain
+{
+ const char *data;
+ int use_mmap;
+ size_t mmap_size;
+ int must_swap;
+ nls_uint32 nstrings;
+ struct string_desc *orig_tab;
+ struct string_desc *trans_tab;
+ nls_uint32 hash_size;
+ nls_uint32 *hash_tab;
+};
+
+struct binding
+{
+ struct binding *next;
+ char *domainname;
+ char *dirname;
+};
+
+struct loaded_l10nfile *_nl_find_domain PARAMS ((const char *__dirname,
+ char *__locale,
+ const char *__domainname))
+ internal_function;
+void _nl_load_domain PARAMS ((struct loaded_l10nfile *__domain))
+ internal_function;
+void _nl_unload_domain PARAMS ((struct loaded_domain *__domain))
+ internal_function;
+
+/* @@ begin of epilog @@ */
+
+#endif /* gettextP.h */
diff --git a/source3/intl/hash-string.h b/source3/intl/hash-string.h
new file mode 100644
index 0000000000..939e95828b
--- /dev/null
+++ b/source3/intl/hash-string.h
@@ -0,0 +1,59 @@
+/* Implements a string hashing function.
+ Copyright (C) 1995, 1997 Free Software Foundation, Inc.
+
+ 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
+ the Free Software Foundation; either version 2, or (at your option)
+ any later version.
+
+ This program 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 General Public License for more details.
+
+ You should have received a copy of the GNU Library General Public
+ License along with the GNU C Library; see the file COPYING.LIB. If not,
+ write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
+ Boston, MA 02111-1307, USA. */
+
+/* @@ end of prolog @@ */
+
+#ifndef PARAMS
+# if __STDC__
+# define PARAMS(Args) Args
+# else
+# define PARAMS(Args) ()
+# endif
+#endif
+
+/* We assume to have `unsigned long int' value with at least 32 bits. */
+#define HASHWORDBITS 32
+
+
+/* Defines the so called `hashpjw' function by P.J. Weinberger
+ [see Aho/Sethi/Ullman, COMPILERS: Principles, Techniques and Tools,
+ 1986, 1987 Bell Telephone Laboratories, Inc.] */
+static unsigned long int hash_string PARAMS ((const char *__str_param));
+
+static inline unsigned long int
+hash_string (str_param)
+ const char *str_param;
+{
+ unsigned long int hval, g;
+ const char *str = str_param;
+
+ /* Compute the hash value for the given string. */
+ hval = 0;
+ while (*str != '\0')
+ {
+ hval <<= 4;
+ hval += (unsigned long int) *str++;
+ g = hval & ((unsigned long int) 0xf << (HASHWORDBITS - 4));
+ if (g != 0)
+ {
+ hval ^= g >> (HASHWORDBITS - 8);
+ hval ^= g;
+ }
+ }
+ return hval;
+}
diff --git a/source3/intl/intl-compat.c b/source3/intl/intl-compat.c
new file mode 100644
index 0000000000..503efa0fa9
--- /dev/null
+++ b/source3/intl/intl-compat.c
@@ -0,0 +1,76 @@
+/* intl-compat.c - Stub functions to call gettext functions from GNU gettext
+ Library.
+ Copyright (C) 1995 Software Foundation, Inc.
+
+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
+the Free Software Foundation; either version 2, or (at your option)
+any later version.
+
+This program 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 General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with this program; if not, write to the Free Software
+Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
+
+#ifdef HAVE_CONFIG_H
+# include <config.h>
+#endif
+
+#include "libgettext.h"
+
+/* @@ end of prolog @@ */
+
+
+#undef gettext
+#undef dgettext
+#undef dcgettext
+#undef textdomain
+#undef bindtextdomain
+
+
+char *
+bindtextdomain (domainname, dirname)
+ const char *domainname;
+ const char *dirname;
+{
+ return bindtextdomain__ (domainname, dirname);
+}
+
+
+char *
+dcgettext (domainname, msgid, category)
+ const char *domainname;
+ const char *msgid;
+ int category;
+{
+ return dcgettext__ (domainname, msgid, category);
+}
+
+
+char *
+dgettext (domainname, msgid)
+ const char *domainname;
+ const char *msgid;
+{
+ return dgettext__ (domainname, msgid);
+}
+
+
+char *
+gettext (msgid)
+ const char *msgid;
+{
+ return gettext__ (msgid);
+}
+
+
+char *
+textdomain (domainname)
+ const char *domainname;
+{
+ return textdomain__ (domainname);
+}
diff --git a/source3/intl/l10nflist.c b/source3/intl/l10nflist.c
new file mode 100644
index 0000000000..30f5f64579
--- /dev/null
+++ b/source3/intl/l10nflist.c
@@ -0,0 +1,411 @@
+/* Handle list of needed message catalogs
+ Copyright (C) 1995, 1996, 1997 Free Software Foundation, Inc.
+ Contributed by Ulrich Drepper <drepper@gnu.ai.mit.edu>, 1995.
+
+ 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
+ the Free Software Foundation; either version 2, or (at your option)
+ any later version.
+
+ This program 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 General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program; if not, write to the Free Software Foundation,
+ Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
+
+#ifdef HAVE_CONFIG_H
+# include <config.h>
+#endif
+
+
+#if defined HAVE_STRING_H || defined _LIBC
+# ifndef _GNU_SOURCE
+# define _GNU_SOURCE 1
+# endif
+# include <string.h>
+#else
+# include <strings.h>
+# ifndef memcpy
+# define memcpy(Dst, Src, Num) bcopy (Src, Dst, Num)
+# endif
+#endif
+#if !HAVE_STRCHR && !defined _LIBC
+# ifndef strchr
+# define strchr index
+# endif
+#endif
+
+#if defined _LIBC || defined HAVE_ARGZ_H
+# include <argz.h>
+#endif
+#include <ctype.h>
+#include <sys/types.h>
+
+#if defined STDC_HEADERS || defined _LIBC
+# include <stdlib.h>
+#endif
+
+#include "loadinfo.h"
+
+/* On some strange systems still no definition of NULL is found. Sigh! */
+#ifndef NULL
+# if defined __STDC__ && __STDC__
+# define NULL ((void *) 0)
+# else
+# define NULL 0
+# endif
+#endif
+
+/* @@ end of prolog @@ */
+
+#ifdef _LIBC
+/* Rename the non ANSI C functions. This is required by the standard
+ because some ANSI C functions will require linking with this object
+ file and the name space must not be polluted. */
+# ifndef stpcpy
+# define stpcpy(dest, src) __stpcpy(dest, src)
+# endif
+#else
+# ifndef HAVE_STPCPY
+static char *stpcpy PARAMS ((char *dest, const char *src));
+# endif
+#endif
+
+/* Define function which are usually not available. */
+
+#if !defined _LIBC && !defined HAVE___ARGZ_COUNT
+/* Returns the number of strings in ARGZ. */
+static size_t argz_count__ PARAMS ((const char *argz, size_t len));
+
+static size_t
+argz_count__ (argz, len)
+ const char *argz;
+ size_t len;
+{
+ size_t count = 0;
+ while (len > 0)
+ {
+ size_t part_len = strlen (argz);
+ argz += part_len + 1;
+ len -= part_len + 1;
+ count++;
+ }
+ return count;
+}
+# undef __argz_count
+# define __argz_count(argz, len) argz_count__ (argz, len)
+#endif /* !_LIBC && !HAVE___ARGZ_COUNT */
+
+#if !defined _LIBC && !defined HAVE___ARGZ_STRINGIFY
+/* Make '\0' separated arg vector ARGZ printable by converting all the '\0's
+ except the last into the character SEP. */
+static void argz_stringify__ PARAMS ((char *argz, size_t len, int sep));
+
+static void
+argz_stringify__ (argz, len, sep)
+ char *argz;
+ size_t len;
+ int sep;
+{
+ while (len > 0)
+ {
+ size_t part_len = strlen (argz);
+ argz += part_len;
+ len -= part_len + 1;
+ if (len > 0)
+ *argz++ = sep;
+ }
+}
+# undef __argz_stringify
+# define __argz_stringify(argz, len, sep) argz_stringify__ (argz, len, sep)
+#endif /* !_LIBC && !HAVE___ARGZ_STRINGIFY */
+
+#if !defined _LIBC && !defined HAVE___ARGZ_NEXT
+static char *argz_next__ PARAMS ((char *argz, size_t argz_len,
+ const char *entry));
+
+static char *
+argz_next__ (argz, argz_len, entry)
+ char *argz;
+ size_t argz_len;
+ const char *entry;
+{
+ if (entry)
+ {
+ if (entry < argz + argz_len)
+ entry = strchr (entry, '\0') + 1;
+
+ return entry >= argz + argz_len ? NULL : (char *) entry;
+ }
+ else
+ if (argz_len > 0)
+ return argz;
+ else
+ return 0;
+}
+# undef __argz_next
+# define __argz_next(argz, len, entry) argz_next__ (argz, len, entry)
+#endif /* !_LIBC && !HAVE___ARGZ_NEXT */
+
+
+/* Return number of bits set in X. */
+static int pop PARAMS ((int x));
+
+static inline int
+pop (x)
+ int x;
+{
+ /* We assume that no more than 16 bits are used. */
+ x = ((x & ~0x5555) >> 1) + (x & 0x5555);
+ x = ((x & ~0x3333) >> 2) + (x & 0x3333);
+ x = ((x >> 4) + x) & 0x0f0f;
+ x = ((x >> 8) + x) & 0xff;
+
+ return x;
+}
+
+
+struct loaded_l10nfile *
+_nl_make_l10nflist (l10nfile_list, dirlist, dirlist_len, mask, language,
+ territory, codeset, normalized_codeset, modifier, special,
+ sponsor, revision, filename, do_allocate)
+ struct loaded_l10nfile **l10nfile_list;
+ const char *dirlist;
+ size_t dirlist_len;
+ int mask;
+ const char *language;
+ const char *territory;
+ const char *codeset;
+ const char *normalized_codeset;
+ const char *modifier;
+ const char *special;
+ const char *sponsor;
+ const char *revision;
+ const char *filename;
+ int do_allocate;
+{
+ char *abs_filename;
+ struct loaded_l10nfile *last = NULL;
+ struct loaded_l10nfile *retval;
+ char *cp;
+ size_t entries;
+ int cnt;
+
+ /* Allocate room for the full file name. */
+ abs_filename = (char *) malloc (dirlist_len
+ + strlen (language)
+ + ((mask & TERRITORY) != 0
+ ? strlen (territory) + 1 : 0)
+ + ((mask & XPG_CODESET) != 0
+ ? strlen (codeset) + 1 : 0)
+ + ((mask & XPG_NORM_CODESET) != 0
+ ? strlen (normalized_codeset) + 1 : 0)
+ + (((mask & XPG_MODIFIER) != 0
+ || (mask & CEN_AUDIENCE) != 0)
+ ? strlen (modifier) + 1 : 0)
+ + ((mask & CEN_SPECIAL) != 0
+ ? strlen (special) + 1 : 0)
+ + (((mask & CEN_SPONSOR) != 0
+ || (mask & CEN_REVISION) != 0)
+ ? (1 + ((mask & CEN_SPONSOR) != 0
+ ? strlen (sponsor) + 1 : 0)
+ + ((mask & CEN_REVISION) != 0
+ ? strlen (revision) + 1 : 0)) : 0)
+ + 1 + strlen (filename) + 1);
+
+ if (abs_filename == NULL)
+ return NULL;
+
+ retval = NULL;
+ last = NULL;
+
+ /* Construct file name. */
+ memcpy (abs_filename, dirlist, dirlist_len);
+ __argz_stringify (abs_filename, dirlist_len, ':');
+ cp = abs_filename + (dirlist_len - 1);
+ *cp++ = '/';
+ cp = stpcpy (cp, language);
+
+ if ((mask & TERRITORY) != 0)
+ {
+ *cp++ = '_';
+ cp = stpcpy (cp, territory);
+ }
+ if ((mask & XPG_CODESET) != 0)
+ {
+ *cp++ = '.';
+ cp = stpcpy (cp, codeset);
+ }
+ if ((mask & XPG_NORM_CODESET) != 0)
+ {
+ *cp++ = '.';
+ cp = stpcpy (cp, normalized_codeset);
+ }
+ if ((mask & (XPG_MODIFIER | CEN_AUDIENCE)) != 0)
+ {
+ /* This component can be part of both syntaces but has different
+ leading characters. For CEN we use `+', else `@'. */
+ *cp++ = (mask & CEN_AUDIENCE) != 0 ? '+' : '@';
+ cp = stpcpy (cp, modifier);
+ }
+ if ((mask & CEN_SPECIAL) != 0)
+ {
+ *cp++ = '+';
+ cp = stpcpy (cp, special);
+ }
+ if ((mask & (CEN_SPONSOR | CEN_REVISION)) != 0)
+ {
+ *cp++ = ',';
+ if ((mask & CEN_SPONSOR) != 0)
+ cp = stpcpy (cp, sponsor);
+ if ((mask & CEN_REVISION) != 0)
+ {
+ *cp++ = '_';
+ cp = stpcpy (cp, revision);
+ }
+ }
+
+ *cp++ = '/';
+ stpcpy (cp, filename);
+
+ /* Look in list of already loaded domains whether it is already
+ available. */
+ last = NULL;
+ for (retval = *l10nfile_list; retval != NULL; retval = retval->next)
+ if (retval->filename != NULL)
+ {
+ int compare = strcmp (retval->filename, abs_filename);
+ if (compare == 0)
+ /* We found it! */
+ break;
+ if (compare < 0)
+ {
+ /* It's not in the list. */
+ retval = NULL;
+ break;
+ }
+
+ last = retval;
+ }
+
+ if (retval != NULL || do_allocate == 0)
+ {
+ free (abs_filename);
+ return retval;
+ }
+
+ retval = (struct loaded_l10nfile *)
+ malloc (sizeof (*retval) + (__argz_count (dirlist, dirlist_len)
+ * (1 << pop (mask))
+ * sizeof (struct loaded_l10nfile *)));
+ if (retval == NULL)
+ return NULL;
+
+ retval->filename = abs_filename;
+ retval->decided = (__argz_count (dirlist, dirlist_len) != 1
+ || ((mask & XPG_CODESET) != 0
+ && (mask & XPG_NORM_CODESET) != 0));
+ retval->data = NULL;
+
+ if (last == NULL)
+ {
+ retval->next = *l10nfile_list;
+ *l10nfile_list = retval;
+ }
+ else
+ {
+ retval->next = last->next;
+ last->next = retval;
+ }
+
+ entries = 0;
+ /* If the DIRLIST is a real list the RETVAL entry corresponds not to
+ a real file. So we have to use the DIRLIST separation mechanism
+ of the inner loop. */
+ cnt = __argz_count (dirlist, dirlist_len) == 1 ? mask - 1 : mask;
+ for (; cnt >= 0; --cnt)
+ if ((cnt & ~mask) == 0
+ && ((cnt & CEN_SPECIFIC) == 0 || (cnt & XPG_SPECIFIC) == 0)
+ && ((cnt & XPG_CODESET) == 0 || (cnt & XPG_NORM_CODESET) == 0))
+ {
+ /* Iterate over all elements of the DIRLIST. */
+ char *dir = NULL;
+
+ while ((dir = __argz_next ((char *) dirlist, dirlist_len, dir))
+ != NULL)
+ retval->successor[entries++]
+ = _nl_make_l10nflist (l10nfile_list, dir, strlen (dir) + 1, cnt,
+ language, territory, codeset,
+ normalized_codeset, modifier, special,
+ sponsor, revision, filename, 1);
+ }
+ retval->successor[entries] = NULL;
+
+ return retval;
+}
+
+/* Normalize codeset name. There is no standard for the codeset
+ names. Normalization allows the user to use any of the common
+ names. */
+const char *
+_nl_normalize_codeset (codeset, name_len)
+ const char *codeset;
+ size_t name_len;
+{
+ int len = 0;
+ int only_digit = 1;
+ char *retval;
+ char *wp;
+ size_t cnt;
+
+ for (cnt = 0; cnt < name_len; ++cnt)
+ if (isalnum (codeset[cnt]))
+ {
+ ++len;
+
+ if (isalpha (codeset[cnt]))
+ only_digit = 0;
+ }
+
+ retval = (char *) malloc ((only_digit ? 3 : 0) + len + 1);
+
+ if (retval != NULL)
+ {
+ if (only_digit)
+ wp = stpcpy (retval, "iso");
+ else
+ wp = retval;
+
+ for (cnt = 0; cnt < name_len; ++cnt)
+ if (isalpha (codeset[cnt]))
+ *wp++ = tolower (codeset[cnt]);
+ else if (isdigit (codeset[cnt]))
+ *wp++ = codeset[cnt];
+
+ *wp = '\0';
+ }
+
+ return (const char *) retval;
+}
+
+
+/* @@ begin of epilog @@ */
+
+/* We don't want libintl.a to depend on any other library. So we
+ avoid the non-standard function stpcpy. In GNU C Library this
+ function is available, though. Also allow the symbol HAVE_STPCPY
+ to be defined. */
+#if !_LIBC && !HAVE_STPCPY
+static char *
+stpcpy (dest, src)
+ char *dest;
+ const char *src;
+{
+ while ((*dest++ = *src++) != '\0')
+ /* Do nothing. */ ;
+ return dest - 1;
+}
+#endif
diff --git a/source3/intl/libgettext.h b/source3/intl/libgettext.h
new file mode 100644
index 0000000000..3a92960ae3
--- /dev/null
+++ b/source3/intl/libgettext.h
@@ -0,0 +1,182 @@
+/* Message catalogs for internationalization.
+ Copyright (C) 1995, 1996, 1997, 1998 Free Software Foundation, Inc.
+
+ 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
+ the Free Software Foundation; either version 2, or (at your option)
+ any later version.
+
+ This program 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 General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program; if not, write to the Free Software Foundation,
+ Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
+
+/* Because on some systems (e.g. Solaris) we sometimes have to include
+ the systems libintl.h as well as this file we have more complex
+ include protection above. But the systems header might perhaps also
+ define _LIBINTL_H and therefore we have to protect the definition here. */
+
+#if !defined _LIBINTL_H || !defined _LIBGETTEXT_H
+#ifndef _LIBINTL_H
+# define _LIBINTL_H 1
+#endif
+#define _LIBGETTEXT_H 1
+
+/* We define an additional symbol to signal that we use the GNU
+ implementation of gettext. */
+#define __USE_GNU_GETTEXT 1
+
+#include <sys/types.h>
+
+#if HAVE_LOCALE_H
+# include <locale.h>
+#endif
+
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* @@ end of prolog @@ */
+
+#ifndef PARAMS
+# if __STDC__ || defined __cplusplus
+# define PARAMS(args) args
+# else
+# define PARAMS(args) ()
+# endif
+#endif
+
+#ifndef NULL
+# if !defined __cplusplus || defined __GNUC__
+# define NULL ((void *) 0)
+# else
+# define NULL (0)
+# endif
+#endif
+
+#if !HAVE_LC_MESSAGES
+/* This value determines the behaviour of the gettext() and dgettext()
+ function. But some system does not have this defined. Define it
+ to a default value. */
+# define LC_MESSAGES (-1)
+#endif
+
+
+/* Declarations for gettext-using-catgets interface. Derived from
+ Jim Meyering's libintl.h. */
+struct _msg_ent
+{
+ const char *_msg;
+ int _msg_number;
+};
+
+
+#if HAVE_CATGETS
+/* These two variables are defined in the automatically by po-to-tbl.sed
+ generated file `cat-id-tbl.c'. */
+extern const struct _msg_ent _msg_tbl[];
+extern int _msg_tbl_length;
+#endif
+
+
+/* For automatical extraction of messages sometimes no real
+ translation is needed. Instead the string itself is the result. */
+#define gettext_noop(Str) (Str)
+
+/* Look up MSGID in the current default message catalog for the current
+ LC_MESSAGES locale. If not found, returns MSGID itself (the default
+ text). */
+extern char *gettext PARAMS ((const char *__msgid));
+extern char *gettext__ PARAMS ((const char *__msgid));
+
+/* Look up MSGID in the DOMAINNAME message catalog for the current
+ LC_MESSAGES locale. */
+extern char *dgettext PARAMS ((const char *__domainname, const char *__msgid));
+extern char *dgettext__ PARAMS ((const char *__domainname,
+ const char *__msgid));
+
+/* Look up MSGID in the DOMAINNAME message catalog for the current CATEGORY
+ locale. */
+extern char *dcgettext PARAMS ((const char *__domainname, const char *__msgid,
+ int __category));
+extern char *dcgettext__ PARAMS ((const char *__domainname,
+ const char *__msgid, int __category));
+
+
+/* Set the current default message catalog to DOMAINNAME.
+ If DOMAINNAME is null, return the current default.
+ If DOMAINNAME is "", reset to the default of "messages". */
+extern char *textdomain PARAMS ((const char *__domainname));
+extern char *textdomain__ PARAMS ((const char *__domainname));
+
+/* Specify that the DOMAINNAME message catalog will be found
+ in DIRNAME rather than in the system locale data base. */
+extern char *bindtextdomain PARAMS ((const char *__domainname,
+ const char *__dirname));
+extern char *bindtextdomain__ PARAMS ((const char *__domainname,
+ const char *__dirname));
+
+#if ENABLE_NLS
+
+/* Solaris 2.3 has the gettext function but dcgettext is missing.
+ So we omit this optimization for Solaris 2.3. BTW, Solaris 2.4
+ has dcgettext. */
+# if !HAVE_CATGETS && (!HAVE_GETTEXT || HAVE_DCGETTEXT)
+
+# define gettext(Msgid) \
+ dgettext (NULL, Msgid)
+
+# define dgettext(Domainname, Msgid) \
+ dcgettext (Domainname, Msgid, LC_MESSAGES)
+
+# if defined __GNUC__ && __GNUC__ == 2 && __GNUC_MINOR__ >= 7
+/* This global variable is defined in loadmsgcat.c. We need a sign,
+ whether a new catalog was loaded, which can be associated with all
+ translations. */
+extern int _nl_msg_cat_cntr;
+
+# define dcgettext(Domainname, Msgid, Category) \
+ (__extension__ \
+ ({ \
+ char *__result; \
+ if (__builtin_constant_p (Msgid)) \
+ { \
+ static char *__translation__; \
+ static int __catalog_counter__; \
+ if (! __translation__ || __catalog_counter__ != _nl_msg_cat_cntr) \
+ { \
+ __translation__ = \
+ dcgettext__ (Domainname, Msgid, Category); \
+ __catalog_counter__ = _nl_msg_cat_cntr; \
+ } \
+ __result = __translation__; \
+ } \
+ else \
+ __result = dcgettext__ (Domainname, Msgid, Category); \
+ __result; \
+ }))
+# endif
+# endif
+
+#else
+
+# define gettext(Msgid) (Msgid)
+# define dgettext(Domainname, Msgid) (Msgid)
+# define dcgettext(Domainname, Msgid, Category) (Msgid)
+# define textdomain(Domainname) ((char *) Domainname)
+# define bindtextdomain(Domainname, Dirname) ((char *) Dirname)
+
+#endif
+
+/* @@ begin of epilog @@ */
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif
diff --git a/source3/intl/linux-msg.sed b/source3/intl/linux-msg.sed
new file mode 100644
index 0000000000..5918e720a9
--- /dev/null
+++ b/source3/intl/linux-msg.sed
@@ -0,0 +1,100 @@
+# po2msg.sed - Convert Uniforum style .po file to Linux style .msg file
+# Copyright (C) 1995 Free Software Foundation, Inc.
+# Ulrich Drepper <drepper@gnu.ai.mit.edu>, 1995.
+#
+# 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
+# the Free Software Foundation; either version 2, or (at your option)
+# any later version.
+#
+# This program 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 General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+#
+#
+# The first directive in the .msg should be the definition of the
+# message set number. We use always set number 1.
+#
+1 {
+ i\
+$set 1 # Automatically created by po2msg.sed
+ h
+ s/.*/0/
+ x
+}
+#
+# Mitch's old catalog format does not allow comments.
+#
+# We copy the original message as a comment into the .msg file.
+#
+/^msgid/ {
+ s/msgid[ ]*"//
+#
+# This does not work now with the new format.
+# /"$/! {
+# s/\\$//
+# s/$/ ... (more lines following)"/
+# }
+ x
+# The following nice solution is by
+# Bruno <Haible@ma2s2.mathematik.uni-karlsruhe.de>
+ td
+# Increment a decimal number in pattern space.
+# First hide trailing `9' digits.
+ :d
+ s/9\(_*\)$/_\1/
+ td
+# Assure at least one digit is available.
+ s/^\(_*\)$/0\1/
+# Increment the last digit.
+ s/8\(_*\)$/9\1/
+ s/7\(_*\)$/8\1/
+ s/6\(_*\)$/7\1/
+ s/5\(_*\)$/6\1/
+ s/4\(_*\)$/5\1/
+ s/3\(_*\)$/4\1/
+ s/2\(_*\)$/3\1/
+ s/1\(_*\)$/2\1/
+ s/0\(_*\)$/1\1/
+# Convert the hidden `9' digits to `0's.
+ s/_/0/g
+ x
+ G
+ s/\(.*\)"\n\([0-9]*\)/$ #\2 Original Message:(\1)/p
+}
+#
+# The .msg file contains, other then the .po file, only the translations
+# but each given a unique ID. Starting from 1 and incrementing by 1 for
+# each message we assign them to the messages.
+# It is important that the .po file used to generate the cat-id-tbl.c file
+# (with po-to-tbl) is the same as the one used here. (At least the order
+# of declarations must not be changed.)
+#
+/^msgstr/ {
+ s/msgstr[ ]*"\(.*\)"/# \1/
+# Clear substitution flag.
+ tb
+# Append the next line.
+ :b
+ N
+# Look whether second part is continuation line.
+ s/\(.*\n\)"\(.*\)"/\1\2/
+# Yes, then branch.
+ ta
+ P
+ D
+# Note that D includes a jump to the start!!
+# We found a continuation line. But before printing insert '\'.
+ :a
+ s/\(.*\)\(\n.*\)/\1\\\2/
+ P
+# We cannot use D here.
+ s/.*\n\(.*\)/\1/
+ tb
+}
+d
diff --git a/source3/intl/loadinfo.h b/source3/intl/loadinfo.h
new file mode 100644
index 0000000000..1c4524abbd
--- /dev/null
+++ b/source3/intl/loadinfo.h
@@ -0,0 +1,78 @@
+/* Copyright (C) 1996, 1997 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+ Contributed by Ulrich Drepper <drepper@cygnus.com>, 1996.
+
+ 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
+ the Free Software Foundation; either version 2, or (at your option)
+ any later version.
+
+ This program 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 General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program; if not, write to the Free Software Foundation,
+ Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
+
+#ifndef PARAMS
+# if __STDC__
+# define PARAMS(args) args
+# else
+# define PARAMS(args) ()
+# endif
+#endif
+
+/* Encoding of locale name parts. */
+#define CEN_REVISION 1
+#define CEN_SPONSOR 2
+#define CEN_SPECIAL 4
+#define XPG_NORM_CODESET 8
+#define XPG_CODESET 16
+#define TERRITORY 32
+#define CEN_AUDIENCE 64
+#define XPG_MODIFIER 128
+
+#define CEN_SPECIFIC (CEN_REVISION|CEN_SPONSOR|CEN_SPECIAL|CEN_AUDIENCE)
+#define XPG_SPECIFIC (XPG_CODESET|XPG_NORM_CODESET|XPG_MODIFIER)
+
+
+struct loaded_l10nfile
+{
+ const char *filename;
+ int decided;
+
+ const void *data;
+
+ struct loaded_l10nfile *next;
+ struct loaded_l10nfile *successor[1];
+};
+
+
+extern const char *_nl_normalize_codeset PARAMS ((const char *codeset,
+ size_t name_len));
+
+extern struct loaded_l10nfile *
+_nl_make_l10nflist PARAMS ((struct loaded_l10nfile **l10nfile_list,
+ const char *dirlist, size_t dirlist_len, int mask,
+ const char *language, const char *territory,
+ const char *codeset,
+ const char *normalized_codeset,
+ const char *modifier, const char *special,
+ const char *sponsor, const char *revision,
+ const char *filename, int do_allocate));
+
+
+extern const char *_nl_expand_alias PARAMS ((const char *name));
+
+extern int _nl_explode_name PARAMS ((char *name, const char **language,
+ const char **modifier,
+ const char **territory,
+ const char **codeset,
+ const char **normalized_codeset,
+ const char **special,
+ const char **sponsor,
+ const char **revision));
+
+extern char *_nl_find_language PARAMS ((const char *name));
diff --git a/source3/intl/loadmsgcat.c b/source3/intl/loadmsgcat.c
new file mode 100644
index 0000000000..2c6a5650d1
--- /dev/null
+++ b/source3/intl/loadmsgcat.c
@@ -0,0 +1,220 @@
+/* Load needed message catalogs.
+ Copyright (C) 1995, 1996, 1997, 1998 Free Software Foundation, Inc.
+
+ 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
+ the Free Software Foundation; either version 2, or (at your option)
+ any later version.
+
+ This program 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 General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program; if not, write to the Free Software Foundation,
+ Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
+
+#ifdef HAVE_CONFIG_H
+# include <config.h>
+#endif
+
+#include <fcntl.h>
+#include <sys/types.h>
+#include <sys/stat.h>
+
+#if defined STDC_HEADERS || defined _LIBC
+# include <stdlib.h>
+#endif
+
+#if defined HAVE_UNISTD_H || defined _LIBC
+# include <unistd.h>
+#endif
+
+#if (defined HAVE_MMAP && defined HAVE_MUNMAP && !defined DISALLOW_MMAP) \
+ || (defined _LIBC && defined _POSIX_MAPPED_FILES)
+# include <sys/mman.h>
+# undef HAVE_MMAP
+# define HAVE_MMAP 1
+#else
+# undef HAVE_MMAP
+#endif
+
+#include "gettext.h"
+#include "gettextP.h"
+
+/* @@ end of prolog @@ */
+
+#ifdef _LIBC
+/* Rename the non ISO C functions. This is required by the standard
+ because some ISO C functions will require linking with this object
+ file and the name space must not be polluted. */
+# define open __open
+# define close __close
+# define read __read
+# define mmap __mmap
+# define munmap __munmap
+#endif
+
+/* We need a sign, whether a new catalog was loaded, which can be associated
+ with all translations. This is important if the translations are
+ cached by one of GCC's features. */
+int _nl_msg_cat_cntr = 0;
+
+
+/* Load the message catalogs specified by FILENAME. If it is no valid
+ message catalog do nothing. */
+void
+internal_function
+_nl_load_domain (domain_file)
+ struct loaded_l10nfile *domain_file;
+{
+ int fd;
+ size_t size;
+ struct stat st;
+ struct mo_file_header *data = (struct mo_file_header *) -1;
+ int use_mmap = 0;
+ struct loaded_domain *domain;
+
+ domain_file->decided = 1;
+ domain_file->data = NULL;
+
+ /* If the record does not represent a valid locale the FILENAME
+ might be NULL. This can happen when according to the given
+ specification the locale file name is different for XPG and CEN
+ syntax. */
+ if (domain_file->filename == NULL)
+ return;
+
+ /* Try to open the addressed file. */
+ fd = open (domain_file->filename, O_RDONLY);
+ if (fd == -1)
+ return;
+
+ /* We must know about the size of the file. */
+ if (fstat (fd, &st) != 0
+ || (size = (size_t) st.st_size) != st.st_size
+ || size < sizeof (struct mo_file_header))
+ {
+ /* Something went wrong. */
+ close (fd);
+ return;
+ }
+
+#ifdef HAVE_MMAP
+ /* Now we are ready to load the file. If mmap() is available we try
+ this first. If not available or it failed we try to load it. */
+ data = (struct mo_file_header *) mmap (NULL, size, PROT_READ,
+ MAP_PRIVATE, fd, 0);
+
+ if (data != (struct mo_file_header *) -1)
+ {
+ /* mmap() call was successful. */
+ close (fd);
+ use_mmap = 1;
+ }
+#endif
+
+ /* If the data is not yet available (i.e. mmap'ed) we try to load
+ it manually. */
+ if (data == (struct mo_file_header *) -1)
+ {
+ size_t to_read;
+ char *read_ptr;
+
+ data = (struct mo_file_header *) malloc (size);
+ if (data == NULL)
+ return;
+
+ to_read = size;
+ read_ptr = (char *) data;
+ do
+ {
+ long int nb = (long int) read (fd, read_ptr, to_read);
+ if (nb == -1)
+ {
+ close (fd);
+ return;
+ }
+
+ read_ptr += nb;
+ to_read -= nb;
+ }
+ while (to_read > 0);
+
+ close (fd);
+ }
+
+ /* Using the magic number we can test whether it really is a message
+ catalog file. */
+ if (data->magic != _MAGIC && data->magic != _MAGIC_SWAPPED)
+ {
+ /* The magic number is wrong: not a message catalog file. */
+#ifdef HAVE_MMAP
+ if (use_mmap)
+ munmap ((caddr_t) data, size);
+ else
+#endif
+ free (data);
+ return;
+ }
+
+ domain_file->data
+ = (struct loaded_domain *) malloc (sizeof (struct loaded_domain));
+ if (domain_file->data == NULL)
+ return;
+
+ domain = (struct loaded_domain *) domain_file->data;
+ domain->data = (char *) data;
+ domain->use_mmap = use_mmap;
+ domain->mmap_size = size;
+ domain->must_swap = data->magic != _MAGIC;
+
+ /* Fill in the information about the available tables. */
+ switch (W (domain->must_swap, data->revision))
+ {
+ case 0:
+ domain->nstrings = W (domain->must_swap, data->nstrings);
+ domain->orig_tab = (struct string_desc *)
+ ((char *) data + W (domain->must_swap, data->orig_tab_offset));
+ domain->trans_tab = (struct string_desc *)
+ ((char *) data + W (domain->must_swap, data->trans_tab_offset));
+ domain->hash_size = W (domain->must_swap, data->hash_tab_size);
+ domain->hash_tab = (nls_uint32 *)
+ ((char *) data + W (domain->must_swap, data->hash_tab_offset));
+ break;
+ default:
+ /* This is an invalid revision. */
+#ifdef HAVE_MMAP
+ if (use_mmap)
+ munmap ((caddr_t) data, size);
+ else
+#endif
+ free (data);
+ free (domain);
+ domain_file->data = NULL;
+ return;
+ }
+
+ /* Show that one domain is changed. This might make some cached
+ translations invalid. */
+ ++_nl_msg_cat_cntr;
+}
+
+
+#ifdef _LIBC
+void
+internal_function
+_nl_unload_domain (domain)
+ struct loaded_domain *domain;
+{
+#ifdef _POSIX_MAPPED_FILES
+ if (domain->use_mmap)
+ munmap ((caddr_t) domain->data, domain->mmap_size);
+ else
+#endif /* _POSIX_MAPPED_FILES */
+ free ((void *) domain->data);
+
+ free (domain);
+}
+#endif
diff --git a/source3/intl/localealias.c b/source3/intl/localealias.c
new file mode 100644
index 0000000000..27abb26f57
--- /dev/null
+++ b/source3/intl/localealias.c
@@ -0,0 +1,438 @@
+/* Handle aliases for locale names.
+ Copyright (C) 1995, 1996, 1997, 1998 Free Software Foundation, Inc.
+ Written by Ulrich Drepper <drepper@gnu.ai.mit.edu>, 1995.
+
+ 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
+ the Free Software Foundation; either version 2, or (at your option)
+ any later version.
+
+ This program 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 General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program; if not, write to the Free Software Foundation,
+ Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
+
+#ifdef HAVE_CONFIG_H
+# include <config.h>
+#endif
+
+#include <ctype.h>
+#include <stdio.h>
+#include <sys/types.h>
+
+#ifdef __GNUC__
+# define alloca __builtin_alloca
+# define HAVE_ALLOCA 1
+#else
+# if defined HAVE_ALLOCA_H || defined _LIBC
+# include <alloca.h>
+# else
+# ifdef _AIX
+ #pragma alloca
+# else
+# ifndef alloca
+char *alloca ();
+# endif
+# endif
+# endif
+#endif
+
+#if defined STDC_HEADERS || defined _LIBC
+# include <stdlib.h>
+#else
+char *getenv ();
+# ifdef HAVE_MALLOC_H
+# include <malloc.h>
+# else
+void free ();
+# endif
+#endif
+
+#if defined HAVE_STRING_H || defined _LIBC
+# ifndef _GNU_SOURCE
+# define _GNU_SOURCE 1
+# endif
+# include <string.h>
+#else
+# include <strings.h>
+# ifndef memcpy
+# define memcpy(Dst, Src, Num) bcopy (Src, Dst, Num)
+# endif
+#endif
+#if !HAVE_STRCHR && !defined _LIBC
+# ifndef strchr
+# define strchr index
+# endif
+#endif
+
+#include "gettext.h"
+#include "gettextP.h"
+
+/* @@ end of prolog @@ */
+
+#ifdef _LIBC
+/* Rename the non ANSI C functions. This is required by the standard
+ because some ANSI C functions will require linking with this object
+ file and the name space must not be polluted. */
+# define strcasecmp __strcasecmp
+
+# ifndef mempcpy
+# define mempcpy __mempcpy
+# endif
+# define HAVE_MEMPCPY 1
+
+/* We need locking here since we can be called from different places. */
+# include <bits/libc-lock.h>
+
+__libc_lock_define_initialized (static, lock);
+#endif
+
+#ifndef internal_function
+# define internal_function
+#endif
+
+/* For those loosing systems which don't have `alloca' we have to add
+ some additional code emulating it. */
+#ifdef HAVE_ALLOCA
+/* Nothing has to be done. */
+# define ADD_BLOCK(list, address) /* nothing */
+# define FREE_BLOCKS(list) /* nothing */
+#else
+struct block_list
+{
+ void *address;
+ struct block_list *next;
+};
+# define ADD_BLOCK(list, addr) \
+ do { \
+ struct block_list *newp = (struct block_list *) malloc (sizeof (*newp)); \
+ /* If we cannot get a free block we cannot add the new element to \
+ the list. */ \
+ if (newp != NULL) { \
+ newp->address = (addr); \
+ newp->next = (list); \
+ (list) = newp; \
+ } \
+ } while (0)
+# define FREE_BLOCKS(list) \
+ do { \
+ while (list != NULL) { \
+ struct block_list *old = list; \
+ list = list->next; \
+ free (old); \
+ } \
+ } while (0)
+# undef alloca
+# define alloca(size) (malloc (size))
+#endif /* have alloca */
+
+#if defined _LIBC_REENTRANT || defined HAVE_FGETS_UNLOCKED
+# undef fgets
+# define fgets(buf, len, s) fgets_unlocked (buf, len, s)
+#endif
+#if defined _LIBC_REENTRANT || defined HAVE_FEOF_UNLOCKED
+# undef feof
+# define feof(s) feof_unlocked (s)
+#endif
+
+
+struct alias_map
+{
+ const char *alias;
+ const char *value;
+};
+
+
+static char *string_space = NULL;
+static size_t string_space_act = 0;
+static size_t string_space_max = 0;
+static struct alias_map *map;
+static size_t nmap = 0;
+static size_t maxmap = 0;
+
+
+/* Prototypes for local functions. */
+static size_t read_alias_file PARAMS ((const char *fname, int fname_len))
+ internal_function;
+static void extend_alias_table PARAMS ((void));
+static int alias_compare PARAMS ((const struct alias_map *map1,
+ const struct alias_map *map2));
+
+
+const char *
+_nl_expand_alias (name)
+ const char *name;
+{
+ static const char *locale_alias_path = LOCALE_ALIAS_PATH;
+ struct alias_map *retval;
+ const char *result = NULL;
+ size_t added;
+
+#ifdef _LIBC
+ __libc_lock_lock (lock);
+#endif
+
+ do
+ {
+ struct alias_map item;
+
+ item.alias = name;
+
+ if (nmap > 0)
+ retval = (struct alias_map *) bsearch (&item, map, nmap,
+ sizeof (struct alias_map),
+ (int (*) PARAMS ((const void *,
+ const void *))
+ ) alias_compare);
+ else
+ retval = NULL;
+
+ /* We really found an alias. Return the value. */
+ if (retval != NULL)
+ {
+ result = retval->value;
+ break;
+ }
+
+ /* Perhaps we can find another alias file. */
+ added = 0;
+ while (added == 0 && locale_alias_path[0] != '\0')
+ {
+ const char *start;
+
+ while (locale_alias_path[0] == ':')
+ ++locale_alias_path;
+ start = locale_alias_path;
+
+ while (locale_alias_path[0] != '\0' && locale_alias_path[0] != ':')
+ ++locale_alias_path;
+
+ if (start < locale_alias_path)
+ added = read_alias_file (start, locale_alias_path - start);
+ }
+ }
+ while (added != 0);
+
+#ifdef _LIBC
+ __libc_lock_unlock (lock);
+#endif
+
+ return result;
+}
+
+
+static size_t
+internal_function
+read_alias_file (fname, fname_len)
+ const char *fname;
+ int fname_len;
+{
+#ifndef HAVE_ALLOCA
+ struct block_list *block_list = NULL;
+#endif
+ FILE *fp;
+ char *full_fname;
+ size_t added;
+ static const char *aliasfile = "/locale.alias";
+
+ full_fname = (char *) alloca (fname_len + sizeof aliasfile);
+ ADD_BLOCK (block_list, full_fname);
+#ifdef HAVE_MEMPCPY
+ mempcpy (mempcpy (full_fname, fname, fname_len),
+ aliasfile, sizeof aliasfile);
+#else
+ memcpy (full_fname, fname, fname_len);
+ memcpy (&full_fname[fname_len], aliasfile, sizeof aliasfile);
+#endif
+
+ fp = fopen (full_fname, "r");
+ if (fp == NULL)
+ {
+ FREE_BLOCKS (block_list);
+ return 0;
+ }
+
+ added = 0;
+ while (!feof (fp))
+ {
+ /* It is a reasonable approach to use a fix buffer here because
+ a) we are only interested in the first two fields
+ b) these fields must be usable as file names and so must not
+ be that long
+ */
+ char buf[BUFSIZ];
+ char *alias;
+ char *value;
+ char *cp;
+
+ if (fgets (buf, sizeof buf, fp) == NULL)
+ /* EOF reached. */
+ break;
+
+ /* Possibly not the whole line fits into the buffer. Ignore
+ the rest of the line. */
+ if (strchr (buf, '\n') == NULL)
+ {
+ char altbuf[BUFSIZ];
+ do
+ if (fgets (altbuf, sizeof altbuf, fp) == NULL)
+ /* Make sure the inner loop will be left. The outer loop
+ will exit at the `feof' test. */
+ break;
+ while (strchr (altbuf, '\n') == NULL);
+ }
+
+ cp = buf;
+ /* Ignore leading white space. */
+ while (isspace (cp[0]))
+ ++cp;
+
+ /* A leading '#' signals a comment line. */
+ if (cp[0] != '\0' && cp[0] != '#')
+ {
+ alias = cp++;
+ while (cp[0] != '\0' && !isspace (cp[0]))
+ ++cp;
+ /* Terminate alias name. */
+ if (cp[0] != '\0')
+ *cp++ = '\0';
+
+ /* Now look for the beginning of the value. */
+ while (isspace (cp[0]))
+ ++cp;
+
+ if (cp[0] != '\0')
+ {
+ size_t alias_len;
+ size_t value_len;
+
+ value = cp++;
+ while (cp[0] != '\0' && !isspace (cp[0]))
+ ++cp;
+ /* Terminate value. */
+ if (cp[0] == '\n')
+ {
+ /* This has to be done to make the following test
+ for the end of line possible. We are looking for
+ the terminating '\n' which do not overwrite here. */
+ *cp++ = '\0';
+ *cp = '\n';
+ }
+ else if (cp[0] != '\0')
+ *cp++ = '\0';
+
+ if (nmap >= maxmap)
+ extend_alias_table ();
+
+ alias_len = strlen (alias) + 1;
+ value_len = strlen (value) + 1;
+
+ if (string_space_act + alias_len + value_len > string_space_max)
+ {
+ /* Increase size of memory pool. */
+ size_t new_size = (string_space_max
+ + (alias_len + value_len > 1024
+ ? alias_len + value_len : 1024));
+ char *new_pool = (char *) realloc (string_space, new_size);
+ if (new_pool == NULL)
+ {
+ FREE_BLOCKS (block_list);
+ return added;
+ }
+ string_space = new_pool;
+ string_space_max = new_size;
+ }
+
+ map[nmap].alias = memcpy (&string_space[string_space_act],
+ alias, alias_len);
+ string_space_act += alias_len;
+
+ map[nmap].value = memcpy (&string_space[string_space_act],
+ value, value_len);
+ string_space_act += value_len;
+
+ ++nmap;
+ ++added;
+ }
+ }
+ }
+
+ /* Should we test for ferror()? I think we have to silently ignore
+ errors. --drepper */
+ fclose (fp);
+
+ if (added > 0)
+ qsort (map, nmap, sizeof (struct alias_map),
+ (int (*) PARAMS ((const void *, const void *))) alias_compare);
+
+ FREE_BLOCKS (block_list);
+ return added;
+}
+
+
+static void
+extend_alias_table ()
+{
+ size_t new_size;
+ struct alias_map *new_map;
+
+ new_size = maxmap == 0 ? 100 : 2 * maxmap;
+ new_map = (struct alias_map *) realloc (map, (new_size
+ * sizeof (struct alias_map)));
+ if (new_map == NULL)
+ /* Simply don't extend: we don't have any more core. */
+ return;
+
+ map = new_map;
+ maxmap = new_size;
+}
+
+
+#ifdef _LIBC
+static void __attribute__ ((unused))
+free_mem (void)
+{
+ if (string_space != NULL)
+ free (string_space);
+ if (map != NULL)
+ free (map);
+}
+text_set_element (__libc_subfreeres, free_mem);
+#endif
+
+
+static int
+alias_compare (map1, map2)
+ const struct alias_map *map1;
+ const struct alias_map *map2;
+{
+#if defined _LIBC || defined HAVE_STRCASECMP
+ return strcasecmp (map1->alias, map2->alias);
+#else
+ const unsigned char *p1 = (const unsigned char *) map1->alias;
+ const unsigned char *p2 = (const unsigned char *) map2->alias;
+ unsigned char c1, c2;
+
+ if (p1 == p2)
+ return 0;
+
+ do
+ {
+ /* I know this seems to be odd but the tolower() function in
+ some systems libc cannot handle nonalpha characters. */
+ c1 = isupper (*p1) ? tolower (*p1) : *p1;
+ c2 = isupper (*p2) ? tolower (*p2) : *p2;
+ if (c1 == '\0')
+ break;
+ ++p1;
+ ++p2;
+ }
+ while (c1 == c2);
+
+ return c1 - c2;
+#endif
+}
diff --git a/source3/intl/po2tbl.sed.in b/source3/intl/po2tbl.sed.in
new file mode 100644
index 0000000000..b3bcca4d73
--- /dev/null
+++ b/source3/intl/po2tbl.sed.in
@@ -0,0 +1,102 @@
+# po2tbl.sed - Convert Uniforum style .po file to lookup table for catgets
+# Copyright (C) 1995 Free Software Foundation, Inc.
+# Ulrich Drepper <drepper@gnu.ai.mit.edu>, 1995.
+#
+# 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
+# the Free Software Foundation; either version 2, or (at your option)
+# any later version.
+#
+# This program 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 General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+#
+1 {
+ i\
+/* Automatically generated by po2tbl.sed from @PACKAGE NAME@.pot. */\
+\
+#if HAVE_CONFIG_H\
+# include <config.h>\
+#endif\
+\
+#include "libgettext.h"\
+\
+const struct _msg_ent _msg_tbl[] = {
+ h
+ s/.*/0/
+ x
+}
+#
+# Write msgid entries in C array form.
+#
+/^msgid/ {
+ s/msgid[ ]*\(".*"\)/ {\1/
+ tb
+# Append the next line
+ :b
+ N
+# Look whether second part is continuation line.
+ s/\(.*\)"\(\n\)"\(.*"\)/\1\2\3/
+# Yes, then branch.
+ ta
+# Because we assume that the input file correctly formed the line
+# just read cannot be again be a msgid line. So it's safe to ignore
+# it.
+ s/\(.*\)\n.*/\1/
+ bc
+# We found a continuation line. But before printing insert '\'.
+ :a
+ s/\(.*\)\(\n.*\)/\1\\\2/
+ P
+# We cannot use D here.
+ s/.*\n\(.*\)/\1/
+# Some buggy seds do not clear the `successful substitution since last ``t'''
+# flag on `N', so we do a `t' here to clear it.
+ tb
+# Not reached
+ :c
+ x
+# The following nice solution is by
+# Bruno <Haible@ma2s2.mathematik.uni-karlsruhe.de>
+ td
+# Increment a decimal number in pattern space.
+# First hide trailing `9' digits.
+ :d
+ s/9\(_*\)$/_\1/
+ td
+# Assure at least one digit is available.
+ s/^\(_*\)$/0\1/
+# Increment the last digit.
+ s/8\(_*\)$/9\1/
+ s/7\(_*\)$/8\1/
+ s/6\(_*\)$/7\1/
+ s/5\(_*\)$/6\1/
+ s/4\(_*\)$/5\1/
+ s/3\(_*\)$/4\1/
+ s/2\(_*\)$/3\1/
+ s/1\(_*\)$/2\1/
+ s/0\(_*\)$/1\1/
+# Convert the hidden `9' digits to `0's.
+ s/_/0/g
+ x
+ G
+ s/\(.*\)\n\([0-9]*\)/\1, \2},/
+ s/\(.*\)"$/\1/
+ p
+}
+#
+# Last line.
+#
+$ {
+ i\
+};\
+
+ g
+ s/0*\(.*\)/int _msg_tbl_length = \1;/p
+}
+d
diff --git a/source3/intl/textdomain.c b/source3/intl/textdomain.c
new file mode 100644
index 0000000000..88557460f3
--- /dev/null
+++ b/source3/intl/textdomain.c
@@ -0,0 +1,108 @@
+/* Implementation of the textdomain(3) function.
+ Copyright (C) 1995, 1996, 1997, 1998 Free Software Foundation, Inc.
+ Written by Ulrich Drepper <drepper@gnu.ai.mit.edu>, 1995.
+
+ 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
+ the Free Software Foundation; either version 2, or (at your option)
+ any later version.
+
+ This program 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 General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program; if not, write to the Free Software Foundation,
+ Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
+
+#ifdef HAVE_CONFIG_H
+# include <config.h>
+#endif
+
+#if defined STDC_HEADERS || defined _LIBC
+# include <stdlib.h>
+#endif
+
+#if defined STDC_HEADERS || defined HAVE_STRING_H || defined _LIBC
+# include <string.h>
+#else
+# include <strings.h>
+# ifndef memcpy
+# define memcpy(Dst, Src, Num) bcopy (Src, Dst, Num)
+# endif
+#endif
+
+#ifdef _LIBC
+# include <libintl.h>
+#else
+# include "libgettext.h"
+#endif
+
+/* @@ end of prolog @@ */
+
+/* Name of the default text domain. */
+extern const char _nl_default_default_domain[];
+
+/* Default text domain in which entries for gettext(3) are to be found. */
+extern const char *_nl_current_default_domain;
+
+
+/* Names for the libintl functions are a problem. They must not clash
+ with existing names and they should follow ANSI C. But this source
+ code is also used in GNU C Library where the names have a __
+ prefix. So we have to make a difference here. */
+#ifdef _LIBC
+# define TEXTDOMAIN __textdomain
+# ifndef strdup
+# define strdup(str) __strdup (str)
+# endif
+#else
+# define TEXTDOMAIN textdomain__
+#endif
+
+/* Set the current default message catalog to DOMAINNAME.
+ If DOMAINNAME is null, return the current default.
+ If DOMAINNAME is "", reset to the default of "messages". */
+char *
+TEXTDOMAIN (domainname)
+ const char *domainname;
+{
+ char *old;
+
+ /* A NULL pointer requests the current setting. */
+ if (domainname == NULL)
+ return (char *) _nl_current_default_domain;
+
+ old = (char *) _nl_current_default_domain;
+
+ /* If domain name is the null string set to default domain "messages". */
+ if (domainname[0] == '\0'
+ || strcmp (domainname, _nl_default_default_domain) == 0)
+ _nl_current_default_domain = _nl_default_default_domain;
+ else
+ {
+ /* If the following malloc fails `_nl_current_default_domain'
+ will be NULL. This value will be returned and so signals we
+ are out of core. */
+#if defined _LIBC || defined HAVE_STRDUP
+ _nl_current_default_domain = strdup (domainname);
+#else
+ size_t len = strlen (domainname) + 1;
+ char *cp = (char *) malloc (len);
+ if (cp != NULL)
+ memcpy (cp, domainname, len);
+ _nl_current_default_domain = cp;
+#endif
+ }
+
+ if (old != _nl_default_default_domain)
+ free (old);
+
+ return (char *) _nl_current_default_domain;
+}
+
+#ifdef _LIBC
+/* Alias for function name in GNU C Library. */
+weak_alias (__textdomain, textdomain);
+#endif
diff --git a/source3/intl/xopen-msg.sed b/source3/intl/xopen-msg.sed
new file mode 100644
index 0000000000..54c14f5b99
--- /dev/null
+++ b/source3/intl/xopen-msg.sed
@@ -0,0 +1,106 @@
+# po2msg.sed - Convert Uniforum style .po file to X/Open style .msg file
+# Copyright (C) 1995 Free Software Foundation, Inc.
+# Ulrich Drepper <drepper@gnu.ai.mit.edu>, 1995.
+#
+# 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
+# the Free Software Foundation; either version 2, or (at your option)
+# any later version.
+#
+# This program 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 General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+#
+#
+# The first directive in the .msg should be the definition of the
+# message set number. We use always set number 1.
+#
+1 {
+ i\
+$set 1
+ i\
+$ Automatically created by po2msg.sed
+ h
+ s/.*/0/
+ x
+}
+#
+# We copy all comments into the .msg file. Perhaps they can help.
+#
+/^#/ s/^#[ ]*/$ /p
+#
+# We copy the original message as a comment into the .msg file.
+#
+/^msgid/ {
+# Does not work now
+# /"$/! {
+# s/\\$//
+# s/$/ ... (more lines following)"/
+# }
+ s/^msgid[ ]*"\(.*\)"$/$ Original Message: \1/
+ p
+}
+#
+# The .msg file contains, other then the .po file, only the translations
+# but each given a unique ID. Starting from 1 and incrementing by 1 for
+# each message we assign them to the messages.
+# It is important that the .po file used to generate the cat-id-tbl.c file
+# (with po-to-tbl) is the same as the one used here. (At least the order
+# of declarations must not be changed.)
+#
+/^msgstr/ {
+ s/msgstr[ ]*"\(.*\)"/\1/
+ x
+# The following nice solution is by
+# Bruno <Haible@ma2s2.mathematik.uni-karlsruhe.de>
+ td
+# Increment a decimal number in pattern space.
+# First hide trailing `9' digits.
+ :d
+ s/9\(_*\)$/_\1/
+ td
+# Assure at least one digit is available.
+ s/^\(_*\)$/0\1/
+# Increment the last digit.
+ s/8\(_*\)$/9\1/
+ s/7\(_*\)$/8\1/
+ s/6\(_*\)$/7\1/
+ s/5\(_*\)$/6\1/
+ s/4\(_*\)$/5\1/
+ s/3\(_*\)$/4\1/
+ s/2\(_*\)$/3\1/
+ s/1\(_*\)$/2\1/
+ s/0\(_*\)$/1\1/
+# Convert the hidden `9' digits to `0's.
+ s/_/0/g
+ x
+# Bring the line in the format `<number> <message>'
+ G
+ s/^[^\n]*$/& /
+ s/\(.*\)\n\([0-9]*\)/\2 \1/
+# Clear flag from last substitution.
+ tb
+# Append the next line.
+ :b
+ N
+# Look whether second part is a continuation line.
+ s/\(.*\n\)"\(.*\)"/\1\2/
+# Yes, then branch.
+ ta
+ P
+ D
+# Note that `D' includes a jump to the start!!
+# We found a continuation line. But before printing insert '\'.
+ :a
+ s/\(.*\)\(\n.*\)/\1\\\2/
+ P
+# We cannot use the sed command `D' here
+ s/.*\n\(.*\)/\1/
+ tb
+}
+d
diff --git a/source3/po/Makefile.in b/source3/po/Makefile.in
new file mode 100644
index 0000000000..8484546594
--- /dev/null
+++ b/source3/po/Makefile.in
@@ -0,0 +1,252 @@
+# Makefile for program source directory in GNU NLS utilities package.
+# Copyright (C) 1995, 1996, 1997 by Ulrich Drepper <drepper@gnu.ai.mit.edu>
+#
+# This file file be copied and used freely without restrictions. It can
+# be used in projects which are not available under the GNU Public License
+# but which still want to provide support for the GNU gettext functionality.
+# Please note that the actual code is *not* freely available.
+
+PACKAGE = @PACKAGE@
+VERSION = @VERSION@
+
+SHELL = /bin/sh
+@SET_MAKE@
+
+srcdir = @srcdir@
+top_srcdir = @top_srcdir@
+VPATH = @srcdir@
+
+prefix = @prefix@
+exec_prefix = @exec_prefix@
+datadir = $(prefix)/@DATADIRNAME@
+localedir = $(datadir)/locale
+gnulocaledir = $(prefix)/share/locale
+gettextsrcdir = $(prefix)/share/gettext/po
+subdir = po
+
+INSTALL = @INSTALL@
+INSTALL_DATA = sh @INSTALL_DATA@
+MKINSTALLDIRS = $(top_srcdir)/script/@MKINSTALLDIRS@
+
+CC = @CC@
+GENCAT = @GENCAT@
+GMSGFMT = PATH=../src:$$PATH @GMSGFMT@
+MSGFMT = @MSGFMT@
+XGETTEXT = PATH=../src:$$PATH @XGETTEXT@
+MSGMERGE = PATH=../src:$$PATH msgmerge
+
+DEFS = @DEFS@
+CFLAGS = @CFLAGS@
+CPPFLAGS = @CPPFLAGS@
+
+INCLUDES = -I.. -I$(top_srcdir)/intl -I$(top_srcdir)/include
+
+COMPILE = $(CC) -c $(DEFS) $(INCLUDES) $(CPPFLAGS) $(CFLAGS) $(XCFLAGS)
+
+SOURCES = cat-id-tbl.c
+POFILES = @POFILES@
+GMOFILES = @GMOFILES@
+DISTFILES = ChangeLog Makefile.in POTFILES.in $(PACKAGE).pot \
+stamp-cat-id $(POFILES) $(GMOFILES) $(SOURCES)
+
+POTFILES = \
+
+CATALOGS = @CATALOGS@
+CATOBJEXT = @CATOBJEXT@
+INSTOBJEXT = @INSTOBJEXT@
+
+.SUFFIXES:
+.SUFFIXES: .c .o .po .pox .gmo .mo .msg .cat
+
+.c.o:
+ $(COMPILE) $<
+
+.po.pox:
+ $(MAKE) $(PACKAGE).pot
+ $(MSGMERGE) $< $(srcdir)/$(PACKAGE).pot -o $*.pox
+
+.po.mo:
+ $(MSGFMT) -o $@ $<
+
+.po.gmo:
+ file=$(srcdir)/`echo $* | sed 's,.*/,,'`.gmo \
+ && rm -f $$file && $(GMSGFMT) -o $$file $<
+
+.po.msg:
+ sed -f ../intl/po2msg.sed < $< > $*.msg
+
+.msg.cat:
+ rm -f $@ && $(GENCAT) $@ $*.msg
+
+
+all: all-@USE_NLS@
+
+all-yes: cat-id-tbl.c $(CATALOGS)
+all-no:
+
+$(srcdir)/$(PACKAGE).pot: $(POTFILES)
+ @$(XGETTEXT) --default-domain=$(PACKAGE) --directory=$(top_srcdir) \
+ --add-comments --keyword=_ --keyword=N_ \
+ --files-from=$(srcdir)/POTFILES.in \
+ @&& test ! -f $(PACKAGE).po \
+ || ( rm -f $(srcdir)/$(PACKAGE).pot \
+ && mv $(PACKAGE).po $(srcdir)/$(PACKAGE).pot )
+
+$(srcdir)/cat-id-tbl.c: stamp-cat-id; @:
+$(srcdir)/stamp-cat-id: $(PACKAGE).pot
+ rm -f cat-id-tbl.tmp
+ sed -f ../intl/po2tbl.sed $(srcdir)/$(PACKAGE).pot \
+ | sed -e "s/@PACKAGE NAME@/$(PACKAGE)/" > cat-id-tbl.tmp
+ if cmp -s cat-id-tbl.tmp $(srcdir)/cat-id-tbl.c; then \
+ rm cat-id-tbl.tmp; \
+ else \
+ echo cat-id-tbl.c changed; \
+ rm -f $(srcdir)/cat-id-tbl.c; \
+ mv cat-id-tbl.tmp $(srcdir)/cat-id-tbl.c; \
+ fi
+ cd $(srcdir) && rm -f stamp-cat-id && echo timestamp > stamp-cat-id
+
+
+install: install-exec install-data
+install-exec:
+install-data: install-data-@USE_NLS@
+install-data-no: all
+install-data-yes: all install-data-basic
+install-data-basic:
+ if test -r "$(MKINSTALLDIRS)"; then \
+ $(MKINSTALLDIRS) $(datadir); \
+ else \
+ $(SHELL) $(top_srcdir)/mkinstalldirs $(datadir); \
+ fi
+ @catalogs='$(CATALOGS)'; \
+ for cat in $$catalogs; do \
+ cat=`basename $$cat`; \
+ case "$$cat" in \
+ *.gmo) destdir=$(gnulocaledir);; \
+ *) destdir=$(localedir);; \
+ esac; \
+ lang=`echo $$cat | sed 's/\$(CATOBJEXT)$$//'`; \
+ dir=$$destdir/$$lang/LC_MESSAGES; \
+ if test -r "$(MKINSTALLDIRS)"; then \
+ $(MKINSTALLDIRS) $$dir; \
+ else \
+ $(SHELL) $(top_srcdir)/mkinstalldirs $$dir; \
+ fi; \
+ if test -r $$cat; then \
+ $(INSTALL_DATA) $$cat $$dir/$(PACKAGE)$(INSTOBJEXT); \
+ echo "installing $$cat as $$dir/$(PACKAGE)$(INSTOBJEXT)"; \
+ else \
+ $(INSTALL_DATA) $(srcdir)/$$cat $$dir/$(PACKAGE)$(INSTOBJEXT); \
+ echo "installing $(srcdir)/$$cat as" \
+ "$$dir/$(PACKAGE)$(INSTOBJEXT)"; \
+ fi; \
+ if test -r $$cat.m; then \
+ $(INSTALL_DATA) $$cat.m $$dir/$(PACKAGE)$(INSTOBJEXT).m; \
+ echo "installing $$cat.m as $$dir/$(PACKAGE)$(INSTOBJEXT).m"; \
+ else \
+ if test -r $(srcdir)/$$cat.m ; then \
+ $(INSTALL_DATA) $(srcdir)/$$cat.m \
+ $$dir/$(PACKAGE)$(INSTOBJEXT).m; \
+ echo "installing $(srcdir)/$$cat as" \
+ "$$dir/$(PACKAGE)$(INSTOBJEXT).m"; \
+ else \
+ true; \
+ fi; \
+ fi; \
+ done
+ if test "$(PACKAGE)" = "gettext"; then \
+ if test -r "$(MKINSTALLDIRS)"; then \
+ $(MKINSTALLDIRS) $(gettextsrcdir); \
+ else \
+ $(SHELL) $(top_srcdir)/mkinstalldirs $(gettextsrcdir); \
+ fi; \
+ $(INSTALL_DATA) $(srcdir)/Makefile.in \
+ $(gettextsrcdir)/Makefile.in; \
+ else \
+ : ; \
+ fi
+
+# Define this as empty until I found a useful application.
+installcheck:
+
+uninstall:
+ catalogs='$(CATALOGS)'; \
+ for cat in $$catalogs; do \
+ cat=`basename $$cat`; \
+ lang=`echo $$cat | sed 's/\$(CATOBJEXT)$$//'`; \
+ rm -f $(localedir)/$$lang/LC_MESSAGES/$(PACKAGE)$(INSTOBJEXT); \
+ rm -f $(localedir)/$$lang/LC_MESSAGES/$(PACKAGE)$(INSTOBJEXT).m; \
+ rm -f $(gnulocaledir)/$$lang/LC_MESSAGES/$(PACKAGE)$(INSTOBJEXT); \
+ rm -f $(gnulocaledir)/$$lang/LC_MESSAGES/$(PACKAGE)$(INSTOBJEXT).m; \
+ done
+ rm -f $(gettextsrcdir)/po-Makefile.in
+
+check: all
+
+cat-id-tbl.o: ../intl/libgettext.h
+
+dvi info tags TAGS ID:
+
+mostlyclean:
+ rm -f core core.* *.pox $(PACKAGE).po *.old.po cat-id-tbl.tmp
+ rm -fr *.o
+ rm -f *~
+
+clean: mostlyclean
+
+distclean: clean
+ rm -f Makefile Makefile.in POTFILES *.mo *.cat *.cat.m
+
+maintainer-clean: distclean
+ @echo "This command is intended for maintainers to use;"
+ @echo "it deletes files that may require special tools to rebuild."
+ rm -f $(GMOFILES)
+
+distdir = ../$(PACKAGE)-$(VERSION)/$(subdir)
+dist distdir: update-po $(DISTFILES)
+ dists="$(DISTFILES)"; \
+ for file in $$dists; do \
+ ln $(srcdir)/$$file $(distdir) 2> /dev/null \
+ || cp -p $(srcdir)/$$file $(distdir); \
+ done
+
+update-po: Makefile
+ $(MAKE) $(PACKAGE).pot
+ PATH=`pwd`/../src:$$PATH; \
+ cd $(srcdir); \
+ catalogs='$(CATALOGS)'; \
+ for cat in $$catalogs; do \
+ cat=`basename $$cat`; \
+ lang=`echo $$cat | sed 's/\$(CATOBJEXT)$$//'`; \
+ mv $$lang.po $$lang.old.po; \
+ echo "$$lang:"; \
+ if $(MSGMERGE) $$lang.old.po $(PACKAGE).pot -o $$lang.po; then \
+ rm -f $$lang.old.po; \
+ else \
+ echo "msgmerge for $$cat failed!"; \
+ rm -f $$lang.po; \
+ mv $$lang.old.po $$lang.po; \
+ fi; \
+ done
+
+POTFILES: POTFILES.in
+ ( if test 'x$(srcdir)' != 'x.'; then \
+ posrcprefix='$(top_srcdir)/'; \
+ else \
+ posrcprefix="../"; \
+ fi; \
+ rm -f $@-t $@ \
+ && (sed -e '/^#/d' -e '/^[ ]*$$/d' \
+ -e "s@.*@ $$posrcprefix& \\\\@" < $(srcdir)/$@.in \
+ | sed -e '$$s/\\$$//') > $@-t \
+ && chmod a-w $@-t \
+ && mv $@-t $@ )
+
+Makefile: Makefile.in ../config.status POTFILES
+ cd .. \
+ && CONFIG_FILES=$(subdir)/$@.in CONFIG_HEADERS= \
+ $(SHELL) ./config.status
+
+# Tell versions [3.59,3.63) of GNU make not to export all variables.
+# Otherwise a system limit (for SysV at least) may be exceeded.
+.NOEXPORT:
diff --git a/source3/po/Makefile.in.in b/source3/po/Makefile.in.in
new file mode 100644
index 0000000000..2006e99743
--- /dev/null
+++ b/source3/po/Makefile.in.in
@@ -0,0 +1,252 @@
+# Makefile for program source directory in GNU NLS utilities package.
+# Copyright (C) 1995, 1996, 1997 by Ulrich Drepper <drepper@gnu.ai.mit.edu>
+#
+# This file file be copied and used freely without restrictions. It can
+# be used in projects which are not available under the GNU Public License
+# but which still want to provide support for the GNU gettext functionality.
+# Please note that the actual code is *not* freely available.
+
+PACKAGE = @PACKAGE@
+VERSION = @VERSION@
+
+SHELL = /bin/sh
+@SET_MAKE@
+
+srcdir = @srcdir@
+top_srcdir = @top_srcdir@
+VPATH = @srcdir@
+
+prefix = @prefix@
+exec_prefix = @exec_prefix@
+datadir = $(prefix)/@DATADIRNAME@
+localedir = $(datadir)/locale
+gnulocaledir = $(prefix)/share/locale
+gettextsrcdir = $(prefix)/share/gettext/po
+subdir = po
+
+INSTALL = @INSTALL@
+INSTALL_DATA = @INSTALL_DATA@
+MKINSTALLDIRS = $(top_srcdir)/script/@MKINSTALLDIRS@
+
+CC = @CC@
+GENCAT = @GENCAT@
+GMSGFMT = PATH=../src:$$PATH @GMSGFMT@
+MSGFMT = @MSGFMT@
+XGETTEXT = PATH=../src:$$PATH @XGETTEXT@
+MSGMERGE = PATH=../src:$$PATH msgmerge
+
+DEFS = @DEFS@
+CFLAGS = @CFLAGS@
+CPPFLAGS = @CPPFLAGS@
+
+INCLUDES = -I.. -I$(top_srcdir)/intl -I$(top_srcdir)/include
+
+COMPILE = $(CC) -c $(DEFS) $(INCLUDES) $(CPPFLAGS) $(CFLAGS) $(XCFLAGS)
+
+SOURCES = cat-id-tbl.c
+POFILES = @POFILES@
+GMOFILES = @GMOFILES@
+DISTFILES = ChangeLog Makefile.in.in POTFILES.in $(PACKAGE).pot \
+stamp-cat-id $(POFILES) $(GMOFILES) $(SOURCES)
+
+POTFILES = \
+
+CATALOGS = @CATALOGS@
+CATOBJEXT = @CATOBJEXT@
+INSTOBJEXT = @INSTOBJEXT@
+
+.SUFFIXES:
+.SUFFIXES: .c .o .po .pox .gmo .mo .msg .cat
+
+.c.o:
+ $(COMPILE) $<
+
+.po.pox:
+ $(MAKE) $(PACKAGE).pot
+ $(MSGMERGE) $< $(srcdir)/$(PACKAGE).pot -o $*.pox
+
+.po.mo:
+ $(MSGFMT) -o $@ $<
+
+.po.gmo:
+ file=$(srcdir)/`echo $* | sed 's,.*/,,'`.gmo \
+ && rm -f $$file && $(GMSGFMT) -o $$file $<
+
+.po.msg:
+ sed -f ../intl/po2msg.sed < $< > $*.msg
+
+.msg.cat:
+ rm -f $@ && $(GENCAT) $@ $*.msg
+
+
+all: all-@USE_NLS@
+
+all-yes: cat-id-tbl.c $(CATALOGS)
+all-no:
+
+$(srcdir)/$(PACKAGE).pot: $(POTFILES)
+ $(XGETTEXT) --default-domain=$(PACKAGE) --directory=$(top_srcdir) \
+ --add-comments --keyword=_ --keyword=N_ \
+ --files-from=$(srcdir)/POTFILES.in \
+ && test ! -f $(PACKAGE).po \
+ || ( rm -f $(srcdir)/$(PACKAGE).pot \
+ && mv $(PACKAGE).po $(srcdir)/$(PACKAGE).pot )
+
+$(srcdir)/cat-id-tbl.c: stamp-cat-id; @:
+$(srcdir)/stamp-cat-id: $(PACKAGE).pot
+ rm -f cat-id-tbl.tmp
+ sed -f ../intl/po2tbl.sed $(srcdir)/$(PACKAGE).pot \
+ | sed -e "s/@PACKAGE NAME@/$(PACKAGE)/" > cat-id-tbl.tmp
+ if cmp -s cat-id-tbl.tmp $(srcdir)/cat-id-tbl.c; then \
+ rm cat-id-tbl.tmp; \
+ else \
+ echo cat-id-tbl.c changed; \
+ rm -f $(srcdir)/cat-id-tbl.c; \
+ mv cat-id-tbl.tmp $(srcdir)/cat-id-tbl.c; \
+ fi
+ cd $(srcdir) && rm -f stamp-cat-id && echo timestamp > stamp-cat-id
+
+
+install: install-exec install-data
+install-exec:
+install-data: install-data-@USE_NLS@
+install-data-no: all
+install-data-yes: all install-data-basic
+install-data-basic:
+ if test -r "$(MKINSTALLDIRS)"; then \
+ $(MKINSTALLDIRS) $(datadir); \
+ else \
+ $(SHELL) $(top_srcdir)/mkinstalldirs $(datadir); \
+ fi
+ @catalogs='$(CATALOGS)'; \
+ for cat in $$catalogs; do \
+ cat=`basename $$cat`; \
+ case "$$cat" in \
+ *.gmo) destdir=$(gnulocaledir);; \
+ *) destdir=$(localedir);; \
+ esac; \
+ lang=`echo $$cat | sed 's/\$(CATOBJEXT)$$//'`; \
+ dir=$$destdir/$$lang/LC_MESSAGES; \
+ if test -r "$(MKINSTALLDIRS)"; then \
+ $(MKINSTALLDIRS) $$dir; \
+ else \
+ $(SHELL) $(top_srcdir)/mkinstalldirs $$dir; \
+ fi; \
+ if test -r $$cat; then \
+ $(INSTALL_DATA) $$cat $$dir/$(PACKAGE)$(INSTOBJEXT); \
+ echo "installing $$cat as $$dir/$(PACKAGE)$(INSTOBJEXT)"; \
+ else \
+ $(INSTALL_DATA) $(srcdir)/$$cat $$dir/$(PACKAGE)$(INSTOBJEXT); \
+ echo "installing $(srcdir)/$$cat as" \
+ "$$dir/$(PACKAGE)$(INSTOBJEXT)"; \
+ fi; \
+ if test -r $$cat.m; then \
+ $(INSTALL_DATA) $$cat.m $$dir/$(PACKAGE)$(INSTOBJEXT).m; \
+ echo "installing $$cat.m as $$dir/$(PACKAGE)$(INSTOBJEXT).m"; \
+ else \
+ if test -r $(srcdir)/$$cat.m ; then \
+ $(INSTALL_DATA) $(srcdir)/$$cat.m \
+ $$dir/$(PACKAGE)$(INSTOBJEXT).m; \
+ echo "installing $(srcdir)/$$cat as" \
+ "$$dir/$(PACKAGE)$(INSTOBJEXT).m"; \
+ else \
+ true; \
+ fi; \
+ fi; \
+ done
+ if test "$(PACKAGE)" = "gettext"; then \
+ if test -r "$(MKINSTALLDIRS)"; then \
+ $(MKINSTALLDIRS) $(gettextsrcdir); \
+ else \
+ $(SHELL) $(top_srcdir)/mkinstalldirs $(gettextsrcdir); \
+ fi; \
+ $(INSTALL_DATA) $(srcdir)/Makefile.in.in \
+ $(gettextsrcdir)/Makefile.in.in; \
+ else \
+ : ; \
+ fi
+
+# Define this as empty until I found a useful application.
+installcheck:
+
+uninstall:
+ catalogs='$(CATALOGS)'; \
+ for cat in $$catalogs; do \
+ cat=`basename $$cat`; \
+ lang=`echo $$cat | sed 's/\$(CATOBJEXT)$$//'`; \
+ rm -f $(localedir)/$$lang/LC_MESSAGES/$(PACKAGE)$(INSTOBJEXT); \
+ rm -f $(localedir)/$$lang/LC_MESSAGES/$(PACKAGE)$(INSTOBJEXT).m; \
+ rm -f $(gnulocaledir)/$$lang/LC_MESSAGES/$(PACKAGE)$(INSTOBJEXT); \
+ rm -f $(gnulocaledir)/$$lang/LC_MESSAGES/$(PACKAGE)$(INSTOBJEXT).m; \
+ done
+ rm -f $(gettextsrcdir)/po-Makefile.in.in
+
+check: all
+
+cat-id-tbl.o: ../intl/libgettext.h
+
+dvi info tags TAGS ID:
+
+mostlyclean:
+ rm -f core core.* *.pox $(PACKAGE).po *.old.po cat-id-tbl.tmp
+ rm -fr *.o
+ rm -f *~
+
+clean: mostlyclean
+
+distclean: clean
+ rm -f Makefile Makefile.in POTFILES *.mo *.cat *.cat.m
+
+maintainer-clean: distclean
+ @echo "This command is intended for maintainers to use;"
+ @echo "it deletes files that may require special tools to rebuild."
+ rm -f $(GMOFILES)
+
+distdir = ../$(PACKAGE)-$(VERSION)/$(subdir)
+dist distdir: update-po $(DISTFILES)
+ dists="$(DISTFILES)"; \
+ for file in $$dists; do \
+ ln $(srcdir)/$$file $(distdir) 2> /dev/null \
+ || cp -p $(srcdir)/$$file $(distdir); \
+ done
+
+update-po: Makefile
+ $(MAKE) $(PACKAGE).pot
+ PATH=`pwd`/../src:$$PATH; \
+ cd $(srcdir); \
+ catalogs='$(CATALOGS)'; \
+ for cat in $$catalogs; do \
+ cat=`basename $$cat`; \
+ lang=`echo $$cat | sed 's/\$(CATOBJEXT)$$//'`; \
+ mv $$lang.po $$lang.old.po; \
+ echo "$$lang:"; \
+ if $(MSGMERGE) $$lang.old.po $(PACKAGE).pot -o $$lang.po; then \
+ rm -f $$lang.old.po; \
+ else \
+ echo "msgmerge for $$cat failed!"; \
+ rm -f $$lang.po; \
+ mv $$lang.old.po $$lang.po; \
+ fi; \
+ done
+
+POTFILES: POTFILES.in
+ ( if test 'x$(srcdir)' != 'x.'; then \
+ posrcprefix='$(top_srcdir)/'; \
+ else \
+ posrcprefix="../"; \
+ fi; \
+ rm -f $@-t $@ \
+ && (sed -e '/^#/d' -e '/^[ ]*$$/d' \
+ -e "s@.*@ $$posrcprefix& \\\\@" < $(srcdir)/$@.in \
+ | sed -e '$$s/\\$$//') > $@-t \
+ && chmod a-w $@-t \
+ && mv $@-t $@ )
+
+Makefile: Makefile.in.in ../config.status POTFILES
+ cd .. \
+ && CONFIG_FILES=$(subdir)/$@.in CONFIG_HEADERS= \
+ $(SHELL) ./config.status
+
+# Tell versions [3.59,3.63) of GNU make not to export all variables.
+# Otherwise a system limit (for SysV at least) may be exceeded.
+.NOEXPORT:
diff --git a/source3/po/POTFILES.in b/source3/po/POTFILES.in
new file mode 100644
index 0000000000..56eb3a6b77
--- /dev/null
+++ b/source3/po/POTFILES.in
@@ -0,0 +1,7 @@
+# List of source files containing translatable strings.
+# (written by rkawa).
+
+web/swat.c
+# web/cgi.c
+web/statuspage.c
+param/loadparm.c
diff --git a/source3/po/cat-id-tbl.c b/source3/po/cat-id-tbl.c
new file mode 100644
index 0000000000..33b8b13215
--- /dev/null
+++ b/source3/po/cat-id-tbl.c
@@ -0,0 +1,433 @@
+/* Automatically generated by po2tbl.sed from i18n_swat.pot. */
+
+#if HAVE_CONFIG_H
+# include <config.h>
+#endif
+
+#include "libgettext.h"
+
+const struct _msg_ent _msg_tbl[] = {
+ {"", 1},
+ {"ERROR: Can't open %s\n", 2},
+ {"Help", 3},
+ {"Set Default", 4},
+ {"Logged in as <b>%s</b><p>\n", 5},
+ {"Home", 6},
+ {"Globals", 7},
+ {"Shares", 8},
+ {"Printers", 9},
+ {"Status", 10},
+ {"View Config", 11},
+ {"Password Management", 12},
+ {"Current Config", 13},
+ {"Normal View", 14},
+ {"Full View", 15},
+ {"Global Variables", 16},
+ {"Commit Changes", 17},
+ {"Reset Values", 18},
+ {"Advanced View", 19},
+ {"Basic View", 20},
+ {"Share Parameters", 21},
+ {"Choose Share", 22},
+ {"Delete Share", 23},
+ {"Create Share", 24},
+ {"password change in demo mode rejected\n", 25},
+ {" Must specify \"User Name\" \n", 26},
+ {" Must specify \"Old Password\" \n", 27},
+ {" Must specify \"Remote Machine\" \n", 28},
+ {" Must specify \"New, and Re-typed Passwords\" \n", 29},
+ {" Re-typed password didn't match new password\n", 30},
+ {" The passwd for '%s' has been changed. \n", 31},
+ {" The passwd for '%s' has NOT been changed. \n", 32},
+ {"Server Password Management", 33},
+ {" User Name : ", 34},
+ {" Old Password : ", 35},
+ {" New Password : ", 36},
+ {" Re-type New Password : ", 37},
+ {"Change Password", 38},
+ {"Add New User", 39},
+ {"Delete User", 40},
+ {"Disable User", 41},
+ {"Enable User", 42},
+ {"Client/Server Password Management", 43},
+ {" Remote Machine : ", 44},
+ {"Printer Parameters", 45},
+ {"Important Note:", 46},
+ {"Printer names marked with [*] in the Choose Printer drop-down box ", 47},
+ {"are autoloaded printers from ", 48},
+ {"Printcap Name", 49},
+ {"Attempting to delete these printers from SWAT will have no effect.\n", 50},
+ {"Choose Printer", 51},
+ {"Delete Printer", 52},
+ {"Create Printer", 53},
+ {"DENY_NONE", 54},
+ {"DENY_ALL ", 55},
+ {"DENY_DOS ", 56},
+ {"DENY_READ ", 57},
+ {"DENY_WRITE ", 58},
+ {"RDONLY ", 59},
+ {"WRONLY ", 60},
+ {"RDWR ", 61},
+ {"EXCLUSIVE+BATCH ", 62},
+ {"EXCLUSIVE ", 63},
+ {"BATCH ", 64},
+ {"LEVEL_II ", 65},
+ {"NONE ", 66},
+ {"Server Status", 67},
+ {"Auto Refresh", 68},
+ {"Refresh Interval: ", 69},
+ {"Stop Refreshing", 70},
+ {"version:", 71},
+ {"smbd:", 72},
+ {"running", 73},
+ {"not running", 74},
+ {"Stop smbd", 75},
+ {"Start smbd", 76},
+ {"Restart smbd", 77},
+ {"nmbd:", 78},
+ {"Stop nmbd", 79},
+ {"Start nmbd", 80},
+ {"Restart nmbd", 81},
+ {"Active Connections", 82},
+ {"PID", 83},
+ {"Client", 84},
+ {"IP address", 85},
+ {"Date", 86},
+ {"Kill", 87},
+ {"Active Shares", 88},
+ {"Share", 89},
+ {"User", 90},
+ {"Group", 91},
+ {"Open Files", 92},
+ {"Sharing", 93},
+ {"R/W", 94},
+ {"Oplock", 95},
+ {"File", 96},
+ {"Base Options", 97},
+ {"dos charset", 98},
+ {"unix charset", 99},
+ {"display charset", 100},
+ {"comment", 101},
+ {"path", 102},
+ {"directory", 103},
+ {"workgroup", 104},
+ {"netbios name", 105},
+ {"netbios aliases", 106},
+ {"netbios scope", 107},
+ {"server string", 108},
+ {"interfaces", 109},
+ {"bind interfaces only", 110},
+ {"Security Options", 111},
+ {"security", 112},
+ {"encrypt passwords", 113},
+ {"update encrypted", 114},
+ {"allow trusted domains", 115},
+ {"alternate permissions", 116},
+ {"hosts equiv", 117},
+ {"min passwd length", 118},
+ {"min password length", 119},
+ {"map to guest", 120},
+ {"null passwords", 121},
+ {"obey pam restrictions", 122},
+ {"password server", 123},
+ {"smb passwd file", 124},
+ {"private dir", 125},
+ {"passdb module path", 126},
+ {"root directory", 127},
+ {"root dir", 128},
+ {"root", 129},
+ {"pam password change", 130},
+ {"passwd program", 131},
+ {"passwd chat", 132},
+ {"passwd chat debug", 133},
+ {"username map", 134},
+ {"password level", 135},
+ {"username level", 136},
+ {"unix password sync", 137},
+ {"restrict anonymous", 138},
+ {"lanman auth", 139},
+ {"ntlm auth", 140},
+ {"plaintext to smbpasswd", 141},
+ {"use rhosts", 142},
+ {"username", 143},
+ {"user", 144},
+ {"users", 145},
+ {"guest account", 146},
+ {"invalid users", 147},
+ {"valid users", 148},
+ {"admin users", 149},
+ {"read list", 150},
+ {"write list", 151},
+ {"printer admin", 152},
+ {"force user", 153},
+ {"force group", 154},
+ {"group", 155},
+ {"read only", 156},
+ {"write ok", 157},
+ {"writeable", 158},
+ {"writable", 159},
+ {"create mask", 160},
+ {"create mode", 161},
+ {"force create mode", 162},
+ {"security mask", 163},
+ {"force security mode", 164},
+ {"directory mask", 165},
+ {"directory mode", 166},
+ {"force directory mode", 167},
+ {"directory security mask", 168},
+ {"force directory security mode", 169},
+ {"inherit permissions", 170},
+ {"guest only", 171},
+ {"only guest", 172},
+ {"guest ok", 173},
+ {"public", 174},
+ {"only user", 175},
+ {"hosts allow", 176},
+ {"allow hosts", 177},
+ {"hosts deny", 178},
+ {"deny hosts", 179},
+ {"Secure Socket Layer Options", 180},
+ {"ssl", 181},
+ {"ssl hosts", 182},
+ {"ssl hosts resign", 183},
+ {"ssl CA certDir", 184},
+ {"ssl CA certFile", 185},
+ {"ssl server cert", 186},
+ {"ssl server key", 187},
+ {"ssl client cert", 188},
+ {"ssl client key", 189},
+ {"ssl require clientcert", 190},
+ {"ssl require servercert", 191},
+ {"ssl ciphers", 192},
+ {"ssl version", 193},
+ {"ssl compatibility", 194},
+ {"Logging Options", 195},
+ {"log level", 196},
+ {"debuglevel", 197},
+ {"syslog", 198},
+ {"syslog only", 199},
+ {"log file", 200},
+ {"max log size", 201},
+ {"timestamp logs", 202},
+ {"debug timestamp", 203},
+ {"debug hires timestamp", 204},
+ {"debug pid", 205},
+ {"debug uid", 206},
+ {"Protocol Options", 207},
+ {"protocol", 208},
+ {"large readwrite", 209},
+ {"max protocol", 210},
+ {"min protocol", 211},
+ {"unicode", 212},
+ {"read bmpx", 213},
+ {"read raw", 214},
+ {"write raw", 215},
+ {"nt smb support", 216},
+ {"nt pipe support", 217},
+ {"nt acl support", 218},
+ {"announce version", 219},
+ {"announce as", 220},
+ {"max mux", 221},
+ {"max xmit", 222},
+ {"name resolve order", 223},
+ {"max packet", 224},
+ {"packet size", 225},
+ {"max ttl", 226},
+ {"max wins ttl", 227},
+ {"min wins ttl", 228},
+ {"time server", 229},
+ {"Tuning Options", 230},
+ {"change notify timeout", 231},
+ {"deadtime", 232},
+ {"getwd cache", 233},
+ {"keepalive", 234},
+ {"lpq cache time", 235},
+ {"max smbd processes", 236},
+ {"max connections", 237},
+ {"paranoid server security", 238},
+ {"max disk size", 239},
+ {"max open files", 240},
+ {"min print space", 241},
+ {"read size", 242},
+ {"socket options", 243},
+ {"stat cache size", 244},
+ {"strict allocate", 245},
+ {"strict sync", 246},
+ {"sync always", 247},
+ {"use mmap", 248},
+ {"hostname lookups", 249},
+ {"write cache size", 250},
+ {"Printing Options", 251},
+ {"total print jobs", 252},
+ {"max print jobs", 253},
+ {"load printers", 254},
+ {"printcap name", 255},
+ {"printcap", 256},
+ {"printable", 257},
+ {"print ok", 258},
+ {"postscript", 259},
+ {"printing", 260},
+ {"print command", 261},
+ {"disable spoolss", 262},
+ {"lpq command", 263},
+ {"lprm command", 264},
+ {"lppause command", 265},
+ {"lpresume command", 266},
+ {"queuepause command", 267},
+ {"queueresume command", 268},
+ {"enumports command", 269},
+ {"addprinter command", 270},
+ {"deleteprinter command", 271},
+ {"show add printer wizard", 272},
+ {"os2 driver map", 273},
+ {"printer name", 274},
+ {"printer", 275},
+ {"use client driver", 276},
+ {"printer driver", 277},
+ {"printer driver file", 278},
+ {"printer driver location", 279},
+ {"Filename Handling", 280},
+ {"strip dot", 281},
+ {"mangled stack", 282},
+ {"default case", 283},
+ {"case sensitive", 284},
+ {"casesignames", 285},
+ {"preserve case", 286},
+ {"short preserve case", 287},
+ {"mangle case", 288},
+ {"mangling char", 289},
+ {"hide dot files", 290},
+ {"hide unreadable", 291},
+ {"delete veto files", 292},
+ {"veto files", 293},
+ {"hide files", 294},
+ {"veto oplock files", 295},
+ {"map system", 296},
+ {"map hidden", 297},
+ {"map archive", 298},
+ {"mangled names", 299},
+ {"mangled map", 300},
+ {"stat cache", 301},
+ {"Domain Options", 302},
+ {"domain admin group", 303},
+ {"domain guest group", 304},
+ {"groupname map", 305},
+ {"machine password timeout", 306},
+ {"Logon Options", 307},
+ {"add user script", 308},
+ {"delete user script", 309},
+ {"add group script", 310},
+ {"delete group script", 311},
+ {"add user to group script", 312},
+ {"delete user from group script", 313},
+ {"add machine script", 314},
+ {"shutdown script", 315},
+ {"abort shutdown script", 316},
+ {"logon script", 317},
+ {"logon path", 318},
+ {"logon drive", 319},
+ {"logon home", 320},
+ {"domain logons", 321},
+ {"Browse Options", 322},
+ {"os level", 323},
+ {"lm announce", 324},
+ {"lm interval", 325},
+ {"preferred master", 326},
+ {"prefered master", 327},
+ {"local master", 328},
+ {"domain master", 329},
+ {"browse list", 330},
+ {"browseable", 331},
+ {"browsable", 332},
+ {"enhanced browsing", 333},
+ {"WINS Options", 334},
+ {"dns proxy", 335},
+ {"wins proxy", 336},
+ {"wins server", 337},
+ {"wins support", 338},
+ {"wins hook", 339},
+ {"Locking Options", 340},
+ {"blocking locks", 341},
+ {"fake oplocks", 342},
+ {"kernel oplocks", 343},
+ {"locking", 344},
+ {"oplocks", 345},
+ {"level2 oplocks", 346},
+ {"oplock break wait time", 347},
+ {"oplock contention limit", 348},
+ {"posix locking", 349},
+ {"strict locking", 350},
+ {"share modes", 351},
+ {"Ldap Options", 352},
+ {"ldap server", 353},
+ {"ldap port", 354},
+ {"ldap suffix", 355},
+ {"ldap filter", 356},
+ {"ldap root", 357},
+ {"ldap root passwd", 358},
+ {"Miscellaneous Options", 359},
+ {"add share command", 360},
+ {"change share command", 361},
+ {"delete share command", 362},
+ {"config file", 363},
+ {"preload", 364},
+ {"auto services", 365},
+ {"lock dir", 366},
+ {"lock directory", 367},
+ {"utmp directory", 368},
+ {"wtmp directory", 369},
+ {"utmp", 370},
+ {"default service", 371},
+ {"default", 372},
+ {"message command", 373},
+ {"dfree command", 374},
+ {"remote announce", 375},
+ {"remote browse sync", 376},
+ {"socket address", 377},
+ {"homedir map", 378},
+ {"time offset", 379},
+ {"NIS homedir", 380},
+ {"-valid", 381},
+ {"copy", 382},
+ {"include", 383},
+ {"exec", 384},
+ {"preexec", 385},
+ {"preexec close", 386},
+ {"postexec", 387},
+ {"root preexec", 388},
+ {"root preexec close", 389},
+ {"root postexec", 390},
+ {"available", 391},
+ {"volume", 392},
+ {"fstype", 393},
+ {"set directory", 394},
+ {"source environment", 395},
+ {"wide links", 396},
+ {"follow symlinks", 397},
+ {"dont descend", 398},
+ {"magic script", 399},
+ {"magic output", 400},
+ {"delete readonly", 401},
+ {"dos filemode", 402},
+ {"dos filetimes", 403},
+ {"dos filetime resolution", 404},
+ {"fake directory create times", 405},
+ {"panic action", 406},
+ {"hide local users", 407},
+ {"VFS options", 408},
+ {"vfs object", 409},
+ {"vfs options", 410},
+ {"msdfs root", 411},
+ {"host msdfs", 412},
+ {"Winbind options", 413},
+ {"winbind uid", 414},
+ {"winbind gid", 415},
+ {"template homedir", 416},
+ {"template shell", 417},
+ {"winbind separator", 418},
+ {"winbind cache time", 419},
+ {"winbind enum users", 420},
+ {"winbind enum groups", 421},
+};
+
+int _msg_tbl_length = 421;
diff --git a/source3/po/en.gmo b/source3/po/en.gmo
new file mode 100644
index 0000000000..4818a4a3a8
--- /dev/null
+++ b/source3/po/en.gmo
Binary files differ
diff --git a/source3/po/en.po b/source3/po/en.po
new file mode 100644
index 0000000000..2f78cb835e
--- /dev/null
+++ b/source3/po/en.po
@@ -0,0 +1,1707 @@
+# English messages for international release of SWAT.
+# Copyright (C) 2001 Free Software Foundation, Inc.
+# TAKAHASHI Motonobu <monyo@samba.org>, 2001.
+msgid ""
+msgstr ""
+"Project-Id-Version: i18n_swat \n"
+"POT-Creation-Date: 2001-09-20 20:29+0900\n"
+"PO-Revision-Date: 2000-02-08 12:48+09:00\n"
+"Last-Translator: TAKAHASHI Motonobu <monyo@samba.gr.jp>\n"
+"Language-Team: (Samba Team) <samba-technical@samba.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=US-ASCII\n"
+"Content-Transfer-Encoding: \n"
+
+#: web/swat.c:120
+#, c-format
+msgid "ERROR: Can't open %s\n"
+msgstr ""
+
+#.
+#. str = stripspace(parm->label);
+#. strlower (str); //monyo
+#. d_printf("<tr><td><A HREF=\"/swat/help/smb.conf.5.html#%s\" target=\"docs\">%s</A>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; %s</td><td>",
+#. str, _("Help"), parm->label);
+#.
+#: web/swat.c:211
+msgid "Help"
+msgstr ""
+
+#: web/swat.c:217 web/swat.c:231 web/swat.c:246 web/swat.c:254 web/swat.c:263
+#: web/swat.c:272 web/swat.c:278 web/swat.c:284 web/swat.c:297
+msgid "Set Default"
+msgstr ""
+
+#: web/swat.c:502
+#, c-format
+msgid "Logged in as <b>%s</b><p>\n"
+msgstr ""
+
+#: web/swat.c:505
+msgid "Home"
+msgstr ""
+
+#: web/swat.c:507
+msgid "Globals"
+msgstr ""
+
+#: web/swat.c:508
+msgid "Shares"
+msgstr ""
+
+#: web/swat.c:509
+msgid "Printers"
+msgstr ""
+
+#: web/swat.c:512
+msgid "Status"
+msgstr ""
+
+#: web/swat.c:513
+msgid "View Config"
+msgstr ""
+
+#: web/swat.c:515
+msgid "Password Management"
+msgstr ""
+
+#: web/swat.c:539
+msgid "Current Config"
+msgstr ""
+
+#: web/swat.c:543
+msgid "Normal View"
+msgstr ""
+
+#: web/swat.c:545
+msgid "Full View"
+msgstr ""
+
+#: web/swat.c:561
+msgid "Global Variables"
+msgstr ""
+
+#: web/swat.c:575 web/swat.c:671 web/swat.c:1014
+msgid "Commit Changes"
+msgstr ""
+
+#: web/swat.c:579 web/swat.c:674 web/swat.c:1016
+msgid "Reset Values"
+msgstr ""
+
+#: web/swat.c:581 web/swat.c:676 web/swat.c:1018
+msgid "Advanced View"
+msgstr ""
+
+#: web/swat.c:583 web/swat.c:678 web/swat.c:1020
+msgid "Basic View"
+msgstr ""
+
+#: web/swat.c:613
+msgid "Share Parameters"
+msgstr ""
+
+#: web/swat.c:642
+msgid "Choose Share"
+msgstr ""
+
+#: web/swat.c:656
+msgid "Delete Share"
+msgstr ""
+
+#: web/swat.c:663
+msgid "Create Share"
+msgstr ""
+
+#: web/swat.c:708
+msgid "password change in demo mode rejected\n"
+msgstr ""
+
+#: web/swat.c:747
+msgid " Must specify \"User Name\" \n"
+msgstr ""
+
+#: web/swat.c:763
+msgid " Must specify \"Old Password\" \n"
+msgstr ""
+
+#: web/swat.c:769
+msgid " Must specify \"Remote Machine\" \n"
+msgstr ""
+
+#: web/swat.c:776
+msgid " Must specify \"New, and Re-typed Passwords\" \n"
+msgstr ""
+
+#: web/swat.c:782
+msgid " Re-typed password didn't match new password\n"
+msgstr ""
+
+#: web/swat.c:812
+#, c-format
+msgid " The passwd for '%s' has been changed. \n"
+msgstr ""
+
+#: web/swat.c:814
+#, c-format
+msgid " The passwd for '%s' has NOT been changed. \n"
+msgstr ""
+
+#: web/swat.c:838
+msgid "Server Password Management"
+msgstr ""
+
+#.
+#. * Create all the dialog boxes for data collection
+#.
+#: web/swat.c:847 web/swat.c:894
+msgid " User Name : "
+msgstr ""
+
+#: web/swat.c:850 web/swat.c:896
+msgid " Old Password : "
+msgstr ""
+
+#: web/swat.c:853 web/swat.c:898
+msgid " New Password : "
+msgstr ""
+
+#: web/swat.c:855 web/swat.c:900
+msgid " Re-type New Password : "
+msgstr ""
+
+#: web/swat.c:863 web/swat.c:911
+msgid "Change Password"
+msgstr ""
+
+#: web/swat.c:866
+msgid "Add New User"
+msgstr ""
+
+#: web/swat.c:868
+msgid "Delete User"
+msgstr ""
+
+#: web/swat.c:870
+msgid "Disable User"
+msgstr ""
+
+#: web/swat.c:872
+msgid "Enable User"
+msgstr ""
+
+#: web/swat.c:885
+msgid "Client/Server Password Management"
+msgstr ""
+
+#: web/swat.c:902
+msgid " Remote Machine : "
+msgstr ""
+
+#: web/swat.c:940
+msgid "Printer Parameters"
+msgstr ""
+
+#: web/swat.c:942
+msgid "Important Note:"
+msgstr ""
+
+#: web/swat.c:943
+msgid "Printer names marked with [*] in the Choose Printer drop-down box "
+msgstr ""
+
+#: web/swat.c:944
+msgid "are autoloaded printers from "
+msgstr ""
+
+#: web/swat.c:945
+msgid "Printcap Name"
+msgstr ""
+
+#: web/swat.c:946
+msgid "Attempting to delete these printers from SWAT will have no effect.\n"
+msgstr ""
+
+#: web/swat.c:980
+msgid "Choose Printer"
+msgstr ""
+
+#: web/swat.c:999
+msgid "Delete Printer"
+msgstr ""
+
+#: web/swat.c:1006
+msgid "Create Printer"
+msgstr ""
+
+#: web/statuspage.c:40
+msgid "DENY_NONE"
+msgstr ""
+
+#: web/statuspage.c:41
+msgid "DENY_ALL "
+msgstr ""
+
+#: web/statuspage.c:42
+msgid "DENY_DOS "
+msgstr ""
+
+#: web/statuspage.c:43
+msgid "DENY_READ "
+msgstr ""
+
+#: web/statuspage.c:44
+msgid "DENY_WRITE "
+msgstr ""
+
+#: web/statuspage.c:50
+msgid "RDONLY "
+msgstr ""
+
+#: web/statuspage.c:51
+msgid "WRONLY "
+msgstr ""
+
+#: web/statuspage.c:52
+msgid "RDWR "
+msgstr ""
+
+#: web/statuspage.c:60
+msgid "EXCLUSIVE+BATCH "
+msgstr ""
+
+#: web/statuspage.c:62
+msgid "EXCLUSIVE "
+msgstr ""
+
+#: web/statuspage.c:64
+msgid "BATCH "
+msgstr ""
+
+#: web/statuspage.c:66
+msgid "LEVEL_II "
+msgstr ""
+
+#: web/statuspage.c:68
+msgid "NONE "
+msgstr ""
+
+#: web/statuspage.c:195
+msgid "Server Status"
+msgstr ""
+
+#: web/statuspage.c:200
+msgid "Auto Refresh"
+msgstr ""
+
+#: web/statuspage.c:201 web/statuspage.c:206
+msgid "Refresh Interval: "
+msgstr ""
+
+#: web/statuspage.c:205
+msgid "Stop Refreshing"
+msgstr ""
+
+#: web/statuspage.c:220
+msgid "version:"
+msgstr ""
+
+#: web/statuspage.c:223
+msgid "smbd:"
+msgstr ""
+
+#: web/statuspage.c:223 web/statuspage.c:235
+msgid "running"
+msgstr ""
+
+#: web/statuspage.c:223 web/statuspage.c:235
+msgid "not running"
+msgstr ""
+
+#: web/statuspage.c:226
+msgid "Stop smbd"
+msgstr ""
+
+#: web/statuspage.c:228
+msgid "Start smbd"
+msgstr ""
+
+#: web/statuspage.c:230
+msgid "Restart smbd"
+msgstr ""
+
+#: web/statuspage.c:235
+msgid "nmbd:"
+msgstr ""
+
+#: web/statuspage.c:238
+msgid "Stop nmbd"
+msgstr ""
+
+#: web/statuspage.c:240
+msgid "Start nmbd"
+msgstr ""
+
+#: web/statuspage.c:242
+msgid "Restart nmbd"
+msgstr ""
+
+#: web/statuspage.c:249
+msgid "Active Connections"
+msgstr ""
+
+#: web/statuspage.c:251 web/statuspage.c:264 web/statuspage.c:272
+msgid "PID"
+msgstr ""
+
+#: web/statuspage.c:251 web/statuspage.c:264
+msgid "Client"
+msgstr ""
+
+#: web/statuspage.c:251
+msgid "IP address"
+msgstr ""
+
+#: web/statuspage.c:251 web/statuspage.c:264 web/statuspage.c:272
+msgid "Date"
+msgstr ""
+
+#: web/statuspage.c:253
+msgid "Kill"
+msgstr ""
+
+#: web/statuspage.c:261
+msgid "Active Shares"
+msgstr ""
+
+#: web/statuspage.c:264
+msgid "Share"
+msgstr ""
+
+#: web/statuspage.c:264
+msgid "User"
+msgstr ""
+
+#: web/statuspage.c:264
+msgid "Group"
+msgstr ""
+
+#: web/statuspage.c:270
+msgid "Open Files"
+msgstr ""
+
+#: web/statuspage.c:272
+msgid "Sharing"
+msgstr ""
+
+#: web/statuspage.c:272
+msgid "R/W"
+msgstr ""
+
+#: web/statuspage.c:272
+msgid "Oplock"
+msgstr ""
+
+#: web/statuspage.c:272
+msgid "File"
+msgstr ""
+
+#: param/loadparm.c:641
+msgid "Base Options"
+msgstr ""
+
+#: param/loadparm.c:643
+msgid "dos charset"
+msgstr ""
+
+#: param/loadparm.c:644
+msgid "unix charset"
+msgstr ""
+
+#: param/loadparm.c:645
+msgid "display charset"
+msgstr ""
+
+#: param/loadparm.c:646
+msgid "comment"
+msgstr ""
+
+#: param/loadparm.c:647
+msgid "path"
+msgstr ""
+
+#: param/loadparm.c:648
+msgid "directory"
+msgstr ""
+
+#: param/loadparm.c:649
+msgid "workgroup"
+msgstr ""
+
+#: param/loadparm.c:650
+msgid "netbios name"
+msgstr ""
+
+#: param/loadparm.c:651
+msgid "netbios aliases"
+msgstr ""
+
+#: param/loadparm.c:652
+msgid "netbios scope"
+msgstr ""
+
+#: param/loadparm.c:653
+msgid "server string"
+msgstr ""
+
+#: param/loadparm.c:654
+msgid "interfaces"
+msgstr ""
+
+#: param/loadparm.c:655
+msgid "bind interfaces only"
+msgstr ""
+
+#: param/loadparm.c:657
+msgid "Security Options"
+msgstr ""
+
+#: param/loadparm.c:659
+msgid "security"
+msgstr ""
+
+#: param/loadparm.c:660
+msgid "encrypt passwords"
+msgstr ""
+
+#: param/loadparm.c:661
+msgid "update encrypted"
+msgstr ""
+
+#: param/loadparm.c:662
+msgid "allow trusted domains"
+msgstr ""
+
+#: param/loadparm.c:663
+msgid "alternate permissions"
+msgstr ""
+
+#: param/loadparm.c:664
+msgid "hosts equiv"
+msgstr ""
+
+#: param/loadparm.c:665
+msgid "min passwd length"
+msgstr ""
+
+#: param/loadparm.c:666
+msgid "min password length"
+msgstr ""
+
+#: param/loadparm.c:667
+msgid "map to guest"
+msgstr ""
+
+#: param/loadparm.c:668
+msgid "null passwords"
+msgstr ""
+
+#: param/loadparm.c:669
+msgid "obey pam restrictions"
+msgstr ""
+
+#: param/loadparm.c:670
+msgid "password server"
+msgstr ""
+
+#: param/loadparm.c:671
+msgid "smb passwd file"
+msgstr ""
+
+#: param/loadparm.c:672
+msgid "private dir"
+msgstr ""
+
+#: param/loadparm.c:673
+msgid "passdb module path"
+msgstr ""
+
+#: param/loadparm.c:674
+msgid "root directory"
+msgstr ""
+
+#: param/loadparm.c:675
+msgid "root dir"
+msgstr ""
+
+#: param/loadparm.c:676
+msgid "root"
+msgstr ""
+
+#: param/loadparm.c:678
+msgid "pam password change"
+msgstr ""
+
+#: param/loadparm.c:679
+msgid "passwd program"
+msgstr ""
+
+#: param/loadparm.c:680
+msgid "passwd chat"
+msgstr ""
+
+#: param/loadparm.c:681
+msgid "passwd chat debug"
+msgstr ""
+
+#: param/loadparm.c:682
+msgid "username map"
+msgstr ""
+
+#: param/loadparm.c:683
+msgid "password level"
+msgstr ""
+
+#: param/loadparm.c:684
+msgid "username level"
+msgstr ""
+
+#: param/loadparm.c:685
+msgid "unix password sync"
+msgstr ""
+
+#: param/loadparm.c:686
+msgid "restrict anonymous"
+msgstr ""
+
+#: param/loadparm.c:687
+msgid "lanman auth"
+msgstr ""
+
+#: param/loadparm.c:688
+msgid "ntlm auth"
+msgstr ""
+
+#: param/loadparm.c:689
+msgid "plaintext to smbpasswd"
+msgstr ""
+
+#: param/loadparm.c:690
+msgid "use rhosts"
+msgstr ""
+
+#: param/loadparm.c:692
+msgid "username"
+msgstr ""
+
+#: param/loadparm.c:693
+msgid "user"
+msgstr ""
+
+#: param/loadparm.c:694
+msgid "users"
+msgstr ""
+
+#: param/loadparm.c:696
+msgid "guest account"
+msgstr ""
+
+#: param/loadparm.c:697
+msgid "invalid users"
+msgstr ""
+
+#: param/loadparm.c:698
+msgid "valid users"
+msgstr ""
+
+#: param/loadparm.c:699
+msgid "admin users"
+msgstr ""
+
+#: param/loadparm.c:700
+msgid "read list"
+msgstr ""
+
+#: param/loadparm.c:701
+msgid "write list"
+msgstr ""
+
+#: param/loadparm.c:702
+msgid "printer admin"
+msgstr ""
+
+#: param/loadparm.c:703
+msgid "force user"
+msgstr ""
+
+#: param/loadparm.c:704
+msgid "force group"
+msgstr ""
+
+#: param/loadparm.c:705
+msgid "group"
+msgstr ""
+
+#: param/loadparm.c:707
+msgid "read only"
+msgstr ""
+
+#: param/loadparm.c:708
+msgid "write ok"
+msgstr ""
+
+#: param/loadparm.c:709
+msgid "writeable"
+msgstr ""
+
+#: param/loadparm.c:710
+msgid "writable"
+msgstr ""
+
+#: param/loadparm.c:712
+msgid "create mask"
+msgstr ""
+
+#: param/loadparm.c:713
+msgid "create mode"
+msgstr ""
+
+#: param/loadparm.c:714
+msgid "force create mode"
+msgstr ""
+
+#: param/loadparm.c:715
+msgid "security mask"
+msgstr ""
+
+#: param/loadparm.c:716
+msgid "force security mode"
+msgstr ""
+
+#: param/loadparm.c:717
+msgid "directory mask"
+msgstr ""
+
+#: param/loadparm.c:718
+msgid "directory mode"
+msgstr ""
+
+#: param/loadparm.c:719
+msgid "force directory mode"
+msgstr ""
+
+#: param/loadparm.c:720
+msgid "directory security mask"
+msgstr ""
+
+#: param/loadparm.c:721
+msgid "force directory security mode"
+msgstr ""
+
+#: param/loadparm.c:722
+msgid "inherit permissions"
+msgstr ""
+
+#: param/loadparm.c:723
+msgid "guest only"
+msgstr ""
+
+#: param/loadparm.c:724
+msgid "only guest"
+msgstr ""
+
+#: param/loadparm.c:726
+msgid "guest ok"
+msgstr ""
+
+#: param/loadparm.c:727
+msgid "public"
+msgstr ""
+
+#: param/loadparm.c:729
+msgid "only user"
+msgstr ""
+
+#: param/loadparm.c:730
+msgid "hosts allow"
+msgstr ""
+
+#: param/loadparm.c:731
+msgid "allow hosts"
+msgstr ""
+
+#: param/loadparm.c:732
+msgid "hosts deny"
+msgstr ""
+
+#: param/loadparm.c:733
+msgid "deny hosts"
+msgstr ""
+
+#: param/loadparm.c:736
+msgid "Secure Socket Layer Options"
+msgstr ""
+
+#: param/loadparm.c:737
+msgid "ssl"
+msgstr ""
+
+#: param/loadparm.c:739
+msgid "ssl hosts"
+msgstr ""
+
+#: param/loadparm.c:740
+msgid "ssl hosts resign"
+msgstr ""
+
+#: param/loadparm.c:741
+msgid "ssl CA certDir"
+msgstr ""
+
+#: param/loadparm.c:742
+msgid "ssl CA certFile"
+msgstr ""
+
+#: param/loadparm.c:743
+msgid "ssl server cert"
+msgstr ""
+
+#: param/loadparm.c:744
+msgid "ssl server key"
+msgstr ""
+
+#: param/loadparm.c:745
+msgid "ssl client cert"
+msgstr ""
+
+#: param/loadparm.c:746
+msgid "ssl client key"
+msgstr ""
+
+#: param/loadparm.c:747
+msgid "ssl require clientcert"
+msgstr ""
+
+#: param/loadparm.c:748
+msgid "ssl require servercert"
+msgstr ""
+
+#: param/loadparm.c:749
+msgid "ssl ciphers"
+msgstr ""
+
+#: param/loadparm.c:750
+msgid "ssl version"
+msgstr ""
+
+#: param/loadparm.c:751
+msgid "ssl compatibility"
+msgstr ""
+
+#: param/loadparm.c:754
+msgid "Logging Options"
+msgstr ""
+
+#: param/loadparm.c:755
+msgid "log level"
+msgstr ""
+
+#: param/loadparm.c:756
+msgid "debuglevel"
+msgstr ""
+
+#: param/loadparm.c:757
+msgid "syslog"
+msgstr ""
+
+#: param/loadparm.c:758
+msgid "syslog only"
+msgstr ""
+
+#: param/loadparm.c:759
+msgid "log file"
+msgstr ""
+
+#: param/loadparm.c:761
+msgid "max log size"
+msgstr ""
+
+#: param/loadparm.c:762
+msgid "timestamp logs"
+msgstr ""
+
+#: param/loadparm.c:763
+msgid "debug timestamp"
+msgstr ""
+
+#: param/loadparm.c:764
+msgid "debug hires timestamp"
+msgstr ""
+
+#: param/loadparm.c:765
+msgid "debug pid"
+msgstr ""
+
+#: param/loadparm.c:766
+msgid "debug uid"
+msgstr ""
+
+#: param/loadparm.c:768
+msgid "Protocol Options"
+msgstr ""
+
+#: param/loadparm.c:770
+msgid "protocol"
+msgstr ""
+
+#: param/loadparm.c:771
+msgid "large readwrite"
+msgstr ""
+
+#: param/loadparm.c:772
+msgid "max protocol"
+msgstr ""
+
+#: param/loadparm.c:773
+msgid "min protocol"
+msgstr ""
+
+#: param/loadparm.c:774
+msgid "unicode"
+msgstr ""
+
+#: param/loadparm.c:775
+msgid "read bmpx"
+msgstr ""
+
+#: param/loadparm.c:776
+msgid "read raw"
+msgstr ""
+
+#: param/loadparm.c:777
+msgid "write raw"
+msgstr ""
+
+#: param/loadparm.c:779
+msgid "nt smb support"
+msgstr ""
+
+#: param/loadparm.c:780
+msgid "nt pipe support"
+msgstr ""
+
+#: param/loadparm.c:781
+msgid "nt acl support"
+msgstr ""
+
+#: param/loadparm.c:782
+msgid "announce version"
+msgstr ""
+
+#: param/loadparm.c:783
+msgid "announce as"
+msgstr ""
+
+#: param/loadparm.c:784
+msgid "max mux"
+msgstr ""
+
+#: param/loadparm.c:785
+msgid "max xmit"
+msgstr ""
+
+#: param/loadparm.c:787
+msgid "name resolve order"
+msgstr ""
+
+#: param/loadparm.c:788
+msgid "max packet"
+msgstr ""
+
+#: param/loadparm.c:789
+msgid "packet size"
+msgstr ""
+
+#: param/loadparm.c:790
+msgid "max ttl"
+msgstr ""
+
+#: param/loadparm.c:791
+msgid "max wins ttl"
+msgstr ""
+
+#: param/loadparm.c:792
+msgid "min wins ttl"
+msgstr ""
+
+#: param/loadparm.c:793
+msgid "time server"
+msgstr ""
+
+#: param/loadparm.c:795
+msgid "Tuning Options"
+msgstr ""
+
+#: param/loadparm.c:797
+msgid "change notify timeout"
+msgstr ""
+
+#: param/loadparm.c:798
+msgid "deadtime"
+msgstr ""
+
+#: param/loadparm.c:799
+msgid "getwd cache"
+msgstr ""
+
+#: param/loadparm.c:800
+msgid "keepalive"
+msgstr ""
+
+#: param/loadparm.c:802
+msgid "lpq cache time"
+msgstr ""
+
+#: param/loadparm.c:803
+msgid "max smbd processes"
+msgstr ""
+
+#: param/loadparm.c:804
+msgid "max connections"
+msgstr ""
+
+#: param/loadparm.c:805
+msgid "paranoid server security"
+msgstr ""
+
+#: param/loadparm.c:806
+msgid "max disk size"
+msgstr ""
+
+#: param/loadparm.c:807
+msgid "max open files"
+msgstr ""
+
+#: param/loadparm.c:808
+msgid "min print space"
+msgstr ""
+
+#: param/loadparm.c:809
+msgid "read size"
+msgstr ""
+
+#: param/loadparm.c:811
+msgid "socket options"
+msgstr ""
+
+#: param/loadparm.c:812
+msgid "stat cache size"
+msgstr ""
+
+#: param/loadparm.c:813
+msgid "strict allocate"
+msgstr ""
+
+#: param/loadparm.c:814
+msgid "strict sync"
+msgstr ""
+
+#: param/loadparm.c:815
+msgid "sync always"
+msgstr ""
+
+#: param/loadparm.c:816
+msgid "use mmap"
+msgstr ""
+
+#: param/loadparm.c:817
+msgid "hostname lookups"
+msgstr ""
+
+#: param/loadparm.c:818
+msgid "write cache size"
+msgstr ""
+
+#: param/loadparm.c:820
+msgid "Printing Options"
+msgstr ""
+
+#: param/loadparm.c:822
+msgid "total print jobs"
+msgstr ""
+
+#: param/loadparm.c:823
+msgid "max print jobs"
+msgstr ""
+
+#: param/loadparm.c:824
+msgid "load printers"
+msgstr ""
+
+#: param/loadparm.c:825
+msgid "printcap name"
+msgstr ""
+
+#: param/loadparm.c:826
+msgid "printcap"
+msgstr ""
+
+#: param/loadparm.c:827
+msgid "printable"
+msgstr ""
+
+#: param/loadparm.c:828
+msgid "print ok"
+msgstr ""
+
+#: param/loadparm.c:829
+msgid "postscript"
+msgstr ""
+
+#: param/loadparm.c:830
+msgid "printing"
+msgstr ""
+
+#: param/loadparm.c:831
+msgid "print command"
+msgstr ""
+
+#: param/loadparm.c:832
+msgid "disable spoolss"
+msgstr ""
+
+#: param/loadparm.c:833
+msgid "lpq command"
+msgstr ""
+
+#: param/loadparm.c:834
+msgid "lprm command"
+msgstr ""
+
+#: param/loadparm.c:835
+msgid "lppause command"
+msgstr ""
+
+#: param/loadparm.c:836
+msgid "lpresume command"
+msgstr ""
+
+#: param/loadparm.c:837
+msgid "queuepause command"
+msgstr ""
+
+#: param/loadparm.c:838
+msgid "queueresume command"
+msgstr ""
+
+#: param/loadparm.c:840
+msgid "enumports command"
+msgstr ""
+
+#: param/loadparm.c:841
+msgid "addprinter command"
+msgstr ""
+
+#: param/loadparm.c:842
+msgid "deleteprinter command"
+msgstr ""
+
+#: param/loadparm.c:843
+msgid "show add printer wizard"
+msgstr ""
+
+#: param/loadparm.c:844
+msgid "os2 driver map"
+msgstr ""
+
+#: param/loadparm.c:846
+msgid "printer name"
+msgstr ""
+
+#: param/loadparm.c:847
+msgid "printer"
+msgstr ""
+
+#: param/loadparm.c:848
+msgid "use client driver"
+msgstr ""
+
+#: param/loadparm.c:849
+msgid "printer driver"
+msgstr ""
+
+#: param/loadparm.c:850
+msgid "printer driver file"
+msgstr ""
+
+#: param/loadparm.c:851
+msgid "printer driver location"
+msgstr ""
+
+#: param/loadparm.c:853
+msgid "Filename Handling"
+msgstr ""
+
+#: param/loadparm.c:854
+msgid "strip dot"
+msgstr ""
+
+#: param/loadparm.c:856
+msgid "mangled stack"
+msgstr ""
+
+#: param/loadparm.c:857
+msgid "default case"
+msgstr ""
+
+#: param/loadparm.c:858
+msgid "case sensitive"
+msgstr ""
+
+#: param/loadparm.c:859
+msgid "casesignames"
+msgstr ""
+
+#: param/loadparm.c:860
+msgid "preserve case"
+msgstr ""
+
+#: param/loadparm.c:861
+msgid "short preserve case"
+msgstr ""
+
+#: param/loadparm.c:862
+msgid "mangle case"
+msgstr ""
+
+#: param/loadparm.c:863
+msgid "mangling char"
+msgstr ""
+
+#: param/loadparm.c:864
+msgid "hide dot files"
+msgstr ""
+
+#: param/loadparm.c:865
+msgid "hide unreadable"
+msgstr ""
+
+#: param/loadparm.c:866
+msgid "delete veto files"
+msgstr ""
+
+#: param/loadparm.c:867
+msgid "veto files"
+msgstr ""
+
+#: param/loadparm.c:868
+msgid "hide files"
+msgstr ""
+
+#: param/loadparm.c:869
+msgid "veto oplock files"
+msgstr ""
+
+#: param/loadparm.c:870
+msgid "map system"
+msgstr ""
+
+#: param/loadparm.c:871
+msgid "map hidden"
+msgstr ""
+
+#: param/loadparm.c:872
+msgid "map archive"
+msgstr ""
+
+#: param/loadparm.c:873
+msgid "mangled names"
+msgstr ""
+
+#: param/loadparm.c:874
+msgid "mangled map"
+msgstr ""
+
+#: param/loadparm.c:875
+msgid "stat cache"
+msgstr ""
+
+#: param/loadparm.c:877
+msgid "Domain Options"
+msgstr ""
+
+#: param/loadparm.c:879
+msgid "domain admin group"
+msgstr ""
+
+#: param/loadparm.c:880
+msgid "domain guest group"
+msgstr ""
+
+#: param/loadparm.c:883
+msgid "groupname map"
+msgstr ""
+
+#: param/loadparm.c:886
+msgid "machine password timeout"
+msgstr ""
+
+#: param/loadparm.c:888
+msgid "Logon Options"
+msgstr ""
+
+#: param/loadparm.c:890
+msgid "add user script"
+msgstr ""
+
+#: param/loadparm.c:891
+msgid "delete user script"
+msgstr ""
+
+#: param/loadparm.c:892
+msgid "add group script"
+msgstr ""
+
+#: param/loadparm.c:893
+msgid "delete group script"
+msgstr ""
+
+#: param/loadparm.c:894
+msgid "add user to group script"
+msgstr ""
+
+#: param/loadparm.c:895
+msgid "delete user from group script"
+msgstr ""
+
+#: param/loadparm.c:896
+msgid "add machine script"
+msgstr ""
+
+#: param/loadparm.c:897
+msgid "shutdown script"
+msgstr ""
+
+#: param/loadparm.c:898
+msgid "abort shutdown script"
+msgstr ""
+
+#: param/loadparm.c:900
+msgid "logon script"
+msgstr ""
+
+#: param/loadparm.c:901
+msgid "logon path"
+msgstr ""
+
+#: param/loadparm.c:902
+msgid "logon drive"
+msgstr ""
+
+#: param/loadparm.c:903
+msgid "logon home"
+msgstr ""
+
+#: param/loadparm.c:904
+msgid "domain logons"
+msgstr ""
+
+#: param/loadparm.c:906
+msgid "Browse Options"
+msgstr ""
+
+#: param/loadparm.c:908
+msgid "os level"
+msgstr ""
+
+#: param/loadparm.c:909
+msgid "lm announce"
+msgstr ""
+
+#: param/loadparm.c:910
+msgid "lm interval"
+msgstr ""
+
+#: param/loadparm.c:911
+msgid "preferred master"
+msgstr ""
+
+#: param/loadparm.c:912
+msgid "prefered master"
+msgstr ""
+
+#: param/loadparm.c:913
+msgid "local master"
+msgstr ""
+
+#: param/loadparm.c:914
+msgid "domain master"
+msgstr ""
+
+#: param/loadparm.c:915
+msgid "browse list"
+msgstr ""
+
+#: param/loadparm.c:916
+msgid "browseable"
+msgstr ""
+
+#: param/loadparm.c:917
+msgid "browsable"
+msgstr ""
+
+#: param/loadparm.c:918
+msgid "enhanced browsing"
+msgstr ""
+
+#: param/loadparm.c:920
+msgid "WINS Options"
+msgstr ""
+
+#: param/loadparm.c:921
+msgid "dns proxy"
+msgstr ""
+
+#: param/loadparm.c:922
+msgid "wins proxy"
+msgstr ""
+
+#: param/loadparm.c:924
+msgid "wins server"
+msgstr ""
+
+#: param/loadparm.c:925
+msgid "wins support"
+msgstr ""
+
+#: param/loadparm.c:926
+msgid "wins hook"
+msgstr ""
+
+#: param/loadparm.c:928
+msgid "Locking Options"
+msgstr ""
+
+#: param/loadparm.c:930
+msgid "blocking locks"
+msgstr ""
+
+#: param/loadparm.c:931
+msgid "fake oplocks"
+msgstr ""
+
+#: param/loadparm.c:932
+msgid "kernel oplocks"
+msgstr ""
+
+#: param/loadparm.c:933
+msgid "locking"
+msgstr ""
+
+#: param/loadparm.c:935
+msgid "oplocks"
+msgstr ""
+
+#: param/loadparm.c:936
+msgid "level2 oplocks"
+msgstr ""
+
+#: param/loadparm.c:937
+msgid "oplock break wait time"
+msgstr ""
+
+#: param/loadparm.c:938
+msgid "oplock contention limit"
+msgstr ""
+
+#: param/loadparm.c:939
+msgid "posix locking"
+msgstr ""
+
+#: param/loadparm.c:940
+msgid "strict locking"
+msgstr ""
+
+#: param/loadparm.c:941
+msgid "share modes"
+msgstr ""
+
+#: param/loadparm.c:944
+msgid "Ldap Options"
+msgstr ""
+
+#: param/loadparm.c:946
+msgid "ldap server"
+msgstr ""
+
+#: param/loadparm.c:947
+msgid "ldap port"
+msgstr ""
+
+#: param/loadparm.c:948
+msgid "ldap suffix"
+msgstr ""
+
+#: param/loadparm.c:949
+msgid "ldap filter"
+msgstr ""
+
+#: param/loadparm.c:950
+msgid "ldap root"
+msgstr ""
+
+#: param/loadparm.c:951
+msgid "ldap root passwd"
+msgstr ""
+
+#: param/loadparm.c:954
+msgid "Miscellaneous Options"
+msgstr ""
+
+#: param/loadparm.c:955
+msgid "add share command"
+msgstr ""
+
+#: param/loadparm.c:956
+msgid "change share command"
+msgstr ""
+
+#: param/loadparm.c:957
+msgid "delete share command"
+msgstr ""
+
+#: param/loadparm.c:959
+msgid "config file"
+msgstr ""
+
+#: param/loadparm.c:960
+msgid "preload"
+msgstr ""
+
+#: param/loadparm.c:961
+msgid "auto services"
+msgstr ""
+
+#: param/loadparm.c:962
+msgid "lock dir"
+msgstr ""
+
+#: param/loadparm.c:963
+msgid "lock directory"
+msgstr ""
+
+#: param/loadparm.c:965
+msgid "utmp directory"
+msgstr ""
+
+#: param/loadparm.c:966
+msgid "wtmp directory"
+msgstr ""
+
+#: param/loadparm.c:967
+msgid "utmp"
+msgstr ""
+
+#: param/loadparm.c:970
+msgid "default service"
+msgstr ""
+
+#: param/loadparm.c:971
+msgid "default"
+msgstr ""
+
+#: param/loadparm.c:972
+msgid "message command"
+msgstr ""
+
+#: param/loadparm.c:973
+msgid "dfree command"
+msgstr ""
+
+#: param/loadparm.c:974
+msgid "remote announce"
+msgstr ""
+
+#: param/loadparm.c:975
+msgid "remote browse sync"
+msgstr ""
+
+#: param/loadparm.c:976
+msgid "socket address"
+msgstr ""
+
+#: param/loadparm.c:977
+msgid "homedir map"
+msgstr ""
+
+#: param/loadparm.c:978
+msgid "time offset"
+msgstr ""
+
+#: param/loadparm.c:979
+msgid "NIS homedir"
+msgstr ""
+
+#: param/loadparm.c:980
+msgid "-valid"
+msgstr ""
+
+#: param/loadparm.c:982
+msgid "copy"
+msgstr ""
+
+#: param/loadparm.c:983
+msgid "include"
+msgstr ""
+
+#: param/loadparm.c:984
+msgid "exec"
+msgstr ""
+
+#: param/loadparm.c:985
+msgid "preexec"
+msgstr ""
+
+#: param/loadparm.c:987
+msgid "preexec close"
+msgstr ""
+
+#: param/loadparm.c:988
+msgid "postexec"
+msgstr ""
+
+#: param/loadparm.c:989
+msgid "root preexec"
+msgstr ""
+
+#: param/loadparm.c:990
+msgid "root preexec close"
+msgstr ""
+
+#: param/loadparm.c:991
+msgid "root postexec"
+msgstr ""
+
+#: param/loadparm.c:992
+msgid "available"
+msgstr ""
+
+#: param/loadparm.c:993
+msgid "volume"
+msgstr ""
+
+#: param/loadparm.c:994
+msgid "fstype"
+msgstr ""
+
+#: param/loadparm.c:995
+msgid "set directory"
+msgstr ""
+
+#: param/loadparm.c:996
+msgid "source environment"
+msgstr ""
+
+#: param/loadparm.c:997
+msgid "wide links"
+msgstr ""
+
+#: param/loadparm.c:998
+msgid "follow symlinks"
+msgstr ""
+
+#: param/loadparm.c:999
+msgid "dont descend"
+msgstr ""
+
+#: param/loadparm.c:1000
+msgid "magic script"
+msgstr ""
+
+#: param/loadparm.c:1001
+msgid "magic output"
+msgstr ""
+
+#: param/loadparm.c:1002
+msgid "delete readonly"
+msgstr ""
+
+#: param/loadparm.c:1003
+msgid "dos filemode"
+msgstr ""
+
+#: param/loadparm.c:1004
+msgid "dos filetimes"
+msgstr ""
+
+#: param/loadparm.c:1005
+msgid "dos filetime resolution"
+msgstr ""
+
+#: param/loadparm.c:1007
+msgid "fake directory create times"
+msgstr ""
+
+#: param/loadparm.c:1008
+msgid "panic action"
+msgstr ""
+
+#: param/loadparm.c:1009
+msgid "hide local users"
+msgstr ""
+
+#: param/loadparm.c:1012
+msgid "VFS options"
+msgstr ""
+
+#: param/loadparm.c:1014
+msgid "vfs object"
+msgstr ""
+
+#: param/loadparm.c:1015
+msgid "vfs options"
+msgstr ""
+
+#: param/loadparm.c:1018
+msgid "msdfs root"
+msgstr ""
+
+#: param/loadparm.c:1019
+msgid "host msdfs"
+msgstr ""
+
+#: param/loadparm.c:1021
+msgid "Winbind options"
+msgstr ""
+
+#: param/loadparm.c:1023
+msgid "winbind uid"
+msgstr ""
+
+#: param/loadparm.c:1024
+msgid "winbind gid"
+msgstr ""
+
+#: param/loadparm.c:1025
+msgid "template homedir"
+msgstr ""
+
+#: param/loadparm.c:1026
+msgid "template shell"
+msgstr ""
+
+#: param/loadparm.c:1027
+msgid "winbind separator"
+msgstr ""
+
+#: param/loadparm.c:1028
+msgid "winbind cache time"
+msgstr ""
+
+#: param/loadparm.c:1029
+msgid "winbind enum users"
+msgstr ""
+
+#: param/loadparm.c:1030
+msgid "winbind enum groups"
+msgstr ""
diff --git a/source3/po/i18n_swat.pot b/source3/po/i18n_swat.pot
new file mode 100644
index 0000000000..ad07acc744
--- /dev/null
+++ b/source3/po/i18n_swat.pot
@@ -0,0 +1,1561 @@
+# SOME DESCRIPTIVE TITLE.
+# Copyright (C) YEAR Free Software Foundation, Inc.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"POT-Creation-Date: 2001-06-09 13:08+0900\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: ENCODING\n"
+
+#: web/swat.c:120
+#, c-format
+msgid "ERROR: Can't open %s\n"
+msgstr ""
+
+#: web/swat.c:208
+msgid "Help"
+msgstr ""
+
+#: web/swat.c:215 web/swat.c:223 web/swat.c:231 web/swat.c:240 web/swat.c:249
+#: web/swat.c:255 web/swat.c:261 web/swat.c:271
+msgid "Set Default"
+msgstr ""
+
+#: web/swat.c:387
+#, c-format
+msgid "failed to open %s for writing\n"
+msgstr ""
+
+#: web/swat.c:399
+#, c-format
+msgid "Can't reload %s\n"
+msgstr ""
+
+#: web/swat.c:478
+#, c-format
+msgid "Logged in as <b>%s</b><p>\n"
+msgstr ""
+
+#: web/swat.c:481
+msgid "Home"
+msgstr ""
+
+#: web/swat.c:483
+msgid "Globals"
+msgstr ""
+
+#: web/swat.c:484
+msgid "Shares"
+msgstr ""
+
+#: web/swat.c:485
+msgid "Printers"
+msgstr ""
+
+#: web/swat.c:488
+msgid "Status"
+msgstr ""
+
+#: web/swat.c:489
+msgid "View Config"
+msgstr ""
+
+#: web/swat.c:491
+msgid "Password Management"
+msgstr ""
+
+#: web/swat.c:515
+msgid "Current Config"
+msgstr ""
+
+#: web/swat.c:519
+msgid "Normal View"
+msgstr ""
+
+#: web/swat.c:521
+msgid "Full View"
+msgstr ""
+
+#: web/swat.c:537
+msgid "Global Variables"
+msgstr ""
+
+#: web/swat.c:551 web/swat.c:651 web/swat.c:998
+msgid "Commit Changes"
+msgstr ""
+
+#: web/swat.c:555 web/swat.c:654 web/swat.c:1000
+msgid "Reset Values"
+msgstr ""
+
+#: web/swat.c:557 web/swat.c:656 web/swat.c:1002
+msgid "Advanced View"
+msgstr ""
+
+#: web/swat.c:559 web/swat.c:658 web/swat.c:1004
+msgid "Basic View"
+msgstr ""
+
+#: web/swat.c:588
+msgid "Share Parameters"
+msgstr ""
+
+#: web/swat.c:622
+msgid "Choose Share"
+msgstr ""
+
+#: web/swat.c:636
+msgid "Delete Share"
+msgstr ""
+
+#: web/swat.c:643
+msgid "Create Share"
+msgstr ""
+
+#: web/swat.c:688
+msgid "password change in demo mode rejected\n"
+msgstr ""
+
+#: web/swat.c:701
+msgid "Can't setup password database vectors.\n"
+msgstr ""
+
+#: web/swat.c:727
+msgid " Must specify \"User Name\" \n"
+msgstr ""
+
+#: web/swat.c:743
+msgid " Must specify \"Old Password\" \n"
+msgstr ""
+
+#: web/swat.c:749
+msgid " Must specify \"Remote Machine\" \n"
+msgstr ""
+
+#: web/swat.c:756
+msgid " Must specify \"New, and Re-typed Passwords\" \n"
+msgstr ""
+
+#: web/swat.c:762
+msgid " Re-typed password didn't match new password\n"
+msgstr ""
+
+#: web/swat.c:792
+#, c-format
+msgid " The passwd for '%s' has been changed. \n"
+msgstr ""
+
+#: web/swat.c:794
+#, c-format
+msgid " The passwd for '%s' has NOT been changed. \n"
+msgstr ""
+
+#: web/swat.c:818
+msgid "Server Password Management"
+msgstr ""
+
+#.
+#. * Create all the dialog boxes for data collection
+#.
+#: web/swat.c:827 web/swat.c:874
+msgid " User Name : "
+msgstr ""
+
+#: web/swat.c:830 web/swat.c:876
+msgid " Old Password : "
+msgstr ""
+
+#: web/swat.c:833 web/swat.c:878
+msgid " New Password : "
+msgstr ""
+
+#: web/swat.c:835 web/swat.c:880
+msgid " Re-type New Password : "
+msgstr ""
+
+#: web/swat.c:843 web/swat.c:891
+msgid "Change Password"
+msgstr ""
+
+#: web/swat.c:846
+msgid "Add New User"
+msgstr ""
+
+#: web/swat.c:848
+msgid "Delete User"
+msgstr ""
+
+#: web/swat.c:850
+msgid "Disable User"
+msgstr ""
+
+#: web/swat.c:852
+msgid "Enable User"
+msgstr ""
+
+#: web/swat.c:865
+msgid "Client/Server Password Management"
+msgstr ""
+
+#: web/swat.c:882
+msgid " Remote Machine : "
+msgstr ""
+
+#: web/swat.c:920
+msgid "Printer Parameters"
+msgstr ""
+
+#: web/swat.c:922
+msgid "Important Note:"
+msgstr ""
+
+#: web/swat.c:923
+msgid "Printer names marked with [*] in the Choose Printer drop-down box "
+msgstr ""
+
+#: web/swat.c:924
+msgid "are autoloaded printers from "
+msgstr ""
+
+#: web/swat.c:925
+msgid "Printcap Name"
+msgstr ""
+
+#: web/swat.c:926
+msgid "Attempting to delete these printers from SWAT will have no effect.\n"
+msgstr ""
+
+#: web/swat.c:964
+msgid "Choose Printer"
+msgstr ""
+
+#: web/swat.c:983
+msgid "Delete Printer"
+msgstr ""
+
+#: web/swat.c:990
+msgid "Create Printer"
+msgstr ""
+
+#: web/statuspage.c:38
+msgid "DENY_NONE"
+msgstr ""
+
+#: web/statuspage.c:39
+msgid "DENY_ALL "
+msgstr ""
+
+#: web/statuspage.c:40
+msgid "DENY_DOS "
+msgstr ""
+
+#: web/statuspage.c:41
+msgid "DENY_READ "
+msgstr ""
+
+#: web/statuspage.c:42
+msgid "DENY_WRITE "
+msgstr ""
+
+#: web/statuspage.c:48
+msgid "RDONLY "
+msgstr ""
+
+#: web/statuspage.c:49
+msgid "WRONLY "
+msgstr ""
+
+#: web/statuspage.c:50
+msgid "RDWR "
+msgstr ""
+
+#: web/statuspage.c:58
+msgid "EXCLUSIVE+BATCH "
+msgstr ""
+
+#: web/statuspage.c:60
+msgid "EXCLUSIVE "
+msgstr ""
+
+#: web/statuspage.c:62
+msgid "BATCH "
+msgstr ""
+
+#: web/statuspage.c:64
+msgid "LEVEL_II "
+msgstr ""
+
+#: web/statuspage.c:66
+msgid "NONE "
+msgstr ""
+
+#: web/statuspage.c:146
+msgid "Server Status"
+msgstr ""
+
+#: web/statuspage.c:151
+msgid "Auto Refresh"
+msgstr ""
+
+#: web/statuspage.c:152 web/statuspage.c:157
+msgid "Refresh Interval: "
+msgstr ""
+
+#: web/statuspage.c:156
+msgid "Stop Refreshing"
+msgstr ""
+
+#: web/statuspage.c:168
+msgid "You need to have status=yes in your smb config file\n"
+msgstr ""
+
+#: web/statuspage.c:174
+msgid "version:"
+msgstr ""
+
+#: web/statuspage.c:177
+msgid "smbd:"
+msgstr ""
+
+#: web/statuspage.c:177 web/statuspage.c:189
+msgid "running"
+msgstr ""
+
+#: web/statuspage.c:177 web/statuspage.c:189
+msgid "not running"
+msgstr ""
+
+#: web/statuspage.c:180
+msgid "Stop smbd"
+msgstr ""
+
+#: web/statuspage.c:182
+msgid "Start smbd"
+msgstr ""
+
+#: web/statuspage.c:184
+msgid "Restart smbd"
+msgstr ""
+
+#: web/statuspage.c:189
+msgid "nmbd:"
+msgstr ""
+
+#: web/statuspage.c:192
+msgid "Stop nmbd"
+msgstr ""
+
+#: web/statuspage.c:194
+msgid "Start nmbd"
+msgstr ""
+
+#: web/statuspage.c:196
+msgid "Restart nmbd"
+msgstr ""
+
+#: web/statuspage.c:203
+msgid "Active Connections"
+msgstr ""
+
+#: web/statuspage.c:205 web/statuspage.c:236 web/statuspage.c:256
+msgid "PID"
+msgstr ""
+
+#: web/statuspage.c:205 web/statuspage.c:236
+msgid "Client"
+msgstr ""
+
+#: web/statuspage.c:205
+msgid "IP address"
+msgstr ""
+
+#: web/statuspage.c:205 web/statuspage.c:236 web/statuspage.c:256
+msgid "Date"
+msgstr ""
+
+#: web/statuspage.c:207
+msgid "Kill"
+msgstr ""
+
+#: web/statuspage.c:233
+msgid "Active Shares"
+msgstr ""
+
+#: web/statuspage.c:236
+msgid "Share"
+msgstr ""
+
+#: web/statuspage.c:236
+msgid "User"
+msgstr ""
+
+#: web/statuspage.c:236
+msgid "Group"
+msgstr ""
+
+#: web/statuspage.c:254
+msgid "Open Files"
+msgstr ""
+
+#: web/statuspage.c:256
+msgid "Sharing"
+msgstr ""
+
+#: web/statuspage.c:256
+msgid "R/W"
+msgstr ""
+
+#: web/statuspage.c:256
+msgid "Oplock"
+msgstr ""
+
+#: web/statuspage.c:256
+msgid "File"
+msgstr ""
+
+#: param/loadparm.c:571
+msgid "Base Options"
+msgstr ""
+
+#: param/loadparm.c:572
+msgid "coding system"
+msgstr ""
+
+#: param/loadparm.c:573
+msgid "client code page"
+msgstr ""
+
+#: param/loadparm.c:574
+msgid "comment"
+msgstr ""
+
+#: param/loadparm.c:575
+msgid "path"
+msgstr ""
+
+#: param/loadparm.c:576
+msgid "directory"
+msgstr ""
+
+#: param/loadparm.c:577
+msgid "workgroup"
+msgstr ""
+
+#: param/loadparm.c:578
+msgid "netbios name"
+msgstr ""
+
+#: param/loadparm.c:579
+msgid "netbios aliases"
+msgstr ""
+
+#: param/loadparm.c:580
+msgid "netbios scope"
+msgstr ""
+
+#: param/loadparm.c:581
+msgid "server string"
+msgstr ""
+
+#: param/loadparm.c:582
+msgid "interfaces"
+msgstr ""
+
+#: param/loadparm.c:583
+msgid "bind interfaces only"
+msgstr ""
+
+#: param/loadparm.c:585
+msgid "Security Options"
+msgstr ""
+
+#: param/loadparm.c:586
+msgid "security"
+msgstr ""
+
+#: param/loadparm.c:587
+msgid "encrypt passwords"
+msgstr ""
+
+#: param/loadparm.c:588
+msgid "update encrypted"
+msgstr ""
+
+#: param/loadparm.c:589
+msgid "allow trusted domains"
+msgstr ""
+
+#: param/loadparm.c:590
+msgid "alternate permissions"
+msgstr ""
+
+#: param/loadparm.c:591
+msgid "hosts equiv"
+msgstr ""
+
+#: param/loadparm.c:592
+msgid "min password length"
+msgstr ""
+
+#: param/loadparm.c:593
+msgid "min passwd length"
+msgstr ""
+
+#: param/loadparm.c:594
+msgid "map to guest"
+msgstr ""
+
+#: param/loadparm.c:595
+msgid "null passwords"
+msgstr ""
+
+#: param/loadparm.c:596
+msgid "password server"
+msgstr ""
+
+#: param/loadparm.c:597
+msgid "smb passwd file"
+msgstr ""
+
+#: param/loadparm.c:598
+msgid "root directory"
+msgstr ""
+
+#: param/loadparm.c:599
+msgid "root dir"
+msgstr ""
+
+#: param/loadparm.c:600
+msgid "root"
+msgstr ""
+
+#: param/loadparm.c:601
+msgid "passwd program"
+msgstr ""
+
+#: param/loadparm.c:602
+msgid "passwd chat"
+msgstr ""
+
+#: param/loadparm.c:603
+msgid "passwd chat debug"
+msgstr ""
+
+#: param/loadparm.c:604
+msgid "username map"
+msgstr ""
+
+#: param/loadparm.c:605
+msgid "password level"
+msgstr ""
+
+#: param/loadparm.c:606
+msgid "username level"
+msgstr ""
+
+#: param/loadparm.c:607
+msgid "unix password sync"
+msgstr ""
+
+#: param/loadparm.c:608
+msgid "restrict anonymous"
+msgstr ""
+
+#: param/loadparm.c:609
+msgid "revalidate"
+msgstr ""
+
+#: param/loadparm.c:610
+msgid "use rhosts"
+msgstr ""
+
+#: param/loadparm.c:611
+msgid "username"
+msgstr ""
+
+#: param/loadparm.c:612
+msgid "user"
+msgstr ""
+
+#: param/loadparm.c:613
+msgid "users"
+msgstr ""
+
+#: param/loadparm.c:614
+msgid "guest account"
+msgstr ""
+
+#: param/loadparm.c:615
+msgid "invalid users"
+msgstr ""
+
+#: param/loadparm.c:616
+msgid "valid users"
+msgstr ""
+
+#: param/loadparm.c:617
+msgid "admin users"
+msgstr ""
+
+#: param/loadparm.c:618
+msgid "read list"
+msgstr ""
+
+#: param/loadparm.c:619
+msgid "write list"
+msgstr ""
+
+#: param/loadparm.c:620
+msgid "force user"
+msgstr ""
+
+#: param/loadparm.c:621
+msgid "force group"
+msgstr ""
+
+#: param/loadparm.c:622
+msgid "group"
+msgstr ""
+
+#: param/loadparm.c:623
+msgid "writeable"
+msgstr ""
+
+#: param/loadparm.c:624
+msgid "write ok"
+msgstr ""
+
+#: param/loadparm.c:625
+msgid "writable"
+msgstr ""
+
+#: param/loadparm.c:626
+msgid "read only"
+msgstr ""
+
+#: param/loadparm.c:627
+msgid "create mask"
+msgstr ""
+
+#: param/loadparm.c:628
+msgid "create mode"
+msgstr ""
+
+#: param/loadparm.c:629
+msgid "force create mode"
+msgstr ""
+
+#: param/loadparm.c:630
+msgid "security mask"
+msgstr ""
+
+#: param/loadparm.c:631
+msgid "force security mode"
+msgstr ""
+
+#: param/loadparm.c:632
+msgid "directory mask"
+msgstr ""
+
+#: param/loadparm.c:633
+msgid "directory mode"
+msgstr ""
+
+#: param/loadparm.c:634
+msgid "force directory mode"
+msgstr ""
+
+#: param/loadparm.c:635
+msgid "directory security mask"
+msgstr ""
+
+#: param/loadparm.c:636
+msgid "force directory security mode"
+msgstr ""
+
+#: param/loadparm.c:637
+msgid "inherit permissions"
+msgstr ""
+
+#: param/loadparm.c:638
+msgid "guest only"
+msgstr ""
+
+#: param/loadparm.c:639
+msgid "only guest"
+msgstr ""
+
+#: param/loadparm.c:640
+msgid "guest ok"
+msgstr ""
+
+#: param/loadparm.c:641
+msgid "public"
+msgstr ""
+
+#: param/loadparm.c:642
+msgid "only user"
+msgstr ""
+
+#: param/loadparm.c:643
+msgid "hosts allow"
+msgstr ""
+
+#: param/loadparm.c:644
+msgid "allow hosts"
+msgstr ""
+
+#: param/loadparm.c:645
+msgid "hosts deny"
+msgstr ""
+
+#: param/loadparm.c:646
+msgid "deny hosts"
+msgstr ""
+
+#: param/loadparm.c:649
+msgid "Secure Socket Layer Options"
+msgstr ""
+
+#: param/loadparm.c:650
+msgid "ssl"
+msgstr ""
+
+#: param/loadparm.c:651
+msgid "ssl hosts"
+msgstr ""
+
+#: param/loadparm.c:652
+msgid "ssl hosts resign"
+msgstr ""
+
+#: param/loadparm.c:653
+msgid "ssl CA certDir"
+msgstr ""
+
+#: param/loadparm.c:654
+msgid "ssl CA certFile"
+msgstr ""
+
+#: param/loadparm.c:655
+msgid "ssl server cert"
+msgstr ""
+
+#: param/loadparm.c:656
+msgid "ssl server key"
+msgstr ""
+
+#: param/loadparm.c:657
+msgid "ssl client cert"
+msgstr ""
+
+#: param/loadparm.c:658
+msgid "ssl client key"
+msgstr ""
+
+#: param/loadparm.c:659
+msgid "ssl require clientcert"
+msgstr ""
+
+#: param/loadparm.c:660
+msgid "ssl require servercert"
+msgstr ""
+
+#: param/loadparm.c:661
+msgid "ssl ciphers"
+msgstr ""
+
+#: param/loadparm.c:662
+msgid "ssl version"
+msgstr ""
+
+#: param/loadparm.c:663
+msgid "ssl compatibility"
+msgstr ""
+
+#: param/loadparm.c:666
+msgid "Logging Options"
+msgstr ""
+
+#: param/loadparm.c:667
+msgid "debug level"
+msgstr ""
+
+#: param/loadparm.c:668
+msgid "log level"
+msgstr ""
+
+#: param/loadparm.c:669
+msgid "syslog"
+msgstr ""
+
+#: param/loadparm.c:670
+msgid "syslog only"
+msgstr ""
+
+#: param/loadparm.c:671
+msgid "log file"
+msgstr ""
+
+#: param/loadparm.c:672
+msgid "max log size"
+msgstr ""
+
+#: param/loadparm.c:673
+msgid "debug timestamp"
+msgstr ""
+
+#: param/loadparm.c:674
+msgid "timestamp logs"
+msgstr ""
+
+#: param/loadparm.c:675
+msgid "debug hires timestamp"
+msgstr ""
+
+#: param/loadparm.c:676
+msgid "debug pid"
+msgstr ""
+
+#: param/loadparm.c:677
+msgid "debug uid"
+msgstr ""
+
+#: param/loadparm.c:678
+msgid "status"
+msgstr ""
+
+#: param/loadparm.c:680
+msgid "Protocol Options"
+msgstr ""
+
+#: param/loadparm.c:681
+msgid "protocol"
+msgstr ""
+
+#: param/loadparm.c:682
+msgid "read bmpx"
+msgstr ""
+
+#: param/loadparm.c:683
+msgid "read raw"
+msgstr ""
+
+#: param/loadparm.c:684
+msgid "write raw"
+msgstr ""
+
+#: param/loadparm.c:685
+msgid "nt smb support"
+msgstr ""
+
+#: param/loadparm.c:686
+msgid "nt pipe support"
+msgstr ""
+
+#: param/loadparm.c:687
+msgid "nt acl support"
+msgstr ""
+
+#: param/loadparm.c:688
+msgid "announce version"
+msgstr ""
+
+#: param/loadparm.c:689
+msgid "announce as"
+msgstr ""
+
+#: param/loadparm.c:690
+msgid "max mux"
+msgstr ""
+
+#: param/loadparm.c:691
+msgid "max xmit"
+msgstr ""
+
+#: param/loadparm.c:692
+msgid "name resolve order"
+msgstr ""
+
+#: param/loadparm.c:693
+msgid "packet size"
+msgstr ""
+
+#: param/loadparm.c:694
+msgid "max packet"
+msgstr ""
+
+#: param/loadparm.c:695
+msgid "max ttl"
+msgstr ""
+
+#: param/loadparm.c:696
+msgid "max wins ttl"
+msgstr ""
+
+#: param/loadparm.c:697
+msgid "min wins ttl"
+msgstr ""
+
+#: param/loadparm.c:698
+msgid "time server"
+msgstr ""
+
+#: param/loadparm.c:700
+msgid "Tuning Options"
+msgstr ""
+
+#: param/loadparm.c:701
+msgid "change notify timeout"
+msgstr ""
+
+#: param/loadparm.c:702
+msgid "deadtime"
+msgstr ""
+
+#: param/loadparm.c:703
+msgid "getwd cache"
+msgstr ""
+
+#: param/loadparm.c:704
+msgid "keepalive"
+msgstr ""
+
+#: param/loadparm.c:705
+msgid "lpq cache time"
+msgstr ""
+
+#: param/loadparm.c:706
+msgid "max connections"
+msgstr ""
+
+#: param/loadparm.c:707
+msgid "max disk size"
+msgstr ""
+
+#: param/loadparm.c:708
+msgid "max open files"
+msgstr ""
+
+#: param/loadparm.c:709
+msgid "min print space"
+msgstr ""
+
+#: param/loadparm.c:710
+msgid "read prediction"
+msgstr ""
+
+#: param/loadparm.c:711
+msgid "read size"
+msgstr ""
+
+#: param/loadparm.c:712
+msgid "shared mem size"
+msgstr ""
+
+#: param/loadparm.c:713
+msgid "socket options"
+msgstr ""
+
+#: param/loadparm.c:714
+msgid "stat cache size"
+msgstr ""
+
+#: param/loadparm.c:715
+msgid "strict sync"
+msgstr ""
+
+#: param/loadparm.c:716
+msgid "sync always"
+msgstr ""
+
+#: param/loadparm.c:717
+msgid "write cache size"
+msgstr ""
+
+#: param/loadparm.c:719
+msgid "Printing Options"
+msgstr ""
+
+#: param/loadparm.c:720
+msgid "load printers"
+msgstr ""
+
+#: param/loadparm.c:721
+msgid "printcap name"
+msgstr ""
+
+#: param/loadparm.c:722
+msgid "printcap"
+msgstr ""
+
+#: param/loadparm.c:723
+msgid "printer driver file"
+msgstr ""
+
+#: param/loadparm.c:724
+msgid "printable"
+msgstr ""
+
+#: param/loadparm.c:725
+msgid "print ok"
+msgstr ""
+
+#: param/loadparm.c:726
+msgid "postscript"
+msgstr ""
+
+#: param/loadparm.c:727
+msgid "printing"
+msgstr ""
+
+#: param/loadparm.c:728
+msgid "print command"
+msgstr ""
+
+#: param/loadparm.c:729
+msgid "lpq command"
+msgstr ""
+
+#: param/loadparm.c:730
+msgid "lprm command"
+msgstr ""
+
+#: param/loadparm.c:731
+msgid "lppause command"
+msgstr ""
+
+#: param/loadparm.c:732
+msgid "lpresume command"
+msgstr ""
+
+#: param/loadparm.c:733
+msgid "queuepause command"
+msgstr ""
+
+#: param/loadparm.c:734
+msgid "queueresume command"
+msgstr ""
+
+#: param/loadparm.c:736
+msgid "printer"
+msgstr ""
+
+#: param/loadparm.c:737
+msgid "printer name"
+msgstr ""
+
+#: param/loadparm.c:738
+msgid "printer driver"
+msgstr ""
+
+#: param/loadparm.c:739
+msgid "printer driver location"
+msgstr ""
+
+#: param/loadparm.c:742
+msgid "Filename Handling"
+msgstr ""
+
+#: param/loadparm.c:743
+msgid "strip dot"
+msgstr ""
+
+#: param/loadparm.c:744
+msgid "character set"
+msgstr ""
+
+#: param/loadparm.c:745
+msgid "mangled stack"
+msgstr ""
+
+#: param/loadparm.c:746
+msgid "default case"
+msgstr ""
+
+#: param/loadparm.c:747
+msgid "case sensitive"
+msgstr ""
+
+#: param/loadparm.c:748
+msgid "casesignames"
+msgstr ""
+
+#: param/loadparm.c:749
+msgid "preserve case"
+msgstr ""
+
+#: param/loadparm.c:750
+msgid "short preserve case"
+msgstr ""
+
+#: param/loadparm.c:751
+msgid "mangle case"
+msgstr ""
+
+#: param/loadparm.c:752
+msgid "mangling char"
+msgstr ""
+
+#: param/loadparm.c:753
+msgid "hide dot files"
+msgstr ""
+
+#: param/loadparm.c:754
+msgid "delete veto files"
+msgstr ""
+
+#: param/loadparm.c:755
+msgid "veto files"
+msgstr ""
+
+#: param/loadparm.c:756
+msgid "hide files"
+msgstr ""
+
+#: param/loadparm.c:757
+msgid "veto oplock files"
+msgstr ""
+
+#: param/loadparm.c:758
+msgid "map system"
+msgstr ""
+
+#: param/loadparm.c:759
+msgid "map hidden"
+msgstr ""
+
+#: param/loadparm.c:760
+msgid "map archive"
+msgstr ""
+
+#: param/loadparm.c:761
+msgid "mangled names"
+msgstr ""
+
+#: param/loadparm.c:762
+msgid "mangled map"
+msgstr ""
+
+#: param/loadparm.c:763
+msgid "stat cache"
+msgstr ""
+
+#: param/loadparm.c:765
+msgid "Domain Options"
+msgstr ""
+
+#: param/loadparm.c:766
+msgid "domain groups"
+msgstr ""
+
+#: param/loadparm.c:767
+msgid "domain admin group"
+msgstr ""
+
+#: param/loadparm.c:768
+msgid "domain guest group"
+msgstr ""
+
+#: param/loadparm.c:769
+msgid "domain admin users"
+msgstr ""
+
+#: param/loadparm.c:770
+msgid "domain guest users"
+msgstr ""
+
+#: param/loadparm.c:772
+msgid "groupname map"
+msgstr ""
+
+#: param/loadparm.c:774
+msgid "machine password timeout"
+msgstr ""
+
+#: param/loadparm.c:776
+msgid "Logon Options"
+msgstr ""
+
+#: param/loadparm.c:777
+msgid "add user script"
+msgstr ""
+
+#: param/loadparm.c:778
+msgid "delete user script"
+msgstr ""
+
+#: param/loadparm.c:779
+msgid "logon script"
+msgstr ""
+
+#: param/loadparm.c:780
+msgid "logon path"
+msgstr ""
+
+#: param/loadparm.c:781
+msgid "logon drive"
+msgstr ""
+
+#: param/loadparm.c:782
+msgid "logon home"
+msgstr ""
+
+#: param/loadparm.c:783
+msgid "domain logons"
+msgstr ""
+
+#: param/loadparm.c:785
+msgid "Browse Options"
+msgstr ""
+
+#: param/loadparm.c:786
+msgid "os level"
+msgstr ""
+
+#: param/loadparm.c:787
+msgid "lm announce"
+msgstr ""
+
+#: param/loadparm.c:788
+msgid "lm interval"
+msgstr ""
+
+#: param/loadparm.c:789
+msgid "preferred master"
+msgstr ""
+
+#: param/loadparm.c:790
+msgid "prefered master"
+msgstr ""
+
+#: param/loadparm.c:791
+msgid "local master"
+msgstr ""
+
+#: param/loadparm.c:792
+msgid "domain master"
+msgstr ""
+
+#: param/loadparm.c:793
+msgid "browse list"
+msgstr ""
+
+#: param/loadparm.c:794
+msgid "browseable"
+msgstr ""
+
+#: param/loadparm.c:795
+msgid "browsable"
+msgstr ""
+
+#: param/loadparm.c:797
+msgid "WINS Options"
+msgstr ""
+
+#: param/loadparm.c:798
+msgid "dns proxy"
+msgstr ""
+
+#: param/loadparm.c:799
+msgid "wins proxy"
+msgstr ""
+
+#: param/loadparm.c:800
+msgid "wins server"
+msgstr ""
+
+#: param/loadparm.c:801
+msgid "wins support"
+msgstr ""
+
+#: param/loadparm.c:802
+msgid "wins hook"
+msgstr ""
+
+#: param/loadparm.c:804
+msgid "Locking Options"
+msgstr ""
+
+#: param/loadparm.c:805
+msgid "blocking locks"
+msgstr ""
+
+#: param/loadparm.c:806
+msgid "fake oplocks"
+msgstr ""
+
+#: param/loadparm.c:807
+msgid "kernel oplocks"
+msgstr ""
+
+#: param/loadparm.c:808
+msgid "locking"
+msgstr ""
+
+#: param/loadparm.c:810
+msgid "utmp"
+msgstr ""
+
+#: param/loadparm.c:812
+msgid "ole locking compatibility"
+msgstr ""
+
+#: param/loadparm.c:813
+msgid "oplocks"
+msgstr ""
+
+#: param/loadparm.c:814
+msgid "level2 oplocks"
+msgstr ""
+
+#: param/loadparm.c:815
+msgid "oplock break wait time"
+msgstr ""
+
+#: param/loadparm.c:816
+msgid "oplock contention limit"
+msgstr ""
+
+#: param/loadparm.c:817
+msgid "strict locking"
+msgstr ""
+
+#: param/loadparm.c:818
+msgid "share modes"
+msgstr ""
+
+#: param/loadparm.c:821
+msgid "Ldap Options"
+msgstr ""
+
+#: param/loadparm.c:822
+msgid "ldap server"
+msgstr ""
+
+#: param/loadparm.c:823
+msgid "ldap port"
+msgstr ""
+
+#: param/loadparm.c:824
+msgid "ldap suffix"
+msgstr ""
+
+#: param/loadparm.c:825
+msgid "ldap filter"
+msgstr ""
+
+#: param/loadparm.c:826
+msgid "ldap root"
+msgstr ""
+
+#: param/loadparm.c:827
+msgid "ldap root passwd"
+msgstr ""
+
+#: param/loadparm.c:831
+msgid "Miscellaneous Options"
+msgstr ""
+
+#: param/loadparm.c:832
+msgid "smbrun"
+msgstr ""
+
+#: param/loadparm.c:833
+msgid "config file"
+msgstr ""
+
+#: param/loadparm.c:834
+msgid "auto services"
+msgstr ""
+
+#: param/loadparm.c:835
+msgid "preload"
+msgstr ""
+
+#: param/loadparm.c:836
+msgid "lock directory"
+msgstr ""
+
+#: param/loadparm.c:837
+msgid "lock dir"
+msgstr ""
+
+#: param/loadparm.c:839
+msgid "utmp directory"
+msgstr ""
+
+#: param/loadparm.c:840
+msgid "utmp dir"
+msgstr ""
+
+#: param/loadparm.c:841
+msgid "wtmp directory"
+msgstr ""
+
+#: param/loadparm.c:842
+msgid "wtmp dir"
+msgstr ""
+
+#: param/loadparm.c:843
+msgid "utmp hostname"
+msgstr ""
+
+#: param/loadparm.c:844
+msgid "utmp consolidate"
+msgstr ""
+
+#: param/loadparm.c:846
+msgid "default service"
+msgstr ""
+
+#: param/loadparm.c:847
+msgid "default"
+msgstr ""
+
+#: param/loadparm.c:848
+msgid "message command"
+msgstr ""
+
+#: param/loadparm.c:849
+msgid "dfree command"
+msgstr ""
+
+#: param/loadparm.c:850
+msgid "valid chars"
+msgstr ""
+
+#: param/loadparm.c:851
+msgid "remote announce"
+msgstr ""
+
+#: param/loadparm.c:852
+msgid "remote browse sync"
+msgstr ""
+
+#: param/loadparm.c:853
+msgid "socket address"
+msgstr ""
+
+#: param/loadparm.c:854
+msgid "homedir map"
+msgstr ""
+
+#: param/loadparm.c:855
+msgid "time offset"
+msgstr ""
+
+#: param/loadparm.c:856
+msgid "unix realname"
+msgstr ""
+
+#: param/loadparm.c:857
+msgid "NIS homedir"
+msgstr ""
+
+#: param/loadparm.c:858
+msgid "-valid"
+msgstr ""
+
+#: param/loadparm.c:859
+msgid "copy"
+msgstr ""
+
+#: param/loadparm.c:860
+msgid "include"
+msgstr ""
+
+#: param/loadparm.c:861
+msgid "preexec"
+msgstr ""
+
+#: param/loadparm.c:862
+msgid "exec"
+msgstr ""
+
+#: param/loadparm.c:863
+msgid "preexec close"
+msgstr ""
+
+#: param/loadparm.c:864
+msgid "postexec"
+msgstr ""
+
+#: param/loadparm.c:865
+msgid "root preexec"
+msgstr ""
+
+#: param/loadparm.c:866
+msgid "root preexec close"
+msgstr ""
+
+#: param/loadparm.c:867
+msgid "root postexec"
+msgstr ""
+
+#: param/loadparm.c:868
+msgid "available"
+msgstr ""
+
+#: param/loadparm.c:869
+msgid "volume"
+msgstr ""
+
+#: param/loadparm.c:870
+msgid "fstype"
+msgstr ""
+
+#: param/loadparm.c:871
+msgid "set directory"
+msgstr ""
+
+#: param/loadparm.c:872
+msgid "source environment"
+msgstr ""
+
+#: param/loadparm.c:873
+msgid "wide links"
+msgstr ""
+
+#: param/loadparm.c:874
+msgid "follow symlinks"
+msgstr ""
+
+#: param/loadparm.c:875
+msgid "dont descend"
+msgstr ""
+
+#: param/loadparm.c:876
+msgid "magic script"
+msgstr ""
+
+#: param/loadparm.c:877
+msgid "magic output"
+msgstr ""
+
+#: param/loadparm.c:878
+msgid "delete readonly"
+msgstr ""
+
+#: param/loadparm.c:879
+msgid "dos filetimes"
+msgstr ""
+
+#: param/loadparm.c:880
+msgid "dos filetime resolution"
+msgstr ""
+
+#: param/loadparm.c:882
+msgid "fake directory create times"
+msgstr ""
+
+#: param/loadparm.c:883
+msgid "panic action"
+msgstr ""
diff --git a/source3/po/ja.gmo b/source3/po/ja.gmo
new file mode 100644
index 0000000000..6d5579883f
--- /dev/null
+++ b/source3/po/ja.gmo
Binary files differ
diff --git a/source3/po/ja.po b/source3/po/ja.po
new file mode 100644
index 0000000000..17a528a917
--- /dev/null
+++ b/source3/po/ja.po
@@ -0,0 +1,1808 @@
+# Japanese messages for international release of SWAT.
+# Copyright (C) 2001 Free Software Foundation, Inc.
+# Ryo Kawahara <rkawa@lbe.co.jp>, 2000.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: i18n-swatE VERSION\n"
+"POT-Creation-Date: 2001-09-20 20:29+0900\n"
+"PO-Revision-Date: 2000-04-03 17:55+09:00\n"
+"Last-Translator: TAKAHASHI Motonobu <monyo@samba.gr.jp>\n"
+"Language-Team: Samba Team <samba-technical@samba.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=Shift_JIS\n"
+"Content-Transfer-Encoding: \n"
+
+#: web/swat.c:120
+#, c-format
+msgid "ERROR: Can't open %s\n"
+msgstr "%s ‚ğƒI[ƒvƒ“‚Å‚«‚Ü‚¹‚ñ\n"
+
+#.
+#. str = stripspace(parm->label);
+#. strlower (str); //monyo
+#. d_printf("<tr><td><A HREF=\"/swat/help/smb.conf.5.html#%s\" target=\"docs\">%s</A>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; %s</td><td>",
+#. str, _("Help"), parm->label);
+#.
+#: web/swat.c:211
+msgid "Help"
+msgstr "à–¾"
+
+#: web/swat.c:217 web/swat.c:231 web/swat.c:246 web/swat.c:254 web/swat.c:263
+#: web/swat.c:272 web/swat.c:278 web/swat.c:284 web/swat.c:297
+msgid "Set Default"
+msgstr "Šù’è’l‚É–ß‚·"
+
+#: web/swat.c:502
+#, c-format
+msgid "Logged in as <b>%s</b><p>\n"
+msgstr "<b>%s</b>‚Æ‚µ‚ăƒOƒCƒ“<p>\n"
+
+#: web/swat.c:505
+msgid "Home"
+msgstr "ƒz[ƒ€"
+
+#: web/swat.c:507
+msgid "Globals"
+msgstr "‘S‘Ìİ’è"
+
+#: web/swat.c:508
+msgid "Shares"
+msgstr "‹¤—Lİ’è"
+
+#: web/swat.c:509
+msgid "Printers"
+msgstr "ƒvƒŠƒ“ƒ^İ’è"
+
+#: web/swat.c:512
+msgid "Status"
+msgstr "“®ìó‹µ"
+
+#: web/swat.c:513
+msgid "View Config"
+msgstr "İ’è•\\¦"
+
+#: web/swat.c:515
+msgid "Password Management"
+msgstr "ƒpƒXƒ[ƒhŠÇ—Eƒ†[ƒUŠÇ—"
+
+#: web/swat.c:539
+msgid "Current Config"
+msgstr "Œ»İ‚Ìİ’è"
+
+#: web/swat.c:543
+msgid "Normal View"
+msgstr "•W€•\\¦"
+
+#: web/swat.c:545
+msgid "Full View"
+msgstr "Š®‘S•\\¦"
+
+#: web/swat.c:561
+msgid "Global Variables"
+msgstr "‘S‘Ìİ’è"
+
+#: web/swat.c:575 web/swat.c:671 web/swat.c:1014
+msgid "Commit Changes"
+msgstr "İ’è•ÏX"
+
+#: web/swat.c:579 web/swat.c:674 web/swat.c:1016
+msgid "Reset Values"
+msgstr "ƒŠƒZƒbƒg"
+
+#: web/swat.c:581 web/swat.c:676 web/swat.c:1018
+msgid "Advanced View"
+msgstr "Úו\\¦"
+
+#: web/swat.c:583 web/swat.c:678 web/swat.c:1020
+msgid "Basic View"
+msgstr "•W€•\\¦"
+
+#: web/swat.c:613
+msgid "Share Parameters"
+msgstr "‹¤—Lİ’è"
+
+#: web/swat.c:642
+msgid "Choose Share"
+msgstr "‹¤—L‘I‘ğ"
+
+#: web/swat.c:656
+msgid "Delete Share"
+msgstr "‹¤—Líœ"
+
+#: web/swat.c:663
+msgid "Create Share"
+msgstr "V‹K‹¤—Lì¬"
+
+#: web/swat.c:708
+msgid "password change in demo mode rejected\n"
+msgstr "ƒfƒ‚Eƒ‚[ƒh‚ł̃pƒXƒ[ƒh•ÏX‚Í‚Å‚«‚Ü‚¹‚ñ\n"
+
+#: web/swat.c:747
+msgid " Must specify \"User Name\" \n"
+msgstr "uƒ†[ƒU–¼v‚ğ“ü—Í‚­‚¾‚³‚¢\n"
+
+#: web/swat.c:763
+msgid " Must specify \"Old Password\" \n"
+msgstr "u‹ŒƒpƒXƒ[ƒhv‚ğ“ü—Í‚µ‚Ä‚­‚¾‚³‚¢\n"
+
+#: web/swat.c:769
+msgid " Must specify \"Remote Machine\" \n"
+msgstr "uƒŠƒ‚[ƒg ƒ}ƒVƒ“v‚ğ“ü—Í‚µ‚Ä‚­‚¾‚³‚¢\n"
+
+#: web/swat.c:776
+msgid " Must specify \"New, and Re-typed Passwords\" \n"
+msgstr "uVƒpƒXƒ[ƒhv‚ğ“ü—Í‚µAÄ“ü—Í‚à‚µ‚Ä‚­‚¾‚³‚¢\n"
+
+#: web/swat.c:782
+msgid " Re-typed password didn't match new password\n"
+msgstr "VƒpƒXƒ[ƒh‚ÌÄ“ü—Í‚ªŠÔˆá‚Á‚Ä‚¢‚Ü‚·\n"
+
+#: web/swat.c:812
+#, c-format
+msgid " The passwd for '%s' has been changed. \n"
+msgstr " '%s' ‚̃pƒXƒ[ƒh‚Í•ÏX‚³‚ê‚Ü‚µ‚½ \n"
+
+#: web/swat.c:814
+#, c-format
+msgid " The passwd for '%s' has NOT been changed. \n"
+msgstr " '%s' ‚̃pƒXƒ[ƒh‚Í•ÏX‚³‚ê‚Ü‚¹‚ñ‚Å‚µ‚½ \n"
+
+#: web/swat.c:838
+msgid "Server Password Management"
+msgstr "ƒ[ƒJƒ‹ ƒ}ƒVƒ“‚̃pƒXƒ[ƒhŠÇ—"
+
+#.
+#. * Create all the dialog boxes for data collection
+#.
+#: web/swat.c:847 web/swat.c:894
+msgid " User Name : "
+msgstr "ƒ†[ƒU–¼ : "
+
+#: web/swat.c:850 web/swat.c:896
+msgid " Old Password : "
+msgstr "‹ŒƒpƒXƒ[ƒh : "
+
+#: web/swat.c:853 web/swat.c:898
+msgid " New Password : "
+msgstr "VƒpƒXƒ[ƒh : "
+
+#: web/swat.c:855 web/swat.c:900
+msgid " Re-type New Password : "
+msgstr "VƒpƒXƒ[ƒhÄ“ü—Í : "
+
+#: web/swat.c:863 web/swat.c:911
+msgid "Change Password"
+msgstr "ƒpƒXƒ[ƒh•ÏX"
+
+#: web/swat.c:866
+msgid "Add New User"
+msgstr "V‹Kƒ†[ƒU’ljÁ"
+
+#: web/swat.c:868
+msgid "Delete User"
+msgstr "ƒ†[ƒU‚ğ휂·‚é"
+
+#: web/swat.c:870
+msgid "Disable User"
+msgstr "g—p•s‰Â‚É‚·‚é"
+
+#: web/swat.c:872
+msgid "Enable User"
+msgstr "g—p‰Â”\\‚É‚·‚é"
+
+#: web/swat.c:885
+msgid "Client/Server Password Management"
+msgstr "ƒŠƒ‚[ƒg ƒ}ƒVƒ“‚̃pƒXƒ[ƒhŠÇ—"
+
+#: web/swat.c:902
+msgid " Remote Machine : "
+msgstr " ƒŠƒ‚[ƒg ƒ}ƒVƒ“ : "
+
+#: web/swat.c:940
+msgid "Printer Parameters"
+msgstr "ƒvƒŠƒ“ƒ^İ’è [Printer]"
+
+#: web/swat.c:942
+msgid "Important Note:"
+msgstr "*’:"
+
+#: web/swat.c:943
+msgid "Printer names marked with [*] in the Choose Printer drop-down box "
+msgstr "–¼‘O‚Ì擪‚É [*] ‚ª‚‚¢‚½ƒvƒŠƒ“ƒ^"
+
+#: web/swat.c:944
+msgid "are autoloaded printers from "
+msgstr "‚ÍA"
+
+#: web/swat.c:945
+msgid "Printcap Name"
+msgstr "printcap name ƒpƒ‰ƒ[ƒ^"
+
+#: web/swat.c:946
+msgid "Attempting to delete these printers from SWAT will have no effect.\n"
+msgstr "‚©‚ç©“®İ’肳‚ꂽ‚à‚Ì‚Å‚·‚©‚çA휂·‚邱‚Æ‚Í‚Å‚«‚Ü‚¹‚ñB\n"
+
+#: web/swat.c:980
+msgid "Choose Printer"
+msgstr "ƒvƒŠƒ“ƒ^‘I‘ğ"
+
+#: web/swat.c:999
+msgid "Delete Printer"
+msgstr "ƒvƒŠƒ“ƒ^íœ"
+
+#: web/swat.c:1006
+msgid "Create Printer"
+msgstr "ƒvƒŠƒ“ƒ^V‹Kì¬"
+
+#: web/statuspage.c:40
+msgid "DENY_NONE"
+msgstr "‹‘”Û‚È‚µ"
+
+#: web/statuspage.c:41
+msgid "DENY_ALL "
+msgstr "‚·‚ׂċ‘”Û"
+
+#: web/statuspage.c:42
+msgid "DENY_DOS "
+msgstr "DOS‚ğ‹‘”Û"
+
+#: web/statuspage.c:43
+msgid "DENY_READ "
+msgstr "QÆ‚ğ‹‘”Û"
+
+#: web/statuspage.c:44
+msgid "DENY_WRITE "
+msgstr "XV‚ğ‹‘”Û"
+
+#: web/statuspage.c:50
+msgid "RDONLY "
+msgstr "QÆ‚Ì‚İ"
+
+#: web/statuspage.c:51
+msgid "WRONLY "
+msgstr "‘}“ü‚Ì‚İ"
+
+#: web/statuspage.c:52
+msgid "RDWR "
+msgstr "XV "
+
+#: web/statuspage.c:60
+msgid "EXCLUSIVE+BATCH "
+msgstr "ê—L+ƒoƒbƒ` "
+
+#: web/statuspage.c:62
+msgid "EXCLUSIVE "
+msgstr "ê—L "
+
+#: web/statuspage.c:64
+msgid "BATCH "
+msgstr "ƒoƒbƒ` "
+
+#: web/statuspage.c:66
+msgid "LEVEL_II "
+msgstr "ƒŒƒxƒ‹_II "
+
+#: web/statuspage.c:68
+msgid "NONE "
+msgstr "‚È‚µ "
+
+#: web/statuspage.c:195
+msgid "Server Status"
+msgstr "ƒT[ƒo[“®ìó‹µ"
+
+#: web/statuspage.c:200
+msgid "Auto Refresh"
+msgstr "©“®Ä•\\¦"
+
+#: web/statuspage.c:201 web/statuspage.c:206
+msgid "Refresh Interval: "
+msgstr "Ä•\\¦ŠÔŠu(•b): "
+
+#: web/statuspage.c:205
+msgid "Stop Refreshing"
+msgstr "©“®•\\¦’â~"
+
+#: web/statuspage.c:220
+msgid "version:"
+msgstr "ƒo[ƒWƒ‡ƒ“:"
+
+#: web/statuspage.c:223
+msgid "smbd:"
+msgstr "ƒtƒ@ƒCƒ‹‹¤—Lƒf[ƒ‚ƒ“(smbd):"
+
+#: web/statuspage.c:223 web/statuspage.c:235
+msgid "running"
+msgstr "“®ì’†"
+
+#: web/statuspage.c:223 web/statuspage.c:235
+msgid "not running"
+msgstr "’â~’†"
+
+#: web/statuspage.c:226
+msgid "Stop smbd"
+msgstr "smbd’â~"
+
+#: web/statuspage.c:228
+msgid "Start smbd"
+msgstr "smbd‹N“®"
+
+#: web/statuspage.c:230
+msgid "Restart smbd"
+msgstr "smbdÄ‹N“®"
+
+#: web/statuspage.c:235
+msgid "nmbd:"
+msgstr "ƒl[ƒ€ ƒT[ƒrƒX ƒf[ƒ‚ƒ“(nmbd)"
+
+#: web/statuspage.c:238
+msgid "Stop nmbd"
+msgstr "nmbd’â~"
+
+#: web/statuspage.c:240
+msgid "Start nmbd"
+msgstr "nmbd‹N“®"
+
+#: web/statuspage.c:242
+msgid "Restart nmbd"
+msgstr "nmbdÄ‹N“®"
+
+#: web/statuspage.c:249
+msgid "Active Connections"
+msgstr "Ú‘±’†ƒNƒ‰ƒCƒAƒ“ƒg"
+
+#: web/statuspage.c:251 web/statuspage.c:264 web/statuspage.c:272
+msgid "PID"
+msgstr "ƒvƒƒZƒXID"
+
+#: web/statuspage.c:251 web/statuspage.c:264
+msgid "Client"
+msgstr "ƒNƒ‰ƒCƒAƒ“ƒg"
+
+#: web/statuspage.c:251
+msgid "IP address"
+msgstr "IPƒAƒhƒŒƒX"
+
+#: web/statuspage.c:251 web/statuspage.c:264 web/statuspage.c:272
+msgid "Date"
+msgstr "“ú•t"
+
+#: web/statuspage.c:253
+msgid "Kill"
+msgstr "Ø’f"
+
+#: web/statuspage.c:261
+msgid "Active Shares"
+msgstr "Ú‘±’†‹¤—L"
+
+#: web/statuspage.c:264
+msgid "Share"
+msgstr "‹¤—L–¼"
+
+#: web/statuspage.c:264
+msgid "User"
+msgstr "ƒ†[ƒU"
+
+#: web/statuspage.c:264
+msgid "Group"
+msgstr "ƒOƒ‹[ƒv"
+
+#: web/statuspage.c:270
+msgid "Open Files"
+msgstr "g—p’†ƒtƒ@ƒCƒ‹"
+
+#: web/statuspage.c:272
+msgid "Sharing"
+msgstr "”r‘¼ƒ‚[ƒh"
+
+#: web/statuspage.c:272
+msgid "R/W"
+msgstr "QÆ/XV"
+
+#: web/statuspage.c:272
+msgid "Oplock"
+msgstr "•Ö‹XƒƒbƒN(Oplock)"
+
+#: web/statuspage.c:272
+msgid "File"
+msgstr "ƒtƒ@ƒCƒ‹–¼"
+
+#: param/loadparm.c:641
+msgid "Base Options"
+msgstr "Šî–{ƒIƒvƒVƒ‡ƒ“"
+
+#: param/loadparm.c:643
+#, fuzzy
+msgid "dos charset"
+msgstr "—LŒø‚È•¶š"
+
+#: param/loadparm.c:644
+#, fuzzy
+msgid "unix charset"
+msgstr "—LŒø‚È•¶š"
+
+#: param/loadparm.c:645
+msgid "display charset"
+msgstr ""
+
+#: param/loadparm.c:646
+msgid "comment"
+msgstr "ƒRƒƒ“ƒg"
+
+#: param/loadparm.c:647
+msgid "path"
+msgstr "ƒpƒX"
+
+#: param/loadparm.c:648
+msgid "directory"
+msgstr "ƒfƒBƒŒƒNƒgƒŠ"
+
+#: param/loadparm.c:649
+msgid "workgroup"
+msgstr "ƒ[ƒNƒOƒ‹[ƒv"
+
+#: param/loadparm.c:650
+msgid "netbios name"
+msgstr "netbios –¼"
+
+#: param/loadparm.c:651
+msgid "netbios aliases"
+msgstr "netbios ƒGƒCƒŠƒAƒX"
+
+#: param/loadparm.c:652
+msgid "netbios scope"
+msgstr "netbios ƒXƒR[ƒv"
+
+#: param/loadparm.c:653
+msgid "server string"
+msgstr "ƒT[ƒo•¶š—ñ"
+
+#: param/loadparm.c:654
+msgid "interfaces"
+msgstr "ƒCƒ“ƒ^[ƒtƒF[ƒX"
+
+#: param/loadparm.c:655
+msgid "bind interfaces only"
+msgstr "‚±‚̃Cƒ“ƒ^[ƒtƒF[ƒX‚Ì‚İg—p"
+
+#: param/loadparm.c:657
+msgid "Security Options"
+msgstr "ƒZƒLƒ…ƒŠƒeƒB ƒIƒvƒVƒ‡ƒ“"
+
+#: param/loadparm.c:659
+msgid "security"
+msgstr "ƒZƒLƒ…ƒŠƒeƒB"
+
+#: param/loadparm.c:660
+msgid "encrypt passwords"
+msgstr "ƒpƒXƒ[ƒh‚ğˆÃ†‰»"
+
+#: param/loadparm.c:661
+msgid "update encrypted"
+msgstr "ˆÃ†‰»ƒpƒXƒ[ƒh‚ÉXV"
+
+#: param/loadparm.c:662
+msgid "allow trusted domains"
+msgstr "M—Š‚Å‚«‚éƒhƒƒCƒ“‚ğ‹–‰Â"
+
+#: param/loadparm.c:663
+msgid "alternate permissions"
+msgstr "‘ãsƒp[ƒ~ƒbƒVƒ‡ƒ“"
+
+#: param/loadparm.c:664
+msgid "hosts equiv"
+msgstr "“¯“™‚̃zƒXƒg"
+
+#: param/loadparm.c:665
+msgid "min passwd length"
+msgstr "ŬƒpƒXƒ[ƒh’·"
+
+#: param/loadparm.c:666
+msgid "min password length"
+msgstr "ŬƒpƒXƒ[ƒh’·"
+
+#: param/loadparm.c:667
+msgid "map to guest"
+msgstr "ƒQƒXƒg‚Ƀ}ƒbƒv"
+
+#: param/loadparm.c:668
+msgid "null passwords"
+msgstr "‹óƒpƒXƒ[ƒh"
+
+#: param/loadparm.c:669
+#, fuzzy
+msgid "obey pam restrictions"
+msgstr "æ“Ç‚İ"
+
+#: param/loadparm.c:670
+msgid "password server"
+msgstr "ƒpƒXƒ[ƒh ƒT[ƒo"
+
+#: param/loadparm.c:671
+msgid "smb passwd file"
+msgstr "smb passwd ƒtƒ@ƒCƒ‹"
+
+#: param/loadparm.c:672
+#, fuzzy
+msgid "private dir"
+msgstr "ƒvƒŠƒ“ƒ^ ƒhƒ‰ƒCƒo"
+
+#: param/loadparm.c:673
+msgid "passdb module path"
+msgstr ""
+
+#: param/loadparm.c:674
+msgid "root directory"
+msgstr "ƒ‹[ƒg ƒfƒBƒŒƒNƒgƒŠ"
+
+#: param/loadparm.c:675
+msgid "root dir"
+msgstr "ƒ‹[ƒg ƒfƒBƒŒƒNƒgƒŠ"
+
+#: param/loadparm.c:676
+msgid "root"
+msgstr "ƒ‹[ƒg"
+
+#: param/loadparm.c:678
+#, fuzzy
+msgid "pam password change"
+msgstr "ŬƒpƒXƒ[ƒh’·"
+
+#: param/loadparm.c:679
+msgid "passwd program"
+msgstr "ƒpƒXƒ[ƒh ƒvƒƒOƒ‰ƒ€"
+
+#: param/loadparm.c:680
+msgid "passwd chat"
+msgstr "ƒpƒXƒ[ƒh ƒ`ƒƒƒbƒg"
+
+#: param/loadparm.c:681
+msgid "passwd chat debug"
+msgstr "ƒpƒXƒ[ƒh ƒ`ƒƒƒbƒg ƒfƒoƒbƒO"
+
+#: param/loadparm.c:682
+msgid "username map"
+msgstr "ƒ†[ƒU–¼ƒ}ƒbƒv"
+
+#: param/loadparm.c:683
+msgid "password level"
+msgstr "ƒpƒXƒ[ƒh ƒŒƒxƒ‹"
+
+#: param/loadparm.c:684
+msgid "username level"
+msgstr "ƒ†[ƒU–¼ƒŒƒxƒ‹"
+
+#: param/loadparm.c:685
+msgid "unix password sync"
+msgstr "unix ƒpƒXƒ[ƒh‚𓯊ú‚³‚¹‚é"
+
+#: param/loadparm.c:686
+msgid "restrict anonymous"
+msgstr "“½–¼ƒAƒNƒZƒX‚̧ŒÀ"
+
+#: param/loadparm.c:687
+msgid "lanman auth"
+msgstr ""
+
+#: param/loadparm.c:688
+msgid "ntlm auth"
+msgstr ""
+
+#: param/loadparm.c:689
+msgid "plaintext to smbpasswd"
+msgstr ""
+
+#: param/loadparm.c:690
+msgid "use rhosts"
+msgstr "rhosts ‚ğg‚¤"
+
+#: param/loadparm.c:692
+msgid "username"
+msgstr "ƒ†[ƒU–¼"
+
+#: param/loadparm.c:693
+msgid "user"
+msgstr "ƒ†[ƒU"
+
+#: param/loadparm.c:694
+msgid "users"
+msgstr "ƒ†[ƒU"
+
+#: param/loadparm.c:696
+msgid "guest account"
+msgstr "ƒQƒXƒg ƒAƒJƒEƒ“ƒg"
+
+#: param/loadparm.c:697
+msgid "invalid users"
+msgstr "–³Œø‚ȃ†[ƒU"
+
+#: param/loadparm.c:698
+msgid "valid users"
+msgstr "—LŒø‚ȃ†[ƒU"
+
+#: param/loadparm.c:699
+msgid "admin users"
+msgstr "ŠÇ—ƒ†[ƒU"
+
+#: param/loadparm.c:700
+msgid "read list"
+msgstr "“Ç‚İæ‚胊ƒXƒg"
+
+#: param/loadparm.c:701
+msgid "write list"
+msgstr "‘‚«‚݃ŠƒXƒg"
+
+#: param/loadparm.c:702
+#, fuzzy
+msgid "printer admin"
+msgstr "ƒvƒŠƒ“ƒ^–¼"
+
+#: param/loadparm.c:703
+msgid "force user"
+msgstr "‹­§‚·‚郆[ƒU"
+
+#: param/loadparm.c:704
+msgid "force group"
+msgstr "‹­§‚·‚éƒOƒ‹[ƒv"
+
+#: param/loadparm.c:705
+msgid "group"
+msgstr "ƒOƒ‹[ƒv"
+
+#: param/loadparm.c:707
+msgid "read only"
+msgstr "“Ç‚İæ‚è‚Ì‚İ"
+
+#: param/loadparm.c:708
+msgid "write ok"
+msgstr "‘‚«‚݉Â"
+
+#: param/loadparm.c:709
+msgid "writeable"
+msgstr "‘‚«‚݉Â"
+
+#: param/loadparm.c:710
+msgid "writable"
+msgstr "‘‚«‚݉Â"
+
+#: param/loadparm.c:712
+msgid "create mask"
+msgstr "쬂Ƀ}ƒXƒN"
+
+#: param/loadparm.c:713
+msgid "create mode"
+msgstr "쬂̃‚[ƒh"
+
+#: param/loadparm.c:714
+msgid "force create mode"
+msgstr "‹­§‚·‚é쬂̃‚[ƒh"
+
+#: param/loadparm.c:715
+msgid "security mask"
+msgstr "ƒZƒLƒ…ƒŠƒeƒB ƒ}ƒXƒN"
+
+#: param/loadparm.c:716
+msgid "force security mode"
+msgstr "‹­§‚·‚éƒZƒLƒ…ƒŠƒeƒB ƒ‚[ƒh"
+
+#: param/loadparm.c:717
+msgid "directory mask"
+msgstr "ƒfƒBƒŒƒNƒgƒŠ ƒ}ƒXƒN"
+
+#: param/loadparm.c:718
+msgid "directory mode"
+msgstr "ƒfƒBƒŒƒNƒgƒŠ ƒ‚[ƒh"
+
+#: param/loadparm.c:719
+msgid "force directory mode"
+msgstr "‹­§‚·‚éƒfƒBƒŒƒNƒgƒŠ ƒ‚[ƒh"
+
+#: param/loadparm.c:720
+msgid "directory security mask"
+msgstr "ƒfƒBƒŒƒNƒgƒŠ‚̃ZƒLƒ…ƒŠƒeƒB ƒ}ƒXƒN"
+
+#: param/loadparm.c:721
+msgid "force directory security mode"
+msgstr "‹­§‚·‚éƒfƒBƒŒƒNƒgƒŠ‚̃ZƒLƒ…ƒŠƒeƒB ƒ‚[ƒh"
+
+#: param/loadparm.c:722
+msgid "inherit permissions"
+msgstr "ƒp[ƒ~ƒbƒVƒ‡ƒ“‚ğŒp³"
+
+#: param/loadparm.c:723
+msgid "guest only"
+msgstr "ƒQƒXƒg‚Ì‚İ"
+
+#: param/loadparm.c:724
+msgid "only guest"
+msgstr "ƒQƒXƒg‚Ì‚İ"
+
+#: param/loadparm.c:726
+msgid "guest ok"
+msgstr "ƒQƒXƒg‰Â"
+
+#: param/loadparm.c:727
+msgid "public"
+msgstr "ƒpƒuƒŠƒbƒN"
+
+#: param/loadparm.c:729
+msgid "only user"
+msgstr "ƒ†[ƒU‚Ì‚İ"
+
+#: param/loadparm.c:730
+msgid "hosts allow"
+msgstr "‹–‰Â‚·‚éƒzƒXƒg"
+
+#: param/loadparm.c:731
+msgid "allow hosts"
+msgstr "‹–‰Â‚·‚éƒzƒXƒg"
+
+#: param/loadparm.c:732
+msgid "hosts deny"
+msgstr "‹‘”Û‚·‚éƒzƒXƒg"
+
+#: param/loadparm.c:733
+msgid "deny hosts"
+msgstr "‹‘”Û‚·‚éƒzƒXƒg"
+
+#: param/loadparm.c:736
+msgid "Secure Socket Layer Options"
+msgstr "ƒZƒLƒ…ƒA ƒ\\ƒPƒbƒg ƒŒƒCƒA[ ƒIƒvƒVƒ‡ƒ“"
+
+#: param/loadparm.c:737
+msgid "ssl"
+msgstr "ssl"
+
+#: param/loadparm.c:739
+msgid "ssl hosts"
+msgstr "ssl ƒzƒXƒg"
+
+#: param/loadparm.c:740
+msgid "ssl hosts resign"
+msgstr "ssl –¢g—pƒzƒXƒg"
+
+#: param/loadparm.c:741
+msgid "ssl CA certDir"
+msgstr "ssl CA ”F؃fƒBƒŒƒNƒgƒŠ"
+
+#: param/loadparm.c:742
+msgid "ssl CA certFile"
+msgstr "ssl CA ”F؃tƒ@ƒCƒ‹"
+
+#: param/loadparm.c:743
+msgid "ssl server cert"
+msgstr "ssl ƒT[ƒo”FØ"
+
+#: param/loadparm.c:744
+msgid "ssl server key"
+msgstr "ssl ƒT[ƒoŒ®"
+
+#: param/loadparm.c:745
+msgid "ssl client cert"
+msgstr "ssl ƒNƒ‰ƒCƒAƒ“ƒg”FØ"
+
+#: param/loadparm.c:746
+msgid "ssl client key"
+msgstr "ssl ƒNƒ‰ƒCƒAƒ“ƒgŒ®"
+
+#: param/loadparm.c:747
+msgid "ssl require clientcert"
+msgstr "ssl ƒNƒ‰ƒCƒAƒ“ƒg”FØ‚ğ—v‹"
+
+#: param/loadparm.c:748
+msgid "ssl require servercert"
+msgstr "ssl ƒT[ƒo”FØ‚ğ—v‹"
+
+#: param/loadparm.c:749
+msgid "ssl ciphers"
+msgstr "ssl ˆÃ†"
+
+#: param/loadparm.c:750
+msgid "ssl version"
+msgstr "ssl ƒo[ƒWƒ‡ƒ“"
+
+#: param/loadparm.c:751
+msgid "ssl compatibility"
+msgstr "ssl ŒİŠ·«"
+
+#: param/loadparm.c:754
+msgid "Logging Options"
+msgstr "ƒƒMƒ“ƒO ƒIƒvƒVƒ‡ƒ“"
+
+#: param/loadparm.c:755
+msgid "log level"
+msgstr "ƒƒO ƒŒƒxƒ‹"
+
+#: param/loadparm.c:756
+#, fuzzy
+msgid "debuglevel"
+msgstr "ƒfƒoƒbƒOƒŒƒxƒ‹"
+
+#: param/loadparm.c:757
+msgid "syslog"
+msgstr "syslog"
+
+#: param/loadparm.c:758
+msgid "syslog only"
+msgstr "syslog ‚Ì‚İ"
+
+#: param/loadparm.c:759
+msgid "log file"
+msgstr "ƒƒO ƒtƒ@ƒCƒ‹"
+
+#: param/loadparm.c:761
+msgid "max log size"
+msgstr "ő僃O ƒTƒCƒY"
+
+#: param/loadparm.c:762
+msgid "timestamp logs"
+msgstr "ƒ^ƒCƒ€ƒXƒ^ƒ“ƒv ƒƒO"
+
+#: param/loadparm.c:763
+msgid "debug timestamp"
+msgstr "ƒfƒoƒbƒO ƒ^ƒCƒ€ƒXƒ^ƒ“ƒv"
+
+#: param/loadparm.c:764
+#, fuzzy
+msgid "debug hires timestamp"
+msgstr "ƒfƒoƒbƒO ƒ^ƒCƒ€ƒXƒ^ƒ“ƒv"
+
+#: param/loadparm.c:765
+msgid "debug pid"
+msgstr "ƒfƒoƒbƒO pid"
+
+#: param/loadparm.c:766
+msgid "debug uid"
+msgstr "ƒfƒoƒbƒO uid"
+
+#: param/loadparm.c:768
+msgid "Protocol Options"
+msgstr "ƒvƒƒgƒRƒ‹ ƒIƒvƒVƒ‡ƒ“"
+
+#: param/loadparm.c:770
+msgid "protocol"
+msgstr "ƒvƒƒgƒRƒ‹"
+
+#: param/loadparm.c:771
+msgid "large readwrite"
+msgstr ""
+
+#: param/loadparm.c:772
+#, fuzzy
+msgid "max protocol"
+msgstr "ƒvƒƒgƒRƒ‹"
+
+#: param/loadparm.c:773
+#, fuzzy
+msgid "min protocol"
+msgstr "ƒvƒƒgƒRƒ‹"
+
+#: param/loadparm.c:774
+msgid "unicode"
+msgstr ""
+
+#: param/loadparm.c:775
+msgid "read bmpx"
+msgstr "bmpx “Ç‚İo‚µ"
+
+#: param/loadparm.c:776
+msgid "read raw"
+msgstr "raw “Ç‚İo‚µ"
+
+#: param/loadparm.c:777
+msgid "write raw"
+msgstr "raw ‘‚«‚İ"
+
+#: param/loadparm.c:779
+msgid "nt smb support"
+msgstr "nt smb ƒTƒ|[ƒg"
+
+#: param/loadparm.c:780
+msgid "nt pipe support"
+msgstr "nt pipe ƒTƒ|[ƒg"
+
+#: param/loadparm.c:781
+msgid "nt acl support"
+msgstr "nt acl ƒTƒ|[ƒg"
+
+#: param/loadparm.c:782
+msgid "announce version"
+msgstr "ƒAƒiƒEƒ“ƒX ƒo[ƒWƒ‡ƒ“"
+
+#: param/loadparm.c:783
+msgid "announce as"
+msgstr "ƒAƒiƒEƒ“ƒX‚·‚éí—Ş"
+
+#: param/loadparm.c:784
+msgid "max mux"
+msgstr "Å‘å mux"
+
+#: param/loadparm.c:785
+msgid "max xmit"
+msgstr "Å‘å xmit"
+
+#: param/loadparm.c:787
+msgid "name resolve order"
+msgstr "–¼‘O‰ğŒˆ‚̇”Ô"
+
+#: param/loadparm.c:788
+msgid "max packet"
+msgstr "Å‘åƒpƒPƒbƒg"
+
+#: param/loadparm.c:789
+msgid "packet size"
+msgstr "ƒpƒPƒbƒg ƒTƒCƒY"
+
+#: param/loadparm.c:790
+msgid "max ttl"
+msgstr "Å‘å ttl"
+
+#: param/loadparm.c:791
+msgid "max wins ttl"
+msgstr "Å‘å wins ttl"
+
+#: param/loadparm.c:792
+msgid "min wins ttl"
+msgstr "Ŭ wins ttl"
+
+#: param/loadparm.c:793
+msgid "time server"
+msgstr "ƒ^ƒCƒ€ ƒT[ƒo"
+
+#: param/loadparm.c:795
+msgid "Tuning Options"
+msgstr "ƒ`ƒ…[ƒjƒ“ƒO ƒIƒvƒVƒ‡ƒ“"
+
+#: param/loadparm.c:797
+msgid "change notify timeout"
+msgstr "XV’Ê’m‚ÌŠÔŠu"
+
+#: param/loadparm.c:798
+msgid "deadtime"
+msgstr "Ø’f‚Ü‚Å‚ÌŠÔ"
+
+#: param/loadparm.c:799
+msgid "getwd cache"
+msgstr "getwd ƒLƒƒƒbƒVƒ…"
+
+#: param/loadparm.c:800
+msgid "keepalive"
+msgstr ""
+
+#: param/loadparm.c:802
+msgid "lpq cache time"
+msgstr "lpq ƒLƒƒƒbƒVƒ…ŠÔ"
+
+#: param/loadparm.c:803
+msgid "max smbd processes"
+msgstr ""
+
+#: param/loadparm.c:804
+msgid "max connections"
+msgstr "Å‘åÚ‘±”"
+
+#: param/loadparm.c:805
+#, fuzzy
+msgid "paranoid server security"
+msgstr "ƒ†[ƒU’ljÁƒXƒNƒŠƒvƒg"
+
+#: param/loadparm.c:806
+msgid "max disk size"
+msgstr "Å‘åƒfƒBƒXƒN ƒTƒCƒY"
+
+#: param/loadparm.c:807
+msgid "max open files"
+msgstr "Å‘åƒtƒ@ƒCƒ‹ ƒI[ƒvƒ“”"
+
+#: param/loadparm.c:808
+msgid "min print space"
+msgstr "ŬˆóüƒXƒy[ƒX"
+
+#: param/loadparm.c:809
+msgid "read size"
+msgstr "“Ç‚İæ‚èƒTƒCƒY"
+
+#: param/loadparm.c:811
+msgid "socket options"
+msgstr "ƒ\\ƒPƒbƒg ƒIƒvƒVƒ‡ƒ“"
+
+#: param/loadparm.c:812
+msgid "stat cache size"
+msgstr "stat ƒLƒƒƒbƒVƒ… ƒTƒCƒY"
+
+#: param/loadparm.c:813
+#, fuzzy
+msgid "strict allocate"
+msgstr "Œµ–§‚ȃƒbƒN"
+
+#: param/loadparm.c:814
+msgid "strict sync"
+msgstr "Œµ–§‚È sync"
+
+#: param/loadparm.c:815
+msgid "sync always"
+msgstr "í‚É sync"
+
+#: param/loadparm.c:816
+#, fuzzy
+msgid "use mmap"
+msgstr "ƒ†[ƒU–¼ƒ}ƒbƒv"
+
+#: param/loadparm.c:817
+msgid "hostname lookups"
+msgstr ""
+
+#: param/loadparm.c:818
+msgid "write cache size"
+msgstr "‘‚«‚݃LƒƒƒbƒVƒ… ƒTƒCƒY"
+
+#: param/loadparm.c:820
+msgid "Printing Options"
+msgstr "ˆóüƒIƒvƒVƒ‡ƒ“"
+
+#: param/loadparm.c:822
+#, fuzzy
+msgid "total print jobs"
+msgstr "ƒvƒŠƒ“ƒ^‚ğƒ[ƒh"
+
+#: param/loadparm.c:823
+#, fuzzy
+msgid "max print jobs"
+msgstr "ˆóü‰Â"
+
+#: param/loadparm.c:824
+msgid "load printers"
+msgstr "ƒvƒŠƒ“ƒ^‚ğƒ[ƒh"
+
+#: param/loadparm.c:825
+msgid "printcap name"
+msgstr "printcap –¼"
+
+#: param/loadparm.c:826
+msgid "printcap"
+msgstr "printcap"
+
+#: param/loadparm.c:827
+msgid "printable"
+msgstr "ˆóü‰Â"
+
+#: param/loadparm.c:828
+msgid "print ok"
+msgstr "ˆóü‰Â"
+
+#: param/loadparm.c:829
+msgid "postscript"
+msgstr "ƒ|ƒXƒgƒXƒNƒŠƒvƒg"
+
+#: param/loadparm.c:830
+msgid "printing"
+msgstr "ˆóü•û–@"
+
+#: param/loadparm.c:831
+msgid "print command"
+msgstr "ˆóüƒRƒ}ƒ“ƒh"
+
+#: param/loadparm.c:832
+msgid "disable spoolss"
+msgstr ""
+
+#: param/loadparm.c:833
+msgid "lpq command"
+msgstr "lpq ƒRƒ}ƒ“ƒh"
+
+#: param/loadparm.c:834
+msgid "lprm command"
+msgstr "lprm ƒRƒ}ƒ“ƒh"
+
+#: param/loadparm.c:835
+msgid "lppause command"
+msgstr "lppause ƒRƒ}ƒ“ƒh"
+
+#: param/loadparm.c:836
+msgid "lpresume command"
+msgstr "lpresume ƒRƒ}ƒ“ƒh"
+
+#: param/loadparm.c:837
+msgid "queuepause command"
+msgstr "ƒLƒ…[’â~ƒRƒ}ƒ“ƒh"
+
+#: param/loadparm.c:838
+msgid "queueresume command"
+msgstr "ƒLƒ…[ÄŠJƒRƒ}ƒ“ƒh"
+
+#: param/loadparm.c:840
+#, fuzzy
+msgid "enumports command"
+msgstr "ˆóüƒRƒ}ƒ“ƒh"
+
+#: param/loadparm.c:841
+#, fuzzy
+msgid "addprinter command"
+msgstr "ˆóüƒRƒ}ƒ“ƒh"
+
+#: param/loadparm.c:842
+#, fuzzy
+msgid "deleteprinter command"
+msgstr "ˆóüƒRƒ}ƒ“ƒh"
+
+#: param/loadparm.c:843
+#, fuzzy
+msgid "show add printer wizard"
+msgstr "ƒvƒŠƒ“ƒ^‚ğƒ[ƒh"
+
+#: param/loadparm.c:844
+#, fuzzy
+msgid "os2 driver map"
+msgstr "ƒz[ƒ€ƒfƒBƒŒƒNƒgƒŠ ƒ}ƒbƒv"
+
+#: param/loadparm.c:846
+msgid "printer name"
+msgstr "ƒvƒŠƒ“ƒ^–¼"
+
+#: param/loadparm.c:847
+msgid "printer"
+msgstr "ƒvƒŠƒ“ƒ^"
+
+#: param/loadparm.c:848
+#, fuzzy
+msgid "use client driver"
+msgstr "ssl ƒNƒ‰ƒCƒAƒ“ƒg”FØ"
+
+#: param/loadparm.c:849
+msgid "printer driver"
+msgstr "ƒvƒŠƒ“ƒ^ ƒhƒ‰ƒCƒo"
+
+#: param/loadparm.c:850
+msgid "printer driver file"
+msgstr "ƒvƒŠƒ“ƒ^ ƒhƒ‰ƒCƒo ƒtƒ@ƒCƒ‹"
+
+#: param/loadparm.c:851
+msgid "printer driver location"
+msgstr "ƒvƒŠƒ“ƒ^ ƒhƒ‰ƒCƒo‚ÌêŠ"
+
+#: param/loadparm.c:853
+msgid "Filename Handling"
+msgstr "ƒtƒ@ƒCƒ‹–¼‚Ì戵"
+
+#: param/loadparm.c:854
+msgid "strip dot"
+msgstr "ƒhƒbƒg‚ğí‚é"
+
+#: param/loadparm.c:856
+msgid "mangled stack"
+msgstr "–¼‘O•ÏŠ·—pƒXƒ^ƒbƒN"
+
+#: param/loadparm.c:857
+msgid "default case"
+msgstr "Šù’è‚Ì•¶š‚Ì‘å¬"
+
+#: param/loadparm.c:858
+msgid "case sensitive"
+msgstr "‘å/¬•¶š‚Ì‹æ•Ê"
+
+#: param/loadparm.c:859
+msgid "casesignames"
+msgstr "‘å/¬•¶š‚Ì‹æ•Ê"
+
+#: param/loadparm.c:860
+msgid "preserve case"
+msgstr "•¶š‚̑嬂ğ•Û‘¶"
+
+#: param/loadparm.c:861
+msgid "short preserve case"
+msgstr "’ZŒ`®‚Å•¶š‚̑嬂ğ•Û‘¶"
+
+#: param/loadparm.c:862
+msgid "mangle case"
+msgstr "‘å/¬•¶š‚Ì•ÏŠ·"
+
+#: param/loadparm.c:863
+msgid "mangling char"
+msgstr "•ÏŠ·—p•¶š"
+
+#: param/loadparm.c:864
+msgid "hide dot files"
+msgstr "ƒhƒbƒgƒtƒ@ƒCƒ‹‚ğ‰B‚·"
+
+#: param/loadparm.c:865
+msgid "hide unreadable"
+msgstr ""
+
+#: param/loadparm.c:866
+msgid "delete veto files"
+msgstr "‹‘”Ûƒtƒ@ƒCƒ‹‚ğíœ"
+
+#: param/loadparm.c:867
+msgid "veto files"
+msgstr "‹‘”Ûƒtƒ@ƒCƒ‹"
+
+#: param/loadparm.c:868
+msgid "hide files"
+msgstr "‰B‚µƒtƒ@ƒCƒ‹"
+
+#: param/loadparm.c:869
+msgid "veto oplock files"
+msgstr "oplock ‚ğ‹Ö~‚·‚éƒtƒ@ƒCƒ‹"
+
+#: param/loadparm.c:870
+msgid "map system"
+msgstr "ƒVƒXƒeƒ€‘®«‚Ƀ}ƒbƒv"
+
+#: param/loadparm.c:871
+msgid "map hidden"
+msgstr "‰B‚µ‘®«‚Ƀ}ƒbƒv"
+
+#: param/loadparm.c:872
+msgid "map archive"
+msgstr "ƒA[ƒJƒCƒu‘®«‚Ƀ}ƒbƒv"
+
+#: param/loadparm.c:873
+msgid "mangled names"
+msgstr "•ÏŠ·‚µ‚½–¼‘O‚Å•\\¦"
+
+#: param/loadparm.c:874
+msgid "mangled map"
+msgstr "•ÏŠ·ƒ}ƒbƒv"
+
+#: param/loadparm.c:875
+msgid "stat cache"
+msgstr "stat ƒLƒƒƒbƒVƒ…"
+
+#: param/loadparm.c:877
+msgid "Domain Options"
+msgstr "ƒhƒƒCƒ“ ƒIƒvƒVƒ‡ƒ“"
+
+#: param/loadparm.c:879
+msgid "domain admin group"
+msgstr "ƒhƒƒCƒ“ŠÇ—ƒOƒ‹[ƒv"
+
+#: param/loadparm.c:880
+msgid "domain guest group"
+msgstr "ƒhƒƒCƒ“ ƒQƒXƒg ƒOƒ‹[ƒv"
+
+#: param/loadparm.c:883
+msgid "groupname map"
+msgstr "ƒOƒ‹[ƒv–¼ƒ}ƒbƒv"
+
+#: param/loadparm.c:886
+msgid "machine password timeout"
+msgstr "ƒ}ƒVƒ“ ƒpƒXƒ[ƒh ƒ^ƒCƒ€ƒAƒEƒg"
+
+#: param/loadparm.c:888
+msgid "Logon Options"
+msgstr "ƒƒOƒIƒ“ ƒIƒvƒVƒ‡ƒ“"
+
+#: param/loadparm.c:890
+msgid "add user script"
+msgstr "ƒ†[ƒU’ljÁƒXƒNƒŠƒvƒg"
+
+#: param/loadparm.c:891
+msgid "delete user script"
+msgstr "ƒ†[ƒU휃XƒNƒŠƒvƒg"
+
+#: param/loadparm.c:892
+#, fuzzy
+msgid "add group script"
+msgstr "ƒ†[ƒU’ljÁƒXƒNƒŠƒvƒg"
+
+#: param/loadparm.c:893
+#, fuzzy
+msgid "delete group script"
+msgstr "ƒ†[ƒU휃XƒNƒŠƒvƒg"
+
+#: param/loadparm.c:894
+#, fuzzy
+msgid "add user to group script"
+msgstr "ƒ†[ƒU’ljÁƒXƒNƒŠƒvƒg"
+
+#: param/loadparm.c:895
+#, fuzzy
+msgid "delete user from group script"
+msgstr "ƒ†[ƒU휃XƒNƒŠƒvƒg"
+
+#: param/loadparm.c:896
+#, fuzzy
+msgid "add machine script"
+msgstr "ƒ†[ƒU’ljÁƒXƒNƒŠƒvƒg"
+
+#: param/loadparm.c:897
+#, fuzzy
+msgid "shutdown script"
+msgstr "ƒƒOƒIƒ“ ƒXƒNƒŠƒvƒg"
+
+#: param/loadparm.c:898
+#, fuzzy
+msgid "abort shutdown script"
+msgstr "ƒƒOƒIƒ“ ƒXƒNƒŠƒvƒg"
+
+#: param/loadparm.c:900
+msgid "logon script"
+msgstr "ƒƒOƒIƒ“ ƒXƒNƒŠƒvƒg"
+
+#: param/loadparm.c:901
+msgid "logon path"
+msgstr "ƒƒOƒIƒ“ ƒpƒX"
+
+#: param/loadparm.c:902
+msgid "logon drive"
+msgstr "ƒƒOƒIƒ“ ƒhƒ‰ƒCƒu"
+
+#: param/loadparm.c:903
+msgid "logon home"
+msgstr "ƒƒOƒIƒ“ ƒz[ƒ€"
+
+#: param/loadparm.c:904
+msgid "domain logons"
+msgstr "ƒhƒƒCƒ“ ƒƒOƒIƒ“"
+
+#: param/loadparm.c:906
+msgid "Browse Options"
+msgstr "ƒRƒ“ƒsƒ…[ƒ^ˆê——•\\¦ƒIƒvƒVƒ‡ƒ“"
+
+#: param/loadparm.c:908
+msgid "os level"
+msgstr "os ƒŒƒxƒ‹"
+
+#: param/loadparm.c:909
+msgid "lm announce"
+msgstr "lm ƒAƒiƒEƒ“ƒX"
+
+#: param/loadparm.c:910
+msgid "lm interval"
+msgstr "lm ŠÔŠu"
+
+#: param/loadparm.c:911
+msgid "preferred master"
+msgstr "—Dæ‚·‚éƒ}ƒXƒ^"
+
+#: param/loadparm.c:912
+msgid "prefered master"
+msgstr "—Dæ‚·‚éƒ}ƒXƒ^"
+
+#: param/loadparm.c:913
+msgid "local master"
+msgstr "ƒ[ƒJƒ‹ ƒ}ƒXƒ^"
+
+#: param/loadparm.c:914
+msgid "domain master"
+msgstr "ƒhƒƒCƒ“ ƒ}ƒXƒ^"
+
+#: param/loadparm.c:915
+msgid "browse list"
+msgstr "ƒuƒ‰ƒEƒY ƒŠƒXƒg"
+
+#: param/loadparm.c:916
+msgid "browseable"
+msgstr "ƒuƒ‰ƒEƒY‰Â"
+
+#: param/loadparm.c:917
+msgid "browsable"
+msgstr "ƒuƒ‰ƒEƒY‰Â"
+
+#: param/loadparm.c:918
+msgid "enhanced browsing"
+msgstr ""
+
+#: param/loadparm.c:920
+msgid "WINS Options"
+msgstr "WINSƒIƒvƒVƒ‡ƒ“"
+
+#: param/loadparm.c:921
+msgid "dns proxy"
+msgstr "dns ƒvƒƒLƒV"
+
+#: param/loadparm.c:922
+msgid "wins proxy"
+msgstr "wins ƒvƒƒLƒV"
+
+#: param/loadparm.c:924
+msgid "wins server"
+msgstr "wins ƒT[ƒo"
+
+#: param/loadparm.c:925
+msgid "wins support"
+msgstr "wins ƒTƒ|[ƒg"
+
+#: param/loadparm.c:926
+msgid "wins hook"
+msgstr "wins ƒtƒbƒN"
+
+#: param/loadparm.c:928
+msgid "Locking Options"
+msgstr "ƒƒbƒLƒ“ƒO ƒIƒvƒVƒ‡ƒ“"
+
+#: param/loadparm.c:930
+#, fuzzy
+msgid "blocking locks"
+msgstr "ƒƒbƒN"
+
+#: param/loadparm.c:931
+msgid "fake oplocks"
+msgstr "‹U‘• oplock"
+
+#: param/loadparm.c:932
+msgid "kernel oplocks"
+msgstr "ƒJ[ƒlƒ‹ oplock"
+
+#: param/loadparm.c:933
+msgid "locking"
+msgstr "ƒƒbƒN"
+
+#: param/loadparm.c:935
+msgid "oplocks"
+msgstr "•Ö‹X“IƒƒbƒN"
+
+#: param/loadparm.c:936
+msgid "level2 oplocks"
+msgstr "level2 oplocks"
+
+#: param/loadparm.c:937
+msgid "oplock break wait time"
+msgstr "oplock ’†’f‚Ì‘Ò‚¿ŠÔ"
+
+#: param/loadparm.c:938
+msgid "oplock contention limit"
+msgstr "oplock ‹£‡‚ÌŒÀ“x"
+
+#: param/loadparm.c:939
+#, fuzzy
+msgid "posix locking"
+msgstr "Œµ–§‚ȃƒbƒN"
+
+#: param/loadparm.c:940
+msgid "strict locking"
+msgstr "Œµ–§‚ȃƒbƒN"
+
+#: param/loadparm.c:941
+msgid "share modes"
+msgstr "‹¤—Lƒ‚[ƒh"
+
+#: param/loadparm.c:944
+msgid "Ldap Options"
+msgstr "Ldap ƒIƒvƒVƒ‡ƒ“"
+
+#: param/loadparm.c:946
+msgid "ldap server"
+msgstr "ldap ƒT[ƒo"
+
+#: param/loadparm.c:947
+msgid "ldap port"
+msgstr "ldap ƒ|[ƒg"
+
+#: param/loadparm.c:948
+msgid "ldap suffix"
+msgstr "lpad ƒTƒtƒBƒbƒNƒX"
+
+#: param/loadparm.c:949
+msgid "ldap filter"
+msgstr "ldap ƒtƒBƒ‹ƒ^["
+
+#: param/loadparm.c:950
+msgid "ldap root"
+msgstr "ldap ƒ‹[ƒg"
+
+#: param/loadparm.c:951
+msgid "ldap root passwd"
+msgstr "ldap ƒ‹[ƒg ƒpƒXƒ[ƒh"
+
+#: param/loadparm.c:954
+msgid "Miscellaneous Options"
+msgstr "‚»‚Ì‘¼‚̃IƒvƒVƒ‡ƒ“"
+
+#: param/loadparm.c:955
+#, fuzzy
+msgid "add share command"
+msgstr "dfree ƒRƒ}ƒ“ƒh"
+
+#: param/loadparm.c:956
+#, fuzzy
+msgid "change share command"
+msgstr "ƒƒbƒZ[ƒW ƒRƒ}ƒ“ƒh"
+
+#: param/loadparm.c:957
+#, fuzzy
+msgid "delete share command"
+msgstr "ƒƒbƒZ[ƒW ƒRƒ}ƒ“ƒh"
+
+#: param/loadparm.c:959
+msgid "config file"
+msgstr "İ’èƒtƒ@ƒCƒ‹"
+
+#: param/loadparm.c:960
+msgid "preload"
+msgstr "ƒvƒŠƒ[ƒh"
+
+#: param/loadparm.c:961
+msgid "auto services"
+msgstr "©“®ƒT[ƒrƒX"
+
+#: param/loadparm.c:962
+msgid "lock dir"
+msgstr "ƒƒbƒN ƒfƒBƒŒƒNƒgƒŠ"
+
+#: param/loadparm.c:963
+msgid "lock directory"
+msgstr "ƒƒbƒN ƒfƒBƒŒƒNƒgƒŠ"
+
+#: param/loadparm.c:965
+msgid "utmp directory"
+msgstr "utmp ƒfƒBƒŒƒNƒgƒŠ"
+
+#: param/loadparm.c:966
+#, fuzzy
+msgid "wtmp directory"
+msgstr "utmp ƒfƒBƒŒƒNƒgƒŠ"
+
+#: param/loadparm.c:967
+#, fuzzy
+msgid "utmp"
+msgstr "utmp ƒfƒBƒŒƒNƒgƒŠ"
+
+#: param/loadparm.c:970
+msgid "default service"
+msgstr "Šù’èƒT[ƒrƒX"
+
+#: param/loadparm.c:971
+msgid "default"
+msgstr "Šù’è"
+
+#: param/loadparm.c:972
+msgid "message command"
+msgstr "ƒƒbƒZ[ƒW ƒRƒ}ƒ“ƒh"
+
+#: param/loadparm.c:973
+msgid "dfree command"
+msgstr "dfree ƒRƒ}ƒ“ƒh"
+
+#: param/loadparm.c:974
+msgid "remote announce"
+msgstr "ƒŠƒ‚[ƒg ƒAƒiƒEƒ“ƒX"
+
+#: param/loadparm.c:975
+msgid "remote browse sync"
+msgstr "ƒŠƒ‚[ƒg‚̃uƒ‰ƒEƒYƒŠƒXƒg‚𓯊ú"
+
+#: param/loadparm.c:976
+msgid "socket address"
+msgstr "ƒ\\ƒPƒbƒg ƒAƒhƒŒƒX"
+
+#: param/loadparm.c:977
+msgid "homedir map"
+msgstr "ƒz[ƒ€ƒfƒBƒŒƒNƒgƒŠ ƒ}ƒbƒv"
+
+#: param/loadparm.c:978
+msgid "time offset"
+msgstr "ŠÔƒIƒtƒZƒbƒg"
+
+#: param/loadparm.c:979
+msgid "NIS homedir"
+msgstr "NIS ƒz[ƒ€ƒfƒBƒŒƒNƒgƒŠ"
+
+#: param/loadparm.c:980
+msgid "-valid"
+msgstr "-valid"
+
+#: param/loadparm.c:982
+msgid "copy"
+msgstr "ƒRƒs["
+
+#: param/loadparm.c:983
+msgid "include"
+msgstr "ƒCƒ“ƒNƒ‹[ƒh"
+
+#: param/loadparm.c:984
+msgid "exec"
+msgstr "Às"
+
+#: param/loadparm.c:985
+msgid "preexec"
+msgstr "Ú‘±‚ÉÀs"
+
+#: param/loadparm.c:987
+#, fuzzy
+msgid "preexec close"
+msgstr "Ú‘±‚ÉÀs"
+
+#: param/loadparm.c:988
+msgid "postexec"
+msgstr "Ø’f‚ÉÀs"
+
+#: param/loadparm.c:989
+msgid "root preexec"
+msgstr "ƒ‹[ƒg‚ÅÚ‘±Às"
+
+#: param/loadparm.c:990
+#, fuzzy
+msgid "root preexec close"
+msgstr "ƒ‹[ƒg‚ÅÚ‘±Às"
+
+#: param/loadparm.c:991
+msgid "root postexec"
+msgstr "ƒ‹[ƒg‚ÅØ’fÀs"
+
+#: param/loadparm.c:992
+msgid "available"
+msgstr "—˜—p‰Â”\\"
+
+#: param/loadparm.c:993
+msgid "volume"
+msgstr "ƒ{ƒŠƒ…[ƒ€"
+
+#: param/loadparm.c:994
+msgid "fstype"
+msgstr "ƒtƒ@ƒCƒ‹ ƒVƒXƒeƒ€ ƒ^ƒCƒv"
+
+#: param/loadparm.c:995
+#, fuzzy
+msgid "set directory"
+msgstr "ƒfƒBƒŒƒNƒgƒŠ"
+
+#: param/loadparm.c:996
+msgid "source environment"
+msgstr ""
+
+#: param/loadparm.c:997
+msgid "wide links"
+msgstr "L‚­ƒŠƒ“ƒN"
+
+#: param/loadparm.c:998
+msgid "follow symlinks"
+msgstr "symlink æ‚ğQÆ"
+
+#: param/loadparm.c:999
+msgid "dont descend"
+msgstr "‰º‚É~‚è‚È‚¢ƒfƒBƒŒƒNƒgƒŠ"
+
+#: param/loadparm.c:1000
+msgid "magic script"
+msgstr "ƒ}ƒWƒbƒN ƒXƒNƒŠƒvƒg"
+
+#: param/loadparm.c:1001
+msgid "magic output"
+msgstr "ƒ}ƒWƒbƒN o—Í"
+
+#: param/loadparm.c:1002
+msgid "delete readonly"
+msgstr "“Ç‚İæ‚è‚݂̂̃tƒ@ƒCƒ‹‚ğíœ"
+
+#: param/loadparm.c:1003
+#, fuzzy
+msgid "dos filemode"
+msgstr "dos ‚̃tƒ@ƒCƒ‹"
+
+#: param/loadparm.c:1004
+msgid "dos filetimes"
+msgstr "dos ‚̃tƒ@ƒCƒ‹"
+
+#: param/loadparm.c:1005
+msgid "dos filetime resolution"
+msgstr "dos ‚̃tƒ@ƒCƒ‹‚Ì•ª‰ğ”\\"
+
+#: param/loadparm.c:1007
+msgid "fake directory create times"
+msgstr "‹U‚̃fƒBƒŒƒNƒgƒŠì¬"
+
+#: param/loadparm.c:1008
+msgid "panic action"
+msgstr "ƒpƒjƒbƒN ƒAƒNƒVƒ‡ƒ“"
+
+#: param/loadparm.c:1009
+#, fuzzy
+msgid "hide local users"
+msgstr "ƒ[ƒJƒ‹ ƒ}ƒXƒ^"
+
+#: param/loadparm.c:1012
+msgid "VFS options"
+msgstr "VFSƒIƒvƒVƒ‡ƒ“"
+
+#: param/loadparm.c:1014
+msgid "vfs object"
+msgstr ""
+
+#: param/loadparm.c:1015
+#, fuzzy
+msgid "vfs options"
+msgstr "VFSƒIƒvƒVƒ‡ƒ“"
+
+#: param/loadparm.c:1018
+#, fuzzy
+msgid "msdfs root"
+msgstr "ldap ƒ‹[ƒg"
+
+#: param/loadparm.c:1019
+#, fuzzy
+msgid "host msdfs"
+msgstr "‹‘”Û‚·‚éƒzƒXƒg"
+
+#: param/loadparm.c:1021
+msgid "Winbind options"
+msgstr "WinbindƒIƒvƒVƒ‡ƒ“"
+
+#: param/loadparm.c:1023
+#, fuzzy
+msgid "winbind uid"
+msgstr "WinbindƒIƒvƒVƒ‡ƒ“"
+
+#: param/loadparm.c:1024
+#, fuzzy
+msgid "winbind gid"
+msgstr "WinbindƒIƒvƒVƒ‡ƒ“"
+
+#: param/loadparm.c:1025
+msgid "template homedir"
+msgstr ""
+
+#: param/loadparm.c:1026
+msgid "template shell"
+msgstr ""
+
+#: param/loadparm.c:1027
+#, fuzzy
+msgid "winbind separator"
+msgstr "WinbindƒIƒvƒVƒ‡ƒ“"
+
+#: param/loadparm.c:1028
+#, fuzzy
+msgid "winbind cache time"
+msgstr "lpq ƒLƒƒƒbƒVƒ…ŠÔ"
+
+#: param/loadparm.c:1029
+#, fuzzy
+msgid "winbind enum users"
+msgstr "–³Œø‚ȃ†[ƒU"
+
+#: param/loadparm.c:1030
+msgid "winbind enum groups"
+msgstr ""
+
+#~ msgid "failed to open %s for writing\n"
+#~ msgstr "%s ‚ğ‘‚«‚İ—p‚ɃI[ƒvƒ“‚Å‚«‚Ü‚¹‚ñ\n"
+
+#~ msgid "Can't reload %s\n"
+#~ msgstr "%s ‚ğÄ“Ç‚İ‚İ‚Å‚«‚Ü‚¹‚ñ\n"
+
+#~ msgid "Can't setup password database vectors.\n"
+#~ msgstr "ƒpƒXƒ[ƒhEƒf[ƒ^ƒx[ƒX‚ªŒ©‚‚¯‚ç‚ê‚Ü‚¹‚ñ\n"
+
+#~ msgid "You need to have status=yes in your smb config file\n"
+#~ msgstr "smb.conf ‚Å status=yes ‚ğݒ肵‚Ä‚­‚¾‚³‚¢\n"
+
+#~ msgid "coding system"
+#~ msgstr "ƒR[ƒfƒBƒ“ƒO ƒVƒXƒeƒ€"
+
+#~ msgid "client code page"
+#~ msgstr "ƒNƒ‰ƒCƒAƒ“ƒg ƒR[ƒhƒy[ƒW"
+
+#~ msgid "revalidate"
+#~ msgstr "Ä”FØ"
+
+#~ msgid "status"
+#~ msgstr "ƒXƒe[ƒ^ƒX"
+
+#~ msgid "shared mem size"
+#~ msgstr "‹¤—Lƒƒ‚ƒŠ ƒTƒCƒY"
+
+#~ msgid "character set"
+#~ msgstr "•¶šƒZƒbƒg"
+
+#~ msgid "domain groups"
+#~ msgstr "ƒhƒƒCƒ“ ƒOƒ‹[ƒv"
+
+#~ msgid "domain admin users"
+#~ msgstr "ƒhƒƒCƒ“ŠÇ—ƒ†[ƒU"
+
+#~ msgid "domain guest users"
+#~ msgstr "ƒhƒƒCƒ“ ƒQƒXƒg ƒ†[ƒU"
+
+#~ msgid "ole locking compatibility"
+#~ msgstr "ole ƒƒbƒN‚̌݊·«"
+
+#~ msgid "smbrun"
+#~ msgstr "smbrun"
+
+#, fuzzy
+#~ msgid "wtmp dir"
+#~ msgstr "utmp ƒfƒBƒŒƒNƒgƒŠ"
+
+#~ msgid "unix realname"
+#~ msgstr "unix ‚Ì–{–¼"
diff --git a/source3/po/pl.gmo b/source3/po/pl.gmo
new file mode 100644
index 0000000000..0821904c31
--- /dev/null
+++ b/source3/po/pl.gmo
Binary files differ
diff --git a/source3/po/pl.po b/source3/po/pl.po
new file mode 100644
index 0000000000..1ae8d6e754
--- /dev/null
+++ b/source3/po/pl.po
@@ -0,0 +1,1760 @@
+# Polish messages for international release of SWAT.
+# Copyright (C) YEAR Free Software Foundation, Inc.
+# Rafal Szczesniak <mimir@spin.ict.pwr.wroc.pl>, 2001.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: i18n_swat \n"
+"POT-Creation-Date: 2001-09-20 20:29+0900\n"
+"PO-Revision-Date: 2001-08-15 22:45+02:00\n"
+"Last-Translator: Rafal Szczesniak <mimir@spin.ict.pwr.wroc.pl>\n"
+"Language-Team: pl\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=iso-8859-2\n"
+"Content-Transfer-Encoding: \n"
+
+#: web/swat.c:120
+#, c-format
+msgid "ERROR: Can't open %s\n"
+msgstr "B£¡D: Nie mo¿na otworzyæ %s\n"
+
+#.
+#. str = stripspace(parm->label);
+#. strlower (str); //monyo
+#. d_printf("<tr><td><A HREF=\"/swat/help/smb.conf.5.html#%s\" target=\"docs\">%s</A>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; %s</td><td>",
+#. str, _("Help"), parm->label);
+#.
+#: web/swat.c:211
+msgid "Help"
+msgstr "Pomoc"
+
+#: web/swat.c:217 web/swat.c:231 web/swat.c:246 web/swat.c:254 web/swat.c:263
+#: web/swat.c:272 web/swat.c:278 web/swat.c:284 web/swat.c:297
+msgid "Set Default"
+msgstr "Ustaw domy¶lnie"
+
+#: web/swat.c:502
+#, c-format
+msgid "Logged in as <b>%s</b><p>\n"
+msgstr "Zalogowany jako <b>%s</b>\n"
+
+#: web/swat.c:505
+msgid "Home"
+msgstr "Strona domowa"
+
+#: web/swat.c:507
+msgid "Globals"
+msgstr "Ustawienia globalne"
+
+#: web/swat.c:508
+msgid "Shares"
+msgstr "Wspó³udzia³y"
+
+#: web/swat.c:509
+msgid "Printers"
+msgstr "Drukarki"
+
+#: web/swat.c:512
+msgid "Status"
+msgstr "Status"
+
+#: web/swat.c:513
+msgid "View Config"
+msgstr "Przejrzyj Konfiguracjê"
+
+#: web/swat.c:515
+msgid "Password Management"
+msgstr "Zarz±dzanie Has³ami"
+
+#: web/swat.c:539
+msgid "Current Config"
+msgstr "Bie¿±ca Konfiguracja"
+
+#: web/swat.c:543
+msgid "Normal View"
+msgstr "Normalny Widok"
+
+#: web/swat.c:545
+msgid "Full View"
+msgstr "Pe³ny Widok"
+
+#: web/swat.c:561
+msgid "Global Variables"
+msgstr "Zmienne Globalne"
+
+#: web/swat.c:575 web/swat.c:671 web/swat.c:1014
+msgid "Commit Changes"
+msgstr "Potwierd¼ Zmiany"
+
+#: web/swat.c:579 web/swat.c:674 web/swat.c:1016
+msgid "Reset Values"
+msgstr "Zresetuj Warto¶ci"
+
+#: web/swat.c:581 web/swat.c:676 web/swat.c:1018
+msgid "Advanced View"
+msgstr "Widok Zaawansowany"
+
+#: web/swat.c:583 web/swat.c:678 web/swat.c:1020
+msgid "Basic View"
+msgstr "Widok Podstawowy"
+
+#: web/swat.c:613
+msgid "Share Parameters"
+msgstr "Parametry Wspó³udzia³u"
+
+#: web/swat.c:642
+msgid "Choose Share"
+msgstr "Wybierz Wspó³udzia³"
+
+#: web/swat.c:656
+msgid "Delete Share"
+msgstr "Usuñ Wspó³udzia³"
+
+#: web/swat.c:663
+msgid "Create Share"
+msgstr "Utwórz Wspó³udzia³"
+
+#: web/swat.c:708
+msgid "password change in demo mode rejected\n"
+msgstr "zmiana has³a w trybie demo odrzucona\n"
+
+#: web/swat.c:747
+msgid " Must specify \"User Name\" \n"
+msgstr " Musisz podaæ \"Nazwê U¿ytkownika\" \n"
+
+#: web/swat.c:763
+msgid " Must specify \"Old Password\" \n"
+msgstr " Musisz podaæ \"Stare Has³o\" \n"
+
+#: web/swat.c:769
+msgid " Must specify \"Remote Machine\" \n"
+msgstr " Musisz podaæ \"Zdaln± Maszynê\" \n"
+
+#: web/swat.c:776
+msgid " Must specify \"New, and Re-typed Passwords\" \n"
+msgstr " Musisz podaæ \"Nowe Has³o, i ponownie wpisane Nowe Has³o\" \n"
+
+#: web/swat.c:782
+msgid " Re-typed password didn't match new password\n"
+msgstr " Ponownie wpisane has³o nie pasuje do nowego has³a\n"
+
+#: web/swat.c:812
+#, c-format
+msgid " The passwd for '%s' has been changed. \n"
+msgstr " Has³o dla '%s' zosta³o zmienione. \n"
+
+#: web/swat.c:814
+#, c-format
+msgid " The passwd for '%s' has NOT been changed. \n"
+msgstr " Has³o dla '%s' NIE zosta³o zmienione. \n"
+
+#: web/swat.c:838
+msgid "Server Password Management"
+msgstr "Zarz±dzanie Has³ami na Serwerze"
+
+#.
+#. * Create all the dialog boxes for data collection
+#.
+#: web/swat.c:847 web/swat.c:894
+msgid " User Name : "
+msgstr " Nazwa U¿ytkownika : "
+
+#: web/swat.c:850 web/swat.c:896
+msgid " Old Password : "
+msgstr " Stare Has³o : "
+
+#: web/swat.c:853 web/swat.c:898
+msgid " New Password : "
+msgstr " Nowe Has³o : "
+
+#: web/swat.c:855 web/swat.c:900
+msgid " Re-type New Password : "
+msgstr " Ponownie wpisz Nowe Has³o : "
+
+#: web/swat.c:863 web/swat.c:911
+msgid "Change Password"
+msgstr "Zmieñ Has³o"
+
+#: web/swat.c:866
+msgid "Add New User"
+msgstr "Dodaj Nowego U¿ytkownika"
+
+#: web/swat.c:868
+msgid "Delete User"
+msgstr "Usuñ U¿ytkownika"
+
+#: web/swat.c:870
+msgid "Disable User"
+msgstr "Zablokuj U¿ytkownika"
+
+#: web/swat.c:872
+msgid "Enable User"
+msgstr "Odblokuj U¿ytkownika"
+
+#: web/swat.c:885
+msgid "Client/Server Password Management"
+msgstr "Zarz±dzanie Has³ami Klient/Serwer"
+
+#: web/swat.c:902
+msgid " Remote Machine : "
+msgstr " Zdalna Maszyna : "
+
+#: web/swat.c:940
+msgid "Printer Parameters"
+msgstr "Parametry Drukarki"
+
+#: web/swat.c:942
+msgid "Important Note:"
+msgstr "Wa¿na Informacja:"
+
+#: web/swat.c:943
+msgid "Printer names marked with [*] in the Choose Printer drop-down box "
+msgstr "Nazwy Drukarek zaznaczone [*] w rozwijanym polu Wybierz Drukarkê "
+
+#: web/swat.c:944
+msgid "are autoloaded printers from "
+msgstr "s± drukarkami automatycznie ³adowanymi z "
+
+#: web/swat.c:945
+msgid "Printcap Name"
+msgstr "Nazwa Printcap"
+
+#: web/swat.c:946
+msgid "Attempting to delete these printers from SWAT will have no effect.\n"
+msgstr "Próby usuniêcia tych drukarek ze SWAT nie przynios± efektu.\n"
+
+#: web/swat.c:980
+msgid "Choose Printer"
+msgstr "Wybierz Drukarkê"
+
+#: web/swat.c:999
+msgid "Delete Printer"
+msgstr "Usuñ Drukarkê"
+
+#: web/swat.c:1006
+msgid "Create Printer"
+msgstr "Utwórz Drukarkê"
+
+#: web/statuspage.c:40
+msgid "DENY_NONE"
+msgstr ""
+
+#: web/statuspage.c:41
+msgid "DENY_ALL "
+msgstr ""
+
+#: web/statuspage.c:42
+msgid "DENY_DOS "
+msgstr ""
+
+#: web/statuspage.c:43
+msgid "DENY_READ "
+msgstr ""
+
+#: web/statuspage.c:44
+msgid "DENY_WRITE "
+msgstr ""
+
+#: web/statuspage.c:50
+msgid "RDONLY "
+msgstr ""
+
+#: web/statuspage.c:51
+msgid "WRONLY "
+msgstr ""
+
+#: web/statuspage.c:52
+msgid "RDWR "
+msgstr ""
+
+#: web/statuspage.c:60
+msgid "EXCLUSIVE+BATCH "
+msgstr ""
+
+#: web/statuspage.c:62
+msgid "EXCLUSIVE "
+msgstr ""
+
+#: web/statuspage.c:64
+msgid "BATCH "
+msgstr ""
+
+#: web/statuspage.c:66
+msgid "LEVEL_II "
+msgstr ""
+
+#: web/statuspage.c:68
+msgid "NONE "
+msgstr ""
+
+#: web/statuspage.c:195
+msgid "Server Status"
+msgstr "Status Serwera"
+
+#: web/statuspage.c:200
+msgid "Auto Refresh"
+msgstr "Automatyczne Od¶wie¿anie"
+
+#: web/statuspage.c:201 web/statuspage.c:206
+msgid "Refresh Interval: "
+msgstr "Interwa³ Od¶wie¿ania: "
+
+#: web/statuspage.c:205
+msgid "Stop Refreshing"
+msgstr "Zatrzymaj Od¶wie¿anie"
+
+#: web/statuspage.c:220
+msgid "version:"
+msgstr "wersja:"
+
+#: web/statuspage.c:223
+msgid "smbd:"
+msgstr ""
+
+#: web/statuspage.c:223 web/statuspage.c:235
+msgid "running"
+msgstr "dzia³a"
+
+#: web/statuspage.c:223 web/statuspage.c:235
+msgid "not running"
+msgstr "nie dzia³a"
+
+#: web/statuspage.c:226
+msgid "Stop smbd"
+msgstr "Zatrzymaj smbd"
+
+#: web/statuspage.c:228
+msgid "Start smbd"
+msgstr "Uruchom smbd"
+
+#: web/statuspage.c:230
+msgid "Restart smbd"
+msgstr "Zrestartuj smbd"
+
+#: web/statuspage.c:235
+msgid "nmbd:"
+msgstr ""
+
+#: web/statuspage.c:238
+msgid "Stop nmbd"
+msgstr "Zatrzymaj nmbd"
+
+#: web/statuspage.c:240
+msgid "Start nmbd"
+msgstr "Uruchom nmbd"
+
+#: web/statuspage.c:242
+msgid "Restart nmbd"
+msgstr "Zrestartuj nmbd"
+
+#: web/statuspage.c:249
+msgid "Active Connections"
+msgstr "Aktywne Po³±czenia"
+
+#: web/statuspage.c:251 web/statuspage.c:264 web/statuspage.c:272
+msgid "PID"
+msgstr ""
+
+#: web/statuspage.c:251 web/statuspage.c:264
+msgid "Client"
+msgstr "Klient"
+
+#: web/statuspage.c:251
+msgid "IP address"
+msgstr "adres IP"
+
+#: web/statuspage.c:251 web/statuspage.c:264 web/statuspage.c:272
+msgid "Date"
+msgstr "Data"
+
+#: web/statuspage.c:253
+msgid "Kill"
+msgstr "Zatrzymaj"
+
+#: web/statuspage.c:261
+msgid "Active Shares"
+msgstr "Aktywne Wspó³udzia³y"
+
+#: web/statuspage.c:264
+msgid "Share"
+msgstr "Wspó³udzia³"
+
+#: web/statuspage.c:264
+msgid "User"
+msgstr "U¿ytkownik"
+
+#: web/statuspage.c:264
+msgid "Group"
+msgstr "Grupa"
+
+#: web/statuspage.c:270
+msgid "Open Files"
+msgstr "Otwarte Pliki"
+
+#: web/statuspage.c:272
+msgid "Sharing"
+msgstr "Wspó³dzielenie"
+
+#: web/statuspage.c:272
+msgid "R/W"
+msgstr ""
+
+#: web/statuspage.c:272
+msgid "Oplock"
+msgstr ""
+
+#: web/statuspage.c:272
+msgid "File"
+msgstr "Plik"
+
+#: param/loadparm.c:641
+msgid "Base Options"
+msgstr "Bazowe Opcje"
+
+#: param/loadparm.c:643
+#, fuzzy
+msgid "dos charset"
+msgstr "Wybierz Wspó³udzia³"
+
+#: param/loadparm.c:644
+msgid "unix charset"
+msgstr ""
+
+#: param/loadparm.c:645
+msgid "display charset"
+msgstr ""
+
+#: param/loadparm.c:646
+msgid "comment"
+msgstr ""
+
+#: param/loadparm.c:647
+msgid "path"
+msgstr ""
+
+#: param/loadparm.c:648
+msgid "directory"
+msgstr ""
+
+#: param/loadparm.c:649
+msgid "workgroup"
+msgstr ""
+
+#: param/loadparm.c:650
+msgid "netbios name"
+msgstr ""
+
+#: param/loadparm.c:651
+msgid "netbios aliases"
+msgstr ""
+
+#: param/loadparm.c:652
+msgid "netbios scope"
+msgstr ""
+
+#: param/loadparm.c:653
+msgid "server string"
+msgstr ""
+
+#: param/loadparm.c:654
+#, fuzzy
+msgid "interfaces"
+msgstr "Drukarki"
+
+#: param/loadparm.c:655
+msgid "bind interfaces only"
+msgstr ""
+
+#: param/loadparm.c:657
+msgid "Security Options"
+msgstr "Opcje Zabezpieczeñ"
+
+#: param/loadparm.c:659
+msgid "security"
+msgstr ""
+
+#: param/loadparm.c:660
+msgid "encrypt passwords"
+msgstr ""
+
+#: param/loadparm.c:661
+msgid "update encrypted"
+msgstr ""
+
+#: param/loadparm.c:662
+msgid "allow trusted domains"
+msgstr ""
+
+#: param/loadparm.c:663
+msgid "alternate permissions"
+msgstr ""
+
+#: param/loadparm.c:664
+msgid "hosts equiv"
+msgstr ""
+
+#: param/loadparm.c:665
+msgid "min passwd length"
+msgstr ""
+
+#: param/loadparm.c:666
+msgid "min password length"
+msgstr ""
+
+#: param/loadparm.c:667
+msgid "map to guest"
+msgstr ""
+
+#: param/loadparm.c:668
+#, fuzzy
+msgid "null passwords"
+msgstr "Zmieñ Has³o"
+
+#: param/loadparm.c:669
+msgid "obey pam restrictions"
+msgstr ""
+
+#: param/loadparm.c:670
+msgid "password server"
+msgstr ""
+
+#: param/loadparm.c:671
+msgid "smb passwd file"
+msgstr ""
+
+#: param/loadparm.c:672
+msgid "private dir"
+msgstr ""
+
+#: param/loadparm.c:673
+msgid "passdb module path"
+msgstr ""
+
+#: param/loadparm.c:674
+msgid "root directory"
+msgstr ""
+
+#: param/loadparm.c:675
+msgid "root dir"
+msgstr ""
+
+#: param/loadparm.c:676
+msgid "root"
+msgstr ""
+
+#: param/loadparm.c:678
+#, fuzzy
+msgid "pam password change"
+msgstr "Zarz±dzanie Has³ami"
+
+#: param/loadparm.c:679
+msgid "passwd program"
+msgstr ""
+
+#: param/loadparm.c:680
+msgid "passwd chat"
+msgstr ""
+
+#: param/loadparm.c:681
+msgid "passwd chat debug"
+msgstr ""
+
+#: param/loadparm.c:682
+msgid "username map"
+msgstr ""
+
+#: param/loadparm.c:683
+#, fuzzy
+msgid "password level"
+msgstr "Zarz±dzanie Has³ami"
+
+#: param/loadparm.c:684
+msgid "username level"
+msgstr ""
+
+#: param/loadparm.c:685
+msgid "unix password sync"
+msgstr ""
+
+#: param/loadparm.c:686
+msgid "restrict anonymous"
+msgstr ""
+
+#: param/loadparm.c:687
+msgid "lanman auth"
+msgstr ""
+
+#: param/loadparm.c:688
+msgid "ntlm auth"
+msgstr ""
+
+#: param/loadparm.c:689
+msgid "plaintext to smbpasswd"
+msgstr ""
+
+#: param/loadparm.c:690
+msgid "use rhosts"
+msgstr ""
+
+#: param/loadparm.c:692
+msgid "username"
+msgstr ""
+
+#: param/loadparm.c:693
+#, fuzzy
+msgid "user"
+msgstr "U¿ytkownik"
+
+#: param/loadparm.c:694
+#, fuzzy
+msgid "users"
+msgstr "U¿ytkownik"
+
+#: param/loadparm.c:696
+msgid "guest account"
+msgstr ""
+
+#: param/loadparm.c:697
+msgid "invalid users"
+msgstr ""
+
+#: param/loadparm.c:698
+msgid "valid users"
+msgstr ""
+
+#: param/loadparm.c:699
+msgid "admin users"
+msgstr ""
+
+#: param/loadparm.c:700
+msgid "read list"
+msgstr ""
+
+#: param/loadparm.c:701
+msgid "write list"
+msgstr ""
+
+#: param/loadparm.c:702
+msgid "printer admin"
+msgstr ""
+
+#: param/loadparm.c:703
+msgid "force user"
+msgstr ""
+
+#: param/loadparm.c:704
+msgid "force group"
+msgstr ""
+
+#: param/loadparm.c:705
+#, fuzzy
+msgid "group"
+msgstr "Grupa"
+
+#: param/loadparm.c:707
+msgid "read only"
+msgstr ""
+
+#: param/loadparm.c:708
+msgid "write ok"
+msgstr ""
+
+#: param/loadparm.c:709
+msgid "writeable"
+msgstr ""
+
+#: param/loadparm.c:710
+msgid "writable"
+msgstr ""
+
+#: param/loadparm.c:712
+#, fuzzy
+msgid "create mask"
+msgstr "Utwórz Wspó³udzia³"
+
+#: param/loadparm.c:713
+#, fuzzy
+msgid "create mode"
+msgstr "Utwórz Wspó³udzia³"
+
+#: param/loadparm.c:714
+msgid "force create mode"
+msgstr ""
+
+#: param/loadparm.c:715
+#, fuzzy
+msgid "security mask"
+msgstr "Opcje Zabezpieczeñ"
+
+#: param/loadparm.c:716
+msgid "force security mode"
+msgstr ""
+
+#: param/loadparm.c:717
+msgid "directory mask"
+msgstr ""
+
+#: param/loadparm.c:718
+msgid "directory mode"
+msgstr ""
+
+#: param/loadparm.c:719
+msgid "force directory mode"
+msgstr ""
+
+#: param/loadparm.c:720
+msgid "directory security mask"
+msgstr ""
+
+#: param/loadparm.c:721
+msgid "force directory security mode"
+msgstr ""
+
+#: param/loadparm.c:722
+msgid "inherit permissions"
+msgstr ""
+
+#: param/loadparm.c:723
+msgid "guest only"
+msgstr ""
+
+#: param/loadparm.c:724
+msgid "only guest"
+msgstr ""
+
+#: param/loadparm.c:726
+msgid "guest ok"
+msgstr ""
+
+#: param/loadparm.c:727
+msgid "public"
+msgstr ""
+
+#: param/loadparm.c:729
+#, fuzzy
+msgid "only user"
+msgstr "Odblokuj U¿ytkownika"
+
+#: param/loadparm.c:730
+msgid "hosts allow"
+msgstr ""
+
+#: param/loadparm.c:731
+msgid "allow hosts"
+msgstr ""
+
+#: param/loadparm.c:732
+msgid "hosts deny"
+msgstr ""
+
+#: param/loadparm.c:733
+msgid "deny hosts"
+msgstr ""
+
+#: param/loadparm.c:736
+msgid "Secure Socket Layer Options"
+msgstr "Opcje SSL"
+
+#: param/loadparm.c:737
+msgid "ssl"
+msgstr ""
+
+#: param/loadparm.c:739
+msgid "ssl hosts"
+msgstr ""
+
+#: param/loadparm.c:740
+msgid "ssl hosts resign"
+msgstr ""
+
+#: param/loadparm.c:741
+msgid "ssl CA certDir"
+msgstr ""
+
+#: param/loadparm.c:742
+msgid "ssl CA certFile"
+msgstr ""
+
+#: param/loadparm.c:743
+msgid "ssl server cert"
+msgstr ""
+
+#: param/loadparm.c:744
+msgid "ssl server key"
+msgstr ""
+
+#: param/loadparm.c:745
+msgid "ssl client cert"
+msgstr ""
+
+#: param/loadparm.c:746
+msgid "ssl client key"
+msgstr ""
+
+#: param/loadparm.c:747
+msgid "ssl require clientcert"
+msgstr ""
+
+#: param/loadparm.c:748
+msgid "ssl require servercert"
+msgstr ""
+
+#: param/loadparm.c:749
+msgid "ssl ciphers"
+msgstr ""
+
+#: param/loadparm.c:750
+#, fuzzy
+msgid "ssl version"
+msgstr "wersja:"
+
+#: param/loadparm.c:751
+msgid "ssl compatibility"
+msgstr ""
+
+#: param/loadparm.c:754
+#, fuzzy
+msgid "Logging Options"
+msgstr "Opcje Blokowania"
+
+#: param/loadparm.c:755
+msgid "log level"
+msgstr ""
+
+#: param/loadparm.c:756
+msgid "debuglevel"
+msgstr ""
+
+#: param/loadparm.c:757
+msgid "syslog"
+msgstr ""
+
+#: param/loadparm.c:758
+msgid "syslog only"
+msgstr ""
+
+#: param/loadparm.c:759
+msgid "log file"
+msgstr ""
+
+#: param/loadparm.c:761
+msgid "max log size"
+msgstr ""
+
+#: param/loadparm.c:762
+msgid "timestamp logs"
+msgstr ""
+
+#: param/loadparm.c:763
+msgid "debug timestamp"
+msgstr ""
+
+#: param/loadparm.c:764
+msgid "debug hires timestamp"
+msgstr ""
+
+#: param/loadparm.c:765
+msgid "debug pid"
+msgstr ""
+
+#: param/loadparm.c:766
+msgid "debug uid"
+msgstr ""
+
+#: param/loadparm.c:768
+msgid "Protocol Options"
+msgstr "Opcje Protoko³u"
+
+#: param/loadparm.c:770
+msgid "protocol"
+msgstr ""
+
+#: param/loadparm.c:771
+msgid "large readwrite"
+msgstr ""
+
+#: param/loadparm.c:772
+msgid "max protocol"
+msgstr ""
+
+#: param/loadparm.c:773
+msgid "min protocol"
+msgstr ""
+
+#: param/loadparm.c:774
+msgid "unicode"
+msgstr ""
+
+#: param/loadparm.c:775
+msgid "read bmpx"
+msgstr ""
+
+#: param/loadparm.c:776
+msgid "read raw"
+msgstr ""
+
+#: param/loadparm.c:777
+msgid "write raw"
+msgstr ""
+
+#: param/loadparm.c:779
+msgid "nt smb support"
+msgstr ""
+
+#: param/loadparm.c:780
+msgid "nt pipe support"
+msgstr ""
+
+#: param/loadparm.c:781
+msgid "nt acl support"
+msgstr ""
+
+#: param/loadparm.c:782
+msgid "announce version"
+msgstr ""
+
+#: param/loadparm.c:783
+msgid "announce as"
+msgstr ""
+
+#: param/loadparm.c:784
+msgid "max mux"
+msgstr ""
+
+#: param/loadparm.c:785
+msgid "max xmit"
+msgstr ""
+
+#: param/loadparm.c:787
+msgid "name resolve order"
+msgstr ""
+
+#: param/loadparm.c:788
+msgid "max packet"
+msgstr ""
+
+#: param/loadparm.c:789
+msgid "packet size"
+msgstr ""
+
+#: param/loadparm.c:790
+msgid "max ttl"
+msgstr ""
+
+#: param/loadparm.c:791
+msgid "max wins ttl"
+msgstr ""
+
+#: param/loadparm.c:792
+msgid "min wins ttl"
+msgstr ""
+
+#: param/loadparm.c:793
+msgid "time server"
+msgstr ""
+
+#: param/loadparm.c:795
+msgid "Tuning Options"
+msgstr "Opcje Dostrajaj±ce"
+
+#: param/loadparm.c:797
+msgid "change notify timeout"
+msgstr ""
+
+#: param/loadparm.c:798
+msgid "deadtime"
+msgstr ""
+
+#: param/loadparm.c:799
+msgid "getwd cache"
+msgstr ""
+
+#: param/loadparm.c:800
+msgid "keepalive"
+msgstr ""
+
+#: param/loadparm.c:802
+msgid "lpq cache time"
+msgstr ""
+
+#: param/loadparm.c:803
+msgid "max smbd processes"
+msgstr ""
+
+#: param/loadparm.c:804
+#, fuzzy
+msgid "max connections"
+msgstr "Aktywne Po³±czenia"
+
+#: param/loadparm.c:805
+msgid "paranoid server security"
+msgstr ""
+
+#: param/loadparm.c:806
+msgid "max disk size"
+msgstr ""
+
+#: param/loadparm.c:807
+#, fuzzy
+msgid "max open files"
+msgstr "Otwarte Pliki"
+
+#: param/loadparm.c:808
+msgid "min print space"
+msgstr ""
+
+#: param/loadparm.c:809
+msgid "read size"
+msgstr ""
+
+#: param/loadparm.c:811
+#, fuzzy
+msgid "socket options"
+msgstr "Bazowe Opcje"
+
+#: param/loadparm.c:812
+msgid "stat cache size"
+msgstr ""
+
+#: param/loadparm.c:813
+msgid "strict allocate"
+msgstr ""
+
+#: param/loadparm.c:814
+msgid "strict sync"
+msgstr ""
+
+#: param/loadparm.c:815
+msgid "sync always"
+msgstr ""
+
+#: param/loadparm.c:816
+msgid "use mmap"
+msgstr ""
+
+#: param/loadparm.c:817
+msgid "hostname lookups"
+msgstr ""
+
+#: param/loadparm.c:818
+msgid "write cache size"
+msgstr ""
+
+#: param/loadparm.c:820
+msgid "Printing Options"
+msgstr "Opcje Drukowania"
+
+#: param/loadparm.c:822
+msgid "total print jobs"
+msgstr ""
+
+#: param/loadparm.c:823
+msgid "max print jobs"
+msgstr ""
+
+#: param/loadparm.c:824
+#, fuzzy
+msgid "load printers"
+msgstr "Drukarki"
+
+#: param/loadparm.c:825
+#, fuzzy
+msgid "printcap name"
+msgstr "Nazwa Printcap"
+
+#: param/loadparm.c:826
+#, fuzzy
+msgid "printcap"
+msgstr "Nazwa Printcap"
+
+#: param/loadparm.c:827
+msgid "printable"
+msgstr ""
+
+#: param/loadparm.c:828
+msgid "print ok"
+msgstr ""
+
+#: param/loadparm.c:829
+msgid "postscript"
+msgstr ""
+
+#: param/loadparm.c:830
+#, fuzzy
+msgid "printing"
+msgstr "dzia³a"
+
+#: param/loadparm.c:831
+msgid "print command"
+msgstr ""
+
+#: param/loadparm.c:832
+msgid "disable spoolss"
+msgstr ""
+
+#: param/loadparm.c:833
+msgid "lpq command"
+msgstr ""
+
+#: param/loadparm.c:834
+msgid "lprm command"
+msgstr ""
+
+#: param/loadparm.c:835
+msgid "lppause command"
+msgstr ""
+
+#: param/loadparm.c:836
+msgid "lpresume command"
+msgstr ""
+
+#: param/loadparm.c:837
+msgid "queuepause command"
+msgstr ""
+
+#: param/loadparm.c:838
+msgid "queueresume command"
+msgstr ""
+
+#: param/loadparm.c:840
+msgid "enumports command"
+msgstr ""
+
+#: param/loadparm.c:841
+msgid "addprinter command"
+msgstr ""
+
+#: param/loadparm.c:842
+#, fuzzy
+msgid "deleteprinter command"
+msgstr "Usuñ Drukarkê"
+
+#: param/loadparm.c:843
+msgid "show add printer wizard"
+msgstr ""
+
+#: param/loadparm.c:844
+msgid "os2 driver map"
+msgstr ""
+
+#: param/loadparm.c:846
+#, fuzzy
+msgid "printer name"
+msgstr "Parametry Drukarki"
+
+#: param/loadparm.c:847
+#, fuzzy
+msgid "printer"
+msgstr "Drukarki"
+
+#: param/loadparm.c:848
+msgid "use client driver"
+msgstr ""
+
+#: param/loadparm.c:849
+#, fuzzy
+msgid "printer driver"
+msgstr "Parametry Drukarki"
+
+#: param/loadparm.c:850
+msgid "printer driver file"
+msgstr ""
+
+#: param/loadparm.c:851
+msgid "printer driver location"
+msgstr ""
+
+#: param/loadparm.c:853
+msgid "Filename Handling"
+msgstr "Obs³uga Nazw Plików"
+
+#: param/loadparm.c:854
+msgid "strip dot"
+msgstr ""
+
+#: param/loadparm.c:856
+msgid "mangled stack"
+msgstr ""
+
+#: param/loadparm.c:857
+msgid "default case"
+msgstr ""
+
+#: param/loadparm.c:858
+msgid "case sensitive"
+msgstr ""
+
+#: param/loadparm.c:859
+msgid "casesignames"
+msgstr ""
+
+#: param/loadparm.c:860
+msgid "preserve case"
+msgstr ""
+
+#: param/loadparm.c:861
+msgid "short preserve case"
+msgstr ""
+
+#: param/loadparm.c:862
+msgid "mangle case"
+msgstr ""
+
+#: param/loadparm.c:863
+msgid "mangling char"
+msgstr ""
+
+#: param/loadparm.c:864
+msgid "hide dot files"
+msgstr ""
+
+#: param/loadparm.c:865
+msgid "hide unreadable"
+msgstr ""
+
+#: param/loadparm.c:866
+msgid "delete veto files"
+msgstr ""
+
+#: param/loadparm.c:867
+#, fuzzy
+msgid "veto files"
+msgstr "Otwarte Pliki"
+
+#: param/loadparm.c:868
+#, fuzzy
+msgid "hide files"
+msgstr "Otwarte Pliki"
+
+#: param/loadparm.c:869
+msgid "veto oplock files"
+msgstr ""
+
+#: param/loadparm.c:870
+msgid "map system"
+msgstr ""
+
+#: param/loadparm.c:871
+msgid "map hidden"
+msgstr ""
+
+#: param/loadparm.c:872
+msgid "map archive"
+msgstr ""
+
+#: param/loadparm.c:873
+msgid "mangled names"
+msgstr ""
+
+#: param/loadparm.c:874
+msgid "mangled map"
+msgstr ""
+
+#: param/loadparm.c:875
+msgid "stat cache"
+msgstr ""
+
+#: param/loadparm.c:877
+msgid "Domain Options"
+msgstr "Opcje Domeny"
+
+#: param/loadparm.c:879
+msgid "domain admin group"
+msgstr ""
+
+#: param/loadparm.c:880
+msgid "domain guest group"
+msgstr ""
+
+#: param/loadparm.c:883
+msgid "groupname map"
+msgstr ""
+
+#: param/loadparm.c:886
+msgid "machine password timeout"
+msgstr ""
+
+#: param/loadparm.c:888
+msgid "Logon Options"
+msgstr "Opcje Logowania"
+
+#: param/loadparm.c:890
+msgid "add user script"
+msgstr ""
+
+#: param/loadparm.c:891
+#, fuzzy
+msgid "delete user script"
+msgstr "Usuñ U¿ytkownika"
+
+#: param/loadparm.c:892
+msgid "add group script"
+msgstr ""
+
+#: param/loadparm.c:893
+msgid "delete group script"
+msgstr ""
+
+#: param/loadparm.c:894
+msgid "add user to group script"
+msgstr ""
+
+#: param/loadparm.c:895
+msgid "delete user from group script"
+msgstr ""
+
+#: param/loadparm.c:896
+msgid "add machine script"
+msgstr ""
+
+#: param/loadparm.c:897
+msgid "shutdown script"
+msgstr ""
+
+#: param/loadparm.c:898
+msgid "abort shutdown script"
+msgstr ""
+
+#: param/loadparm.c:900
+msgid "logon script"
+msgstr ""
+
+#: param/loadparm.c:901
+#, fuzzy
+msgid "logon path"
+msgstr "Opcje Logowania"
+
+#: param/loadparm.c:902
+msgid "logon drive"
+msgstr ""
+
+#: param/loadparm.c:903
+msgid "logon home"
+msgstr ""
+
+#: param/loadparm.c:904
+#, fuzzy
+msgid "domain logons"
+msgstr "Opcje Domeny"
+
+#: param/loadparm.c:906
+msgid "Browse Options"
+msgstr "Opcje Przegl±dania"
+
+#: param/loadparm.c:908
+msgid "os level"
+msgstr ""
+
+#: param/loadparm.c:909
+msgid "lm announce"
+msgstr ""
+
+#: param/loadparm.c:910
+msgid "lm interval"
+msgstr ""
+
+#: param/loadparm.c:911
+msgid "preferred master"
+msgstr ""
+
+#: param/loadparm.c:912
+msgid "prefered master"
+msgstr ""
+
+#: param/loadparm.c:913
+msgid "local master"
+msgstr ""
+
+#: param/loadparm.c:914
+msgid "domain master"
+msgstr ""
+
+#: param/loadparm.c:915
+#, fuzzy
+msgid "browse list"
+msgstr "Opcje Przegl±dania"
+
+#: param/loadparm.c:916
+msgid "browseable"
+msgstr ""
+
+#: param/loadparm.c:917
+msgid "browsable"
+msgstr ""
+
+#: param/loadparm.c:918
+msgid "enhanced browsing"
+msgstr ""
+
+#: param/loadparm.c:920
+msgid "WINS Options"
+msgstr "Opcje WINS"
+
+#: param/loadparm.c:921
+msgid "dns proxy"
+msgstr ""
+
+#: param/loadparm.c:922
+msgid "wins proxy"
+msgstr ""
+
+#: param/loadparm.c:924
+msgid "wins server"
+msgstr ""
+
+#: param/loadparm.c:925
+msgid "wins support"
+msgstr ""
+
+#: param/loadparm.c:926
+msgid "wins hook"
+msgstr ""
+
+#: param/loadparm.c:928
+msgid "Locking Options"
+msgstr "Opcje Blokowania"
+
+#: param/loadparm.c:930
+#, fuzzy
+msgid "blocking locks"
+msgstr "Opcje Blokowania"
+
+#: param/loadparm.c:931
+msgid "fake oplocks"
+msgstr ""
+
+#: param/loadparm.c:932
+msgid "kernel oplocks"
+msgstr ""
+
+#: param/loadparm.c:933
+msgid "locking"
+msgstr ""
+
+#: param/loadparm.c:935
+msgid "oplocks"
+msgstr ""
+
+#: param/loadparm.c:936
+msgid "level2 oplocks"
+msgstr ""
+
+#: param/loadparm.c:937
+msgid "oplock break wait time"
+msgstr ""
+
+#: param/loadparm.c:938
+msgid "oplock contention limit"
+msgstr ""
+
+#: param/loadparm.c:939
+msgid "posix locking"
+msgstr ""
+
+#: param/loadparm.c:940
+msgid "strict locking"
+msgstr ""
+
+#: param/loadparm.c:941
+msgid "share modes"
+msgstr ""
+
+#: param/loadparm.c:944
+msgid "Ldap Options"
+msgstr "Opcje Ldap"
+
+#: param/loadparm.c:946
+msgid "ldap server"
+msgstr ""
+
+#: param/loadparm.c:947
+msgid "ldap port"
+msgstr ""
+
+#: param/loadparm.c:948
+msgid "ldap suffix"
+msgstr ""
+
+#: param/loadparm.c:949
+msgid "ldap filter"
+msgstr ""
+
+#: param/loadparm.c:950
+msgid "ldap root"
+msgstr ""
+
+#: param/loadparm.c:951
+msgid "ldap root passwd"
+msgstr ""
+
+#: param/loadparm.c:954
+msgid "Miscellaneous Options"
+msgstr "Pozosta³e Opcje"
+
+#: param/loadparm.c:955
+msgid "add share command"
+msgstr ""
+
+#: param/loadparm.c:956
+msgid "change share command"
+msgstr ""
+
+#: param/loadparm.c:957
+#, fuzzy
+msgid "delete share command"
+msgstr "Usuñ Wspó³udzia³"
+
+#: param/loadparm.c:959
+msgid "config file"
+msgstr ""
+
+#: param/loadparm.c:960
+msgid "preload"
+msgstr ""
+
+#: param/loadparm.c:961
+#, fuzzy
+msgid "auto services"
+msgstr "Automatyczne Od¶wie¿anie"
+
+#: param/loadparm.c:962
+msgid "lock dir"
+msgstr ""
+
+#: param/loadparm.c:963
+msgid "lock directory"
+msgstr ""
+
+#: param/loadparm.c:965
+msgid "utmp directory"
+msgstr ""
+
+#: param/loadparm.c:966
+msgid "wtmp directory"
+msgstr ""
+
+#: param/loadparm.c:967
+msgid "utmp"
+msgstr ""
+
+#: param/loadparm.c:970
+msgid "default service"
+msgstr ""
+
+#: param/loadparm.c:971
+#, fuzzy
+msgid "default"
+msgstr "Ustaw domy¶lnie"
+
+#: param/loadparm.c:972
+msgid "message command"
+msgstr ""
+
+#: param/loadparm.c:973
+msgid "dfree command"
+msgstr ""
+
+#: param/loadparm.c:974
+msgid "remote announce"
+msgstr ""
+
+#: param/loadparm.c:975
+msgid "remote browse sync"
+msgstr ""
+
+#: param/loadparm.c:976
+#, fuzzy
+msgid "socket address"
+msgstr "adres IP"
+
+#: param/loadparm.c:977
+msgid "homedir map"
+msgstr ""
+
+#: param/loadparm.c:978
+msgid "time offset"
+msgstr ""
+
+#: param/loadparm.c:979
+msgid "NIS homedir"
+msgstr ""
+
+#: param/loadparm.c:980
+msgid "-valid"
+msgstr ""
+
+#: param/loadparm.c:982
+msgid "copy"
+msgstr ""
+
+#: param/loadparm.c:983
+msgid "include"
+msgstr ""
+
+#: param/loadparm.c:984
+msgid "exec"
+msgstr ""
+
+#: param/loadparm.c:985
+msgid "preexec"
+msgstr ""
+
+#: param/loadparm.c:987
+msgid "preexec close"
+msgstr ""
+
+#: param/loadparm.c:988
+msgid "postexec"
+msgstr ""
+
+#: param/loadparm.c:989
+msgid "root preexec"
+msgstr ""
+
+#: param/loadparm.c:990
+msgid "root preexec close"
+msgstr ""
+
+#: param/loadparm.c:991
+msgid "root postexec"
+msgstr ""
+
+#: param/loadparm.c:992
+msgid "available"
+msgstr ""
+
+#: param/loadparm.c:993
+#, fuzzy
+msgid "volume"
+msgstr "Strona domowa"
+
+#: param/loadparm.c:994
+msgid "fstype"
+msgstr ""
+
+#: param/loadparm.c:995
+msgid "set directory"
+msgstr ""
+
+#: param/loadparm.c:996
+msgid "source environment"
+msgstr ""
+
+#: param/loadparm.c:997
+msgid "wide links"
+msgstr ""
+
+#: param/loadparm.c:998
+msgid "follow symlinks"
+msgstr ""
+
+#: param/loadparm.c:999
+msgid "dont descend"
+msgstr ""
+
+#: param/loadparm.c:1000
+msgid "magic script"
+msgstr ""
+
+#: param/loadparm.c:1001
+msgid "magic output"
+msgstr ""
+
+#: param/loadparm.c:1002
+msgid "delete readonly"
+msgstr ""
+
+#: param/loadparm.c:1003
+msgid "dos filemode"
+msgstr ""
+
+#: param/loadparm.c:1004
+msgid "dos filetimes"
+msgstr ""
+
+#: param/loadparm.c:1005
+msgid "dos filetime resolution"
+msgstr ""
+
+#: param/loadparm.c:1007
+msgid "fake directory create times"
+msgstr ""
+
+#: param/loadparm.c:1008
+msgid "panic action"
+msgstr ""
+
+#: param/loadparm.c:1009
+msgid "hide local users"
+msgstr ""
+
+#: param/loadparm.c:1012
+#, fuzzy
+msgid "VFS options"
+msgstr "Opcje WINS"
+
+#: param/loadparm.c:1014
+msgid "vfs object"
+msgstr ""
+
+#: param/loadparm.c:1015
+#, fuzzy
+msgid "vfs options"
+msgstr "Bazowe Opcje"
+
+#: param/loadparm.c:1018
+msgid "msdfs root"
+msgstr ""
+
+#: param/loadparm.c:1019
+msgid "host msdfs"
+msgstr ""
+
+#: param/loadparm.c:1021
+#, fuzzy
+msgid "Winbind options"
+msgstr "Opcje Drukowania"
+
+#: param/loadparm.c:1023
+msgid "winbind uid"
+msgstr ""
+
+#: param/loadparm.c:1024
+msgid "winbind gid"
+msgstr ""
+
+#: param/loadparm.c:1025
+msgid "template homedir"
+msgstr ""
+
+#: param/loadparm.c:1026
+msgid "template shell"
+msgstr ""
+
+#: param/loadparm.c:1027
+msgid "winbind separator"
+msgstr ""
+
+#: param/loadparm.c:1028
+msgid "winbind cache time"
+msgstr ""
+
+#: param/loadparm.c:1029
+msgid "winbind enum users"
+msgstr ""
+
+#: param/loadparm.c:1030
+msgid "winbind enum groups"
+msgstr ""
+
+#~ msgid "failed to open %s for writing\n"
+#~ msgstr "nie uda³o siê otworzyæ %s do zapisu\n"
+
+#~ msgid "Can't reload %s\n"
+#~ msgstr "Nie mogê prze³adowaæ %s\n"
+
+#~ msgid "Can't setup password database vectors.\n"
+#~ msgstr "Nie mo¿na ustawiæ wektorów bazy hase³.\n"
+
+#~ msgid "You need to have status=yes in your smb config file\n"
+#~ msgstr "Musisz mieæ status=yes w swoim pliku konfiguracyjnym smb\n"
diff --git a/source3/po/stamp-cat-id b/source3/po/stamp-cat-id
new file mode 100644
index 0000000000..9788f70238
--- /dev/null
+++ b/source3/po/stamp-cat-id
@@ -0,0 +1 @@
+timestamp
diff --git a/source3/po/tr.gmo b/source3/po/tr.gmo
new file mode 100644
index 0000000000..a7a9ebb2df
--- /dev/null
+++ b/source3/po/tr.gmo
Binary files differ
diff --git a/source3/po/tr.po b/source3/po/tr.po
new file mode 100644
index 0000000000..6c2bc1f93d
--- /dev/null
+++ b/source3/po/tr.po
@@ -0,0 +1,1723 @@
+# Swat Turkish Translation
+# Copyright (C) 2001 Deniz Akkus Kanca
+# Deniz Akkus Kanca <deniz@arayan.com>, 2001.
+#
+# 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
+# the Free Software Foundation; either version 2 of the License, or
+# (at your option) any later version.
+#
+# This program 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 General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+msgid ""
+msgstr ""
+"Project-Id-Version: i18n_swat \n"
+"POT-Creation-Date: 2001-09-20 20:29+0900\n"
+"PO-Revision-Date: 2001-09-20 22:51EEST\n"
+"Last-Translator: Deniz Akkus Kanca <deniz@arayan.com>\n"
+"Language-Team: Turkish <gnu-tr-u12a@lists.sourceforge.net>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=ISO-8859-9\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Generator: KBabel 0.9.1\n"
+
+#: web/swat.c:120
+#, c-format
+msgid "ERROR: Can't open %s\n"
+msgstr "HATA: %s açılamadı\n"
+
+#.
+#. str = stripspace(parm->label);
+#. strlower (str); //monyo
+#. d_printf("<tr><td><A HREF=\"/swat/help/smb.conf.5.html#%s\" target=\"docs\">%s</A>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; %s</td><td>",
+#. str, _("Help"), parm->label);
+#.
+#: web/swat.c:211
+msgid "Help"
+msgstr "Yardım"
+
+#: web/swat.c:217 web/swat.c:231 web/swat.c:246 web/swat.c:254 web/swat.c:263
+#: web/swat.c:272 web/swat.c:278 web/swat.c:284 web/swat.c:297
+msgid "Set Default"
+msgstr "Öntanımlıya Ayarla"
+
+#: web/swat.c:502
+#, c-format
+msgid "Logged in as <b>%s</b><p>\n"
+msgstr "<b>%s</b> kimliği ile oturum açılmış<p>\n"
+
+#: web/swat.c:505
+msgid "Home"
+msgstr "Ev"
+
+#: web/swat.c:507
+msgid "Globals"
+msgstr "Evrenseller"
+
+#: web/swat.c:508
+msgid "Shares"
+msgstr "Paylaşımlar"
+
+#: web/swat.c:509
+msgid "Printers"
+msgstr "Yazıcılar"
+
+#: web/swat.c:512
+msgid "Status"
+msgstr "Durum"
+
+#: web/swat.c:513
+msgid "View Config"
+msgstr "Ayarlara Gözat"
+
+#: web/swat.c:515
+msgid "Password Management"
+msgstr "Şifre Yönetimi"
+
+#: web/swat.c:539
+msgid "Current Config"
+msgstr "Şimdiki Ayarlar"
+
+#: web/swat.c:543
+msgid "Normal View"
+msgstr "Normal Görünüm"
+
+#: web/swat.c:545
+msgid "Full View"
+msgstr "Tam Görünüm"
+
+#: web/swat.c:561
+msgid "Global Variables"
+msgstr "Genel Değişkenler"
+
+#: web/swat.c:575 web/swat.c:671 web/swat.c:1014
+msgid "Commit Changes"
+msgstr "Değişiklikleri Kaydet"
+
+#: web/swat.c:579 web/swat.c:674 web/swat.c:1016
+msgid "Reset Values"
+msgstr "Değerleri İlk Haline Getir"
+
+#: web/swat.c:581 web/swat.c:676 web/swat.c:1018
+msgid "Advanced View"
+msgstr "Gelişmiş Görünüm"
+
+#: web/swat.c:583 web/swat.c:678 web/swat.c:1020
+msgid "Basic View"
+msgstr "Temel Görünüm"
+
+#: web/swat.c:613
+msgid "Share Parameters"
+msgstr "Paylaşım Parametreleri"
+
+#: web/swat.c:642
+msgid "Choose Share"
+msgstr "Paylaşım Seçin"
+
+#: web/swat.c:656
+msgid "Delete Share"
+msgstr "Paylaşım Kaldır"
+
+#: web/swat.c:663
+msgid "Create Share"
+msgstr "Paylaşım Oluştur"
+
+#: web/swat.c:708
+msgid "password change in demo mode rejected\n"
+msgstr "demo kipinde şifre değişikliği kabul edilmedi\n"
+
+#: web/swat.c:747
+msgid " Must specify \"User Name\" \n"
+msgstr " \"Kullanıcı Adı\" belirtilmeli \n"
+
+#: web/swat.c:763
+msgid " Must specify \"Old Password\" \n"
+msgstr " \"Eski Şifre\" belirtilmeli \n"
+
+#: web/swat.c:769
+msgid " Must specify \"Remote Machine\" \n"
+msgstr " \"Uzak Makina\" belirtilmeli \n"
+
+#: web/swat.c:776
+msgid " Must specify \"New, and Re-typed Passwords\" \n"
+msgstr " \"Yeni ve Tekrar Girilmiş Şifreler\" belirtilmeli \n"
+
+#: web/swat.c:782
+msgid " Re-typed password didn't match new password\n"
+msgstr " Tekrar girilen şifre yeni şifre ile eşleşmedi\n"
+
+#: web/swat.c:812
+#, c-format
+msgid " The passwd for '%s' has been changed. \n"
+msgstr " '%s' için şifre değiştirildi. \n"
+
+#: web/swat.c:814
+#, c-format
+msgid " The passwd for '%s' has NOT been changed. \n"
+msgstr " '%s' için şifre DEĞİŞTİRİLMEDİ. \n"
+
+#: web/swat.c:838
+msgid "Server Password Management"
+msgstr "Sunucu Şifre Yönetimi"
+
+#.
+#. * Create all the dialog boxes for data collection
+#.
+#: web/swat.c:847 web/swat.c:894
+msgid " User Name : "
+msgstr " Kullanıcı Adı : "
+
+#: web/swat.c:850 web/swat.c:896
+msgid " Old Password : "
+msgstr " Eski Şifre : "
+
+#: web/swat.c:853 web/swat.c:898
+msgid " New Password : "
+msgstr " Yeni Şifre : "
+
+#: web/swat.c:855 web/swat.c:900
+msgid " Re-type New Password : "
+msgstr " Yeni Şifre Tekrarı : "
+
+#: web/swat.c:863 web/swat.c:911
+msgid "Change Password"
+msgstr "Şifre Değiştir"
+
+#: web/swat.c:866
+msgid "Add New User"
+msgstr "Kull. Ekle"
+
+#: web/swat.c:868
+msgid "Delete User"
+msgstr "Kull. Sil"
+
+#: web/swat.c:870
+msgid "Disable User"
+msgstr "Kull. Etkisizleştir"
+
+#: web/swat.c:872
+msgid "Enable User"
+msgstr "Kull. Etkinleştir"
+
+#: web/swat.c:885
+msgid "Client/Server Password Management"
+msgstr "İstemci/Sunucu Şifre Yönetimi"
+
+#: web/swat.c:902
+msgid " Remote Machine : "
+msgstr " Uzak Makina : "
+
+#: web/swat.c:940
+msgid "Printer Parameters"
+msgstr "Yazıcı Bilgileri"
+
+#: web/swat.c:942
+msgid "Important Note:"
+msgstr "Önemli Not: "
+
+#: web/swat.c:943
+msgid "Printer names marked with [*] in the Choose Printer drop-down box "
+msgstr "Yazıcı Seç kutusunda [*] ile işaretlenmiş yazıcı isimleri "
+
+#: web/swat.c:944
+msgid "are autoloaded printers from "
+msgstr "otomatik yüklenen yazıcılar "
+
+#: web/swat.c:945
+msgid "Printcap Name"
+msgstr "Printcap Adı"
+
+#: web/swat.c:946
+msgid "Attempting to delete these printers from SWAT will have no effect.\n"
+msgstr "Bu yazıcıları SWAT'dan silmek etkisiz olacaktır.\n"
+
+#: web/swat.c:980
+msgid "Choose Printer"
+msgstr "Yazıcı Seç"
+
+#: web/swat.c:999
+msgid "Delete Printer"
+msgstr "Yazıcı Sil"
+
+#: web/swat.c:1006
+msgid "Create Printer"
+msgstr "Yazıcı Oluştur"
+
+#: web/statuspage.c:40
+msgid "DENY_NONE"
+msgstr "HERKESE_AÇIK"
+
+#: web/statuspage.c:41
+msgid "DENY_ALL "
+msgstr "HERKESİ_REDDET "
+
+#: web/statuspage.c:42
+msgid "DENY_DOS "
+msgstr "DOSU_REDDET "
+
+#: web/statuspage.c:43
+msgid "DENY_READ "
+msgstr "OKU_REDDET "
+
+#: web/statuspage.c:44
+msgid "DENY_WRITE "
+msgstr "YAZ_REDDET "
+
+#: web/statuspage.c:50
+msgid "RDONLY "
+msgstr "SALTOKUNUR "
+
+#: web/statuspage.c:51
+msgid "WRONLY "
+msgstr "SALTYAZILIR "
+
+#: web/statuspage.c:52
+msgid "RDWR "
+msgstr "O/Y "
+
+#: web/statuspage.c:60
+msgid "EXCLUSIVE+BATCH "
+msgstr "ŞAHSİ+TOPTAN "
+
+#: web/statuspage.c:62
+msgid "EXCLUSIVE "
+msgstr "ŞAHSİ "
+
+#: web/statuspage.c:64
+msgid "BATCH "
+msgstr "TOPTAN "
+
+#: web/statuspage.c:66
+msgid "LEVEL_II "
+msgstr "SEVİYE_II "
+
+#: web/statuspage.c:68
+msgid "NONE "
+msgstr "HİÇ "
+
+#: web/statuspage.c:195
+msgid "Server Status"
+msgstr "Sunucu Durumu"
+
+#: web/statuspage.c:200
+msgid "Auto Refresh"
+msgstr "Oto Tazele"
+
+#: web/statuspage.c:201 web/statuspage.c:206
+msgid "Refresh Interval: "
+msgstr "Tazeleme Aralığı: "
+
+#: web/statuspage.c:205
+msgid "Stop Refreshing"
+msgstr "Tazelemeyi Durdur"
+
+#: web/statuspage.c:220
+msgid "version:"
+msgstr "sürüm:"
+
+#: web/statuspage.c:223
+msgid "smbd:"
+msgstr "smbd:"
+
+#: web/statuspage.c:223 web/statuspage.c:235
+msgid "running"
+msgstr "çalışıyor"
+
+#: web/statuspage.c:223 web/statuspage.c:235
+msgid "not running"
+msgstr "çalışmıyor"
+
+#: web/statuspage.c:226
+msgid "Stop smbd"
+msgstr "Smbd'yi durdur"
+
+#: web/statuspage.c:228
+msgid "Start smbd"
+msgstr "Smbd'yi çalıştır"
+
+#: web/statuspage.c:230
+msgid "Restart smbd"
+msgstr "Smbd'yi yeniden çalıştır"
+
+#: web/statuspage.c:235
+msgid "nmbd:"
+msgstr "nmbd:"
+
+#: web/statuspage.c:238
+msgid "Stop nmbd"
+msgstr "Nmbd'yi durdur"
+
+#: web/statuspage.c:240
+msgid "Start nmbd"
+msgstr "Nmbd'yi çalıştır"
+
+#: web/statuspage.c:242
+msgid "Restart nmbd"
+msgstr "Nmbd'yi yeniden çalıştır"
+
+#: web/statuspage.c:249
+msgid "Active Connections"
+msgstr "Aktif Bağlantılar"
+
+#: web/statuspage.c:251 web/statuspage.c:264 web/statuspage.c:272
+msgid "PID"
+msgstr "PID"
+
+#: web/statuspage.c:251 web/statuspage.c:264
+msgid "Client"
+msgstr "İstemci"
+
+#: web/statuspage.c:251
+msgid "IP address"
+msgstr "IP numarası"
+
+#: web/statuspage.c:251 web/statuspage.c:264 web/statuspage.c:272
+msgid "Date"
+msgstr "Tarih"
+
+#: web/statuspage.c:253
+msgid "Kill"
+msgstr "Kapat"
+
+#: web/statuspage.c:261
+msgid "Active Shares"
+msgstr "Aktif Paylaşımlar"
+
+#: web/statuspage.c:264
+msgid "Share"
+msgstr "Paylaşım"
+
+#: web/statuspage.c:264
+msgid "User"
+msgstr "Kullanıcı"
+
+#: web/statuspage.c:264
+msgid "Group"
+msgstr "Grup"
+
+#: web/statuspage.c:270
+msgid "Open Files"
+msgstr "Açık Dosyalar"
+
+#: web/statuspage.c:272
+msgid "Sharing"
+msgstr "Paylaşılıyor"
+
+#: web/statuspage.c:272
+msgid "R/W"
+msgstr "O/Y"
+
+#: web/statuspage.c:272
+msgid "Oplock"
+msgstr "Oplock"
+
+#: web/statuspage.c:272
+msgid "File"
+msgstr "Dosya"
+
+#: param/loadparm.c:641
+msgid "Base Options"
+msgstr "Temel Seçenekler"
+
+#: param/loadparm.c:643
+msgid "dos charset"
+msgstr "dos karakter kümesi"
+
+#: param/loadparm.c:644
+msgid "unix charset"
+msgstr "unix karakter kümesi"
+
+#: param/loadparm.c:645
+msgid "display charset"
+msgstr "karakter kümesini göster"
+
+#: param/loadparm.c:646
+msgid "comment"
+msgstr "açıklama"
+
+#: param/loadparm.c:647
+msgid "path"
+msgstr "yol"
+
+#: param/loadparm.c:648
+msgid "directory"
+msgstr "dizin"
+
+#: param/loadparm.c:649
+msgid "workgroup"
+msgstr "çalışma grubu"
+
+#: param/loadparm.c:650
+msgid "netbios name"
+msgstr "netbios adı"
+
+#: param/loadparm.c:651
+msgid "netbios aliases"
+msgstr "netbios rumuzları"
+
+#: param/loadparm.c:652
+msgid "netbios scope"
+msgstr "netbios kapsamı"
+
+#: param/loadparm.c:653
+msgid "server string"
+msgstr "sunucu dizgesi"
+
+#: param/loadparm.c:654
+msgid "interfaces"
+msgstr "arayüzler"
+
+#: param/loadparm.c:655
+msgid "bind interfaces only"
+msgstr "yalnızca arayüzleri bağla"
+
+#: param/loadparm.c:657
+msgid "Security Options"
+msgstr "Güvenlik Seçenekleri"
+
+#: param/loadparm.c:659
+msgid "security"
+msgstr "güvenlik"
+
+#: param/loadparm.c:660
+msgid "encrypt passwords"
+msgstr "şifreyi şifrele "
+
+#: param/loadparm.c:661
+msgid "update encrypted"
+msgstr "şifrelenmiş güncelle"
+
+#: param/loadparm.c:662
+msgid "allow trusted domains"
+msgstr "güvenli alanlara izin ver"
+
+#: param/loadparm.c:663
+msgid "alternate permissions"
+msgstr "başka izinler"
+
+#: param/loadparm.c:664
+msgid "hosts equiv"
+msgstr "hosts eşdeğerlisi"
+
+#: param/loadparm.c:665
+msgid "min passwd length"
+msgstr "en kısa şifre uzunluğu"
+
+#: param/loadparm.c:666
+msgid "min password length"
+msgstr "en kısa şifre uzunluğu"
+
+#: param/loadparm.c:667
+msgid "map to guest"
+msgstr "guest (misafir) kullanıcıya eşle"
+
+#: param/loadparm.c:668
+msgid "null passwords"
+msgstr "boş şifreler"
+
+#: param/loadparm.c:669
+msgid "obey pam restrictions"
+msgstr "pam kısıtlamalarına uy"
+
+#: param/loadparm.c:670
+msgid "password server"
+msgstr "şifre sunucusu"
+
+#: param/loadparm.c:671
+msgid "smb passwd file"
+msgstr "smb şifre dosyası"
+
+#: param/loadparm.c:672
+msgid "private dir"
+msgstr "özel dizin"
+
+#: param/loadparm.c:673
+msgid "passdb module path"
+msgstr "şifre veritabanı modül yolu"
+
+#: param/loadparm.c:674
+msgid "root directory"
+msgstr "kök dizin"
+
+#: param/loadparm.c:675
+msgid "root dir"
+msgstr "kök dizin"
+
+#: param/loadparm.c:676
+msgid "root"
+msgstr "kök"
+
+#: param/loadparm.c:678
+msgid "pam password change"
+msgstr "pam şifre değişikliği"
+
+#: param/loadparm.c:679
+msgid "passwd program"
+msgstr "şifre yazılımı"
+
+#: param/loadparm.c:680
+msgid "passwd chat"
+msgstr "şifre diyaloğu"
+
+#: param/loadparm.c:681
+msgid "passwd chat debug"
+msgstr "şifre diyalog hata ayıklaması"
+
+#: param/loadparm.c:682
+msgid "username map"
+msgstr "kullanıcı adı eşlemesi"
+
+#: param/loadparm.c:683
+msgid "password level"
+msgstr "şifre seviyesi"
+
+#: param/loadparm.c:684
+msgid "username level"
+msgstr "kullanıcı kimliği seviyesi"
+
+#: param/loadparm.c:685
+msgid "unix password sync"
+msgstr "unix şifre senkronizasyonu"
+
+#: param/loadparm.c:686
+msgid "restrict anonymous"
+msgstr "anonim erişimi kısıtla"
+
+#: param/loadparm.c:687
+msgid "lanman auth"
+msgstr "lanman auth"
+
+#: param/loadparm.c:688
+msgid "ntlm auth"
+msgstr "ntlm auth"
+
+#: param/loadparm.c:689
+msgid "plaintext to smbpasswd"
+msgstr "düz metinden smbpasswd'e"
+
+#: param/loadparm.c:690
+msgid "use rhosts"
+msgstr "rhosts kullan"
+
+#: param/loadparm.c:692
+msgid "username"
+msgstr "kullanıcı adı"
+
+#: param/loadparm.c:693
+msgid "user"
+msgstr "kullanıcı"
+
+#: param/loadparm.c:694
+msgid "users"
+msgstr "kullanıcılar"
+
+#: param/loadparm.c:696
+msgid "guest account"
+msgstr "misafir hesap"
+
+#: param/loadparm.c:697
+msgid "invalid users"
+msgstr "geçersiz kullanıcılar"
+
+#: param/loadparm.c:698
+msgid "valid users"
+msgstr "geçerli kullanıcılar"
+
+#: param/loadparm.c:699
+msgid "admin users"
+msgstr "yönetici kullanıcıları"
+
+#: param/loadparm.c:700
+msgid "read list"
+msgstr "okuma listesi"
+
+#: param/loadparm.c:701
+msgid "write list"
+msgstr "yazma listesi"
+
+#: param/loadparm.c:702
+msgid "printer admin"
+msgstr "yazıcı yönetimi"
+
+#: param/loadparm.c:703
+msgid "force user"
+msgstr "kullanıcıyı zorla"
+
+#: param/loadparm.c:704
+msgid "force group"
+msgstr "grubu zorla"
+
+#: param/loadparm.c:705
+msgid "group"
+msgstr "grup"
+
+#: param/loadparm.c:707
+msgid "read only"
+msgstr "salt okunur"
+
+#: param/loadparm.c:708
+msgid "write ok"
+msgstr "yazma tamam"
+
+#: param/loadparm.c:709
+msgid "writeable"
+msgstr "yazılabilir"
+
+#: param/loadparm.c:710
+msgid "writable"
+msgstr "yazılabilir"
+
+#: param/loadparm.c:712
+msgid "create mask"
+msgstr "oluşturma izinleri"
+
+#: param/loadparm.c:713
+msgid "create mode"
+msgstr "oluşturma kipi"
+
+#: param/loadparm.c:714
+msgid "force create mode"
+msgstr "oluşturma kipini zorla"
+
+#: param/loadparm.c:715
+msgid "security mask"
+msgstr "güvenlik izinleri"
+
+#: param/loadparm.c:716
+msgid "force security mode"
+msgstr "güvenlik kipini zorla"
+
+#: param/loadparm.c:717
+msgid "directory mask"
+msgstr "dizin izinleri"
+
+#: param/loadparm.c:718
+msgid "directory mode"
+msgstr "dizin kipi"
+
+#: param/loadparm.c:719
+msgid "force directory mode"
+msgstr "dizin kipini zorla"
+
+#: param/loadparm.c:720
+msgid "directory security mask"
+msgstr "dizin güvenlik izinleri"
+
+#: param/loadparm.c:721
+msgid "force directory security mode"
+msgstr "dizin güvenlik kipini zorla"
+
+#: param/loadparm.c:722
+msgid "inherit permissions"
+msgstr "izinleri ebeveynden al"
+
+#: param/loadparm.c:723
+msgid "guest only"
+msgstr "yalnız misafir"
+
+#: param/loadparm.c:724
+msgid "only guest"
+msgstr "yalnız misafir"
+
+#: param/loadparm.c:726
+msgid "guest ok"
+msgstr "misafir tamam"
+
+#: param/loadparm.c:727
+msgid "public"
+msgstr "genel"
+
+#: param/loadparm.c:729
+msgid "only user"
+msgstr "salt kullanıcı"
+
+#: param/loadparm.c:730
+msgid "hosts allow"
+msgstr "hosts izinli"
+
+#: param/loadparm.c:731
+msgid "allow hosts"
+msgstr "hosts izinli"
+
+#: param/loadparm.c:732
+msgid "hosts deny"
+msgstr "hosts izinsiz"
+
+#: param/loadparm.c:733
+msgid "deny hosts"
+msgstr "hosts izinsiz"
+
+#: param/loadparm.c:736
+msgid "Secure Socket Layer Options"
+msgstr "Güvenli Soket Katman Seçenekleri"
+
+#: param/loadparm.c:737
+msgid "ssl"
+msgstr "ssl"
+
+#: param/loadparm.c:739
+msgid "ssl hosts"
+msgstr "ssl hosts"
+
+#: param/loadparm.c:740
+msgid "ssl hosts resign"
+msgstr "ssl hosts istifa"
+
+#: param/loadparm.c:741
+msgid "ssl CA certDir"
+msgstr "ssl CA sertifika dizini"
+
+#: param/loadparm.c:742
+msgid "ssl CA certFile"
+msgstr "ssl CA sertifika dosyası"
+
+#: param/loadparm.c:743
+msgid "ssl server cert"
+msgstr "ssl sunucu sertifikası"
+
+#: param/loadparm.c:744
+msgid "ssl server key"
+msgstr "ssl sunucu anahtarı"
+
+#: param/loadparm.c:745
+msgid "ssl client cert"
+msgstr "ssl istemci sertifikası"
+
+#: param/loadparm.c:746
+msgid "ssl client key"
+msgstr "ssl istemci anahtarı"
+
+#: param/loadparm.c:747
+msgid "ssl require clientcert"
+msgstr "ssl istemci sertifikası iste"
+
+#: param/loadparm.c:748
+msgid "ssl require servercert"
+msgstr "ssl sunucu sertifikası iste"
+
+#: param/loadparm.c:749
+msgid "ssl ciphers"
+msgstr "ssl şifreleri"
+
+#: param/loadparm.c:750
+msgid "ssl version"
+msgstr "ssl sürümü"
+
+#: param/loadparm.c:751
+msgid "ssl compatibility"
+msgstr "ssl uyumluluğu"
+
+#: param/loadparm.c:754
+msgid "Logging Options"
+msgstr "Günlük Kaydı Seçenekleri"
+
+#: param/loadparm.c:755
+msgid "log level"
+msgstr "günlük seviyesi"
+
+#: param/loadparm.c:756
+msgid "debuglevel"
+msgstr "hata ayıklama seviyesi"
+
+#: param/loadparm.c:757
+msgid "syslog"
+msgstr "sistem günlüğü"
+
+#: param/loadparm.c:758
+msgid "syslog only"
+msgstr "salt sistem günlüğü"
+
+#: param/loadparm.c:759
+msgid "log file"
+msgstr "günlük dosyası"
+
+#: param/loadparm.c:761
+msgid "max log size"
+msgstr "maksimum günlük büyüklüğü"
+
+#: param/loadparm.c:762
+msgid "timestamp logs"
+msgstr "zaman damgası günlükleri"
+
+#: param/loadparm.c:763
+msgid "debug timestamp"
+msgstr "hata ayıklama zaman damgası"
+
+#: param/loadparm.c:764
+msgid "debug hires timestamp"
+msgstr "hata ayıklama yüksek çözünürlüklü zaman damgası"
+
+#: param/loadparm.c:765
+msgid "debug pid"
+msgstr "hata ayıklama pid"
+
+#: param/loadparm.c:766
+msgid "debug uid"
+msgstr "hata ayıklama uid"
+
+#: param/loadparm.c:768
+msgid "Protocol Options"
+msgstr "Protokol Seçenekleri"
+
+#: param/loadparm.c:770
+msgid "protocol"
+msgstr "protokol"
+
+#: param/loadparm.c:771
+msgid "large readwrite"
+msgstr "büyük oku/yaz"
+
+#: param/loadparm.c:772
+msgid "max protocol"
+msgstr "max protokol"
+
+#: param/loadparm.c:773
+msgid "min protocol"
+msgstr "min protokol"
+
+#: param/loadparm.c:774
+msgid "unicode"
+msgstr "unicode"
+
+#: param/loadparm.c:775
+msgid "read bmpx"
+msgstr "bmpx oku"
+
+#: param/loadparm.c:776
+msgid "read raw"
+msgstr "ham oku"
+
+#: param/loadparm.c:777
+msgid "write raw"
+msgstr "ham yaz"
+
+#: param/loadparm.c:779
+msgid "nt smb support"
+msgstr "nt smb desteği"
+
+#: param/loadparm.c:780
+msgid "nt pipe support"
+msgstr "nt verihattı desteği"
+
+#: param/loadparm.c:781
+msgid "nt acl support"
+msgstr "nt acl desteği"
+
+#: param/loadparm.c:782
+msgid "announce version"
+msgstr "sürümü bildir"
+
+#: param/loadparm.c:783
+msgid "announce as"
+msgstr "bildir"
+
+#: param/loadparm.c:784
+msgid "max mux"
+msgstr "maksimum mux"
+
+#: param/loadparm.c:785
+msgid "max xmit"
+msgstr "maksimum xmit"
+
+#: param/loadparm.c:787
+msgid "name resolve order"
+msgstr "ad çözümleme sırası"
+
+#: param/loadparm.c:788
+msgid "max packet"
+msgstr "maksimum paket"
+
+#: param/loadparm.c:789
+msgid "packet size"
+msgstr "paket büyüklüğü"
+
+#: param/loadparm.c:790
+msgid "max ttl"
+msgstr "maksimum ttl"
+
+#: param/loadparm.c:791
+msgid "max wins ttl"
+msgstr "maksimum wins ttl"
+
+#: param/loadparm.c:792
+msgid "min wins ttl"
+msgstr "minimum wins ttl"
+
+#: param/loadparm.c:793
+msgid "time server"
+msgstr "zaman sunucusu"
+
+#: param/loadparm.c:795
+msgid "Tuning Options"
+msgstr "Ayar Seçenekleri"
+
+#: param/loadparm.c:797
+msgid "change notify timeout"
+msgstr "zamanaşımı bildirmesini değiştir"
+
+#: param/loadparm.c:798
+msgid "deadtime"
+msgstr "ölüzaman"
+
+#: param/loadparm.c:799
+msgid "getwd cache"
+msgstr "getwd arabelleği"
+
+#: param/loadparm.c:800
+msgid "keepalive"
+msgstr "hayattatut"
+
+#: param/loadparm.c:802
+msgid "lpq cache time"
+msgstr "lpq arabellek zamanı"
+
+#: param/loadparm.c:803
+msgid "max smbd processes"
+msgstr "maksimum smbd süreci"
+
+#: param/loadparm.c:804
+msgid "max connections"
+msgstr "maksimum bağlantı"
+
+#: param/loadparm.c:805
+msgid "paranoid server security"
+msgstr "yüksek dereceli sunucu güvenliği"
+
+#: param/loadparm.c:806
+msgid "max disk size"
+msgstr "maksimum disk büyüklüğü"
+
+#: param/loadparm.c:807
+msgid "max open files"
+msgstr "maksimum açık dosya"
+
+#: param/loadparm.c:808
+msgid "min print space"
+msgstr "minimum yazma alanı"
+
+#: param/loadparm.c:809
+msgid "read size"
+msgstr "okuma boyu"
+
+#: param/loadparm.c:811
+msgid "socket options"
+msgstr "soket seçenekleri"
+
+#: param/loadparm.c:812
+msgid "stat cache size"
+msgstr "durum arabelleği boyu"
+
+#: param/loadparm.c:813
+msgid "strict allocate"
+msgstr "sıkı ayırma"
+
+#: param/loadparm.c:814
+msgid "strict sync"
+msgstr "sıkı senkronizasyon"
+
+#: param/loadparm.c:815
+msgid "sync always"
+msgstr "herzaman senkronize"
+
+#: param/loadparm.c:816
+msgid "use mmap"
+msgstr "bellek eşlemesi kullan"
+
+#: param/loadparm.c:817
+msgid "hostname lookups"
+msgstr "sunucu adı arama"
+
+#: param/loadparm.c:818
+msgid "write cache size"
+msgstr "yazma arabellek boyu"
+
+#: param/loadparm.c:820
+msgid "Printing Options"
+msgstr "Yazdırma Seçenekleri"
+
+#: param/loadparm.c:822
+msgid "total print jobs"
+msgstr "toplam yazdırma işleri"
+
+#: param/loadparm.c:823
+msgid "max print jobs"
+msgstr "maksimum yazdırma işi"
+
+#: param/loadparm.c:824
+msgid "load printers"
+msgstr "yazıcıları yükle"
+
+#: param/loadparm.c:825
+msgid "printcap name"
+msgstr "printcap adı"
+
+#: param/loadparm.c:826
+msgid "printcap"
+msgstr "printcap"
+
+#: param/loadparm.c:827
+msgid "printable"
+msgstr "yazdırılabilir"
+
+#: param/loadparm.c:828
+msgid "print ok"
+msgstr "yazdırma tamam"
+
+#: param/loadparm.c:829
+msgid "postscript"
+msgstr "postscript"
+
+#: param/loadparm.c:830
+msgid "printing"
+msgstr "yazdırıyor"
+
+#: param/loadparm.c:831
+msgid "print command"
+msgstr "yazdırma komutu"
+
+#: param/loadparm.c:832
+msgid "disable spoolss"
+msgstr "kuyruğu etkisizleştir"
+
+#: param/loadparm.c:833
+msgid "lpq command"
+msgstr "lpq komutu"
+
+#: param/loadparm.c:834
+msgid "lprm command"
+msgstr "lprm komutu"
+
+#: param/loadparm.c:835
+msgid "lppause command"
+msgstr "lppause komutu"
+
+#: param/loadparm.c:836
+msgid "lpresume command"
+msgstr "lpresume komutu"
+
+#: param/loadparm.c:837
+msgid "queuepause command"
+msgstr "queuepause komutu"
+
+#: param/loadparm.c:838
+msgid "queueresume command"
+msgstr "queueresume komutu"
+
+#: param/loadparm.c:840
+msgid "enumports command"
+msgstr "port listele komutu"
+
+#: param/loadparm.c:841
+msgid "addprinter command"
+msgstr "yazıcı ekle komutu"
+
+#: param/loadparm.c:842
+msgid "deleteprinter command"
+msgstr "yazıcı sil komutu"
+
+#: param/loadparm.c:843
+msgid "show add printer wizard"
+msgstr "yazıcı ekleme sihirbazını göster"
+
+#: param/loadparm.c:844
+msgid "os2 driver map"
+msgstr "os2 sürücü eşlemesi"
+
+#: param/loadparm.c:846
+msgid "printer name"
+msgstr "yazıcı adı"
+
+#: param/loadparm.c:847
+msgid "printer"
+msgstr "yazıcı"
+
+#: param/loadparm.c:848
+msgid "use client driver"
+msgstr "istemci sürücüsü kullan"
+
+#: param/loadparm.c:849
+msgid "printer driver"
+msgstr "yazıcı sürücüsü"
+
+#: param/loadparm.c:850
+msgid "printer driver file"
+msgstr "yazıcı sürücü dosyası"
+
+#: param/loadparm.c:851
+msgid "printer driver location"
+msgstr "yazıcı sürücüsü yeri"
+
+#: param/loadparm.c:853
+msgid "Filename Handling"
+msgstr "Dosyaadı İşlenmesi"
+
+#: param/loadparm.c:854
+msgid "strip dot"
+msgstr "noktaları bastır"
+
+#: param/loadparm.c:856
+msgid "mangled stack"
+msgstr "karıştırılmış yığıt"
+
+#: param/loadparm.c:857
+msgid "default case"
+msgstr "öntanımlı büyük/küçük harf"
+
+#: param/loadparm.c:858
+msgid "case sensitive"
+msgstr "büyük küçük harfe duyarlı"
+
+#: param/loadparm.c:859
+msgid "casesignames"
+msgstr "casesignames"
+
+#: param/loadparm.c:860
+msgid "preserve case"
+msgstr "büyük küçük harf ayrımını tut"
+
+#: param/loadparm.c:861
+msgid "short preserve case"
+msgstr "kısa büyük küçük harf ayrımını tut"
+
+#: param/loadparm.c:862
+msgid "mangle case"
+msgstr "büyük küçük harf harmanla"
+
+#: param/loadparm.c:863
+msgid "mangling char"
+msgstr "karakter harmanlanıyor"
+
+#: param/loadparm.c:864
+msgid "hide dot files"
+msgstr "nokta ile başlayan dosyaları gizle"
+
+#: param/loadparm.c:865
+msgid "hide unreadable"
+msgstr "okunamazları sakla"
+
+#: param/loadparm.c:866
+msgid "delete veto files"
+msgstr "veto dosyalarını sil"
+
+#: param/loadparm.c:867
+msgid "veto files"
+msgstr "veto dosyaları"
+
+#: param/loadparm.c:868
+msgid "hide files"
+msgstr "dosyaları gizle"
+
+#: param/loadparm.c:869
+msgid "veto oplock files"
+msgstr "veto oplock dosyaları"
+
+#: param/loadparm.c:870
+msgid "map system"
+msgstr "sistemi eşle"
+
+#: param/loadparm.c:871
+msgid "map hidden"
+msgstr "gizlileri eşle"
+
+#: param/loadparm.c:872
+msgid "map archive"
+msgstr "arşivi eşle"
+
+#: param/loadparm.c:873
+msgid "mangled names"
+msgstr "harmanlanmış isimler"
+
+#: param/loadparm.c:874
+msgid "mangled map"
+msgstr "harmanlanmış eşleşme"
+
+#: param/loadparm.c:875
+msgid "stat cache"
+msgstr "durum arabelleği"
+
+#: param/loadparm.c:877
+msgid "Domain Options"
+msgstr "Alan Seçenekleri"
+
+#: param/loadparm.c:879
+msgid "domain admin group"
+msgstr "alan yönetici grubu"
+
+#: param/loadparm.c:880
+msgid "domain guest group"
+msgstr "alan misafir grubu"
+
+#: param/loadparm.c:883
+msgid "groupname map"
+msgstr "grup adı eşlemesi"
+
+#: param/loadparm.c:886
+msgid "machine password timeout"
+msgstr "makina şifresi zamanaşımı"
+
+#: param/loadparm.c:888
+msgid "Logon Options"
+msgstr "Sistem Giriş Seçenekleri"
+
+#: param/loadparm.c:890
+msgid "add user script"
+msgstr "kullanıcı ekleme betiği"
+
+#: param/loadparm.c:891
+msgid "delete user script"
+msgstr "kullanıcı silme betiği"
+
+#: param/loadparm.c:892
+msgid "add group script"
+msgstr "grup ekleme betiği"
+
+#: param/loadparm.c:893
+msgid "delete group script"
+msgstr "grup silme betiği"
+
+#: param/loadparm.c:894
+msgid "add user to group script"
+msgstr "gruba kullanıcı ekleme betiği"
+
+#: param/loadparm.c:895
+msgid "delete user from group script"
+msgstr "gruptan kullanıcı silme betiği"
+
+#: param/loadparm.c:896
+msgid "add machine script"
+msgstr "makina ekleme betiği"
+
+#: param/loadparm.c:897
+msgid "shutdown script"
+msgstr "sistem kapanış betiği"
+
+#: param/loadparm.c:898
+msgid "abort shutdown script"
+msgstr "sistem kapanış betiğini durdur"
+
+#: param/loadparm.c:900
+msgid "logon script"
+msgstr "sistem giriş betiği"
+
+#: param/loadparm.c:901
+msgid "logon path"
+msgstr "sistem giriş yolu"
+
+#: param/loadparm.c:902
+msgid "logon drive"
+msgstr "sistem giriş aygıtı"
+
+#: param/loadparm.c:903
+msgid "logon home"
+msgstr "sistem giriş kökü"
+
+#: param/loadparm.c:904
+msgid "domain logons"
+msgstr "alan girişleri"
+
+#: param/loadparm.c:906
+msgid "Browse Options"
+msgstr "Gözatma Seçenekleri"
+
+#: param/loadparm.c:908
+msgid "os level"
+msgstr "işletim sistem seviyesi"
+
+#: param/loadparm.c:909
+msgid "lm announce"
+msgstr "lm bildirimi"
+
+#: param/loadparm.c:910
+msgid "lm interval"
+msgstr "lm aralığı"
+
+#: param/loadparm.c:911
+msgid "preferred master"
+msgstr "tercih edilen ana alan sunucusu"
+
+#: param/loadparm.c:912
+msgid "prefered master"
+msgstr "tercih edilen ana alan sunucusu"
+
+#: param/loadparm.c:913
+msgid "local master"
+msgstr "yerel alan sunucusu"
+
+#: param/loadparm.c:914
+msgid "domain master"
+msgstr "alan sunucusu"
+
+#: param/loadparm.c:915
+msgid "browse list"
+msgstr "gözatma listesi"
+
+#: param/loadparm.c:916
+msgid "browseable"
+msgstr "gözatılabilir"
+
+#: param/loadparm.c:917
+msgid "browsable"
+msgstr "gözatılabilir"
+
+#: param/loadparm.c:918
+msgid "enhanced browsing"
+msgstr "gelişkin gözatma"
+
+#: param/loadparm.c:920
+msgid "WINS Options"
+msgstr "WINS Seçenekleri"
+
+#: param/loadparm.c:921
+msgid "dns proxy"
+msgstr "dns proxy"
+
+#: param/loadparm.c:922
+msgid "wins proxy"
+msgstr "wins proxy"
+
+#: param/loadparm.c:924
+msgid "wins server"
+msgstr "wins sunucusu"
+
+#: param/loadparm.c:925
+msgid "wins support"
+msgstr "wins desteği"
+
+#: param/loadparm.c:926
+msgid "wins hook"
+msgstr "wins girişi"
+
+#: param/loadparm.c:928
+msgid "Locking Options"
+msgstr "Kilitleme Seçenekleri"
+
+#: param/loadparm.c:930
+msgid "blocking locks"
+msgstr "engelleyen kilitler"
+
+#: param/loadparm.c:931
+msgid "fake oplocks"
+msgstr "sahte oplocklar"
+
+#: param/loadparm.c:932
+msgid "kernel oplocks"
+msgstr "çekirdek oplockları"
+
+#: param/loadparm.c:933
+msgid "locking"
+msgstr "kilitliyor"
+
+#: param/loadparm.c:935
+msgid "oplocks"
+msgstr "oplocklar"
+
+#: param/loadparm.c:936
+msgid "level2 oplocks"
+msgstr "Seviye 2 oplocklar"
+
+#: param/loadparm.c:937
+msgid "oplock break wait time"
+msgstr "oplock kırma bekleme süresi"
+
+#: param/loadparm.c:938
+msgid "oplock contention limit"
+msgstr "oplock ihtilaf limiti"
+
+#: param/loadparm.c:939
+msgid "posix locking"
+msgstr "posix kilitlemesi"
+
+#: param/loadparm.c:940
+msgid "strict locking"
+msgstr "sıkı kilitleme"
+
+#: param/loadparm.c:941
+msgid "share modes"
+msgstr "paylaşım kipleri"
+
+#: param/loadparm.c:944
+msgid "Ldap Options"
+msgstr "Ldap Seçenekleri"
+
+#: param/loadparm.c:946
+msgid "ldap server"
+msgstr "ldap sunucusu"
+
+#: param/loadparm.c:947
+msgid "ldap port"
+msgstr "ldap portu"
+
+#: param/loadparm.c:948
+msgid "ldap suffix"
+msgstr "ldap soneki"
+
+#: param/loadparm.c:949
+msgid "ldap filter"
+msgstr "ldap filtresi"
+
+#: param/loadparm.c:950
+msgid "ldap root"
+msgstr "ldap kökü"
+
+#: param/loadparm.c:951
+msgid "ldap root passwd"
+msgstr "ldap kök şifresi"
+
+#: param/loadparm.c:954
+msgid "Miscellaneous Options"
+msgstr "Diğer Seçenekler"
+
+#: param/loadparm.c:955
+msgid "add share command"
+msgstr "paylaşım ekle komutu"
+
+#: param/loadparm.c:956
+msgid "change share command"
+msgstr "paylaşım değiştir komutu"
+
+#: param/loadparm.c:957
+msgid "delete share command"
+msgstr "paylaşım sil komutu"
+
+#: param/loadparm.c:959
+msgid "config file"
+msgstr "ayar dosyası"
+
+#: param/loadparm.c:960
+msgid "preload"
+msgstr "önyükle"
+
+#: param/loadparm.c:961
+msgid "auto services"
+msgstr "otomatik servisler"
+
+#: param/loadparm.c:962
+msgid "lock dir"
+msgstr "kilit dizini"
+
+#: param/loadparm.c:963
+msgid "lock directory"
+msgstr "kilit dizini"
+
+#: param/loadparm.c:965
+msgid "utmp directory"
+msgstr "utmp dizini"
+
+#: param/loadparm.c:966
+msgid "wtmp directory"
+msgstr "wtmp dizini"
+
+#: param/loadparm.c:967
+msgid "utmp"
+msgstr "utmp"
+
+#: param/loadparm.c:970
+msgid "default service"
+msgstr "öntanımlı servis"
+
+#: param/loadparm.c:971
+msgid "default"
+msgstr "öntanımlı"
+
+#: param/loadparm.c:972
+msgid "message command"
+msgstr "ileti komutu"
+
+#: param/loadparm.c:973
+msgid "dfree command"
+msgstr "dfree komutu"
+
+#: param/loadparm.c:974
+msgid "remote announce"
+msgstr "uzak bildirim"
+
+#: param/loadparm.c:975
+msgid "remote browse sync"
+msgstr "uzak gözatma senkronizasyonu"
+
+#: param/loadparm.c:976
+msgid "socket address"
+msgstr "soket adresi"
+
+#: param/loadparm.c:977
+msgid "homedir map"
+msgstr "evdizini eşlemesi"
+
+#: param/loadparm.c:978
+msgid "time offset"
+msgstr "zaman kaydırması"
+
+#: param/loadparm.c:979
+msgid "NIS homedir"
+msgstr "NIS evdizini"
+
+#: param/loadparm.c:980
+msgid "-valid"
+msgstr "-geçerli"
+
+#: param/loadparm.c:982
+msgid "copy"
+msgstr "kopyala"
+
+#: param/loadparm.c:983
+msgid "include"
+msgstr "ekle"
+
+#: param/loadparm.c:984
+msgid "exec"
+msgstr "çalıştır"
+
+#: param/loadparm.c:985
+msgid "preexec"
+msgstr "preexec"
+
+#: param/loadparm.c:987
+msgid "preexec close"
+msgstr "preexec close"
+
+#: param/loadparm.c:988
+msgid "postexec"
+msgstr "postexec"
+
+#: param/loadparm.c:989
+msgid "root preexec"
+msgstr "root preexec"
+
+#: param/loadparm.c:990
+msgid "root preexec close"
+msgstr "root preexec close"
+
+#: param/loadparm.c:991
+msgid "root postexec"
+msgstr "root postexec"
+
+#: param/loadparm.c:992
+msgid "available"
+msgstr "mevcut"
+
+#: param/loadparm.c:993
+msgid "volume"
+msgstr "volume"
+
+#: param/loadparm.c:994
+msgid "fstype"
+msgstr "dosya sistem tipi"
+
+#: param/loadparm.c:995
+msgid "set directory"
+msgstr "dizini belirle"
+
+#: param/loadparm.c:996
+msgid "source environment"
+msgstr "source environment"
+
+#: param/loadparm.c:997
+msgid "wide links"
+msgstr "wide links"
+
+#: param/loadparm.c:998
+msgid "follow symlinks"
+msgstr "sembolik bağları izle"
+
+#: param/loadparm.c:999
+msgid "dont descend"
+msgstr "dont descend"
+
+#: param/loadparm.c:1000
+msgid "magic script"
+msgstr "magic script"
+
+#: param/loadparm.c:1001
+msgid "magic output"
+msgstr "magic output"
+
+#: param/loadparm.c:1002
+msgid "delete readonly"
+msgstr "salt okunurları sil"
+
+#: param/loadparm.c:1003
+msgid "dos filemode"
+msgstr "dos dosya kipi"
+
+#: param/loadparm.c:1004
+msgid "dos filetimes"
+msgstr "dos dosya zamanları"
+
+#: param/loadparm.c:1005
+msgid "dos filetime resolution"
+msgstr "dos dosya zamanı çözünürlüğü"
+
+#: param/loadparm.c:1007
+msgid "fake directory create times"
+msgstr "dizin oluşma zamanlarını taklit et"
+
+#: param/loadparm.c:1008
+msgid "panic action"
+msgstr "panik işlemi"
+
+#: param/loadparm.c:1009
+msgid "hide local users"
+msgstr "yerel kullanıcıları sakla"
+
+#: param/loadparm.c:1012
+msgid "VFS options"
+msgstr "VFS Seçenekleri"
+
+#: param/loadparm.c:1014
+msgid "vfs object"
+msgstr "vfs nesnesi"
+
+#: param/loadparm.c:1015
+msgid "vfs options"
+msgstr "vfs seçenekleri"
+
+#: param/loadparm.c:1018
+msgid "msdfs root"
+msgstr "msdfs kökü"
+
+#: param/loadparm.c:1019
+msgid "host msdfs"
+msgstr "host msdfs"
+
+#: param/loadparm.c:1021
+msgid "Winbind options"
+msgstr "Winbind seçenekleri"
+
+#: param/loadparm.c:1023
+msgid "winbind uid"
+msgstr "winbind uid"
+
+#: param/loadparm.c:1024
+msgid "winbind gid"
+msgstr "winbind gid"
+
+#: param/loadparm.c:1025
+msgid "template homedir"
+msgstr "örnek ev dizini"
+
+#: param/loadparm.c:1026
+msgid "template shell"
+msgstr "örnek kabuk"
+
+#: param/loadparm.c:1027
+msgid "winbind separator"
+msgstr "winbind ayracı"
+
+#: param/loadparm.c:1028
+msgid "winbind cache time"
+msgstr "winbind arabellek zamanı"
+
+#: param/loadparm.c:1029
+msgid "winbind enum users"
+msgstr "winbind kullanıcı listele"
+
+#: param/loadparm.c:1030
+msgid "winbind enum groups"
+msgstr "winbind grup listele"
+
diff --git a/source3/po/zh_CN.gmo b/source3/po/zh_CN.gmo
new file mode 100644
index 0000000000..5864706de5
--- /dev/null
+++ b/source3/po/zh_CN.gmo
Binary files differ
diff --git a/source3/po/zh_CN.po b/source3/po/zh_CN.po
new file mode 100644
index 0000000000..7b6f6b659c
--- /dev/null
+++ b/source3/po/zh_CN.po
@@ -0,0 +1,1561 @@
+# SOME DESCRIPTIVE TITLE.
+# Copyright (C) YEAR Free Software Foundation, Inc.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"POT-Creation-Date: 2000-05-30 12:14+0900\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: zh <LL@li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=GB2312\n"
+"Content-Transfer-Encoding: \n"
+
+#: web/swat.c:125
+#, c-format
+msgid "ERROR: Can't open %s\n"
+msgstr ""
+
+#: web/swat.c:214
+msgid "Help"
+msgstr "Help(zh)"
+
+#: web/swat.c:221 web/swat.c:233 web/swat.c:245 web/swat.c:254 web/swat.c:263
+#: web/swat.c:269 web/swat.c:275 web/swat.c:285
+msgid "Set Default"
+msgstr ""
+
+#: web/swat.c:396
+#, c-format
+msgid "failed to open %s for writing\n"
+msgstr ""
+
+#: web/swat.c:408
+#, c-format
+msgid "Can't reload %s\n"
+msgstr ""
+
+#: web/swat.c:486
+#, c-format
+msgid "Logged in as <b>%s</b><p>\n"
+msgstr ""
+
+#: web/swat.c:489
+msgid "Home"
+msgstr ""
+
+#: web/swat.c:491
+msgid "Globals"
+msgstr ""
+
+#: web/swat.c:492
+msgid "Shares"
+msgstr ""
+
+#: web/swat.c:493
+msgid "Printers"
+msgstr ""
+
+#: web/swat.c:496
+msgid "Status"
+msgstr ""
+
+#: web/swat.c:497
+msgid "View Config"
+msgstr ""
+
+#: web/swat.c:499
+msgid "Password Management"
+msgstr ""
+
+#: web/swat.c:523
+msgid "Current Config"
+msgstr ""
+
+#: web/swat.c:527
+msgid "Normal View"
+msgstr ""
+
+#: web/swat.c:529
+msgid "Full View"
+msgstr ""
+
+#: web/swat.c:545
+msgid "Global Variables"
+msgstr ""
+
+#: web/swat.c:559 web/swat.c:667 web/swat.c:1022
+msgid "Commit Changes"
+msgstr ""
+
+#: web/swat.c:563 web/swat.c:670 web/swat.c:1024
+msgid "Reset Values"
+msgstr ""
+
+#: web/swat.c:565 web/swat.c:672 web/swat.c:1026
+msgid "Advanced View"
+msgstr ""
+
+#: web/swat.c:567 web/swat.c:674 web/swat.c:1028
+msgid "Basic View"
+msgstr ""
+
+#: web/swat.c:601
+msgid "Share Parameters"
+msgstr ""
+
+#: web/swat.c:637
+msgid "Choose Share"
+msgstr ""
+
+#: web/swat.c:652
+msgid "Delete Share"
+msgstr ""
+
+#: web/swat.c:659
+msgid "Create Share"
+msgstr ""
+
+#: web/swat.c:704
+msgid "password change in demo mode rejected\n"
+msgstr ""
+
+#: web/swat.c:717
+msgid "Can't setup password database vectors.\n"
+msgstr ""
+
+#: web/swat.c:743
+msgid " Must specify \"User Name\" \n"
+msgstr ""
+
+#: web/swat.c:759
+msgid " Must specify \"Old Password\" \n"
+msgstr ""
+
+#: web/swat.c:765
+msgid " Must specify \"Remote Machine\" \n"
+msgstr ""
+
+#: web/swat.c:772
+msgid " Must specify \"New, and Re-typed Passwords\" \n"
+msgstr ""
+
+#: web/swat.c:778
+msgid " Re-typed password didn't match new password\n"
+msgstr ""
+
+#: web/swat.c:807
+#, c-format
+msgid " The passwd for '%s' has been changed. \n"
+msgstr ""
+
+#: web/swat.c:809
+#, c-format
+msgid " The passwd for '%s' has NOT been changed. \n"
+msgstr ""
+
+#: web/swat.c:833
+msgid "Server Password Management"
+msgstr ""
+
+#.
+#. * Create all the dialog boxes for data collection
+#.
+#: web/swat.c:842 web/swat.c:889
+msgid " User Name : "
+msgstr ""
+
+#: web/swat.c:845 web/swat.c:891
+msgid " Old Password : "
+msgstr ""
+
+#: web/swat.c:848 web/swat.c:893
+msgid " New Password : "
+msgstr ""
+
+#: web/swat.c:850 web/swat.c:895
+msgid " Re-type New Password : "
+msgstr ""
+
+#: web/swat.c:858 web/swat.c:906
+msgid "Change Password"
+msgstr ""
+
+#: web/swat.c:861
+msgid "Add New User"
+msgstr ""
+
+#: web/swat.c:863
+msgid "Delete User"
+msgstr ""
+
+#: web/swat.c:865
+msgid "Disable User"
+msgstr ""
+
+#: web/swat.c:867
+msgid "Enable User"
+msgstr ""
+
+#: web/swat.c:880
+msgid "Client/Server Password Management"
+msgstr ""
+
+#: web/swat.c:897
+msgid " Remote Machine : "
+msgstr ""
+
+#: web/swat.c:941
+msgid "Printer Parameters"
+msgstr ""
+
+#: web/swat.c:943
+msgid "Important Note:"
+msgstr ""
+
+#: web/swat.c:944
+msgid "Printer names marked with [*] in the Choose Printer drop-down box "
+msgstr ""
+
+#: web/swat.c:945
+msgid "are autoloaded printers from "
+msgstr ""
+
+#: web/swat.c:946
+msgid "Printcap Name"
+msgstr ""
+
+#: web/swat.c:947
+msgid "Attempting to delete these printers from SWAT will have no effect.\n"
+msgstr ""
+
+#: web/swat.c:987
+msgid "Choose Printer"
+msgstr ""
+
+#: web/swat.c:1007
+msgid "Delete Printer"
+msgstr ""
+
+#: web/swat.c:1014
+msgid "Create Printer"
+msgstr ""
+
+#: web/statuspage.c:38
+msgid "DENY_NONE"
+msgstr ""
+
+#: web/statuspage.c:39
+msgid "DENY_ALL "
+msgstr ""
+
+#: web/statuspage.c:40
+msgid "DENY_DOS "
+msgstr ""
+
+#: web/statuspage.c:41
+msgid "DENY_READ "
+msgstr ""
+
+#: web/statuspage.c:42
+msgid "DENY_WRITE "
+msgstr ""
+
+#: web/statuspage.c:48
+msgid "RDONLY "
+msgstr ""
+
+#: web/statuspage.c:49
+msgid "WRONLY "
+msgstr ""
+
+#: web/statuspage.c:50
+msgid "RDWR "
+msgstr ""
+
+#: web/statuspage.c:58
+msgid "EXCLUSIVE+BATCH "
+msgstr ""
+
+#: web/statuspage.c:60
+msgid "EXCLUSIVE "
+msgstr ""
+
+#: web/statuspage.c:62
+msgid "BATCH "
+msgstr ""
+
+#: web/statuspage.c:64
+msgid "LEVEL_II "
+msgstr ""
+
+#: web/statuspage.c:66
+msgid "NONE "
+msgstr ""
+
+#: web/statuspage.c:145
+msgid "Server Status"
+msgstr ""
+
+#: web/statuspage.c:150
+msgid "Auto Refresh"
+msgstr ""
+
+#: web/statuspage.c:151 web/statuspage.c:156
+msgid "Refresh Interval: "
+msgstr ""
+
+#: web/statuspage.c:155
+msgid "Stop Refreshing"
+msgstr ""
+
+#: web/statuspage.c:167
+msgid "You need to have status=yes in your smb config file\n"
+msgstr ""
+
+#: web/statuspage.c:173
+msgid "version:"
+msgstr ""
+
+#: web/statuspage.c:176
+msgid "smbd:"
+msgstr ""
+
+#: web/statuspage.c:176 web/statuspage.c:188
+msgid "running"
+msgstr ""
+
+#: web/statuspage.c:176 web/statuspage.c:188
+msgid "not running"
+msgstr ""
+
+#: web/statuspage.c:179
+msgid "Stop smbd"
+msgstr ""
+
+#: web/statuspage.c:181
+msgid "Start smbd"
+msgstr ""
+
+#: web/statuspage.c:183
+msgid "Restart smbd"
+msgstr ""
+
+#: web/statuspage.c:188
+msgid "nmbd:"
+msgstr ""
+
+#: web/statuspage.c:191
+msgid "Stop nmbd"
+msgstr ""
+
+#: web/statuspage.c:193
+msgid "Start nmbd"
+msgstr ""
+
+#: web/statuspage.c:195
+msgid "Restart nmbd"
+msgstr ""
+
+#: web/statuspage.c:202
+msgid "Active Connections"
+msgstr ""
+
+#: web/statuspage.c:204 web/statuspage.c:235 web/statuspage.c:254
+msgid "PID"
+msgstr ""
+
+#: web/statuspage.c:204 web/statuspage.c:235
+msgid "Client"
+msgstr ""
+
+#: web/statuspage.c:204
+msgid "IP address"
+msgstr ""
+
+#: web/statuspage.c:204 web/statuspage.c:235 web/statuspage.c:254
+msgid "Date"
+msgstr ""
+
+#: web/statuspage.c:206
+msgid "Kill"
+msgstr ""
+
+#: web/statuspage.c:232
+msgid "Active Shares"
+msgstr ""
+
+#: web/statuspage.c:235
+msgid "Share"
+msgstr ""
+
+#: web/statuspage.c:235
+msgid "User"
+msgstr ""
+
+#: web/statuspage.c:235
+msgid "Group"
+msgstr ""
+
+#: web/statuspage.c:252
+msgid "Open Files"
+msgstr ""
+
+#: web/statuspage.c:254
+msgid "Sharing"
+msgstr ""
+
+#: web/statuspage.c:254
+msgid "R/W"
+msgstr ""
+
+#: web/statuspage.c:254
+msgid "Oplock"
+msgstr ""
+
+#: web/statuspage.c:254
+msgid "File"
+msgstr ""
+
+#: param/loadparm.c:557
+msgid "Base Options"
+msgstr ""
+
+#: param/loadparm.c:558
+msgid "coding system"
+msgstr ""
+
+#: param/loadparm.c:559
+msgid "client code page"
+msgstr ""
+
+#: param/loadparm.c:560
+msgid "comment"
+msgstr ""
+
+#: param/loadparm.c:561
+msgid "path"
+msgstr ""
+
+#: param/loadparm.c:562
+msgid "directory"
+msgstr ""
+
+#: param/loadparm.c:563
+msgid "workgroup"
+msgstr ""
+
+#: param/loadparm.c:564
+msgid "netbios name"
+msgstr ""
+
+#: param/loadparm.c:565
+msgid "netbios aliases"
+msgstr ""
+
+#: param/loadparm.c:566
+msgid "netbios scope"
+msgstr ""
+
+#: param/loadparm.c:567
+msgid "server string"
+msgstr ""
+
+#: param/loadparm.c:568
+msgid "interfaces"
+msgstr ""
+
+#: param/loadparm.c:569
+msgid "bind interfaces only"
+msgstr ""
+
+#: param/loadparm.c:571
+msgid "Security Options"
+msgstr ""
+
+#: param/loadparm.c:572
+msgid "security"
+msgstr ""
+
+#: param/loadparm.c:573
+msgid "encrypt passwords"
+msgstr ""
+
+#: param/loadparm.c:574
+msgid "update encrypted"
+msgstr ""
+
+#: param/loadparm.c:575
+msgid "allow trusted domains"
+msgstr ""
+
+#: param/loadparm.c:576
+msgid "alternate permissions"
+msgstr ""
+
+#: param/loadparm.c:577
+msgid "hosts equiv"
+msgstr ""
+
+#: param/loadparm.c:578
+msgid "min password length"
+msgstr ""
+
+#: param/loadparm.c:579
+msgid "min passwd length"
+msgstr ""
+
+#: param/loadparm.c:580
+msgid "map to guest"
+msgstr ""
+
+#: param/loadparm.c:581
+msgid "null passwords"
+msgstr ""
+
+#: param/loadparm.c:582
+msgid "password server"
+msgstr ""
+
+#: param/loadparm.c:583
+msgid "smb passwd file"
+msgstr ""
+
+#: param/loadparm.c:584
+msgid "root directory"
+msgstr ""
+
+#: param/loadparm.c:585
+msgid "root dir"
+msgstr ""
+
+#: param/loadparm.c:586
+msgid "root"
+msgstr ""
+
+#: param/loadparm.c:587
+msgid "passwd program"
+msgstr ""
+
+#: param/loadparm.c:588
+msgid "passwd chat"
+msgstr ""
+
+#: param/loadparm.c:589
+msgid "passwd chat debug"
+msgstr ""
+
+#: param/loadparm.c:590
+msgid "username map"
+msgstr ""
+
+#: param/loadparm.c:591
+msgid "password level"
+msgstr ""
+
+#: param/loadparm.c:592
+msgid "username level"
+msgstr ""
+
+#: param/loadparm.c:593
+msgid "unix password sync"
+msgstr ""
+
+#: param/loadparm.c:594
+msgid "restrict anonymous"
+msgstr ""
+
+#: param/loadparm.c:595
+msgid "revalidate"
+msgstr ""
+
+#: param/loadparm.c:596
+msgid "use rhosts"
+msgstr ""
+
+#: param/loadparm.c:597
+msgid "username"
+msgstr ""
+
+#: param/loadparm.c:598
+msgid "user"
+msgstr ""
+
+#: param/loadparm.c:599
+msgid "users"
+msgstr ""
+
+#: param/loadparm.c:600
+msgid "guest account"
+msgstr ""
+
+#: param/loadparm.c:601
+msgid "invalid users"
+msgstr ""
+
+#: param/loadparm.c:602
+msgid "valid users"
+msgstr ""
+
+#: param/loadparm.c:603
+msgid "admin users"
+msgstr ""
+
+#: param/loadparm.c:604
+msgid "read list"
+msgstr ""
+
+#: param/loadparm.c:605
+msgid "write list"
+msgstr ""
+
+#: param/loadparm.c:606
+msgid "force user"
+msgstr ""
+
+#: param/loadparm.c:607
+msgid "force group"
+msgstr ""
+
+#: param/loadparm.c:608
+msgid "group"
+msgstr ""
+
+#: param/loadparm.c:609
+msgid "writeable"
+msgstr ""
+
+#: param/loadparm.c:610
+msgid "write ok"
+msgstr ""
+
+#: param/loadparm.c:611
+msgid "writable"
+msgstr ""
+
+#: param/loadparm.c:612
+msgid "read only"
+msgstr ""
+
+#: param/loadparm.c:613
+msgid "create mask"
+msgstr ""
+
+#: param/loadparm.c:614
+msgid "create mode"
+msgstr ""
+
+#: param/loadparm.c:615
+msgid "force create mode"
+msgstr ""
+
+#: param/loadparm.c:616
+msgid "security mask"
+msgstr ""
+
+#: param/loadparm.c:617
+msgid "force security mode"
+msgstr ""
+
+#: param/loadparm.c:618
+msgid "directory mask"
+msgstr ""
+
+#: param/loadparm.c:619
+msgid "directory mode"
+msgstr ""
+
+#: param/loadparm.c:620
+msgid "force directory mode"
+msgstr ""
+
+#: param/loadparm.c:621
+msgid "directory security mask"
+msgstr ""
+
+#: param/loadparm.c:622
+msgid "force directory security mode"
+msgstr ""
+
+#: param/loadparm.c:623
+msgid "inherit permissions"
+msgstr ""
+
+#: param/loadparm.c:624
+msgid "guest only"
+msgstr ""
+
+#: param/loadparm.c:625
+msgid "only guest"
+msgstr ""
+
+#: param/loadparm.c:626
+msgid "guest ok"
+msgstr ""
+
+#: param/loadparm.c:627
+msgid "public"
+msgstr ""
+
+#: param/loadparm.c:628
+msgid "only user"
+msgstr ""
+
+#: param/loadparm.c:629
+msgid "hosts allow"
+msgstr ""
+
+#: param/loadparm.c:630
+msgid "allow hosts"
+msgstr ""
+
+#: param/loadparm.c:631
+msgid "hosts deny"
+msgstr ""
+
+#: param/loadparm.c:632
+msgid "deny hosts"
+msgstr ""
+
+#: param/loadparm.c:635
+msgid "Secure Socket Layer Options"
+msgstr ""
+
+#: param/loadparm.c:636
+msgid "ssl"
+msgstr ""
+
+#: param/loadparm.c:637
+msgid "ssl hosts"
+msgstr ""
+
+#: param/loadparm.c:638
+msgid "ssl hosts resign"
+msgstr ""
+
+#: param/loadparm.c:639
+msgid "ssl CA certDir"
+msgstr ""
+
+#: param/loadparm.c:640
+msgid "ssl CA certFile"
+msgstr ""
+
+#: param/loadparm.c:641
+msgid "ssl server cert"
+msgstr ""
+
+#: param/loadparm.c:642
+msgid "ssl server key"
+msgstr ""
+
+#: param/loadparm.c:643
+msgid "ssl client cert"
+msgstr ""
+
+#: param/loadparm.c:644
+msgid "ssl client key"
+msgstr ""
+
+#: param/loadparm.c:645
+msgid "ssl require clientcert"
+msgstr ""
+
+#: param/loadparm.c:646
+msgid "ssl require servercert"
+msgstr ""
+
+#: param/loadparm.c:647
+msgid "ssl ciphers"
+msgstr ""
+
+#: param/loadparm.c:648
+msgid "ssl version"
+msgstr ""
+
+#: param/loadparm.c:649
+msgid "ssl compatibility"
+msgstr ""
+
+#: param/loadparm.c:652
+msgid "Logging Options"
+msgstr ""
+
+#: param/loadparm.c:653
+msgid "debug level"
+msgstr ""
+
+#: param/loadparm.c:654
+msgid "log level"
+msgstr ""
+
+#: param/loadparm.c:655
+msgid "syslog"
+msgstr ""
+
+#: param/loadparm.c:656
+msgid "syslog only"
+msgstr ""
+
+#: param/loadparm.c:657
+msgid "log file"
+msgstr ""
+
+#: param/loadparm.c:658
+msgid "max log size"
+msgstr ""
+
+#: param/loadparm.c:659
+msgid "debug timestamp"
+msgstr ""
+
+#: param/loadparm.c:660
+msgid "timestamp logs"
+msgstr ""
+
+#: param/loadparm.c:661
+msgid "debug hires timestamp"
+msgstr ""
+
+#: param/loadparm.c:662
+msgid "debug pid"
+msgstr ""
+
+#: param/loadparm.c:663
+msgid "debug uid"
+msgstr ""
+
+#: param/loadparm.c:664
+msgid "status"
+msgstr ""
+
+#: param/loadparm.c:666
+msgid "Protocol Options"
+msgstr ""
+
+#: param/loadparm.c:667
+msgid "protocol"
+msgstr ""
+
+#: param/loadparm.c:668
+msgid "read bmpx"
+msgstr ""
+
+#: param/loadparm.c:669
+msgid "read raw"
+msgstr ""
+
+#: param/loadparm.c:670
+msgid "write raw"
+msgstr ""
+
+#: param/loadparm.c:671
+msgid "nt smb support"
+msgstr ""
+
+#: param/loadparm.c:672
+msgid "nt pipe support"
+msgstr ""
+
+#: param/loadparm.c:673
+msgid "nt acl support"
+msgstr ""
+
+#: param/loadparm.c:674
+msgid "announce version"
+msgstr ""
+
+#: param/loadparm.c:675
+msgid "announce as"
+msgstr ""
+
+#: param/loadparm.c:676
+msgid "max mux"
+msgstr ""
+
+#: param/loadparm.c:677
+msgid "max xmit"
+msgstr ""
+
+#: param/loadparm.c:678
+msgid "name resolve order"
+msgstr ""
+
+#: param/loadparm.c:679
+msgid "packet size"
+msgstr ""
+
+#: param/loadparm.c:680
+msgid "max packet"
+msgstr ""
+
+#: param/loadparm.c:681
+msgid "max ttl"
+msgstr ""
+
+#: param/loadparm.c:682
+msgid "max wins ttl"
+msgstr ""
+
+#: param/loadparm.c:683
+msgid "min wins ttl"
+msgstr ""
+
+#: param/loadparm.c:684
+msgid "time server"
+msgstr ""
+
+#: param/loadparm.c:686
+msgid "Tuning Options"
+msgstr ""
+
+#: param/loadparm.c:687
+msgid "change notify timeout"
+msgstr ""
+
+#: param/loadparm.c:688
+msgid "deadtime"
+msgstr ""
+
+#: param/loadparm.c:689
+msgid "getwd cache"
+msgstr ""
+
+#: param/loadparm.c:690
+msgid "keepalive"
+msgstr ""
+
+#: param/loadparm.c:691
+msgid "lpq cache time"
+msgstr ""
+
+#: param/loadparm.c:692
+msgid "max connections"
+msgstr ""
+
+#: param/loadparm.c:693
+msgid "max disk size"
+msgstr ""
+
+#: param/loadparm.c:694
+msgid "max open files"
+msgstr ""
+
+#: param/loadparm.c:695
+msgid "min print space"
+msgstr ""
+
+#: param/loadparm.c:696
+msgid "read prediction"
+msgstr ""
+
+#: param/loadparm.c:697
+msgid "read size"
+msgstr ""
+
+#: param/loadparm.c:698
+msgid "shared mem size"
+msgstr ""
+
+#: param/loadparm.c:699
+msgid "socket options"
+msgstr ""
+
+#: param/loadparm.c:700
+msgid "stat cache size"
+msgstr ""
+
+#: param/loadparm.c:701
+msgid "strict sync"
+msgstr ""
+
+#: param/loadparm.c:702
+msgid "sync always"
+msgstr ""
+
+#: param/loadparm.c:703
+msgid "write cache size"
+msgstr ""
+
+#: param/loadparm.c:705
+msgid "Printing Options"
+msgstr ""
+
+#: param/loadparm.c:706
+msgid "load printers"
+msgstr ""
+
+#: param/loadparm.c:707
+msgid "printcap name"
+msgstr ""
+
+#: param/loadparm.c:708
+msgid "printcap"
+msgstr ""
+
+#: param/loadparm.c:709
+msgid "printer driver file"
+msgstr ""
+
+#: param/loadparm.c:710
+msgid "printable"
+msgstr ""
+
+#: param/loadparm.c:711
+msgid "print ok"
+msgstr ""
+
+#: param/loadparm.c:712
+msgid "postscript"
+msgstr ""
+
+#: param/loadparm.c:713
+msgid "printing"
+msgstr ""
+
+#: param/loadparm.c:714
+msgid "print command"
+msgstr ""
+
+#: param/loadparm.c:715
+msgid "lpq command"
+msgstr ""
+
+#: param/loadparm.c:716
+msgid "lprm command"
+msgstr ""
+
+#: param/loadparm.c:717
+msgid "lppause command"
+msgstr ""
+
+#: param/loadparm.c:718
+msgid "lpresume command"
+msgstr ""
+
+#: param/loadparm.c:719
+msgid "queuepause command"
+msgstr ""
+
+#: param/loadparm.c:720
+msgid "queueresume command"
+msgstr ""
+
+#: param/loadparm.c:722
+msgid "printer"
+msgstr ""
+
+#: param/loadparm.c:723
+msgid "printer name"
+msgstr ""
+
+#: param/loadparm.c:724
+msgid "printer driver"
+msgstr ""
+
+#: param/loadparm.c:725
+msgid "printer driver location"
+msgstr ""
+
+#: param/loadparm.c:728
+msgid "Filename Handling"
+msgstr ""
+
+#: param/loadparm.c:729
+msgid "strip dot"
+msgstr ""
+
+#: param/loadparm.c:730
+msgid "character set"
+msgstr ""
+
+#: param/loadparm.c:731
+msgid "mangled stack"
+msgstr ""
+
+#: param/loadparm.c:732
+msgid "default case"
+msgstr ""
+
+#: param/loadparm.c:733
+msgid "case sensitive"
+msgstr ""
+
+#: param/loadparm.c:734
+msgid "casesignames"
+msgstr ""
+
+#: param/loadparm.c:735
+msgid "preserve case"
+msgstr ""
+
+#: param/loadparm.c:736
+msgid "short preserve case"
+msgstr ""
+
+#: param/loadparm.c:737
+msgid "mangle case"
+msgstr ""
+
+#: param/loadparm.c:738
+msgid "mangling char"
+msgstr ""
+
+#: param/loadparm.c:739
+msgid "hide dot files"
+msgstr ""
+
+#: param/loadparm.c:740
+msgid "delete veto files"
+msgstr ""
+
+#: param/loadparm.c:741
+msgid "veto files"
+msgstr ""
+
+#: param/loadparm.c:742
+msgid "hide files"
+msgstr ""
+
+#: param/loadparm.c:743
+msgid "veto oplock files"
+msgstr ""
+
+#: param/loadparm.c:744
+msgid "map system"
+msgstr ""
+
+#: param/loadparm.c:745
+msgid "map hidden"
+msgstr ""
+
+#: param/loadparm.c:746
+msgid "map archive"
+msgstr ""
+
+#: param/loadparm.c:747
+msgid "mangled names"
+msgstr ""
+
+#: param/loadparm.c:748
+msgid "mangled map"
+msgstr ""
+
+#: param/loadparm.c:749
+msgid "stat cache"
+msgstr ""
+
+#: param/loadparm.c:751
+msgid "Domain Options"
+msgstr ""
+
+#: param/loadparm.c:752
+msgid "domain groups"
+msgstr ""
+
+#: param/loadparm.c:753
+msgid "domain admin group"
+msgstr ""
+
+#: param/loadparm.c:754
+msgid "domain guest group"
+msgstr ""
+
+#: param/loadparm.c:755
+msgid "domain admin users"
+msgstr ""
+
+#: param/loadparm.c:756
+msgid "domain guest users"
+msgstr ""
+
+#: param/loadparm.c:758
+msgid "groupname map"
+msgstr ""
+
+#: param/loadparm.c:760
+msgid "machine password timeout"
+msgstr ""
+
+#: param/loadparm.c:762
+msgid "Logon Options"
+msgstr ""
+
+#: param/loadparm.c:763
+msgid "add user script"
+msgstr ""
+
+#: param/loadparm.c:764
+msgid "delete user script"
+msgstr ""
+
+#: param/loadparm.c:765
+msgid "logon script"
+msgstr ""
+
+#: param/loadparm.c:766
+msgid "logon path"
+msgstr ""
+
+#: param/loadparm.c:767
+msgid "logon drive"
+msgstr ""
+
+#: param/loadparm.c:768
+msgid "logon home"
+msgstr ""
+
+#: param/loadparm.c:769
+msgid "domain logons"
+msgstr ""
+
+#: param/loadparm.c:771
+msgid "Browse Options"
+msgstr ""
+
+#: param/loadparm.c:772
+msgid "os level"
+msgstr ""
+
+#: param/loadparm.c:773
+msgid "lm announce"
+msgstr ""
+
+#: param/loadparm.c:774
+msgid "lm interval"
+msgstr ""
+
+#: param/loadparm.c:775
+msgid "preferred master"
+msgstr ""
+
+#: param/loadparm.c:776
+msgid "prefered master"
+msgstr ""
+
+#: param/loadparm.c:777
+msgid "local master"
+msgstr ""
+
+#: param/loadparm.c:778
+msgid "domain master"
+msgstr ""
+
+#: param/loadparm.c:779
+msgid "browse list"
+msgstr ""
+
+#: param/loadparm.c:780
+msgid "browseable"
+msgstr ""
+
+#: param/loadparm.c:781
+msgid "browsable"
+msgstr ""
+
+#: param/loadparm.c:783
+msgid "WINS Options"
+msgstr ""
+
+#: param/loadparm.c:784
+msgid "dns proxy"
+msgstr ""
+
+#: param/loadparm.c:785
+msgid "wins proxy"
+msgstr ""
+
+#: param/loadparm.c:786
+msgid "wins server"
+msgstr ""
+
+#: param/loadparm.c:787
+msgid "wins support"
+msgstr ""
+
+#: param/loadparm.c:788
+msgid "wins hook"
+msgstr ""
+
+#: param/loadparm.c:790
+msgid "Locking Options"
+msgstr ""
+
+#: param/loadparm.c:791
+msgid "blocking locks"
+msgstr ""
+
+#: param/loadparm.c:792
+msgid "fake oplocks"
+msgstr ""
+
+#: param/loadparm.c:793
+msgid "kernel oplocks"
+msgstr ""
+
+#: param/loadparm.c:794
+msgid "locking"
+msgstr ""
+
+#: param/loadparm.c:796
+msgid "utmp"
+msgstr ""
+
+#: param/loadparm.c:798
+msgid "ole locking compatibility"
+msgstr ""
+
+#: param/loadparm.c:799
+msgid "oplocks"
+msgstr ""
+
+#: param/loadparm.c:800
+msgid "level2 oplocks"
+msgstr ""
+
+#: param/loadparm.c:801
+msgid "oplock break wait time"
+msgstr ""
+
+#: param/loadparm.c:802
+msgid "oplock contention limit"
+msgstr ""
+
+#: param/loadparm.c:803
+msgid "strict locking"
+msgstr ""
+
+#: param/loadparm.c:804
+msgid "share modes"
+msgstr ""
+
+#: param/loadparm.c:807
+msgid "Ldap Options"
+msgstr ""
+
+#: param/loadparm.c:808
+msgid "ldap server"
+msgstr ""
+
+#: param/loadparm.c:809
+msgid "ldap port"
+msgstr ""
+
+#: param/loadparm.c:810
+msgid "ldap suffix"
+msgstr ""
+
+#: param/loadparm.c:811
+msgid "ldap filter"
+msgstr ""
+
+#: param/loadparm.c:812
+msgid "ldap root"
+msgstr ""
+
+#: param/loadparm.c:813
+msgid "ldap root passwd"
+msgstr ""
+
+#: param/loadparm.c:817
+msgid "Miscellaneous Options"
+msgstr ""
+
+#: param/loadparm.c:818
+msgid "smbrun"
+msgstr ""
+
+#: param/loadparm.c:819
+msgid "config file"
+msgstr ""
+
+#: param/loadparm.c:820
+msgid "auto services"
+msgstr ""
+
+#: param/loadparm.c:821
+msgid "preload"
+msgstr ""
+
+#: param/loadparm.c:822
+msgid "lock directory"
+msgstr ""
+
+#: param/loadparm.c:823
+msgid "lock dir"
+msgstr ""
+
+#: param/loadparm.c:825
+msgid "utmp directory"
+msgstr ""
+
+#: param/loadparm.c:826
+msgid "utmp dir"
+msgstr ""
+
+#: param/loadparm.c:827
+msgid "wtmp directory"
+msgstr ""
+
+#: param/loadparm.c:828
+msgid "wtmp dir"
+msgstr ""
+
+#: param/loadparm.c:829
+msgid "utmp hostname"
+msgstr ""
+
+#: param/loadparm.c:830
+msgid "utmp consolidate"
+msgstr ""
+
+#: param/loadparm.c:832
+msgid "default service"
+msgstr ""
+
+#: param/loadparm.c:833
+msgid "default"
+msgstr ""
+
+#: param/loadparm.c:834
+msgid "message command"
+msgstr ""
+
+#: param/loadparm.c:835
+msgid "dfree command"
+msgstr ""
+
+#: param/loadparm.c:836
+msgid "valid chars"
+msgstr ""
+
+#: param/loadparm.c:837
+msgid "remote announce"
+msgstr ""
+
+#: param/loadparm.c:838
+msgid "remote browse sync"
+msgstr ""
+
+#: param/loadparm.c:839
+msgid "socket address"
+msgstr ""
+
+#: param/loadparm.c:840
+msgid "homedir map"
+msgstr ""
+
+#: param/loadparm.c:841
+msgid "time offset"
+msgstr ""
+
+#: param/loadparm.c:842
+msgid "unix realname"
+msgstr ""
+
+#: param/loadparm.c:843
+msgid "NIS homedir"
+msgstr ""
+
+#: param/loadparm.c:844
+msgid "-valid"
+msgstr ""
+
+#: param/loadparm.c:845
+msgid "copy"
+msgstr ""
+
+#: param/loadparm.c:846
+msgid "include"
+msgstr ""
+
+#: param/loadparm.c:847
+msgid "preexec"
+msgstr ""
+
+#: param/loadparm.c:848
+msgid "exec"
+msgstr ""
+
+#: param/loadparm.c:849
+msgid "preexec close"
+msgstr ""
+
+#: param/loadparm.c:850
+msgid "postexec"
+msgstr ""
+
+#: param/loadparm.c:851
+msgid "root preexec"
+msgstr ""
+
+#: param/loadparm.c:852
+msgid "root preexec close"
+msgstr ""
+
+#: param/loadparm.c:853
+msgid "root postexec"
+msgstr ""
+
+#: param/loadparm.c:854
+msgid "available"
+msgstr ""
+
+#: param/loadparm.c:855
+msgid "volume"
+msgstr ""
+
+#: param/loadparm.c:856
+msgid "fstype"
+msgstr ""
+
+#: param/loadparm.c:857
+msgid "set directory"
+msgstr ""
+
+#: param/loadparm.c:858
+msgid "source environment"
+msgstr ""
+
+#: param/loadparm.c:859
+msgid "wide links"
+msgstr ""
+
+#: param/loadparm.c:860
+msgid "follow symlinks"
+msgstr ""
+
+#: param/loadparm.c:861
+msgid "dont descend"
+msgstr ""
+
+#: param/loadparm.c:862
+msgid "magic script"
+msgstr ""
+
+#: param/loadparm.c:863
+msgid "magic output"
+msgstr ""
+
+#: param/loadparm.c:864
+msgid "delete readonly"
+msgstr ""
+
+#: param/loadparm.c:865
+msgid "dos filetimes"
+msgstr ""
+
+#: param/loadparm.c:866
+msgid "dos filetime resolution"
+msgstr ""
+
+#: param/loadparm.c:868
+msgid "fake directory create times"
+msgstr ""
+
+#: param/loadparm.c:869
+msgid "panic action"
+msgstr ""