From d364051c673c59aac1f90a6920c2198b4e6ac83b Mon Sep 17 00:00:00 2001 From: Carsten Haitzler Date: Mon, 6 Dec 1999 17:00:42 +0000 Subject: [PATCH] commit and add internationaliosation stuff... SVN revision: 1505 --- Makefile.am | 7 +- configure.in | 14 + intl/ChangeLog | 1086 ++++++++++++++++++++++ intl/Makefile.in | 214 +++++ intl/VERSION | 1 + intl/bindtextdom.c | 203 ++++ intl/cat-compat.c | 262 ++++++ intl/dcgettext.c | 624 +++++++++++++ intl/dgettext.c | 59 ++ intl/explodename.c | 188 ++++ intl/finddomain.c | 216 +++++ intl/gettext.c | 70 ++ intl/gettext.h | 105 +++ intl/gettextP.h | 89 ++ intl/hash-string.h | 59 ++ intl/intl-compat.c | 76 ++ intl/l10nflist.c | 411 ++++++++ intl/libgettext.h | 182 ++++ intl/linux-msg.sed | 100 ++ intl/loadinfo.h | 76 ++ intl/loadmsgcat.c | 222 +++++ intl/localealias.c | 424 +++++++++ intl/po2tbl.sed.in | 102 ++ intl/textdomain.c | 108 +++ intl/xopen-msg.sed | 104 +++ po/Makefile.in.in | 248 +++++ po/POTFILES.in | 26 + po/cat-id-tbl.c | 963 +++++++++++++++++++ po/de.po | 2093 +++++++++++++++++++++++++++++++++++++++++ po/enlightenment.pot | 2108 ++++++++++++++++++++++++++++++++++++++++++ po/nl.po | 2093 +++++++++++++++++++++++++++++++++++++++++ 31 files changed, 12531 insertions(+), 2 deletions(-) create mode 100644 intl/ChangeLog create mode 100644 intl/Makefile.in create mode 100644 intl/VERSION create mode 100644 intl/bindtextdom.c create mode 100644 intl/cat-compat.c create mode 100644 intl/dcgettext.c create mode 100644 intl/dgettext.c create mode 100644 intl/explodename.c create mode 100644 intl/finddomain.c create mode 100644 intl/gettext.c create mode 100644 intl/gettext.h create mode 100644 intl/gettextP.h create mode 100644 intl/hash-string.h create mode 100644 intl/intl-compat.c create mode 100644 intl/l10nflist.c create mode 100644 intl/libgettext.h create mode 100644 intl/linux-msg.sed create mode 100644 intl/loadinfo.h create mode 100644 intl/loadmsgcat.c create mode 100644 intl/localealias.c create mode 100644 intl/po2tbl.sed.in create mode 100644 intl/textdomain.c create mode 100644 intl/xopen-msg.sed create mode 100644 po/Makefile.in.in create mode 100644 po/POTFILES.in create mode 100644 po/cat-id-tbl.c create mode 100644 po/de.po create mode 100644 po/enlightenment.pot create mode 100644 po/nl.po diff --git a/Makefile.am b/Makefile.am index 84f7c162..ccbc1bc5 100644 --- a/Makefile.am +++ b/Makefile.am @@ -4,7 +4,9 @@ SUBDIRS = \ eesh \ epp \ man \ - src + src \ + intl \ + po EXTRA_DIST = \ sample-scripts/bouncingball.pl \ @@ -20,4 +22,5 @@ debian/changelog \ debian/control \ debian/copyright \ debian/ehrc \ -debian/rules +debian/rules \ +ABOUT-NLS diff --git a/configure.in b/configure.in index 19821848..b5343198 100644 --- a/configure.in +++ b/configure.in @@ -34,6 +34,9 @@ fi AM_CONFIG_HEADER(econfig.h) +echo $(CATOBJECT) +echo $(CATALOGS) + AC_DEFINE_UNQUOTED(ENLIGHTENMENT_VERSION, "$ENLIGHTENMENT_VERSION") AC_SUBST(ENLIGHTENMENT_VERSION) AC_DEFINE_UNQUOTED(ENLIGHTENMENT_MAJOR, "$ENLIGHTENMENT_MAJOR") @@ -46,6 +49,13 @@ AC_SUBST(ENLIGHTENMENT_MICRO) AC_SUBST(ENLIGHTENMENT_ROOT) AC_SUBST(ENLIGHTENMENT_BIN) +AC_DEFINE_UNQUOTED(PACKAGE,"$PACKAGE") +AC_DEFINE_UNQUOTED(VERSION,"$VERSION") +AC_SUBST(PACKAGE) +AC_SUBST(VERSION) + +ALL_LINGUAS="nl de" + AC_PROG_CC AC_PROG_MAKE_SET AC_ISC_POSIX @@ -81,6 +91,8 @@ AC_ARG_ENABLE(sound, [ --enable-sound compile with sound support AC_ARG_ENABLE(upgrade, [ --enable-upgrade compile with auto-upgrade support [default=yes]], ,enable_upgrade=yes) +AM_GNU_GETTEXT + if test "x$enable_sound" = "xyes"; then AM_PATH_ESD(0.2.13,AC_DEFINE(HAVE_LIBESD),[ echo "WARNING: Enlightenment needs a system with libesd.so (EsounD)" @@ -201,4 +213,6 @@ epp/Makefile man/Makefile scripts/Makefile scripts/enlightenment.install +po/Makefile.in +intl/Makefile ]) diff --git a/intl/ChangeLog b/intl/ChangeLog new file mode 100644 index 00000000..19895015 --- /dev/null +++ b/intl/ChangeLog @@ -0,0 +1,1086 @@ +1998-04-29 Ulrich Drepper + + * 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 + + * loadmsgcat.c (_nl_load_domain): Don't assign the element use_mmap if + mmap is not supported. + + * hash-string.h: Don't include . + +1998-04-27 Ulrich Drepper + + * 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 + + * libgettext.h: Fix dummy textdomain and bindtextdomain macros. + They should return reasonable values. + Reported by Tom Tromey . + +1997-09-16 03:33 Ulrich Drepper + + * libgettext.h: Define PARAMS also to `args' if __cplusplus is defined. + * intlh.inst.in: Likewise. + Reported by Jean-Marc Lasgouttes . + + * libintl.glibc: Update from current glibc version. + +1997-09-06 02:10 Ulrich Drepper + + * intlh.inst.in: Reformat copyright. + +1997-08-19 15:22 Ulrich Drepper + + * dcgettext.c (DCGETTEXT): Remove wrong comment. + +1997-08-16 00:13 Ulrich Drepper + + * Makefile.in (install-data): Don't change directory to install. + +1997-08-01 14:30 Ulrich Drepper + + * 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 . + + * 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 + + * dcgettext.c (guess_category_value): Don't depend on + HAVE_LC_MESSAGES. We don't need the macro here. + Patch by Bruno Haible . + + * 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 . + + * Makefile.in (CPPFLAGS): New variable. Reported by Franc,ois + Pinard. + +Mon Mar 10 06:51:17 1997 Ulrich Drepper + + * 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 + + * 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 + + * textdomain.c: Move definition of `memcpy` macro to right + position. + +Fri Nov 22 04:01:58 1996 Ulrich Drepper + + * 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 + + * Makefile.in (libdir): Change to use exec_prefix instead of + prefix. Reported by Knut-HåvardAksnes . + +Sat Aug 31 03:07:09 1996 Ulrich Drepper + + * 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 + + * 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 + + * 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 + + * 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 + + * 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 + + * l10nflist.c: Correct presence test macros of __argz_* functions. + + * l10nflist.c: Include based on test of it instead when + __argz_* functions are available. + Reported by Andreas Schwab. + +Thu Jun 13 15:17:44 1996 Ulrich Drepper + + * explodename.c, l10nflist.c: Define NULL for dumb systems. + +Tue Jun 11 17:05:13 1996 Ulrich Drepper + + * 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 + + * Makefile.in (install): Remove comment. + +Thu Jun 6 17:28:17 1996 Ulrich Drepper + + * 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 + + * 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 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 + + * intlh.inst.in: Don't depend including 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 + + * 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 + + * loadmsgcat.c (_nl_load_domain): Parameter is now comes from + find_l10nfile. + +Sat Jun 1 02:23:03 1996 Ulrich Drepper + + * 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 + + * Makefile.in (all-gettext): New goal. Same as all-yes. + +Thu Mar 28 23:01:22 1996 Karl Eichwalder + + * Makefile.in (gettextsrcdir): Define using @datadir@. + +Tue Mar 26 12:39:14 1996 Ulrich Drepper + + * finddomain.c: Include . Reported by Roland McGrath. + +Sat Mar 23 02:00:35 1996 Ulrich Drepper + + * finddomain.c (stpcpy): Rename to stpcpy__ to prevent clashing + with external declaration. + +Sat Mar 2 00:47:09 1996 Ulrich Drepper + + * Makefile.in (all-no): Rename from all_no. + +Sat Feb 17 00:25:59 1996 Ulrich Drepper + + * 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 + + * 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 + + * localealias.c (alias_compare): Increment string pointers in loop + of strcasecmp replacement. + +Fri Dec 29 21:16:34 1995 Ulrich Drepper + + * Makefile.in (install-src): Who commented this goal out ? :-) + +Fri Dec 29 15:08:16 1995 Ulrich Drepper + + * dcgettext.c (DCGETTEXT): Save `errno'. Failing system calls + should not effect it because a missing catalog is no error. + Reported by Harald Knig . + +Tue Dec 19 22:09:13 1995 Ulrich Drepper + + * Makefile.in (Makefile): Explicitly use $(SHELL) for running + shell scripts. + +Fri Dec 15 17:34:59 1995 Andreas Schwab + + * 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 + + * 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 + + * 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 + + * Makefile.in (install-src): + Install libintl.inst instead of libintl.h.install. + +Sat Dec 2 22:51:38 1995 Marcus Daniels + + * 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 + + * cat-compat.c (bindtextdomain): Add missing { }. + +Sun Nov 26 18:21:41 1995 Ulrich Drepper + + * 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 + + * hash-string.h: Capitalize arguments of macros. + +Sat Nov 25 12:01:36 1995 Ulrich Drepper + + * 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 + + * dcgettext.c: Fix bug in preprocessor conditionals. + +Sat Nov 25 02:35:27 1995 Nelson H. F. Beebe + + * libgettext.h: Solaris cc does not understand + #if !SYMBOL1 && !SYMBOL2. Sad but true. + +Thu Nov 23 16:22:14 1995 Ulrich Drepper + + * 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 + + * 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 + + * 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 + + * hash-string.h: Correct prototype for hash_string. + +Sun Nov 12 12:42:30 1995 Ulrich Drepper + + * hash-string.h (hash_string): Add prototype. + + * gettextP.h: Fix copyright. + (SWAP): Add prototype. + +Wed Nov 8 22:56:33 1995 Ulrich Drepper + + * 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 + + * 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 + + * 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 + + * 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 + + * 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 + + * 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 + + * 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 + + * 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 + + * 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 + + * po2tbl.sed.in: Serious typo bug fixed by Jim Meyering. + +Sat Oct 28 23:20:47 1995 Ulrich Drepper + + * 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 + + * 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 + + * 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 + + * 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 + + * 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 + + * 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 + + * cat-compat.c: Include 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 + + * 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 + + * finddomain.c: Correct some bugs in handling of CEN standard + locale definitions. + +Thu Sep 7 01:49:28 1995 Ulrich Drepper + + * finddomain.c: Implement CEN syntax. + + * gettextP.h (loaded_domain): Extend number of successors to 31. + +Sat Aug 19 19:25:29 1995 Ulrich Drepper + + * 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 + + * Makefile.in (uninstall): Remove stuff installed by install-src. + +Tue Aug 15 13:13:53 1995 Ulrich Drepper + + * 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 + + * 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 + + * 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 + + * 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 + + * 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 + + * 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 + + * 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 + + * 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 + + * finddomain.c (unistd.h): + Include to get _PC_PATH_MAX defined on system having it. + +Fri Aug 4 22:42:00 1995 Ulrich Drepper + + * finddomain.c (stpcpy): Include prototype. + + * Makefile.in (dist): Remove `copying instead' message. + +Wed Aug 2 18:52:03 1995 Ulrich Drepper + + * Makefile.in (ID, TAGS): Do not use $^. + +Tue Aug 1 20:07:11 1995 Ulrich Drepper + + * 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 + + * 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 + + * 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 + + * intl-compat.c (textdomain): Correct typo. + +Wed Jul 19 01:51:35 1995 Ulrich Drepper + + * 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 + + * 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 + + * 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 + + * 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 + + * 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 + + * 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 + + * 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 + + * cat-compat.c: If !STDC_HEADERS try to include malloc.h. + +Thu Jul 13 20:55:02 1995 Ulrich Drepper + + * 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 + + * 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 + + * 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 + + * 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 + + * 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 + + * 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 + + * 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 + + * tupdate.perl.in: Complete rewrite for new .po file format. + +Sun Jul 2 02:06:50 1995 Ulrich Drepper + + * 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/intl/Makefile.in b/intl/Makefile.in new file mode 100644 index 00000000..4bdb186d --- /dev/null +++ b/intl/Makefile.in @@ -0,0 +1,214 @@ +# 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. + +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) $< + +INCLUDES = -I.. -I. -I$(top_srcdir)/intl -I$(top_srcdir)/lib + +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: + +$(OBJECTS): ../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/intl/VERSION b/intl/VERSION new file mode 100644 index 00000000..ee66b061 --- /dev/null +++ b/intl/VERSION @@ -0,0 +1 @@ +GNU gettext library from gettext-0.10.35 diff --git a/intl/bindtextdom.c b/intl/bindtextdom.c new file mode 100644 index 00000000..d9c3f349 --- /dev/null +++ b/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 +#endif + +#if defined STDC_HEADERS || defined _LIBC +# include +#else +# ifdef HAVE_MALLOC_H +# include +# else +void free (); +# endif +#endif + +#if defined HAVE_STRING_H || defined _LIBC +# include +#else +# include +# ifndef memcpy +# define memcpy(Dst, Src, Num) bcopy (Src, Dst, Num) +# endif +#endif + +#ifdef _LIBC +# include +#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/intl/cat-compat.c b/intl/cat-compat.c new file mode 100644 index 00000000..867d901b --- /dev/null +++ b/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 +#endif + +#include + +#ifdef STDC_HEADERS +# include +# include +#else +char *getenv (); +# ifdef HAVE_MALLOC_H +# include +# endif +#endif + +#ifdef HAVE_NL_TYPES_H +# include +#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/intl/dcgettext.c b/intl/dcgettext.c new file mode 100644 index 00000000..c4c7a2c7 --- /dev/null +++ b/intl/dcgettext.c @@ -0,0 +1,624 @@ +/* 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 +#endif + +#include + +#ifdef __GNUC__ +# define alloca __builtin_alloca +# define HAVE_ALLOCA 1 +#else +# if defined HAVE_ALLOCA_H || defined _LIBC +# include +# else +# ifdef _AIX + #pragma alloca +# else +# ifndef alloca +char *alloca (); +# endif +# endif +# endif +#endif + +#include +#ifndef errno +extern int errno; +#endif +#ifndef __set_errno +# define __set_errno(val) errno = (val) +#endif + +#if defined STDC_HEADERS || defined _LIBC +# include +#else +char *getenv (); +# ifdef HAVE_MALLOC_H +# include +# else +void free (); +# endif +#endif + +#if defined HAVE_STRING_H || defined _LIBC +# ifndef _GNU_SOURCE +# define _GNU_SOURCE 1 +# endif +# include +#else +# include +#endif +#if !HAVE_STRCHR && !defined _LIBC +# ifndef strchr +# define strchr index +# endif +#endif + +#if defined HAVE_UNISTD_H || defined _LIBC +# include +#endif + +#include "gettext.h" +#include "gettextP.h" +#ifdef _LIBC +# include +#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). */ +#if defined(_POSIX_VERSION) || (defined(HAVE_LIMITS_H) && !defined(__GNUC__)) +# include +#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 +#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 + +/* 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; + + /* 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 + defintion 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) 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 th 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'; + } + + /* 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 top, act, 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/intl/dgettext.c b/intl/dgettext.c new file mode 100644 index 00000000..0510c2b0 --- /dev/null +++ b/intl/dgettext.c @@ -0,0 +1,59 @@ +/* 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 +#endif + +#if defined HAVE_LOCALE_H || defined _LIBC +# include +#endif + +#ifdef _LIBC +# include +#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/intl/explodename.c b/intl/explodename.c new file mode 100644 index 00000000..8066dc29 --- /dev/null +++ b/intl/explodename.c @@ -0,0 +1,188 @@ +/* Copyright (C) 1995, 1996, 1997, 1998 Free Software Foundation, Inc. + Contributed by Ulrich Drepper , 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 +#endif + +#if defined STDC_HEADERS || defined _LIBC +# include +#endif + +#if defined HAVE_STRING_H || defined _LIBC +# include +#else +# include +#endif +#include + +#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 @@ */ + +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; + while (cp[0] != '\0' && cp[0] != '_' && cp[0] != '@' + && cp[0] != '+' && cp[0] != ',') + ++cp; + + 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/intl/finddomain.c b/intl/finddomain.c new file mode 100644 index 00000000..81ea29bf --- /dev/null +++ b/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 , 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 +#endif + +#include +#include +#include +#include + +#if defined STDC_HEADERS || defined _LIBC +# include +#else +# ifdef HAVE_MALLOC_H +# include +# else +void free (); +# endif +#endif + +#if defined HAVE_STRING_H || defined _LIBC +# include +#else +# include +# 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 +#endif + +#include "gettext.h" +#include "gettextP.h" +#ifdef _LIBC +# include +#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/intl/gettext.c b/intl/gettext.c new file mode 100644 index 00000000..d929f98d --- /dev/null +++ b/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 +#endif + +#ifdef _LIBC +# define __need_NULL +# include +#else +# ifdef STDC_HEADERS +# include /* Just for NULL. */ +# else +# ifdef HAVE_STRING_H +# include +# else +# define NULL ((void *) 0) +# endif +# endif +#endif + +#ifdef _LIBC +# include +#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/intl/gettext.h b/intl/gettext.h new file mode 100644 index 00000000..3cd23d7d --- /dev/null +++ b/intl/gettext.h @@ -0,0 +1,105 @@ +/* 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 + +#if HAVE_LIMITS_H || _LIBC +# include +#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 ) 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/intl/gettextP.h b/intl/gettextP.h new file mode 100644 index 00000000..00c52031 --- /dev/null +++ b/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 , 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 +# 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/intl/hash-string.h b/intl/hash-string.h new file mode 100644 index 00000000..cacb38e4 --- /dev/null +++ b/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 hash_string PARAMS ((const char *__str_param)); + +static inline unsigned long +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) *str++; + g = hval & ((unsigned long) 0xf << (HASHWORDBITS - 4)); + if (g != 0) + { + hval ^= g >> (HASHWORDBITS - 8); + hval ^= g; + } + } + return hval; +} diff --git a/intl/intl-compat.c b/intl/intl-compat.c new file mode 100644 index 00000000..503efa0f --- /dev/null +++ b/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 +#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/intl/l10nflist.c b/intl/l10nflist.c new file mode 100644 index 00000000..9c7dc183 --- /dev/null +++ b/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 , 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 +#endif + + +#if defined HAVE_STRING_H || defined _LIBC +# ifndef _GNU_SOURCE +# define _GNU_SOURCE 1 +# endif +# include +#else +# include +# 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 +#endif +#include +#include + +#if defined STDC_HEADERS || defined _LIBC +# include +#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 unsigned 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/intl/libgettext.h b/intl/libgettext.h new file mode 100644 index 00000000..3a92960a --- /dev/null +++ b/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 + +#if HAVE_LOCALE_H +# include +#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/intl/linux-msg.sed b/intl/linux-msg.sed new file mode 100644 index 00000000..5918e720 --- /dev/null +++ b/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 , 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 + 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/intl/loadinfo.h b/intl/loadinfo.h new file mode 100644 index 00000000..f4ebf6d8 --- /dev/null +++ b/intl/loadinfo.h @@ -0,0 +1,76 @@ +/* Copyright (C) 1996, 1997 Free Software Foundation, Inc. + This file is part of the GNU C Library. + Contributed by Ulrich Drepper , 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 unsigned 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)); diff --git a/intl/loadmsgcat.c b/intl/loadmsgcat.c new file mode 100644 index 00000000..515892df --- /dev/null +++ b/intl/loadmsgcat.c @@ -0,0 +1,222 @@ +/* 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 +#endif + +#include +#include +#include + +#if defined STDC_HEADERS || defined _LIBC +# include +#endif + +#if defined HAVE_UNISTD_H || defined _LIBC +# include +#endif + +#if (defined HAVE_MMAP && defined HAVE_MUNMAP) || defined _LIBC +# include +#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; +#if (defined HAVE_MMAP && defined HAVE_MUNMAP && !defined DISALLOW_MMAP) \ + || defined _LIBC + int use_mmap = 0; +#endif + 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; + } + +#if (defined HAVE_MMAP && defined HAVE_MUNMAP && !defined DISALLOW_MMAP) \ + || defined _LIBC + /* 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. */ +#if (defined HAVE_MMAP && defined HAVE_MUNMAP && !defined DISALLOW_MMAP) \ + || defined _LIBC + 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; +#if (defined HAVE_MMAP && defined HAVE_MUNMAP && !defined DISALLOW_MMAP) \ + || defined _LIBC + domain->use_mmap = use_mmap; +#endif + 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 illegal revision. */ +#if (defined HAVE_MMAP && defined HAVE_MUNMAP && !defined DISALLOW_MMAP) \ + || defined _LIBC + 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; +{ + if (domain->use_mmap) + munmap ((caddr_t) domain->data, domain->mmap_size); + else + free ((void *) domain->data); + + free (domain); +} +#endif diff --git a/intl/localealias.c b/intl/localealias.c new file mode 100644 index 00000000..bca555a6 --- /dev/null +++ b/intl/localealias.c @@ -0,0 +1,424 @@ +/* Handle aliases for locale names. + Copyright (C) 1995, 1996, 1997, 1998 Free Software Foundation, Inc. + Written by Ulrich Drepper , 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 +#endif + +#include +#include +#include + +#ifdef __GNUC__ +# define alloca __builtin_alloca +# define HAVE_ALLOCA 1 +#else +# if defined HAVE_ALLOCA_H || defined _LIBC +# include +# else +# ifdef _AIX + #pragma alloca +# else +# ifndef alloca +char *alloca (); +# endif +# endif +# endif +#endif + +#if defined STDC_HEADERS || defined _LIBC +# include +#else +char *getenv (); +# ifdef HAVE_MALLOC_H +# include +# else +void free (); +# endif +#endif + +#if defined HAVE_STRING_H || defined _LIBC +# ifndef _GNU_SOURCE +# define _GNU_SOURCE 1 +# endif +# include +#else +# include +# 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 + +# define mempcpy __mempcpy +# define HAVE_MEMPCPY 1 + +/* We need locking here since we can be called from different places. */ +# include + +__libc_lock_define_initialized (static, lock); +#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 */ + + +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 + */ + unsigned char buf[BUFSIZ]; + unsigned char *alias; + unsigned char *value; + unsigned 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/intl/po2tbl.sed.in b/intl/po2tbl.sed.in new file mode 100644 index 00000000..b3bcca4d --- /dev/null +++ b/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 , 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 \ +#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 + 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/intl/textdomain.c b/intl/textdomain.c new file mode 100644 index 00000000..88557460 --- /dev/null +++ b/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 , 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 +#endif + +#if defined STDC_HEADERS || defined _LIBC +# include +#endif + +#if defined STDC_HEADERS || defined HAVE_STRING_H || defined _LIBC +# include +#else +# include +# ifndef memcpy +# define memcpy(Dst, Src, Num) bcopy (Src, Dst, Num) +# endif +#endif + +#ifdef _LIBC +# include +#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/intl/xopen-msg.sed b/intl/xopen-msg.sed new file mode 100644 index 00000000..b19c0bbd --- /dev/null +++ b/intl/xopen-msg.sed @@ -0,0 +1,104 @@ +# po2msg.sed - Convert Uniforum style .po file to X/Open style .msg file +# Copyright (C) 1995 Free Software Foundation, Inc. +# Ulrich Drepper , 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 +} +# +# 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 + 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 ` ' + 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/po/Makefile.in.in b/po/Makefile.in.in new file mode 100644 index 00000000..e2fdb94d --- /dev/null +++ b/po/Makefile.in.in @@ -0,0 +1,248 @@ +# Makefile for program source directory in GNU NLS utilities package. +# Copyright (C) 1995, 1996, 1997 by Ulrich Drepper +# +# 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 = $(prefix)/enlightenment/locale +gnulocaledir = $(prefix)/enlightenment/locale +gettextsrcdir = $(prefix)/share/gettext/po +subdir = po + +INSTALL = @INSTALL@ +INSTALL_DATA = @INSTALL_DATA@ +MKINSTALLDIRS = $(top_srcdir)/@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 + +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 = nl.gmo de.gmo +CATOBJEXT = .gmo +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.cat: + sed -f ../intl/po2msg.sed < $< > $*.msg \ + && 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 + 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 + +clean: mostlyclean + +distclean: clean + rm -f Makefile Makefile.in POTFILES *.mo *.gmo *.msg *.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/po/POTFILES.in b/po/POTFILES.in new file mode 100644 index 00000000..b36d32c7 --- /dev/null +++ b/po/POTFILES.in @@ -0,0 +1,26 @@ +# List of source files containing translatable strings. + +src/actions.c +src/alert.c +src/comms.c +src/config.c +src/desktops.c +src/dialog.c +src/fx.c +src/groups.c +src/handlers.c +src/iconify.c +src/ipc.c +src/main.c +src/memory.c +src/menus.c +src/misc.c +src/modules.c +src/pager.c +src/session.c +src/settings.c +src/setup.c +src/snaps.c +src/sound.c +src/theme.c +src/update.c diff --git a/po/cat-id-tbl.c b/po/cat-id-tbl.c new file mode 100644 index 00000000..65061069 --- /dev/null +++ b/po/cat-id-tbl.c @@ -0,0 +1,963 @@ +/* Automatically generated by po2tbl.sed from enlightenment.pot. */ + +#if HAVE_CONFIG_H +# include +#endif + +#include "libgettext.h" + +const struct _msg_ent _msg_tbl[] = { + {"", 1}, + {"\ +There was an error running the program:\n\ +%s\n\ +This program could not be executed.\n\ +This is because the file does not exist.\n", 2}, + {"\ +There was an error running the program:\n\ +%s\n\ +This program could not be executed.\n\ +This is most probably because this program is not in the\n\ +path for your shell which is %s. I suggest you read the manual\n\ +page for that shell and read up how to change or add to your\n\ +execution path.\n", 3}, + {"\ +There was an error running the program:\n\ +%s\n\ +This program could not be executed.\n\ +I am unsure as to why you could not do this. The file exists,\n\ +is a file, and you are allowed to execute it. I suggest you look\n\ +into this.\n", 4}, + {"\ +There was an error running the program:\n\ +%s\n\ +This program could not be executed.\n\ +This is because the file exists, is a file, but you are unable\n\ +to execute it because you do not have execute access to this file.\n", 5}, + {"\ +There was an error running the program:\n\ +%s\n\ +This program could not be executed.\n\ +This is because the file is infact a directory.\n", 6}, + {"\ +There was an error running the program:\n\ +%s\n\ +This program could not be executed.\n\ +This is because the file is not a regular file.\n", 7}, + {"About Enlightenment %s", 8}, + {"Welcome to the ", 9}, + {"OK", 10}, + {" Pick the group the window will belong to: \n", 11}, + {"\ +\n\ + There's no current group at the moment. \n\ + The current group is the last one you created, \n\ + and it exists until you create a new one or break \n\ + the latest one. \n\ +\n\ + Pick another group that the window will belong to here: \n\ +\n", 12}, + {" Select the group to remove the window from. ", 13}, + {" Select the group to break ", 14}, + {"You have been warned about the dangers of Zoom mode\n", 15}, + {"Warning !!!", 16}, + {"\ +This feature is heavily reliant on a feature of your\n\ +X Server called the Vid Mode Extension. This feature exists\n\ +in XFree86 Servers, but is not a heavily used part of the\n\ +Server and thus isn't tested much.\n\ +\n\ +It is possible your X Server does not deal well with being\n\ +asked to switch modes quickly and it may hang, glitch,\n\ +display artifacts or perhaps simply refuse to work.\n\ +\n\ +This is a warning and will only be displayed this one time.\n\ +If your Server does not behave well then you will probably\n\ +have to avoid using this feature.\n", 17}, + {"Enlightenment Error", 18}, + {"Ignore", 19}, + {"Restart", 20}, + {"Exit", 21}, + {"\ +Received Unknown Client Message.\n\ +Client Name: %s\n\ +Client Version: %s\n\ +Message Contents:\n\ +\n\ +%s\n", 22}, + {"E IPC Error", 23}, + {"CONFIG: ignoring extra data in \"%s\"\n", 24}, + {"CONFIG: missing required data in \"%s\"\n", 25}, + {"\ +Warning: unable to determine what to do with\n\ +the following text in the middle of current Text definition:\n\ +%s\n\ +Will ignore and continue...\n", 26}, + {"\ +Warning: Configuration appears to have ended before we were\n\ +Done loading a text block. Outcome is likely not good.\n", 27}, + {"\ +Warning: Configuration appears to have ended before we were\n\ +Done loading a Slideout block. Outcome is likely not good.\n", 28}, + {"\ +Warning: unable to determine what to do with\n\ +the following text in the middle of current Control definition:\n\ +%s\n\ +Will ignore and continue...\n", 29}, + {"\ +Warning: Configuration appears to have ended before we were\n\ +Done loading a Control block. Outcome is likely not good.\n", 30}, + {"\ +Warning: Configuration appears to have ended before we were\n\ +Done loading a Menu block. Outcome is likely not good.\n", 31}, + {"\ +Warning: Configuration appears to have ended before we were\n\ +Done loading a BorderPart block. Outcome is likely not good.\n", 32}, + {"\ +Warning: Configuration appears to have ended before we were\n\ +Done loading a Main Border block. Outcome is likely not good.\n", 33}, + {"\ +Warning: Configuration appears to have ended before we were\n\ +Done loading a Button block. Outcome is likely not good.\n", 34}, + {"\ +Warning: Configuration appears to have ended before we were\n\ +Done loading a Desktop block. Outcome is likely not good.\n", 35}, + {"Easter Egg! Iconboxes aren't implemented yet.\n", 36}, + {"\ +Warning: Configuration appears to have ended before we were\n\ +Done loading an Iconbox block. Outcome is likely not good.\n", 37}, + {"\ +Warning: Configuration appears to have ended before we were\n\ +Done loading an Sound block. Outcome is likely not good.\n", 38}, + {"\ +Warning: unable to determine what to do with\n\ +the following text in the middle of current ActionClass definition:\n\ +%s\n\ +Will ignore and continue...\n", 39}, + {"\ +Warning: Configuration appears to have ended before we were\n\ +Done loading an Action Class block. Outcome is likely not good.\n", 40}, + {"\ +Warning: unable to determine what to do with\n\ +the following text in the middle of current ImageClass definition:\n\ +%s\n\ +Will ignore and continue...\n", 41}, + {"\ +Warning: Configuration appears to have ended before we were\n\ +Done loading an ImageClass block. Outcome is likely not good.\n", 42}, + {"\ +Warning: unable to determine what to do with\n\ +the following text in the middle of current ColorModifier definition:\n\ +%s\n\ +Will ignore and continue...\n", 43}, + {"\ +Warning: Configuration appears to have ended before we were\n\ +Done loading an ColorModifier block.\n\ +Outcome is likely not good.\n", 44}, + {"\ +Warning: unable to determine what to do with\n\ +the following text in the middle of current ToolTip definition:\n\ +%s\n\ +Will ignore and continue...\n", 45}, + {"\ +Warning: Configuration appears to have ended before we were\n\ +Done loading an ToolTip block. Outcome is likely not good.\n", 46}, + {"\ +Warning: Configuration appears to have ended before we were\n\ +Done loading an FX block. Outcome is likely not good.\n", 47}, + {"\ +Warning: unable to determine what to do with\n\ +the following text in the middle of current Extras definition:\n\ +%s\n\ +Will ignore and continue...\n", 48}, + {"\ +Warning: Configuration appears to have ended before we were\n\ +Done loading an Extras block. Outcome is likely not good.\n", 49}, + {"\ +Warning: unable to determine what to do with\n\ +the following text in the middle of current Iconbox definition:\n\ +%s\n\ +Will ignore and continue...\n", 50}, + {"\ +Warning: Configuration appears to have ended before we were\n\ +Done loading an Iconbox block. Outcome is likely not good.\n", 51}, + {"\ +Warning: unable to determine what to do with\n\ +the following text in the middle of current WindowMatch definition:\n\ +%s\n\ +Will ignore and continue...\n", 52}, + {"\ +Warning: Configuration appears to have ended before we were\n\ +Done loading an WindowMatch block. Outcome is likely not good.\n", 53}, + {"\ +Help! Cannot find epp!\n\ +Enlightenment is looking for epp here:\n\ +%s\n\ +This is a FATAL ERROR.\n\ +This is probably due to either the program not existing or\n\ +it not being able to be executed by you.\n", 54}, + {"error", 55}, + {"Theme versioning ERROR", 56}, + {"Restart with Defaults", 57}, + {"Abort and Exit", 58}, + {"\ +ERROR:\n\ +\n\ +The configuration for the theme you are running is\n\ +incompatible. It's config revision is %i. It needs to\n\ +be marked as being revision %i\n\ +\n\ +Please contact the theme author or maintainer and\n\ +inform them that in order for their theme to function\n\ +with this version of Enlightenment, they have to\n\ +update it to the current settings, and then match\n\ +the revision number.\n\ +\n\ +If the theme revision is higher than Enlightenment's\n\ +it may be that you haven't upgraded Enlightenment for\n\ +a while and this theme takes advantages of new\n\ +features in Enlightenment in new versions.\n", 59}, + {"User Config Version ERROR", 60}, + {"\ +ERROR:\n\ +\n\ +The settings you are using are incompatible with\n\ +this version of Enlightenment.\n\ +It's revision is %i It needs to be revision %i to\n\ +be compatible.\n\ +\n\ +If you just upgraded to a new version of E\n\ +Restarting with Defaults will remove your current\n\ +user preferences and start cleanly with system\n\ +defaults. You can then modify your configuration to\n\ +your liking again safely.\n", 61}, + {"\ +WARNING!\n\ +There was an error writing the file:\n\ +%s\n\ +This may be due to lack of disk space, quota or\n\ +filesystem permissions.\n", 62}, + {"\ +Enlightenment has just experienced some major problems in\n\ +attempting to load the theme you specified or the default\n\ +configuration directory:\n\ +%s/config/\n\ +This will prevent Enlightenment from loading any configuration\n\ +files at all.\n\ +Since this couldn't be found Enlightenment is probably not\n\ +going to find any configuration files anywhere on your\n\ +system, and so it will have almost no configuration loaded\n\ +when it starts up. This is most likely the sign of a bad\n\ +installation of Enlightenment if this directory is missing.\n\ +The likely causes are that the package was improperly built,\n\ +if a binary package, or 'make install' hasn't been typed\n\ +or during the installation the directory above was not\n\ +able to be copied over for installation perhaps due to\n\ +permissions or lack of disk space. It also could be that the\n\ +config directory has been inadvertently deleted since\n\ +installation.\n\ +This is a serious problem and should be rectified immediately\n\ +Please contact your system administrator or package maintainer.\n\ +If you are the administrator of your own system please\n\ +consult the documentation that came with Enlightenment for\n\ +additional information.\n", 63}, + {"Enlightenment Starting...", 64}, + {"Recover system config?", 65}, + {"Yes, Attempt recovery", 66}, + {"Restart and try again", 67}, + {"Quit and give up", 68}, + {"\ +Enlightenment has encountered parsing errors in your autosaved\n\ +configuration.\n\ +\n\ +This may be due to filing system errors, Minor bugs or unforeseen\n\ +system shutdowns.\n\ +\n\ +Do you wish Enlightenment to recover its original system\n\ +configuration and try again?\n", 69}, + {"\ +Hold down the mouse button and drag\n\ +the mouse to be able to drag the desktop\n\ +back and forth.\n\ +Click right mouse button for a list of all\n\ +Desktops and their applications.\n\ +Click middle mouse button for a list of all\n\ +applications currently running.\n", 70}, + {"\ +This is the Root desktop.\n\ +You cannot drag the root desktop around.\n\ +Click right mouse button for a list of all\n\ +Desktops and their applications.\n\ +Click middle mouse button for a list of all\n\ +applications currently running.\n", 71}, + {"\ +Click here to raise this desktop\n\ +to the top.\n", 72}, + {"\ +Click here to lower this desktop\n\ +to the bottom.\n", 73}, + {"Attention !!!", 74}, + {"Starting up Ripples FX...", 75}, + {"\ +\n\ +You have just started the Ripples Effect.\n\ +\n\ +If you look closely on your desktop background, and if it\n\ +doesn't have a solid colour (ie has a background texture or\n\ +image), you will see a pool of water at the bottom of your\n\ +screen that reflects everything above it and \"ripples\".\n\ +\n\ +To disable this effect just select this option again to toggle\n\ +it off.\n", 76}, + {"Unable to display raindrops", 77}, + {"\ +\n\ +Enlightenment is unable to display raindrops on this\n\ +display because Shared memory is not available on this\n\ +X-Server.\n\ +\n\ +This may be due to Enlightenment being a remote client\n\ +running over the network, a MIT-SHM incapable X-server,\n\ +having run out of SHM ID's on the system or Shared\n\ +Memory support being turned off in Imlib\n\ +\n\ +You may correct this by either running `imlib_config'\n\ +or copying the system imrc (/usr/etc/imrc) to ~/.imrc\n\ +and editing it, enabling shared memory.\n\ +\n", 78}, + {"\ +\n\ +Enlightenment is unable to display raindrops on this\n\ +display because shared pixmaps are not available on this\n\ +X-Server.\n\ +\n\ +This may be due to either the X-Server not implimenting\n\ +shared pixmaps, or shared pixmaps being disabled in\n\ +Imlib's configuration.\n\ +\n\ +You may correct this by either running `imlib_config'\n\ +or copying the system imrc (/usr/etc/imrc) to ~/.imrc\n\ +and editing it, enabling shared pixmaps.\n\ +\n", 79}, + {"Starting up Raindrops FX...", 80}, + {"\ +\n\ +You have just started the Raindrops Effect.\n\ +\n\ +If you look closely on your desktop background, and if it\n\ +doesn't have a solid colour (ie has a background texture or\n\ +image), you will see \"raindrops\" hit the background and\n\ +make little splashes. This Effect can be VERY CPU intensive.\n\ +\n\ +To disable this effect just select this option again to toggle\n\ +it off.\n", 81}, + {"Starting up Waves FX...", 82}, + {"\ +\n\ +You have just started the Waves Effect.\n\ +\n\ +If you look closely on your desktop background, and if it\n\ +doesn't have a solid colour (ie has a background texture or\n\ +image), you will see a pool of water at the bottom of your\n\ +screen that reflects everything above it and \"waves\".\n\ +\n\ +To disable this effect just select this option again to toggle\n\ +it off.\n", 83}, + {"Starting up imagespinners FX...", 84}, + {"\ +\n\ +You have just started the imagespinners Effect.\n\ +\n\ +To disable this effect just select this option again to toggle\n\ +it off.\n", 85}, + {"Cannot comply", 86}, + {"\ +Iconboxes and Pagers are disallowed from being\n\ +members of a group. You cannot add these windows\n\ +to a group.\n", 87}, + {"Window Group Error", 88}, + {"\ +\n\ + This window currently does not belong to any groups. \n\ + You can only destroy groups or remove windows from groups \n\ + through a window that actually belongs to at least one group.\n\ +\n", 89}, + {"\ +\n\ + Currently, no groups exist or this window \n\ + already belongs to all existing groups. \n\ + You have to start other groups first. \n\ +\n", 90}, + {"\ +\n\ + Currently, no groups exist. You have to start a group first.\n\ +\n", 91}, + {"Window Group Selection", 92}, + {"Close", 93}, + {"\ +Enlightenment performed an Illegal Instruction.\n\ +\n\ +This most likely is due to you having installed an run a\n\ +binary of Enlightenment that was compiled for a make or model\n\ +of CPU not 100% identical or compatible with yours. Please\n\ +either obtain the correct package for your system, or\n\ +re-compile enlightenment and possibly any support libraries\n\ +that you got in binary format to run Enlightenment.\n", 94}, + {"\ +Enlightenment caused a Floating Point Exception.\n\ +\n\ +This means that Enlightenment or support library routines it calls\n\ +have performed an illegal mathematical operation (most likely\n\ +dividing a number by zero). This is most likely a bug. It is\n\ +recommended to restart now. If you wish to help fix this please\n\ +compile Enlightenment with debugging symbols in and run\n\ +Enlightenment under gdb so you can backtrace for where it died and\n\ +send in a useful bug report with backtrace information and variable\n\ +dumps etc.\n", 95}, + {"\ +Enlightenment caused Segment Violation (Segfault)\n\ +\n\ +This means that Enlightenment or support library routines it calls\n\ +have accessed areas of your system's memory that they are not\n\ +allowed access to. This is most likely a bug. It is recommended to\n\ +restart now. If you wish to help fix this please compile\n\ +Enlightenment with debugging symbols in and run Enlightenment\n\ +under gdb so you can backtrace for where it died and send in a\n\ +useful bug report with backtrace information and variable\n\ +dumps etc.\n", 96}, + {"\ +Enlightenment caused Bus Error.\n\ +\n\ +It is suggested you check your hardware and OS installation.\n\ +It is highly unusual to cause Bus Errors on operational\n\ +hardware.\n", 97}, + {"Another Window Manager is already running", 98}, + {"OK (edit file)", 99}, + {"Cancel (do NOT edit)", 100}, + {"\ +Another Window Manager is already running.\n\ +\n\ +You will have to quit your current Window Manager first before\n\ +you can successfully run Enlightenment.\n\ +\n\ +If you haven't edited your user startup files, Enlightenment\n\ +can do that now for you, so when you log in again after\n\ +quitting your current window manager, you will have\n\ +Enlightenment running.\n\ +\n\ +If you want to do this, click OK, otherwise hit cancel\n\ +to abort this operation and edit the files by hand.\n\ +\n\ +WARNING WARNING WARNING WARNING!\n\ +\n\ +It is possible that this MAY not properly edit your files.\n", 101}, + {"Are you sure?", 102}, + {"YES (edit file)", 103}, + {"NO (do not edit)", 104}, + {"\ +Are you absolutely sure you want to have Enlightenment\n\ +edit your startup files for you?\n\ +\n\ +If your startup files are highly customised this may not\n\ +work.\n\ +\n\ +Are you ABSOLUTELY sure?\n", 105}, + {"Iconbox Options", 106}, + {"This Iconbox Settings...", 107}, + {"Close Iconbox", 108}, + {"Create New Iconbox", 109}, + {"Enlightenment IPC Commands Help", 110}, + {"\ +\n\ +commands currently available:\n", 111}, + {"\ +use \"help all\" for descriptions of each command\n\ +use \"help \" for an individual description\n\ +\n", 112}, + {"use \"help \" for an individual description\n", 113}, + {" : \n", 114}, + {"\ +Enlightenment Version : %s\n\ +code is current to : %s\n", 115}, + {"Enlightenment Message Dialog", 116}, + {"Ignore this", 117}, + {"Restart Enlightenment", 118}, + {"Quit Enlightenment", 119}, + {"\ +Enlightenment Version: %s\n\ +Last updated on: %s\n", 120}, + {"Cannot allocate enough memory", 121}, + {"\ +WARNING!!!!!!\n\ +\n\ +Allocation for %i bytes (%3.0f Kb or %3.1f Mb) did not succeed.\n\ +\n\ +Either this is a bug where ridiculous amounts of memory\n\ +are being allocated, or your system has run out of both\n\ +real and virtual memory and is unable to satisfy the request.\n\ +\n\ +If you have a low memory system it is suggested to either\n\ +purchase more memory, increase SWAP space, or reconfigure\n\ +Enlightenment to use less resources by turning features off.\n\ +\n\ +The malloc requested was at %s, line %d\n\ + ", 122}, + {"Error in reallocating memory that hasn't been allocated", 123}, + {"\ +WARNING!!!!!!\n\ +\n\ +Re-allocation for %i bytes (%3.0f Kb or %f3.1 Mb)\n\ +for pointer %x is attempting to re-allocate memory for a\n\ +memory chunk that has not been allocated or has already been\n\ +freed.\n\ +\n\ +This is definitely a bug. Please report it.\n\ +\n\ +The error occured at %s, line %d.\n", 124}, + {"\ +WARNING!!!!!!\n\ +\n\ +Re-allocation for %i bytes (%3.0f Kb or %3.1f Mb) did not succeed.\n\ +\n\ +Either this is a bug where ridiculous amounts of memory\n\ +are being allocated, or your system has run out of both\n\ +real and virtual memory and is unable to satisfy the request.\n\ +\n\ +If you have a low memory system it is suggested to either\n\ +purchase more memory, increase SWAP space, or reconfigure\n\ +Enlightenment to use less resources by turning features off.\n\ +\n\ +The realloc requested was at %s, line %d\n\ + ", 125}, + {"Error in freeing memory that hasn't been allocated", 126}, + {"\ +WARNING!!!!!!\n\ +\n\ +freeing for pointer %x is attempting to free memory for a\n\ +memory chunk that has not been allocated, or has already been\n\ +freed.\n\ +\n\ +This is definitely a bug. Please report it.\n\ +\n\ +The error occured at %s, line %d.\n", 127}, + {"Error in attempting to free NULL pointer", 128}, + {"Ignore this (safe)", 129}, + {"\ +WARNING!!!!!!\n\ +\n\ +Enlightenment attempted to free a NULL pointer.\n\ +\n\ +This is definitely a bug. Please report it.\n\ +It is safe to ignore this error and continue running Enlightenment.\n\ +\n\ +The pointer value was %x.\n\ +The error occured at %s, line %d.\n", 130}, + {"Go to this Desktop", 131}, + {"Desktop %i", 132}, + {"Show/Hide this group", 133}, + {"Iconify this group", 134}, + {"Group %i", 135}, + {"\ +!!!!!!!! ERROR ERROR ERROR ERROR !!!!!!!!\n\ +\n\ +Enlightenment's utility executable cannot be found at:\n\ +\n\ +%s\n\ +This is a fatal error and Enlightenment will cease to run.\n\ +Please rectify this situation and ensure it is installed\n\ +correctly.\n\ +\n\ +The reason this could be missing is due to badly created\n\ +packages, someone manually deleting that program or perhaps\n\ +an error in installing Enlightenment.\n", 136}, + {"\ +!!!!!!!! ERROR ERROR ERROR ERROR !!!!!!!!\n\ +\n\ +Enlightenment's dox executable is not able to be executed:\n\ +\n\ +%s\n\ +This is a fatal error and Enlightenment will cease to run.\n\ +Please rectify this situation and ensure dox is installed\n\ +correctly.\n", 137}, + {"\ +!!!!!!!! ERROR ERROR ERROR ERROR !!!!!!!!\n\ +\n\ +Enlightenment's documentation is not present or correctly installed\n\ +\n\ +This is a fatal error and Enlightenment will cease to run.\n\ +Please rectify this situation and ensure it is installed\n\ +correctly.\n\ +\n\ +The reason this could be missing is due to badly created\n\ +packages, someone manually deleting those files or perhaps\n\ +an error in installing Enlightenment.\n", 138}, + {"\ +!!!!!!!! ERROR ERROR ERROR ERROR !!!!!!!!\n\ +\n\ +Enlightenment's DEFAULT installed theme is missing or inadequately\n\ +configured to be a useful DEFAULT theme.\n\ +\n\ +This is a fatal error and Enlightenment will cease to run.\n\ +Please rectify this situation and ensure it is installed\n\ +correctly. The DEFAULT theme Enlightenment comes with normally\n\ +is BrushedMetal-Tigert and this theme is adequate for a DEFAULT\n\ +theme.\n", 139}, + {"Theme does not contain a borders.cfg file\n", 140}, + {"Theme does not contain a buttons.cfg file\n", 141}, + {"Theme does not contain a colormodifiers.cfg file\n", 142}, + {"Theme does not contain a cursors.cfg file\n", 143}, + {"Theme does not contain a desktops.cfg file\n", 144}, + {"Theme does not contain a imageclasses.cfg file\n", 145}, + {"Theme does not contain a init.cfg file\n", 146}, + {"Theme does not contain a menustyles.cfg file\n", 147}, + {"Theme does not contain a slideouts.cfg file\n", 148}, + {"Theme does not contain a sound.cfg file\n", 149}, + {"Theme does not contain a tooltips.cfg file\n", 150}, + {"Theme does not contain a windowmatches.cfg file\n", 151}, + {"Theme contains a menus.cfg file\n", 152}, + {"Theme contains a control.cfg file\n", 153}, + {"Theme contains a keybindings.cfg file\n", 154}, + {"Module is Already Loaded.\n", 155}, + {"Module Failed During Load.\n", 156}, + {"Module Unload Failed.\n", 157}, + {"Module is not Loaded.\n", 158}, + {"Unknown Module Error.\n", 159}, + {"Warning!", 160}, + {"\ +\n\ +You seem to have an X Server capable of Shared Memory\n\ +but it is incapable of doing ZPixmap Shared pixmaps\n\ +(The server does not claim to be able to do them).\n\ +\n\ +The pager in enlightenment will run slowly in snapshot\n\ +mode if you continue to use that mode of the pager\n\ +under these conditions.\n\ +\n\ +It is suggested you change the settings on your pager to\n\ +disable snapshots to improve performance.\n\ +\n", 161}, + {"\ +\n\ +Your X Server is capable of doing Shared Memory but you do\n\ +not have Shared Pixmaps enabled in your Imlib configuration.\n\ +\n\ +Please enable Shared Pixmaps in your Imlib configuration\n\ +then restart enlightenment to gain better performance for\n\ +the pagers when snapshot mode is enabled.\n\ +\n", 162}, + {"\ +\n\ +You seem to be running Enlightenment over a network Connection\n\ +or on an X Server that does not support Shared Memory, or you\n\ +have disabled MIT-SHM Shared memory in your Imlib configuration.\n\ +This means the Enlightenment Pager will perform slowly and use\n\ +more system resources than it would when Shared Memory is\n\ +available.\n\ +\n\ +To improve performance please either enable MIT-SHM Shared Memory\n\ +in your Imlib config, if you disabled it, or disable Pager\n\ +snapshots.\n\ +\n", 163}, + {"Window Options", 164}, + {"Iconify", 165}, + {"Annihilate", 166}, + {"Stick / Unstick", 167}, + {"Desktop Options", 168}, + {"Pager Settings...", 169}, + {"Snapshotting On", 170}, + {"Snapshotting Off", 171}, + {"High Quality On", 172}, + {"High Quality Off", 173}, + {"\ +There was an error writing the clients session save file.\n\ +You may have run out of disk space, not have permission\n\ +to write to your filing system or other similar problems.\n", 174}, + {"\ +There was an error saving your autosave data - filing\n\ +system problems.\n", 175}, + {"\ +ERROR!\n\ +\n\ +Lost the Session Manager that was there?\n\ +Here here session manager... come here... want a bone?\n\ +Oh come now! Stop sulking! Bugger. Oh well. Will continue without\n\ +a session manager.\n\ +\n\ +I'll survive somehow.\n\ +\n\ +\n\ +... I hope.\n", 176}, + {"\ +\n\ +\n\ + Are you sure you wish to log out ? \n\ +\n\ +\n", 177}, + {" Yes, Log Out ", 178}, + {" No ", 179}, + {"Pager scanning speed:", 180}, + {"lines per second", 181}, + {"Pager Settings", 182}, + {"Enable pager display", 183}, + {"Make miniature snapshots of the screen", 184}, + {"Smooth high quality snapshots in snapshot mode", 185}, + {"Zoom in on pager windows when mouse is over them", 186}, + {"Pop up window title when mouse is over the window", 187}, + {"Continuously scan screen to update pager", 188}, + {"Mouse button to select and drag windows:", 189}, + {"Left", 190}, + {"Middle", 191}, + {"Right", 192}, + {"Mouse button to select desktops:", 193}, + {"Mouse button to display pager menu:", 194}, + {"Apply", 195}, + {"Focus Settings", 196}, + {"Focus follows pointer", 197}, + {"Focus follows pointer sloppily", 198}, + {"Focus follows mouse clicks", 199}, + {"Clicking in a window always raises it", 200}, + {"All new windows first get the focus", 201}, + {"Only new dialog windows get the focus", 202}, + {"Only new dialogs whose owner is focused get the focus", 203}, + {"Raise windows on focus switch", 204}, + {"Send mouse pointer to window on focus switch", 205}, + {"Display and use focuslist", 206}, + {"Raise windows after focus switch", 207}, + {"Send mouse pointer to window after focus switch", 208}, + {"Move & Resize Settings", 209}, + {"Move Methods:", 210}, + {"Resize Methods:", 211}, + {"Opaque", 212}, + {"Technical", 213}, + {"Box", 214}, + {"Shaded", 215}, + {"Semi-Solid", 216}, + {"Translucent", 217}, + {"%i Desktops", 218}, + {"%i Desktop", 219}, + {"Multiple Desktop Settings", 220}, + {"Number of virtual desktops:\n", 221}, + {"\ +%i x %i\n\ +Screens in size", 222}, + {"\ +1\n\ +Screen in size", 223}, + {"Virtual Deskop Settings", 224}, + {"Virtual Desktop size:\n", 225}, + {"Enable edge flip", 226}, + {"Resistance at edge of screen:\n", 227}, + {"Window Placement Settings", 228}, + {"Dialog windows appear together with their owner", 229}, + {"Switch to desktop where dialog appears", 230}, + {"Place windows manually", 231}, + {"Autoraise Settings", 232}, + {"Raise Windows Automatically", 233}, + {"Autoraise delay:", 234}, + {"Tooltip Settings", 235}, + {"Display Tooltips", 236}, + {"Display Root Window Tips", 237}, + {"Tooltip Delay:\n", 238}, + {"KDE Settings", 239}, + {"Enable KDE Support", 240}, + {"Audio Settings", 241}, + {"Enable sounds", 242}, + {"\ +Audio not available since EsounD was not\n\ +present at the time of compilation.", 243}, + {"Special FX Settings", 244}, + {"Slide Method:", 245}, + {"Slide desktops around when changing", 246}, + {"Slide windows around when cleaning up", 247}, + {"Slide windows in when they appear", 248}, + {"Animated display of menus", 249}, + {"Always pop up menus on screen", 250}, + {"Use saveunders to reduce window exposures", 251}, + {"Animate shading and unshading of windows", 252}, + {"Display desktop dragbar", 253}, + {"Drag bar position:", 254}, + {"Top", 255}, + {"Bottom", 256}, + {"Desktop Slide speed: (slow)\n", 257}, + {"(fast)\n", 258}, + {"Cleanup Slide speed: (slow)\n", 259}, + {"Appear Slide speed: (slow)\n", 260}, + {"Window Shading speed: (slow)\n", 261}, + {"-NONE-", 262}, + {"\ +Background definition information:\n\ +Name: %s\n\ +File: %s\n", 263}, + {"\ +No\n\ +Background", 264}, + {"Unused backgrounds freed after %2i:%02i:%02i", 265}, + {"Desktop Background Settings", 266}, + {"BG Color\n", 267}, + {"Move to Front\n", 268}, + {"Duplicate\n", 269}, + {"Unlist\n", 270}, + {"Delete File\n", 271}, + {"Red:\n", 272}, + {"Use background image", 273}, + {"Green:\n", 274}, + {"Keep aspect on scale", 275}, + {"Blue:\n", 276}, + {"Tile image across background", 277}, + {"\ +Background\n\ +Image\n\ +Scaling\n\ +and\n\ +Alignment\n", 278}, + {"Use dithering in Hi-Color", 279}, + {"Background overrides theme", 280}, + {"Prescan BG's", 281}, + {"Sort by File", 282}, + {"Sort by Attr.", 283}, + {"Sort by Image", 284}, + {"Iconbox Settings", 285}, + {"Transparent background", 286}, + {"Hide border around inner Iconbox", 287}, + {"Show icon names", 288}, + {"Draw base image behind Icons", 289}, + {"Hide scrollbar when not needed", 290}, + {"Automatically resize to fit Icons", 291}, + {"Animate when iconifying to this Iconbox", 292}, + {"Alignment of anchoring when automatically resizing:", 293}, + {"Icon image display policy (if one operation fails, try the next):", 294}, + {"Snapshot Windows, Use application icon, Use Enlightenment Icon", 295}, + {"Use application icon, Use Enlightenment Icon, Snapshot Window", 296}, + {"Use Enlightenment Icon, Snapshot Window", 297}, + {"Icon size", 298}, + {"Orientation:", 299}, + {"Scrollbar side:", 300}, + {"Scrollbar arrows:", 301}, + {"Horizontal", 302}, + {"Left / Top", 303}, + {"Start", 304}, + {"Vertical", 305}, + {"Right / Bottom", 306}, + {"Both ends", 307}, + {"End", 308}, + {"None", 309}, + {"\ +\n\ + This window currently does not belong to any groups. \n\ +\n", 310}, + {"Window Group Settings", 311}, + {" Pick the group to configure: ", 312}, + {"\ + The following actions are \n\ + applied to all group members: ", 313}, + {"Changing Border Style", 314}, + {"Iconifying", 315}, + {"Killing", 316}, + {"Moving", 317}, + {"Raising/Lowering", 318}, + {"Sticking", 319}, + {"Shading", 320}, + {"Mirror Shade/Iconify/Stick", 321}, + {"Default Group Control Settings", 322}, + {"\ +Enlightenment cannot connect to the display nominated by\n\ +your shell's DISPLAY environment variable. You may set this\n\ +variable to indicate which display name Enlightenment is to\n\ +connect to. It may be that you do not have an Xserver already\n\ +running to serve that Display connection, or that you do not\n\ +have permission to connect to that display. Please make sure\n\ +all is correct before trying again. Run an Xserver by running\n\ +xdm or startx first, or contact your local system\n\ +administrator, or Xserver vendor, or read the X, xdm and\n\ +startx manual pages before proceeding.\n", 323}, + {"X server setup error", 324}, + {"\ +FATAL ERROR:\n\ +\n\ +This Xserver does not support the Shape extension.\n\ +This is required for Enlightenment to run.\n\ +\n\ +Your Xserver probably is too old or mis-configured.\n\ +\n\ +Exiting.\n", 325}, + {"Imlib initialisation error", 326}, + {"\ +FATAL ERROR:\n\ +\n\ +Enlightenment is unable to initialise Imlib.\n\ +\n\ +This is unusual. Unable to contiune.\n\ +Exiting.\n", 327}, + {"\ +FATAL ERROR:\n\ +\n\ +Enlightenment is unable to initialise Fnlib.\n\ +\n\ +This is unusual. Unable to contiune.\n\ +Exiting.\n", 328}, + {"X server version error", 329}, + {"Ignore this error", 330}, + {"\ +WARNING:\n\ +This is not an X11 Xserver. It infact talks the X%i protocol.\n\ +This may mean Enlightenment will either not function, or\n\ +function incorrectly. If it is later than X11, then your\n\ +server is one the author of Enlightenment neither have\n\ +access to, nor have heard of.\n", 331}, + {"\ +The directory %s is apparently not a directory\n\ +This is a fatal condition.\n\ +Please remove this file\n", 332}, + {"\ +Do not have execute access to %s\n\ +This is a fatal condition.\n\ +Please check the ownership and permissions of this\n\ +directory and take steps to rectify this.\n", 333}, + {"\ +Do not have read access to %s\n\ +This is a fatal condition.\n\ +Please check the ownership and permissions of this\n\ +directory and take steps to rectify this.\n", 334}, + {"\ +Do not have write access to %s\n\ +This is a fatal condition.\n\ +Please check the ownership and permissions of this\n\ +directory and take steps to rectify this.\n", 335}, + {"Location", 336}, + {"Border style", 337}, + {"Size", 338}, + {"Desktop", 339}, + {"Shaded state", 340}, + {"Sticky state", 341}, + {"Stacking layer", 342}, + {"Restart application on login", 343}, + {"Remember this window's group(s)", 344}, + {"Cancel", 345}, + {"Error saving snaps file\n", 346}, + {"Error finding sound file", 347}, + {"\ +Warning! Enlightenment was unable to load the\n\ +following sound file:\n\ +%s\n\ +Enlightenment will continue to operate, but you\n\ +may wish to check your configuration settings.\n", 348}, + {"Error initialising sound", 349}, + {"\ +Audio was enabled for Enlightenemnt but there was an error\n\ +communicating with the audio server (Esound). Audio will\n\ +now be disabled.\n", 350}, + {"Unknown\n", 351}, + {"Theme file/directory does not exist\n", 352}, + {"\ +The theme:\n\ +%s\n\ +Is a badly formed theme package and is thus not being used.\n\ +Enlightenment has fallen back to using the DEFAULT theme.\n\ +\n\ +The reason this theme is bad is:\n\ +%s", 353}, + {"Bad Theme", 354}, + {"Enlightenment's message of the day", 355}, +}; + +int _msg_tbl_length = 355; diff --git a/po/de.po b/po/de.po new file mode 100644 index 00000000..a7b8286c --- /dev/null +++ b/po/de.po @@ -0,0 +1,2093 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) YEAR Free Software Foundation, Inc. +# FIRST AUTHOR , YEAR. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: PACKAGE VERSION\n" +"POT-Creation-Date: 1999-11-28 00:18+0100\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language-Team: LANGUAGE \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=CHARSET\n" +"Content-Transfer-Encoding: ENCODING\n" + +#: src/actions.c:665 +#, c-format +msgid "" +"There was an error running the program:\n" +"%s\n" +"This program could not be executed.\n" +"This is because the file does not exist.\n" +msgstr "" + +#: src/actions.c:672 +#, c-format +msgid "" +"There was an error running the program:\n" +"%s\n" +"This program could not be executed.\n" +"This is most probably because this program is not in the\n" +"path for your shell which is %s. I suggest you read the manual\n" +"page for that shell and read up how to change or add to your\n" +"execution path.\n" +msgstr "" + +#: src/actions.c:694 +#, c-format +msgid "" +"There was an error running the program:\n" +"%s\n" +"This program could not be executed.\n" +"I am unsure as to why you could not do this. The file exists,\n" +"is a file, and you are allowed to execute it. I suggest you look\n" +"into this.\n" +msgstr "" + +#: src/actions.c:707 +#, c-format +msgid "" +"There was an error running the program:\n" +"%s\n" +"This program could not be executed.\n" +"This is because the file exists, is a file, but you are unable\n" +"to execute it because you do not have execute access to this file.\n" +msgstr "" + +#: src/actions.c:723 +#, c-format +msgid "" +"There was an error running the program:\n" +"%s\n" +"This program could not be executed.\n" +"This is because the file is infact a directory.\n" +msgstr "" + +#: src/actions.c:731 +#, c-format +msgid "" +"There was an error running the program:\n" +"%s\n" +"This program could not be executed.\n" +"This is because the file is not a regular file.\n" +msgstr "" + +#: src/actions.c:3102 +#, c-format +msgid "About Enlightenment %s" +msgstr "" + +#: src/actions.c:3118 +msgid "Welcome to the " +msgstr "" + +#: src/actions.c:3140 src/dialog.c:303 src/groups.c:664 src/settings.c:213 +#: src/settings.c:430 src/settings.c:595 src/settings.c:774 +#: src/settings.c:1000 src/settings.c:1100 src/settings.c:1199 +#: src/settings.c:1304 src/settings.c:1366 src/settings.c:1455 +#: src/settings.c:1846 src/settings.c:3220 src/settings.c:3555 +#: src/settings.c:3844 src/settings.c:3982 src/snaps.c:503 src/sound.c:261 +msgid "OK" +msgstr "" + +#: src/actions.c:3293 +msgid " Pick the group the window will belong to: \n" +msgstr "" + +#: src/actions.c:3638 +msgid "" +"\n" +" There's no current group at the moment. \n" +" The current group is the last one you created, \n" +" and it exists until you create a new one or break \n" +" the latest one. \n" +"\n" +" Pick another group that the window will belong to here: \n" +"\n" +msgstr "" + +#: src/actions.c:3672 +msgid " Select the group to remove the window from. " +msgstr "" + +#: src/actions.c:3698 +msgid " Select the group to break " +msgstr "" + +#: src/actions.c:3725 +msgid "You have been warned about the dangers of Zoom mode\n" +msgstr "" + +#: src/actions.c:3728 +msgid "Warning !!!" +msgstr "" + +#: src/actions.c:3729 +msgid "" +"This feature is heavily reliant on a feature of your\n" +"X Server called the Vid Mode Extension. This feature exists\n" +"in XFree86 Servers, but is not a heavily used part of the\n" +"Server and thus isn't tested much.\n" +"\n" +"It is possible your X Server does not deal well with being\n" +"asked to switch modes quickly and it may hang, glitch,\n" +"display artifacts or perhaps simply refuse to work.\n" +"\n" +"This is a warning and will only be displayed this one time.\n" +"If your Server does not behave well then you will probably\n" +"have to avoid using this feature.\n" +msgstr "" + +#: src/alert.c:178 +msgid "Enlightenment Error" +msgstr "" + +#: src/alert.c:180 +msgid "Ignore" +msgstr "" + +#: src/alert.c:182 +msgid "Restart" +msgstr "" + +#: src/alert.c:184 +msgid "Exit" +msgstr "" + +#: src/comms.c:2251 +#, c-format +msgid "" +"Received Unknown Client Message.\n" +"Client Name: %s\n" +"Client Version: %s\n" +"Message Contents:\n" +"\n" +"%s\n" +msgstr "" + +#: src/comms.c:2256 +msgid "E IPC Error" +msgstr "" + +#: src/config.c:238 src/config.c:475 src/config.c:553 src/config.c:822 +#: src/config.c:939 src/config.c:1187 src/config.c:1314 src/config.c:1418 +#: src/config.c:1632 src/config.c:1879 src/config.c:1947 src/config.c:2040 +#: src/config.c:2293 src/config.c:2508 src/config.c:2771 src/config.c:2864 +#: src/config.c:2941 src/config.c:3042 src/config.c:3374 +#, c-format +msgid "CONFIG: ignoring extra data in \"%s\"\n" +msgstr "" + +#: src/config.c:244 src/config.c:481 src/config.c:561 src/config.c:828 +#: src/config.c:945 src/config.c:1193 src/config.c:1320 src/config.c:1426 +#: src/config.c:1640 src/config.c:1885 src/config.c:1953 src/config.c:2048 +#: src/config.c:2299 src/config.c:2516 src/config.c:2777 src/config.c:3048 +#: src/config.c:3382 +#, c-format +msgid "CONFIG: missing required data in \"%s\"\n" +msgstr "" + +#: src/config.c:438 src/config.c:515 +#, c-format +msgid "" +"Warning: unable to determine what to do with\n" +"the following text in the middle of current Text definition:\n" +"%s\n" +"Will ignore and continue...\n" +msgstr "" + +#: src/config.c:445 +msgid "" +"Warning: Configuration appears to have ended before we were\n" +"Done loading a text block. Outcome is likely not good.\n" +msgstr "" + +#: src/config.c:522 +msgid "" +"Warning: Configuration appears to have ended before we were\n" +"Done loading a Slideout block. Outcome is likely not good.\n" +msgstr "" + +#: src/config.c:789 +#, c-format +msgid "" +"Warning: unable to determine what to do with\n" +"the following text in the middle of current Control definition:\n" +"%s\n" +"Will ignore and continue...\n" +msgstr "" + +#: src/config.c:796 +msgid "" +"Warning: Configuration appears to have ended before we were\n" +"Done loading a Control block. Outcome is likely not good.\n" +msgstr "" + +#: src/config.c:906 src/config.c:1146 +msgid "" +"Warning: Configuration appears to have ended before we were\n" +"Done loading a Menu block. Outcome is likely not good.\n" +msgstr "" + +#: src/config.c:1282 +msgid "" +"Warning: Configuration appears to have ended before we were\n" +"Done loading a BorderPart block. Outcome is likely not good.\n" +msgstr "" + +#: src/config.c:1371 +msgid "" +"Warning: Configuration appears to have ended before we were\n" +"Done loading a Main Border block. Outcome is likely not good.\n" +msgstr "" + +#: src/config.c:1588 +msgid "" +"Warning: Configuration appears to have ended before we were\n" +"Done loading a Button block. Outcome is likely not good.\n" +msgstr "" + +#: src/config.c:1844 src/config.c:1922 +msgid "" +"Warning: Configuration appears to have ended before we were\n" +"Done loading a Desktop block. Outcome is likely not good.\n" +msgstr "" + +#: src/config.c:1934 +msgid "Easter Egg! Iconboxes aren't implemented yet.\n" +msgstr "" + +#: src/config.c:1964 +msgid "" +"Warning: Configuration appears to have ended before we were\n" +"Done loading an Iconbox block. Outcome is likely not good.\n" +msgstr "" + +#: src/config.c:1999 +msgid "" +"Warning: Configuration appears to have ended before we were\n" +"Done loading an Sound block. Outcome is likely not good.\n" +msgstr "" + +#: src/config.c:2249 +#, c-format +msgid "" +"Warning: unable to determine what to do with\n" +"the following text in the middle of current ActionClass definition:\n" +"%s\n" +"Will ignore and continue...\n" +msgstr "" + +#: src/config.c:2263 +msgid "" +"Warning: Configuration appears to have ended before we were\n" +"Done loading an Action Class block. Outcome is likely not good.\n" +msgstr "" + +#: src/config.c:2461 +#, c-format +msgid "" +"Warning: unable to determine what to do with\n" +"the following text in the middle of current ImageClass definition:\n" +"%s\n" +"Will ignore and continue...\n" +msgstr "" + +#: src/config.c:2468 +msgid "" +"Warning: Configuration appears to have ended before we were\n" +"Done loading an ImageClass block. Outcome is likely not good.\n" +msgstr "" + +#: src/config.c:2708 +#, c-format +msgid "" +"Warning: unable to determine what to do with\n" +"the following text in the middle of current ColorModifier definition:\n" +"%s\n" +"Will ignore and continue...\n" +msgstr "" + +#: src/config.c:2732 +msgid "" +"Warning: Configuration appears to have ended before we were\n" +"Done loading an ColorModifier block.\n" +"Outcome is likely not good.\n" +msgstr "" + +#: src/config.c:2825 +#, c-format +msgid "" +"Warning: unable to determine what to do with\n" +"the following text in the middle of current ToolTip definition:\n" +"%s\n" +"Will ignore and continue...\n" +msgstr "" + +#: src/config.c:2832 +msgid "" +"Warning: Configuration appears to have ended before we were\n" +"Done loading an ToolTip block. Outcome is likely not good.\n" +msgstr "" + +#: src/config.c:2870 +msgid "" +"Warning: Configuration appears to have ended before we were\n" +"Done loading an FX block. Outcome is likely not good.\n" +msgstr "" + +#: src/config.c:2906 +#, c-format +msgid "" +"Warning: unable to determine what to do with\n" +"the following text in the middle of current Extras definition:\n" +"%s\n" +"Will ignore and continue...\n" +msgstr "" + +#: src/config.c:2914 +msgid "" +"Warning: Configuration appears to have ended before we were\n" +"Done loading an Extras block. Outcome is likely not good.\n" +msgstr "" + +#: src/config.c:3004 +#, c-format +msgid "" +"Warning: unable to determine what to do with\n" +"the following text in the middle of current Iconbox definition:\n" +"%s\n" +"Will ignore and continue...\n" +msgstr "" + +#: src/config.c:3012 +msgid "" +"Warning: Configuration appears to have ended before we were\n" +"Done loading an Iconbox block. Outcome is likely not good.\n" +msgstr "" + +#: src/config.c:3120 +#, c-format +msgid "" +"Warning: unable to determine what to do with\n" +"the following text in the middle of current WindowMatch definition:\n" +"%s\n" +"Will ignore and continue...\n" +msgstr "" + +#: src/config.c:3127 +msgid "" +"Warning: Configuration appears to have ended before we were\n" +"Done loading an WindowMatch block. Outcome is likely not good.\n" +msgstr "" + +#: src/config.c:3176 +#, c-format +msgid "" +"Help! Cannot find epp!\n" +"Enlightenment is looking for epp here:\n" +"%s\n" +"This is a FATAL ERROR.\n" +"This is probably due to either the program not existing or\n" +"it not being able to be executed by you.\n" +msgstr "" + +#: src/config.c:3183 +msgid "error" +msgstr "" + +#: src/config.c:3391 +msgid "Theme versioning ERROR" +msgstr "" + +#: src/config.c:3392 src/config.c:3427 +msgid "Restart with Defaults" +msgstr "" + +#: src/config.c:3394 src/config.c:3429 +msgid "Abort and Exit" +msgstr "" + +#: src/config.c:3395 +#, c-format +msgid "" +"ERROR:\n" +"\n" +"The configuration for the theme you are running is\n" +"incompatible. It's config revision is %i. It needs to\n" +"be marked as being revision %i\n" +"\n" +"Please contact the theme author or maintainer and\n" +"inform them that in order for their theme to function\n" +"with this version of Enlightenment, they have to\n" +"update it to the current settings, and then match\n" +"the revision number.\n" +"\n" +"If the theme revision is higher than Enlightenment's\n" +"it may be that you haven't upgraded Enlightenment for\n" +"a while and this theme takes advantages of new\n" +"features in Enlightenment in new versions.\n" +msgstr "" + +#: src/config.c:3426 +msgid "User Config Version ERROR" +msgstr "" + +#: src/config.c:3430 +#, c-format +msgid "" +"ERROR:\n" +"\n" +"The settings you are using are incompatible with\n" +"this version of Enlightenment.\n" +"It's revision is %i It needs to be revision %i to\n" +"be compatible.\n" +"\n" +"If you just upgraded to a new version of E\n" +"Restarting with Defaults will remove your current\n" +"user preferences and start cleanly with system\n" +"defaults. You can then modify your configuration to\n" +"your liking again safely.\n" +msgstr "" + +#: src/config.c:3642 +#, c-format +msgid "" +"WARNING!\n" +"There was an error writing the file:\n" +"%s\n" +"This may be due to lack of disk space, quota or\n" +"filesystem permissions.\n" +msgstr "" + +#: src/config.c:3654 +#, c-format +msgid "" +"Enlightenment has just experienced some major problems in\n" +"attempting to load the theme you specified or the default\n" +"configuration directory:\n" +"%s/config/\n" +"This will prevent Enlightenment from loading any configuration\n" +"files at all.\n" +"Since this couldn't be found Enlightenment is probably not\n" +"going to find any configuration files anywhere on your\n" +"system, and so it will have almost no configuration loaded\n" +"when it starts up. This is most likely the sign of a bad\n" +"installation of Enlightenment if this directory is missing.\n" +"The likely causes are that the package was improperly built,\n" +"if a binary package, or 'make install' hasn't been typed\n" +"or during the installation the directory above was not\n" +"able to be copied over for installation perhaps due to\n" +"permissions or lack of disk space. It also could be that the\n" +"config directory has been inadvertently deleted since\n" +"installation.\n" +"This is a serious problem and should be rectified immediately\n" +"Please contact your system administrator or package maintainer.\n" +"If you are the administrator of your own system please\n" +"consult the documentation that came with Enlightenment for\n" +"additional information.\n" +msgstr "" + +#: src/config.c:3722 +msgid "Enlightenment Starting..." +msgstr "" + +#: src/config.c:4134 +msgid "Recover system config?" +msgstr "" + +#: src/config.c:4135 +msgid "Yes, Attempt recovery" +msgstr "" + +#: src/config.c:4136 +msgid "Restart and try again" +msgstr "" + +#: src/config.c:4137 +msgid "Quit and give up" +msgstr "" + +#: src/config.c:4138 +msgid "" +"Enlightenment has encountered parsing errors in your autosaved\n" +"configuration.\n" +"\n" +"This may be due to filing system errors, Minor bugs or unforeseen\n" +"system shutdowns.\n" +"\n" +"Do you wish Enlightenment to recover its original system\n" +"configuration and try again?\n" +msgstr "" + +#: src/desktops.c:1108 +msgid "" +"Hold down the mouse button and drag\n" +"the mouse to be able to drag the desktop\n" +"back and forth.\n" +"Click right mouse button for a list of all\n" +"Desktops and their applications.\n" +"Click middle mouse button for a list of all\n" +"applications currently running.\n" +msgstr "" + +#: src/desktops.c:1124 +msgid "" +"This is the Root desktop.\n" +"You cannot drag the root desktop around.\n" +"Click right mouse button for a list of all\n" +"Desktops and their applications.\n" +"Click middle mouse button for a list of all\n" +"applications currently running.\n" +msgstr "" + +#: src/desktops.c:1148 +msgid "" +"Click here to raise this desktop\n" +"to the top.\n" +msgstr "" + +#: src/desktops.c:1162 +msgid "" +"Click here to lower this desktop\n" +"to the bottom.\n" +msgstr "" + +#: src/dialog.c:303 +msgid "Attention !!!" +msgstr "" + +#: src/fx.c:253 +msgid "Starting up Ripples FX..." +msgstr "" + +#: src/fx.c:254 +msgid "" +"\n" +"You have just started the Ripples Effect.\n" +"\n" +"If you look closely on your desktop background, and if it\n" +"doesn't have a solid colour (ie has a background texture or\n" +"image), you will see a pool of water at the bottom of your\n" +"screen that reflects everything above it and \"ripples\".\n" +"\n" +"To disable this effect just select this option again to toggle\n" +"it off.\n" +msgstr "" + +#: src/fx.c:388 src/fx.c:407 +msgid "Unable to display raindrops" +msgstr "" + +#: src/fx.c:389 +msgid "" +"\n" +"Enlightenment is unable to display raindrops on this\n" +"display because Shared memory is not available on this\n" +"X-Server.\n" +"\n" +"This may be due to Enlightenment being a remote client\n" +"running over the network, a MIT-SHM incapable X-server,\n" +"having run out of SHM ID's on the system or Shared\n" +"Memory support being turned off in Imlib\n" +"\n" +"You may correct this by either running `imlib_config'\n" +"or copying the system imrc (/usr/etc/imrc) to ~/.imrc\n" +"and editing it, enabling shared memory.\n" +"\n" +msgstr "" + +#: src/fx.c:408 +msgid "" +"\n" +"Enlightenment is unable to display raindrops on this\n" +"display because shared pixmaps are not available on this\n" +"X-Server.\n" +"\n" +"This may be due to either the X-Server not implimenting\n" +"shared pixmaps, or shared pixmaps being disabled in\n" +"Imlib's configuration.\n" +"\n" +"You may correct this by either running `imlib_config'\n" +"or copying the system imrc (/usr/etc/imrc) to ~/.imrc\n" +"and editing it, enabling shared pixmaps.\n" +"\n" +msgstr "" + +#: src/fx.c:424 +msgid "Starting up Raindrops FX..." +msgstr "" + +#: src/fx.c:425 +msgid "" +"\n" +"You have just started the Raindrops Effect.\n" +"\n" +"If you look closely on your desktop background, and if it\n" +"doesn't have a solid colour (ie has a background texture or\n" +"image), you will see \"raindrops\" hit the background and\n" +"make little splashes. This Effect can be VERY CPU intensive.\n" +"\n" +"To disable this effect just select this option again to toggle\n" +"it off.\n" +msgstr "" + +#: src/fx.c:699 +msgid "Starting up Waves FX..." +msgstr "" + +#: src/fx.c:700 +msgid "" +"\n" +"You have just started the Waves Effect.\n" +"\n" +"If you look closely on your desktop background, and if it\n" +"doesn't have a solid colour (ie has a background texture or\n" +"image), you will see a pool of water at the bottom of your\n" +"screen that reflects everything above it and \"waves\".\n" +"\n" +"To disable this effect just select this option again to toggle\n" +"it off.\n" +msgstr "" + +#: src/fx.c:870 +msgid "Starting up imagespinners FX..." +msgstr "" + +#: src/fx.c:871 +msgid "" +"\n" +"You have just started the imagespinners Effect.\n" +"\n" +"To disable this effect just select this option again to toggle\n" +"it off.\n" +msgstr "" + +#: src/groups.c:117 src/groups.c:148 +msgid "Cannot comply" +msgstr "" + +#: src/groups.c:118 src/groups.c:149 +msgid "" +"Iconboxes and Pagers are disallowed from being\n" +"members of a group. You cannot add these windows\n" +"to a group.\n" +msgstr "" + +#: src/groups.c:576 src/groups.c:584 src/groups.c:592 src/settings.c:3677 +msgid "Window Group Error" +msgstr "" + +#: src/groups.c:577 +msgid "" +"\n" +" This window currently does not belong to any groups. \n" +" You can only destroy groups or remove windows from groups \n" +" through a window that actually belongs to at least one group.\n" +"\n" +msgstr "" + +#: src/groups.c:585 +msgid "" +"\n" +" Currently, no groups exist or this window \n" +" already belongs to all existing groups. \n" +" You have to start other groups first. \n" +"\n" +msgstr "" + +#: src/groups.c:592 +msgid "" +"\n" +" Currently, no groups exist. You have to start a group first.\n" +"\n" +msgstr "" + +#: src/groups.c:607 +msgid "Window Group Selection" +msgstr "" + +#: src/groups.c:665 src/pager.c:1257 src/settings.c:215 src/settings.c:432 +#: src/settings.c:597 src/settings.c:776 src/settings.c:1002 +#: src/settings.c:1102 src/settings.c:1201 src/settings.c:1306 +#: src/settings.c:1368 src/settings.c:1457 src/settings.c:1848 +#: src/settings.c:3222 src/settings.c:3557 src/settings.c:3846 +#: src/settings.c:3984 +msgid "Close" +msgstr "" + +#: src/handlers.c:59 +#, c-format +msgid "" +"Enlightenment performed an Illegal Instruction.\n" +"\n" +"This most likely is due to you having installed an run a\n" +"binary of Enlightenment that was compiled for a make or model\n" +"of CPU not 100% identical or compatible with yours. Please\n" +"either obtain the correct package for your system, or\n" +"re-compile enlightenment and possibly any support libraries\n" +"that you got in binary format to run Enlightenment.\n" +msgstr "" + +#: src/handlers.c:87 +msgid "" +"Enlightenment caused a Floating Point Exception.\n" +"\n" +"This means that Enlightenment or support library routines it calls\n" +"have performed an illegal mathematical operation (most likely\n" +"dividing a number by zero). This is most likely a bug. It is\n" +"recommended to restart now. If you wish to help fix this please\n" +"compile Enlightenment with debugging symbols in and run\n" +"Enlightenment under gdb so you can backtrace for where it died and\n" +"send in a useful bug report with backtrace information and variable\n" +"dumps etc.\n" +msgstr "" + +#: src/handlers.c:112 +msgid "" +"Enlightenment caused Segment Violation (Segfault)\n" +"\n" +"This means that Enlightenment or support library routines it calls\n" +"have accessed areas of your system's memory that they are not\n" +"allowed access to. This is most likely a bug. It is recommended to\n" +"restart now. If you wish to help fix this please compile\n" +"Enlightenment with debugging symbols in and run Enlightenment\n" +"under gdb so you can backtrace for where it died and send in a\n" +"useful bug report with backtrace information and variable\n" +"dumps etc.\n" +msgstr "" + +#: src/handlers.c:196 +msgid "" +"Enlightenment caused Bus Error.\n" +"\n" +"It is suggested you check your hardware and OS installation.\n" +"It is highly unusual to cause Bus Errors on operational\n" +"hardware.\n" +msgstr "" + +#: src/handlers.c:215 +msgid "Another Window Manager is already running" +msgstr "" + +#: src/handlers.c:216 +msgid "OK (edit file)" +msgstr "" + +#: src/handlers.c:218 +msgid "Cancel (do NOT edit)" +msgstr "" + +#: src/handlers.c:219 +msgid "" +"Another Window Manager is already running.\n" +"\n" +"You will have to quit your current Window Manager first before\n" +"you can successfully run Enlightenment.\n" +"\n" +"If you haven't edited your user startup files, Enlightenment\n" +"can do that now for you, so when you log in again after\n" +"quitting your current window manager, you will have\n" +"Enlightenment running.\n" +"\n" +"If you want to do this, click OK, otherwise hit cancel\n" +"to abort this operation and edit the files by hand.\n" +"\n" +"WARNING WARNING WARNING WARNING!\n" +"\n" +"It is possible that this MAY not properly edit your files.\n" +msgstr "" + +#: src/handlers.c:236 src/session.c:1161 +msgid "Are you sure?" +msgstr "" + +#: src/handlers.c:237 +msgid "YES (edit file)" +msgstr "" + +#: src/handlers.c:239 +msgid "NO (do not edit)" +msgstr "" + +#: src/handlers.c:240 +msgid "" +"Are you absolutely sure you want to have Enlightenment\n" +"edit your startup files for you?\n" +"\n" +"If your startup files are highly customised this may not\n" +"work.\n" +"\n" +"Are you ABSOLUTELY sure?\n" +msgstr "" + +#: src/iconify.c:2322 +msgid "Iconbox Options" +msgstr "Icoonbox Optionen" + +#: src/iconify.c:2326 +msgid "This Iconbox Settings..." +msgstr "Dieses Icoonbox Einstellungen..." + +#: src/iconify.c:2328 +msgid "Close Iconbox" +msgstr "" + +#: src/iconify.c:2330 +msgid "Create New Iconbox" +msgstr "" + +#: src/ipc.c:4643 +msgid "Enlightenment IPC Commands Help" +msgstr "" + +#: src/ipc.c:4647 src/ipc.c:4685 +msgid "" +"\n" +"commands currently available:\n" +msgstr "" + +#: src/ipc.c:4648 +msgid "" +"use \"help all\" for descriptions of each command\n" +"use \"help \" for an individual description\n" +"\n" +msgstr "" + +#: src/ipc.c:4686 +msgid "use \"help \" for an individual description\n" +msgstr "" + +#: src/ipc.c:4688 +msgid " : \n" +msgstr "" + +#: src/ipc.c:4796 +#, c-format +msgid "" +"Enlightenment Version : %s\n" +"code is current to : %s\n" +msgstr "" + +#. Set up all the text bits that belong on the GSOD +#: src/main.c:90 +msgid "Enlightenment Message Dialog" +msgstr "" + +#: src/main.c:91 src/memory.c:196 src/memory.c:276 src/memory.c:300 +#: src/memory.c:380 +msgid "Ignore this" +msgstr "" + +#: src/main.c:92 src/memory.c:197 src/memory.c:277 src/memory.c:301 +#: src/memory.c:381 src/memory.c:403 +msgid "Restart Enlightenment" +msgstr "" + +#: src/main.c:93 src/memory.c:198 src/memory.c:278 src/memory.c:302 +#: src/memory.c:382 src/memory.c:404 src/setup.c:295 src/setup.c:332 +#: src/setup.c:348 src/setup.c:416 +msgid "Quit Enlightenment" +msgstr "" + +#: src/main.c:180 +#, c-format +msgid "" +"Enlightenment Version: %s\n" +"Last updated on: %s\n" +msgstr "" + +#: src/memory.c:195 src/memory.c:299 +msgid "Cannot allocate enough memory" +msgstr "" + +#: src/memory.c:199 +#, c-format +msgid "" +"WARNING!!!!!!\n" +"\n" +"Allocation for %i bytes (%3.0f Kb or %3.1f Mb) did not succeed.\n" +"\n" +"Either this is a bug where ridiculous amounts of memory\n" +"are being allocated, or your system has run out of both\n" +"real and virtual memory and is unable to satisfy the request.\n" +"\n" +"If you have a low memory system it is suggested to either\n" +"purchase more memory, increase SWAP space, or reconfigure\n" +"Enlightenment to use less resources by turning features off.\n" +"\n" +"The malloc requested was at %s, line %d\n" +" " +msgstr "" + +#: src/memory.c:275 +msgid "Error in reallocating memory that hasn't been allocated" +msgstr "" + +#: src/memory.c:279 +#, c-format +msgid "" +"WARNING!!!!!!\n" +"\n" +"Re-allocation for %i bytes (%3.0f Kb or %f3.1 Mb)\n" +"for pointer %x is attempting to re-allocate memory for a\n" +"memory chunk that has not been allocated or has already been\n" +"freed.\n" +"\n" +"This is definitely a bug. Please report it.\n" +"\n" +"The error occured at %s, line %d.\n" +msgstr "" + +#: src/memory.c:303 +#, c-format +msgid "" +"WARNING!!!!!!\n" +"\n" +"Re-allocation for %i bytes (%3.0f Kb or %3.1f Mb) did not succeed.\n" +"\n" +"Either this is a bug where ridiculous amounts of memory\n" +"are being allocated, or your system has run out of both\n" +"real and virtual memory and is unable to satisfy the request.\n" +"\n" +"If you have a low memory system it is suggested to either\n" +"purchase more memory, increase SWAP space, or reconfigure\n" +"Enlightenment to use less resources by turning features off.\n" +"\n" +"The realloc requested was at %s, line %d\n" +" " +msgstr "" + +#: src/memory.c:379 +msgid "Error in freeing memory that hasn't been allocated" +msgstr "" + +#: src/memory.c:383 +#, c-format +msgid "" +"WARNING!!!!!!\n" +"\n" +"freeing for pointer %x is attempting to free memory for a\n" +"memory chunk that has not been allocated, or has already been\n" +"freed.\n" +"\n" +"This is definitely a bug. Please report it.\n" +"\n" +"The error occured at %s, line %d.\n" +msgstr "" + +#: src/memory.c:401 +msgid "Error in attempting to free NULL pointer" +msgstr "" + +#: src/memory.c:402 +msgid "Ignore this (safe)" +msgstr "" + +#: src/memory.c:405 +#, c-format +msgid "" +"WARNING!!!!!!\n" +"\n" +"Enlightenment attempted to free a NULL pointer.\n" +"\n" +"This is definitely a bug. Please report it.\n" +"It is safe to ignore this error and continue running Enlightenment.\n" +"\n" +"The pointer value was %x.\n" +"The error occured at %s, line %d.\n" +msgstr "" + +#: src/menus.c:1880 +msgid "Go to this Desktop" +msgstr "" + +#: src/menus.c:1893 +#, c-format +msgid "Desktop %i" +msgstr "" + +#: src/menus.c:1955 +msgid "Show/Hide this group" +msgstr "" + +#: src/menus.c:1957 +msgid "Iconify this group" +msgstr "" + +#: src/menus.c:1967 +#, c-format +msgid "Group %i" +msgstr "" + +#: src/misc.c:60 +#, c-format +msgid "" +"!!!!!!!! ERROR ERROR ERROR ERROR !!!!!!!!\n" +"\n" +"Enlightenment's utility executable cannot be found at:\n" +"\n" +"%s\n" +"This is a fatal error and Enlightenment will cease to run.\n" +"Please rectify this situation and ensure it is installed\n" +"correctly.\n" +"\n" +"The reason this could be missing is due to badly created\n" +"packages, someone manually deleting that program or perhaps\n" +"an error in installing Enlightenment.\n" +msgstr "" + +#: src/misc.c:76 +#, c-format +msgid "" +"!!!!!!!! ERROR ERROR ERROR ERROR !!!!!!!!\n" +"\n" +"Enlightenment's dox executable is not able to be executed:\n" +"\n" +"%s\n" +"This is a fatal error and Enlightenment will cease to run.\n" +"Please rectify this situation and ensure dox is installed\n" +"correctly.\n" +msgstr "" + +#: src/misc.c:97 +msgid "" +"!!!!!!!! ERROR ERROR ERROR ERROR !!!!!!!!\n" +"\n" +"Enlightenment's documentation is not present or correctly installed\n" +"\n" +"This is a fatal error and Enlightenment will cease to run.\n" +"Please rectify this situation and ensure it is installed\n" +"correctly.\n" +"\n" +"The reason this could be missing is due to badly created\n" +"packages, someone manually deleting those files or perhaps\n" +"an error in installing Enlightenment.\n" +msgstr "" + +#: src/misc.c:120 +msgid "" +"!!!!!!!! ERROR ERROR ERROR ERROR !!!!!!!!\n" +"\n" +"Enlightenment's DEFAULT installed theme is missing or inadequately\n" +"configured to be a useful DEFAULT theme.\n" +"\n" +"This is a fatal error and Enlightenment will cease to run.\n" +"Please rectify this situation and ensure it is installed\n" +"correctly. The DEFAULT theme Enlightenment comes with normally\n" +"is BrushedMetal-Tigert and this theme is adequate for a DEFAULT\n" +"theme.\n" +msgstr "" + +#: src/misc.c:420 +msgid "Theme does not contain a borders.cfg file\n" +msgstr "" + +#: src/misc.c:426 +msgid "Theme does not contain a buttons.cfg file\n" +msgstr "" + +#: src/misc.c:432 +msgid "Theme does not contain a colormodifiers.cfg file\n" +msgstr "" + +#: src/misc.c:438 +msgid "Theme does not contain a cursors.cfg file\n" +msgstr "" + +#: src/misc.c:444 +msgid "Theme does not contain a desktops.cfg file\n" +msgstr "" + +#: src/misc.c:450 +msgid "Theme does not contain a imageclasses.cfg file\n" +msgstr "" + +#: src/misc.c:456 +msgid "Theme does not contain a init.cfg file\n" +msgstr "" + +#: src/misc.c:462 +msgid "Theme does not contain a menustyles.cfg file\n" +msgstr "" + +#: src/misc.c:468 +msgid "Theme does not contain a slideouts.cfg file\n" +msgstr "" + +#: src/misc.c:475 +msgid "Theme does not contain a sound.cfg file\n" +msgstr "" + +#: src/misc.c:482 +msgid "Theme does not contain a tooltips.cfg file\n" +msgstr "" + +#: src/misc.c:488 +msgid "Theme does not contain a windowmatches.cfg file\n" +msgstr "" + +#: src/misc.c:494 +msgid "Theme contains a menus.cfg file\n" +msgstr "" + +#: src/misc.c:500 +msgid "Theme contains a control.cfg file\n" +msgstr "" + +#: src/misc.c:506 +msgid "Theme contains a keybindings.cfg file\n" +msgstr "" + +#: src/modules.c:138 +msgid "Module is Already Loaded.\n" +msgstr "" + +#: src/modules.c:140 +msgid "Module Failed During Load.\n" +msgstr "" + +#: src/modules.c:142 +msgid "Module Unload Failed.\n" +msgstr "" + +#: src/modules.c:144 +msgid "Module is not Loaded.\n" +msgstr "" + +#: src/modules.c:146 +msgid "Unknown Module Error.\n" +msgstr "" + +#: src/pager.c:511 src/pager.c:527 src/pager.c:542 +msgid "Warning!" +msgstr "" + +#: src/pager.c:512 +msgid "" +"\n" +"You seem to have an X Server capable of Shared Memory\n" +"but it is incapable of doing ZPixmap Shared pixmaps\n" +"(The server does not claim to be able to do them).\n" +"\n" +"The pager in enlightenment will run slowly in snapshot\n" +"mode if you continue to use that mode of the pager\n" +"under these conditions.\n" +"\n" +"It is suggested you change the settings on your pager to\n" +"disable snapshots to improve performance.\n" +"\n" +msgstr "" + +#: src/pager.c:528 +msgid "" +"\n" +"Your X Server is capable of doing Shared Memory but you do\n" +"not have Shared Pixmaps enabled in your Imlib configuration.\n" +"\n" +"Please enable Shared Pixmaps in your Imlib configuration\n" +"then restart enlightenment to gain better performance for\n" +"the pagers when snapshot mode is enabled.\n" +"\n" +msgstr "" + +#: src/pager.c:543 +msgid "" +"\n" +"You seem to be running Enlightenment over a network Connection\n" +"or on an X Server that does not support Shared Memory, or you\n" +"have disabled MIT-SHM Shared memory in your Imlib configuration.\n" +"This means the Enlightenment Pager will perform slowly and use\n" +"more system resources than it would when Shared Memory is\n" +"available.\n" +"\n" +"To improve performance please either enable MIT-SHM Shared Memory\n" +"in your Imlib config, if you disabled it, or disable Pager\n" +"snapshots.\n" +"\n" +msgstr "" + +#: src/pager.c:1249 +msgid "Window Options" +msgstr "" + +#: src/pager.c:1254 +msgid "Iconify" +msgstr "" + +#: src/pager.c:1260 +msgid "Annihilate" +msgstr "" + +#: src/pager.c:1263 +msgid "Stick / Unstick" +msgstr "" + +#: src/pager.c:1275 +msgid "Desktop Options" +msgstr "" + +#: src/pager.c:1279 +msgid "Pager Settings..." +msgstr "" + +#: src/pager.c:1282 +msgid "Snapshotting On" +msgstr "" + +#: src/pager.c:1285 +msgid "Snapshotting Off" +msgstr "" + +#: src/pager.c:1290 +msgid "High Quality On" +msgstr "" + +#: src/pager.c:1293 +msgid "High Quality Off" +msgstr "" + +#: src/session.c:242 +msgid "" +"There was an error writing the clients session save file.\n" +"You may have run out of disk space, not have permission\n" +"to write to your filing system or other similar problems.\n" +msgstr "" + +#: src/session.c:435 +msgid "" +"There was an error saving your autosave data - filing\n" +"system problems.\n" +msgstr "" + +#. Less of the hope.... E survives +#: src/session.c:1019 +msgid "" +"ERROR!\n" +"\n" +"Lost the Session Manager that was there?\n" +"Here here session manager... come here... want a bone?\n" +"Oh come now! Stop sulking! Bugger. Oh well. Will continue without\n" +"a session manager.\n" +"\n" +"I'll survive somehow.\n" +"\n" +"\n" +"... I hope.\n" +msgstr "" + +#: src/session.c:1163 +msgid "" +"\n" +"\n" +" Are you sure you wish to log out ? \n" +"\n" +"\n" +msgstr "" + +#: src/session.c:1169 +msgid " Yes, Log Out " +msgstr "" + +#: src/session.c:1170 +msgid " No " +msgstr "" + +#: src/settings.c:81 src/settings.c:192 +msgid "Pager scanning speed:" +msgstr "" + +#: src/settings.c:82 src/settings.c:193 +msgid "lines per second" +msgstr "" + +#: src/settings.c:117 +msgid "Pager Settings" +msgstr "" + +#: src/settings.c:143 +msgid "Enable pager display" +msgstr "" + +#: src/settings.c:151 +msgid "Make miniature snapshots of the screen" +msgstr "" + +#: src/settings.c:159 +msgid "Smooth high quality snapshots in snapshot mode" +msgstr "" + +#: src/settings.c:167 +msgid "Zoom in on pager windows when mouse is over them" +msgstr "" + +#: src/settings.c:175 +msgid "Pop up window title when mouse is over the window" +msgstr "" + +#: src/settings.c:183 +msgid "Continuously scan screen to update pager" +msgstr "" + +#: src/settings.c:214 src/settings.c:431 src/settings.c:596 src/settings.c:775 +#: src/settings.c:1001 src/settings.c:1101 src/settings.c:1200 +#: src/settings.c:1305 src/settings.c:1367 src/settings.c:1456 +#: src/settings.c:1847 src/settings.c:3221 src/settings.c:3556 +#: src/settings.c:3845 src/settings.c:3983 src/snaps.c:504 +msgid "Apply" +msgstr "" + +#: src/settings.c:285 +msgid "Focus Settings" +msgstr "" + +#: src/settings.c:311 +msgid "Focus follows pointer" +msgstr "" + +#: src/settings.c:319 +msgid "Focus follows pointer sloppily" +msgstr "" + +#: src/settings.c:327 +msgid "Focus follows mouse clicks" +msgstr "" + +#: src/settings.c:342 +msgid "Clicking in a window always raises it" +msgstr "" + +#: src/settings.c:356 +msgid "All new windows first get the focus" +msgstr "" + +#: src/settings.c:364 +msgid "Only new dialog windows get the focus" +msgstr "" + +#: src/settings.c:372 +msgid "Only new dialogs whose owner is focused get the focus" +msgstr "" + +#: src/settings.c:380 +msgid "Raise windows on focus switch" +msgstr "" + +#: src/settings.c:388 +msgid "Send mouse pointer to window on focus switch" +msgstr "" + +#: src/settings.c:403 +msgid "Display and use focuslist" +msgstr "" + +#: src/settings.c:411 +msgid "Raise windows after focus switch" +msgstr "" + +#: src/settings.c:419 +msgid "Send mouse pointer to window after focus switch" +msgstr "" + +#: src/settings.c:474 +msgid "Move & Resize Settings" +msgstr "" + +#: src/settings.c:500 +msgid "Move Methods:" +msgstr "" + +#: src/settings.c:506 +msgid "Resize Methods:" +msgstr "" + +#: src/settings.c:511 src/settings.c:518 src/settings.c:1601 +msgid "Opaque" +msgstr "" + +#: src/settings.c:525 src/settings.c:532 src/settings.c:1616 +msgid "Technical" +msgstr "" + +#: src/settings.c:539 src/settings.c:546 src/settings.c:1631 +msgid "Box" +msgstr "" + +#: src/settings.c:553 src/settings.c:560 src/settings.c:1646 +msgid "Shaded" +msgstr "" + +#: src/settings.c:567 src/settings.c:574 src/settings.c:1661 +msgid "Semi-Solid" +msgstr "" + +#: src/settings.c:582 +msgid "Translucent" +msgstr "" + +#: src/settings.c:686 src/settings.c:746 +#, c-format +msgid "%i Desktops" +msgstr "" + +#: src/settings.c:688 src/settings.c:748 +#, c-format +msgid "%i Desktop" +msgstr "" + +#: src/settings.c:713 +msgid "Multiple Desktop Settings" +msgstr "" + +#: src/settings.c:739 +msgid "Number of virtual desktops:\n" +msgstr "" + +#: src/settings.c:863 src/settings.c:928 +#, c-format +msgid "" +"%i x %i\n" +"Screens in size" +msgstr "" + +#: src/settings.c:866 src/settings.c:931 +msgid "" +"1\n" +"Screen in size" +msgstr "" + +#: src/settings.c:896 +msgid "Virtual Deskop Settings" +msgstr "" + +#: src/settings.c:922 +msgid "Virtual Desktop size:\n" +msgstr "" + +#: src/settings.c:976 +msgid "Enable edge flip" +msgstr "" + +#: src/settings.c:983 +msgid "Resistance at edge of screen:\n" +msgstr "" + +#: src/settings.c:1048 +msgid "Window Placement Settings" +msgstr "" + +#: src/settings.c:1074 +msgid "Dialog windows appear together with their owner" +msgstr "" + +#: src/settings.c:1082 +msgid "Switch to desktop where dialog appears" +msgstr "" + +#: src/settings.c:1090 +msgid "Place windows manually" +msgstr "" + +#: src/settings.c:1148 +msgid "Autoraise Settings" +msgstr "" + +#: src/settings.c:1174 +msgid "Raise Windows Automatically" +msgstr "" + +#: src/settings.c:1182 +msgid "Autoraise delay:" +msgstr "" + +#: src/settings.c:1245 +msgid "Tooltip Settings" +msgstr "" + +#: src/settings.c:1271 +msgid "Display Tooltips" +msgstr "" + +#: src/settings.c:1279 +msgid "Display Root Window Tips" +msgstr "" + +#: src/settings.c:1287 +msgid "Tooltip Delay:\n" +msgstr "" + +#: src/settings.c:1347 +msgid "KDE Settings" +msgstr "" + +#: src/settings.c:1356 +msgid "Enable KDE Support" +msgstr "" + +#: src/settings.c:1410 +msgid "Audio Settings" +msgstr "" + +#: src/settings.c:1437 +msgid "Enable sounds" +msgstr "" + +#: src/settings.c:1445 +msgid "" +"Audio not available since EsounD was not\n" +"present at the time of compilation." +msgstr "" + +#: src/settings.c:1553 +msgid "Special FX Settings" +msgstr "" + +#: src/settings.c:1588 +msgid "Slide Method:" +msgstr "" + +#: src/settings.c:1594 +msgid "Slide desktops around when changing" +msgstr "" + +#: src/settings.c:1609 +msgid "Slide windows around when cleaning up" +msgstr "" + +#: src/settings.c:1624 +msgid "Slide windows in when they appear" +msgstr "" + +#: src/settings.c:1639 +msgid "Animated display of menus" +msgstr "" + +#: src/settings.c:1654 +msgid "Always pop up menus on screen" +msgstr "" + +#: src/settings.c:1670 +msgid "Use saveunders to reduce window exposures" +msgstr "" + +#: src/settings.c:1678 +msgid "Animate shading and unshading of windows" +msgstr "" + +#: src/settings.c:1692 +msgid "Display desktop dragbar" +msgstr "" + +#: src/settings.c:1701 +msgid "Drag bar position:" +msgstr "" + +#: src/settings.c:1712 +msgid "Top" +msgstr "" + +#: src/settings.c:1719 +msgid "Bottom" +msgstr "" + +#: src/settings.c:1730 +msgid "Left" +msgstr "" + +#: src/settings.c:1737 +msgid "Right" +msgstr "" + +#: src/settings.c:1756 +msgid "Desktop Slide speed: (slow)\n" +msgstr "" + +#: src/settings.c:1772 src/settings.c:1794 src/settings.c:1816 +#: src/settings.c:1838 +msgid "(fast)\n" +msgstr "" + +#: src/settings.c:1778 +msgid "Cleanup Slide speed: (slow)\n" +msgstr "" + +#: src/settings.c:1800 +msgid "Appear Slide speed: (slow)\n" +msgstr "" + +#: src/settings.c:1822 +msgid "Window Shading speed: (slow)\n" +msgstr "" + +#: src/settings.c:2101 src/settings.c:2220 src/settings.c:2466 +#: src/settings.c:2589 src/settings.c:3206 +msgid "-NONE-" +msgstr "" + +#: src/settings.c:2102 src/settings.c:2221 src/settings.c:2467 +#: src/settings.c:2590 src/settings.c:3207 +#, c-format +msgid "" +"Background definition information:\n" +"Name: %s\n" +"File: %s\n" +msgstr "" + +#: src/settings.c:2349 src/settings.c:2352 +msgid "" +"No\n" +"Background" +msgstr "" + +#: src/settings.c:2531 src/settings.c:3097 +#, c-format +msgid "Unused backgrounds freed after %2i:%02i:%02i" +msgstr "" + +#: src/settings.c:2858 +msgid "Desktop Background Settings" +msgstr "" + +#: src/settings.c:2884 +msgid "BG Color\n" +msgstr "" + +#: src/settings.c:2895 +msgid "Move to Front\n" +msgstr "" + +#: src/settings.c:2902 +msgid "Duplicate\n" +msgstr "" + +#: src/settings.c:2908 +msgid "Unlist\n" +msgstr "" + +#: src/settings.c:2914 +msgid "Delete File\n" +msgstr "" + +#: src/settings.c:2923 +msgid "Red:\n" +msgstr "" + +#: src/settings.c:2937 +msgid "Use background image" +msgstr "" + +#: src/settings.c:2945 +msgid "Green:\n" +msgstr "" + +#: src/settings.c:2959 +msgid "Keep aspect on scale" +msgstr "" + +#: src/settings.c:2967 +msgid "Blue:\n" +msgstr "" + +#: src/settings.c:2981 +msgid "Tile image across background" +msgstr "" + +#: src/settings.c:2997 +msgid "" +"Background\n" +"Image\n" +"Scaling\n" +"and\n" +"Alignment\n" +msgstr "" + +#: src/settings.c:3081 +msgid "Use dithering in Hi-Color" +msgstr "" + +#: src/settings.c:3088 +msgid "Background overrides theme" +msgstr "" + +#: src/settings.c:3144 +msgid "Prescan BG's" +msgstr "" + +#: src/settings.c:3154 +msgid "Sort by File" +msgstr "" + +#: src/settings.c:3160 +msgid "Sort by Attr." +msgstr "" + +#: src/settings.c:3166 +msgid "Sort by Image" +msgstr "" + +#: src/settings.c:3319 +msgid "Iconbox Settings" +msgstr "" + +#: src/settings.c:3345 +msgid "Transparent background" +msgstr "" + +#: src/settings.c:3352 +msgid "Hide border around inner Iconbox" +msgstr "" + +#: src/settings.c:3359 +msgid "Show icon names" +msgstr "" + +#: src/settings.c:3366 +msgid "Draw base image behind Icons" +msgstr "" + +#: src/settings.c:3373 +msgid "Hide scrollbar when not needed" +msgstr "" + +#: src/settings.c:3380 +msgid "Automatically resize to fit Icons" +msgstr "" + +#: src/settings.c:3387 +msgid "Animate when iconifying to this Iconbox" +msgstr "" + +#: src/settings.c:3395 +msgid "Alignment of anchoring when automatically resizing:" +msgstr "" + +#: src/settings.c:3415 +msgid "Icon image display policy (if one operation fails, try the next):" +msgstr "" + +#: src/settings.c:3420 +msgid "Snapshot Windows, Use application icon, Use Enlightenment Icon" +msgstr "" + +#: src/settings.c:3427 +msgid "Use application icon, Use Enlightenment Icon, Snapshot Window" +msgstr "" + +#: src/settings.c:3434 +msgid "Use Enlightenment Icon, Snapshot Window" +msgstr "" + +#: src/settings.c:3448 +msgid "Icon size" +msgstr "" + +#: src/settings.c:3471 +msgid "Orientation:" +msgstr "" + +#: src/settings.c:3477 +msgid "Scrollbar side:" +msgstr "" + +#: src/settings.c:3483 +msgid "Scrollbar arrows:" +msgstr "" + +#: src/settings.c:3488 +msgid "Horizontal" +msgstr "" + +#: src/settings.c:3495 +msgid "Left / Top" +msgstr "" + +#: src/settings.c:3502 +msgid "Start" +msgstr "" + +#: src/settings.c:3509 +msgid "Vertical" +msgstr "" + +#: src/settings.c:3517 +msgid "Right / Bottom" +msgstr "" + +#: src/settings.c:3525 +msgid "Both ends" +msgstr "" + +#: src/settings.c:3535 +msgid "End" +msgstr "" + +#: src/settings.c:3545 +msgid "None" +msgstr "" + +#: src/settings.c:3678 +msgid "" +"\n" +" This window currently does not belong to any groups. \n" +"\n" +msgstr "" + +#: src/settings.c:3700 +msgid "Window Group Settings" +msgstr "" + +#: src/settings.c:3727 +msgid " Pick the group to configure: " +msgstr "" + +#: src/settings.c:3763 +msgid "" +" The following actions are \n" +" applied to all group members: " +msgstr "" + +#: src/settings.c:3771 src/settings.c:3916 +msgid "Changing Border Style" +msgstr "" + +#: src/settings.c:3780 src/settings.c:3924 +msgid "Iconifying" +msgstr "" + +#: src/settings.c:3789 src/settings.c:3932 +msgid "Killing" +msgstr "" + +#: src/settings.c:3798 src/settings.c:3940 +msgid "Moving" +msgstr "" + +#: src/settings.c:3807 src/settings.c:3948 +msgid "Raising/Lowering" +msgstr "" + +#: src/settings.c:3816 src/settings.c:3956 +msgid "Sticking" +msgstr "" + +#: src/settings.c:3825 src/settings.c:3964 +msgid "Shading" +msgstr "" + +#: src/settings.c:3834 src/settings.c:3972 +msgid "Mirror Shade/Iconify/Stick" +msgstr "" + +#: src/settings.c:3890 +msgid "Default Group Control Settings" +msgstr "" + +#: src/setup.c:221 +msgid "" +"Enlightenment cannot connect to the display nominated by\n" +"your shell's DISPLAY environment variable. You may set this\n" +"variable to indicate which display name Enlightenment is to\n" +"connect to. It may be that you do not have an Xserver already\n" +"running to serve that Display connection, or that you do not\n" +"have permission to connect to that display. Please make sure\n" +"all is correct before trying again. Run an Xserver by running\n" +"xdm or startx first, or contact your local system\n" +"administrator, or Xserver vendor, or read the X, xdm and\n" +"startx manual pages before proceeding.\n" +msgstr "" + +#: src/setup.c:292 src/setup.c:345 +msgid "X server setup error" +msgstr "" + +#: src/setup.c:296 +msgid "" +"FATAL ERROR:\n" +"\n" +"This Xserver does not support the Shape extension.\n" +"This is required for Enlightenment to run.\n" +"\n" +"Your Xserver probably is too old or mis-configured.\n" +"\n" +"Exiting.\n" +msgstr "" + +#: src/setup.c:329 +msgid "Imlib initialisation error" +msgstr "" + +#: src/setup.c:333 +msgid "" +"FATAL ERROR:\n" +"\n" +"Enlightenment is unable to initialise Imlib.\n" +"\n" +"This is unusual. Unable to contiune.\n" +"Exiting.\n" +msgstr "" + +#: src/setup.c:349 +msgid "" +"FATAL ERROR:\n" +"\n" +"Enlightenment is unable to initialise Fnlib.\n" +"\n" +"This is unusual. Unable to contiune.\n" +"Exiting.\n" +msgstr "" + +#: src/setup.c:413 +msgid "X server version error" +msgstr "" + +#: src/setup.c:414 +msgid "Ignore this error" +msgstr "" + +#: src/setup.c:417 +#, c-format +msgid "" +"WARNING:\n" +"This is not an X11 Xserver. It infact talks the X%i protocol.\n" +"This may mean Enlightenment will either not function, or\n" +"function incorrectly. If it is later than X11, then your\n" +"server is one the author of Enlightenment neither have\n" +"access to, nor have heard of.\n" +msgstr "" + +#: src/setup.c:631 +#, c-format +msgid "" +"The directory %s is apparently not a directory\n" +"This is a fatal condition.\n" +"Please remove this file\n" +msgstr "" + +#: src/setup.c:639 +#, c-format +msgid "" +"Do not have execute access to %s\n" +"This is a fatal condition.\n" +"Please check the ownership and permissions of this\n" +"directory and take steps to rectify this.\n" +msgstr "" + +#: src/setup.c:648 +#, c-format +msgid "" +"Do not have read access to %s\n" +"This is a fatal condition.\n" +"Please check the ownership and permissions of this\n" +"directory and take steps to rectify this.\n" +msgstr "" + +#: src/setup.c:657 +#, c-format +msgid "" +"Do not have write access to %s\n" +"This is a fatal condition.\n" +"Please check the ownership and permissions of this\n" +"directory and take steps to rectify this.\n" +msgstr "" + +#: src/snaps.c:403 +msgid "Location" +msgstr "" + +#: src/snaps.c:411 +msgid "Border style" +msgstr "" + +#: src/snaps.c:419 +msgid "Size" +msgstr "" + +#: src/snaps.c:427 +msgid "Desktop" +msgstr "" + +#: src/snaps.c:435 +msgid "Shaded state" +msgstr "" + +#: src/snaps.c:443 +msgid "Sticky state" +msgstr "" + +#: src/snaps.c:451 +msgid "Stacking layer" +msgstr "" + +#: src/snaps.c:470 +msgid "Restart application on login" +msgstr "" + +#: src/snaps.c:492 +msgid "Remember this window's group(s)" +msgstr "" + +#: src/snaps.c:505 +msgid "Cancel" +msgstr "" + +#: src/snaps.c:829 +msgid "Error saving snaps file\n" +msgstr "" + +#: src/sound.c:53 +msgid "Error finding sound file" +msgstr "" + +#: src/sound.c:55 +#, c-format +msgid "" +"Warning! Enlightenment was unable to load the\n" +"following sound file:\n" +"%s\n" +"Enlightenment will continue to operate, but you\n" +"may wish to check your configuration settings.\n" +msgstr "" + +#: src/sound.c:260 +msgid "Error initialising sound" +msgstr "" + +#: src/sound.c:264 +msgid "" +"Audio was enabled for Enlightenemnt but there was an error\n" +"communicating with the audio server (Esound). Audio will\n" +"now be disabled.\n" +msgstr "" + +#: src/theme.c:289 +msgid "Unknown\n" +msgstr "" + +#: src/theme.c:311 src/theme.c:322 +msgid "Theme file/directory does not exist\n" +msgstr "" + +#: src/theme.c:342 +#, c-format +msgid "" +"The theme:\n" +"%s\n" +"Is a badly formed theme package and is thus not being used.\n" +"Enlightenment has fallen back to using the DEFAULT theme.\n" +"\n" +"The reason this theme is bad is:\n" +"%s" +msgstr "" + +#: src/theme.c:350 +msgid "Bad Theme" +msgstr "" + +#: src/update.c:166 +msgid "Enlightenment's message of the day" +msgstr "" + +#~ msgid "iconbox %s" +#~ msgstr "Icoonbox %s" diff --git a/po/enlightenment.pot b/po/enlightenment.pot new file mode 100644 index 00000000..5461109b --- /dev/null +++ b/po/enlightenment.pot @@ -0,0 +1,2108 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) YEAR Free Software Foundation, Inc. +# FIRST AUTHOR , YEAR. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: PACKAGE VERSION\n" +"POT-Creation-Date: 1999-12-06 14:24-0800\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language-Team: LANGUAGE \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=CHARSET\n" +"Content-Transfer-Encoding: ENCODING\n" + +#: src/actions.c:665 +#, c-format +msgid "" +"There was an error running the program:\n" +"%s\n" +"This program could not be executed.\n" +"This is because the file does not exist.\n" +msgstr "" + +#: src/actions.c:672 +#, c-format +msgid "" +"There was an error running the program:\n" +"%s\n" +"This program could not be executed.\n" +"This is most probably because this program is not in the\n" +"path for your shell which is %s. I suggest you read the manual\n" +"page for that shell and read up how to change or add to your\n" +"execution path.\n" +msgstr "" + +#: src/actions.c:694 +#, c-format +msgid "" +"There was an error running the program:\n" +"%s\n" +"This program could not be executed.\n" +"I am unsure as to why you could not do this. The file exists,\n" +"is a file, and you are allowed to execute it. I suggest you look\n" +"into this.\n" +msgstr "" + +#: src/actions.c:707 +#, c-format +msgid "" +"There was an error running the program:\n" +"%s\n" +"This program could not be executed.\n" +"This is because the file exists, is a file, but you are unable\n" +"to execute it because you do not have execute access to this file.\n" +msgstr "" + +#: src/actions.c:723 +#, c-format +msgid "" +"There was an error running the program:\n" +"%s\n" +"This program could not be executed.\n" +"This is because the file is infact a directory.\n" +msgstr "" + +#: src/actions.c:731 +#, c-format +msgid "" +"There was an error running the program:\n" +"%s\n" +"This program could not be executed.\n" +"This is because the file is not a regular file.\n" +msgstr "" + +#: src/actions.c:3132 +#, c-format +msgid "About Enlightenment %s" +msgstr "" + +#: src/actions.c:3148 +msgid "Welcome to the " +msgstr "" + +#: src/actions.c:3170 src/dialog.c:303 src/groups.c:664 src/settings.c:301 +#: src/settings.c:518 src/settings.c:683 src/settings.c:862 +#: src/settings.c:1088 src/settings.c:1188 src/settings.c:1287 +#: src/settings.c:1392 src/settings.c:1454 src/settings.c:1543 +#: src/settings.c:1934 src/settings.c:3308 src/settings.c:3643 +#: src/settings.c:3932 src/settings.c:4070 src/snaps.c:503 src/sound.c:261 +msgid "OK" +msgstr "" + +#: src/actions.c:3323 +msgid " Pick the group the window will belong to: \n" +msgstr "" + +#: src/actions.c:3668 +msgid "" +"\n" +" There's no current group at the moment. \n" +" The current group is the last one you created, \n" +" and it exists until you create a new one or break \n" +" the latest one. \n" +"\n" +" Pick another group that the window will belong to here: \n" +"\n" +msgstr "" + +#: src/actions.c:3702 +msgid " Select the group to remove the window from. " +msgstr "" + +#: src/actions.c:3728 +msgid " Select the group to break " +msgstr "" + +#: src/actions.c:3755 +msgid "You have been warned about the dangers of Zoom mode\n" +msgstr "" + +#: src/actions.c:3758 +msgid "Warning !!!" +msgstr "" + +#: src/actions.c:3759 +msgid "" +"This feature is heavily reliant on a feature of your\n" +"X Server called the Vid Mode Extension. This feature exists\n" +"in XFree86 Servers, but is not a heavily used part of the\n" +"Server and thus isn't tested much.\n" +"\n" +"It is possible your X Server does not deal well with being\n" +"asked to switch modes quickly and it may hang, glitch,\n" +"display artifacts or perhaps simply refuse to work.\n" +"\n" +"This is a warning and will only be displayed this one time.\n" +"If your Server does not behave well then you will probably\n" +"have to avoid using this feature.\n" +msgstr "" + +#: src/alert.c:178 +msgid "Enlightenment Error" +msgstr "" + +#: src/alert.c:180 +msgid "Ignore" +msgstr "" + +#: src/alert.c:182 +msgid "Restart" +msgstr "" + +#: src/alert.c:184 +msgid "Exit" +msgstr "" + +#: src/comms.c:2251 +#, c-format +msgid "" +"Received Unknown Client Message.\n" +"Client Name: %s\n" +"Client Version: %s\n" +"Message Contents:\n" +"\n" +"%s\n" +msgstr "" + +#: src/comms.c:2256 +msgid "E IPC Error" +msgstr "" + +#: src/config.c:238 src/config.c:475 src/config.c:553 src/config.c:827 +#: src/config.c:944 src/config.c:1192 src/config.c:1319 src/config.c:1423 +#: src/config.c:1637 src/config.c:1884 src/config.c:1952 src/config.c:2045 +#: src/config.c:2298 src/config.c:2513 src/config.c:2776 src/config.c:2869 +#: src/config.c:2946 src/config.c:3047 src/config.c:3379 +#, c-format +msgid "CONFIG: ignoring extra data in \"%s\"\n" +msgstr "" + +#: src/config.c:244 src/config.c:481 src/config.c:561 src/config.c:833 +#: src/config.c:950 src/config.c:1198 src/config.c:1325 src/config.c:1431 +#: src/config.c:1645 src/config.c:1890 src/config.c:1958 src/config.c:2053 +#: src/config.c:2304 src/config.c:2521 src/config.c:2782 src/config.c:3053 +#: src/config.c:3387 +#, c-format +msgid "CONFIG: missing required data in \"%s\"\n" +msgstr "" + +#: src/config.c:438 src/config.c:515 +#, c-format +msgid "" +"Warning: unable to determine what to do with\n" +"the following text in the middle of current Text definition:\n" +"%s\n" +"Will ignore and continue...\n" +msgstr "" + +#: src/config.c:445 +msgid "" +"Warning: Configuration appears to have ended before we were\n" +"Done loading a text block. Outcome is likely not good.\n" +msgstr "" + +#: src/config.c:522 +msgid "" +"Warning: Configuration appears to have ended before we were\n" +"Done loading a Slideout block. Outcome is likely not good.\n" +msgstr "" + +#: src/config.c:794 +#, c-format +msgid "" +"Warning: unable to determine what to do with\n" +"the following text in the middle of current Control definition:\n" +"%s\n" +"Will ignore and continue...\n" +msgstr "" + +#: src/config.c:801 +msgid "" +"Warning: Configuration appears to have ended before we were\n" +"Done loading a Control block. Outcome is likely not good.\n" +msgstr "" + +#: src/config.c:911 src/config.c:1151 +msgid "" +"Warning: Configuration appears to have ended before we were\n" +"Done loading a Menu block. Outcome is likely not good.\n" +msgstr "" + +#: src/config.c:1287 +msgid "" +"Warning: Configuration appears to have ended before we were\n" +"Done loading a BorderPart block. Outcome is likely not good.\n" +msgstr "" + +#: src/config.c:1376 +msgid "" +"Warning: Configuration appears to have ended before we were\n" +"Done loading a Main Border block. Outcome is likely not good.\n" +msgstr "" + +#: src/config.c:1593 +msgid "" +"Warning: Configuration appears to have ended before we were\n" +"Done loading a Button block. Outcome is likely not good.\n" +msgstr "" + +#: src/config.c:1849 src/config.c:1927 +msgid "" +"Warning: Configuration appears to have ended before we were\n" +"Done loading a Desktop block. Outcome is likely not good.\n" +msgstr "" + +#: src/config.c:1939 +msgid "Easter Egg! Iconboxes aren't implemented yet.\n" +msgstr "" + +#: src/config.c:1969 +msgid "" +"Warning: Configuration appears to have ended before we were\n" +"Done loading an Iconbox block. Outcome is likely not good.\n" +msgstr "" + +#: src/config.c:2004 +msgid "" +"Warning: Configuration appears to have ended before we were\n" +"Done loading an Sound block. Outcome is likely not good.\n" +msgstr "" + +#: src/config.c:2254 +#, c-format +msgid "" +"Warning: unable to determine what to do with\n" +"the following text in the middle of current ActionClass definition:\n" +"%s\n" +"Will ignore and continue...\n" +msgstr "" + +#: src/config.c:2268 +msgid "" +"Warning: Configuration appears to have ended before we were\n" +"Done loading an Action Class block. Outcome is likely not good.\n" +msgstr "" + +#: src/config.c:2466 +#, c-format +msgid "" +"Warning: unable to determine what to do with\n" +"the following text in the middle of current ImageClass definition:\n" +"%s\n" +"Will ignore and continue...\n" +msgstr "" + +#: src/config.c:2473 +msgid "" +"Warning: Configuration appears to have ended before we were\n" +"Done loading an ImageClass block. Outcome is likely not good.\n" +msgstr "" + +#: src/config.c:2713 +#, c-format +msgid "" +"Warning: unable to determine what to do with\n" +"the following text in the middle of current ColorModifier definition:\n" +"%s\n" +"Will ignore and continue...\n" +msgstr "" + +#: src/config.c:2737 +msgid "" +"Warning: Configuration appears to have ended before we were\n" +"Done loading an ColorModifier block.\n" +"Outcome is likely not good.\n" +msgstr "" + +#: src/config.c:2830 +#, c-format +msgid "" +"Warning: unable to determine what to do with\n" +"the following text in the middle of current ToolTip definition:\n" +"%s\n" +"Will ignore and continue...\n" +msgstr "" + +#: src/config.c:2837 +msgid "" +"Warning: Configuration appears to have ended before we were\n" +"Done loading an ToolTip block. Outcome is likely not good.\n" +msgstr "" + +#: src/config.c:2875 +msgid "" +"Warning: Configuration appears to have ended before we were\n" +"Done loading an FX block. Outcome is likely not good.\n" +msgstr "" + +#: src/config.c:2911 +#, c-format +msgid "" +"Warning: unable to determine what to do with\n" +"the following text in the middle of current Extras definition:\n" +"%s\n" +"Will ignore and continue...\n" +msgstr "" + +#: src/config.c:2919 +msgid "" +"Warning: Configuration appears to have ended before we were\n" +"Done loading an Extras block. Outcome is likely not good.\n" +msgstr "" + +#: src/config.c:3009 +#, c-format +msgid "" +"Warning: unable to determine what to do with\n" +"the following text in the middle of current Iconbox definition:\n" +"%s\n" +"Will ignore and continue...\n" +msgstr "" + +#: src/config.c:3017 +msgid "" +"Warning: Configuration appears to have ended before we were\n" +"Done loading an Iconbox block. Outcome is likely not good.\n" +msgstr "" + +#: src/config.c:3125 +#, c-format +msgid "" +"Warning: unable to determine what to do with\n" +"the following text in the middle of current WindowMatch definition:\n" +"%s\n" +"Will ignore and continue...\n" +msgstr "" + +#: src/config.c:3132 +msgid "" +"Warning: Configuration appears to have ended before we were\n" +"Done loading an WindowMatch block. Outcome is likely not good.\n" +msgstr "" + +#: src/config.c:3181 +#, c-format +msgid "" +"Help! Cannot find epp!\n" +"Enlightenment is looking for epp here:\n" +"%s\n" +"This is a FATAL ERROR.\n" +"This is probably due to either the program not existing or\n" +"it not being able to be executed by you.\n" +msgstr "" + +#: src/config.c:3188 +msgid "error" +msgstr "" + +#: src/config.c:3396 +msgid "Theme versioning ERROR" +msgstr "" + +#: src/config.c:3397 src/config.c:3432 +msgid "Restart with Defaults" +msgstr "" + +#: src/config.c:3399 src/config.c:3434 +msgid "Abort and Exit" +msgstr "" + +#: src/config.c:3400 +#, c-format +msgid "" +"ERROR:\n" +"\n" +"The configuration for the theme you are running is\n" +"incompatible. It's config revision is %i. It needs to\n" +"be marked as being revision %i\n" +"\n" +"Please contact the theme author or maintainer and\n" +"inform them that in order for their theme to function\n" +"with this version of Enlightenment, they have to\n" +"update it to the current settings, and then match\n" +"the revision number.\n" +"\n" +"If the theme revision is higher than Enlightenment's\n" +"it may be that you haven't upgraded Enlightenment for\n" +"a while and this theme takes advantages of new\n" +"features in Enlightenment in new versions.\n" +msgstr "" + +#: src/config.c:3431 +msgid "User Config Version ERROR" +msgstr "" + +#: src/config.c:3435 +#, c-format +msgid "" +"ERROR:\n" +"\n" +"The settings you are using are incompatible with\n" +"this version of Enlightenment.\n" +"It's revision is %i It needs to be revision %i to\n" +"be compatible.\n" +"\n" +"If you just upgraded to a new version of E\n" +"Restarting with Defaults will remove your current\n" +"user preferences and start cleanly with system\n" +"defaults. You can then modify your configuration to\n" +"your liking again safely.\n" +msgstr "" + +#: src/config.c:3647 +#, c-format +msgid "" +"WARNING!\n" +"There was an error writing the file:\n" +"%s\n" +"This may be due to lack of disk space, quota or\n" +"filesystem permissions.\n" +msgstr "" + +#: src/config.c:3659 +#, c-format +msgid "" +"Enlightenment has just experienced some major problems in\n" +"attempting to load the theme you specified or the default\n" +"configuration directory:\n" +"%s/config/\n" +"This will prevent Enlightenment from loading any configuration\n" +"files at all.\n" +"Since this couldn't be found Enlightenment is probably not\n" +"going to find any configuration files anywhere on your\n" +"system, and so it will have almost no configuration loaded\n" +"when it starts up. This is most likely the sign of a bad\n" +"installation of Enlightenment if this directory is missing.\n" +"The likely causes are that the package was improperly built,\n" +"if a binary package, or 'make install' hasn't been typed\n" +"or during the installation the directory above was not\n" +"able to be copied over for installation perhaps due to\n" +"permissions or lack of disk space. It also could be that the\n" +"config directory has been inadvertently deleted since\n" +"installation.\n" +"This is a serious problem and should be rectified immediately\n" +"Please contact your system administrator or package maintainer.\n" +"If you are the administrator of your own system please\n" +"consult the documentation that came with Enlightenment for\n" +"additional information.\n" +msgstr "" + +#: src/config.c:3727 +msgid "Enlightenment Starting..." +msgstr "" + +#: src/config.c:4141 +msgid "Recover system config?" +msgstr "" + +#: src/config.c:4142 +msgid "Yes, Attempt recovery" +msgstr "" + +#: src/config.c:4143 +msgid "Restart and try again" +msgstr "" + +#: src/config.c:4144 +msgid "Quit and give up" +msgstr "" + +#: src/config.c:4145 +msgid "" +"Enlightenment has encountered parsing errors in your autosaved\n" +"configuration.\n" +"\n" +"This may be due to filing system errors, Minor bugs or unforeseen\n" +"system shutdowns.\n" +"\n" +"Do you wish Enlightenment to recover its original system\n" +"configuration and try again?\n" +msgstr "" + +#: src/desktops.c:1108 +msgid "" +"Hold down the mouse button and drag\n" +"the mouse to be able to drag the desktop\n" +"back and forth.\n" +"Click right mouse button for a list of all\n" +"Desktops and their applications.\n" +"Click middle mouse button for a list of all\n" +"applications currently running.\n" +msgstr "" + +#: src/desktops.c:1124 +msgid "" +"This is the Root desktop.\n" +"You cannot drag the root desktop around.\n" +"Click right mouse button for a list of all\n" +"Desktops and their applications.\n" +"Click middle mouse button for a list of all\n" +"applications currently running.\n" +msgstr "" + +#: src/desktops.c:1148 +msgid "" +"Click here to raise this desktop\n" +"to the top.\n" +msgstr "" + +#: src/desktops.c:1162 +msgid "" +"Click here to lower this desktop\n" +"to the bottom.\n" +msgstr "" + +#: src/dialog.c:303 +msgid "Attention !!!" +msgstr "" + +#: src/fx.c:253 +msgid "Starting up Ripples FX..." +msgstr "" + +#: src/fx.c:254 +msgid "" +"\n" +"You have just started the Ripples Effect.\n" +"\n" +"If you look closely on your desktop background, and if it\n" +"doesn't have a solid colour (ie has a background texture or\n" +"image), you will see a pool of water at the bottom of your\n" +"screen that reflects everything above it and \"ripples\".\n" +"\n" +"To disable this effect just select this option again to toggle\n" +"it off.\n" +msgstr "" + +#: src/fx.c:388 src/fx.c:407 +msgid "Unable to display raindrops" +msgstr "" + +#: src/fx.c:389 +msgid "" +"\n" +"Enlightenment is unable to display raindrops on this\n" +"display because Shared memory is not available on this\n" +"X-Server.\n" +"\n" +"This may be due to Enlightenment being a remote client\n" +"running over the network, a MIT-SHM incapable X-server,\n" +"having run out of SHM ID's on the system or Shared\n" +"Memory support being turned off in Imlib\n" +"\n" +"You may correct this by either running `imlib_config'\n" +"or copying the system imrc (/usr/etc/imrc) to ~/.imrc\n" +"and editing it, enabling shared memory.\n" +"\n" +msgstr "" + +#: src/fx.c:408 +msgid "" +"\n" +"Enlightenment is unable to display raindrops on this\n" +"display because shared pixmaps are not available on this\n" +"X-Server.\n" +"\n" +"This may be due to either the X-Server not implimenting\n" +"shared pixmaps, or shared pixmaps being disabled in\n" +"Imlib's configuration.\n" +"\n" +"You may correct this by either running `imlib_config'\n" +"or copying the system imrc (/usr/etc/imrc) to ~/.imrc\n" +"and editing it, enabling shared pixmaps.\n" +"\n" +msgstr "" + +#: src/fx.c:424 +msgid "Starting up Raindrops FX..." +msgstr "" + +#: src/fx.c:425 +msgid "" +"\n" +"You have just started the Raindrops Effect.\n" +"\n" +"If you look closely on your desktop background, and if it\n" +"doesn't have a solid colour (ie has a background texture or\n" +"image), you will see \"raindrops\" hit the background and\n" +"make little splashes. This Effect can be VERY CPU intensive.\n" +"\n" +"To disable this effect just select this option again to toggle\n" +"it off.\n" +msgstr "" + +#: src/fx.c:699 +msgid "Starting up Waves FX..." +msgstr "" + +#: src/fx.c:700 +msgid "" +"\n" +"You have just started the Waves Effect.\n" +"\n" +"If you look closely on your desktop background, and if it\n" +"doesn't have a solid colour (ie has a background texture or\n" +"image), you will see a pool of water at the bottom of your\n" +"screen that reflects everything above it and \"waves\".\n" +"\n" +"To disable this effect just select this option again to toggle\n" +"it off.\n" +msgstr "" + +#: src/fx.c:870 +msgid "Starting up imagespinners FX..." +msgstr "" + +#: src/fx.c:871 +msgid "" +"\n" +"You have just started the imagespinners Effect.\n" +"\n" +"To disable this effect just select this option again to toggle\n" +"it off.\n" +msgstr "" + +#: src/groups.c:117 src/groups.c:148 +msgid "Cannot comply" +msgstr "" + +#: src/groups.c:118 src/groups.c:149 +msgid "" +"Iconboxes and Pagers are disallowed from being\n" +"members of a group. You cannot add these windows\n" +"to a group.\n" +msgstr "" + +#: src/groups.c:576 src/groups.c:584 src/groups.c:592 src/settings.c:3765 +msgid "Window Group Error" +msgstr "" + +#: src/groups.c:577 +msgid "" +"\n" +" This window currently does not belong to any groups. \n" +" You can only destroy groups or remove windows from groups \n" +" through a window that actually belongs to at least one group.\n" +"\n" +msgstr "" + +#: src/groups.c:585 +msgid "" +"\n" +" Currently, no groups exist or this window \n" +" already belongs to all existing groups. \n" +" You have to start other groups first. \n" +"\n" +msgstr "" + +#: src/groups.c:592 +msgid "" +"\n" +" Currently, no groups exist. You have to start a group first.\n" +"\n" +msgstr "" + +#: src/groups.c:607 +msgid "Window Group Selection" +msgstr "" + +#: src/groups.c:665 src/pager.c:1257 src/settings.c:303 src/settings.c:520 +#: src/settings.c:685 src/settings.c:864 src/settings.c:1090 +#: src/settings.c:1190 src/settings.c:1289 src/settings.c:1394 +#: src/settings.c:1456 src/settings.c:1545 src/settings.c:1936 +#: src/settings.c:3310 src/settings.c:3645 src/settings.c:3934 +#: src/settings.c:4072 +msgid "Close" +msgstr "" + +#: src/handlers.c:59 +#, c-format +msgid "" +"Enlightenment performed an Illegal Instruction.\n" +"\n" +"This most likely is due to you having installed an run a\n" +"binary of Enlightenment that was compiled for a make or model\n" +"of CPU not 100% identical or compatible with yours. Please\n" +"either obtain the correct package for your system, or\n" +"re-compile enlightenment and possibly any support libraries\n" +"that you got in binary format to run Enlightenment.\n" +msgstr "" + +#: src/handlers.c:87 +msgid "" +"Enlightenment caused a Floating Point Exception.\n" +"\n" +"This means that Enlightenment or support library routines it calls\n" +"have performed an illegal mathematical operation (most likely\n" +"dividing a number by zero). This is most likely a bug. It is\n" +"recommended to restart now. If you wish to help fix this please\n" +"compile Enlightenment with debugging symbols in and run\n" +"Enlightenment under gdb so you can backtrace for where it died and\n" +"send in a useful bug report with backtrace information and variable\n" +"dumps etc.\n" +msgstr "" + +#: src/handlers.c:112 +msgid "" +"Enlightenment caused Segment Violation (Segfault)\n" +"\n" +"This means that Enlightenment or support library routines it calls\n" +"have accessed areas of your system's memory that they are not\n" +"allowed access to. This is most likely a bug. It is recommended to\n" +"restart now. If you wish to help fix this please compile\n" +"Enlightenment with debugging symbols in and run Enlightenment\n" +"under gdb so you can backtrace for where it died and send in a\n" +"useful bug report with backtrace information and variable\n" +"dumps etc.\n" +msgstr "" + +#: src/handlers.c:196 +msgid "" +"Enlightenment caused Bus Error.\n" +"\n" +"It is suggested you check your hardware and OS installation.\n" +"It is highly unusual to cause Bus Errors on operational\n" +"hardware.\n" +msgstr "" + +#: src/handlers.c:215 +msgid "Another Window Manager is already running" +msgstr "" + +#: src/handlers.c:216 +msgid "OK (edit file)" +msgstr "" + +#: src/handlers.c:218 +msgid "Cancel (do NOT edit)" +msgstr "" + +#: src/handlers.c:219 +msgid "" +"Another Window Manager is already running.\n" +"\n" +"You will have to quit your current Window Manager first before\n" +"you can successfully run Enlightenment.\n" +"\n" +"If you haven't edited your user startup files, Enlightenment\n" +"can do that now for you, so when you log in again after\n" +"quitting your current window manager, you will have\n" +"Enlightenment running.\n" +"\n" +"If you want to do this, click OK, otherwise hit cancel\n" +"to abort this operation and edit the files by hand.\n" +"\n" +"WARNING WARNING WARNING WARNING!\n" +"\n" +"It is possible that this MAY not properly edit your files.\n" +msgstr "" + +#: src/handlers.c:236 src/session.c:1161 +msgid "Are you sure?" +msgstr "" + +#: src/handlers.c:237 +msgid "YES (edit file)" +msgstr "" + +#: src/handlers.c:239 +msgid "NO (do not edit)" +msgstr "" + +#: src/handlers.c:240 +msgid "" +"Are you absolutely sure you want to have Enlightenment\n" +"edit your startup files for you?\n" +"\n" +"If your startup files are highly customised this may not\n" +"work.\n" +"\n" +"Are you ABSOLUTELY sure?\n" +msgstr "" + +#: src/iconify.c:2322 +msgid "Iconbox Options" +msgstr "" + +#: src/iconify.c:2326 +msgid "This Iconbox Settings..." +msgstr "" + +#: src/iconify.c:2328 +msgid "Close Iconbox" +msgstr "" + +#: src/iconify.c:2330 +msgid "Create New Iconbox" +msgstr "" + +#: src/ipc.c:4661 +msgid "Enlightenment IPC Commands Help" +msgstr "" + +#: src/ipc.c:4665 src/ipc.c:4703 +msgid "" +"\n" +"commands currently available:\n" +msgstr "" + +#: src/ipc.c:4666 +msgid "" +"use \"help all\" for descriptions of each command\n" +"use \"help \" for an individual description\n" +"\n" +msgstr "" + +#: src/ipc.c:4704 +msgid "use \"help \" for an individual description\n" +msgstr "" + +#: src/ipc.c:4706 +msgid " : \n" +msgstr "" + +#: src/ipc.c:4814 +#, c-format +msgid "" +"Enlightenment Version : %s\n" +"code is current to : %s\n" +msgstr "" + +#. Set up all the text bits that belong on the GSOD +#: src/main.c:90 +msgid "Enlightenment Message Dialog" +msgstr "" + +#: src/main.c:91 src/memory.c:196 src/memory.c:276 src/memory.c:300 +#: src/memory.c:380 +msgid "Ignore this" +msgstr "" + +#: src/main.c:92 src/memory.c:197 src/memory.c:277 src/memory.c:301 +#: src/memory.c:381 src/memory.c:403 +msgid "Restart Enlightenment" +msgstr "" + +#: src/main.c:93 src/memory.c:198 src/memory.c:278 src/memory.c:302 +#: src/memory.c:382 src/memory.c:404 src/setup.c:295 src/setup.c:332 +#: src/setup.c:348 src/setup.c:416 +msgid "Quit Enlightenment" +msgstr "" + +#: src/main.c:180 +#, c-format +msgid "" +"Enlightenment Version: %s\n" +"Last updated on: %s\n" +msgstr "" + +#: src/memory.c:195 src/memory.c:299 +msgid "Cannot allocate enough memory" +msgstr "" + +#: src/memory.c:199 +#, c-format +msgid "" +"WARNING!!!!!!\n" +"\n" +"Allocation for %i bytes (%3.0f Kb or %3.1f Mb) did not succeed.\n" +"\n" +"Either this is a bug where ridiculous amounts of memory\n" +"are being allocated, or your system has run out of both\n" +"real and virtual memory and is unable to satisfy the request.\n" +"\n" +"If you have a low memory system it is suggested to either\n" +"purchase more memory, increase SWAP space, or reconfigure\n" +"Enlightenment to use less resources by turning features off.\n" +"\n" +"The malloc requested was at %s, line %d\n" +" " +msgstr "" + +#: src/memory.c:275 +msgid "Error in reallocating memory that hasn't been allocated" +msgstr "" + +#: src/memory.c:279 +#, c-format +msgid "" +"WARNING!!!!!!\n" +"\n" +"Re-allocation for %i bytes (%3.0f Kb or %f3.1 Mb)\n" +"for pointer %x is attempting to re-allocate memory for a\n" +"memory chunk that has not been allocated or has already been\n" +"freed.\n" +"\n" +"This is definitely a bug. Please report it.\n" +"\n" +"The error occured at %s, line %d.\n" +msgstr "" + +#: src/memory.c:303 +#, c-format +msgid "" +"WARNING!!!!!!\n" +"\n" +"Re-allocation for %i bytes (%3.0f Kb or %3.1f Mb) did not succeed.\n" +"\n" +"Either this is a bug where ridiculous amounts of memory\n" +"are being allocated, or your system has run out of both\n" +"real and virtual memory and is unable to satisfy the request.\n" +"\n" +"If you have a low memory system it is suggested to either\n" +"purchase more memory, increase SWAP space, or reconfigure\n" +"Enlightenment to use less resources by turning features off.\n" +"\n" +"The realloc requested was at %s, line %d\n" +" " +msgstr "" + +#: src/memory.c:379 +msgid "Error in freeing memory that hasn't been allocated" +msgstr "" + +#: src/memory.c:383 +#, c-format +msgid "" +"WARNING!!!!!!\n" +"\n" +"freeing for pointer %x is attempting to free memory for a\n" +"memory chunk that has not been allocated, or has already been\n" +"freed.\n" +"\n" +"This is definitely a bug. Please report it.\n" +"\n" +"The error occured at %s, line %d.\n" +msgstr "" + +#: src/memory.c:401 +msgid "Error in attempting to free NULL pointer" +msgstr "" + +#: src/memory.c:402 +msgid "Ignore this (safe)" +msgstr "" + +#: src/memory.c:405 +#, c-format +msgid "" +"WARNING!!!!!!\n" +"\n" +"Enlightenment attempted to free a NULL pointer.\n" +"\n" +"This is definitely a bug. Please report it.\n" +"It is safe to ignore this error and continue running Enlightenment.\n" +"\n" +"The pointer value was %x.\n" +"The error occured at %s, line %d.\n" +msgstr "" + +#: src/menus.c:1880 +msgid "Go to this Desktop" +msgstr "" + +#: src/menus.c:1893 +#, c-format +msgid "Desktop %i" +msgstr "" + +#: src/menus.c:1955 +msgid "Show/Hide this group" +msgstr "" + +#: src/menus.c:1957 +msgid "Iconify this group" +msgstr "" + +#: src/menus.c:1967 +#, c-format +msgid "Group %i" +msgstr "" + +#: src/misc.c:60 +#, c-format +msgid "" +"!!!!!!!! ERROR ERROR ERROR ERROR !!!!!!!!\n" +"\n" +"Enlightenment's utility executable cannot be found at:\n" +"\n" +"%s\n" +"This is a fatal error and Enlightenment will cease to run.\n" +"Please rectify this situation and ensure it is installed\n" +"correctly.\n" +"\n" +"The reason this could be missing is due to badly created\n" +"packages, someone manually deleting that program or perhaps\n" +"an error in installing Enlightenment.\n" +msgstr "" + +#: src/misc.c:76 +#, c-format +msgid "" +"!!!!!!!! ERROR ERROR ERROR ERROR !!!!!!!!\n" +"\n" +"Enlightenment's dox executable is not able to be executed:\n" +"\n" +"%s\n" +"This is a fatal error and Enlightenment will cease to run.\n" +"Please rectify this situation and ensure dox is installed\n" +"correctly.\n" +msgstr "" + +#: src/misc.c:97 +msgid "" +"!!!!!!!! ERROR ERROR ERROR ERROR !!!!!!!!\n" +"\n" +"Enlightenment's documentation is not present or correctly installed\n" +"\n" +"This is a fatal error and Enlightenment will cease to run.\n" +"Please rectify this situation and ensure it is installed\n" +"correctly.\n" +"\n" +"The reason this could be missing is due to badly created\n" +"packages, someone manually deleting those files or perhaps\n" +"an error in installing Enlightenment.\n" +msgstr "" + +#: src/misc.c:120 +msgid "" +"!!!!!!!! ERROR ERROR ERROR ERROR !!!!!!!!\n" +"\n" +"Enlightenment's DEFAULT installed theme is missing or inadequately\n" +"configured to be a useful DEFAULT theme.\n" +"\n" +"This is a fatal error and Enlightenment will cease to run.\n" +"Please rectify this situation and ensure it is installed\n" +"correctly. The DEFAULT theme Enlightenment comes with normally\n" +"is BrushedMetal-Tigert and this theme is adequate for a DEFAULT\n" +"theme.\n" +msgstr "" + +#: src/misc.c:420 +msgid "Theme does not contain a borders.cfg file\n" +msgstr "" + +#: src/misc.c:426 +msgid "Theme does not contain a buttons.cfg file\n" +msgstr "" + +#: src/misc.c:432 +msgid "Theme does not contain a colormodifiers.cfg file\n" +msgstr "" + +#: src/misc.c:438 +msgid "Theme does not contain a cursors.cfg file\n" +msgstr "" + +#: src/misc.c:444 +msgid "Theme does not contain a desktops.cfg file\n" +msgstr "" + +#: src/misc.c:450 +msgid "Theme does not contain a imageclasses.cfg file\n" +msgstr "" + +#: src/misc.c:456 +msgid "Theme does not contain a init.cfg file\n" +msgstr "" + +#: src/misc.c:462 +msgid "Theme does not contain a menustyles.cfg file\n" +msgstr "" + +#: src/misc.c:468 +msgid "Theme does not contain a slideouts.cfg file\n" +msgstr "" + +#: src/misc.c:475 +msgid "Theme does not contain a sound.cfg file\n" +msgstr "" + +#: src/misc.c:482 +msgid "Theme does not contain a tooltips.cfg file\n" +msgstr "" + +#: src/misc.c:488 +msgid "Theme does not contain a windowmatches.cfg file\n" +msgstr "" + +#: src/misc.c:494 +msgid "Theme contains a menus.cfg file\n" +msgstr "" + +#: src/misc.c:500 +msgid "Theme contains a control.cfg file\n" +msgstr "" + +#: src/misc.c:506 +msgid "Theme contains a keybindings.cfg file\n" +msgstr "" + +#: src/modules.c:138 +msgid "Module is Already Loaded.\n" +msgstr "" + +#: src/modules.c:140 +msgid "Module Failed During Load.\n" +msgstr "" + +#: src/modules.c:142 +msgid "Module Unload Failed.\n" +msgstr "" + +#: src/modules.c:144 +msgid "Module is not Loaded.\n" +msgstr "" + +#: src/modules.c:146 +msgid "Unknown Module Error.\n" +msgstr "" + +#: src/pager.c:511 src/pager.c:527 src/pager.c:542 +msgid "Warning!" +msgstr "" + +#: src/pager.c:512 +msgid "" +"\n" +"You seem to have an X Server capable of Shared Memory\n" +"but it is incapable of doing ZPixmap Shared pixmaps\n" +"(The server does not claim to be able to do them).\n" +"\n" +"The pager in enlightenment will run slowly in snapshot\n" +"mode if you continue to use that mode of the pager\n" +"under these conditions.\n" +"\n" +"It is suggested you change the settings on your pager to\n" +"disable snapshots to improve performance.\n" +"\n" +msgstr "" + +#: src/pager.c:528 +msgid "" +"\n" +"Your X Server is capable of doing Shared Memory but you do\n" +"not have Shared Pixmaps enabled in your Imlib configuration.\n" +"\n" +"Please enable Shared Pixmaps in your Imlib configuration\n" +"then restart enlightenment to gain better performance for\n" +"the pagers when snapshot mode is enabled.\n" +"\n" +msgstr "" + +#: src/pager.c:543 +msgid "" +"\n" +"You seem to be running Enlightenment over a network Connection\n" +"or on an X Server that does not support Shared Memory, or you\n" +"have disabled MIT-SHM Shared memory in your Imlib configuration.\n" +"This means the Enlightenment Pager will perform slowly and use\n" +"more system resources than it would when Shared Memory is\n" +"available.\n" +"\n" +"To improve performance please either enable MIT-SHM Shared Memory\n" +"in your Imlib config, if you disabled it, or disable Pager\n" +"snapshots.\n" +"\n" +msgstr "" + +#: src/pager.c:1249 +msgid "Window Options" +msgstr "" + +#: src/pager.c:1254 +msgid "Iconify" +msgstr "" + +#: src/pager.c:1260 +msgid "Annihilate" +msgstr "" + +#: src/pager.c:1263 +msgid "Stick / Unstick" +msgstr "" + +#: src/pager.c:1275 +msgid "Desktop Options" +msgstr "" + +#: src/pager.c:1279 +msgid "Pager Settings..." +msgstr "" + +#: src/pager.c:1282 +msgid "Snapshotting On" +msgstr "" + +#: src/pager.c:1285 +msgid "Snapshotting Off" +msgstr "" + +#: src/pager.c:1290 +msgid "High Quality On" +msgstr "" + +#: src/pager.c:1293 +msgid "High Quality Off" +msgstr "" + +#: src/session.c:242 +msgid "" +"There was an error writing the clients session save file.\n" +"You may have run out of disk space, not have permission\n" +"to write to your filing system or other similar problems.\n" +msgstr "" + +#: src/session.c:435 +msgid "" +"There was an error saving your autosave data - filing\n" +"system problems.\n" +msgstr "" + +#. Less of the hope.... E survives +#: src/session.c:1019 +msgid "" +"ERROR!\n" +"\n" +"Lost the Session Manager that was there?\n" +"Here here session manager... come here... want a bone?\n" +"Oh come now! Stop sulking! Bugger. Oh well. Will continue without\n" +"a session manager.\n" +"\n" +"I'll survive somehow.\n" +"\n" +"\n" +"... I hope.\n" +msgstr "" + +#: src/session.c:1163 +msgid "" +"\n" +"\n" +" Are you sure you wish to log out ? \n" +"\n" +"\n" +msgstr "" + +#: src/session.c:1169 +msgid " Yes, Log Out " +msgstr "" + +#: src/session.c:1170 +msgid " No " +msgstr "" + +#: src/settings.c:87 src/settings.c:184 +msgid "Pager scanning speed:" +msgstr "" + +#: src/settings.c:88 src/settings.c:185 +msgid "lines per second" +msgstr "" + +#: src/settings.c:126 +msgid "Pager Settings" +msgstr "" + +#: src/settings.c:135 +msgid "Enable pager display" +msgstr "" + +#: src/settings.c:143 +msgid "Make miniature snapshots of the screen" +msgstr "" + +#: src/settings.c:151 +msgid "Smooth high quality snapshots in snapshot mode" +msgstr "" + +#: src/settings.c:159 +msgid "Zoom in on pager windows when mouse is over them" +msgstr "" + +#: src/settings.c:167 +msgid "Pop up window title when mouse is over the window" +msgstr "" + +#: src/settings.c:175 +msgid "Continuously scan screen to update pager" +msgstr "" + +#: src/settings.c:204 +msgid "Mouse button to select and drag windows:" +msgstr "" + +#: src/settings.c:210 src/settings.c:242 src/settings.c:274 +#: src/settings.c:1818 +msgid "Left" +msgstr "" + +#: src/settings.c:218 src/settings.c:250 src/settings.c:282 +msgid "Middle" +msgstr "" + +#: src/settings.c:226 src/settings.c:258 src/settings.c:290 +#: src/settings.c:1825 +msgid "Right" +msgstr "" + +#: src/settings.c:236 +msgid "Mouse button to select desktops:" +msgstr "" + +#: src/settings.c:268 +msgid "Mouse button to display pager menu:" +msgstr "" + +#: src/settings.c:302 src/settings.c:519 src/settings.c:684 src/settings.c:863 +#: src/settings.c:1089 src/settings.c:1189 src/settings.c:1288 +#: src/settings.c:1393 src/settings.c:1455 src/settings.c:1544 +#: src/settings.c:1935 src/settings.c:3309 src/settings.c:3644 +#: src/settings.c:3933 src/settings.c:4071 src/snaps.c:504 +msgid "Apply" +msgstr "" + +#: src/settings.c:373 +msgid "Focus Settings" +msgstr "" + +#: src/settings.c:399 +msgid "Focus follows pointer" +msgstr "" + +#: src/settings.c:407 +msgid "Focus follows pointer sloppily" +msgstr "" + +#: src/settings.c:415 +msgid "Focus follows mouse clicks" +msgstr "" + +#: src/settings.c:430 +msgid "Clicking in a window always raises it" +msgstr "" + +#: src/settings.c:444 +msgid "All new windows first get the focus" +msgstr "" + +#: src/settings.c:452 +msgid "Only new dialog windows get the focus" +msgstr "" + +#: src/settings.c:460 +msgid "Only new dialogs whose owner is focused get the focus" +msgstr "" + +#: src/settings.c:468 +msgid "Raise windows on focus switch" +msgstr "" + +#: src/settings.c:476 +msgid "Send mouse pointer to window on focus switch" +msgstr "" + +#: src/settings.c:491 +msgid "Display and use focuslist" +msgstr "" + +#: src/settings.c:499 +msgid "Raise windows after focus switch" +msgstr "" + +#: src/settings.c:507 +msgid "Send mouse pointer to window after focus switch" +msgstr "" + +#: src/settings.c:562 +msgid "Move & Resize Settings" +msgstr "" + +#: src/settings.c:588 +msgid "Move Methods:" +msgstr "" + +#: src/settings.c:594 +msgid "Resize Methods:" +msgstr "" + +#: src/settings.c:599 src/settings.c:606 src/settings.c:1689 +msgid "Opaque" +msgstr "" + +#: src/settings.c:613 src/settings.c:620 src/settings.c:1704 +msgid "Technical" +msgstr "" + +#: src/settings.c:627 src/settings.c:634 src/settings.c:1719 +msgid "Box" +msgstr "" + +#: src/settings.c:641 src/settings.c:648 src/settings.c:1734 +msgid "Shaded" +msgstr "" + +#: src/settings.c:655 src/settings.c:662 src/settings.c:1749 +msgid "Semi-Solid" +msgstr "" + +#: src/settings.c:670 +msgid "Translucent" +msgstr "" + +#: src/settings.c:774 src/settings.c:834 +#, c-format +msgid "%i Desktops" +msgstr "" + +#: src/settings.c:776 src/settings.c:836 +#, c-format +msgid "%i Desktop" +msgstr "" + +#: src/settings.c:801 +msgid "Multiple Desktop Settings" +msgstr "" + +#: src/settings.c:827 +msgid "Number of virtual desktops:\n" +msgstr "" + +#: src/settings.c:951 src/settings.c:1016 +#, c-format +msgid "" +"%i x %i\n" +"Screens in size" +msgstr "" + +#: src/settings.c:954 src/settings.c:1019 +msgid "" +"1\n" +"Screen in size" +msgstr "" + +#: src/settings.c:984 +msgid "Virtual Deskop Settings" +msgstr "" + +#: src/settings.c:1010 +msgid "Virtual Desktop size:\n" +msgstr "" + +#: src/settings.c:1064 +msgid "Enable edge flip" +msgstr "" + +#: src/settings.c:1071 +msgid "Resistance at edge of screen:\n" +msgstr "" + +#: src/settings.c:1136 +msgid "Window Placement Settings" +msgstr "" + +#: src/settings.c:1162 +msgid "Dialog windows appear together with their owner" +msgstr "" + +#: src/settings.c:1170 +msgid "Switch to desktop where dialog appears" +msgstr "" + +#: src/settings.c:1178 +msgid "Place windows manually" +msgstr "" + +#: src/settings.c:1236 +msgid "Autoraise Settings" +msgstr "" + +#: src/settings.c:1262 +msgid "Raise Windows Automatically" +msgstr "" + +#: src/settings.c:1270 +msgid "Autoraise delay:" +msgstr "" + +#: src/settings.c:1333 +msgid "Tooltip Settings" +msgstr "" + +#: src/settings.c:1359 +msgid "Display Tooltips" +msgstr "" + +#: src/settings.c:1367 +msgid "Display Root Window Tips" +msgstr "" + +#: src/settings.c:1375 +msgid "Tooltip Delay:\n" +msgstr "" + +#: src/settings.c:1435 +msgid "KDE Settings" +msgstr "" + +#: src/settings.c:1444 +msgid "Enable KDE Support" +msgstr "" + +#: src/settings.c:1498 +msgid "Audio Settings" +msgstr "" + +#: src/settings.c:1525 +msgid "Enable sounds" +msgstr "" + +#: src/settings.c:1533 +msgid "" +"Audio not available since EsounD was not\n" +"present at the time of compilation." +msgstr "" + +#: src/settings.c:1641 +msgid "Special FX Settings" +msgstr "" + +#: src/settings.c:1676 +msgid "Slide Method:" +msgstr "" + +#: src/settings.c:1682 +msgid "Slide desktops around when changing" +msgstr "" + +#: src/settings.c:1697 +msgid "Slide windows around when cleaning up" +msgstr "" + +#: src/settings.c:1712 +msgid "Slide windows in when they appear" +msgstr "" + +#: src/settings.c:1727 +msgid "Animated display of menus" +msgstr "" + +#: src/settings.c:1742 +msgid "Always pop up menus on screen" +msgstr "" + +#: src/settings.c:1758 +msgid "Use saveunders to reduce window exposures" +msgstr "" + +#: src/settings.c:1766 +msgid "Animate shading and unshading of windows" +msgstr "" + +#: src/settings.c:1780 +msgid "Display desktop dragbar" +msgstr "" + +#: src/settings.c:1789 +msgid "Drag bar position:" +msgstr "" + +#: src/settings.c:1800 +msgid "Top" +msgstr "" + +#: src/settings.c:1807 +msgid "Bottom" +msgstr "" + +#: src/settings.c:1844 +msgid "Desktop Slide speed: (slow)\n" +msgstr "" + +#: src/settings.c:1860 src/settings.c:1882 src/settings.c:1904 +#: src/settings.c:1926 +msgid "(fast)\n" +msgstr "" + +#: src/settings.c:1866 +msgid "Cleanup Slide speed: (slow)\n" +msgstr "" + +#: src/settings.c:1888 +msgid "Appear Slide speed: (slow)\n" +msgstr "" + +#: src/settings.c:1910 +msgid "Window Shading speed: (slow)\n" +msgstr "" + +#: src/settings.c:2189 src/settings.c:2308 src/settings.c:2554 +#: src/settings.c:2677 src/settings.c:3294 +msgid "-NONE-" +msgstr "" + +#: src/settings.c:2190 src/settings.c:2309 src/settings.c:2555 +#: src/settings.c:2678 src/settings.c:3295 +#, c-format +msgid "" +"Background definition information:\n" +"Name: %s\n" +"File: %s\n" +msgstr "" + +#: src/settings.c:2437 src/settings.c:2440 +msgid "" +"No\n" +"Background" +msgstr "" + +#: src/settings.c:2619 src/settings.c:3185 +#, c-format +msgid "Unused backgrounds freed after %2i:%02i:%02i" +msgstr "" + +#: src/settings.c:2946 +msgid "Desktop Background Settings" +msgstr "" + +#: src/settings.c:2972 +msgid "BG Color\n" +msgstr "" + +#: src/settings.c:2983 +msgid "Move to Front\n" +msgstr "" + +#: src/settings.c:2990 +msgid "Duplicate\n" +msgstr "" + +#: src/settings.c:2996 +msgid "Unlist\n" +msgstr "" + +#: src/settings.c:3002 +msgid "Delete File\n" +msgstr "" + +#: src/settings.c:3011 +msgid "Red:\n" +msgstr "" + +#: src/settings.c:3025 +msgid "Use background image" +msgstr "" + +#: src/settings.c:3033 +msgid "Green:\n" +msgstr "" + +#: src/settings.c:3047 +msgid "Keep aspect on scale" +msgstr "" + +#: src/settings.c:3055 +msgid "Blue:\n" +msgstr "" + +#: src/settings.c:3069 +msgid "Tile image across background" +msgstr "" + +#: src/settings.c:3085 +msgid "" +"Background\n" +"Image\n" +"Scaling\n" +"and\n" +"Alignment\n" +msgstr "" + +#: src/settings.c:3169 +msgid "Use dithering in Hi-Color" +msgstr "" + +#: src/settings.c:3176 +msgid "Background overrides theme" +msgstr "" + +#: src/settings.c:3232 +msgid "Prescan BG's" +msgstr "" + +#: src/settings.c:3242 +msgid "Sort by File" +msgstr "" + +#: src/settings.c:3248 +msgid "Sort by Attr." +msgstr "" + +#: src/settings.c:3254 +msgid "Sort by Image" +msgstr "" + +#: src/settings.c:3407 +msgid "Iconbox Settings" +msgstr "" + +#: src/settings.c:3433 +msgid "Transparent background" +msgstr "" + +#: src/settings.c:3440 +msgid "Hide border around inner Iconbox" +msgstr "" + +#: src/settings.c:3447 +msgid "Show icon names" +msgstr "" + +#: src/settings.c:3454 +msgid "Draw base image behind Icons" +msgstr "" + +#: src/settings.c:3461 +msgid "Hide scrollbar when not needed" +msgstr "" + +#: src/settings.c:3468 +msgid "Automatically resize to fit Icons" +msgstr "" + +#: src/settings.c:3475 +msgid "Animate when iconifying to this Iconbox" +msgstr "" + +#: src/settings.c:3483 +msgid "Alignment of anchoring when automatically resizing:" +msgstr "" + +#: src/settings.c:3503 +msgid "Icon image display policy (if one operation fails, try the next):" +msgstr "" + +#: src/settings.c:3508 +msgid "Snapshot Windows, Use application icon, Use Enlightenment Icon" +msgstr "" + +#: src/settings.c:3515 +msgid "Use application icon, Use Enlightenment Icon, Snapshot Window" +msgstr "" + +#: src/settings.c:3522 +msgid "Use Enlightenment Icon, Snapshot Window" +msgstr "" + +#: src/settings.c:3536 +msgid "Icon size" +msgstr "" + +#: src/settings.c:3559 +msgid "Orientation:" +msgstr "" + +#: src/settings.c:3565 +msgid "Scrollbar side:" +msgstr "" + +#: src/settings.c:3571 +msgid "Scrollbar arrows:" +msgstr "" + +#: src/settings.c:3576 +msgid "Horizontal" +msgstr "" + +#: src/settings.c:3583 +msgid "Left / Top" +msgstr "" + +#: src/settings.c:3590 +msgid "Start" +msgstr "" + +#: src/settings.c:3597 +msgid "Vertical" +msgstr "" + +#: src/settings.c:3605 +msgid "Right / Bottom" +msgstr "" + +#: src/settings.c:3613 +msgid "Both ends" +msgstr "" + +#: src/settings.c:3623 +msgid "End" +msgstr "" + +#: src/settings.c:3633 +msgid "None" +msgstr "" + +#: src/settings.c:3766 +msgid "" +"\n" +" This window currently does not belong to any groups. \n" +"\n" +msgstr "" + +#: src/settings.c:3788 +msgid "Window Group Settings" +msgstr "" + +#: src/settings.c:3815 +msgid " Pick the group to configure: " +msgstr "" + +#: src/settings.c:3851 +msgid "" +" The following actions are \n" +" applied to all group members: " +msgstr "" + +#: src/settings.c:3859 src/settings.c:4004 +msgid "Changing Border Style" +msgstr "" + +#: src/settings.c:3868 src/settings.c:4012 +msgid "Iconifying" +msgstr "" + +#: src/settings.c:3877 src/settings.c:4020 +msgid "Killing" +msgstr "" + +#: src/settings.c:3886 src/settings.c:4028 +msgid "Moving" +msgstr "" + +#: src/settings.c:3895 src/settings.c:4036 +msgid "Raising/Lowering" +msgstr "" + +#: src/settings.c:3904 src/settings.c:4044 +msgid "Sticking" +msgstr "" + +#: src/settings.c:3913 src/settings.c:4052 +msgid "Shading" +msgstr "" + +#: src/settings.c:3922 src/settings.c:4060 +msgid "Mirror Shade/Iconify/Stick" +msgstr "" + +#: src/settings.c:3978 +msgid "Default Group Control Settings" +msgstr "" + +#: src/setup.c:221 +msgid "" +"Enlightenment cannot connect to the display nominated by\n" +"your shell's DISPLAY environment variable. You may set this\n" +"variable to indicate which display name Enlightenment is to\n" +"connect to. It may be that you do not have an Xserver already\n" +"running to serve that Display connection, or that you do not\n" +"have permission to connect to that display. Please make sure\n" +"all is correct before trying again. Run an Xserver by running\n" +"xdm or startx first, or contact your local system\n" +"administrator, or Xserver vendor, or read the X, xdm and\n" +"startx manual pages before proceeding.\n" +msgstr "" + +#: src/setup.c:292 src/setup.c:345 +msgid "X server setup error" +msgstr "" + +#: src/setup.c:296 +msgid "" +"FATAL ERROR:\n" +"\n" +"This Xserver does not support the Shape extension.\n" +"This is required for Enlightenment to run.\n" +"\n" +"Your Xserver probably is too old or mis-configured.\n" +"\n" +"Exiting.\n" +msgstr "" + +#: src/setup.c:329 +msgid "Imlib initialisation error" +msgstr "" + +#: src/setup.c:333 +msgid "" +"FATAL ERROR:\n" +"\n" +"Enlightenment is unable to initialise Imlib.\n" +"\n" +"This is unusual. Unable to contiune.\n" +"Exiting.\n" +msgstr "" + +#: src/setup.c:349 +msgid "" +"FATAL ERROR:\n" +"\n" +"Enlightenment is unable to initialise Fnlib.\n" +"\n" +"This is unusual. Unable to contiune.\n" +"Exiting.\n" +msgstr "" + +#: src/setup.c:413 +msgid "X server version error" +msgstr "" + +#: src/setup.c:414 +msgid "Ignore this error" +msgstr "" + +#: src/setup.c:417 +#, c-format +msgid "" +"WARNING:\n" +"This is not an X11 Xserver. It infact talks the X%i protocol.\n" +"This may mean Enlightenment will either not function, or\n" +"function incorrectly. If it is later than X11, then your\n" +"server is one the author of Enlightenment neither have\n" +"access to, nor have heard of.\n" +msgstr "" + +#: src/setup.c:634 +#, c-format +msgid "" +"The directory %s is apparently not a directory\n" +"This is a fatal condition.\n" +"Please remove this file\n" +msgstr "" + +#: src/setup.c:642 +#, c-format +msgid "" +"Do not have execute access to %s\n" +"This is a fatal condition.\n" +"Please check the ownership and permissions of this\n" +"directory and take steps to rectify this.\n" +msgstr "" + +#: src/setup.c:651 +#, c-format +msgid "" +"Do not have read access to %s\n" +"This is a fatal condition.\n" +"Please check the ownership and permissions of this\n" +"directory and take steps to rectify this.\n" +msgstr "" + +#: src/setup.c:660 +#, c-format +msgid "" +"Do not have write access to %s\n" +"This is a fatal condition.\n" +"Please check the ownership and permissions of this\n" +"directory and take steps to rectify this.\n" +msgstr "" + +#: src/snaps.c:403 +msgid "Location" +msgstr "" + +#: src/snaps.c:411 +msgid "Border style" +msgstr "" + +#: src/snaps.c:419 +msgid "Size" +msgstr "" + +#: src/snaps.c:427 +msgid "Desktop" +msgstr "" + +#: src/snaps.c:435 +msgid "Shaded state" +msgstr "" + +#: src/snaps.c:443 +msgid "Sticky state" +msgstr "" + +#: src/snaps.c:451 +msgid "Stacking layer" +msgstr "" + +#: src/snaps.c:470 +msgid "Restart application on login" +msgstr "" + +#: src/snaps.c:492 +msgid "Remember this window's group(s)" +msgstr "" + +#: src/snaps.c:505 +msgid "Cancel" +msgstr "" + +#: src/snaps.c:829 +msgid "Error saving snaps file\n" +msgstr "" + +#: src/sound.c:53 +msgid "Error finding sound file" +msgstr "" + +#: src/sound.c:55 +#, c-format +msgid "" +"Warning! Enlightenment was unable to load the\n" +"following sound file:\n" +"%s\n" +"Enlightenment will continue to operate, but you\n" +"may wish to check your configuration settings.\n" +msgstr "" + +#: src/sound.c:260 +msgid "Error initialising sound" +msgstr "" + +#: src/sound.c:264 +msgid "" +"Audio was enabled for Enlightenemnt but there was an error\n" +"communicating with the audio server (Esound). Audio will\n" +"now be disabled.\n" +msgstr "" + +#: src/theme.c:289 +msgid "Unknown\n" +msgstr "" + +#: src/theme.c:311 src/theme.c:322 +msgid "Theme file/directory does not exist\n" +msgstr "" + +#: src/theme.c:342 +#, c-format +msgid "" +"The theme:\n" +"%s\n" +"Is a badly formed theme package and is thus not being used.\n" +"Enlightenment has fallen back to using the DEFAULT theme.\n" +"\n" +"The reason this theme is bad is:\n" +"%s" +msgstr "" + +#: src/theme.c:350 +msgid "Bad Theme" +msgstr "" + +#: src/update.c:166 +msgid "Enlightenment's message of the day" +msgstr "" diff --git a/po/nl.po b/po/nl.po new file mode 100644 index 00000000..d6eadd8e --- /dev/null +++ b/po/nl.po @@ -0,0 +1,2093 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) YEAR Free Software Foundation, Inc. +# FIRST AUTHOR , YEAR. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: PACKAGE VERSION\n" +"POT-Creation-Date: 1999-11-28 00:18+0100\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language-Team: LANGUAGE \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=CHARSET\n" +"Content-Transfer-Encoding: ENCODING\n" + +#: src/actions.c:665 +#, c-format +msgid "" +"There was an error running the program:\n" +"%s\n" +"This program could not be executed.\n" +"This is because the file does not exist.\n" +msgstr "" + +#: src/actions.c:672 +#, c-format +msgid "" +"There was an error running the program:\n" +"%s\n" +"This program could not be executed.\n" +"This is most probably because this program is not in the\n" +"path for your shell which is %s. I suggest you read the manual\n" +"page for that shell and read up how to change or add to your\n" +"execution path.\n" +msgstr "" + +#: src/actions.c:694 +#, c-format +msgid "" +"There was an error running the program:\n" +"%s\n" +"This program could not be executed.\n" +"I am unsure as to why you could not do this. The file exists,\n" +"is a file, and you are allowed to execute it. I suggest you look\n" +"into this.\n" +msgstr "" + +#: src/actions.c:707 +#, c-format +msgid "" +"There was an error running the program:\n" +"%s\n" +"This program could not be executed.\n" +"This is because the file exists, is a file, but you are unable\n" +"to execute it because you do not have execute access to this file.\n" +msgstr "" + +#: src/actions.c:723 +#, c-format +msgid "" +"There was an error running the program:\n" +"%s\n" +"This program could not be executed.\n" +"This is because the file is infact a directory.\n" +msgstr "" + +#: src/actions.c:731 +#, c-format +msgid "" +"There was an error running the program:\n" +"%s\n" +"This program could not be executed.\n" +"This is because the file is not a regular file.\n" +msgstr "" + +#: src/actions.c:3102 +#, c-format +msgid "About Enlightenment %s" +msgstr "Over enlightenment %s" + +#: src/actions.c:3118 +msgid "Welcome to the " +msgstr "Welkom bij de " + +#: src/actions.c:3140 src/dialog.c:303 src/groups.c:664 src/settings.c:213 +#: src/settings.c:430 src/settings.c:595 src/settings.c:774 +#: src/settings.c:1000 src/settings.c:1100 src/settings.c:1199 +#: src/settings.c:1304 src/settings.c:1366 src/settings.c:1455 +#: src/settings.c:1846 src/settings.c:3220 src/settings.c:3555 +#: src/settings.c:3844 src/settings.c:3982 src/snaps.c:503 src/sound.c:261 +msgid "OK" +msgstr "OK" + +#: src/actions.c:3293 +msgid " Pick the group the window will belong to: \n" +msgstr "Kies de groep waar het venster bij moet behoren : \n" + +#: src/actions.c:3638 +msgid "" +"\n" +" There's no current group at the moment. \n" +" The current group is the last one you created, \n" +" and it exists until you create a new one or break \n" +" the latest one. \n" +"\n" +" Pick another group that the window will belong to here: \n" +"\n" +msgstr "" + +#: src/actions.c:3672 +msgid " Select the group to remove the window from. " +msgstr "" + +#: src/actions.c:3698 +msgid " Select the group to break " +msgstr "" + +#: src/actions.c:3725 +msgid "You have been warned about the dangers of Zoom mode\n" +msgstr "" + +#: src/actions.c:3728 +msgid "Warning !!!" +msgstr "" + +#: src/actions.c:3729 +msgid "" +"This feature is heavily reliant on a feature of your\n" +"X Server called the Vid Mode Extension. This feature exists\n" +"in XFree86 Servers, but is not a heavily used part of the\n" +"Server and thus isn't tested much.\n" +"\n" +"It is possible your X Server does not deal well with being\n" +"asked to switch modes quickly and it may hang, glitch,\n" +"display artifacts or perhaps simply refuse to work.\n" +"\n" +"This is a warning and will only be displayed this one time.\n" +"If your Server does not behave well then you will probably\n" +"have to avoid using this feature.\n" +msgstr "" + +#: src/alert.c:178 +msgid "Enlightenment Error" +msgstr "" + +#: src/alert.c:180 +msgid "Ignore" +msgstr "Negeren" + +#: src/alert.c:182 +msgid "Restart" +msgstr "Herstarten" + +#: src/alert.c:184 +msgid "Exit" +msgstr "Afsluiten" + +#: src/comms.c:2251 +#, c-format +msgid "" +"Received Unknown Client Message.\n" +"Client Name: %s\n" +"Client Version: %s\n" +"Message Contents:\n" +"\n" +"%s\n" +msgstr "" + +#: src/comms.c:2256 +msgid "E IPC Error" +msgstr "" + +#: src/config.c:238 src/config.c:475 src/config.c:553 src/config.c:822 +#: src/config.c:939 src/config.c:1187 src/config.c:1314 src/config.c:1418 +#: src/config.c:1632 src/config.c:1879 src/config.c:1947 src/config.c:2040 +#: src/config.c:2293 src/config.c:2508 src/config.c:2771 src/config.c:2864 +#: src/config.c:2941 src/config.c:3042 src/config.c:3374 +#, c-format +msgid "CONFIG: ignoring extra data in \"%s\"\n" +msgstr "" + +#: src/config.c:244 src/config.c:481 src/config.c:561 src/config.c:828 +#: src/config.c:945 src/config.c:1193 src/config.c:1320 src/config.c:1426 +#: src/config.c:1640 src/config.c:1885 src/config.c:1953 src/config.c:2048 +#: src/config.c:2299 src/config.c:2516 src/config.c:2777 src/config.c:3048 +#: src/config.c:3382 +#, c-format +msgid "CONFIG: missing required data in \"%s\"\n" +msgstr "" + +#: src/config.c:438 src/config.c:515 +#, c-format +msgid "" +"Warning: unable to determine what to do with\n" +"the following text in the middle of current Text definition:\n" +"%s\n" +"Will ignore and continue...\n" +msgstr "" + +#: src/config.c:445 +msgid "" +"Warning: Configuration appears to have ended before we were\n" +"Done loading a text block. Outcome is likely not good.\n" +msgstr "" + +#: src/config.c:522 +msgid "" +"Warning: Configuration appears to have ended before we were\n" +"Done loading a Slideout block. Outcome is likely not good.\n" +msgstr "" + +#: src/config.c:789 +#, c-format +msgid "" +"Warning: unable to determine what to do with\n" +"the following text in the middle of current Control definition:\n" +"%s\n" +"Will ignore and continue...\n" +msgstr "" + +#: src/config.c:796 +msgid "" +"Warning: Configuration appears to have ended before we were\n" +"Done loading a Control block. Outcome is likely not good.\n" +msgstr "" + +#: src/config.c:906 src/config.c:1146 +msgid "" +"Warning: Configuration appears to have ended before we were\n" +"Done loading a Menu block. Outcome is likely not good.\n" +msgstr "" + +#: src/config.c:1282 +msgid "" +"Warning: Configuration appears to have ended before we were\n" +"Done loading a BorderPart block. Outcome is likely not good.\n" +msgstr "" + +#: src/config.c:1371 +msgid "" +"Warning: Configuration appears to have ended before we were\n" +"Done loading a Main Border block. Outcome is likely not good.\n" +msgstr "" + +#: src/config.c:1588 +msgid "" +"Warning: Configuration appears to have ended before we were\n" +"Done loading a Button block. Outcome is likely not good.\n" +msgstr "" + +#: src/config.c:1844 src/config.c:1922 +msgid "" +"Warning: Configuration appears to have ended before we were\n" +"Done loading a Desktop block. Outcome is likely not good.\n" +msgstr "" + +#: src/config.c:1934 +msgid "Easter Egg! Iconboxes aren't implemented yet.\n" +msgstr "" + +#: src/config.c:1964 +msgid "" +"Warning: Configuration appears to have ended before we were\n" +"Done loading an Iconbox block. Outcome is likely not good.\n" +msgstr "" + +#: src/config.c:1999 +msgid "" +"Warning: Configuration appears to have ended before we were\n" +"Done loading an Sound block. Outcome is likely not good.\n" +msgstr "" + +#: src/config.c:2249 +#, c-format +msgid "" +"Warning: unable to determine what to do with\n" +"the following text in the middle of current ActionClass definition:\n" +"%s\n" +"Will ignore and continue...\n" +msgstr "" + +#: src/config.c:2263 +msgid "" +"Warning: Configuration appears to have ended before we were\n" +"Done loading an Action Class block. Outcome is likely not good.\n" +msgstr "" + +#: src/config.c:2461 +#, c-format +msgid "" +"Warning: unable to determine what to do with\n" +"the following text in the middle of current ImageClass definition:\n" +"%s\n" +"Will ignore and continue...\n" +msgstr "" + +#: src/config.c:2468 +msgid "" +"Warning: Configuration appears to have ended before we were\n" +"Done loading an ImageClass block. Outcome is likely not good.\n" +msgstr "" + +#: src/config.c:2708 +#, c-format +msgid "" +"Warning: unable to determine what to do with\n" +"the following text in the middle of current ColorModifier definition:\n" +"%s\n" +"Will ignore and continue...\n" +msgstr "" + +#: src/config.c:2732 +msgid "" +"Warning: Configuration appears to have ended before we were\n" +"Done loading an ColorModifier block.\n" +"Outcome is likely not good.\n" +msgstr "" + +#: src/config.c:2825 +#, c-format +msgid "" +"Warning: unable to determine what to do with\n" +"the following text in the middle of current ToolTip definition:\n" +"%s\n" +"Will ignore and continue...\n" +msgstr "" + +#: src/config.c:2832 +msgid "" +"Warning: Configuration appears to have ended before we were\n" +"Done loading an ToolTip block. Outcome is likely not good.\n" +msgstr "" + +#: src/config.c:2870 +msgid "" +"Warning: Configuration appears to have ended before we were\n" +"Done loading an FX block. Outcome is likely not good.\n" +msgstr "" + +#: src/config.c:2906 +#, c-format +msgid "" +"Warning: unable to determine what to do with\n" +"the following text in the middle of current Extras definition:\n" +"%s\n" +"Will ignore and continue...\n" +msgstr "" + +#: src/config.c:2914 +msgid "" +"Warning: Configuration appears to have ended before we were\n" +"Done loading an Extras block. Outcome is likely not good.\n" +msgstr "" + +#: src/config.c:3004 +#, c-format +msgid "" +"Warning: unable to determine what to do with\n" +"the following text in the middle of current Iconbox definition:\n" +"%s\n" +"Will ignore and continue...\n" +msgstr "" + +#: src/config.c:3012 +msgid "" +"Warning: Configuration appears to have ended before we were\n" +"Done loading an Iconbox block. Outcome is likely not good.\n" +msgstr "" + +#: src/config.c:3120 +#, c-format +msgid "" +"Warning: unable to determine what to do with\n" +"the following text in the middle of current WindowMatch definition:\n" +"%s\n" +"Will ignore and continue...\n" +msgstr "" + +#: src/config.c:3127 +msgid "" +"Warning: Configuration appears to have ended before we were\n" +"Done loading an WindowMatch block. Outcome is likely not good.\n" +msgstr "" + +#: src/config.c:3176 +#, c-format +msgid "" +"Help! Cannot find epp!\n" +"Enlightenment is looking for epp here:\n" +"%s\n" +"This is a FATAL ERROR.\n" +"This is probably due to either the program not existing or\n" +"it not being able to be executed by you.\n" +msgstr "" + +#: src/config.c:3183 +msgid "error" +msgstr "" + +#: src/config.c:3391 +msgid "Theme versioning ERROR" +msgstr "" + +#: src/config.c:3392 src/config.c:3427 +msgid "Restart with Defaults" +msgstr "" + +#: src/config.c:3394 src/config.c:3429 +msgid "Abort and Exit" +msgstr "" + +#: src/config.c:3395 +#, c-format +msgid "" +"ERROR:\n" +"\n" +"The configuration for the theme you are running is\n" +"incompatible. It's config revision is %i. It needs to\n" +"be marked as being revision %i\n" +"\n" +"Please contact the theme author or maintainer and\n" +"inform them that in order for their theme to function\n" +"with this version of Enlightenment, they have to\n" +"update it to the current settings, and then match\n" +"the revision number.\n" +"\n" +"If the theme revision is higher than Enlightenment's\n" +"it may be that you haven't upgraded Enlightenment for\n" +"a while and this theme takes advantages of new\n" +"features in Enlightenment in new versions.\n" +msgstr "" + +#: src/config.c:3426 +msgid "User Config Version ERROR" +msgstr "" + +#: src/config.c:3430 +#, c-format +msgid "" +"ERROR:\n" +"\n" +"The settings you are using are incompatible with\n" +"this version of Enlightenment.\n" +"It's revision is %i It needs to be revision %i to\n" +"be compatible.\n" +"\n" +"If you just upgraded to a new version of E\n" +"Restarting with Defaults will remove your current\n" +"user preferences and start cleanly with system\n" +"defaults. You can then modify your configuration to\n" +"your liking again safely.\n" +msgstr "" + +#: src/config.c:3642 +#, c-format +msgid "" +"WARNING!\n" +"There was an error writing the file:\n" +"%s\n" +"This may be due to lack of disk space, quota or\n" +"filesystem permissions.\n" +msgstr "" + +#: src/config.c:3654 +#, c-format +msgid "" +"Enlightenment has just experienced some major problems in\n" +"attempting to load the theme you specified or the default\n" +"configuration directory:\n" +"%s/config/\n" +"This will prevent Enlightenment from loading any configuration\n" +"files at all.\n" +"Since this couldn't be found Enlightenment is probably not\n" +"going to find any configuration files anywhere on your\n" +"system, and so it will have almost no configuration loaded\n" +"when it starts up. This is most likely the sign of a bad\n" +"installation of Enlightenment if this directory is missing.\n" +"The likely causes are that the package was improperly built,\n" +"if a binary package, or 'make install' hasn't been typed\n" +"or during the installation the directory above was not\n" +"able to be copied over for installation perhaps due to\n" +"permissions or lack of disk space. It also could be that the\n" +"config directory has been inadvertently deleted since\n" +"installation.\n" +"This is a serious problem and should be rectified immediately\n" +"Please contact your system administrator or package maintainer.\n" +"If you are the administrator of your own system please\n" +"consult the documentation that came with Enlightenment for\n" +"additional information.\n" +msgstr "" + +#: src/config.c:3722 +msgid "Enlightenment Starting..." +msgstr "Enlightenment start op" + +#: src/config.c:4134 +msgid "Recover system config?" +msgstr "" + +#: src/config.c:4135 +msgid "Yes, Attempt recovery" +msgstr "" + +#: src/config.c:4136 +msgid "Restart and try again" +msgstr "" + +#: src/config.c:4137 +msgid "Quit and give up" +msgstr "" + +#: src/config.c:4138 +msgid "" +"Enlightenment has encountered parsing errors in your autosaved\n" +"configuration.\n" +"\n" +"This may be due to filing system errors, Minor bugs or unforeseen\n" +"system shutdowns.\n" +"\n" +"Do you wish Enlightenment to recover its original system\n" +"configuration and try again?\n" +msgstr "" + +#: src/desktops.c:1108 +msgid "" +"Hold down the mouse button and drag\n" +"the mouse to be able to drag the desktop\n" +"back and forth.\n" +"Click right mouse button for a list of all\n" +"Desktops and their applications.\n" +"Click middle mouse button for a list of all\n" +"applications currently running.\n" +msgstr "" + +#: src/desktops.c:1124 +msgid "" +"This is the Root desktop.\n" +"You cannot drag the root desktop around.\n" +"Click right mouse button for a list of all\n" +"Desktops and their applications.\n" +"Click middle mouse button for a list of all\n" +"applications currently running.\n" +msgstr "" + +#: src/desktops.c:1148 +msgid "" +"Click here to raise this desktop\n" +"to the top.\n" +msgstr "" + +#: src/desktops.c:1162 +msgid "" +"Click here to lower this desktop\n" +"to the bottom.\n" +msgstr "" + +#: src/dialog.c:303 +msgid "Attention !!!" +msgstr "" + +#: src/fx.c:253 +msgid "Starting up Ripples FX..." +msgstr "" + +#: src/fx.c:254 +msgid "" +"\n" +"You have just started the Ripples Effect.\n" +"\n" +"If you look closely on your desktop background, and if it\n" +"doesn't have a solid colour (ie has a background texture or\n" +"image), you will see a pool of water at the bottom of your\n" +"screen that reflects everything above it and \"ripples\".\n" +"\n" +"To disable this effect just select this option again to toggle\n" +"it off.\n" +msgstr "" + +#: src/fx.c:388 src/fx.c:407 +msgid "Unable to display raindrops" +msgstr "" + +#: src/fx.c:389 +msgid "" +"\n" +"Enlightenment is unable to display raindrops on this\n" +"display because Shared memory is not available on this\n" +"X-Server.\n" +"\n" +"This may be due to Enlightenment being a remote client\n" +"running over the network, a MIT-SHM incapable X-server,\n" +"having run out of SHM ID's on the system or Shared\n" +"Memory support being turned off in Imlib\n" +"\n" +"You may correct this by either running `imlib_config'\n" +"or copying the system imrc (/usr/etc/imrc) to ~/.imrc\n" +"and editing it, enabling shared memory.\n" +"\n" +msgstr "" + +#: src/fx.c:408 +msgid "" +"\n" +"Enlightenment is unable to display raindrops on this\n" +"display because shared pixmaps are not available on this\n" +"X-Server.\n" +"\n" +"This may be due to either the X-Server not implimenting\n" +"shared pixmaps, or shared pixmaps being disabled in\n" +"Imlib's configuration.\n" +"\n" +"You may correct this by either running `imlib_config'\n" +"or copying the system imrc (/usr/etc/imrc) to ~/.imrc\n" +"and editing it, enabling shared pixmaps.\n" +"\n" +msgstr "" + +#: src/fx.c:424 +msgid "Starting up Raindrops FX..." +msgstr "" + +#: src/fx.c:425 +msgid "" +"\n" +"You have just started the Raindrops Effect.\n" +"\n" +"If you look closely on your desktop background, and if it\n" +"doesn't have a solid colour (ie has a background texture or\n" +"image), you will see \"raindrops\" hit the background and\n" +"make little splashes. This Effect can be VERY CPU intensive.\n" +"\n" +"To disable this effect just select this option again to toggle\n" +"it off.\n" +msgstr "" + +#: src/fx.c:699 +msgid "Starting up Waves FX..." +msgstr "" + +#: src/fx.c:700 +msgid "" +"\n" +"You have just started the Waves Effect.\n" +"\n" +"If you look closely on your desktop background, and if it\n" +"doesn't have a solid colour (ie has a background texture or\n" +"image), you will see a pool of water at the bottom of your\n" +"screen that reflects everything above it and \"waves\".\n" +"\n" +"To disable this effect just select this option again to toggle\n" +"it off.\n" +msgstr "" + +#: src/fx.c:870 +msgid "Starting up imagespinners FX..." +msgstr "" + +#: src/fx.c:871 +msgid "" +"\n" +"You have just started the imagespinners Effect.\n" +"\n" +"To disable this effect just select this option again to toggle\n" +"it off.\n" +msgstr "" + +#: src/groups.c:117 src/groups.c:148 +msgid "Cannot comply" +msgstr "" + +#: src/groups.c:118 src/groups.c:149 +msgid "" +"Iconboxes and Pagers are disallowed from being\n" +"members of a group. You cannot add these windows\n" +"to a group.\n" +msgstr "" + +#: src/groups.c:576 src/groups.c:584 src/groups.c:592 src/settings.c:3677 +msgid "Window Group Error" +msgstr "" + +#: src/groups.c:577 +msgid "" +"\n" +" This window currently does not belong to any groups. \n" +" You can only destroy groups or remove windows from groups \n" +" through a window that actually belongs to at least one group.\n" +"\n" +msgstr "" + +#: src/groups.c:585 +msgid "" +"\n" +" Currently, no groups exist or this window \n" +" already belongs to all existing groups. \n" +" You have to start other groups first. \n" +"\n" +msgstr "" + +#: src/groups.c:592 +msgid "" +"\n" +" Currently, no groups exist. You have to start a group first.\n" +"\n" +msgstr "" + +#: src/groups.c:607 +msgid "Window Group Selection" +msgstr "Venster Groep Selectie" + +#: src/groups.c:665 src/pager.c:1257 src/settings.c:215 src/settings.c:432 +#: src/settings.c:597 src/settings.c:776 src/settings.c:1002 +#: src/settings.c:1102 src/settings.c:1201 src/settings.c:1306 +#: src/settings.c:1368 src/settings.c:1457 src/settings.c:1848 +#: src/settings.c:3222 src/settings.c:3557 src/settings.c:3846 +#: src/settings.c:3984 +msgid "Close" +msgstr "" + +#: src/handlers.c:59 +#, c-format +msgid "" +"Enlightenment performed an Illegal Instruction.\n" +"\n" +"This most likely is due to you having installed an run a\n" +"binary of Enlightenment that was compiled for a make or model\n" +"of CPU not 100% identical or compatible with yours. Please\n" +"either obtain the correct package for your system, or\n" +"re-compile enlightenment and possibly any support libraries\n" +"that you got in binary format to run Enlightenment.\n" +msgstr "" + +#: src/handlers.c:87 +msgid "" +"Enlightenment caused a Floating Point Exception.\n" +"\n" +"This means that Enlightenment or support library routines it calls\n" +"have performed an illegal mathematical operation (most likely\n" +"dividing a number by zero). This is most likely a bug. It is\n" +"recommended to restart now. If you wish to help fix this please\n" +"compile Enlightenment with debugging symbols in and run\n" +"Enlightenment under gdb so you can backtrace for where it died and\n" +"send in a useful bug report with backtrace information and variable\n" +"dumps etc.\n" +msgstr "" + +#: src/handlers.c:112 +msgid "" +"Enlightenment caused Segment Violation (Segfault)\n" +"\n" +"This means that Enlightenment or support library routines it calls\n" +"have accessed areas of your system's memory that they are not\n" +"allowed access to. This is most likely a bug. It is recommended to\n" +"restart now. If you wish to help fix this please compile\n" +"Enlightenment with debugging symbols in and run Enlightenment\n" +"under gdb so you can backtrace for where it died and send in a\n" +"useful bug report with backtrace information and variable\n" +"dumps etc.\n" +msgstr "" + +#: src/handlers.c:196 +msgid "" +"Enlightenment caused Bus Error.\n" +"\n" +"It is suggested you check your hardware and OS installation.\n" +"It is highly unusual to cause Bus Errors on operational\n" +"hardware.\n" +msgstr "" + +#: src/handlers.c:215 +msgid "Another Window Manager is already running" +msgstr "" + +#: src/handlers.c:216 +msgid "OK (edit file)" +msgstr "" + +#: src/handlers.c:218 +msgid "Cancel (do NOT edit)" +msgstr "" + +#: src/handlers.c:219 +msgid "" +"Another Window Manager is already running.\n" +"\n" +"You will have to quit your current Window Manager first before\n" +"you can successfully run Enlightenment.\n" +"\n" +"If you haven't edited your user startup files, Enlightenment\n" +"can do that now for you, so when you log in again after\n" +"quitting your current window manager, you will have\n" +"Enlightenment running.\n" +"\n" +"If you want to do this, click OK, otherwise hit cancel\n" +"to abort this operation and edit the files by hand.\n" +"\n" +"WARNING WARNING WARNING WARNING!\n" +"\n" +"It is possible that this MAY not properly edit your files.\n" +msgstr "" + +#: src/handlers.c:236 src/session.c:1161 +msgid "Are you sure?" +msgstr "" + +#: src/handlers.c:237 +msgid "YES (edit file)" +msgstr "" + +#: src/handlers.c:239 +msgid "NO (do not edit)" +msgstr "" + +#: src/handlers.c:240 +msgid "" +"Are you absolutely sure you want to have Enlightenment\n" +"edit your startup files for you?\n" +"\n" +"If your startup files are highly customised this may not\n" +"work.\n" +"\n" +"Are you ABSOLUTELY sure?\n" +msgstr "" + +#: src/iconify.c:2322 +msgid "Iconbox Options" +msgstr "Icoonbox Opties" + +#: src/iconify.c:2326 +msgid "This Iconbox Settings..." +msgstr "Instellingen van deze Icoonbox" + +#: src/iconify.c:2328 +msgid "Close Iconbox" +msgstr "Sluit Icoonbox" + +#: src/iconify.c:2330 +msgid "Create New Iconbox" +msgstr "Maak een nieuwe Icoonbox" + +#: src/ipc.c:4643 +msgid "Enlightenment IPC Commands Help" +msgstr "" + +#: src/ipc.c:4647 src/ipc.c:4685 +msgid "" +"\n" +"commands currently available:\n" +msgstr "" + +#: src/ipc.c:4648 +msgid "" +"use \"help all\" for descriptions of each command\n" +"use \"help \" for an individual description\n" +"\n" +msgstr "" + +#: src/ipc.c:4686 +msgid "use \"help \" for an individual description\n" +msgstr "" + +#: src/ipc.c:4688 +msgid " : \n" +msgstr "" + +#: src/ipc.c:4796 +#, c-format +msgid "" +"Enlightenment Version : %s\n" +"code is current to : %s\n" +msgstr "" + +#. Set up all the text bits that belong on the GSOD +#: src/main.c:90 +msgid "Enlightenment Message Dialog" +msgstr "" + +#: src/main.c:91 src/memory.c:196 src/memory.c:276 src/memory.c:300 +#: src/memory.c:380 +msgid "Ignore this" +msgstr "" + +#: src/main.c:92 src/memory.c:197 src/memory.c:277 src/memory.c:301 +#: src/memory.c:381 src/memory.c:403 +msgid "Restart Enlightenment" +msgstr "" + +#: src/main.c:93 src/memory.c:198 src/memory.c:278 src/memory.c:302 +#: src/memory.c:382 src/memory.c:404 src/setup.c:295 src/setup.c:332 +#: src/setup.c:348 src/setup.c:416 +msgid "Quit Enlightenment" +msgstr "" + +#: src/main.c:180 +#, c-format +msgid "" +"Enlightenment Version: %s\n" +"Last updated on: %s\n" +msgstr "" + +#: src/memory.c:195 src/memory.c:299 +msgid "Cannot allocate enough memory" +msgstr "" + +#: src/memory.c:199 +#, c-format +msgid "" +"WARNING!!!!!!\n" +"\n" +"Allocation for %i bytes (%3.0f Kb or %3.1f Mb) did not succeed.\n" +"\n" +"Either this is a bug where ridiculous amounts of memory\n" +"are being allocated, or your system has run out of both\n" +"real and virtual memory and is unable to satisfy the request.\n" +"\n" +"If you have a low memory system it is suggested to either\n" +"purchase more memory, increase SWAP space, or reconfigure\n" +"Enlightenment to use less resources by turning features off.\n" +"\n" +"The malloc requested was at %s, line %d\n" +" " +msgstr "" + +#: src/memory.c:275 +msgid "Error in reallocating memory that hasn't been allocated" +msgstr "" + +#: src/memory.c:279 +#, c-format +msgid "" +"WARNING!!!!!!\n" +"\n" +"Re-allocation for %i bytes (%3.0f Kb or %f3.1 Mb)\n" +"for pointer %x is attempting to re-allocate memory for a\n" +"memory chunk that has not been allocated or has already been\n" +"freed.\n" +"\n" +"This is definitely a bug. Please report it.\n" +"\n" +"The error occured at %s, line %d.\n" +msgstr "" + +#: src/memory.c:303 +#, c-format +msgid "" +"WARNING!!!!!!\n" +"\n" +"Re-allocation for %i bytes (%3.0f Kb or %3.1f Mb) did not succeed.\n" +"\n" +"Either this is a bug where ridiculous amounts of memory\n" +"are being allocated, or your system has run out of both\n" +"real and virtual memory and is unable to satisfy the request.\n" +"\n" +"If you have a low memory system it is suggested to either\n" +"purchase more memory, increase SWAP space, or reconfigure\n" +"Enlightenment to use less resources by turning features off.\n" +"\n" +"The realloc requested was at %s, line %d\n" +" " +msgstr "" + +#: src/memory.c:379 +msgid "Error in freeing memory that hasn't been allocated" +msgstr "" + +#: src/memory.c:383 +#, c-format +msgid "" +"WARNING!!!!!!\n" +"\n" +"freeing for pointer %x is attempting to free memory for a\n" +"memory chunk that has not been allocated, or has already been\n" +"freed.\n" +"\n" +"This is definitely a bug. Please report it.\n" +"\n" +"The error occured at %s, line %d.\n" +msgstr "" + +#: src/memory.c:401 +msgid "Error in attempting to free NULL pointer" +msgstr "" + +#: src/memory.c:402 +msgid "Ignore this (safe)" +msgstr "" + +#: src/memory.c:405 +#, c-format +msgid "" +"WARNING!!!!!!\n" +"\n" +"Enlightenment attempted to free a NULL pointer.\n" +"\n" +"This is definitely a bug. Please report it.\n" +"It is safe to ignore this error and continue running Enlightenment.\n" +"\n" +"The pointer value was %x.\n" +"The error occured at %s, line %d.\n" +msgstr "" + +#: src/menus.c:1880 +msgid "Go to this Desktop" +msgstr "" + +#: src/menus.c:1893 +#, c-format +msgid "Desktop %i" +msgstr "" + +#: src/menus.c:1955 +msgid "Show/Hide this group" +msgstr "" + +#: src/menus.c:1957 +msgid "Iconify this group" +msgstr "" + +#: src/menus.c:1967 +#, c-format +msgid "Group %i" +msgstr "" + +#: src/misc.c:60 +#, c-format +msgid "" +"!!!!!!!! ERROR ERROR ERROR ERROR !!!!!!!!\n" +"\n" +"Enlightenment's utility executable cannot be found at:\n" +"\n" +"%s\n" +"This is a fatal error and Enlightenment will cease to run.\n" +"Please rectify this situation and ensure it is installed\n" +"correctly.\n" +"\n" +"The reason this could be missing is due to badly created\n" +"packages, someone manually deleting that program or perhaps\n" +"an error in installing Enlightenment.\n" +msgstr "" + +#: src/misc.c:76 +#, c-format +msgid "" +"!!!!!!!! ERROR ERROR ERROR ERROR !!!!!!!!\n" +"\n" +"Enlightenment's dox executable is not able to be executed:\n" +"\n" +"%s\n" +"This is a fatal error and Enlightenment will cease to run.\n" +"Please rectify this situation and ensure dox is installed\n" +"correctly.\n" +msgstr "" + +#: src/misc.c:97 +msgid "" +"!!!!!!!! ERROR ERROR ERROR ERROR !!!!!!!!\n" +"\n" +"Enlightenment's documentation is not present or correctly installed\n" +"\n" +"This is a fatal error and Enlightenment will cease to run.\n" +"Please rectify this situation and ensure it is installed\n" +"correctly.\n" +"\n" +"The reason this could be missing is due to badly created\n" +"packages, someone manually deleting those files or perhaps\n" +"an error in installing Enlightenment.\n" +msgstr "" + +#: src/misc.c:120 +msgid "" +"!!!!!!!! ERROR ERROR ERROR ERROR !!!!!!!!\n" +"\n" +"Enlightenment's DEFAULT installed theme is missing or inadequately\n" +"configured to be a useful DEFAULT theme.\n" +"\n" +"This is a fatal error and Enlightenment will cease to run.\n" +"Please rectify this situation and ensure it is installed\n" +"correctly. The DEFAULT theme Enlightenment comes with normally\n" +"is BrushedMetal-Tigert and this theme is adequate for a DEFAULT\n" +"theme.\n" +msgstr "" + +#: src/misc.c:420 +msgid "Theme does not contain a borders.cfg file\n" +msgstr "" + +#: src/misc.c:426 +msgid "Theme does not contain a buttons.cfg file\n" +msgstr "" + +#: src/misc.c:432 +msgid "Theme does not contain a colormodifiers.cfg file\n" +msgstr "" + +#: src/misc.c:438 +msgid "Theme does not contain a cursors.cfg file\n" +msgstr "" + +#: src/misc.c:444 +msgid "Theme does not contain a desktops.cfg file\n" +msgstr "" + +#: src/misc.c:450 +msgid "Theme does not contain a imageclasses.cfg file\n" +msgstr "" + +#: src/misc.c:456 +msgid "Theme does not contain a init.cfg file\n" +msgstr "" + +#: src/misc.c:462 +msgid "Theme does not contain a menustyles.cfg file\n" +msgstr "" + +#: src/misc.c:468 +msgid "Theme does not contain a slideouts.cfg file\n" +msgstr "" + +#: src/misc.c:475 +msgid "Theme does not contain a sound.cfg file\n" +msgstr "" + +#: src/misc.c:482 +msgid "Theme does not contain a tooltips.cfg file\n" +msgstr "" + +#: src/misc.c:488 +msgid "Theme does not contain a windowmatches.cfg file\n" +msgstr "" + +#: src/misc.c:494 +msgid "Theme contains a menus.cfg file\n" +msgstr "" + +#: src/misc.c:500 +msgid "Theme contains a control.cfg file\n" +msgstr "" + +#: src/misc.c:506 +msgid "Theme contains a keybindings.cfg file\n" +msgstr "" + +#: src/modules.c:138 +msgid "Module is Already Loaded.\n" +msgstr "" + +#: src/modules.c:140 +msgid "Module Failed During Load.\n" +msgstr "" + +#: src/modules.c:142 +msgid "Module Unload Failed.\n" +msgstr "" + +#: src/modules.c:144 +msgid "Module is not Loaded.\n" +msgstr "" + +#: src/modules.c:146 +msgid "Unknown Module Error.\n" +msgstr "" + +#: src/pager.c:511 src/pager.c:527 src/pager.c:542 +msgid "Warning!" +msgstr "" + +#: src/pager.c:512 +msgid "" +"\n" +"You seem to have an X Server capable of Shared Memory\n" +"but it is incapable of doing ZPixmap Shared pixmaps\n" +"(The server does not claim to be able to do them).\n" +"\n" +"The pager in enlightenment will run slowly in snapshot\n" +"mode if you continue to use that mode of the pager\n" +"under these conditions.\n" +"\n" +"It is suggested you change the settings on your pager to\n" +"disable snapshots to improve performance.\n" +"\n" +msgstr "" + +#: src/pager.c:528 +msgid "" +"\n" +"Your X Server is capable of doing Shared Memory but you do\n" +"not have Shared Pixmaps enabled in your Imlib configuration.\n" +"\n" +"Please enable Shared Pixmaps in your Imlib configuration\n" +"then restart enlightenment to gain better performance for\n" +"the pagers when snapshot mode is enabled.\n" +"\n" +msgstr "" + +#: src/pager.c:543 +msgid "" +"\n" +"You seem to be running Enlightenment over a network Connection\n" +"or on an X Server that does not support Shared Memory, or you\n" +"have disabled MIT-SHM Shared memory in your Imlib configuration.\n" +"This means the Enlightenment Pager will perform slowly and use\n" +"more system resources than it would when Shared Memory is\n" +"available.\n" +"\n" +"To improve performance please either enable MIT-SHM Shared Memory\n" +"in your Imlib config, if you disabled it, or disable Pager\n" +"snapshots.\n" +"\n" +msgstr "" + +#: src/pager.c:1249 +msgid "Window Options" +msgstr "" + +#: src/pager.c:1254 +msgid "Iconify" +msgstr "" + +#: src/pager.c:1260 +msgid "Annihilate" +msgstr "" + +#: src/pager.c:1263 +msgid "Stick / Unstick" +msgstr "" + +#: src/pager.c:1275 +msgid "Desktop Options" +msgstr "" + +#: src/pager.c:1279 +msgid "Pager Settings..." +msgstr "" + +#: src/pager.c:1282 +msgid "Snapshotting On" +msgstr "" + +#: src/pager.c:1285 +msgid "Snapshotting Off" +msgstr "" + +#: src/pager.c:1290 +msgid "High Quality On" +msgstr "" + +#: src/pager.c:1293 +msgid "High Quality Off" +msgstr "" + +#: src/session.c:242 +msgid "" +"There was an error writing the clients session save file.\n" +"You may have run out of disk space, not have permission\n" +"to write to your filing system or other similar problems.\n" +msgstr "" + +#: src/session.c:435 +msgid "" +"There was an error saving your autosave data - filing\n" +"system problems.\n" +msgstr "" + +#. Less of the hope.... E survives +#: src/session.c:1019 +msgid "" +"ERROR!\n" +"\n" +"Lost the Session Manager that was there?\n" +"Here here session manager... come here... want a bone?\n" +"Oh come now! Stop sulking! Bugger. Oh well. Will continue without\n" +"a session manager.\n" +"\n" +"I'll survive somehow.\n" +"\n" +"\n" +"... I hope.\n" +msgstr "" + +#: src/session.c:1163 +msgid "" +"\n" +"\n" +" Are you sure you wish to log out ? \n" +"\n" +"\n" +msgstr "" + +#: src/session.c:1169 +msgid " Yes, Log Out " +msgstr "" + +#: src/session.c:1170 +msgid " No " +msgstr "" + +#: src/settings.c:81 src/settings.c:192 +msgid "Pager scanning speed:" +msgstr "" + +#: src/settings.c:82 src/settings.c:193 +msgid "lines per second" +msgstr "" + +#: src/settings.c:117 +msgid "Pager Settings" +msgstr "" + +#: src/settings.c:143 +msgid "Enable pager display" +msgstr "" + +#: src/settings.c:151 +msgid "Make miniature snapshots of the screen" +msgstr "" + +#: src/settings.c:159 +msgid "Smooth high quality snapshots in snapshot mode" +msgstr "" + +#: src/settings.c:167 +msgid "Zoom in on pager windows when mouse is over them" +msgstr "" + +#: src/settings.c:175 +msgid "Pop up window title when mouse is over the window" +msgstr "" + +#: src/settings.c:183 +msgid "Continuously scan screen to update pager" +msgstr "" + +#: src/settings.c:214 src/settings.c:431 src/settings.c:596 src/settings.c:775 +#: src/settings.c:1001 src/settings.c:1101 src/settings.c:1200 +#: src/settings.c:1305 src/settings.c:1367 src/settings.c:1456 +#: src/settings.c:1847 src/settings.c:3221 src/settings.c:3556 +#: src/settings.c:3845 src/settings.c:3983 src/snaps.c:504 +msgid "Apply" +msgstr "" + +#: src/settings.c:285 +msgid "Focus Settings" +msgstr "" + +#: src/settings.c:311 +msgid "Focus follows pointer" +msgstr "" + +#: src/settings.c:319 +msgid "Focus follows pointer sloppily" +msgstr "" + +#: src/settings.c:327 +msgid "Focus follows mouse clicks" +msgstr "" + +#: src/settings.c:342 +msgid "Clicking in a window always raises it" +msgstr "" + +#: src/settings.c:356 +msgid "All new windows first get the focus" +msgstr "" + +#: src/settings.c:364 +msgid "Only new dialog windows get the focus" +msgstr "" + +#: src/settings.c:372 +msgid "Only new dialogs whose owner is focused get the focus" +msgstr "" + +#: src/settings.c:380 +msgid "Raise windows on focus switch" +msgstr "" + +#: src/settings.c:388 +msgid "Send mouse pointer to window on focus switch" +msgstr "" + +#: src/settings.c:403 +msgid "Display and use focuslist" +msgstr "" + +#: src/settings.c:411 +msgid "Raise windows after focus switch" +msgstr "" + +#: src/settings.c:419 +msgid "Send mouse pointer to window after focus switch" +msgstr "" + +#: src/settings.c:474 +msgid "Move & Resize Settings" +msgstr "" + +#: src/settings.c:500 +msgid "Move Methods:" +msgstr "" + +#: src/settings.c:506 +msgid "Resize Methods:" +msgstr "" + +#: src/settings.c:511 src/settings.c:518 src/settings.c:1601 +msgid "Opaque" +msgstr "" + +#: src/settings.c:525 src/settings.c:532 src/settings.c:1616 +msgid "Technical" +msgstr "" + +#: src/settings.c:539 src/settings.c:546 src/settings.c:1631 +msgid "Box" +msgstr "" + +#: src/settings.c:553 src/settings.c:560 src/settings.c:1646 +msgid "Shaded" +msgstr "" + +#: src/settings.c:567 src/settings.c:574 src/settings.c:1661 +msgid "Semi-Solid" +msgstr "" + +#: src/settings.c:582 +msgid "Translucent" +msgstr "" + +#: src/settings.c:686 src/settings.c:746 +#, c-format +msgid "%i Desktops" +msgstr "" + +#: src/settings.c:688 src/settings.c:748 +#, c-format +msgid "%i Desktop" +msgstr "" + +#: src/settings.c:713 +msgid "Multiple Desktop Settings" +msgstr "" + +#: src/settings.c:739 +msgid "Number of virtual desktops:\n" +msgstr "" + +#: src/settings.c:863 src/settings.c:928 +#, c-format +msgid "" +"%i x %i\n" +"Screens in size" +msgstr "" + +#: src/settings.c:866 src/settings.c:931 +msgid "" +"1\n" +"Screen in size" +msgstr "" + +#: src/settings.c:896 +msgid "Virtual Deskop Settings" +msgstr "" + +#: src/settings.c:922 +msgid "Virtual Desktop size:\n" +msgstr "" + +#: src/settings.c:976 +msgid "Enable edge flip" +msgstr "" + +#: src/settings.c:983 +msgid "Resistance at edge of screen:\n" +msgstr "" + +#: src/settings.c:1048 +msgid "Window Placement Settings" +msgstr "" + +#: src/settings.c:1074 +msgid "Dialog windows appear together with their owner" +msgstr "" + +#: src/settings.c:1082 +msgid "Switch to desktop where dialog appears" +msgstr "" + +#: src/settings.c:1090 +msgid "Place windows manually" +msgstr "" + +#: src/settings.c:1148 +msgid "Autoraise Settings" +msgstr "" + +#: src/settings.c:1174 +msgid "Raise Windows Automatically" +msgstr "" + +#: src/settings.c:1182 +msgid "Autoraise delay:" +msgstr "" + +#: src/settings.c:1245 +msgid "Tooltip Settings" +msgstr "" + +#: src/settings.c:1271 +msgid "Display Tooltips" +msgstr "" + +#: src/settings.c:1279 +msgid "Display Root Window Tips" +msgstr "" + +#: src/settings.c:1287 +msgid "Tooltip Delay:\n" +msgstr "" + +#: src/settings.c:1347 +msgid "KDE Settings" +msgstr "" + +#: src/settings.c:1356 +msgid "Enable KDE Support" +msgstr "" + +#: src/settings.c:1410 +msgid "Audio Settings" +msgstr "" + +#: src/settings.c:1437 +msgid "Enable sounds" +msgstr "" + +#: src/settings.c:1445 +msgid "" +"Audio not available since EsounD was not\n" +"present at the time of compilation." +msgstr "" + +#: src/settings.c:1553 +msgid "Special FX Settings" +msgstr "" + +#: src/settings.c:1588 +msgid "Slide Method:" +msgstr "" + +#: src/settings.c:1594 +msgid "Slide desktops around when changing" +msgstr "" + +#: src/settings.c:1609 +msgid "Slide windows around when cleaning up" +msgstr "" + +#: src/settings.c:1624 +msgid "Slide windows in when they appear" +msgstr "" + +#: src/settings.c:1639 +msgid "Animated display of menus" +msgstr "" + +#: src/settings.c:1654 +msgid "Always pop up menus on screen" +msgstr "" + +#: src/settings.c:1670 +msgid "Use saveunders to reduce window exposures" +msgstr "" + +#: src/settings.c:1678 +msgid "Animate shading and unshading of windows" +msgstr "" + +#: src/settings.c:1692 +msgid "Display desktop dragbar" +msgstr "" + +#: src/settings.c:1701 +msgid "Drag bar position:" +msgstr "" + +#: src/settings.c:1712 +msgid "Top" +msgstr "" + +#: src/settings.c:1719 +msgid "Bottom" +msgstr "" + +#: src/settings.c:1730 +msgid "Left" +msgstr "" + +#: src/settings.c:1737 +msgid "Right" +msgstr "" + +#: src/settings.c:1756 +msgid "Desktop Slide speed: (slow)\n" +msgstr "" + +#: src/settings.c:1772 src/settings.c:1794 src/settings.c:1816 +#: src/settings.c:1838 +msgid "(fast)\n" +msgstr "" + +#: src/settings.c:1778 +msgid "Cleanup Slide speed: (slow)\n" +msgstr "" + +#: src/settings.c:1800 +msgid "Appear Slide speed: (slow)\n" +msgstr "" + +#: src/settings.c:1822 +msgid "Window Shading speed: (slow)\n" +msgstr "" + +#: src/settings.c:2101 src/settings.c:2220 src/settings.c:2466 +#: src/settings.c:2589 src/settings.c:3206 +msgid "-NONE-" +msgstr "" + +#: src/settings.c:2102 src/settings.c:2221 src/settings.c:2467 +#: src/settings.c:2590 src/settings.c:3207 +#, c-format +msgid "" +"Background definition information:\n" +"Name: %s\n" +"File: %s\n" +msgstr "" + +#: src/settings.c:2349 src/settings.c:2352 +msgid "" +"No\n" +"Background" +msgstr "" + +#: src/settings.c:2531 src/settings.c:3097 +#, c-format +msgid "Unused backgrounds freed after %2i:%02i:%02i" +msgstr "" + +#: src/settings.c:2858 +msgid "Desktop Background Settings" +msgstr "" + +#: src/settings.c:2884 +msgid "BG Color\n" +msgstr "" + +#: src/settings.c:2895 +msgid "Move to Front\n" +msgstr "" + +#: src/settings.c:2902 +msgid "Duplicate\n" +msgstr "" + +#: src/settings.c:2908 +msgid "Unlist\n" +msgstr "" + +#: src/settings.c:2914 +msgid "Delete File\n" +msgstr "" + +#: src/settings.c:2923 +msgid "Red:\n" +msgstr "" + +#: src/settings.c:2937 +msgid "Use background image" +msgstr "" + +#: src/settings.c:2945 +msgid "Green:\n" +msgstr "" + +#: src/settings.c:2959 +msgid "Keep aspect on scale" +msgstr "" + +#: src/settings.c:2967 +msgid "Blue:\n" +msgstr "" + +#: src/settings.c:2981 +msgid "Tile image across background" +msgstr "" + +#: src/settings.c:2997 +msgid "" +"Background\n" +"Image\n" +"Scaling\n" +"and\n" +"Alignment\n" +msgstr "" + +#: src/settings.c:3081 +msgid "Use dithering in Hi-Color" +msgstr "" + +#: src/settings.c:3088 +msgid "Background overrides theme" +msgstr "" + +#: src/settings.c:3144 +msgid "Prescan BG's" +msgstr "" + +#: src/settings.c:3154 +msgid "Sort by File" +msgstr "" + +#: src/settings.c:3160 +msgid "Sort by Attr." +msgstr "" + +#: src/settings.c:3166 +msgid "Sort by Image" +msgstr "" + +#: src/settings.c:3319 +msgid "Iconbox Settings" +msgstr "" + +#: src/settings.c:3345 +msgid "Transparent background" +msgstr "" + +#: src/settings.c:3352 +msgid "Hide border around inner Iconbox" +msgstr "" + +#: src/settings.c:3359 +msgid "Show icon names" +msgstr "" + +#: src/settings.c:3366 +msgid "Draw base image behind Icons" +msgstr "" + +#: src/settings.c:3373 +msgid "Hide scrollbar when not needed" +msgstr "" + +#: src/settings.c:3380 +msgid "Automatically resize to fit Icons" +msgstr "" + +#: src/settings.c:3387 +msgid "Animate when iconifying to this Iconbox" +msgstr "" + +#: src/settings.c:3395 +msgid "Alignment of anchoring when automatically resizing:" +msgstr "" + +#: src/settings.c:3415 +msgid "Icon image display policy (if one operation fails, try the next):" +msgstr "" + +#: src/settings.c:3420 +msgid "Snapshot Windows, Use application icon, Use Enlightenment Icon" +msgstr "" + +#: src/settings.c:3427 +msgid "Use application icon, Use Enlightenment Icon, Snapshot Window" +msgstr "" + +#: src/settings.c:3434 +msgid "Use Enlightenment Icon, Snapshot Window" +msgstr "" + +#: src/settings.c:3448 +msgid "Icon size" +msgstr "" + +#: src/settings.c:3471 +msgid "Orientation:" +msgstr "" + +#: src/settings.c:3477 +msgid "Scrollbar side:" +msgstr "" + +#: src/settings.c:3483 +msgid "Scrollbar arrows:" +msgstr "" + +#: src/settings.c:3488 +msgid "Horizontal" +msgstr "" + +#: src/settings.c:3495 +msgid "Left / Top" +msgstr "" + +#: src/settings.c:3502 +msgid "Start" +msgstr "" + +#: src/settings.c:3509 +msgid "Vertical" +msgstr "" + +#: src/settings.c:3517 +msgid "Right / Bottom" +msgstr "" + +#: src/settings.c:3525 +msgid "Both ends" +msgstr "" + +#: src/settings.c:3535 +msgid "End" +msgstr "" + +#: src/settings.c:3545 +msgid "None" +msgstr "" + +#: src/settings.c:3678 +msgid "" +"\n" +" This window currently does not belong to any groups. \n" +"\n" +msgstr "" + +#: src/settings.c:3700 +msgid "Window Group Settings" +msgstr "" + +#: src/settings.c:3727 +msgid " Pick the group to configure: " +msgstr "" + +#: src/settings.c:3763 +msgid "" +" The following actions are \n" +" applied to all group members: " +msgstr "" + +#: src/settings.c:3771 src/settings.c:3916 +msgid "Changing Border Style" +msgstr "" + +#: src/settings.c:3780 src/settings.c:3924 +msgid "Iconifying" +msgstr "" + +#: src/settings.c:3789 src/settings.c:3932 +msgid "Killing" +msgstr "" + +#: src/settings.c:3798 src/settings.c:3940 +msgid "Moving" +msgstr "" + +#: src/settings.c:3807 src/settings.c:3948 +msgid "Raising/Lowering" +msgstr "" + +#: src/settings.c:3816 src/settings.c:3956 +msgid "Sticking" +msgstr "" + +#: src/settings.c:3825 src/settings.c:3964 +msgid "Shading" +msgstr "" + +#: src/settings.c:3834 src/settings.c:3972 +msgid "Mirror Shade/Iconify/Stick" +msgstr "" + +#: src/settings.c:3890 +msgid "Default Group Control Settings" +msgstr "" + +#: src/setup.c:221 +msgid "" +"Enlightenment cannot connect to the display nominated by\n" +"your shell's DISPLAY environment variable. You may set this\n" +"variable to indicate which display name Enlightenment is to\n" +"connect to. It may be that you do not have an Xserver already\n" +"running to serve that Display connection, or that you do not\n" +"have permission to connect to that display. Please make sure\n" +"all is correct before trying again. Run an Xserver by running\n" +"xdm or startx first, or contact your local system\n" +"administrator, or Xserver vendor, or read the X, xdm and\n" +"startx manual pages before proceeding.\n" +msgstr "" + +#: src/setup.c:292 src/setup.c:345 +msgid "X server setup error" +msgstr "" + +#: src/setup.c:296 +msgid "" +"FATAL ERROR:\n" +"\n" +"This Xserver does not support the Shape extension.\n" +"This is required for Enlightenment to run.\n" +"\n" +"Your Xserver probably is too old or mis-configured.\n" +"\n" +"Exiting.\n" +msgstr "" + +#: src/setup.c:329 +msgid "Imlib initialisation error" +msgstr "" + +#: src/setup.c:333 +msgid "" +"FATAL ERROR:\n" +"\n" +"Enlightenment is unable to initialise Imlib.\n" +"\n" +"This is unusual. Unable to contiune.\n" +"Exiting.\n" +msgstr "" + +#: src/setup.c:349 +msgid "" +"FATAL ERROR:\n" +"\n" +"Enlightenment is unable to initialise Fnlib.\n" +"\n" +"This is unusual. Unable to contiune.\n" +"Exiting.\n" +msgstr "" + +#: src/setup.c:413 +msgid "X server version error" +msgstr "" + +#: src/setup.c:414 +msgid "Ignore this error" +msgstr "" + +#: src/setup.c:417 +#, c-format +msgid "" +"WARNING:\n" +"This is not an X11 Xserver. It infact talks the X%i protocol.\n" +"This may mean Enlightenment will either not function, or\n" +"function incorrectly. If it is later than X11, then your\n" +"server is one the author of Enlightenment neither have\n" +"access to, nor have heard of.\n" +msgstr "" + +#: src/setup.c:631 +#, c-format +msgid "" +"The directory %s is apparently not a directory\n" +"This is a fatal condition.\n" +"Please remove this file\n" +msgstr "" + +#: src/setup.c:639 +#, c-format +msgid "" +"Do not have execute access to %s\n" +"This is a fatal condition.\n" +"Please check the ownership and permissions of this\n" +"directory and take steps to rectify this.\n" +msgstr "" + +#: src/setup.c:648 +#, c-format +msgid "" +"Do not have read access to %s\n" +"This is a fatal condition.\n" +"Please check the ownership and permissions of this\n" +"directory and take steps to rectify this.\n" +msgstr "" + +#: src/setup.c:657 +#, c-format +msgid "" +"Do not have write access to %s\n" +"This is a fatal condition.\n" +"Please check the ownership and permissions of this\n" +"directory and take steps to rectify this.\n" +msgstr "" + +#: src/snaps.c:403 +msgid "Location" +msgstr "" + +#: src/snaps.c:411 +msgid "Border style" +msgstr "" + +#: src/snaps.c:419 +msgid "Size" +msgstr "" + +#: src/snaps.c:427 +msgid "Desktop" +msgstr "" + +#: src/snaps.c:435 +msgid "Shaded state" +msgstr "" + +#: src/snaps.c:443 +msgid "Sticky state" +msgstr "" + +#: src/snaps.c:451 +msgid "Stacking layer" +msgstr "" + +#: src/snaps.c:470 +msgid "Restart application on login" +msgstr "" + +#: src/snaps.c:492 +msgid "Remember this window's group(s)" +msgstr "" + +#: src/snaps.c:505 +msgid "Cancel" +msgstr "" + +#: src/snaps.c:829 +msgid "Error saving snaps file\n" +msgstr "" + +#: src/sound.c:53 +msgid "Error finding sound file" +msgstr "" + +#: src/sound.c:55 +#, c-format +msgid "" +"Warning! Enlightenment was unable to load the\n" +"following sound file:\n" +"%s\n" +"Enlightenment will continue to operate, but you\n" +"may wish to check your configuration settings.\n" +msgstr "" + +#: src/sound.c:260 +msgid "Error initialising sound" +msgstr "" + +#: src/sound.c:264 +msgid "" +"Audio was enabled for Enlightenemnt but there was an error\n" +"communicating with the audio server (Esound). Audio will\n" +"now be disabled.\n" +msgstr "" + +#: src/theme.c:289 +msgid "Unknown\n" +msgstr "" + +#: src/theme.c:311 src/theme.c:322 +msgid "Theme file/directory does not exist\n" +msgstr "" + +#: src/theme.c:342 +#, c-format +msgid "" +"The theme:\n" +"%s\n" +"Is a badly formed theme package and is thus not being used.\n" +"Enlightenment has fallen back to using the DEFAULT theme.\n" +"\n" +"The reason this theme is bad is:\n" +"%s" +msgstr "" + +#: src/theme.c:350 +msgid "Bad Theme" +msgstr "" + +#: src/update.c:166 +msgid "Enlightenment's message of the day" +msgstr "" + +#~ msgid "iconbox %s" +#~ msgstr "Icoonbox %s"