diff -Nru klavaro-1.9.9/aclocal.m4 klavaro-3.00/aclocal.m4 --- klavaro-1.9.9/aclocal.m4 2013-08-15 13:46:53.000000000 +0000 +++ klavaro-3.00/aclocal.m4 2014-01-21 23:25:34.000000000 +0000 @@ -1,4 +1,4 @@ -# generated automatically by aclocal 1.13.3 -*- Autoconf -*- +# generated automatically by aclocal 1.14.1 -*- Autoconf -*- # Copyright (C) 1996-2013 Free Software Foundation, Inc. @@ -20,677 +20,6 @@ If you have problems, you may need to regenerate the build system entirely. To do so, use the procedure documented by the package, typically 'autoreconf'.])]) -# gettext.m4 serial 66 (gettext-0.18.2) -dnl Copyright (C) 1995-2013 Free Software Foundation, Inc. -dnl This file is free software; the Free Software Foundation -dnl gives unlimited permission to copy and/or distribute it, -dnl with or without modifications, as long as this notice is preserved. -dnl -dnl This file can can be used in projects which are not available under -dnl the GNU General Public License or the GNU Library General Public -dnl License but which still want to provide support for the GNU gettext -dnl functionality. -dnl Please note that the actual code of the GNU gettext library is covered -dnl by the GNU Library General Public License, and the rest of the GNU -dnl gettext package package is covered by the GNU General Public License. -dnl They are *not* in the public domain. - -dnl Authors: -dnl Ulrich Drepper , 1995-2000. -dnl Bruno Haible , 2000-2006, 2008-2010. - -dnl Macro to add for using GNU gettext. - -dnl Usage: AM_GNU_GETTEXT([INTLSYMBOL], [NEEDSYMBOL], [INTLDIR]). -dnl INTLSYMBOL can be one of 'external', 'no-libtool', 'use-libtool'. The -dnl default (if it is not specified or empty) is 'no-libtool'. -dnl INTLSYMBOL should be 'external' for packages with no intl directory, -dnl and 'no-libtool' or 'use-libtool' for packages with an intl directory. -dnl If INTLSYMBOL is 'use-libtool', then a libtool library -dnl $(top_builddir)/intl/libintl.la will be created (shared and/or static, -dnl depending on --{enable,disable}-{shared,static} and on the presence of -dnl AM-DISABLE-SHARED). If INTLSYMBOL is 'no-libtool', a static library -dnl $(top_builddir)/intl/libintl.a will be created. -dnl If NEEDSYMBOL is specified and is 'need-ngettext', then GNU gettext -dnl implementations (in libc or libintl) without the ngettext() function -dnl will be ignored. If NEEDSYMBOL is specified and is -dnl 'need-formatstring-macros', then GNU gettext implementations that don't -dnl support the ISO C 99 formatstring macros will be ignored. -dnl INTLDIR is used to find the intl libraries. If empty, -dnl the value '$(top_builddir)/intl/' is used. -dnl -dnl The result of the configuration is one of three cases: -dnl 1) GNU gettext, as included in the intl subdirectory, will be compiled -dnl and used. -dnl Catalog format: GNU --> install in $(datadir) -dnl Catalog extension: .mo after installation, .gmo in source tree -dnl 2) GNU gettext has been found in the system's C library. -dnl Catalog format: GNU --> install in $(datadir) -dnl Catalog extension: .mo after installation, .gmo in source tree -dnl 3) No internationalization, always use English msgid. -dnl Catalog format: none -dnl Catalog extension: none -dnl If INTLSYMBOL is 'external', only cases 2 and 3 can occur. -dnl The use of .gmo is historical (it was needed to avoid overwriting the -dnl GNU format catalogs when building on a platform with an X/Open gettext), -dnl but we keep it in order not to force irrelevant filename changes on the -dnl maintainers. -dnl -AC_DEFUN([AM_GNU_GETTEXT], -[ - dnl Argument checking. - ifelse([$1], [], , [ifelse([$1], [external], , [ifelse([$1], [no-libtool], , [ifelse([$1], [use-libtool], , - [errprint([ERROR: invalid first argument to AM_GNU_GETTEXT -])])])])]) - ifelse(ifelse([$1], [], [old])[]ifelse([$1], [no-libtool], [old]), [old], - [AC_DIAGNOSE([obsolete], [Use of AM_GNU_GETTEXT without [external] argument is deprecated.])]) - ifelse([$2], [], , [ifelse([$2], [need-ngettext], , [ifelse([$2], [need-formatstring-macros], , - [errprint([ERROR: invalid second argument to AM_GNU_GETTEXT -])])])]) - define([gt_included_intl], - ifelse([$1], [external], - ifdef([AM_GNU_GETTEXT_][INTL_SUBDIR], [yes], [no]), - [yes])) - define([gt_libtool_suffix_prefix], ifelse([$1], [use-libtool], [l], [])) - gt_NEEDS_INIT - AM_GNU_GETTEXT_NEED([$2]) - - AC_REQUIRE([AM_PO_SUBDIRS])dnl - ifelse(gt_included_intl, yes, [ - AC_REQUIRE([AM_INTL_SUBDIR])dnl - ]) - - dnl Prerequisites of AC_LIB_LINKFLAGS_BODY. - AC_REQUIRE([AC_LIB_PREPARE_PREFIX]) - AC_REQUIRE([AC_LIB_RPATH]) - - dnl Sometimes libintl requires libiconv, so first search for libiconv. - dnl Ideally we would do this search only after the - dnl if test "$USE_NLS" = "yes"; then - dnl if { eval "gt_val=\$$gt_func_gnugettext_libc"; test "$gt_val" != "yes"; }; then - dnl tests. But if configure.in invokes AM_ICONV after AM_GNU_GETTEXT - dnl the configure script would need to contain the same shell code - dnl again, outside any 'if'. There are two solutions: - dnl - Invoke AM_ICONV_LINKFLAGS_BODY here, outside any 'if'. - dnl - Control the expansions in more detail using AC_PROVIDE_IFELSE. - dnl Since AC_PROVIDE_IFELSE is only in autoconf >= 2.52 and not - dnl documented, we avoid it. - ifelse(gt_included_intl, yes, , [ - AC_REQUIRE([AM_ICONV_LINKFLAGS_BODY]) - ]) - - dnl Sometimes, on Mac OS X, libintl requires linking with CoreFoundation. - gt_INTL_MACOSX - - dnl Set USE_NLS. - AC_REQUIRE([AM_NLS]) - - ifelse(gt_included_intl, yes, [ - BUILD_INCLUDED_LIBINTL=no - USE_INCLUDED_LIBINTL=no - ]) - LIBINTL= - LTLIBINTL= - POSUB= - - dnl Add a version number to the cache macros. - case " $gt_needs " in - *" need-formatstring-macros "*) gt_api_version=3 ;; - *" need-ngettext "*) gt_api_version=2 ;; - *) gt_api_version=1 ;; - esac - gt_func_gnugettext_libc="gt_cv_func_gnugettext${gt_api_version}_libc" - gt_func_gnugettext_libintl="gt_cv_func_gnugettext${gt_api_version}_libintl" - - dnl If we use NLS figure out what method - if test "$USE_NLS" = "yes"; then - gt_use_preinstalled_gnugettext=no - ifelse(gt_included_intl, yes, [ - AC_MSG_CHECKING([whether included gettext is requested]) - AC_ARG_WITH([included-gettext], - [ --with-included-gettext use the GNU gettext library included here], - nls_cv_force_use_gnu_gettext=$withval, - nls_cv_force_use_gnu_gettext=no) - AC_MSG_RESULT([$nls_cv_force_use_gnu_gettext]) - - nls_cv_use_gnu_gettext="$nls_cv_force_use_gnu_gettext" - if test "$nls_cv_force_use_gnu_gettext" != "yes"; then - ]) - dnl User does not insist on using GNU NLS library. Figure out what - dnl to use. If GNU gettext is available we use this. Else we have - dnl to fall back to GNU NLS library. - - if test $gt_api_version -ge 3; then - gt_revision_test_code=' -#ifndef __GNU_GETTEXT_SUPPORTED_REVISION -#define __GNU_GETTEXT_SUPPORTED_REVISION(major) ((major) == 0 ? 0 : -1) -#endif -changequote(,)dnl -typedef int array [2 * (__GNU_GETTEXT_SUPPORTED_REVISION(0) >= 1) - 1]; -changequote([,])dnl -' - else - gt_revision_test_code= - fi - if test $gt_api_version -ge 2; then - gt_expression_test_code=' + * ngettext ("", "", 0)' - else - gt_expression_test_code= - fi - - AC_CACHE_CHECK([for GNU gettext in libc], [$gt_func_gnugettext_libc], - [AC_LINK_IFELSE( - [AC_LANG_PROGRAM( - [[ -#include -$gt_revision_test_code -extern int _nl_msg_cat_cntr; -extern int *_nl_domain_bindings; - ]], - [[ -bindtextdomain ("", ""); -return * gettext ("")$gt_expression_test_code + _nl_msg_cat_cntr + *_nl_domain_bindings - ]])], - [eval "$gt_func_gnugettext_libc=yes"], - [eval "$gt_func_gnugettext_libc=no"])]) - - if { eval "gt_val=\$$gt_func_gnugettext_libc"; test "$gt_val" != "yes"; }; then - dnl Sometimes libintl requires libiconv, so first search for libiconv. - ifelse(gt_included_intl, yes, , [ - AM_ICONV_LINK - ]) - dnl Search for libintl and define LIBINTL, LTLIBINTL and INCINTL - dnl accordingly. Don't use AC_LIB_LINKFLAGS_BODY([intl],[iconv]) - dnl because that would add "-liconv" to LIBINTL and LTLIBINTL - dnl even if libiconv doesn't exist. - AC_LIB_LINKFLAGS_BODY([intl]) - AC_CACHE_CHECK([for GNU gettext in libintl], - [$gt_func_gnugettext_libintl], - [gt_save_CPPFLAGS="$CPPFLAGS" - CPPFLAGS="$CPPFLAGS $INCINTL" - gt_save_LIBS="$LIBS" - LIBS="$LIBS $LIBINTL" - dnl Now see whether libintl exists and does not depend on libiconv. - AC_LINK_IFELSE( - [AC_LANG_PROGRAM( - [[ -#include -$gt_revision_test_code -extern int _nl_msg_cat_cntr; -extern -#ifdef __cplusplus -"C" -#endif -const char *_nl_expand_alias (const char *); - ]], - [[ -bindtextdomain ("", ""); -return * gettext ("")$gt_expression_test_code + _nl_msg_cat_cntr + *_nl_expand_alias ("") - ]])], - [eval "$gt_func_gnugettext_libintl=yes"], - [eval "$gt_func_gnugettext_libintl=no"]) - dnl Now see whether libintl exists and depends on libiconv. - if { eval "gt_val=\$$gt_func_gnugettext_libintl"; test "$gt_val" != yes; } && test -n "$LIBICONV"; then - LIBS="$LIBS $LIBICONV" - AC_LINK_IFELSE( - [AC_LANG_PROGRAM( - [[ -#include -$gt_revision_test_code -extern int _nl_msg_cat_cntr; -extern -#ifdef __cplusplus -"C" -#endif -const char *_nl_expand_alias (const char *); - ]], - [[ -bindtextdomain ("", ""); -return * gettext ("")$gt_expression_test_code + _nl_msg_cat_cntr + *_nl_expand_alias ("") - ]])], - [LIBINTL="$LIBINTL $LIBICONV" - LTLIBINTL="$LTLIBINTL $LTLIBICONV" - eval "$gt_func_gnugettext_libintl=yes" - ]) - fi - CPPFLAGS="$gt_save_CPPFLAGS" - LIBS="$gt_save_LIBS"]) - fi - - dnl If an already present or preinstalled GNU gettext() is found, - dnl use it. But if this macro is used in GNU gettext, and GNU - dnl gettext is already preinstalled in libintl, we update this - dnl libintl. (Cf. the install rule in intl/Makefile.in.) - if { eval "gt_val=\$$gt_func_gnugettext_libc"; test "$gt_val" = "yes"; } \ - || { { eval "gt_val=\$$gt_func_gnugettext_libintl"; test "$gt_val" = "yes"; } \ - && test "$PACKAGE" != gettext-runtime \ - && test "$PACKAGE" != gettext-tools; }; then - gt_use_preinstalled_gnugettext=yes - else - dnl Reset the values set by searching for libintl. - LIBINTL= - LTLIBINTL= - INCINTL= - fi - - ifelse(gt_included_intl, yes, [ - if test "$gt_use_preinstalled_gnugettext" != "yes"; then - dnl GNU gettext is not found in the C library. - dnl Fall back on included GNU gettext library. - nls_cv_use_gnu_gettext=yes - fi - fi - - if test "$nls_cv_use_gnu_gettext" = "yes"; then - dnl Mark actions used to generate GNU NLS library. - BUILD_INCLUDED_LIBINTL=yes - USE_INCLUDED_LIBINTL=yes - LIBINTL="ifelse([$3],[],\${top_builddir}/intl,[$3])/libintl.[]gt_libtool_suffix_prefix[]a $LIBICONV $LIBTHREAD" - LTLIBINTL="ifelse([$3],[],\${top_builddir}/intl,[$3])/libintl.[]gt_libtool_suffix_prefix[]a $LTLIBICONV $LTLIBTHREAD" - LIBS=`echo " $LIBS " | sed -e 's/ -lintl / /' -e 's/^ //' -e 's/ $//'` - fi - - CATOBJEXT= - if test "$gt_use_preinstalled_gnugettext" = "yes" \ - || test "$nls_cv_use_gnu_gettext" = "yes"; then - dnl Mark actions to use GNU gettext tools. - CATOBJEXT=.gmo - fi - ]) - - if test -n "$INTL_MACOSX_LIBS"; then - if test "$gt_use_preinstalled_gnugettext" = "yes" \ - || test "$nls_cv_use_gnu_gettext" = "yes"; then - dnl Some extra flags are needed during linking. - LIBINTL="$LIBINTL $INTL_MACOSX_LIBS" - LTLIBINTL="$LTLIBINTL $INTL_MACOSX_LIBS" - fi - fi - - if test "$gt_use_preinstalled_gnugettext" = "yes" \ - || test "$nls_cv_use_gnu_gettext" = "yes"; then - AC_DEFINE([ENABLE_NLS], [1], - [Define to 1 if translation of program messages to the user's native language - is requested.]) - else - USE_NLS=no - fi - fi - - AC_MSG_CHECKING([whether to use NLS]) - AC_MSG_RESULT([$USE_NLS]) - if test "$USE_NLS" = "yes"; then - AC_MSG_CHECKING([where the gettext function comes from]) - if test "$gt_use_preinstalled_gnugettext" = "yes"; then - if { eval "gt_val=\$$gt_func_gnugettext_libintl"; test "$gt_val" = "yes"; }; then - gt_source="external libintl" - else - gt_source="libc" - fi - else - gt_source="included intl directory" - fi - AC_MSG_RESULT([$gt_source]) - fi - - if test "$USE_NLS" = "yes"; then - - if test "$gt_use_preinstalled_gnugettext" = "yes"; then - if { eval "gt_val=\$$gt_func_gnugettext_libintl"; test "$gt_val" = "yes"; }; then - AC_MSG_CHECKING([how to link with libintl]) - AC_MSG_RESULT([$LIBINTL]) - AC_LIB_APPENDTOVAR([CPPFLAGS], [$INCINTL]) - fi - - dnl For backward compatibility. Some packages may be using this. - AC_DEFINE([HAVE_GETTEXT], [1], - [Define if the GNU gettext() function is already present or preinstalled.]) - AC_DEFINE([HAVE_DCGETTEXT], [1], - [Define if the GNU dcgettext() function is already present or preinstalled.]) - fi - - dnl We need to process the po/ directory. - POSUB=po - fi - - ifelse(gt_included_intl, yes, [ - dnl If this is used in GNU gettext we have to set BUILD_INCLUDED_LIBINTL - dnl to 'yes' because some of the testsuite requires it. - if test "$PACKAGE" = gettext-runtime || test "$PACKAGE" = gettext-tools; then - BUILD_INCLUDED_LIBINTL=yes - fi - - dnl Make all variables we use known to autoconf. - AC_SUBST([BUILD_INCLUDED_LIBINTL]) - AC_SUBST([USE_INCLUDED_LIBINTL]) - AC_SUBST([CATOBJEXT]) - - dnl For backward compatibility. Some configure.ins may be using this. - nls_cv_header_intl= - nls_cv_header_libgt= - - dnl For backward compatibility. Some Makefiles may be using this. - DATADIRNAME=share - AC_SUBST([DATADIRNAME]) - - dnl For backward compatibility. Some Makefiles may be using this. - INSTOBJEXT=.mo - AC_SUBST([INSTOBJEXT]) - - dnl For backward compatibility. Some Makefiles may be using this. - GENCAT=gencat - AC_SUBST([GENCAT]) - - dnl For backward compatibility. Some Makefiles may be using this. - INTLOBJS= - if test "$USE_INCLUDED_LIBINTL" = yes; then - INTLOBJS="\$(GETTOBJS)" - fi - AC_SUBST([INTLOBJS]) - - dnl Enable libtool support if the surrounding package wishes it. - INTL_LIBTOOL_SUFFIX_PREFIX=gt_libtool_suffix_prefix - AC_SUBST([INTL_LIBTOOL_SUFFIX_PREFIX]) - ]) - - dnl For backward compatibility. Some Makefiles may be using this. - INTLLIBS="$LIBINTL" - AC_SUBST([INTLLIBS]) - - dnl Make all documented variables known to autoconf. - AC_SUBST([LIBINTL]) - AC_SUBST([LTLIBINTL]) - AC_SUBST([POSUB]) -]) - - -dnl gt_NEEDS_INIT ensures that the gt_needs variable is initialized. -m4_define([gt_NEEDS_INIT], -[ - m4_divert_text([DEFAULTS], [gt_needs=]) - m4_define([gt_NEEDS_INIT], []) -]) - - -dnl Usage: AM_GNU_GETTEXT_NEED([NEEDSYMBOL]) -AC_DEFUN([AM_GNU_GETTEXT_NEED], -[ - m4_divert_text([INIT_PREPARE], [gt_needs="$gt_needs $1"]) -]) - - -dnl Usage: AM_GNU_GETTEXT_VERSION([gettext-version]) -AC_DEFUN([AM_GNU_GETTEXT_VERSION], []) - -# iconv.m4 serial 18 (gettext-0.18.2) -dnl Copyright (C) 2000-2002, 2007-2013 Free Software Foundation, Inc. -dnl This file is free software; the Free Software Foundation -dnl gives unlimited permission to copy and/or distribute it, -dnl with or without modifications, as long as this notice is preserved. - -dnl From Bruno Haible. - -AC_DEFUN([AM_ICONV_LINKFLAGS_BODY], -[ - dnl Prerequisites of AC_LIB_LINKFLAGS_BODY. - AC_REQUIRE([AC_LIB_PREPARE_PREFIX]) - AC_REQUIRE([AC_LIB_RPATH]) - - dnl Search for libiconv and define LIBICONV, LTLIBICONV and INCICONV - dnl accordingly. - AC_LIB_LINKFLAGS_BODY([iconv]) -]) - -AC_DEFUN([AM_ICONV_LINK], -[ - dnl Some systems have iconv in libc, some have it in libiconv (OSF/1 and - dnl those with the standalone portable GNU libiconv installed). - AC_REQUIRE([AC_CANONICAL_HOST]) dnl for cross-compiles - - dnl Search for libiconv and define LIBICONV, LTLIBICONV and INCICONV - dnl accordingly. - AC_REQUIRE([AM_ICONV_LINKFLAGS_BODY]) - - dnl Add $INCICONV to CPPFLAGS before performing the following checks, - dnl because if the user has installed libiconv and not disabled its use - dnl via --without-libiconv-prefix, he wants to use it. The first - dnl AC_LINK_IFELSE will then fail, the second AC_LINK_IFELSE will succeed. - am_save_CPPFLAGS="$CPPFLAGS" - AC_LIB_APPENDTOVAR([CPPFLAGS], [$INCICONV]) - - AC_CACHE_CHECK([for iconv], [am_cv_func_iconv], [ - am_cv_func_iconv="no, consider installing GNU libiconv" - am_cv_lib_iconv=no - AC_LINK_IFELSE( - [AC_LANG_PROGRAM( - [[ -#include -#include - ]], - [[iconv_t cd = iconv_open("",""); - iconv(cd,NULL,NULL,NULL,NULL); - iconv_close(cd);]])], - [am_cv_func_iconv=yes]) - if test "$am_cv_func_iconv" != yes; then - am_save_LIBS="$LIBS" - LIBS="$LIBS $LIBICONV" - AC_LINK_IFELSE( - [AC_LANG_PROGRAM( - [[ -#include -#include - ]], - [[iconv_t cd = iconv_open("",""); - iconv(cd,NULL,NULL,NULL,NULL); - iconv_close(cd);]])], - [am_cv_lib_iconv=yes] - [am_cv_func_iconv=yes]) - LIBS="$am_save_LIBS" - fi - ]) - if test "$am_cv_func_iconv" = yes; then - AC_CACHE_CHECK([for working iconv], [am_cv_func_iconv_works], [ - dnl This tests against bugs in AIX 5.1, AIX 6.1..7.1, HP-UX 11.11, - dnl Solaris 10. - am_save_LIBS="$LIBS" - if test $am_cv_lib_iconv = yes; then - LIBS="$LIBS $LIBICONV" - fi - AC_RUN_IFELSE( - [AC_LANG_SOURCE([[ -#include -#include -int main () -{ - int result = 0; - /* Test against AIX 5.1 bug: Failures are not distinguishable from successful - returns. */ - { - iconv_t cd_utf8_to_88591 = iconv_open ("ISO8859-1", "UTF-8"); - if (cd_utf8_to_88591 != (iconv_t)(-1)) - { - static const char input[] = "\342\202\254"; /* EURO SIGN */ - char buf[10]; - const char *inptr = input; - size_t inbytesleft = strlen (input); - char *outptr = buf; - size_t outbytesleft = sizeof (buf); - size_t res = iconv (cd_utf8_to_88591, - (char **) &inptr, &inbytesleft, - &outptr, &outbytesleft); - if (res == 0) - result |= 1; - iconv_close (cd_utf8_to_88591); - } - } - /* Test against Solaris 10 bug: Failures are not distinguishable from - successful returns. */ - { - iconv_t cd_ascii_to_88591 = iconv_open ("ISO8859-1", "646"); - if (cd_ascii_to_88591 != (iconv_t)(-1)) - { - static const char input[] = "\263"; - char buf[10]; - const char *inptr = input; - size_t inbytesleft = strlen (input); - char *outptr = buf; - size_t outbytesleft = sizeof (buf); - size_t res = iconv (cd_ascii_to_88591, - (char **) &inptr, &inbytesleft, - &outptr, &outbytesleft); - if (res == 0) - result |= 2; - iconv_close (cd_ascii_to_88591); - } - } - /* Test against AIX 6.1..7.1 bug: Buffer overrun. */ - { - iconv_t cd_88591_to_utf8 = iconv_open ("UTF-8", "ISO-8859-1"); - if (cd_88591_to_utf8 != (iconv_t)(-1)) - { - static const char input[] = "\304"; - static char buf[2] = { (char)0xDE, (char)0xAD }; - const char *inptr = input; - size_t inbytesleft = 1; - char *outptr = buf; - size_t outbytesleft = 1; - size_t res = iconv (cd_88591_to_utf8, - (char **) &inptr, &inbytesleft, - &outptr, &outbytesleft); - if (res != (size_t)(-1) || outptr - buf > 1 || buf[1] != (char)0xAD) - result |= 4; - iconv_close (cd_88591_to_utf8); - } - } -#if 0 /* This bug could be worked around by the caller. */ - /* Test against HP-UX 11.11 bug: Positive return value instead of 0. */ - { - iconv_t cd_88591_to_utf8 = iconv_open ("utf8", "iso88591"); - if (cd_88591_to_utf8 != (iconv_t)(-1)) - { - static const char input[] = "\304rger mit b\366sen B\374bchen ohne Augenma\337"; - char buf[50]; - const char *inptr = input; - size_t inbytesleft = strlen (input); - char *outptr = buf; - size_t outbytesleft = sizeof (buf); - size_t res = iconv (cd_88591_to_utf8, - (char **) &inptr, &inbytesleft, - &outptr, &outbytesleft); - if ((int)res > 0) - result |= 8; - iconv_close (cd_88591_to_utf8); - } - } -#endif - /* Test against HP-UX 11.11 bug: No converter from EUC-JP to UTF-8 is - provided. */ - if (/* Try standardized names. */ - iconv_open ("UTF-8", "EUC-JP") == (iconv_t)(-1) - /* Try IRIX, OSF/1 names. */ - && iconv_open ("UTF-8", "eucJP") == (iconv_t)(-1) - /* Try AIX names. */ - && iconv_open ("UTF-8", "IBM-eucJP") == (iconv_t)(-1) - /* Try HP-UX names. */ - && iconv_open ("utf8", "eucJP") == (iconv_t)(-1)) - result |= 16; - return result; -}]])], - [am_cv_func_iconv_works=yes], - [am_cv_func_iconv_works=no], - [ -changequote(,)dnl - case "$host_os" in - aix* | hpux*) am_cv_func_iconv_works="guessing no" ;; - *) am_cv_func_iconv_works="guessing yes" ;; - esac -changequote([,])dnl - ]) - LIBS="$am_save_LIBS" - ]) - case "$am_cv_func_iconv_works" in - *no) am_func_iconv=no am_cv_lib_iconv=no ;; - *) am_func_iconv=yes ;; - esac - else - am_func_iconv=no am_cv_lib_iconv=no - fi - if test "$am_func_iconv" = yes; then - AC_DEFINE([HAVE_ICONV], [1], - [Define if you have the iconv() function and it works.]) - fi - if test "$am_cv_lib_iconv" = yes; then - AC_MSG_CHECKING([how to link with libiconv]) - AC_MSG_RESULT([$LIBICONV]) - else - dnl If $LIBICONV didn't lead to a usable library, we don't need $INCICONV - dnl either. - CPPFLAGS="$am_save_CPPFLAGS" - LIBICONV= - LTLIBICONV= - fi - AC_SUBST([LIBICONV]) - AC_SUBST([LTLIBICONV]) -]) - -dnl Define AM_ICONV using AC_DEFUN_ONCE for Autoconf >= 2.64, in order to -dnl avoid warnings like -dnl "warning: AC_REQUIRE: `AM_ICONV' was expanded before it was required". -dnl This is tricky because of the way 'aclocal' is implemented: -dnl - It requires defining an auxiliary macro whose name ends in AC_DEFUN. -dnl Otherwise aclocal's initial scan pass would miss the macro definition. -dnl - It requires a line break inside the AC_DEFUN_ONCE and AC_DEFUN expansions. -dnl Otherwise aclocal would emit many "Use of uninitialized value $1" -dnl warnings. -m4_define([gl_iconv_AC_DEFUN], - m4_version_prereq([2.64], - [[AC_DEFUN_ONCE( - [$1], [$2])]], - [m4_ifdef([gl_00GNULIB], - [[AC_DEFUN_ONCE( - [$1], [$2])]], - [[AC_DEFUN( - [$1], [$2])]])])) -gl_iconv_AC_DEFUN([AM_ICONV], -[ - AM_ICONV_LINK - if test "$am_cv_func_iconv" = yes; then - AC_MSG_CHECKING([for iconv declaration]) - AC_CACHE_VAL([am_cv_proto_iconv], [ - AC_COMPILE_IFELSE( - [AC_LANG_PROGRAM( - [[ -#include -#include -extern -#ifdef __cplusplus -"C" -#endif -#if defined(__STDC__) || defined(_MSC_VER) || defined(__cplusplus) -size_t iconv (iconv_t cd, char * *inbuf, size_t *inbytesleft, char * *outbuf, size_t *outbytesleft); -#else -size_t iconv(); -#endif - ]], - [[]])], - [am_cv_proto_iconv_arg1=""], - [am_cv_proto_iconv_arg1="const"]) - am_cv_proto_iconv="extern size_t iconv (iconv_t cd, $am_cv_proto_iconv_arg1 char * *inbuf, size_t *inbytesleft, char * *outbuf, size_t *outbytesleft);"]) - am_cv_proto_iconv=`echo "[$]am_cv_proto_iconv" | tr -s ' ' | sed -e 's/( /(/'` - AC_MSG_RESULT([ - $am_cv_proto_iconv]) - AC_DEFINE_UNQUOTED([ICONV_CONST], [$am_cv_proto_iconv_arg1], - [Define as const if the declaration of iconv() needs const.]) - dnl Also substitute ICONV_CONST in the gnulib generated . - m4_ifdef([gl_ICONV_H_DEFAULTS], - [AC_REQUIRE([gl_ICONV_H_DEFAULTS]) - if test -n "$am_cv_proto_iconv_arg1"; then - ICONV_CONST="const" - fi - ]) - fi -]) - # intlmacosx.m4 serial 5 (gettext-0.18.2) dnl Copyright (C) 2004-2013 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation @@ -748,1377 +77,6 @@ AC_SUBST([INTL_MACOSX_LIBS]) ]) - -dnl IT_PROG_INTLTOOL([MINIMUM-VERSION], [no-xml]) -# serial 42 IT_PROG_INTLTOOL -AC_DEFUN([IT_PROG_INTLTOOL], [ -AC_PREREQ([2.50])dnl -AC_REQUIRE([AM_NLS])dnl - -case "$am__api_version" in - 1.[01234]) - AC_MSG_ERROR([Automake 1.5 or newer is required to use intltool]) - ;; - *) - ;; -esac - -INTLTOOL_REQUIRED_VERSION_AS_INT=`echo $1 | awk -F. '{ print $ 1 * 1000 + $ 2 * 100 + $ 3; }'` -INTLTOOL_APPLIED_VERSION=`intltool-update --version | head -1 | cut -d" " -f3` -INTLTOOL_APPLIED_VERSION_AS_INT=`echo $INTLTOOL_APPLIED_VERSION | awk -F. '{ print $ 1 * 1000 + $ 2 * 100 + $ 3; }'` -if test -n "$1"; then - AC_MSG_CHECKING([for intltool >= $1]) - AC_MSG_RESULT([$INTLTOOL_APPLIED_VERSION found]) - test "$INTLTOOL_APPLIED_VERSION_AS_INT" -ge "$INTLTOOL_REQUIRED_VERSION_AS_INT" || - AC_MSG_ERROR([Your intltool is too old. You need intltool $1 or later.]) -fi - -AC_PATH_PROG(INTLTOOL_UPDATE, [intltool-update]) -AC_PATH_PROG(INTLTOOL_MERGE, [intltool-merge]) -AC_PATH_PROG(INTLTOOL_EXTRACT, [intltool-extract]) -if test -z "$INTLTOOL_UPDATE" -o -z "$INTLTOOL_MERGE" -o -z "$INTLTOOL_EXTRACT"; then - AC_MSG_ERROR([The intltool scripts were not found. Please install intltool.]) -fi - -if test -z "$AM_DEFAULT_VERBOSITY"; then - AM_DEFAULT_VERBOSITY=1 -fi -AC_SUBST([AM_DEFAULT_VERBOSITY]) - -INTLTOOL_V_MERGE='$(INTLTOOL__v_MERGE_$(V))' -INTLTOOL__v_MERGE_='$(INTLTOOL__v_MERGE_$(AM_DEFAULT_VERBOSITY))' -INTLTOOL__v_MERGE_0='@echo " ITMRG " [$]@;' -AC_SUBST(INTLTOOL_V_MERGE) -AC_SUBST(INTLTOOL__v_MERGE_) -AC_SUBST(INTLTOOL__v_MERGE_0) - -INTLTOOL_V_MERGE_OPTIONS='$(intltool__v_merge_options_$(V))' -intltool__v_merge_options_='$(intltool__v_merge_options_$(AM_DEFAULT_VERBOSITY))' -intltool__v_merge_options_0='-q' -AC_SUBST(INTLTOOL_V_MERGE_OPTIONS) -AC_SUBST(intltool__v_merge_options_) -AC_SUBST(intltool__v_merge_options_0) - - INTLTOOL_DESKTOP_RULE='%.desktop: %.desktop.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; $(INTLTOOL_V_MERGE)LC_ALL=C $(INTLTOOL_MERGE) $(INTLTOOL_V_MERGE_OPTIONS) -d -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< [$]@' -INTLTOOL_DIRECTORY_RULE='%.directory: %.directory.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; $(INTLTOOL_V_MERGE)LC_ALL=C $(INTLTOOL_MERGE) $(INTLTOOL_V_MERGE_OPTIONS) -d -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< [$]@' - INTLTOOL_KEYS_RULE='%.keys: %.keys.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; $(INTLTOOL_V_MERGE)LC_ALL=C $(INTLTOOL_MERGE) $(INTLTOOL_V_MERGE_OPTIONS) -k -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< [$]@' - INTLTOOL_PROP_RULE='%.prop: %.prop.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; $(INTLTOOL_V_MERGE)LC_ALL=C $(INTLTOOL_MERGE) $(INTLTOOL_V_MERGE_OPTIONS) -d -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< [$]@' - INTLTOOL_OAF_RULE='%.oaf: %.oaf.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; $(INTLTOOL_V_MERGE)LC_ALL=C $(INTLTOOL_MERGE) $(INTLTOOL_V_MERGE_OPTIONS) -o -p $(top_srcdir)/po $< [$]@' - INTLTOOL_PONG_RULE='%.pong: %.pong.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; $(INTLTOOL_V_MERGE)LC_ALL=C $(INTLTOOL_MERGE) $(INTLTOOL_V_MERGE_OPTIONS) -x -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< [$]@' - INTLTOOL_SERVER_RULE='%.server: %.server.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; $(INTLTOOL_V_MERGE)LC_ALL=C $(INTLTOOL_MERGE) $(INTLTOOL_V_MERGE_OPTIONS) -o -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< [$]@' - INTLTOOL_SHEET_RULE='%.sheet: %.sheet.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; $(INTLTOOL_V_MERGE)LC_ALL=C $(INTLTOOL_MERGE) $(INTLTOOL_V_MERGE_OPTIONS) -x -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< [$]@' -INTLTOOL_SOUNDLIST_RULE='%.soundlist: %.soundlist.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; $(INTLTOOL_V_MERGE)LC_ALL=C $(INTLTOOL_MERGE) $(INTLTOOL_V_MERGE_OPTIONS) -d -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< [$]@' - INTLTOOL_UI_RULE='%.ui: %.ui.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; $(INTLTOOL_V_MERGE)LC_ALL=C $(INTLTOOL_MERGE) $(INTLTOOL_V_MERGE_OPTIONS) -x -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< [$]@' - INTLTOOL_XML_RULE='%.xml: %.xml.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; $(INTLTOOL_V_MERGE)LC_ALL=C $(INTLTOOL_MERGE) $(INTLTOOL_V_MERGE_OPTIONS) -x -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< [$]@' -if test "$INTLTOOL_APPLIED_VERSION_AS_INT" -ge 5000; then - INTLTOOL_XML_NOMERGE_RULE='%.xml: %.xml.in $(INTLTOOL_MERGE) ; $(INTLTOOL_V_MERGE)LC_ALL=C $(INTLTOOL_MERGE) $(INTLTOOL_V_MERGE_OPTIONS) -x -u --no-translations $< [$]@' -else - INTLTOOL_XML_NOMERGE_RULE='%.xml: %.xml.in $(INTLTOOL_MERGE) ; $(INTLTOOL_V_MERGE)_it_tmp_dir=tmp.intltool.[$][$]RANDOM && mkdir [$][$]_it_tmp_dir && LC_ALL=C $(INTLTOOL_MERGE) $(INTLTOOL_V_MERGE_OPTIONS) -x -u [$][$]_it_tmp_dir $< [$]@ && rmdir [$][$]_it_tmp_dir' -fi - INTLTOOL_XAM_RULE='%.xam: %.xml.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; $(INTLTOOL_V_MERGE)LC_ALL=C $(INTLTOOL_MERGE) $(INTLTOOL_V_MERGE_OPTIONS) -x -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< [$]@' - INTLTOOL_KBD_RULE='%.kbd: %.kbd.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; $(INTLTOOL_V_MERGE)LC_ALL=C $(INTLTOOL_MERGE) $(INTLTOOL_V_MERGE_OPTIONS) -x -u -m -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< [$]@' - INTLTOOL_CAVES_RULE='%.caves: %.caves.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; $(INTLTOOL_V_MERGE)LC_ALL=C $(INTLTOOL_MERGE) $(INTLTOOL_V_MERGE_OPTIONS) -d -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< [$]@' - INTLTOOL_SCHEMAS_RULE='%.schemas: %.schemas.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; $(INTLTOOL_V_MERGE)LC_ALL=C $(INTLTOOL_MERGE) $(INTLTOOL_V_MERGE_OPTIONS) -s -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< [$]@' - INTLTOOL_THEME_RULE='%.theme: %.theme.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; $(INTLTOOL_V_MERGE)LC_ALL=C $(INTLTOOL_MERGE) $(INTLTOOL_V_MERGE_OPTIONS) -d -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< [$]@' - INTLTOOL_SERVICE_RULE='%.service: %.service.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; $(INTLTOOL_V_MERGE)LC_ALL=C $(INTLTOOL_MERGE) $(INTLTOOL_V_MERGE_OPTIONS) -d -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< [$]@' - INTLTOOL_POLICY_RULE='%.policy: %.policy.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; $(INTLTOOL_V_MERGE)LC_ALL=C $(INTLTOOL_MERGE) $(INTLTOOL_V_MERGE_OPTIONS) -x -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< [$]@' - -_IT_SUBST(INTLTOOL_DESKTOP_RULE) -_IT_SUBST(INTLTOOL_DIRECTORY_RULE) -_IT_SUBST(INTLTOOL_KEYS_RULE) -_IT_SUBST(INTLTOOL_PROP_RULE) -_IT_SUBST(INTLTOOL_OAF_RULE) -_IT_SUBST(INTLTOOL_PONG_RULE) -_IT_SUBST(INTLTOOL_SERVER_RULE) -_IT_SUBST(INTLTOOL_SHEET_RULE) -_IT_SUBST(INTLTOOL_SOUNDLIST_RULE) -_IT_SUBST(INTLTOOL_UI_RULE) -_IT_SUBST(INTLTOOL_XAM_RULE) -_IT_SUBST(INTLTOOL_KBD_RULE) -_IT_SUBST(INTLTOOL_XML_RULE) -_IT_SUBST(INTLTOOL_XML_NOMERGE_RULE) -_IT_SUBST(INTLTOOL_CAVES_RULE) -_IT_SUBST(INTLTOOL_SCHEMAS_RULE) -_IT_SUBST(INTLTOOL_THEME_RULE) -_IT_SUBST(INTLTOOL_SERVICE_RULE) -_IT_SUBST(INTLTOOL_POLICY_RULE) - -# Check the gettext tools to make sure they are GNU -AC_PATH_PROG(XGETTEXT, xgettext) -AC_PATH_PROG(MSGMERGE, msgmerge) -AC_PATH_PROG(MSGFMT, msgfmt) -AC_PATH_PROG(GMSGFMT, gmsgfmt, $MSGFMT) -if test -z "$XGETTEXT" -o -z "$MSGMERGE" -o -z "$MSGFMT"; then - AC_MSG_ERROR([GNU gettext tools not found; required for intltool]) -fi -xgversion="`$XGETTEXT --version|grep '(GNU ' 2> /dev/null`" -mmversion="`$MSGMERGE --version|grep '(GNU ' 2> /dev/null`" -mfversion="`$MSGFMT --version|grep '(GNU ' 2> /dev/null`" -if test -z "$xgversion" -o -z "$mmversion" -o -z "$mfversion"; then - AC_MSG_ERROR([GNU gettext tools not found; required for intltool]) -fi - -AC_PATH_PROG(INTLTOOL_PERL, perl) -if test -z "$INTLTOOL_PERL"; then - AC_MSG_ERROR([perl not found]) -fi -AC_MSG_CHECKING([for perl >= 5.8.1]) -$INTLTOOL_PERL -e "use 5.8.1;" > /dev/null 2>&1 -if test $? -ne 0; then - AC_MSG_ERROR([perl 5.8.1 is required for intltool]) -else - IT_PERL_VERSION=`$INTLTOOL_PERL -e "printf '%vd', $^V"` - AC_MSG_RESULT([$IT_PERL_VERSION]) -fi -if test "x$2" != "xno-xml"; then - AC_MSG_CHECKING([for XML::Parser]) - if `$INTLTOOL_PERL -e "require XML::Parser" 2>/dev/null`; then - AC_MSG_RESULT([ok]) - else - AC_MSG_ERROR([XML::Parser perl module is required for intltool]) - fi -fi - -# Substitute ALL_LINGUAS so we can use it in po/Makefile -AC_SUBST(ALL_LINGUAS) - -# Set DATADIRNAME correctly if it is not set yet -# (copied from glib-gettext.m4) -if test -z "$DATADIRNAME"; then - AC_LINK_IFELSE( - [AC_LANG_PROGRAM([[]], - [[extern int _nl_msg_cat_cntr; - return _nl_msg_cat_cntr]])], - [DATADIRNAME=share], - [case $host in - *-*-solaris*) - dnl On Solaris, if bind_textdomain_codeset is in libc, - dnl GNU format message catalog is always supported, - dnl since both are added to the libc all together. - dnl Hence, we'd like to go with DATADIRNAME=share - dnl in this case. - AC_CHECK_FUNC(bind_textdomain_codeset, - [DATADIRNAME=share], [DATADIRNAME=lib]) - ;; - *) - [DATADIRNAME=lib] - ;; - esac]) -fi -AC_SUBST(DATADIRNAME) - -IT_PO_SUBDIR([po]) - -]) - - -# IT_PO_SUBDIR(DIRNAME) -# --------------------- -# All po subdirs have to be declared with this macro; the subdir "po" is -# declared by IT_PROG_INTLTOOL. -# -AC_DEFUN([IT_PO_SUBDIR], -[AC_PREREQ([2.53])dnl We use ac_top_srcdir inside AC_CONFIG_COMMANDS. -dnl -dnl The following CONFIG_COMMANDS should be executed at the very end -dnl of config.status. -AC_CONFIG_COMMANDS_PRE([ - AC_CONFIG_COMMANDS([$1/stamp-it], [ - if [ ! grep "^# INTLTOOL_MAKEFILE$" "$1/Makefile.in" > /dev/null ]; then - AC_MSG_ERROR([$1/Makefile.in.in was not created by intltoolize.]) - fi - rm -f "$1/stamp-it" "$1/stamp-it.tmp" "$1/POTFILES" "$1/Makefile.tmp" - >"$1/stamp-it.tmp" - [sed '/^#/d - s/^[[].*] *// - /^[ ]*$/d - '"s|^| $ac_top_srcdir/|" \ - "$srcdir/$1/POTFILES.in" | sed '$!s/$/ \\/' >"$1/POTFILES" - ] - [sed '/^POTFILES =/,/[^\\]$/ { - /^POTFILES =/!d - r $1/POTFILES - } - ' "$1/Makefile.in" >"$1/Makefile"] - rm -f "$1/Makefile.tmp" - mv "$1/stamp-it.tmp" "$1/stamp-it" - ]) -])dnl -]) - -# _IT_SUBST(VARIABLE) -# ------------------- -# Abstract macro to do either _AM_SUBST_NOTMAKE or AC_SUBST -# -AC_DEFUN([_IT_SUBST], -[ -AC_SUBST([$1]) -m4_ifdef([_AM_SUBST_NOTMAKE], [_AM_SUBST_NOTMAKE([$1])]) -] -) - -# deprecated macros -AU_ALIAS([AC_PROG_INTLTOOL], [IT_PROG_INTLTOOL]) -# A hint is needed for aclocal from Automake <= 1.9.4: -# AC_DEFUN([AC_PROG_INTLTOOL], ...) - - -# lib-ld.m4 serial 6 -dnl Copyright (C) 1996-2003, 2009-2013 Free Software Foundation, Inc. -dnl This file is free software; the Free Software Foundation -dnl gives unlimited permission to copy and/or distribute it, -dnl with or without modifications, as long as this notice is preserved. - -dnl Subroutines of libtool.m4, -dnl with replacements s/_*LT_PATH/AC_LIB_PROG/ and s/lt_/acl_/ to avoid -dnl collision with libtool.m4. - -dnl From libtool-2.4. Sets the variable with_gnu_ld to yes or no. -AC_DEFUN([AC_LIB_PROG_LD_GNU], -[AC_CACHE_CHECK([if the linker ($LD) is GNU ld], [acl_cv_prog_gnu_ld], -[# I'd rather use --version here, but apparently some GNU lds only accept -v. -case `$LD -v 2>&1 /dev/null 2>&1 \ - && { (PATH='/bin:/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 \ - || PATH_SEPARATOR=';' - } -fi - -ac_prog=ld -if test "$GCC" = yes; then - # Check if gcc -print-prog-name=ld gives a path. - AC_MSG_CHECKING([for ld used by $CC]) - case $host in - *-*-mingw*) - # gcc leaves a trailing carriage return which upsets mingw - ac_prog=`($CC -print-prog-name=ld) 2>&5 | tr -d '\015'` ;; - *) - ac_prog=`($CC -print-prog-name=ld) 2>&5` ;; - esac - case $ac_prog in - # Accept absolute paths. - [[\\/]]* | ?:[[\\/]]*) - re_direlt='/[[^/]][[^/]]*/\.\./' - # Canonicalize the pathname of ld - ac_prog=`echo "$ac_prog"| sed 's%\\\\%/%g'` - while echo "$ac_prog" | grep "$re_direlt" > /dev/null 2>&1; do - ac_prog=`echo $ac_prog| sed "s%$re_direlt%/%"` - done - test -z "$LD" && LD="$ac_prog" - ;; - "") - # If it fails, then pretend we aren't using GCC. - ac_prog=ld - ;; - *) - # If it is relative, then search for the first ld in PATH. - with_gnu_ld=unknown - ;; - esac -elif test "$with_gnu_ld" = yes; then - AC_MSG_CHECKING([for GNU ld]) -else - AC_MSG_CHECKING([for non-GNU ld]) -fi -AC_CACHE_VAL([acl_cv_path_LD], -[if test -z "$LD"; then - acl_save_ifs="$IFS"; IFS=$PATH_SEPARATOR - for ac_dir in $PATH; do - IFS="$acl_save_ifs" - test -z "$ac_dir" && ac_dir=. - if test -f "$ac_dir/$ac_prog" || test -f "$ac_dir/$ac_prog$ac_exeext"; then - acl_cv_path_LD="$ac_dir/$ac_prog" - # Check to see if the program is GNU ld. I'd rather use --version, - # but apparently some variants of GNU ld only accept -v. - # Break only if it was the GNU/non-GNU ld that we prefer. - case `"$acl_cv_path_LD" -v 2>&1 = 1.10 to complain if config.rpath is missing. - m4_ifdef([AC_REQUIRE_AUX_FILE], [AC_REQUIRE_AUX_FILE([config.rpath])]) - AC_REQUIRE([AC_PROG_CC]) dnl we use $CC, $GCC, $LDFLAGS - AC_REQUIRE([AC_LIB_PROG_LD]) dnl we use $LD, $with_gnu_ld - AC_REQUIRE([AC_CANONICAL_HOST]) dnl we use $host - AC_REQUIRE([AC_CONFIG_AUX_DIR_DEFAULT]) dnl we use $ac_aux_dir - AC_CACHE_CHECK([for shared library run path origin], [acl_cv_rpath], [ - CC="$CC" GCC="$GCC" LDFLAGS="$LDFLAGS" LD="$LD" with_gnu_ld="$with_gnu_ld" \ - ${CONFIG_SHELL-/bin/sh} "$ac_aux_dir/config.rpath" "$host" > conftest.sh - . ./conftest.sh - rm -f ./conftest.sh - acl_cv_rpath=done - ]) - wl="$acl_cv_wl" - acl_libext="$acl_cv_libext" - acl_shlibext="$acl_cv_shlibext" - acl_libname_spec="$acl_cv_libname_spec" - acl_library_names_spec="$acl_cv_library_names_spec" - acl_hardcode_libdir_flag_spec="$acl_cv_hardcode_libdir_flag_spec" - acl_hardcode_libdir_separator="$acl_cv_hardcode_libdir_separator" - acl_hardcode_direct="$acl_cv_hardcode_direct" - acl_hardcode_minus_L="$acl_cv_hardcode_minus_L" - dnl Determine whether the user wants rpath handling at all. - AC_ARG_ENABLE([rpath], - [ --disable-rpath do not hardcode runtime library paths], - :, enable_rpath=yes) -]) - -dnl AC_LIB_FROMPACKAGE(name, package) -dnl declares that libname comes from the given package. The configure file -dnl will then not have a --with-libname-prefix option but a -dnl --with-package-prefix option. Several libraries can come from the same -dnl package. This declaration must occur before an AC_LIB_LINKFLAGS or similar -dnl macro call that searches for libname. -AC_DEFUN([AC_LIB_FROMPACKAGE], -[ - pushdef([NAME],[m4_translit([$1],[abcdefghijklmnopqrstuvwxyz./+-], - [ABCDEFGHIJKLMNOPQRSTUVWXYZ____])]) - define([acl_frompackage_]NAME, [$2]) - popdef([NAME]) - pushdef([PACK],[$2]) - pushdef([PACKUP],[m4_translit(PACK,[abcdefghijklmnopqrstuvwxyz./+-], - [ABCDEFGHIJKLMNOPQRSTUVWXYZ____])]) - define([acl_libsinpackage_]PACKUP, - m4_ifdef([acl_libsinpackage_]PACKUP, [m4_defn([acl_libsinpackage_]PACKUP)[, ]],)[lib$1]) - popdef([PACKUP]) - popdef([PACK]) -]) - -dnl AC_LIB_LINKFLAGS_BODY(name [, dependencies]) searches for libname and -dnl the libraries corresponding to explicit and implicit dependencies. -dnl Sets the LIB${NAME}, LTLIB${NAME} and INC${NAME} variables. -dnl Also, sets the LIB${NAME}_PREFIX variable to nonempty if libname was found -dnl in ${LIB${NAME}_PREFIX}/$acl_libdirstem. -AC_DEFUN([AC_LIB_LINKFLAGS_BODY], -[ - AC_REQUIRE([AC_LIB_PREPARE_MULTILIB]) - pushdef([NAME],[m4_translit([$1],[abcdefghijklmnopqrstuvwxyz./+-], - [ABCDEFGHIJKLMNOPQRSTUVWXYZ____])]) - pushdef([PACK],[m4_ifdef([acl_frompackage_]NAME, [acl_frompackage_]NAME, lib[$1])]) - pushdef([PACKUP],[m4_translit(PACK,[abcdefghijklmnopqrstuvwxyz./+-], - [ABCDEFGHIJKLMNOPQRSTUVWXYZ____])]) - pushdef([PACKLIBS],[m4_ifdef([acl_frompackage_]NAME, [acl_libsinpackage_]PACKUP, lib[$1])]) - dnl Autoconf >= 2.61 supports dots in --with options. - pushdef([P_A_C_K],[m4_if(m4_version_compare(m4_defn([m4_PACKAGE_VERSION]),[2.61]),[-1],[m4_translit(PACK,[.],[_])],PACK)]) - dnl By default, look in $includedir and $libdir. - use_additional=yes - AC_LIB_WITH_FINAL_PREFIX([ - eval additional_includedir=\"$includedir\" - eval additional_libdir=\"$libdir\" - ]) - AC_ARG_WITH(P_A_C_K[-prefix], -[[ --with-]]P_A_C_K[[-prefix[=DIR] search for ]PACKLIBS[ in DIR/include and DIR/lib - --without-]]P_A_C_K[[-prefix don't search for ]PACKLIBS[ in includedir and libdir]], -[ - if test "X$withval" = "Xno"; then - use_additional=no - else - if test "X$withval" = "X"; then - AC_LIB_WITH_FINAL_PREFIX([ - eval additional_includedir=\"$includedir\" - eval additional_libdir=\"$libdir\" - ]) - else - additional_includedir="$withval/include" - additional_libdir="$withval/$acl_libdirstem" - if test "$acl_libdirstem2" != "$acl_libdirstem" \ - && ! test -d "$withval/$acl_libdirstem"; then - additional_libdir="$withval/$acl_libdirstem2" - fi - fi - fi -]) - dnl Search the library and its dependencies in $additional_libdir and - dnl $LDFLAGS. Using breadth-first-seach. - LIB[]NAME= - LTLIB[]NAME= - INC[]NAME= - LIB[]NAME[]_PREFIX= - dnl HAVE_LIB${NAME} is an indicator that LIB${NAME}, LTLIB${NAME} have been - dnl computed. So it has to be reset here. - HAVE_LIB[]NAME= - rpathdirs= - ltrpathdirs= - names_already_handled= - names_next_round='$1 $2' - while test -n "$names_next_round"; do - names_this_round="$names_next_round" - names_next_round= - for name in $names_this_round; do - already_handled= - for n in $names_already_handled; do - if test "$n" = "$name"; then - already_handled=yes - break - fi - done - if test -z "$already_handled"; then - names_already_handled="$names_already_handled $name" - dnl See if it was already located by an earlier AC_LIB_LINKFLAGS - dnl or AC_LIB_HAVE_LINKFLAGS call. - uppername=`echo "$name" | sed -e 'y|abcdefghijklmnopqrstuvwxyz./+-|ABCDEFGHIJKLMNOPQRSTUVWXYZ____|'` - eval value=\"\$HAVE_LIB$uppername\" - if test -n "$value"; then - if test "$value" = yes; then - eval value=\"\$LIB$uppername\" - test -z "$value" || LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }$value" - eval value=\"\$LTLIB$uppername\" - test -z "$value" || LTLIB[]NAME="${LTLIB[]NAME}${LTLIB[]NAME:+ }$value" - else - dnl An earlier call to AC_LIB_HAVE_LINKFLAGS has determined - dnl that this library doesn't exist. So just drop it. - : - fi - else - dnl Search the library lib$name in $additional_libdir and $LDFLAGS - dnl and the already constructed $LIBNAME/$LTLIBNAME. - found_dir= - found_la= - found_so= - found_a= - eval libname=\"$acl_libname_spec\" # typically: libname=lib$name - if test -n "$acl_shlibext"; then - shrext=".$acl_shlibext" # typically: shrext=.so - else - shrext= - fi - if test $use_additional = yes; then - dir="$additional_libdir" - dnl The same code as in the loop below: - dnl First look for a shared library. - if test -n "$acl_shlibext"; then - if test -f "$dir/$libname$shrext"; then - found_dir="$dir" - found_so="$dir/$libname$shrext" - else - if test "$acl_library_names_spec" = '$libname$shrext$versuffix'; then - ver=`(cd "$dir" && \ - for f in "$libname$shrext".*; do echo "$f"; done \ - | sed -e "s,^$libname$shrext\\\\.,," \ - | sort -t '.' -n -r -k1,1 -k2,2 -k3,3 -k4,4 -k5,5 \ - | sed 1q ) 2>/dev/null` - if test -n "$ver" && test -f "$dir/$libname$shrext.$ver"; then - found_dir="$dir" - found_so="$dir/$libname$shrext.$ver" - fi - else - eval library_names=\"$acl_library_names_spec\" - for f in $library_names; do - if test -f "$dir/$f"; then - found_dir="$dir" - found_so="$dir/$f" - break - fi - done - fi - fi - fi - dnl Then look for a static library. - if test "X$found_dir" = "X"; then - if test -f "$dir/$libname.$acl_libext"; then - found_dir="$dir" - found_a="$dir/$libname.$acl_libext" - fi - fi - if test "X$found_dir" != "X"; then - if test -f "$dir/$libname.la"; then - found_la="$dir/$libname.la" - fi - fi - fi - if test "X$found_dir" = "X"; then - for x in $LDFLAGS $LTLIB[]NAME; do - AC_LIB_WITH_FINAL_PREFIX([eval x=\"$x\"]) - case "$x" in - -L*) - dir=`echo "X$x" | sed -e 's/^X-L//'` - dnl First look for a shared library. - if test -n "$acl_shlibext"; then - if test -f "$dir/$libname$shrext"; then - found_dir="$dir" - found_so="$dir/$libname$shrext" - else - if test "$acl_library_names_spec" = '$libname$shrext$versuffix'; then - ver=`(cd "$dir" && \ - for f in "$libname$shrext".*; do echo "$f"; done \ - | sed -e "s,^$libname$shrext\\\\.,," \ - | sort -t '.' -n -r -k1,1 -k2,2 -k3,3 -k4,4 -k5,5 \ - | sed 1q ) 2>/dev/null` - if test -n "$ver" && test -f "$dir/$libname$shrext.$ver"; then - found_dir="$dir" - found_so="$dir/$libname$shrext.$ver" - fi - else - eval library_names=\"$acl_library_names_spec\" - for f in $library_names; do - if test -f "$dir/$f"; then - found_dir="$dir" - found_so="$dir/$f" - break - fi - done - fi - fi - fi - dnl Then look for a static library. - if test "X$found_dir" = "X"; then - if test -f "$dir/$libname.$acl_libext"; then - found_dir="$dir" - found_a="$dir/$libname.$acl_libext" - fi - fi - if test "X$found_dir" != "X"; then - if test -f "$dir/$libname.la"; then - found_la="$dir/$libname.la" - fi - fi - ;; - esac - if test "X$found_dir" != "X"; then - break - fi - done - fi - if test "X$found_dir" != "X"; then - dnl Found the library. - LTLIB[]NAME="${LTLIB[]NAME}${LTLIB[]NAME:+ }-L$found_dir -l$name" - if test "X$found_so" != "X"; then - dnl Linking with a shared library. We attempt to hardcode its - dnl directory into the executable's runpath, unless it's the - dnl standard /usr/lib. - if test "$enable_rpath" = no \ - || test "X$found_dir" = "X/usr/$acl_libdirstem" \ - || test "X$found_dir" = "X/usr/$acl_libdirstem2"; then - dnl No hardcoding is needed. - LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }$found_so" - else - dnl Use an explicit option to hardcode DIR into the resulting - dnl binary. - dnl Potentially add DIR to ltrpathdirs. - dnl The ltrpathdirs will be appended to $LTLIBNAME at the end. - haveit= - for x in $ltrpathdirs; do - if test "X$x" = "X$found_dir"; then - haveit=yes - break - fi - done - if test -z "$haveit"; then - ltrpathdirs="$ltrpathdirs $found_dir" - fi - dnl The hardcoding into $LIBNAME is system dependent. - if test "$acl_hardcode_direct" = yes; then - dnl Using DIR/libNAME.so during linking hardcodes DIR into the - dnl resulting binary. - LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }$found_so" - else - if test -n "$acl_hardcode_libdir_flag_spec" && test "$acl_hardcode_minus_L" = no; then - dnl Use an explicit option to hardcode DIR into the resulting - dnl binary. - LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }$found_so" - dnl Potentially add DIR to rpathdirs. - dnl The rpathdirs will be appended to $LIBNAME at the end. - haveit= - for x in $rpathdirs; do - if test "X$x" = "X$found_dir"; then - haveit=yes - break - fi - done - if test -z "$haveit"; then - rpathdirs="$rpathdirs $found_dir" - fi - else - dnl Rely on "-L$found_dir". - dnl But don't add it if it's already contained in the LDFLAGS - dnl or the already constructed $LIBNAME - haveit= - for x in $LDFLAGS $LIB[]NAME; do - AC_LIB_WITH_FINAL_PREFIX([eval x=\"$x\"]) - if test "X$x" = "X-L$found_dir"; then - haveit=yes - break - fi - done - if test -z "$haveit"; then - LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }-L$found_dir" - fi - if test "$acl_hardcode_minus_L" != no; then - dnl FIXME: Not sure whether we should use - dnl "-L$found_dir -l$name" or "-L$found_dir $found_so" - dnl here. - LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }$found_so" - else - dnl We cannot use $acl_hardcode_runpath_var and LD_RUN_PATH - dnl here, because this doesn't fit in flags passed to the - dnl compiler. So give up. No hardcoding. This affects only - dnl very old systems. - dnl FIXME: Not sure whether we should use - dnl "-L$found_dir -l$name" or "-L$found_dir $found_so" - dnl here. - LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }-l$name" - fi - fi - fi - fi - else - if test "X$found_a" != "X"; then - dnl Linking with a static library. - LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }$found_a" - else - dnl We shouldn't come here, but anyway it's good to have a - dnl fallback. - LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }-L$found_dir -l$name" - fi - fi - dnl Assume the include files are nearby. - additional_includedir= - case "$found_dir" in - */$acl_libdirstem | */$acl_libdirstem/) - basedir=`echo "X$found_dir" | sed -e 's,^X,,' -e "s,/$acl_libdirstem/"'*$,,'` - if test "$name" = '$1'; then - LIB[]NAME[]_PREFIX="$basedir" - fi - additional_includedir="$basedir/include" - ;; - */$acl_libdirstem2 | */$acl_libdirstem2/) - basedir=`echo "X$found_dir" | sed -e 's,^X,,' -e "s,/$acl_libdirstem2/"'*$,,'` - if test "$name" = '$1'; then - LIB[]NAME[]_PREFIX="$basedir" - fi - additional_includedir="$basedir/include" - ;; - esac - if test "X$additional_includedir" != "X"; then - dnl Potentially add $additional_includedir to $INCNAME. - dnl But don't add it - dnl 1. if it's the standard /usr/include, - dnl 2. if it's /usr/local/include and we are using GCC on Linux, - dnl 3. if it's already present in $CPPFLAGS or the already - dnl constructed $INCNAME, - dnl 4. if it doesn't exist as a directory. - if test "X$additional_includedir" != "X/usr/include"; then - haveit= - if test "X$additional_includedir" = "X/usr/local/include"; then - if test -n "$GCC"; then - case $host_os in - linux* | gnu* | k*bsd*-gnu) haveit=yes;; - esac - fi - fi - if test -z "$haveit"; then - for x in $CPPFLAGS $INC[]NAME; do - AC_LIB_WITH_FINAL_PREFIX([eval x=\"$x\"]) - if test "X$x" = "X-I$additional_includedir"; then - haveit=yes - break - fi - done - if test -z "$haveit"; then - if test -d "$additional_includedir"; then - dnl Really add $additional_includedir to $INCNAME. - INC[]NAME="${INC[]NAME}${INC[]NAME:+ }-I$additional_includedir" - fi - fi - fi - fi - fi - dnl Look for dependencies. - if test -n "$found_la"; then - dnl Read the .la file. It defines the variables - dnl dlname, library_names, old_library, dependency_libs, current, - dnl age, revision, installed, dlopen, dlpreopen, libdir. - save_libdir="$libdir" - case "$found_la" in - */* | *\\*) . "$found_la" ;; - *) . "./$found_la" ;; - esac - libdir="$save_libdir" - dnl We use only dependency_libs. - for dep in $dependency_libs; do - case "$dep" in - -L*) - additional_libdir=`echo "X$dep" | sed -e 's/^X-L//'` - dnl Potentially add $additional_libdir to $LIBNAME and $LTLIBNAME. - dnl But don't add it - dnl 1. if it's the standard /usr/lib, - dnl 2. if it's /usr/local/lib and we are using GCC on Linux, - dnl 3. if it's already present in $LDFLAGS or the already - dnl constructed $LIBNAME, - dnl 4. if it doesn't exist as a directory. - if test "X$additional_libdir" != "X/usr/$acl_libdirstem" \ - && test "X$additional_libdir" != "X/usr/$acl_libdirstem2"; then - haveit= - if test "X$additional_libdir" = "X/usr/local/$acl_libdirstem" \ - || test "X$additional_libdir" = "X/usr/local/$acl_libdirstem2"; then - if test -n "$GCC"; then - case $host_os in - linux* | gnu* | k*bsd*-gnu) haveit=yes;; - esac - fi - fi - if test -z "$haveit"; then - haveit= - for x in $LDFLAGS $LIB[]NAME; do - AC_LIB_WITH_FINAL_PREFIX([eval x=\"$x\"]) - if test "X$x" = "X-L$additional_libdir"; then - haveit=yes - break - fi - done - if test -z "$haveit"; then - if test -d "$additional_libdir"; then - dnl Really add $additional_libdir to $LIBNAME. - LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }-L$additional_libdir" - fi - fi - haveit= - for x in $LDFLAGS $LTLIB[]NAME; do - AC_LIB_WITH_FINAL_PREFIX([eval x=\"$x\"]) - if test "X$x" = "X-L$additional_libdir"; then - haveit=yes - break - fi - done - if test -z "$haveit"; then - if test -d "$additional_libdir"; then - dnl Really add $additional_libdir to $LTLIBNAME. - LTLIB[]NAME="${LTLIB[]NAME}${LTLIB[]NAME:+ }-L$additional_libdir" - fi - fi - fi - fi - ;; - -R*) - dir=`echo "X$dep" | sed -e 's/^X-R//'` - if test "$enable_rpath" != no; then - dnl Potentially add DIR to rpathdirs. - dnl The rpathdirs will be appended to $LIBNAME at the end. - haveit= - for x in $rpathdirs; do - if test "X$x" = "X$dir"; then - haveit=yes - break - fi - done - if test -z "$haveit"; then - rpathdirs="$rpathdirs $dir" - fi - dnl Potentially add DIR to ltrpathdirs. - dnl The ltrpathdirs will be appended to $LTLIBNAME at the end. - haveit= - for x in $ltrpathdirs; do - if test "X$x" = "X$dir"; then - haveit=yes - break - fi - done - if test -z "$haveit"; then - ltrpathdirs="$ltrpathdirs $dir" - fi - fi - ;; - -l*) - dnl Handle this in the next round. - names_next_round="$names_next_round "`echo "X$dep" | sed -e 's/^X-l//'` - ;; - *.la) - dnl Handle this in the next round. Throw away the .la's - dnl directory; it is already contained in a preceding -L - dnl option. - names_next_round="$names_next_round "`echo "X$dep" | sed -e 's,^X.*/,,' -e 's,^lib,,' -e 's,\.la$,,'` - ;; - *) - dnl Most likely an immediate library name. - LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }$dep" - LTLIB[]NAME="${LTLIB[]NAME}${LTLIB[]NAME:+ }$dep" - ;; - esac - done - fi - else - dnl Didn't find the library; assume it is in the system directories - dnl known to the linker and runtime loader. (All the system - dnl directories known to the linker should also be known to the - dnl runtime loader, otherwise the system is severely misconfigured.) - LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }-l$name" - LTLIB[]NAME="${LTLIB[]NAME}${LTLIB[]NAME:+ }-l$name" - fi - fi - fi - done - done - if test "X$rpathdirs" != "X"; then - if test -n "$acl_hardcode_libdir_separator"; then - dnl Weird platform: only the last -rpath option counts, the user must - dnl pass all path elements in one option. We can arrange that for a - dnl single library, but not when more than one $LIBNAMEs are used. - alldirs= - for found_dir in $rpathdirs; do - alldirs="${alldirs}${alldirs:+$acl_hardcode_libdir_separator}$found_dir" - done - dnl Note: acl_hardcode_libdir_flag_spec uses $libdir and $wl. - acl_save_libdir="$libdir" - libdir="$alldirs" - eval flag=\"$acl_hardcode_libdir_flag_spec\" - libdir="$acl_save_libdir" - LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }$flag" - else - dnl The -rpath options are cumulative. - for found_dir in $rpathdirs; do - acl_save_libdir="$libdir" - libdir="$found_dir" - eval flag=\"$acl_hardcode_libdir_flag_spec\" - libdir="$acl_save_libdir" - LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }$flag" - done - fi - fi - if test "X$ltrpathdirs" != "X"; then - dnl When using libtool, the option that works for both libraries and - dnl executables is -R. The -R options are cumulative. - for found_dir in $ltrpathdirs; do - LTLIB[]NAME="${LTLIB[]NAME}${LTLIB[]NAME:+ }-R$found_dir" - done - fi - popdef([P_A_C_K]) - popdef([PACKLIBS]) - popdef([PACKUP]) - popdef([PACK]) - popdef([NAME]) -]) - -dnl AC_LIB_APPENDTOVAR(VAR, CONTENTS) appends the elements of CONTENTS to VAR, -dnl unless already present in VAR. -dnl Works only for CPPFLAGS, not for LIB* variables because that sometimes -dnl contains two or three consecutive elements that belong together. -AC_DEFUN([AC_LIB_APPENDTOVAR], -[ - for element in [$2]; do - haveit= - for x in $[$1]; do - AC_LIB_WITH_FINAL_PREFIX([eval x=\"$x\"]) - if test "X$x" = "X$element"; then - haveit=yes - break - fi - done - if test -z "$haveit"; then - [$1]="${[$1]}${[$1]:+ }$element" - fi - done -]) - -dnl For those cases where a variable contains several -L and -l options -dnl referring to unknown libraries and directories, this macro determines the -dnl necessary additional linker options for the runtime path. -dnl AC_LIB_LINKFLAGS_FROM_LIBS([LDADDVAR], [LIBSVALUE], [USE-LIBTOOL]) -dnl sets LDADDVAR to linker options needed together with LIBSVALUE. -dnl If USE-LIBTOOL evaluates to non-empty, linking with libtool is assumed, -dnl otherwise linking without libtool is assumed. -AC_DEFUN([AC_LIB_LINKFLAGS_FROM_LIBS], -[ - AC_REQUIRE([AC_LIB_RPATH]) - AC_REQUIRE([AC_LIB_PREPARE_MULTILIB]) - $1= - if test "$enable_rpath" != no; then - if test -n "$acl_hardcode_libdir_flag_spec" && test "$acl_hardcode_minus_L" = no; then - dnl Use an explicit option to hardcode directories into the resulting - dnl binary. - rpathdirs= - next= - for opt in $2; do - if test -n "$next"; then - dir="$next" - dnl No need to hardcode the standard /usr/lib. - if test "X$dir" != "X/usr/$acl_libdirstem" \ - && test "X$dir" != "X/usr/$acl_libdirstem2"; then - rpathdirs="$rpathdirs $dir" - fi - next= - else - case $opt in - -L) next=yes ;; - -L*) dir=`echo "X$opt" | sed -e 's,^X-L,,'` - dnl No need to hardcode the standard /usr/lib. - if test "X$dir" != "X/usr/$acl_libdirstem" \ - && test "X$dir" != "X/usr/$acl_libdirstem2"; then - rpathdirs="$rpathdirs $dir" - fi - next= ;; - *) next= ;; - esac - fi - done - if test "X$rpathdirs" != "X"; then - if test -n ""$3""; then - dnl libtool is used for linking. Use -R options. - for dir in $rpathdirs; do - $1="${$1}${$1:+ }-R$dir" - done - else - dnl The linker is used for linking directly. - if test -n "$acl_hardcode_libdir_separator"; then - dnl Weird platform: only the last -rpath option counts, the user - dnl must pass all path elements in one option. - alldirs= - for dir in $rpathdirs; do - alldirs="${alldirs}${alldirs:+$acl_hardcode_libdir_separator}$dir" - done - acl_save_libdir="$libdir" - libdir="$alldirs" - eval flag=\"$acl_hardcode_libdir_flag_spec\" - libdir="$acl_save_libdir" - $1="$flag" - else - dnl The -rpath options are cumulative. - for dir in $rpathdirs; do - acl_save_libdir="$libdir" - libdir="$dir" - eval flag=\"$acl_hardcode_libdir_flag_spec\" - libdir="$acl_save_libdir" - $1="${$1}${$1:+ }$flag" - done - fi - fi - fi - fi - fi - AC_SUBST([$1]) -]) - -# lib-prefix.m4 serial 7 (gettext-0.18) -dnl Copyright (C) 2001-2005, 2008-2013 Free Software Foundation, Inc. -dnl This file is free software; the Free Software Foundation -dnl gives unlimited permission to copy and/or distribute it, -dnl with or without modifications, as long as this notice is preserved. - -dnl From Bruno Haible. - -dnl AC_LIB_ARG_WITH is synonymous to AC_ARG_WITH in autoconf-2.13, and -dnl similar to AC_ARG_WITH in autoconf 2.52...2.57 except that is doesn't -dnl require excessive bracketing. -ifdef([AC_HELP_STRING], -[AC_DEFUN([AC_LIB_ARG_WITH], [AC_ARG_WITH([$1],[[$2]],[$3],[$4])])], -[AC_DEFUN([AC_][LIB_ARG_WITH], [AC_ARG_WITH([$1],[$2],[$3],[$4])])]) - -dnl AC_LIB_PREFIX adds to the CPPFLAGS and LDFLAGS the flags that are needed -dnl to access previously installed libraries. The basic assumption is that -dnl a user will want packages to use other packages he previously installed -dnl with the same --prefix option. -dnl This macro is not needed if only AC_LIB_LINKFLAGS is used to locate -dnl libraries, but is otherwise very convenient. -AC_DEFUN([AC_LIB_PREFIX], -[ - AC_BEFORE([$0], [AC_LIB_LINKFLAGS]) - AC_REQUIRE([AC_PROG_CC]) - AC_REQUIRE([AC_CANONICAL_HOST]) - AC_REQUIRE([AC_LIB_PREPARE_MULTILIB]) - AC_REQUIRE([AC_LIB_PREPARE_PREFIX]) - dnl By default, look in $includedir and $libdir. - use_additional=yes - AC_LIB_WITH_FINAL_PREFIX([ - eval additional_includedir=\"$includedir\" - eval additional_libdir=\"$libdir\" - ]) - AC_LIB_ARG_WITH([lib-prefix], -[ --with-lib-prefix[=DIR] search for libraries in DIR/include and DIR/lib - --without-lib-prefix don't search for libraries in includedir and libdir], -[ - if test "X$withval" = "Xno"; then - use_additional=no - else - if test "X$withval" = "X"; then - AC_LIB_WITH_FINAL_PREFIX([ - eval additional_includedir=\"$includedir\" - eval additional_libdir=\"$libdir\" - ]) - else - additional_includedir="$withval/include" - additional_libdir="$withval/$acl_libdirstem" - fi - fi -]) - if test $use_additional = yes; then - dnl Potentially add $additional_includedir to $CPPFLAGS. - dnl But don't add it - dnl 1. if it's the standard /usr/include, - dnl 2. if it's already present in $CPPFLAGS, - dnl 3. if it's /usr/local/include and we are using GCC on Linux, - dnl 4. if it doesn't exist as a directory. - if test "X$additional_includedir" != "X/usr/include"; then - haveit= - for x in $CPPFLAGS; do - AC_LIB_WITH_FINAL_PREFIX([eval x=\"$x\"]) - if test "X$x" = "X-I$additional_includedir"; then - haveit=yes - break - fi - done - if test -z "$haveit"; then - if test "X$additional_includedir" = "X/usr/local/include"; then - if test -n "$GCC"; then - case $host_os in - linux* | gnu* | k*bsd*-gnu) haveit=yes;; - esac - fi - fi - if test -z "$haveit"; then - if test -d "$additional_includedir"; then - dnl Really add $additional_includedir to $CPPFLAGS. - CPPFLAGS="${CPPFLAGS}${CPPFLAGS:+ }-I$additional_includedir" - fi - fi - fi - fi - dnl Potentially add $additional_libdir to $LDFLAGS. - dnl But don't add it - dnl 1. if it's the standard /usr/lib, - dnl 2. if it's already present in $LDFLAGS, - dnl 3. if it's /usr/local/lib and we are using GCC on Linux, - dnl 4. if it doesn't exist as a directory. - if test "X$additional_libdir" != "X/usr/$acl_libdirstem"; then - haveit= - for x in $LDFLAGS; do - AC_LIB_WITH_FINAL_PREFIX([eval x=\"$x\"]) - if test "X$x" = "X-L$additional_libdir"; then - haveit=yes - break - fi - done - if test -z "$haveit"; then - if test "X$additional_libdir" = "X/usr/local/$acl_libdirstem"; then - if test -n "$GCC"; then - case $host_os in - linux*) haveit=yes;; - esac - fi - fi - if test -z "$haveit"; then - if test -d "$additional_libdir"; then - dnl Really add $additional_libdir to $LDFLAGS. - LDFLAGS="${LDFLAGS}${LDFLAGS:+ }-L$additional_libdir" - fi - fi - fi - fi - fi -]) - -dnl AC_LIB_PREPARE_PREFIX creates variables acl_final_prefix, -dnl acl_final_exec_prefix, containing the values to which $prefix and -dnl $exec_prefix will expand at the end of the configure script. -AC_DEFUN([AC_LIB_PREPARE_PREFIX], -[ - dnl Unfortunately, prefix and exec_prefix get only finally determined - dnl at the end of configure. - if test "X$prefix" = "XNONE"; then - acl_final_prefix="$ac_default_prefix" - else - acl_final_prefix="$prefix" - fi - if test "X$exec_prefix" = "XNONE"; then - acl_final_exec_prefix='${prefix}' - else - acl_final_exec_prefix="$exec_prefix" - fi - acl_save_prefix="$prefix" - prefix="$acl_final_prefix" - eval acl_final_exec_prefix=\"$acl_final_exec_prefix\" - prefix="$acl_save_prefix" -]) - -dnl AC_LIB_WITH_FINAL_PREFIX([statement]) evaluates statement, with the -dnl variables prefix and exec_prefix bound to the values they will have -dnl at the end of the configure script. -AC_DEFUN([AC_LIB_WITH_FINAL_PREFIX], -[ - acl_save_prefix="$prefix" - prefix="$acl_final_prefix" - acl_save_exec_prefix="$exec_prefix" - exec_prefix="$acl_final_exec_prefix" - $1 - exec_prefix="$acl_save_exec_prefix" - prefix="$acl_save_prefix" -]) - -dnl AC_LIB_PREPARE_MULTILIB creates -dnl - a variable acl_libdirstem, containing the basename of the libdir, either -dnl "lib" or "lib64" or "lib/64", -dnl - a variable acl_libdirstem2, as a secondary possible value for -dnl acl_libdirstem, either the same as acl_libdirstem or "lib/sparcv9" or -dnl "lib/amd64". -AC_DEFUN([AC_LIB_PREPARE_MULTILIB], -[ - dnl There is no formal standard regarding lib and lib64. - dnl On glibc systems, the current practice is that on a system supporting - dnl 32-bit and 64-bit instruction sets or ABIs, 64-bit libraries go under - dnl $prefix/lib64 and 32-bit libraries go under $prefix/lib. We determine - dnl the compiler's default mode by looking at the compiler's library search - dnl path. If at least one of its elements ends in /lib64 or points to a - dnl directory whose absolute pathname ends in /lib64, we assume a 64-bit ABI. - dnl Otherwise we use the default, namely "lib". - dnl On Solaris systems, the current practice is that on a system supporting - dnl 32-bit and 64-bit instruction sets or ABIs, 64-bit libraries go under - dnl $prefix/lib/64 (which is a symlink to either $prefix/lib/sparcv9 or - dnl $prefix/lib/amd64) and 32-bit libraries go under $prefix/lib. - AC_REQUIRE([AC_CANONICAL_HOST]) - acl_libdirstem=lib - acl_libdirstem2= - case "$host_os" in - solaris*) - dnl See Solaris 10 Software Developer Collection > Solaris 64-bit Developer's Guide > The Development Environment - dnl . - dnl "Portable Makefiles should refer to any library directories using the 64 symbolic link." - dnl But we want to recognize the sparcv9 or amd64 subdirectory also if the - dnl symlink is missing, so we set acl_libdirstem2 too. - AC_CACHE_CHECK([for 64-bit host], [gl_cv_solaris_64bit], - [AC_EGREP_CPP([sixtyfour bits], [ -#ifdef _LP64 -sixtyfour bits -#endif - ], [gl_cv_solaris_64bit=yes], [gl_cv_solaris_64bit=no]) - ]) - if test $gl_cv_solaris_64bit = yes; then - acl_libdirstem=lib/64 - case "$host_cpu" in - sparc*) acl_libdirstem2=lib/sparcv9 ;; - i*86 | x86_64) acl_libdirstem2=lib/amd64 ;; - esac - fi - ;; - *) - searchpath=`(LC_ALL=C $CC -print-search-dirs) 2>/dev/null | sed -n -e 's,^libraries: ,,p' | sed -e 's,^=,,'` - if test -n "$searchpath"; then - acl_save_IFS="${IFS= }"; IFS=":" - for searchdir in $searchpath; do - if test -d "$searchdir"; then - case "$searchdir" in - */lib64/ | */lib64 ) acl_libdirstem=lib64 ;; - */../ | */.. ) - # Better ignore directories of this form. They are misleading. - ;; - *) searchdir=`cd "$searchdir" && pwd` - case "$searchdir" in - */lib64 ) acl_libdirstem=lib64 ;; - esac ;; - esac - fi - done - IFS="$acl_save_IFS" - fi - ;; - esac - test -n "$acl_libdirstem2" || acl_libdirstem2="$acl_libdirstem" -]) - -# nls.m4 serial 5 (gettext-0.18) -dnl Copyright (C) 1995-2003, 2005-2006, 2008-2013 Free Software Foundation, -dnl Inc. -dnl This file is free software; the Free Software Foundation -dnl gives unlimited permission to copy and/or distribute it, -dnl with or without modifications, as long as this notice is preserved. -dnl -dnl This file can can be used in projects which are not available under -dnl the GNU General Public License or the GNU Library General Public -dnl License but which still want to provide support for the GNU gettext -dnl functionality. -dnl Please note that the actual code of the GNU gettext library is covered -dnl by the GNU Library General Public License, and the rest of the GNU -dnl gettext package package is covered by the GNU General Public License. -dnl They are *not* in the public domain. - -dnl Authors: -dnl Ulrich Drepper , 1995-2000. -dnl Bruno Haible , 2000-2003. - -AC_PREREQ([2.50]) - -AC_DEFUN([AM_NLS], -[ - AC_MSG_CHECKING([whether NLS is requested]) - dnl Default is enabled NLS - AC_ARG_ENABLE([nls], - [ --disable-nls do not use Native Language Support], - USE_NLS=$enableval, USE_NLS=yes) - AC_MSG_RESULT([$USE_NLS]) - AC_SUBST([USE_NLS]) -]) - # pkg.m4 - Macros to locate and utilise pkg-config. -*- Autoconf -*- # serial 1 (pkg-config-0.24) # @@ -2279,552 +237,6 @@ fi[]dnl ])# PKG_CHECK_MODULES -# po.m4 serial 21 (gettext-0.18.3) -dnl Copyright (C) 1995-2013 Free Software Foundation, Inc. -dnl This file is free software; the Free Software Foundation -dnl gives unlimited permission to copy and/or distribute it, -dnl with or without modifications, as long as this notice is preserved. -dnl -dnl This file can can be used in projects which are not available under -dnl the GNU General Public License or the GNU Library General Public -dnl License but which still want to provide support for the GNU gettext -dnl functionality. -dnl Please note that the actual code of the GNU gettext library is covered -dnl by the GNU Library General Public License, and the rest of the GNU -dnl gettext package package is covered by the GNU General Public License. -dnl They are *not* in the public domain. - -dnl Authors: -dnl Ulrich Drepper , 1995-2000. -dnl Bruno Haible , 2000-2003. - -AC_PREREQ([2.60]) - -dnl Checks for all prerequisites of the po subdirectory. -AC_DEFUN([AM_PO_SUBDIRS], -[ - AC_REQUIRE([AC_PROG_MAKE_SET])dnl - AC_REQUIRE([AC_PROG_INSTALL])dnl - AC_REQUIRE([AC_PROG_MKDIR_P])dnl - AC_REQUIRE([AC_PROG_SED])dnl - AC_REQUIRE([AM_NLS])dnl - - dnl Release version of the gettext macros. This is used to ensure that - dnl the gettext macros and po/Makefile.in.in are in sync. - AC_SUBST([GETTEXT_MACRO_VERSION], [0.18]) - - dnl Perform the following tests also if --disable-nls has been given, - dnl because they are needed for "make dist" to work. - - dnl Search for GNU msgfmt in the PATH. - dnl The first test excludes Solaris msgfmt and early GNU msgfmt versions. - dnl The second test excludes FreeBSD msgfmt. - AM_PATH_PROG_WITH_TEST(MSGFMT, msgfmt, - [$ac_dir/$ac_word --statistics /dev/null >&]AS_MESSAGE_LOG_FD[ 2>&1 && - (if $ac_dir/$ac_word --statistics /dev/null 2>&1 >/dev/null | grep usage >/dev/null; then exit 1; else exit 0; fi)], - :) - AC_PATH_PROG([GMSGFMT], [gmsgfmt], [$MSGFMT]) - - dnl Test whether it is GNU msgfmt >= 0.15. -changequote(,)dnl - case `$MSGFMT --version | sed 1q | sed -e 's,^[^0-9]*,,'` in - '' | 0.[0-9] | 0.[0-9].* | 0.1[0-4] | 0.1[0-4].*) MSGFMT_015=: ;; - *) MSGFMT_015=$MSGFMT ;; - esac -changequote([,])dnl - AC_SUBST([MSGFMT_015]) -changequote(,)dnl - case `$GMSGFMT --version | sed 1q | sed -e 's,^[^0-9]*,,'` in - '' | 0.[0-9] | 0.[0-9].* | 0.1[0-4] | 0.1[0-4].*) GMSGFMT_015=: ;; - *) GMSGFMT_015=$GMSGFMT ;; - esac -changequote([,])dnl - AC_SUBST([GMSGFMT_015]) - - dnl Search for GNU xgettext 0.12 or newer in the PATH. - dnl The first test excludes Solaris xgettext and early GNU xgettext versions. - dnl The second test excludes FreeBSD xgettext. - AM_PATH_PROG_WITH_TEST(XGETTEXT, xgettext, - [$ac_dir/$ac_word --omit-header --copyright-holder= --msgid-bugs-address= /dev/null >&]AS_MESSAGE_LOG_FD[ 2>&1 && - (if $ac_dir/$ac_word --omit-header --copyright-holder= --msgid-bugs-address= /dev/null 2>&1 >/dev/null | grep usage >/dev/null; then exit 1; else exit 0; fi)], - :) - dnl Remove leftover from FreeBSD xgettext call. - rm -f messages.po - - dnl Test whether it is GNU xgettext >= 0.15. -changequote(,)dnl - case `$XGETTEXT --version | sed 1q | sed -e 's,^[^0-9]*,,'` in - '' | 0.[0-9] | 0.[0-9].* | 0.1[0-4] | 0.1[0-4].*) XGETTEXT_015=: ;; - *) XGETTEXT_015=$XGETTEXT ;; - esac -changequote([,])dnl - AC_SUBST([XGETTEXT_015]) - - dnl Search for GNU msgmerge 0.11 or newer in the PATH. - AM_PATH_PROG_WITH_TEST(MSGMERGE, msgmerge, - [$ac_dir/$ac_word --update -q /dev/null /dev/null >&]AS_MESSAGE_LOG_FD[ 2>&1], :) - - dnl Installation directories. - dnl Autoconf >= 2.60 defines localedir. For older versions of autoconf, we - dnl have to define it here, so that it can be used in po/Makefile. - test -n "$localedir" || localedir='${datadir}/locale' - AC_SUBST([localedir]) - - dnl Support for AM_XGETTEXT_OPTION. - test -n "${XGETTEXT_EXTRA_OPTIONS+set}" || XGETTEXT_EXTRA_OPTIONS= - AC_SUBST([XGETTEXT_EXTRA_OPTIONS]) - - AC_CONFIG_COMMANDS([po-directories], [[ - for ac_file in $CONFIG_FILES; do - # Support "outfile[:infile[:infile...]]" - case "$ac_file" in - *:*) ac_file=`echo "$ac_file"|sed 's%:.*%%'` ;; - esac - # PO directories have a Makefile.in generated from Makefile.in.in. - case "$ac_file" in */Makefile.in) - # Adjust a relative srcdir. - ac_dir=`echo "$ac_file"|sed 's%/[^/][^/]*$%%'` - ac_dir_suffix=/`echo "$ac_dir"|sed 's%^\./%%'` - ac_dots=`echo "$ac_dir_suffix"|sed 's%/[^/]*%../%g'` - # In autoconf-2.13 it is called $ac_given_srcdir. - # In autoconf-2.50 it is called $srcdir. - test -n "$ac_given_srcdir" || ac_given_srcdir="$srcdir" - case "$ac_given_srcdir" in - .) top_srcdir=`echo $ac_dots|sed 's%/$%%'` ;; - /*) top_srcdir="$ac_given_srcdir" ;; - *) top_srcdir="$ac_dots$ac_given_srcdir" ;; - esac - # Treat a directory as a PO directory if and only if it has a - # POTFILES.in file. This allows packages to have multiple PO - # directories under different names or in different locations. - if test -f "$ac_given_srcdir/$ac_dir/POTFILES.in"; then - rm -f "$ac_dir/POTFILES" - test -n "$as_me" && echo "$as_me: creating $ac_dir/POTFILES" || echo "creating $ac_dir/POTFILES" - gt_tab=`printf '\t'` - cat "$ac_given_srcdir/$ac_dir/POTFILES.in" | sed -e "/^#/d" -e "/^[ ${gt_tab}]*\$/d" -e "s,.*, $top_srcdir/& \\\\," | sed -e "\$s/\(.*\) \\\\/\1/" > "$ac_dir/POTFILES" - POMAKEFILEDEPS="POTFILES.in" - # ALL_LINGUAS, POFILES, UPDATEPOFILES, DUMMYPOFILES, GMOFILES depend - # on $ac_dir but don't depend on user-specified configuration - # parameters. - if test -f "$ac_given_srcdir/$ac_dir/LINGUAS"; then - # The LINGUAS file contains the set of available languages. - if test -n "$OBSOLETE_ALL_LINGUAS"; then - test -n "$as_me" && echo "$as_me: setting ALL_LINGUAS in configure.in is obsolete" || echo "setting ALL_LINGUAS in configure.in is obsolete" - fi - ALL_LINGUAS_=`sed -e "/^#/d" -e "s/#.*//" "$ac_given_srcdir/$ac_dir/LINGUAS"` - # Hide the ALL_LINGUAS assignment from automake < 1.5. - eval 'ALL_LINGUAS''=$ALL_LINGUAS_' - POMAKEFILEDEPS="$POMAKEFILEDEPS LINGUAS" - else - # The set of available languages was given in configure.in. - # Hide the ALL_LINGUAS assignment from automake < 1.5. - eval 'ALL_LINGUAS''=$OBSOLETE_ALL_LINGUAS' - fi - # Compute POFILES - # as $(foreach lang, $(ALL_LINGUAS), $(srcdir)/$(lang).po) - # Compute UPDATEPOFILES - # as $(foreach lang, $(ALL_LINGUAS), $(lang).po-update) - # Compute DUMMYPOFILES - # as $(foreach lang, $(ALL_LINGUAS), $(lang).nop) - # Compute GMOFILES - # as $(foreach lang, $(ALL_LINGUAS), $(srcdir)/$(lang).gmo) - case "$ac_given_srcdir" in - .) srcdirpre= ;; - *) srcdirpre='$(srcdir)/' ;; - esac - POFILES= - UPDATEPOFILES= - DUMMYPOFILES= - GMOFILES= - for lang in $ALL_LINGUAS; do - POFILES="$POFILES $srcdirpre$lang.po" - UPDATEPOFILES="$UPDATEPOFILES $lang.po-update" - DUMMYPOFILES="$DUMMYPOFILES $lang.nop" - GMOFILES="$GMOFILES $srcdirpre$lang.gmo" - done - # CATALOGS depends on both $ac_dir and the user's LINGUAS - # environment variable. - INST_LINGUAS= - if test -n "$ALL_LINGUAS"; then - for presentlang in $ALL_LINGUAS; do - useit=no - if test "%UNSET%" != "$LINGUAS"; then - desiredlanguages="$LINGUAS" - else - desiredlanguages="$ALL_LINGUAS" - fi - for desiredlang in $desiredlanguages; do - # Use the presentlang catalog if desiredlang is - # a. equal to presentlang, or - # b. a variant of presentlang (because in this case, - # presentlang can be used as a fallback for messages - # which are not translated in the desiredlang catalog). - case "$desiredlang" in - "$presentlang"*) useit=yes;; - esac - done - if test $useit = yes; then - INST_LINGUAS="$INST_LINGUAS $presentlang" - fi - done - fi - CATALOGS= - if test -n "$INST_LINGUAS"; then - for lang in $INST_LINGUAS; do - CATALOGS="$CATALOGS $lang.gmo" - done - fi - test -n "$as_me" && echo "$as_me: creating $ac_dir/Makefile" || echo "creating $ac_dir/Makefile" - sed -e "/^POTFILES =/r $ac_dir/POTFILES" -e "/^# Makevars/r $ac_given_srcdir/$ac_dir/Makevars" -e "s|@POFILES@|$POFILES|g" -e "s|@UPDATEPOFILES@|$UPDATEPOFILES|g" -e "s|@DUMMYPOFILES@|$DUMMYPOFILES|g" -e "s|@GMOFILES@|$GMOFILES|g" -e "s|@CATALOGS@|$CATALOGS|g" -e "s|@POMAKEFILEDEPS@|$POMAKEFILEDEPS|g" "$ac_dir/Makefile.in" > "$ac_dir/Makefile" - for f in "$ac_given_srcdir/$ac_dir"/Rules-*; do - if test -f "$f"; then - case "$f" in - *.orig | *.bak | *~) ;; - *) cat "$f" >> "$ac_dir/Makefile" ;; - esac - fi - done - fi - ;; - esac - done]], - [# Capture the value of obsolete ALL_LINGUAS because we need it to compute - # POFILES, UPDATEPOFILES, DUMMYPOFILES, GMOFILES, CATALOGS. But hide it - # from automake < 1.5. - eval 'OBSOLETE_ALL_LINGUAS''="$ALL_LINGUAS"' - # Capture the value of LINGUAS because we need it to compute CATALOGS. - LINGUAS="${LINGUAS-%UNSET%}" - ]) -]) - -dnl Postprocesses a Makefile in a directory containing PO files. -AC_DEFUN([AM_POSTPROCESS_PO_MAKEFILE], -[ - # When this code is run, in config.status, two variables have already been - # set: - # - OBSOLETE_ALL_LINGUAS is the value of LINGUAS set in configure.in, - # - LINGUAS is the value of the environment variable LINGUAS at configure - # time. - -changequote(,)dnl - # Adjust a relative srcdir. - ac_dir=`echo "$ac_file"|sed 's%/[^/][^/]*$%%'` - ac_dir_suffix=/`echo "$ac_dir"|sed 's%^\./%%'` - ac_dots=`echo "$ac_dir_suffix"|sed 's%/[^/]*%../%g'` - # In autoconf-2.13 it is called $ac_given_srcdir. - # In autoconf-2.50 it is called $srcdir. - test -n "$ac_given_srcdir" || ac_given_srcdir="$srcdir" - case "$ac_given_srcdir" in - .) top_srcdir=`echo $ac_dots|sed 's%/$%%'` ;; - /*) top_srcdir="$ac_given_srcdir" ;; - *) top_srcdir="$ac_dots$ac_given_srcdir" ;; - esac - - # Find a way to echo strings without interpreting backslash. - if test "X`(echo '\t') 2>/dev/null`" = 'X\t'; then - gt_echo='echo' - else - if test "X`(printf '%s\n' '\t') 2>/dev/null`" = 'X\t'; then - gt_echo='printf %s\n' - else - echo_func () { - cat < "$ac_file.tmp" - tab=`printf '\t'` - if grep -l '@TCLCATALOGS@' "$ac_file" > /dev/null; then - # Add dependencies that cannot be formulated as a simple suffix rule. - for lang in $ALL_LINGUAS; do - frobbedlang=`echo $lang | sed -e 's/\..*$//' -e 'y/ABCDEFGHIJKLMNOPQRSTUVWXYZ/abcdefghijklmnopqrstuvwxyz/'` - cat >> "$ac_file.tmp" < /dev/null; then - # Add dependencies that cannot be formulated as a simple suffix rule. - for lang in $ALL_LINGUAS; do - frobbedlang=`echo $lang | sed -e 's/_/-/g' -e 's/^sr-CS/sr-SP/' -e 's/@latin$/-Latn/' -e 's/@cyrillic$/-Cyrl/' -e 's/^sr-SP$/sr-SP-Latn/' -e 's/^uz-UZ$/uz-UZ-Latn/'` - cat >> "$ac_file.tmp" <> "$ac_file.tmp" <, 1996. - -AC_PREREQ([2.50]) - -# Search path for a program which passes the given test. - -dnl AM_PATH_PROG_WITH_TEST(VARIABLE, PROG-TO-CHECK-FOR, -dnl TEST-PERFORMED-ON-FOUND_PROGRAM [, VALUE-IF-NOT-FOUND [, PATH]]) -AC_DEFUN([AM_PATH_PROG_WITH_TEST], -[ -# Prepare PATH_SEPARATOR. -# The user is always right. -if test "${PATH_SEPARATOR+set}" != set; then - # Determine PATH_SEPARATOR by trying to find /bin/sh in a PATH which - # contains only /bin. Note that ksh looks also at the FPATH variable, - # so we have to set that as well for the test. - PATH_SEPARATOR=: - (PATH='/bin;/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 \ - && { (PATH='/bin:/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 \ - || PATH_SEPARATOR=';' - } -fi - -# Find out how to test for executable files. Don't use a zero-byte file, -# as systems may use methods other than mode bits to determine executability. -cat >conf$$.file <<_ASEOF -#! /bin/sh -exit 0 -_ASEOF -chmod +x conf$$.file -if test -x conf$$.file >/dev/null 2>&1; then - ac_executable_p="test -x" -else - ac_executable_p="test -f" -fi -rm -f conf$$.file - -# Extract the first word of "$2", so it can be a program name with args. -set dummy $2; ac_word=[$]2 -AC_MSG_CHECKING([for $ac_word]) -AC_CACHE_VAL([ac_cv_path_$1], -[case "[$]$1" in - [[\\/]]* | ?:[[\\/]]*) - ac_cv_path_$1="[$]$1" # Let the user override the test with a path. - ;; - *) - ac_save_IFS="$IFS"; IFS=$PATH_SEPARATOR - for ac_dir in ifelse([$5], , $PATH, [$5]); do - IFS="$ac_save_IFS" - test -z "$ac_dir" && ac_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if $ac_executable_p "$ac_dir/$ac_word$ac_exec_ext"; then - echo "$as_me: trying $ac_dir/$ac_word..." >&AS_MESSAGE_LOG_FD - if [$3]; then - ac_cv_path_$1="$ac_dir/$ac_word$ac_exec_ext" - break 2 - fi - fi - done - done - IFS="$ac_save_IFS" -dnl If no 4th arg is given, leave the cache variable unset, -dnl so AC_PATH_PROGS will keep looking. -ifelse([$4], , , [ test -z "[$]ac_cv_path_$1" && ac_cv_path_$1="$4" -])dnl - ;; -esac])dnl -$1="$ac_cv_path_$1" -if test ifelse([$4], , [-n "[$]$1"], ["[$]$1" != "$4"]); then - AC_MSG_RESULT([$][$1]) -else - AC_MSG_RESULT([no]) -fi -AC_SUBST([$1])dnl -]) - # Copyright (C) 2002-2013 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation @@ -2837,10 +249,10 @@ # generated from the m4 files accompanying Automake X.Y. # (This private macro should not be called outside this file.) AC_DEFUN([AM_AUTOMAKE_VERSION], -[am__api_version='1.13' +[am__api_version='1.14' dnl Some users find AM_AUTOMAKE_VERSION and mistake it for a way to dnl require some minimum version. Point them to the right macro. -m4_if([$1], [1.13.3], [], +m4_if([$1], [1.14.1], [], [AC_FATAL([Do not call $0, use AM_INIT_AUTOMAKE([$1]).])])dnl ]) @@ -2856,11 +268,71 @@ # Call AM_AUTOMAKE_VERSION and AM_AUTOMAKE_VERSION so they can be traced. # This function is AC_REQUIREd by AM_INIT_AUTOMAKE. AC_DEFUN([AM_SET_CURRENT_AUTOMAKE_VERSION], -[AM_AUTOMAKE_VERSION([1.13.3])dnl +[AM_AUTOMAKE_VERSION([1.14.1])dnl m4_ifndef([AC_AUTOCONF_VERSION], [m4_copy([m4_PACKAGE_VERSION], [AC_AUTOCONF_VERSION])])dnl _AM_AUTOCONF_VERSION(m4_defn([AC_AUTOCONF_VERSION]))]) +# Copyright (C) 2011-2013 Free Software Foundation, Inc. +# +# This file is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# AM_PROG_AR([ACT-IF-FAIL]) +# ------------------------- +# Try to determine the archiver interface, and trigger the ar-lib wrapper +# if it is needed. If the detection of archiver interface fails, run +# ACT-IF-FAIL (default is to abort configure with a proper error message). +AC_DEFUN([AM_PROG_AR], +[AC_BEFORE([$0], [LT_INIT])dnl +AC_BEFORE([$0], [AC_PROG_LIBTOOL])dnl +AC_REQUIRE([AM_AUX_DIR_EXPAND])dnl +AC_REQUIRE_AUX_FILE([ar-lib])dnl +AC_CHECK_TOOLS([AR], [ar lib "link -lib"], [false]) +: ${AR=ar} + +AC_CACHE_CHECK([the archiver ($AR) interface], [am_cv_ar_interface], + [AC_LANG_PUSH([C]) + am_cv_ar_interface=ar + AC_COMPILE_IFELSE([AC_LANG_SOURCE([[int some_variable = 0;]])], + [am_ar_try='$AR cru libconftest.a conftest.$ac_objext >&AS_MESSAGE_LOG_FD' + AC_TRY_EVAL([am_ar_try]) + if test "$ac_status" -eq 0; then + am_cv_ar_interface=ar + else + am_ar_try='$AR -NOLOGO -OUT:conftest.lib conftest.$ac_objext >&AS_MESSAGE_LOG_FD' + AC_TRY_EVAL([am_ar_try]) + if test "$ac_status" -eq 0; then + am_cv_ar_interface=lib + else + am_cv_ar_interface=unknown + fi + fi + rm -f conftest.lib libconftest.a + ]) + AC_LANG_POP([C])]) + +case $am_cv_ar_interface in +ar) + ;; +lib) + # Microsoft lib, so override with the ar-lib wrapper script. + # FIXME: It is wrong to rewrite AR. + # But if we don't then we get into trouble of one sort or another. + # A longer-term fix would be to have automake use am__AR in this case, + # and then we could set am__AR="$am_aux_dir/ar-lib \$(AR)" or something + # similar. + AR="$am_aux_dir/ar-lib $AR" + ;; +unknown) + m4_default([$1], + [AC_MSG_ERROR([could not determine $AR interface])]) + ;; +esac +AC_SUBST([AR])dnl +]) + # AM_AUX_DIR_EXPAND -*- Autoconf -*- # Copyright (C) 2001-2013 Free Software Foundation, Inc. @@ -3223,6 +695,12 @@ # This macro actually does too much. Some checks are only needed if # your package does certain things. But this isn't really a big deal. +dnl Redefine AC_PROG_CC to automatically invoke _AM_PROG_CC_C_O. +m4_define([AC_PROG_CC], +m4_defn([AC_PROG_CC]) +[_AM_PROG_CC_C_O +]) + # AM_INIT_AUTOMAKE(PACKAGE, VERSION, [NO-DEFINE]) # AM_INIT_AUTOMAKE([OPTIONS]) # ----------------------------------------------- @@ -3331,7 +809,48 @@ AC_CONFIG_COMMANDS_PRE(dnl [m4_provide_if([_AM_COMPILER_EXEEXT], [AM_CONDITIONAL([am__EXEEXT], [test -n "$EXEEXT"])])])dnl -]) + +# POSIX will say in a future version that running "rm -f" with no argument +# is OK; and we want to be able to make that assumption in our Makefile +# recipes. So use an aggressive probe to check that the usage we want is +# actually supported "in the wild" to an acceptable degree. +# See automake bug#10828. +# To make any issue more visible, cause the running configure to be aborted +# by default if the 'rm' program in use doesn't match our expectations; the +# user can still override this though. +if rm -f && rm -fr && rm -rf; then : OK; else + cat >&2 <<'END' +Oops! + +Your 'rm' program seems unable to run without file operands specified +on the command line, even when the '-f' option is present. This is contrary +to the behaviour of most rm programs out there, and not conforming with +the upcoming POSIX standard: + +Please tell bug-automake@gnu.org about your system, including the value +of your $PATH and any error possibly output before this message. This +can help us improve future automake versions. + +END + if test x"$ACCEPT_INFERIOR_RM_PROGRAM" = x"yes"; then + echo 'Configuration will proceed anyway, since you have set the' >&2 + echo 'ACCEPT_INFERIOR_RM_PROGRAM variable to "yes"' >&2 + echo >&2 + else + cat >&2 <<'END' +Aborting the configuration process, to ensure you take notice of the issue. + +You can download and install GNU coreutils to get an 'rm' implementation +that behaves properly: . + +If you want to complete the configuration process using your problematic +'rm' anyway, export the environment variable ACCEPT_INFERIOR_RM_PROGRAM +to "yes", and re-run configure. + +END + AC_MSG_ERROR([Your 'rm' program is bad, sorry.]) + fi +fi]) dnl Hook into '_AC_COMPILER_EXEEXT' early to learn its expansion. Do not dnl add the conditional right here, as _AC_COMPILER_EXEEXT may be further @@ -3339,7 +858,6 @@ m4_define([_AC_COMPILER_EXEEXT], m4_defn([_AC_COMPILER_EXEEXT])[m4_provide([_AM_COMPILER_EXEEXT])]) - # When config.status generates a header, we must update the stamp-h file. # This file resides in the same directory as the config header # that is generated. The stamp files are numbered to have different names. @@ -3521,6 +1039,70 @@ AC_DEFUN([_AM_IF_OPTION], [m4_ifset(_AM_MANGLE_OPTION([$1]), [$2], [$3])]) +# Copyright (C) 1999-2013 Free Software Foundation, Inc. +# +# This file is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# _AM_PROG_CC_C_O +# --------------- +# Like AC_PROG_CC_C_O, but changed for automake. We rewrite AC_PROG_CC +# to automatically call this. +AC_DEFUN([_AM_PROG_CC_C_O], +[AC_REQUIRE([AM_AUX_DIR_EXPAND])dnl +AC_REQUIRE_AUX_FILE([compile])dnl +AC_LANG_PUSH([C])dnl +AC_CACHE_CHECK( + [whether $CC understands -c and -o together], + [am_cv_prog_cc_c_o], + [AC_LANG_CONFTEST([AC_LANG_PROGRAM([])]) + # Make sure it works both with $CC and with simple cc. + # Following AC_PROG_CC_C_O, we do the test twice because some + # compilers refuse to overwrite an existing .o file with -o, + # though they will create one. + am_cv_prog_cc_c_o=yes + for am_i in 1 2; do + if AM_RUN_LOG([$CC -c conftest.$ac_ext -o conftest2.$ac_objext]) \ + && test -f conftest2.$ac_objext; then + : OK + else + am_cv_prog_cc_c_o=no + break + fi + done + rm -f core conftest* + unset am_i]) +if test "$am_cv_prog_cc_c_o" != yes; then + # Losing compiler, so override with the script. + # FIXME: It is wrong to rewrite CC. + # But if we don't then we get into trouble of one sort or another. + # A longer-term fix would be to have automake use am__CC in this case, + # and then we could set am__CC="\$(top_srcdir)/compile \$(CC)" + CC="$am_aux_dir/compile $CC" +fi +AC_LANG_POP([C])]) + +# For backward compatibility. +AC_DEFUN_ONCE([AM_PROG_CC_C_O], [AC_REQUIRE([AC_PROG_CC])]) + +# Copyright (C) 2001-2013 Free Software Foundation, Inc. +# +# This file is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# AM_RUN_LOG(COMMAND) +# ------------------- +# Run COMMAND, save the exit status in ac_status, and log it. +# (This has been adapted from Autoconf's _AC_RUN_LOG macro.) +AC_DEFUN([AM_RUN_LOG], +[{ echo "$as_me:$LINENO: $1" >&AS_MESSAGE_LOG_FD + ($1) >&AS_MESSAGE_LOG_FD 2>&AS_MESSAGE_LOG_FD + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&AS_MESSAGE_LOG_FD + (exit $ac_status); }]) + # Check to make sure that the build environment is sane. -*- Autoconf -*- # Copyright (C) 1996-2013 Free Software Foundation, Inc. @@ -3842,3 +1424,17 @@ AC_SUBST([am__untar]) ]) # _AM_PROG_TAR +m4_include([m4/gettext.m4]) +m4_include([m4/iconv.m4]) +m4_include([m4/intltool.m4]) +m4_include([m4/lib-ld.m4]) +m4_include([m4/lib-link.m4]) +m4_include([m4/lib-prefix.m4]) +m4_include([m4/libtool.m4]) +m4_include([m4/ltoptions.m4]) +m4_include([m4/ltsugar.m4]) +m4_include([m4/ltversion.m4]) +m4_include([m4/lt~obsolete.m4]) +m4_include([m4/nls.m4]) +m4_include([m4/po.m4]) +m4_include([m4/progtest.m4]) diff -Nru klavaro-1.9.9/ar-lib klavaro-3.00/ar-lib --- klavaro-1.9.9/ar-lib 1970-01-01 00:00:00.000000000 +0000 +++ klavaro-3.00/ar-lib 2013-12-29 00:05:10.000000000 +0000 @@ -0,0 +1,270 @@ +#! /bin/sh +# Wrapper for Microsoft lib.exe + +me=ar-lib +scriptversion=2012-03-01.08; # UTC + +# Copyright (C) 2010-2013 Free Software Foundation, Inc. +# Written by Peter Rosin . +# +# 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, see . + +# As a special exception to the GNU General Public License, if you +# distribute this file as part of a program that contains a +# configuration script generated by Autoconf, you may include it under +# the same distribution terms that you use for the rest of that program. + +# This file is maintained in Automake, please report +# bugs to or send patches to +# . + + +# func_error message +func_error () +{ + echo "$me: $1" 1>&2 + exit 1 +} + +file_conv= + +# func_file_conv build_file +# Convert a $build file to $host form and store it in $file +# Currently only supports Windows hosts. +func_file_conv () +{ + file=$1 + case $file in + / | /[!/]*) # absolute file, and not a UNC file + if test -z "$file_conv"; then + # lazily determine how to convert abs files + case `uname -s` in + MINGW*) + file_conv=mingw + ;; + CYGWIN*) + file_conv=cygwin + ;; + *) + file_conv=wine + ;; + esac + fi + case $file_conv in + mingw) + file=`cmd //C echo "$file " | sed -e 's/"\(.*\) " *$/\1/'` + ;; + cygwin) + file=`cygpath -m "$file" || echo "$file"` + ;; + wine) + file=`winepath -w "$file" || echo "$file"` + ;; + esac + ;; + esac +} + +# func_at_file at_file operation archive +# Iterate over all members in AT_FILE performing OPERATION on ARCHIVE +# for each of them. +# When interpreting the content of the @FILE, do NOT use func_file_conv, +# since the user would need to supply preconverted file names to +# binutils ar, at least for MinGW. +func_at_file () +{ + operation=$2 + archive=$3 + at_file_contents=`cat "$1"` + eval set x "$at_file_contents" + shift + + for member + do + $AR -NOLOGO $operation:"$member" "$archive" || exit $? + done +} + +case $1 in + '') + func_error "no command. Try '$0 --help' for more information." + ;; + -h | --h*) + cat <; + + * Release 3.00 + * Fixed: + - Typo: prefered --> preferred + - Manpage: minus as hyphen corrected with escapes (\-) + * Changed: + - Migrated from GTK2 to GTK3. + - GtkDatabox is incorporated statically, because its last release does + not support GTK3 yet. + - FontSelectionDialog is deprecated, so using now a FontButton. + - Some translatable messages were reviewed. + - Default background color for the tutor practice text came back to + ice-white: colors are easier customizable in the preferences.ini file. + * Added: + - Keywords in the klavaro.desktop file. + - Goals for touch typing skill are now configurable through the + prefences.ini file. + - Programmer Dvorak keyboard layout added (dvorak_us_prog.kbd). + * Updated translations: + - Basque. + - Danish. + - Dutch. + - Esperanto. + - Greek. + - Hungarian. + - Portuguese (Brazilian). + - Ukrainian. + - Vietnamese. + * Added translations: + - Finnish (partial). + +2014-01-03 Felipe Castro (-) ; gettextize (=) + + * Release 2.01 + * Fixed: + - Icon indication in the .desktop file now gives only the relative + name (klavaro), not the complete absolute path: more general. + - Italian translation, _Next <==> _Previous (by hand, waiting update + from the Translation Project) + - Symbols '-' and '\' at middle of words are avoided now; and '´' is + avoided at end of words (adapt module). + - It was aborting in Windows systems where LANG=en_US. + * Changed: + = Makefile.am (ACLOCAL_AMFLAGS): New variable. + = (EXTRA_DIST): Add m4/ChangeLog. + = configure.ac (AM_GNU_GETTEXT_VERSION): Bump to 0.18.3. + * Updated translations: + - Kazakh + - Khirgyz + +2013-09-22 Felipe Castro (-) + + * Release 2.00 + * Changed: + - ru.paragraphs for practicing module fluidity in Russian. + - Not relocating very old paths to the "newer" ones. + 2013-08-31 Felipe Castro (-) * Release 1.9.9 @@ -7,7 +65,7 @@ - Turkish keyboard layouts. * Changed: - Updated the greek keyboard layout, the old one is renamed to qwerty_old. - - Default foreground color for the tutor practice text made more greenish. + - Default background color for the tutor practice text made more greenish. - Updated autotools and gettext infrastructure. 2013-08-01 Felipe Castro (-) diff -Nru klavaro-1.9.9/compile klavaro-3.00/compile --- klavaro-1.9.9/compile 1970-01-01 00:00:00.000000000 +0000 +++ klavaro-3.00/compile 2013-09-22 12:45:16.000000000 +0000 @@ -0,0 +1,347 @@ +#! /bin/sh +# Wrapper for compilers which do not understand '-c -o'. + +scriptversion=2012-10-14.11; # UTC + +# Copyright (C) 1999-2013 Free Software Foundation, Inc. +# Written by Tom Tromey . +# +# 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, see . + +# As a special exception to the GNU General Public License, if you +# distribute this file as part of a program that contains a +# configuration script generated by Autoconf, you may include it under +# the same distribution terms that you use for the rest of that program. + +# This file is maintained in Automake, please report +# bugs to or send patches to +# . + +nl=' +' + +# We need space, tab and new line, in precisely that order. Quoting is +# there to prevent tools from complaining about whitespace usage. +IFS=" "" $nl" + +file_conv= + +# func_file_conv build_file lazy +# Convert a $build file to $host form and store it in $file +# Currently only supports Windows hosts. If the determined conversion +# type is listed in (the comma separated) LAZY, no conversion will +# take place. +func_file_conv () +{ + file=$1 + case $file in + / | /[!/]*) # absolute file, and not a UNC file + if test -z "$file_conv"; then + # lazily determine how to convert abs files + case `uname -s` in + MINGW*) + file_conv=mingw + ;; + CYGWIN*) + file_conv=cygwin + ;; + *) + file_conv=wine + ;; + esac + fi + case $file_conv/,$2, in + *,$file_conv,*) + ;; + mingw/*) + file=`cmd //C echo "$file " | sed -e 's/"\(.*\) " *$/\1/'` + ;; + cygwin/*) + file=`cygpath -m "$file" || echo "$file"` + ;; + wine/*) + file=`winepath -w "$file" || echo "$file"` + ;; + esac + ;; + esac +} + +# func_cl_dashL linkdir +# Make cl look for libraries in LINKDIR +func_cl_dashL () +{ + func_file_conv "$1" + if test -z "$lib_path"; then + lib_path=$file + else + lib_path="$lib_path;$file" + fi + linker_opts="$linker_opts -LIBPATH:$file" +} + +# func_cl_dashl library +# Do a library search-path lookup for cl +func_cl_dashl () +{ + lib=$1 + found=no + save_IFS=$IFS + IFS=';' + for dir in $lib_path $LIB + do + IFS=$save_IFS + if $shared && test -f "$dir/$lib.dll.lib"; then + found=yes + lib=$dir/$lib.dll.lib + break + fi + if test -f "$dir/$lib.lib"; then + found=yes + lib=$dir/$lib.lib + break + fi + if test -f "$dir/lib$lib.a"; then + found=yes + lib=$dir/lib$lib.a + break + fi + done + IFS=$save_IFS + + if test "$found" != yes; then + lib=$lib.lib + fi +} + +# func_cl_wrapper cl arg... +# Adjust compile command to suit cl +func_cl_wrapper () +{ + # Assume a capable shell + lib_path= + shared=: + linker_opts= + for arg + do + if test -n "$eat"; then + eat= + else + case $1 in + -o) + # configure might choose to run compile as 'compile cc -o foo foo.c'. + eat=1 + case $2 in + *.o | *.[oO][bB][jJ]) + func_file_conv "$2" + set x "$@" -Fo"$file" + shift + ;; + *) + func_file_conv "$2" + set x "$@" -Fe"$file" + shift + ;; + esac + ;; + -I) + eat=1 + func_file_conv "$2" mingw + set x "$@" -I"$file" + shift + ;; + -I*) + func_file_conv "${1#-I}" mingw + set x "$@" -I"$file" + shift + ;; + -l) + eat=1 + func_cl_dashl "$2" + set x "$@" "$lib" + shift + ;; + -l*) + func_cl_dashl "${1#-l}" + set x "$@" "$lib" + shift + ;; + -L) + eat=1 + func_cl_dashL "$2" + ;; + -L*) + func_cl_dashL "${1#-L}" + ;; + -static) + shared=false + ;; + -Wl,*) + arg=${1#-Wl,} + save_ifs="$IFS"; IFS=',' + for flag in $arg; do + IFS="$save_ifs" + linker_opts="$linker_opts $flag" + done + IFS="$save_ifs" + ;; + -Xlinker) + eat=1 + linker_opts="$linker_opts $2" + ;; + -*) + set x "$@" "$1" + shift + ;; + *.cc | *.CC | *.cxx | *.CXX | *.[cC]++) + func_file_conv "$1" + set x "$@" -Tp"$file" + shift + ;; + *.c | *.cpp | *.CPP | *.lib | *.LIB | *.Lib | *.OBJ | *.obj | *.[oO]) + func_file_conv "$1" mingw + set x "$@" "$file" + shift + ;; + *) + set x "$@" "$1" + shift + ;; + esac + fi + shift + done + if test -n "$linker_opts"; then + linker_opts="-link$linker_opts" + fi + exec "$@" $linker_opts + exit 1 +} + +eat= + +case $1 in + '') + echo "$0: No command. Try '$0 --help' for more information." 1>&2 + exit 1; + ;; + -h | --h*) + cat <<\EOF +Usage: compile [--help] [--version] PROGRAM [ARGS] + +Wrapper for compilers which do not understand '-c -o'. +Remove '-o dest.o' from ARGS, run PROGRAM with the remaining +arguments, and rename the output as expected. + +If you are trying to build a whole package this is not the +right script to run: please start by reading the file 'INSTALL'. + +Report bugs to . +EOF + exit $? + ;; + -v | --v*) + echo "compile $scriptversion" + exit $? + ;; + cl | *[/\\]cl | cl.exe | *[/\\]cl.exe ) + func_cl_wrapper "$@" # Doesn't return... + ;; +esac + +ofile= +cfile= + +for arg +do + if test -n "$eat"; then + eat= + else + case $1 in + -o) + # configure might choose to run compile as 'compile cc -o foo foo.c'. + # So we strip '-o arg' only if arg is an object. + eat=1 + case $2 in + *.o | *.obj) + ofile=$2 + ;; + *) + set x "$@" -o "$2" + shift + ;; + esac + ;; + *.c) + cfile=$1 + set x "$@" "$1" + shift + ;; + *) + set x "$@" "$1" + shift + ;; + esac + fi + shift +done + +if test -z "$ofile" || test -z "$cfile"; then + # If no '-o' option was seen then we might have been invoked from a + # pattern rule where we don't need one. That is ok -- this is a + # normal compilation that the losing compiler can handle. If no + # '.c' file was seen then we are probably linking. That is also + # ok. + exec "$@" +fi + +# Name of file we expect compiler to create. +cofile=`echo "$cfile" | sed 's|^.*[\\/]||; s|^[a-zA-Z]:||; s/\.c$/.o/'` + +# Create the lock directory. +# Note: use '[/\\:.-]' here to ensure that we don't use the same name +# that we are using for the .o file. Also, base the name on the expected +# object file name, since that is what matters with a parallel build. +lockdir=`echo "$cofile" | sed -e 's|[/\\:.-]|_|g'`.d +while true; do + if mkdir "$lockdir" >/dev/null 2>&1; then + break + fi + sleep 1 +done +# FIXME: race condition here if user kills between mkdir and trap. +trap "rmdir '$lockdir'; exit 1" 1 2 15 + +# Run the compile. +"$@" +ret=$? + +if test -f "$cofile"; then + test "$cofile" = "$ofile" || mv "$cofile" "$ofile" +elif test -f "${cofile}bj"; then + test "${cofile}bj" = "$ofile" || mv "${cofile}bj" "$ofile" +fi + +rmdir "$lockdir" +exit $ret + +# Local Variables: +# mode: shell-script +# sh-indentation: 2 +# eval: (add-hook 'write-file-hooks 'time-stamp) +# time-stamp-start: "scriptversion=" +# time-stamp-format: "%:y-%02m-%02d.%02H" +# time-stamp-time-zone: "UTC" +# time-stamp-end: "; # UTC" +# End: diff -Nru klavaro-1.9.9/config.guess klavaro-3.00/config.guess --- klavaro-1.9.9/config.guess 2013-08-15 13:42:12.000000000 +0000 +++ klavaro-3.00/config.guess 2013-09-22 12:45:16.000000000 +0000 @@ -2,7 +2,7 @@ # Attempt to guess a canonical system name. # Copyright 1992-2013 Free Software Foundation, Inc. -timestamp='2013-05-16' +timestamp='2013-06-10' # This file is free software; you can redistribute it and/or modify it # under the terms of the GNU General Public License as published by @@ -995,6 +995,12 @@ ppc:Linux:*:*) echo powerpc-unknown-linux-${LIBC} exit ;; + ppc64le:Linux:*:*) + echo powerpc64le-unknown-linux-${LIBC} + exit ;; + ppcle:Linux:*:*) + echo powerpcle-unknown-linux-${LIBC} + exit ;; s390:Linux:*:* | s390x:Linux:*:*) echo ${UNAME_MACHINE}-ibm-linux-${LIBC} exit ;; diff -Nru klavaro-1.9.9/config.h.in klavaro-3.00/config.h.in --- klavaro-1.9.9/config.h.in 2013-08-15 16:46:01.000000000 +0000 +++ klavaro-3.00/config.h.in 2014-01-21 23:31:24.000000000 +0000 @@ -22,12 +22,12 @@ */ #undef HAVE_DCGETTEXT +/* Define to 1 if you have the header file. */ +#undef HAVE_DLFCN_H + /* Define if the GNU gettext() function is already present or preinstalled. */ #undef HAVE_GETTEXT -/* Define to 1 if you have the header file. */ -#undef HAVE_GTKDATABOX_H - /* Define if you have the iconv() function and it works. */ #undef HAVE_ICONV @@ -37,9 +37,6 @@ /* Define to 1 if you have the `curl' library (-lcurl). */ #undef HAVE_LIBCURL -/* Define to 1 if you have the `gtkdatabox' library (-lgtkdatabox). */ -#undef HAVE_LIBGTKDATABOX - /* Define to 1 if you have the `m' library (-lm). */ #undef HAVE_LIBM @@ -106,6 +103,10 @@ /* Define to 1 if you have the header file. */ #undef HAVE_UNISTD_H +/* Define to the sub-directory in which libtool stores uninstalled libraries. + */ +#undef LT_OBJDIR + /* Name of package */ #undef PACKAGE diff -Nru klavaro-1.9.9/config.rpath klavaro-3.00/config.rpath --- klavaro-1.9.9/config.rpath 2013-08-15 13:42:06.000000000 +0000 +++ klavaro-3.00/config.rpath 2014-01-04 19:02:03.000000000 +0000 @@ -2,7 +2,7 @@ # Output a system dependent set of variables, describing how to set the # run time search path of shared libraries in an executable. # -# Copyright 1996-2010 Free Software Foundation, Inc. +# Copyright 1996-2013 Free Software Foundation, Inc. # Taken from GNU libtool, 2001 # Originally by Gordon Matzigkeit , 1996 # @@ -25,7 +25,7 @@ # known workaround is to choose shorter directory names for the build # directory and/or the installation directory. -# All known linkers require a `.a' archive for static linking (except MSVC, +# All known linkers require a '.a' archive for static linking (except MSVC, # which needs '.lib'). libext=a shrext=.so @@ -57,13 +57,6 @@ aix*) wl='-Wl,' ;; - darwin*) - case $cc_basename in - xlc*) - wl='-Wl,' - ;; - esac - ;; mingw* | cygwin* | pw32* | os2* | cegcc*) ;; hpux9* | hpux10* | hpux11*) @@ -72,9 +65,7 @@ irix5* | irix6* | nonstopux*) wl='-Wl,' ;; - newsos6) - ;; - linux* | k*bsd*-gnu) + linux* | k*bsd*-gnu | kopensolaris*-gnu) case $cc_basename in ecc*) wl='-Wl,' @@ -85,17 +76,26 @@ lf95*) wl='-Wl,' ;; - pgcc | pgf77 | pgf90) + nagfor*) + wl='-Wl,-Wl,,' + ;; + pgcc* | pgf77* | pgf90* | pgf95* | pgfortran*) wl='-Wl,' ;; ccc*) wl='-Wl,' ;; + xl* | bgxl* | bgf* | mpixl*) + wl='-Wl,' + ;; como) wl='-lopt=' ;; *) case `$CC -V 2>&1 | sed 5q` in + *Sun\ F* | *Sun*Fortran*) + wl= + ;; *Sun\ C*) wl='-Wl,' ;; @@ -103,13 +103,24 @@ ;; esac ;; + newsos6) + ;; + *nto* | *qnx*) + ;; osf3* | osf4* | osf5*) wl='-Wl,' ;; rdos*) ;; solaris*) - wl='-Wl,' + case $cc_basename in + f77* | f90* | f95* | sunf77* | sunf90* | sunf95*) + wl='-Qoption ld ' + ;; + *) + wl='-Wl,' + ;; + esac ;; sunos4*) wl='-Qoption ld ' @@ -171,15 +182,14 @@ fi ;; amigaos*) - hardcode_libdir_flag_spec='-L$libdir' - hardcode_minus_L=yes - # Samuel A. Falvo II reports - # that the semantics of dynamic libraries on AmigaOS, at least up - # to version 4, is to share data among multiple programs linked - # with the same dynamic library. Since this doesn't match the - # behavior of shared libraries on other platforms, we cannot use - # them. - ld_shlibs=no + case "$host_cpu" in + powerpc) + ;; + m68k) + hardcode_libdir_flag_spec='-L$libdir' + hardcode_minus_L=yes + ;; + esac ;; beos*) if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then @@ -198,11 +208,13 @@ ld_shlibs=no fi ;; + haiku*) + ;; interix[3-9]*) hardcode_direct=no hardcode_libdir_flag_spec='${wl}-rpath,$libdir' ;; - gnu* | linux* | k*bsd*-gnu) + gnu* | linux* | tpf* | k*bsd*-gnu | kopensolaris*-gnu) if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then : else @@ -325,10 +337,14 @@ fi ;; amigaos*) - hardcode_libdir_flag_spec='-L$libdir' - hardcode_minus_L=yes - # see comment about different semantics on the GNU ld section - ld_shlibs=no + case "$host_cpu" in + powerpc) + ;; + m68k) + hardcode_libdir_flag_spec='-L$libdir' + hardcode_minus_L=yes + ;; + esac ;; bsdi[45]*) ;; @@ -342,24 +358,15 @@ ;; darwin* | rhapsody*) hardcode_direct=no - if test "$GCC" = yes ; then + if { case $cc_basename in ifort*) true;; *) test "$GCC" = yes;; esac; }; then : else - case $cc_basename in - xlc*) - ;; - *) - ld_shlibs=no - ;; - esac + ld_shlibs=no fi ;; dgux*) hardcode_libdir_flag_spec='-L$libdir' ;; - freebsd1*) - ld_shlibs=no - ;; freebsd2.2*) hardcode_libdir_flag_spec='-R$libdir' hardcode_direct=yes @@ -420,6 +427,8 @@ hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir' hardcode_libdir_separator=: ;; + *nto* | *qnx*) + ;; openbsd*) if test -f /usr/libexec/ld.so; then hardcode_direct=yes @@ -515,7 +524,12 @@ library_names_spec='$libname$shrext' ;; amigaos*) - library_names_spec='$libname.a' + case "$host_cpu" in + powerpc*) + library_names_spec='$libname$shrext' ;; + m68k) + library_names_spec='$libname.a' ;; + esac ;; beos*) library_names_spec='$libname$shrext' @@ -534,8 +548,6 @@ dgux*) library_names_spec='$libname$shrext' ;; - freebsd1*) - ;; freebsd* | dragonfly*) case "$host_os" in freebsd[123]*) @@ -547,6 +559,9 @@ gnu*) library_names_spec='$libname$shrext' ;; + haiku*) + library_names_spec='$libname$shrext' + ;; hpux9* | hpux10* | hpux11*) case $host_cpu in ia64*) @@ -582,7 +597,7 @@ ;; linux*oldld* | linux*aout* | linux*coff*) ;; - linux* | k*bsd*-gnu) + linux* | k*bsd*-gnu | kopensolaris*-gnu) library_names_spec='$libname$shrext' ;; knetbsd*-gnu) @@ -594,7 +609,7 @@ newsos6) library_names_spec='$libname$shrext' ;; - nto-qnx*) + *nto* | *qnx*) library_names_spec='$libname$shrext' ;; openbsd*) @@ -625,6 +640,9 @@ sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX* | sysv4*uw2*) library_names_spec='$libname$shrext' ;; + tpf*) + library_names_spec='$libname$shrext' + ;; uts4*) library_names_spec='$libname$shrext' ;; diff -Nru klavaro-1.9.9/config.sub klavaro-3.00/config.sub --- klavaro-1.9.9/config.sub 2013-08-15 13:42:12.000000000 +0000 +++ klavaro-3.00/config.sub 2013-09-22 12:45:16.000000000 +0000 @@ -2,7 +2,7 @@ # Configuration validation subroutine script. # Copyright 1992-2013 Free Software Foundation, Inc. -timestamp='2013-04-24' +timestamp='2013-08-10' # This file is free software; you can redistribute it and/or modify it # under the terms of the GNU General Public License as published by @@ -257,7 +257,7 @@ | avr | avr32 \ | be32 | be64 \ | bfin \ - | c4x | clipper \ + | c4x | c8051 | clipper \ | d10v | d30v | dlx | dsp16xx \ | epiphany \ | fido | fr30 | frv \ @@ -372,7 +372,7 @@ | be32-* | be64-* \ | bfin-* | bs2000-* \ | c[123]* | c30-* | [cjt]90-* | c4x-* \ - | clipper-* | craynv-* | cydra-* \ + | c8051-* | clipper-* | craynv-* | cydra-* \ | d10v-* | d30v-* | dlx-* \ | elxsi-* \ | f30[01]-* | f700-* | fido-* | fr30-* | frv-* | fx80-* \ @@ -794,7 +794,7 @@ os=-mingw64 ;; mingw32) - basic_machine=i386-pc + basic_machine=i686-pc os=-mingw32 ;; mingw32ce) @@ -830,7 +830,7 @@ basic_machine=`echo $basic_machine | sed -e 's/ms1-/mt-/'` ;; msys) - basic_machine=i386-pc + basic_machine=i686-pc os=-msys ;; mvs) @@ -1546,6 +1546,9 @@ c4x-* | tic4x-*) os=-coff ;; + c8051-*) + os=-elf + ;; hexagon-*) os=-elf ;; diff -Nru klavaro-1.9.9/configure klavaro-3.00/configure --- klavaro-1.9.9/configure 2013-08-15 13:46:54.000000000 +0000 +++ klavaro-3.00/configure 2014-01-21 23:25:36.000000000 +0000 @@ -1,6 +1,6 @@ #! /bin/sh # Guess values for system-dependent variables and create Makefiles. -# Generated by GNU Autoconf 2.69 for klavaro 1.9.9. +# Generated by GNU Autoconf 2.69 for klavaro 3.00. # # Report bugs to . # @@ -198,6 +198,14 @@ as_lineno_2=";as_suggested=$as_suggested$LINENO;as_suggested=$as_suggested" as_lineno_2a=\$LINENO eval 'test \"x\$as_lineno_1'\$as_run'\" != \"x\$as_lineno_2'\$as_run'\" && test \"x\`expr \$as_lineno_1'\$as_run' + 1\`\" = \"x\$as_lineno_2'\$as_run'\"' || exit 1 + + test -n \"\${ZSH_VERSION+set}\${BASH_VERSION+set}\" || ( + ECHO='\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\' + ECHO=\$ECHO\$ECHO\$ECHO\$ECHO\$ECHO + ECHO=\$ECHO\$ECHO\$ECHO\$ECHO\$ECHO\$ECHO + PATH=/empty FPATH=/empty; export PATH FPATH + test \"X\`printf %s \$ECHO\`\" = \"X\$ECHO\" \\ + || test \"X\`print -r -- \$ECHO\`\" = \"X\$ECHO\" ) || exit 1 test \$(( 1 + 1 )) = 2 || exit 1" if (eval "$as_required") 2>/dev/null; then : as_have_required=yes @@ -556,6 +564,8 @@ # Sed expression to map a string onto a valid variable name. as_tr_sh="eval sed 'y%*+%pp%;s%[^_$as_cr_alnum]%_%g'" +SHELL=${CONFIG_SHELL-/bin/sh} + test -n "$DJDIR" || exec 7<&0 &1 @@ -580,8 +590,8 @@ # Identity of this package. PACKAGE_NAME='klavaro' PACKAGE_TARNAME='klavaro' -PACKAGE_VERSION='1.9.9' -PACKAGE_STRING='klavaro 1.9.9' +PACKAGE_VERSION='3.00' +PACKAGE_STRING='klavaro 3.00' PACKAGE_BUGREPORT='fefcas@gmail.com' PACKAGE_URL='' @@ -637,32 +647,23 @@ LTLIBICONV LIBICONV INTL_MACOSX_LIBS -host_os -host_vendor -host_cpu -host -build_os -build_vendor -build_cpu -build XGETTEXT_EXTRA_OPTIONS XGETTEXT_015 GMSGFMT_015 MSGFMT_015 GETTEXT_MACRO_VERSION -SED GETTEXT_PACKAGE LIBOBJS POW_LIB -PACKAGE_LIBS -PACKAGE_CFLAGS +CAIRO_LIBS +CAIRO_CFLAGS +PANGO_LIBS +PANGO_CFLAGS +GTK_LIBS +GTK_CFLAGS PKG_CONFIG_LIBDIR PKG_CONFIG_PATH PKG_CONFIG -EGREP -GREP -CPP -GTKBLDRCONV DATADIRNAME ALL_LINGUAS INTLTOOL_PERL @@ -699,6 +700,34 @@ INTLTOOL_MERGE INTLTOOL_UPDATE USE_NLS +CPP +OTOOL64 +OTOOL +LIPO +NMEDIT +DSYMUTIL +MANIFEST_TOOL +RANLIB +DLLTOOL +OBJDUMP +LN_S +NM +ac_ct_DUMPBIN +DUMPBIN +LD +FGREP +EGREP +GREP +SED +host_os +host_vendor +host_cpu +host +build_os +build_vendor +build_cpu +build +LIBTOOL am__fastdepCC_FALSE am__fastdepCC_TRUE CCDEPMODE @@ -716,6 +745,8 @@ LDFLAGS CFLAGS CC +ac_ct_AR +AR AM_BACKSLASH AM_DEFAULT_VERBOSITY AM_DEFAULT_V @@ -786,8 +817,14 @@ enable_option_checking enable_silent_rules enable_dependency_tracking -enable_nls +enable_shared +enable_static +with_pic +enable_fast_install with_gnu_ld +with_sysroot +enable_libtool_lock +enable_nls enable_rpath with_libiconv_prefix with_libintl_prefix @@ -804,8 +841,12 @@ PKG_CONFIG PKG_CONFIG_PATH PKG_CONFIG_LIBDIR -PACKAGE_CFLAGS -PACKAGE_LIBS' +GTK_CFLAGS +GTK_LIBS +PANGO_CFLAGS +PANGO_LIBS +CAIRO_CFLAGS +CAIRO_LIBS' # Initialize some variables set by options. @@ -1346,7 +1387,7 @@ # Omit some internal or obsolete options to make the list less imposing. # This message is too long to be a string in the A/UX 3.1 sh. cat <<_ACEOF -\`configure' configures klavaro 1.9.9 to adapt to many kinds of systems. +\`configure' configures klavaro 3.00 to adapt to many kinds of systems. Usage: $0 [OPTION]... [VAR=VALUE]... @@ -1416,7 +1457,7 @@ if test -n "$ac_init_help"; then case $ac_init_help in - short | recursive ) echo "Configuration of klavaro 1.9.9:";; + short | recursive ) echo "Configuration of klavaro 3.00:";; esac cat <<\_ACEOF @@ -1430,12 +1471,22 @@ do not reject slow dependency extractors --disable-dependency-tracking speeds up one-time build + --enable-shared[=PKGS] build shared libraries [default=yes] + --enable-static[=PKGS] build static libraries [default=yes] + --enable-fast-install[=PKGS] + optimize for fast installation [default=yes] + --disable-libtool-lock avoid locking (might break parallel builds) --disable-nls do not use Native Language Support --disable-rpath do not hardcode runtime library paths Optional Packages: --with-PACKAGE[=ARG] use PACKAGE [ARG=yes] --without-PACKAGE do not use PACKAGE (same as --with-PACKAGE=no) + --with-pic[=PKGS] try to use only PIC/non-PIC objects [default=use + both] + --with-gnu-ld assume the C compiler uses GNU ld [default=no] + --with-sysroot=DIR Search for dependent libraries within DIR + (or the compiler's sysroot if not specified). --with-gnu-ld assume the C compiler uses GNU ld [default=no] --with-libiconv-prefix[=DIR] search for libiconv in DIR/include and DIR/lib --without-libiconv-prefix don't search for libiconv in includedir and libdir @@ -1456,10 +1507,14 @@ directories to add to pkg-config's search path PKG_CONFIG_LIBDIR path overriding pkg-config's built-in search path - PACKAGE_CFLAGS - C compiler flags for PACKAGE, overriding pkg-config - PACKAGE_LIBS - linker flags for PACKAGE, overriding pkg-config + GTK_CFLAGS C compiler flags for GTK, overriding pkg-config + GTK_LIBS linker flags for GTK, overriding pkg-config + PANGO_CFLAGS + C compiler flags for PANGO, overriding pkg-config + PANGO_LIBS linker flags for PANGO, overriding pkg-config + CAIRO_CFLAGS + C compiler flags for CAIRO, overriding pkg-config + CAIRO_LIBS linker flags for CAIRO, overriding pkg-config Use these variables to override the choices made by `configure' or to help it to find libraries and programs with nonstandard names/locations. @@ -1527,7 +1582,7 @@ test -n "$ac_init_help" && exit $ac_status if $ac_init_version; then cat <<\_ACEOF -klavaro configure 1.9.9 +klavaro configure 3.00 generated by GNU Autoconf 2.69 Copyright (C) 2012 Free Software Foundation, Inc. @@ -1625,10 +1680,11 @@ } # ac_fn_c_try_link -# ac_fn_c_check_func LINENO FUNC VAR -# ---------------------------------- -# Tests whether FUNC exists, setting the cache variable VAR accordingly -ac_fn_c_check_func () +# ac_fn_c_check_header_compile LINENO HEADER VAR INCLUDES +# ------------------------------------------------------- +# Tests whether HEADER exists and can be compiled using the include files in +# INCLUDES, setting the cache variable VAR accordingly. +ac_fn_c_check_header_compile () { as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5 @@ -1638,59 +1694,22 @@ else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ -/* Define $2 to an innocuous variant, in case declares $2. - For example, HP-UX 11i declares gettimeofday. */ -#define $2 innocuous_$2 - -/* System header to define __stub macros and hopefully few prototypes, - which can conflict with char $2 (); below. - Prefer to if __STDC__ is defined, since - exists even on freestanding compilers. */ - -#ifdef __STDC__ -# include -#else -# include -#endif - -#undef $2 - -/* Override any GCC internal prototype to avoid an error. - Use char because int might match the return type of a GCC - builtin and then its argument prototype would still apply. */ -#ifdef __cplusplus -extern "C" -#endif -char $2 (); -/* The GNU C library defines this for functions which it implements - to always fail with ENOSYS. Some functions are actually named - something starting with __ and the normal name is an alias. */ -#if defined __stub_$2 || defined __stub___$2 -choke me -#endif - -int -main () -{ -return $2 (); - ; - return 0; -} +$4 +#include <$2> _ACEOF -if ac_fn_c_try_link "$LINENO"; then : +if ac_fn_c_try_compile "$LINENO"; then : eval "$3=yes" else eval "$3=no" fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi eval ac_res=\$$3 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 $as_echo "$ac_res" >&6; } eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno -} # ac_fn_c_check_func +} # ac_fn_c_check_header_compile # ac_fn_c_try_cpp LINENO # ---------------------- @@ -1771,6 +1790,73 @@ } # ac_fn_c_try_run +# ac_fn_c_check_func LINENO FUNC VAR +# ---------------------------------- +# Tests whether FUNC exists, setting the cache variable VAR accordingly +ac_fn_c_check_func () +{ + as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5 +$as_echo_n "checking for $2... " >&6; } +if eval \${$3+:} false; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +/* Define $2 to an innocuous variant, in case declares $2. + For example, HP-UX 11i declares gettimeofday. */ +#define $2 innocuous_$2 + +/* System header to define __stub macros and hopefully few prototypes, + which can conflict with char $2 (); below. + Prefer to if __STDC__ is defined, since + exists even on freestanding compilers. */ + +#ifdef __STDC__ +# include +#else +# include +#endif + +#undef $2 + +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char $2 (); +/* The GNU C library defines this for functions which it implements + to always fail with ENOSYS. Some functions are actually named + something starting with __ and the normal name is an alias. */ +#if defined __stub_$2 || defined __stub___$2 +choke me +#endif + +int +main () +{ +return $2 (); + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + eval "$3=yes" +else + eval "$3=no" +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +fi +eval ac_res=\$$3 + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 +$as_echo "$ac_res" >&6; } + eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno + +} # ac_fn_c_check_func + # ac_fn_c_check_header_mongrel LINENO HEADER VAR INCLUDES # ------------------------------------------------------- # Tests whether HEADER exists, giving a warning if it cannot be compiled using @@ -1861,42 +1947,11 @@ eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno } # ac_fn_c_check_header_mongrel - -# ac_fn_c_check_header_compile LINENO HEADER VAR INCLUDES -# ------------------------------------------------------- -# Tests whether HEADER exists and can be compiled using the include files in -# INCLUDES, setting the cache variable VAR accordingly. -ac_fn_c_check_header_compile () -{ - as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5 -$as_echo_n "checking for $2... " >&6; } -if eval \${$3+:} false; then : - $as_echo_n "(cached) " >&6 -else - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -$4 -#include <$2> -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - eval "$3=yes" -else - eval "$3=no" -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext -fi -eval ac_res=\$$3 - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 -$as_echo "$ac_res" >&6; } - eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno - -} # ac_fn_c_check_header_compile cat >config.log <<_ACEOF This file contains any messages produced by compilers while running configure, to aid debugging if configure makes a mistake. -It was created by klavaro $as_me 1.9.9, which was +It was created by klavaro $as_me 3.00, which was generated by GNU Autoconf 2.69. Invocation command line was $ $0 $@ @@ -2248,7 +2303,7 @@ ac_config_headers="$ac_config_headers config.h" -am__api_version='1.13' +am__api_version='1.14' ac_aux_dir= for ac_dir in "$srcdir" "$srcdir/.." "$srcdir/../.."; do @@ -2763,7 +2818,7 @@ # Define the identity of the package. PACKAGE='klavaro' - VERSION='1.9.9' + VERSION='3.00' cat >>confdefs.h <<_ACEOF @@ -2814,6 +2869,48 @@ +# POSIX will say in a future version that running "rm -f" with no argument +# is OK; and we want to be able to make that assumption in our Makefile +# recipes. So use an aggressive probe to check that the usage we want is +# actually supported "in the wild" to an acceptable degree. +# See automake bug#10828. +# To make any issue more visible, cause the running configure to be aborted +# by default if the 'rm' program in use doesn't match our expectations; the +# user can still override this though. +if rm -f && rm -fr && rm -rf; then : OK; else + cat >&2 <<'END' +Oops! + +Your 'rm' program seems unable to run without file operands specified +on the command line, even when the '-f' option is present. This is contrary +to the behaviour of most rm programs out there, and not conforming with +the upcoming POSIX standard: + +Please tell bug-automake@gnu.org about your system, including the value +of your $PATH and any error possibly output before this message. This +can help us improve future automake versions. + +END + if test x"$ACCEPT_INFERIOR_RM_PROGRAM" = x"yes"; then + echo 'Configuration will proceed anyway, since you have set the' >&2 + echo 'ACCEPT_INFERIOR_RM_PROGRAM variable to "yes"' >&2 + echo >&2 + else + cat >&2 <<'END' +Aborting the configuration process, to ensure you take notice of the issue. + +You can download and install GNU coreutils to get an 'rm' implementation +that behaves properly: . + +If you want to complete the configuration process using your problematic +'rm' anyway, export the environment variable ACCEPT_INFERIOR_RM_PROGRAM +to "yes", and re-run configure. + +END + as_fn_error $? "Your 'rm' program is bad, sorry." "$LINENO" 5 + fi +fi + DEPDIR="${am__leading_dot}deps" @@ -3667,6 +3764,65 @@ ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu +ac_ext=c +ac_cpp='$CPP $CPPFLAGS' +ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_c_compiler_gnu +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CC understands -c and -o together" >&5 +$as_echo_n "checking whether $CC understands -c and -o together... " >&6; } +if ${am_cv_prog_cc_c_o+:} false; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +int +main () +{ + + ; + return 0; +} +_ACEOF + # Make sure it works both with $CC and with simple cc. + # Following AC_PROG_CC_C_O, we do the test twice because some + # compilers refuse to overwrite an existing .o file with -o, + # though they will create one. + am_cv_prog_cc_c_o=yes + for am_i in 1 2; do + if { echo "$as_me:$LINENO: $CC -c conftest.$ac_ext -o conftest2.$ac_objext" >&5 + ($CC -c conftest.$ac_ext -o conftest2.$ac_objext) >&5 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } \ + && test -f conftest2.$ac_objext; then + : OK + else + am_cv_prog_cc_c_o=no + break + fi + done + rm -f core conftest* + unset am_i +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $am_cv_prog_cc_c_o" >&5 +$as_echo "$am_cv_prog_cc_c_o" >&6; } +if test "$am_cv_prog_cc_c_o" != yes; then + # Losing compiler, so override with the script. + # FIXME: It is wrong to rewrite CC. + # But if we don't then we get into trouble of one sort or another. + # A longer-term fix would be to have automake use am__CC in this case, + # and then we could set am__CC="\$(top_srcdir)/compile \$(CC)" + CC="$am_aux_dir/compile $CC" +fi +ac_ext=c +ac_cpp='$CPP $CPPFLAGS' +ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_c_compiler_gnu + + depcc="$CC" am_compiler_list= { $as_echo "$as_me:${as_lineno-$LINENO}: checking dependency style of $depcc" >&5 @@ -3796,21 +3952,7789 @@ -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing strerror" >&5 -$as_echo_n "checking for library containing strerror... " >&6; } -if ${ac_cv_search_strerror+:} false; then : +if test -n "$ac_tool_prefix"; then + for ac_prog in ar lib "link -lib" + do + # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args. +set dummy $ac_tool_prefix$ac_prog; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_AR+:} false; then : $as_echo_n "(cached) " >&6 else - ac_func_search_save_LIBS=$LIBS -cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ + if test -n "$AR"; then + ac_cv_prog_AR="$AR" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_prog_AR="$ac_tool_prefix$ac_prog" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS -/* Override any GCC internal prototype to avoid an error. - Use char because int might match the return type of a GCC - builtin and then its argument prototype would still apply. */ -#ifdef __cplusplus -extern "C" -#endif +fi +fi +AR=$ac_cv_prog_AR +if test -n "$AR"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $AR" >&5 +$as_echo "$AR" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + + test -n "$AR" && break + done +fi +if test -z "$AR"; then + ac_ct_AR=$AR + for ac_prog in ar lib "link -lib" +do + # Extract the first word of "$ac_prog", so it can be a program name with args. +set dummy $ac_prog; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_ac_ct_AR+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$ac_ct_AR"; then + ac_cv_prog_ac_ct_AR="$ac_ct_AR" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_prog_ac_ct_AR="$ac_prog" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +ac_ct_AR=$ac_cv_prog_ac_ct_AR +if test -n "$ac_ct_AR"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_AR" >&5 +$as_echo "$ac_ct_AR" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + + test -n "$ac_ct_AR" && break +done + + if test "x$ac_ct_AR" = x; then + AR="false" + else + case $cross_compiling:$ac_tool_warned in +yes:) +{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 +$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} +ac_tool_warned=yes ;; +esac + AR=$ac_ct_AR + fi +fi + +: ${AR=ar} + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking the archiver ($AR) interface" >&5 +$as_echo_n "checking the archiver ($AR) interface... " >&6; } +if ${am_cv_ar_interface+:} false; then : + $as_echo_n "(cached) " >&6 +else + ac_ext=c +ac_cpp='$CPP $CPPFLAGS' +ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_c_compiler_gnu + + am_cv_ar_interface=ar + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +int some_variable = 0; +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + am_ar_try='$AR cru libconftest.a conftest.$ac_objext >&5' + { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$am_ar_try\""; } >&5 + (eval $am_ar_try) 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; } + if test "$ac_status" -eq 0; then + am_cv_ar_interface=ar + else + am_ar_try='$AR -NOLOGO -OUT:conftest.lib conftest.$ac_objext >&5' + { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$am_ar_try\""; } >&5 + (eval $am_ar_try) 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; } + if test "$ac_status" -eq 0; then + am_cv_ar_interface=lib + else + am_cv_ar_interface=unknown + fi + fi + rm -f conftest.lib libconftest.a + +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext + ac_ext=c +ac_cpp='$CPP $CPPFLAGS' +ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_c_compiler_gnu + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $am_cv_ar_interface" >&5 +$as_echo "$am_cv_ar_interface" >&6; } + +case $am_cv_ar_interface in +ar) + ;; +lib) + # Microsoft lib, so override with the ar-lib wrapper script. + # FIXME: It is wrong to rewrite AR. + # But if we don't then we get into trouble of one sort or another. + # A longer-term fix would be to have automake use am__AR in this case, + # and then we could set am__AR="$am_aux_dir/ar-lib \$(AR)" or something + # similar. + AR="$am_aux_dir/ar-lib $AR" + ;; +unknown) + as_fn_error $? "could not determine $AR interface" "$LINENO" 5 + ;; +esac + +case `pwd` in + *\ * | *\ *) + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Libtool does not cope well with whitespace in \`pwd\`" >&5 +$as_echo "$as_me: WARNING: Libtool does not cope well with whitespace in \`pwd\`" >&2;} ;; +esac + + + +macro_version='2.4.2' +macro_revision='1.3337' + + + + + + + + + + + + + +ltmain="$ac_aux_dir/ltmain.sh" + +# Make sure we can run config.sub. +$SHELL "$ac_aux_dir/config.sub" sun4 >/dev/null 2>&1 || + as_fn_error $? "cannot run $SHELL $ac_aux_dir/config.sub" "$LINENO" 5 + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking build system type" >&5 +$as_echo_n "checking build system type... " >&6; } +if ${ac_cv_build+:} false; then : + $as_echo_n "(cached) " >&6 +else + ac_build_alias=$build_alias +test "x$ac_build_alias" = x && + ac_build_alias=`$SHELL "$ac_aux_dir/config.guess"` +test "x$ac_build_alias" = x && + as_fn_error $? "cannot guess build type; you must specify one" "$LINENO" 5 +ac_cv_build=`$SHELL "$ac_aux_dir/config.sub" $ac_build_alias` || + as_fn_error $? "$SHELL $ac_aux_dir/config.sub $ac_build_alias failed" "$LINENO" 5 + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_build" >&5 +$as_echo "$ac_cv_build" >&6; } +case $ac_cv_build in +*-*-*) ;; +*) as_fn_error $? "invalid value of canonical build" "$LINENO" 5;; +esac +build=$ac_cv_build +ac_save_IFS=$IFS; IFS='-' +set x $ac_cv_build +shift +build_cpu=$1 +build_vendor=$2 +shift; shift +# Remember, the first character of IFS is used to create $*, +# except with old shells: +build_os=$* +IFS=$ac_save_IFS +case $build_os in *\ *) build_os=`echo "$build_os" | sed 's/ /-/g'`;; esac + + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking host system type" >&5 +$as_echo_n "checking host system type... " >&6; } +if ${ac_cv_host+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test "x$host_alias" = x; then + ac_cv_host=$ac_cv_build +else + ac_cv_host=`$SHELL "$ac_aux_dir/config.sub" $host_alias` || + as_fn_error $? "$SHELL $ac_aux_dir/config.sub $host_alias failed" "$LINENO" 5 +fi + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_host" >&5 +$as_echo "$ac_cv_host" >&6; } +case $ac_cv_host in +*-*-*) ;; +*) as_fn_error $? "invalid value of canonical host" "$LINENO" 5;; +esac +host=$ac_cv_host +ac_save_IFS=$IFS; IFS='-' +set x $ac_cv_host +shift +host_cpu=$1 +host_vendor=$2 +shift; shift +# Remember, the first character of IFS is used to create $*, +# except with old shells: +host_os=$* +IFS=$ac_save_IFS +case $host_os in *\ *) host_os=`echo "$host_os" | sed 's/ /-/g'`;; esac + + +# Backslashify metacharacters that are still active within +# double-quoted strings. +sed_quote_subst='s/\(["`$\\]\)/\\\1/g' + +# Same as above, but do not quote variable references. +double_quote_subst='s/\(["`\\]\)/\\\1/g' + +# Sed substitution to delay expansion of an escaped shell variable in a +# double_quote_subst'ed string. +delay_variable_subst='s/\\\\\\\\\\\$/\\\\\\$/g' + +# Sed substitution to delay expansion of an escaped single quote. +delay_single_quote_subst='s/'\''/'\'\\\\\\\'\''/g' + +# Sed substitution to avoid accidental globbing in evaled expressions +no_glob_subst='s/\*/\\\*/g' + +ECHO='\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\' +ECHO=$ECHO$ECHO$ECHO$ECHO$ECHO +ECHO=$ECHO$ECHO$ECHO$ECHO$ECHO$ECHO + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking how to print strings" >&5 +$as_echo_n "checking how to print strings... " >&6; } +# Test print first, because it will be a builtin if present. +if test "X`( print -r -- -n ) 2>/dev/null`" = X-n && \ + test "X`print -r -- $ECHO 2>/dev/null`" = "X$ECHO"; then + ECHO='print -r --' +elif test "X`printf %s $ECHO 2>/dev/null`" = "X$ECHO"; then + ECHO='printf %s\n' +else + # Use this function as a fallback that always works. + func_fallback_echo () + { + eval 'cat <<_LTECHO_EOF +$1 +_LTECHO_EOF' + } + ECHO='func_fallback_echo' +fi + +# func_echo_all arg... +# Invoke $ECHO with all args, space-separated. +func_echo_all () +{ + $ECHO "" +} + +case "$ECHO" in + printf*) { $as_echo "$as_me:${as_lineno-$LINENO}: result: printf" >&5 +$as_echo "printf" >&6; } ;; + print*) { $as_echo "$as_me:${as_lineno-$LINENO}: result: print -r" >&5 +$as_echo "print -r" >&6; } ;; + *) { $as_echo "$as_me:${as_lineno-$LINENO}: result: cat" >&5 +$as_echo "cat" >&6; } ;; +esac + + + + + + + + + + + + + + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for a sed that does not truncate output" >&5 +$as_echo_n "checking for a sed that does not truncate output... " >&6; } +if ${ac_cv_path_SED+:} false; then : + $as_echo_n "(cached) " >&6 +else + ac_script=s/aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa/bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb/ + for ac_i in 1 2 3 4 5 6 7; do + ac_script="$ac_script$as_nl$ac_script" + done + echo "$ac_script" 2>/dev/null | sed 99q >conftest.sed + { ac_script=; unset ac_script;} + if test -z "$SED"; then + ac_path_SED_found=false + # Loop through the user's path and test for each of PROGNAME-LIST + as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_prog in sed gsed; do + for ac_exec_ext in '' $ac_executable_extensions; do + ac_path_SED="$as_dir/$ac_prog$ac_exec_ext" + as_fn_executable_p "$ac_path_SED" || continue +# Check for GNU ac_path_SED and select it if it is found. + # Check for GNU $ac_path_SED +case `"$ac_path_SED" --version 2>&1` in +*GNU*) + ac_cv_path_SED="$ac_path_SED" ac_path_SED_found=:;; +*) + ac_count=0 + $as_echo_n 0123456789 >"conftest.in" + while : + do + cat "conftest.in" "conftest.in" >"conftest.tmp" + mv "conftest.tmp" "conftest.in" + cp "conftest.in" "conftest.nl" + $as_echo '' >> "conftest.nl" + "$ac_path_SED" -f conftest.sed < "conftest.nl" >"conftest.out" 2>/dev/null || break + diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break + as_fn_arith $ac_count + 1 && ac_count=$as_val + if test $ac_count -gt ${ac_path_SED_max-0}; then + # Best one so far, save it but keep looking for a better one + ac_cv_path_SED="$ac_path_SED" + ac_path_SED_max=$ac_count + fi + # 10*(2^10) chars as input seems more than enough + test $ac_count -gt 10 && break + done + rm -f conftest.in conftest.tmp conftest.nl conftest.out;; +esac + + $ac_path_SED_found && break 3 + done + done + done +IFS=$as_save_IFS + if test -z "$ac_cv_path_SED"; then + as_fn_error $? "no acceptable sed could be found in \$PATH" "$LINENO" 5 + fi +else + ac_cv_path_SED=$SED +fi + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_path_SED" >&5 +$as_echo "$ac_cv_path_SED" >&6; } + SED="$ac_cv_path_SED" + rm -f conftest.sed + +test -z "$SED" && SED=sed +Xsed="$SED -e 1s/^X//" + + + + + + + + + + + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for grep that handles long lines and -e" >&5 +$as_echo_n "checking for grep that handles long lines and -e... " >&6; } +if ${ac_cv_path_GREP+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -z "$GREP"; then + ac_path_GREP_found=false + # Loop through the user's path and test for each of PROGNAME-LIST + as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH$PATH_SEPARATOR/usr/xpg4/bin +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_prog in grep ggrep; do + for ac_exec_ext in '' $ac_executable_extensions; do + ac_path_GREP="$as_dir/$ac_prog$ac_exec_ext" + as_fn_executable_p "$ac_path_GREP" || continue +# Check for GNU ac_path_GREP and select it if it is found. + # Check for GNU $ac_path_GREP +case `"$ac_path_GREP" --version 2>&1` in +*GNU*) + ac_cv_path_GREP="$ac_path_GREP" ac_path_GREP_found=:;; +*) + ac_count=0 + $as_echo_n 0123456789 >"conftest.in" + while : + do + cat "conftest.in" "conftest.in" >"conftest.tmp" + mv "conftest.tmp" "conftest.in" + cp "conftest.in" "conftest.nl" + $as_echo 'GREP' >> "conftest.nl" + "$ac_path_GREP" -e 'GREP$' -e '-(cannot match)-' < "conftest.nl" >"conftest.out" 2>/dev/null || break + diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break + as_fn_arith $ac_count + 1 && ac_count=$as_val + if test $ac_count -gt ${ac_path_GREP_max-0}; then + # Best one so far, save it but keep looking for a better one + ac_cv_path_GREP="$ac_path_GREP" + ac_path_GREP_max=$ac_count + fi + # 10*(2^10) chars as input seems more than enough + test $ac_count -gt 10 && break + done + rm -f conftest.in conftest.tmp conftest.nl conftest.out;; +esac + + $ac_path_GREP_found && break 3 + done + done + done +IFS=$as_save_IFS + if test -z "$ac_cv_path_GREP"; then + as_fn_error $? "no acceptable grep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" "$LINENO" 5 + fi +else + ac_cv_path_GREP=$GREP +fi + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_path_GREP" >&5 +$as_echo "$ac_cv_path_GREP" >&6; } + GREP="$ac_cv_path_GREP" + + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for egrep" >&5 +$as_echo_n "checking for egrep... " >&6; } +if ${ac_cv_path_EGREP+:} false; then : + $as_echo_n "(cached) " >&6 +else + if echo a | $GREP -E '(a|b)' >/dev/null 2>&1 + then ac_cv_path_EGREP="$GREP -E" + else + if test -z "$EGREP"; then + ac_path_EGREP_found=false + # Loop through the user's path and test for each of PROGNAME-LIST + as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH$PATH_SEPARATOR/usr/xpg4/bin +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_prog in egrep; do + for ac_exec_ext in '' $ac_executable_extensions; do + ac_path_EGREP="$as_dir/$ac_prog$ac_exec_ext" + as_fn_executable_p "$ac_path_EGREP" || continue +# Check for GNU ac_path_EGREP and select it if it is found. + # Check for GNU $ac_path_EGREP +case `"$ac_path_EGREP" --version 2>&1` in +*GNU*) + ac_cv_path_EGREP="$ac_path_EGREP" ac_path_EGREP_found=:;; +*) + ac_count=0 + $as_echo_n 0123456789 >"conftest.in" + while : + do + cat "conftest.in" "conftest.in" >"conftest.tmp" + mv "conftest.tmp" "conftest.in" + cp "conftest.in" "conftest.nl" + $as_echo 'EGREP' >> "conftest.nl" + "$ac_path_EGREP" 'EGREP$' < "conftest.nl" >"conftest.out" 2>/dev/null || break + diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break + as_fn_arith $ac_count + 1 && ac_count=$as_val + if test $ac_count -gt ${ac_path_EGREP_max-0}; then + # Best one so far, save it but keep looking for a better one + ac_cv_path_EGREP="$ac_path_EGREP" + ac_path_EGREP_max=$ac_count + fi + # 10*(2^10) chars as input seems more than enough + test $ac_count -gt 10 && break + done + rm -f conftest.in conftest.tmp conftest.nl conftest.out;; +esac + + $ac_path_EGREP_found && break 3 + done + done + done +IFS=$as_save_IFS + if test -z "$ac_cv_path_EGREP"; then + as_fn_error $? "no acceptable egrep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" "$LINENO" 5 + fi +else + ac_cv_path_EGREP=$EGREP +fi + + fi +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_path_EGREP" >&5 +$as_echo "$ac_cv_path_EGREP" >&6; } + EGREP="$ac_cv_path_EGREP" + + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for fgrep" >&5 +$as_echo_n "checking for fgrep... " >&6; } +if ${ac_cv_path_FGREP+:} false; then : + $as_echo_n "(cached) " >&6 +else + if echo 'ab*c' | $GREP -F 'ab*c' >/dev/null 2>&1 + then ac_cv_path_FGREP="$GREP -F" + else + if test -z "$FGREP"; then + ac_path_FGREP_found=false + # Loop through the user's path and test for each of PROGNAME-LIST + as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH$PATH_SEPARATOR/usr/xpg4/bin +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_prog in fgrep; do + for ac_exec_ext in '' $ac_executable_extensions; do + ac_path_FGREP="$as_dir/$ac_prog$ac_exec_ext" + as_fn_executable_p "$ac_path_FGREP" || continue +# Check for GNU ac_path_FGREP and select it if it is found. + # Check for GNU $ac_path_FGREP +case `"$ac_path_FGREP" --version 2>&1` in +*GNU*) + ac_cv_path_FGREP="$ac_path_FGREP" ac_path_FGREP_found=:;; +*) + ac_count=0 + $as_echo_n 0123456789 >"conftest.in" + while : + do + cat "conftest.in" "conftest.in" >"conftest.tmp" + mv "conftest.tmp" "conftest.in" + cp "conftest.in" "conftest.nl" + $as_echo 'FGREP' >> "conftest.nl" + "$ac_path_FGREP" FGREP < "conftest.nl" >"conftest.out" 2>/dev/null || break + diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break + as_fn_arith $ac_count + 1 && ac_count=$as_val + if test $ac_count -gt ${ac_path_FGREP_max-0}; then + # Best one so far, save it but keep looking for a better one + ac_cv_path_FGREP="$ac_path_FGREP" + ac_path_FGREP_max=$ac_count + fi + # 10*(2^10) chars as input seems more than enough + test $ac_count -gt 10 && break + done + rm -f conftest.in conftest.tmp conftest.nl conftest.out;; +esac + + $ac_path_FGREP_found && break 3 + done + done + done +IFS=$as_save_IFS + if test -z "$ac_cv_path_FGREP"; then + as_fn_error $? "no acceptable fgrep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" "$LINENO" 5 + fi +else + ac_cv_path_FGREP=$FGREP +fi + + fi +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_path_FGREP" >&5 +$as_echo "$ac_cv_path_FGREP" >&6; } + FGREP="$ac_cv_path_FGREP" + + +test -z "$GREP" && GREP=grep + + + + + + + + + + + + + + + + + + + +# Check whether --with-gnu-ld was given. +if test "${with_gnu_ld+set}" = set; then : + withval=$with_gnu_ld; test "$withval" = no || with_gnu_ld=yes +else + with_gnu_ld=no +fi + +ac_prog=ld +if test "$GCC" = yes; then + # Check if gcc -print-prog-name=ld gives a path. + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for ld used by $CC" >&5 +$as_echo_n "checking for ld used by $CC... " >&6; } + case $host in + *-*-mingw*) + # gcc leaves a trailing carriage return which upsets mingw + ac_prog=`($CC -print-prog-name=ld) 2>&5 | tr -d '\015'` ;; + *) + ac_prog=`($CC -print-prog-name=ld) 2>&5` ;; + esac + case $ac_prog in + # Accept absolute paths. + [\\/]* | ?:[\\/]*) + re_direlt='/[^/][^/]*/\.\./' + # Canonicalize the pathname of ld + ac_prog=`$ECHO "$ac_prog"| $SED 's%\\\\%/%g'` + while $ECHO "$ac_prog" | $GREP "$re_direlt" > /dev/null 2>&1; do + ac_prog=`$ECHO $ac_prog| $SED "s%$re_direlt%/%"` + done + test -z "$LD" && LD="$ac_prog" + ;; + "") + # If it fails, then pretend we aren't using GCC. + ac_prog=ld + ;; + *) + # If it is relative, then search for the first ld in PATH. + with_gnu_ld=unknown + ;; + esac +elif test "$with_gnu_ld" = yes; then + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for GNU ld" >&5 +$as_echo_n "checking for GNU ld... " >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for non-GNU ld" >&5 +$as_echo_n "checking for non-GNU ld... " >&6; } +fi +if ${lt_cv_path_LD+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -z "$LD"; then + lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR + for ac_dir in $PATH; do + IFS="$lt_save_ifs" + test -z "$ac_dir" && ac_dir=. + if test -f "$ac_dir/$ac_prog" || test -f "$ac_dir/$ac_prog$ac_exeext"; then + lt_cv_path_LD="$ac_dir/$ac_prog" + # Check to see if the program is GNU ld. I'd rather use --version, + # but apparently some variants of GNU ld only accept -v. + # Break only if it was the GNU/non-GNU ld that we prefer. + case `"$lt_cv_path_LD" -v 2>&1 &5 +$as_echo "$LD" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi +test -z "$LD" && as_fn_error $? "no acceptable ld found in \$PATH" "$LINENO" 5 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking if the linker ($LD) is GNU ld" >&5 +$as_echo_n "checking if the linker ($LD) is GNU ld... " >&6; } +if ${lt_cv_prog_gnu_ld+:} false; then : + $as_echo_n "(cached) " >&6 +else + # I'd rather use --version here, but apparently some GNU lds only accept -v. +case `$LD -v 2>&1 &5 +$as_echo "$lt_cv_prog_gnu_ld" >&6; } +with_gnu_ld=$lt_cv_prog_gnu_ld + + + + + + + + + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for BSD- or MS-compatible name lister (nm)" >&5 +$as_echo_n "checking for BSD- or MS-compatible name lister (nm)... " >&6; } +if ${lt_cv_path_NM+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$NM"; then + # Let the user override the test. + lt_cv_path_NM="$NM" +else + lt_nm_to_check="${ac_tool_prefix}nm" + if test -n "$ac_tool_prefix" && test "$build" = "$host"; then + lt_nm_to_check="$lt_nm_to_check nm" + fi + for lt_tmp_nm in $lt_nm_to_check; do + lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR + for ac_dir in $PATH /usr/ccs/bin/elf /usr/ccs/bin /usr/ucb /bin; do + IFS="$lt_save_ifs" + test -z "$ac_dir" && ac_dir=. + tmp_nm="$ac_dir/$lt_tmp_nm" + if test -f "$tmp_nm" || test -f "$tmp_nm$ac_exeext" ; then + # Check to see if the nm accepts a BSD-compat flag. + # Adding the `sed 1q' prevents false positives on HP-UX, which says: + # nm: unknown option "B" ignored + # Tru64's nm complains that /dev/null is an invalid object file + case `"$tmp_nm" -B /dev/null 2>&1 | sed '1q'` in + */dev/null* | *'Invalid file or object type'*) + lt_cv_path_NM="$tmp_nm -B" + break + ;; + *) + case `"$tmp_nm" -p /dev/null 2>&1 | sed '1q'` in + */dev/null*) + lt_cv_path_NM="$tmp_nm -p" + break + ;; + *) + lt_cv_path_NM=${lt_cv_path_NM="$tmp_nm"} # keep the first match, but + continue # so that we can try to find one that supports BSD flags + ;; + esac + ;; + esac + fi + done + IFS="$lt_save_ifs" + done + : ${lt_cv_path_NM=no} +fi +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_path_NM" >&5 +$as_echo "$lt_cv_path_NM" >&6; } +if test "$lt_cv_path_NM" != "no"; then + NM="$lt_cv_path_NM" +else + # Didn't find any BSD compatible name lister, look for dumpbin. + if test -n "$DUMPBIN"; then : + # Let the user override the test. + else + if test -n "$ac_tool_prefix"; then + for ac_prog in dumpbin "link -dump" + do + # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args. +set dummy $ac_tool_prefix$ac_prog; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_DUMPBIN+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$DUMPBIN"; then + ac_cv_prog_DUMPBIN="$DUMPBIN" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_prog_DUMPBIN="$ac_tool_prefix$ac_prog" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +DUMPBIN=$ac_cv_prog_DUMPBIN +if test -n "$DUMPBIN"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $DUMPBIN" >&5 +$as_echo "$DUMPBIN" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + + test -n "$DUMPBIN" && break + done +fi +if test -z "$DUMPBIN"; then + ac_ct_DUMPBIN=$DUMPBIN + for ac_prog in dumpbin "link -dump" +do + # Extract the first word of "$ac_prog", so it can be a program name with args. +set dummy $ac_prog; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_ac_ct_DUMPBIN+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$ac_ct_DUMPBIN"; then + ac_cv_prog_ac_ct_DUMPBIN="$ac_ct_DUMPBIN" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_prog_ac_ct_DUMPBIN="$ac_prog" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +ac_ct_DUMPBIN=$ac_cv_prog_ac_ct_DUMPBIN +if test -n "$ac_ct_DUMPBIN"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_DUMPBIN" >&5 +$as_echo "$ac_ct_DUMPBIN" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + + test -n "$ac_ct_DUMPBIN" && break +done + + if test "x$ac_ct_DUMPBIN" = x; then + DUMPBIN=":" + else + case $cross_compiling:$ac_tool_warned in +yes:) +{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 +$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} +ac_tool_warned=yes ;; +esac + DUMPBIN=$ac_ct_DUMPBIN + fi +fi + + case `$DUMPBIN -symbols /dev/null 2>&1 | sed '1q'` in + *COFF*) + DUMPBIN="$DUMPBIN -symbols" + ;; + *) + DUMPBIN=: + ;; + esac + fi + + if test "$DUMPBIN" != ":"; then + NM="$DUMPBIN" + fi +fi +test -z "$NM" && NM=nm + + + + + + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking the name lister ($NM) interface" >&5 +$as_echo_n "checking the name lister ($NM) interface... " >&6; } +if ${lt_cv_nm_interface+:} false; then : + $as_echo_n "(cached) " >&6 +else + lt_cv_nm_interface="BSD nm" + echo "int some_variable = 0;" > conftest.$ac_ext + (eval echo "\"\$as_me:$LINENO: $ac_compile\"" >&5) + (eval "$ac_compile" 2>conftest.err) + cat conftest.err >&5 + (eval echo "\"\$as_me:$LINENO: $NM \\\"conftest.$ac_objext\\\"\"" >&5) + (eval "$NM \"conftest.$ac_objext\"" 2>conftest.err > conftest.out) + cat conftest.err >&5 + (eval echo "\"\$as_me:$LINENO: output\"" >&5) + cat conftest.out >&5 + if $GREP 'External.*some_variable' conftest.out > /dev/null; then + lt_cv_nm_interface="MS dumpbin" + fi + rm -f conftest* +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_nm_interface" >&5 +$as_echo "$lt_cv_nm_interface" >&6; } + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether ln -s works" >&5 +$as_echo_n "checking whether ln -s works... " >&6; } +LN_S=$as_ln_s +if test "$LN_S" = "ln -s"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no, using $LN_S" >&5 +$as_echo "no, using $LN_S" >&6; } +fi + +# find the maximum length of command line arguments +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking the maximum length of command line arguments" >&5 +$as_echo_n "checking the maximum length of command line arguments... " >&6; } +if ${lt_cv_sys_max_cmd_len+:} false; then : + $as_echo_n "(cached) " >&6 +else + i=0 + teststring="ABCD" + + case $build_os in + msdosdjgpp*) + # On DJGPP, this test can blow up pretty badly due to problems in libc + # (any single argument exceeding 2000 bytes causes a buffer overrun + # during glob expansion). Even if it were fixed, the result of this + # check would be larger than it should be. + lt_cv_sys_max_cmd_len=12288; # 12K is about right + ;; + + gnu*) + # Under GNU Hurd, this test is not required because there is + # no limit to the length of command line arguments. + # Libtool will interpret -1 as no limit whatsoever + lt_cv_sys_max_cmd_len=-1; + ;; + + cygwin* | mingw* | cegcc*) + # On Win9x/ME, this test blows up -- it succeeds, but takes + # about 5 minutes as the teststring grows exponentially. + # Worse, since 9x/ME are not pre-emptively multitasking, + # you end up with a "frozen" computer, even though with patience + # the test eventually succeeds (with a max line length of 256k). + # Instead, let's just punt: use the minimum linelength reported by + # all of the supported platforms: 8192 (on NT/2K/XP). + lt_cv_sys_max_cmd_len=8192; + ;; + + mint*) + # On MiNT this can take a long time and run out of memory. + lt_cv_sys_max_cmd_len=8192; + ;; + + amigaos*) + # On AmigaOS with pdksh, this test takes hours, literally. + # So we just punt and use a minimum line length of 8192. + lt_cv_sys_max_cmd_len=8192; + ;; + + netbsd* | freebsd* | openbsd* | darwin* | dragonfly*) + # This has been around since 386BSD, at least. Likely further. + if test -x /sbin/sysctl; then + lt_cv_sys_max_cmd_len=`/sbin/sysctl -n kern.argmax` + elif test -x /usr/sbin/sysctl; then + lt_cv_sys_max_cmd_len=`/usr/sbin/sysctl -n kern.argmax` + else + lt_cv_sys_max_cmd_len=65536 # usable default for all BSDs + fi + # And add a safety zone + lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \/ 4` + lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \* 3` + ;; + + interix*) + # We know the value 262144 and hardcode it with a safety zone (like BSD) + lt_cv_sys_max_cmd_len=196608 + ;; + + os2*) + # The test takes a long time on OS/2. + lt_cv_sys_max_cmd_len=8192 + ;; + + osf*) + # Dr. Hans Ekkehard Plesser reports seeing a kernel panic running configure + # due to this test when exec_disable_arg_limit is 1 on Tru64. It is not + # nice to cause kernel panics so lets avoid the loop below. + # First set a reasonable default. + lt_cv_sys_max_cmd_len=16384 + # + if test -x /sbin/sysconfig; then + case `/sbin/sysconfig -q proc exec_disable_arg_limit` in + *1*) lt_cv_sys_max_cmd_len=-1 ;; + esac + fi + ;; + sco3.2v5*) + lt_cv_sys_max_cmd_len=102400 + ;; + sysv5* | sco5v6* | sysv4.2uw2*) + kargmax=`grep ARG_MAX /etc/conf/cf.d/stune 2>/dev/null` + if test -n "$kargmax"; then + lt_cv_sys_max_cmd_len=`echo $kargmax | sed 's/.*[ ]//'` + else + lt_cv_sys_max_cmd_len=32768 + fi + ;; + *) + lt_cv_sys_max_cmd_len=`(getconf ARG_MAX) 2> /dev/null` + if test -n "$lt_cv_sys_max_cmd_len" && \ + test undefined != "$lt_cv_sys_max_cmd_len"; then + lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \/ 4` + lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \* 3` + else + # Make teststring a little bigger before we do anything with it. + # a 1K string should be a reasonable start. + for i in 1 2 3 4 5 6 7 8 ; do + teststring=$teststring$teststring + done + SHELL=${SHELL-${CONFIG_SHELL-/bin/sh}} + # If test is not a shell built-in, we'll probably end up computing a + # maximum length that is only half of the actual maximum length, but + # we can't tell. + while { test "X"`env echo "$teststring$teststring" 2>/dev/null` \ + = "X$teststring$teststring"; } >/dev/null 2>&1 && + test $i != 17 # 1/2 MB should be enough + do + i=`expr $i + 1` + teststring=$teststring$teststring + done + # Only check the string length outside the loop. + lt_cv_sys_max_cmd_len=`expr "X$teststring" : ".*" 2>&1` + teststring= + # Add a significant safety factor because C++ compilers can tack on + # massive amounts of additional arguments before passing them to the + # linker. It appears as though 1/2 is a usable value. + lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \/ 2` + fi + ;; + esac + +fi + +if test -n $lt_cv_sys_max_cmd_len ; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_sys_max_cmd_len" >&5 +$as_echo "$lt_cv_sys_max_cmd_len" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: none" >&5 +$as_echo "none" >&6; } +fi +max_cmd_len=$lt_cv_sys_max_cmd_len + + + + + + +: ${CP="cp -f"} +: ${MV="mv -f"} +: ${RM="rm -f"} + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the shell understands some XSI constructs" >&5 +$as_echo_n "checking whether the shell understands some XSI constructs... " >&6; } +# Try some XSI features +xsi_shell=no +( _lt_dummy="a/b/c" + test "${_lt_dummy##*/},${_lt_dummy%/*},${_lt_dummy#??}"${_lt_dummy%"$_lt_dummy"}, \ + = c,a/b,b/c, \ + && eval 'test $(( 1 + 1 )) -eq 2 \ + && test "${#_lt_dummy}" -eq 5' ) >/dev/null 2>&1 \ + && xsi_shell=yes +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $xsi_shell" >&5 +$as_echo "$xsi_shell" >&6; } + + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the shell understands \"+=\"" >&5 +$as_echo_n "checking whether the shell understands \"+=\"... " >&6; } +lt_shell_append=no +( foo=bar; set foo baz; eval "$1+=\$2" && test "$foo" = barbaz ) \ + >/dev/null 2>&1 \ + && lt_shell_append=yes +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_shell_append" >&5 +$as_echo "$lt_shell_append" >&6; } + + +if ( (MAIL=60; unset MAIL) || exit) >/dev/null 2>&1; then + lt_unset=unset +else + lt_unset=false +fi + + + + + +# test EBCDIC or ASCII +case `echo X|tr X '\101'` in + A) # ASCII based system + # \n is not interpreted correctly by Solaris 8 /usr/ucb/tr + lt_SP2NL='tr \040 \012' + lt_NL2SP='tr \015\012 \040\040' + ;; + *) # EBCDIC based system + lt_SP2NL='tr \100 \n' + lt_NL2SP='tr \r\n \100\100' + ;; +esac + + + + + + + + + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking how to convert $build file names to $host format" >&5 +$as_echo_n "checking how to convert $build file names to $host format... " >&6; } +if ${lt_cv_to_host_file_cmd+:} false; then : + $as_echo_n "(cached) " >&6 +else + case $host in + *-*-mingw* ) + case $build in + *-*-mingw* ) # actually msys + lt_cv_to_host_file_cmd=func_convert_file_msys_to_w32 + ;; + *-*-cygwin* ) + lt_cv_to_host_file_cmd=func_convert_file_cygwin_to_w32 + ;; + * ) # otherwise, assume *nix + lt_cv_to_host_file_cmd=func_convert_file_nix_to_w32 + ;; + esac + ;; + *-*-cygwin* ) + case $build in + *-*-mingw* ) # actually msys + lt_cv_to_host_file_cmd=func_convert_file_msys_to_cygwin + ;; + *-*-cygwin* ) + lt_cv_to_host_file_cmd=func_convert_file_noop + ;; + * ) # otherwise, assume *nix + lt_cv_to_host_file_cmd=func_convert_file_nix_to_cygwin + ;; + esac + ;; + * ) # unhandled hosts (and "normal" native builds) + lt_cv_to_host_file_cmd=func_convert_file_noop + ;; +esac + +fi + +to_host_file_cmd=$lt_cv_to_host_file_cmd +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_to_host_file_cmd" >&5 +$as_echo "$lt_cv_to_host_file_cmd" >&6; } + + + + + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking how to convert $build file names to toolchain format" >&5 +$as_echo_n "checking how to convert $build file names to toolchain format... " >&6; } +if ${lt_cv_to_tool_file_cmd+:} false; then : + $as_echo_n "(cached) " >&6 +else + #assume ordinary cross tools, or native build. +lt_cv_to_tool_file_cmd=func_convert_file_noop +case $host in + *-*-mingw* ) + case $build in + *-*-mingw* ) # actually msys + lt_cv_to_tool_file_cmd=func_convert_file_msys_to_w32 + ;; + esac + ;; +esac + +fi + +to_tool_file_cmd=$lt_cv_to_tool_file_cmd +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_to_tool_file_cmd" >&5 +$as_echo "$lt_cv_to_tool_file_cmd" >&6; } + + + + + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $LD option to reload object files" >&5 +$as_echo_n "checking for $LD option to reload object files... " >&6; } +if ${lt_cv_ld_reload_flag+:} false; then : + $as_echo_n "(cached) " >&6 +else + lt_cv_ld_reload_flag='-r' +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_ld_reload_flag" >&5 +$as_echo "$lt_cv_ld_reload_flag" >&6; } +reload_flag=$lt_cv_ld_reload_flag +case $reload_flag in +"" | " "*) ;; +*) reload_flag=" $reload_flag" ;; +esac +reload_cmds='$LD$reload_flag -o $output$reload_objs' +case $host_os in + cygwin* | mingw* | pw32* | cegcc*) + if test "$GCC" != yes; then + reload_cmds=false + fi + ;; + darwin*) + if test "$GCC" = yes; then + reload_cmds='$LTCC $LTCFLAGS -nostdlib ${wl}-r -o $output$reload_objs' + else + reload_cmds='$LD$reload_flag -o $output$reload_objs' + fi + ;; +esac + + + + + + + + + +if test -n "$ac_tool_prefix"; then + # Extract the first word of "${ac_tool_prefix}objdump", so it can be a program name with args. +set dummy ${ac_tool_prefix}objdump; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_OBJDUMP+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$OBJDUMP"; then + ac_cv_prog_OBJDUMP="$OBJDUMP" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_prog_OBJDUMP="${ac_tool_prefix}objdump" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +OBJDUMP=$ac_cv_prog_OBJDUMP +if test -n "$OBJDUMP"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $OBJDUMP" >&5 +$as_echo "$OBJDUMP" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + +fi +if test -z "$ac_cv_prog_OBJDUMP"; then + ac_ct_OBJDUMP=$OBJDUMP + # Extract the first word of "objdump", so it can be a program name with args. +set dummy objdump; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_ac_ct_OBJDUMP+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$ac_ct_OBJDUMP"; then + ac_cv_prog_ac_ct_OBJDUMP="$ac_ct_OBJDUMP" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_prog_ac_ct_OBJDUMP="objdump" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +ac_ct_OBJDUMP=$ac_cv_prog_ac_ct_OBJDUMP +if test -n "$ac_ct_OBJDUMP"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_OBJDUMP" >&5 +$as_echo "$ac_ct_OBJDUMP" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + if test "x$ac_ct_OBJDUMP" = x; then + OBJDUMP="false" + else + case $cross_compiling:$ac_tool_warned in +yes:) +{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 +$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} +ac_tool_warned=yes ;; +esac + OBJDUMP=$ac_ct_OBJDUMP + fi +else + OBJDUMP="$ac_cv_prog_OBJDUMP" +fi + +test -z "$OBJDUMP" && OBJDUMP=objdump + + + + + + + + + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking how to recognize dependent libraries" >&5 +$as_echo_n "checking how to recognize dependent libraries... " >&6; } +if ${lt_cv_deplibs_check_method+:} false; then : + $as_echo_n "(cached) " >&6 +else + lt_cv_file_magic_cmd='$MAGIC_CMD' +lt_cv_file_magic_test_file= +lt_cv_deplibs_check_method='unknown' +# Need to set the preceding variable on all platforms that support +# interlibrary dependencies. +# 'none' -- dependencies not supported. +# `unknown' -- same as none, but documents that we really don't know. +# 'pass_all' -- all dependencies passed with no checks. +# 'test_compile' -- check by making test program. +# 'file_magic [[regex]]' -- check by looking for files in library path +# which responds to the $file_magic_cmd with a given extended regex. +# If you have `file' or equivalent on your system and you're not sure +# whether `pass_all' will *always* work, you probably want this one. + +case $host_os in +aix[4-9]*) + lt_cv_deplibs_check_method=pass_all + ;; + +beos*) + lt_cv_deplibs_check_method=pass_all + ;; + +bsdi[45]*) + lt_cv_deplibs_check_method='file_magic ELF [0-9][0-9]*-bit [ML]SB (shared object|dynamic lib)' + lt_cv_file_magic_cmd='/usr/bin/file -L' + lt_cv_file_magic_test_file=/shlib/libc.so + ;; + +cygwin*) + # func_win32_libid is a shell function defined in ltmain.sh + lt_cv_deplibs_check_method='file_magic ^x86 archive import|^x86 DLL' + lt_cv_file_magic_cmd='func_win32_libid' + ;; + +mingw* | pw32*) + # Base MSYS/MinGW do not provide the 'file' command needed by + # func_win32_libid shell function, so use a weaker test based on 'objdump', + # unless we find 'file', for example because we are cross-compiling. + # func_win32_libid assumes BSD nm, so disallow it if using MS dumpbin. + if ( test "$lt_cv_nm_interface" = "BSD nm" && file / ) >/dev/null 2>&1; then + lt_cv_deplibs_check_method='file_magic ^x86 archive import|^x86 DLL' + lt_cv_file_magic_cmd='func_win32_libid' + else + # Keep this pattern in sync with the one in func_win32_libid. + lt_cv_deplibs_check_method='file_magic file format (pei*-i386(.*architecture: i386)?|pe-arm-wince|pe-x86-64)' + lt_cv_file_magic_cmd='$OBJDUMP -f' + fi + ;; + +cegcc*) + # use the weaker test based on 'objdump'. See mingw*. + lt_cv_deplibs_check_method='file_magic file format pe-arm-.*little(.*architecture: arm)?' + lt_cv_file_magic_cmd='$OBJDUMP -f' + ;; + +darwin* | rhapsody*) + lt_cv_deplibs_check_method=pass_all + ;; + +freebsd* | dragonfly*) + if echo __ELF__ | $CC -E - | $GREP __ELF__ > /dev/null; then + case $host_cpu in + i*86 ) + # Not sure whether the presence of OpenBSD here was a mistake. + # Let's accept both of them until this is cleared up. + lt_cv_deplibs_check_method='file_magic (FreeBSD|OpenBSD|DragonFly)/i[3-9]86 (compact )?demand paged shared library' + lt_cv_file_magic_cmd=/usr/bin/file + lt_cv_file_magic_test_file=`echo /usr/lib/libc.so.*` + ;; + esac + else + lt_cv_deplibs_check_method=pass_all + fi + ;; + +haiku*) + lt_cv_deplibs_check_method=pass_all + ;; + +hpux10.20* | hpux11*) + lt_cv_file_magic_cmd=/usr/bin/file + case $host_cpu in + ia64*) + lt_cv_deplibs_check_method='file_magic (s[0-9][0-9][0-9]|ELF-[0-9][0-9]) shared object file - IA64' + lt_cv_file_magic_test_file=/usr/lib/hpux32/libc.so + ;; + hppa*64*) + lt_cv_deplibs_check_method='file_magic (s[0-9][0-9][0-9]|ELF[ -][0-9][0-9])(-bit)?( [LM]SB)? shared object( file)?[, -]* PA-RISC [0-9]\.[0-9]' + lt_cv_file_magic_test_file=/usr/lib/pa20_64/libc.sl + ;; + *) + lt_cv_deplibs_check_method='file_magic (s[0-9][0-9][0-9]|PA-RISC[0-9]\.[0-9]) shared library' + lt_cv_file_magic_test_file=/usr/lib/libc.sl + ;; + esac + ;; + +interix[3-9]*) + # PIC code is broken on Interix 3.x, that's why |\.a not |_pic\.a here + lt_cv_deplibs_check_method='match_pattern /lib[^/]+(\.so|\.a)$' + ;; + +irix5* | irix6* | nonstopux*) + case $LD in + *-32|*"-32 ") libmagic=32-bit;; + *-n32|*"-n32 ") libmagic=N32;; + *-64|*"-64 ") libmagic=64-bit;; + *) libmagic=never-match;; + esac + lt_cv_deplibs_check_method=pass_all + ;; + +# This must be glibc/ELF. +linux* | k*bsd*-gnu | kopensolaris*-gnu | gnu*) + lt_cv_deplibs_check_method=pass_all + ;; + +netbsd* | netbsdelf*-gnu) + if echo __ELF__ | $CC -E - | $GREP __ELF__ > /dev/null; then + lt_cv_deplibs_check_method='match_pattern /lib[^/]+(\.so\.[0-9]+\.[0-9]+|_pic\.a)$' + else + lt_cv_deplibs_check_method='match_pattern /lib[^/]+(\.so|_pic\.a)$' + fi + ;; + +newos6*) + lt_cv_deplibs_check_method='file_magic ELF [0-9][0-9]*-bit [ML]SB (executable|dynamic lib)' + lt_cv_file_magic_cmd=/usr/bin/file + lt_cv_file_magic_test_file=/usr/lib/libnls.so + ;; + +*nto* | *qnx*) + lt_cv_deplibs_check_method=pass_all + ;; + +openbsd*) + if test -z "`echo __ELF__ | $CC -E - | $GREP __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then + lt_cv_deplibs_check_method='match_pattern /lib[^/]+(\.so\.[0-9]+\.[0-9]+|\.so|_pic\.a)$' + else + lt_cv_deplibs_check_method='match_pattern /lib[^/]+(\.so\.[0-9]+\.[0-9]+|_pic\.a)$' + fi + ;; + +osf3* | osf4* | osf5*) + lt_cv_deplibs_check_method=pass_all + ;; + +rdos*) + lt_cv_deplibs_check_method=pass_all + ;; + +solaris*) + lt_cv_deplibs_check_method=pass_all + ;; + +sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX* | sysv4*uw2*) + lt_cv_deplibs_check_method=pass_all + ;; + +sysv4 | sysv4.3*) + case $host_vendor in + motorola) + lt_cv_deplibs_check_method='file_magic ELF [0-9][0-9]*-bit [ML]SB (shared object|dynamic lib) M[0-9][0-9]* Version [0-9]' + lt_cv_file_magic_test_file=`echo /usr/lib/libc.so*` + ;; + ncr) + lt_cv_deplibs_check_method=pass_all + ;; + sequent) + lt_cv_file_magic_cmd='/bin/file' + lt_cv_deplibs_check_method='file_magic ELF [0-9][0-9]*-bit [LM]SB (shared object|dynamic lib )' + ;; + sni) + lt_cv_file_magic_cmd='/bin/file' + lt_cv_deplibs_check_method="file_magic ELF [0-9][0-9]*-bit [LM]SB dynamic lib" + lt_cv_file_magic_test_file=/lib/libc.so + ;; + siemens) + lt_cv_deplibs_check_method=pass_all + ;; + pc) + lt_cv_deplibs_check_method=pass_all + ;; + esac + ;; + +tpf*) + lt_cv_deplibs_check_method=pass_all + ;; +esac + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_deplibs_check_method" >&5 +$as_echo "$lt_cv_deplibs_check_method" >&6; } + +file_magic_glob= +want_nocaseglob=no +if test "$build" = "$host"; then + case $host_os in + mingw* | pw32*) + if ( shopt | grep nocaseglob ) >/dev/null 2>&1; then + want_nocaseglob=yes + else + file_magic_glob=`echo aAbBcCdDeEfFgGhHiIjJkKlLmMnNoOpPqQrRsStTuUvVwWxXyYzZ | $SED -e "s/\(..\)/s\/[\1]\/[\1]\/g;/g"` + fi + ;; + esac +fi + +file_magic_cmd=$lt_cv_file_magic_cmd +deplibs_check_method=$lt_cv_deplibs_check_method +test -z "$deplibs_check_method" && deplibs_check_method=unknown + + + + + + + + + + + + + + + + + + + + + + +if test -n "$ac_tool_prefix"; then + # Extract the first word of "${ac_tool_prefix}dlltool", so it can be a program name with args. +set dummy ${ac_tool_prefix}dlltool; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_DLLTOOL+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$DLLTOOL"; then + ac_cv_prog_DLLTOOL="$DLLTOOL" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_prog_DLLTOOL="${ac_tool_prefix}dlltool" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +DLLTOOL=$ac_cv_prog_DLLTOOL +if test -n "$DLLTOOL"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $DLLTOOL" >&5 +$as_echo "$DLLTOOL" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + +fi +if test -z "$ac_cv_prog_DLLTOOL"; then + ac_ct_DLLTOOL=$DLLTOOL + # Extract the first word of "dlltool", so it can be a program name with args. +set dummy dlltool; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_ac_ct_DLLTOOL+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$ac_ct_DLLTOOL"; then + ac_cv_prog_ac_ct_DLLTOOL="$ac_ct_DLLTOOL" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_prog_ac_ct_DLLTOOL="dlltool" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +ac_ct_DLLTOOL=$ac_cv_prog_ac_ct_DLLTOOL +if test -n "$ac_ct_DLLTOOL"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_DLLTOOL" >&5 +$as_echo "$ac_ct_DLLTOOL" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + if test "x$ac_ct_DLLTOOL" = x; then + DLLTOOL="false" + else + case $cross_compiling:$ac_tool_warned in +yes:) +{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 +$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} +ac_tool_warned=yes ;; +esac + DLLTOOL=$ac_ct_DLLTOOL + fi +else + DLLTOOL="$ac_cv_prog_DLLTOOL" +fi + +test -z "$DLLTOOL" && DLLTOOL=dlltool + + + + + + + + + + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking how to associate runtime and link libraries" >&5 +$as_echo_n "checking how to associate runtime and link libraries... " >&6; } +if ${lt_cv_sharedlib_from_linklib_cmd+:} false; then : + $as_echo_n "(cached) " >&6 +else + lt_cv_sharedlib_from_linklib_cmd='unknown' + +case $host_os in +cygwin* | mingw* | pw32* | cegcc*) + # two different shell functions defined in ltmain.sh + # decide which to use based on capabilities of $DLLTOOL + case `$DLLTOOL --help 2>&1` in + *--identify-strict*) + lt_cv_sharedlib_from_linklib_cmd=func_cygming_dll_for_implib + ;; + *) + lt_cv_sharedlib_from_linklib_cmd=func_cygming_dll_for_implib_fallback + ;; + esac + ;; +*) + # fallback: assume linklib IS sharedlib + lt_cv_sharedlib_from_linklib_cmd="$ECHO" + ;; +esac + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_sharedlib_from_linklib_cmd" >&5 +$as_echo "$lt_cv_sharedlib_from_linklib_cmd" >&6; } +sharedlib_from_linklib_cmd=$lt_cv_sharedlib_from_linklib_cmd +test -z "$sharedlib_from_linklib_cmd" && sharedlib_from_linklib_cmd=$ECHO + + + + + + + +if test -n "$ac_tool_prefix"; then + for ac_prog in ar + do + # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args. +set dummy $ac_tool_prefix$ac_prog; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_AR+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$AR"; then + ac_cv_prog_AR="$AR" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_prog_AR="$ac_tool_prefix$ac_prog" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +AR=$ac_cv_prog_AR +if test -n "$AR"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $AR" >&5 +$as_echo "$AR" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + + test -n "$AR" && break + done +fi +if test -z "$AR"; then + ac_ct_AR=$AR + for ac_prog in ar +do + # Extract the first word of "$ac_prog", so it can be a program name with args. +set dummy $ac_prog; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_ac_ct_AR+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$ac_ct_AR"; then + ac_cv_prog_ac_ct_AR="$ac_ct_AR" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_prog_ac_ct_AR="$ac_prog" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +ac_ct_AR=$ac_cv_prog_ac_ct_AR +if test -n "$ac_ct_AR"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_AR" >&5 +$as_echo "$ac_ct_AR" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + + test -n "$ac_ct_AR" && break +done + + if test "x$ac_ct_AR" = x; then + AR="false" + else + case $cross_compiling:$ac_tool_warned in +yes:) +{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 +$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} +ac_tool_warned=yes ;; +esac + AR=$ac_ct_AR + fi +fi + +: ${AR=ar} +: ${AR_FLAGS=cru} + + + + + + + + + + + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for archiver @FILE support" >&5 +$as_echo_n "checking for archiver @FILE support... " >&6; } +if ${lt_cv_ar_at_file+:} false; then : + $as_echo_n "(cached) " >&6 +else + lt_cv_ar_at_file=no + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +int +main () +{ + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + echo conftest.$ac_objext > conftest.lst + lt_ar_try='$AR $AR_FLAGS libconftest.a @conftest.lst >&5' + { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$lt_ar_try\""; } >&5 + (eval $lt_ar_try) 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; } + if test "$ac_status" -eq 0; then + # Ensure the archiver fails upon bogus file names. + rm -f conftest.$ac_objext libconftest.a + { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$lt_ar_try\""; } >&5 + (eval $lt_ar_try) 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; } + if test "$ac_status" -ne 0; then + lt_cv_ar_at_file=@ + fi + fi + rm -f conftest.* libconftest.a + +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_ar_at_file" >&5 +$as_echo "$lt_cv_ar_at_file" >&6; } + +if test "x$lt_cv_ar_at_file" = xno; then + archiver_list_spec= +else + archiver_list_spec=$lt_cv_ar_at_file +fi + + + + + + + +if test -n "$ac_tool_prefix"; then + # Extract the first word of "${ac_tool_prefix}strip", so it can be a program name with args. +set dummy ${ac_tool_prefix}strip; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_STRIP+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$STRIP"; then + ac_cv_prog_STRIP="$STRIP" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_prog_STRIP="${ac_tool_prefix}strip" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +STRIP=$ac_cv_prog_STRIP +if test -n "$STRIP"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $STRIP" >&5 +$as_echo "$STRIP" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + +fi +if test -z "$ac_cv_prog_STRIP"; then + ac_ct_STRIP=$STRIP + # Extract the first word of "strip", so it can be a program name with args. +set dummy strip; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_ac_ct_STRIP+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$ac_ct_STRIP"; then + ac_cv_prog_ac_ct_STRIP="$ac_ct_STRIP" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_prog_ac_ct_STRIP="strip" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +ac_ct_STRIP=$ac_cv_prog_ac_ct_STRIP +if test -n "$ac_ct_STRIP"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_STRIP" >&5 +$as_echo "$ac_ct_STRIP" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + if test "x$ac_ct_STRIP" = x; then + STRIP=":" + else + case $cross_compiling:$ac_tool_warned in +yes:) +{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 +$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} +ac_tool_warned=yes ;; +esac + STRIP=$ac_ct_STRIP + fi +else + STRIP="$ac_cv_prog_STRIP" +fi + +test -z "$STRIP" && STRIP=: + + + + + + +if test -n "$ac_tool_prefix"; then + # Extract the first word of "${ac_tool_prefix}ranlib", so it can be a program name with args. +set dummy ${ac_tool_prefix}ranlib; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_RANLIB+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$RANLIB"; then + ac_cv_prog_RANLIB="$RANLIB" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_prog_RANLIB="${ac_tool_prefix}ranlib" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +RANLIB=$ac_cv_prog_RANLIB +if test -n "$RANLIB"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $RANLIB" >&5 +$as_echo "$RANLIB" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + +fi +if test -z "$ac_cv_prog_RANLIB"; then + ac_ct_RANLIB=$RANLIB + # Extract the first word of "ranlib", so it can be a program name with args. +set dummy ranlib; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_ac_ct_RANLIB+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$ac_ct_RANLIB"; then + ac_cv_prog_ac_ct_RANLIB="$ac_ct_RANLIB" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_prog_ac_ct_RANLIB="ranlib" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +ac_ct_RANLIB=$ac_cv_prog_ac_ct_RANLIB +if test -n "$ac_ct_RANLIB"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_RANLIB" >&5 +$as_echo "$ac_ct_RANLIB" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + if test "x$ac_ct_RANLIB" = x; then + RANLIB=":" + else + case $cross_compiling:$ac_tool_warned in +yes:) +{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 +$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} +ac_tool_warned=yes ;; +esac + RANLIB=$ac_ct_RANLIB + fi +else + RANLIB="$ac_cv_prog_RANLIB" +fi + +test -z "$RANLIB" && RANLIB=: + + + + + + +# Determine commands to create old-style static archives. +old_archive_cmds='$AR $AR_FLAGS $oldlib$oldobjs' +old_postinstall_cmds='chmod 644 $oldlib' +old_postuninstall_cmds= + +if test -n "$RANLIB"; then + case $host_os in + openbsd*) + old_postinstall_cmds="$old_postinstall_cmds~\$RANLIB -t \$tool_oldlib" + ;; + *) + old_postinstall_cmds="$old_postinstall_cmds~\$RANLIB \$tool_oldlib" + ;; + esac + old_archive_cmds="$old_archive_cmds~\$RANLIB \$tool_oldlib" +fi + +case $host_os in + darwin*) + lock_old_archive_extraction=yes ;; + *) + lock_old_archive_extraction=no ;; +esac + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +# If no C compiler was specified, use CC. +LTCC=${LTCC-"$CC"} + +# If no C compiler flags were specified, use CFLAGS. +LTCFLAGS=${LTCFLAGS-"$CFLAGS"} + +# Allow CC to be a program name with arguments. +compiler=$CC + + +# Check for command to grab the raw symbol name followed by C symbol from nm. +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking command to parse $NM output from $compiler object" >&5 +$as_echo_n "checking command to parse $NM output from $compiler object... " >&6; } +if ${lt_cv_sys_global_symbol_pipe+:} false; then : + $as_echo_n "(cached) " >&6 +else + +# These are sane defaults that work on at least a few old systems. +# [They come from Ultrix. What could be older than Ultrix?!! ;)] + +# Character class describing NM global symbol codes. +symcode='[BCDEGRST]' + +# Regexp to match symbols that can be accessed directly from C. +sympat='\([_A-Za-z][_A-Za-z0-9]*\)' + +# Define system-specific variables. +case $host_os in +aix*) + symcode='[BCDT]' + ;; +cygwin* | mingw* | pw32* | cegcc*) + symcode='[ABCDGISTW]' + ;; +hpux*) + if test "$host_cpu" = ia64; then + symcode='[ABCDEGRST]' + fi + ;; +irix* | nonstopux*) + symcode='[BCDEGRST]' + ;; +osf*) + symcode='[BCDEGQRST]' + ;; +solaris*) + symcode='[BDRT]' + ;; +sco3.2v5*) + symcode='[DT]' + ;; +sysv4.2uw2*) + symcode='[DT]' + ;; +sysv5* | sco5v6* | unixware* | OpenUNIX*) + symcode='[ABDT]' + ;; +sysv4) + symcode='[DFNSTU]' + ;; +esac + +# If we're using GNU nm, then use its standard symbol codes. +case `$NM -V 2>&1` in +*GNU* | *'with BFD'*) + symcode='[ABCDGIRSTW]' ;; +esac + +# Transform an extracted symbol line into a proper C declaration. +# Some systems (esp. on ia64) link data and code symbols differently, +# so use this general approach. +lt_cv_sys_global_symbol_to_cdecl="sed -n -e 's/^T .* \(.*\)$/extern int \1();/p' -e 's/^$symcode* .* \(.*\)$/extern char \1;/p'" + +# Transform an extracted symbol line into symbol name and symbol address +lt_cv_sys_global_symbol_to_c_name_address="sed -n -e 's/^: \([^ ]*\)[ ]*$/ {\\\"\1\\\", (void *) 0},/p' -e 's/^$symcode* \([^ ]*\) \([^ ]*\)$/ {\"\2\", (void *) \&\2},/p'" +lt_cv_sys_global_symbol_to_c_name_address_lib_prefix="sed -n -e 's/^: \([^ ]*\)[ ]*$/ {\\\"\1\\\", (void *) 0},/p' -e 's/^$symcode* \([^ ]*\) \(lib[^ ]*\)$/ {\"\2\", (void *) \&\2},/p' -e 's/^$symcode* \([^ ]*\) \([^ ]*\)$/ {\"lib\2\", (void *) \&\2},/p'" + +# Handle CRLF in mingw tool chain +opt_cr= +case $build_os in +mingw*) + opt_cr=`$ECHO 'x\{0,1\}' | tr x '\015'` # option cr in regexp + ;; +esac + +# Try without a prefix underscore, then with it. +for ac_symprfx in "" "_"; do + + # Transform symcode, sympat, and symprfx into a raw symbol and a C symbol. + symxfrm="\\1 $ac_symprfx\\2 \\2" + + # Write the raw and C identifiers. + if test "$lt_cv_nm_interface" = "MS dumpbin"; then + # Fake it for dumpbin and say T for any non-static function + # and D for any global variable. + # Also find C++ and __fastcall symbols from MSVC++, + # which start with @ or ?. + lt_cv_sys_global_symbol_pipe="$AWK '"\ +" {last_section=section; section=\$ 3};"\ +" /^COFF SYMBOL TABLE/{for(i in hide) delete hide[i]};"\ +" /Section length .*#relocs.*(pick any)/{hide[last_section]=1};"\ +" \$ 0!~/External *\|/{next};"\ +" / 0+ UNDEF /{next}; / UNDEF \([^|]\)*()/{next};"\ +" {if(hide[section]) next};"\ +" {f=0}; \$ 0~/\(\).*\|/{f=1}; {printf f ? \"T \" : \"D \"};"\ +" {split(\$ 0, a, /\||\r/); split(a[2], s)};"\ +" s[1]~/^[@?]/{print s[1], s[1]; next};"\ +" s[1]~prfx {split(s[1],t,\"@\"); print t[1], substr(t[1],length(prfx))}"\ +" ' prfx=^$ac_symprfx" + else + lt_cv_sys_global_symbol_pipe="sed -n -e 's/^.*[ ]\($symcode$symcode*\)[ ][ ]*$ac_symprfx$sympat$opt_cr$/$symxfrm/p'" + fi + lt_cv_sys_global_symbol_pipe="$lt_cv_sys_global_symbol_pipe | sed '/ __gnu_lto/d'" + + # Check to see that the pipe works correctly. + pipe_works=no + + rm -f conftest* + cat > conftest.$ac_ext <<_LT_EOF +#ifdef __cplusplus +extern "C" { +#endif +char nm_test_var; +void nm_test_func(void); +void nm_test_func(void){} +#ifdef __cplusplus +} +#endif +int main(){nm_test_var='a';nm_test_func();return(0);} +_LT_EOF + + if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5 + (eval $ac_compile) 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; then + # Now try to grab the symbols. + nlist=conftest.nm + if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$NM conftest.$ac_objext \| "$lt_cv_sys_global_symbol_pipe" \> $nlist\""; } >&5 + (eval $NM conftest.$ac_objext \| "$lt_cv_sys_global_symbol_pipe" \> $nlist) 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; } && test -s "$nlist"; then + # Try sorting and uniquifying the output. + if sort "$nlist" | uniq > "$nlist"T; then + mv -f "$nlist"T "$nlist" + else + rm -f "$nlist"T + fi + + # Make sure that we snagged all the symbols we need. + if $GREP ' nm_test_var$' "$nlist" >/dev/null; then + if $GREP ' nm_test_func$' "$nlist" >/dev/null; then + cat <<_LT_EOF > conftest.$ac_ext +/* Keep this code in sync between libtool.m4, ltmain, lt_system.h, and tests. */ +#if defined(_WIN32) || defined(__CYGWIN__) || defined(_WIN32_WCE) +/* DATA imports from DLLs on WIN32 con't be const, because runtime + relocations are performed -- see ld's documentation on pseudo-relocs. */ +# define LT_DLSYM_CONST +#elif defined(__osf__) +/* This system does not cope well with relocations in const data. */ +# define LT_DLSYM_CONST +#else +# define LT_DLSYM_CONST const +#endif + +#ifdef __cplusplus +extern "C" { +#endif + +_LT_EOF + # Now generate the symbol file. + eval "$lt_cv_sys_global_symbol_to_cdecl"' < "$nlist" | $GREP -v main >> conftest.$ac_ext' + + cat <<_LT_EOF >> conftest.$ac_ext + +/* The mapping between symbol names and symbols. */ +LT_DLSYM_CONST struct { + const char *name; + void *address; +} +lt__PROGRAM__LTX_preloaded_symbols[] = +{ + { "@PROGRAM@", (void *) 0 }, +_LT_EOF + $SED "s/^$symcode$symcode* \(.*\) \(.*\)$/ {\"\2\", (void *) \&\2},/" < "$nlist" | $GREP -v main >> conftest.$ac_ext + cat <<\_LT_EOF >> conftest.$ac_ext + {0, (void *) 0} +}; + +/* This works around a problem in FreeBSD linker */ +#ifdef FREEBSD_WORKAROUND +static const void *lt_preloaded_setup() { + return lt__PROGRAM__LTX_preloaded_symbols; +} +#endif + +#ifdef __cplusplus +} +#endif +_LT_EOF + # Now try linking the two files. + mv conftest.$ac_objext conftstm.$ac_objext + lt_globsym_save_LIBS=$LIBS + lt_globsym_save_CFLAGS=$CFLAGS + LIBS="conftstm.$ac_objext" + CFLAGS="$CFLAGS$lt_prog_compiler_no_builtin_flag" + if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_link\""; } >&5 + (eval $ac_link) 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; } && test -s conftest${ac_exeext}; then + pipe_works=yes + fi + LIBS=$lt_globsym_save_LIBS + CFLAGS=$lt_globsym_save_CFLAGS + else + echo "cannot find nm_test_func in $nlist" >&5 + fi + else + echo "cannot find nm_test_var in $nlist" >&5 + fi + else + echo "cannot run $lt_cv_sys_global_symbol_pipe" >&5 + fi + else + echo "$progname: failed program was:" >&5 + cat conftest.$ac_ext >&5 + fi + rm -rf conftest* conftst* + + # Do not use the global_symbol_pipe unless it works. + if test "$pipe_works" = yes; then + break + else + lt_cv_sys_global_symbol_pipe= + fi +done + +fi + +if test -z "$lt_cv_sys_global_symbol_pipe"; then + lt_cv_sys_global_symbol_to_cdecl= +fi +if test -z "$lt_cv_sys_global_symbol_pipe$lt_cv_sys_global_symbol_to_cdecl"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: failed" >&5 +$as_echo "failed" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: ok" >&5 +$as_echo "ok" >&6; } +fi + +# Response file support. +if test "$lt_cv_nm_interface" = "MS dumpbin"; then + nm_file_list_spec='@' +elif $NM --help 2>/dev/null | grep '[@]FILE' >/dev/null; then + nm_file_list_spec='@' +fi + + + + + + + + + + + + + + + + + + + + + + + + + + + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for sysroot" >&5 +$as_echo_n "checking for sysroot... " >&6; } + +# Check whether --with-sysroot was given. +if test "${with_sysroot+set}" = set; then : + withval=$with_sysroot; +else + with_sysroot=no +fi + + +lt_sysroot= +case ${with_sysroot} in #( + yes) + if test "$GCC" = yes; then + lt_sysroot=`$CC --print-sysroot 2>/dev/null` + fi + ;; #( + /*) + lt_sysroot=`echo "$with_sysroot" | sed -e "$sed_quote_subst"` + ;; #( + no|'') + ;; #( + *) + { $as_echo "$as_me:${as_lineno-$LINENO}: result: ${with_sysroot}" >&5 +$as_echo "${with_sysroot}" >&6; } + as_fn_error $? "The sysroot must be an absolute path." "$LINENO" 5 + ;; +esac + + { $as_echo "$as_me:${as_lineno-$LINENO}: result: ${lt_sysroot:-no}" >&5 +$as_echo "${lt_sysroot:-no}" >&6; } + + + + + +# Check whether --enable-libtool-lock was given. +if test "${enable_libtool_lock+set}" = set; then : + enableval=$enable_libtool_lock; +fi + +test "x$enable_libtool_lock" != xno && enable_libtool_lock=yes + +# Some flags need to be propagated to the compiler or linker for good +# libtool support. +case $host in +ia64-*-hpux*) + # Find out which ABI we are using. + echo 'int i;' > conftest.$ac_ext + if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5 + (eval $ac_compile) 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; then + case `/usr/bin/file conftest.$ac_objext` in + *ELF-32*) + HPUX_IA64_MODE="32" + ;; + *ELF-64*) + HPUX_IA64_MODE="64" + ;; + esac + fi + rm -rf conftest* + ;; +*-*-irix6*) + # Find out which ABI we are using. + echo '#line '$LINENO' "configure"' > conftest.$ac_ext + if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5 + (eval $ac_compile) 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; then + if test "$lt_cv_prog_gnu_ld" = yes; then + case `/usr/bin/file conftest.$ac_objext` in + *32-bit*) + LD="${LD-ld} -melf32bsmip" + ;; + *N32*) + LD="${LD-ld} -melf32bmipn32" + ;; + *64-bit*) + LD="${LD-ld} -melf64bmip" + ;; + esac + else + case `/usr/bin/file conftest.$ac_objext` in + *32-bit*) + LD="${LD-ld} -32" + ;; + *N32*) + LD="${LD-ld} -n32" + ;; + *64-bit*) + LD="${LD-ld} -64" + ;; + esac + fi + fi + rm -rf conftest* + ;; + +x86_64-*kfreebsd*-gnu|x86_64-*linux*|powerpc*-*linux*| \ +s390*-*linux*|s390*-*tpf*|sparc*-*linux*) + # Find out which ABI we are using. + echo 'int i;' > conftest.$ac_ext + if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5 + (eval $ac_compile) 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; then + case `/usr/bin/file conftest.o` in + *32-bit*) + case $host in + x86_64-*kfreebsd*-gnu) + LD="${LD-ld} -m elf_i386_fbsd" + ;; + x86_64-*linux*) + case `/usr/bin/file conftest.o` in + *x86-64*) + LD="${LD-ld} -m elf32_x86_64" + ;; + *) + LD="${LD-ld} -m elf_i386" + ;; + esac + ;; + powerpc64le-*) + LD="${LD-ld} -m elf32lppclinux" + ;; + powerpc64-*) + LD="${LD-ld} -m elf32ppclinux" + ;; + s390x-*linux*) + LD="${LD-ld} -m elf_s390" + ;; + sparc64-*linux*) + LD="${LD-ld} -m elf32_sparc" + ;; + esac + ;; + *64-bit*) + case $host in + x86_64-*kfreebsd*-gnu) + LD="${LD-ld} -m elf_x86_64_fbsd" + ;; + x86_64-*linux*) + LD="${LD-ld} -m elf_x86_64" + ;; + powerpcle-*) + LD="${LD-ld} -m elf64lppc" + ;; + powerpc-*) + LD="${LD-ld} -m elf64ppc" + ;; + s390*-*linux*|s390*-*tpf*) + LD="${LD-ld} -m elf64_s390" + ;; + sparc*-*linux*) + LD="${LD-ld} -m elf64_sparc" + ;; + esac + ;; + esac + fi + rm -rf conftest* + ;; + +*-*-sco3.2v5*) + # On SCO OpenServer 5, we need -belf to get full-featured binaries. + SAVE_CFLAGS="$CFLAGS" + CFLAGS="$CFLAGS -belf" + { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the C compiler needs -belf" >&5 +$as_echo_n "checking whether the C compiler needs -belf... " >&6; } +if ${lt_cv_cc_needs_belf+:} false; then : + $as_echo_n "(cached) " >&6 +else + ac_ext=c +ac_cpp='$CPP $CPPFLAGS' +ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_c_compiler_gnu + + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +int +main () +{ + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + lt_cv_cc_needs_belf=yes +else + lt_cv_cc_needs_belf=no +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext + ac_ext=c +ac_cpp='$CPP $CPPFLAGS' +ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_c_compiler_gnu + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_cc_needs_belf" >&5 +$as_echo "$lt_cv_cc_needs_belf" >&6; } + if test x"$lt_cv_cc_needs_belf" != x"yes"; then + # this is probably gcc 2.8.0, egcs 1.0 or newer; no need for -belf + CFLAGS="$SAVE_CFLAGS" + fi + ;; +*-*solaris*) + # Find out which ABI we are using. + echo 'int i;' > conftest.$ac_ext + if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5 + (eval $ac_compile) 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; then + case `/usr/bin/file conftest.o` in + *64-bit*) + case $lt_cv_prog_gnu_ld in + yes*) + case $host in + i?86-*-solaris*) + LD="${LD-ld} -m elf_x86_64" + ;; + sparc*-*-solaris*) + LD="${LD-ld} -m elf64_sparc" + ;; + esac + # GNU ld 2.21 introduced _sol2 emulations. Use them if available. + if ${LD-ld} -V | grep _sol2 >/dev/null 2>&1; then + LD="${LD-ld}_sol2" + fi + ;; + *) + if ${LD-ld} -64 -r -o conftest2.o conftest.o >/dev/null 2>&1; then + LD="${LD-ld} -64" + fi + ;; + esac + ;; + esac + fi + rm -rf conftest* + ;; +esac + +need_locks="$enable_libtool_lock" + +if test -n "$ac_tool_prefix"; then + # Extract the first word of "${ac_tool_prefix}mt", so it can be a program name with args. +set dummy ${ac_tool_prefix}mt; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_MANIFEST_TOOL+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$MANIFEST_TOOL"; then + ac_cv_prog_MANIFEST_TOOL="$MANIFEST_TOOL" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_prog_MANIFEST_TOOL="${ac_tool_prefix}mt" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +MANIFEST_TOOL=$ac_cv_prog_MANIFEST_TOOL +if test -n "$MANIFEST_TOOL"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $MANIFEST_TOOL" >&5 +$as_echo "$MANIFEST_TOOL" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + +fi +if test -z "$ac_cv_prog_MANIFEST_TOOL"; then + ac_ct_MANIFEST_TOOL=$MANIFEST_TOOL + # Extract the first word of "mt", so it can be a program name with args. +set dummy mt; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_ac_ct_MANIFEST_TOOL+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$ac_ct_MANIFEST_TOOL"; then + ac_cv_prog_ac_ct_MANIFEST_TOOL="$ac_ct_MANIFEST_TOOL" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_prog_ac_ct_MANIFEST_TOOL="mt" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +ac_ct_MANIFEST_TOOL=$ac_cv_prog_ac_ct_MANIFEST_TOOL +if test -n "$ac_ct_MANIFEST_TOOL"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_MANIFEST_TOOL" >&5 +$as_echo "$ac_ct_MANIFEST_TOOL" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + if test "x$ac_ct_MANIFEST_TOOL" = x; then + MANIFEST_TOOL=":" + else + case $cross_compiling:$ac_tool_warned in +yes:) +{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 +$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} +ac_tool_warned=yes ;; +esac + MANIFEST_TOOL=$ac_ct_MANIFEST_TOOL + fi +else + MANIFEST_TOOL="$ac_cv_prog_MANIFEST_TOOL" +fi + +test -z "$MANIFEST_TOOL" && MANIFEST_TOOL=mt +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking if $MANIFEST_TOOL is a manifest tool" >&5 +$as_echo_n "checking if $MANIFEST_TOOL is a manifest tool... " >&6; } +if ${lt_cv_path_mainfest_tool+:} false; then : + $as_echo_n "(cached) " >&6 +else + lt_cv_path_mainfest_tool=no + echo "$as_me:$LINENO: $MANIFEST_TOOL '-?'" >&5 + $MANIFEST_TOOL '-?' 2>conftest.err > conftest.out + cat conftest.err >&5 + if $GREP 'Manifest Tool' conftest.out > /dev/null; then + lt_cv_path_mainfest_tool=yes + fi + rm -f conftest* +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_path_mainfest_tool" >&5 +$as_echo "$lt_cv_path_mainfest_tool" >&6; } +if test "x$lt_cv_path_mainfest_tool" != xyes; then + MANIFEST_TOOL=: +fi + + + + + + + case $host_os in + rhapsody* | darwin*) + if test -n "$ac_tool_prefix"; then + # Extract the first word of "${ac_tool_prefix}dsymutil", so it can be a program name with args. +set dummy ${ac_tool_prefix}dsymutil; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_DSYMUTIL+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$DSYMUTIL"; then + ac_cv_prog_DSYMUTIL="$DSYMUTIL" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_prog_DSYMUTIL="${ac_tool_prefix}dsymutil" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +DSYMUTIL=$ac_cv_prog_DSYMUTIL +if test -n "$DSYMUTIL"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $DSYMUTIL" >&5 +$as_echo "$DSYMUTIL" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + +fi +if test -z "$ac_cv_prog_DSYMUTIL"; then + ac_ct_DSYMUTIL=$DSYMUTIL + # Extract the first word of "dsymutil", so it can be a program name with args. +set dummy dsymutil; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_ac_ct_DSYMUTIL+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$ac_ct_DSYMUTIL"; then + ac_cv_prog_ac_ct_DSYMUTIL="$ac_ct_DSYMUTIL" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_prog_ac_ct_DSYMUTIL="dsymutil" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +ac_ct_DSYMUTIL=$ac_cv_prog_ac_ct_DSYMUTIL +if test -n "$ac_ct_DSYMUTIL"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_DSYMUTIL" >&5 +$as_echo "$ac_ct_DSYMUTIL" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + if test "x$ac_ct_DSYMUTIL" = x; then + DSYMUTIL=":" + else + case $cross_compiling:$ac_tool_warned in +yes:) +{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 +$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} +ac_tool_warned=yes ;; +esac + DSYMUTIL=$ac_ct_DSYMUTIL + fi +else + DSYMUTIL="$ac_cv_prog_DSYMUTIL" +fi + + if test -n "$ac_tool_prefix"; then + # Extract the first word of "${ac_tool_prefix}nmedit", so it can be a program name with args. +set dummy ${ac_tool_prefix}nmedit; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_NMEDIT+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$NMEDIT"; then + ac_cv_prog_NMEDIT="$NMEDIT" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_prog_NMEDIT="${ac_tool_prefix}nmedit" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +NMEDIT=$ac_cv_prog_NMEDIT +if test -n "$NMEDIT"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $NMEDIT" >&5 +$as_echo "$NMEDIT" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + +fi +if test -z "$ac_cv_prog_NMEDIT"; then + ac_ct_NMEDIT=$NMEDIT + # Extract the first word of "nmedit", so it can be a program name with args. +set dummy nmedit; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_ac_ct_NMEDIT+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$ac_ct_NMEDIT"; then + ac_cv_prog_ac_ct_NMEDIT="$ac_ct_NMEDIT" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_prog_ac_ct_NMEDIT="nmedit" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +ac_ct_NMEDIT=$ac_cv_prog_ac_ct_NMEDIT +if test -n "$ac_ct_NMEDIT"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_NMEDIT" >&5 +$as_echo "$ac_ct_NMEDIT" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + if test "x$ac_ct_NMEDIT" = x; then + NMEDIT=":" + else + case $cross_compiling:$ac_tool_warned in +yes:) +{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 +$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} +ac_tool_warned=yes ;; +esac + NMEDIT=$ac_ct_NMEDIT + fi +else + NMEDIT="$ac_cv_prog_NMEDIT" +fi + + if test -n "$ac_tool_prefix"; then + # Extract the first word of "${ac_tool_prefix}lipo", so it can be a program name with args. +set dummy ${ac_tool_prefix}lipo; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_LIPO+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$LIPO"; then + ac_cv_prog_LIPO="$LIPO" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_prog_LIPO="${ac_tool_prefix}lipo" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +LIPO=$ac_cv_prog_LIPO +if test -n "$LIPO"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $LIPO" >&5 +$as_echo "$LIPO" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + +fi +if test -z "$ac_cv_prog_LIPO"; then + ac_ct_LIPO=$LIPO + # Extract the first word of "lipo", so it can be a program name with args. +set dummy lipo; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_ac_ct_LIPO+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$ac_ct_LIPO"; then + ac_cv_prog_ac_ct_LIPO="$ac_ct_LIPO" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_prog_ac_ct_LIPO="lipo" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +ac_ct_LIPO=$ac_cv_prog_ac_ct_LIPO +if test -n "$ac_ct_LIPO"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_LIPO" >&5 +$as_echo "$ac_ct_LIPO" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + if test "x$ac_ct_LIPO" = x; then + LIPO=":" + else + case $cross_compiling:$ac_tool_warned in +yes:) +{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 +$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} +ac_tool_warned=yes ;; +esac + LIPO=$ac_ct_LIPO + fi +else + LIPO="$ac_cv_prog_LIPO" +fi + + if test -n "$ac_tool_prefix"; then + # Extract the first word of "${ac_tool_prefix}otool", so it can be a program name with args. +set dummy ${ac_tool_prefix}otool; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_OTOOL+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$OTOOL"; then + ac_cv_prog_OTOOL="$OTOOL" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_prog_OTOOL="${ac_tool_prefix}otool" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +OTOOL=$ac_cv_prog_OTOOL +if test -n "$OTOOL"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $OTOOL" >&5 +$as_echo "$OTOOL" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + +fi +if test -z "$ac_cv_prog_OTOOL"; then + ac_ct_OTOOL=$OTOOL + # Extract the first word of "otool", so it can be a program name with args. +set dummy otool; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_ac_ct_OTOOL+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$ac_ct_OTOOL"; then + ac_cv_prog_ac_ct_OTOOL="$ac_ct_OTOOL" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_prog_ac_ct_OTOOL="otool" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +ac_ct_OTOOL=$ac_cv_prog_ac_ct_OTOOL +if test -n "$ac_ct_OTOOL"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_OTOOL" >&5 +$as_echo "$ac_ct_OTOOL" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + if test "x$ac_ct_OTOOL" = x; then + OTOOL=":" + else + case $cross_compiling:$ac_tool_warned in +yes:) +{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 +$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} +ac_tool_warned=yes ;; +esac + OTOOL=$ac_ct_OTOOL + fi +else + OTOOL="$ac_cv_prog_OTOOL" +fi + + if test -n "$ac_tool_prefix"; then + # Extract the first word of "${ac_tool_prefix}otool64", so it can be a program name with args. +set dummy ${ac_tool_prefix}otool64; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_OTOOL64+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$OTOOL64"; then + ac_cv_prog_OTOOL64="$OTOOL64" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_prog_OTOOL64="${ac_tool_prefix}otool64" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +OTOOL64=$ac_cv_prog_OTOOL64 +if test -n "$OTOOL64"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $OTOOL64" >&5 +$as_echo "$OTOOL64" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + +fi +if test -z "$ac_cv_prog_OTOOL64"; then + ac_ct_OTOOL64=$OTOOL64 + # Extract the first word of "otool64", so it can be a program name with args. +set dummy otool64; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_ac_ct_OTOOL64+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$ac_ct_OTOOL64"; then + ac_cv_prog_ac_ct_OTOOL64="$ac_ct_OTOOL64" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_prog_ac_ct_OTOOL64="otool64" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +ac_ct_OTOOL64=$ac_cv_prog_ac_ct_OTOOL64 +if test -n "$ac_ct_OTOOL64"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_OTOOL64" >&5 +$as_echo "$ac_ct_OTOOL64" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + if test "x$ac_ct_OTOOL64" = x; then + OTOOL64=":" + else + case $cross_compiling:$ac_tool_warned in +yes:) +{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 +$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} +ac_tool_warned=yes ;; +esac + OTOOL64=$ac_ct_OTOOL64 + fi +else + OTOOL64="$ac_cv_prog_OTOOL64" +fi + + + + + + + + + + + + + + + + + + + + + + + + + + + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for -single_module linker flag" >&5 +$as_echo_n "checking for -single_module linker flag... " >&6; } +if ${lt_cv_apple_cc_single_mod+:} false; then : + $as_echo_n "(cached) " >&6 +else + lt_cv_apple_cc_single_mod=no + if test -z "${LT_MULTI_MODULE}"; then + # By default we will add the -single_module flag. You can override + # by either setting the environment variable LT_MULTI_MODULE + # non-empty at configure time, or by adding -multi_module to the + # link flags. + rm -rf libconftest.dylib* + echo "int foo(void){return 1;}" > conftest.c + echo "$LTCC $LTCFLAGS $LDFLAGS -o libconftest.dylib \ +-dynamiclib -Wl,-single_module conftest.c" >&5 + $LTCC $LTCFLAGS $LDFLAGS -o libconftest.dylib \ + -dynamiclib -Wl,-single_module conftest.c 2>conftest.err + _lt_result=$? + # If there is a non-empty error log, and "single_module" + # appears in it, assume the flag caused a linker warning + if test -s conftest.err && $GREP single_module conftest.err; then + cat conftest.err >&5 + # Otherwise, if the output was created with a 0 exit code from + # the compiler, it worked. + elif test -f libconftest.dylib && test $_lt_result -eq 0; then + lt_cv_apple_cc_single_mod=yes + else + cat conftest.err >&5 + fi + rm -rf libconftest.dylib* + rm -f conftest.* + fi +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_apple_cc_single_mod" >&5 +$as_echo "$lt_cv_apple_cc_single_mod" >&6; } + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for -exported_symbols_list linker flag" >&5 +$as_echo_n "checking for -exported_symbols_list linker flag... " >&6; } +if ${lt_cv_ld_exported_symbols_list+:} false; then : + $as_echo_n "(cached) " >&6 +else + lt_cv_ld_exported_symbols_list=no + save_LDFLAGS=$LDFLAGS + echo "_main" > conftest.sym + LDFLAGS="$LDFLAGS -Wl,-exported_symbols_list,conftest.sym" + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +int +main () +{ + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + lt_cv_ld_exported_symbols_list=yes +else + lt_cv_ld_exported_symbols_list=no +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext + LDFLAGS="$save_LDFLAGS" + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_ld_exported_symbols_list" >&5 +$as_echo "$lt_cv_ld_exported_symbols_list" >&6; } + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for -force_load linker flag" >&5 +$as_echo_n "checking for -force_load linker flag... " >&6; } +if ${lt_cv_ld_force_load+:} false; then : + $as_echo_n "(cached) " >&6 +else + lt_cv_ld_force_load=no + cat > conftest.c << _LT_EOF +int forced_loaded() { return 2;} +_LT_EOF + echo "$LTCC $LTCFLAGS -c -o conftest.o conftest.c" >&5 + $LTCC $LTCFLAGS -c -o conftest.o conftest.c 2>&5 + echo "$AR cru libconftest.a conftest.o" >&5 + $AR cru libconftest.a conftest.o 2>&5 + echo "$RANLIB libconftest.a" >&5 + $RANLIB libconftest.a 2>&5 + cat > conftest.c << _LT_EOF +int main() { return 0;} +_LT_EOF + echo "$LTCC $LTCFLAGS $LDFLAGS -o conftest conftest.c -Wl,-force_load,./libconftest.a" >&5 + $LTCC $LTCFLAGS $LDFLAGS -o conftest conftest.c -Wl,-force_load,./libconftest.a 2>conftest.err + _lt_result=$? + if test -s conftest.err && $GREP force_load conftest.err; then + cat conftest.err >&5 + elif test -f conftest && test $_lt_result -eq 0 && $GREP forced_load conftest >/dev/null 2>&1 ; then + lt_cv_ld_force_load=yes + else + cat conftest.err >&5 + fi + rm -f conftest.err libconftest.a conftest conftest.c + rm -rf conftest.dSYM + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_ld_force_load" >&5 +$as_echo "$lt_cv_ld_force_load" >&6; } + case $host_os in + rhapsody* | darwin1.[012]) + _lt_dar_allow_undefined='${wl}-undefined ${wl}suppress' ;; + darwin1.*) + _lt_dar_allow_undefined='${wl}-flat_namespace ${wl}-undefined ${wl}suppress' ;; + darwin*) # darwin 5.x on + # if running on 10.5 or later, the deployment target defaults + # to the OS version, if on x86, and 10.4, the deployment + # target defaults to 10.4. Don't you love it? + case ${MACOSX_DEPLOYMENT_TARGET-10.0},$host in + 10.0,*86*-darwin8*|10.0,*-darwin[91]*) + _lt_dar_allow_undefined='${wl}-undefined ${wl}dynamic_lookup' ;; + 10.[012]*) + _lt_dar_allow_undefined='${wl}-flat_namespace ${wl}-undefined ${wl}suppress' ;; + 10.*) + _lt_dar_allow_undefined='${wl}-undefined ${wl}dynamic_lookup' ;; + esac + ;; + esac + if test "$lt_cv_apple_cc_single_mod" = "yes"; then + _lt_dar_single_mod='$single_module' + fi + if test "$lt_cv_ld_exported_symbols_list" = "yes"; then + _lt_dar_export_syms=' ${wl}-exported_symbols_list,$output_objdir/${libname}-symbols.expsym' + else + _lt_dar_export_syms='~$NMEDIT -s $output_objdir/${libname}-symbols.expsym ${lib}' + fi + if test "$DSYMUTIL" != ":" && test "$lt_cv_ld_force_load" = "no"; then + _lt_dsymutil='~$DSYMUTIL $lib || :' + else + _lt_dsymutil= + fi + ;; + esac + +ac_ext=c +ac_cpp='$CPP $CPPFLAGS' +ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_c_compiler_gnu +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking how to run the C preprocessor" >&5 +$as_echo_n "checking how to run the C preprocessor... " >&6; } +# On Suns, sometimes $CPP names a directory. +if test -n "$CPP" && test -d "$CPP"; then + CPP= +fi +if test -z "$CPP"; then + if ${ac_cv_prog_CPP+:} false; then : + $as_echo_n "(cached) " >&6 +else + # Double quotes because CPP needs to be expanded + for CPP in "$CC -E" "$CC -E -traditional-cpp" "/lib/cpp" + do + ac_preproc_ok=false +for ac_c_preproc_warn_flag in '' yes +do + # Use a header file that comes with gcc, so configuring glibc + # with a fresh cross-compiler works. + # Prefer to if __STDC__ is defined, since + # exists even on freestanding compilers. + # On the NeXT, cc -E runs the code through the compiler's parser, + # not just through cpp. "Syntax error" is here to catch this case. + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#ifdef __STDC__ +# include +#else +# include +#endif + Syntax error +_ACEOF +if ac_fn_c_try_cpp "$LINENO"; then : + +else + # Broken: fails on valid input. +continue +fi +rm -f conftest.err conftest.i conftest.$ac_ext + + # OK, works on sane cases. Now check whether nonexistent headers + # can be detected and how. + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include +_ACEOF +if ac_fn_c_try_cpp "$LINENO"; then : + # Broken: success on invalid input. +continue +else + # Passes both tests. +ac_preproc_ok=: +break +fi +rm -f conftest.err conftest.i conftest.$ac_ext + +done +# Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped. +rm -f conftest.i conftest.err conftest.$ac_ext +if $ac_preproc_ok; then : + break +fi + + done + ac_cv_prog_CPP=$CPP + +fi + CPP=$ac_cv_prog_CPP +else + ac_cv_prog_CPP=$CPP +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $CPP" >&5 +$as_echo "$CPP" >&6; } +ac_preproc_ok=false +for ac_c_preproc_warn_flag in '' yes +do + # Use a header file that comes with gcc, so configuring glibc + # with a fresh cross-compiler works. + # Prefer to if __STDC__ is defined, since + # exists even on freestanding compilers. + # On the NeXT, cc -E runs the code through the compiler's parser, + # not just through cpp. "Syntax error" is here to catch this case. + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#ifdef __STDC__ +# include +#else +# include +#endif + Syntax error +_ACEOF +if ac_fn_c_try_cpp "$LINENO"; then : + +else + # Broken: fails on valid input. +continue +fi +rm -f conftest.err conftest.i conftest.$ac_ext + + # OK, works on sane cases. Now check whether nonexistent headers + # can be detected and how. + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include +_ACEOF +if ac_fn_c_try_cpp "$LINENO"; then : + # Broken: success on invalid input. +continue +else + # Passes both tests. +ac_preproc_ok=: +break +fi +rm -f conftest.err conftest.i conftest.$ac_ext + +done +# Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped. +rm -f conftest.i conftest.err conftest.$ac_ext +if $ac_preproc_ok; then : + +else + { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 +$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} +as_fn_error $? "C preprocessor \"$CPP\" fails sanity check +See \`config.log' for more details" "$LINENO" 5; } +fi + +ac_ext=c +ac_cpp='$CPP $CPPFLAGS' +ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_c_compiler_gnu + + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for ANSI C header files" >&5 +$as_echo_n "checking for ANSI C header files... " >&6; } +if ${ac_cv_header_stdc+:} false; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include +#include +#include +#include + +int +main () +{ + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + ac_cv_header_stdc=yes +else + ac_cv_header_stdc=no +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext + +if test $ac_cv_header_stdc = yes; then + # SunOS 4.x string.h does not declare mem*, contrary to ANSI. + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include + +_ACEOF +if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | + $EGREP "memchr" >/dev/null 2>&1; then : + +else + ac_cv_header_stdc=no +fi +rm -f conftest* + +fi + +if test $ac_cv_header_stdc = yes; then + # ISC 2.0.2 stdlib.h does not declare free, contrary to ANSI. + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include + +_ACEOF +if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | + $EGREP "free" >/dev/null 2>&1; then : + +else + ac_cv_header_stdc=no +fi +rm -f conftest* + +fi + +if test $ac_cv_header_stdc = yes; then + # /bin/cc in Irix-4.0.5 gets non-ANSI ctype macros unless using -ansi. + if test "$cross_compiling" = yes; then : + : +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include +#include +#if ((' ' & 0x0FF) == 0x020) +# define ISLOWER(c) ('a' <= (c) && (c) <= 'z') +# define TOUPPER(c) (ISLOWER(c) ? 'A' + ((c) - 'a') : (c)) +#else +# define ISLOWER(c) \ + (('a' <= (c) && (c) <= 'i') \ + || ('j' <= (c) && (c) <= 'r') \ + || ('s' <= (c) && (c) <= 'z')) +# define TOUPPER(c) (ISLOWER(c) ? ((c) | 0x40) : (c)) +#endif + +#define XOR(e, f) (((e) && !(f)) || (!(e) && (f))) +int +main () +{ + int i; + for (i = 0; i < 256; i++) + if (XOR (islower (i), ISLOWER (i)) + || toupper (i) != TOUPPER (i)) + return 2; + return 0; +} +_ACEOF +if ac_fn_c_try_run "$LINENO"; then : + +else + ac_cv_header_stdc=no +fi +rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ + conftest.$ac_objext conftest.beam conftest.$ac_ext +fi + +fi +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_header_stdc" >&5 +$as_echo "$ac_cv_header_stdc" >&6; } +if test $ac_cv_header_stdc = yes; then + +$as_echo "#define STDC_HEADERS 1" >>confdefs.h + +fi + +# On IRIX 5.3, sys/types and inttypes.h are conflicting. +for ac_header in sys/types.h sys/stat.h stdlib.h string.h memory.h strings.h \ + inttypes.h stdint.h unistd.h +do : + as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh` +ac_fn_c_check_header_compile "$LINENO" "$ac_header" "$as_ac_Header" "$ac_includes_default +" +if eval test \"x\$"$as_ac_Header"\" = x"yes"; then : + cat >>confdefs.h <<_ACEOF +#define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1 +_ACEOF + +fi + +done + + +for ac_header in dlfcn.h +do : + ac_fn_c_check_header_compile "$LINENO" "dlfcn.h" "ac_cv_header_dlfcn_h" "$ac_includes_default +" +if test "x$ac_cv_header_dlfcn_h" = xyes; then : + cat >>confdefs.h <<_ACEOF +#define HAVE_DLFCN_H 1 +_ACEOF + +fi + +done + + + + + +# Set options + + + + enable_dlopen=no + + + enable_win32_dll=no + + + # Check whether --enable-shared was given. +if test "${enable_shared+set}" = set; then : + enableval=$enable_shared; p=${PACKAGE-default} + case $enableval in + yes) enable_shared=yes ;; + no) enable_shared=no ;; + *) + enable_shared=no + # Look at the argument we got. We use all the common list separators. + lt_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR," + for pkg in $enableval; do + IFS="$lt_save_ifs" + if test "X$pkg" = "X$p"; then + enable_shared=yes + fi + done + IFS="$lt_save_ifs" + ;; + esac +else + enable_shared=yes +fi + + + + + + + + + + # Check whether --enable-static was given. +if test "${enable_static+set}" = set; then : + enableval=$enable_static; p=${PACKAGE-default} + case $enableval in + yes) enable_static=yes ;; + no) enable_static=no ;; + *) + enable_static=no + # Look at the argument we got. We use all the common list separators. + lt_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR," + for pkg in $enableval; do + IFS="$lt_save_ifs" + if test "X$pkg" = "X$p"; then + enable_static=yes + fi + done + IFS="$lt_save_ifs" + ;; + esac +else + enable_static=yes +fi + + + + + + + + + + +# Check whether --with-pic was given. +if test "${with_pic+set}" = set; then : + withval=$with_pic; lt_p=${PACKAGE-default} + case $withval in + yes|no) pic_mode=$withval ;; + *) + pic_mode=default + # Look at the argument we got. We use all the common list separators. + lt_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR," + for lt_pkg in $withval; do + IFS="$lt_save_ifs" + if test "X$lt_pkg" = "X$lt_p"; then + pic_mode=yes + fi + done + IFS="$lt_save_ifs" + ;; + esac +else + pic_mode=default +fi + + +test -z "$pic_mode" && pic_mode=default + + + + + + + + # Check whether --enable-fast-install was given. +if test "${enable_fast_install+set}" = set; then : + enableval=$enable_fast_install; p=${PACKAGE-default} + case $enableval in + yes) enable_fast_install=yes ;; + no) enable_fast_install=no ;; + *) + enable_fast_install=no + # Look at the argument we got. We use all the common list separators. + lt_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR," + for pkg in $enableval; do + IFS="$lt_save_ifs" + if test "X$pkg" = "X$p"; then + enable_fast_install=yes + fi + done + IFS="$lt_save_ifs" + ;; + esac +else + enable_fast_install=yes +fi + + + + + + + + + + + +# This can be used to rebuild libtool when needed +LIBTOOL_DEPS="$ltmain" + +# Always use our own libtool. +LIBTOOL='$(SHELL) $(top_builddir)/libtool' + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +test -z "$LN_S" && LN_S="ln -s" + + + + + + + + + + + + + + +if test -n "${ZSH_VERSION+set}" ; then + setopt NO_GLOB_SUBST +fi + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for objdir" >&5 +$as_echo_n "checking for objdir... " >&6; } +if ${lt_cv_objdir+:} false; then : + $as_echo_n "(cached) " >&6 +else + rm -f .libs 2>/dev/null +mkdir .libs 2>/dev/null +if test -d .libs; then + lt_cv_objdir=.libs +else + # MS-DOS does not allow filenames that begin with a dot. + lt_cv_objdir=_libs +fi +rmdir .libs 2>/dev/null +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_objdir" >&5 +$as_echo "$lt_cv_objdir" >&6; } +objdir=$lt_cv_objdir + + + + + +cat >>confdefs.h <<_ACEOF +#define LT_OBJDIR "$lt_cv_objdir/" +_ACEOF + + + + +case $host_os in +aix3*) + # AIX sometimes has problems with the GCC collect2 program. For some + # reason, if we set the COLLECT_NAMES environment variable, the problems + # vanish in a puff of smoke. + if test "X${COLLECT_NAMES+set}" != Xset; then + COLLECT_NAMES= + export COLLECT_NAMES + fi + ;; +esac + +# Global variables: +ofile=libtool +can_build_shared=yes + +# All known linkers require a `.a' archive for static linking (except MSVC, +# which needs '.lib'). +libext=a + +with_gnu_ld="$lt_cv_prog_gnu_ld" + +old_CC="$CC" +old_CFLAGS="$CFLAGS" + +# Set sane defaults for various variables +test -z "$CC" && CC=cc +test -z "$LTCC" && LTCC=$CC +test -z "$LTCFLAGS" && LTCFLAGS=$CFLAGS +test -z "$LD" && LD=ld +test -z "$ac_objext" && ac_objext=o + +for cc_temp in $compiler""; do + case $cc_temp in + compile | *[\\/]compile | ccache | *[\\/]ccache ) ;; + distcc | *[\\/]distcc | purify | *[\\/]purify ) ;; + \-*) ;; + *) break;; + esac +done +cc_basename=`$ECHO "$cc_temp" | $SED "s%.*/%%; s%^$host_alias-%%"` + + +# Only perform the check for file, if the check method requires it +test -z "$MAGIC_CMD" && MAGIC_CMD=file +case $deplibs_check_method in +file_magic*) + if test "$file_magic_cmd" = '$MAGIC_CMD'; then + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for ${ac_tool_prefix}file" >&5 +$as_echo_n "checking for ${ac_tool_prefix}file... " >&6; } +if ${lt_cv_path_MAGIC_CMD+:} false; then : + $as_echo_n "(cached) " >&6 +else + case $MAGIC_CMD in +[\\/*] | ?:[\\/]*) + lt_cv_path_MAGIC_CMD="$MAGIC_CMD" # Let the user override the test with a path. + ;; +*) + lt_save_MAGIC_CMD="$MAGIC_CMD" + lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR + ac_dummy="/usr/bin$PATH_SEPARATOR$PATH" + for ac_dir in $ac_dummy; do + IFS="$lt_save_ifs" + test -z "$ac_dir" && ac_dir=. + if test -f $ac_dir/${ac_tool_prefix}file; then + lt_cv_path_MAGIC_CMD="$ac_dir/${ac_tool_prefix}file" + if test -n "$file_magic_test_file"; then + case $deplibs_check_method in + "file_magic "*) + file_magic_regex=`expr "$deplibs_check_method" : "file_magic \(.*\)"` + MAGIC_CMD="$lt_cv_path_MAGIC_CMD" + if eval $file_magic_cmd \$file_magic_test_file 2> /dev/null | + $EGREP "$file_magic_regex" > /dev/null; then + : + else + cat <<_LT_EOF 1>&2 + +*** Warning: the command libtool uses to detect shared libraries, +*** $file_magic_cmd, produces output that libtool cannot recognize. +*** The result is that libtool may fail to recognize shared libraries +*** as such. This will affect the creation of libtool libraries that +*** depend on shared libraries, but programs linked with such libtool +*** libraries will work regardless of this problem. Nevertheless, you +*** may want to report the problem to your system manager and/or to +*** bug-libtool@gnu.org + +_LT_EOF + fi ;; + esac + fi + break + fi + done + IFS="$lt_save_ifs" + MAGIC_CMD="$lt_save_MAGIC_CMD" + ;; +esac +fi + +MAGIC_CMD="$lt_cv_path_MAGIC_CMD" +if test -n "$MAGIC_CMD"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $MAGIC_CMD" >&5 +$as_echo "$MAGIC_CMD" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + + + + +if test -z "$lt_cv_path_MAGIC_CMD"; then + if test -n "$ac_tool_prefix"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for file" >&5 +$as_echo_n "checking for file... " >&6; } +if ${lt_cv_path_MAGIC_CMD+:} false; then : + $as_echo_n "(cached) " >&6 +else + case $MAGIC_CMD in +[\\/*] | ?:[\\/]*) + lt_cv_path_MAGIC_CMD="$MAGIC_CMD" # Let the user override the test with a path. + ;; +*) + lt_save_MAGIC_CMD="$MAGIC_CMD" + lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR + ac_dummy="/usr/bin$PATH_SEPARATOR$PATH" + for ac_dir in $ac_dummy; do + IFS="$lt_save_ifs" + test -z "$ac_dir" && ac_dir=. + if test -f $ac_dir/file; then + lt_cv_path_MAGIC_CMD="$ac_dir/file" + if test -n "$file_magic_test_file"; then + case $deplibs_check_method in + "file_magic "*) + file_magic_regex=`expr "$deplibs_check_method" : "file_magic \(.*\)"` + MAGIC_CMD="$lt_cv_path_MAGIC_CMD" + if eval $file_magic_cmd \$file_magic_test_file 2> /dev/null | + $EGREP "$file_magic_regex" > /dev/null; then + : + else + cat <<_LT_EOF 1>&2 + +*** Warning: the command libtool uses to detect shared libraries, +*** $file_magic_cmd, produces output that libtool cannot recognize. +*** The result is that libtool may fail to recognize shared libraries +*** as such. This will affect the creation of libtool libraries that +*** depend on shared libraries, but programs linked with such libtool +*** libraries will work regardless of this problem. Nevertheless, you +*** may want to report the problem to your system manager and/or to +*** bug-libtool@gnu.org + +_LT_EOF + fi ;; + esac + fi + break + fi + done + IFS="$lt_save_ifs" + MAGIC_CMD="$lt_save_MAGIC_CMD" + ;; +esac +fi + +MAGIC_CMD="$lt_cv_path_MAGIC_CMD" +if test -n "$MAGIC_CMD"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $MAGIC_CMD" >&5 +$as_echo "$MAGIC_CMD" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + + else + MAGIC_CMD=: + fi +fi + + fi + ;; +esac + +# Use C for the default configuration in the libtool script + +lt_save_CC="$CC" +ac_ext=c +ac_cpp='$CPP $CPPFLAGS' +ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_c_compiler_gnu + + +# Source file extension for C test sources. +ac_ext=c + +# Object file extension for compiled C test sources. +objext=o +objext=$objext + +# Code to be used in simple compile tests +lt_simple_compile_test_code="int some_variable = 0;" + +# Code to be used in simple link tests +lt_simple_link_test_code='int main(){return(0);}' + + + + + + + +# If no C compiler was specified, use CC. +LTCC=${LTCC-"$CC"} + +# If no C compiler flags were specified, use CFLAGS. +LTCFLAGS=${LTCFLAGS-"$CFLAGS"} + +# Allow CC to be a program name with arguments. +compiler=$CC + +# Save the default compiler, since it gets overwritten when the other +# tags are being tested, and _LT_TAGVAR(compiler, []) is a NOP. +compiler_DEFAULT=$CC + +# save warnings/boilerplate of simple test code +ac_outfile=conftest.$ac_objext +echo "$lt_simple_compile_test_code" >conftest.$ac_ext +eval "$ac_compile" 2>&1 >/dev/null | $SED '/^$/d; /^ *+/d' >conftest.err +_lt_compiler_boilerplate=`cat conftest.err` +$RM conftest* + +ac_outfile=conftest.$ac_objext +echo "$lt_simple_link_test_code" >conftest.$ac_ext +eval "$ac_link" 2>&1 >/dev/null | $SED '/^$/d; /^ *+/d' >conftest.err +_lt_linker_boilerplate=`cat conftest.err` +$RM -r conftest* + + +## CAVEAT EMPTOR: +## There is no encapsulation within the following macros, do not change +## the running order or otherwise move them around unless you know exactly +## what you are doing... +if test -n "$compiler"; then + +lt_prog_compiler_no_builtin_flag= + +if test "$GCC" = yes; then + case $cc_basename in + nvcc*) + lt_prog_compiler_no_builtin_flag=' -Xcompiler -fno-builtin' ;; + *) + lt_prog_compiler_no_builtin_flag=' -fno-builtin' ;; + esac + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $compiler supports -fno-rtti -fno-exceptions" >&5 +$as_echo_n "checking if $compiler supports -fno-rtti -fno-exceptions... " >&6; } +if ${lt_cv_prog_compiler_rtti_exceptions+:} false; then : + $as_echo_n "(cached) " >&6 +else + lt_cv_prog_compiler_rtti_exceptions=no + ac_outfile=conftest.$ac_objext + echo "$lt_simple_compile_test_code" > conftest.$ac_ext + lt_compiler_flag="-fno-rtti -fno-exceptions" + # Insert the option either (1) after the last *FLAGS variable, or + # (2) before a word containing "conftest.", or (3) at the end. + # Note that $ac_compile itself does not contain backslashes and begins + # with a dollar sign (not a hyphen), so the echo should work correctly. + # The option is referenced via a variable to avoid confusing sed. + lt_compile=`echo "$ac_compile" | $SED \ + -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ + -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ + -e 's:$: $lt_compiler_flag:'` + (eval echo "\"\$as_me:$LINENO: $lt_compile\"" >&5) + (eval "$lt_compile" 2>conftest.err) + ac_status=$? + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + if (exit $ac_status) && test -s "$ac_outfile"; then + # The compiler can only warn and ignore the option if not recognized + # So say no if there are warnings other than the usual output. + $ECHO "$_lt_compiler_boilerplate" | $SED '/^$/d' >conftest.exp + $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2 + if test ! -s conftest.er2 || diff conftest.exp conftest.er2 >/dev/null; then + lt_cv_prog_compiler_rtti_exceptions=yes + fi + fi + $RM conftest* + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_rtti_exceptions" >&5 +$as_echo "$lt_cv_prog_compiler_rtti_exceptions" >&6; } + +if test x"$lt_cv_prog_compiler_rtti_exceptions" = xyes; then + lt_prog_compiler_no_builtin_flag="$lt_prog_compiler_no_builtin_flag -fno-rtti -fno-exceptions" +else + : +fi + +fi + + + + + + + lt_prog_compiler_wl= +lt_prog_compiler_pic= +lt_prog_compiler_static= + + + if test "$GCC" = yes; then + lt_prog_compiler_wl='-Wl,' + lt_prog_compiler_static='-static' + + case $host_os in + aix*) + # All AIX code is PIC. + if test "$host_cpu" = ia64; then + # AIX 5 now supports IA64 processor + lt_prog_compiler_static='-Bstatic' + fi + ;; + + amigaos*) + case $host_cpu in + powerpc) + # see comment about AmigaOS4 .so support + lt_prog_compiler_pic='-fPIC' + ;; + m68k) + # FIXME: we need at least 68020 code to build shared libraries, but + # adding the `-m68020' flag to GCC prevents building anything better, + # like `-m68040'. + lt_prog_compiler_pic='-m68020 -resident32 -malways-restore-a4' + ;; + esac + ;; + + beos* | irix5* | irix6* | nonstopux* | osf3* | osf4* | osf5*) + # PIC is the default for these OSes. + ;; + + mingw* | cygwin* | pw32* | os2* | cegcc*) + # This hack is so that the source file can tell whether it is being + # built for inclusion in a dll (and should export symbols for example). + # Although the cygwin gcc ignores -fPIC, still need this for old-style + # (--disable-auto-import) libraries + lt_prog_compiler_pic='-DDLL_EXPORT' + ;; + + darwin* | rhapsody*) + # PIC is the default on this platform + # Common symbols not allowed in MH_DYLIB files + lt_prog_compiler_pic='-fno-common' + ;; + + haiku*) + # PIC is the default for Haiku. + # The "-static" flag exists, but is broken. + lt_prog_compiler_static= + ;; + + hpux*) + # PIC is the default for 64-bit PA HP-UX, but not for 32-bit + # PA HP-UX. On IA64 HP-UX, PIC is the default but the pic flag + # sets the default TLS model and affects inlining. + case $host_cpu in + hppa*64*) + # +Z the default + ;; + *) + lt_prog_compiler_pic='-fPIC' + ;; + esac + ;; + + interix[3-9]*) + # Interix 3.x gcc -fpic/-fPIC options generate broken code. + # Instead, we relocate shared libraries at runtime. + ;; + + msdosdjgpp*) + # Just because we use GCC doesn't mean we suddenly get shared libraries + # on systems that don't support them. + lt_prog_compiler_can_build_shared=no + enable_shared=no + ;; + + *nto* | *qnx*) + # QNX uses GNU C++, but need to define -shared option too, otherwise + # it will coredump. + lt_prog_compiler_pic='-fPIC -shared' + ;; + + sysv4*MP*) + if test -d /usr/nec; then + lt_prog_compiler_pic=-Kconform_pic + fi + ;; + + *) + lt_prog_compiler_pic='-fPIC' + ;; + esac + + case $cc_basename in + nvcc*) # Cuda Compiler Driver 2.2 + lt_prog_compiler_wl='-Xlinker ' + if test -n "$lt_prog_compiler_pic"; then + lt_prog_compiler_pic="-Xcompiler $lt_prog_compiler_pic" + fi + ;; + esac + else + # PORTME Check for flag to pass linker flags through the system compiler. + case $host_os in + aix*) + lt_prog_compiler_wl='-Wl,' + if test "$host_cpu" = ia64; then + # AIX 5 now supports IA64 processor + lt_prog_compiler_static='-Bstatic' + else + lt_prog_compiler_static='-bnso -bI:/lib/syscalls.exp' + fi + ;; + + mingw* | cygwin* | pw32* | os2* | cegcc*) + # This hack is so that the source file can tell whether it is being + # built for inclusion in a dll (and should export symbols for example). + lt_prog_compiler_pic='-DDLL_EXPORT' + ;; + + hpux9* | hpux10* | hpux11*) + lt_prog_compiler_wl='-Wl,' + # PIC is the default for IA64 HP-UX and 64-bit HP-UX, but + # not for PA HP-UX. + case $host_cpu in + hppa*64*|ia64*) + # +Z the default + ;; + *) + lt_prog_compiler_pic='+Z' + ;; + esac + # Is there a better lt_prog_compiler_static that works with the bundled CC? + lt_prog_compiler_static='${wl}-a ${wl}archive' + ;; + + irix5* | irix6* | nonstopux*) + lt_prog_compiler_wl='-Wl,' + # PIC (with -KPIC) is the default. + lt_prog_compiler_static='-non_shared' + ;; + + linux* | k*bsd*-gnu | kopensolaris*-gnu | gnu*) + case $cc_basename in + # old Intel for x86_64 which still supported -KPIC. + ecc*) + lt_prog_compiler_wl='-Wl,' + lt_prog_compiler_pic='-KPIC' + lt_prog_compiler_static='-static' + ;; + # icc used to be incompatible with GCC. + # ICC 10 doesn't accept -KPIC any more. + icc* | ifort*) + lt_prog_compiler_wl='-Wl,' + lt_prog_compiler_pic='-fPIC' + lt_prog_compiler_static='-static' + ;; + # Lahey Fortran 8.1. + lf95*) + lt_prog_compiler_wl='-Wl,' + lt_prog_compiler_pic='--shared' + lt_prog_compiler_static='--static' + ;; + nagfor*) + # NAG Fortran compiler + lt_prog_compiler_wl='-Wl,-Wl,,' + lt_prog_compiler_pic='-PIC' + lt_prog_compiler_static='-Bstatic' + ;; + pgcc* | pgf77* | pgf90* | pgf95* | pgfortran*) + # Portland Group compilers (*not* the Pentium gcc compiler, + # which looks to be a dead project) + lt_prog_compiler_wl='-Wl,' + lt_prog_compiler_pic='-fpic' + lt_prog_compiler_static='-Bstatic' + ;; + ccc*) + lt_prog_compiler_wl='-Wl,' + # All Alpha code is PIC. + lt_prog_compiler_static='-non_shared' + ;; + xl* | bgxl* | bgf* | mpixl*) + # IBM XL C 8.0/Fortran 10.1, 11.1 on PPC and BlueGene + lt_prog_compiler_wl='-Wl,' + lt_prog_compiler_pic='-qpic' + lt_prog_compiler_static='-qstaticlink' + ;; + *) + case `$CC -V 2>&1 | sed 5q` in + *Sun\ Ceres\ Fortran* | *Sun*Fortran*\ [1-7].* | *Sun*Fortran*\ 8.[0-3]*) + # Sun Fortran 8.3 passes all unrecognized flags to the linker + lt_prog_compiler_pic='-KPIC' + lt_prog_compiler_static='-Bstatic' + lt_prog_compiler_wl='' + ;; + *Sun\ F* | *Sun*Fortran*) + lt_prog_compiler_pic='-KPIC' + lt_prog_compiler_static='-Bstatic' + lt_prog_compiler_wl='-Qoption ld ' + ;; + *Sun\ C*) + # Sun C 5.9 + lt_prog_compiler_pic='-KPIC' + lt_prog_compiler_static='-Bstatic' + lt_prog_compiler_wl='-Wl,' + ;; + *Intel*\ [CF]*Compiler*) + lt_prog_compiler_wl='-Wl,' + lt_prog_compiler_pic='-fPIC' + lt_prog_compiler_static='-static' + ;; + *Portland\ Group*) + lt_prog_compiler_wl='-Wl,' + lt_prog_compiler_pic='-fpic' + lt_prog_compiler_static='-Bstatic' + ;; + esac + ;; + esac + ;; + + newsos6) + lt_prog_compiler_pic='-KPIC' + lt_prog_compiler_static='-Bstatic' + ;; + + *nto* | *qnx*) + # QNX uses GNU C++, but need to define -shared option too, otherwise + # it will coredump. + lt_prog_compiler_pic='-fPIC -shared' + ;; + + osf3* | osf4* | osf5*) + lt_prog_compiler_wl='-Wl,' + # All OSF/1 code is PIC. + lt_prog_compiler_static='-non_shared' + ;; + + rdos*) + lt_prog_compiler_static='-non_shared' + ;; + + solaris*) + lt_prog_compiler_pic='-KPIC' + lt_prog_compiler_static='-Bstatic' + case $cc_basename in + f77* | f90* | f95* | sunf77* | sunf90* | sunf95*) + lt_prog_compiler_wl='-Qoption ld ';; + *) + lt_prog_compiler_wl='-Wl,';; + esac + ;; + + sunos4*) + lt_prog_compiler_wl='-Qoption ld ' + lt_prog_compiler_pic='-PIC' + lt_prog_compiler_static='-Bstatic' + ;; + + sysv4 | sysv4.2uw2* | sysv4.3*) + lt_prog_compiler_wl='-Wl,' + lt_prog_compiler_pic='-KPIC' + lt_prog_compiler_static='-Bstatic' + ;; + + sysv4*MP*) + if test -d /usr/nec ;then + lt_prog_compiler_pic='-Kconform_pic' + lt_prog_compiler_static='-Bstatic' + fi + ;; + + sysv5* | unixware* | sco3.2v5* | sco5v6* | OpenUNIX*) + lt_prog_compiler_wl='-Wl,' + lt_prog_compiler_pic='-KPIC' + lt_prog_compiler_static='-Bstatic' + ;; + + unicos*) + lt_prog_compiler_wl='-Wl,' + lt_prog_compiler_can_build_shared=no + ;; + + uts4*) + lt_prog_compiler_pic='-pic' + lt_prog_compiler_static='-Bstatic' + ;; + + *) + lt_prog_compiler_can_build_shared=no + ;; + esac + fi + +case $host_os in + # For platforms which do not support PIC, -DPIC is meaningless: + *djgpp*) + lt_prog_compiler_pic= + ;; + *) + lt_prog_compiler_pic="$lt_prog_compiler_pic -DPIC" + ;; +esac + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $compiler option to produce PIC" >&5 +$as_echo_n "checking for $compiler option to produce PIC... " >&6; } +if ${lt_cv_prog_compiler_pic+:} false; then : + $as_echo_n "(cached) " >&6 +else + lt_cv_prog_compiler_pic=$lt_prog_compiler_pic +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_pic" >&5 +$as_echo "$lt_cv_prog_compiler_pic" >&6; } +lt_prog_compiler_pic=$lt_cv_prog_compiler_pic + +# +# Check to make sure the PIC flag actually works. +# +if test -n "$lt_prog_compiler_pic"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $compiler PIC flag $lt_prog_compiler_pic works" >&5 +$as_echo_n "checking if $compiler PIC flag $lt_prog_compiler_pic works... " >&6; } +if ${lt_cv_prog_compiler_pic_works+:} false; then : + $as_echo_n "(cached) " >&6 +else + lt_cv_prog_compiler_pic_works=no + ac_outfile=conftest.$ac_objext + echo "$lt_simple_compile_test_code" > conftest.$ac_ext + lt_compiler_flag="$lt_prog_compiler_pic -DPIC" + # Insert the option either (1) after the last *FLAGS variable, or + # (2) before a word containing "conftest.", or (3) at the end. + # Note that $ac_compile itself does not contain backslashes and begins + # with a dollar sign (not a hyphen), so the echo should work correctly. + # The option is referenced via a variable to avoid confusing sed. + lt_compile=`echo "$ac_compile" | $SED \ + -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ + -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ + -e 's:$: $lt_compiler_flag:'` + (eval echo "\"\$as_me:$LINENO: $lt_compile\"" >&5) + (eval "$lt_compile" 2>conftest.err) + ac_status=$? + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + if (exit $ac_status) && test -s "$ac_outfile"; then + # The compiler can only warn and ignore the option if not recognized + # So say no if there are warnings other than the usual output. + $ECHO "$_lt_compiler_boilerplate" | $SED '/^$/d' >conftest.exp + $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2 + if test ! -s conftest.er2 || diff conftest.exp conftest.er2 >/dev/null; then + lt_cv_prog_compiler_pic_works=yes + fi + fi + $RM conftest* + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_pic_works" >&5 +$as_echo "$lt_cv_prog_compiler_pic_works" >&6; } + +if test x"$lt_cv_prog_compiler_pic_works" = xyes; then + case $lt_prog_compiler_pic in + "" | " "*) ;; + *) lt_prog_compiler_pic=" $lt_prog_compiler_pic" ;; + esac +else + lt_prog_compiler_pic= + lt_prog_compiler_can_build_shared=no +fi + +fi + + + + + + + + + + + +# +# Check to make sure the static flag actually works. +# +wl=$lt_prog_compiler_wl eval lt_tmp_static_flag=\"$lt_prog_compiler_static\" +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking if $compiler static flag $lt_tmp_static_flag works" >&5 +$as_echo_n "checking if $compiler static flag $lt_tmp_static_flag works... " >&6; } +if ${lt_cv_prog_compiler_static_works+:} false; then : + $as_echo_n "(cached) " >&6 +else + lt_cv_prog_compiler_static_works=no + save_LDFLAGS="$LDFLAGS" + LDFLAGS="$LDFLAGS $lt_tmp_static_flag" + echo "$lt_simple_link_test_code" > conftest.$ac_ext + if (eval $ac_link 2>conftest.err) && test -s conftest$ac_exeext; then + # The linker can only warn and ignore the option if not recognized + # So say no if there are warnings + if test -s conftest.err; then + # Append any errors to the config.log. + cat conftest.err 1>&5 + $ECHO "$_lt_linker_boilerplate" | $SED '/^$/d' > conftest.exp + $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2 + if diff conftest.exp conftest.er2 >/dev/null; then + lt_cv_prog_compiler_static_works=yes + fi + else + lt_cv_prog_compiler_static_works=yes + fi + fi + $RM -r conftest* + LDFLAGS="$save_LDFLAGS" + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_static_works" >&5 +$as_echo "$lt_cv_prog_compiler_static_works" >&6; } + +if test x"$lt_cv_prog_compiler_static_works" = xyes; then + : +else + lt_prog_compiler_static= +fi + + + + + + + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $compiler supports -c -o file.$ac_objext" >&5 +$as_echo_n "checking if $compiler supports -c -o file.$ac_objext... " >&6; } +if ${lt_cv_prog_compiler_c_o+:} false; then : + $as_echo_n "(cached) " >&6 +else + lt_cv_prog_compiler_c_o=no + $RM -r conftest 2>/dev/null + mkdir conftest + cd conftest + mkdir out + echo "$lt_simple_compile_test_code" > conftest.$ac_ext + + lt_compiler_flag="-o out/conftest2.$ac_objext" + # Insert the option either (1) after the last *FLAGS variable, or + # (2) before a word containing "conftest.", or (3) at the end. + # Note that $ac_compile itself does not contain backslashes and begins + # with a dollar sign (not a hyphen), so the echo should work correctly. + lt_compile=`echo "$ac_compile" | $SED \ + -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ + -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ + -e 's:$: $lt_compiler_flag:'` + (eval echo "\"\$as_me:$LINENO: $lt_compile\"" >&5) + (eval "$lt_compile" 2>out/conftest.err) + ac_status=$? + cat out/conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + if (exit $ac_status) && test -s out/conftest2.$ac_objext + then + # The compiler can only warn and ignore the option if not recognized + # So say no if there are warnings + $ECHO "$_lt_compiler_boilerplate" | $SED '/^$/d' > out/conftest.exp + $SED '/^$/d; /^ *+/d' out/conftest.err >out/conftest.er2 + if test ! -s out/conftest.er2 || diff out/conftest.exp out/conftest.er2 >/dev/null; then + lt_cv_prog_compiler_c_o=yes + fi + fi + chmod u+w . 2>&5 + $RM conftest* + # SGI C++ compiler will create directory out/ii_files/ for + # template instantiation + test -d out/ii_files && $RM out/ii_files/* && rmdir out/ii_files + $RM out/* && rmdir out + cd .. + $RM -r conftest + $RM conftest* + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_c_o" >&5 +$as_echo "$lt_cv_prog_compiler_c_o" >&6; } + + + + + + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $compiler supports -c -o file.$ac_objext" >&5 +$as_echo_n "checking if $compiler supports -c -o file.$ac_objext... " >&6; } +if ${lt_cv_prog_compiler_c_o+:} false; then : + $as_echo_n "(cached) " >&6 +else + lt_cv_prog_compiler_c_o=no + $RM -r conftest 2>/dev/null + mkdir conftest + cd conftest + mkdir out + echo "$lt_simple_compile_test_code" > conftest.$ac_ext + + lt_compiler_flag="-o out/conftest2.$ac_objext" + # Insert the option either (1) after the last *FLAGS variable, or + # (2) before a word containing "conftest.", or (3) at the end. + # Note that $ac_compile itself does not contain backslashes and begins + # with a dollar sign (not a hyphen), so the echo should work correctly. + lt_compile=`echo "$ac_compile" | $SED \ + -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ + -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ + -e 's:$: $lt_compiler_flag:'` + (eval echo "\"\$as_me:$LINENO: $lt_compile\"" >&5) + (eval "$lt_compile" 2>out/conftest.err) + ac_status=$? + cat out/conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + if (exit $ac_status) && test -s out/conftest2.$ac_objext + then + # The compiler can only warn and ignore the option if not recognized + # So say no if there are warnings + $ECHO "$_lt_compiler_boilerplate" | $SED '/^$/d' > out/conftest.exp + $SED '/^$/d; /^ *+/d' out/conftest.err >out/conftest.er2 + if test ! -s out/conftest.er2 || diff out/conftest.exp out/conftest.er2 >/dev/null; then + lt_cv_prog_compiler_c_o=yes + fi + fi + chmod u+w . 2>&5 + $RM conftest* + # SGI C++ compiler will create directory out/ii_files/ for + # template instantiation + test -d out/ii_files && $RM out/ii_files/* && rmdir out/ii_files + $RM out/* && rmdir out + cd .. + $RM -r conftest + $RM conftest* + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_c_o" >&5 +$as_echo "$lt_cv_prog_compiler_c_o" >&6; } + + + + +hard_links="nottested" +if test "$lt_cv_prog_compiler_c_o" = no && test "$need_locks" != no; then + # do not overwrite the value of need_locks provided by the user + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if we can lock with hard links" >&5 +$as_echo_n "checking if we can lock with hard links... " >&6; } + hard_links=yes + $RM conftest* + ln conftest.a conftest.b 2>/dev/null && hard_links=no + touch conftest.a + ln conftest.a conftest.b 2>&5 || hard_links=no + ln conftest.a conftest.b 2>/dev/null && hard_links=no + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $hard_links" >&5 +$as_echo "$hard_links" >&6; } + if test "$hard_links" = no; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: \`$CC' does not support \`-c -o', so \`make -j' may be unsafe" >&5 +$as_echo "$as_me: WARNING: \`$CC' does not support \`-c -o', so \`make -j' may be unsafe" >&2;} + need_locks=warn + fi +else + need_locks=no +fi + + + + + + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the $compiler linker ($LD) supports shared libraries" >&5 +$as_echo_n "checking whether the $compiler linker ($LD) supports shared libraries... " >&6; } + + runpath_var= + allow_undefined_flag= + always_export_symbols=no + archive_cmds= + archive_expsym_cmds= + compiler_needs_object=no + enable_shared_with_static_runtimes=no + export_dynamic_flag_spec= + export_symbols_cmds='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols' + hardcode_automatic=no + hardcode_direct=no + hardcode_direct_absolute=no + hardcode_libdir_flag_spec= + hardcode_libdir_separator= + hardcode_minus_L=no + hardcode_shlibpath_var=unsupported + inherit_rpath=no + link_all_deplibs=unknown + module_cmds= + module_expsym_cmds= + old_archive_from_new_cmds= + old_archive_from_expsyms_cmds= + thread_safe_flag_spec= + whole_archive_flag_spec= + # include_expsyms should be a list of space-separated symbols to be *always* + # included in the symbol list + include_expsyms= + # exclude_expsyms can be an extended regexp of symbols to exclude + # it will be wrapped by ` (' and `)$', so one must not match beginning or + # end of line. Example: `a|bc|.*d.*' will exclude the symbols `a' and `bc', + # as well as any symbol that contains `d'. + exclude_expsyms='_GLOBAL_OFFSET_TABLE_|_GLOBAL__F[ID]_.*' + # Although _GLOBAL_OFFSET_TABLE_ is a valid symbol C name, most a.out + # platforms (ab)use it in PIC code, but their linkers get confused if + # the symbol is explicitly referenced. Since portable code cannot + # rely on this symbol name, it's probably fine to never include it in + # preloaded symbol tables. + # Exclude shared library initialization/finalization symbols. + extract_expsyms_cmds= + + case $host_os in + cygwin* | mingw* | pw32* | cegcc*) + # FIXME: the MSVC++ port hasn't been tested in a loooong time + # When not using gcc, we currently assume that we are using + # Microsoft Visual C++. + if test "$GCC" != yes; then + with_gnu_ld=no + fi + ;; + interix*) + # we just hope/assume this is gcc and not c89 (= MSVC++) + with_gnu_ld=yes + ;; + openbsd*) + with_gnu_ld=no + ;; + linux* | k*bsd*-gnu | gnu*) + link_all_deplibs=no + ;; + esac + + ld_shlibs=yes + + # On some targets, GNU ld is compatible enough with the native linker + # that we're better off using the native interface for both. + lt_use_gnu_ld_interface=no + if test "$with_gnu_ld" = yes; then + case $host_os in + aix*) + # The AIX port of GNU ld has always aspired to compatibility + # with the native linker. However, as the warning in the GNU ld + # block says, versions before 2.19.5* couldn't really create working + # shared libraries, regardless of the interface used. + case `$LD -v 2>&1` in + *\ \(GNU\ Binutils\)\ 2.19.5*) ;; + *\ \(GNU\ Binutils\)\ 2.[2-9]*) ;; + *\ \(GNU\ Binutils\)\ [3-9]*) ;; + *) + lt_use_gnu_ld_interface=yes + ;; + esac + ;; + *) + lt_use_gnu_ld_interface=yes + ;; + esac + fi + + if test "$lt_use_gnu_ld_interface" = yes; then + # If archive_cmds runs LD, not CC, wlarc should be empty + wlarc='${wl}' + + # Set some defaults for GNU ld with shared library support. These + # are reset later if shared libraries are not supported. Putting them + # here allows them to be overridden if necessary. + runpath_var=LD_RUN_PATH + hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir' + export_dynamic_flag_spec='${wl}--export-dynamic' + # ancient GNU ld didn't support --whole-archive et. al. + if $LD --help 2>&1 | $GREP 'no-whole-archive' > /dev/null; then + whole_archive_flag_spec="$wlarc"'--whole-archive$convenience '"$wlarc"'--no-whole-archive' + else + whole_archive_flag_spec= + fi + supports_anon_versioning=no + case `$LD -v 2>&1` in + *GNU\ gold*) supports_anon_versioning=yes ;; + *\ [01].* | *\ 2.[0-9].* | *\ 2.10.*) ;; # catch versions < 2.11 + *\ 2.11.93.0.2\ *) supports_anon_versioning=yes ;; # RH7.3 ... + *\ 2.11.92.0.12\ *) supports_anon_versioning=yes ;; # Mandrake 8.2 ... + *\ 2.11.*) ;; # other 2.11 versions + *) supports_anon_versioning=yes ;; + esac + + # See if GNU ld supports shared libraries. + case $host_os in + aix[3-9]*) + # On AIX/PPC, the GNU linker is very broken + if test "$host_cpu" != ia64; then + ld_shlibs=no + cat <<_LT_EOF 1>&2 + +*** Warning: the GNU linker, at least up to release 2.19, is reported +*** to be unable to reliably create shared libraries on AIX. +*** Therefore, libtool is disabling shared libraries support. If you +*** really care for shared libraries, you may want to install binutils +*** 2.20 or above, or modify your PATH so that a non-GNU linker is found. +*** You will then need to restart the configuration process. + +_LT_EOF + fi + ;; + + amigaos*) + case $host_cpu in + powerpc) + # see comment about AmigaOS4 .so support + archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' + archive_expsym_cmds='' + ;; + m68k) + archive_cmds='$RM $output_objdir/a2ixlibrary.data~$ECHO "#define NAME $libname" > $output_objdir/a2ixlibrary.data~$ECHO "#define LIBRARY_ID 1" >> $output_objdir/a2ixlibrary.data~$ECHO "#define VERSION $major" >> $output_objdir/a2ixlibrary.data~$ECHO "#define REVISION $revision" >> $output_objdir/a2ixlibrary.data~$AR $AR_FLAGS $lib $libobjs~$RANLIB $lib~(cd $output_objdir && a2ixlibrary -32)' + hardcode_libdir_flag_spec='-L$libdir' + hardcode_minus_L=yes + ;; + esac + ;; + + beos*) + if $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then + allow_undefined_flag=unsupported + # Joseph Beckenbach says some releases of gcc + # support --undefined. This deserves some investigation. FIXME + archive_cmds='$CC -nostart $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' + else + ld_shlibs=no + fi + ;; + + cygwin* | mingw* | pw32* | cegcc*) + # _LT_TAGVAR(hardcode_libdir_flag_spec, ) is actually meaningless, + # as there is no search path for DLLs. + hardcode_libdir_flag_spec='-L$libdir' + export_dynamic_flag_spec='${wl}--export-all-symbols' + allow_undefined_flag=unsupported + always_export_symbols=no + enable_shared_with_static_runtimes=yes + export_symbols_cmds='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[BCDGRS][ ]/s/.*[ ]\([^ ]*\)/\1 DATA/;s/^.*[ ]__nm__\([^ ]*\)[ ][^ ]*/\1 DATA/;/^I[ ]/d;/^[AITW][ ]/s/.* //'\'' | sort | uniq > $export_symbols' + exclude_expsyms='[_]+GLOBAL_OFFSET_TABLE_|[_]+GLOBAL__[FID]_.*|[_]+head_[A-Za-z0-9_]+_dll|[A-Za-z0-9_]+_dll_iname' + + if $LD --help 2>&1 | $GREP 'auto-import' > /dev/null; then + archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib' + # If the export-symbols file already is a .def file (1st line + # is EXPORTS), use it as is; otherwise, prepend... + archive_expsym_cmds='if test "x`$SED 1q $export_symbols`" = xEXPORTS; then + cp $export_symbols $output_objdir/$soname.def; + else + echo EXPORTS > $output_objdir/$soname.def; + cat $export_symbols >> $output_objdir/$soname.def; + fi~ + $CC -shared $output_objdir/$soname.def $libobjs $deplibs $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib' + else + ld_shlibs=no + fi + ;; + + haiku*) + archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' + link_all_deplibs=yes + ;; + + interix[3-9]*) + hardcode_direct=no + hardcode_shlibpath_var=no + hardcode_libdir_flag_spec='${wl}-rpath,$libdir' + export_dynamic_flag_spec='${wl}-E' + # Hack: On Interix 3.x, we cannot compile PIC because of a broken gcc. + # Instead, shared libraries are loaded at an image base (0x10000000 by + # default) and relocated if they conflict, which is a slow very memory + # consuming and fragmenting process. To avoid this, we pick a random, + # 256 KiB-aligned image base between 0x50000000 and 0x6FFC0000 at link + # time. Moving up from 0x10000000 also allows more sbrk(2) space. + archive_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-h,$soname ${wl}--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib' + archive_expsym_cmds='sed "s,^,_," $export_symbols >$output_objdir/$soname.expsym~$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-h,$soname ${wl}--retain-symbols-file,$output_objdir/$soname.expsym ${wl}--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib' + ;; + + gnu* | linux* | tpf* | k*bsd*-gnu | kopensolaris*-gnu) + tmp_diet=no + if test "$host_os" = linux-dietlibc; then + case $cc_basename in + diet\ *) tmp_diet=yes;; # linux-dietlibc with static linking (!diet-dyn) + esac + fi + if $LD --help 2>&1 | $EGREP ': supported targets:.* elf' > /dev/null \ + && test "$tmp_diet" = no + then + tmp_addflag=' $pic_flag' + tmp_sharedflag='-shared' + case $cc_basename,$host_cpu in + pgcc*) # Portland Group C compiler + whole_archive_flag_spec='${wl}--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` ${wl}--no-whole-archive' + tmp_addflag=' $pic_flag' + ;; + pgf77* | pgf90* | pgf95* | pgfortran*) + # Portland Group f77 and f90 compilers + whole_archive_flag_spec='${wl}--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` ${wl}--no-whole-archive' + tmp_addflag=' $pic_flag -Mnomain' ;; + ecc*,ia64* | icc*,ia64*) # Intel C compiler on ia64 + tmp_addflag=' -i_dynamic' ;; + efc*,ia64* | ifort*,ia64*) # Intel Fortran compiler on ia64 + tmp_addflag=' -i_dynamic -nofor_main' ;; + ifc* | ifort*) # Intel Fortran compiler + tmp_addflag=' -nofor_main' ;; + lf95*) # Lahey Fortran 8.1 + whole_archive_flag_spec= + tmp_sharedflag='--shared' ;; + xl[cC]* | bgxl[cC]* | mpixl[cC]*) # IBM XL C 8.0 on PPC (deal with xlf below) + tmp_sharedflag='-qmkshrobj' + tmp_addflag= ;; + nvcc*) # Cuda Compiler Driver 2.2 + whole_archive_flag_spec='${wl}--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` ${wl}--no-whole-archive' + compiler_needs_object=yes + ;; + esac + case `$CC -V 2>&1 | sed 5q` in + *Sun\ C*) # Sun C 5.9 + whole_archive_flag_spec='${wl}--whole-archive`new_convenience=; for conv in $convenience\"\"; do test -z \"$conv\" || new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` ${wl}--no-whole-archive' + compiler_needs_object=yes + tmp_sharedflag='-G' ;; + *Sun\ F*) # Sun Fortran 8.3 + tmp_sharedflag='-G' ;; + esac + archive_cmds='$CC '"$tmp_sharedflag""$tmp_addflag"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' + + if test "x$supports_anon_versioning" = xyes; then + archive_expsym_cmds='echo "{ global:" > $output_objdir/$libname.ver~ + cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~ + echo "local: *; };" >> $output_objdir/$libname.ver~ + $CC '"$tmp_sharedflag""$tmp_addflag"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-version-script ${wl}$output_objdir/$libname.ver -o $lib' + fi + + case $cc_basename in + xlf* | bgf* | bgxlf* | mpixlf*) + # IBM XL Fortran 10.1 on PPC cannot create shared libs itself + whole_archive_flag_spec='--whole-archive$convenience --no-whole-archive' + hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir' + archive_cmds='$LD -shared $libobjs $deplibs $linker_flags -soname $soname -o $lib' + if test "x$supports_anon_versioning" = xyes; then + archive_expsym_cmds='echo "{ global:" > $output_objdir/$libname.ver~ + cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~ + echo "local: *; };" >> $output_objdir/$libname.ver~ + $LD -shared $libobjs $deplibs $linker_flags -soname $soname -version-script $output_objdir/$libname.ver -o $lib' + fi + ;; + esac + else + ld_shlibs=no + fi + ;; + + netbsd* | netbsdelf*-gnu) + if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then + archive_cmds='$LD -Bshareable $libobjs $deplibs $linker_flags -o $lib' + wlarc= + else + archive_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' + archive_expsym_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' + fi + ;; + + solaris*) + if $LD -v 2>&1 | $GREP 'BFD 2\.8' > /dev/null; then + ld_shlibs=no + cat <<_LT_EOF 1>&2 + +*** Warning: The releases 2.8.* of the GNU linker cannot reliably +*** create shared libraries on Solaris systems. Therefore, libtool +*** is disabling shared libraries support. We urge you to upgrade GNU +*** binutils to release 2.9.1 or newer. Another option is to modify +*** your PATH or compiler configuration so that the native linker is +*** used, and then restart. + +_LT_EOF + elif $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then + archive_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' + archive_expsym_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' + else + ld_shlibs=no + fi + ;; + + sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX*) + case `$LD -v 2>&1` in + *\ [01].* | *\ 2.[0-9].* | *\ 2.1[0-5].*) + ld_shlibs=no + cat <<_LT_EOF 1>&2 + +*** Warning: Releases of the GNU linker prior to 2.16.91.0.3 can not +*** reliably create shared libraries on SCO systems. Therefore, libtool +*** is disabling shared libraries support. We urge you to upgrade GNU +*** binutils to release 2.16.91.0.3 or newer. Another option is to modify +*** your PATH or compiler configuration so that the native linker is +*** used, and then restart. + +_LT_EOF + ;; + *) + # For security reasons, it is highly recommended that you always + # use absolute paths for naming shared libraries, and exclude the + # DT_RUNPATH tag from executables and libraries. But doing so + # requires that you compile everything twice, which is a pain. + if $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then + hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir' + archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' + archive_expsym_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' + else + ld_shlibs=no + fi + ;; + esac + ;; + + sunos4*) + archive_cmds='$LD -assert pure-text -Bshareable -o $lib $libobjs $deplibs $linker_flags' + wlarc= + hardcode_direct=yes + hardcode_shlibpath_var=no + ;; + + *) + if $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then + archive_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' + archive_expsym_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' + else + ld_shlibs=no + fi + ;; + esac + + if test "$ld_shlibs" = no; then + runpath_var= + hardcode_libdir_flag_spec= + export_dynamic_flag_spec= + whole_archive_flag_spec= + fi + else + # PORTME fill in a description of your system's linker (not GNU ld) + case $host_os in + aix3*) + allow_undefined_flag=unsupported + always_export_symbols=yes + archive_expsym_cmds='$LD -o $output_objdir/$soname $libobjs $deplibs $linker_flags -bE:$export_symbols -T512 -H512 -bM:SRE~$AR $AR_FLAGS $lib $output_objdir/$soname' + # Note: this linker hardcodes the directories in LIBPATH if there + # are no directories specified by -L. + hardcode_minus_L=yes + if test "$GCC" = yes && test -z "$lt_prog_compiler_static"; then + # Neither direct hardcoding nor static linking is supported with a + # broken collect2. + hardcode_direct=unsupported + fi + ;; + + aix[4-9]*) + if test "$host_cpu" = ia64; then + # On IA64, the linker does run time linking by default, so we don't + # have to do anything special. + aix_use_runtimelinking=no + exp_sym_flag='-Bexport' + no_entry_flag="" + else + # If we're using GNU nm, then we don't want the "-C" option. + # -C means demangle to AIX nm, but means don't demangle with GNU nm + # Also, AIX nm treats weak defined symbols like other global + # defined symbols, whereas GNU nm marks them as "W". + if $NM -V 2>&1 | $GREP 'GNU' > /dev/null; then + export_symbols_cmds='$NM -Bpg $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B") || (\$ 2 == "W")) && (substr(\$ 3,1,1) != ".")) { print \$ 3 } }'\'' | sort -u > $export_symbols' + else + export_symbols_cmds='$NM -BCpg $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B")) && (substr(\$ 3,1,1) != ".")) { print \$ 3 } }'\'' | sort -u > $export_symbols' + fi + aix_use_runtimelinking=no + + # Test if we are trying to use run time linking or normal + # AIX style linking. If -brtl is somewhere in LDFLAGS, we + # need to do runtime linking. + case $host_os in aix4.[23]|aix4.[23].*|aix[5-9]*) + for ld_flag in $LDFLAGS; do + if (test $ld_flag = "-brtl" || test $ld_flag = "-Wl,-brtl"); then + aix_use_runtimelinking=yes + break + fi + done + ;; + esac + + exp_sym_flag='-bexport' + no_entry_flag='-bnoentry' + fi + + # When large executables or shared objects are built, AIX ld can + # have problems creating the table of contents. If linking a library + # or program results in "error TOC overflow" add -mminimal-toc to + # CXXFLAGS/CFLAGS for g++/gcc. In the cases where that is not + # enough to fix the problem, add -Wl,-bbigtoc to LDFLAGS. + + archive_cmds='' + hardcode_direct=yes + hardcode_direct_absolute=yes + hardcode_libdir_separator=':' + link_all_deplibs=yes + file_list_spec='${wl}-f,' + + if test "$GCC" = yes; then + case $host_os in aix4.[012]|aix4.[012].*) + # We only want to do this on AIX 4.2 and lower, the check + # below for broken collect2 doesn't work under 4.3+ + collect2name=`${CC} -print-prog-name=collect2` + if test -f "$collect2name" && + strings "$collect2name" | $GREP resolve_lib_name >/dev/null + then + # We have reworked collect2 + : + else + # We have old collect2 + hardcode_direct=unsupported + # It fails to find uninstalled libraries when the uninstalled + # path is not listed in the libpath. Setting hardcode_minus_L + # to unsupported forces relinking + hardcode_minus_L=yes + hardcode_libdir_flag_spec='-L$libdir' + hardcode_libdir_separator= + fi + ;; + esac + shared_flag='-shared' + if test "$aix_use_runtimelinking" = yes; then + shared_flag="$shared_flag "'${wl}-G' + fi + link_all_deplibs=no + else + # not using gcc + if test "$host_cpu" = ia64; then + # VisualAge C++, Version 5.5 for AIX 5L for IA-64, Beta 3 Release + # chokes on -Wl,-G. The following line is correct: + shared_flag='-G' + else + if test "$aix_use_runtimelinking" = yes; then + shared_flag='${wl}-G' + else + shared_flag='${wl}-bM:SRE' + fi + fi + fi + + export_dynamic_flag_spec='${wl}-bexpall' + # It seems that -bexpall does not export symbols beginning with + # underscore (_), so it is better to generate a list of symbols to export. + always_export_symbols=yes + if test "$aix_use_runtimelinking" = yes; then + # Warning - without using the other runtime loading flags (-brtl), + # -berok will link without error, but may produce a broken library. + allow_undefined_flag='-berok' + # Determine the default libpath from the value encoded in an + # empty executable. + if test "${lt_cv_aix_libpath+set}" = set; then + aix_libpath=$lt_cv_aix_libpath +else + if ${lt_cv_aix_libpath_+:} false; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +int +main () +{ + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + + lt_aix_libpath_sed=' + /Import File Strings/,/^$/ { + /^0/ { + s/^0 *\([^ ]*\) *$/\1/ + p + } + }' + lt_cv_aix_libpath_=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` + # Check for a 64-bit object if we didn't find anything. + if test -z "$lt_cv_aix_libpath_"; then + lt_cv_aix_libpath_=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` + fi +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext + if test -z "$lt_cv_aix_libpath_"; then + lt_cv_aix_libpath_="/usr/lib:/lib" + fi + +fi + + aix_libpath=$lt_cv_aix_libpath_ +fi + + hardcode_libdir_flag_spec='${wl}-blibpath:$libdir:'"$aix_libpath" + archive_expsym_cmds='$CC -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags `if test "x${allow_undefined_flag}" != "x"; then func_echo_all "${wl}${allow_undefined_flag}"; else :; fi` '"\${wl}$exp_sym_flag:\$export_symbols $shared_flag" + else + if test "$host_cpu" = ia64; then + hardcode_libdir_flag_spec='${wl}-R $libdir:/usr/lib:/lib' + allow_undefined_flag="-z nodefs" + archive_expsym_cmds="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags ${wl}${allow_undefined_flag} '"\${wl}$exp_sym_flag:\$export_symbols" + else + # Determine the default libpath from the value encoded in an + # empty executable. + if test "${lt_cv_aix_libpath+set}" = set; then + aix_libpath=$lt_cv_aix_libpath +else + if ${lt_cv_aix_libpath_+:} false; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +int +main () +{ + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + + lt_aix_libpath_sed=' + /Import File Strings/,/^$/ { + /^0/ { + s/^0 *\([^ ]*\) *$/\1/ + p + } + }' + lt_cv_aix_libpath_=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` + # Check for a 64-bit object if we didn't find anything. + if test -z "$lt_cv_aix_libpath_"; then + lt_cv_aix_libpath_=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` + fi +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext + if test -z "$lt_cv_aix_libpath_"; then + lt_cv_aix_libpath_="/usr/lib:/lib" + fi + +fi + + aix_libpath=$lt_cv_aix_libpath_ +fi + + hardcode_libdir_flag_spec='${wl}-blibpath:$libdir:'"$aix_libpath" + # Warning - without using the other run time loading flags, + # -berok will link without error, but may produce a broken library. + no_undefined_flag=' ${wl}-bernotok' + allow_undefined_flag=' ${wl}-berok' + if test "$with_gnu_ld" = yes; then + # We only use this code for GNU lds that support --whole-archive. + whole_archive_flag_spec='${wl}--whole-archive$convenience ${wl}--no-whole-archive' + else + # Exported symbols can be pulled into shared objects from archives + whole_archive_flag_spec='$convenience' + fi + archive_cmds_need_lc=yes + # This is similar to how AIX traditionally builds its shared libraries. + archive_expsym_cmds="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs ${wl}-bnoentry $compiler_flags ${wl}-bE:$export_symbols${allow_undefined_flag}~$AR $AR_FLAGS $output_objdir/$libname$release.a $output_objdir/$soname' + fi + fi + ;; + + amigaos*) + case $host_cpu in + powerpc) + # see comment about AmigaOS4 .so support + archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' + archive_expsym_cmds='' + ;; + m68k) + archive_cmds='$RM $output_objdir/a2ixlibrary.data~$ECHO "#define NAME $libname" > $output_objdir/a2ixlibrary.data~$ECHO "#define LIBRARY_ID 1" >> $output_objdir/a2ixlibrary.data~$ECHO "#define VERSION $major" >> $output_objdir/a2ixlibrary.data~$ECHO "#define REVISION $revision" >> $output_objdir/a2ixlibrary.data~$AR $AR_FLAGS $lib $libobjs~$RANLIB $lib~(cd $output_objdir && a2ixlibrary -32)' + hardcode_libdir_flag_spec='-L$libdir' + hardcode_minus_L=yes + ;; + esac + ;; + + bsdi[45]*) + export_dynamic_flag_spec=-rdynamic + ;; + + cygwin* | mingw* | pw32* | cegcc*) + # When not using gcc, we currently assume that we are using + # Microsoft Visual C++. + # hardcode_libdir_flag_spec is actually meaningless, as there is + # no search path for DLLs. + case $cc_basename in + cl*) + # Native MSVC + hardcode_libdir_flag_spec=' ' + allow_undefined_flag=unsupported + always_export_symbols=yes + file_list_spec='@' + # Tell ltmain to make .lib files, not .a files. + libext=lib + # Tell ltmain to make .dll files, not .so files. + shrext_cmds=".dll" + # FIXME: Setting linknames here is a bad hack. + archive_cmds='$CC -o $output_objdir/$soname $libobjs $compiler_flags $deplibs -Wl,-dll~linknames=' + archive_expsym_cmds='if test "x`$SED 1q $export_symbols`" = xEXPORTS; then + sed -n -e 's/\\\\\\\(.*\\\\\\\)/-link\\\ -EXPORT:\\\\\\\1/' -e '1\\\!p' < $export_symbols > $output_objdir/$soname.exp; + else + sed -e 's/\\\\\\\(.*\\\\\\\)/-link\\\ -EXPORT:\\\\\\\1/' < $export_symbols > $output_objdir/$soname.exp; + fi~ + $CC -o $tool_output_objdir$soname $libobjs $compiler_flags $deplibs "@$tool_output_objdir$soname.exp" -Wl,-DLL,-IMPLIB:"$tool_output_objdir$libname.dll.lib"~ + linknames=' + # The linker will not automatically build a static lib if we build a DLL. + # _LT_TAGVAR(old_archive_from_new_cmds, )='true' + enable_shared_with_static_runtimes=yes + exclude_expsyms='_NULL_IMPORT_DESCRIPTOR|_IMPORT_DESCRIPTOR_.*' + export_symbols_cmds='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[BCDGRS][ ]/s/.*[ ]\([^ ]*\)/\1,DATA/'\'' | $SED -e '\''/^[AITW][ ]/s/.*[ ]//'\'' | sort | uniq > $export_symbols' + # Don't use ranlib + old_postinstall_cmds='chmod 644 $oldlib' + postlink_cmds='lt_outputfile="@OUTPUT@"~ + lt_tool_outputfile="@TOOL_OUTPUT@"~ + case $lt_outputfile in + *.exe|*.EXE) ;; + *) + lt_outputfile="$lt_outputfile.exe" + lt_tool_outputfile="$lt_tool_outputfile.exe" + ;; + esac~ + if test "$MANIFEST_TOOL" != ":" && test -f "$lt_outputfile.manifest"; then + $MANIFEST_TOOL -manifest "$lt_tool_outputfile.manifest" -outputresource:"$lt_tool_outputfile" || exit 1; + $RM "$lt_outputfile.manifest"; + fi' + ;; + *) + # Assume MSVC wrapper + hardcode_libdir_flag_spec=' ' + allow_undefined_flag=unsupported + # Tell ltmain to make .lib files, not .a files. + libext=lib + # Tell ltmain to make .dll files, not .so files. + shrext_cmds=".dll" + # FIXME: Setting linknames here is a bad hack. + archive_cmds='$CC -o $lib $libobjs $compiler_flags `func_echo_all "$deplibs" | $SED '\''s/ -lc$//'\''` -link -dll~linknames=' + # The linker will automatically build a .lib file if we build a DLL. + old_archive_from_new_cmds='true' + # FIXME: Should let the user specify the lib program. + old_archive_cmds='lib -OUT:$oldlib$oldobjs$old_deplibs' + enable_shared_with_static_runtimes=yes + ;; + esac + ;; + + darwin* | rhapsody*) + + + archive_cmds_need_lc=no + hardcode_direct=no + hardcode_automatic=yes + hardcode_shlibpath_var=unsupported + if test "$lt_cv_ld_force_load" = "yes"; then + whole_archive_flag_spec='`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience ${wl}-force_load,$conv\"; done; func_echo_all \"$new_convenience\"`' + + else + whole_archive_flag_spec='' + fi + link_all_deplibs=yes + allow_undefined_flag="$_lt_dar_allow_undefined" + case $cc_basename in + ifort*) _lt_dar_can_shared=yes ;; + *) _lt_dar_can_shared=$GCC ;; + esac + if test "$_lt_dar_can_shared" = "yes"; then + output_verbose_link_cmd=func_echo_all + archive_cmds="\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring $_lt_dar_single_mod${_lt_dsymutil}" + module_cmds="\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags${_lt_dsymutil}" + archive_expsym_cmds="sed 's,^,_,' < \$export_symbols > \$output_objdir/\${libname}-symbols.expsym~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring ${_lt_dar_single_mod}${_lt_dar_export_syms}${_lt_dsymutil}" + module_expsym_cmds="sed -e 's,^,_,' < \$export_symbols > \$output_objdir/\${libname}-symbols.expsym~\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags${_lt_dar_export_syms}${_lt_dsymutil}" + + else + ld_shlibs=no + fi + + ;; + + dgux*) + archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' + hardcode_libdir_flag_spec='-L$libdir' + hardcode_shlibpath_var=no + ;; + + # FreeBSD 2.2.[012] allows us to include c++rt0.o to get C++ constructor + # support. Future versions do this automatically, but an explicit c++rt0.o + # does not break anything, and helps significantly (at the cost of a little + # extra space). + freebsd2.2*) + archive_cmds='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags /usr/lib/c++rt0.o' + hardcode_libdir_flag_spec='-R$libdir' + hardcode_direct=yes + hardcode_shlibpath_var=no + ;; + + # Unfortunately, older versions of FreeBSD 2 do not have this feature. + freebsd2.*) + archive_cmds='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags' + hardcode_direct=yes + hardcode_minus_L=yes + hardcode_shlibpath_var=no + ;; + + # FreeBSD 3 and greater uses gcc -shared to do shared libraries. + freebsd* | dragonfly*) + archive_cmds='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags' + hardcode_libdir_flag_spec='-R$libdir' + hardcode_direct=yes + hardcode_shlibpath_var=no + ;; + + hpux9*) + if test "$GCC" = yes; then + archive_cmds='$RM $output_objdir/$soname~$CC -shared $pic_flag ${wl}+b ${wl}$install_libdir -o $output_objdir/$soname $libobjs $deplibs $compiler_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib' + else + archive_cmds='$RM $output_objdir/$soname~$LD -b +b $install_libdir -o $output_objdir/$soname $libobjs $deplibs $linker_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib' + fi + hardcode_libdir_flag_spec='${wl}+b ${wl}$libdir' + hardcode_libdir_separator=: + hardcode_direct=yes + + # hardcode_minus_L: Not really in the search PATH, + # but as the default location of the library. + hardcode_minus_L=yes + export_dynamic_flag_spec='${wl}-E' + ;; + + hpux10*) + if test "$GCC" = yes && test "$with_gnu_ld" = no; then + archive_cmds='$CC -shared $pic_flag ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags' + else + archive_cmds='$LD -b +h $soname +b $install_libdir -o $lib $libobjs $deplibs $linker_flags' + fi + if test "$with_gnu_ld" = no; then + hardcode_libdir_flag_spec='${wl}+b ${wl}$libdir' + hardcode_libdir_separator=: + hardcode_direct=yes + hardcode_direct_absolute=yes + export_dynamic_flag_spec='${wl}-E' + # hardcode_minus_L: Not really in the search PATH, + # but as the default location of the library. + hardcode_minus_L=yes + fi + ;; + + hpux11*) + if test "$GCC" = yes && test "$with_gnu_ld" = no; then + case $host_cpu in + hppa*64*) + archive_cmds='$CC -shared ${wl}+h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags' + ;; + ia64*) + archive_cmds='$CC -shared $pic_flag ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $libobjs $deplibs $compiler_flags' + ;; + *) + archive_cmds='$CC -shared $pic_flag ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags' + ;; + esac + else + case $host_cpu in + hppa*64*) + archive_cmds='$CC -b ${wl}+h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags' + ;; + ia64*) + archive_cmds='$CC -b ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $libobjs $deplibs $compiler_flags' + ;; + *) + + # Older versions of the 11.00 compiler do not understand -b yet + # (HP92453-01 A.11.01.20 doesn't, HP92453-01 B.11.X.35175-35176.GP does) + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $CC understands -b" >&5 +$as_echo_n "checking if $CC understands -b... " >&6; } +if ${lt_cv_prog_compiler__b+:} false; then : + $as_echo_n "(cached) " >&6 +else + lt_cv_prog_compiler__b=no + save_LDFLAGS="$LDFLAGS" + LDFLAGS="$LDFLAGS -b" + echo "$lt_simple_link_test_code" > conftest.$ac_ext + if (eval $ac_link 2>conftest.err) && test -s conftest$ac_exeext; then + # The linker can only warn and ignore the option if not recognized + # So say no if there are warnings + if test -s conftest.err; then + # Append any errors to the config.log. + cat conftest.err 1>&5 + $ECHO "$_lt_linker_boilerplate" | $SED '/^$/d' > conftest.exp + $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2 + if diff conftest.exp conftest.er2 >/dev/null; then + lt_cv_prog_compiler__b=yes + fi + else + lt_cv_prog_compiler__b=yes + fi + fi + $RM -r conftest* + LDFLAGS="$save_LDFLAGS" + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler__b" >&5 +$as_echo "$lt_cv_prog_compiler__b" >&6; } + +if test x"$lt_cv_prog_compiler__b" = xyes; then + archive_cmds='$CC -b ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags' +else + archive_cmds='$LD -b +h $soname +b $install_libdir -o $lib $libobjs $deplibs $linker_flags' +fi + + ;; + esac + fi + if test "$with_gnu_ld" = no; then + hardcode_libdir_flag_spec='${wl}+b ${wl}$libdir' + hardcode_libdir_separator=: + + case $host_cpu in + hppa*64*|ia64*) + hardcode_direct=no + hardcode_shlibpath_var=no + ;; + *) + hardcode_direct=yes + hardcode_direct_absolute=yes + export_dynamic_flag_spec='${wl}-E' + + # hardcode_minus_L: Not really in the search PATH, + # but as the default location of the library. + hardcode_minus_L=yes + ;; + esac + fi + ;; + + irix5* | irix6* | nonstopux*) + if test "$GCC" = yes; then + archive_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' + # Try to use the -exported_symbol ld option, if it does not + # work, assume that -exports_file does not work either and + # implicitly export all symbols. + # This should be the same for all languages, so no per-tag cache variable. + { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the $host_os linker accepts -exported_symbol" >&5 +$as_echo_n "checking whether the $host_os linker accepts -exported_symbol... " >&6; } +if ${lt_cv_irix_exported_symbol+:} false; then : + $as_echo_n "(cached) " >&6 +else + save_LDFLAGS="$LDFLAGS" + LDFLAGS="$LDFLAGS -shared ${wl}-exported_symbol ${wl}foo ${wl}-update_registry ${wl}/dev/null" + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +int foo (void) { return 0; } +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + lt_cv_irix_exported_symbol=yes +else + lt_cv_irix_exported_symbol=no +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext + LDFLAGS="$save_LDFLAGS" +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_irix_exported_symbol" >&5 +$as_echo "$lt_cv_irix_exported_symbol" >&6; } + if test "$lt_cv_irix_exported_symbol" = yes; then + archive_expsym_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations ${wl}-exports_file ${wl}$export_symbols -o $lib' + fi + else + archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -o $lib' + archive_expsym_cmds='$CC -shared $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -exports_file $export_symbols -o $lib' + fi + archive_cmds_need_lc='no' + hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir' + hardcode_libdir_separator=: + inherit_rpath=yes + link_all_deplibs=yes + ;; + + netbsd* | netbsdelf*-gnu) + if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then + archive_cmds='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags' # a.out + else + archive_cmds='$LD -shared -o $lib $libobjs $deplibs $linker_flags' # ELF + fi + hardcode_libdir_flag_spec='-R$libdir' + hardcode_direct=yes + hardcode_shlibpath_var=no + ;; + + newsos6) + archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' + hardcode_direct=yes + hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir' + hardcode_libdir_separator=: + hardcode_shlibpath_var=no + ;; + + *nto* | *qnx*) + ;; + + openbsd*) + if test -f /usr/libexec/ld.so; then + hardcode_direct=yes + hardcode_shlibpath_var=no + hardcode_direct_absolute=yes + if test -z "`echo __ELF__ | $CC -E - | $GREP __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then + archive_cmds='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags' + archive_expsym_cmds='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags ${wl}-retain-symbols-file,$export_symbols' + hardcode_libdir_flag_spec='${wl}-rpath,$libdir' + export_dynamic_flag_spec='${wl}-E' + else + case $host_os in + openbsd[01].* | openbsd2.[0-7] | openbsd2.[0-7].*) + archive_cmds='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags' + hardcode_libdir_flag_spec='-R$libdir' + ;; + *) + archive_cmds='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags' + hardcode_libdir_flag_spec='${wl}-rpath,$libdir' + ;; + esac + fi + else + ld_shlibs=no + fi + ;; + + os2*) + hardcode_libdir_flag_spec='-L$libdir' + hardcode_minus_L=yes + allow_undefined_flag=unsupported + archive_cmds='$ECHO "LIBRARY $libname INITINSTANCE" > $output_objdir/$libname.def~$ECHO "DESCRIPTION \"$libname\"" >> $output_objdir/$libname.def~echo DATA >> $output_objdir/$libname.def~echo " SINGLE NONSHARED" >> $output_objdir/$libname.def~echo EXPORTS >> $output_objdir/$libname.def~emxexp $libobjs >> $output_objdir/$libname.def~$CC -Zdll -Zcrtdll -o $lib $libobjs $deplibs $compiler_flags $output_objdir/$libname.def' + old_archive_from_new_cmds='emximp -o $output_objdir/$libname.a $output_objdir/$libname.def' + ;; + + osf3*) + if test "$GCC" = yes; then + allow_undefined_flag=' ${wl}-expect_unresolved ${wl}\*' + archive_cmds='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' + else + allow_undefined_flag=' -expect_unresolved \*' + archive_cmds='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -o $lib' + fi + archive_cmds_need_lc='no' + hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir' + hardcode_libdir_separator=: + ;; + + osf4* | osf5*) # as osf3* with the addition of -msym flag + if test "$GCC" = yes; then + allow_undefined_flag=' ${wl}-expect_unresolved ${wl}\*' + archive_cmds='$CC -shared${allow_undefined_flag} $pic_flag $libobjs $deplibs $compiler_flags ${wl}-msym ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' + hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir' + else + allow_undefined_flag=' -expect_unresolved \*' + archive_cmds='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags -msym -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -o $lib' + archive_expsym_cmds='for i in `cat $export_symbols`; do printf "%s %s\\n" -exported_symbol "\$i" >> $lib.exp; done; printf "%s\\n" "-hidden">> $lib.exp~ + $CC -shared${allow_undefined_flag} ${wl}-input ${wl}$lib.exp $compiler_flags $libobjs $deplibs -soname $soname `test -n "$verstring" && $ECHO "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -o $lib~$RM $lib.exp' + + # Both c and cxx compiler support -rpath directly + hardcode_libdir_flag_spec='-rpath $libdir' + fi + archive_cmds_need_lc='no' + hardcode_libdir_separator=: + ;; + + solaris*) + no_undefined_flag=' -z defs' + if test "$GCC" = yes; then + wlarc='${wl}' + archive_cmds='$CC -shared $pic_flag ${wl}-z ${wl}text ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags' + archive_expsym_cmds='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~ + $CC -shared $pic_flag ${wl}-z ${wl}text ${wl}-M ${wl}$lib.exp ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags~$RM $lib.exp' + else + case `$CC -V 2>&1` in + *"Compilers 5.0"*) + wlarc='' + archive_cmds='$LD -G${allow_undefined_flag} -h $soname -o $lib $libobjs $deplibs $linker_flags' + archive_expsym_cmds='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~ + $LD -G${allow_undefined_flag} -M $lib.exp -h $soname -o $lib $libobjs $deplibs $linker_flags~$RM $lib.exp' + ;; + *) + wlarc='${wl}' + archive_cmds='$CC -G${allow_undefined_flag} -h $soname -o $lib $libobjs $deplibs $compiler_flags' + archive_expsym_cmds='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~ + $CC -G${allow_undefined_flag} -M $lib.exp -h $soname -o $lib $libobjs $deplibs $compiler_flags~$RM $lib.exp' + ;; + esac + fi + hardcode_libdir_flag_spec='-R$libdir' + hardcode_shlibpath_var=no + case $host_os in + solaris2.[0-5] | solaris2.[0-5].*) ;; + *) + # The compiler driver will combine and reorder linker options, + # but understands `-z linker_flag'. GCC discards it without `$wl', + # but is careful enough not to reorder. + # Supported since Solaris 2.6 (maybe 2.5.1?) + if test "$GCC" = yes; then + whole_archive_flag_spec='${wl}-z ${wl}allextract$convenience ${wl}-z ${wl}defaultextract' + else + whole_archive_flag_spec='-z allextract$convenience -z defaultextract' + fi + ;; + esac + link_all_deplibs=yes + ;; + + sunos4*) + if test "x$host_vendor" = xsequent; then + # Use $CC to link under sequent, because it throws in some extra .o + # files that make .init and .fini sections work. + archive_cmds='$CC -G ${wl}-h $soname -o $lib $libobjs $deplibs $compiler_flags' + else + archive_cmds='$LD -assert pure-text -Bstatic -o $lib $libobjs $deplibs $linker_flags' + fi + hardcode_libdir_flag_spec='-L$libdir' + hardcode_direct=yes + hardcode_minus_L=yes + hardcode_shlibpath_var=no + ;; + + sysv4) + case $host_vendor in + sni) + archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' + hardcode_direct=yes # is this really true??? + ;; + siemens) + ## LD is ld it makes a PLAMLIB + ## CC just makes a GrossModule. + archive_cmds='$LD -G -o $lib $libobjs $deplibs $linker_flags' + reload_cmds='$CC -r -o $output$reload_objs' + hardcode_direct=no + ;; + motorola) + archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' + hardcode_direct=no #Motorola manual says yes, but my tests say they lie + ;; + esac + runpath_var='LD_RUN_PATH' + hardcode_shlibpath_var=no + ;; + + sysv4.3*) + archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' + hardcode_shlibpath_var=no + export_dynamic_flag_spec='-Bexport' + ;; + + sysv4*MP*) + if test -d /usr/nec; then + archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' + hardcode_shlibpath_var=no + runpath_var=LD_RUN_PATH + hardcode_runpath_var=yes + ld_shlibs=yes + fi + ;; + + sysv4*uw2* | sysv5OpenUNIX* | sysv5UnixWare7.[01].[10]* | unixware7* | sco3.2v5.0.[024]*) + no_undefined_flag='${wl}-z,text' + archive_cmds_need_lc=no + hardcode_shlibpath_var=no + runpath_var='LD_RUN_PATH' + + if test "$GCC" = yes; then + archive_cmds='$CC -shared ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' + archive_expsym_cmds='$CC -shared ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' + else + archive_cmds='$CC -G ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' + archive_expsym_cmds='$CC -G ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' + fi + ;; + + sysv5* | sco3.2v5* | sco5v6*) + # Note: We can NOT use -z defs as we might desire, because we do not + # link with -lc, and that would cause any symbols used from libc to + # always be unresolved, which means just about no library would + # ever link correctly. If we're not using GNU ld we use -z text + # though, which does catch some bad symbols but isn't as heavy-handed + # as -z defs. + no_undefined_flag='${wl}-z,text' + allow_undefined_flag='${wl}-z,nodefs' + archive_cmds_need_lc=no + hardcode_shlibpath_var=no + hardcode_libdir_flag_spec='${wl}-R,$libdir' + hardcode_libdir_separator=':' + link_all_deplibs=yes + export_dynamic_flag_spec='${wl}-Bexport' + runpath_var='LD_RUN_PATH' + + if test "$GCC" = yes; then + archive_cmds='$CC -shared ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' + archive_expsym_cmds='$CC -shared ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' + else + archive_cmds='$CC -G ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' + archive_expsym_cmds='$CC -G ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' + fi + ;; + + uts4*) + archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' + hardcode_libdir_flag_spec='-L$libdir' + hardcode_shlibpath_var=no + ;; + + *) + ld_shlibs=no + ;; + esac + + if test x$host_vendor = xsni; then + case $host in + sysv4 | sysv4.2uw2* | sysv4.3* | sysv5*) + export_dynamic_flag_spec='${wl}-Blargedynsym' + ;; + esac + fi + fi + +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ld_shlibs" >&5 +$as_echo "$ld_shlibs" >&6; } +test "$ld_shlibs" = no && can_build_shared=no + +with_gnu_ld=$with_gnu_ld + + + + + + + + + + + + + + + +# +# Do we need to explicitly link libc? +# +case "x$archive_cmds_need_lc" in +x|xyes) + # Assume -lc should be added + archive_cmds_need_lc=yes + + if test "$enable_shared" = yes && test "$GCC" = yes; then + case $archive_cmds in + *'~'*) + # FIXME: we may have to deal with multi-command sequences. + ;; + '$CC '*) + # Test whether the compiler implicitly links with -lc since on some + # systems, -lgcc has to come before -lc. If gcc already passes -lc + # to ld, don't add -lc before -lgcc. + { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether -lc should be explicitly linked in" >&5 +$as_echo_n "checking whether -lc should be explicitly linked in... " >&6; } +if ${lt_cv_archive_cmds_need_lc+:} false; then : + $as_echo_n "(cached) " >&6 +else + $RM conftest* + echo "$lt_simple_compile_test_code" > conftest.$ac_ext + + if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5 + (eval $ac_compile) 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; } 2>conftest.err; then + soname=conftest + lib=conftest + libobjs=conftest.$ac_objext + deplibs= + wl=$lt_prog_compiler_wl + pic_flag=$lt_prog_compiler_pic + compiler_flags=-v + linker_flags=-v + verstring= + output_objdir=. + libname=conftest + lt_save_allow_undefined_flag=$allow_undefined_flag + allow_undefined_flag= + if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$archive_cmds 2\>\&1 \| $GREP \" -lc \" \>/dev/null 2\>\&1\""; } >&5 + (eval $archive_cmds 2\>\&1 \| $GREP \" -lc \" \>/dev/null 2\>\&1) 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; } + then + lt_cv_archive_cmds_need_lc=no + else + lt_cv_archive_cmds_need_lc=yes + fi + allow_undefined_flag=$lt_save_allow_undefined_flag + else + cat conftest.err 1>&5 + fi + $RM conftest* + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_archive_cmds_need_lc" >&5 +$as_echo "$lt_cv_archive_cmds_need_lc" >&6; } + archive_cmds_need_lc=$lt_cv_archive_cmds_need_lc + ;; + esac + fi + ;; +esac + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking dynamic linker characteristics" >&5 +$as_echo_n "checking dynamic linker characteristics... " >&6; } + +if test "$GCC" = yes; then + case $host_os in + darwin*) lt_awk_arg="/^libraries:/,/LR/" ;; + *) lt_awk_arg="/^libraries:/" ;; + esac + case $host_os in + mingw* | cegcc*) lt_sed_strip_eq="s,=\([A-Za-z]:\),\1,g" ;; + *) lt_sed_strip_eq="s,=/,/,g" ;; + esac + lt_search_path_spec=`$CC -print-search-dirs | awk $lt_awk_arg | $SED -e "s/^libraries://" -e $lt_sed_strip_eq` + case $lt_search_path_spec in + *\;*) + # if the path contains ";" then we assume it to be the separator + # otherwise default to the standard path separator (i.e. ":") - it is + # assumed that no part of a normal pathname contains ";" but that should + # okay in the real world where ";" in dirpaths is itself problematic. + lt_search_path_spec=`$ECHO "$lt_search_path_spec" | $SED 's/;/ /g'` + ;; + *) + lt_search_path_spec=`$ECHO "$lt_search_path_spec" | $SED "s/$PATH_SEPARATOR/ /g"` + ;; + esac + # Ok, now we have the path, separated by spaces, we can step through it + # and add multilib dir if necessary. + lt_tmp_lt_search_path_spec= + lt_multi_os_dir=`$CC $CPPFLAGS $CFLAGS $LDFLAGS -print-multi-os-directory 2>/dev/null` + for lt_sys_path in $lt_search_path_spec; do + if test -d "$lt_sys_path/$lt_multi_os_dir"; then + lt_tmp_lt_search_path_spec="$lt_tmp_lt_search_path_spec $lt_sys_path/$lt_multi_os_dir" + else + test -d "$lt_sys_path" && \ + lt_tmp_lt_search_path_spec="$lt_tmp_lt_search_path_spec $lt_sys_path" + fi + done + lt_search_path_spec=`$ECHO "$lt_tmp_lt_search_path_spec" | awk ' +BEGIN {RS=" "; FS="/|\n";} { + lt_foo=""; + lt_count=0; + for (lt_i = NF; lt_i > 0; lt_i--) { + if ($lt_i != "" && $lt_i != ".") { + if ($lt_i == "..") { + lt_count++; + } else { + if (lt_count == 0) { + lt_foo="/" $lt_i lt_foo; + } else { + lt_count--; + } + } + } + } + if (lt_foo != "") { lt_freq[lt_foo]++; } + if (lt_freq[lt_foo] == 1) { print lt_foo; } +}'` + # AWK program above erroneously prepends '/' to C:/dos/paths + # for these hosts. + case $host_os in + mingw* | cegcc*) lt_search_path_spec=`$ECHO "$lt_search_path_spec" |\ + $SED 's,/\([A-Za-z]:\),\1,g'` ;; + esac + sys_lib_search_path_spec=`$ECHO "$lt_search_path_spec" | $lt_NL2SP` +else + sys_lib_search_path_spec="/lib /usr/lib /usr/local/lib" +fi +library_names_spec= +libname_spec='lib$name' +soname_spec= +shrext_cmds=".so" +postinstall_cmds= +postuninstall_cmds= +finish_cmds= +finish_eval= +shlibpath_var= +shlibpath_overrides_runpath=unknown +version_type=none +dynamic_linker="$host_os ld.so" +sys_lib_dlsearch_path_spec="/lib /usr/lib" +need_lib_prefix=unknown +hardcode_into_libs=no + +# when you set need_version to no, make sure it does not cause -set_version +# flags to be left without arguments +need_version=unknown + +case $host_os in +aix3*) + version_type=linux # correct to gnu/linux during the next big refactor + library_names_spec='${libname}${release}${shared_ext}$versuffix $libname.a' + shlibpath_var=LIBPATH + + # AIX 3 has no versioning support, so we append a major version to the name. + soname_spec='${libname}${release}${shared_ext}$major' + ;; + +aix[4-9]*) + version_type=linux # correct to gnu/linux during the next big refactor + need_lib_prefix=no + need_version=no + hardcode_into_libs=yes + if test "$host_cpu" = ia64; then + # AIX 5 supports IA64 + library_names_spec='${libname}${release}${shared_ext}$major ${libname}${release}${shared_ext}$versuffix $libname${shared_ext}' + shlibpath_var=LD_LIBRARY_PATH + else + # With GCC up to 2.95.x, collect2 would create an import file + # for dependence libraries. The import file would start with + # the line `#! .'. This would cause the generated library to + # depend on `.', always an invalid library. This was fixed in + # development snapshots of GCC prior to 3.0. + case $host_os in + aix4 | aix4.[01] | aix4.[01].*) + if { echo '#if __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 97)' + echo ' yes ' + echo '#endif'; } | ${CC} -E - | $GREP yes > /dev/null; then + : + else + can_build_shared=no + fi + ;; + esac + # AIX (on Power*) has no versioning support, so currently we can not hardcode correct + # soname into executable. Probably we can add versioning support to + # collect2, so additional links can be useful in future. + if test "$aix_use_runtimelinking" = yes; then + # If using run time linking (on AIX 4.2 or later) use lib.so + # instead of lib.a to let people know that these are not + # typical AIX shared libraries. + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' + else + # We preserve .a as extension for shared libraries through AIX4.2 + # and later when we are not doing run time linking. + library_names_spec='${libname}${release}.a $libname.a' + soname_spec='${libname}${release}${shared_ext}$major' + fi + shlibpath_var=LIBPATH + fi + ;; + +amigaos*) + case $host_cpu in + powerpc) + # Since July 2007 AmigaOS4 officially supports .so libraries. + # When compiling the executable, add -use-dynld -Lsobjs: to the compileline. + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' + ;; + m68k) + library_names_spec='$libname.ixlibrary $libname.a' + # Create ${libname}_ixlibrary.a entries in /sys/libs. + finish_eval='for lib in `ls $libdir/*.ixlibrary 2>/dev/null`; do libname=`func_echo_all "$lib" | $SED '\''s%^.*/\([^/]*\)\.ixlibrary$%\1%'\''`; test $RM /sys/libs/${libname}_ixlibrary.a; $show "cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a"; cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a || exit 1; done' + ;; + esac + ;; + +beos*) + library_names_spec='${libname}${shared_ext}' + dynamic_linker="$host_os ld.so" + shlibpath_var=LIBRARY_PATH + ;; + +bsdi[45]*) + version_type=linux # correct to gnu/linux during the next big refactor + need_version=no + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + finish_cmds='PATH="\$PATH:/sbin" ldconfig $libdir' + shlibpath_var=LD_LIBRARY_PATH + sys_lib_search_path_spec="/shlib /usr/lib /usr/X11/lib /usr/contrib/lib /lib /usr/local/lib" + sys_lib_dlsearch_path_spec="/shlib /usr/lib /usr/local/lib" + # the default ld.so.conf also contains /usr/contrib/lib and + # /usr/X11R6/lib (/usr/X11 is a link to /usr/X11R6), but let us allow + # libtool to hard-code these into programs + ;; + +cygwin* | mingw* | pw32* | cegcc*) + version_type=windows + shrext_cmds=".dll" + need_version=no + need_lib_prefix=no + + case $GCC,$cc_basename in + yes,*) + # gcc + library_names_spec='$libname.dll.a' + # DLL is installed to $(libdir)/../bin by postinstall_cmds + postinstall_cmds='base_file=`basename \${file}`~ + dlpath=`$SHELL 2>&1 -c '\''. $dir/'\''\${base_file}'\''i; echo \$dlname'\''`~ + dldir=$destdir/`dirname \$dlpath`~ + test -d \$dldir || mkdir -p \$dldir~ + $install_prog $dir/$dlname \$dldir/$dlname~ + chmod a+x \$dldir/$dlname~ + if test -n '\''$stripme'\'' && test -n '\''$striplib'\''; then + eval '\''$striplib \$dldir/$dlname'\'' || exit \$?; + fi' + postuninstall_cmds='dldll=`$SHELL 2>&1 -c '\''. $file; echo \$dlname'\''`~ + dlpath=$dir/\$dldll~ + $RM \$dlpath' + shlibpath_overrides_runpath=yes + + case $host_os in + cygwin*) + # Cygwin DLLs use 'cyg' prefix rather than 'lib' + soname_spec='`echo ${libname} | sed -e 's/^lib/cyg/'``echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}' + + sys_lib_search_path_spec="$sys_lib_search_path_spec /usr/lib/w32api" + ;; + mingw* | cegcc*) + # MinGW DLLs use traditional 'lib' prefix + soname_spec='${libname}`echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}' + ;; + pw32*) + # pw32 DLLs use 'pw' prefix rather than 'lib' + library_names_spec='`echo ${libname} | sed -e 's/^lib/pw/'``echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}' + ;; + esac + dynamic_linker='Win32 ld.exe' + ;; + + *,cl*) + # Native MSVC + libname_spec='$name' + soname_spec='${libname}`echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}' + library_names_spec='${libname}.dll.lib' + + case $build_os in + mingw*) + sys_lib_search_path_spec= + lt_save_ifs=$IFS + IFS=';' + for lt_path in $LIB + do + IFS=$lt_save_ifs + # Let DOS variable expansion print the short 8.3 style file name. + lt_path=`cd "$lt_path" 2>/dev/null && cmd //C "for %i in (".") do @echo %~si"` + sys_lib_search_path_spec="$sys_lib_search_path_spec $lt_path" + done + IFS=$lt_save_ifs + # Convert to MSYS style. + sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | sed -e 's|\\\\|/|g' -e 's| \\([a-zA-Z]\\):| /\\1|g' -e 's|^ ||'` + ;; + cygwin*) + # Convert to unix form, then to dos form, then back to unix form + # but this time dos style (no spaces!) so that the unix form looks + # like /cygdrive/c/PROGRA~1:/cygdr... + sys_lib_search_path_spec=`cygpath --path --unix "$LIB"` + sys_lib_search_path_spec=`cygpath --path --dos "$sys_lib_search_path_spec" 2>/dev/null` + sys_lib_search_path_spec=`cygpath --path --unix "$sys_lib_search_path_spec" | $SED -e "s/$PATH_SEPARATOR/ /g"` + ;; + *) + sys_lib_search_path_spec="$LIB" + if $ECHO "$sys_lib_search_path_spec" | $GREP ';[c-zC-Z]:/' >/dev/null; then + # It is most probably a Windows format PATH. + sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | $SED -e 's/;/ /g'` + else + sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | $SED -e "s/$PATH_SEPARATOR/ /g"` + fi + # FIXME: find the short name or the path components, as spaces are + # common. (e.g. "Program Files" -> "PROGRA~1") + ;; + esac + + # DLL is installed to $(libdir)/../bin by postinstall_cmds + postinstall_cmds='base_file=`basename \${file}`~ + dlpath=`$SHELL 2>&1 -c '\''. $dir/'\''\${base_file}'\''i; echo \$dlname'\''`~ + dldir=$destdir/`dirname \$dlpath`~ + test -d \$dldir || mkdir -p \$dldir~ + $install_prog $dir/$dlname \$dldir/$dlname' + postuninstall_cmds='dldll=`$SHELL 2>&1 -c '\''. $file; echo \$dlname'\''`~ + dlpath=$dir/\$dldll~ + $RM \$dlpath' + shlibpath_overrides_runpath=yes + dynamic_linker='Win32 link.exe' + ;; + + *) + # Assume MSVC wrapper + library_names_spec='${libname}`echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext} $libname.lib' + dynamic_linker='Win32 ld.exe' + ;; + esac + # FIXME: first we should search . and the directory the executable is in + shlibpath_var=PATH + ;; + +darwin* | rhapsody*) + dynamic_linker="$host_os dyld" + version_type=darwin + need_lib_prefix=no + need_version=no + library_names_spec='${libname}${release}${major}$shared_ext ${libname}$shared_ext' + soname_spec='${libname}${release}${major}$shared_ext' + shlibpath_overrides_runpath=yes + shlibpath_var=DYLD_LIBRARY_PATH + shrext_cmds='`test .$module = .yes && echo .so || echo .dylib`' + + sys_lib_search_path_spec="$sys_lib_search_path_spec /usr/local/lib" + sys_lib_dlsearch_path_spec='/usr/local/lib /lib /usr/lib' + ;; + +dgux*) + version_type=linux # correct to gnu/linux during the next big refactor + need_lib_prefix=no + need_version=no + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname$shared_ext' + soname_spec='${libname}${release}${shared_ext}$major' + shlibpath_var=LD_LIBRARY_PATH + ;; + +freebsd* | dragonfly*) + # DragonFly does not have aout. When/if they implement a new + # versioning mechanism, adjust this. + if test -x /usr/bin/objformat; then + objformat=`/usr/bin/objformat` + else + case $host_os in + freebsd[23].*) objformat=aout ;; + *) objformat=elf ;; + esac + fi + version_type=freebsd-$objformat + case $version_type in + freebsd-elf*) + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext} $libname${shared_ext}' + need_version=no + need_lib_prefix=no + ;; + freebsd-*) + library_names_spec='${libname}${release}${shared_ext}$versuffix $libname${shared_ext}$versuffix' + need_version=yes + ;; + esac + shlibpath_var=LD_LIBRARY_PATH + case $host_os in + freebsd2.*) + shlibpath_overrides_runpath=yes + ;; + freebsd3.[01]* | freebsdelf3.[01]*) + shlibpath_overrides_runpath=yes + hardcode_into_libs=yes + ;; + freebsd3.[2-9]* | freebsdelf3.[2-9]* | \ + freebsd4.[0-5] | freebsdelf4.[0-5] | freebsd4.1.1 | freebsdelf4.1.1) + shlibpath_overrides_runpath=no + hardcode_into_libs=yes + ;; + *) # from 4.6 on, and DragonFly + shlibpath_overrides_runpath=yes + hardcode_into_libs=yes + ;; + esac + ;; + +haiku*) + version_type=linux # correct to gnu/linux during the next big refactor + need_lib_prefix=no + need_version=no + dynamic_linker="$host_os runtime_loader" + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}${major} ${libname}${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + shlibpath_var=LIBRARY_PATH + shlibpath_overrides_runpath=yes + sys_lib_dlsearch_path_spec='/boot/home/config/lib /boot/common/lib /boot/system/lib' + hardcode_into_libs=yes + ;; + +hpux9* | hpux10* | hpux11*) + # Give a soname corresponding to the major version so that dld.sl refuses to + # link against other versions. + version_type=sunos + need_lib_prefix=no + need_version=no + case $host_cpu in + ia64*) + shrext_cmds='.so' + hardcode_into_libs=yes + dynamic_linker="$host_os dld.so" + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=yes # Unless +noenvvar is specified. + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + if test "X$HPUX_IA64_MODE" = X32; then + sys_lib_search_path_spec="/usr/lib/hpux32 /usr/local/lib/hpux32 /usr/local/lib" + else + sys_lib_search_path_spec="/usr/lib/hpux64 /usr/local/lib/hpux64" + fi + sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec + ;; + hppa*64*) + shrext_cmds='.sl' + hardcode_into_libs=yes + dynamic_linker="$host_os dld.sl" + shlibpath_var=LD_LIBRARY_PATH # How should we handle SHLIB_PATH + shlibpath_overrides_runpath=yes # Unless +noenvvar is specified. + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + sys_lib_search_path_spec="/usr/lib/pa20_64 /usr/ccs/lib/pa20_64" + sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec + ;; + *) + shrext_cmds='.sl' + dynamic_linker="$host_os dld.sl" + shlibpath_var=SHLIB_PATH + shlibpath_overrides_runpath=no # +s is required to enable SHLIB_PATH + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + ;; + esac + # HP-UX runs *really* slowly unless shared libraries are mode 555, ... + postinstall_cmds='chmod 555 $lib' + # or fails outright, so override atomically: + install_override_mode=555 + ;; + +interix[3-9]*) + version_type=linux # correct to gnu/linux during the next big refactor + need_lib_prefix=no + need_version=no + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + dynamic_linker='Interix 3.x ld.so.1 (PE, like ELF)' + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=no + hardcode_into_libs=yes + ;; + +irix5* | irix6* | nonstopux*) + case $host_os in + nonstopux*) version_type=nonstopux ;; + *) + if test "$lt_cv_prog_gnu_ld" = yes; then + version_type=linux # correct to gnu/linux during the next big refactor + else + version_type=irix + fi ;; + esac + need_lib_prefix=no + need_version=no + soname_spec='${libname}${release}${shared_ext}$major' + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${release}${shared_ext} $libname${shared_ext}' + case $host_os in + irix5* | nonstopux*) + libsuff= shlibsuff= + ;; + *) + case $LD in # libtool.m4 will add one of these switches to LD + *-32|*"-32 "|*-melf32bsmip|*"-melf32bsmip ") + libsuff= shlibsuff= libmagic=32-bit;; + *-n32|*"-n32 "|*-melf32bmipn32|*"-melf32bmipn32 ") + libsuff=32 shlibsuff=N32 libmagic=N32;; + *-64|*"-64 "|*-melf64bmip|*"-melf64bmip ") + libsuff=64 shlibsuff=64 libmagic=64-bit;; + *) libsuff= shlibsuff= libmagic=never-match;; + esac + ;; + esac + shlibpath_var=LD_LIBRARY${shlibsuff}_PATH + shlibpath_overrides_runpath=no + sys_lib_search_path_spec="/usr/lib${libsuff} /lib${libsuff} /usr/local/lib${libsuff}" + sys_lib_dlsearch_path_spec="/usr/lib${libsuff} /lib${libsuff}" + hardcode_into_libs=yes + ;; + +# No shared lib support for Linux oldld, aout, or coff. +linux*oldld* | linux*aout* | linux*coff*) + dynamic_linker=no + ;; + +# This must be glibc/ELF. +linux* | k*bsd*-gnu | kopensolaris*-gnu | gnu*) + version_type=linux # correct to gnu/linux during the next big refactor + need_lib_prefix=no + need_version=no + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + finish_cmds='PATH="\$PATH:/sbin" ldconfig -n $libdir' + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=no + + # Some binutils ld are patched to set DT_RUNPATH + if ${lt_cv_shlibpath_overrides_runpath+:} false; then : + $as_echo_n "(cached) " >&6 +else + lt_cv_shlibpath_overrides_runpath=no + save_LDFLAGS=$LDFLAGS + save_libdir=$libdir + eval "libdir=/foo; wl=\"$lt_prog_compiler_wl\"; \ + LDFLAGS=\"\$LDFLAGS $hardcode_libdir_flag_spec\"" + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +int +main () +{ + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + if ($OBJDUMP -p conftest$ac_exeext) 2>/dev/null | grep "RUNPATH.*$libdir" >/dev/null; then : + lt_cv_shlibpath_overrides_runpath=yes +fi +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext + LDFLAGS=$save_LDFLAGS + libdir=$save_libdir + +fi + + shlibpath_overrides_runpath=$lt_cv_shlibpath_overrides_runpath + + # This implies no fast_install, which is unacceptable. + # Some rework will be needed to allow for fast_install + # before this can be enabled. + hardcode_into_libs=yes + + # Append ld.so.conf contents to the search path + if test -f /etc/ld.so.conf; then + lt_ld_extra=`awk '/^include / { system(sprintf("cd /etc; cat %s 2>/dev/null", \$2)); skip = 1; } { if (!skip) print \$0; skip = 0; }' < /etc/ld.so.conf | $SED -e 's/#.*//;/^[ ]*hwcap[ ]/d;s/[:, ]/ /g;s/=[^=]*$//;s/=[^= ]* / /g;s/"//g;/^$/d' | tr '\n' ' '` + sys_lib_dlsearch_path_spec="/lib /usr/lib $lt_ld_extra" + fi + + # We used to test for /lib/ld.so.1 and disable shared libraries on + # powerpc, because MkLinux only supported shared libraries with the + # GNU dynamic linker. Since this was broken with cross compilers, + # most powerpc-linux boxes support dynamic linking these days and + # people can always --disable-shared, the test was removed, and we + # assume the GNU/Linux dynamic linker is in use. + dynamic_linker='GNU/Linux ld.so' + ;; + +netbsdelf*-gnu) + version_type=linux + need_lib_prefix=no + need_version=no + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=no + hardcode_into_libs=yes + dynamic_linker='NetBSD ld.elf_so' + ;; + +netbsd*) + version_type=sunos + need_lib_prefix=no + need_version=no + if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix' + finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir' + dynamic_linker='NetBSD (a.out) ld.so' + else + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + dynamic_linker='NetBSD ld.elf_so' + fi + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=yes + hardcode_into_libs=yes + ;; + +newsos6) + version_type=linux # correct to gnu/linux during the next big refactor + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=yes + ;; + +*nto* | *qnx*) + version_type=qnx + need_lib_prefix=no + need_version=no + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=no + hardcode_into_libs=yes + dynamic_linker='ldqnx.so' + ;; + +openbsd*) + version_type=sunos + sys_lib_dlsearch_path_spec="/usr/lib" + need_lib_prefix=no + # Some older versions of OpenBSD (3.3 at least) *do* need versioned libs. + case $host_os in + openbsd3.3 | openbsd3.3.*) need_version=yes ;; + *) need_version=no ;; + esac + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix' + finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir' + shlibpath_var=LD_LIBRARY_PATH + if test -z "`echo __ELF__ | $CC -E - | $GREP __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then + case $host_os in + openbsd2.[89] | openbsd2.[89].*) + shlibpath_overrides_runpath=no + ;; + *) + shlibpath_overrides_runpath=yes + ;; + esac + else + shlibpath_overrides_runpath=yes + fi + ;; + +os2*) + libname_spec='$name' + shrext_cmds=".dll" + need_lib_prefix=no + library_names_spec='$libname${shared_ext} $libname.a' + dynamic_linker='OS/2 ld.exe' + shlibpath_var=LIBPATH + ;; + +osf3* | osf4* | osf5*) + version_type=osf + need_lib_prefix=no + need_version=no + soname_spec='${libname}${release}${shared_ext}$major' + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' + shlibpath_var=LD_LIBRARY_PATH + sys_lib_search_path_spec="/usr/shlib /usr/ccs/lib /usr/lib/cmplrs/cc /usr/lib /usr/local/lib /var/shlib" + sys_lib_dlsearch_path_spec="$sys_lib_search_path_spec" + ;; + +rdos*) + dynamic_linker=no + ;; + +solaris*) + version_type=linux # correct to gnu/linux during the next big refactor + need_lib_prefix=no + need_version=no + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=yes + hardcode_into_libs=yes + # ldd complains unless libraries are executable + postinstall_cmds='chmod +x $lib' + ;; + +sunos4*) + version_type=sunos + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix' + finish_cmds='PATH="\$PATH:/usr/etc" ldconfig $libdir' + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=yes + if test "$with_gnu_ld" = yes; then + need_lib_prefix=no + fi + need_version=yes + ;; + +sysv4 | sysv4.3*) + version_type=linux # correct to gnu/linux during the next big refactor + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + shlibpath_var=LD_LIBRARY_PATH + case $host_vendor in + sni) + shlibpath_overrides_runpath=no + need_lib_prefix=no + runpath_var=LD_RUN_PATH + ;; + siemens) + need_lib_prefix=no + ;; + motorola) + need_lib_prefix=no + need_version=no + shlibpath_overrides_runpath=no + sys_lib_search_path_spec='/lib /usr/lib /usr/ccs/lib' + ;; + esac + ;; + +sysv4*MP*) + if test -d /usr/nec ;then + version_type=linux # correct to gnu/linux during the next big refactor + library_names_spec='$libname${shared_ext}.$versuffix $libname${shared_ext}.$major $libname${shared_ext}' + soname_spec='$libname${shared_ext}.$major' + shlibpath_var=LD_LIBRARY_PATH + fi + ;; + +sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX* | sysv4*uw2*) + version_type=freebsd-elf + need_lib_prefix=no + need_version=no + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext} $libname${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=yes + hardcode_into_libs=yes + if test "$with_gnu_ld" = yes; then + sys_lib_search_path_spec='/usr/local/lib /usr/gnu/lib /usr/ccs/lib /usr/lib /lib' + else + sys_lib_search_path_spec='/usr/ccs/lib /usr/lib' + case $host_os in + sco3.2v5*) + sys_lib_search_path_spec="$sys_lib_search_path_spec /lib" + ;; + esac + fi + sys_lib_dlsearch_path_spec='/usr/lib' + ;; + +tpf*) + # TPF is a cross-target only. Preferred cross-host = GNU/Linux. + version_type=linux # correct to gnu/linux during the next big refactor + need_lib_prefix=no + need_version=no + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=no + hardcode_into_libs=yes + ;; + +uts4*) + version_type=linux # correct to gnu/linux during the next big refactor + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + shlibpath_var=LD_LIBRARY_PATH + ;; + +*) + dynamic_linker=no + ;; +esac +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $dynamic_linker" >&5 +$as_echo "$dynamic_linker" >&6; } +test "$dynamic_linker" = no && can_build_shared=no + +variables_saved_for_relink="PATH $shlibpath_var $runpath_var" +if test "$GCC" = yes; then + variables_saved_for_relink="$variables_saved_for_relink GCC_EXEC_PREFIX COMPILER_PATH LIBRARY_PATH" +fi + +if test "${lt_cv_sys_lib_search_path_spec+set}" = set; then + sys_lib_search_path_spec="$lt_cv_sys_lib_search_path_spec" +fi +if test "${lt_cv_sys_lib_dlsearch_path_spec+set}" = set; then + sys_lib_dlsearch_path_spec="$lt_cv_sys_lib_dlsearch_path_spec" +fi + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking how to hardcode library paths into programs" >&5 +$as_echo_n "checking how to hardcode library paths into programs... " >&6; } +hardcode_action= +if test -n "$hardcode_libdir_flag_spec" || + test -n "$runpath_var" || + test "X$hardcode_automatic" = "Xyes" ; then + + # We can hardcode non-existent directories. + if test "$hardcode_direct" != no && + # If the only mechanism to avoid hardcoding is shlibpath_var, we + # have to relink, otherwise we might link with an installed library + # when we should be linking with a yet-to-be-installed one + ## test "$_LT_TAGVAR(hardcode_shlibpath_var, )" != no && + test "$hardcode_minus_L" != no; then + # Linking always hardcodes the temporary library directory. + hardcode_action=relink + else + # We can link without hardcoding, and we can hardcode nonexisting dirs. + hardcode_action=immediate + fi +else + # We cannot hardcode anything, or else we can only hardcode existing + # directories. + hardcode_action=unsupported +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $hardcode_action" >&5 +$as_echo "$hardcode_action" >&6; } + +if test "$hardcode_action" = relink || + test "$inherit_rpath" = yes; then + # Fast installation is not supported + enable_fast_install=no +elif test "$shlibpath_overrides_runpath" = yes || + test "$enable_shared" = no; then + # Fast installation is not necessary + enable_fast_install=needless +fi + + + + + + + if test "x$enable_dlopen" != xyes; then + enable_dlopen=unknown + enable_dlopen_self=unknown + enable_dlopen_self_static=unknown +else + lt_cv_dlopen=no + lt_cv_dlopen_libs= + + case $host_os in + beos*) + lt_cv_dlopen="load_add_on" + lt_cv_dlopen_libs= + lt_cv_dlopen_self=yes + ;; + + mingw* | pw32* | cegcc*) + lt_cv_dlopen="LoadLibrary" + lt_cv_dlopen_libs= + ;; + + cygwin*) + lt_cv_dlopen="dlopen" + lt_cv_dlopen_libs= + ;; + + darwin*) + # if libdl is installed we need to link against it + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for dlopen in -ldl" >&5 +$as_echo_n "checking for dlopen in -ldl... " >&6; } +if ${ac_cv_lib_dl_dlopen+:} false; then : + $as_echo_n "(cached) " >&6 +else + ac_check_lib_save_LIBS=$LIBS +LIBS="-ldl $LIBS" +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char dlopen (); +int +main () +{ +return dlopen (); + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + ac_cv_lib_dl_dlopen=yes +else + ac_cv_lib_dl_dlopen=no +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +LIBS=$ac_check_lib_save_LIBS +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_dl_dlopen" >&5 +$as_echo "$ac_cv_lib_dl_dlopen" >&6; } +if test "x$ac_cv_lib_dl_dlopen" = xyes; then : + lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-ldl" +else + + lt_cv_dlopen="dyld" + lt_cv_dlopen_libs= + lt_cv_dlopen_self=yes + +fi + + ;; + + *) + ac_fn_c_check_func "$LINENO" "shl_load" "ac_cv_func_shl_load" +if test "x$ac_cv_func_shl_load" = xyes; then : + lt_cv_dlopen="shl_load" +else + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for shl_load in -ldld" >&5 +$as_echo_n "checking for shl_load in -ldld... " >&6; } +if ${ac_cv_lib_dld_shl_load+:} false; then : + $as_echo_n "(cached) " >&6 +else + ac_check_lib_save_LIBS=$LIBS +LIBS="-ldld $LIBS" +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char shl_load (); +int +main () +{ +return shl_load (); + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + ac_cv_lib_dld_shl_load=yes +else + ac_cv_lib_dld_shl_load=no +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +LIBS=$ac_check_lib_save_LIBS +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_dld_shl_load" >&5 +$as_echo "$ac_cv_lib_dld_shl_load" >&6; } +if test "x$ac_cv_lib_dld_shl_load" = xyes; then : + lt_cv_dlopen="shl_load" lt_cv_dlopen_libs="-ldld" +else + ac_fn_c_check_func "$LINENO" "dlopen" "ac_cv_func_dlopen" +if test "x$ac_cv_func_dlopen" = xyes; then : + lt_cv_dlopen="dlopen" +else + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for dlopen in -ldl" >&5 +$as_echo_n "checking for dlopen in -ldl... " >&6; } +if ${ac_cv_lib_dl_dlopen+:} false; then : + $as_echo_n "(cached) " >&6 +else + ac_check_lib_save_LIBS=$LIBS +LIBS="-ldl $LIBS" +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char dlopen (); +int +main () +{ +return dlopen (); + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + ac_cv_lib_dl_dlopen=yes +else + ac_cv_lib_dl_dlopen=no +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +LIBS=$ac_check_lib_save_LIBS +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_dl_dlopen" >&5 +$as_echo "$ac_cv_lib_dl_dlopen" >&6; } +if test "x$ac_cv_lib_dl_dlopen" = xyes; then : + lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-ldl" +else + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for dlopen in -lsvld" >&5 +$as_echo_n "checking for dlopen in -lsvld... " >&6; } +if ${ac_cv_lib_svld_dlopen+:} false; then : + $as_echo_n "(cached) " >&6 +else + ac_check_lib_save_LIBS=$LIBS +LIBS="-lsvld $LIBS" +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char dlopen (); +int +main () +{ +return dlopen (); + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + ac_cv_lib_svld_dlopen=yes +else + ac_cv_lib_svld_dlopen=no +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +LIBS=$ac_check_lib_save_LIBS +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_svld_dlopen" >&5 +$as_echo "$ac_cv_lib_svld_dlopen" >&6; } +if test "x$ac_cv_lib_svld_dlopen" = xyes; then : + lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-lsvld" +else + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for dld_link in -ldld" >&5 +$as_echo_n "checking for dld_link in -ldld... " >&6; } +if ${ac_cv_lib_dld_dld_link+:} false; then : + $as_echo_n "(cached) " >&6 +else + ac_check_lib_save_LIBS=$LIBS +LIBS="-ldld $LIBS" +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char dld_link (); +int +main () +{ +return dld_link (); + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + ac_cv_lib_dld_dld_link=yes +else + ac_cv_lib_dld_dld_link=no +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +LIBS=$ac_check_lib_save_LIBS +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_dld_dld_link" >&5 +$as_echo "$ac_cv_lib_dld_dld_link" >&6; } +if test "x$ac_cv_lib_dld_dld_link" = xyes; then : + lt_cv_dlopen="dld_link" lt_cv_dlopen_libs="-ldld" +fi + + +fi + + +fi + + +fi + + +fi + + +fi + + ;; + esac + + if test "x$lt_cv_dlopen" != xno; then + enable_dlopen=yes + else + enable_dlopen=no + fi + + case $lt_cv_dlopen in + dlopen) + save_CPPFLAGS="$CPPFLAGS" + test "x$ac_cv_header_dlfcn_h" = xyes && CPPFLAGS="$CPPFLAGS -DHAVE_DLFCN_H" + + save_LDFLAGS="$LDFLAGS" + wl=$lt_prog_compiler_wl eval LDFLAGS=\"\$LDFLAGS $export_dynamic_flag_spec\" + + save_LIBS="$LIBS" + LIBS="$lt_cv_dlopen_libs $LIBS" + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether a program can dlopen itself" >&5 +$as_echo_n "checking whether a program can dlopen itself... " >&6; } +if ${lt_cv_dlopen_self+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test "$cross_compiling" = yes; then : + lt_cv_dlopen_self=cross +else + lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2 + lt_status=$lt_dlunknown + cat > conftest.$ac_ext <<_LT_EOF +#line $LINENO "configure" +#include "confdefs.h" + +#if HAVE_DLFCN_H +#include +#endif + +#include + +#ifdef RTLD_GLOBAL +# define LT_DLGLOBAL RTLD_GLOBAL +#else +# ifdef DL_GLOBAL +# define LT_DLGLOBAL DL_GLOBAL +# else +# define LT_DLGLOBAL 0 +# endif +#endif + +/* We may have to define LT_DLLAZY_OR_NOW in the command line if we + find out it does not work in some platform. */ +#ifndef LT_DLLAZY_OR_NOW +# ifdef RTLD_LAZY +# define LT_DLLAZY_OR_NOW RTLD_LAZY +# else +# ifdef DL_LAZY +# define LT_DLLAZY_OR_NOW DL_LAZY +# else +# ifdef RTLD_NOW +# define LT_DLLAZY_OR_NOW RTLD_NOW +# else +# ifdef DL_NOW +# define LT_DLLAZY_OR_NOW DL_NOW +# else +# define LT_DLLAZY_OR_NOW 0 +# endif +# endif +# endif +# endif +#endif + +/* When -fvisbility=hidden is used, assume the code has been annotated + correspondingly for the symbols needed. */ +#if defined(__GNUC__) && (((__GNUC__ == 3) && (__GNUC_MINOR__ >= 3)) || (__GNUC__ > 3)) +int fnord () __attribute__((visibility("default"))); +#endif + +int fnord () { return 42; } +int main () +{ + void *self = dlopen (0, LT_DLGLOBAL|LT_DLLAZY_OR_NOW); + int status = $lt_dlunknown; + + if (self) + { + if (dlsym (self,"fnord")) status = $lt_dlno_uscore; + else + { + if (dlsym( self,"_fnord")) status = $lt_dlneed_uscore; + else puts (dlerror ()); + } + /* dlclose (self); */ + } + else + puts (dlerror ()); + + return status; +} +_LT_EOF + if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_link\""; } >&5 + (eval $ac_link) 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; } && test -s conftest${ac_exeext} 2>/dev/null; then + (./conftest; exit; ) >&5 2>/dev/null + lt_status=$? + case x$lt_status in + x$lt_dlno_uscore) lt_cv_dlopen_self=yes ;; + x$lt_dlneed_uscore) lt_cv_dlopen_self=yes ;; + x$lt_dlunknown|x*) lt_cv_dlopen_self=no ;; + esac + else : + # compilation failed + lt_cv_dlopen_self=no + fi +fi +rm -fr conftest* + + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_dlopen_self" >&5 +$as_echo "$lt_cv_dlopen_self" >&6; } + + if test "x$lt_cv_dlopen_self" = xyes; then + wl=$lt_prog_compiler_wl eval LDFLAGS=\"\$LDFLAGS $lt_prog_compiler_static\" + { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether a statically linked program can dlopen itself" >&5 +$as_echo_n "checking whether a statically linked program can dlopen itself... " >&6; } +if ${lt_cv_dlopen_self_static+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test "$cross_compiling" = yes; then : + lt_cv_dlopen_self_static=cross +else + lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2 + lt_status=$lt_dlunknown + cat > conftest.$ac_ext <<_LT_EOF +#line $LINENO "configure" +#include "confdefs.h" + +#if HAVE_DLFCN_H +#include +#endif + +#include + +#ifdef RTLD_GLOBAL +# define LT_DLGLOBAL RTLD_GLOBAL +#else +# ifdef DL_GLOBAL +# define LT_DLGLOBAL DL_GLOBAL +# else +# define LT_DLGLOBAL 0 +# endif +#endif + +/* We may have to define LT_DLLAZY_OR_NOW in the command line if we + find out it does not work in some platform. */ +#ifndef LT_DLLAZY_OR_NOW +# ifdef RTLD_LAZY +# define LT_DLLAZY_OR_NOW RTLD_LAZY +# else +# ifdef DL_LAZY +# define LT_DLLAZY_OR_NOW DL_LAZY +# else +# ifdef RTLD_NOW +# define LT_DLLAZY_OR_NOW RTLD_NOW +# else +# ifdef DL_NOW +# define LT_DLLAZY_OR_NOW DL_NOW +# else +# define LT_DLLAZY_OR_NOW 0 +# endif +# endif +# endif +# endif +#endif + +/* When -fvisbility=hidden is used, assume the code has been annotated + correspondingly for the symbols needed. */ +#if defined(__GNUC__) && (((__GNUC__ == 3) && (__GNUC_MINOR__ >= 3)) || (__GNUC__ > 3)) +int fnord () __attribute__((visibility("default"))); +#endif + +int fnord () { return 42; } +int main () +{ + void *self = dlopen (0, LT_DLGLOBAL|LT_DLLAZY_OR_NOW); + int status = $lt_dlunknown; + + if (self) + { + if (dlsym (self,"fnord")) status = $lt_dlno_uscore; + else + { + if (dlsym( self,"_fnord")) status = $lt_dlneed_uscore; + else puts (dlerror ()); + } + /* dlclose (self); */ + } + else + puts (dlerror ()); + + return status; +} +_LT_EOF + if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_link\""; } >&5 + (eval $ac_link) 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; } && test -s conftest${ac_exeext} 2>/dev/null; then + (./conftest; exit; ) >&5 2>/dev/null + lt_status=$? + case x$lt_status in + x$lt_dlno_uscore) lt_cv_dlopen_self_static=yes ;; + x$lt_dlneed_uscore) lt_cv_dlopen_self_static=yes ;; + x$lt_dlunknown|x*) lt_cv_dlopen_self_static=no ;; + esac + else : + # compilation failed + lt_cv_dlopen_self_static=no + fi +fi +rm -fr conftest* + + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_dlopen_self_static" >&5 +$as_echo "$lt_cv_dlopen_self_static" >&6; } + fi + + CPPFLAGS="$save_CPPFLAGS" + LDFLAGS="$save_LDFLAGS" + LIBS="$save_LIBS" + ;; + esac + + case $lt_cv_dlopen_self in + yes|no) enable_dlopen_self=$lt_cv_dlopen_self ;; + *) enable_dlopen_self=unknown ;; + esac + + case $lt_cv_dlopen_self_static in + yes|no) enable_dlopen_self_static=$lt_cv_dlopen_self_static ;; + *) enable_dlopen_self_static=unknown ;; + esac +fi + + + + + + + + + + + + + + + + + +striplib= +old_striplib= +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether stripping libraries is possible" >&5 +$as_echo_n "checking whether stripping libraries is possible... " >&6; } +if test -n "$STRIP" && $STRIP -V 2>&1 | $GREP "GNU strip" >/dev/null; then + test -z "$old_striplib" && old_striplib="$STRIP --strip-debug" + test -z "$striplib" && striplib="$STRIP --strip-unneeded" + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } +else +# FIXME - insert some real tests, host_os isn't really good enough + case $host_os in + darwin*) + if test -n "$STRIP" ; then + striplib="$STRIP -x" + old_striplib="$STRIP -S" + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } + else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } + fi + ;; + *) + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } + ;; + esac +fi + + + + + + + + + + + + + # Report which library types will actually be built + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if libtool supports shared libraries" >&5 +$as_echo_n "checking if libtool supports shared libraries... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $can_build_shared" >&5 +$as_echo "$can_build_shared" >&6; } + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether to build shared libraries" >&5 +$as_echo_n "checking whether to build shared libraries... " >&6; } + test "$can_build_shared" = "no" && enable_shared=no + + # On AIX, shared libraries and static libraries use the same namespace, and + # are all built from PIC. + case $host_os in + aix3*) + test "$enable_shared" = yes && enable_static=no + if test -n "$RANLIB"; then + archive_cmds="$archive_cmds~\$RANLIB \$lib" + postinstall_cmds='$RANLIB $lib' + fi + ;; + + aix[4-9]*) + if test "$host_cpu" != ia64 && test "$aix_use_runtimelinking" = no ; then + test "$enable_shared" = yes && enable_static=no + fi + ;; + esac + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $enable_shared" >&5 +$as_echo "$enable_shared" >&6; } + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether to build static libraries" >&5 +$as_echo_n "checking whether to build static libraries... " >&6; } + # Make sure either enable_shared or enable_static is yes. + test "$enable_shared" = yes || enable_static=yes + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $enable_static" >&5 +$as_echo "$enable_static" >&6; } + + + + +fi +ac_ext=c +ac_cpp='$CPP $CPPFLAGS' +ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_c_compiler_gnu + +CC="$lt_save_CC" + + + + + + + + + + + + + + + + ac_config_commands="$ac_config_commands libtool" + + + + +# Only expand once: + + + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing strerror" >&5 +$as_echo_n "checking for library containing strerror... " >&6; } +if ${ac_cv_search_strerror+:} false; then : + $as_echo_n "(cached) " >&6 +else + ac_func_search_save_LIBS=$LIBS +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif char strerror (); int main () @@ -4383,14 +12307,73 @@ esac if test "x$ac_cv_prog_cc_c89" != xno; then : -fi +fi + +ac_ext=c +ac_cpp='$CPP $CPPFLAGS' +ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_c_compiler_gnu + +ac_ext=c +ac_cpp='$CPP $CPPFLAGS' +ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_c_compiler_gnu +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CC understands -c and -o together" >&5 +$as_echo_n "checking whether $CC understands -c and -o together... " >&6; } +if ${am_cv_prog_cc_c_o+:} false; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +int +main () +{ + ; + return 0; +} +_ACEOF + # Make sure it works both with $CC and with simple cc. + # Following AC_PROG_CC_C_O, we do the test twice because some + # compilers refuse to overwrite an existing .o file with -o, + # though they will create one. + am_cv_prog_cc_c_o=yes + for am_i in 1 2; do + if { echo "$as_me:$LINENO: $CC -c conftest.$ac_ext -o conftest2.$ac_objext" >&5 + ($CC -c conftest.$ac_ext -o conftest2.$ac_objext) >&5 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } \ + && test -f conftest2.$ac_objext; then + : OK + else + am_cv_prog_cc_c_o=no + break + fi + done + rm -f core conftest* + unset am_i +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $am_cv_prog_cc_c_o" >&5 +$as_echo "$am_cv_prog_cc_c_o" >&6; } +if test "$am_cv_prog_cc_c_o" != yes; then + # Losing compiler, so override with the script. + # FIXME: It is wrong to rewrite CC. + # But if we don't then we get into trouble of one sort or another. + # A longer-term fix would be to have automake use am__CC in this case, + # and then we could set am__CC="\$(top_srcdir)/compile \$(CC)" + CC="$am_aux_dir/compile $CC" +fi ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu + depcc="$CC" am_compiler_list= { $as_echo "$as_me:${as_lineno-$LINENO}: checking dependency style of $depcc" >&5 @@ -5111,330 +13094,24 @@ *-*-solaris*) ac_fn_c_check_func "$LINENO" "bind_textdomain_codeset" "ac_cv_func_bind_textdomain_codeset" if test "x$ac_cv_func_bind_textdomain_codeset" = xyes; then : - DATADIRNAME=share -else - DATADIRNAME=lib -fi - - ;; - *) - DATADIRNAME=lib - ;; - esac -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext -fi - - - - - (0.23) -# Extract the first word of "gtk-builder-convert", so it can be a program name with args. -set dummy gtk-builder-convert; ac_word=$2 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if ${ac_cv_prog_GTKBLDRCONV+:} false; then : - $as_echo_n "(cached) " >&6 -else - if test -n "$GTKBLDRCONV"; then - ac_cv_prog_GTKBLDRCONV="$GTKBLDRCONV" # Let the user override the test. -else -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then - ac_cv_prog_GTKBLDRCONV="gtk-builder-convert" - $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done - done -IFS=$as_save_IFS - - test -z "$ac_cv_prog_GTKBLDRCONV" && ac_cv_prog_GTKBLDRCONV="false" -fi -fi -GTKBLDRCONV=$ac_cv_prog_GTKBLDRCONV -if test -n "$GTKBLDRCONV"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $GTKBLDRCONV" >&5 -$as_echo "$GTKBLDRCONV" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -fi - - - -ac_ext=c -ac_cpp='$CPP $CPPFLAGS' -ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' -ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' -ac_compiler_gnu=$ac_cv_c_compiler_gnu -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking how to run the C preprocessor" >&5 -$as_echo_n "checking how to run the C preprocessor... " >&6; } -# On Suns, sometimes $CPP names a directory. -if test -n "$CPP" && test -d "$CPP"; then - CPP= -fi -if test -z "$CPP"; then - if ${ac_cv_prog_CPP+:} false; then : - $as_echo_n "(cached) " >&6 -else - # Double quotes because CPP needs to be expanded - for CPP in "$CC -E" "$CC -E -traditional-cpp" "/lib/cpp" - do - ac_preproc_ok=false -for ac_c_preproc_warn_flag in '' yes -do - # Use a header file that comes with gcc, so configuring glibc - # with a fresh cross-compiler works. - # Prefer to if __STDC__ is defined, since - # exists even on freestanding compilers. - # On the NeXT, cc -E runs the code through the compiler's parser, - # not just through cpp. "Syntax error" is here to catch this case. - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -#ifdef __STDC__ -# include -#else -# include -#endif - Syntax error -_ACEOF -if ac_fn_c_try_cpp "$LINENO"; then : - -else - # Broken: fails on valid input. -continue -fi -rm -f conftest.err conftest.i conftest.$ac_ext - - # OK, works on sane cases. Now check whether nonexistent headers - # can be detected and how. - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -#include -_ACEOF -if ac_fn_c_try_cpp "$LINENO"; then : - # Broken: success on invalid input. -continue -else - # Passes both tests. -ac_preproc_ok=: -break -fi -rm -f conftest.err conftest.i conftest.$ac_ext - -done -# Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped. -rm -f conftest.i conftest.err conftest.$ac_ext -if $ac_preproc_ok; then : - break -fi - - done - ac_cv_prog_CPP=$CPP - -fi - CPP=$ac_cv_prog_CPP -else - ac_cv_prog_CPP=$CPP -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $CPP" >&5 -$as_echo "$CPP" >&6; } -ac_preproc_ok=false -for ac_c_preproc_warn_flag in '' yes -do - # Use a header file that comes with gcc, so configuring glibc - # with a fresh cross-compiler works. - # Prefer to if __STDC__ is defined, since - # exists even on freestanding compilers. - # On the NeXT, cc -E runs the code through the compiler's parser, - # not just through cpp. "Syntax error" is here to catch this case. - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -#ifdef __STDC__ -# include -#else -# include -#endif - Syntax error -_ACEOF -if ac_fn_c_try_cpp "$LINENO"; then : - -else - # Broken: fails on valid input. -continue -fi -rm -f conftest.err conftest.i conftest.$ac_ext - - # OK, works on sane cases. Now check whether nonexistent headers - # can be detected and how. - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -#include -_ACEOF -if ac_fn_c_try_cpp "$LINENO"; then : - # Broken: success on invalid input. -continue -else - # Passes both tests. -ac_preproc_ok=: -break -fi -rm -f conftest.err conftest.i conftest.$ac_ext - -done -# Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped. -rm -f conftest.i conftest.err conftest.$ac_ext -if $ac_preproc_ok; then : - -else - { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 -$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} -as_fn_error $? "C preprocessor \"$CPP\" fails sanity check -See \`config.log' for more details" "$LINENO" 5; } -fi - -ac_ext=c -ac_cpp='$CPP $CPPFLAGS' -ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' -ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' -ac_compiler_gnu=$ac_cv_c_compiler_gnu - - -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for grep that handles long lines and -e" >&5 -$as_echo_n "checking for grep that handles long lines and -e... " >&6; } -if ${ac_cv_path_GREP+:} false; then : - $as_echo_n "(cached) " >&6 -else - if test -z "$GREP"; then - ac_path_GREP_found=false - # Loop through the user's path and test for each of PROGNAME-LIST - as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH$PATH_SEPARATOR/usr/xpg4/bin -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_prog in grep ggrep; do - for ac_exec_ext in '' $ac_executable_extensions; do - ac_path_GREP="$as_dir/$ac_prog$ac_exec_ext" - as_fn_executable_p "$ac_path_GREP" || continue -# Check for GNU ac_path_GREP and select it if it is found. - # Check for GNU $ac_path_GREP -case `"$ac_path_GREP" --version 2>&1` in -*GNU*) - ac_cv_path_GREP="$ac_path_GREP" ac_path_GREP_found=:;; -*) - ac_count=0 - $as_echo_n 0123456789 >"conftest.in" - while : - do - cat "conftest.in" "conftest.in" >"conftest.tmp" - mv "conftest.tmp" "conftest.in" - cp "conftest.in" "conftest.nl" - $as_echo 'GREP' >> "conftest.nl" - "$ac_path_GREP" -e 'GREP$' -e '-(cannot match)-' < "conftest.nl" >"conftest.out" 2>/dev/null || break - diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break - as_fn_arith $ac_count + 1 && ac_count=$as_val - if test $ac_count -gt ${ac_path_GREP_max-0}; then - # Best one so far, save it but keep looking for a better one - ac_cv_path_GREP="$ac_path_GREP" - ac_path_GREP_max=$ac_count - fi - # 10*(2^10) chars as input seems more than enough - test $ac_count -gt 10 && break - done - rm -f conftest.in conftest.tmp conftest.nl conftest.out;; -esac - - $ac_path_GREP_found && break 3 - done - done - done -IFS=$as_save_IFS - if test -z "$ac_cv_path_GREP"; then - as_fn_error $? "no acceptable grep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" "$LINENO" 5 - fi + DATADIRNAME=share else - ac_cv_path_GREP=$GREP + DATADIRNAME=lib fi + ;; + *) + DATADIRNAME=lib + ;; + esac +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_path_GREP" >&5 -$as_echo "$ac_cv_path_GREP" >&6; } - GREP="$ac_cv_path_GREP" -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for egrep" >&5 -$as_echo_n "checking for egrep... " >&6; } -if ${ac_cv_path_EGREP+:} false; then : - $as_echo_n "(cached) " >&6 -else - if echo a | $GREP -E '(a|b)' >/dev/null 2>&1 - then ac_cv_path_EGREP="$GREP -E" - else - if test -z "$EGREP"; then - ac_path_EGREP_found=false - # Loop through the user's path and test for each of PROGNAME-LIST - as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH$PATH_SEPARATOR/usr/xpg4/bin -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_prog in egrep; do - for ac_exec_ext in '' $ac_executable_extensions; do - ac_path_EGREP="$as_dir/$ac_prog$ac_exec_ext" - as_fn_executable_p "$ac_path_EGREP" || continue -# Check for GNU ac_path_EGREP and select it if it is found. - # Check for GNU $ac_path_EGREP -case `"$ac_path_EGREP" --version 2>&1` in -*GNU*) - ac_cv_path_EGREP="$ac_path_EGREP" ac_path_EGREP_found=:;; -*) - ac_count=0 - $as_echo_n 0123456789 >"conftest.in" - while : - do - cat "conftest.in" "conftest.in" >"conftest.tmp" - mv "conftest.tmp" "conftest.in" - cp "conftest.in" "conftest.nl" - $as_echo 'EGREP' >> "conftest.nl" - "$ac_path_EGREP" 'EGREP$' < "conftest.nl" >"conftest.out" 2>/dev/null || break - diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break - as_fn_arith $ac_count + 1 && ac_count=$as_val - if test $ac_count -gt ${ac_path_EGREP_max-0}; then - # Best one so far, save it but keep looking for a better one - ac_cv_path_EGREP="$ac_path_EGREP" - ac_path_EGREP_max=$ac_count - fi - # 10*(2^10) chars as input seems more than enough - test $ac_count -gt 10 && break - done - rm -f conftest.in conftest.tmp conftest.nl conftest.out;; -esac - $ac_path_EGREP_found && break 3 - done - done - done -IFS=$as_save_IFS - if test -z "$ac_cv_path_EGREP"; then - as_fn_error $? "no acceptable egrep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" "$LINENO" 5 - fi -else - ac_cv_path_EGREP=$EGREP -fi - fi -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_path_EGREP" >&5 -$as_echo "$ac_cv_path_EGREP" >&6; } - EGREP="$ac_cv_path_EGREP" { $as_echo "$as_me:${as_lineno-$LINENO}: checking for ANSI C header files" >&5 @@ -5549,13 +13226,10 @@ fi -# On IRIX 5.3, sys/types and inttypes.h are conflicting. -for ac_header in sys/types.h sys/stat.h stdlib.h string.h memory.h strings.h \ - inttypes.h stdint.h unistd.h +for ac_header in locale.h stdlib.h string.h unistd.h curl/curl.h do : as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh` -ac_fn_c_check_header_compile "$LINENO" "$ac_header" "$as_ac_Header" "$ac_includes_default -" +ac_fn_c_check_header_mongrel "$LINENO" "$ac_header" "$as_ac_Header" "$ac_includes_default" if eval test \"x\$"$as_ac_Header"\" = x"yes"; then : cat >>confdefs.h <<_ACEOF #define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1 @@ -5566,21 +13240,9 @@ done -for ac_header in locale.h stdlib.h string.h unistd.h curl/curl.h gtkdatabox.h -do : - as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh` -ac_fn_c_check_header_mongrel "$LINENO" "$ac_header" "$as_ac_Header" "$ac_includes_default" -if eval test \"x\$"$as_ac_Header"\" = x"yes"; then : - cat >>confdefs.h <<_ACEOF -#define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1 -_ACEOF - -fi -done -pkg_modules="gtk+-2.0 >= 2.16.0" @@ -5631,92 +13293,274 @@ fi -fi -if test -z "$ac_cv_path_PKG_CONFIG"; then - ac_pt_PKG_CONFIG=$PKG_CONFIG - # Extract the first word of "pkg-config", so it can be a program name with args. -set dummy pkg-config; ac_word=$2 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if ${ac_cv_path_ac_pt_PKG_CONFIG+:} false; then : - $as_echo_n "(cached) " >&6 -else - case $ac_pt_PKG_CONFIG in - [\\/]* | ?:[\\/]*) - ac_cv_path_ac_pt_PKG_CONFIG="$ac_pt_PKG_CONFIG" # Let the user override the test with a path. - ;; - *) - as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then - ac_cv_path_ac_pt_PKG_CONFIG="$as_dir/$ac_word$ac_exec_ext" - $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done - done -IFS=$as_save_IFS +fi +if test -z "$ac_cv_path_PKG_CONFIG"; then + ac_pt_PKG_CONFIG=$PKG_CONFIG + # Extract the first word of "pkg-config", so it can be a program name with args. +set dummy pkg-config; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_path_ac_pt_PKG_CONFIG+:} false; then : + $as_echo_n "(cached) " >&6 +else + case $ac_pt_PKG_CONFIG in + [\\/]* | ?:[\\/]*) + ac_cv_path_ac_pt_PKG_CONFIG="$ac_pt_PKG_CONFIG" # Let the user override the test with a path. + ;; + *) + as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_path_ac_pt_PKG_CONFIG="$as_dir/$ac_word$ac_exec_ext" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + + ;; +esac +fi +ac_pt_PKG_CONFIG=$ac_cv_path_ac_pt_PKG_CONFIG +if test -n "$ac_pt_PKG_CONFIG"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_pt_PKG_CONFIG" >&5 +$as_echo "$ac_pt_PKG_CONFIG" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + if test "x$ac_pt_PKG_CONFIG" = x; then + PKG_CONFIG="" + else + case $cross_compiling:$ac_tool_warned in +yes:) +{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 +$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} +ac_tool_warned=yes ;; +esac + PKG_CONFIG=$ac_pt_PKG_CONFIG + fi +else + PKG_CONFIG="$ac_cv_path_PKG_CONFIG" +fi + +fi +if test -n "$PKG_CONFIG"; then + _pkg_min_version=0.9.0 + { $as_echo "$as_me:${as_lineno-$LINENO}: checking pkg-config is at least version $_pkg_min_version" >&5 +$as_echo_n "checking pkg-config is at least version $_pkg_min_version... " >&6; } + if $PKG_CONFIG --atleast-pkgconfig-version $_pkg_min_version; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } + else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } + PKG_CONFIG="" + fi +fi + +pkg_failed=no +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for GTK" >&5 +$as_echo_n "checking for GTK... " >&6; } + +if test -n "$GTK_CFLAGS"; then + pkg_cv_GTK_CFLAGS="$GTK_CFLAGS" + elif test -n "$PKG_CONFIG"; then + if test -n "$PKG_CONFIG" && \ + { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"gtk+-3.0 >= gtk_required_version\""; } >&5 + ($PKG_CONFIG --exists --print-errors "gtk+-3.0 >= gtk_required_version") 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; then + pkg_cv_GTK_CFLAGS=`$PKG_CONFIG --cflags "gtk+-3.0 >= gtk_required_version" 2>/dev/null` + test "x$?" != "x0" && pkg_failed=yes +else + pkg_failed=yes +fi + else + pkg_failed=untried +fi +if test -n "$GTK_LIBS"; then + pkg_cv_GTK_LIBS="$GTK_LIBS" + elif test -n "$PKG_CONFIG"; then + if test -n "$PKG_CONFIG" && \ + { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"gtk+-3.0 >= gtk_required_version\""; } >&5 + ($PKG_CONFIG --exists --print-errors "gtk+-3.0 >= gtk_required_version") 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; then + pkg_cv_GTK_LIBS=`$PKG_CONFIG --libs "gtk+-3.0 >= gtk_required_version" 2>/dev/null` + test "x$?" != "x0" && pkg_failed=yes +else + pkg_failed=yes +fi + else + pkg_failed=untried +fi + + + +if test $pkg_failed = yes; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } + +if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then + _pkg_short_errors_supported=yes +else + _pkg_short_errors_supported=no +fi + if test $_pkg_short_errors_supported = yes; then + GTK_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors --cflags --libs "gtk+-3.0 >= gtk_required_version" 2>&1` + else + GTK_PKG_ERRORS=`$PKG_CONFIG --print-errors --cflags --libs "gtk+-3.0 >= gtk_required_version" 2>&1` + fi + # Put the nasty error message in config.log where it belongs + echo "$GTK_PKG_ERRORS" >&5 + + as_fn_error $? "Package requirements (gtk+-3.0 >= gtk_required_version) were not met: + +$GTK_PKG_ERRORS + +Consider adjusting the PKG_CONFIG_PATH environment variable if you +installed software in a non-standard prefix. + +Alternatively, you may set the environment variables GTK_CFLAGS +and GTK_LIBS to avoid the need to call pkg-config. +See the pkg-config man page for more details." "$LINENO" 5 +elif test $pkg_failed = untried; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } + { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 +$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} +as_fn_error $? "The pkg-config script could not be found or is too old. Make sure it +is in your PATH or set the PKG_CONFIG environment variable to the full +path to pkg-config. + +Alternatively, you may set the environment variables GTK_CFLAGS +and GTK_LIBS to avoid the need to call pkg-config. +See the pkg-config man page for more details. + +To get pkg-config, see . +See \`config.log' for more details" "$LINENO" 5; } +else + GTK_CFLAGS=$pkg_cv_GTK_CFLAGS + GTK_LIBS=$pkg_cv_GTK_LIBS + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } + +fi + +pkg_failed=no +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for GTK" >&5 +$as_echo_n "checking for GTK... " >&6; } + +if test -n "$GTK_CFLAGS"; then + pkg_cv_GTK_CFLAGS="$GTK_CFLAGS" + elif test -n "$PKG_CONFIG"; then + if test -n "$PKG_CONFIG" && \ + { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"gdk-3.0 >= gtk_required_version\""; } >&5 + ($PKG_CONFIG --exists --print-errors "gdk-3.0 >= gtk_required_version") 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; then + pkg_cv_GTK_CFLAGS=`$PKG_CONFIG --cflags "gdk-3.0 >= gtk_required_version" 2>/dev/null` + test "x$?" != "x0" && pkg_failed=yes +else + pkg_failed=yes +fi + else + pkg_failed=untried +fi +if test -n "$GTK_LIBS"; then + pkg_cv_GTK_LIBS="$GTK_LIBS" + elif test -n "$PKG_CONFIG"; then + if test -n "$PKG_CONFIG" && \ + { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"gdk-3.0 >= gtk_required_version\""; } >&5 + ($PKG_CONFIG --exists --print-errors "gdk-3.0 >= gtk_required_version") 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; then + pkg_cv_GTK_LIBS=`$PKG_CONFIG --libs "gdk-3.0 >= gtk_required_version" 2>/dev/null` + test "x$?" != "x0" && pkg_failed=yes +else + pkg_failed=yes +fi + else + pkg_failed=untried +fi + + - ;; -esac -fi -ac_pt_PKG_CONFIG=$ac_cv_path_ac_pt_PKG_CONFIG -if test -n "$ac_pt_PKG_CONFIG"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_pt_PKG_CONFIG" >&5 -$as_echo "$ac_pt_PKG_CONFIG" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +if test $pkg_failed = yes; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } -fi - if test "x$ac_pt_PKG_CONFIG" = x; then - PKG_CONFIG="" - else - case $cross_compiling:$ac_tool_warned in -yes:) -{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 -$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} -ac_tool_warned=yes ;; -esac - PKG_CONFIG=$ac_pt_PKG_CONFIG - fi +if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then + _pkg_short_errors_supported=yes else - PKG_CONFIG="$ac_cv_path_PKG_CONFIG" + _pkg_short_errors_supported=no fi + if test $_pkg_short_errors_supported = yes; then + GTK_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors --cflags --libs "gdk-3.0 >= gtk_required_version" 2>&1` + else + GTK_PKG_ERRORS=`$PKG_CONFIG --print-errors --cflags --libs "gdk-3.0 >= gtk_required_version" 2>&1` + fi + # Put the nasty error message in config.log where it belongs + echo "$GTK_PKG_ERRORS" >&5 -fi -if test -n "$PKG_CONFIG"; then - _pkg_min_version=0.9.0 - { $as_echo "$as_me:${as_lineno-$LINENO}: checking pkg-config is at least version $_pkg_min_version" >&5 -$as_echo_n "checking pkg-config is at least version $_pkg_min_version... " >&6; } - if $PKG_CONFIG --atleast-pkgconfig-version $_pkg_min_version; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 + as_fn_error $? "Package requirements (gdk-3.0 >= gtk_required_version) were not met: + +$GTK_PKG_ERRORS + +Consider adjusting the PKG_CONFIG_PATH environment variable if you +installed software in a non-standard prefix. + +Alternatively, you may set the environment variables GTK_CFLAGS +and GTK_LIBS to avoid the need to call pkg-config. +See the pkg-config man page for more details." "$LINENO" 5 +elif test $pkg_failed = untried; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } - PKG_CONFIG="" - fi + { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 +$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} +as_fn_error $? "The pkg-config script could not be found or is too old. Make sure it +is in your PATH or set the PKG_CONFIG environment variable to the full +path to pkg-config. + +Alternatively, you may set the environment variables GTK_CFLAGS +and GTK_LIBS to avoid the need to call pkg-config. +See the pkg-config man page for more details. + +To get pkg-config, see . +See \`config.log' for more details" "$LINENO" 5; } +else + GTK_CFLAGS=$pkg_cv_GTK_CFLAGS + GTK_LIBS=$pkg_cv_GTK_LIBS + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } + fi pkg_failed=no -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for PACKAGE" >&5 -$as_echo_n "checking for PACKAGE... " >&6; } +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for PANGO" >&5 +$as_echo_n "checking for PANGO... " >&6; } -if test -n "$PACKAGE_CFLAGS"; then - pkg_cv_PACKAGE_CFLAGS="$PACKAGE_CFLAGS" +if test -n "$PANGO_CFLAGS"; then + pkg_cv_PANGO_CFLAGS="$PANGO_CFLAGS" elif test -n "$PKG_CONFIG"; then if test -n "$PKG_CONFIG" && \ - { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"\$pkg_modules\""; } >&5 - ($PKG_CONFIG --exists --print-errors "$pkg_modules") 2>&5 + { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"pango >= pango_required_version\""; } >&5 + ($PKG_CONFIG --exists --print-errors "pango >= pango_required_version") 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; then - pkg_cv_PACKAGE_CFLAGS=`$PKG_CONFIG --cflags "$pkg_modules" 2>/dev/null` + pkg_cv_PANGO_CFLAGS=`$PKG_CONFIG --cflags "pango >= pango_required_version" 2>/dev/null` test "x$?" != "x0" && pkg_failed=yes else pkg_failed=yes @@ -5724,16 +13568,16 @@ else pkg_failed=untried fi -if test -n "$PACKAGE_LIBS"; then - pkg_cv_PACKAGE_LIBS="$PACKAGE_LIBS" +if test -n "$PANGO_LIBS"; then + pkg_cv_PANGO_LIBS="$PANGO_LIBS" elif test -n "$PKG_CONFIG"; then if test -n "$PKG_CONFIG" && \ - { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"\$pkg_modules\""; } >&5 - ($PKG_CONFIG --exists --print-errors "$pkg_modules") 2>&5 + { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"pango >= pango_required_version\""; } >&5 + ($PKG_CONFIG --exists --print-errors "pango >= pango_required_version") 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; then - pkg_cv_PACKAGE_LIBS=`$PKG_CONFIG --libs "$pkg_modules" 2>/dev/null` + pkg_cv_PANGO_LIBS=`$PKG_CONFIG --libs "pango >= pango_required_version" 2>/dev/null` test "x$?" != "x0" && pkg_failed=yes else pkg_failed=yes @@ -5754,22 +13598,22 @@ _pkg_short_errors_supported=no fi if test $_pkg_short_errors_supported = yes; then - PACKAGE_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors --cflags --libs "$pkg_modules" 2>&1` + PANGO_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors --cflags --libs "pango >= pango_required_version" 2>&1` else - PACKAGE_PKG_ERRORS=`$PKG_CONFIG --print-errors --cflags --libs "$pkg_modules" 2>&1` + PANGO_PKG_ERRORS=`$PKG_CONFIG --print-errors --cflags --libs "pango >= pango_required_version" 2>&1` fi # Put the nasty error message in config.log where it belongs - echo "$PACKAGE_PKG_ERRORS" >&5 + echo "$PANGO_PKG_ERRORS" >&5 - as_fn_error $? "Package requirements ($pkg_modules) were not met: + as_fn_error $? "Package requirements (pango >= pango_required_version) were not met: -$PACKAGE_PKG_ERRORS +$PANGO_PKG_ERRORS Consider adjusting the PKG_CONFIG_PATH environment variable if you installed software in a non-standard prefix. -Alternatively, you may set the environment variables PACKAGE_CFLAGS -and PACKAGE_LIBS to avoid the need to call pkg-config. +Alternatively, you may set the environment variables PANGO_CFLAGS +and PANGO_LIBS to avoid the need to call pkg-config. See the pkg-config man page for more details." "$LINENO" 5 elif test $pkg_failed = untried; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 @@ -5780,67 +13624,113 @@ is in your PATH or set the PKG_CONFIG environment variable to the full path to pkg-config. -Alternatively, you may set the environment variables PACKAGE_CFLAGS -and PACKAGE_LIBS to avoid the need to call pkg-config. +Alternatively, you may set the environment variables PANGO_CFLAGS +and PANGO_LIBS to avoid the need to call pkg-config. See the pkg-config man page for more details. To get pkg-config, see . See \`config.log' for more details" "$LINENO" 5; } else - PACKAGE_CFLAGS=$pkg_cv_PACKAGE_CFLAGS - PACKAGE_LIBS=$pkg_cv_PACKAGE_LIBS + PANGO_CFLAGS=$pkg_cv_PANGO_CFLAGS + PANGO_LIBS=$pkg_cv_PANGO_LIBS { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } fi +pkg_failed=no +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for CAIRO" >&5 +$as_echo_n "checking for CAIRO... " >&6; } - -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for gtk_databox_new in -lgtkdatabox" >&5 -$as_echo_n "checking for gtk_databox_new in -lgtkdatabox... " >&6; } -if ${ac_cv_lib_gtkdatabox_gtk_databox_new+:} false; then : - $as_echo_n "(cached) " >&6 +if test -n "$CAIRO_CFLAGS"; then + pkg_cv_CAIRO_CFLAGS="$CAIRO_CFLAGS" + elif test -n "$PKG_CONFIG"; then + if test -n "$PKG_CONFIG" && \ + { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"cairo >= cairo_required_version\""; } >&5 + ($PKG_CONFIG --exists --print-errors "cairo >= cairo_required_version") 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; then + pkg_cv_CAIRO_CFLAGS=`$PKG_CONFIG --cflags "cairo >= cairo_required_version" 2>/dev/null` + test "x$?" != "x0" && pkg_failed=yes else - ac_check_lib_save_LIBS=$LIBS -LIBS="-lgtkdatabox $LIBS" -cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -/* Override any GCC internal prototype to avoid an error. - Use char because int might match the return type of a GCC - builtin and then its argument prototype would still apply. */ -#ifdef __cplusplus -extern "C" -#endif -char gtk_databox_new (); -int -main () -{ -return gtk_databox_new (); - ; - return 0; -} -_ACEOF -if ac_fn_c_try_link "$LINENO"; then : - ac_cv_lib_gtkdatabox_gtk_databox_new=yes + pkg_failed=yes +fi + else + pkg_failed=untried +fi +if test -n "$CAIRO_LIBS"; then + pkg_cv_CAIRO_LIBS="$CAIRO_LIBS" + elif test -n "$PKG_CONFIG"; then + if test -n "$PKG_CONFIG" && \ + { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"cairo >= cairo_required_version\""; } >&5 + ($PKG_CONFIG --exists --print-errors "cairo >= cairo_required_version") 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; then + pkg_cv_CAIRO_LIBS=`$PKG_CONFIG --libs "cairo >= cairo_required_version" 2>/dev/null` + test "x$?" != "x0" && pkg_failed=yes else - ac_cv_lib_gtkdatabox_gtk_databox_new=no + pkg_failed=yes fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext -LIBS=$ac_check_lib_save_LIBS + else + pkg_failed=untried fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_gtkdatabox_gtk_databox_new" >&5 -$as_echo "$ac_cv_lib_gtkdatabox_gtk_databox_new" >&6; } -if test "x$ac_cv_lib_gtkdatabox_gtk_databox_new" = xyes; then : - cat >>confdefs.h <<_ACEOF -#define HAVE_LIBGTKDATABOX 1 -_ACEOF - LIBS="-lgtkdatabox $LIBS" + + +if test $pkg_failed = yes; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } + +if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then + _pkg_short_errors_supported=yes +else + _pkg_short_errors_supported=no +fi + if test $_pkg_short_errors_supported = yes; then + CAIRO_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors --cflags --libs "cairo >= cairo_required_version" 2>&1` + else + CAIRO_PKG_ERRORS=`$PKG_CONFIG --print-errors --cflags --libs "cairo >= cairo_required_version" 2>&1` + fi + # Put the nasty error message in config.log where it belongs + echo "$CAIRO_PKG_ERRORS" >&5 + + as_fn_error $? "Package requirements (cairo >= cairo_required_version) were not met: + +$CAIRO_PKG_ERRORS + +Consider adjusting the PKG_CONFIG_PATH environment variable if you +installed software in a non-standard prefix. + +Alternatively, you may set the environment variables CAIRO_CFLAGS +and CAIRO_LIBS to avoid the need to call pkg-config. +See the pkg-config man page for more details." "$LINENO" 5 +elif test $pkg_failed = untried; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } + { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 +$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} +as_fn_error $? "The pkg-config script could not be found or is too old. Make sure it +is in your PATH or set the PKG_CONFIG environment variable to the full +path to pkg-config. + +Alternatively, you may set the environment variables CAIRO_CFLAGS +and CAIRO_LIBS to avoid the need to call pkg-config. +See the pkg-config man page for more details. + +To get pkg-config, see . +See \`config.log' for more details" "$LINENO" 5; } +else + CAIRO_CFLAGS=$pkg_cv_CAIRO_CFLAGS + CAIRO_LIBS=$pkg_cv_CAIRO_LIBS + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } fi + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for curl_global_init in -lcurl" >&5 $as_echo_n "checking for curl_global_init in -lcurl... " >&6; } if ${ac_cv_lib_curl_curl_global_init+:} false; then : @@ -6058,83 +13948,13 @@ done -GETTEXT_PACKAGE=klavaro - - -cat >>confdefs.h <<_ACEOF -#define GETTEXT_PACKAGE "$GETTEXT_PACKAGE" -_ACEOF - - -ALL_LINGUAS="ar bg bn cs da de en_GB el eo eu es fr gl hu it kk ky nb nl pl pt_BR ru sv te uk ur vi wo zh_CN" -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for a sed that does not truncate output" >&5 -$as_echo_n "checking for a sed that does not truncate output... " >&6; } -if ${ac_cv_path_SED+:} false; then : - $as_echo_n "(cached) " >&6 -else - ac_script=s/aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa/bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb/ - for ac_i in 1 2 3 4 5 6 7; do - ac_script="$ac_script$as_nl$ac_script" - done - echo "$ac_script" 2>/dev/null | sed 99q >conftest.sed - { ac_script=; unset ac_script;} - if test -z "$SED"; then - ac_path_SED_found=false - # Loop through the user's path and test for each of PROGNAME-LIST - as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_prog in sed gsed; do - for ac_exec_ext in '' $ac_executable_extensions; do - ac_path_SED="$as_dir/$ac_prog$ac_exec_ext" - as_fn_executable_p "$ac_path_SED" || continue -# Check for GNU ac_path_SED and select it if it is found. - # Check for GNU $ac_path_SED -case `"$ac_path_SED" --version 2>&1` in -*GNU*) - ac_cv_path_SED="$ac_path_SED" ac_path_SED_found=:;; -*) - ac_count=0 - $as_echo_n 0123456789 >"conftest.in" - while : - do - cat "conftest.in" "conftest.in" >"conftest.tmp" - mv "conftest.tmp" "conftest.in" - cp "conftest.in" "conftest.nl" - $as_echo '' >> "conftest.nl" - "$ac_path_SED" -f conftest.sed < "conftest.nl" >"conftest.out" 2>/dev/null || break - diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break - as_fn_arith $ac_count + 1 && ac_count=$as_val - if test $ac_count -gt ${ac_path_SED_max-0}; then - # Best one so far, save it but keep looking for a better one - ac_cv_path_SED="$ac_path_SED" - ac_path_SED_max=$ac_count - fi - # 10*(2^10) chars as input seems more than enough - test $ac_count -gt 10 && break - done - rm -f conftest.in conftest.tmp conftest.nl conftest.out;; -esac - - $ac_path_SED_found && break 3 - done - done - done -IFS=$as_save_IFS - if test -z "$ac_cv_path_SED"; then - as_fn_error $? "no acceptable sed could be found in \$PATH" "$LINENO" 5 - fi -else - ac_cv_path_SED=$SED -fi - -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_path_SED" >&5 -$as_echo "$ac_cv_path_SED" >&6; } - SED="$ac_cv_path_SED" - rm -f conftest.sed +GETTEXT_PACKAGE=klavaro + + +cat >>confdefs.h <<_ACEOF +#define GETTEXT_PACKAGE "$GETTEXT_PACKAGE" +_ACEOF + @@ -6435,77 +14255,6 @@ eval acl_final_exec_prefix=\"$acl_final_exec_prefix\" prefix="$acl_save_prefix" -# Make sure we can run config.sub. -$SHELL "$ac_aux_dir/config.sub" sun4 >/dev/null 2>&1 || - as_fn_error $? "cannot run $SHELL $ac_aux_dir/config.sub" "$LINENO" 5 - -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking build system type" >&5 -$as_echo_n "checking build system type... " >&6; } -if ${ac_cv_build+:} false; then : - $as_echo_n "(cached) " >&6 -else - ac_build_alias=$build_alias -test "x$ac_build_alias" = x && - ac_build_alias=`$SHELL "$ac_aux_dir/config.guess"` -test "x$ac_build_alias" = x && - as_fn_error $? "cannot guess build type; you must specify one" "$LINENO" 5 -ac_cv_build=`$SHELL "$ac_aux_dir/config.sub" $ac_build_alias` || - as_fn_error $? "$SHELL $ac_aux_dir/config.sub $ac_build_alias failed" "$LINENO" 5 - -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_build" >&5 -$as_echo "$ac_cv_build" >&6; } -case $ac_cv_build in -*-*-*) ;; -*) as_fn_error $? "invalid value of canonical build" "$LINENO" 5;; -esac -build=$ac_cv_build -ac_save_IFS=$IFS; IFS='-' -set x $ac_cv_build -shift -build_cpu=$1 -build_vendor=$2 -shift; shift -# Remember, the first character of IFS is used to create $*, -# except with old shells: -build_os=$* -IFS=$ac_save_IFS -case $build_os in *\ *) build_os=`echo "$build_os" | sed 's/ /-/g'`;; esac - - -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking host system type" >&5 -$as_echo_n "checking host system type... " >&6; } -if ${ac_cv_host+:} false; then : - $as_echo_n "(cached) " >&6 -else - if test "x$host_alias" = x; then - ac_cv_host=$ac_cv_build -else - ac_cv_host=`$SHELL "$ac_aux_dir/config.sub" $host_alias` || - as_fn_error $? "$SHELL $ac_aux_dir/config.sub $host_alias failed" "$LINENO" 5 -fi - -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_host" >&5 -$as_echo "$ac_cv_host" >&6; } -case $ac_cv_host in -*-*-*) ;; -*) as_fn_error $? "invalid value of canonical host" "$LINENO" 5;; -esac -host=$ac_cv_host -ac_save_IFS=$IFS; IFS='-' -set x $ac_cv_host -shift -host_cpu=$1 -host_vendor=$2 -shift; shift -# Remember, the first character of IFS is used to create $*, -# except with old shells: -host_os=$* -IFS=$ac_save_IFS -case $host_os in *\ *) host_os=`echo "$host_os" | sed 's/ /-/g'`;; esac - - # Check whether --with-gnu-ld was given. @@ -8275,7 +16024,7 @@ fi -ac_config_files="$ac_config_files Makefile src/Makefile po/Makefile.in doc/Makefile data/Makefile data/icons/Makefile data/icons/hicolor/Makefile data/icons/hicolor/16x16/Makefile data/icons/hicolor/16x16/apps/Makefile data/icons/hicolor/22x22/Makefile data/icons/hicolor/22x22/apps/Makefile data/icons/hicolor/24x24/Makefile data/icons/hicolor/24x24/apps/Makefile data/icons/hicolor/32x32/Makefile data/icons/hicolor/32x32/apps/Makefile data/icons/hicolor/48x48/Makefile data/icons/hicolor/48x48/apps/Makefile" +ac_config_files="$ac_config_files Makefile gtkdatabox/Makefile src/Makefile po/Makefile.in doc/Makefile data/Makefile data/icons/Makefile data/icons/hicolor/Makefile data/icons/hicolor/16x16/Makefile data/icons/hicolor/16x16/apps/Makefile data/icons/hicolor/22x22/Makefile data/icons/hicolor/22x22/apps/Makefile data/icons/hicolor/24x24/Makefile data/icons/hicolor/24x24/apps/Makefile data/icons/hicolor/32x32/Makefile data/icons/hicolor/32x32/apps/Makefile data/icons/hicolor/48x48/Makefile data/icons/hicolor/48x48/apps/Makefile" cat >confcache <<\_ACEOF # This file is a shell script that caches the results of configure @@ -8823,7 +16572,7 @@ # report actual input values of CONFIG_FILES etc. instead of their # values after options handling. ac_log=" -This file was extended by klavaro $as_me 1.9.9, which was +This file was extended by klavaro $as_me 3.00, which was generated by GNU Autoconf 2.69. Invocation command line was CONFIG_FILES = $CONFIG_FILES @@ -8889,7 +16638,7 @@ cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`" ac_cs_version="\\ -klavaro config.status 1.9.9 +klavaro config.status 3.00 configured by $0, generated by GNU Autoconf 2.69, with options \\"\$ac_cs_config\\" @@ -9009,6 +16758,283 @@ # INIT-COMMANDS # AMDEP_TRUE="$AMDEP_TRUE" ac_aux_dir="$ac_aux_dir" + + +# The HP-UX ksh and POSIX shell print the target directory to stdout +# if CDPATH is set. +(unset CDPATH) >/dev/null 2>&1 && unset CDPATH + +sed_quote_subst='$sed_quote_subst' +double_quote_subst='$double_quote_subst' +delay_variable_subst='$delay_variable_subst' +macro_version='`$ECHO "$macro_version" | $SED "$delay_single_quote_subst"`' +macro_revision='`$ECHO "$macro_revision" | $SED "$delay_single_quote_subst"`' +enable_shared='`$ECHO "$enable_shared" | $SED "$delay_single_quote_subst"`' +enable_static='`$ECHO "$enable_static" | $SED "$delay_single_quote_subst"`' +pic_mode='`$ECHO "$pic_mode" | $SED "$delay_single_quote_subst"`' +enable_fast_install='`$ECHO "$enable_fast_install" | $SED "$delay_single_quote_subst"`' +SHELL='`$ECHO "$SHELL" | $SED "$delay_single_quote_subst"`' +ECHO='`$ECHO "$ECHO" | $SED "$delay_single_quote_subst"`' +PATH_SEPARATOR='`$ECHO "$PATH_SEPARATOR" | $SED "$delay_single_quote_subst"`' +host_alias='`$ECHO "$host_alias" | $SED "$delay_single_quote_subst"`' +host='`$ECHO "$host" | $SED "$delay_single_quote_subst"`' +host_os='`$ECHO "$host_os" | $SED "$delay_single_quote_subst"`' +build_alias='`$ECHO "$build_alias" | $SED "$delay_single_quote_subst"`' +build='`$ECHO "$build" | $SED "$delay_single_quote_subst"`' +build_os='`$ECHO "$build_os" | $SED "$delay_single_quote_subst"`' +SED='`$ECHO "$SED" | $SED "$delay_single_quote_subst"`' +Xsed='`$ECHO "$Xsed" | $SED "$delay_single_quote_subst"`' +GREP='`$ECHO "$GREP" | $SED "$delay_single_quote_subst"`' +EGREP='`$ECHO "$EGREP" | $SED "$delay_single_quote_subst"`' +FGREP='`$ECHO "$FGREP" | $SED "$delay_single_quote_subst"`' +LD='`$ECHO "$LD" | $SED "$delay_single_quote_subst"`' +NM='`$ECHO "$NM" | $SED "$delay_single_quote_subst"`' +LN_S='`$ECHO "$LN_S" | $SED "$delay_single_quote_subst"`' +max_cmd_len='`$ECHO "$max_cmd_len" | $SED "$delay_single_quote_subst"`' +ac_objext='`$ECHO "$ac_objext" | $SED "$delay_single_quote_subst"`' +exeext='`$ECHO "$exeext" | $SED "$delay_single_quote_subst"`' +lt_unset='`$ECHO "$lt_unset" | $SED "$delay_single_quote_subst"`' +lt_SP2NL='`$ECHO "$lt_SP2NL" | $SED "$delay_single_quote_subst"`' +lt_NL2SP='`$ECHO "$lt_NL2SP" | $SED "$delay_single_quote_subst"`' +lt_cv_to_host_file_cmd='`$ECHO "$lt_cv_to_host_file_cmd" | $SED "$delay_single_quote_subst"`' +lt_cv_to_tool_file_cmd='`$ECHO "$lt_cv_to_tool_file_cmd" | $SED "$delay_single_quote_subst"`' +reload_flag='`$ECHO "$reload_flag" | $SED "$delay_single_quote_subst"`' +reload_cmds='`$ECHO "$reload_cmds" | $SED "$delay_single_quote_subst"`' +OBJDUMP='`$ECHO "$OBJDUMP" | $SED "$delay_single_quote_subst"`' +deplibs_check_method='`$ECHO "$deplibs_check_method" | $SED "$delay_single_quote_subst"`' +file_magic_cmd='`$ECHO "$file_magic_cmd" | $SED "$delay_single_quote_subst"`' +file_magic_glob='`$ECHO "$file_magic_glob" | $SED "$delay_single_quote_subst"`' +want_nocaseglob='`$ECHO "$want_nocaseglob" | $SED "$delay_single_quote_subst"`' +DLLTOOL='`$ECHO "$DLLTOOL" | $SED "$delay_single_quote_subst"`' +sharedlib_from_linklib_cmd='`$ECHO "$sharedlib_from_linklib_cmd" | $SED "$delay_single_quote_subst"`' +AR='`$ECHO "$AR" | $SED "$delay_single_quote_subst"`' +AR_FLAGS='`$ECHO "$AR_FLAGS" | $SED "$delay_single_quote_subst"`' +archiver_list_spec='`$ECHO "$archiver_list_spec" | $SED "$delay_single_quote_subst"`' +STRIP='`$ECHO "$STRIP" | $SED "$delay_single_quote_subst"`' +RANLIB='`$ECHO "$RANLIB" | $SED "$delay_single_quote_subst"`' +old_postinstall_cmds='`$ECHO "$old_postinstall_cmds" | $SED "$delay_single_quote_subst"`' +old_postuninstall_cmds='`$ECHO "$old_postuninstall_cmds" | $SED "$delay_single_quote_subst"`' +old_archive_cmds='`$ECHO "$old_archive_cmds" | $SED "$delay_single_quote_subst"`' +lock_old_archive_extraction='`$ECHO "$lock_old_archive_extraction" | $SED "$delay_single_quote_subst"`' +CC='`$ECHO "$CC" | $SED "$delay_single_quote_subst"`' +CFLAGS='`$ECHO "$CFLAGS" | $SED "$delay_single_quote_subst"`' +compiler='`$ECHO "$compiler" | $SED "$delay_single_quote_subst"`' +GCC='`$ECHO "$GCC" | $SED "$delay_single_quote_subst"`' +lt_cv_sys_global_symbol_pipe='`$ECHO "$lt_cv_sys_global_symbol_pipe" | $SED "$delay_single_quote_subst"`' +lt_cv_sys_global_symbol_to_cdecl='`$ECHO "$lt_cv_sys_global_symbol_to_cdecl" | $SED "$delay_single_quote_subst"`' +lt_cv_sys_global_symbol_to_c_name_address='`$ECHO "$lt_cv_sys_global_symbol_to_c_name_address" | $SED "$delay_single_quote_subst"`' +lt_cv_sys_global_symbol_to_c_name_address_lib_prefix='`$ECHO "$lt_cv_sys_global_symbol_to_c_name_address_lib_prefix" | $SED "$delay_single_quote_subst"`' +nm_file_list_spec='`$ECHO "$nm_file_list_spec" | $SED "$delay_single_quote_subst"`' +lt_sysroot='`$ECHO "$lt_sysroot" | $SED "$delay_single_quote_subst"`' +objdir='`$ECHO "$objdir" | $SED "$delay_single_quote_subst"`' +MAGIC_CMD='`$ECHO "$MAGIC_CMD" | $SED "$delay_single_quote_subst"`' +lt_prog_compiler_no_builtin_flag='`$ECHO "$lt_prog_compiler_no_builtin_flag" | $SED "$delay_single_quote_subst"`' +lt_prog_compiler_pic='`$ECHO "$lt_prog_compiler_pic" | $SED "$delay_single_quote_subst"`' +lt_prog_compiler_wl='`$ECHO "$lt_prog_compiler_wl" | $SED "$delay_single_quote_subst"`' +lt_prog_compiler_static='`$ECHO "$lt_prog_compiler_static" | $SED "$delay_single_quote_subst"`' +lt_cv_prog_compiler_c_o='`$ECHO "$lt_cv_prog_compiler_c_o" | $SED "$delay_single_quote_subst"`' +need_locks='`$ECHO "$need_locks" | $SED "$delay_single_quote_subst"`' +MANIFEST_TOOL='`$ECHO "$MANIFEST_TOOL" | $SED "$delay_single_quote_subst"`' +DSYMUTIL='`$ECHO "$DSYMUTIL" | $SED "$delay_single_quote_subst"`' +NMEDIT='`$ECHO "$NMEDIT" | $SED "$delay_single_quote_subst"`' +LIPO='`$ECHO "$LIPO" | $SED "$delay_single_quote_subst"`' +OTOOL='`$ECHO "$OTOOL" | $SED "$delay_single_quote_subst"`' +OTOOL64='`$ECHO "$OTOOL64" | $SED "$delay_single_quote_subst"`' +libext='`$ECHO "$libext" | $SED "$delay_single_quote_subst"`' +shrext_cmds='`$ECHO "$shrext_cmds" | $SED "$delay_single_quote_subst"`' +extract_expsyms_cmds='`$ECHO "$extract_expsyms_cmds" | $SED "$delay_single_quote_subst"`' +archive_cmds_need_lc='`$ECHO "$archive_cmds_need_lc" | $SED "$delay_single_quote_subst"`' +enable_shared_with_static_runtimes='`$ECHO "$enable_shared_with_static_runtimes" | $SED "$delay_single_quote_subst"`' +export_dynamic_flag_spec='`$ECHO "$export_dynamic_flag_spec" | $SED "$delay_single_quote_subst"`' +whole_archive_flag_spec='`$ECHO "$whole_archive_flag_spec" | $SED "$delay_single_quote_subst"`' +compiler_needs_object='`$ECHO "$compiler_needs_object" | $SED "$delay_single_quote_subst"`' +old_archive_from_new_cmds='`$ECHO "$old_archive_from_new_cmds" | $SED "$delay_single_quote_subst"`' +old_archive_from_expsyms_cmds='`$ECHO "$old_archive_from_expsyms_cmds" | $SED "$delay_single_quote_subst"`' +archive_cmds='`$ECHO "$archive_cmds" | $SED "$delay_single_quote_subst"`' +archive_expsym_cmds='`$ECHO "$archive_expsym_cmds" | $SED "$delay_single_quote_subst"`' +module_cmds='`$ECHO "$module_cmds" | $SED "$delay_single_quote_subst"`' +module_expsym_cmds='`$ECHO "$module_expsym_cmds" | $SED "$delay_single_quote_subst"`' +with_gnu_ld='`$ECHO "$with_gnu_ld" | $SED "$delay_single_quote_subst"`' +allow_undefined_flag='`$ECHO "$allow_undefined_flag" | $SED "$delay_single_quote_subst"`' +no_undefined_flag='`$ECHO "$no_undefined_flag" | $SED "$delay_single_quote_subst"`' +hardcode_libdir_flag_spec='`$ECHO "$hardcode_libdir_flag_spec" | $SED "$delay_single_quote_subst"`' +hardcode_libdir_separator='`$ECHO "$hardcode_libdir_separator" | $SED "$delay_single_quote_subst"`' +hardcode_direct='`$ECHO "$hardcode_direct" | $SED "$delay_single_quote_subst"`' +hardcode_direct_absolute='`$ECHO "$hardcode_direct_absolute" | $SED "$delay_single_quote_subst"`' +hardcode_minus_L='`$ECHO "$hardcode_minus_L" | $SED "$delay_single_quote_subst"`' +hardcode_shlibpath_var='`$ECHO "$hardcode_shlibpath_var" | $SED "$delay_single_quote_subst"`' +hardcode_automatic='`$ECHO "$hardcode_automatic" | $SED "$delay_single_quote_subst"`' +inherit_rpath='`$ECHO "$inherit_rpath" | $SED "$delay_single_quote_subst"`' +link_all_deplibs='`$ECHO "$link_all_deplibs" | $SED "$delay_single_quote_subst"`' +always_export_symbols='`$ECHO "$always_export_symbols" | $SED "$delay_single_quote_subst"`' +export_symbols_cmds='`$ECHO "$export_symbols_cmds" | $SED "$delay_single_quote_subst"`' +exclude_expsyms='`$ECHO "$exclude_expsyms" | $SED "$delay_single_quote_subst"`' +include_expsyms='`$ECHO "$include_expsyms" | $SED "$delay_single_quote_subst"`' +prelink_cmds='`$ECHO "$prelink_cmds" | $SED "$delay_single_quote_subst"`' +postlink_cmds='`$ECHO "$postlink_cmds" | $SED "$delay_single_quote_subst"`' +file_list_spec='`$ECHO "$file_list_spec" | $SED "$delay_single_quote_subst"`' +variables_saved_for_relink='`$ECHO "$variables_saved_for_relink" | $SED "$delay_single_quote_subst"`' +need_lib_prefix='`$ECHO "$need_lib_prefix" | $SED "$delay_single_quote_subst"`' +need_version='`$ECHO "$need_version" | $SED "$delay_single_quote_subst"`' +version_type='`$ECHO "$version_type" | $SED "$delay_single_quote_subst"`' +runpath_var='`$ECHO "$runpath_var" | $SED "$delay_single_quote_subst"`' +shlibpath_var='`$ECHO "$shlibpath_var" | $SED "$delay_single_quote_subst"`' +shlibpath_overrides_runpath='`$ECHO "$shlibpath_overrides_runpath" | $SED "$delay_single_quote_subst"`' +libname_spec='`$ECHO "$libname_spec" | $SED "$delay_single_quote_subst"`' +library_names_spec='`$ECHO "$library_names_spec" | $SED "$delay_single_quote_subst"`' +soname_spec='`$ECHO "$soname_spec" | $SED "$delay_single_quote_subst"`' +install_override_mode='`$ECHO "$install_override_mode" | $SED "$delay_single_quote_subst"`' +postinstall_cmds='`$ECHO "$postinstall_cmds" | $SED "$delay_single_quote_subst"`' +postuninstall_cmds='`$ECHO "$postuninstall_cmds" | $SED "$delay_single_quote_subst"`' +finish_cmds='`$ECHO "$finish_cmds" | $SED "$delay_single_quote_subst"`' +finish_eval='`$ECHO "$finish_eval" | $SED "$delay_single_quote_subst"`' +hardcode_into_libs='`$ECHO "$hardcode_into_libs" | $SED "$delay_single_quote_subst"`' +sys_lib_search_path_spec='`$ECHO "$sys_lib_search_path_spec" | $SED "$delay_single_quote_subst"`' +sys_lib_dlsearch_path_spec='`$ECHO "$sys_lib_dlsearch_path_spec" | $SED "$delay_single_quote_subst"`' +hardcode_action='`$ECHO "$hardcode_action" | $SED "$delay_single_quote_subst"`' +enable_dlopen='`$ECHO "$enable_dlopen" | $SED "$delay_single_quote_subst"`' +enable_dlopen_self='`$ECHO "$enable_dlopen_self" | $SED "$delay_single_quote_subst"`' +enable_dlopen_self_static='`$ECHO "$enable_dlopen_self_static" | $SED "$delay_single_quote_subst"`' +old_striplib='`$ECHO "$old_striplib" | $SED "$delay_single_quote_subst"`' +striplib='`$ECHO "$striplib" | $SED "$delay_single_quote_subst"`' + +LTCC='$LTCC' +LTCFLAGS='$LTCFLAGS' +compiler='$compiler_DEFAULT' + +# A function that is used when there is no print builtin or printf. +func_fallback_echo () +{ + eval 'cat <<_LTECHO_EOF +\$1 +_LTECHO_EOF' +} + +# Quote evaled strings. +for var in SHELL \ +ECHO \ +PATH_SEPARATOR \ +SED \ +GREP \ +EGREP \ +FGREP \ +LD \ +NM \ +LN_S \ +lt_SP2NL \ +lt_NL2SP \ +reload_flag \ +OBJDUMP \ +deplibs_check_method \ +file_magic_cmd \ +file_magic_glob \ +want_nocaseglob \ +DLLTOOL \ +sharedlib_from_linklib_cmd \ +AR \ +AR_FLAGS \ +archiver_list_spec \ +STRIP \ +RANLIB \ +CC \ +CFLAGS \ +compiler \ +lt_cv_sys_global_symbol_pipe \ +lt_cv_sys_global_symbol_to_cdecl \ +lt_cv_sys_global_symbol_to_c_name_address \ +lt_cv_sys_global_symbol_to_c_name_address_lib_prefix \ +nm_file_list_spec \ +lt_prog_compiler_no_builtin_flag \ +lt_prog_compiler_pic \ +lt_prog_compiler_wl \ +lt_prog_compiler_static \ +lt_cv_prog_compiler_c_o \ +need_locks \ +MANIFEST_TOOL \ +DSYMUTIL \ +NMEDIT \ +LIPO \ +OTOOL \ +OTOOL64 \ +shrext_cmds \ +export_dynamic_flag_spec \ +whole_archive_flag_spec \ +compiler_needs_object \ +with_gnu_ld \ +allow_undefined_flag \ +no_undefined_flag \ +hardcode_libdir_flag_spec \ +hardcode_libdir_separator \ +exclude_expsyms \ +include_expsyms \ +file_list_spec \ +variables_saved_for_relink \ +libname_spec \ +library_names_spec \ +soname_spec \ +install_override_mode \ +finish_eval \ +old_striplib \ +striplib; do + case \`eval \\\\\$ECHO \\\\""\\\\\$\$var"\\\\"\` in + *[\\\\\\\`\\"\\\$]*) + eval "lt_\$var=\\\\\\"\\\`\\\$ECHO \\"\\\$\$var\\" | \\\$SED \\"\\\$sed_quote_subst\\"\\\`\\\\\\"" + ;; + *) + eval "lt_\$var=\\\\\\"\\\$\$var\\\\\\"" + ;; + esac +done + +# Double-quote double-evaled strings. +for var in reload_cmds \ +old_postinstall_cmds \ +old_postuninstall_cmds \ +old_archive_cmds \ +extract_expsyms_cmds \ +old_archive_from_new_cmds \ +old_archive_from_expsyms_cmds \ +archive_cmds \ +archive_expsym_cmds \ +module_cmds \ +module_expsym_cmds \ +export_symbols_cmds \ +prelink_cmds \ +postlink_cmds \ +postinstall_cmds \ +postuninstall_cmds \ +finish_cmds \ +sys_lib_search_path_spec \ +sys_lib_dlsearch_path_spec; do + case \`eval \\\\\$ECHO \\\\""\\\\\$\$var"\\\\"\` in + *[\\\\\\\`\\"\\\$]*) + eval "lt_\$var=\\\\\\"\\\`\\\$ECHO \\"\\\$\$var\\" | \\\$SED -e \\"\\\$double_quote_subst\\" -e \\"\\\$sed_quote_subst\\" -e \\"\\\$delay_variable_subst\\"\\\`\\\\\\"" + ;; + *) + eval "lt_\$var=\\\\\\"\\\$\$var\\\\\\"" + ;; + esac +done + +ac_aux_dir='$ac_aux_dir' +xsi_shell='$xsi_shell' +lt_shell_append='$lt_shell_append' + +# See if we are running on zsh, and set the options which allow our +# commands through without removal of \ escapes INIT. +if test -n "\${ZSH_VERSION+set}" ; then + setopt NO_GLOB_SUBST +fi + + + PACKAGE='$PACKAGE' + VERSION='$VERSION' + TIMESTAMP='$TIMESTAMP' + RM='$RM' + ofile='$ofile' + + + # Capture the value of obsolete ALL_LINGUAS because we need it to compute # POFILES, UPDATEPOFILES, DUMMYPOFILES, GMOFILES, CATALOGS. But hide it # from automake < 1.5. @@ -9027,8 +17053,10 @@ case $ac_config_target in "config.h") CONFIG_HEADERS="$CONFIG_HEADERS config.h" ;; "depfiles") CONFIG_COMMANDS="$CONFIG_COMMANDS depfiles" ;; + "libtool") CONFIG_COMMANDS="$CONFIG_COMMANDS libtool" ;; "po-directories") CONFIG_COMMANDS="$CONFIG_COMMANDS po-directories" ;; "Makefile") CONFIG_FILES="$CONFIG_FILES Makefile" ;; + "gtkdatabox/Makefile") CONFIG_FILES="$CONFIG_FILES gtkdatabox/Makefile" ;; "src/Makefile") CONFIG_FILES="$CONFIG_FILES src/Makefile" ;; "po/Makefile.in") CONFIG_FILES="$CONFIG_FILES po/Makefile.in" ;; "doc/Makefile") CONFIG_FILES="$CONFIG_FILES doc/Makefile" ;; @@ -9734,6 +17762,636 @@ done } ;; + "libtool":C) + + # See if we are running on zsh, and set the options which allow our + # commands through without removal of \ escapes. + if test -n "${ZSH_VERSION+set}" ; then + setopt NO_GLOB_SUBST + fi + + cfgfile="${ofile}T" + trap "$RM \"$cfgfile\"; exit 1" 1 2 15 + $RM "$cfgfile" + + cat <<_LT_EOF >> "$cfgfile" +#! $SHELL + +# `$ECHO "$ofile" | sed 's%^.*/%%'` - Provide generalized library-building support services. +# Generated automatically by $as_me ($PACKAGE$TIMESTAMP) $VERSION +# Libtool was configured on host `(hostname || uname -n) 2>/dev/null | sed 1q`: +# NOTE: Changes made to this file will be lost: look at ltmain.sh. +# +# Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2003, 2004, 2005, +# 2006, 2007, 2008, 2009, 2010, 2011 Free Software +# Foundation, Inc. +# Written by Gordon Matzigkeit, 1996 +# +# This file is part of GNU Libtool. +# +# GNU Libtool is free software; you can redistribute it and/or +# modify it under the terms of the GNU General Public License as +# published by the Free Software Foundation; either version 2 of +# the License, or (at your option) any later version. +# +# As a special exception to the GNU General Public License, +# if you distribute this file as part of a program or library that +# is built using GNU Libtool, you may include this file under the +# same distribution terms that you use for the rest of that program. +# +# GNU Libtool 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 GNU Libtool; see the file COPYING. If not, a copy +# can be downloaded from http://www.gnu.org/licenses/gpl.html, or +# obtained by writing to the Free Software Foundation, Inc., +# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + + +# The names of the tagged configurations supported by this script. +available_tags="" + +# ### BEGIN LIBTOOL CONFIG + +# Which release of libtool.m4 was used? +macro_version=$macro_version +macro_revision=$macro_revision + +# Whether or not to build shared libraries. +build_libtool_libs=$enable_shared + +# Whether or not to build static libraries. +build_old_libs=$enable_static + +# What type of objects to build. +pic_mode=$pic_mode + +# Whether or not to optimize for fast installation. +fast_install=$enable_fast_install + +# Shell to use when invoking shell scripts. +SHELL=$lt_SHELL + +# An echo program that protects backslashes. +ECHO=$lt_ECHO + +# The PATH separator for the build system. +PATH_SEPARATOR=$lt_PATH_SEPARATOR + +# The host system. +host_alias=$host_alias +host=$host +host_os=$host_os + +# The build system. +build_alias=$build_alias +build=$build +build_os=$build_os + +# A sed program that does not truncate output. +SED=$lt_SED + +# Sed that helps us avoid accidentally triggering echo(1) options like -n. +Xsed="\$SED -e 1s/^X//" + +# A grep program that handles long lines. +GREP=$lt_GREP + +# An ERE matcher. +EGREP=$lt_EGREP + +# A literal string matcher. +FGREP=$lt_FGREP + +# A BSD- or MS-compatible name lister. +NM=$lt_NM + +# Whether we need soft or hard links. +LN_S=$lt_LN_S + +# What is the maximum length of a command? +max_cmd_len=$max_cmd_len + +# Object file suffix (normally "o"). +objext=$ac_objext + +# Executable file suffix (normally ""). +exeext=$exeext + +# whether the shell understands "unset". +lt_unset=$lt_unset + +# turn spaces into newlines. +SP2NL=$lt_lt_SP2NL + +# turn newlines into spaces. +NL2SP=$lt_lt_NL2SP + +# convert \$build file names to \$host format. +to_host_file_cmd=$lt_cv_to_host_file_cmd + +# convert \$build files to toolchain format. +to_tool_file_cmd=$lt_cv_to_tool_file_cmd + +# An object symbol dumper. +OBJDUMP=$lt_OBJDUMP + +# Method to check whether dependent libraries are shared objects. +deplibs_check_method=$lt_deplibs_check_method + +# Command to use when deplibs_check_method = "file_magic". +file_magic_cmd=$lt_file_magic_cmd + +# How to find potential files when deplibs_check_method = "file_magic". +file_magic_glob=$lt_file_magic_glob + +# Find potential files using nocaseglob when deplibs_check_method = "file_magic". +want_nocaseglob=$lt_want_nocaseglob + +# DLL creation program. +DLLTOOL=$lt_DLLTOOL + +# Command to associate shared and link libraries. +sharedlib_from_linklib_cmd=$lt_sharedlib_from_linklib_cmd + +# The archiver. +AR=$lt_AR + +# Flags to create an archive. +AR_FLAGS=$lt_AR_FLAGS + +# How to feed a file listing to the archiver. +archiver_list_spec=$lt_archiver_list_spec + +# A symbol stripping program. +STRIP=$lt_STRIP + +# Commands used to install an old-style archive. +RANLIB=$lt_RANLIB +old_postinstall_cmds=$lt_old_postinstall_cmds +old_postuninstall_cmds=$lt_old_postuninstall_cmds + +# Whether to use a lock for old archive extraction. +lock_old_archive_extraction=$lock_old_archive_extraction + +# A C compiler. +LTCC=$lt_CC + +# LTCC compiler flags. +LTCFLAGS=$lt_CFLAGS + +# Take the output of nm and produce a listing of raw symbols and C names. +global_symbol_pipe=$lt_lt_cv_sys_global_symbol_pipe + +# Transform the output of nm in a proper C declaration. +global_symbol_to_cdecl=$lt_lt_cv_sys_global_symbol_to_cdecl + +# Transform the output of nm in a C name address pair. +global_symbol_to_c_name_address=$lt_lt_cv_sys_global_symbol_to_c_name_address + +# Transform the output of nm in a C name address pair when lib prefix is needed. +global_symbol_to_c_name_address_lib_prefix=$lt_lt_cv_sys_global_symbol_to_c_name_address_lib_prefix + +# Specify filename containing input files for \$NM. +nm_file_list_spec=$lt_nm_file_list_spec + +# The root where to search for dependent libraries,and in which our libraries should be installed. +lt_sysroot=$lt_sysroot + +# The name of the directory that contains temporary libtool files. +objdir=$objdir + +# Used to examine libraries when file_magic_cmd begins with "file". +MAGIC_CMD=$MAGIC_CMD + +# Must we lock files when doing compilation? +need_locks=$lt_need_locks + +# Manifest tool. +MANIFEST_TOOL=$lt_MANIFEST_TOOL + +# Tool to manipulate archived DWARF debug symbol files on Mac OS X. +DSYMUTIL=$lt_DSYMUTIL + +# Tool to change global to local symbols on Mac OS X. +NMEDIT=$lt_NMEDIT + +# Tool to manipulate fat objects and archives on Mac OS X. +LIPO=$lt_LIPO + +# ldd/readelf like tool for Mach-O binaries on Mac OS X. +OTOOL=$lt_OTOOL + +# ldd/readelf like tool for 64 bit Mach-O binaries on Mac OS X 10.4. +OTOOL64=$lt_OTOOL64 + +# Old archive suffix (normally "a"). +libext=$libext + +# Shared library suffix (normally ".so"). +shrext_cmds=$lt_shrext_cmds + +# The commands to extract the exported symbol list from a shared archive. +extract_expsyms_cmds=$lt_extract_expsyms_cmds + +# Variables whose values should be saved in libtool wrapper scripts and +# restored at link time. +variables_saved_for_relink=$lt_variables_saved_for_relink + +# Do we need the "lib" prefix for modules? +need_lib_prefix=$need_lib_prefix + +# Do we need a version for libraries? +need_version=$need_version + +# Library versioning type. +version_type=$version_type + +# Shared library runtime path variable. +runpath_var=$runpath_var + +# Shared library path variable. +shlibpath_var=$shlibpath_var + +# Is shlibpath searched before the hard-coded library search path? +shlibpath_overrides_runpath=$shlibpath_overrides_runpath + +# Format of library name prefix. +libname_spec=$lt_libname_spec + +# List of archive names. First name is the real one, the rest are links. +# The last name is the one that the linker finds with -lNAME +library_names_spec=$lt_library_names_spec + +# The coded name of the library, if different from the real name. +soname_spec=$lt_soname_spec + +# Permission mode override for installation of shared libraries. +install_override_mode=$lt_install_override_mode + +# Command to use after installation of a shared archive. +postinstall_cmds=$lt_postinstall_cmds + +# Command to use after uninstallation of a shared archive. +postuninstall_cmds=$lt_postuninstall_cmds + +# Commands used to finish a libtool library installation in a directory. +finish_cmds=$lt_finish_cmds + +# As "finish_cmds", except a single script fragment to be evaled but +# not shown. +finish_eval=$lt_finish_eval + +# Whether we should hardcode library paths into libraries. +hardcode_into_libs=$hardcode_into_libs + +# Compile-time system search path for libraries. +sys_lib_search_path_spec=$lt_sys_lib_search_path_spec + +# Run-time system search path for libraries. +sys_lib_dlsearch_path_spec=$lt_sys_lib_dlsearch_path_spec + +# Whether dlopen is supported. +dlopen_support=$enable_dlopen + +# Whether dlopen of programs is supported. +dlopen_self=$enable_dlopen_self + +# Whether dlopen of statically linked programs is supported. +dlopen_self_static=$enable_dlopen_self_static + +# Commands to strip libraries. +old_striplib=$lt_old_striplib +striplib=$lt_striplib + + +# The linker used to build libraries. +LD=$lt_LD + +# How to create reloadable object files. +reload_flag=$lt_reload_flag +reload_cmds=$lt_reload_cmds + +# Commands used to build an old-style archive. +old_archive_cmds=$lt_old_archive_cmds + +# A language specific compiler. +CC=$lt_compiler + +# Is the compiler the GNU compiler? +with_gcc=$GCC + +# Compiler flag to turn off builtin functions. +no_builtin_flag=$lt_lt_prog_compiler_no_builtin_flag + +# Additional compiler flags for building library objects. +pic_flag=$lt_lt_prog_compiler_pic + +# How to pass a linker flag through the compiler. +wl=$lt_lt_prog_compiler_wl + +# Compiler flag to prevent dynamic linking. +link_static_flag=$lt_lt_prog_compiler_static + +# Does compiler simultaneously support -c and -o options? +compiler_c_o=$lt_lt_cv_prog_compiler_c_o + +# Whether or not to add -lc for building shared libraries. +build_libtool_need_lc=$archive_cmds_need_lc + +# Whether or not to disallow shared libs when runtime libs are static. +allow_libtool_libs_with_static_runtimes=$enable_shared_with_static_runtimes + +# Compiler flag to allow reflexive dlopens. +export_dynamic_flag_spec=$lt_export_dynamic_flag_spec + +# Compiler flag to generate shared objects directly from archives. +whole_archive_flag_spec=$lt_whole_archive_flag_spec + +# Whether the compiler copes with passing no objects directly. +compiler_needs_object=$lt_compiler_needs_object + +# Create an old-style archive from a shared archive. +old_archive_from_new_cmds=$lt_old_archive_from_new_cmds + +# Create a temporary old-style archive to link instead of a shared archive. +old_archive_from_expsyms_cmds=$lt_old_archive_from_expsyms_cmds + +# Commands used to build a shared archive. +archive_cmds=$lt_archive_cmds +archive_expsym_cmds=$lt_archive_expsym_cmds + +# Commands used to build a loadable module if different from building +# a shared archive. +module_cmds=$lt_module_cmds +module_expsym_cmds=$lt_module_expsym_cmds + +# Whether we are building with GNU ld or not. +with_gnu_ld=$lt_with_gnu_ld + +# Flag that allows shared libraries with undefined symbols to be built. +allow_undefined_flag=$lt_allow_undefined_flag + +# Flag that enforces no undefined symbols. +no_undefined_flag=$lt_no_undefined_flag + +# Flag to hardcode \$libdir into a binary during linking. +# This must work even if \$libdir does not exist +hardcode_libdir_flag_spec=$lt_hardcode_libdir_flag_spec + +# Whether we need a single "-rpath" flag with a separated argument. +hardcode_libdir_separator=$lt_hardcode_libdir_separator + +# Set to "yes" if using DIR/libNAME\${shared_ext} during linking hardcodes +# DIR into the resulting binary. +hardcode_direct=$hardcode_direct + +# Set to "yes" if using DIR/libNAME\${shared_ext} during linking hardcodes +# DIR into the resulting binary and the resulting library dependency is +# "absolute",i.e impossible to change by setting \${shlibpath_var} if the +# library is relocated. +hardcode_direct_absolute=$hardcode_direct_absolute + +# Set to "yes" if using the -LDIR flag during linking hardcodes DIR +# into the resulting binary. +hardcode_minus_L=$hardcode_minus_L + +# Set to "yes" if using SHLIBPATH_VAR=DIR during linking hardcodes DIR +# into the resulting binary. +hardcode_shlibpath_var=$hardcode_shlibpath_var + +# Set to "yes" if building a shared library automatically hardcodes DIR +# into the library and all subsequent libraries and executables linked +# against it. +hardcode_automatic=$hardcode_automatic + +# Set to yes if linker adds runtime paths of dependent libraries +# to runtime path list. +inherit_rpath=$inherit_rpath + +# Whether libtool must link a program against all its dependency libraries. +link_all_deplibs=$link_all_deplibs + +# Set to "yes" if exported symbols are required. +always_export_symbols=$always_export_symbols + +# The commands to list exported symbols. +export_symbols_cmds=$lt_export_symbols_cmds + +# Symbols that should not be listed in the preloaded symbols. +exclude_expsyms=$lt_exclude_expsyms + +# Symbols that must always be exported. +include_expsyms=$lt_include_expsyms + +# Commands necessary for linking programs (against libraries) with templates. +prelink_cmds=$lt_prelink_cmds + +# Commands necessary for finishing linking programs. +postlink_cmds=$lt_postlink_cmds + +# Specify filename containing input files. +file_list_spec=$lt_file_list_spec + +# How to hardcode a shared library path into an executable. +hardcode_action=$hardcode_action + +# ### END LIBTOOL CONFIG + +_LT_EOF + + case $host_os in + aix3*) + cat <<\_LT_EOF >> "$cfgfile" +# AIX sometimes has problems with the GCC collect2 program. For some +# reason, if we set the COLLECT_NAMES environment variable, the problems +# vanish in a puff of smoke. +if test "X${COLLECT_NAMES+set}" != Xset; then + COLLECT_NAMES= + export COLLECT_NAMES +fi +_LT_EOF + ;; + esac + + +ltmain="$ac_aux_dir/ltmain.sh" + + + # We use sed instead of cat because bash on DJGPP gets confused if + # if finds mixed CR/LF and LF-only lines. Since sed operates in + # text mode, it properly converts lines to CR/LF. This bash problem + # is reportedly fixed, but why not run on old versions too? + sed '$q' "$ltmain" >> "$cfgfile" \ + || (rm -f "$cfgfile"; exit 1) + + if test x"$xsi_shell" = xyes; then + sed -e '/^func_dirname ()$/,/^} # func_dirname /c\ +func_dirname ()\ +{\ +\ case ${1} in\ +\ */*) func_dirname_result="${1%/*}${2}" ;;\ +\ * ) func_dirname_result="${3}" ;;\ +\ esac\ +} # Extended-shell func_dirname implementation' "$cfgfile" > $cfgfile.tmp \ + && mv -f "$cfgfile.tmp" "$cfgfile" \ + || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") +test 0 -eq $? || _lt_function_replace_fail=: + + + sed -e '/^func_basename ()$/,/^} # func_basename /c\ +func_basename ()\ +{\ +\ func_basename_result="${1##*/}"\ +} # Extended-shell func_basename implementation' "$cfgfile" > $cfgfile.tmp \ + && mv -f "$cfgfile.tmp" "$cfgfile" \ + || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") +test 0 -eq $? || _lt_function_replace_fail=: + + + sed -e '/^func_dirname_and_basename ()$/,/^} # func_dirname_and_basename /c\ +func_dirname_and_basename ()\ +{\ +\ case ${1} in\ +\ */*) func_dirname_result="${1%/*}${2}" ;;\ +\ * ) func_dirname_result="${3}" ;;\ +\ esac\ +\ func_basename_result="${1##*/}"\ +} # Extended-shell func_dirname_and_basename implementation' "$cfgfile" > $cfgfile.tmp \ + && mv -f "$cfgfile.tmp" "$cfgfile" \ + || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") +test 0 -eq $? || _lt_function_replace_fail=: + + + sed -e '/^func_stripname ()$/,/^} # func_stripname /c\ +func_stripname ()\ +{\ +\ # pdksh 5.2.14 does not do ${X%$Y} correctly if both X and Y are\ +\ # positional parameters, so assign one to ordinary parameter first.\ +\ func_stripname_result=${3}\ +\ func_stripname_result=${func_stripname_result#"${1}"}\ +\ func_stripname_result=${func_stripname_result%"${2}"}\ +} # Extended-shell func_stripname implementation' "$cfgfile" > $cfgfile.tmp \ + && mv -f "$cfgfile.tmp" "$cfgfile" \ + || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") +test 0 -eq $? || _lt_function_replace_fail=: + + + sed -e '/^func_split_long_opt ()$/,/^} # func_split_long_opt /c\ +func_split_long_opt ()\ +{\ +\ func_split_long_opt_name=${1%%=*}\ +\ func_split_long_opt_arg=${1#*=}\ +} # Extended-shell func_split_long_opt implementation' "$cfgfile" > $cfgfile.tmp \ + && mv -f "$cfgfile.tmp" "$cfgfile" \ + || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") +test 0 -eq $? || _lt_function_replace_fail=: + + + sed -e '/^func_split_short_opt ()$/,/^} # func_split_short_opt /c\ +func_split_short_opt ()\ +{\ +\ func_split_short_opt_arg=${1#??}\ +\ func_split_short_opt_name=${1%"$func_split_short_opt_arg"}\ +} # Extended-shell func_split_short_opt implementation' "$cfgfile" > $cfgfile.tmp \ + && mv -f "$cfgfile.tmp" "$cfgfile" \ + || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") +test 0 -eq $? || _lt_function_replace_fail=: + + + sed -e '/^func_lo2o ()$/,/^} # func_lo2o /c\ +func_lo2o ()\ +{\ +\ case ${1} in\ +\ *.lo) func_lo2o_result=${1%.lo}.${objext} ;;\ +\ *) func_lo2o_result=${1} ;;\ +\ esac\ +} # Extended-shell func_lo2o implementation' "$cfgfile" > $cfgfile.tmp \ + && mv -f "$cfgfile.tmp" "$cfgfile" \ + || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") +test 0 -eq $? || _lt_function_replace_fail=: + + + sed -e '/^func_xform ()$/,/^} # func_xform /c\ +func_xform ()\ +{\ + func_xform_result=${1%.*}.lo\ +} # Extended-shell func_xform implementation' "$cfgfile" > $cfgfile.tmp \ + && mv -f "$cfgfile.tmp" "$cfgfile" \ + || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") +test 0 -eq $? || _lt_function_replace_fail=: + + + sed -e '/^func_arith ()$/,/^} # func_arith /c\ +func_arith ()\ +{\ + func_arith_result=$(( $* ))\ +} # Extended-shell func_arith implementation' "$cfgfile" > $cfgfile.tmp \ + && mv -f "$cfgfile.tmp" "$cfgfile" \ + || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") +test 0 -eq $? || _lt_function_replace_fail=: + + + sed -e '/^func_len ()$/,/^} # func_len /c\ +func_len ()\ +{\ + func_len_result=${#1}\ +} # Extended-shell func_len implementation' "$cfgfile" > $cfgfile.tmp \ + && mv -f "$cfgfile.tmp" "$cfgfile" \ + || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") +test 0 -eq $? || _lt_function_replace_fail=: + +fi + +if test x"$lt_shell_append" = xyes; then + sed -e '/^func_append ()$/,/^} # func_append /c\ +func_append ()\ +{\ + eval "${1}+=\\${2}"\ +} # Extended-shell func_append implementation' "$cfgfile" > $cfgfile.tmp \ + && mv -f "$cfgfile.tmp" "$cfgfile" \ + || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") +test 0 -eq $? || _lt_function_replace_fail=: + + + sed -e '/^func_append_quoted ()$/,/^} # func_append_quoted /c\ +func_append_quoted ()\ +{\ +\ func_quote_for_eval "${2}"\ +\ eval "${1}+=\\\\ \\$func_quote_for_eval_result"\ +} # Extended-shell func_append_quoted implementation' "$cfgfile" > $cfgfile.tmp \ + && mv -f "$cfgfile.tmp" "$cfgfile" \ + || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") +test 0 -eq $? || _lt_function_replace_fail=: + + + # Save a `func_append' function call where possible by direct use of '+=' + sed -e 's%func_append \([a-zA-Z_]\{1,\}\) "%\1+="%g' $cfgfile > $cfgfile.tmp \ + && mv -f "$cfgfile.tmp" "$cfgfile" \ + || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") + test 0 -eq $? || _lt_function_replace_fail=: +else + # Save a `func_append' function call even when '+=' is not available + sed -e 's%func_append \([a-zA-Z_]\{1,\}\) "%\1="$\1%g' $cfgfile > $cfgfile.tmp \ + && mv -f "$cfgfile.tmp" "$cfgfile" \ + || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") + test 0 -eq $? || _lt_function_replace_fail=: +fi + +if test x"$_lt_function_replace_fail" = x":"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Unable to substitute extended shell functions in $ofile" >&5 +$as_echo "$as_me: WARNING: Unable to substitute extended shell functions in $ofile" >&2;} +fi + + + mv -f "$cfgfile" "$ofile" || + (rm -f "$ofile" && cp "$cfgfile" "$ofile" && rm -f "$cfgfile") + chmod +x "$ofile" + + ;; "po-directories":C) for ac_file in $CONFIG_FILES; do # Support "outfile[:infile[:infile...]]" diff -Nru klavaro-1.9.9/configure.ac klavaro-3.00/configure.ac --- klavaro-1.9.9/configure.ac 2013-08-15 13:46:48.000000000 +0000 +++ klavaro-3.00/configure.ac 2014-01-21 23:25:15.000000000 +0000 @@ -1,34 +1,45 @@ dnl Process this file with autoconf to produce a configure script. AC_PREREQ([2.69]) -AC_INIT([klavaro],[1.9.9],[fefcas@gmail.com]) +AC_INIT([klavaro],[3.00],[fefcas@gmail.com]) AC_CONFIG_SRCDIR([config.h.in]) AC_CONFIG_HEADERS([config.h]) AM_INIT_AUTOMAKE([-Wall]) +AC_CONFIG_MACRO_DIR([m4]) +AM_PROG_AR +AM_PROG_LIBTOOL + AC_SEARCH_LIBS([strerror],[cposix]) AC_PROG_CC AC_PROG_INSTALL AC_PROG_MAKE_SET dnl For Windows, comment out this one (then do an "autoreconf"): -IT_PROG_INTLTOOL ([0.23]) -AC_CHECK_PROG([GTKBLDRCONV], [gtk-builder-convert], [gtk-builder-convert], [false]) +IT_PROG_INTLTOOL AC_HEADER_STDC -AC_CHECK_HEADERS([locale.h stdlib.h string.h unistd.h curl/curl.h gtkdatabox.h]) - -dnl For Linux: -pkg_modules="gtk+-2.0 >= 2.16.0" +AC_CHECK_HEADERS([locale.h stdlib.h string.h unistd.h curl/curl.h]) +dnl When GtkDataBox-GTK3 is available, check for it also: +dnl AC_CHECK_HEADERS([locale.h stdlib.h string.h unistd.h curl/curl.h gtkdatabox.h]) + +dnl m4_define([gtk_required_version], [2.16.0]) +m4_define([gtk_required_version], [3.8.0]) +m4_define([pango_required_version], [1.16.0]) +m4_define([cairo_required_version], [1.4.0]) + +PKG_CHECK_MODULES(GTK, [gtk+-3.0 >= [gtk_required_version]]) +PKG_CHECK_MODULES(GTK, [gdk-3.0 >= [gtk_required_version]]) +PKG_CHECK_MODULES(PANGO, [pango >= [pango_required_version]]) +PKG_CHECK_MODULES(CAIRO, [cairo >= [cairo_required_version]]) +AC_SUBST(GTK_CFLAGS) +AC_SUBST(GTK_LIBS) dnl For Windows: -dnl pkg_modules="gtk+-2.0 >= 2.16.0 gtkdatabox >= 0.9.1.1" - -PKG_CHECK_MODULES(PACKAGE, [$pkg_modules]) -AC_SUBST(PACKAGE_CFLAGS) -AC_SUBST(PACKAGE_LIBS) +dnl PKG_CHECK_MODULES(GTKDATABOX, [gtkdatabox >= 0.9.1.1]) -AC_CHECK_LIB([gtkdatabox], [gtk_databox_new]) AC_CHECK_LIB([curl], [curl_global_init]) AC_CHECK_LIB([m], [sqrt]) +dnl When GtkDataBox-GTK3 is available, check for it: +dnl AC_CHECK_LIB([gtkdatabox], [gtk_databox_new]) AC_FUNC_STRTOD AC_CHECK_FUNCS([memmove memset rint setlocale sqrt strcasecmp strchr strdup strerror strrchr strstr strtoul]) @@ -37,32 +48,30 @@ AC_SUBST(GETTEXT_PACKAGE) AC_DEFINE_UNQUOTED(GETTEXT_PACKAGE,"$GETTEXT_PACKAGE", [Gettext package.]) -dnl Add the languages which your application supports here. -ALL_LINGUAS="ar bg bn cs da de en_GB el eo eu es fr gl hu it kk ky nb nl pl pt_BR ru sv te uk ur vi wo zh_CN" AM_GNU_GETTEXT([external]) -AM_GNU_GETTEXT_VERSION([0.18]) -dnl AM_GLIB_GNU_GETTEXT +AM_GNU_GETTEXT_VERSION([0.18.3]) AM_CONDITIONAL(IS_WIN32, test `uname` = "MINGW32_NT-6.1") AM_CONDITIONAL(IS_POSIX, test `uname` != "MINGW32_NT-6.1" -a `uname` != "Darwin") AC_CONFIG_FILES([Makefile -src/Makefile -po/Makefile.in -doc/Makefile -data/Makefile -data/icons/Makefile -data/icons/hicolor/Makefile -data/icons/hicolor/16x16/Makefile -data/icons/hicolor/16x16/apps/Makefile -data/icons/hicolor/22x22/Makefile -data/icons/hicolor/22x22/apps/Makefile -data/icons/hicolor/24x24/Makefile -data/icons/hicolor/24x24/apps/Makefile -data/icons/hicolor/32x32/Makefile -data/icons/hicolor/32x32/apps/Makefile -data/icons/hicolor/48x48/Makefile -data/icons/hicolor/48x48/apps/Makefile + gtkdatabox/Makefile + src/Makefile + po/Makefile.in + doc/Makefile + data/Makefile + data/icons/Makefile + data/icons/hicolor/Makefile + data/icons/hicolor/16x16/Makefile + data/icons/hicolor/16x16/apps/Makefile + data/icons/hicolor/22x22/Makefile + data/icons/hicolor/22x22/apps/Makefile + data/icons/hicolor/24x24/Makefile + data/icons/hicolor/24x24/apps/Makefile + data/icons/hicolor/32x32/Makefile + data/icons/hicolor/32x32/apps/Makefile + data/icons/hicolor/48x48/Makefile + data/icons/hicolor/48x48/apps/Makefile ]) AC_OUTPUT diff -Nru klavaro-1.9.9/data/dvorak_us_prog.kbd klavaro-3.00/data/dvorak_us_prog.kbd --- klavaro-1.9.9/data/dvorak_us_prog.kbd 1970-01-01 00:00:00.000000000 +0000 +++ klavaro-3.00/data/dvorak_us_prog.kbd 2014-01-09 12:09:56.000000000 +0000 @@ -0,0 +1,8 @@ +$&[{}(=*)+]!# +;,.pyfgcrl/@ +aoeuidhtns-\ + 'qjkxbmwvz +~%7531902468` +:<>PYFGCRL?^ +AOEUIDHTNS_| + "QJKXBMWVZ diff -Nru klavaro-1.9.9/data/icons/hicolor/16x16/apps/Makefile.in klavaro-3.00/data/icons/hicolor/16x16/apps/Makefile.in --- klavaro-1.9.9/data/icons/hicolor/16x16/apps/Makefile.in 2013-08-15 13:46:56.000000000 +0000 +++ klavaro-3.00/data/icons/hicolor/16x16/apps/Makefile.in 2014-01-21 23:25:38.000000000 +0000 @@ -1,4 +1,4 @@ -# Makefile.in generated by automake 1.13.3 from Makefile.am. +# Makefile.in generated by automake 1.14.1 from Makefile.am. # @configure_input@ # Copyright (C) 1994-2013 Free Software Foundation, Inc. @@ -82,7 +82,14 @@ DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am \ $(top_srcdir)/mkinstalldirs ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 -am__aclocal_m4_deps = $(top_srcdir)/configure.ac +am__aclocal_m4_deps = $(top_srcdir)/m4/gettext.m4 \ + $(top_srcdir)/m4/iconv.m4 $(top_srcdir)/m4/intltool.m4 \ + $(top_srcdir)/m4/lib-ld.m4 $(top_srcdir)/m4/lib-link.m4 \ + $(top_srcdir)/m4/lib-prefix.m4 $(top_srcdir)/m4/libtool.m4 \ + $(top_srcdir)/m4/ltoptions.m4 $(top_srcdir)/m4/ltsugar.m4 \ + $(top_srcdir)/m4/ltversion.m4 $(top_srcdir)/m4/lt~obsolete.m4 \ + $(top_srcdir)/m4/nls.m4 $(top_srcdir)/m4/po.m4 \ + $(top_srcdir)/m4/progtest.m4 $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs @@ -143,10 +150,13 @@ ALL_LINGUAS = @ALL_LINGUAS@ AMTAR = @AMTAR@ AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ +AR = @AR@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ +CAIRO_CFLAGS = @CAIRO_CFLAGS@ +CAIRO_LIBS = @CAIRO_LIBS@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ @@ -156,17 +166,22 @@ DATADIRNAME = @DATADIRNAME@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ +DLLTOOL = @DLLTOOL@ +DSYMUTIL = @DSYMUTIL@ +DUMPBIN = @DUMPBIN@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EXEEXT = @EXEEXT@ +FGREP = @FGREP@ GETTEXT_MACRO_VERSION = @GETTEXT_MACRO_VERSION@ GETTEXT_PACKAGE = @GETTEXT_PACKAGE@ GMSGFMT = @GMSGFMT@ GMSGFMT_015 = @GMSGFMT_015@ GREP = @GREP@ -GTKBLDRCONV = @GTKBLDRCONV@ +GTK_CFLAGS = @GTK_CFLAGS@ +GTK_LIBS = @GTK_LIBS@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ @@ -182,35 +197,46 @@ INTLTOOL__v_MERGE_ = @INTLTOOL__v_MERGE_@ INTLTOOL__v_MERGE_0 = @INTLTOOL__v_MERGE_0@ INTL_MACOSX_LIBS = @INTL_MACOSX_LIBS@ +LD = @LD@ LDFLAGS = @LDFLAGS@ LIBICONV = @LIBICONV@ LIBINTL = @LIBINTL@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ +LIBTOOL = @LIBTOOL@ +LIPO = @LIPO@ +LN_S = @LN_S@ LTLIBICONV = @LTLIBICONV@ LTLIBINTL = @LTLIBINTL@ LTLIBOBJS = @LTLIBOBJS@ MAKEINFO = @MAKEINFO@ +MANIFEST_TOOL = @MANIFEST_TOOL@ MKDIR_P = @MKDIR_P@ MSGFMT = @MSGFMT@ MSGFMT_015 = @MSGFMT_015@ MSGMERGE = @MSGMERGE@ +NM = @NM@ +NMEDIT = @NMEDIT@ +OBJDUMP = @OBJDUMP@ OBJEXT = @OBJEXT@ +OTOOL = @OTOOL@ +OTOOL64 = @OTOOL64@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ -PACKAGE_CFLAGS = @PACKAGE_CFLAGS@ -PACKAGE_LIBS = @PACKAGE_LIBS@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ +PANGO_CFLAGS = @PANGO_CFLAGS@ +PANGO_LIBS = @PANGO_LIBS@ PATH_SEPARATOR = @PATH_SEPARATOR@ PKG_CONFIG = @PKG_CONFIG@ PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@ PKG_CONFIG_PATH = @PKG_CONFIG_PATH@ POSUB = @POSUB@ POW_LIB = @POW_LIB@ +RANLIB = @RANLIB@ SED = @SED@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ @@ -224,7 +250,9 @@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ +ac_ct_AR = @ac_ct_AR@ ac_ct_CC = @ac_ct_CC@ +ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ @@ -308,6 +336,12 @@ $(ACLOCAL_M4): $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(am__aclocal_m4_deps): + +mostlyclean-libtool: + -rm -f *.lo + +clean-libtool: + -rm -rf .libs _libs install-appiconDATA: $(appicon_DATA) @$(NORMAL_INSTALL) @list='$(appicon_DATA)'; test -n "$(appicondir)" || list=; \ @@ -405,7 +439,7 @@ @echo "it deletes files that may require special tools to rebuild." clean: clean-am -clean-am: clean-generic mostlyclean-am +clean-am: clean-generic clean-libtool mostlyclean-am distclean: distclean-am -rm -f Makefile @@ -457,7 +491,7 @@ mostlyclean: mostlyclean-am -mostlyclean-am: mostlyclean-generic +mostlyclean-am: mostlyclean-generic mostlyclean-libtool pdf: pdf-am @@ -471,17 +505,18 @@ .MAKE: install-am install-strip -.PHONY: all all-am check check-am clean clean-generic cscopelist-am \ - ctags-am distclean distclean-generic distdir dvi dvi-am html \ - html-am info info-am install install-am install-appiconDATA \ - install-data install-data-am install-dvi install-dvi-am \ - install-exec install-exec-am install-html install-html-am \ - install-info install-info-am install-man install-pdf \ - install-pdf-am install-ps install-ps-am install-strip \ - installcheck installcheck-am installdirs maintainer-clean \ - maintainer-clean-generic mostlyclean mostlyclean-generic pdf \ - pdf-am ps ps-am tags-am uninstall uninstall-am \ - uninstall-appiconDATA +.PHONY: all all-am check check-am clean clean-generic clean-libtool \ + cscopelist-am ctags-am distclean distclean-generic \ + distclean-libtool distdir dvi dvi-am html html-am info info-am \ + install install-am install-appiconDATA install-data \ + install-data-am install-dvi install-dvi-am install-exec \ + install-exec-am install-html install-html-am install-info \ + install-info-am install-man install-pdf install-pdf-am \ + install-ps install-ps-am install-strip installcheck \ + installcheck-am installdirs maintainer-clean \ + maintainer-clean-generic mostlyclean mostlyclean-generic \ + mostlyclean-libtool pdf pdf-am ps ps-am tags-am uninstall \ + uninstall-am uninstall-appiconDATA # Tell versions [3.59,3.63) of GNU make to not export all variables. diff -Nru klavaro-1.9.9/data/icons/hicolor/16x16/Makefile.in klavaro-3.00/data/icons/hicolor/16x16/Makefile.in --- klavaro-1.9.9/data/icons/hicolor/16x16/Makefile.in 2013-08-15 13:46:56.000000000 +0000 +++ klavaro-3.00/data/icons/hicolor/16x16/Makefile.in 2014-01-21 23:25:38.000000000 +0000 @@ -1,4 +1,4 @@ -# Makefile.in generated by automake 1.13.3 from Makefile.am. +# Makefile.in generated by automake 1.14.1 from Makefile.am. # @configure_input@ # Copyright (C) 1994-2013 Free Software Foundation, Inc. @@ -81,7 +81,14 @@ DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am \ $(top_srcdir)/mkinstalldirs ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 -am__aclocal_m4_deps = $(top_srcdir)/configure.ac +am__aclocal_m4_deps = $(top_srcdir)/m4/gettext.m4 \ + $(top_srcdir)/m4/iconv.m4 $(top_srcdir)/m4/intltool.m4 \ + $(top_srcdir)/m4/lib-ld.m4 $(top_srcdir)/m4/lib-link.m4 \ + $(top_srcdir)/m4/lib-prefix.m4 $(top_srcdir)/m4/libtool.m4 \ + $(top_srcdir)/m4/ltoptions.m4 $(top_srcdir)/m4/ltsugar.m4 \ + $(top_srcdir)/m4/ltversion.m4 $(top_srcdir)/m4/lt~obsolete.m4 \ + $(top_srcdir)/m4/nls.m4 $(top_srcdir)/m4/po.m4 \ + $(top_srcdir)/m4/progtest.m4 $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs @@ -173,10 +180,13 @@ ALL_LINGUAS = @ALL_LINGUAS@ AMTAR = @AMTAR@ AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ +AR = @AR@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ +CAIRO_CFLAGS = @CAIRO_CFLAGS@ +CAIRO_LIBS = @CAIRO_LIBS@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ @@ -186,17 +196,22 @@ DATADIRNAME = @DATADIRNAME@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ +DLLTOOL = @DLLTOOL@ +DSYMUTIL = @DSYMUTIL@ +DUMPBIN = @DUMPBIN@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EXEEXT = @EXEEXT@ +FGREP = @FGREP@ GETTEXT_MACRO_VERSION = @GETTEXT_MACRO_VERSION@ GETTEXT_PACKAGE = @GETTEXT_PACKAGE@ GMSGFMT = @GMSGFMT@ GMSGFMT_015 = @GMSGFMT_015@ GREP = @GREP@ -GTKBLDRCONV = @GTKBLDRCONV@ +GTK_CFLAGS = @GTK_CFLAGS@ +GTK_LIBS = @GTK_LIBS@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ @@ -212,35 +227,46 @@ INTLTOOL__v_MERGE_ = @INTLTOOL__v_MERGE_@ INTLTOOL__v_MERGE_0 = @INTLTOOL__v_MERGE_0@ INTL_MACOSX_LIBS = @INTL_MACOSX_LIBS@ +LD = @LD@ LDFLAGS = @LDFLAGS@ LIBICONV = @LIBICONV@ LIBINTL = @LIBINTL@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ +LIBTOOL = @LIBTOOL@ +LIPO = @LIPO@ +LN_S = @LN_S@ LTLIBICONV = @LTLIBICONV@ LTLIBINTL = @LTLIBINTL@ LTLIBOBJS = @LTLIBOBJS@ MAKEINFO = @MAKEINFO@ +MANIFEST_TOOL = @MANIFEST_TOOL@ MKDIR_P = @MKDIR_P@ MSGFMT = @MSGFMT@ MSGFMT_015 = @MSGFMT_015@ MSGMERGE = @MSGMERGE@ +NM = @NM@ +NMEDIT = @NMEDIT@ +OBJDUMP = @OBJDUMP@ OBJEXT = @OBJEXT@ +OTOOL = @OTOOL@ +OTOOL64 = @OTOOL64@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ -PACKAGE_CFLAGS = @PACKAGE_CFLAGS@ -PACKAGE_LIBS = @PACKAGE_LIBS@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ +PANGO_CFLAGS = @PANGO_CFLAGS@ +PANGO_LIBS = @PANGO_LIBS@ PATH_SEPARATOR = @PATH_SEPARATOR@ PKG_CONFIG = @PKG_CONFIG@ PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@ PKG_CONFIG_PATH = @PKG_CONFIG_PATH@ POSUB = @POSUB@ POW_LIB = @POW_LIB@ +RANLIB = @RANLIB@ SED = @SED@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ @@ -254,7 +280,9 @@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ +ac_ct_AR = @ac_ct_AR@ ac_ct_CC = @ac_ct_CC@ +ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ @@ -337,6 +365,12 @@ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(am__aclocal_m4_deps): +mostlyclean-libtool: + -rm -f *.lo + +clean-libtool: + -rm -rf .libs _libs + # This directory's subdirectories are mostly independent; you can cd # into them and run 'make' without going through this Makefile. # To change the values of 'make' variables: instead of editing Makefiles, @@ -528,7 +562,7 @@ @echo "it deletes files that may require special tools to rebuild." clean: clean-recursive -clean-am: clean-generic mostlyclean-am +clean-am: clean-generic clean-libtool mostlyclean-am distclean: distclean-recursive -rm -f Makefile @@ -580,7 +614,7 @@ mostlyclean: mostlyclean-recursive -mostlyclean-am: mostlyclean-generic +mostlyclean-am: mostlyclean-generic mostlyclean-libtool pdf: pdf-recursive @@ -595,16 +629,17 @@ .MAKE: $(am__recursive_targets) install-am install-strip .PHONY: $(am__recursive_targets) CTAGS GTAGS TAGS all all-am check \ - check-am clean clean-generic cscopelist-am ctags ctags-am \ - distclean distclean-generic distclean-tags distdir dvi dvi-am \ - html html-am info info-am install install-am install-data \ - install-data-am install-dvi install-dvi-am install-exec \ - install-exec-am install-html install-html-am install-info \ - install-info-am install-man install-pdf install-pdf-am \ - install-ps install-ps-am install-strip installcheck \ - installcheck-am installdirs installdirs-am maintainer-clean \ - maintainer-clean-generic mostlyclean mostlyclean-generic pdf \ - pdf-am ps ps-am tags tags-am uninstall uninstall-am + check-am clean clean-generic clean-libtool cscopelist-am ctags \ + ctags-am distclean distclean-generic distclean-libtool \ + distclean-tags distdir dvi dvi-am html html-am info info-am \ + install install-am install-data install-data-am install-dvi \ + install-dvi-am install-exec install-exec-am install-html \ + install-html-am install-info install-info-am install-man \ + install-pdf install-pdf-am install-ps install-ps-am \ + install-strip installcheck installcheck-am installdirs \ + installdirs-am maintainer-clean maintainer-clean-generic \ + mostlyclean mostlyclean-generic mostlyclean-libtool pdf pdf-am \ + ps ps-am tags tags-am uninstall uninstall-am # Tell versions [3.59,3.63) of GNU make to not export all variables. diff -Nru klavaro-1.9.9/data/icons/hicolor/22x22/apps/Makefile.in klavaro-3.00/data/icons/hicolor/22x22/apps/Makefile.in --- klavaro-1.9.9/data/icons/hicolor/22x22/apps/Makefile.in 2013-08-15 13:46:56.000000000 +0000 +++ klavaro-3.00/data/icons/hicolor/22x22/apps/Makefile.in 2014-01-21 23:25:38.000000000 +0000 @@ -1,4 +1,4 @@ -# Makefile.in generated by automake 1.13.3 from Makefile.am. +# Makefile.in generated by automake 1.14.1 from Makefile.am. # @configure_input@ # Copyright (C) 1994-2013 Free Software Foundation, Inc. @@ -82,7 +82,14 @@ DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am \ $(top_srcdir)/mkinstalldirs ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 -am__aclocal_m4_deps = $(top_srcdir)/configure.ac +am__aclocal_m4_deps = $(top_srcdir)/m4/gettext.m4 \ + $(top_srcdir)/m4/iconv.m4 $(top_srcdir)/m4/intltool.m4 \ + $(top_srcdir)/m4/lib-ld.m4 $(top_srcdir)/m4/lib-link.m4 \ + $(top_srcdir)/m4/lib-prefix.m4 $(top_srcdir)/m4/libtool.m4 \ + $(top_srcdir)/m4/ltoptions.m4 $(top_srcdir)/m4/ltsugar.m4 \ + $(top_srcdir)/m4/ltversion.m4 $(top_srcdir)/m4/lt~obsolete.m4 \ + $(top_srcdir)/m4/nls.m4 $(top_srcdir)/m4/po.m4 \ + $(top_srcdir)/m4/progtest.m4 $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs @@ -143,10 +150,13 @@ ALL_LINGUAS = @ALL_LINGUAS@ AMTAR = @AMTAR@ AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ +AR = @AR@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ +CAIRO_CFLAGS = @CAIRO_CFLAGS@ +CAIRO_LIBS = @CAIRO_LIBS@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ @@ -156,17 +166,22 @@ DATADIRNAME = @DATADIRNAME@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ +DLLTOOL = @DLLTOOL@ +DSYMUTIL = @DSYMUTIL@ +DUMPBIN = @DUMPBIN@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EXEEXT = @EXEEXT@ +FGREP = @FGREP@ GETTEXT_MACRO_VERSION = @GETTEXT_MACRO_VERSION@ GETTEXT_PACKAGE = @GETTEXT_PACKAGE@ GMSGFMT = @GMSGFMT@ GMSGFMT_015 = @GMSGFMT_015@ GREP = @GREP@ -GTKBLDRCONV = @GTKBLDRCONV@ +GTK_CFLAGS = @GTK_CFLAGS@ +GTK_LIBS = @GTK_LIBS@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ @@ -182,35 +197,46 @@ INTLTOOL__v_MERGE_ = @INTLTOOL__v_MERGE_@ INTLTOOL__v_MERGE_0 = @INTLTOOL__v_MERGE_0@ INTL_MACOSX_LIBS = @INTL_MACOSX_LIBS@ +LD = @LD@ LDFLAGS = @LDFLAGS@ LIBICONV = @LIBICONV@ LIBINTL = @LIBINTL@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ +LIBTOOL = @LIBTOOL@ +LIPO = @LIPO@ +LN_S = @LN_S@ LTLIBICONV = @LTLIBICONV@ LTLIBINTL = @LTLIBINTL@ LTLIBOBJS = @LTLIBOBJS@ MAKEINFO = @MAKEINFO@ +MANIFEST_TOOL = @MANIFEST_TOOL@ MKDIR_P = @MKDIR_P@ MSGFMT = @MSGFMT@ MSGFMT_015 = @MSGFMT_015@ MSGMERGE = @MSGMERGE@ +NM = @NM@ +NMEDIT = @NMEDIT@ +OBJDUMP = @OBJDUMP@ OBJEXT = @OBJEXT@ +OTOOL = @OTOOL@ +OTOOL64 = @OTOOL64@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ -PACKAGE_CFLAGS = @PACKAGE_CFLAGS@ -PACKAGE_LIBS = @PACKAGE_LIBS@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ +PANGO_CFLAGS = @PANGO_CFLAGS@ +PANGO_LIBS = @PANGO_LIBS@ PATH_SEPARATOR = @PATH_SEPARATOR@ PKG_CONFIG = @PKG_CONFIG@ PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@ PKG_CONFIG_PATH = @PKG_CONFIG_PATH@ POSUB = @POSUB@ POW_LIB = @POW_LIB@ +RANLIB = @RANLIB@ SED = @SED@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ @@ -224,7 +250,9 @@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ +ac_ct_AR = @ac_ct_AR@ ac_ct_CC = @ac_ct_CC@ +ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ @@ -308,6 +336,12 @@ $(ACLOCAL_M4): $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(am__aclocal_m4_deps): + +mostlyclean-libtool: + -rm -f *.lo + +clean-libtool: + -rm -rf .libs _libs install-appiconDATA: $(appicon_DATA) @$(NORMAL_INSTALL) @list='$(appicon_DATA)'; test -n "$(appicondir)" || list=; \ @@ -405,7 +439,7 @@ @echo "it deletes files that may require special tools to rebuild." clean: clean-am -clean-am: clean-generic mostlyclean-am +clean-am: clean-generic clean-libtool mostlyclean-am distclean: distclean-am -rm -f Makefile @@ -457,7 +491,7 @@ mostlyclean: mostlyclean-am -mostlyclean-am: mostlyclean-generic +mostlyclean-am: mostlyclean-generic mostlyclean-libtool pdf: pdf-am @@ -471,17 +505,18 @@ .MAKE: install-am install-strip -.PHONY: all all-am check check-am clean clean-generic cscopelist-am \ - ctags-am distclean distclean-generic distdir dvi dvi-am html \ - html-am info info-am install install-am install-appiconDATA \ - install-data install-data-am install-dvi install-dvi-am \ - install-exec install-exec-am install-html install-html-am \ - install-info install-info-am install-man install-pdf \ - install-pdf-am install-ps install-ps-am install-strip \ - installcheck installcheck-am installdirs maintainer-clean \ - maintainer-clean-generic mostlyclean mostlyclean-generic pdf \ - pdf-am ps ps-am tags-am uninstall uninstall-am \ - uninstall-appiconDATA +.PHONY: all all-am check check-am clean clean-generic clean-libtool \ + cscopelist-am ctags-am distclean distclean-generic \ + distclean-libtool distdir dvi dvi-am html html-am info info-am \ + install install-am install-appiconDATA install-data \ + install-data-am install-dvi install-dvi-am install-exec \ + install-exec-am install-html install-html-am install-info \ + install-info-am install-man install-pdf install-pdf-am \ + install-ps install-ps-am install-strip installcheck \ + installcheck-am installdirs maintainer-clean \ + maintainer-clean-generic mostlyclean mostlyclean-generic \ + mostlyclean-libtool pdf pdf-am ps ps-am tags-am uninstall \ + uninstall-am uninstall-appiconDATA # Tell versions [3.59,3.63) of GNU make to not export all variables. diff -Nru klavaro-1.9.9/data/icons/hicolor/22x22/Makefile.in klavaro-3.00/data/icons/hicolor/22x22/Makefile.in --- klavaro-1.9.9/data/icons/hicolor/22x22/Makefile.in 2013-08-15 13:46:56.000000000 +0000 +++ klavaro-3.00/data/icons/hicolor/22x22/Makefile.in 2014-01-21 23:25:38.000000000 +0000 @@ -1,4 +1,4 @@ -# Makefile.in generated by automake 1.13.3 from Makefile.am. +# Makefile.in generated by automake 1.14.1 from Makefile.am. # @configure_input@ # Copyright (C) 1994-2013 Free Software Foundation, Inc. @@ -81,7 +81,14 @@ DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am \ $(top_srcdir)/mkinstalldirs ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 -am__aclocal_m4_deps = $(top_srcdir)/configure.ac +am__aclocal_m4_deps = $(top_srcdir)/m4/gettext.m4 \ + $(top_srcdir)/m4/iconv.m4 $(top_srcdir)/m4/intltool.m4 \ + $(top_srcdir)/m4/lib-ld.m4 $(top_srcdir)/m4/lib-link.m4 \ + $(top_srcdir)/m4/lib-prefix.m4 $(top_srcdir)/m4/libtool.m4 \ + $(top_srcdir)/m4/ltoptions.m4 $(top_srcdir)/m4/ltsugar.m4 \ + $(top_srcdir)/m4/ltversion.m4 $(top_srcdir)/m4/lt~obsolete.m4 \ + $(top_srcdir)/m4/nls.m4 $(top_srcdir)/m4/po.m4 \ + $(top_srcdir)/m4/progtest.m4 $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs @@ -173,10 +180,13 @@ ALL_LINGUAS = @ALL_LINGUAS@ AMTAR = @AMTAR@ AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ +AR = @AR@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ +CAIRO_CFLAGS = @CAIRO_CFLAGS@ +CAIRO_LIBS = @CAIRO_LIBS@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ @@ -186,17 +196,22 @@ DATADIRNAME = @DATADIRNAME@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ +DLLTOOL = @DLLTOOL@ +DSYMUTIL = @DSYMUTIL@ +DUMPBIN = @DUMPBIN@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EXEEXT = @EXEEXT@ +FGREP = @FGREP@ GETTEXT_MACRO_VERSION = @GETTEXT_MACRO_VERSION@ GETTEXT_PACKAGE = @GETTEXT_PACKAGE@ GMSGFMT = @GMSGFMT@ GMSGFMT_015 = @GMSGFMT_015@ GREP = @GREP@ -GTKBLDRCONV = @GTKBLDRCONV@ +GTK_CFLAGS = @GTK_CFLAGS@ +GTK_LIBS = @GTK_LIBS@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ @@ -212,35 +227,46 @@ INTLTOOL__v_MERGE_ = @INTLTOOL__v_MERGE_@ INTLTOOL__v_MERGE_0 = @INTLTOOL__v_MERGE_0@ INTL_MACOSX_LIBS = @INTL_MACOSX_LIBS@ +LD = @LD@ LDFLAGS = @LDFLAGS@ LIBICONV = @LIBICONV@ LIBINTL = @LIBINTL@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ +LIBTOOL = @LIBTOOL@ +LIPO = @LIPO@ +LN_S = @LN_S@ LTLIBICONV = @LTLIBICONV@ LTLIBINTL = @LTLIBINTL@ LTLIBOBJS = @LTLIBOBJS@ MAKEINFO = @MAKEINFO@ +MANIFEST_TOOL = @MANIFEST_TOOL@ MKDIR_P = @MKDIR_P@ MSGFMT = @MSGFMT@ MSGFMT_015 = @MSGFMT_015@ MSGMERGE = @MSGMERGE@ +NM = @NM@ +NMEDIT = @NMEDIT@ +OBJDUMP = @OBJDUMP@ OBJEXT = @OBJEXT@ +OTOOL = @OTOOL@ +OTOOL64 = @OTOOL64@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ -PACKAGE_CFLAGS = @PACKAGE_CFLAGS@ -PACKAGE_LIBS = @PACKAGE_LIBS@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ +PANGO_CFLAGS = @PANGO_CFLAGS@ +PANGO_LIBS = @PANGO_LIBS@ PATH_SEPARATOR = @PATH_SEPARATOR@ PKG_CONFIG = @PKG_CONFIG@ PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@ PKG_CONFIG_PATH = @PKG_CONFIG_PATH@ POSUB = @POSUB@ POW_LIB = @POW_LIB@ +RANLIB = @RANLIB@ SED = @SED@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ @@ -254,7 +280,9 @@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ +ac_ct_AR = @ac_ct_AR@ ac_ct_CC = @ac_ct_CC@ +ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ @@ -337,6 +365,12 @@ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(am__aclocal_m4_deps): +mostlyclean-libtool: + -rm -f *.lo + +clean-libtool: + -rm -rf .libs _libs + # This directory's subdirectories are mostly independent; you can cd # into them and run 'make' without going through this Makefile. # To change the values of 'make' variables: instead of editing Makefiles, @@ -528,7 +562,7 @@ @echo "it deletes files that may require special tools to rebuild." clean: clean-recursive -clean-am: clean-generic mostlyclean-am +clean-am: clean-generic clean-libtool mostlyclean-am distclean: distclean-recursive -rm -f Makefile @@ -580,7 +614,7 @@ mostlyclean: mostlyclean-recursive -mostlyclean-am: mostlyclean-generic +mostlyclean-am: mostlyclean-generic mostlyclean-libtool pdf: pdf-recursive @@ -595,16 +629,17 @@ .MAKE: $(am__recursive_targets) install-am install-strip .PHONY: $(am__recursive_targets) CTAGS GTAGS TAGS all all-am check \ - check-am clean clean-generic cscopelist-am ctags ctags-am \ - distclean distclean-generic distclean-tags distdir dvi dvi-am \ - html html-am info info-am install install-am install-data \ - install-data-am install-dvi install-dvi-am install-exec \ - install-exec-am install-html install-html-am install-info \ - install-info-am install-man install-pdf install-pdf-am \ - install-ps install-ps-am install-strip installcheck \ - installcheck-am installdirs installdirs-am maintainer-clean \ - maintainer-clean-generic mostlyclean mostlyclean-generic pdf \ - pdf-am ps ps-am tags tags-am uninstall uninstall-am + check-am clean clean-generic clean-libtool cscopelist-am ctags \ + ctags-am distclean distclean-generic distclean-libtool \ + distclean-tags distdir dvi dvi-am html html-am info info-am \ + install install-am install-data install-data-am install-dvi \ + install-dvi-am install-exec install-exec-am install-html \ + install-html-am install-info install-info-am install-man \ + install-pdf install-pdf-am install-ps install-ps-am \ + install-strip installcheck installcheck-am installdirs \ + installdirs-am maintainer-clean maintainer-clean-generic \ + mostlyclean mostlyclean-generic mostlyclean-libtool pdf pdf-am \ + ps ps-am tags tags-am uninstall uninstall-am # Tell versions [3.59,3.63) of GNU make to not export all variables. diff -Nru klavaro-1.9.9/data/icons/hicolor/24x24/apps/Makefile.in klavaro-3.00/data/icons/hicolor/24x24/apps/Makefile.in --- klavaro-1.9.9/data/icons/hicolor/24x24/apps/Makefile.in 2013-08-15 13:46:56.000000000 +0000 +++ klavaro-3.00/data/icons/hicolor/24x24/apps/Makefile.in 2014-01-21 23:25:38.000000000 +0000 @@ -1,4 +1,4 @@ -# Makefile.in generated by automake 1.13.3 from Makefile.am. +# Makefile.in generated by automake 1.14.1 from Makefile.am. # @configure_input@ # Copyright (C) 1994-2013 Free Software Foundation, Inc. @@ -82,7 +82,14 @@ DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am \ $(top_srcdir)/mkinstalldirs ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 -am__aclocal_m4_deps = $(top_srcdir)/configure.ac +am__aclocal_m4_deps = $(top_srcdir)/m4/gettext.m4 \ + $(top_srcdir)/m4/iconv.m4 $(top_srcdir)/m4/intltool.m4 \ + $(top_srcdir)/m4/lib-ld.m4 $(top_srcdir)/m4/lib-link.m4 \ + $(top_srcdir)/m4/lib-prefix.m4 $(top_srcdir)/m4/libtool.m4 \ + $(top_srcdir)/m4/ltoptions.m4 $(top_srcdir)/m4/ltsugar.m4 \ + $(top_srcdir)/m4/ltversion.m4 $(top_srcdir)/m4/lt~obsolete.m4 \ + $(top_srcdir)/m4/nls.m4 $(top_srcdir)/m4/po.m4 \ + $(top_srcdir)/m4/progtest.m4 $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs @@ -143,10 +150,13 @@ ALL_LINGUAS = @ALL_LINGUAS@ AMTAR = @AMTAR@ AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ +AR = @AR@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ +CAIRO_CFLAGS = @CAIRO_CFLAGS@ +CAIRO_LIBS = @CAIRO_LIBS@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ @@ -156,17 +166,22 @@ DATADIRNAME = @DATADIRNAME@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ +DLLTOOL = @DLLTOOL@ +DSYMUTIL = @DSYMUTIL@ +DUMPBIN = @DUMPBIN@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EXEEXT = @EXEEXT@ +FGREP = @FGREP@ GETTEXT_MACRO_VERSION = @GETTEXT_MACRO_VERSION@ GETTEXT_PACKAGE = @GETTEXT_PACKAGE@ GMSGFMT = @GMSGFMT@ GMSGFMT_015 = @GMSGFMT_015@ GREP = @GREP@ -GTKBLDRCONV = @GTKBLDRCONV@ +GTK_CFLAGS = @GTK_CFLAGS@ +GTK_LIBS = @GTK_LIBS@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ @@ -182,35 +197,46 @@ INTLTOOL__v_MERGE_ = @INTLTOOL__v_MERGE_@ INTLTOOL__v_MERGE_0 = @INTLTOOL__v_MERGE_0@ INTL_MACOSX_LIBS = @INTL_MACOSX_LIBS@ +LD = @LD@ LDFLAGS = @LDFLAGS@ LIBICONV = @LIBICONV@ LIBINTL = @LIBINTL@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ +LIBTOOL = @LIBTOOL@ +LIPO = @LIPO@ +LN_S = @LN_S@ LTLIBICONV = @LTLIBICONV@ LTLIBINTL = @LTLIBINTL@ LTLIBOBJS = @LTLIBOBJS@ MAKEINFO = @MAKEINFO@ +MANIFEST_TOOL = @MANIFEST_TOOL@ MKDIR_P = @MKDIR_P@ MSGFMT = @MSGFMT@ MSGFMT_015 = @MSGFMT_015@ MSGMERGE = @MSGMERGE@ +NM = @NM@ +NMEDIT = @NMEDIT@ +OBJDUMP = @OBJDUMP@ OBJEXT = @OBJEXT@ +OTOOL = @OTOOL@ +OTOOL64 = @OTOOL64@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ -PACKAGE_CFLAGS = @PACKAGE_CFLAGS@ -PACKAGE_LIBS = @PACKAGE_LIBS@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ +PANGO_CFLAGS = @PANGO_CFLAGS@ +PANGO_LIBS = @PANGO_LIBS@ PATH_SEPARATOR = @PATH_SEPARATOR@ PKG_CONFIG = @PKG_CONFIG@ PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@ PKG_CONFIG_PATH = @PKG_CONFIG_PATH@ POSUB = @POSUB@ POW_LIB = @POW_LIB@ +RANLIB = @RANLIB@ SED = @SED@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ @@ -224,7 +250,9 @@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ +ac_ct_AR = @ac_ct_AR@ ac_ct_CC = @ac_ct_CC@ +ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ @@ -308,6 +336,12 @@ $(ACLOCAL_M4): $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(am__aclocal_m4_deps): + +mostlyclean-libtool: + -rm -f *.lo + +clean-libtool: + -rm -rf .libs _libs install-appiconDATA: $(appicon_DATA) @$(NORMAL_INSTALL) @list='$(appicon_DATA)'; test -n "$(appicondir)" || list=; \ @@ -405,7 +439,7 @@ @echo "it deletes files that may require special tools to rebuild." clean: clean-am -clean-am: clean-generic mostlyclean-am +clean-am: clean-generic clean-libtool mostlyclean-am distclean: distclean-am -rm -f Makefile @@ -457,7 +491,7 @@ mostlyclean: mostlyclean-am -mostlyclean-am: mostlyclean-generic +mostlyclean-am: mostlyclean-generic mostlyclean-libtool pdf: pdf-am @@ -471,17 +505,18 @@ .MAKE: install-am install-strip -.PHONY: all all-am check check-am clean clean-generic cscopelist-am \ - ctags-am distclean distclean-generic distdir dvi dvi-am html \ - html-am info info-am install install-am install-appiconDATA \ - install-data install-data-am install-dvi install-dvi-am \ - install-exec install-exec-am install-html install-html-am \ - install-info install-info-am install-man install-pdf \ - install-pdf-am install-ps install-ps-am install-strip \ - installcheck installcheck-am installdirs maintainer-clean \ - maintainer-clean-generic mostlyclean mostlyclean-generic pdf \ - pdf-am ps ps-am tags-am uninstall uninstall-am \ - uninstall-appiconDATA +.PHONY: all all-am check check-am clean clean-generic clean-libtool \ + cscopelist-am ctags-am distclean distclean-generic \ + distclean-libtool distdir dvi dvi-am html html-am info info-am \ + install install-am install-appiconDATA install-data \ + install-data-am install-dvi install-dvi-am install-exec \ + install-exec-am install-html install-html-am install-info \ + install-info-am install-man install-pdf install-pdf-am \ + install-ps install-ps-am install-strip installcheck \ + installcheck-am installdirs maintainer-clean \ + maintainer-clean-generic mostlyclean mostlyclean-generic \ + mostlyclean-libtool pdf pdf-am ps ps-am tags-am uninstall \ + uninstall-am uninstall-appiconDATA # Tell versions [3.59,3.63) of GNU make to not export all variables. diff -Nru klavaro-1.9.9/data/icons/hicolor/24x24/Makefile.in klavaro-3.00/data/icons/hicolor/24x24/Makefile.in --- klavaro-1.9.9/data/icons/hicolor/24x24/Makefile.in 2013-08-15 13:46:56.000000000 +0000 +++ klavaro-3.00/data/icons/hicolor/24x24/Makefile.in 2014-01-21 23:25:38.000000000 +0000 @@ -1,4 +1,4 @@ -# Makefile.in generated by automake 1.13.3 from Makefile.am. +# Makefile.in generated by automake 1.14.1 from Makefile.am. # @configure_input@ # Copyright (C) 1994-2013 Free Software Foundation, Inc. @@ -81,7 +81,14 @@ DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am \ $(top_srcdir)/mkinstalldirs ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 -am__aclocal_m4_deps = $(top_srcdir)/configure.ac +am__aclocal_m4_deps = $(top_srcdir)/m4/gettext.m4 \ + $(top_srcdir)/m4/iconv.m4 $(top_srcdir)/m4/intltool.m4 \ + $(top_srcdir)/m4/lib-ld.m4 $(top_srcdir)/m4/lib-link.m4 \ + $(top_srcdir)/m4/lib-prefix.m4 $(top_srcdir)/m4/libtool.m4 \ + $(top_srcdir)/m4/ltoptions.m4 $(top_srcdir)/m4/ltsugar.m4 \ + $(top_srcdir)/m4/ltversion.m4 $(top_srcdir)/m4/lt~obsolete.m4 \ + $(top_srcdir)/m4/nls.m4 $(top_srcdir)/m4/po.m4 \ + $(top_srcdir)/m4/progtest.m4 $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs @@ -173,10 +180,13 @@ ALL_LINGUAS = @ALL_LINGUAS@ AMTAR = @AMTAR@ AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ +AR = @AR@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ +CAIRO_CFLAGS = @CAIRO_CFLAGS@ +CAIRO_LIBS = @CAIRO_LIBS@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ @@ -186,17 +196,22 @@ DATADIRNAME = @DATADIRNAME@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ +DLLTOOL = @DLLTOOL@ +DSYMUTIL = @DSYMUTIL@ +DUMPBIN = @DUMPBIN@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EXEEXT = @EXEEXT@ +FGREP = @FGREP@ GETTEXT_MACRO_VERSION = @GETTEXT_MACRO_VERSION@ GETTEXT_PACKAGE = @GETTEXT_PACKAGE@ GMSGFMT = @GMSGFMT@ GMSGFMT_015 = @GMSGFMT_015@ GREP = @GREP@ -GTKBLDRCONV = @GTKBLDRCONV@ +GTK_CFLAGS = @GTK_CFLAGS@ +GTK_LIBS = @GTK_LIBS@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ @@ -212,35 +227,46 @@ INTLTOOL__v_MERGE_ = @INTLTOOL__v_MERGE_@ INTLTOOL__v_MERGE_0 = @INTLTOOL__v_MERGE_0@ INTL_MACOSX_LIBS = @INTL_MACOSX_LIBS@ +LD = @LD@ LDFLAGS = @LDFLAGS@ LIBICONV = @LIBICONV@ LIBINTL = @LIBINTL@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ +LIBTOOL = @LIBTOOL@ +LIPO = @LIPO@ +LN_S = @LN_S@ LTLIBICONV = @LTLIBICONV@ LTLIBINTL = @LTLIBINTL@ LTLIBOBJS = @LTLIBOBJS@ MAKEINFO = @MAKEINFO@ +MANIFEST_TOOL = @MANIFEST_TOOL@ MKDIR_P = @MKDIR_P@ MSGFMT = @MSGFMT@ MSGFMT_015 = @MSGFMT_015@ MSGMERGE = @MSGMERGE@ +NM = @NM@ +NMEDIT = @NMEDIT@ +OBJDUMP = @OBJDUMP@ OBJEXT = @OBJEXT@ +OTOOL = @OTOOL@ +OTOOL64 = @OTOOL64@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ -PACKAGE_CFLAGS = @PACKAGE_CFLAGS@ -PACKAGE_LIBS = @PACKAGE_LIBS@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ +PANGO_CFLAGS = @PANGO_CFLAGS@ +PANGO_LIBS = @PANGO_LIBS@ PATH_SEPARATOR = @PATH_SEPARATOR@ PKG_CONFIG = @PKG_CONFIG@ PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@ PKG_CONFIG_PATH = @PKG_CONFIG_PATH@ POSUB = @POSUB@ POW_LIB = @POW_LIB@ +RANLIB = @RANLIB@ SED = @SED@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ @@ -254,7 +280,9 @@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ +ac_ct_AR = @ac_ct_AR@ ac_ct_CC = @ac_ct_CC@ +ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ @@ -337,6 +365,12 @@ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(am__aclocal_m4_deps): +mostlyclean-libtool: + -rm -f *.lo + +clean-libtool: + -rm -rf .libs _libs + # This directory's subdirectories are mostly independent; you can cd # into them and run 'make' without going through this Makefile. # To change the values of 'make' variables: instead of editing Makefiles, @@ -528,7 +562,7 @@ @echo "it deletes files that may require special tools to rebuild." clean: clean-recursive -clean-am: clean-generic mostlyclean-am +clean-am: clean-generic clean-libtool mostlyclean-am distclean: distclean-recursive -rm -f Makefile @@ -580,7 +614,7 @@ mostlyclean: mostlyclean-recursive -mostlyclean-am: mostlyclean-generic +mostlyclean-am: mostlyclean-generic mostlyclean-libtool pdf: pdf-recursive @@ -595,16 +629,17 @@ .MAKE: $(am__recursive_targets) install-am install-strip .PHONY: $(am__recursive_targets) CTAGS GTAGS TAGS all all-am check \ - check-am clean clean-generic cscopelist-am ctags ctags-am \ - distclean distclean-generic distclean-tags distdir dvi dvi-am \ - html html-am info info-am install install-am install-data \ - install-data-am install-dvi install-dvi-am install-exec \ - install-exec-am install-html install-html-am install-info \ - install-info-am install-man install-pdf install-pdf-am \ - install-ps install-ps-am install-strip installcheck \ - installcheck-am installdirs installdirs-am maintainer-clean \ - maintainer-clean-generic mostlyclean mostlyclean-generic pdf \ - pdf-am ps ps-am tags tags-am uninstall uninstall-am + check-am clean clean-generic clean-libtool cscopelist-am ctags \ + ctags-am distclean distclean-generic distclean-libtool \ + distclean-tags distdir dvi dvi-am html html-am info info-am \ + install install-am install-data install-data-am install-dvi \ + install-dvi-am install-exec install-exec-am install-html \ + install-html-am install-info install-info-am install-man \ + install-pdf install-pdf-am install-ps install-ps-am \ + install-strip installcheck installcheck-am installdirs \ + installdirs-am maintainer-clean maintainer-clean-generic \ + mostlyclean mostlyclean-generic mostlyclean-libtool pdf pdf-am \ + ps ps-am tags tags-am uninstall uninstall-am # Tell versions [3.59,3.63) of GNU make to not export all variables. diff -Nru klavaro-1.9.9/data/icons/hicolor/32x32/apps/Makefile.in klavaro-3.00/data/icons/hicolor/32x32/apps/Makefile.in --- klavaro-1.9.9/data/icons/hicolor/32x32/apps/Makefile.in 2013-08-15 13:46:56.000000000 +0000 +++ klavaro-3.00/data/icons/hicolor/32x32/apps/Makefile.in 2014-01-21 23:25:39.000000000 +0000 @@ -1,4 +1,4 @@ -# Makefile.in generated by automake 1.13.3 from Makefile.am. +# Makefile.in generated by automake 1.14.1 from Makefile.am. # @configure_input@ # Copyright (C) 1994-2013 Free Software Foundation, Inc. @@ -82,7 +82,14 @@ DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am \ $(top_srcdir)/mkinstalldirs ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 -am__aclocal_m4_deps = $(top_srcdir)/configure.ac +am__aclocal_m4_deps = $(top_srcdir)/m4/gettext.m4 \ + $(top_srcdir)/m4/iconv.m4 $(top_srcdir)/m4/intltool.m4 \ + $(top_srcdir)/m4/lib-ld.m4 $(top_srcdir)/m4/lib-link.m4 \ + $(top_srcdir)/m4/lib-prefix.m4 $(top_srcdir)/m4/libtool.m4 \ + $(top_srcdir)/m4/ltoptions.m4 $(top_srcdir)/m4/ltsugar.m4 \ + $(top_srcdir)/m4/ltversion.m4 $(top_srcdir)/m4/lt~obsolete.m4 \ + $(top_srcdir)/m4/nls.m4 $(top_srcdir)/m4/po.m4 \ + $(top_srcdir)/m4/progtest.m4 $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs @@ -143,10 +150,13 @@ ALL_LINGUAS = @ALL_LINGUAS@ AMTAR = @AMTAR@ AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ +AR = @AR@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ +CAIRO_CFLAGS = @CAIRO_CFLAGS@ +CAIRO_LIBS = @CAIRO_LIBS@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ @@ -156,17 +166,22 @@ DATADIRNAME = @DATADIRNAME@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ +DLLTOOL = @DLLTOOL@ +DSYMUTIL = @DSYMUTIL@ +DUMPBIN = @DUMPBIN@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EXEEXT = @EXEEXT@ +FGREP = @FGREP@ GETTEXT_MACRO_VERSION = @GETTEXT_MACRO_VERSION@ GETTEXT_PACKAGE = @GETTEXT_PACKAGE@ GMSGFMT = @GMSGFMT@ GMSGFMT_015 = @GMSGFMT_015@ GREP = @GREP@ -GTKBLDRCONV = @GTKBLDRCONV@ +GTK_CFLAGS = @GTK_CFLAGS@ +GTK_LIBS = @GTK_LIBS@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ @@ -182,35 +197,46 @@ INTLTOOL__v_MERGE_ = @INTLTOOL__v_MERGE_@ INTLTOOL__v_MERGE_0 = @INTLTOOL__v_MERGE_0@ INTL_MACOSX_LIBS = @INTL_MACOSX_LIBS@ +LD = @LD@ LDFLAGS = @LDFLAGS@ LIBICONV = @LIBICONV@ LIBINTL = @LIBINTL@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ +LIBTOOL = @LIBTOOL@ +LIPO = @LIPO@ +LN_S = @LN_S@ LTLIBICONV = @LTLIBICONV@ LTLIBINTL = @LTLIBINTL@ LTLIBOBJS = @LTLIBOBJS@ MAKEINFO = @MAKEINFO@ +MANIFEST_TOOL = @MANIFEST_TOOL@ MKDIR_P = @MKDIR_P@ MSGFMT = @MSGFMT@ MSGFMT_015 = @MSGFMT_015@ MSGMERGE = @MSGMERGE@ +NM = @NM@ +NMEDIT = @NMEDIT@ +OBJDUMP = @OBJDUMP@ OBJEXT = @OBJEXT@ +OTOOL = @OTOOL@ +OTOOL64 = @OTOOL64@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ -PACKAGE_CFLAGS = @PACKAGE_CFLAGS@ -PACKAGE_LIBS = @PACKAGE_LIBS@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ +PANGO_CFLAGS = @PANGO_CFLAGS@ +PANGO_LIBS = @PANGO_LIBS@ PATH_SEPARATOR = @PATH_SEPARATOR@ PKG_CONFIG = @PKG_CONFIG@ PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@ PKG_CONFIG_PATH = @PKG_CONFIG_PATH@ POSUB = @POSUB@ POW_LIB = @POW_LIB@ +RANLIB = @RANLIB@ SED = @SED@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ @@ -224,7 +250,9 @@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ +ac_ct_AR = @ac_ct_AR@ ac_ct_CC = @ac_ct_CC@ +ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ @@ -308,6 +336,12 @@ $(ACLOCAL_M4): $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(am__aclocal_m4_deps): + +mostlyclean-libtool: + -rm -f *.lo + +clean-libtool: + -rm -rf .libs _libs install-appiconDATA: $(appicon_DATA) @$(NORMAL_INSTALL) @list='$(appicon_DATA)'; test -n "$(appicondir)" || list=; \ @@ -405,7 +439,7 @@ @echo "it deletes files that may require special tools to rebuild." clean: clean-am -clean-am: clean-generic mostlyclean-am +clean-am: clean-generic clean-libtool mostlyclean-am distclean: distclean-am -rm -f Makefile @@ -457,7 +491,7 @@ mostlyclean: mostlyclean-am -mostlyclean-am: mostlyclean-generic +mostlyclean-am: mostlyclean-generic mostlyclean-libtool pdf: pdf-am @@ -471,17 +505,18 @@ .MAKE: install-am install-strip -.PHONY: all all-am check check-am clean clean-generic cscopelist-am \ - ctags-am distclean distclean-generic distdir dvi dvi-am html \ - html-am info info-am install install-am install-appiconDATA \ - install-data install-data-am install-dvi install-dvi-am \ - install-exec install-exec-am install-html install-html-am \ - install-info install-info-am install-man install-pdf \ - install-pdf-am install-ps install-ps-am install-strip \ - installcheck installcheck-am installdirs maintainer-clean \ - maintainer-clean-generic mostlyclean mostlyclean-generic pdf \ - pdf-am ps ps-am tags-am uninstall uninstall-am \ - uninstall-appiconDATA +.PHONY: all all-am check check-am clean clean-generic clean-libtool \ + cscopelist-am ctags-am distclean distclean-generic \ + distclean-libtool distdir dvi dvi-am html html-am info info-am \ + install install-am install-appiconDATA install-data \ + install-data-am install-dvi install-dvi-am install-exec \ + install-exec-am install-html install-html-am install-info \ + install-info-am install-man install-pdf install-pdf-am \ + install-ps install-ps-am install-strip installcheck \ + installcheck-am installdirs maintainer-clean \ + maintainer-clean-generic mostlyclean mostlyclean-generic \ + mostlyclean-libtool pdf pdf-am ps ps-am tags-am uninstall \ + uninstall-am uninstall-appiconDATA # Tell versions [3.59,3.63) of GNU make to not export all variables. diff -Nru klavaro-1.9.9/data/icons/hicolor/32x32/Makefile.in klavaro-3.00/data/icons/hicolor/32x32/Makefile.in --- klavaro-1.9.9/data/icons/hicolor/32x32/Makefile.in 2013-08-15 13:46:56.000000000 +0000 +++ klavaro-3.00/data/icons/hicolor/32x32/Makefile.in 2014-01-21 23:25:39.000000000 +0000 @@ -1,4 +1,4 @@ -# Makefile.in generated by automake 1.13.3 from Makefile.am. +# Makefile.in generated by automake 1.14.1 from Makefile.am. # @configure_input@ # Copyright (C) 1994-2013 Free Software Foundation, Inc. @@ -81,7 +81,14 @@ DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am \ $(top_srcdir)/mkinstalldirs ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 -am__aclocal_m4_deps = $(top_srcdir)/configure.ac +am__aclocal_m4_deps = $(top_srcdir)/m4/gettext.m4 \ + $(top_srcdir)/m4/iconv.m4 $(top_srcdir)/m4/intltool.m4 \ + $(top_srcdir)/m4/lib-ld.m4 $(top_srcdir)/m4/lib-link.m4 \ + $(top_srcdir)/m4/lib-prefix.m4 $(top_srcdir)/m4/libtool.m4 \ + $(top_srcdir)/m4/ltoptions.m4 $(top_srcdir)/m4/ltsugar.m4 \ + $(top_srcdir)/m4/ltversion.m4 $(top_srcdir)/m4/lt~obsolete.m4 \ + $(top_srcdir)/m4/nls.m4 $(top_srcdir)/m4/po.m4 \ + $(top_srcdir)/m4/progtest.m4 $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs @@ -173,10 +180,13 @@ ALL_LINGUAS = @ALL_LINGUAS@ AMTAR = @AMTAR@ AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ +AR = @AR@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ +CAIRO_CFLAGS = @CAIRO_CFLAGS@ +CAIRO_LIBS = @CAIRO_LIBS@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ @@ -186,17 +196,22 @@ DATADIRNAME = @DATADIRNAME@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ +DLLTOOL = @DLLTOOL@ +DSYMUTIL = @DSYMUTIL@ +DUMPBIN = @DUMPBIN@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EXEEXT = @EXEEXT@ +FGREP = @FGREP@ GETTEXT_MACRO_VERSION = @GETTEXT_MACRO_VERSION@ GETTEXT_PACKAGE = @GETTEXT_PACKAGE@ GMSGFMT = @GMSGFMT@ GMSGFMT_015 = @GMSGFMT_015@ GREP = @GREP@ -GTKBLDRCONV = @GTKBLDRCONV@ +GTK_CFLAGS = @GTK_CFLAGS@ +GTK_LIBS = @GTK_LIBS@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ @@ -212,35 +227,46 @@ INTLTOOL__v_MERGE_ = @INTLTOOL__v_MERGE_@ INTLTOOL__v_MERGE_0 = @INTLTOOL__v_MERGE_0@ INTL_MACOSX_LIBS = @INTL_MACOSX_LIBS@ +LD = @LD@ LDFLAGS = @LDFLAGS@ LIBICONV = @LIBICONV@ LIBINTL = @LIBINTL@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ +LIBTOOL = @LIBTOOL@ +LIPO = @LIPO@ +LN_S = @LN_S@ LTLIBICONV = @LTLIBICONV@ LTLIBINTL = @LTLIBINTL@ LTLIBOBJS = @LTLIBOBJS@ MAKEINFO = @MAKEINFO@ +MANIFEST_TOOL = @MANIFEST_TOOL@ MKDIR_P = @MKDIR_P@ MSGFMT = @MSGFMT@ MSGFMT_015 = @MSGFMT_015@ MSGMERGE = @MSGMERGE@ +NM = @NM@ +NMEDIT = @NMEDIT@ +OBJDUMP = @OBJDUMP@ OBJEXT = @OBJEXT@ +OTOOL = @OTOOL@ +OTOOL64 = @OTOOL64@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ -PACKAGE_CFLAGS = @PACKAGE_CFLAGS@ -PACKAGE_LIBS = @PACKAGE_LIBS@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ +PANGO_CFLAGS = @PANGO_CFLAGS@ +PANGO_LIBS = @PANGO_LIBS@ PATH_SEPARATOR = @PATH_SEPARATOR@ PKG_CONFIG = @PKG_CONFIG@ PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@ PKG_CONFIG_PATH = @PKG_CONFIG_PATH@ POSUB = @POSUB@ POW_LIB = @POW_LIB@ +RANLIB = @RANLIB@ SED = @SED@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ @@ -254,7 +280,9 @@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ +ac_ct_AR = @ac_ct_AR@ ac_ct_CC = @ac_ct_CC@ +ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ @@ -337,6 +365,12 @@ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(am__aclocal_m4_deps): +mostlyclean-libtool: + -rm -f *.lo + +clean-libtool: + -rm -rf .libs _libs + # This directory's subdirectories are mostly independent; you can cd # into them and run 'make' without going through this Makefile. # To change the values of 'make' variables: instead of editing Makefiles, @@ -528,7 +562,7 @@ @echo "it deletes files that may require special tools to rebuild." clean: clean-recursive -clean-am: clean-generic mostlyclean-am +clean-am: clean-generic clean-libtool mostlyclean-am distclean: distclean-recursive -rm -f Makefile @@ -580,7 +614,7 @@ mostlyclean: mostlyclean-recursive -mostlyclean-am: mostlyclean-generic +mostlyclean-am: mostlyclean-generic mostlyclean-libtool pdf: pdf-recursive @@ -595,16 +629,17 @@ .MAKE: $(am__recursive_targets) install-am install-strip .PHONY: $(am__recursive_targets) CTAGS GTAGS TAGS all all-am check \ - check-am clean clean-generic cscopelist-am ctags ctags-am \ - distclean distclean-generic distclean-tags distdir dvi dvi-am \ - html html-am info info-am install install-am install-data \ - install-data-am install-dvi install-dvi-am install-exec \ - install-exec-am install-html install-html-am install-info \ - install-info-am install-man install-pdf install-pdf-am \ - install-ps install-ps-am install-strip installcheck \ - installcheck-am installdirs installdirs-am maintainer-clean \ - maintainer-clean-generic mostlyclean mostlyclean-generic pdf \ - pdf-am ps ps-am tags tags-am uninstall uninstall-am + check-am clean clean-generic clean-libtool cscopelist-am ctags \ + ctags-am distclean distclean-generic distclean-libtool \ + distclean-tags distdir dvi dvi-am html html-am info info-am \ + install install-am install-data install-data-am install-dvi \ + install-dvi-am install-exec install-exec-am install-html \ + install-html-am install-info install-info-am install-man \ + install-pdf install-pdf-am install-ps install-ps-am \ + install-strip installcheck installcheck-am installdirs \ + installdirs-am maintainer-clean maintainer-clean-generic \ + mostlyclean mostlyclean-generic mostlyclean-libtool pdf pdf-am \ + ps ps-am tags tags-am uninstall uninstall-am # Tell versions [3.59,3.63) of GNU make to not export all variables. diff -Nru klavaro-1.9.9/data/icons/hicolor/48x48/apps/Makefile.in klavaro-3.00/data/icons/hicolor/48x48/apps/Makefile.in --- klavaro-1.9.9/data/icons/hicolor/48x48/apps/Makefile.in 2013-08-15 13:46:56.000000000 +0000 +++ klavaro-3.00/data/icons/hicolor/48x48/apps/Makefile.in 2014-01-21 23:25:39.000000000 +0000 @@ -1,4 +1,4 @@ -# Makefile.in generated by automake 1.13.3 from Makefile.am. +# Makefile.in generated by automake 1.14.1 from Makefile.am. # @configure_input@ # Copyright (C) 1994-2013 Free Software Foundation, Inc. @@ -82,7 +82,14 @@ DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am \ $(top_srcdir)/mkinstalldirs ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 -am__aclocal_m4_deps = $(top_srcdir)/configure.ac +am__aclocal_m4_deps = $(top_srcdir)/m4/gettext.m4 \ + $(top_srcdir)/m4/iconv.m4 $(top_srcdir)/m4/intltool.m4 \ + $(top_srcdir)/m4/lib-ld.m4 $(top_srcdir)/m4/lib-link.m4 \ + $(top_srcdir)/m4/lib-prefix.m4 $(top_srcdir)/m4/libtool.m4 \ + $(top_srcdir)/m4/ltoptions.m4 $(top_srcdir)/m4/ltsugar.m4 \ + $(top_srcdir)/m4/ltversion.m4 $(top_srcdir)/m4/lt~obsolete.m4 \ + $(top_srcdir)/m4/nls.m4 $(top_srcdir)/m4/po.m4 \ + $(top_srcdir)/m4/progtest.m4 $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs @@ -143,10 +150,13 @@ ALL_LINGUAS = @ALL_LINGUAS@ AMTAR = @AMTAR@ AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ +AR = @AR@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ +CAIRO_CFLAGS = @CAIRO_CFLAGS@ +CAIRO_LIBS = @CAIRO_LIBS@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ @@ -156,17 +166,22 @@ DATADIRNAME = @DATADIRNAME@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ +DLLTOOL = @DLLTOOL@ +DSYMUTIL = @DSYMUTIL@ +DUMPBIN = @DUMPBIN@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EXEEXT = @EXEEXT@ +FGREP = @FGREP@ GETTEXT_MACRO_VERSION = @GETTEXT_MACRO_VERSION@ GETTEXT_PACKAGE = @GETTEXT_PACKAGE@ GMSGFMT = @GMSGFMT@ GMSGFMT_015 = @GMSGFMT_015@ GREP = @GREP@ -GTKBLDRCONV = @GTKBLDRCONV@ +GTK_CFLAGS = @GTK_CFLAGS@ +GTK_LIBS = @GTK_LIBS@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ @@ -182,35 +197,46 @@ INTLTOOL__v_MERGE_ = @INTLTOOL__v_MERGE_@ INTLTOOL__v_MERGE_0 = @INTLTOOL__v_MERGE_0@ INTL_MACOSX_LIBS = @INTL_MACOSX_LIBS@ +LD = @LD@ LDFLAGS = @LDFLAGS@ LIBICONV = @LIBICONV@ LIBINTL = @LIBINTL@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ +LIBTOOL = @LIBTOOL@ +LIPO = @LIPO@ +LN_S = @LN_S@ LTLIBICONV = @LTLIBICONV@ LTLIBINTL = @LTLIBINTL@ LTLIBOBJS = @LTLIBOBJS@ MAKEINFO = @MAKEINFO@ +MANIFEST_TOOL = @MANIFEST_TOOL@ MKDIR_P = @MKDIR_P@ MSGFMT = @MSGFMT@ MSGFMT_015 = @MSGFMT_015@ MSGMERGE = @MSGMERGE@ +NM = @NM@ +NMEDIT = @NMEDIT@ +OBJDUMP = @OBJDUMP@ OBJEXT = @OBJEXT@ +OTOOL = @OTOOL@ +OTOOL64 = @OTOOL64@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ -PACKAGE_CFLAGS = @PACKAGE_CFLAGS@ -PACKAGE_LIBS = @PACKAGE_LIBS@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ +PANGO_CFLAGS = @PANGO_CFLAGS@ +PANGO_LIBS = @PANGO_LIBS@ PATH_SEPARATOR = @PATH_SEPARATOR@ PKG_CONFIG = @PKG_CONFIG@ PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@ PKG_CONFIG_PATH = @PKG_CONFIG_PATH@ POSUB = @POSUB@ POW_LIB = @POW_LIB@ +RANLIB = @RANLIB@ SED = @SED@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ @@ -224,7 +250,9 @@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ +ac_ct_AR = @ac_ct_AR@ ac_ct_CC = @ac_ct_CC@ +ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ @@ -308,6 +336,12 @@ $(ACLOCAL_M4): $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(am__aclocal_m4_deps): + +mostlyclean-libtool: + -rm -f *.lo + +clean-libtool: + -rm -rf .libs _libs install-appiconDATA: $(appicon_DATA) @$(NORMAL_INSTALL) @list='$(appicon_DATA)'; test -n "$(appicondir)" || list=; \ @@ -405,7 +439,7 @@ @echo "it deletes files that may require special tools to rebuild." clean: clean-am -clean-am: clean-generic mostlyclean-am +clean-am: clean-generic clean-libtool mostlyclean-am distclean: distclean-am -rm -f Makefile @@ -457,7 +491,7 @@ mostlyclean: mostlyclean-am -mostlyclean-am: mostlyclean-generic +mostlyclean-am: mostlyclean-generic mostlyclean-libtool pdf: pdf-am @@ -471,17 +505,18 @@ .MAKE: install-am install-strip -.PHONY: all all-am check check-am clean clean-generic cscopelist-am \ - ctags-am distclean distclean-generic distdir dvi dvi-am html \ - html-am info info-am install install-am install-appiconDATA \ - install-data install-data-am install-dvi install-dvi-am \ - install-exec install-exec-am install-html install-html-am \ - install-info install-info-am install-man install-pdf \ - install-pdf-am install-ps install-ps-am install-strip \ - installcheck installcheck-am installdirs maintainer-clean \ - maintainer-clean-generic mostlyclean mostlyclean-generic pdf \ - pdf-am ps ps-am tags-am uninstall uninstall-am \ - uninstall-appiconDATA +.PHONY: all all-am check check-am clean clean-generic clean-libtool \ + cscopelist-am ctags-am distclean distclean-generic \ + distclean-libtool distdir dvi dvi-am html html-am info info-am \ + install install-am install-appiconDATA install-data \ + install-data-am install-dvi install-dvi-am install-exec \ + install-exec-am install-html install-html-am install-info \ + install-info-am install-man install-pdf install-pdf-am \ + install-ps install-ps-am install-strip installcheck \ + installcheck-am installdirs maintainer-clean \ + maintainer-clean-generic mostlyclean mostlyclean-generic \ + mostlyclean-libtool pdf pdf-am ps ps-am tags-am uninstall \ + uninstall-am uninstall-appiconDATA # Tell versions [3.59,3.63) of GNU make to not export all variables. diff -Nru klavaro-1.9.9/data/icons/hicolor/48x48/Makefile.in klavaro-3.00/data/icons/hicolor/48x48/Makefile.in --- klavaro-1.9.9/data/icons/hicolor/48x48/Makefile.in 2013-08-15 13:46:56.000000000 +0000 +++ klavaro-3.00/data/icons/hicolor/48x48/Makefile.in 2014-01-21 23:25:39.000000000 +0000 @@ -1,4 +1,4 @@ -# Makefile.in generated by automake 1.13.3 from Makefile.am. +# Makefile.in generated by automake 1.14.1 from Makefile.am. # @configure_input@ # Copyright (C) 1994-2013 Free Software Foundation, Inc. @@ -81,7 +81,14 @@ DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am \ $(top_srcdir)/mkinstalldirs ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 -am__aclocal_m4_deps = $(top_srcdir)/configure.ac +am__aclocal_m4_deps = $(top_srcdir)/m4/gettext.m4 \ + $(top_srcdir)/m4/iconv.m4 $(top_srcdir)/m4/intltool.m4 \ + $(top_srcdir)/m4/lib-ld.m4 $(top_srcdir)/m4/lib-link.m4 \ + $(top_srcdir)/m4/lib-prefix.m4 $(top_srcdir)/m4/libtool.m4 \ + $(top_srcdir)/m4/ltoptions.m4 $(top_srcdir)/m4/ltsugar.m4 \ + $(top_srcdir)/m4/ltversion.m4 $(top_srcdir)/m4/lt~obsolete.m4 \ + $(top_srcdir)/m4/nls.m4 $(top_srcdir)/m4/po.m4 \ + $(top_srcdir)/m4/progtest.m4 $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs @@ -173,10 +180,13 @@ ALL_LINGUAS = @ALL_LINGUAS@ AMTAR = @AMTAR@ AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ +AR = @AR@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ +CAIRO_CFLAGS = @CAIRO_CFLAGS@ +CAIRO_LIBS = @CAIRO_LIBS@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ @@ -186,17 +196,22 @@ DATADIRNAME = @DATADIRNAME@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ +DLLTOOL = @DLLTOOL@ +DSYMUTIL = @DSYMUTIL@ +DUMPBIN = @DUMPBIN@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EXEEXT = @EXEEXT@ +FGREP = @FGREP@ GETTEXT_MACRO_VERSION = @GETTEXT_MACRO_VERSION@ GETTEXT_PACKAGE = @GETTEXT_PACKAGE@ GMSGFMT = @GMSGFMT@ GMSGFMT_015 = @GMSGFMT_015@ GREP = @GREP@ -GTKBLDRCONV = @GTKBLDRCONV@ +GTK_CFLAGS = @GTK_CFLAGS@ +GTK_LIBS = @GTK_LIBS@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ @@ -212,35 +227,46 @@ INTLTOOL__v_MERGE_ = @INTLTOOL__v_MERGE_@ INTLTOOL__v_MERGE_0 = @INTLTOOL__v_MERGE_0@ INTL_MACOSX_LIBS = @INTL_MACOSX_LIBS@ +LD = @LD@ LDFLAGS = @LDFLAGS@ LIBICONV = @LIBICONV@ LIBINTL = @LIBINTL@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ +LIBTOOL = @LIBTOOL@ +LIPO = @LIPO@ +LN_S = @LN_S@ LTLIBICONV = @LTLIBICONV@ LTLIBINTL = @LTLIBINTL@ LTLIBOBJS = @LTLIBOBJS@ MAKEINFO = @MAKEINFO@ +MANIFEST_TOOL = @MANIFEST_TOOL@ MKDIR_P = @MKDIR_P@ MSGFMT = @MSGFMT@ MSGFMT_015 = @MSGFMT_015@ MSGMERGE = @MSGMERGE@ +NM = @NM@ +NMEDIT = @NMEDIT@ +OBJDUMP = @OBJDUMP@ OBJEXT = @OBJEXT@ +OTOOL = @OTOOL@ +OTOOL64 = @OTOOL64@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ -PACKAGE_CFLAGS = @PACKAGE_CFLAGS@ -PACKAGE_LIBS = @PACKAGE_LIBS@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ +PANGO_CFLAGS = @PANGO_CFLAGS@ +PANGO_LIBS = @PANGO_LIBS@ PATH_SEPARATOR = @PATH_SEPARATOR@ PKG_CONFIG = @PKG_CONFIG@ PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@ PKG_CONFIG_PATH = @PKG_CONFIG_PATH@ POSUB = @POSUB@ POW_LIB = @POW_LIB@ +RANLIB = @RANLIB@ SED = @SED@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ @@ -254,7 +280,9 @@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ +ac_ct_AR = @ac_ct_AR@ ac_ct_CC = @ac_ct_CC@ +ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ @@ -337,6 +365,12 @@ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(am__aclocal_m4_deps): +mostlyclean-libtool: + -rm -f *.lo + +clean-libtool: + -rm -rf .libs _libs + # This directory's subdirectories are mostly independent; you can cd # into them and run 'make' without going through this Makefile. # To change the values of 'make' variables: instead of editing Makefiles, @@ -528,7 +562,7 @@ @echo "it deletes files that may require special tools to rebuild." clean: clean-recursive -clean-am: clean-generic mostlyclean-am +clean-am: clean-generic clean-libtool mostlyclean-am distclean: distclean-recursive -rm -f Makefile @@ -580,7 +614,7 @@ mostlyclean: mostlyclean-recursive -mostlyclean-am: mostlyclean-generic +mostlyclean-am: mostlyclean-generic mostlyclean-libtool pdf: pdf-recursive @@ -595,16 +629,17 @@ .MAKE: $(am__recursive_targets) install-am install-strip .PHONY: $(am__recursive_targets) CTAGS GTAGS TAGS all all-am check \ - check-am clean clean-generic cscopelist-am ctags ctags-am \ - distclean distclean-generic distclean-tags distdir dvi dvi-am \ - html html-am info info-am install install-am install-data \ - install-data-am install-dvi install-dvi-am install-exec \ - install-exec-am install-html install-html-am install-info \ - install-info-am install-man install-pdf install-pdf-am \ - install-ps install-ps-am install-strip installcheck \ - installcheck-am installdirs installdirs-am maintainer-clean \ - maintainer-clean-generic mostlyclean mostlyclean-generic pdf \ - pdf-am ps ps-am tags tags-am uninstall uninstall-am + check-am clean clean-generic clean-libtool cscopelist-am ctags \ + ctags-am distclean distclean-generic distclean-libtool \ + distclean-tags distdir dvi dvi-am html html-am info info-am \ + install install-am install-data install-data-am install-dvi \ + install-dvi-am install-exec install-exec-am install-html \ + install-html-am install-info install-info-am install-man \ + install-pdf install-pdf-am install-ps install-ps-am \ + install-strip installcheck installcheck-am installdirs \ + installdirs-am maintainer-clean maintainer-clean-generic \ + mostlyclean mostlyclean-generic mostlyclean-libtool pdf pdf-am \ + ps ps-am tags tags-am uninstall uninstall-am # Tell versions [3.59,3.63) of GNU make to not export all variables. diff -Nru klavaro-1.9.9/data/icons/hicolor/Makefile.in klavaro-3.00/data/icons/hicolor/Makefile.in --- klavaro-1.9.9/data/icons/hicolor/Makefile.in 2013-08-15 13:46:56.000000000 +0000 +++ klavaro-3.00/data/icons/hicolor/Makefile.in 2014-01-21 23:25:39.000000000 +0000 @@ -1,4 +1,4 @@ -# Makefile.in generated by automake 1.13.3 from Makefile.am. +# Makefile.in generated by automake 1.14.1 from Makefile.am. # @configure_input@ # Copyright (C) 1994-2013 Free Software Foundation, Inc. @@ -81,7 +81,14 @@ DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am \ $(top_srcdir)/mkinstalldirs ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 -am__aclocal_m4_deps = $(top_srcdir)/configure.ac +am__aclocal_m4_deps = $(top_srcdir)/m4/gettext.m4 \ + $(top_srcdir)/m4/iconv.m4 $(top_srcdir)/m4/intltool.m4 \ + $(top_srcdir)/m4/lib-ld.m4 $(top_srcdir)/m4/lib-link.m4 \ + $(top_srcdir)/m4/lib-prefix.m4 $(top_srcdir)/m4/libtool.m4 \ + $(top_srcdir)/m4/ltoptions.m4 $(top_srcdir)/m4/ltsugar.m4 \ + $(top_srcdir)/m4/ltversion.m4 $(top_srcdir)/m4/lt~obsolete.m4 \ + $(top_srcdir)/m4/nls.m4 $(top_srcdir)/m4/po.m4 \ + $(top_srcdir)/m4/progtest.m4 $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs @@ -173,10 +180,13 @@ ALL_LINGUAS = @ALL_LINGUAS@ AMTAR = @AMTAR@ AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ +AR = @AR@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ +CAIRO_CFLAGS = @CAIRO_CFLAGS@ +CAIRO_LIBS = @CAIRO_LIBS@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ @@ -186,17 +196,22 @@ DATADIRNAME = @DATADIRNAME@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ +DLLTOOL = @DLLTOOL@ +DSYMUTIL = @DSYMUTIL@ +DUMPBIN = @DUMPBIN@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EXEEXT = @EXEEXT@ +FGREP = @FGREP@ GETTEXT_MACRO_VERSION = @GETTEXT_MACRO_VERSION@ GETTEXT_PACKAGE = @GETTEXT_PACKAGE@ GMSGFMT = @GMSGFMT@ GMSGFMT_015 = @GMSGFMT_015@ GREP = @GREP@ -GTKBLDRCONV = @GTKBLDRCONV@ +GTK_CFLAGS = @GTK_CFLAGS@ +GTK_LIBS = @GTK_LIBS@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ @@ -212,35 +227,46 @@ INTLTOOL__v_MERGE_ = @INTLTOOL__v_MERGE_@ INTLTOOL__v_MERGE_0 = @INTLTOOL__v_MERGE_0@ INTL_MACOSX_LIBS = @INTL_MACOSX_LIBS@ +LD = @LD@ LDFLAGS = @LDFLAGS@ LIBICONV = @LIBICONV@ LIBINTL = @LIBINTL@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ +LIBTOOL = @LIBTOOL@ +LIPO = @LIPO@ +LN_S = @LN_S@ LTLIBICONV = @LTLIBICONV@ LTLIBINTL = @LTLIBINTL@ LTLIBOBJS = @LTLIBOBJS@ MAKEINFO = @MAKEINFO@ +MANIFEST_TOOL = @MANIFEST_TOOL@ MKDIR_P = @MKDIR_P@ MSGFMT = @MSGFMT@ MSGFMT_015 = @MSGFMT_015@ MSGMERGE = @MSGMERGE@ +NM = @NM@ +NMEDIT = @NMEDIT@ +OBJDUMP = @OBJDUMP@ OBJEXT = @OBJEXT@ +OTOOL = @OTOOL@ +OTOOL64 = @OTOOL64@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ -PACKAGE_CFLAGS = @PACKAGE_CFLAGS@ -PACKAGE_LIBS = @PACKAGE_LIBS@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ +PANGO_CFLAGS = @PANGO_CFLAGS@ +PANGO_LIBS = @PANGO_LIBS@ PATH_SEPARATOR = @PATH_SEPARATOR@ PKG_CONFIG = @PKG_CONFIG@ PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@ PKG_CONFIG_PATH = @PKG_CONFIG_PATH@ POSUB = @POSUB@ POW_LIB = @POW_LIB@ +RANLIB = @RANLIB@ SED = @SED@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ @@ -254,7 +280,9 @@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ +ac_ct_AR = @ac_ct_AR@ ac_ct_CC = @ac_ct_CC@ +ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ @@ -344,6 +372,12 @@ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(am__aclocal_m4_deps): +mostlyclean-libtool: + -rm -f *.lo + +clean-libtool: + -rm -rf .libs _libs + # This directory's subdirectories are mostly independent; you can cd # into them and run 'make' without going through this Makefile. # To change the values of 'make' variables: instead of editing Makefiles, @@ -535,7 +569,7 @@ @echo "it deletes files that may require special tools to rebuild." clean: clean-recursive -clean-am: clean-generic mostlyclean-am +clean-am: clean-generic clean-libtool mostlyclean-am distclean: distclean-recursive -rm -f Makefile @@ -587,7 +621,7 @@ mostlyclean: mostlyclean-recursive -mostlyclean-am: mostlyclean-generic +mostlyclean-am: mostlyclean-generic mostlyclean-libtool pdf: pdf-recursive @@ -602,16 +636,17 @@ .MAKE: $(am__recursive_targets) install-am install-strip .PHONY: $(am__recursive_targets) CTAGS GTAGS TAGS all all-am check \ - check-am clean clean-generic cscopelist-am ctags ctags-am \ - distclean distclean-generic distclean-tags distdir dvi dvi-am \ - html html-am info info-am install install-am install-data \ - install-data-am install-dvi install-dvi-am install-exec \ - install-exec-am install-html install-html-am install-info \ - install-info-am install-man install-pdf install-pdf-am \ - install-ps install-ps-am install-strip installcheck \ - installcheck-am installdirs installdirs-am maintainer-clean \ - maintainer-clean-generic mostlyclean mostlyclean-generic pdf \ - pdf-am ps ps-am tags tags-am uninstall uninstall-am + check-am clean clean-generic clean-libtool cscopelist-am ctags \ + ctags-am distclean distclean-generic distclean-libtool \ + distclean-tags distdir dvi dvi-am html html-am info info-am \ + install install-am install-data install-data-am install-dvi \ + install-dvi-am install-exec install-exec-am install-html \ + install-html-am install-info install-info-am install-man \ + install-pdf install-pdf-am install-ps install-ps-am \ + install-strip installcheck installcheck-am installdirs \ + installdirs-am maintainer-clean maintainer-clean-generic \ + mostlyclean mostlyclean-generic mostlyclean-libtool pdf pdf-am \ + ps ps-am tags tags-am uninstall uninstall-am # Tell versions [3.59,3.63) of GNU make to not export all variables. diff -Nru klavaro-1.9.9/data/icons/Makefile.in klavaro-3.00/data/icons/Makefile.in --- klavaro-1.9.9/data/icons/Makefile.in 2013-08-15 13:46:56.000000000 +0000 +++ klavaro-3.00/data/icons/Makefile.in 2014-01-21 23:25:38.000000000 +0000 @@ -1,4 +1,4 @@ -# Makefile.in generated by automake 1.13.3 from Makefile.am. +# Makefile.in generated by automake 1.14.1 from Makefile.am. # @configure_input@ # Copyright (C) 1994-2013 Free Software Foundation, Inc. @@ -81,7 +81,14 @@ DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am \ $(top_srcdir)/mkinstalldirs ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 -am__aclocal_m4_deps = $(top_srcdir)/configure.ac +am__aclocal_m4_deps = $(top_srcdir)/m4/gettext.m4 \ + $(top_srcdir)/m4/iconv.m4 $(top_srcdir)/m4/intltool.m4 \ + $(top_srcdir)/m4/lib-ld.m4 $(top_srcdir)/m4/lib-link.m4 \ + $(top_srcdir)/m4/lib-prefix.m4 $(top_srcdir)/m4/libtool.m4 \ + $(top_srcdir)/m4/ltoptions.m4 $(top_srcdir)/m4/ltsugar.m4 \ + $(top_srcdir)/m4/ltversion.m4 $(top_srcdir)/m4/lt~obsolete.m4 \ + $(top_srcdir)/m4/nls.m4 $(top_srcdir)/m4/po.m4 \ + $(top_srcdir)/m4/progtest.m4 $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs @@ -173,10 +180,13 @@ ALL_LINGUAS = @ALL_LINGUAS@ AMTAR = @AMTAR@ AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ +AR = @AR@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ +CAIRO_CFLAGS = @CAIRO_CFLAGS@ +CAIRO_LIBS = @CAIRO_LIBS@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ @@ -186,17 +196,22 @@ DATADIRNAME = @DATADIRNAME@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ +DLLTOOL = @DLLTOOL@ +DSYMUTIL = @DSYMUTIL@ +DUMPBIN = @DUMPBIN@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EXEEXT = @EXEEXT@ +FGREP = @FGREP@ GETTEXT_MACRO_VERSION = @GETTEXT_MACRO_VERSION@ GETTEXT_PACKAGE = @GETTEXT_PACKAGE@ GMSGFMT = @GMSGFMT@ GMSGFMT_015 = @GMSGFMT_015@ GREP = @GREP@ -GTKBLDRCONV = @GTKBLDRCONV@ +GTK_CFLAGS = @GTK_CFLAGS@ +GTK_LIBS = @GTK_LIBS@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ @@ -212,35 +227,46 @@ INTLTOOL__v_MERGE_ = @INTLTOOL__v_MERGE_@ INTLTOOL__v_MERGE_0 = @INTLTOOL__v_MERGE_0@ INTL_MACOSX_LIBS = @INTL_MACOSX_LIBS@ +LD = @LD@ LDFLAGS = @LDFLAGS@ LIBICONV = @LIBICONV@ LIBINTL = @LIBINTL@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ +LIBTOOL = @LIBTOOL@ +LIPO = @LIPO@ +LN_S = @LN_S@ LTLIBICONV = @LTLIBICONV@ LTLIBINTL = @LTLIBINTL@ LTLIBOBJS = @LTLIBOBJS@ MAKEINFO = @MAKEINFO@ +MANIFEST_TOOL = @MANIFEST_TOOL@ MKDIR_P = @MKDIR_P@ MSGFMT = @MSGFMT@ MSGFMT_015 = @MSGFMT_015@ MSGMERGE = @MSGMERGE@ +NM = @NM@ +NMEDIT = @NMEDIT@ +OBJDUMP = @OBJDUMP@ OBJEXT = @OBJEXT@ +OTOOL = @OTOOL@ +OTOOL64 = @OTOOL64@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ -PACKAGE_CFLAGS = @PACKAGE_CFLAGS@ -PACKAGE_LIBS = @PACKAGE_LIBS@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ +PANGO_CFLAGS = @PANGO_CFLAGS@ +PANGO_LIBS = @PANGO_LIBS@ PATH_SEPARATOR = @PATH_SEPARATOR@ PKG_CONFIG = @PKG_CONFIG@ PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@ PKG_CONFIG_PATH = @PKG_CONFIG_PATH@ POSUB = @POSUB@ POW_LIB = @POW_LIB@ +RANLIB = @RANLIB@ SED = @SED@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ @@ -254,7 +280,9 @@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ +ac_ct_AR = @ac_ct_AR@ ac_ct_CC = @ac_ct_CC@ +ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ @@ -337,6 +365,12 @@ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(am__aclocal_m4_deps): +mostlyclean-libtool: + -rm -f *.lo + +clean-libtool: + -rm -rf .libs _libs + # This directory's subdirectories are mostly independent; you can cd # into them and run 'make' without going through this Makefile. # To change the values of 'make' variables: instead of editing Makefiles, @@ -528,7 +562,7 @@ @echo "it deletes files that may require special tools to rebuild." clean: clean-recursive -clean-am: clean-generic mostlyclean-am +clean-am: clean-generic clean-libtool mostlyclean-am distclean: distclean-recursive -rm -f Makefile @@ -580,7 +614,7 @@ mostlyclean: mostlyclean-recursive -mostlyclean-am: mostlyclean-generic +mostlyclean-am: mostlyclean-generic mostlyclean-libtool pdf: pdf-recursive @@ -595,16 +629,17 @@ .MAKE: $(am__recursive_targets) install-am install-strip .PHONY: $(am__recursive_targets) CTAGS GTAGS TAGS all all-am check \ - check-am clean clean-generic cscopelist-am ctags ctags-am \ - distclean distclean-generic distclean-tags distdir dvi dvi-am \ - html html-am info info-am install install-am install-data \ - install-data-am install-dvi install-dvi-am install-exec \ - install-exec-am install-html install-html-am install-info \ - install-info-am install-man install-pdf install-pdf-am \ - install-ps install-ps-am install-strip installcheck \ - installcheck-am installdirs installdirs-am maintainer-clean \ - maintainer-clean-generic mostlyclean mostlyclean-generic pdf \ - pdf-am ps ps-am tags tags-am uninstall uninstall-am + check-am clean clean-generic clean-libtool cscopelist-am ctags \ + ctags-am distclean distclean-generic distclean-libtool \ + distclean-tags distdir dvi dvi-am html html-am info info-am \ + install install-am install-data install-data-am install-dvi \ + install-dvi-am install-exec install-exec-am install-html \ + install-html-am install-info install-info-am install-man \ + install-pdf install-pdf-am install-ps install-ps-am \ + install-strip installcheck installcheck-am installdirs \ + installdirs-am maintainer-clean maintainer-clean-generic \ + mostlyclean mostlyclean-generic mostlyclean-libtool pdf pdf-am \ + ps ps-am tags tags-am uninstall uninstall-am # Tell versions [3.59,3.63) of GNU make to not export all variables. diff -Nru klavaro-1.9.9/data/klavaro.desktop.in klavaro-3.00/data/klavaro.desktop.in --- klavaro-1.9.9/data/klavaro.desktop.in 2013-07-24 18:38:57.000000000 +0000 +++ klavaro-3.00/data/klavaro.desktop.in 2014-01-07 22:55:13.000000000 +0000 @@ -1,9 +1,11 @@ [Desktop Entry] Name=Klavaro -_Comment=Yet another touch typing tutor +_Comment=A very flexible and efficient touch typing tutor. +# Translators: these are keywords related to the program. CAI above means Computer Aided Instruction. Feel free to add and/or change the keywords in your language. +_Keywords=keyboard;typing;tutor;CAI Exec=klavaro -Icon=/usr/share/icons/hicolor/24x24/apps/klavaro.png +Icon=klavaro Terminal=false Type=Application Categories=Education;GTK; diff -Nru klavaro-1.9.9/data/klavaro.glade klavaro-3.00/data/klavaro.glade --- klavaro-1.9.9/data/klavaro.glade 2013-07-24 18:38:57.000000000 +0000 +++ klavaro-3.00/data/klavaro.glade 2014-01-17 15:18:56.000000000 +0000 @@ -1,236 +1,448 @@ - - - - - - 8 - Klavaro - Main menu - 420 - - + + + + + False + 5 + About 'Klavaro' + False + center + True + dialog + True + False + Klavaro + Copyright (C) Free Software Foundation 2008-2013 + Yet another touch typing tutor + http://klavaro.sourceforge.net/ + klavaro.sf.net + GNU GPL v3 + +This program is free software, licensed under the terms of the GNU +General Public License as published by the Free Software Foundation, +either version 3 of the License, or (at your option) any later version. +You should have received a copy of the GNU General Public License +along with this program. If not, see <http://www.gnu.org/licenses/>. + +- Felipe Castro - <fefcas@gmail.com> +- Petr Machata + +- Felipe Castro + +- <http://translationproject.org/domain/klavaro.html> + +- Ankur ICT Developement Foundation, Bangladesh. +- Martin Šín +- Dieter Vanderfaeillie +- Richard van Schaik +- Dave Pawson (Great Britain) +- Gregory Palmer +- Felipe Castro +- Fabrice Haberer-Proust +- Lionel Dupuys +- Sébastien Wilmet +- Hermann J. Beckers +- Matthias Mailänder +- Gergely Máté +- Robert Stefaniuk +- Александр Казанцев (Alexandr Kazancev) +- Ibon Castilla +- Juan Macedo +- David Prieto +- Nils Pettersson +- Jess Body +- Trần Ngọc Quân + +- David Prieto +- Szczepan Marchewka + klavaro_96x96.png + + + + True + False + 2 + + + True + False + end + + + False + True + end + 0 + + + + + True + False + Remember always: someone loves you! + + + False + False + 3 + + + + + + + 0.97999999999999998 + 60 + 0.97999999999999998 + 1 + 5 + + + 1 + 60 + 1 + 1 + 5 + + + 100 + 1 + 10 + + + 100 + 1 + 10 + + + False + Change language + False + True + mouse + True + dialog + True + False + center + - + True - vertical - 8 + False - + True - vertical - 5 + False + 0 + 0 + 10 + 10 + Attention! + center + + + False + False + 0 + + + + + True + False + 0 + 1 + 10 + 10 + CONFIRM_MESSAGE + True + + + False + False + 1 + + + + + True + False + 5 + 8 + + + True + False + 5 + Do you confirm? + center + + + True + True + 0 + + + + + False + 5 + NO_ACTION + center + + + False + False + 1 + + - + True True + True + True + True + True False - Don't be shy about learning the basics! - - + 5 + + - + True + False + 0 + 0 + 4 + 4 - - True - 10 - gtk-dialog-warning - 6 - - - False - False - 0 - - - - + True - vertical + False + 4 - + True - 0 - 1 - 2 - Introduction - button_basic - + False + gtk-cancel + + False + False 0 - + True - 0 - 0 - 2 - Learn how to type correctly - + False + _No + True + + False + False + 4 1 - - - 1 - + - + - + - 0 + False + False + 2 - + True True False - Initial training for your fingers. - - + 5 + - + True + False + 0 + 0 + 4 + 4 - - True - 10 - gtk-strikethrough - 6 - - - False - False - 0 - - - - + True - vertical + False + 4 - + True - 0 - 1 - 2 - Basic course - button_basic - + False + gtk-delete + + False + False 0 - + True - 0 - 0 - 2 - First steps with initial training - + False + _Yes + True + + False + False + 4 1 - - - 1 - + - + - + - 1 + False + False + 3 + + + False + False + end + 2 + + + + + + + False + 4 + Help? + False + center-on-parent + True + dialog + True + False + + + True + False + 4 + + + True + False + end - + True True + True False - Memorizing the keyboard practicing random keys exercises. - - + This is a tip. Now you press this button to return to the main menu. + - + True + False + 0 + 0 - - True - 10 - gtk-bold - 6 - - - False - False - 0 - - - - + True - vertical + False + 2 - + True - 0 - 1 - 2 - Adaptability - button_basic - + False + gtk-go-back + 2 + + False + False 0 - + True - 0 - 0 - 2 - Practice with random keys - + False + B_ack to menu + True + char + button_info_return + + False + False 1 - - - 1 - + - + - + - 2 + False + False + 0 + + + False + False + end + 0 + + + + + True + False + 5 + queue - + True - True - False - Accelerating the touches practicing random words exercises. - - + False + 10 + 15 + 10 + 15 - + True + False - + + 380 True - 10 - gtk-spell-check - 6 - + False + 0 + 0 + 4 + The main menu of the application is very straightforward. Just select the type of exercise you wish to take. Do not worry about clicking any button on the screen. The buttons will never hurt you! + fill + True + False False @@ -238,1314 +450,1328 @@ - + + 380 + True + False + 0 + 0 + Also the controls have tips which will appear if you hover over them with your mouse. These tips can come in very handy. To see how these tips work, position your mouse over the button below, and without clicking, wait for the tip to appear... + fill + True + + + False + False + 1 + + + + + + + + + False + False + 1 + + + + + + button_info_return + + + + False + 4 + Klavaro - Select file + mouse + True + dialog + True + False + center + + + True + False + 2 + + + True + False + end + + + True + True + True + + + + True + False + 0.5 + 0.5 + + True - vertical + False - + True - 0 - 1 - 2 - Velocity - button_basic - + False + gtk-cancel + + True + True 0 - + True - 0 - 0 - 2 - Practice with random words - + False + _Cancel + True + + True + True 1 - - - 1 - + - + - + - 3 + False + False + 0 - + True True - False - Becoming proficient practicing complete paragraphs exercises. - - + True + - + True + False + 0.5 + 0.5 - - True - 10 - fluid.png - 5 - - - False - False - 0 - - - - + True - vertical + False - + True - 0 - 1 - 2 - Fluidness - button_basic - + False + gtk-open + + True + True 0 - + True - 0 - 0 - 2 - Practice with complete texts - + False + _Open + True + + True + True 1 - - - 1 - + - + - + - 4 + False + False + 1 - + False - False + True + end 0 - + + + + + + button_filechooser_cancel + button_filechooser_open + + + + 450 + 400 + False + 8 + Klavaro + mouse + True + dialog + True + True + False + center + + + True + False + 8 + + True - 2 - 3 - 4 - 10 + False - + + 250 + 250 True - Keyboard layout for modules 1 and 2. Also used informatively in the fluidness contest. - 0 - _Keyboard: - True - combobox_kbd_country - + True + in + + + True + True + False + True + False + + + + + + + + + - 1 - 2 - GTK_FILL + True + True + 0 - + + 25 True - Language for modules 3 and 4. + False 0 - _Language: + 1 + Re_name: True - combobox_language - - - GTK_FILL - - - - - True - Variant - Klavaro - - + entry_other_rename + - 2 - 3 - 1 - 2 + False + False + 1 - + True - Country / Custom - Klavaro - - + True + Rename the selected item. + + + - 1 - 2 - 1 - 2 + False + False + 3 + 2 + + + True + True + 0 + + + + + True + False + 12 - + True - Your language here. - Klavaro - - - - 1 - 2 - - + True + False + Read a text file and add a copy of it here. The file must be encoded in UTF-8. + + + + True + False + + + True + False + 0 + gtk-open + 2 + + + False + False + 0 + + + + + True + False + 0 + _Open text file + True + + + False + False + 2 + 1 + + + + + + + False + False + 0 + - - Speech + True True False - Espeak - True - - + Paste text that was copied to the clipboard. + + + + True + False + + + True + False + 0 + gtk-paste + 2 + + + False + False + 0 + + + + + True + False + 0 + _Paste from clipboard + True + + + False + False + 2 + 1 + + + + + - 2 - 3 + False + False + 1 - - - False - False - 1 - - - - - True - 5 - + True True False - Little tip about this program. - + Remove the selected item. + - + True - 0 - 0 + False - + True - - - True - gtk-help - - - False - False - 0 - - - - - True - 4 - 4 - _Help - True - - - False - False - 2 - 1 - - - + False + 0 + gtk-delete + 2 + + + False + False + 0 + + + + + True + False + 0 + _Remove copied file + True + + + False + False + 2 + 1 + - + - + False False - 0 + 2 - + True - True - False - General information about the program. - + False + 8 - + True - 0 - 0 + True + True + - + True + False + 0.5 + 0.5 - + True - gtk-about - - - False - False - 0 - + False + + + True + False + gtk-cancel + 2 + + + True + True + 0 + + + + + True + False + _Cancel + True + + + True + True + 4 + 1 + + + + + + + + True + True + 0 + + + + + True + True + True + False + Apply the selected item to create an exercise. + + + + True + False + 0.5 + 0.5 - + True - 4 - 4 - _About... - True - - - False - False - 2 - 1 - + False + + + True + False + gtk-ok + 2 + + + True + True + 0 + + + + + True + False + _Apply + True + + + True + True + 4 + 1 + + + - + - + + + True + True + 1 + - + False False - 1 + end + 3 + + + False + False + 1 + + + + + + + False + Klavaro + True + dialog + True + False + + + + + True + False + 4 + 4 + + + True + True + True + True + True + True + hands_0.png + + + True + True + 0 + + + + + True + False + end - + True True - False - Exit the application immediately. - + True + Close this window. + none + - + True - 0 - 0 + False + 0.5 + 0.5 - + True + False - + True + False gtk-close - + 2 + - False - False + True + True 0 - + True - 4 - 4 + False _Close True - + - False - False - 2 + True + True 1 - + - + - + False False - end - 2 + 0 - + False False - end - 2 + 1 + 1 - + - - - 6 - Klavaro - 750 - 540 - - + + + False + 8 + False + True + True + dialog + True + False - + True - True - vertical + False + 8 - + True + False - + True False - False - Load other exercises/lessons - 4 - none - + 12 - + + 350 True - 2 - - - True - other.png - - - False - False - 0 - - + False + 0 + title + fill + True + + + False + False + 0 + + + + + 350 + False + 0 + text 1 + fill + True + 44 + + + False + False + 1 + + + + + 350 + False + 0 + text 2 + fill + True + + + False + False + 2 + + + + + True + True + in - + True - _Other texts - True - - - False - False - 1 - + True + 4 + 4 + False + word + fill + 5 + 5 + False + - + + + True + True + 3 + - + - False - False + True + True 0 - + True - + False + 2 + - False - False - 4 + True + True 1 - + True - 4 - _Lesson: - True - center - spinbutton_lesson - + False + + + True + False + 7 + + + False + False + 0 + + + + + True + False + 0 + 0 + hands_0.png + + + False + False + 1 + + + False False 2 + + + True + True + 0 + + + + + True + False + 9 - - True - True - 2 - 0.5 - 1 1 60 1 5 0 - 0.5 - True - if-valid - - - - False - False - 3 - - - - - True - - - False - False - 4 - 4 - - - - + True - 0 - 6 - 12 - char - + False + Country / Custom + 0 + 1 + + - False - False - 5 + True + True + 0 - + True - True - Edit the character set to be used in this lesson. - 80 - - + False + Variant + 0 + 1 + + - 3 - 6 + True + True + 1 - + True True False - Edit the character set to be used in lessons 44 through 50. - 8 - none - True - - - - True - gtk-edit - 1 - - - - - False - False - end - 8 - - - - - True - True - True - This is a specific exercise, adjusted to your error profile. - 8 - none - True - True - + Remove the selected custom layout. + - + True - gtk-dialog-warning - 1 - + False + 0 + 0 + + + True + False + 2 + + + True + False + gtk-delete + + + False + False + 0 + + + + + True + False + _Remove + True + + + False + False + 1 + + + + + - + False False - end - 7 + 2 - + False False - 0 + 1 + 1 - - 600 - 300 + True False - never - automatic - in - + + 40 + 32 True False - 9 - 1 - 1 - False - word - 10 - 10 - False - False - - + False + False + True + + + 393 + 140 + - - - 4 - 1 - - - - - True - + + 40 + 32 True - True - True - True - True - Drag and drop text here to practice with it. - gtk-clear - True - True - Press here to restart the exercise. Hotkey: [Ctrl-R] - - - - - - - - + False + False + False + True + - 0 + 350 + 140 - + + 40 + 32 True - False - - - - - - False - False - Press here to restart the exercise. Hotkey: [Ctrl R] - 4 - none - False - - - - - - True - gtk-clear - 1 - - - - - + False + False + False + True + - False - 1 + 43 + 140 - + + 40 + 32 True + False False False - Show the virtual keyboard and the relation between fingers and keys. - none - - - - True - 2 - - - True - 2 - key.png - 2 - - - False - False - 0 - - - - - True - _Keyboard - True - - - False - False - 1 - - - - - + True + - False - False - 2 - 2 + 86 + 140 - + + 40 + 32 True - True + False + False False - Select the font to be used in the exercise window. - none - - - - True - - - True - 2 - gtk-select-font - 3 - - - 0 - - - - - True - _Font - True - - - 1 - - - - - + True + - False - False - 2 - 3 + 436 + 140 - + + 59 + 32 True True - True - Keep this checked if you want to get those nice beeps. - none - True - True - + False + Toggles the shift effect on the keys. Alternates between the upper and lower characters of the keys. + + - + True - - - True - 2 - beep.png - 2 - - - 0 - - - - - True - _Beep - True - - - 1 - - - + False + 0 + gtk-go-up + 1 + - + - False - False - 4 + 463 + 105 - - - False - False - 4 - 2 - - - - - True - + + SPACE BAR + 218 + 32 True True - True - + True + True + True + True + False + thumbs + True + + + + 129 + 140 + + + + + 40 + 32 + True + False + False + Toggles the shift effect on the keys. Alternates between the upper and lower characters of the keys. + + - + True - - - True - gtk-dialog-info - 2 - - - False - False - 0 - - - - - True - 2 - Co_urse information - True - - - False - False - 2 - 1 - - - + False + 7.4505801528346183e-09 + gtk-go-up + 1 + - + - False - False - 0 + 105 + + + + + Tab + 46 + 32 + True + False + False + False + True + + + 35 - + + 43 + 32 True + False False False - Charts showing the learning progress along the exercises. - - + True - - - True - progress.png - 2 - - - False - False - 0 - - - - - True - _Progress - True - - - False - False - 2 - 1 - - - + False + gtk-ok + 1 + - + - False - False - 4 - 1 + 479 + 70 - + + Ctrl + 43 + 32 True + False False False - Show local and external scores from other users. - - - - True - - - True - top10.png - 3 - - - False - False - 0 - - - - - True - _Top 10 - True - - - False - False - 2 - 1 - - - - - + True + - False - False - 4 + 479 + 140 - + + Ctrl + 40 + 32 True + False False False - Return to the main menu. - - - - True - - - True - gtk-go-back - 2 - - - False - False - 0 - - - - - True - B_ack to menu - True - - - False - False - 2 - 1 - - - - - + True + - False - False - 4 - end - 3 + 140 + + + + + Caps + 56 + 32 + True + False + False + False + True + + + 70 - + + 32 + 32 True + False False False - Exit the application immediately. - - + True - - - True - gtk-close - 2 - - - False - False - 0 - - - - - True - 2 - _Close - True - - - False - False - 2 - 1 - - - + False + gtk-media-rewind + 1 + - + - False - False - end - 2 + 490 - + False False - 3 + 2 - - - - - Klavaro - True - dialog - True - False - - - - - True - 4 - vertical - 4 - + True - True - True - True - True - True - hands_0.png - + False + 4 + + + True + False + 0 + 8 + S_ave as: + True + entry_keyboard + + + False + False + 0 + + + + + True + True + + + True + True + 1 + + + - 0 + False + False + 4 + 3 - + True - end + False + 8 - + True True - True - Close this window. - none - + False + Show previous screen. + + + - + True - 0.5 - 0.5 + False + 0 + 0 - + True + False - + True - gtk-close - 2 - + False + gtk-go-back + + False + False 0 - + True - _Close + False + _Previous step True - + + False + False + 4 1 - + - + - + False False 0 - - - False - False - 1 - 1 - - - - - - - 4 - Font definition - mouse - True - dialog - True - False - center - - - - True - 4 - - - - - True - True - True - False - - - - - True - True - True - False - - - - - True - True - True - False - 0.49000000953674316 - - - - - 400 - 440 - 4 - Top 10 - True - dialog - True - False - - - - True - 4 - vertical - 8 - - - True - 8 - - - True - False - Klavaro - - - - 0 - - - - - True - Your language here. - False - Klavaro - - - - 1 - - - - - False - False - 0 - - - - - True - + True True - 300 - True + True + True + True + False + Show next screen. + + + - - 350 + True - True - automatic - automatic - top-right - in + False + 0 + 0 - + True - True - True - True - - - - - False - True - - - - - 300 - True - automatic - automatic - in - - - 300 - True - True - True - True - + False + + + True + False + gtk-go-forward + + + False + False + 0 + + + + + True + False + _Next step + True + + + False + False + 4 + 1 + + + - - - True - True - - - - - 0 - - - - - True - True - True - Show extra information - none - - - - True - left - in - + - + False False @@ -1553,74 +1779,96 @@ - - True - True - Hide extra information - none - - - - True - in - - - + + True + False + - False - False + True + True 2 - - - 1 - - - - - True - + True True - True - + False + Return without any modification. + - + True - go_www.png - + False + 0 + 0 + + + True + False + + + True + False + gtk-cancel + + + False + False + 0 + + + + + True + False + _Cancel + True + + + False + False + 4 + 1 + + + + + - + False False - 0 + 3 - + True True + True + True True False - Publish to the web your local scores. - + Save the current keyboard layout with the name specified above. + - + True + False 0 0 - + True - 2 + False - + True - gtk-goto-top - + False + gtk-save + False False @@ -1628,787 +1876,695 @@ - + True - _Participate + False + _Save and use True - + False False + 4 1 - + - + - + False False - 10 - 1 + 4 - + True True - True False - Download from the web the most up to date ranking. - + Close this window. + + - + True + False 0 0 - + True - 2 + False - + True - gtk-goto-bottom - + False + gtk-close + False False + 2 0 - + True - _Update + False + 2 + _Close True - + False False 1 - + - + - + False False - 2 - - - - - True - 10 - 0 - - - 3 + end + 5 - + True True - True False - Close this window. - + If you like those beautiful hands, click here to close this window keeping them. + - + True + False 0 0 - + True + False - + True - gtk-close - + False + gtk-leave-fullscreen + False False + 2 0 - + True - _Close + False + 2 + _Keep hands True - + False False - 2 1 - + - + - + False False - 4 + end + 6 - - - False - False - 2 - - - - - True - 4 - False - - - False - False - 3 - - - - - - - 5 - About 'Klavaro' - False - center - True - dialog - True - False - Klavaro - Copyright (C) Free Software Foundation 2008-2011 - Yet another touch typing tutor - http://klavaro.sourceforge.net/ - klavaro.sf.net - GNU GPL v3 - -This program is free software, licensed under the terms of the GNU -General Public License as published by the Free Software Foundation, -either version 3 of the License, or (at your option) any later version. -You should have received a copy of the GNU General Public License -along with this program. If not, see <http://www.gnu.org/licenses/>. - -- Felipe Castro - <fefcas@gmail.com> -- Petr Machata - -- Felipe Castro - -- <http://translationproject.org/domain/klavaro.html> - -- Ankur ICT Developement Foundation, Bangladesh. -- Martin Šín -- Dieter Vanderfaeillie -- Richard van Schaik -- Dave Pawson (Great Britain) -- Gregory Palmer -- Felipe Castro -- Fabrice Haberer-Proust -- Lionel Dupuys -- Sébastien Wilmet -- Hermann J. Beckers -- Matthias Mailänder -- Gergely Máté -- Robert Stefaniuk -- Александр Казанцев (Alexandr Kazancev) -- Ibon Castilla -- Juan Macedo -- David Prieto -- Nils Pettersson -- Jess Body -- Trần Ngọc Quân - -- David Prieto -- Szczepan Marchewka - klavaro_96x96.png - - - - True - 2 - - - True - Remember always: someone loves you! - + False False - 3 - - - - - True - end - - - False - end - 0 + 4 - + - - + + + False 8 - False - True - True - dialog - True - False + Klavaro - Main menu + 420 + + - + True + False 8 - + True + False + 5 - + True - 12 + True + False + Don't be shy about learning the basics! + + - - 350 + True - 0 - title - fill - True - - - False - False - 0 - - - - - 350 - 0 - text 1 - fill - True - 44 - - - False - False - 1 - - - - - 350 - 0 - text 2 - fill - True - - - False - False - 2 - - - - - True - True - automatic - automatic - in + False - + True - True - 4 - 4 - False - word - fill - 5 - 5 - False - + False + 10 + gtk-dialog-warning + 6 + + + False + False + 0 + - - - 3 - + + + True + False + + + True + False + 0 + 1 + 2 + Introduction + button_basic + + + True + True + 0 + + + + + True + False + 0 + 0 + 2 + Learn how to type correctly + + + True + True + 1 + + + + + True + True + 1 + + + - + + True + True 0 - + True - 2 - - - 1 - - - - - True - - - True - 7 - - - False - False - 0 - - + True + False + Initial training for your fingers. + + - + True - 0 - 0 - hands_0.png - - - False - False - 1 - + False + + + True + False + 10 + gtk-strikethrough + 6 + + + False + False + 0 + + + + + True + False + + + True + False + 0 + 1 + 2 + Basic course + button_basic + + + True + True + 0 + + + + + True + False + 0 + 0 + 2 + First steps with initial training + + + True + True + 1 + + + + + True + True + 1 + + + - - - False - False - 2 - - - - - 0 - - - - - True - 9 - - - True - Country / Custom - Klavaro - - - - 0 - - - - - True - Variant - Klavaro - - + + True + True 1 - + True True False - Remove the selected custom layout. - + Memorizing the keyboard practicing random keys exercises. + + - + True - 0 - 0 + False - + True - 2 + False + 10 + gtk-bold + 6 + + + False + False + 0 + + + + + True + False - + True - gtk-delete - + False + 0 + 1 + 2 + Adaptability + button_basic + - False - False + True + True 0 - + True - _Remove - True - + False + 0 + 0 + 2 + Practice with random keys + - False - False + True + True 1 - + + + True + True + 1 + - + - + - False - False + True + True 2 - - - False - False - 1 - 1 - - - - - True - - - 40 - 32 - True - False - False - False - True - - - 393 - 140 - - - - - 40 - 32 - True - False - False - False - True - - - 350 - 140 - - - - 40 - 32 - True - False - False - False - True - - - 43 - 140 - - - - - 40 - 32 - True - False - False - False - True - - - 86 - 140 - - - - - 40 - 32 - True - False - False - False - True - - - 436 - 140 - - - - - 59 - 32 + True True False - Toggles the shift effect on the keys. Alternates between the upper and lower characters of the keys. - - + Accelerating the touches practicing random words exercises. + + - + True - 0 - gtk-go-up - + False + + + True + False + 10 + gtk-spell-check + 6 + + + False + False + 0 + + + + + True + False + + + True + False + 0 + 1 + 2 + Velocity + button_basic + + + True + True + 0 + + + + + True + False + 0 + 0 + 2 + Practice with random words + + + True + True + 1 + + + + + True + True + 1 + + + - + - 463 - 105 + True + True + 3 - - SPACE BAR - 218 - 32 + True True - True - True - True - True - False - thumbs - True - - - - 129 - 140 - - - - - 40 - 32 - True - False - False - Toggles the shift effect on the keys. Alternates between the upper and lower characters of the keys. - - - - - True - 7.4505801528346183e-09 - gtk-go-up - - - - - 105 - - - - - Tab - 46 - 32 - True - False - False - False - True - - - 35 - - - - - 43 - 32 - True - False - False False + Becoming proficient practicing complete paragraphs exercises. + + - + True - gtk-ok - + False + + + True + False + 10 + fluid.png + 5 + + + False + False + 0 + + + + + True + False + + + True + False + 0 + 1 + 2 + Fluidness + button_basic + + + True + True + 0 + + + + + True + False + 0 + 0 + 2 + Practice with complete texts + + + True + True + 1 + + + + + True + True + 1 + + + - + - 479 - 70 + True + True + 4 + + + False + False + 0 + + + + + True + False + 2 + 3 + 4 + 10 - - Ctrl - 43 - 32 + True - False False - False + Keyboard layout for modules 1 and 2. Also used informatively in the fluidness contest. + 0 + _Keyboard: True - - - 479 - 140 + + + 1 + 2 + GTK_FILL - - Ctrl - 40 - 32 + True - False False - False + Language for modules 3 and 4. + 0 + _Language: True - + - 140 + GTK_FILL - - Caps - 56 - 32 + + Speech True - False - False + True False - True - + Espeak + 0.5 + True + + - 70 + 2 + 3 - - 32 - 32 + True - False False - False - - - True - gtk-media-rewind - 1 - - - + Your language here. + 0 + 1 + + - 490 + 1 + 2 - - - False - False - 2 - - - - - True - 4 - + True - 0 - 8 - S_ave as: - True - entry_keyboard - + False + Country / Custom + 0 + 1 + + - False - False - 0 + 1 + 2 + 1 + 2 - + True - True - + False + Variant + 0 + 1 + + - 1 + 2 + 3 + 1 + 2 - + False False - 4 - 3 + 1 - + True - 8 + False + 5 - + True True False - Show previous screen. - - - + Little tip about this program. + - + True + False 0 0 - + True + False - + True - gtk-go-back - + False + gtk-help + False False @@ -2416,23 +2572,26 @@ - + True - _Previous step + False + 4 + 4 + _Help True - + False False - 4 + 2 1 - + - + - + False False @@ -2440,30 +2599,28 @@ - + True True - True - True - True False - Show next screen. - - - + General information about the program. + - + True + False 0 0 - + True + False - + True - gtk-go-forward - + False + gtk-about + False False @@ -2471,23 +2628,26 @@ - + True - _Next step + False + 4 + 4 + _About... True - + False False - 4 + 2 1 - + - + - + False False @@ -2495,33 +2655,28 @@ - - True - - - 2 - - - - + True True False - Return without any modification. - + Exit the application immediately. + - + True + False 0 0 - + True + False - + True - gtk-cancel - + False + gtk-close + False False @@ -2529,221 +2684,125 @@ - + True - _Cancel + False + 4 + 4 + _Close True - + False False - 4 + 2 1 - + - + - + False False - 3 + end + 2 + + + + + False + False + end + 2 + + + + + + + False + 8 + Klavaro - Progress + True + dialog + True + False + + + + True + False + 8 + + + True + False + 6 + + + True + False + 0 + 1 + + + + True + True + 0 - + True - True - True - True - True - False - Save the current keyboard layout with the name specified above. - - - - True - 0 - 0 - - - True - - - True - gtk-save - - - False - False - 0 - - - - - True - _Save and use - True - - - False - False - 4 - 1 - - - - - - - + False + 0 + 1 + + - False - False - 4 + True + True + 1 - + True - True - False - If you like those beautiful hands, click here to close this window keeping them. - - - - True - 0 - 0 - - - True - - - True - gtk-leave-fullscreen - - - False - False - 2 - 0 - - - - - True - 2 - _Keep hands - True - - - False - False - 1 - - - - - - - + False + 1 + _Lesson: + True + spinbutton_stat_lesson + False False - end - 6 + 2 - + True True - False - Close this window. - - - - - True - 0 - 0 - - - True - - - True - gtk-close - - - False - False - 2 - 0 - - - - - True - 2 - _Close - True - - - False - False - 1 - - - - - - - + False + 2 + 2 + 0.5 + adjustment2 + True + + False False - end - 5 + 3 - - - False - False - 4 - - - - - - - Change language - False - True - mouse - True - dialog - True - False - center - - - - True - - - True - 0 - 0 - 10 - 10 - Attention! - center - + False False @@ -2751,43 +2810,48 @@ - + + 604 + 284 True - 0 - 1 - 10 - 10 - CONFIRM_MESSAGE - True - + False + 0 + + + + - False - False + True + True 1 - + True - 5 - 8 + False + 6 - + True - 5 - Do you confirm? - center - + False + Y: + + False + False 0 - - 5 - NO_ACTION - center - + + True + True + Value + False + 7 + 0.5 + False False @@ -2795,33 +2859,57 @@ - + + True + False + 1 + X: + + + False + False + 2 + + + + + True + True + Date & Time + False + 19 + 0.5 + + + False + False + 3 + + + + True True - True - True - True - True False - 5 - - + Close this window, returning to the exercise. + half + - + True + False 0 0 - 4 - 4 - + True - 4 + False - + True - gtk-cancel - + False + gtk-close + False False @@ -2829,52 +2917,70 @@ - + True - _No + False + 2 + _Close True - + button_stat_close + False False - 4 + 2 1 - + - + - + False False - 2 + end + 4 + + + + + 20 + True + False + + + True + True + 5 - + True True False - 5 - + Clear all the progress data, for every module. + half + + - + True + False 0 0 - 4 - 4 - + True - 4 + False - + True + False gtk-delete - + False False @@ -2882,165 +2988,232 @@ - + True - _Yes + False + 2 + _Reset True - + button_stat_reset + False False - 4 + 2 1 - + - + - + False False - 3 + 6 - + False False - end 2 - + - - - 450 - 400 - 8 - Klavaro - mouse + + + 400 + 440 + False + 4 + Top 10 True dialog True - True False - center + - + True + False + 4 8 - + True + False + 8 - - 250 - 250 + True - True - automatic - automatic - in - - - True - True - False - True - False - - - - - - + False + 0 + 1 + + + True + True 0 - - 25 + True - 0 - 1 - Re_name: - True - entry_other_rename - + False + 0 + 1 + + - False - False + True + True 1 - - - True - True - Rename the selected item. - - - - - False - False - 3 - 2 - - - + + False + False 0 - + True - 12 + False - + True True - False - Read a text file and add a copy of it here. The file must be encoded in UTF-8. - + 300 + True - + + 350 True + True + top-right + in - + True - 0 - gtk-open - 2 - - - False - False - 0 - + True + True + True + + + + + + + False + True + + + + + 300 + True + in - + + 300 True - 0 - _Open text file - True - - - False - False - 2 - 1 - + True + True + True + + + + - + + + True + True + + + + + True + True + 0 + + + + + True + True + True + Show extra information. + none + + + + True + False + left + in + + + + + False + False + 1 + + + + + True + True + Hide extra information. + none + + + + True + False + in + + + + + False + False + 2 + + + + + True + True + 1 + + + + + True + False + + + True + True + True + + + + True + False + go_www.png + - + False False @@ -3048,91 +3221,110 @@ - + True True + True False - Paste text that was copied to the clipboard. - + Publish to the web your local scores. + - + True + False + 0 + 0 - - True - 0 - gtk-paste - 2 - - - False - False - 0 - - - - + True - 0 - _Paste from clipboard - True - - - False - False - 2 - 1 - + False + 2 + + + True + False + gtk-goto-top + + + False + False + 0 + + + + + True + False + _Participate + True + + + False + False + 1 + + + - + - + False False + 10 1 - + True True + True False - Remove the selected item. - + Download from the web the most up to date ranking. + - + True + False + 0 + 0 - - True - 0 - gtk-delete - 2 - - - False - False - 0 - - - - + True - 0 - _Remove copied file - True - - - False - False - 2 - 1 - + False + 2 + + + True + False + gtk-goto-bottom + + + False + False + 0 + + + + + True + False + _Update + True + + + False + False + 1 + + + - + - + False False @@ -3140,167 +3332,181 @@ - + True - 8 + False + 10 + 0 + + + True + True + 3 + + + + + True + True + True + False + Close this window. + - + True - True - True - + False + 0 + 0 - + True - 0.5 - 0.5 + False - + True - - - True - gtk-cancel - 2 - - - 0 - - - - - True - _Cancel - True - - - 4 - 1 - - - + False + gtk-close + + + False + False + 0 + - - - - - 0 - - - - - True - True - True - False - Apply the selected item to create an exercise. - - - - True - 0.5 - 0.5 - + True - - - True - gtk-ok - 2 - - - 0 - - - - - True - _Apply - True - - - 4 - 1 - - - + False + _Close + True + + + False + False + 2 + 1 + - + - - - 1 - + - + False False - end - 3 + 4 - + False False - 1 + 2 + + + + + True + False + 4 + + + False + False + 3 - + - - - 8 - Klavaro - Progress - True - dialog - True - False - + + + False + 6 + Klavaro + 750 + 540 + + - + True - 8 + True - + True - 6 + False - + True - 1 -2 -3 -4 - - + False + False + Load other exercises/lessons + 4 + none + + + + True + False + 2 + + + True + False + other.png + + + False + False + 0 + + + + + True + False + _Other texts + True + + + False + False + 1 + + + + + + False + False 0 - + True - 1 -2 -3 -4 - - + False + + False + False + 4 1 - + True - 1 + False + 4 _Lesson: True - spinbutton_stat_lesson - + center + spinbutton_lesson + False False @@ -3308,289 +3514,399 @@ - + True True - False - 2 2 0.5 - 1 1 60 1 5 0 + adjustment1 + 0.5 True - - + if-valid + + False False 3 - - - False - False - 0 - - - - - 604 - 284 - True - 0 - + + True + False + + + False + False + 4 + 4 + - - - 1 - - - - - True - 6 - + True - Y: - + False + 0 + 6 + 12 + char + False False - 0 + 5 - + True - True True - Value - False - 7 - 0.5 - + Edit the character set to be used in this lesson. + 80 + + - False - False - 1 + True + True + 3 + 6 - + True - 1 - X: - + True + True + This is a specific exercise, adjusted to your error profile. + 8 + none + True + + + + True + False + gtk-dialog-warning + 1 + + + False False - 2 + end + 7 - + True - True True - Date & Time - False - 19 - 0.5 - + False + Edit the character set to be used in lessons after 43: they are customizable! + 8 + none + + + + True + False + gtk-edit + 1 + + + False False - 3 + end + 8 + + + False + False + 0 + + + + + 600 + 300 + True + False + adjustment3 + adjustment4 + never + True + in + + + True + False + False + adjustment3 + adjustment4 + 9 + 1 + 4 + False + word + 10 + 10 + -1 + False + False + + + + + + True + True + 4 + 1 + + + + + True + False - - 20 + + True + True + True + True + True + Drag and drop text here to practice with it. + gtk-clear + Press here to restart the exercise. Hotkey: [Ctrl-R] + + + + + + + + + + True + True + 5 + 0 + + + + True - + False + False + + + + + + False + False + Press here to restart the exercise. Hotkey: [Ctrl-R] + 4 + none + False + + + + + + True + False + gtk-clear + 1 + + + + + - 5 + False + True + 1 - + True - True + False False - Clear all the progress data, for every module. - half - - + Show the virtual keyboard and the relation between fingers and keys. + none + - + True - 0 - 0 + False + 2 - + True - - - True - gtk-delete - - - False - False - 0 - - - - - True - 2 - _Reset - True - button_stat_reset - - - False - False - 2 - 1 - - - + False + 2 + key.png + 2 + + + False + False + 0 + + + + + True + False + _Keyboard + True + + + False + False + 1 + - + - + False False - 6 + 2 - + True True - False - Close this window, returning to the exercise. - half - + True + Select the font to be used in the exercise window. + none + Monospace 12 + EĤOŜANĜO ĈIUĴAŬDE eĥoŝanĝo ĉiuĵaŭde + Font definition + Monospace Bold 12 + + + + False + False + 2 + 3 + + + + + True + True + True + Keep this checked if you want to get those nice beeps. + none + True + - + True - 0 - 0 + False - + True - - - True - gtk-close - - - False - False - 0 - - - - - True - 2 - _Close - True - button_stat_close - - - False - False - 2 - 1 - - - + False + 2 + beep.png + 2 + + + True + True + 0 + + + + + True + False + _Beep + True + + + True + True + 1 + - + - + False False - end + 1 4 - + False False + 4 2 - - - - - cursor - 4 - Klavaro - Select file - mouse - True - dialog - True - False - center - - - True - 2 - - - - + True - end + False - + True True True - + - + True - 0.5 - 0.5 + False - + True - - - True - gtk-cancel - - - 0 - - - - - True - _Cancel - True - - - 1 - - - + False + gtk-dialog-info + 2 + + + False + False + 0 + + + + + True + False + 2 + Co_urse information + True + + + False + False + 2 + 1 + - + - + False False @@ -3598,98 +3914,71 @@ - + True - True - True - + False + False + Charts showing the learning progress along the exercises. + - + True - 0.5 - 0.5 + False - + True - - - True - gtk-open - - - 0 - - - - - True - _Open - True - - - 1 - - - + False + progress.png + 2 + + + False + False + 0 + + + + + True + False + _Progress + True + + + False + False + 2 + 1 + - + - + False False + 4 1 - - - False - end - 0 - - - - - - - 4 - Help? - False - center-on-parent - True - dialog - True - False - - - True - 4 - - - True - 5 - queue - + True - 10 - 15 - 10 - 15 + False + False + Exit the application immediately. + - + True + False - - 380 + True - 0 - 0 - 4 - The main menu of the application is very straightforward. Just select the type of exercise you wish to take. Do not worry about clicking any button on the screen. The buttons will never hurt you! - fill - True - + False + gtk-close + 2 + False False @@ -3697,100 +3986,134 @@ - - 380 + True - 0 - 0 - Also the controls have tips which will appear if you hover over them with your mouse. These tips can come in very handy. To see how these tips work, position your mouse over the button below, and without clicking, wait for the tip to appear... - fill - True - + False + 2 + _Close + True + False False + 2 1 - + - + + + False + False + end + 2 + - - - False - False - 1 - - - - - True - end - - -7 + True - True - True + False False - This is a tip. Now you press this button to return to the main menu. - + Return to the main menu. + - + True - 0 - 0 + False - + True - 2 - - - True - gtk-go-back - 2 - - - False - False - 0 - - - - - True - B_ack to menu - True - char - button_info_return - - - False - False - 1 - - - + False + gtk-go-back + 2 + + + False + False + 0 + + + + + True + False + B_ack to menu + True + + + False + False + 2 + 1 + - + - + False False - 0 + 4 + end + 3 + + + + + True + False + False + Show local and external scores from other users. + + + + True + False + + + True + False + top10.png + 3 + + + False + False + 0 + + + + + True + False + _Top 10 + True + + + False + False + 2 + 1 + + + + + + + False + False + 4 - + False False - end - 0 + 3 - + - - + + diff -Nru klavaro-1.9.9/data/klavaro.ui klavaro-3.00/data/klavaro.ui --- klavaro-1.9.9/data/klavaro.ui 2013-07-24 18:43:33.000000000 +0000 +++ klavaro-3.00/data/klavaro.ui 1970-01-01 00:00:00.000000000 +0000 @@ -1,3970 +0,0 @@ - - - - 60 - 1 - 5 - 1 - 0 - 1 - - - 60 - 1 - 5 - 1 - 0 - 1 - - - - - - - - Klavaro - - - - - - - - - - Klavaro - - - - - - - - - - Klavaro - - - - - - - - - - Klavaro - - - - - - - - - - Klavaro - - - - - - - - - - Klavaro - - - - - - - - - - Klavaro - - - - - - - - - - 1 - - - 2 - - - 3 - - - 4 - - - - - - - - - - 1 - - - 2 - - - 3 - - - 4 - - - - - - - 8 - Klavaro - Main menu - 420 - - - - - True - vertical - 8 - - - True - vertical - 5 - - - True - True - False - Don't be shy about learning the basics! - - - - - True - - - True - 10 - gtk-dialog-warning - 6 - - - False - False - 0 - - - - - True - vertical - - - True - 0 - 1 - 2 - Introduction - button_basic - - - 0 - - - - - True - 0 - 0 - 2 - Learn how to type correctly - - - 1 - - - - - 1 - - - - - - - 0 - - - - - True - True - False - Initial training for your fingers. - - - - - True - - - True - 10 - gtk-strikethrough - 6 - - - False - False - 0 - - - - - True - vertical - - - True - 0 - 1 - 2 - Basic course - button_basic - - - 0 - - - - - True - 0 - 0 - 2 - First steps with initial training - - - 1 - - - - - 1 - - - - - - - 1 - - - - - True - True - False - Memorizing the keyboard practicing random keys exercises. - - - - - True - - - True - 10 - gtk-bold - 6 - - - False - False - 0 - - - - - True - vertical - - - True - 0 - 1 - 2 - Adaptability - button_basic - - - 0 - - - - - True - 0 - 0 - 2 - Practice with random keys - - - 1 - - - - - 1 - - - - - - - 2 - - - - - True - True - False - Accelerating the touches practicing random words exercises. - - - - - True - - - True - 10 - gtk-spell-check - 6 - - - False - False - 0 - - - - - True - vertical - - - True - 0 - 1 - 2 - Velocity - button_basic - - - 0 - - - - - True - 0 - 0 - 2 - Practice with random words - - - 1 - - - - - 1 - - - - - - - 3 - - - - - True - True - False - Becoming proficient practicing complete paragraphs exercises. - - - - - True - - - True - 10 - fluid.png - 5 - - - False - False - 0 - - - - - True - vertical - - - True - 0 - 1 - 2 - Fluidness - button_basic - - - 0 - - - - - True - 0 - 0 - 2 - Practice with complete texts - - - 1 - - - - - 1 - - - - - - - 4 - - - - - False - False - 0 - - - - - True - 2 - 3 - 4 - 10 - - - True - Keyboard layout for modules 1 and 2. Also used informatively in the fluidness contest. - 0 - _Keyboard: - True - combobox_kbd_country - - - 1 - 2 - GTK_FILL - - - - - True - Language for modules 3 and 4. - 0 - _Language: - True - combobox_language - - - GTK_FILL - - - - - True - Variant - - model1 - - - - 0 - - - - - 2 - 3 - 1 - 2 - - - - - True - Country / Custom - - model2 - - - - 0 - - - - - 1 - 2 - 1 - 2 - - - - - True - Your language here. - - model3 - - - - 0 - - - - - 1 - 2 - - - - - - Speech - True - True - False - Espeak - True - - - - 2 - 3 - - - - - False - False - 1 - - - - - True - 5 - - - True - True - False - Little tip about this program. - - - - True - 0 - 0 - - - True - - - True - gtk-help - - - False - False - 0 - - - - - True - 4 - 4 - _Help - True - - - False - False - 2 - 1 - - - - - - - - - False - False - 0 - - - - - True - True - False - General information about the program. - - - - True - 0 - 0 - - - True - - - True - gtk-about - - - False - False - 0 - - - - - True - 4 - 4 - _About... - True - - - False - False - 2 - 1 - - - - - - - - - False - False - 1 - - - - - True - True - False - Exit the application immediately. - - - - True - 0 - 0 - - - True - - - True - gtk-close - - - False - False - 0 - - - - - True - 4 - 4 - _Close - True - - - False - False - 2 - 1 - - - - - - - - - False - False - end - 2 - - - - - False - False - end - 2 - - - - - - - 6 - Klavaro - 750 - 540 - - - - - True - True - vertical - - - True - - - True - False - False - Load other exercises/lessons - 4 - none - - - - True - 2 - - - True - other.png - - - False - False - 0 - - - - - True - _Other texts - True - - - False - False - 1 - - - - - - - False - False - 0 - - - - - True - - - False - False - 4 - 1 - - - - - True - 4 - _Lesson: - True - center - spinbutton_lesson - - - False - False - 2 - - - - - True - True - 2 - 0.5 - adjustment1 - 0.5 - True - if-valid - - - - False - False - 3 - - - - - True - - - False - False - 4 - 4 - - - - - True - 0 - 6 - 12 - char - - - False - False - 5 - - - - - True - True - Edit the character set to be used in this lesson. - 80 - - - - 3 - 6 - - - - - True - True - False - Edit the character set to be used in lessons 44 through 50. - 8 - none - True - - - - True - gtk-edit - 1 - - - - - False - False - end - 8 - - - - - True - True - True - This is a specific exercise, adjusted to your error profile. - 8 - none - True - True - - - - True - gtk-dialog-warning - 1 - - - - - False - False - end - 7 - - - - - False - False - 0 - - - - - 600 - 300 - True - False - never - automatic - in - - - True - False - 9 - 1 - 1 - False - word - 10 - 10 - False - False - - - - - - 4 - 1 - - - - - True - - - True - True - True - True - True - Drag and drop text here to practice with it. - gtk-clear - True - True - Press here to restart the exercise. Hotkey: [Ctrl-R] - - - - - - - - - - 0 - - - - - True - False - - - - - - False - False - Press here to restart the exercise. Hotkey: [Ctrl R] - 4 - none - False - - - - - - True - gtk-clear - 1 - - - - - - - False - 1 - - - - - True - False - False - Show the virtual keyboard and the relation between fingers and keys. - none - - - - True - 2 - - - True - 2 - key.png - 2 - - - False - False - 0 - - - - - True - _Keyboard - True - - - False - False - 1 - - - - - - - False - False - 2 - 2 - - - - - True - True - False - Select the font to be used in the exercise window. - none - - - - True - - - True - 2 - gtk-select-font - 3 - - - 0 - - - - - True - _Font - True - - - 1 - - - - - - - False - False - 2 - 3 - - - - - True - True - True - Keep this checked if you want to get those nice beeps. - none - True - True - - - - True - - - True - 2 - beep.png - 2 - - - 0 - - - - - True - _Beep - True - - - 1 - - - - - - - False - False - 4 - - - - - False - False - 4 - 2 - - - - - True - - - True - True - True - - - - True - - - True - gtk-dialog-info - 2 - - - False - False - 0 - - - - - True - 2 - Co_urse information - True - - - False - False - 2 - 1 - - - - - - - False - False - 0 - - - - - True - False - False - Charts showing the learning progress along the exercises. - - - - True - - - True - progress.png - 2 - - - False - False - 0 - - - - - True - _Progress - True - - - False - False - 2 - 1 - - - - - - - False - False - 4 - 1 - - - - - True - False - False - Show local and external scores from other users. - - - - True - - - True - top10.png - 3 - - - False - False - 0 - - - - - True - _Top 10 - True - - - False - False - 2 - 1 - - - - - - - False - False - 4 - - - - - True - False - False - Return to the main menu. - - - - True - - - True - gtk-go-back - 2 - - - False - False - 0 - - - - - True - B_ack to menu - True - - - False - False - 2 - 1 - - - - - - - False - False - 4 - end - 3 - - - - - True - False - False - Exit the application immediately. - - - - True - - - True - gtk-close - 2 - - - False - False - 0 - - - - - True - 2 - _Close - True - - - False - False - 2 - 1 - - - - - - - False - False - end - 2 - - - - - False - False - 3 - - - - - - - Klavaro - True - dialog - True - False - - - - - True - 4 - vertical - 4 - - - True - True - True - True - True - True - hands_0.png - - - 0 - - - - - True - end - - - True - True - True - Close this window. - none - - - - True - 0.5 - 0.5 - - - True - - - True - gtk-close - 2 - - - 0 - - - - - True - _Close - True - - - 1 - - - - - - - - - False - False - 0 - - - - - False - False - 1 - 1 - - - - - - - 4 - Font definition - mouse - True - dialog - True - False - center - - - - True - 4 - - - - - True - True - True - False - - - - - True - True - True - False - - - - - True - True - True - False - 0.49000000953674316 - - - - - 400 - 440 - 4 - Top 10 - True - dialog - True - False - - - - True - 4 - vertical - 8 - - - True - 8 - - - True - False - - model4 - - - - 0 - - - - - 0 - - - - - True - Your language here. - False - - model5 - - - - 0 - - - - - 1 - - - - - False - False - 0 - - - - - True - - - True - True - 300 - True - - - 350 - True - True - automatic - automatic - top-right - in - - - True - True - True - True - - - - - False - True - - - - - 300 - True - automatic - automatic - in - - - 300 - True - True - True - True - - - - - True - True - - - - - 0 - - - - - True - True - True - Show extra information - none - - - - True - left - in - - - - - False - False - 1 - - - - - True - True - Hide extra information - none - - - - True - in - - - - - False - False - 2 - - - - - 1 - - - - - True - - - True - True - True - - - - True - go_www.png - - - - - False - False - 0 - - - - - True - True - True - False - Publish to the web your local scores. - - - - True - 0 - 0 - - - True - 2 - - - True - gtk-goto-top - - - False - False - 0 - - - - - True - _Participate - True - - - False - False - 1 - - - - - - - - - False - False - 10 - 1 - - - - - True - True - True - False - Download from the web the most up to date ranking. - - - - True - 0 - 0 - - - True - 2 - - - True - gtk-goto-bottom - - - False - False - 0 - - - - - True - _Update - True - - - False - False - 1 - - - - - - - - - False - False - 2 - - - - - True - 10 - 0 - - - 3 - - - - - True - True - True - False - Close this window. - - - - True - 0 - 0 - - - True - - - True - gtk-close - - - False - False - 0 - - - - - True - _Close - True - - - False - False - 2 - 1 - - - - - - - - - False - False - 4 - - - - - False - False - 2 - - - - - True - 4 - False - - - False - False - 3 - - - - - - - 5 - About 'Klavaro' - False - center - True - dialog - True - False - Klavaro - Copyright (C) Free Software Foundation 2008-2011 - Yet another touch typing tutor - http://klavaro.sourceforge.net/ - klavaro.sf.net - GNU GPL v3 - -This program is free software, licensed under the terms of the GNU -General Public License as published by the Free Software Foundation, -either version 3 of the License, or (at your option) any later version. -You should have received a copy of the GNU General Public License -along with this program. If not, see <http://www.gnu.org/licenses/>. - -- Felipe Castro - <fefcas@gmail.com> -- Petr Machata - -- Felipe Castro - -- <http://translationproject.org/domain/klavaro.html> - -- Ankur ICT Developement Foundation, Bangladesh. -- Martin Šín -- Dieter Vanderfaeillie -- Richard van Schaik -- Dave Pawson (Great Britain) -- Gregory Palmer -- Felipe Castro -- Fabrice Haberer-Proust -- Lionel Dupuys -- Sébastien Wilmet -- Hermann J. Beckers -- Matthias Mailänder -- Gergely Máté -- Robert Stefaniuk -- Александр Казанцев (Alexandr Kazancev) -- Ibon Castilla -- Juan Macedo -- David Prieto -- Nils Pettersson -- Jess Body -- Trần Ngọc Quân - -- David Prieto -- Szczepan Marchewka - klavaro_96x96.png - - - - True - 2 - - - True - Remember always: someone loves you! - - - False - False - 3 - - - - - True - end - - - False - end - 0 - - - - - - - 8 - False - True - True - dialog - True - False - - - True - 8 - - - True - - - True - 12 - - - 350 - True - 0 - title - fill - True - - - False - False - 0 - - - - - 350 - 0 - text 1 - fill - True - 44 - - - False - False - 1 - - - - - 350 - 0 - text 2 - fill - True - - - False - False - 2 - - - - - True - True - automatic - automatic - in - - - True - True - 4 - 4 - False - word - fill - 5 - 5 - False - - - - - 3 - - - - - 0 - - - - - True - 2 - - - 1 - - - - - True - - - True - 7 - - - False - False - 0 - - - - - True - 0 - 0 - hands_0.png - - - False - False - 1 - - - - - False - False - 2 - - - - - 0 - - - - - True - 9 - - - True - Country / Custom - - model6 - - - - 0 - - - - - 0 - - - - - True - Variant - - model7 - - - - 0 - - - - - 1 - - - - - True - True - False - Remove the selected custom layout. - - - - True - 0 - 0 - - - True - 2 - - - True - gtk-delete - - - False - False - 0 - - - - - True - _Remove - True - - - False - False - 1 - - - - - - - - - False - False - 2 - - - - - False - False - 1 - 1 - - - - - True - - - 40 - 32 - True - False - False - False - True - - - 393 - 140 - - - - - 40 - 32 - True - False - False - False - True - - - 350 - 140 - - - - - 40 - 32 - True - False - False - False - True - - - 43 - 140 - - - - - 40 - 32 - True - False - False - False - True - - - 86 - 140 - - - - - 40 - 32 - True - False - False - False - True - - - 436 - 140 - - - - - 59 - 32 - True - True - False - Toggles the shift effect on the keys. Alternates between the upper and lower characters of the keys. - - - - - True - 0 - gtk-go-up - - - - - 463 - 105 - - - - - SPACE BAR - 218 - 32 - True - True - True - True - True - True - False - thumbs - True - - - - 129 - 140 - - - - - 40 - 32 - True - False - False - Toggles the shift effect on the keys. Alternates between the upper and lower characters of the keys. - - - - - True - 7.4505801528346183e-09 - gtk-go-up - - - - - 105 - - - - - Tab - 46 - 32 - True - False - False - False - True - - - 35 - - - - - 43 - 32 - True - False - False - False - - - True - gtk-ok - - - - - 479 - 70 - - - - - Ctrl - 43 - 32 - True - False - False - False - True - - - 479 - 140 - - - - - Ctrl - 40 - 32 - True - False - False - False - True - - - 140 - - - - - Caps - 56 - 32 - True - False - False - False - True - - - 70 - - - - - 32 - 32 - True - False - False - False - - - True - gtk-media-rewind - 1 - - - - - 490 - - - - - False - False - 2 - - - - - True - 4 - - - True - 0 - 8 - S_ave as: - True - entry_keyboard - - - False - False - 0 - - - - - True - True - - - 1 - - - - - False - False - 4 - 3 - - - - - True - 8 - - - True - True - False - Show previous screen. - - - - - - True - 0 - 0 - - - True - - - True - gtk-go-back - - - False - False - 0 - - - - - True - _Previous step - True - - - False - False - 4 - 1 - - - - - - - - - False - False - 0 - - - - - True - True - True - True - True - False - Show next screen. - - - - - - True - 0 - 0 - - - True - - - True - gtk-go-forward - - - False - False - 0 - - - - - True - _Next step - True - - - False - False - 4 - 1 - - - - - - - - - False - False - 1 - - - - - True - - - 2 - - - - - True - True - False - Return without any modification. - - - - True - 0 - 0 - - - True - - - True - gtk-cancel - - - False - False - 0 - - - - - True - _Cancel - True - - - False - False - 4 - 1 - - - - - - - - - False - False - 3 - - - - - True - True - True - True - True - False - Save the current keyboard layout with the name specified above. - - - - True - 0 - 0 - - - True - - - True - gtk-save - - - False - False - 0 - - - - - True - _Save and use - True - - - False - False - 4 - 1 - - - - - - - - - False - False - 4 - - - - - True - True - False - If you like those beautiful hands, click here to close this window keeping them. - - - - True - 0 - 0 - - - True - - - True - gtk-leave-fullscreen - - - False - False - 2 - 0 - - - - - True - 2 - _Keep hands - True - - - False - False - 1 - - - - - - - - - False - False - end - 6 - - - - - True - True - False - Close this window. - - - - - True - 0 - 0 - - - True - - - True - gtk-close - - - False - False - 2 - 0 - - - - - True - 2 - _Close - True - - - False - False - 1 - - - - - - - - - False - False - end - 5 - - - - - False - False - 4 - - - - - - - Change language - False - True - mouse - True - dialog - True - False - center - - - - True - - - True - 0 - 0 - 10 - 10 - Attention! - center - - - False - False - 0 - - - - - True - 0 - 1 - 10 - 10 - CONFIRM_MESSAGE - True - - - False - False - 1 - - - - - True - 5 - 8 - - - True - 5 - Do you confirm? - center - - - 0 - - - - - 5 - NO_ACTION - center - - - False - False - 1 - - - - - True - True - True - True - True - True - False - 5 - - - - - True - 0 - 0 - 4 - 4 - - - True - 4 - - - True - gtk-cancel - - - False - False - 0 - - - - - True - _No - True - - - False - False - 4 - 1 - - - - - - - - - False - False - 2 - - - - - True - True - False - 5 - - - - True - 0 - 0 - 4 - 4 - - - True - 4 - - - True - gtk-delete - - - False - False - 0 - - - - - True - _Yes - True - - - False - False - 4 - 1 - - - - - - - - - False - False - 3 - - - - - False - False - end - 2 - - - - - - - 450 - 400 - 8 - Klavaro - mouse - True - dialog - True - True - False - center - - - True - 8 - - - True - - - 250 - 250 - True - True - automatic - automatic - in - - - True - True - False - True - False - - - - - - - - 0 - - - - - 25 - True - 0 - 1 - Re_name: - True - entry_other_rename - - - False - False - 1 - - - - - True - True - Rename the selected item. - - - - - False - False - 3 - 2 - - - - - 0 - - - - - True - 12 - - - True - True - False - Read a text file and add a copy of it here. The file must be encoded in UTF-8. - - - - True - - - True - 0 - gtk-open - 2 - - - False - False - 0 - - - - - True - 0 - _Open text file - True - - - False - False - 2 - 1 - - - - - - - False - False - 0 - - - - - True - True - False - Paste text that was copied to the clipboard. - - - - True - - - True - 0 - gtk-paste - 2 - - - False - False - 0 - - - - - True - 0 - _Paste from clipboard - True - - - False - False - 2 - 1 - - - - - - - False - False - 1 - - - - - True - True - False - Remove the selected item. - - - - True - - - True - 0 - gtk-delete - 2 - - - False - False - 0 - - - - - True - 0 - _Remove copied file - True - - - False - False - 2 - 1 - - - - - - - False - False - 2 - - - - - True - 8 - - - True - True - True - - - - True - 0.5 - 0.5 - - - True - - - True - gtk-cancel - 2 - - - 0 - - - - - True - _Cancel - True - - - 4 - 1 - - - - - - - - - 0 - - - - - True - True - True - False - Apply the selected item to create an exercise. - - - - True - 0.5 - 0.5 - - - True - - - True - gtk-ok - 2 - - - 0 - - - - - True - _Apply - True - - - 4 - 1 - - - - - - - - - 1 - - - - - False - False - end - 3 - - - - - False - False - 1 - - - - - - - 8 - Klavaro - Progress - True - dialog - True - False - - - - True - 8 - - - True - 6 - - - True - - model8 - - - - 0 - - - - - 0 - - - - - True - - model9 - - - - 0 - - - - - 1 - - - - - True - 1 - _Lesson: - True - spinbutton_stat_lesson - - - False - False - 2 - - - - - True - True - False - 2 - 2 - 0.5 - adjustment2 - True - - - - False - False - 3 - - - - - False - False - 0 - - - - - 604 - 284 - True - 0 - - - - - - 1 - - - - - True - 6 - - - True - Y: - - - False - False - 0 - - - - - True - True - True - Value - False - 7 - 0.5 - - - False - False - 1 - - - - - True - 1 - X: - - - False - False - 2 - - - - - True - True - True - Date & Time - False - 19 - 0.5 - - - False - False - 3 - - - - - 20 - True - - - 5 - - - - - True - True - False - Clear all the progress data, for every module. - half - - - - - True - 0 - 0 - - - True - - - True - gtk-delete - - - False - False - 0 - - - - - True - 2 - _Reset - True - button_stat_reset - - - False - False - 2 - 1 - - - - - - - - - False - False - 6 - - - - - True - True - False - Close this window, returning to the exercise. - half - - - - True - 0 - 0 - - - True - - - True - gtk-close - - - False - False - 0 - - - - - True - 2 - _Close - True - button_stat_close - - - False - False - 2 - 1 - - - - - - - - - False - False - end - 4 - - - - - False - False - 2 - - - - - - - cursor - 4 - Klavaro - Select file - mouse - True - dialog - True - False - center - - - True - 2 - - - - - - True - end - - - True - True - True - - - - True - 0.5 - 0.5 - - - True - - - True - gtk-cancel - - - 0 - - - - - True - _Cancel - True - - - 1 - - - - - - - - - False - False - 0 - - - - - True - True - True - - - - True - 0.5 - 0.5 - - - True - - - True - gtk-open - - - 0 - - - - - True - _Open - True - - - 1 - - - - - - - - - False - False - 1 - - - - - False - end - 0 - - - - - - - 4 - Help? - False - center-on-parent - True - dialog - True - False - - - True - 4 - - - True - 5 - queue - - - True - 10 - 15 - 10 - 15 - - - True - - - 380 - True - 0 - 0 - 4 - The main menu of the application is very straightforward. Just select the type of exercise you wish to take. Do not worry about clicking any button on the screen. The buttons will never hurt you! - fill - True - - - False - False - 0 - - - - - 380 - True - 0 - 0 - Also the controls have tips which will appear if you hover over them with your mouse. These tips can come in very handy. To see how these tips work, position your mouse over the button below, and without clicking, wait for the tip to appear... - fill - True - - - False - False - 1 - - - - - - - - - False - False - 1 - - - - - True - end - - - True - True - True - False - This is a tip. Now you press this button to return to the main menu. - - - - True - 0 - 0 - - - True - 2 - - - True - gtk-go-back - 2 - - - False - False - 0 - - - - - True - B_ack to menu - True - char - button_info_return - - - False - False - 1 - - - - - - - - - False - False - 0 - - - - - False - False - end - 0 - - - - - - button_info_return - - - diff -Nru klavaro-1.9.9/data/Makefile.am klavaro-3.00/data/Makefile.am --- klavaro-1.9.9/data/Makefile.am 2013-08-31 18:10:32.000000000 +0000 +++ klavaro-3.00/data/Makefile.am 2014-01-09 12:16:40.000000000 +0000 @@ -3,7 +3,7 @@ SUBDIRS = icons klavaro_data = \ - klavaro.ui \ + klavaro.glade \ klavaro_96x96.png \ beep.png \ fluid.png \ @@ -45,6 +45,7 @@ dvorak_tr_F.kbd \ dvorak_uk.kbd \ dvorak_us.kbd \ + dvorak_us_prog.kbd \ jtsuken_kk.kbd \ jtsuken_ru.kbd \ jtsuken_ru_typewriter.kbd \ @@ -139,17 +140,13 @@ pkgdata_DATA = $(klavaro_data) if IS_WIN32 -EXTRA_DIST = $(klavaro_data) \ - klavaro.glade +EXTRA_DIST = $(klavaro_data) else desktopdir = $(prefix)/$(DATADIRNAME)/applications desktop_in_file = klavaro.desktop.in desktop_DATA = $(desktop_in_file:.desktop.in=.desktop) @INTLTOOL_DESKTOP_RULE@ +DISTCLEANFILES = klavaro.desktop EXTRA_DIST = $(klavaro_data) \ - $(desktop_in_file) \ - klavaro.glade + $(desktop_in_file) endif - -klavaro.ui: klavaro.glade - $(GTKBLDRCONV) $< $@ diff -Nru klavaro-1.9.9/data/Makefile.in klavaro-3.00/data/Makefile.in --- klavaro-1.9.9/data/Makefile.in 2013-08-31 18:11:03.000000000 +0000 +++ klavaro-3.00/data/Makefile.in 2014-01-21 23:25:38.000000000 +0000 @@ -1,4 +1,4 @@ -# Makefile.in generated by automake 1.13.3 from Makefile.am. +# Makefile.in generated by automake 1.14.1 from Makefile.am. # @configure_input@ # Copyright (C) 1994-2013 Free Software Foundation, Inc. @@ -84,7 +84,14 @@ DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am \ $(top_srcdir)/mkinstalldirs ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 -am__aclocal_m4_deps = $(top_srcdir)/configure.ac +am__aclocal_m4_deps = $(top_srcdir)/m4/gettext.m4 \ + $(top_srcdir)/m4/iconv.m4 $(top_srcdir)/m4/intltool.m4 \ + $(top_srcdir)/m4/lib-ld.m4 $(top_srcdir)/m4/lib-link.m4 \ + $(top_srcdir)/m4/lib-prefix.m4 $(top_srcdir)/m4/libtool.m4 \ + $(top_srcdir)/m4/ltoptions.m4 $(top_srcdir)/m4/ltsugar.m4 \ + $(top_srcdir)/m4/ltversion.m4 $(top_srcdir)/m4/lt~obsolete.m4 \ + $(top_srcdir)/m4/nls.m4 $(top_srcdir)/m4/po.m4 \ + $(top_srcdir)/m4/progtest.m4 $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs @@ -205,10 +212,13 @@ ALL_LINGUAS = @ALL_LINGUAS@ AMTAR = @AMTAR@ AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ +AR = @AR@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ +CAIRO_CFLAGS = @CAIRO_CFLAGS@ +CAIRO_LIBS = @CAIRO_LIBS@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ @@ -218,17 +228,22 @@ DATADIRNAME = @DATADIRNAME@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ +DLLTOOL = @DLLTOOL@ +DSYMUTIL = @DSYMUTIL@ +DUMPBIN = @DUMPBIN@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EXEEXT = @EXEEXT@ +FGREP = @FGREP@ GETTEXT_MACRO_VERSION = @GETTEXT_MACRO_VERSION@ GETTEXT_PACKAGE = @GETTEXT_PACKAGE@ GMSGFMT = @GMSGFMT@ GMSGFMT_015 = @GMSGFMT_015@ GREP = @GREP@ -GTKBLDRCONV = @GTKBLDRCONV@ +GTK_CFLAGS = @GTK_CFLAGS@ +GTK_LIBS = @GTK_LIBS@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ @@ -244,35 +259,46 @@ INTLTOOL__v_MERGE_ = @INTLTOOL__v_MERGE_@ INTLTOOL__v_MERGE_0 = @INTLTOOL__v_MERGE_0@ INTL_MACOSX_LIBS = @INTL_MACOSX_LIBS@ +LD = @LD@ LDFLAGS = @LDFLAGS@ LIBICONV = @LIBICONV@ LIBINTL = @LIBINTL@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ +LIBTOOL = @LIBTOOL@ +LIPO = @LIPO@ +LN_S = @LN_S@ LTLIBICONV = @LTLIBICONV@ LTLIBINTL = @LTLIBINTL@ LTLIBOBJS = @LTLIBOBJS@ MAKEINFO = @MAKEINFO@ +MANIFEST_TOOL = @MANIFEST_TOOL@ MKDIR_P = @MKDIR_P@ MSGFMT = @MSGFMT@ MSGFMT_015 = @MSGFMT_015@ MSGMERGE = @MSGMERGE@ +NM = @NM@ +NMEDIT = @NMEDIT@ +OBJDUMP = @OBJDUMP@ OBJEXT = @OBJEXT@ +OTOOL = @OTOOL@ +OTOOL64 = @OTOOL64@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ -PACKAGE_CFLAGS = @PACKAGE_CFLAGS@ -PACKAGE_LIBS = @PACKAGE_LIBS@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ +PANGO_CFLAGS = @PANGO_CFLAGS@ +PANGO_LIBS = @PANGO_LIBS@ PATH_SEPARATOR = @PATH_SEPARATOR@ PKG_CONFIG = @PKG_CONFIG@ PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@ PKG_CONFIG_PATH = @PKG_CONFIG_PATH@ POSUB = @POSUB@ POW_LIB = @POW_LIB@ +RANLIB = @RANLIB@ SED = @SED@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ @@ -286,7 +312,9 @@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ +ac_ct_AR = @ac_ct_AR@ ac_ct_CC = @ac_ct_CC@ +ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ @@ -336,7 +364,7 @@ top_srcdir = @top_srcdir@ SUBDIRS = icons klavaro_data = \ - klavaro.ui \ + klavaro.glade \ klavaro_96x96.png \ beep.png \ fluid.png \ @@ -378,6 +406,7 @@ dvorak_tr_F.kbd \ dvorak_uk.kbd \ dvorak_us.kbd \ + dvorak_us_prog.kbd \ jtsuken_kk.kbd \ jtsuken_ru.kbd \ jtsuken_ru_typewriter.kbd \ @@ -471,15 +500,13 @@ pkgdata_DATA = $(klavaro_data) @IS_WIN32_FALSE@EXTRA_DIST = $(klavaro_data) \ -@IS_WIN32_FALSE@ $(desktop_in_file) \ -@IS_WIN32_FALSE@ klavaro.glade - -@IS_WIN32_TRUE@EXTRA_DIST = $(klavaro_data) \ -@IS_WIN32_TRUE@ klavaro.glade +@IS_WIN32_FALSE@ $(desktop_in_file) +@IS_WIN32_TRUE@EXTRA_DIST = $(klavaro_data) @IS_WIN32_FALSE@desktopdir = $(prefix)/$(DATADIRNAME)/applications @IS_WIN32_FALSE@desktop_in_file = klavaro.desktop.in @IS_WIN32_FALSE@desktop_DATA = $(desktop_in_file:.desktop.in=.desktop) +@IS_WIN32_FALSE@DISTCLEANFILES = klavaro.desktop all: all-recursive .SUFFIXES: @@ -513,6 +540,12 @@ $(ACLOCAL_M4): $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(am__aclocal_m4_deps): + +mostlyclean-libtool: + -rm -f *.lo + +clean-libtool: + -rm -rf .libs _libs install-desktopDATA: $(desktop_DATA) @$(NORMAL_INSTALL) @list='$(desktop_DATA)'; test -n "$(desktopdir)" || list=; \ @@ -744,13 +777,14 @@ distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) + -test -z "$(DISTCLEANFILES)" || rm -f $(DISTCLEANFILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." clean: clean-recursive -clean-am: clean-generic mostlyclean-am +clean-am: clean-generic clean-libtool mostlyclean-am distclean: distclean-recursive -rm -f Makefile @@ -802,7 +836,7 @@ mostlyclean: mostlyclean-recursive -mostlyclean-am: mostlyclean-generic +mostlyclean-am: mostlyclean-generic mostlyclean-libtool pdf: pdf-recursive @@ -817,24 +851,22 @@ .MAKE: $(am__recursive_targets) install-am install-strip .PHONY: $(am__recursive_targets) CTAGS GTAGS TAGS all all-am check \ - check-am clean clean-generic cscopelist-am ctags ctags-am \ - distclean distclean-generic distclean-tags distdir dvi dvi-am \ - html html-am info info-am install install-am install-data \ - install-data-am install-desktopDATA install-dvi install-dvi-am \ - install-exec install-exec-am install-html install-html-am \ - install-info install-info-am install-man install-pdf \ - install-pdf-am install-pkgdataDATA install-ps install-ps-am \ - install-strip installcheck installcheck-am installdirs \ - installdirs-am maintainer-clean maintainer-clean-generic \ - mostlyclean mostlyclean-generic pdf pdf-am ps ps-am tags \ - tags-am uninstall uninstall-am uninstall-desktopDATA \ + check-am clean clean-generic clean-libtool cscopelist-am ctags \ + ctags-am distclean distclean-generic distclean-libtool \ + distclean-tags distdir dvi dvi-am html html-am info info-am \ + install install-am install-data install-data-am \ + install-desktopDATA install-dvi install-dvi-am install-exec \ + install-exec-am install-html install-html-am install-info \ + install-info-am install-man install-pdf install-pdf-am \ + install-pkgdataDATA install-ps install-ps-am install-strip \ + installcheck installcheck-am installdirs installdirs-am \ + maintainer-clean maintainer-clean-generic mostlyclean \ + mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \ + tags tags-am uninstall uninstall-am uninstall-desktopDATA \ uninstall-pkgdataDATA @IS_WIN32_FALSE@@INTLTOOL_DESKTOP_RULE@ -klavaro.ui: klavaro.glade - $(GTKBLDRCONV) $< $@ - # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: diff -Nru klavaro-1.9.9/data/ru.paragraphs klavaro-3.00/data/ru.paragraphs --- klavaro-1.9.9/data/ru.paragraphs 2013-07-24 18:38:57.000000000 +0000 +++ klavaro-3.00/data/ru.paragraphs 2013-09-22 00:03:53.000000000 +0000 @@ -1,18 +1,59 @@ -Это была маленькая разминка, а теперь будем писать всерьёз: Грузоподъёмный неперегруженный грузчик с грузом ехал с грузом на грузовом лифте с другими грузчиками у которых были неперегруженные грузовые грузы и вместе они вышли с грузового лифта с грузами и погрузили грузы на грузоподъёмник! Иллюзионая иллюзия сильно проиллюзиовала меня, а Импорвитация вызывает у меня сильные головные боли! +Уже было начало июня, когда князь Андрей, возвращаясь домой, въехал опять в ту березовую рощу, в которой этот старый, корявый дуб так странно и памятно поразил его. Бубенчики еще глуше звенели в лесу, чем полтора месяца тому назад; все было полно, тенисто и густо; и молодые ели, рассыпанные по лесу, не нарушали общей красоты и, подделываясь под общий характер, нежно зеленели пушистыми молодыми побегами. -в Школе 6 г.Новороссийска учиться Замученный перемученый ученик! инкриминировать инкроминацию, кролик съел очень большой кочан капусты. Краснознамённый красноречивый красногвардеец ехал по краснолесью и красногорью на своём красном перекрашеном от красоты или красноты красочно красивом крашеном коне. Ленин ехал по ленинскому проспекту на ленинской машине вместе с Леной. +Целый день был жаркий, где-то собиралась гроза, но только небольшая тучка брызнула на пыль дороги и на сочные листья. Левая сторона леса была темна, в тени; правая мокрая, глянцовитая блестела на солнце, чуть колыхаясь от ветра. Все было в цвету; соловьи трещали и перекатывались то близко, то далеко. -Я был у евреев в еврейском городе и гулял по еврейским улицам в еврейской одежде, покупал еврейскую еду, разговаривал с евреями и вообще я ЕВРЕЙ!!! Ты когда-нибудь видел меридиональный мередиан на мередиальновысокоразвитоимпульсивном уровне? Металлорежущий металлургический металлург проходил курсы по резанию металла на уроке металлургии. +"Да, здесь, в этом лесу был этот дуб, с которым мы были согласны", подумал князь Андрей. "Да где он", подумал опять князь Андрей, глядя на левую сторону дороги и сам того не зная, не узнавая его, любовался тем дубом, которого он искал. Старый дуб, весь преображённый, раскинувшись шатром сочной, темной зелени, млел, чуть колыхаясь в лучах вечернего солнца. Ни корявых пальцев, ни болячек, ни старого недоверия и горя, — ничего не было видно. Сквозь жесткую, столетнюю кору пробились без сучков сочные, молодые листья, так что поверить нельзя было, что этот старик произвел их. "Да, это тот самый дуб", подумал князь Андрей, и на него вдруг нашло беспричинное, весеннее чувство радости и обновления. Все лучшие минуты его жизни вдруг в одно и то же время вспомнились ему. И Аустерлиц с высоким небом, и мертвое укоризненное лицо жены, и Пьер на пароме, и девочка, взволнованная красотою ночи, и эта ночь, и луна, — и все это вдруг вспомнилось ему. -Механизировать метрополитен, метеоритная метеорология. недобросовестный, недогадливый и недоверчивый мальчик пошёл гулять неглядя по недоделаной улице и вдруг произошло недосягаемое недаразумение и недоросль недосмотрел до недотроги и недоучки и из-за этого произошёл недюжинный нежданный недочёт! Всё Пока! +"Нет, жизнь не кончена в 31 год, вдруг окончательно, беспеременно решил князь Андрей. Мало того, что я знаю всё то, что есть во мне, надо, чтобы и все знали это: и Пьер, и эта девочка, которая хотела улететь в небо, надо, чтобы все знали меня, чтобы не для одного меня шла моя жизнь, чтоб не жили они так независимо от моей жизни, чтоб на всех она отражалась и чтобы все они жили со мною вместе!" -1945 проверка. начинаем зарядку и пишем предложения: С горы откарывается чудесный вид. На бывшей окраине нашего города открыт новый спортивный комплекс, в центре его построено высокое куполообразное здание из стекла и битона. Разминка закончена на 5, и скоро ты будешь писать 300-400 знаков в минуту без ошибок! :) А теперь как говорится к делу:) Независимые люди, покорить Эверест, неизъяснимое предложение. Я предпочитаю читать Пушкина, но не люблю читать Гоголя-моголя. по-моему, по-твоему, по-нашему, по-понятиям. +Вечером мы выступили в ночной марш к реке Рузе, за тридцать километров от Волоколамска. Житель южного Казахстана, я привык к поздней зиме, а здесь, в Подмосковье, в начале октября утром уже подмораживало. На рассвете по схваченной морозом дороге, по затвердевшей, вывороченной колесами грязи мы подошли к селу Новлянскому. Оставив батальон близ села, в лесу, я с командирами рот отправился на рекогносцировку. Моему батальону было отмерено семь километров по берегу извилистой Рузы. В бою, по нашим уставам, такой участок велик даже для полка. Это, однако, не тревожило. Я был уверен, что, если противник действительно подойдет когда-нибудь сюда, его встретит на наших семи километрах не батальон, а пять или десять батальонов. С таким расчетом, думалось мне, надо готовить укрепления. -Когда Крамской увидел присланную в Петербург картину "Мокрый луг", он был потрясён и сказал: "ничего себе". Какая у тебя мечта? Писать 400 знаков в секунду без ошибок! играть в пинг-понг пинг-понговым мячиком. Рабоче-крестьянская работоспособность, раздвоение личности!идти наповал, одевать на руку перстень. Властелин колец. Нализо конфидециальный документ. +Не ожидайте от меня живописания природы. Я не знаю, красив или нет был расстилавшийся перед нами вид. По темному зеркалу неширокой медлительной Рузы распластались большие, будто вырезанные листья, на которых летом цвели, наверное, белые лилии. Может быть, это красиво, но я для себя засек: дрянная речонка, она мелка и удобна противнику для переправы. Однако береговые скаты с нашей стороны были недоступными для танков: поблескивая свежесрезанной глиной, хранящей следы лопат, к воде ниспадал отвесный уступ, называемый на военном языке эскарпом. -Виндоус-по-нашему окна! моя мечта: Форматировать диск С, ломать компы, бить молотком по клаве, пинать системный блок, выкидывать из окна модем! Про, ПРО, пРо, про это, про то, про нас проносить, УФ, пронесло! щий, Щий, зловещий, ить, ить, ИтЬ, Ить, пить, пилить, клеить. Ать, аТЬ, аТь, ругать, спАТЬ, просыпать уроки, играть в компьютерные игры. ик, ИК, иК, Ик, ящик, ключик, мучик, сючик, пучик. Набирать числа, вводить знаки. +За рекой виднелась даль - открытые поля и отдельные массивы, или, как говорят, клины, леса. В одном месте, несколько наискосок от села Новлянского, лес на противоположном берегу почти вплотную примыкал к воде. В нем, быть может, было все, чего пожелал бы художник, пишущий русский осенний лес, но мне этот выступ казался отвратительным: тут вероятнее всего мог, укрываясь от нашего огня, сосредоточиться для атаки противник. К черту эти сосны и ели! Вырубить их! Отодвинуть лес от реки! Хотя никто из нас, как сказано, не ожидал здесь вскорости боев, но нам была поставлена задача: оборудовать оборонительный рубеж, и следовало выполнить ее с полной добросовестностью, как положено офицерам и солдатам Красной Армии. -Излишняя роскошь, грубая ложь, правдивая речь, бескорыстная помощь, беречь время, увлечься спортом; читаешь интересную книгу, ловишь большую рыбу, купаешься в солёном море. Консерваторы сидят в консерватории. Йога ест йогурт. переносить песок. Делать ремонт, купить дорогую машину. Травить нафталином моль. +Почти в самом центре полярной станции страны раскинулось огромное Таймырское озеро. С запада на восток тянется оно длинной блистающей полосой. На севере возвышаются каменные глыбы, за ними маячат черные хребты. Сюда до последнего времени человек совсем не заглядывал. Лишь по течению рек можно встретить следы пребывания человека. Весенние воды иногда приносят с верховьев рваные сети, поплавки, поломанные весла и другие немудреные принадлежности рыбачьего обихода. -Неизгладимое впечатление, получить семизначную асю; наименование товара. Он в полном одиночестве бродил по городу в поисках райского наслаждения (типа баунти), маневрировать, манёвр, манеж, быть человеком! Вы закончили обучение ! Клаваро и Мандрива рулят! +У заболоченных берегов озера тундра оголилась, только кое-где белеют и блестят на солнце пятна снега. Движимое силой инерции, огромное ледяное поле напирает на берега. Еще крепко держит ноги скованная ледяным панцирем мерзлота. Лед в устье рек и речонок долго будет стоять, а озеро очистится дней через десять. И тогда песчаный берег, залитый светом, перейдет в таинственное свечение сонной воды, а дальше - в торжественные силуэты, смутные очертания противоположного берега. +В ясный ветреный день, вдыхая запахи пробужденной земли, бродим по проталинкам тундры и наблюдаем массу прелюбопытных явлений. Необычайно сочетание высокого неба с холодным ветром. Из-под ног то и дело выбегает, припадая к земле, куропатка; сорвется и тут же, как подстреленный, упадет на землю крошечный куличок. Стараясь увести незваного посетителя от своего гнезда, куличок начинает кувыркаться у самых ног. У основания каменной россыпи пробирается прожорливый песец, покрытый клочьями вылинявшей шерсти. Поравнявшись с обломками камней, песец делает хорошо рассчитанный прыжок и придавливает лапами выскочившую мышь. А еще дальше горностай, держа в зубах серебряную рыбу, скачками проноситься к нагроможденным валунам. + +У медленно тающих ледничков скоро начнут оживать и цвести растения. Первыми зацветут кандык и горянка, которые развиваются и борются за жизнь еще под прозрачною крышкою льда. В августе среди стелющейся на холмах полярной березы появятся первые грибы. + +В поросшей жалкой растительностью тундре есть свои чудесные ароматы. Наступит лето, и ветер заколышет венчики цветов, жужжа пролетит и сядет на цветок шмель. + +Небо опять хмурится, ветер начинает бешено свистеть. Пора возвращаться в дощатый домик полярной станции, где вкусно пахнет печеным хлебом и уютом человечьего жилья. А завтра мы начнем разведывательные работы. + +Все последние дни Сотников был словно в прострации. Чувствовал он себя скверно: обессилел без воды и пищи. И он молча, в полузабытьи, сидел среди тесной толпы людей на колючей, сухой траве без особых мыслей в голове и, наверно, потому не сразу понял смысл лихорадочного шепота рядом: "Хоть одного, а прикончу. Все равно…". Сотников осторожно повел в сторону взглядом: тот самый его сосед-лейтенант незаметно для других доставал из-под грязных бинтов на ноге обыкновенный перочинный ножик, и в глазах его таилась такая решимость, что Сотников подумал: такого не удержишь. + +Двое конвоиров, сойдясь вместе, прикуривали от зажигалки, один на коне чуть поодаль бдительно осматривал колонну. + +Они еще посидели на солнце, может, минут пятнадцать, пока с холма не послышалась какая-то команда, и немцы начали поднимать колонну. Сотников уже знал, на что решился сосед, который сразу же начал забирать из колонны в сторону, поближе к конвоиру. Конвоир этот был сильный, приземистый немец, как и все, с автоматом на груди, в тесном, пропотевшем под мышками кителе; из-под мокроватой с краев суконной пилотки выбивался совсем не арийский - черный, почти смоляной чуб. Немец торопливо докурил сигарету, сплюнул сквозь зубы и, по-видимому намереваясь подогнать какого-то пленного, нетерпеливо ступил два шага к колонне. В то же мгновение лейтенант, словно коршун, бросился на него сзади и по самый черенок вонзил нож в его загорелую шею. + +Коротко крякнув, немец осел наземь, кто-то поодаль крикнул: "Полундра!" - и несколько человек, будто их пружиной метнуло из колонны, бросились в поле. Сотников тоже рванулся прочь. + +Замешательство немцев длилось секунд пять, не больше, тотчас же в нескольких местах ударили очереди - первые пули прошли над его головой. Но он бежал. Кажется, никогда в жизни он не мчался с такой бешеной прытью, и в несколько широких прыжков взбежал на бугор с сосенками. Пули уже густо и беспорядочно пронизывали сосновую чащу, со всех сторон его осыпало хвоей, а он все мчал, не разбирая пути, как можно дальше, то и дело с радостным изумлением повторяя про себя: "Жив! Жив!" + +Минут через десять Тарвин начал догадываться, что все эти усталые, измученные люди представляли интересы полдюжины различных фирм Калькутты и Бомбея. Как и каждую весну, они без всякой надежды на успех осаждали королевский дворец, пытаясь получить хоть что-то по счетам с должника, которым был сам король. Его Величество заказывал все подряд, без разбору, и в огромных количествах - расплачиваться же за покупки очень не любил. Он покупал ружья, несессеры, зеркала, дорогие безделушки для каминной полки, вышивки, сверкающие всеми цветами радуги елочные украшения, седла и конскую сбрую, почтовые кареты, экипажи с четверками лошадей, духи, хирургические инструменты, подсвечники, китайский фарфор - поштучно или оптом, за наличные или в кредит, как заблагорассудится Его Королевскому Величеству. Теряя интерес к приобретенным вещам, он тут же утрачивал и желание платить за них, так как мало что занимало его пресыщенное воображение дольше двадцати минут. Иной раз случалось так, что сама покупка вещи удовлетворяла его сполна, и ящики с драгоценным содержимым, прибывавшие из Калькутты, оставались нераспакованными. Мир, воцарившийся в Индийской империи, мешал ему взяться за оружие и направить его против своих собратьев-королей, и он лишился единственной радости и забавы, которая тешила его самого и его предков на протяжении целых тысячелетий. И все же он мог играть в эту игру и сейчас, правда, в несколько видоизмененной форме - воюя с приказчиками, тщетно пытающимися получить с него по счету. + +Итак, по одну сторону стоял сам политический резидент государства, посаженный на это место для того, чтобы обучать короля искусству управления, и главное, экономии и бережливости, а по другую сторону - точнее сказать, у дворцовых ворот, обыкновенно находился коммивояжер, в душе которого боролись презрение к злостному неплательщику и присущее каждому англичанину благоговение перед королем. + +Нет ничего лучше Невского проспекта, по крайней мере в Петербурге; для него он составляет все. Чем не блестит эта улица - красавица нашей столицы! Я знаю, что ни один из бледных и чиновных ее жителей не променяет на все блага Невского проспекта. Не только кто имеет двадцать пять лет от роду, прекрасные усы и удивительно сшитый сюртук, но даже тот, у кого на подбородке выскакивают белые волоса и голова гладка, как серебряное блюдо, и тот в восторге от Невского проспекта. А дамы! О, дамам еще больше приятен Невский проспект. Да и кому же он не приятен? Едва только взойдешь на Невский проспект, как уже пахнет одним гуляньем. Хотя бы имел какое-нибудь нужное, необходимое дело, но, взошедши на него, верно, позабудешь о всяком деле. Здесь единственное место, где показываются люди не по необходимости, куда не загнала их надобность и меркантильный интерес, объемлющий весь Петербург. + +Невский проспект есть всеобщая коммуникация Петербурга. Здесь житель Петербургской или Выборгской части, несколько лет не бывавший у своего приятеля на Песках или у Московской заставы, может быть уверен, что встретится с ним непременно. Никакой адрес-календарь и справочное место не доставят такого верного известия, как Невский проспект. Всемогущий Невский проспект! Единственное развлечение бедного на гулянье Петербурга! Как чисто подметены его тротуары, и, боже, сколько ног оставило на нем следы свои! И неуклюжий грязный сапог отставного солдата, под тяжестью которого, кажется, трескается самый гранит, и миниатюрный, легкий, как дым, башмачок молоденькой дамы, оборачивающей свою головку к блестящим окнам магазина, как подсолнечник к солнцу, и гремящая сабля исполненного надежд прапорщика, проводящая по нем резкую царапину, - все вымещает на нем могущество силы или могущество слабости. Какая быстрая совершается на нем фантасмагория в течение одного только дня! + +Никакого упадка нет, да и быть не может. Просто цензуру смягчили, а частию, слава богу, и вовсе упразднили, и то, что раньше мы слышали в пивных и подворотнях, сегодня услаждает наш слух, доносясь с эстрады и с телеэкранов. Мы склонны считать это наступлением бескультурья и упадком Языка, но ведь бескультурье, как и всякая разруха, не в книгах и не на театральных подмостках, оно в душах и в головах. А с последними, на мой взгляд, ничего существенного за последние годы не произошло. Разве что начальство наше, опять же слава богу, отвлеклось от идеологии и увлеклось более распиливанием бюджета. Вот языки и подраспустились, а Язык обогатился замечательными новшествами в широчайшем диапазоне — от "хеджирования портфеля ГКО с помощью фьючерсов" и до появления интернет-жаргона. + +Разговоры об упадке вообще и Языка в частности - это, по сути, результат отсутствия ясных указаний сверху. Появятся соответствующие указания - и упадок прекратится как бы сам собой, тут же сменившись каким-нибудь "новым расцветом" и всеобщим суверенным "благорастворением воздyхов". + +Литература благополучно процветает, оставшись, наконец, почти без цензуры и в сени либеральных законов, касающихся книгоиздания. Читатель избалoван до предела. Ежегодно появляется несколько десятков книг такого уровня значимости, что, появись любая из них на прилавках лет 25 назад, она тут же стала бы сенсацией года, а сегодня вызывает лишь снисходительно-одобрительное ворчание критики. Разговоры о пресловутом "кризисе литературы" не затихают, общественность требует немедленного появления новых булгаковых, чеховых, толстых, как водится забывая при этом, что любой классик - это обязательно "продукт времени", как хорошее вино и вообще как все хорошее. Не надо тянуть дерево за ветки вверх: оно от этого быстрее не вырастет. Впрочем, в разговорах о кризисе ничего плохого нет: пользы от них маловато, но и вреда ведь тоже не наблюдается. + +А Язык, как и прежде, живет своею собственной жизнью, медленной и непостижимой, непрерывно меняясь и при этом всегда оставаясь самим собой. С русским языком может произойти все, что угодно: перестройка, преображение, превращение, - но только не вымирание. Он слишком велик, могуч, гибок, динамичен и непредсказуем, чтобы взять и вдруг исчезнуть. Разве что - вместе с нами. + +Вопрос о том, зачем нужна грамотность, обсуждается широко и пристрастно. Казалось бы, сегодня, когда даже компьютерная программа способна выправить не только орфографию, но и смысл, от среднестатистического россиянина не требуется знания бесчисленных и порой бессмысленных тонкостей родного правописания. Я уж не говорю про запятые, которым не повезло дважды. Сначала, в либеральные девяностые, их ставили где попало или игнорировали вовсе, утверждая, что это авторский знак. Школьники до сих пор широко пользуются неписаным правилом: "Не знаешь, что ставить, - ставь тире". Не зря его так и называют - "знак отчаяния". Потом, в стабильные нулевые, люди начали испуганно перестраховываться и ставить запятые там, где они вообще не нужны. Правда, вся эта путаница со знаками никак не влияет на смысл сообщения. Зачем же тогда писать грамотно? + +Думаю, это нечто вроде тех необходимых условностей, которые заменяют нам специфическое собачье чутье при обнюхивании. Сколько-нибудь развитый собеседник, получив электронное сообщение, идентифицирует автора по тысяче мелочей: почерка, конечно, он не видит, если только послание пришло не в бутылке, но письмо от филолога, содержащее орфографические ошибки, можно стирать, не дочитывая. + +Известно, что в конце войны немцы, использовавшие русскую рабочую силу, угрозами вымогали у славянских рабов специальную расписку: "Такой-то обращался со мной замечательно и заслуживает снисхождения". Солдаты-освободители, заняв один из пригородов Берлина, прочли гордо предъявленное хозяином письмо с десятком грубейших ошибок, подписанное студенткой Московского университета. Степень искренности автора стала им очевидна сразу, и обыватель-рабовладелец поплатился за свою подлую предусмотрительность. + +У нас сегодня почти нет шансов быстро понять, кто перед нами: способы маскировки хитры и многочисленны. Можно сымитировать ум, коммуникабельность, даже, пожалуй, интеллигентность. Невозможно сыграть только грамотность - утонченную форму вежливости, последний опознавательный знак смиренных и памятливых людей, чтущих законы языка как высшую форму законов природы. diff -Nru klavaro-1.9.9/debian/changelog klavaro-3.00/debian/changelog --- klavaro-1.9.9/debian/changelog 2013-09-16 07:58:57.000000000 +0000 +++ klavaro-3.00/debian/changelog 2014-07-11 18:34:33.000000000 +0000 @@ -1,3 +1,11 @@ +klavaro (3.00-1) unstable; urgency=low + + * New upstream release. + * Build-Depends: libgtk-3-dev. + * debian/copyright: Updated. + + -- Bart Martens Fri, 11 Jul 2014 20:34:21 +0200 + klavaro (1.9.9-1) unstable; urgency=low * New upstream release. diff -Nru klavaro-1.9.9/debian/control klavaro-3.00/debian/control --- klavaro-1.9.9/debian/control 2013-09-16 06:50:34.000000000 +0000 +++ klavaro-3.00/debian/control 2014-07-05 09:52:35.000000000 +0000 @@ -2,7 +2,7 @@ Section: x11 Priority: extra Maintainer: Bart Martens -Build-Depends: debhelper (>= 9), pkg-config (>= 0.9.0), libgtk2.0-dev (>= 2.16.0), autotools-dev, imagemagick, libcurl4-gnutls-dev, libgtkdatabox-dev, intltool +Build-Depends: debhelper (>= 9), pkg-config (>= 0.9.0), libgtk-3-dev, autotools-dev, imagemagick, libcurl4-gnutls-dev, intltool Standards-Version: 3.9.4 Homepage: http://klavaro.sourceforge.net/ diff -Nru klavaro-1.9.9/debian/copyright klavaro-3.00/debian/copyright --- klavaro-1.9.9/debian/copyright 2013-03-26 22:11:41.000000000 +0000 +++ klavaro-3.00/debian/copyright 2014-07-05 09:50:49.000000000 +0000 @@ -86,8 +86,8 @@ Copyright: - Copyright (C) 2005-2012 Felipe Castro at http://klavaro.sourceforge.net/ - Copyright (C) 2006, 2008-2013 Free Software Foundation, Inc. + Copyright (C) 2005-2014 Felipe Castro at http://klavaro.sourceforge.net/ + Copyright (C) 2006, 2008-2014 Free Software Foundation, Inc. License: @@ -102,7 +102,7 @@ The Debian packaging is Copyright (C) 2006, Lionel Le Folgoc (mr_pouit) -Copyright (C) 2007-2013, Bart Martens +Copyright (C) 2007-2014, Bart Martens and is licensed under the GPL version 3, see above. The file po/bn.po has this copyright and license: @@ -113,7 +113,7 @@ The file po/da.po has this copyright and license: - | Copyright (C) 2012 Joe Hansen. + | Copyright (C) 2014 Joe Hansen. | This file is distributed under the same license as the klavaro package. The file po/ar.po has this copyright and license: @@ -126,3 +126,44 @@ | Copyright (C) 2009-2011 Axel Bojer | This file is distributed under the same license as the klavaro package. +The file po/fi.po has this copyright and license: + + | Copyright (C) Lasse Liehu, 2014 + | This file is distributed under the same license as the klavaro package. + +The files in gtkdatabox/ have these copyright notices and licenses: + + | Copyright (C) 1995-1997 Peter Mattis, Spencer Kimball and Josh MacDonald + | Copyright (C) 1998 - 2008 Dr. Roland Bock + | Copyright (C) 2011 - 2012 Dr. Matt Flax + | Copyright (C) 2012 Dr. Matt Flax + | + | * This library is free software; you can redistribute it and/or + | * modify it under the terms of the GNU Lesser General Public + | * License as published by the Free Software Foundation; either + | * version 2 of the License, or (at your option) any later version. + | * + | * This library is distributed in the hope that it will be useful, + | * but WITHOUT ANY WARRANTY; without even the implied warranty of + | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + | * Lesser General Public License for more details. + | * + | * You should have received a copy of the GNU Lesser General Public + | * License along with this library; if not, write to the + | * Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, + | * Boston, MA 02110-1301 USA. + | + | * This program is free software; you can redistribute it and/or + | * modify it under the terms of the GNU Lesser General Public License + | * as published by the Free Software Foundation; either version 2.1 + | * of the License, or (at your option) any later version. + | * + | * 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 Lesser 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., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + diff -Nru klavaro-1.9.9/doc/klavaro.1 klavaro-3.00/doc/klavaro.1 --- klavaro-1.9.9/doc/klavaro.1 2013-07-24 18:38:46.000000000 +0000 +++ klavaro-3.00/doc/klavaro.1 2014-01-09 16:23:58.000000000 +0000 @@ -1,4 +1,4 @@ -.TH KLAVARO 1 "2012-01-14" GNU "Klavaro - Manual" +.TH KLAVARO 1 "2014-01-09" GNU "Klavaro - Manual" .\" Please adjust this date whenever revising the manpage. .\" .\" Some roff macros, for reference: @@ -9,7 +9,7 @@ .\" .br insert line break .\" .sp insert n+1 empty lines .SH NAME -Klavaro \- Flexible touch typing tutor using GTK+2 +Klavaro \- Flexible touch typing tutor using GTK+3 .SH SYNOPSIS .B klavaro .SH DESCRIPTION @@ -24,9 +24,9 @@ .SH OPTIONS Besides the version option, only those related to GTK are available. .br --h, --help: see some help at command line. +\-h, \-\-help: see some help at command line. .br --v, --version: see the program version. +\-v, \-\-version: see the program version. .SH COLORS Some colors may be configured through the file "preferences.ini" There you should create a session named [colors] and set some colors diff -Nru klavaro-1.9.9/doc/Makefile.in klavaro-3.00/doc/Makefile.in --- klavaro-1.9.9/doc/Makefile.in 2013-08-15 13:46:56.000000000 +0000 +++ klavaro-3.00/doc/Makefile.in 2014-01-21 23:25:39.000000000 +0000 @@ -1,4 +1,4 @@ -# Makefile.in generated by automake 1.13.3 from Makefile.am. +# Makefile.in generated by automake 1.14.1 from Makefile.am. # @configure_input@ # Copyright (C) 1994-2013 Free Software Foundation, Inc. @@ -81,7 +81,14 @@ DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am \ $(top_srcdir)/mkinstalldirs ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 -am__aclocal_m4_deps = $(top_srcdir)/configure.ac +am__aclocal_m4_deps = $(top_srcdir)/m4/gettext.m4 \ + $(top_srcdir)/m4/iconv.m4 $(top_srcdir)/m4/intltool.m4 \ + $(top_srcdir)/m4/lib-ld.m4 $(top_srcdir)/m4/lib-link.m4 \ + $(top_srcdir)/m4/lib-prefix.m4 $(top_srcdir)/m4/libtool.m4 \ + $(top_srcdir)/m4/ltoptions.m4 $(top_srcdir)/m4/ltsugar.m4 \ + $(top_srcdir)/m4/ltversion.m4 $(top_srcdir)/m4/lt~obsolete.m4 \ + $(top_srcdir)/m4/nls.m4 $(top_srcdir)/m4/po.m4 \ + $(top_srcdir)/m4/progtest.m4 $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs @@ -144,10 +151,13 @@ ALL_LINGUAS = @ALL_LINGUAS@ AMTAR = @AMTAR@ AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ +AR = @AR@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ +CAIRO_CFLAGS = @CAIRO_CFLAGS@ +CAIRO_LIBS = @CAIRO_LIBS@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ @@ -157,17 +167,22 @@ DATADIRNAME = @DATADIRNAME@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ +DLLTOOL = @DLLTOOL@ +DSYMUTIL = @DSYMUTIL@ +DUMPBIN = @DUMPBIN@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EXEEXT = @EXEEXT@ +FGREP = @FGREP@ GETTEXT_MACRO_VERSION = @GETTEXT_MACRO_VERSION@ GETTEXT_PACKAGE = @GETTEXT_PACKAGE@ GMSGFMT = @GMSGFMT@ GMSGFMT_015 = @GMSGFMT_015@ GREP = @GREP@ -GTKBLDRCONV = @GTKBLDRCONV@ +GTK_CFLAGS = @GTK_CFLAGS@ +GTK_LIBS = @GTK_LIBS@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ @@ -183,35 +198,46 @@ INTLTOOL__v_MERGE_ = @INTLTOOL__v_MERGE_@ INTLTOOL__v_MERGE_0 = @INTLTOOL__v_MERGE_0@ INTL_MACOSX_LIBS = @INTL_MACOSX_LIBS@ +LD = @LD@ LDFLAGS = @LDFLAGS@ LIBICONV = @LIBICONV@ LIBINTL = @LIBINTL@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ +LIBTOOL = @LIBTOOL@ +LIPO = @LIPO@ +LN_S = @LN_S@ LTLIBICONV = @LTLIBICONV@ LTLIBINTL = @LTLIBINTL@ LTLIBOBJS = @LTLIBOBJS@ MAKEINFO = @MAKEINFO@ +MANIFEST_TOOL = @MANIFEST_TOOL@ MKDIR_P = @MKDIR_P@ MSGFMT = @MSGFMT@ MSGFMT_015 = @MSGFMT_015@ MSGMERGE = @MSGMERGE@ +NM = @NM@ +NMEDIT = @NMEDIT@ +OBJDUMP = @OBJDUMP@ OBJEXT = @OBJEXT@ +OTOOL = @OTOOL@ +OTOOL64 = @OTOOL64@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ -PACKAGE_CFLAGS = @PACKAGE_CFLAGS@ -PACKAGE_LIBS = @PACKAGE_LIBS@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ +PANGO_CFLAGS = @PANGO_CFLAGS@ +PANGO_LIBS = @PANGO_LIBS@ PATH_SEPARATOR = @PATH_SEPARATOR@ PKG_CONFIG = @PKG_CONFIG@ PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@ PKG_CONFIG_PATH = @PKG_CONFIG_PATH@ POSUB = @POSUB@ POW_LIB = @POW_LIB@ +RANLIB = @RANLIB@ SED = @SED@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ @@ -225,7 +251,9 @@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ +ac_ct_AR = @ac_ct_AR@ ac_ct_CC = @ac_ct_CC@ +ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ @@ -308,6 +336,12 @@ $(ACLOCAL_M4): $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(am__aclocal_m4_deps): + +mostlyclean-libtool: + -rm -f *.lo + +clean-libtool: + -rm -rf .libs _libs install-man1: $(man_MANS) @$(NORMAL_INSTALL) @list1=''; \ @@ -427,7 +461,7 @@ @echo "it deletes files that may require special tools to rebuild." clean: clean-am -clean-am: clean-generic mostlyclean-am +clean-am: clean-generic clean-libtool mostlyclean-am distclean: distclean-am -rm -f Makefile @@ -479,7 +513,7 @@ mostlyclean: mostlyclean-am -mostlyclean-am: mostlyclean-generic +mostlyclean-am: mostlyclean-generic mostlyclean-libtool pdf: pdf-am @@ -495,16 +529,17 @@ .MAKE: install-am install-strip -.PHONY: all all-am check check-am clean clean-generic cscopelist-am \ - ctags-am distclean distclean-generic distdir dvi dvi-am html \ - html-am info info-am install install-am install-data \ - install-data-am install-dvi install-dvi-am install-exec \ - install-exec-am install-html install-html-am install-info \ - install-info-am install-man install-man1 install-pdf \ - install-pdf-am install-ps install-ps-am install-strip \ - installcheck installcheck-am installdirs maintainer-clean \ - maintainer-clean-generic mostlyclean mostlyclean-generic pdf \ - pdf-am ps ps-am tags-am uninstall uninstall-am uninstall-man \ +.PHONY: all all-am check check-am clean clean-generic clean-libtool \ + cscopelist-am ctags-am distclean distclean-generic \ + distclean-libtool distdir dvi dvi-am html html-am info info-am \ + install install-am install-data install-data-am install-dvi \ + install-dvi-am install-exec install-exec-am install-html \ + install-html-am install-info install-info-am install-man \ + install-man1 install-pdf install-pdf-am install-ps \ + install-ps-am install-strip installcheck installcheck-am \ + installdirs maintainer-clean maintainer-clean-generic \ + mostlyclean mostlyclean-generic mostlyclean-libtool pdf pdf-am \ + ps ps-am tags-am uninstall uninstall-am uninstall-man \ uninstall-man1 diff -Nru klavaro-1.9.9/gtkdatabox/gtkdatabox_bars.c klavaro-3.00/gtkdatabox/gtkdatabox_bars.c --- klavaro-1.9.9/gtkdatabox/gtkdatabox_bars.c 1970-01-01 00:00:00.000000000 +0000 +++ klavaro-3.00/gtkdatabox/gtkdatabox_bars.c 2014-01-03 18:40:55.000000000 +0000 @@ -0,0 +1,229 @@ +/* $Id: gtkdatabox_bars.c 4 2008-06-22 09:19:11Z rbock $ */ +/* GtkDatabox - An extension to the gtk+ library + * Copyright (C) 1998 - 2008 Dr. Roland Bock + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public License + * as published by the Free Software Foundation; either version 2.1 + * of the License, or (at your option) any later version. + * + * 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 Lesser 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., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + */ + +#include + +G_DEFINE_TYPE(GtkDataboxBars, gtk_databox_bars, + GTK_DATABOX_TYPE_XYC_GRAPH) + +static void gtk_databox_bars_real_draw (GtkDataboxGraph * bars, + GtkDatabox* box); +/** + * GtkDataboxBarsPrivate + * + * A private data structure used by the #GtkDataboxBars. It shields all internal things + * from developers who are just using the object. + * + **/ +typedef struct _GtkDataboxBarsPrivate GtkDataboxBarsPrivate; + +struct _GtkDataboxBarsPrivate +{ + gint16 *xpixels; + gint16 *ypixels; + guint pixelsalloc; +}; + +static void +bars_finalize (GObject * object) +{ + GtkDataboxBars *bars = GTK_DATABOX_BARS (object); + + g_free (GTK_DATABOX_BARS_GET_PRIVATE(bars)->xpixels); + g_free (GTK_DATABOX_BARS_GET_PRIVATE(bars)->ypixels); + + /* Chain up to the parent class */ + G_OBJECT_CLASS (gtk_databox_bars_parent_class)->finalize (object); +} + +static void +gtk_databox_bars_class_init (GtkDataboxBarsClass *klass) +{ + GObjectClass *gobject_class = G_OBJECT_CLASS (klass); + GtkDataboxGraphClass *graph_class = GTK_DATABOX_GRAPH_CLASS (klass); + + gobject_class->finalize = bars_finalize; + + graph_class->draw = gtk_databox_bars_real_draw; + + g_type_class_add_private(klass, sizeof(GtkDataboxBarsPrivate)); +} + +static void +gtk_databox_bars_complete (GtkDataboxBars * bars) +{ + GTK_DATABOX_BARS_GET_PRIVATE(bars)->xpixels = NULL; + GTK_DATABOX_BARS_GET_PRIVATE(bars)->ypixels = NULL; + GTK_DATABOX_BARS_GET_PRIVATE(bars)->pixelsalloc = 0; +} + +static void +gtk_databox_bars_init (GtkDataboxBars *bars) +{ + g_signal_connect (bars, "notify::length", + G_CALLBACK (gtk_databox_bars_complete), NULL); +} + +/** + * gtk_databox_bars_new: + * @len: length of @X and @Y + * @X: array of horizontal position values of markers + * @Y: array of vertical position values of markers + * @color: color of the markers + * @size: marker size or line width (depending on the @type) + * + * Creates a new #GtkDataboxBars object which can be added to a #GtkDatabox widget + * + * Return value: A new #GtkDataboxBars object + **/ +GtkDataboxGraph * +gtk_databox_bars_new (guint len, gfloat * X, gfloat * Y, + GdkRGBA * color, guint size) +{ + GtkDataboxBars *bars; + g_return_val_if_fail (X, NULL); + g_return_val_if_fail (Y, NULL); + g_return_val_if_fail ((len > 0), NULL); + + bars = g_object_new (GTK_DATABOX_TYPE_BARS, + "X-Values", X, + "Y-Values", Y, + "xstart", 0, + "ystart", 0, + "xstride", 1, + "ystride", 1, + "xtype", G_TYPE_FLOAT, + "ytype", G_TYPE_FLOAT, + "length", len, + "maxlen", len, + "color", color, "size", size, NULL); + + return GTK_DATABOX_GRAPH (bars); +} + +/** + * gtk_databox_bars_new_full: + * @maxlen: maximum length of @X and @Y + * @len: actual number of @X and @Y values to plot + * @X: array of horizontal position values of markers + * @Y: array of vertical position values of markers + * @xstart: the first element in the X array to plot (usually 0) + * @ystart: the first element in the Y array to plot (usually 0) + * @xstride: successive elements in the X array are separated by this much (1 if array, ncols if matrix) + * @ystride: successive elements in the Y array are separated by this much (1 if array, ncols if matrix) + * @xtype: the GType of the X array elements. G_TYPE_FLOAT, G_TYPE_DOUBLE, etc. + * @ytype: the GType of the Y array elements. G_TYPE_FLOAT, G_TYPE_DOUBLE, etc. + * @color: color of the markers + * @size: marker size or line width (depending on the @type) + * + * Creates a new #GtkDataboxBars object which can be added to a #GtkDatabox widget + * + * Return value: A new #GtkDataboxBars object + **/ +GtkDataboxGraph * +gtk_databox_bars_new_full (guint maxlen, guint len, + void * X, guint xstart, guint xstride, GType xtype, + void * Y, guint ystart, guint ystride, GType ytype, + GdkRGBA * color, guint size) +{ + GtkDataboxBars *bars; + g_return_val_if_fail (X, NULL); + g_return_val_if_fail (Y, NULL); + g_return_val_if_fail ((len > 0), NULL); + + bars = g_object_new (GTK_DATABOX_TYPE_BARS, + "X-Values", X, + "Y-Values", Y, + "xstart", xstart, + "ystart", ystart, + "xstride", xstride, + "ystride", ystride, + "xtype", xtype, + "ytype", ytype, + "length", len, + "maxlen", maxlen, + "color", color, "size", size, NULL); + + return GTK_DATABOX_GRAPH (bars); +} + +static void +gtk_databox_bars_real_draw (GtkDataboxGraph * graph, + GtkDatabox* box) +{ + GtkDataboxBars *bars = GTK_DATABOX_BARS (graph); + GtkDataboxBarsPrivate *priv=GTK_DATABOX_BARS_GET_PRIVATE(bars); + guint i = 0; + void *X; + void *Y; + guint len, maxlen; + gint16 zero = 0; + gfloat fzero = 0.0; + cairo_t *cr; + gint16 *xpixels, *ypixels; + guint xstart, xstride, ystart, ystride; + GType xtype, ytype; + + g_return_if_fail (GTK_DATABOX_IS_BARS (bars)); + g_return_if_fail (GTK_IS_DATABOX (box)); + + if (gtk_databox_get_scale_type_y (box) == GTK_DATABOX_SCALE_LOG) + g_warning + ("gtk_databox_bars do not work well with logarithmic scale in Y axis"); + + cr = gtk_databox_graph_create_gc (graph, box); + + len = gtk_databox_xyc_graph_get_length (GTK_DATABOX_XYC_GRAPH (graph)); + maxlen = gtk_databox_xyc_graph_get_maxlen (GTK_DATABOX_XYC_GRAPH (graph)); + + if (priv->pixelsalloc < len) + { + priv->pixelsalloc = len; + priv->xpixels = (gint16 *)g_realloc(priv->xpixels, len * sizeof(gint16)); + priv->ypixels = (gint16 *)g_realloc(priv->ypixels, len * sizeof(gint16)); + } + + xpixels = priv->xpixels; + ypixels = priv->ypixels; + + X = gtk_databox_xyc_graph_get_X (GTK_DATABOX_XYC_GRAPH (graph)); + xstart = gtk_databox_xyc_graph_get_xstart (GTK_DATABOX_XYC_GRAPH (graph)); + xstride = gtk_databox_xyc_graph_get_xstride (GTK_DATABOX_XYC_GRAPH (graph)); + xtype = gtk_databox_xyc_graph_get_xtype (GTK_DATABOX_XYC_GRAPH (graph)); + gtk_databox_values_to_xpixels(box, xpixels, X, xtype, maxlen, xstart, xstride, len); + + Y = gtk_databox_xyc_graph_get_Y (GTK_DATABOX_XYC_GRAPH (graph)); + ystart = gtk_databox_xyc_graph_get_ystart (GTK_DATABOX_XYC_GRAPH (graph)); + ystride = gtk_databox_xyc_graph_get_ystride (GTK_DATABOX_XYC_GRAPH (graph)); + ytype = gtk_databox_xyc_graph_get_ytype (GTK_DATABOX_XYC_GRAPH (graph)); + gtk_databox_values_to_ypixels(box, ypixels, Y, ytype, maxlen, ystart, ystride, len); + + gtk_databox_values_to_ypixels(box, &zero, &fzero, G_TYPE_FLOAT, 1, 0, 1, 1); + + for (i = 0; i < len; i++, xpixels++, ypixels++) + { + cairo_move_to (cr, *xpixels + 0.5, zero + 0.5); + cairo_line_to (cr, *xpixels + 0.5, *ypixels + 0.5); + } + cairo_stroke(cr); + cairo_destroy(cr); + + return; +} + diff -Nru klavaro-1.9.9/gtkdatabox/gtkdatabox_bars.h klavaro-3.00/gtkdatabox/gtkdatabox_bars.h --- klavaro-1.9.9/gtkdatabox/gtkdatabox_bars.h 1970-01-01 00:00:00.000000000 +0000 +++ klavaro-3.00/gtkdatabox/gtkdatabox_bars.h 2014-01-04 15:41:21.000000000 +0000 @@ -0,0 +1,86 @@ +/* $Id: gtkdatabox_bars.h 4 2008-06-22 09:19:11Z rbock $ */ +/* GtkDatabox - An extension to the gtk+ library + * Copyright (C) 1998 - 2008 Dr. Roland Bock + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public License + * as published by the Free Software Foundation; either version 2.1 + * of the License, or (at your option) any later version. + * + * 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 Lesser 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., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + */ + +/** + * SECTION:gtkdatabox_bars + * @short_description: A #GtkDataboxGraph used for displaying xy-values as vertical bars. + * @include: gtkdatabox_bars.h + * @see_also: #GtkDatabox, #GtkDataboxGraph, #GtkDataboxPoints, #GtkDataboxLines, #GtkDataboxMarkers + * + * #GtkDataboxBars is a #GtkDataboxGraph class for displaying xy-values as vertical bars which rise/drop from y=0. + * + */ + +#ifndef __GTK_DATABOX_BARS_H__ +#define __GTK_DATABOX_BARS_H__ + +#include + +G_BEGIN_DECLS +#define GTK_DATABOX_TYPE_BARS (gtk_databox_bars_get_type ()) +#define GTK_DATABOX_BARS(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), \ + GTK_DATABOX_TYPE_BARS, \ + GtkDataboxBars)) +#define GTK_DATABOX_BARS_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), \ + GTK_DATABOX_TYPE_BARS, \ + GtkDataboxBarsClass)) +#define GTK_DATABOX_IS_BARS(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), \ + GTK_DATABOX_TYPE_BARS)) +#define GTK_DATABOX_IS_BARS_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), \ + GTK_DATABOX_TYPE_BARS)) +#define GTK_DATABOX_BARS_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), \ + GTK_DATABOX_TYPE_BARS, \ + GtkDataboxBarsClass)) +#define GTK_DATABOX_BARS_GET_PRIVATE(obj) \ + G_TYPE_INSTANCE_GET_PRIVATE ((obj), GTK_DATABOX_TYPE_BARS, GtkDataboxBarsPrivate) + +/** + * GtkDataboxBars: + * @see_also: #GtkDatabox, #GtkDataboxGraph, #GtkDataboxPoints, #GtkDataboxLines, #GtkDataboxMarkers + * + * #GtkDataboxBars is a #GtkDataboxGraph class for displaying xy-values as vertical bars which rise/drop from y=0. + * + */ + typedef struct _GtkDataboxBars GtkDataboxBars; + + typedef struct _GtkDataboxBarsClass GtkDataboxBarsClass; + + struct _GtkDataboxBars + { + /*< private >*/ + GtkDataboxXYCGraph parent; + }; + + struct _GtkDataboxBarsClass + { + GtkDataboxXYCGraphClass parent_class; + }; + + GType gtk_databox_bars_get_type (void); + + GtkDataboxGraph *gtk_databox_bars_new (guint len, gfloat * X, gfloat * Y, + GdkRGBA * color, guint size); + + GtkDataboxGraph *gtk_databox_bars_new_full (guint maxlen, guint len, + void * X, guint xstart, guint xstride, GType xtype, + void * Y, guint ystart, guint ystride, GType ytype, + GdkRGBA * color, guint size); + +G_END_DECLS +#endif /* __GTK_DATABOX_BARS_H__ */ diff -Nru klavaro-1.9.9/gtkdatabox/gtkdatabox.c klavaro-3.00/gtkdatabox/gtkdatabox.c --- klavaro-1.9.9/gtkdatabox/gtkdatabox.c 1970-01-01 00:00:00.000000000 +0000 +++ klavaro-3.00/gtkdatabox/gtkdatabox.c 2014-01-03 18:40:55.000000000 +0000 @@ -0,0 +1,2497 @@ +/* $Id: gtkdatabox.c 4 2008-06-22 09:19:11Z rbock $ */ +/* GtkDatabox - An extension to the gtk+ library + * Copyright (C) 1998 - 2008 Dr. Roland Bock + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public License + * as published by the Free Software Foundation; either version 2.1 + * of the License, or (at your option) any later version. + * + * 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 Lesser 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., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + */ + +#include +#include +#include +#include +#include + + +static gint gtk_databox_button_press (GtkWidget * widget, + GdkEventButton * event); +static gint gtk_databox_scroll_event (GtkWidget *widget, + GdkEventScroll *event); +static gint gtk_databox_button_release (GtkWidget * widget, + GdkEventButton * event); +static gint gtk_databox_motion_notify (GtkWidget * widget, + GdkEventMotion * event); +static void gtk_databox_realize (GtkWidget * widget); +static void gtk_databox_unrealize (GtkWidget * widget); +static void gtk_databox_size_allocate (GtkWidget * widget, + GtkAllocation * allocation); +static gint gtk_databox_draw (GtkWidget * widget, + cairo_t * cr); +static void gtk_databox_set_property (GObject * object, + guint prop_id, + const GValue * value, + GParamSpec * pspec); +static void gtk_databox_get_property (GObject * object, + guint prop_id, + GValue * value, + GParamSpec * pspec); + +static gfloat gtk_databox_get_offset_x (GtkDatabox* box); +static gfloat gtk_databox_get_page_size_x (GtkDatabox* box); +static gfloat gtk_databox_get_offset_y (GtkDatabox* box); +static gfloat gtk_databox_get_page_size_y (GtkDatabox* box); +static void gtk_databox_calculate_visible_limits (GtkDatabox * box); +static void gtk_databox_create_backing_surface (GtkDatabox * box); +static void gtk_databox_calculate_selection_values (GtkDatabox * box); +static void gtk_databox_selection_cancel (GtkDatabox * box); +static void gtk_databox_zoomed (GtkDatabox * box); +static void gtk_databox_draw_selection (GtkDatabox * box, gboolean clear); +static void gtk_databox_adjustment_value_changed (GtkDatabox * box); +static void gtk_databox_ruler_update (GtkDatabox * box); + +/* IDs of signals */ +enum { + ZOOMED_SIGNAL, + SELECTION_STARTED_SIGNAL, + SELECTION_CHANGED_SIGNAL, + SELECTION_FINALIZED_SIGNAL, + SELECTION_CANCELED_SIGNAL, + LAST_SIGNAL +}; + +/* signals will be configured during class_init */ +static gint gtk_databox_signals[LAST_SIGNAL] = { 0 }; + + +/* IDs of properties */ +enum { + ENABLE_SELECTION = 1, + ENABLE_ZOOM, + ADJUSTMENT_X, + ADJUSTMENT_Y, + RULER_X, + RULER_Y, + SCALE_TYPE_X, + SCALE_TYPE_Y, + BOX_SHADOW, + LAST_PROPERTY +}; + +/** + * GtkDataboxPrivate + * + * A private data structure used by the #GtkDatabox. It shields all internal things + * from developers who are just using the widget. + * + **/ +typedef struct _GtkDataboxPrivate GtkDataboxPrivate; + +struct _GtkDataboxPrivate { + cairo_surface_t *backing_surface; + gint old_width; + gint old_height; + + /* Total and visible limits (values, not pixels) */ + gfloat total_left; + gfloat total_right; + gfloat total_top; + gfloat total_bottom; + gfloat visible_left; + gfloat visible_right; + gfloat visible_top; + gfloat visible_bottom; + + /* Translation information between values and pixels */ + GtkDataboxScaleType scale_type_x; + GtkDataboxScaleType scale_type_y; + gfloat translation_factor_x; + gfloat translation_factor_y; + + /* Properties */ + gboolean enable_selection; + gboolean enable_zoom; + GtkAdjustment *adj_x; + GtkAdjustment *adj_y; + GtkDataboxRuler *ruler_x; + GtkDataboxRuler *ruler_y; + + /* Other private stuff */ + GList *graphs; + GdkPoint marked; + GdkPoint select; + GtkDataboxValueRectangle selectionValues; + gfloat zoom_limit; + + /* flags */ + gboolean selection_active; + gboolean selection_finalized; + + GtkShadowType box_shadow; /* The type of shadow drawn on the pixmap edge */ +}; + +/** + * gtk_databox_get_type + * + * Determines the #GType of the GtkDatabox widget type. + * + * Return value: The #GType of the GtkDatabox widget type. + * + */ +G_DEFINE_TYPE (GtkDatabox, gtk_databox, GTK_TYPE_WIDGET) + +static void +gtk_databox_class_init (GtkDataboxClass * class) { + GObjectClass *gobject_class; + GtkWidgetClass *widget_class; + + gobject_class = G_OBJECT_CLASS (class); + widget_class = (GtkWidgetClass *) class; + + gobject_class->set_property = gtk_databox_set_property; + gobject_class->get_property = gtk_databox_get_property; + + widget_class->realize = gtk_databox_realize; + widget_class->unrealize = gtk_databox_unrealize; + widget_class->size_allocate = gtk_databox_size_allocate; + widget_class->draw = gtk_databox_draw; + widget_class->motion_notify_event = gtk_databox_motion_notify; + widget_class->button_press_event = gtk_databox_button_press; + widget_class->button_release_event = gtk_databox_button_release; + widget_class->scroll_event = gtk_databox_scroll_event; + + /** + * GtkDatabox:enable-selection: + * + * Defines whether the user can select + * rectangular areas with the mouse (#TRUE) or not (#FALSE). + * + */ + g_object_class_install_property (gobject_class, + ENABLE_SELECTION, + g_param_spec_boolean ("enable-selection", + "Enable Selection", + "Enable selection of areas via mouse (TRUE/FALSE)", + TRUE, /* default value */ + G_PARAM_CONSTRUCT | G_PARAM_READWRITE)); + + /** + * GtkDatabox:enable-zoom: + * + * Defines whether the user can use the mouse to zoom in or out (#TRUE) or not (#FALSE). + * + */ + g_object_class_install_property (gobject_class, + ENABLE_ZOOM, + g_param_spec_boolean ("enable-zoom", + "Enable Zoom", + "Enable zooming in or out via mouse click (TRUE/FALSE)", + TRUE, /* default value */ + G_PARAM_CONSTRUCT | G_PARAM_READWRITE)); + + /** + * GtkDatabox:adjustment_x: + * + * The #GtkAdjustment associated with the horizontal scrollbar. The #GtkDatabox widget + * creates a GtkAdjustment itself. Normally there is no need for you to create another + * GtkAdjustment. You could simply use the one you get via gtk_databox_get_adjustment_x(). + * + */ + g_object_class_install_property (gobject_class, + ADJUSTMENT_X, + g_param_spec_object ("adjustment-x", + "Horizontal Adjustment", + "GtkAdjustment for horizontal scrolling", + GTK_TYPE_ADJUSTMENT, + G_PARAM_CONSTRUCT | G_PARAM_READWRITE)); + + /** + * GtkDatabox:adjustment_y: + * + * The #GtkAdjustment associated with the vertical scrollbar. The #GtkDatabox widget + * creates a GtkAdjustment itself. Normally there is no need for you to create another + * GtkAdjustment. You could simply use the one you get via gtk_databox_get_adjustment_y(). + * + */ + g_object_class_install_property (gobject_class, + ADJUSTMENT_Y, + g_param_spec_object ("adjustment-y", + "Vertical Adjustment", + "GtkAdjustment for vertical scrolling", + GTK_TYPE_ADJUSTMENT, + G_PARAM_CONSTRUCT | G_PARAM_READWRITE)); + + /** + * GtkDatabox:ruler_x: + * + * The horizontal %GtkDataboxRuler (or NULL). + * + */ + g_object_class_install_property (gobject_class, + RULER_X, + g_param_spec_object ("ruler-x", + "Horizontal Ruler", + "A horizontal GtkDataboxRuler or NULL", + GTK_DATABOX_TYPE_RULER, + G_PARAM_CONSTRUCT | G_PARAM_READWRITE)); + + /** + * GtkDatabox:ruler_y: + * + * The vertical %GtkDataboxRuler (or NULL). + * + */ + g_object_class_install_property (gobject_class, + RULER_Y, + g_param_spec_object ("ruler-y", + "Vertical Ruler", + "A vertical GtkDataboxRuler or NULL", + GTK_DATABOX_TYPE_RULER, + G_PARAM_CONSTRUCT | G_PARAM_READWRITE)); + + /** + * GtkDatabox:scale_type_x: + * + * The horizontal scale type (linear or lograrithmic). + */ + g_object_class_install_property (gobject_class, + SCALE_TYPE_X, + g_param_spec_enum ("scale-type-x", + "Horizontal scale type", + "Horizontal scale type (linear or logarithmic)", + gtk_databox_scale_type_get_type (), + GTK_DATABOX_SCALE_LINEAR, + G_PARAM_CONSTRUCT | G_PARAM_READWRITE)); + + /** + * GtkDatabox:scale_type_y: + * + * The vertical scale type (linear or lograrithmic). + */ + g_object_class_install_property (gobject_class, + SCALE_TYPE_Y, + g_param_spec_enum ("scale-type-y", + "Vertical scale type", + "Vertical scale type (linear or logarithmic)", + gtk_databox_scale_type_get_type (), + GTK_DATABOX_SCALE_LINEAR, + G_PARAM_CONSTRUCT | G_PARAM_READWRITE)); + + + g_object_class_install_property (gobject_class, + BOX_SHADOW, + g_param_spec_uint ("box-shadow", + "Box Shadow", + "Style of the box shadow: GTK_SHADOW_NONE, GTK_SHADOW_IN, GTK_SHADOW_OUT, GTK_SHADOW_ETCHED_IN, GTK_SHADOW_ETCHED_OUT", + GTK_SHADOW_NONE, + GTK_SHADOW_ETCHED_OUT, + GTK_SHADOW_NONE, + G_PARAM_READWRITE)); + + /** + * GtkDatabox::zoomed: + * @box: The #GtkDatabox widget which zoomed in or out. + * + * This signal is emitted each time the zoom of the widget is changed, see for example + * gtk_databox_zoom_to_selection(), gtk_databox_set_visible_limits(). + */ + gtk_databox_signals[ZOOMED_SIGNAL] = + g_signal_new ("zoomed", + G_TYPE_FROM_CLASS (gobject_class), + G_SIGNAL_RUN_FIRST, + G_STRUCT_OFFSET (GtkDataboxClass, zoomed), + NULL, /* accumulator */ + NULL, /* accumulator_data */ + gtk_databox_marshal_VOID__VOID, + G_TYPE_NONE, 0); + + /** + * GtkDatabox::selection-started: + * @box: The #GtkDatabox widget in which the selection has been started. + * @selection_values: The corners of the selection rectangle. + * + * This signal is emitted when the mouse is firstmoved + * with the left button pressed after the mouse-down (and the #GtkDatabox:enable-selection property + * is set). The corners of the selection rectangle are stored in @selection_values. + * + * @see_also: #GtkDatabox::selection-changed + */ + gtk_databox_signals[SELECTION_STARTED_SIGNAL] = + g_signal_new ("selection-started", + G_TYPE_FROM_CLASS (gobject_class), + G_SIGNAL_RUN_FIRST, + G_STRUCT_OFFSET (GtkDataboxClass, selection_started), + NULL, /* accumulator */ + NULL, /* accumulator_data */ + gtk_databox_marshal_VOID__POINTER, + G_TYPE_NONE, + 1, + G_TYPE_POINTER); + + /** + * GtkDatabox::selection-changed: + * @box: The #GtkDatabox widget in which the selection was changed. + * @selection_values: The corners of the selection rectangle. + * + * This signal is emitted when the mouse is moved + * with the left button pressed (and the #GtkDatabox:enable-selection property + * is set). The corners of the selection rectangle are stored in @selection_values. + */ + gtk_databox_signals[SELECTION_CHANGED_SIGNAL] = + g_signal_new ("selection-changed", + G_TYPE_FROM_CLASS (gobject_class), + G_SIGNAL_RUN_FIRST, + G_STRUCT_OFFSET (GtkDataboxClass, selection_changed), + NULL, /* accumulator */ + NULL, /* accumulator_data */ + gtk_databox_marshal_VOID__POINTER, + G_TYPE_NONE, + 1, + G_TYPE_POINTER); + + /** + * GtkDatabox::selection-finalized: + * @box: The #GtkDatabox widget in which the selection has been stopped. + * @selection_values: The corners of the selection rectangle. + * + * This signal is emitted when the left mouse button + * is released after a selection was started before. + * + * @see_also: #GtkDatabox::selection-changed + */ + gtk_databox_signals[SELECTION_FINALIZED_SIGNAL] = + g_signal_new ("selection-finalized", + G_TYPE_FROM_CLASS (gobject_class), + G_SIGNAL_RUN_FIRST, + G_STRUCT_OFFSET (GtkDataboxClass, selection_finalized), + NULL, /* accumulator */ + NULL, /* accumulator_data */ + gtk_databox_marshal_VOID__POINTER, + G_TYPE_NONE, + 1, + G_TYPE_POINTER); + + /** + * GtkDatabox::selection-canceled: + * @box: The #GtkDatabox widget which zoomed in or out. + * + * This signal is emitted after a right click outside + * a selection rectangle. + */ + gtk_databox_signals[SELECTION_CANCELED_SIGNAL] = + g_signal_new ("selection-canceled", + G_TYPE_FROM_CLASS (gobject_class), + G_SIGNAL_RUN_FIRST, + G_STRUCT_OFFSET (GtkDataboxClass, selection_canceled), + NULL, /* accumulator */ + NULL, /* accumulator_data */ + gtk_databox_marshal_VOID__VOID, + G_TYPE_NONE, + 0); + + class->zoomed = NULL; + class->selection_started = NULL; + class->selection_changed = NULL; + class->selection_finalized = NULL; + class->selection_canceled = NULL; + + g_type_class_add_private (class, sizeof (GtkDataboxPrivate)); +} + +static void +gtk_databox_init (GtkDatabox * box) { + GtkDataboxPrivate *priv = GTK_DATABOX_GET_PRIVATE(box); + + priv->backing_surface = NULL; + priv->scale_type_x = GTK_DATABOX_SCALE_LINEAR; + priv->scale_type_y = GTK_DATABOX_SCALE_LINEAR; + priv->translation_factor_x = 0; + priv->translation_factor_y = 0; + priv->enable_selection = TRUE; + priv->enable_zoom = TRUE; + priv->ruler_x = NULL; + priv->ruler_y = NULL; + priv->graphs = NULL; + priv->zoom_limit = 0.01; + priv->selection_active = FALSE; + priv->selection_finalized = FALSE; + priv->box_shadow=GTK_SHADOW_NONE; + + /* gtk_databox_set_total_limits(box, -1., 1., 1., -1.); */ + priv->visible_left = priv->total_left = -1.0; + priv->visible_right = priv->total_right = 1.0; + priv->visible_top = priv->total_top = 1.0; + priv->visible_bottom = priv->total_bottom = -1.0; + gtk_databox_set_adjustment_x (box, NULL); + gtk_databox_set_adjustment_y (box, NULL); + /*gtk_databox_set_total_limits(box, -1., 1., 1., -1.);*/ + g_object_set(GTK_WIDGET(box), "expand", TRUE, NULL); +} + +/** + * gtk_databox_new + * + * Creates a new #GtkDatabox widget. + * + * Return value: The new #GtkDatabox widget. + * + */ +GtkWidget * +gtk_databox_new (void) { + return g_object_new (GTK_TYPE_DATABOX, NULL); +} + +/** + * gtk_databox_get_graphs: + * @box: A #GtkDatabox widget + * + * Return a list of graphs that were previously added to @box + * + * Return value: A #GList that contains all graphs + */ +GList * +gtk_databox_get_graphs (GtkDatabox * box) +{ + g_return_val_if_fail (GTK_IS_DATABOX (box), -1); + + return GTK_DATABOX_GET_PRIVATE(box)->graphs; +} + +static gint +gtk_databox_motion_notify (GtkWidget * widget, GdkEventMotion * event) { + GtkDatabox *box = GTK_DATABOX (widget); + GtkDataboxPrivate *priv = GTK_DATABOX_GET_PRIVATE(box); + GdkModifierType state; + gint x; + gint y; + + if (event->is_hint) { + gdk_window_get_device_position (gtk_widget_get_window(widget), event->device, &x, &y, &state); + } else { + state = event->state; + x = event->x; + y = event->y; + } + + if (state & GDK_BUTTON1_MASK + && priv->enable_selection && !priv->selection_finalized) { + GdkRectangle rect; + gint width; + gint height; + + width = gdk_window_get_width(gtk_widget_get_window(widget)); + height = gdk_window_get_height(gtk_widget_get_window(widget)); + x = MAX (0, MIN (width - 1, x)); + y = MAX (0, MIN (height - 1, y)); + + if (priv->selection_active) { + /* Clear current selection from backing_surface */ + gtk_databox_draw_selection (box, TRUE); + } else { + priv->selection_active = TRUE; + priv->marked.x = x; + priv->marked.y = y; + priv->select.x = x; + priv->select.y = y; + gtk_databox_calculate_selection_values (box); + g_signal_emit (G_OBJECT (box), + gtk_databox_signals[SELECTION_STARTED_SIGNAL], 0, + &priv->selectionValues); + } + + /* Determine the exposure rectangle (covering old selection and new) */ + rect.x = MIN (MIN (priv->marked.x, priv->select.x), x); + rect.y = MIN (MIN (priv->marked.y, priv->select.y), y); + rect.width = MAX (MAX (priv->marked.x, priv->select.x), x) + - rect.x + 1; + rect.height = MAX (MAX (priv->marked.y, priv->select.y), y) + - rect.y + 1; + + priv->select.x = x; + priv->select.y = y; + + /* Draw new selection */ + gtk_databox_draw_selection (box, FALSE); + + gtk_databox_calculate_selection_values (box); + g_signal_emit (G_OBJECT (box), + gtk_databox_signals[SELECTION_CHANGED_SIGNAL], + 0, &priv->selectionValues); + } + + return FALSE; +} + +static void +gtk_databox_set_property (GObject * object, + guint property_id, + const GValue * value, GParamSpec * pspec) { + GtkDatabox *box = GTK_DATABOX (object); + switch (property_id) { + case ENABLE_SELECTION: + gtk_databox_set_enable_selection (box, g_value_get_boolean (value)); + break; + case ENABLE_ZOOM: + gtk_databox_set_enable_zoom (box, g_value_get_boolean (value)); + break; + case ADJUSTMENT_X: + gtk_databox_set_adjustment_x (box, g_value_get_object (value)); + break; + case ADJUSTMENT_Y: + gtk_databox_set_adjustment_y (box, g_value_get_object (value)); + break; + case RULER_X: + gtk_databox_set_ruler_x (box, g_value_get_object (value)); + break; + case RULER_Y: + gtk_databox_set_ruler_y (box, g_value_get_object (value)); + break; + case SCALE_TYPE_X: + gtk_databox_set_scale_type_x (box, g_value_get_enum (value)); + break; + case SCALE_TYPE_Y: + gtk_databox_set_scale_type_y (box, g_value_get_enum (value)); + break; + case BOX_SHADOW: + gtk_databox_set_box_shadow (box, (GtkShadowType) g_value_get_uint (value)); + break; + default: + /* We don't have any other property... */ + G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec); + break; + } +} + +static void +gtk_databox_get_property (GObject * object, + guint property_id, + GValue * value, GParamSpec * pspec) { + GtkDatabox *box = GTK_DATABOX (object); + GtkDataboxPrivate *priv = GTK_DATABOX_GET_PRIVATE(box); + + switch (property_id) { + case ENABLE_SELECTION: + g_value_set_boolean (value, gtk_databox_get_enable_selection (box)); + break; + case ENABLE_ZOOM: + g_value_set_boolean (value, gtk_databox_get_enable_zoom (box)); + break; + case ADJUSTMENT_X: + g_value_set_object (value, G_OBJECT (gtk_databox_get_adjustment_x (box))); + break; + case ADJUSTMENT_Y: + g_value_set_object (value, G_OBJECT (gtk_databox_get_adjustment_y (box))); + break; + case RULER_X: + g_value_set_object (value, G_OBJECT (gtk_databox_get_ruler_x (box))); + break; + case RULER_Y: + g_value_set_object (value, G_OBJECT (gtk_databox_get_ruler_y (box))); + break; + case SCALE_TYPE_X: + g_value_set_enum (value, gtk_databox_get_scale_type_x (box)); + break; + case SCALE_TYPE_Y: + g_value_set_enum (value, gtk_databox_get_scale_type_y (box)); + break; + case BOX_SHADOW: + g_value_set_uint (value, priv->box_shadow); + break; + default: + /* We don't have any other property... */ + G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec); + break; + } +} + + +static void +gtk_databox_realize (GtkWidget * widget) { + GtkDatabox *box; + GdkWindowAttr attributes; + gint attributes_mask; + GtkAllocation allocation; + GtkStyleContext *stylecontext; + + box = GTK_DATABOX (widget); + gtk_widget_set_realized(widget, TRUE); + gtk_widget_get_allocation(widget, &allocation); + + attributes.window_type = GDK_WINDOW_CHILD; + attributes.x = allocation.x; + attributes.y = allocation.y; + attributes.width = allocation.width; + attributes.height = allocation.height; + attributes.wclass = GDK_INPUT_OUTPUT; + attributes.visual = gtk_widget_get_visual (widget); + attributes.event_mask = gtk_widget_get_events (widget); + attributes.event_mask |= (GDK_EXPOSURE_MASK | + GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK | + GDK_POINTER_MOTION_MASK | + GDK_POINTER_MOTION_HINT_MASK); + + attributes_mask = GDK_WA_X | GDK_WA_Y | GDK_WA_VISUAL; + + gtk_widget_set_window(widget, + gdk_window_new (gtk_widget_get_parent_window (widget), &attributes, + attributes_mask)); + gdk_window_set_user_data (gtk_widget_get_window(widget), box); + + stylecontext = gtk_widget_get_style_context(widget); + + gtk_style_context_add_class(stylecontext, GTK_STYLE_CLASS_BACKGROUND); + + gtk_style_context_set_background(stylecontext, gtk_widget_get_window(widget)); + + gtk_databox_create_backing_surface (box); +} + +static void +gtk_databox_unrealize (GtkWidget * widget) { + GtkDatabox *box = GTK_DATABOX (widget); + GtkDataboxPrivate *priv = GTK_DATABOX_GET_PRIVATE(box); + gtk_widget_set_realized(widget, FALSE); + + if (priv->backing_surface) + cairo_surface_destroy (priv->backing_surface); + priv->backing_surface=NULL; + if (priv->adj_x) + g_object_unref (priv->adj_x); + priv->adj_x=NULL; + if (priv->adj_y) + g_object_unref (priv->adj_y); + + g_list_free (priv->graphs); + priv->graphs=NULL; + + if (GTK_WIDGET_CLASS (gtk_databox_parent_class)->unrealize) + (*GTK_WIDGET_CLASS (gtk_databox_parent_class)->unrealize) (widget); + +} + + +/** + * gtk_databox_set_enable_selection + * @box: A #GtkDatabox widget + * @enable: Whether selection via mouse is enabled or not. + * + * Setter function for the #GtkDatabox:enable-selection property. + * + */ +void +gtk_databox_set_enable_selection (GtkDatabox * box, gboolean enable) { + GtkDataboxPrivate *priv = GTK_DATABOX_GET_PRIVATE(box); + g_return_if_fail (GTK_IS_DATABOX (box)); + + priv->enable_selection = enable; + if (priv->selection_active) { + gtk_databox_selection_cancel (box); + } + + g_object_notify (G_OBJECT (box), "enable-selection"); +} + +/** + * gtk_databox_set_enable_zoom + * @box: A #GtkDatabox widget + * @enable: Whether zoom via mouse is enabled or not. + * + * Setter function for the #GtkDatabox:enable-zoom property. + * + */ +void +gtk_databox_set_enable_zoom (GtkDatabox * box, gboolean enable) { + GtkDataboxPrivate *priv = GTK_DATABOX_GET_PRIVATE(box); + g_return_if_fail (GTK_IS_DATABOX (box)); + + priv->enable_zoom = enable; + + g_object_notify (G_OBJECT (box), "enable-zoom"); +} + +/** + * gtk_databox_set_adjustment_x + * @box: A #GtkDatabox widget + * @adj: A #GtkAdjustment object + * + * Setter function for the #GtkDatabox:adjustment-x property. Normally, it should not be + * required to use this function, see property documentation. + * + */ +void +gtk_databox_set_adjustment_x (GtkDatabox * box, GtkAdjustment * adj) { + gdouble page_size_x; + GtkDataboxPrivate *priv = GTK_DATABOX_GET_PRIVATE(box); + + g_return_if_fail (GTK_IS_DATABOX (box)); + + if (!adj) + adj = GTK_ADJUSTMENT(gtk_adjustment_new (0, 0, 0, 0, 0, 0)); + + g_return_if_fail (GTK_IS_ADJUSTMENT (adj)); + + if (priv->adj_x) { + /* @@@ Do we need to disconnect from the signals here? */ + g_object_unref (priv->adj_x); + if (g_object_is_floating(G_OBJECT(priv->adj_x))) + g_object_ref_sink (priv->adj_x); + } + + priv->adj_x = adj; + g_object_ref (priv->adj_x); + + /* We always scroll from 0 to 1.0 */ + if (priv->total_left != priv->total_right) + { + page_size_x = gtk_databox_get_page_size_x(box); + } else { + page_size_x = 1.0; + } + + gtk_adjustment_configure(priv->adj_x, + gtk_databox_get_offset_x (box), /* value */ + 0.0, /* lower */ + 1.0, /* upper */ + page_size_x / 20, /* step_increment */ + page_size_x * 0.9, /* page_increment */ + page_size_x); /* page_size */ + + g_signal_connect_swapped (G_OBJECT (priv->adj_x), "value_changed", + G_CALLBACK + (gtk_databox_adjustment_value_changed), box); + + g_object_notify (G_OBJECT (box), "adjustment-x"); +} + +/** + * gtk_databox_set_adjustment_y + * @box: A #GtkDatabox widget + * @adj: A #GtkAdjustment object + * + * Setter function for the #GtkDatabox:adjustment-y property. Normally, it should not be + * required to use this function, see property documentation. + * + */ +void +gtk_databox_set_adjustment_y (GtkDatabox * box, GtkAdjustment * adj) { + GtkDataboxPrivate *priv = GTK_DATABOX_GET_PRIVATE(box); + gdouble page_size_y; + + g_return_if_fail (GTK_IS_DATABOX (box)); + if (!adj) + adj = GTK_ADJUSTMENT(gtk_adjustment_new (0, 0, 0, 0, 0, 0)); + + g_return_if_fail (GTK_IS_ADJUSTMENT (adj)); + + if (priv->adj_y) { + /* @@@ Do we need to disconnect from the signals here? */ + g_object_unref (priv->adj_y); + if (g_object_is_floating(G_OBJECT(priv->adj_y))) + g_object_ref_sink (priv->adj_y); + } + + priv->adj_y = adj; + g_object_ref (priv->adj_y); + + /* We always scroll from 0 to 1.0 */ + if (priv->total_top != priv->total_bottom) + { + page_size_y = gtk_databox_get_page_size_y(box); + } else { + page_size_y = 1.0; + } + + gtk_adjustment_configure(priv->adj_y, + gtk_databox_get_offset_y (box), /* value */ + 0.0, /* lower */ + 1.0, /* upper */ + page_size_y / 20, /* step_increment */ + page_size_y * 0.9, /* page_increment */ + page_size_y); /* page_size */ + + g_signal_connect_swapped (G_OBJECT (priv->adj_y), "value_changed", + G_CALLBACK + (gtk_databox_adjustment_value_changed), box); + + g_object_notify (G_OBJECT (box), "adjustment-y"); +} + +/** + * gtk_databox_set_ruler_x + * @box: A #GtkDatabox widget + * @ruler: A #GtkDataboxRuler object + * + * Setter function for the #GtkDatabox:ruler-x property. + * + */ +void +gtk_databox_set_ruler_x (GtkDatabox * box, GtkDataboxRuler * ruler) { + GtkDataboxPrivate *priv = GTK_DATABOX_GET_PRIVATE(box); + + g_return_if_fail (GTK_IS_DATABOX (box)); + g_return_if_fail (ruler == NULL || GTK_DATABOX_IS_RULER (ruler)); + g_return_if_fail (ruler == NULL || gtk_databox_ruler_get_orientation(ruler) == GTK_ORIENTATION_HORIZONTAL); + + if (priv->ruler_x) { + /* @@@ Do we need to disconnect the signals here? */ + /* @@@ Do we need to call object_ref and object_unref here and for adjustments? */ + } + + priv->ruler_x = ruler; + + if (GTK_DATABOX_IS_RULER (ruler)) { + gtk_databox_ruler_set_scale_type (ruler, priv->scale_type_x); + + gtk_databox_ruler_update (box); + g_signal_connect_swapped (box, "motion_notify_event", + G_CALLBACK (GTK_WIDGET_GET_CLASS + (priv->ruler_x)-> + motion_notify_event), + G_OBJECT (priv->ruler_x)); + } + + g_object_notify (G_OBJECT (box), "ruler-x"); +} + +/** + * gtk_databox_set_ruler_y + * @box: A #GtkDatabox widget + * @ruler: An #GtkDataboxRuler object + * + * Setter function for the #GtkDatabox:ruler-y property. + * + */ +void +gtk_databox_set_ruler_y (GtkDatabox * box, GtkDataboxRuler * ruler) { + GtkDataboxPrivate *priv = GTK_DATABOX_GET_PRIVATE(box); + + g_return_if_fail (GTK_IS_DATABOX (box)); + g_return_if_fail (ruler == NULL || GTK_DATABOX_IS_RULER (ruler)); + g_return_if_fail (ruler == NULL || gtk_databox_ruler_get_orientation(ruler) == GTK_ORIENTATION_VERTICAL); + + if (priv->ruler_y) { + /* @@@ Do we need to disconnect the signals here? */ + /* @@@ Do we need to call object_ref and object_unref here and for adjustments? */ + } + + priv->ruler_y = ruler; + + if (GTK_DATABOX_IS_RULER (ruler)) { + gtk_databox_ruler_set_scale_type (ruler, + priv->scale_type_y); + + gtk_databox_ruler_update (box); + g_signal_connect_swapped (box, "motion_notify_event", + G_CALLBACK (GTK_WIDGET_GET_CLASS + (priv->ruler_y)-> + motion_notify_event), + G_OBJECT (priv->ruler_y)); + } + + g_object_notify (G_OBJECT (box), "ruler-y"); +} + +/** + * gtk_databox_set_scale_type_x + * @box: A #GtkDatabox widget + * @scale_type: An #GtkDataboxScaleType (linear or logarithmic) + * + * Setter function for the #GtkDatabox:scale-type-x property. + * + */ +void +gtk_databox_set_scale_type_x (GtkDatabox * box, + GtkDataboxScaleType scale_type) { + GtkDataboxPrivate *priv = GTK_DATABOX_GET_PRIVATE(box); + priv->scale_type_x = scale_type; + + if (priv->ruler_x) + gtk_databox_ruler_set_scale_type (priv->ruler_x, scale_type); + + g_object_notify (G_OBJECT (box), "scale-type-x"); +} + +/** + * gtk_databox_set_scale_type_y + * @box: A #GtkDatabox widget + * @scale_type: An #GtkDataboxScaleType (linear or logarithmic) + * + * Setter function for the #GtkDatabox:scale-type-y property. + * + */ +void +gtk_databox_set_scale_type_y (GtkDatabox * box, + GtkDataboxScaleType scale_type) { + GtkDataboxPrivate *priv = GTK_DATABOX_GET_PRIVATE(box); + priv->scale_type_y = scale_type; + + if (priv->ruler_y) + gtk_databox_ruler_set_scale_type (priv->ruler_y, scale_type); + + g_object_notify (G_OBJECT (box), "scale-type-y"); +} + +/** + * gtk_databox_set_box_shadow: + * @box: a #GtkDatabox widget. + * @which_shadow: How to render the box shadow on the GtkDatabox edges. + * + * Sets the shadow type when using gtk_paint_box. This will draw the desired edge shadow. + **/ +void +gtk_databox_set_box_shadow(GtkDatabox * box, GtkShadowType which_shadow) { + GtkDataboxPrivate *priv = GTK_DATABOX_GET_PRIVATE(box); + + g_return_if_fail (GTK_IS_DATABOX (box)); + g_return_if_fail (which_shadow<=GTK_SHADOW_ETCHED_OUT); + + if (priv->box_shadow!=which_shadow) { + priv->box_shadow=which_shadow; + if (gtk_widget_is_drawable (GTK_WIDGET (box))) + gtk_widget_queue_draw (GTK_WIDGET (box)); + } +} + + +/** + * gtk_databox_get_enable_selection + * @box: A #GtkDatabox widget. + * + * Getter function for the #GtkDatabox:enable-selection property. + * + * Return value: The #GtkDatabox:enable-selection property value. + * + */ +gboolean +gtk_databox_get_enable_selection (GtkDatabox * box) { + g_return_val_if_fail (GTK_IS_DATABOX (box), FALSE); + + return GTK_DATABOX_GET_PRIVATE(box)->enable_selection; +} + +/** + * gtk_databox_get_enable_zoom + * @box: A #GtkDatabox widget. + * + * Getter function for the #GtkDatabox:enable-zoom property. + * + * Return value: The #GtkDatabox:enable-zoom property value. + * + */ +gboolean +gtk_databox_get_enable_zoom (GtkDatabox * box) { + g_return_val_if_fail (GTK_IS_DATABOX (box), FALSE); + + return GTK_DATABOX_GET_PRIVATE(box)->enable_zoom; +} + +/** + * gtk_databox_get_adjustment_x + * @box: A #GtkDatabox widget. + * + * Getter function for the #GtkDatabox:adjustment-x property. + * + * Return value: The #GtkDatabox:adjustment-x property value. + * + */ +GtkAdjustment * +gtk_databox_get_adjustment_x (GtkDatabox * box) { + g_return_val_if_fail (GTK_IS_DATABOX (box), NULL); + + return GTK_DATABOX_GET_PRIVATE(box)->adj_x; +} + +/** + * gtk_databox_get_adjustment_y + * @box: A #GtkDatabox widget. + * + * Getter function for the #GtkDatabox:adjustment-y property. + * + * Return value: The #GtkDatabox:adjustment-y property value. + * + */ +GtkAdjustment * +gtk_databox_get_adjustment_y (GtkDatabox * box) { + g_return_val_if_fail (GTK_IS_DATABOX (box), NULL); + + return GTK_DATABOX_GET_PRIVATE(box)->adj_y; +} + +/** + * gtk_databox_get_ruler_x + * @box: A #GtkDatabox widget. + * + * Getter function for the #GtkDatabox:ruler-x property. + * + * Return value: The #GtkDatabox:ruler-x property value. + * + */ +GtkDataboxRuler * +gtk_databox_get_ruler_x (GtkDatabox * box) { + g_return_val_if_fail (GTK_IS_DATABOX (box), NULL); + + return GTK_DATABOX_GET_PRIVATE(box)->ruler_x; +} + +/** + * gtk_databox_get_ruler_y + * @box: A #GtkDatabox widget. + * + * Getter function for the #GtkDatabox:ruler-y property. + * + * Return value: The #GtkDatabox:ruler-y property value. + * + */ +GtkDataboxRuler * +gtk_databox_get_ruler_y (GtkDatabox * box) { + g_return_val_if_fail (GTK_IS_DATABOX (box), NULL); + + return GTK_DATABOX_GET_PRIVATE(box)->ruler_y; +} + +/** + * gtk_databox_get_scale_type_x + * @box: A #GtkDatabox widget. + * + * Getter function for the #GtkDatabox:scale-type-x property. + * + * Return value: The #GtkDatabox:scale-type-x property value. + * + */ +GtkDataboxScaleType +gtk_databox_get_scale_type_x (GtkDatabox * box) { + return GTK_DATABOX_GET_PRIVATE(box)->scale_type_x; +} + +/** + * gtk_databox_get_scale_type_y + * @box: A #GtkDatabox widget. + * + * Getter function for the #GtkDatabox:scale-type-y property. + * + * Return value: The #GtkDatabox:scale-type-y property value. + * + */ +GtkDataboxScaleType +gtk_databox_get_scale_type_y (GtkDatabox * box) { + return GTK_DATABOX_GET_PRIVATE(box)->scale_type_y; +} + +/** + * gtk_databox_get_box_shadow: + * @box: a #GtkDatabox widget + * + * Gets the type of shadow being rendered to the @box (GTK_SHADOW_NONE, GTK_SHADOW_IN, GTK_SHADOW_OUT, GTK_SHADOW_ETCHED_IN, GTK_SHADOW_ETCHED_OUT). + * + * Return value: The currently used shadow type of the @box, -1 on failure. + **/ +GtkShadowType +gtk_databox_get_box_shadow(GtkDatabox * box) { + + g_return_val_if_fail (GTK_IS_DATABOX (box), -1); + + return GTK_DATABOX_GET_PRIVATE(box)->box_shadow; +} + +static void +gtk_databox_calculate_translation_factors (GtkDatabox * box) { + /* @@@ Check for all external functions, if type checks are implemented! */ + GtkDataboxPrivate *priv = GTK_DATABOX_GET_PRIVATE(box); + GtkWidget *widget = GTK_WIDGET(box); + GtkAllocation allocation; + + gtk_widget_get_allocation(widget, &allocation); + if (priv->scale_type_x == GTK_DATABOX_SCALE_LINEAR) + priv->translation_factor_x = + (gfloat)allocation.width / (priv->visible_right - + priv->visible_left); + else if (priv->scale_type_x == GTK_DATABOX_SCALE_LOG2) + priv->translation_factor_x = + (gfloat)allocation.width / log2 (priv->visible_right / + priv->visible_left); + else + priv->translation_factor_x = + (gfloat)allocation.width / log10 (priv->visible_right / + priv->visible_left); + + if (priv->scale_type_y == GTK_DATABOX_SCALE_LINEAR) + priv->translation_factor_y = + (gfloat)allocation.height / (priv->visible_bottom - + priv->visible_top); + else if (priv->scale_type_y == GTK_DATABOX_SCALE_LOG2) + priv->translation_factor_y = + (gfloat)allocation.height / log2 (priv->visible_bottom / + priv->visible_top); + else + priv->translation_factor_y = + (gfloat)allocation.height / log10 (priv->visible_bottom / + priv->visible_top); +} + +static void +gtk_databox_create_backing_surface(GtkDatabox * box) { + GtkDataboxPrivate *priv = GTK_DATABOX_GET_PRIVATE(box); + GtkAllocation allocation; + GtkWidget *widget; + cairo_t *cr; + gint width; + gint height; + + widget = GTK_WIDGET (box); + gtk_widget_get_allocation(widget, &allocation); + width = allocation.width; + height = allocation.height; + if (priv->backing_surface) { + if ((width == priv->old_width) && + (height == priv->old_height)) + return; + cairo_surface_destroy (priv->backing_surface); + } + + priv->old_width = width; + priv->old_height = height; + + cr = gdk_cairo_create (gtk_widget_get_window (widget)); + + priv->backing_surface = cairo_surface_create_similar( + cairo_get_target (cr), + CAIRO_CONTENT_COLOR, + width, height); + +} + +/** + * gtk_databox_get_backing_surface: + * @box: A #GtkDatabox widget + * + * This function returns the surface which is used by @box and its #GtkDataboxGraph objects + * for drawing operations before copying the result to the screen. + * + * The function is typically called by the #GtkDataboxGraph objects. + * + * Return value: Backing surface + */ +cairo_surface_t * +gtk_databox_get_backing_surface(GtkDatabox * box) { + g_return_val_if_fail (GTK_IS_DATABOX (box), NULL); + + return GTK_DATABOX_GET_PRIVATE(box)->backing_surface; +} + +static void +gtk_databox_size_allocate (GtkWidget * widget, GtkAllocation * allocation) { + GtkDatabox *box = GTK_DATABOX (widget); + GtkDataboxPrivate *priv = GTK_DATABOX_GET_PRIVATE(box); + + gtk_widget_set_allocation(widget, allocation); + + if (gtk_widget_get_window(widget)) /* don't move_resize an unrealized window */ + { + gdk_window_move_resize (gtk_widget_get_window(widget), + allocation->x, allocation->y, + allocation->width, allocation->height); + } + + if (priv->selection_active) { + gtk_databox_selection_cancel (box); + } + + gtk_databox_calculate_translation_factors (box); +} + +static gint +gtk_databox_draw (GtkWidget * widget, cairo_t * cr) { + GtkDatabox *box = GTK_DATABOX (widget); + GtkDataboxPrivate *priv = GTK_DATABOX_GET_PRIVATE(box); + GList *list; + cairo_t *cr2; + GtkStyleContext *stylecontext = gtk_widget_get_style_context(widget); + GdkRGBA bg_color; + + gtk_databox_create_backing_surface (box); + + cr2 = cairo_create(priv->backing_surface); + gtk_style_context_get_background_color(stylecontext, GTK_STATE_FLAG_NORMAL, &bg_color); + gdk_cairo_set_source_rgba (cr2, &bg_color); + cairo_paint(cr2); + cairo_destroy(cr2); + + list = g_list_last (priv->graphs); + while (list) { + if (list->data) + gtk_databox_graph_draw (GTK_DATABOX_GRAPH (list->data), box); + list = g_list_previous (list); + } + + if (priv->selection_active) + gtk_databox_draw_selection (box, TRUE); + + cairo_set_source_surface (cr, priv->backing_surface, 0, 0); + cairo_paint(cr); + /* the following was removed - unsure if it creates problems */ + /*gtk_databox_draw_selection (box, FALSE);*/ + + return FALSE; +} + +static void +gtk_databox_calculate_selection_values (GtkDatabox * box) { + GtkDataboxPrivate *priv = GTK_DATABOX_GET_PRIVATE(box); + priv->selectionValues.x1 = + gtk_databox_pixel_to_value_x (box, priv->marked.x); + priv->selectionValues.x2 = + gtk_databox_pixel_to_value_x (box, priv->select.x); + priv->selectionValues.y1 = + gtk_databox_pixel_to_value_y (box, priv->marked.y); + priv->selectionValues.y2 = + gtk_databox_pixel_to_value_y (box, priv->select.y); +} + +static gint +gtk_databox_button_press (GtkWidget * widget, GdkEventButton * event) { + GtkDatabox *box = GTK_DATABOX (widget); + GtkDataboxPrivate *priv = GTK_DATABOX_GET_PRIVATE(widget); + + if (event->type != GDK_BUTTON_PRESS && event->type != GDK_2BUTTON_PRESS) + return FALSE; + + priv->selection_finalized = FALSE; + if ((event->button == 1 || event->button == 2) & !(event->type==GDK_2BUTTON_PRESS)) { + if (priv->selection_active) { + if (event->x > MIN (priv->marked.x, priv->select.x) + && event->x < MAX (priv->marked.x, priv->select.x) + && event->y > MIN (priv->marked.y, priv->select.y) + && event->y < MAX (priv->marked.y, priv->select.y)) { + gtk_databox_zoom_to_selection (box); + } else { + gtk_databox_selection_cancel (box); + } + priv->marked.x = priv->select.x = event->x; + priv->marked.y = priv->select.y = event->y; + gtk_databox_calculate_selection_values (box); + } + } + + if ((event->button == 3) || (event->button == 1 && event->type==GDK_2BUTTON_PRESS)) { + if (event->state & GDK_SHIFT_MASK) { + gtk_databox_zoom_home (box); + } else { + gtk_databox_zoom_out (box); + } + } + + return FALSE; +} + +static gint +gtk_databox_button_release (GtkWidget * widget, GdkEventButton * event) { + GtkDatabox *box = GTK_DATABOX (widget); + GtkDataboxPrivate *priv = GTK_DATABOX_GET_PRIVATE(widget); + + if (event->type != GDK_BUTTON_RELEASE) + return FALSE; + + if (priv->selection_active) { + priv->selection_finalized = TRUE; + + g_signal_emit (G_OBJECT (box), + gtk_databox_signals[SELECTION_FINALIZED_SIGNAL], + 0, &priv->selectionValues); + } + + return FALSE; +} + +static gint +gtk_databox_scroll_event (GtkWidget *widget, GdkEventScroll *event) { + GtkDatabox *box = GTK_DATABOX (widget); + GtkDataboxPrivate *priv = GTK_DATABOX_GET_PRIVATE(widget); + + if (event->state & GDK_CONTROL_MASK && priv->enable_zoom) { + if (event->direction == GDK_SCROLL_DOWN) { + gtk_databox_zoom_out(box); + } else if (event->direction == GDK_SCROLL_UP && + (gtk_adjustment_get_page_size(priv->adj_x) / 2) >= priv->zoom_limit && + (gtk_adjustment_get_page_size(priv->adj_y) / 2) >= priv->zoom_limit) { + gdouble x_val, y_val; + gdouble x_proportion, y_proportion; + + x_val = gtk_databox_pixel_to_value_x(box, event->x); + y_val = gtk_databox_pixel_to_value_y(box, event->y); + + if (priv->scale_type_x == GTK_DATABOX_SCALE_LINEAR) { + x_proportion = (x_val - priv->total_left) / + (priv->total_right - priv->total_left); + } else { + x_proportion = log(x_val/priv->total_left) / + log(priv->total_right / priv->total_left); + } + + if (priv->scale_type_y == GTK_DATABOX_SCALE_LINEAR) { + y_proportion = (y_val - priv->total_top) / + (priv->total_bottom - priv->total_top); + } else { + y_proportion = log(y_val/priv->total_top) / + log(priv->total_bottom / priv->total_top); + } + + g_object_freeze_notify(G_OBJECT(priv->adj_x)); + gtk_adjustment_set_page_size(priv->adj_x, gtk_adjustment_get_page_size(priv->adj_x) / 2); + gtk_adjustment_set_value(priv->adj_x, (x_proportion + + gtk_adjustment_get_value(priv->adj_x)) / 2); + g_object_thaw_notify(G_OBJECT(priv->adj_x)); + + g_object_freeze_notify(G_OBJECT(priv->adj_y)); + gtk_adjustment_set_page_size(priv->adj_y, gtk_adjustment_get_page_size(priv->adj_y) / 2); + gtk_adjustment_set_value(priv->adj_y, (y_proportion + + gtk_adjustment_get_value(priv->adj_y)) / 2); + g_object_thaw_notify(G_OBJECT(priv->adj_y)); + + gtk_databox_calculate_visible_limits(box); + gtk_databox_zoomed (box); + } + } else { + GtkAdjustment *adj; + gdouble delta = 0.0, new_value; + + if ((event->direction == GDK_SCROLL_UP || + event->direction == GDK_SCROLL_DOWN) && + !(event->state & GDK_MOD1_MASK)) { + adj = priv->adj_y; + } else { + adj = priv->adj_x; + } + + switch (event->direction) { + case GDK_SCROLL_UP: + case GDK_SCROLL_SMOOTH: + case GDK_SCROLL_LEFT: + delta = 0 - gtk_adjustment_get_step_increment(adj); + break; + case GDK_SCROLL_DOWN: + case GDK_SCROLL_RIGHT: + delta = gtk_adjustment_get_step_increment(adj); + break; + } + + new_value = CLAMP (gtk_adjustment_get_value(adj) + delta, gtk_adjustment_get_lower(adj), + gtk_adjustment_get_upper(adj) - gtk_adjustment_get_page_size(adj)); + gtk_adjustment_set_value(adj, new_value); + } + + return FALSE; +} + +static void +gtk_databox_selection_cancel (GtkDatabox * box) { + GtkDataboxPrivate *priv = GTK_DATABOX_GET_PRIVATE(box); + + /* There is no active selection after cancellation */ + priv->selection_active = FALSE; + + /* Only active selections can be stopped */ + priv->selection_finalized = FALSE; + + /* Remove selection box */ + gtk_databox_draw_selection (box, TRUE); + + /* Let everyone know that the selection has been canceled */ + g_signal_emit (G_OBJECT (box), + gtk_databox_signals[SELECTION_CANCELED_SIGNAL], 0); +} + + +static void +gtk_databox_zoomed (GtkDatabox * box) { + GtkDataboxPrivate *priv = GTK_DATABOX_GET_PRIVATE(box); + + g_return_if_fail(GTK_IS_DATABOX(box)); + g_return_if_fail(GTK_IS_ADJUSTMENT(priv->adj_x)); + g_return_if_fail(GTK_IS_ADJUSTMENT(priv->adj_y)); + + priv->selection_active = FALSE; + priv->selection_finalized = FALSE; + + gtk_adjustment_changed (priv->adj_x); + gtk_adjustment_changed (priv->adj_y); + + gtk_widget_queue_draw (GTK_WIDGET(box)); + + g_signal_emit (G_OBJECT (box), + gtk_databox_signals[ZOOMED_SIGNAL], 0, NULL); +} + +/** + * gtk_databox_zoom_to_selection: + * @box: A #GtkDatabox widget + * + * This is equivalent to left-clicking into the selected area. + * + * This function works, if the attribute #enable-zoom is set to #TRUE. Calling the function + * then zooms to the area selected with the mouse. + * + * Side effect: The @box emits #GtkDatabox::zoomed. + */ +void +gtk_databox_zoom_to_selection (GtkDatabox * box) { + GtkDataboxPrivate *priv = GTK_DATABOX_GET_PRIVATE(box); + GtkWidget *widget; + GtkAllocation allocation; + gdouble temp_value, temp_page_size; + + g_return_if_fail(GTK_IS_DATABOX(box)); + + widget = GTK_WIDGET (box); + gtk_widget_get_allocation(widget, &allocation); + + if (!priv->enable_zoom) { + gtk_databox_selection_cancel (box); + return; + } + + g_object_freeze_notify(G_OBJECT(priv->adj_x)); + g_object_freeze_notify(G_OBJECT(priv->adj_y)); + + temp_value = gtk_adjustment_get_value(priv->adj_x); + temp_value += (gdouble) (MIN (priv->marked.x, priv->select.x)) + * gtk_adjustment_get_page_size(priv->adj_x) + / allocation.width; + temp_page_size = gtk_adjustment_get_page_size(priv->adj_x); + temp_page_size *= + (gdouble) (ABS (priv->marked.x - priv->select.x) + 1) + / allocation.width; + + gtk_adjustment_set_page_size(priv->adj_x, temp_page_size); + gtk_adjustment_set_value(priv->adj_x, temp_value); + + temp_value = gtk_adjustment_get_value(priv->adj_y); + temp_value += (gdouble) (MIN (priv->marked.y, priv->select.y)) + * gtk_adjustment_get_page_size(priv->adj_y) + / allocation.height; + temp_page_size = gtk_adjustment_get_page_size(priv->adj_y); + temp_page_size *= + (gfloat) (ABS (priv->marked.y - priv->select.y) + 1) + / allocation.height; + + gtk_adjustment_set_page_size(priv->adj_y, temp_page_size); + gtk_adjustment_set_value(priv->adj_y, temp_value); + + /* If we zoom too far into the data, we will get funny results, because + * of overflow effects. Therefore zooming is limited to zoom_limit. + */ + if (gtk_adjustment_get_page_size(priv->adj_x) < priv->zoom_limit) { + temp_value = (gfloat) MAX (0, gtk_adjustment_get_value(priv->adj_x) + - (priv->zoom_limit - + gtk_adjustment_get_page_size(priv->adj_x)) / + 2.0); + gtk_adjustment_set_page_size(priv->adj_x, priv->zoom_limit); + gtk_adjustment_set_value(priv->adj_x, temp_value); + } + + if (gtk_adjustment_get_page_size(priv->adj_y) < priv->zoom_limit) { + temp_value = (gfloat) MAX (0, gtk_adjustment_get_value(priv->adj_y) + - (priv->zoom_limit - + gtk_adjustment_get_page_size(priv->adj_y)) / + 2.0); + gtk_adjustment_set_page_size(priv->adj_y, priv->zoom_limit); + gtk_adjustment_set_value(priv->adj_y, temp_value); + } + g_object_thaw_notify(G_OBJECT(priv->adj_y)); + g_object_thaw_notify(G_OBJECT(priv->adj_x)); + + gtk_databox_calculate_visible_limits(box); + gtk_databox_zoomed (box); +} + +/** + * gtk_databox_zoom_out: + * @box: A #GtkDatabox widget + * + * This is equivalent to right-clicking into the @box. + * + * This function works, if the attribute #enable-zoom is set to #TRUE. Calling the function + * then zooms out by a factor of 2 in both dimensions (the maximum is defined by the total + * limits, see gtk_databox_set_total_limits()). + * + * Side effect: The @box emits #GtkDatabox::zoomed. + */ +void +gtk_databox_zoom_out (GtkDatabox * box) { + GtkDataboxPrivate *priv = GTK_DATABOX_GET_PRIVATE(box); + if (!priv->enable_zoom) { + return; + } + + g_object_freeze_notify(G_OBJECT(priv->adj_x)); + g_object_freeze_notify(G_OBJECT(priv->adj_y)); + gtk_adjustment_set_page_size(priv->adj_x, MIN (1.0, gtk_adjustment_get_page_size(priv->adj_x) * 2)); + gtk_adjustment_set_page_size(priv->adj_y, MIN (1.0, gtk_adjustment_get_page_size(priv->adj_y) * 2)); + gtk_adjustment_set_value(priv->adj_x, + (gtk_adjustment_get_page_size(priv->adj_x) == 1.0) + ? 0 + : MAX (0, MIN (gtk_adjustment_get_value(priv->adj_x) - gtk_adjustment_get_page_size(priv->adj_x) / 4, + 1.0 - gtk_adjustment_get_page_size(priv->adj_x)))); + gtk_adjustment_set_value(priv->adj_y, + (gtk_adjustment_get_page_size(priv->adj_y) == 1.0) + ? 0 + : MAX (0, MIN (gtk_adjustment_get_value(priv->adj_y) - gtk_adjustment_get_page_size(priv->adj_y) / 4, + 1.0 - gtk_adjustment_get_page_size(priv->adj_y)))); + g_object_thaw_notify(G_OBJECT(priv->adj_y)); + g_object_thaw_notify(G_OBJECT(priv->adj_x)); + + gtk_databox_calculate_visible_limits(box); + gtk_databox_zoomed (box); +} + +/** + * gtk_databox_zoom_home: + * @box: A #GtkDatabox widget + * + * This is equivalent to shift right-clicking into the @box. + * + * This function works, if the attribute #enable-zoom is set to #TRUE. It is equivalent to + * calling the gtk_databox_set_visible_limits() with the total limits. + * + */ +void +gtk_databox_zoom_home (GtkDatabox * box) { + GtkDataboxPrivate *priv = GTK_DATABOX_GET_PRIVATE(box); + if (!priv->enable_zoom) { + return; + } + + gtk_databox_set_visible_limits (box, + priv->total_left, priv->total_right, + priv->total_top, priv->total_bottom); +} + +static void +gtk_databox_draw_selection (GtkDatabox * box, gboolean clear) { + GtkDataboxPrivate *priv = GTK_DATABOX_GET_PRIVATE(box); + GtkWidget *widget = GTK_WIDGET (box); + cairo_t *cr; + + cr = gdk_cairo_create (gtk_widget_get_window (widget)); + cairo_rectangle (cr, + MIN (priv->marked.x, priv->select.x) - 0.5, + MIN (priv->marked.y, priv->select.y) - 0.5, + ABS (priv->marked.x - priv->select.x) + 1.0, + ABS (priv->marked.y - priv->select.y) + 1.0); + + if (clear) { + cairo_set_source_surface (cr, priv->backing_surface, 0, 0); + cairo_paint(cr); + cairo_set_line_width (cr, 2.0); + } else { + cairo_set_source_rgb (cr, 1.0, 1.0, 1.0); + cairo_set_operator (cr, CAIRO_OPERATOR_DIFFERENCE); + cairo_set_line_width (cr, 1.0); + } + cairo_stroke(cr); + + cairo_destroy(cr); +} + +static void +gtk_databox_adjustment_value_changed (GtkDatabox * box) { + gtk_databox_calculate_visible_limits (box); + + gtk_widget_queue_draw (GTK_WIDGET(box)); +} + +static void +gtk_databox_ruler_update (GtkDatabox * box) { + GtkDataboxPrivate *priv = GTK_DATABOX_GET_PRIVATE(box); + if (priv->ruler_x) { + gtk_databox_ruler_set_range ( + GTK_DATABOX_RULER (priv->ruler_x), + priv->visible_left, + priv->visible_right, + 0.5 * (priv->visible_left + priv->visible_right)); + } + + if (priv->ruler_y) { + gtk_databox_ruler_set_range ( + GTK_DATABOX_RULER (priv->ruler_y), + priv->visible_top, + priv->visible_bottom, + 0.5 * (priv->visible_top + priv->visible_bottom)); + } +} + +/** + * gtk_databox_auto_rescale: + * @box: A #GtkDatabox widget + * @border: Relative border width (e.g. 0.1 means that the border on each side is 10% of the data area). + * + * This function is similar to gtk_databox_set_total_limits(). It sets the total limits + * to match the data extrema (see gtk_databox_calculate_extrema()). If you do not like data pixels exactly at the + * widget's border, you can add modify the limits using the border parameter: The limits are extended by + * @border*(max-min) if max!=min. If max==min, they are extended by @border*max (otherwise the data could not be + * scaled to the pixel realm). + * + * After calling this function, x values grow from left to right, y values grow from bottom to top. + * + * Return value: 0 on success, + * -1 if @box is no GtkDatabox widget, + * -2 if no datasets are available + */ +gint +gtk_databox_auto_rescale (GtkDatabox * box, gfloat border) { + gfloat min_x; + gfloat max_x; + gfloat min_y; + gfloat max_y; + gint extrema_success = gtk_databox_calculate_extrema (box, &min_x, &max_x, + &min_y, &max_y); + if (extrema_success) + return extrema_success; + else { + gfloat width = max_x - min_x; + gfloat height = max_y - min_y; + + if (width == 0) width = max_x; + if (height == 0) height = max_y; + + min_x -= border * width; + max_x += border * width; + min_y -= border * height; + max_y += border * height; + } + + gtk_databox_set_total_limits (GTK_DATABOX (box), min_x, max_x, max_y, + min_y); + + return 0; +} + + +/** + * gtk_databox_calculate_extrema: + * @box: A #GtkDatabox widget + * @min_x: Will be filled with the lowest x value of all datasets + * @max_x: Will be filled with the highest x value of all datasets + * @min_y: Will be filled with the lowest y value of all datasets + * @max_y: Will be filled with the highest y value of all datasets + * + * Determines the minimum and maximum x and y values of all + * #GtkDataboxGraph objects which have been added to the #GtkDatabox widget via gtk_databox_graph_add(). + * + * Return value: 0 on success, + * -1 if @box is no GtkDatabox widget, + * -2 if no datasets are available + */ +gint +gtk_databox_calculate_extrema (GtkDatabox * box, + gfloat * min_x, gfloat * max_x, gfloat * min_y, + gfloat * max_y) { + GtkDataboxPrivate *priv = GTK_DATABOX_GET_PRIVATE(box); + GList *list; + gint return_val = -2; + gboolean first = TRUE; + + g_return_val_if_fail (GTK_IS_DATABOX (box), -1); + + list = g_list_last (priv->graphs); + while (list) { + gfloat graph_min_x; + gfloat graph_max_x; + gfloat graph_min_y; + gfloat graph_max_y; + gint value = -1; + + if (list->data) { + value = + gtk_databox_graph_calculate_extrema (GTK_DATABOX_GRAPH + (list->data), &graph_min_x, + &graph_max_x, &graph_min_y, + &graph_max_y); + } else { + /* Do nothing if data == NULL */ + } + + if (value >= 0) { + return_val = 0; + + if (first) { + /* The min and max values need to be initialized with the + * first valid values from the graph + */ + *min_x = graph_min_x; + *max_x = graph_max_x; + *min_y = graph_min_y; + *max_y = graph_max_y; + + first = FALSE; + } else { + *min_x = MIN (*min_x, graph_min_x); + *min_y = MIN (*min_y, graph_min_y); + *max_x = MAX (*max_x, graph_max_x); + *max_y = MAX (*max_y, graph_max_y); + } + } + + list = g_list_previous (list); + } + return return_val; +} + +static gfloat +gtk_databox_get_offset_x (GtkDatabox* box) { + GtkDataboxPrivate *priv = GTK_DATABOX_GET_PRIVATE(box); + + if (priv->scale_type_x == GTK_DATABOX_SCALE_LINEAR) + return (priv->visible_left - priv->total_left) + / (priv->total_right - priv->total_left); + else if (priv->scale_type_x == GTK_DATABOX_SCALE_LOG2) + return log2 (priv->visible_left / priv->total_left) + / log2 (priv->total_right / priv->total_left); + else + return log10 (priv->visible_left / priv->total_left) + / log10 (priv->total_right / priv->total_left); +} + +static gfloat +gtk_databox_get_page_size_x (GtkDatabox* box) { + GtkDataboxPrivate *priv = GTK_DATABOX_GET_PRIVATE(box); + + if (priv->scale_type_x == GTK_DATABOX_SCALE_LINEAR) + return (priv->visible_left - priv->visible_right) + / (priv->total_left - priv->total_right); + else if (priv->scale_type_x == GTK_DATABOX_SCALE_LOG2) + return log2 (priv->visible_left / priv->visible_right) + / log2 (priv->total_left / priv->total_right); + else + return log10 (priv->visible_left / priv->visible_right) + / log10 (priv->total_left / priv->total_right); +} + +static gfloat +gtk_databox_get_offset_y (GtkDatabox* box) { + GtkDataboxPrivate *priv = GTK_DATABOX_GET_PRIVATE(box); + + if (priv->scale_type_y == GTK_DATABOX_SCALE_LINEAR) + return (priv->visible_top - priv->total_top) + / (priv->total_bottom - priv->total_top); + else if (priv->scale_type_y == GTK_DATABOX_SCALE_LOG2) + return log2 (priv->visible_top / priv->total_top) + / log2 (priv->total_bottom / priv->total_top); + else + return log10 (priv->visible_top / priv->total_top) + / log10 (priv->total_bottom / priv->total_top); +} + +static gfloat +gtk_databox_get_page_size_y (GtkDatabox* box) { + GtkDataboxPrivate *priv = GTK_DATABOX_GET_PRIVATE(box); + + if (priv->scale_type_y == GTK_DATABOX_SCALE_LINEAR) + return (priv->visible_top - priv->visible_bottom) + / (priv->total_top - priv->total_bottom); + else if (priv->scale_type_y == GTK_DATABOX_SCALE_LOG2) + return log2 (priv->visible_top / priv->visible_bottom) + / log2 (priv->total_top / priv->total_bottom); + else + return log10 (priv->visible_top / priv->visible_bottom) + / log10 (priv->total_top / priv->total_bottom); +} + +/** + * gtk_databox_set_total_limits: + * @box: A #GtkDatabox widget + * @left: Left total limit + * @right: Right total limit + * @top: Top total limit + * @bottom: Bottom total limit + * + * This function is used to set the limits of the total + * display area of @box. + * This function can be used to invert the orientation of the displayed graphs, + * e.g. @top=-1000 and @bottom=0. + * + * Side effect: The @box also internally calls gtk_databox_set_visible_limits() with the same values. + * + */ +void +gtk_databox_set_total_limits (GtkDatabox * box, + gfloat left, gfloat right, + gfloat top, gfloat bottom) { + GtkDataboxPrivate *priv = GTK_DATABOX_GET_PRIVATE(box); + g_return_if_fail (GTK_IS_DATABOX (box)); + g_return_if_fail (left != right); + g_return_if_fail (top != bottom); + + priv->total_left = left; + priv->total_right = right; + priv->total_top = top; + priv->total_bottom = bottom; + + gtk_databox_set_visible_limits(box, left, right, top, bottom); +} + +/** + * gtk_databox_set_visible_limits: + * @box: A #GtkDatabox widget + * @left: Left visible limit + * @right: Right visible limit + * @top: Top visible limit + * @bottom: Bottom visible limit + * + * This function is used to set the limits of the visible + * display area of @box. The visible display area can be section of the total + * area, i.e. the @box zooms in, showing only a part of the complete picture. + * + * The orientation of the values have to be the same as in gtk_databox_set_total_limits() and + * the visible limits have to be within the total limits. The + * values will not be used otherwise. + * + * Side effect: The @box emits #GtkDatabox::zoomed. + * + */ +void +gtk_databox_set_visible_limits (GtkDatabox * box, + gfloat left, gfloat right, + gfloat top, gfloat bottom) { + GtkDataboxPrivate *priv = GTK_DATABOX_GET_PRIVATE(box); + gboolean visible_inside_total = FALSE; + + g_return_if_fail (GTK_IS_DATABOX (box)); + + visible_inside_total = + ((priv->total_left <= left && left < right + && right <= priv->total_right) + || (priv->total_left >= left && left > right + && right >= priv->total_right)) + && + ((priv->total_bottom <= bottom && bottom < top + && top <= priv->total_top) + || (priv->total_bottom >= bottom && bottom > top + && top >= priv->total_top)); + + g_return_if_fail (visible_inside_total); + + priv->visible_left = left; + priv->visible_right = right; + priv->visible_top = top; + priv->visible_bottom = bottom; + + gtk_databox_calculate_translation_factors (box); + + g_object_freeze_notify(G_OBJECT(priv->adj_x)); + g_object_freeze_notify(G_OBJECT(priv->adj_y)); + + gtk_adjustment_set_value(priv->adj_x, gtk_databox_get_offset_x (box)); + gtk_adjustment_set_page_size(priv->adj_x, gtk_databox_get_page_size_x (box)); + gtk_adjustment_set_value(priv->adj_y, gtk_databox_get_offset_y (box)); + gtk_adjustment_set_page_size(priv->adj_y, gtk_databox_get_page_size_y (box)); + + g_object_thaw_notify(G_OBJECT(priv->adj_y)); + g_object_thaw_notify(G_OBJECT(priv->adj_x)); + + /* Update rulers */ + gtk_databox_ruler_update(box); + + gtk_databox_calculate_translation_factors (box); + + gtk_databox_zoomed (box); +} + +/** + * gtk_databox_calculate_visible_limits: + * @box: A #GtkDatabox widget + * + * Calculates the visible limits based on the adjustment values and page sizes + * and calls gtk_databox_set_visible_limits(); + */ +static void +gtk_databox_calculate_visible_limits (GtkDatabox * box) { + GtkDataboxPrivate *priv = GTK_DATABOX_GET_PRIVATE(box); + if (!gtk_widget_get_visible (GTK_WIDGET(box))) + return; + + if (priv->scale_type_x == GTK_DATABOX_SCALE_LINEAR) { + priv->visible_left = + priv->total_left + + (priv->total_right - priv->total_left) + * gtk_adjustment_get_value(priv->adj_x); + priv->visible_right = + priv->total_left + + (priv->total_right - priv->total_left) + * (gtk_adjustment_get_value(priv->adj_x) + gtk_adjustment_get_page_size(priv->adj_x)); + } else { + priv->visible_left = + priv->total_left + * pow (priv->total_right / priv->total_left, + gtk_adjustment_get_value(priv->adj_x)); + priv->visible_right = + priv->total_left + * pow (priv->total_right / priv->total_left, + gtk_adjustment_get_value(priv->adj_x) + gtk_adjustment_get_page_size(priv->adj_x)); + } + + if (priv->scale_type_y == GTK_DATABOX_SCALE_LINEAR) { + priv->visible_top = + priv->total_top + + (priv->total_bottom - priv->total_top) + * gtk_adjustment_get_value(priv->adj_y); + priv->visible_bottom = + priv->total_top + + (priv->total_bottom - priv->total_top) + * (gtk_adjustment_get_value(priv->adj_y) + gtk_adjustment_get_page_size(priv->adj_y)); + } else { + priv->visible_top = + priv->total_top + * pow (priv->total_bottom / priv->total_top, + gtk_adjustment_get_value(priv->adj_y)), + priv->visible_bottom = + priv->total_top + * pow (priv->total_bottom / priv->total_top, + gtk_adjustment_get_value(priv->adj_y) + gtk_adjustment_get_page_size(priv->adj_y)); + } + + /* Adjustments are the basis for the calculations in this function + * so they do not need to be updated + */ + + /* Update rulers */ + gtk_databox_ruler_update(box); + + gtk_databox_calculate_translation_factors (box); +} + +/** + * gtk_databox_get_total_limits: + * @box: A #GtkDatabox widget + * @left: Space for total left value or #NULL + * @right: Space for total right value or #NULL + * @top: Space for total top value or #NULL + * @bottom: Space for total bottom value or #NULL + * + * Gives the total limits (as set by gtk_databox_auto_rescale() or gtk_databox_set_total_limits()). + */ +void +gtk_databox_get_total_limits (GtkDatabox * box, + gfloat * left, gfloat * right, + gfloat * top, gfloat * bottom) { + GtkDataboxPrivate *priv = GTK_DATABOX_GET_PRIVATE(box); + g_return_if_fail (GTK_IS_DATABOX (box)); + + if (left) + *left = priv->total_left; + if (right) + *right = priv->total_right; + if (top) + *top = priv->total_top; + if (bottom) + *bottom = priv->total_bottom; +} + +/** + * gtk_databox_get_visible_limits: + * @box: A #GtkDatabox widget + * @left: Space for visible left value or #NULL + * @right: Space for visible right value or #NULL + * @top: Space for visible top value or #NULL + * @bottom: Space for visible bottom value or #NULL + * + * Gives the current visible limits. These differ from those given by gtk_databox_get_total_limits() if + * you zoomed into the data for instance by gtk_databox_zoom_to_selection() or gtk_databox_set_visible_limits() (these values + * can be changed by scrolling, of course). + */ +void +gtk_databox_get_visible_limits (GtkDatabox * box, + gfloat * left, gfloat * right, + gfloat * top, gfloat * bottom) { + GtkDataboxPrivate *priv = GTK_DATABOX_GET_PRIVATE(box); + g_return_if_fail (GTK_IS_DATABOX (box)); + + if (left) + *left = priv->visible_left; + if (right) + *right = priv->visible_right; + if (top) + *top = priv->visible_top; + if (bottom) + *bottom = priv->visible_bottom; +} + + +/** + * gtk_databox_graph_add: + * @box: A #GtkDatabox widget + * @graph: A graph, e.g. a #GtkDataboxPoints or a #GtkDataboxGrid object + * + * Adds the @graph to the @box. The next time the @box is re-drawn, the graph will be shown. + * + * It might be becessary to modify the total_limits in order for the graph to be displayed properly (see gtk_databox_set_total_limits()). + * + * Return value: 0 on success, -1 otherwise + */ +gint +gtk_databox_graph_add (GtkDatabox * box, GtkDataboxGraph * graph) { + GtkDataboxPrivate *priv = GTK_DATABOX_GET_PRIVATE(box); + g_return_val_if_fail (GTK_IS_DATABOX (box), -1); + g_return_val_if_fail (GTK_DATABOX_IS_GRAPH (graph), -1); + + priv->graphs = g_list_append (priv->graphs, graph); + + return (priv->graphs == NULL) ? -1 : 0; +} + +/** + * gtk_databox_graph_add_front: + * @box: A #GtkDatabox widget + * @graph: A graph, e.g. a #GtkDataboxPoints or a #GtkDataboxGrid object + * + * Adds the @graph to the @box and will be plotted on top. The next time the @box is re-drawn, the graph will be shown. + * + * It might be becessary to modify the total_limits in order for the graph to be displayed properly (see gtk_databox_set_total_limits()). + * + * Return value: 0 on success, -1 otherwise + */ +gint +gtk_databox_graph_add_front (GtkDatabox * box, GtkDataboxGraph * graph) { + + GtkDataboxPrivate *priv = GTK_DATABOX_GET_PRIVATE(box); + g_return_val_if_fail (GTK_IS_DATABOX (box), -1); + g_return_val_if_fail (GTK_DATABOX_IS_GRAPH (graph), -1); + + priv->graphs = g_list_prepend (priv->graphs, graph); + + return (priv->graphs == NULL) ? -1 : 0; +} + +/** + * gtk_databox_graph_remove: + * @box: A #GtkDatabox widget + * @graph: A graph, e.g. a #GtkDataboxPoints or a #GtkDataboxGrid object + * + * Removes the @graph from the @box once. The next time the @box is re-drawn, the graph will not be shown (unless it was added more + * than once). + * + * Return value: 0 on success, -1 otherwise + */ +gint +gtk_databox_graph_remove (GtkDatabox * box, GtkDataboxGraph * graph) { + GtkDataboxPrivate *priv = GTK_DATABOX_GET_PRIVATE(box); + GList *list; + + g_return_val_if_fail (GTK_IS_DATABOX (box), -1); + g_return_val_if_fail (GTK_DATABOX_IS_GRAPH (graph), -1); + + list = g_list_find (priv->graphs, graph); + g_return_val_if_fail (list, -1); + + priv->graphs = g_list_delete_link (priv->graphs, list); + return 0; +} + +/** + * gtk_databox_graph_remove_all: + * @box: A #GtkDatabox widget + * + * Removes all graphs from the @box. The next time the @box is re-drawn, no graphs will be shown. + * + * Return value: 0 on success, -1 otherwise + */ +gint +gtk_databox_graph_remove_all (GtkDatabox * box) { + GtkDataboxPrivate *priv = GTK_DATABOX_GET_PRIVATE(box); + g_return_val_if_fail (GTK_IS_DATABOX (box), -1); + + g_list_free (priv->graphs); + priv->graphs = NULL; + + return 0; +} + +/** + * gtk_databox_value_to_pixel_x: + * @box: A #GtkDatabox widget + * @value: An x value + * + * Calculates the horizontal pixel coordinate which represents the x @value. + * Pixel coordinates are relative to the top-left corner of the @box which is equivalent to (0,0). + * + * Return value: Pixel coordinate + */ +gint16 +gtk_databox_value_to_pixel_x (GtkDatabox * box, gfloat value) { + GtkDataboxPrivate *priv = GTK_DATABOX_GET_PRIVATE(box); + + if (priv->scale_type_x == GTK_DATABOX_SCALE_LINEAR) + return (value - + priv->visible_left) * + priv->translation_factor_x; + else if (priv->scale_type_x == GTK_DATABOX_SCALE_LOG2) + return log2 (value / priv->visible_left) * + priv->translation_factor_x; + else + return log10 (value / priv->visible_left) * + priv->translation_factor_x; +} + +/** + * gtk_databox_value_to_pixel_y: + * @box: A #GtkDatabox widget + * @value: A y value + * + * Calculates the vertical pixel coordinate which represents the y @value. + * Pixel coordinates are relative to the top-left corner of the @box which is equivalent to (0,0). + * + * Return value: Pixel coordinate + */ +gint16 +gtk_databox_value_to_pixel_y (GtkDatabox * box, gfloat value) { + GtkDataboxPrivate *priv = GTK_DATABOX_GET_PRIVATE(box); + + if (priv->scale_type_y == GTK_DATABOX_SCALE_LINEAR) + return (value - + priv->visible_top) * priv->translation_factor_y; + else if (priv->scale_type_y == GTK_DATABOX_SCALE_LOG2) + return log2 (value / priv->visible_top) * + priv->translation_factor_y; + else + return log10 (value / priv->visible_top) * + priv->translation_factor_y; +} + +/** + * gtk_databox_values_to_xpixels: + * @box: A #GtkDatabox widget + * @value: An x values array + * + * Calculates the horizontal pixel coordinates which represents the x @values. + * Pixel coordinates are relative to the left corner of the @box which is equivalent to (0). + * + * Return value: Pixel coordinates + */ +void +gtk_databox_values_to_xpixels (GtkDatabox *box, gint16 *pixels, + void *values, GType vtype, guint maxlen, guint start, guint stride, guint len) +{ + GtkDataboxPrivate *priv = GTK_DATABOX_GET_PRIVATE(box); + guint i, indx; + gfloat fval = 0.0; + GtkDataboxScaleType scale_type; + gfloat tf, minvis; + + scale_type = priv->scale_type_x; + tf = priv->translation_factor_x; + minvis = priv->visible_left; + + indx = start * stride; + i = 0; + do { + /* This may be excessive, but it handles every conceivable type */ + if (vtype == G_TYPE_FLOAT) + fval = ((gfloat *)values)[indx]; + else if (vtype == G_TYPE_DOUBLE) + fval = ((gdouble *)values)[indx]; + else if (vtype == G_TYPE_INT) + fval = ((gint *)values)[indx]; + else if (vtype == G_TYPE_UINT) + fval = ((guint *)values)[indx]; + else if (vtype == G_TYPE_LONG) + fval = ((glong *)values)[indx]; + else if (vtype == G_TYPE_ULONG) + fval = ((gulong *)values)[indx]; + else if (vtype == G_TYPE_INT64) + fval = ((gint64 *)values)[indx]; + else if (vtype == G_TYPE_UINT64) + fval = ((guint64 *)values)[indx]; + else if (vtype == G_TYPE_CHAR) + fval = ((gchar *)values)[indx]; + else if (vtype == G_TYPE_UCHAR) + fval = ((guchar *)values)[indx]; + + if (scale_type == GTK_DATABOX_SCALE_LINEAR) + pixels[i] = tf * (fval - minvis); + else if (scale_type == GTK_DATABOX_SCALE_LOG2) + pixels[i] = tf * log2(fval / minvis); + else + pixels[i] = tf * log10(fval / minvis); + + /* handle the wrap-around (ring buffer) issue using modulus. for efficiency, don't do this for non-wraparound cases. */ + /* note this allows multiple wrap-arounds. One could hold a single cycle of a sine wave, and plot a continuous wave */ + /* This can be optimized using pointers later */ + if (i + start > maxlen) + indx = ((i + start) % maxlen) * stride; + else + indx += stride; + } while (++i < len); +} + +/** + * gtk_databox_values_to_ypixels: + * @box: A #GtkDatabox widget + * @value: An y values array + * + * Calculates the vertical pixel coordinates which represents the y @values. + * Pixel coordinates are relative to the top corner of the @box which is equivalent to (0). + * + * Return value: Pixel coordinates + */ +void +gtk_databox_values_to_ypixels (GtkDatabox *box, gint16 *pixels, + void *values, GType vtype, guint maxlen, guint start, guint stride, guint len) +{ + GtkDataboxPrivate *priv = GTK_DATABOX_GET_PRIVATE(box); + guint i, indx; + gfloat fval = 0.0; + GtkDataboxScaleType scale_type; + gfloat tf, minvis; + + scale_type = priv->scale_type_y; + tf = priv->translation_factor_y; + minvis = priv->visible_top; + + indx = start * stride; + i = 0; + do { + /* This may be excessive, but it handles every conceivable type */ + if (vtype == G_TYPE_FLOAT) + fval = ((gfloat *)values)[indx]; + else if (vtype == G_TYPE_DOUBLE) + fval = ((gdouble *)values)[indx]; + else if (vtype == G_TYPE_INT) + fval = ((gint *)values)[indx]; + else if (vtype == G_TYPE_UINT) + fval = ((guint *)values)[indx]; + else if (vtype == G_TYPE_LONG) + fval = ((glong *)values)[indx]; + else if (vtype == G_TYPE_ULONG) + fval = ((gulong *)values)[indx]; + else if (vtype == G_TYPE_INT64) + fval = ((gint64 *)values)[indx]; + else if (vtype == G_TYPE_UINT64) + fval = ((guint64 *)values)[indx]; + else if (vtype == G_TYPE_CHAR) + fval = ((gchar *)values)[indx]; + else if (vtype == G_TYPE_UCHAR) + fval = ((guchar *)values)[indx]; + + if (scale_type == GTK_DATABOX_SCALE_LINEAR) + pixels[i] = tf * (fval - minvis); + else if (scale_type == GTK_DATABOX_SCALE_LOG2) + pixels[i] = tf * log2(fval / minvis); + else + pixels[i] = tf * log10(fval / minvis); + + /* handle the wrap-around (ring buffer) issue using modulus. for efficiency, don't do this for non-wraparound cases. */ + /* note this allows multiple wrap-arounds. One could hold a single cycle of a sine wave, and plot a continuous wave */ + /* This can be optimized using pointers later */ + if (i + start > maxlen) + indx = ((i + start) % maxlen) * stride; + else + indx += stride; + } while (++i < len); +} + +/** + * gtk_databox_pixel_to_value_x: + * @box: A #GtkDatabox widget + * @pixel: A horizontal pixel coordinate + * + * Calculates the x value which is represented by the horizontal @pixel coordinate. + * Pixel coordinates are relative to the top-left corner of the @box which is equivalent to (0,0). + * + * Return value: x value + */ +gfloat +gtk_databox_pixel_to_value_x (GtkDatabox * box, gint16 pixel) { + GtkDataboxPrivate *priv = GTK_DATABOX_GET_PRIVATE(box); + + if (priv->scale_type_x == GTK_DATABOX_SCALE_LINEAR) + return priv->visible_left + + pixel / priv->translation_factor_x; + else if (priv->scale_type_x == GTK_DATABOX_SCALE_LOG2) + return priv->visible_left * pow (2, + pixel / + priv-> + translation_factor_x); + else + return priv->visible_left * pow (10, + pixel / + priv-> + translation_factor_x); +} + +/** + * gtk_databox_pixel_to_value_y: + * @box: A #GtkDatabox widget + * @pixel: A vertical pixel coordinate + * + * Calculates the y value which is represented by the vertical @pixel coordinate. + * Pixel coordinates are relative to the top-left corner of the @box which is equivalent to (0,0). + * + * Return value: y value + */ +gfloat +gtk_databox_pixel_to_value_y (GtkDatabox * box, gint16 pixel) { + GtkDataboxPrivate *priv = GTK_DATABOX_GET_PRIVATE(box); + + if (priv->scale_type_y == GTK_DATABOX_SCALE_LINEAR) + return priv->visible_top + + pixel / priv->translation_factor_y; + else if (priv->scale_type_y == GTK_DATABOX_SCALE_LOG2) + return priv->visible_top * pow (2, + pixel / + priv-> + translation_factor_y); + else + return priv->visible_top * pow (10, + pixel / + priv-> + translation_factor_y); +} + +/** + * gtk_databox_create_box_with_scrollbars_and_rulers: + * @p_box: Will contain a pointer to a #GtkDatabox widget + * @p_grid: Will contain a pointer to a #GtkGrid widget + * @scrollbar_x: Whether to attach a horizontal scrollbar + * @scrollbar_y: Whether to attach a vertical scrollbar + * @ruler_x: Whether to attach a horizontal ruler + * @ruler_y: Whether to attach a vertical ruler + * + * This is a convenience function which creates a #GtkDatabox widget in a + * GtkGrid widget optionally accompanied by scrollbars and rulers. You only + * have to fill in the data (gtk_databox_graph_add()) and adjust the limits + * (gtk_databox_set_total_limits() or gtk_databox_auto_rescale()). + * + * This function produces the default databox with rulers at the top left and + * scroll bars at the bottom right. + * + * @see_also: gtk_databox_new(), gtk_databox_set_adjustment_x(), gtk_databox_set_adjustment_y(), gtk_databox_set_ruler_x(), gtk_databox_set_ruler_y() + */ +void +gtk_databox_create_box_with_scrollbars_and_rulers (GtkWidget ** p_box, + GtkWidget ** p_grid, + gboolean scrollbar_x, + gboolean scrollbar_y, + gboolean ruler_x, + gboolean ruler_y) { + /* create with rulers top left by default */ + gtk_databox_create_box_with_scrollbars_and_rulers_positioned (p_box, p_grid, scrollbar_x, scrollbar_y, ruler_x, ruler_y, TRUE, TRUE); +} + +/** + * gtk_databox_create_box_with_scrollbars_and_rulers_positioned: + * @p_box: Will contain a pointer to a #GtkDatabox widget + * @p_grid: Will contain a pointer to a #GtkGrid widget + * @scrollbar_x: Whether to attach a horizontal scrollbar + * @scrollbar_y: Whether to attach a vertical scrollbar + * @ruler_x: Whether to attach a horizontal ruler + * @ruler_y: Whether to attach a vertical ruler + * @ruler_x_top: Whether to put the ruler_x up the top + * @ruler_y_left: Whether to put the ruler_y on the left + * + * This is a convenience function which creates a #GtkDatabox widget in a + * GtkGrid widget optionally accompanied by scrollbars and rulers. You only + * have to fill in the data (gtk_databox_graph_add()) and adjust the limits + * (gtk_databox_set_total_limits() or gtk_databox_auto_rescale()). + * + * This function produces the default databox with rulers at the top left and + * scroll bars at the bottom right. + * + * @see_also: gtk_databox_new(), gtk_databox_set_adjustment_x(), gtk_databox_set_adjustment_y(), gtk_databox_set_ruler_x(), gtk_databox_set_ruler_y(), gtk_databox_create_box_with_scrollbars_and_rulers() + */ +void +gtk_databox_create_box_with_scrollbars_and_rulers_positioned (GtkWidget ** p_box, + GtkWidget ** p_grid, + gboolean scrollbar_x, + gboolean scrollbar_y, + gboolean ruler_x, + gboolean ruler_y, + gboolean ruler_x_top, + gboolean ruler_y_left) { + GtkGrid *grid; + GtkDatabox *box; + GtkWidget *scrollbar; + GtkWidget *ruler; + GtkDataboxPrivate *priv; + gint left_col, top_row; + + *p_grid = gtk_grid_new (); + *p_box = gtk_databox_new (); + box = GTK_DATABOX (*p_box); + grid = GTK_GRID (*p_grid); + priv = GTK_DATABOX_GET_PRIVATE(box); + + left_col=1; + top_row=1; + gtk_grid_attach (grid, GTK_WIDGET (box), left_col, top_row, 1, 1); + + if (scrollbar_x) { + scrollbar = gtk_scrollbar_new (GTK_ORIENTATION_HORIZONTAL, NULL); + gtk_databox_set_adjustment_x (box, + gtk_range_get_adjustment (GTK_RANGE + (scrollbar))); + if (ruler_x_top) { + left_col=1; + top_row=2; + } else { + left_col=1; + top_row=0; + } + gtk_grid_attach (grid, scrollbar, left_col, top_row, 1, 1); + } + + if (scrollbar_y) { + scrollbar = gtk_scrollbar_new (GTK_ORIENTATION_VERTICAL, NULL); + gtk_databox_set_adjustment_y (box, + gtk_range_get_adjustment (GTK_RANGE + (scrollbar))); + if (ruler_y_left) { + left_col=2; + top_row=1; + } else { + left_col=0; + top_row=1; + } + gtk_grid_attach (grid, scrollbar, left_col, top_row, 1, 1); + } + + if (ruler_x) { + ruler = gtk_databox_ruler_new (GTK_ORIENTATION_HORIZONTAL); + gtk_databox_ruler_set_scale_type (GTK_DATABOX_RULER (ruler), + priv->scale_type_x); + if (ruler_x_top) { + left_col=1; + top_row=0; + } else { + gtk_databox_ruler_set_invert_edge(GTK_DATABOX_RULER(ruler), TRUE); /* set the ruler to reverse its edge */ + left_col=1; + top_row=2; + } + gtk_grid_attach (grid, ruler, left_col, top_row, 1, 1); + gtk_databox_set_ruler_x (box, GTK_DATABOX_RULER (ruler)); + } + + if (ruler_y) { + ruler = gtk_databox_ruler_new (GTK_ORIENTATION_VERTICAL); + gtk_databox_ruler_set_scale_type (GTK_DATABOX_RULER (ruler), + priv->scale_type_y); + if (ruler_y_left) { + left_col=0; + top_row=1; + } else { + gtk_databox_ruler_set_invert_edge(GTK_DATABOX_RULER(ruler), TRUE); /* set the ruler to reverse its edge */ + left_col=2; + top_row=1; + } + gtk_grid_attach (grid, ruler, left_col, top_row, 1, 1); + gtk_databox_set_ruler_y (box, GTK_DATABOX_RULER (ruler)); + } +} diff -Nru klavaro-1.9.9/gtkdatabox/gtkdatabox_cross_simple.c klavaro-3.00/gtkdatabox/gtkdatabox_cross_simple.c --- klavaro-1.9.9/gtkdatabox/gtkdatabox_cross_simple.c 1970-01-01 00:00:00.000000000 +0000 +++ klavaro-3.00/gtkdatabox/gtkdatabox_cross_simple.c 2014-01-03 18:40:55.000000000 +0000 @@ -0,0 +1,91 @@ +/* $Id: gtkdatabox_cross_simple.c 4 2008-06-22 09:19:11Z rbock $ */ +/* GtkDatabox - An extension to the gtk+ library + * Copyright (C) 1998 - 2008 Dr. Roland Bock + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public License + * as published by the Free Software Foundation; either version 2.1 + * of the License, or (at your option) any later version. + * + * 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 Lesser 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., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + */ + +#include + +G_DEFINE_TYPE(GtkDataboxCrossSimple, gtk_databox_cross_simple, + GTK_DATABOX_TYPE_MARKERS) + +static void +cross_simple_finalize (GObject * object) +{ + gpointer pointer; + + pointer = gtk_databox_xyc_graph_get_X (GTK_DATABOX_XYC_GRAPH (object)); + if (pointer) + g_free (pointer); + + pointer = gtk_databox_xyc_graph_get_Y (GTK_DATABOX_XYC_GRAPH (object)); + if (pointer) + g_free (pointer); + + /* Chain up to the parent class */ + G_OBJECT_CLASS (gtk_databox_cross_simple_parent_class)->finalize (object); +} + +static void +gtk_databox_cross_simple_class_init (GtkDataboxCrossSimpleClass *klass) +{ + GObjectClass *gobject_class = G_OBJECT_CLASS (klass); + + gobject_class->finalize = cross_simple_finalize; +} + +static void gtk_databox_cross_simple_init(GtkDataboxCrossSimple *cross) {} + +/** + * gtk_databox_cross_simple_new: + * @color: color of the markers + * @size: marker size or line width (depending on the @type) + * + * Creates a new #GtkDataboxCrossSimple object which can be added to a #GtkDatabox widget as nice decoration for other graphs. + * + * Return value: A new #GtkDataboxCrossSimple object + **/ +GtkDataboxGraph * +gtk_databox_cross_simple_new (GdkRGBA * color, guint size) +{ + GtkDataboxCrossSimple *cross_simple; + gfloat *X = g_new0 (gfloat, 2); + gfloat *Y = g_new0 (gfloat, 2); + gint len = 2; + + cross_simple = g_object_new (GTK_DATABOX_TYPE_CROSS_SIMPLE, + "markers-type", GTK_DATABOX_MARKERS_SOLID_LINE, + "X-Values", X, + "Y-Values", Y, + "xstart", 0, + "ystart", 0, + "xstride", 1, + "ystride", 1, + "xtype", G_TYPE_FLOAT, + "ytype", G_TYPE_FLOAT, + "length", len, + "maxlen", len, + "color", color, "size", size, NULL); + + gtk_databox_markers_set_position (GTK_DATABOX_MARKERS (cross_simple), 0, + GTK_DATABOX_MARKERS_C); + gtk_databox_markers_set_label (GTK_DATABOX_MARKERS (cross_simple), 0, + GTK_DATABOX_MARKERS_TEXT_SW, "0", FALSE); + gtk_databox_markers_set_position (GTK_DATABOX_MARKERS (cross_simple), 1, + GTK_DATABOX_MARKERS_W); + + return GTK_DATABOX_GRAPH (cross_simple); +} diff -Nru klavaro-1.9.9/gtkdatabox/gtkdatabox_cross_simple.h klavaro-3.00/gtkdatabox/gtkdatabox_cross_simple.h --- klavaro-1.9.9/gtkdatabox/gtkdatabox_cross_simple.h 1970-01-01 00:00:00.000000000 +0000 +++ klavaro-3.00/gtkdatabox/gtkdatabox_cross_simple.h 2014-01-03 18:40:55.000000000 +0000 @@ -0,0 +1,86 @@ +/* $Id: gtkdatabox_cross_simple.h 4 2008-06-22 09:19:11Z rbock $ */ +/* GtkDatabox - An extension to the gtk+ library + * Copyright (C) 1998 - 2008 Dr. Roland Bock + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public License + * as published by the Free Software Foundation; either version 2.1 + * of the License, or (at your option) any later version. + * + * 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 Lesser 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., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + */ + +/** + * SECTION:gtkdatabox_cross_simple + * @short_description: A #GtkDataboxGraph used for displaying a simple coordinate cross. + * @include: gtkdatabox_cross_simple.h + * @see_also: #GtkDatabox, #GtkDataboxGraph, #GtkDataboxPoints, #GtkDataboxLines, #GtkDataboxBars, #GtkDataboxMarkers + * + * #GtkDataboxCrossSimple is a #GtkDataboxGraph class for displaying a simple coordinate cross (a vertical line + * at x=0 and a horizontal line at y=0). + * + * A more sophisticated coordinate cross would be welcome :-) + * + */ + +#ifndef __GTK_DATABOX_CROSS_SIMPLE_H__ +#define __GTK_DATABOX_CROSS_SIMPLE_H__ + +#include + +G_BEGIN_DECLS +#define GTK_DATABOX_TYPE_CROSS_SIMPLE (gtk_databox_cross_simple_get_type ()) +#define GTK_DATABOX_CROSS_SIMPLE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), \ + GTK_DATABOX_TYPE_CROSS_SIMPLE, \ + GtkDataboxCrossSimple)) +#define GTK_DATABOX_CROSS_SIMPLE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), \ + GTK_DATABOX_TYPE_CROSS_SIMPLE, \ + GtkDataboxCrossSimpleClass)) +#define GTK_DATABOX_IS_CROSS_SIMPLE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), \ + GTK_DATABOX_TYPE_CROSS_SIMPLE)) +#define GTK_DATABOX_IS_CROSS_SIMPLE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), \ + GTK_DATABOX_TYPE_CROSS_SIMPLE)) +#define GTK_DATABOX_CROSS_SIMPLE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), \ + GTK_DATABOX_TYPE_CROSS_SIMPLE, \ + GtkDataboxCrossSimpleClass)) + +/** + * GtkDataboxCrossSimple: + * @see_also: #GtkDatabox, #GtkDataboxGraph, #GtkDataboxPoints, #GtkDataboxLines, #GtkDataboxBars, #GtkDataboxMarkers + * + * #GtkDataboxCrossSimple is a #GtkDataboxGraph class for displaying a simple coordinate cross (a vertical line + * at x=0 and a horizontal line at y=0). + * + * A more sophisticated coordinate cross would be welcome :-) + * + */ + + typedef struct _GtkDataboxCrossSimple GtkDataboxCrossSimple; + + typedef struct _GtkDataboxCrossSimpleClass GtkDataboxCrossSimpleClass; + + struct _GtkDataboxCrossSimple + { + /*< private >*/ + GtkDataboxMarkers parent; + }; + + struct _GtkDataboxCrossSimpleClass + { + GtkDataboxMarkersClass parent_class; + }; + + GType gtk_databox_cross_simple_get_type (void); + + GtkDataboxGraph *gtk_databox_cross_simple_new (GdkRGBA * color, + guint size); + +G_END_DECLS +#endif /* __GTK_DATABOX_CROSS_SIMPLE_H__ */ diff -Nru klavaro-1.9.9/gtkdatabox/gtkdatabox_graph.c klavaro-3.00/gtkdatabox/gtkdatabox_graph.c --- klavaro-1.9.9/gtkdatabox/gtkdatabox_graph.c 1970-01-01 00:00:00.000000000 +0000 +++ klavaro-3.00/gtkdatabox/gtkdatabox_graph.c 2014-01-03 18:40:55.000000000 +0000 @@ -0,0 +1,372 @@ +/* $Id: gtkdatabox_graph.c 4 2008-06-22 09:19:11Z rbock $ */ +/* GtkDatabox - An extension to the gtk+ library + * Copyright (C) 1998 - 2008 Dr. Roland Bock + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public License + * as published by the Free Software Foundation; either version 2.1 + * of the License, or (at your option) any later version. + * + * 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 Lesser 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., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + */ + +#include +#include + +G_DEFINE_TYPE(GtkDataboxGraph, gtk_databox_graph, + G_TYPE_OBJECT) + +static void gtk_databox_graph_real_draw (GtkDataboxGraph * graph, + GtkDatabox * draw); +static gint gtk_databox_graph_real_calculate_extrema (GtkDataboxGraph * graph, + gfloat * min_x, + gfloat * max_x, + gfloat * min_y, + gfloat * max_y); + +/* IDs of properties */ +enum +{ + GRAPH_COLOR = 1, + GRAPH_SIZE, + GRAPH_HIDE, +}; + +/** + * GtkDataboxGraphPrivate + * + * A private data structure used by the #GtkDataboxGraph. It shields all internal things + * from developers who are just using the object. + * + **/ +typedef struct _GtkDataboxGraphPrivate GtkDataboxGraphPrivate; + +struct _GtkDataboxGraphPrivate +{ + GdkRGBA color; + gint size; + gboolean hide; + GdkRGBA rgba; +}; + +static void +gtk_databox_graph_set_property (GObject * object, + guint property_id, + const GValue * value, GParamSpec * pspec) +{ + GtkDataboxGraph *graph = GTK_DATABOX_GRAPH (object); + + switch (property_id) + { + case GRAPH_COLOR: + { + gtk_databox_graph_set_color (graph, + (GdkRGBA *) + g_value_get_pointer (value)); + } + break; + case GRAPH_SIZE: + { + gtk_databox_graph_set_size (graph, g_value_get_int (value)); + } + break; + case GRAPH_HIDE: + { + gtk_databox_graph_set_hide (graph, g_value_get_boolean (value)); + } + break; + default: + /* We don't have any other property... */ + G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec); + break; + } +} + +static void +gtk_databox_graph_get_property (GObject * object, + guint property_id, + GValue * value, GParamSpec * pspec) +{ + GtkDataboxGraph *graph = GTK_DATABOX_GRAPH (object); + + switch (property_id) + { + case GRAPH_COLOR: + { + g_value_set_pointer (value, gtk_databox_graph_get_color (graph)); + } + break; + case GRAPH_SIZE: + { + g_value_set_int (value, gtk_databox_graph_get_size (graph)); + } + break; + case GRAPH_HIDE: + { + g_value_set_boolean (value, gtk_databox_graph_get_hide (graph)); + } + break; + default: + /* We don't have any other property... */ + G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec); + break; + } +} + +/** + * gtk_databox_graph_create_gc: + * @graph: A #GtkDataboxGraph object + * @box: A #GtkDatabox object + * + * Virtual function which creates a graphics context for the @graph. + * + * Typically called by derived graph objects when the graphics context is needed for the first time. + * + * Return value: The new graphics context. + */ +cairo_t* +gtk_databox_graph_create_gc (GtkDataboxGraph * graph, + GtkDatabox* box) +{ + return GTK_DATABOX_GRAPH_GET_CLASS (graph)->create_gc (graph, box); +} + +static cairo_t * +gtk_databox_graph_real_create_gc (GtkDataboxGraph * graph, + GtkDatabox* box) +{ + GtkDataboxGraphPrivate *priv = GTK_DATABOX_GRAPH_GET_PRIVATE(graph); + cairo_t *cr; + + g_return_val_if_fail (GTK_DATABOX_IS_GRAPH (graph), NULL); + + cr = cairo_create (gtk_databox_get_backing_surface (box)); + gdk_cairo_set_source_rgba (cr, &priv->color); + cairo_set_line_width (cr, (priv->size > 1) ? priv->size : 1); + + return cr; +} + +static void +gtk_databox_graph_class_init (GtkDataboxGraphClass *klass) +{ + GObjectClass *gobject_class = G_OBJECT_CLASS (klass); + GParamSpec *graph_param_spec; + + gobject_class->set_property = gtk_databox_graph_set_property; + gobject_class->get_property = gtk_databox_graph_get_property; + + graph_param_spec = g_param_spec_pointer ("color", + "Graph color", + "Color of graph", + G_PARAM_READWRITE); + + g_object_class_install_property (gobject_class, + GRAPH_COLOR, graph_param_spec); + + graph_param_spec = g_param_spec_int ("size", "Graph size", "Size of displayed items", G_MININT, G_MAXINT, 0, /* default value */ + G_PARAM_READWRITE); + + g_object_class_install_property (gobject_class, + GRAPH_SIZE, graph_param_spec); + + graph_param_spec = g_param_spec_boolean ("hide", "Graph hidden", "Determine if graph is hidden or not", FALSE, /* default value */ + G_PARAM_READWRITE); + + g_object_class_install_property (gobject_class, + GRAPH_HIDE, graph_param_spec); + + klass->draw = gtk_databox_graph_real_draw; + klass->calculate_extrema = gtk_databox_graph_real_calculate_extrema; + klass->create_gc = gtk_databox_graph_real_create_gc; + + g_type_class_add_private (klass, sizeof (GtkDataboxGraphPrivate)); +} + +static void +gtk_databox_graph_init (GtkDataboxGraph *graph) +{ +} + +/** + * gtk_databox_graph_draw: + * @graph: A #GtkDataboxGraph object + * @box: A #GtkDatabox object + * + * Virtual function which draws the #GtkDataboxGraph on the drawing area of the GtkDatabox object. + * + * Typically this function is called by #GtkDatabox objects. + * + */ +void +gtk_databox_graph_draw (GtkDataboxGraph * graph, GtkDatabox* box) +{ + if (!GTK_DATABOX_GRAPH_GET_PRIVATE(graph)->hide) + GTK_DATABOX_GRAPH_GET_CLASS (graph)->draw (graph, box); +} + +/** + * gtk_databox_graph_calculate_extrema: + * @graph: A #GtkDataboxGraph object + * @min_x: Will be filled with the lowest x value of the dataset + * @max_x: Will be filled with the highest x value of the dataset + * @min_y: Will be filled with the lowest y value of the dataset + * @max_y: Will be filled with the highest y value of the dataset + * + * Virtual function which determines the minimum and maximum x and y values of the values of this + * #GtkDataboxGraph object if applicable (there are graphs which do + * not contain data). + * + * Return value: 0 on success, + * -1 if no data is available, + * + */ +gint +gtk_databox_graph_calculate_extrema (GtkDataboxGraph * graph, + gfloat * min_x, gfloat * max_x, + gfloat * min_y, gfloat * max_y) +{ + return + GTK_DATABOX_GRAPH_GET_CLASS (graph)->calculate_extrema (graph, min_x, + max_x, min_y, + max_y); +} + +static void +gtk_databox_graph_real_draw (GtkDataboxGraph * graph, + GtkDatabox* box) +{ + g_return_if_fail (graph); + g_return_if_fail (box); + + /* We have no data... */ + return; +} + + +static gint +gtk_databox_graph_real_calculate_extrema (GtkDataboxGraph * graph, + gfloat * min_x, gfloat * max_x, + gfloat * min_y, gfloat * max_y) +{ + g_return_val_if_fail (graph, -1); + g_return_val_if_fail (min_x, -1); + g_return_val_if_fail (max_x, -1); + g_return_val_if_fail (min_y, -1); + g_return_val_if_fail (max_y, -1); + + /* We have no data... */ + return -1; +} + +/** + * gtk_databox_graph_set_color: + * @graph: A #GtkDataboxGraph object + * @color: Color which is to be used by the graph object + * + * Sets the color which the #GtkDataboxGraph object is supposed to be using when drawing itself. + * + */ +void +gtk_databox_graph_set_color (GtkDataboxGraph * graph, GdkRGBA * color) +{ + GtkDataboxGraphPrivate *priv = GTK_DATABOX_GRAPH_GET_PRIVATE(graph); + + g_return_if_fail (GTK_DATABOX_IS_GRAPH (graph)); + + priv->color = *color; + + g_object_notify (G_OBJECT (graph), "color"); +} + +/** + * gtk_databox_graph_get_color: + * @graph: A #GtkDataboxGraph object + * + * Gets the current color of the graph elements (e.g. points). + * + * Return value: The color of the graph. + * + */ +GdkRGBA * +gtk_databox_graph_get_color (GtkDataboxGraph * graph) +{ + return >K_DATABOX_GRAPH_GET_PRIVATE(graph)->color; +} + +/** + * gtk_databox_graph_set_size: + * @graph: A #GtkDataboxGraph object + * @size: Size of graph elements for the graph object + * + * Sets the size (e.g. line width) which the #GtkDataboxGraph object is supposed to be using when drawing itself. + * + */ +void +gtk_databox_graph_set_size (GtkDataboxGraph * graph, gint size) +{ + g_return_if_fail (GTK_DATABOX_IS_GRAPH (graph)); + + GTK_DATABOX_GRAPH_GET_PRIVATE(graph)->size = MAX (1, size);; + + g_object_notify (G_OBJECT (graph), "size"); +} + +/** + * gtk_databox_graph_get_size: + * @graph: A #GtkDataboxGraph object + * + * Gets the size of the graph elements (e.g. the line width). + * + * Return value: size of the graph elements + * + */ +gint +gtk_databox_graph_get_size (GtkDataboxGraph * graph) +{ + g_return_val_if_fail (GTK_DATABOX_IS_GRAPH (graph), -1); + + return GTK_DATABOX_GRAPH_GET_PRIVATE(graph)->size; +} + +/** + * gtk_databox_graph_set_hide: + * @graph: A #GtkDataboxGraph object + * @hide: Declares whether should be hidden (true) or not (false). + * + * Hidden graphs are not shown, when the #GtkDatabox containing them is redrawn. + * + */ +void +gtk_databox_graph_set_hide (GtkDataboxGraph * graph, gboolean hide) +{ + g_return_if_fail (GTK_DATABOX_IS_GRAPH (graph)); + + GTK_DATABOX_GRAPH_GET_PRIVATE(graph)->hide = hide; + + g_object_notify (G_OBJECT (graph), "hide"); +} + +/** + * gtk_databox_graph_get_hide: + * @graph: A #GtkDataboxGraph object + * + * Gets the current "hide" status. + * + * Return value: Whether the graph is hidden (true) or not (false). + * + */ +gboolean +gtk_databox_graph_get_hide (GtkDataboxGraph * graph) +{ + g_return_val_if_fail (GTK_DATABOX_IS_GRAPH (graph), -1); + + return GTK_DATABOX_GRAPH_GET_PRIVATE(graph)->hide; +} diff -Nru klavaro-1.9.9/gtkdatabox/gtkdatabox_graph.h klavaro-3.00/gtkdatabox/gtkdatabox_graph.h --- klavaro-1.9.9/gtkdatabox/gtkdatabox_graph.h 1970-01-01 00:00:00.000000000 +0000 +++ klavaro-3.00/gtkdatabox/gtkdatabox_graph.h 2014-01-03 18:40:55.000000000 +0000 @@ -0,0 +1,115 @@ +/* $Id: gtkdatabox_graph.h 4 2008-06-22 09:19:11Z rbock $ */ +/* GtkDatabox - An extension to the gtk+ library + * Copyright (C) 1998 - 2008 Dr. Roland Bock + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public License + * as published by the Free Software Foundation; either version 2.1 + * of the License, or (at your option) any later version. + * + * 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 Lesser 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., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + */ + +/** + * SECTION:gtkdatabox_graph + * @short_description: An abstract anchestor for all "real" graphs. + * @include: gtkdatabox_graph.h + * @see_also: #GtkDatabox, #GtkDataboxPoints, #GtkDataboxLines, #GtkDataboxBars, #GtkDataboxGrid, #GtkDataboxCrossSimple + * + * GtkDataboxGraphs can display data or other things in a #GtkDatabox widget. + * + * This class is just the basic interface. Other graph classes are derived from this + * class and implement some real things. + * + */ + + +#ifndef __GTK_DATABOX_GRAPH_H__ +#define __GTK_DATABOX_GRAPH_H__ + +#include +#include +#include + +G_BEGIN_DECLS +#define GTK_DATABOX_TYPE_GRAPH (gtk_databox_graph_get_type ()) +#define GTK_DATABOX_GRAPH(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), \ + GTK_DATABOX_TYPE_GRAPH, \ + GtkDataboxGraph)) +#define GTK_DATABOX_GRAPH_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), \ + GTK_DATABOX_TYPE_GRAPH, \ + GtkDataboxGraphClass)) +#define GTK_DATABOX_IS_GRAPH(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), \ + GTK_DATABOX_TYPE_GRAPH)) +#define GTK_DATABOX_IS_GRAPH_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), \ + GTK_DATABOX_TYPE_GRAPH)) +#define GTK_DATABOX_GRAPH_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), \ + GTK_DATABOX_TYPE_GRAPH, \ + GtkDataboxGraphClass)) +#define GTK_DATABOX_GRAPH_GET_PRIVATE(obj) \ + G_TYPE_INSTANCE_GET_PRIVATE ((obj), GTK_DATABOX_TYPE_GRAPH, GtkDataboxGraphPrivate) + + typedef struct _GtkDataboxGraphClass GtkDataboxGraphClass; + + /** + * _GtkDataboxGraph + * @parent: The parent object + * + * Implementation of #GtkDataboxGraph + * + **/ + struct _GtkDataboxGraph + { + /*< private >*/ + GObject parent; + }; + + struct _GtkDataboxGraphClass + { + GObjectClass parent_class; + + /* + * public virtual drawing function + */ + void (*draw) (GtkDataboxGraph * graph, GtkDatabox * box); + + gint (*calculate_extrema) (GtkDataboxGraph * graph, + gfloat * min_x, gfloat * max_x, + gfloat * min_y, gfloat * max_y); + cairo_t* (*create_gc) (GtkDataboxGraph * graph, GtkDatabox * box); + }; + +// GType gtk_databox_graph_get_type (void); + + void gtk_databox_graph_set_hide (GtkDataboxGraph * graph, gboolean hide); + gboolean gtk_databox_graph_get_hide (GtkDataboxGraph * graph); + + void gtk_databox_graph_set_color (GtkDataboxGraph * graph, + GdkRGBA * color); + GdkRGBA *gtk_databox_graph_get_color (GtkDataboxGraph * graph); + + void gtk_databox_graph_set_rgba (GtkDataboxGraph * graph, + GdkRGBA * rgba); + GdkRGBA *gtk_databox_graph_get_rgba (GtkDataboxGraph * graph); + + void gtk_databox_graph_set_size (GtkDataboxGraph * graph, gint size); + gint gtk_databox_graph_get_size (GtkDataboxGraph * graph); + + gint gtk_databox_graph_calculate_extrema (GtkDataboxGraph * graph, + gfloat * min_x, gfloat * max_x, + gfloat * min_y, gfloat * max_y); + /* This function is called by GtkDatabox */ + void gtk_databox_graph_draw (GtkDataboxGraph * graph, GtkDatabox * box); + + /* This function is called by derived graph classes */ + cairo_t* gtk_databox_graph_create_gc (GtkDataboxGraph * graph, GtkDatabox * box); + +G_END_DECLS +#endif /* __GTK_DATABOX_GRAPH_H__ */ diff -Nru klavaro-1.9.9/gtkdatabox/gtkdatabox_grid.c klavaro-3.00/gtkdatabox/gtkdatabox_grid.c --- klavaro-1.9.9/gtkdatabox/gtkdatabox_grid.c 1970-01-01 00:00:00.000000000 +0000 +++ klavaro-3.00/gtkdatabox/gtkdatabox_grid.c 2014-01-03 18:40:55.000000000 +0000 @@ -0,0 +1,460 @@ +/* $Id: gtkdatabox_grid.c 4 2008-06-22 09:19:11Z rbock $ */ +/* GtkDatabox - An extension to the gtk+ library + * Copyright (C) 1998 - 2008 Dr. Roland Bock + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public License + * as published by the Free Software Foundation; either version 2.1 + * of the License, or (at your option) any later version. + * + * 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 Lesser 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., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + */ + +#include + +G_DEFINE_TYPE(GtkDataboxGrid, gtk_databox_grid, + GTK_DATABOX_TYPE_GRAPH) + +static void gtk_databox_grid_real_draw (GtkDataboxGraph * grid, + GtkDatabox* box); +static cairo_t* gtk_databox_grid_real_create_gc (GtkDataboxGraph * graph, + GtkDatabox* box); + +/* IDs of properties */ +enum +{ + GRID_HLINES = 1, + GRID_VLINES, + GRID_HLINE_VALS, + GRID_VLINE_VALS +}; + +/** + * GtkDataboxGridPrivate + * + * A private data structure used by the #GtkDataboxGrid. It shields all internal things + * from developers who are just using the object. + * + **/ +typedef struct _GtkDataboxGridPrivate GtkDataboxGridPrivate; + +struct _GtkDataboxGridPrivate +{ + gint hlines; + gint vlines; + gfloat *hline_vals; + gfloat *vline_vals; +}; + +static void +gtk_databox_grid_set_property (GObject * object, + guint property_id, + const GValue * value, GParamSpec * pspec) +{ + GtkDataboxGrid *grid = GTK_DATABOX_GRID (object); + + switch (property_id) + { + case GRID_HLINES: + { + gtk_databox_grid_set_hlines (grid, g_value_get_int (value)); + } + break; + case GRID_VLINES: + { + gtk_databox_grid_set_vlines (grid, g_value_get_int (value)); + } + break; + case GRID_HLINE_VALS: + { + gtk_databox_grid_set_hline_vals (grid, (gfloat *) g_value_get_pointer (value)); + } + break; + case GRID_VLINE_VALS: + { + gtk_databox_grid_set_vline_vals (grid, (gfloat *) g_value_get_pointer (value)); + } + break; + default: + /* We don't have any other property... */ + G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec); + break; + } +} + +static void +gtk_databox_grid_get_property (GObject * object, + guint property_id, + GValue * value, GParamSpec * pspec) +{ + GtkDataboxGrid *grid = GTK_DATABOX_GRID (object); + + switch (property_id) + { + case GRID_HLINES: + { + g_value_set_int (value, gtk_databox_grid_get_hlines (grid)); + } + break; + case GRID_VLINES: + { + g_value_set_int (value, gtk_databox_grid_get_vlines (grid)); + } + break; + case GRID_HLINE_VALS: + { + g_value_set_pointer (value, gtk_databox_grid_get_hline_vals (grid)); + } + break; + case GRID_VLINE_VALS: + { + g_value_set_pointer (value, gtk_databox_grid_get_vline_vals (grid)); + } + break; + default: + /* We don't have any other property... */ + G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec); + break; + } +} + + + +static cairo_t* +gtk_databox_grid_real_create_gc (GtkDataboxGraph * graph, + GtkDatabox* box) +{ + cairo_t *cr; + static const double grid_dash = 5.0; + + g_return_val_if_fail (GTK_DATABOX_IS_GRID (graph), NULL); + + cr = GTK_DATABOX_GRAPH_CLASS (gtk_databox_grid_parent_class)->create_gc (graph, box); + + if (cr) + cairo_set_dash(cr, &grid_dash, 1, 0.0); + + return cr; +} + +static void +grid_finalize (GObject * object) +{ + GtkDataboxGraph *graph = GTK_DATABOX_GRAPH (object); + + /* Chain up to the parent class */ + G_OBJECT_CLASS (gtk_databox_grid_parent_class)->finalize (object); +} + +static void +gtk_databox_grid_class_init (GtkDataboxGridClass *klass) +{ + GObjectClass *gobject_class = G_OBJECT_CLASS (klass); + GtkDataboxGraphClass *graph_class = GTK_DATABOX_GRAPH_CLASS (klass); + GParamSpec *grid_param_spec; + + gobject_class->set_property = gtk_databox_grid_set_property; + gobject_class->get_property = gtk_databox_grid_get_property; + gobject_class->finalize = grid_finalize; + + grid_param_spec = g_param_spec_int ("grid-hlines", "grid-hlines", "Number of horizontal lines", G_MININT, G_MAXINT, 0, /* default value */ + G_PARAM_READWRITE); + + g_object_class_install_property (gobject_class, + GRID_HLINES, grid_param_spec); + + grid_param_spec = g_param_spec_int ("grid-vlines", "grid-vlines", "Number of vertical lines", G_MININT, G_MAXINT, 0, /* default value */ + G_PARAM_READWRITE); + + g_object_class_install_property (gobject_class, + GRID_VLINES, grid_param_spec); + + grid_param_spec = g_param_spec_pointer ("grid-hline-vals", "Grid Hline Vals", "The locations of each of the horizontal lines", G_PARAM_READWRITE); + + g_object_class_install_property (gobject_class, + GRID_HLINE_VALS, grid_param_spec); + + grid_param_spec = g_param_spec_pointer ("grid-vline-vals", "Grid Vline Vals", "The locations of each of the vertical lines", G_PARAM_READWRITE); + + g_object_class_install_property (gobject_class, + GRID_VLINE_VALS, grid_param_spec); + + graph_class->draw = gtk_databox_grid_real_draw; + graph_class->create_gc = gtk_databox_grid_real_create_gc; + + g_type_class_add_private (klass, sizeof (GtkDataboxGridPrivate)); +} + +static void +gtk_databox_grid_init (GtkDataboxGrid *grid) +{ +} + +/** + * gtk_databox_grid_new: + * @hlines: number of horizontal lines in the grid + * @vlines: number of vertical lines in the grid + * @color: color of the grid + * @size: line width of the grid + * + * Creates a new #GtkDataboxGrid object which can be added to a #GtkDatabox widget as nice decoration for other graphs. + * + * Return value: A new #GtkDataboxGrid object + **/ +GtkDataboxGraph * +gtk_databox_grid_new (gint hlines, gint vlines, GdkRGBA * color, guint size) +{ + GtkDataboxGrid *grid; + grid = g_object_new (GTK_DATABOX_TYPE_GRID, + "color", color, + "size", size, + "grid-hlines", hlines, "grid-vlines", vlines, "grid-hline-vals",NULL, "grid-vline-vals", NULL, NULL); + + return GTK_DATABOX_GRAPH (grid); +} + +/** + * gtk_databox_grid_array_new: + * @hlines: number of horizontal lines in the grid + * @vlines: number of vertical lines in the grid + * @hline_vals: a pointer to an array of gfloat horizontal grid coordinate + * @vline_vals: a pointer to an array of gfloat vertical grid coordinate + * @color: color of the grid + * @size: line width of the grid + * + * Creates a new #GtkDataboxGrid object which can be added to a #GtkDatabox widget as nice decoration for other graphs. + * + * Return value: A new #GtkDataboxGrid object + **/ +GtkDataboxGraph *gtk_databox_grid_array_new (gint hlines, gint vlines, gfloat * local_hline_vals, gfloat * local_vline_vals, + GdkRGBA * color, guint size) +{ + GtkDataboxGrid *grid; + + grid = g_object_new (GTK_DATABOX_TYPE_GRID, + "color", color, + "size", size, + "grid-hlines", hlines, "grid-vlines", vlines, "grid-hline-vals", local_hline_vals, "grid-vline-vals", local_vline_vals, NULL); + + return GTK_DATABOX_GRAPH (grid); +} + +static void +gtk_databox_grid_real_draw (GtkDataboxGraph * graph, + GtkDatabox* box) +{ + GtkWidget *widget; + GtkDataboxGrid *grid = GTK_DATABOX_GRID (graph); + GtkDataboxGridPrivate *priv = GTK_DATABOX_GRID_GET_PRIVATE(grid); gint i = 0; + gfloat x; + gfloat y; + gint16 width; + gint16 height; + gfloat offset_x; + gfloat offset_y; + gfloat factor_x; + gfloat factor_y; + gint16 pixel_x; + gint16 pixel_y; + gfloat left, right, top, bottom; + cairo_t *cr; + GtkAllocation allocation; + + g_return_if_fail (GTK_DATABOX_IS_GRID (grid)); + g_return_if_fail (GTK_IS_DATABOX (box)); + + widget = GTK_WIDGET(box); + gtk_widget_get_allocation(widget, &allocation); + + gtk_databox_get_total_limits (box, &left, &right, &top, &bottom); + + cr = gtk_databox_graph_create_gc (graph, box); + + width = allocation.width; + height = allocation.height; + + offset_x = left; + factor_x = + (right - left) / (priv->vlines + 1); + + offset_y = top; + factor_y = + (bottom - top) / (priv->hlines + 1); + + if (priv->hline_vals == NULL) + for (i = 0; i < priv->hlines; i++) + { + y = offset_y + (i + 1) * factor_y; + pixel_y = gtk_databox_value_to_pixel_y (box, y); + cairo_move_to (cr, 0.0, pixel_y + 0.5); + cairo_line_to (cr, width, pixel_y + 0.5); + } + else + for (i = 0; i < priv->hlines; i++) + { + y = priv->hline_vals[i]; + pixel_y = gtk_databox_value_to_pixel_y (box, y); + cairo_move_to (cr, 0.0, pixel_y + 0.5); + cairo_line_to (cr, width, pixel_y + 0.5); + } + + if (priv->vline_vals == NULL) + for (i = 0; i < priv->vlines; i++) + { + x = offset_x + (i + 1) * factor_x; + pixel_x = gtk_databox_value_to_pixel_x (box, x); + cairo_move_to (cr, pixel_x + 0.5, 0.0); + cairo_line_to (cr, pixel_x + 0.5, height); + } + else + for (i = 0; i < priv->vlines; i++) + { + x = priv->vline_vals[i]; + pixel_x = gtk_databox_value_to_pixel_x (box, x); + cairo_move_to (cr, pixel_x + 0.5, 0); + cairo_line_to (cr, pixel_x + 0.5, height); + } + cairo_stroke(cr); + cairo_destroy(cr); + + return; +} + +/** + * gtk_databox_grid_set_hlines: + * @grid: a #GtkDataboxGrid graph object + * @hlines: number of vertical lines in the grid + * + * Sets the number of horizontal lines in the @grid. + **/ +void +gtk_databox_grid_set_hlines (GtkDataboxGrid * grid, gint hlines) +{ + g_return_if_fail (GTK_DATABOX_IS_GRID (grid)); + + GTK_DATABOX_GRID_GET_PRIVATE(grid)->hlines = MAX (1, hlines); + + g_object_notify (G_OBJECT (grid), "grid-hlines"); +} + +/** + * gtk_databox_grid_get_hlines: + * @grid: a #GtkDataboxGrid graph object + * + * Gets the number of horizontal lines in the @grid. + * + * Return value: Number of horizontal lines in the @grid. + **/ +gint +gtk_databox_grid_get_hlines (GtkDataboxGrid * grid) +{ + g_return_val_if_fail (GTK_DATABOX_IS_GRID (grid), -1); + + return GTK_DATABOX_GRID_GET_PRIVATE(grid)->hlines; +} + +/** + * gtk_databox_grid_set_vlines: + * @grid: a #GtkDataboxGrid graph object + * @vlines: number of vertical lines in the grid + * + * Sets the number of vertical lines in the @grid. + **/ +void +gtk_databox_grid_set_vlines (GtkDataboxGrid * grid, gint vlines) +{ + g_return_if_fail (GTK_DATABOX_IS_GRID (grid)); + + GTK_DATABOX_GRID_GET_PRIVATE(grid)->vlines = MAX (1, vlines); + + g_object_notify (G_OBJECT (grid), "grid-vlines"); +} + +/** + * gtk_databox_grid_get_vlines: + * @grid: a #GtkDataboxGrid graph object + * + * Gets the number of vertical lines in the @grid. + * + * Return value: Number of vertical lines in the @grid. + **/ +gint +gtk_databox_grid_get_vlines (GtkDataboxGrid * grid) +{ + g_return_val_if_fail (GTK_DATABOX_IS_GRID (grid), -1); + + return GTK_DATABOX_GRID_GET_PRIVATE(grid)->vlines; +} + +/** + * gtk_databox_grid_set_hline_vals: + * @grid: a #GtkDataboxGrid graph object + * @hline_vals: sets the pointer to the hline values for the grid + * + * Sets the pointer to the horizontal lines in the @grid. + **/ +void +gtk_databox_grid_set_hline_vals (GtkDataboxGrid * grid, gfloat *hline_vals) +{ + g_return_if_fail (GTK_DATABOX_IS_GRID (grid)); + + GTK_DATABOX_GRID_GET_PRIVATE(grid)->hline_vals = hline_vals; + + g_object_notify (G_OBJECT (grid), "grid-hline-vals"); +} + +/** + * gtk_databox_grid_get_hline_vals: + * @grid: a #GtkDataboxGrid graph object + * + * Gets the pointer to the horizontal line values for the @grid. + * + * Return value: Pointer to the horizontal line values for the @grid. (or NULL if error) + **/ +gfloat* +gtk_databox_grid_get_hline_vals (GtkDataboxGrid * grid) +{ + g_return_val_if_fail (GTK_DATABOX_IS_GRID (grid), NULL); + + return GTK_DATABOX_GRID_GET_PRIVATE(grid)->hline_vals; +} + +/** + * gtk_databox_grid_set_vline_vals: + * @grid: a #GtkDataboxGrid graph object + * @vline_vals: sets the pointer to the vline values for the grid + * + * Sets the pointer to the vertical lines in the @grid. + **/ +void +gtk_databox_grid_set_vline_vals (GtkDataboxGrid * grid, gfloat *vline_vals) +{ + g_return_if_fail (GTK_DATABOX_IS_GRID (grid)); + + GTK_DATABOX_GRID_GET_PRIVATE(grid)->vline_vals = vline_vals; + + g_object_notify (G_OBJECT (grid), "grid-vline-vals"); +} + +/** + * gtk_databox_grid_get_vline_vals: + * @grid: a #GtkDataboxGrid graph object + * + * Gets the pointer to the vertical line values for the @grid. + * + * Return value: Pointer to the vertical line values for the @grid. (or NULL if error) + **/ +gfloat* +gtk_databox_grid_get_vline_vals (GtkDataboxGrid * grid) +{ + g_return_val_if_fail (GTK_DATABOX_IS_GRID (grid), NULL); + + return GTK_DATABOX_GRID_GET_PRIVATE(grid)->vline_vals; +} diff -Nru klavaro-1.9.9/gtkdatabox/gtkdatabox_grid.h klavaro-3.00/gtkdatabox/gtkdatabox_grid.h --- klavaro-1.9.9/gtkdatabox/gtkdatabox_grid.h 1970-01-01 00:00:00.000000000 +0000 +++ klavaro-3.00/gtkdatabox/gtkdatabox_grid.h 2014-01-04 15:41:40.000000000 +0000 @@ -0,0 +1,97 @@ +/* $Id: gtkdatabox_grid.h 4 2008-06-22 09:19:11Z rbock $ */ +/* GtkDatabox - An extension to the gtk+ library + * Copyright (C) 1998 - 2008 Dr. Roland Bock + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public License + * as published by the Free Software Foundation; either version 2.1 + * of the License, or (at your option) any later version. + * + * 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 Lesser 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., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + */ + +/** + * SECTION:gtkdatabox_grid + * @short_description: A #GtkDataboxGraph used for displaying a grid (like in an oscilloscope). + * @include: gtkdatabox_grid.h + * @see_also: #GtkDatabox, #GtkDataboxGraph, #GtkDataboxPoints, #GtkDataboxLines, #GtkDataboxBars, #GtkDataboxMarkers + * + * #GtkDataboxGrid is a #GtkDataboxGraph class for displaying a grid (like in an oscilloscope). You can determine + * the number of horizontal and vertical lines. When you zoom in, the grid is also zoomed along with the data. + * + */ + +#ifndef __GTK_DATABOX_GRID_H__ +#define __GTK_DATABOX_GRID_H__ + +#include + +G_BEGIN_DECLS +#define GTK_DATABOX_TYPE_GRID (gtk_databox_grid_get_type ()) +#define GTK_DATABOX_GRID(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), \ + GTK_DATABOX_TYPE_GRID, \ + GtkDataboxGrid)) +#define GTK_DATABOX_GRID_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), \ + GTK_DATABOX_TYPE_GRID, \ + GtkDataboxGridClass)) +#define GTK_DATABOX_IS_GRID(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), \ + GTK_DATABOX_TYPE_GRID)) +#define GTK_DATABOX_IS_GRID_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), \ + GTK_DATABOX_TYPE_GRID)) +#define GTK_DATABOX_GRID_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), \ + GTK_DATABOX_TYPE_GRID, \ + GtkDataboxGridClass)) +#define GTK_DATABOX_GRID_GET_PRIVATE(obj) \ + G_TYPE_INSTANCE_GET_PRIVATE ((obj), GTK_DATABOX_TYPE_GRID, \ + GtkDataboxGridPrivate) + +/** + * GtkDataboxGrid + * + * #GtkDataboxGrid is a #GtkDataboxGraph class for displaying a grid (like in an oscilloscope). You can determine + * the number of horizontal and vertical lines. When you zoom in, the grid is also zoomed along with the data. + * + */ + + typedef struct _GtkDataboxGrid GtkDataboxGrid; + + typedef struct _GtkDataboxGridClass GtkDataboxGridClass; + + struct _GtkDataboxGrid + { + GtkDataboxGraph parent; + }; + + struct _GtkDataboxGridClass + { + GtkDataboxGraphClass parent_class; + }; + + GType gtk_databox_grid_get_type (void); + + GtkDataboxGraph *gtk_databox_grid_new (gint hlines, gint vlines, + GdkRGBA * color, guint size); + GtkDataboxGraph *gtk_databox_grid_array_new (gint hlines, gint vlines, gfloat *hline_vals, gfloat *vline_vals, + GdkRGBA * color, guint size); + + void gtk_databox_grid_set_hlines (GtkDataboxGrid * grid, gint hlines); + gint gtk_databox_grid_get_hlines (GtkDataboxGrid * grid); + + void gtk_databox_grid_set_vlines (GtkDataboxGrid * grid, gint vlines); + gint gtk_databox_grid_get_vlines (GtkDataboxGrid * grid); + + void gtk_databox_grid_set_hline_vals (GtkDataboxGrid * grid, gfloat* hline_vals); + gfloat* gtk_databox_grid_get_hline_vals (GtkDataboxGrid * grid); + + void gtk_databox_grid_set_vline_vals (GtkDataboxGrid * grid, gfloat* vline_vals); + gfloat* gtk_databox_grid_get_vline_vals (GtkDataboxGrid * grid); + +G_END_DECLS +#endif /* __GTK_DATABOX_GRID_H__ */ diff -Nru klavaro-1.9.9/gtkdatabox/gtkdatabox.h klavaro-3.00/gtkdatabox/gtkdatabox.h --- klavaro-1.9.9/gtkdatabox/gtkdatabox.h 1970-01-01 00:00:00.000000000 +0000 +++ klavaro-3.00/gtkdatabox/gtkdatabox.h 2014-01-03 18:40:55.000000000 +0000 @@ -0,0 +1,200 @@ +/* $Id: gtkdatabox.h 3 2008-06-22 08:45:45Z rbock $ */ +/* GtkDatabox - An extension to the gtk+ library + * Copyright (C) 1998 - 2008 Dr. Roland Bock + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public License + * as published by the Free Software Foundation; either version 2.1 + * of the License, or (at your option) any later version. + * + * 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 Lesser 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., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + */ + +#ifndef __GTK_DATABOX_H__ +#define __GTK_DATABOX_H__ + +#include +#include +#include +#include + +/** + * SECTION:gtkdatabox + * @short_description: A GTK+ widget to display large amounts of numerical data quickly and easily. + * @include: gtkdatabox.h + * @see_also: #GtkDataboxGraph, #GtkDataboxPoints, #GtkDataboxLines, #GtkDataboxMarkers, #GtkDataboxGrid + * + * #GtkDatabox is a widget for the GTK+ library designed to display + * large amounts of numerical data quickly and easily. It allows + * for one or more data sets of thousands of data points (X and Y coordinates) + * to be displayed and updated in split seconds. + * + * It offers the ability to zoom into and out of the data, and to navigate + * through your data by scrolling. + * + * In addition to rulers and a simple + * coordinate cross, it allows you to add one (or even more) configurable grids + * like on an oscilloscope. + * + * Data may be presented as dots, lines connecting the data, + * or vertical bars. The widget allows you to easily transform pixel + * coordinates into data coordinates, thus allowing you to easily create + * powerful applications for data analysis. + * + **/ + +G_BEGIN_DECLS +#define GTK_TYPE_DATABOX (gtk_databox_get_type ()) +#define GTK_DATABOX(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), \ + GTK_TYPE_DATABOX, \ + GtkDatabox)) +#define GTK_DATABOX_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), \ + GTK_TYPE_DATABOX, \ + GtkDataboxClass)) +#define GTK_IS_DATABOX(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), \ + GTK_TYPE_DATABOX)) +#define GTK_IS_DATABOX_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), \ + GTK_TYPE_DATABOX)) +#define GTK_DATABOX_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), \ + GTK_TYPE_DATABOX, \ + GtkDataboxClass)) +#define GTK_DATABOX_GET_PRIVATE(obj) \ + G_TYPE_INSTANCE_GET_PRIVATE ((obj), GTK_TYPE_DATABOX, GtkDataboxPrivate) + +typedef struct _GtkDataboxClass GtkDataboxClass; + +typedef struct +{ + gfloat x1; + gfloat x2; + gfloat y1; + gfloat y2; +} GtkDataboxValueRectangle; + +/** + * _GtkDatabox + * @box: The parent object + * + * Implementation of #GtkDatabox. + * + **/ +struct _GtkDatabox +{ + /*< private >*/ + GtkWidget box; +}; + +struct _GtkDataboxClass +{ + GtkWidgetClass parent_class; + + void (*zoomed) (GtkDatabox * box); + void (*selection_started) (GtkDatabox * box, + GtkDataboxValueRectangle * selectionValues); + void (*selection_changed) (GtkDatabox * box, + GtkDataboxValueRectangle * selectionValues); + void (*selection_finalized) (GtkDatabox * box, + GtkDataboxValueRectangle * + selectionValues); + void (*selection_canceled) (GtkDatabox * box); +}; + +GType gtk_databox_get_type (void); + +GtkWidget *gtk_databox_new (void); + +GList * gtk_databox_get_graphs (GtkDatabox *); + +gint gtk_databox_graph_add (GtkDatabox * box, GtkDataboxGraph * graph); +gint gtk_databox_graph_add_front (GtkDatabox * box, GtkDataboxGraph * graph); + +gint gtk_databox_graph_remove (GtkDatabox * box, GtkDataboxGraph * graph); +gint gtk_databox_graph_remove_all (GtkDatabox * box); + +gint gtk_databox_auto_rescale (GtkDatabox * box, gfloat border); +gint gtk_databox_calculate_extrema (GtkDatabox * box, + gfloat * min_x, gfloat * max_x, + gfloat * min_y, gfloat * max_y); + +void gtk_databox_set_total_limits (GtkDatabox * box, + gfloat left, gfloat right, + gfloat top, gfloat bottom); +void gtk_databox_set_visible_limits (GtkDatabox * box, + gfloat left, gfloat right, + gfloat top, gfloat bottom); +void gtk_databox_get_total_limits (GtkDatabox * box, + gfloat * left, gfloat * right, + gfloat * top, gfloat * bottom); +void gtk_databox_get_visible_limits (GtkDatabox * box, + gfloat * left, gfloat * right, + gfloat * top, gfloat * bottom); + +void gtk_databox_set_adjustment_x (GtkDatabox * box, GtkAdjustment * adj); +void gtk_databox_set_adjustment_y (GtkDatabox * box, GtkAdjustment * adj); +GtkAdjustment *gtk_databox_get_adjustment_x (GtkDatabox * box); +GtkAdjustment *gtk_databox_get_adjustment_y (GtkDatabox * box); + +void gtk_databox_set_ruler_x (GtkDatabox * box, GtkDataboxRuler * ruler); +void gtk_databox_set_ruler_y (GtkDatabox * box, GtkDataboxRuler * ruler); +GtkDataboxRuler *gtk_databox_get_ruler_x (GtkDatabox * box); +GtkDataboxRuler *gtk_databox_get_ruler_y (GtkDatabox * box); + +void gtk_databox_set_scale_type_x (GtkDatabox * box, + GtkDataboxScaleType scale_type); +void gtk_databox_set_scale_type_y (GtkDatabox * box, + GtkDataboxScaleType scale_type); +GtkDataboxScaleType gtk_databox_get_scale_type_x (GtkDatabox * box); +GtkDataboxScaleType gtk_databox_get_scale_type_y (GtkDatabox * box); + +void gtk_databox_set_enable_selection (GtkDatabox * box, gboolean enable); +void gtk_databox_set_enable_zoom (GtkDatabox * box, gboolean enable); +void gtk_databox_set_box_shadow(GtkDatabox * box, GtkShadowType which_shadow); + +gboolean gtk_databox_get_enable_selection (GtkDatabox * box); +gboolean gtk_databox_get_enable_zoom (GtkDatabox * box); +GtkShadowType gtk_databox__get_box_shadow(GtkDatabox * box); + +void gtk_databox_zoom_to_selection (GtkDatabox * box); +void gtk_databox_zoom_out (GtkDatabox * box); +void gtk_databox_zoom_home (GtkDatabox * box); + +gint16 gtk_databox_value_to_pixel_x (GtkDatabox * box, gfloat value); +gint16 gtk_databox_value_to_pixel_y (GtkDatabox * box, gfloat value); +gfloat gtk_databox_pixel_to_value_x (GtkDatabox * box, gint16 pixel); +gfloat gtk_databox_pixel_to_value_y (GtkDatabox * box, gint16 pixel); +void gtk_databox_values_to_xpixels (GtkDatabox *box, gint16 *pixels, + void *values, GType vtype, guint size, guint start, guint stride, guint len); +void gtk_databox_values_to_ypixels (GtkDatabox *box, gint16 *pixels, + void *values, GType vtype, guint size, guint start, guint stride, guint len); + +void gtk_databox_create_box_with_scrollbars_and_rulers (GtkWidget ** + p_box, + GtkWidget ** + p_table, + gboolean scrollbar_x, + gboolean scrollbar_y, + gboolean ruler_x, + gboolean ruler_y); + +void +gtk_databox_create_box_with_scrollbars_and_rulers_positioned (GtkWidget ** p_box, + GtkWidget ** p_table, + gboolean scrollbar_x, + gboolean scrollbar_y, + gboolean ruler_x, + gboolean ruler_y, + gboolean ruler_x_top, + gboolean ruler_y_left); + +/* Used by graph objects */ +cairo_surface_t* gtk_databox_get_backing_surface(GtkDatabox * box); + +G_END_DECLS +#endif /* __GTK_DATABOX_H__ */ diff -Nru klavaro-1.9.9/gtkdatabox/gtkdatabox_lines.c klavaro-3.00/gtkdatabox/gtkdatabox_lines.c --- klavaro-1.9.9/gtkdatabox/gtkdatabox_lines.c 1970-01-01 00:00:00.000000000 +0000 +++ klavaro-3.00/gtkdatabox/gtkdatabox_lines.c 2014-01-03 18:40:55.000000000 +0000 @@ -0,0 +1,221 @@ +/* $Id: gtkdatabox_lines.c 4 2008-06-22 09:19:11Z rbock $ */ +/* GtkDatabox - An extension to the gtk+ library + * Copyright (C) 1998 - 2008 Dr. Roland Bock + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public License + * as published by the Free Software Foundation; either version 2.1 + * of the License, or (at your option) any later version. + * + * 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 Lesser 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., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + */ + +#include + +G_DEFINE_TYPE(GtkDataboxLines, gtk_databox_lines, + GTK_DATABOX_TYPE_XYC_GRAPH) + +static void gtk_databox_lines_real_draw (GtkDataboxGraph * lines, + GtkDatabox* box); + +/** + * GtkDataboxLinesPrivate + * @see_also: #GtkDatabox, #GtkDataboxGraph, #GtkDataboxPoints, #GtkDataboxBars, #GtkDataboxMarkers + * + * A private data structure used by the #GtkDataboxLines. It shields all internal things + * from developers who are just using the object. + * + **/ +typedef struct _GtkDataboxLinesPrivate GtkDataboxLinesPrivate; + +struct _GtkDataboxLinesPrivate +{ + gint16 *xpixels; + gint16 *ypixels; + guint pixelsalloc; +}; + +static void +lines_finalize (GObject * object) +{ + GtkDataboxLines *lines = GTK_DATABOX_LINES (object); + GtkDataboxLinesPrivate *priv=GTK_DATABOX_LINES_GET_PRIVATE(lines); + + g_free (priv->xpixels); + g_free (priv->ypixels); + + /* Chain up to the parent class */ + G_OBJECT_CLASS (gtk_databox_lines_parent_class)->finalize (object); +} + +static void +gtk_databox_lines_class_init (GtkDataboxLinesClass *klass) +{ + GObjectClass *gobject_class = G_OBJECT_CLASS (klass); + GtkDataboxGraphClass *graph_class = GTK_DATABOX_GRAPH_CLASS (klass); + + gobject_class->finalize = lines_finalize; + + graph_class->draw = gtk_databox_lines_real_draw; + + g_type_class_add_private (klass, sizeof (GtkDataboxLinesPrivate)); +} + +static void +gtk_databox_lines_init (GtkDataboxLines *lines) +{ + GtkDataboxLinesPrivate *priv=GTK_DATABOX_LINES_GET_PRIVATE(lines); + priv->xpixels = NULL; + priv->ypixels = NULL; + priv->pixelsalloc = 0; +} + +/** + * gtk_databox_lines_new: + * @len: length of @X and @Y + * @X: array of horizontal position values of markers + * @Y: array of vertical position values of markers + * @color: color of the markers + * @size: marker size or line width (depending on the @type) + * + * Creates a new #GtkDataboxLines object which can be added to a #GtkDatabox widget. + * + * Return value: A new #GtkDataboxLines object + **/ +GtkDataboxGraph * +gtk_databox_lines_new (guint len, gfloat * X, gfloat * Y, + GdkRGBA * color, guint size) +{ + GtkDataboxLines *lines; + g_return_val_if_fail (X, NULL); + g_return_val_if_fail (Y, NULL); + g_return_val_if_fail ((len > 0), NULL); + + lines = g_object_new (GTK_DATABOX_TYPE_LINES, + "X-Values", X, + "Y-Values", Y, + "xstart", 0, + "ystart", 0, + "xstride", 1, + "ystride", 1, + "xtype", G_TYPE_FLOAT, + "ytype", G_TYPE_FLOAT, + "length", len, + "maxlen", len, + "color", color, "size", size, NULL); + + return GTK_DATABOX_GRAPH (lines); +} + +/** + * gtk_databox_lines_new_full: + * @maxlen: maximum length of @X and @Y + * @len: actual number of @X and @Y values to plot + * @X: array of horizontal position values of markers + * @Y: array of vertical position values of markers + * @xstart: the first element in the X array to plot (usually 0) + * @ystart: the first element in the Y array to plot (usually 0) + * @xstride: successive elements in the X array are separated by this much (1 if array, ncols if matrix) + * @ystride: successive elements in the Y array are separated by this much (1 if array, ncols if matrix) + * @xtype: the GType of the X array elements. G_TYPE_FLOAT, G_TYPE_DOUBLE, etc. + * @ytype: the GType of the Y array elements. G_TYPE_FLOAT, G_TYPE_DOUBLE, etc. + * @color: color of the markers + * @size: marker size or line width (depending on the @type) + * + * Creates a new #GtkDataboxLines object which can be added to a #GtkDatabox widget. + * + * Return value: A new #GtkDataboxLines object + **/ +GtkDataboxGraph * +gtk_databox_lines_new_full (guint maxlen, guint len, + void * X, guint xstart, guint xstride, GType xtype, + void * Y, guint ystart, guint ystride, GType ytype, + GdkRGBA * color, guint size) +{ + GtkDataboxLines *lines; + g_return_val_if_fail (X, NULL); + g_return_val_if_fail (Y, NULL); + g_return_val_if_fail ((len > 0), NULL); + + lines = g_object_new (GTK_DATABOX_TYPE_LINES, + "X-Values", X, + "Y-Values", Y, + "xstart", xstart, + "ystart", ystart, + "xstride", xstride, + "ystride", ystride, + "xtype", xtype, + "ytype", ytype, + "length", len, + "maxlen", maxlen, + "color", color, "size", size, NULL); + + return GTK_DATABOX_GRAPH (lines); +} + +static void +gtk_databox_lines_real_draw (GtkDataboxGraph * graph, + GtkDatabox * box) +{ + GtkDataboxLines *lines = GTK_DATABOX_LINES (graph); + GtkDataboxLinesPrivate *priv=GTK_DATABOX_LINES_GET_PRIVATE(graph); + guint i = 0; + void *X; + void *Y; + guint len, maxlen; + cairo_t *cr; + gint16 *xpixels, *ypixels; + guint xstart, xstride, ystart, ystride; + GType xtype, ytype; + float linewidth; + + g_return_if_fail (GTK_DATABOX_IS_LINES (lines)); + g_return_if_fail (GTK_IS_DATABOX (box)); + + len = gtk_databox_xyc_graph_get_length (GTK_DATABOX_XYC_GRAPH (graph)); + maxlen = gtk_databox_xyc_graph_get_maxlen (GTK_DATABOX_XYC_GRAPH (graph)); + + if (priv->pixelsalloc < len) + { + priv->pixelsalloc = len; + priv->xpixels = (gint16 *)g_realloc(priv->xpixels, len * sizeof(gint16)); + priv->ypixels = (gint16 *)g_realloc(priv->ypixels, len * sizeof(gint16)); + } + + xpixels = priv->xpixels; + ypixels = priv->ypixels; + + X = gtk_databox_xyc_graph_get_X (GTK_DATABOX_XYC_GRAPH (graph)); + xstart = gtk_databox_xyc_graph_get_xstart (GTK_DATABOX_XYC_GRAPH (graph)); + xstride = gtk_databox_xyc_graph_get_xstride (GTK_DATABOX_XYC_GRAPH (graph)); + xtype = gtk_databox_xyc_graph_get_xtype (GTK_DATABOX_XYC_GRAPH (graph)); + gtk_databox_values_to_xpixels(box, xpixels, X, xtype, maxlen, xstart, xstride, len); + + Y = gtk_databox_xyc_graph_get_Y (GTK_DATABOX_XYC_GRAPH (graph)); + ystart = gtk_databox_xyc_graph_get_ystart (GTK_DATABOX_XYC_GRAPH (graph)); + ystride = gtk_databox_xyc_graph_get_ystride (GTK_DATABOX_XYC_GRAPH (graph)); + ytype = gtk_databox_xyc_graph_get_ytype (GTK_DATABOX_XYC_GRAPH (graph)); + gtk_databox_values_to_ypixels(box, ypixels, Y, ytype, maxlen, ystart, ystride, len); + + cr = gtk_databox_graph_create_gc (graph, box); + + linewidth = gtk_databox_graph_get_size (graph); + cairo_set_line_width(cr, linewidth + 0.1); + + cairo_move_to(cr, xpixels[0] + 0.5, ypixels[0] + 0.5); + for (i = 1; i < len; i++) + cairo_line_to(cr, xpixels[i] + 0.5, ypixels[i] + 0.5); + + cairo_set_antialias(cr, CAIRO_ANTIALIAS_NONE); + cairo_stroke(cr); + cairo_destroy(cr); + + return; +} diff -Nru klavaro-1.9.9/gtkdatabox/gtkdatabox_lines.h klavaro-3.00/gtkdatabox/gtkdatabox_lines.h --- klavaro-1.9.9/gtkdatabox/gtkdatabox_lines.h 1970-01-01 00:00:00.000000000 +0000 +++ klavaro-3.00/gtkdatabox/gtkdatabox_lines.h 2014-01-04 15:41:37.000000000 +0000 @@ -0,0 +1,85 @@ +/* $Id: gtkdatabox_lines.h 4 2008-06-22 09:19:11Z rbock $ */ +/* GtkDatabox - An extension to the gtk+ library + * Copyright (C) 1998 - 2008 Dr. Roland Bock + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public License + * as published by the Free Software Foundation; either version 2.1 + * of the License, or (at your option) any later version. + * + * 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 Lesser 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., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + */ + +/** + * SECTION:gtkdatabox_lines + * @short_description: A #GtkDataboxGraph used for displaying xy-values series of connected lines. + * @include: gtkdatabox_lines.h + * @see_also: #GtkDatabox, #GtkDataboxGraph, #GtkDataboxPoints, #GtkDataboxBars, #GtkDataboxMarkers + * + * #GtkDataboxLines is a #GtkDataboxGraph class for displaying xy-values as series of connected lines. + * + */ + +#ifndef __GTK_DATABOX_LINES_H__ +#define __GTK_DATABOX_LINES_H__ + +#include + +G_BEGIN_DECLS +#define GTK_DATABOX_TYPE_LINES (gtk_databox_lines_get_type ()) +#define GTK_DATABOX_LINES(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), \ + GTK_DATABOX_TYPE_LINES, \ + GtkDataboxLines)) +#define GTK_DATABOX_LINES_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), \ + GTK_DATABOX_TYPE_LINES, \ + GtkDataboxLinesClass)) +#define GTK_DATABOX_IS_LINES(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), \ + GTK_DATABOX_TYPE_LINES)) +#define GTK_DATABOX_IS_LINES_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), \ + GTK_DATABOX_TYPE_LINES)) +#define GTK_DATABOX_LINES_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), \ + GTK_DATABOX_TYPE_LINES, \ + GtkDataboxLinesClass)) +#define GTK_DATABOX_LINES_GET_PRIVATE(obj) \ + G_TYPE_INSTANCE_GET_PRIVATE ((obj), GTK_DATABOX_TYPE_LINES, GtkDataboxLinesPrivate) + +/** + * GtkDataboxLines + * + * #GtkDataboxLines is a #GtkDataboxGraph class for displaying xy-values as series of connected lines. + * + */ + typedef struct _GtkDataboxLines GtkDataboxLines; + + typedef struct _GtkDataboxLinesClass GtkDataboxLinesClass; + + struct _GtkDataboxLines + { + /*< private >*/ + GtkDataboxXYCGraph parent; + }; + + struct _GtkDataboxLinesClass + { + GtkDataboxXYCGraphClass parent_class; + }; + + GType gtk_databox_lines_get_type (void); + + GtkDataboxGraph *gtk_databox_lines_new (guint len, gfloat * X, gfloat * Y, + GdkRGBA * color, guint size); + + GtkDataboxGraph *gtk_databox_lines_new_full (guint maxlen, guint len, + void * X, guint xstart, guint xstride, GType xtype, + void * Y, guint ystart, guint ystride, GType ytype, + GdkRGBA * color, guint size); + +G_END_DECLS +#endif /* __GTK_DATABOX_LINES_H__ */ diff -Nru klavaro-1.9.9/gtkdatabox/gtkdatabox_markers.c klavaro-3.00/gtkdatabox/gtkdatabox_markers.c --- klavaro-1.9.9/gtkdatabox/gtkdatabox_markers.c 1970-01-01 00:00:00.000000000 +0000 +++ klavaro-3.00/gtkdatabox/gtkdatabox_markers.c 2014-01-03 18:40:55.000000000 +0000 @@ -0,0 +1,701 @@ +/* $Id: gtkdatabox_markers.c 4 2008-06-22 09:19:11Z rbock $ */ +/* GtkDatabox - An extension to the gtk+ library + * Copyright (C) 1998 - 2008 Dr. Roland Bock + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public License + * as published by the Free Software Foundation; either version 2.1 + * of the License, or (at your option) any later version. + * + * 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 Lesser 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., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + */ + +#include +#include + +G_DEFINE_TYPE(GtkDataboxMarkers, gtk_databox_markers, + GTK_DATABOX_TYPE_XYC_GRAPH) + +static void gtk_databox_markers_real_draw (GtkDataboxGraph * markers, + GtkDatabox* box); +static cairo_t* gtk_databox_markers_real_create_gc (GtkDataboxGraph * graph, + GtkDatabox* box); + +/* IDs of properties */ +enum +{ + PROP_TYPE = 1 +}; + + +typedef struct +{ + GtkDataboxMarkersPosition position; /* relative to data point */ + gchar *text; + PangoLayout *label; /* the label for markers */ + GtkDataboxMarkersTextPosition label_position; /* position relative to markers */ + gboolean boxed; /* label in a box? */ +} +GtkDataboxMarkersInfo; + +/** + * GtkDataboxMarkersPrivate: + * + * A private data structure used by the #GtkDataboxMarkers. It shields all internal things + * from developers who are just using the object. + * + **/ +typedef struct _GtkDataboxMarkersPrivate GtkDataboxMarkersPrivate; + +struct _GtkDataboxMarkersPrivate +{ + GtkDataboxMarkersType type; + GtkDataboxMarkersInfo *markers_info; + gint16 *xpixels; + gint16 *ypixels; + guint pixelsalloc; +}; + +static void +gtk_databox_markers_set_mtype (GtkDataboxMarkers * markers, gint type) +{ + g_return_if_fail (GTK_DATABOX_IS_MARKERS (markers)); + + GTK_DATABOX_MARKERS_GET_PRIVATE(markers)->type = type; + + g_object_notify (G_OBJECT (markers), "markers-type"); +} + +static void +gtk_databox_markers_set_property (GObject * object, + guint property_id, + const GValue * value, GParamSpec * pspec) +{ + GtkDataboxMarkers *markers = GTK_DATABOX_MARKERS (object); + + switch (property_id) + { + case PROP_TYPE: + { + gtk_databox_markers_set_mtype (markers, g_value_get_int (value)); + } + break; + default: + /* We don't have any other property... */ + G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec); + break; + } +} + +static gint +gtk_databox_markers_get_mtype (GtkDataboxMarkers * markers) +{ + g_return_val_if_fail (GTK_DATABOX_IS_MARKERS (markers), 0); + + return GTK_DATABOX_MARKERS_GET_PRIVATE(markers)->type; +} + +static void +gtk_databox_markers_get_property (GObject * object, + guint property_id, + GValue * value, GParamSpec * pspec) +{ + GtkDataboxMarkers *markers = GTK_DATABOX_MARKERS (object); + + switch (property_id) + { + case PROP_TYPE: + { + g_value_set_int (value, gtk_databox_markers_get_mtype (markers)); + } + break; + default: + /* We don't have any other property... */ + G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec); + break; + } +} + +static void +markers_finalize (GObject * object) +{ + GtkDataboxMarkers *markers = GTK_DATABOX_MARKERS (object); + GtkDataboxMarkersPrivate *priv = GTK_DATABOX_MARKERS_GET_PRIVATE (markers); + int i; + int len; + + len = gtk_databox_xyc_graph_get_length (GTK_DATABOX_XYC_GRAPH (markers)); + + for (i = 0; i < len; ++i) + { + if (priv->markers_info[i].label) + g_object_unref (priv->markers_info[i].label); + if (priv->markers_info[i].text) + g_free (priv->markers_info[i].text); + } + g_free (priv->markers_info); + g_free (priv->xpixels); + g_free (priv->ypixels); + + /* Chain up to the parent class */ + G_OBJECT_CLASS (gtk_databox_markers_parent_class)->finalize (object); +} + +static cairo_t * +gtk_databox_markers_real_create_gc (GtkDataboxGraph * graph, + GtkDatabox* box) +{ + GtkDataboxMarkers *markers = GTK_DATABOX_MARKERS (graph); + GtkDataboxMarkersPrivate *priv = GTK_DATABOX_MARKERS_GET_PRIVATE (markers); + cairo_t *cr; + static const double dash = 5.0f; + + g_return_val_if_fail (GTK_DATABOX_IS_MARKERS (graph), NULL); + + cr = GTK_DATABOX_GRAPH_CLASS (gtk_databox_markers_parent_class)->create_gc (graph, box); + + if (cr) + { + if (priv->type == GTK_DATABOX_MARKERS_DASHED_LINE) + cairo_set_dash (cr, &dash, 1, 0.0); + } + + return cr; +} + +static void +gtk_databox_markers_class_init (GtkDataboxMarkersClass *klass) +{ + GObjectClass *gobject_class = G_OBJECT_CLASS (klass); + GtkDataboxGraphClass *graph_class = GTK_DATABOX_GRAPH_CLASS (klass); + GParamSpec *markers_param_spec; + + gobject_class->set_property = gtk_databox_markers_set_property; + gobject_class->get_property = gtk_databox_markers_get_property; + gobject_class->finalize = markers_finalize; + + markers_param_spec = g_param_spec_int ("markers-type", "Type of markers", "Type of markers for this graph, e.g. triangles or lines", G_MININT, G_MAXINT, 0, /* default value */ + G_PARAM_CONSTRUCT | + G_PARAM_READWRITE); + + g_object_class_install_property (gobject_class, + PROP_TYPE, markers_param_spec); + graph_class->draw = gtk_databox_markers_real_draw; + graph_class->create_gc = gtk_databox_markers_real_create_gc; + + g_type_class_add_private (klass, sizeof (GtkDataboxMarkersPrivate)); +} + +static void +complete (GtkDataboxMarkers * markers) +{ + GTK_DATABOX_MARKERS_GET_PRIVATE(markers)->markers_info = + g_new0 (GtkDataboxMarkersInfo, + gtk_databox_xyc_graph_get_length + (GTK_DATABOX_XYC_GRAPH (markers))); + +} + +static void +gtk_databox_markers_init (GtkDataboxMarkers *markers) +{ + GtkDataboxMarkersPrivate *priv = GTK_DATABOX_MARKERS_GET_PRIVATE (markers); + priv->markers_info = NULL; + priv->xpixels = NULL; + priv->ypixels = NULL; + priv->pixelsalloc = 0; + + g_signal_connect (markers, "notify::length", G_CALLBACK (complete), NULL); +} + +/** + * gtk_databox_markers_new: + * @len: length of @X and @Y + * @X: array of horizontal position values of markers + * @Y: array of vertical position values of markers + * @color: color of the markers + * @size: marker size or line width (depending on the @type) + * @type: type of markers (e.g. triangle or circle) + * + * Creates a new #GtkDataboxMarkers object which can be added to a #GtkDatabox widget as nice decoration for other graphs. + * + * Return value: A new #GtkDataboxMarkers object + **/ +GtkDataboxGraph * +gtk_databox_markers_new (guint len, gfloat * X, gfloat * Y, + GdkRGBA * color, guint size, + GtkDataboxMarkersType type) +{ + GtkDataboxMarkers *markers; + g_return_val_if_fail (X, NULL); + g_return_val_if_fail (Y, NULL); + g_return_val_if_fail ((len > 0), NULL); + + markers = g_object_new (GTK_DATABOX_TYPE_MARKERS, + "X-Values", X, + "Y-Values", Y, + "xstart", 0, + "ystart", 0, + "xstride", 1, + "ystride", 1, + "xtype", G_TYPE_FLOAT, + "ytype", G_TYPE_FLOAT, + "length", len, + "maxlen", len, + "color", color, + "size", size, "markers-type", type, NULL); + + return GTK_DATABOX_GRAPH (markers); +} + +/** + * gtk_databox_markers_new_full: + * @maxlen: maximum length of @X and @Y + * @len: actual number of @X and @Y values to plot + * @X: array of horizontal position values of markers + * @Y: array of vertical position values of markers + * @xstart: the first element in the X array to plot (usually 0) + * @ystart: the first element in the Y array to plot (usually 0) + * @xstride: successive elements in the X array are separated by this much (1 if array, ncols if matrix) + * @ystride: successive elements in the Y array are separated by this much (1 if array, ncols if matrix) + * @xtype: the GType of the X array elements. G_TYPE_FLOAT, G_TYPE_DOUBLE, etc. + * @ytype: the GType of the Y array elements. G_TYPE_FLOAT, G_TYPE_DOUBLE, etc. + * @color: color of the markers + * @size: marker size or line width (depending on the @type) + * @type: type of markers (e.g. triangle or circle) + * + * Creates a new #GtkDataboxMarkers object which can be added to a #GtkDatabox widget as nice decoration for other graphs. + * + * Return value: A new #GtkDataboxMarkers object + **/ +GtkDataboxGraph * +gtk_databox_markers_new_full (guint maxlen, guint len, + void * X, guint xstart, guint xstride, GType xtype, + void * Y, guint ystart, guint ystride, GType ytype, + GdkRGBA * color, guint size, + GtkDataboxMarkersType type) +{ + GtkDataboxMarkers *markers; + g_return_val_if_fail (X, NULL); + g_return_val_if_fail (Y, NULL); + g_return_val_if_fail ((len > 0), NULL); + + markers = g_object_new (GTK_DATABOX_TYPE_MARKERS, + "X-Values", X, + "Y-Values", Y, + "xstart", xstart, + "ystart", ystart, + "xstride", xstride, + "ystride", ystride, + "xtype", xtype, + "ytype", ytype, + "length", len, + "maxlen", maxlen, + "color", color, + "size", size, "markers-type", type, NULL); + + return GTK_DATABOX_GRAPH (markers); +} + +static gint +gtk_databox_label_write_at (cairo_t *cr, + PangoLayout * pl, + GdkPoint coord, + GtkDataboxMarkersTextPosition position, + gint distance, gboolean boxed) +{ + gint hdist_text; + gint vdist_text; + gint hdist_box; + gint vdist_box; + + gint width; + gint height; + + gint offset = (boxed) ? 2 : 0; + + pango_layout_get_pixel_size (pl, &width, &height); + + switch (position) + { + case GTK_DATABOX_MARKERS_TEXT_N: + hdist_text = -width / 2; + vdist_text = -distance - offset - height; + hdist_box = hdist_text - offset; + vdist_box = vdist_text - offset; + break; + case GTK_DATABOX_MARKERS_TEXT_NE: + hdist_text = +distance + offset; + vdist_text = -distance - offset - height; + hdist_box = hdist_text - offset; + vdist_box = vdist_text - offset; + break; + case GTK_DATABOX_MARKERS_TEXT_E: + hdist_text = +distance + offset; + vdist_text = -height / 2; + hdist_box = hdist_text - offset; + vdist_box = vdist_text - offset; + break; + case GTK_DATABOX_MARKERS_TEXT_SE: + hdist_text = +distance + offset; + vdist_text = +distance + offset; + hdist_box = hdist_text - offset; + vdist_box = vdist_text - offset; + break; + case GTK_DATABOX_MARKERS_TEXT_S: + hdist_text = -width / 2; + vdist_text = +distance + offset; + hdist_box = hdist_text - offset; + vdist_box = vdist_text - offset; + break; + case GTK_DATABOX_MARKERS_TEXT_SW: + hdist_text = -distance - offset - width; + vdist_text = +distance + offset; + hdist_box = hdist_text - offset; + vdist_box = vdist_text - offset; + break; + case GTK_DATABOX_MARKERS_TEXT_W: + hdist_text = -distance - offset - width; + vdist_text = -height / 2; + hdist_box = hdist_text - offset; + vdist_box = vdist_text - offset; + break; + case GTK_DATABOX_MARKERS_TEXT_NW: + hdist_text = -distance - offset - width; + vdist_text = -distance - offset - height; + hdist_box = hdist_text - offset; + vdist_box = vdist_text - offset; + break; + default: + hdist_text = -width / 2; + vdist_text = -height / 2; + hdist_box = hdist_text - offset; + vdist_box = vdist_text - offset; + } + + + cairo_move_to(cr, coord.x + hdist_text, coord.y + vdist_text); + pango_cairo_show_layout(cr, pl); + + if (boxed) { + cairo_save (cr); + cairo_set_line_width (cr, 1.0); + cairo_set_dash (cr, NULL, 0, 0.0); + cairo_rectangle (cr, coord.x + hdist_box - 0.5, + coord.y + vdist_box - 0.5, width + 3.5, height + 3.5); + cairo_stroke(cr); + cairo_restore(cr); + } + + return (0); +} + +static void +gtk_databox_markers_real_draw (GtkDataboxGraph * graph, + GtkDatabox* box) +{ + GtkWidget *widget; + GtkDataboxMarkers *markers = GTK_DATABOX_MARKERS (graph); + GtkDataboxMarkersPrivate *priv = GTK_DATABOX_MARKERS_GET_PRIVATE (markers); + GdkPoint points[3]; + PangoContext *context; + void *X; + void *Y; + guint len, maxlen; + gint16 x; + gint16 y; + gint16 widget_width; + gint16 widget_height; + GdkPoint coord; + gint size; + guint i; + cairo_t *cr; + GtkAllocation allocation; + gint16 *xpixels, *ypixels; + guint xstart, xstride, ystart, ystride; + GType xtype, ytype; + + g_return_if_fail (GTK_DATABOX_IS_MARKERS (markers)); + g_return_if_fail (GTK_IS_DATABOX (box)); + + widget = GTK_WIDGET(box); + gtk_widget_get_allocation(widget, &allocation); + + context = gtk_widget_get_pango_context(widget); + + len = gtk_databox_xyc_graph_get_length (GTK_DATABOX_XYC_GRAPH (graph)); + maxlen = gtk_databox_xyc_graph_get_maxlen (GTK_DATABOX_XYC_GRAPH (graph)); + + if (priv->pixelsalloc < len) + { + priv->pixelsalloc = len; + priv->xpixels = (gint16 *)g_realloc(priv->xpixels, len * sizeof(gint16)); + priv->ypixels = (gint16 *)g_realloc(priv->ypixels, len * sizeof(gint16)); + } + + xpixels = priv->xpixels; + ypixels = priv->ypixels; + + X = gtk_databox_xyc_graph_get_X (GTK_DATABOX_XYC_GRAPH (graph)); + xstart = gtk_databox_xyc_graph_get_xstart (GTK_DATABOX_XYC_GRAPH (graph)); + xstride = gtk_databox_xyc_graph_get_xstride (GTK_DATABOX_XYC_GRAPH (graph)); + xtype = gtk_databox_xyc_graph_get_xtype (GTK_DATABOX_XYC_GRAPH (graph)); + gtk_databox_values_to_xpixels(box, xpixels, X, xtype, maxlen, xstart, xstride, len); + + Y = gtk_databox_xyc_graph_get_Y (GTK_DATABOX_XYC_GRAPH (graph)); + ystart = gtk_databox_xyc_graph_get_ystart (GTK_DATABOX_XYC_GRAPH (graph)); + ystride = gtk_databox_xyc_graph_get_ystride (GTK_DATABOX_XYC_GRAPH (graph)); + ytype = gtk_databox_xyc_graph_get_ytype (GTK_DATABOX_XYC_GRAPH (graph)); + gtk_databox_values_to_ypixels(box, ypixels, Y, ytype, maxlen, ystart, ystride, len); + + size = gtk_databox_graph_get_size (graph); + + widget_width = allocation.width; + widget_height = allocation.height; + + cr = gtk_databox_graph_create_gc (graph, box); + + for (i = 0; i < len; ++i) + { + coord.x = x = xpixels[i]; + coord.y = y = ypixels[i]; + + switch (priv->type) + { + case GTK_DATABOX_MARKERS_TRIANGLE: + switch (priv->markers_info[i].position) + { + case GTK_DATABOX_MARKERS_C: + y = y - size / 2; + points[0].x = x; + points[0].y = y; + points[1].x = x - size / 2; + points[1].y = y + size; + points[2].x = x + size / 2; + points[2].y = y + size; + break; + + case GTK_DATABOX_MARKERS_N: + coord.y = y - 2 - size / 2; + y = y - 2; + points[0].x = x; + points[0].y = y; + points[1].x = x - size / 2; + points[1].y = y - size; + points[2].x = x + size / 2; + points[2].y = y - size; + break; + + case GTK_DATABOX_MARKERS_E: + coord.x = x + 2 + size / 2; + x = x + 2; + points[0].x = x; + points[0].y = y; + points[1].x = x + size; + points[1].y = y + size / 2; + points[2].x = x + size; + points[2].y = y - size / 2; + break; + + case GTK_DATABOX_MARKERS_S: + coord.y = y + 2 + size / 2; + y = y + 2; + points[0].x = x; + points[0].y = y; + points[1].x = x - size / 2; + points[1].y = y + size; + points[2].x = x + size / 2; + points[2].y = y + size; + break; + + case GTK_DATABOX_MARKERS_W: + default: + coord.x = x - 2 - size / 2; + x = x - 2; + points[0].x = x; + points[0].y = y; + points[1].x = x - size; + points[1].y = y + size / 2; + points[2].x = x - size; + points[2].y = y - size / 2; + break; + } + cairo_move_to(cr, points[0].x + 0.5, points[0].y + 0.5); + cairo_line_to(cr, points[1].x + 0.5, points[1].y + 0.5); + cairo_line_to(cr, points[2].x + 0.5, points[2].y + 0.5); + cairo_close_path (cr); + cairo_fill(cr); + break; + /* End of GTK_DATABOX_MARKERS_TRIANGLE */ + + case GTK_DATABOX_MARKERS_SOLID_LINE: + case GTK_DATABOX_MARKERS_DASHED_LINE: + switch (priv->markers_info[i].position) + { + case GTK_DATABOX_MARKERS_C: + points[0].x = x; + points[0].y = 0; + points[1].x = x; + points[1].y = widget_height; + break; + + case GTK_DATABOX_MARKERS_N: + points[0].x = x; + points[0].y = 0; + points[1].x = x; + points[1].y = widget_height; + break; + + case GTK_DATABOX_MARKERS_E: + points[0].x = 0; + points[0].y = y; + points[1].x = widget_width; + points[1].y = y; + break; + + case GTK_DATABOX_MARKERS_S: + points[0].x = x; + points[0].y = 0; + points[1].x = x; + points[1].y = widget_height; + break; + + case GTK_DATABOX_MARKERS_W: + default: + points[0].x = 0; + points[0].y = y; + points[1].x = widget_width; + points[1].y = y; + break; + } + cairo_move_to(cr, points[0].x + 0.5, points[0].y + 0.5); + cairo_line_to(cr, points[1].x + 0.5, points[1].y + 0.5); + cairo_stroke(cr); + + break; + /* End of GTK_DATABOX_MARKERS_LINE */ + + case GTK_DATABOX_MARKERS_NONE: + default: + break; + } + + if (priv->markers_info[i].text) + { + if (!priv->markers_info[i].label) + { + priv->markers_info[i].label = + pango_layout_new (context); + pango_layout_set_text (priv->markers_info[i].label, + priv->markers_info[i].text, -1); + } + + if (priv->type == GTK_DATABOX_MARKERS_SOLID_LINE + || priv->type == GTK_DATABOX_MARKERS_DASHED_LINE) + { + gint width; + gint height; + pango_layout_get_pixel_size (priv->markers_info[i].label, + &width, &height); + + width = (width + 1) / 2 + 2; + height = (height + 1) / 2 + 2; + size = 0; + + switch (priv->markers_info[i].position) + { + case GTK_DATABOX_MARKERS_C: + break; + case GTK_DATABOX_MARKERS_N: + coord.y = height; + break; + case GTK_DATABOX_MARKERS_E: + coord.x = widget_width - width; + break; + case GTK_DATABOX_MARKERS_S: + coord.y = widget_height - height; + break; + case GTK_DATABOX_MARKERS_W: + coord.x = width; + break; + } + } + + gtk_databox_label_write_at (cr, + priv->markers_info[i].label, + coord, + priv->markers_info[i]. + label_position, (size + 1) / 2 + 2, + priv->markers_info[i].boxed); + } + } + + cairo_destroy(cr); + return; +} + +/** + * gtk_databox_markers_set_position: + * @markers: A #GtkDataboxMarkers object + * @index: index within the array of X/Y values + * @position: position of the marker (e.g. circle or triangle relative to their X/Y value + * + * Sets a position for one of the markers. + **/ +void +gtk_databox_markers_set_position (GtkDataboxMarkers * markers, + guint index, + GtkDataboxMarkersPosition position) +{ + GtkDataboxMarkersPrivate *priv = GTK_DATABOX_MARKERS_GET_PRIVATE (markers); + guint len; + + g_return_if_fail (GTK_DATABOX_IS_MARKERS (markers)); + len = gtk_databox_xyc_graph_get_length (GTK_DATABOX_XYC_GRAPH (markers)); + g_return_if_fail (index < len); + + priv->markers_info[index].position = position; +} + +/** + * gtk_databox_markers_set_label: + * @markers: A #GtkDataboxMarkers object + * @index: index within the array of X/Y values + * @label_position: position of the label relative to the marker + * @text: text to be displayed in the label + * @boxed: Whether the label is to be enclosed in a box (true) or not (false) + * + * Sets a label for one of the markers. + **/ +void +gtk_databox_markers_set_label (GtkDataboxMarkers * markers, + guint index, + GtkDataboxMarkersTextPosition label_position, + gchar * text, gboolean boxed) +{ + GtkDataboxMarkersPrivate *priv = GTK_DATABOX_MARKERS_GET_PRIVATE (markers); + guint len; + + g_return_if_fail (GTK_DATABOX_IS_MARKERS (markers)); + len = gtk_databox_xyc_graph_get_length (GTK_DATABOX_XYC_GRAPH (markers)); + g_return_if_fail (index < len); + + priv->markers_info[index].label_position = label_position; + if (priv->markers_info[index].text) + g_free (priv->markers_info[index].text); + priv->markers_info[index].text = g_strdup (text); + priv->markers_info[index].boxed = boxed; + + if (priv->markers_info[index].label) + { + pango_layout_set_text (priv->markers_info[index].label, + priv->markers_info[index].text, -1); + } +} diff -Nru klavaro-1.9.9/gtkdatabox/gtkdatabox_markers.h klavaro-3.00/gtkdatabox/gtkdatabox_markers.h --- klavaro-1.9.9/gtkdatabox/gtkdatabox_markers.h 1970-01-01 00:00:00.000000000 +0000 +++ klavaro-3.00/gtkdatabox/gtkdatabox_markers.h 2014-01-03 18:40:55.000000000 +0000 @@ -0,0 +1,164 @@ +/* $Id: gtkdatabox_markers.h 4 2008-06-22 09:19:11Z rbock $ */ +/* GtkDatabox - An extension to the gtk+ library + * Copyright (C) 1998 - 2008 Dr. Roland Bock + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public License + * as published by the Free Software Foundation; either version 2.1 + * of the License, or (at your option) any later version. + * + * 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 Lesser 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., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + */ + +/** + * SECTION:gtkdatabox_markers + * @short_description: A #GtkDataboxGraph used for displaying labeled markers for xy-values. + * @include: gtkdatabox_markers.h + * @see_also: #GtkDatabox, #GtkDataboxGraph, #GtkDataboxPoints, #GtkDataboxLines, #GtkDataboxBars + * + * #GtkDataboxMarkers is a #GtkDataboxGraph class for displaying labeled markers (circles, triangles, lines) for xy-values. + * + */ + +#ifndef __GTK_DATABOX_MARKERS_H__ +#define __GTK_DATABOX_MARKERS_H__ + +#include + +G_BEGIN_DECLS +#define GTK_DATABOX_TYPE_MARKERS (gtk_databox_markers_get_type ()) +#define GTK_DATABOX_MARKERS(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), \ + GTK_DATABOX_TYPE_MARKERS, \ + GtkDataboxMarkers)) +#define GTK_DATABOX_MARKERS_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), \ + GTK_DATABOX_TYPE_MARKERS, \ + GtkDataboxMarkersClass)) +#define GTK_DATABOX_IS_MARKERS(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), \ + GTK_DATABOX_TYPE_MARKERS)) +#define GTK_DATABOX_IS_MARKERS_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), \ + GTK_DATABOX_TYPE_MARKERS)) +#define GTK_DATABOX_MARKERS_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), \ + GTK_DATABOX_TYPE_MARKERS, \ + GtkDataboxMarkersClass)) +#define GTK_DATABOX_MARKERS_GET_PRIVATE(obj) \ + G_TYPE_INSTANCE_GET_PRIVATE ((obj), GTK_DATABOX_TYPE_MARKERS, \ + GtkDataboxMarkersPrivate) + +/** + * GtkDataboxMarkers: + * @parent: The parent object + * + * #GtkDataboxMarkers is a #GtkDataboxGraph class for displaying labeled markers (circles, triangles, lines) for xy-values. + * + */ + typedef struct _GtkDataboxMarkers GtkDataboxMarkers; + + typedef struct _GtkDataboxMarkersClass GtkDataboxMarkersClass; + + /** + * GtkDataboxMarkersPosition: + * @GTK_DATABOX_MARKERS_C: centered on data + * @GTK_DATABOX_MARKERS_N: marker is positioned north of data + * @GTK_DATABOX_MARKERS_E: marker is positioned east of data + * @GTK_DATABOX_MARKERS_S: marker is positioned south of data + * @GTK_DATABOX_MARKERS_W: marker is positioned west of data + * + * Position of a marker relative to its respective X/Y value. + */ + typedef enum + { + GTK_DATABOX_MARKERS_C = 0, + GTK_DATABOX_MARKERS_N, + GTK_DATABOX_MARKERS_E, + GTK_DATABOX_MARKERS_S, + GTK_DATABOX_MARKERS_W + } + GtkDataboxMarkersPosition; + + /** + * GtkDataboxMarkersTextPosition: + * @GTK_DATABOX_MARKERS_TEXT_CENTER: text centered on marker + * @GTK_DATABOX_MARKERS_TEXT_N: text north of marker + * @GTK_DATABOX_MARKERS_TEXT_NE: text north-east of marker + * @GTK_DATABOX_MARKERS_TEXT_E: text east of marker + * @GTK_DATABOX_MARKERS_TEXT_SE: text south-east of marker + * @GTK_DATABOX_MARKERS_TEXT_S: text south of marker + * @GTK_DATABOX_MARKERS_TEXT_SW: text south-west of marker + * @GTK_DATABOX_MARKERS_TEXT_W: text west of marker + * @GTK_DATABOX_MARKERS_TEXT_NW: text north-west of marker + * + * Position of a label relative to its repective marker. + */ + typedef enum + { + GTK_DATABOX_MARKERS_TEXT_CENTER = 0,/* text centered on marker */ + GTK_DATABOX_MARKERS_TEXT_N, /* text north of marker */ + GTK_DATABOX_MARKERS_TEXT_NE, /* text north-east of marker */ + GTK_DATABOX_MARKERS_TEXT_E, /* text east of marker */ + GTK_DATABOX_MARKERS_TEXT_SE, /* text south-east of marker */ + GTK_DATABOX_MARKERS_TEXT_S, /* text south of marker */ + GTK_DATABOX_MARKERS_TEXT_SW, /* text south-west of marker */ + GTK_DATABOX_MARKERS_TEXT_W, /* text west of marker */ + GTK_DATABOX_MARKERS_TEXT_NW /* text north-west of marker */ + } + GtkDataboxMarkersTextPosition; + + /** + * GtkDataboxMarkersType: + * @GTK_DATABOX_MARKERS_NONE: No Marker (just text) + * @GTK_DATABOX_MARKERS_TRIANGLE: Marker is a triangle + * @GTK_DATABOX_MARKERS_SOLID_LINE: Marker is a solid line + * @GTK_DATABOX_MARKERS_DASHED_LINE: Marker is a dashed line + * + * Type of the marker + */ + typedef enum + { + GTK_DATABOX_MARKERS_NONE = 0, /* No Marker (just text) */ + GTK_DATABOX_MARKERS_TRIANGLE, /* Marker is a triangle */ + GTK_DATABOX_MARKERS_SOLID_LINE, /* Marker is a solid line */ + GTK_DATABOX_MARKERS_DASHED_LINE /* Marker is a dashed line */ + } + GtkDataboxMarkersType; + + struct _GtkDataboxMarkers + { + /*< private >*/ + GtkDataboxXYCGraph parent; + }; + + struct _GtkDataboxMarkersClass + { + GtkDataboxXYCGraphClass parent_class; + }; + + GType gtk_databox_markers_get_type (void); + + GtkDataboxGraph *gtk_databox_markers_new (guint len, gfloat * X, gfloat * Y, + GdkRGBA * color, guint size, + GtkDataboxMarkersType type); + + void gtk_databox_markers_set_position (GtkDataboxMarkers * markers, + guint index, + GtkDataboxMarkersPosition position); + + void gtk_databox_markers_set_label (GtkDataboxMarkers * markers, + guint index, + GtkDataboxMarkersTextPosition label_position, + gchar * text, gboolean boxed); + + GtkDataboxGraph *gtk_databox_markers_new_full (guint maxlen, guint len, + void * X, guint xstart, guint xstride, GType xtype, + void * Y, guint ystart, guint ystride, GType ytype, + GdkRGBA * color, guint size, + GtkDataboxMarkersType type); + +G_END_DECLS +#endif /* __GTK_DATABOX_MARKERS_H__ */ diff -Nru klavaro-1.9.9/gtkdatabox/gtkdatabox_marshal.c klavaro-3.00/gtkdatabox/gtkdatabox_marshal.c --- klavaro-1.9.9/gtkdatabox/gtkdatabox_marshal.c 1970-01-01 00:00:00.000000000 +0000 +++ klavaro-3.00/gtkdatabox/gtkdatabox_marshal.c 2014-01-03 19:01:42.000000000 +0000 @@ -0,0 +1,55 @@ + +#include + + +#ifdef G_ENABLE_DEBUG +#define g_marshal_value_peek_boolean(v) g_value_get_boolean (v) +#define g_marshal_value_peek_char(v) g_value_get_schar (v) +#define g_marshal_value_peek_uchar(v) g_value_get_uchar (v) +#define g_marshal_value_peek_int(v) g_value_get_int (v) +#define g_marshal_value_peek_uint(v) g_value_get_uint (v) +#define g_marshal_value_peek_long(v) g_value_get_long (v) +#define g_marshal_value_peek_ulong(v) g_value_get_ulong (v) +#define g_marshal_value_peek_int64(v) g_value_get_int64 (v) +#define g_marshal_value_peek_uint64(v) g_value_get_uint64 (v) +#define g_marshal_value_peek_enum(v) g_value_get_enum (v) +#define g_marshal_value_peek_flags(v) g_value_get_flags (v) +#define g_marshal_value_peek_float(v) g_value_get_float (v) +#define g_marshal_value_peek_double(v) g_value_get_double (v) +#define g_marshal_value_peek_string(v) (char*) g_value_get_string (v) +#define g_marshal_value_peek_param(v) g_value_get_param (v) +#define g_marshal_value_peek_boxed(v) g_value_get_boxed (v) +#define g_marshal_value_peek_pointer(v) g_value_get_pointer (v) +#define g_marshal_value_peek_object(v) g_value_get_object (v) +#define g_marshal_value_peek_variant(v) g_value_get_variant (v) +#else /* !G_ENABLE_DEBUG */ +/* WARNING: This code accesses GValues directly, which is UNSUPPORTED API. + * Do not access GValues directly in your code. Instead, use the + * g_value_get_*() functions + */ +#define g_marshal_value_peek_boolean(v) (v)->data[0].v_int +#define g_marshal_value_peek_char(v) (v)->data[0].v_int +#define g_marshal_value_peek_uchar(v) (v)->data[0].v_uint +#define g_marshal_value_peek_int(v) (v)->data[0].v_int +#define g_marshal_value_peek_uint(v) (v)->data[0].v_uint +#define g_marshal_value_peek_long(v) (v)->data[0].v_long +#define g_marshal_value_peek_ulong(v) (v)->data[0].v_ulong +#define g_marshal_value_peek_int64(v) (v)->data[0].v_int64 +#define g_marshal_value_peek_uint64(v) (v)->data[0].v_uint64 +#define g_marshal_value_peek_enum(v) (v)->data[0].v_long +#define g_marshal_value_peek_flags(v) (v)->data[0].v_ulong +#define g_marshal_value_peek_float(v) (v)->data[0].v_float +#define g_marshal_value_peek_double(v) (v)->data[0].v_double +#define g_marshal_value_peek_string(v) (v)->data[0].v_pointer +#define g_marshal_value_peek_param(v) (v)->data[0].v_pointer +#define g_marshal_value_peek_boxed(v) (v)->data[0].v_pointer +#define g_marshal_value_peek_pointer(v) (v)->data[0].v_pointer +#define g_marshal_value_peek_object(v) (v)->data[0].v_pointer +#define g_marshal_value_peek_variant(v) (v)->data[0].v_pointer +#endif /* !G_ENABLE_DEBUG */ + + +/* VOID:VOID (gtkdatabox_marshal.list:1) */ + +/* VOID:POINTER (gtkdatabox_marshal.list:2) */ + diff -Nru klavaro-1.9.9/gtkdatabox/gtkdatabox_marshal.h klavaro-3.00/gtkdatabox/gtkdatabox_marshal.h --- klavaro-1.9.9/gtkdatabox/gtkdatabox_marshal.h 1970-01-01 00:00:00.000000000 +0000 +++ klavaro-3.00/gtkdatabox/gtkdatabox_marshal.h 2014-01-03 19:01:42.000000000 +0000 @@ -0,0 +1,18 @@ + +#ifndef __gtk_databox_marshal_MARSHAL_H__ +#define __gtk_databox_marshal_MARSHAL_H__ + +#include + +G_BEGIN_DECLS + +/* VOID:VOID (gtkdatabox_marshal.list:1) */ +#define gtk_databox_marshal_VOID__VOID g_cclosure_marshal_VOID__VOID + +/* VOID:POINTER (gtkdatabox_marshal.list:2) */ +#define gtk_databox_marshal_VOID__POINTER g_cclosure_marshal_VOID__POINTER + +G_END_DECLS + +#endif /* __gtk_databox_marshal_MARSHAL_H__ */ + diff -Nru klavaro-1.9.9/gtkdatabox/gtkdatabox_marshal.list klavaro-3.00/gtkdatabox/gtkdatabox_marshal.list --- klavaro-1.9.9/gtkdatabox/gtkdatabox_marshal.list 1970-01-01 00:00:00.000000000 +0000 +++ klavaro-3.00/gtkdatabox/gtkdatabox_marshal.list 2014-01-03 18:40:55.000000000 +0000 @@ -0,0 +1,2 @@ +VOID:VOID +VOID:POINTER diff -Nru klavaro-1.9.9/gtkdatabox/gtkdatabox_offset_bars.c klavaro-3.00/gtkdatabox/gtkdatabox_offset_bars.c --- klavaro-1.9.9/gtkdatabox/gtkdatabox_offset_bars.c 1970-01-01 00:00:00.000000000 +0000 +++ klavaro-3.00/gtkdatabox/gtkdatabox_offset_bars.c 2014-01-03 18:40:55.000000000 +0000 @@ -0,0 +1,249 @@ +/* $Id: gtkdatabox_offset_bars.c 4 2008-06-22 09:19:11Z rbock $ */ +/* GtkDatabox - An extension to the gtk+ library + * Copyright (C) 2011 - 2012 Dr. Matt Flax + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public License + * as published by the Free Software Foundation; either version 2.1 + * of the License, or (at your option) any later version. + * + * 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 Lesser 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., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + */ + +#include + +G_DEFINE_TYPE(GtkDataboxOffsetBars, gtk_databox_offset_bars, + GTK_DATABOX_TYPE_XYYC_GRAPH) + +static void gtk_databox_offset_bars_real_draw (GtkDataboxGraph * bars, + GtkDatabox* box); + +/** + * GtkDataboxOffsetBarsPrivate + * + * A private data structure used by the #GtkDataboxOffsetBars. It shields all internal things + * from developers who are just using the object. + * + **/ +typedef struct _GtkDataboxOffsetBarsPrivate GtkDataboxOffsetBarsPrivate; + +struct _GtkDataboxOffsetBarsPrivate +{ + gint16 *xpixels; + gint16 *y1pixels; + gint16 *y2pixels; + guint pixelsalloc; +}; + +static void +bars_finalize (GObject * object) +{ + GtkDataboxOffsetBars *bars = GTK_DATABOX_OFFSET_BARS (object); + + g_free (GTK_DATABOX_OFFSET_BARS_GET_PRIVATE(object)->xpixels); + g_free (GTK_DATABOX_OFFSET_BARS_GET_PRIVATE(object)->y1pixels); + g_free (GTK_DATABOX_OFFSET_BARS_GET_PRIVATE(object)->y2pixels); + + /* Chain up to the parent class */ + G_OBJECT_CLASS (gtk_databox_offset_bars_parent_class)->finalize (object); +} + +static void +gtk_databox_offset_bars_class_init (GtkDataboxOffsetBarsClass *klass) +{ + GObjectClass *gobject_class = G_OBJECT_CLASS (klass); + GtkDataboxGraphClass *graph_class = GTK_DATABOX_GRAPH_CLASS (klass); + + gobject_class->finalize = bars_finalize; + + graph_class->draw = gtk_databox_offset_bars_real_draw; + + g_type_class_add_private (klass, sizeof (GtkDataboxOffsetBarsPrivate)); +} + +static void +gtk_databox_offset_bars_complete (GtkDataboxOffsetBars * bars) +{ + GTK_DATABOX_OFFSET_BARS_GET_PRIVATE(bars)->xpixels = NULL; + GTK_DATABOX_OFFSET_BARS_GET_PRIVATE(bars)->y1pixels = NULL; + GTK_DATABOX_OFFSET_BARS_GET_PRIVATE(bars)->y2pixels = NULL; + GTK_DATABOX_OFFSET_BARS_GET_PRIVATE(bars)->pixelsalloc = 0; +} + +static void +gtk_databox_offset_bars_init (GtkDataboxOffsetBars *bars) +{ + g_signal_connect (bars, "notify::length", + G_CALLBACK (gtk_databox_offset_bars_complete), NULL); +} + +/** + * gtk_databox_offset_bars_new: + * @len: length of @X, @Y1 and @Y2 + * @X: array of horizontal position values of markers + * @Y1: array of starting vertical position values of markers + * @Y2: array of ending vertical position values of markers + * @color: color of the markers + * @size: marker size or line width (depending on the @type) + * + * Creates a new #GtkDataboxOffsetBars object which can be added to a #GtkDatabox widget + * + * Return value: A new #GtkDataboxOffsetBars object + **/ +GtkDataboxGraph * +gtk_databox_offset_bars_new (guint len, gfloat * X, gfloat * Y1, gfloat * Y2, + GdkRGBA * color, guint size) +{ + GtkDataboxOffsetBars *bars; + g_return_val_if_fail (X, NULL); + g_return_val_if_fail (Y1, NULL); + g_return_val_if_fail (Y2, NULL); + g_return_val_if_fail ((len > 0), NULL); + + bars = g_object_new (GTK_DATABOX_TYPE_OFFSET_BARS, + "X-Values", X, + "Y1-Values", Y1, + "Y2-Values", Y2, + "xstart", 0, + "y1start", 0, + "y2start", 0, + "xstride", 1, + "y1stride", 1, + "y2stride", 1, + "xtype", G_TYPE_FLOAT, + "ytype", G_TYPE_FLOAT, + "length", len, + "maxlen", len, + "color", color, "size", size, NULL); + + return GTK_DATABOX_GRAPH (bars); +} + +/** + * gtk_databox_offset_bars_new_full: + * @maxlen: maximum length of @X and @Y + * @len: actual number of @X and @Y values to plot + * @X: array of horizontal position values of markers + * @Y1: array of starting vertical position values of markers + * @Y2: array of ending vertical position values of markers + * @xstart: the first element in the X array to plot (usually 0) + * @y1start: the first element in the Y1 array to plot (usually 0) + * @y2start: the first element in the Y2 array to plot (usually 0) + * @xstride: successive elements in the X array are separated by this much (1 if array, ncols if matrix) + * @y1stride: successive elements in the Y1 array are separated by this much (1 if array, ncols if matrix) + * @y2stride: successive elements in the Y2 array are separated by this much (1 if array, ncols if matrix) + * @xtype: the GType of the X array elements. G_TYPE_FLOAT, G_TYPE_DOUBLE, etc. + * @ytype: the GType of the Y1/Y2 array elements. G_TYPE_FLOAT, G_TYPE_DOUBLE, etc. + * @color: color of the markers + * @size: marker size or line width (depending on the @type) + * + * Creates a new #GtkDataboxOffsetBars object which can be added to a #GtkDatabox widget + * + * Return value: A new #GtkDataboxOffsetBars object + **/ +GtkDataboxGraph * +gtk_databox_offset_bars_new_full (guint maxlen, guint len, + void * X, guint xstart, guint xstride, GType xtype, + void * Y1, guint y1start, guint y1stride, + void * Y2, guint y2start, guint y2stride, GType ytype, + GdkRGBA * color, guint size) +{ + GtkDataboxOffsetBars *bars; + g_return_val_if_fail (X, NULL); + g_return_val_if_fail (Y1, NULL); + g_return_val_if_fail (Y2, NULL); + g_return_val_if_fail ((len > 0), NULL); + + bars = g_object_new (GTK_DATABOX_TYPE_OFFSET_BARS, + "X-Values", X, + "Y1-Values", Y1, + "Y2-Values", Y2, + "xstart", xstart, + "y1start", y1start, + "y2start", y2start, + "xstride", xstride, + "y1stride", y1stride, + "y2stride", y2stride, + "xtype", xtype, + "ytype", ytype, + "length", len, + "maxlen", maxlen, + "color", color, "size", size, NULL); + + return GTK_DATABOX_GRAPH (bars); +} + +static void +gtk_databox_offset_bars_real_draw (GtkDataboxGraph * graph, + GtkDatabox* box) +{ + GtkDataboxOffsetBars *bars = GTK_DATABOX_OFFSET_BARS (graph); + GtkDataboxOffsetBarsPrivate *priv = GTK_DATABOX_OFFSET_BARS_GET_PRIVATE(graph); + guint i = 0; + void *X; + void *Y1; + void *Y2; + guint len, maxlen; + cairo_t *cr; + gint16 *xpixels, *y1pixels, *y2pixels; + guint xstart, xstride, y1start, y1stride, y2start, y2stride; + GType xtype, ytype; + + g_return_if_fail (GTK_DATABOX_IS_OFFSET_BARS (bars)); + g_return_if_fail (GTK_IS_DATABOX (box)); + + if (gtk_databox_get_scale_type_y (box) == GTK_DATABOX_SCALE_LOG) + g_warning + ("gtk_databox_offset_bars do not work well with logarithmic scale in Y axis"); + + len = gtk_databox_xyyc_graph_get_length (GTK_DATABOX_XYYC_GRAPH (graph)); + maxlen = gtk_databox_xyyc_graph_get_maxlen (GTK_DATABOX_XYYC_GRAPH (graph)); + + if (priv->pixelsalloc < len) + { + priv->pixelsalloc = len; + priv->xpixels = (gint16 *)g_realloc(priv->xpixels, len * sizeof(gint16)); + priv->y1pixels = (gint16 *)g_realloc(priv->y1pixels, len * sizeof(gint16)); + priv->y2pixels = (gint16 *)g_realloc(priv->y2pixels, len * sizeof(gint16)); + } + + xpixels = priv->xpixels; + y1pixels = priv->y1pixels; + y2pixels = priv->y2pixels; + + X = gtk_databox_xyyc_graph_get_X (GTK_DATABOX_XYYC_GRAPH (graph)); + xstart = gtk_databox_xyyc_graph_get_xstart (GTK_DATABOX_XYYC_GRAPH (graph)); + xstride = gtk_databox_xyyc_graph_get_xstride (GTK_DATABOX_XYYC_GRAPH (graph)); + xtype = gtk_databox_xyyc_graph_get_xtype (GTK_DATABOX_XYYC_GRAPH (graph)); + gtk_databox_values_to_xpixels(box, xpixels, X, xtype, maxlen, xstart, xstride, len); + + ytype = gtk_databox_xyyc_graph_get_ytype (GTK_DATABOX_XYYC_GRAPH (graph)); + Y1 = gtk_databox_xyyc_graph_get_Y1 (GTK_DATABOX_XYYC_GRAPH (graph)); + y1start = gtk_databox_xyyc_graph_get_y1start (GTK_DATABOX_XYYC_GRAPH (graph)); + y1stride = gtk_databox_xyyc_graph_get_y1stride (GTK_DATABOX_XYYC_GRAPH (graph)); + gtk_databox_values_to_ypixels(box, y1pixels, Y1, ytype, maxlen, y1start, y1stride, len); + + Y2 = gtk_databox_xyyc_graph_get_Y2 (GTK_DATABOX_XYYC_GRAPH (graph)); + y2start = gtk_databox_xyyc_graph_get_y2start (GTK_DATABOX_XYYC_GRAPH (graph)); + y2stride = gtk_databox_xyyc_graph_get_y2stride (GTK_DATABOX_XYYC_GRAPH (graph)); + gtk_databox_values_to_ypixels(box, y2pixels, Y2, ytype, maxlen, y2start, y2stride, len); + + cr = gtk_databox_graph_create_gc (graph, box); + + for (i = 0; i < len; i++, xpixels++, y1pixels++, y2pixels++) + { + cairo_move_to (cr, *xpixels + 0.5, *y1pixels + 0.5); + cairo_line_to (cr, *xpixels + 0.5, *y2pixels + 0.5); + } + cairo_stroke(cr); + cairo_destroy(cr); + + return; +} diff -Nru klavaro-1.9.9/gtkdatabox/gtkdatabox_offset_bars.h klavaro-3.00/gtkdatabox/gtkdatabox_offset_bars.h --- klavaro-1.9.9/gtkdatabox/gtkdatabox_offset_bars.h 1970-01-01 00:00:00.000000000 +0000 +++ klavaro-3.00/gtkdatabox/gtkdatabox_offset_bars.h 2014-01-03 18:40:55.000000000 +0000 @@ -0,0 +1,87 @@ +/* $Id: gtkdatabox_offset_bars.h 4 2008-06-22 09:19:11Z rbock $ */ +/* GtkDatabox - An extension to the gtk+ library + * Copyright (C) 1998 - 2008 Dr. Roland Bock + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public License + * as published by the Free Software Foundation; either version 2.1 + * of the License, or (at your option) any later version. + * + * 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 Lesser 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., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + */ + +/** + * SECTION:gtkdatabox_offset_bars + * @short_description: A #GtkDataboxGraph used for displaying xyy-values (x, y1 and y2 values) as vertical bars from y1 to y2. + * @include: gtkdatabox_offset_bars.h + * @see_also: #GtkDatabox, #GtkDataboxGraph, #GtkDataboxPoints, #GtkDataboxLines, #GtkDataboxMarkers, #GtkDataboxOffsetBars + * + * #GtkDataboxOffsetBars is a #GtkDataboxGraph class for displaying xy-values as vertical bars which rise/drop from y1 to y2. + * + */ + +#ifndef __GTK_DATABOX_OFFSET_BARS_H__ +#define __GTK_DATABOX_OFFSET_BARS_H__ + +#include + +G_BEGIN_DECLS +#define GTK_DATABOX_TYPE_OFFSET_BARS (gtk_databox_offset_bars_get_type ()) +#define GTK_DATABOX_OFFSET_BARS(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), \ + GTK_DATABOX_TYPE_OFFSET_BARS, \ + GtkDataboxOffsetBars)) +#define GTK_DATABOX_OFFSET_BARS_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), \ + GTK_DATABOX_TYPE_OFFSET_BARS, \ + GtkDataboxOffsetBarsClass)) +#define GTK_DATABOX_IS_OFFSET_BARS(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), \ + GTK_DATABOX_TYPE_OFFSET_BARS)) +#define GTK_DATABOX_IS_OFFSET_BARS_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), \ + GTK_DATABOX_TYPE_OFFSET_BARS)) +#define GTK_DATABOX_OFFSET_BARS_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), \ + GTK_DATABOX_TYPE_OFFSET_BARS, \ + GtkDataboxOffsetBarsClass)) +#define GTK_DATABOX_OFFSET_BARS_GET_PRIVATE(obj) \ + G_TYPE_INSTANCE_GET_PRIVATE ((obj), GTK_DATABOX_TYPE_OFFSET_BARS, GtkDataboxOffsetBarsPrivate) + +/** + * GtkDataboxOffsetBars: + * @see_also: #GtkDatabox, #GtkDataboxGraph, #GtkDataboxPoints, #GtkDataboxLines, #GtkDataboxMarkers, #GtkDataboxBars + * + * #GtkDataboxOffsetBars is a #GtkDataboxGraph class for displaying xyy-values as vertical bars which rise/drop from y1. + * + */ + typedef struct _GtkDataboxOffsetBars GtkDataboxOffsetBars; + + typedef struct _GtkDataboxOffsetBarsClass GtkDataboxOffsetBarsClass; + + struct _GtkDataboxOffsetBars + { + /*< private >*/ + GtkDataboxXYYCGraph parent; + }; + + struct _GtkDataboxOffsetBarsClass + { + GtkDataboxXYYCGraphClass parent_class; + }; + + GType gtk_databox_offset_bars_get_type (void); + + GtkDataboxGraph *gtk_databox_offset_bars_new (guint len, gfloat * X, gfloat * Y1, gfloat * Y2, + GdkRGBA * color, guint size); + + GtkDataboxGraph *gtk_databox_offset_bars_new_full (guint maxlen, guint len, + void * X, guint xstart, guint xstride, GType xtype, + void * Y1, guint y1start, guint y1stride, + void * Y2, guint y2start, guint y2stride, GType ytype, + GdkRGBA * color, guint size); + +G_END_DECLS +#endif /* __GTK_DATABOX_OFFSET_BARS_H__ */ diff -Nru klavaro-1.9.9/gtkdatabox/gtkdatabox_points.c klavaro-3.00/gtkdatabox/gtkdatabox_points.c --- klavaro-1.9.9/gtkdatabox/gtkdatabox_points.c 1970-01-01 00:00:00.000000000 +0000 +++ klavaro-3.00/gtkdatabox/gtkdatabox_points.c 2014-01-03 18:40:55.000000000 +0000 @@ -0,0 +1,221 @@ +/* $Id: gtkdatabox_points.c 4 2008-06-22 09:19:11Z rbock $ */ +/* GtkDatabox - An extension to the gtk+ library + * Copyright (C) 1998 - 2008 Dr. Roland Bock + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public License + * as published by the Free Software Foundation; either version 2.1 + * of the License, or (at your option) any later version. + * + * 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 Lesser 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., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + */ + +#include + +G_DEFINE_TYPE(GtkDataboxPoints, gtk_databox_points, + GTK_DATABOX_TYPE_XYC_GRAPH) + +static void gtk_databox_points_real_draw (GtkDataboxGraph * points, + GtkDatabox * box); + +/** + * GtkDataboxPointsPrivate + * + * A private data structure used by the #GtkDataboxPoints. It shields all internal things + * from developers who are just using the object. + * + **/ +typedef struct _GtkDataboxPointsPrivate GtkDataboxPointsPrivate; + +struct _GtkDataboxPointsPrivate +{ + gint16 *xpixels; + gint16 *ypixels; + guint pixelsalloc; +}; + +static void +points_finalize (GObject * object) +{ + GtkDataboxPoints *points = GTK_DATABOX_POINTS (object); + + g_free (GTK_DATABOX_POINTS_GET_PRIVATE(object)->xpixels); + g_free (GTK_DATABOX_POINTS_GET_PRIVATE(object)->ypixels); + + /* Chain up to the parent class */ + G_OBJECT_CLASS (gtk_databox_points_parent_class)->finalize (object); +} + +static void +gtk_databox_points_class_init (GtkDataboxPointsClass *klass) +{ + GObjectClass *gobject_class = G_OBJECT_CLASS (klass); + GtkDataboxGraphClass *graph_class = GTK_DATABOX_GRAPH_CLASS (klass); + + gobject_class->finalize = points_finalize; + + graph_class->draw = gtk_databox_points_real_draw; + + g_type_class_add_private (klass, sizeof (GtkDataboxPointsPrivate)); +} + +static void +gtk_databox_points_complete (GtkDataboxPoints * points) +{ + GTK_DATABOX_POINTS_GET_PRIVATE(points)->xpixels = NULL; + GTK_DATABOX_POINTS_GET_PRIVATE(points)->ypixels = NULL; + GTK_DATABOX_POINTS_GET_PRIVATE(points)->pixelsalloc = 0; +} + +static void +gtk_databox_points_init (GtkDataboxPoints *points) +{ + g_signal_connect (points, "notify::length", + G_CALLBACK (gtk_databox_points_complete), NULL); +} + +/** + * gtk_databox_points_new: + * @len: length of @X and @Y + * @X: array of horizontal position values of markers + * @Y: array of vertical position values of markers + * @color: color of the markers + * @size: marker size or line width (depending on the @type) + * + * Creates a new #GtkDataboxPoints object which can be added to a #GtkDatabox widget. + * + * Return value: A new #GtkDataboxPoints object + **/ +GtkDataboxGraph * +gtk_databox_points_new (guint len, gfloat * X, gfloat * Y, + GdkRGBA * color, gint size) +{ + GtkDataboxPoints *points; + g_return_val_if_fail (X, NULL); + g_return_val_if_fail (Y, NULL); + g_return_val_if_fail ((len > 0), NULL); + + points = g_object_new (GTK_DATABOX_TYPE_POINTS, + "X-Values", X, + "Y-Values", Y, + "xstart", 0, + "ystart", 0, + "xstride", 1, + "ystride", 1, + "xtype", G_TYPE_FLOAT, + "ytype", G_TYPE_FLOAT, + "length", len, + "maxlen", len, + "color", color, "size", size, NULL); + + return GTK_DATABOX_GRAPH (points); +} + +/** + * gtk_databox_points_new_full: + * @maxlen: maximum length of @X and @Y + * @len: actual number of @X and @Y values to plot + * @X: array of horizontal position values of markers + * @Y: array of vertical position values of markers + * @xstart: the first element in the X array to plot (usually 0) + * @ystart: the first element in the Y array to plot (usually 0) + * @xstride: successive elements in the X array are separated by this much (1 if array, ncols if matrix) + * @ystride: successive elements in the Y array are separated by this much (1 if array, ncols if matrix) + * @xtype: the GType of the X array elements. G_TYPE_FLOAT, G_TYPE_DOUBLE, etc. + * @ytype: the GType of the Y array elements. G_TYPE_FLOAT, G_TYPE_DOUBLE, etc. + * @color: color of the markers + * @size: marker size or line width (depending on the @type) + * + * Creates a new #GtkDataboxPoints object which can be added to a #GtkDatabox widget. + * + * Return value: A new #GtkDataboxPoints object + **/ +GtkDataboxGraph * +gtk_databox_points_new_full (guint maxlen, guint len, + void * X, guint xstart, guint xstride, GType xtype, + void * Y, guint ystart, guint ystride, GType ytype, + GdkRGBA * color, gint size) +{ + GtkDataboxPoints *points; + g_return_val_if_fail (X, NULL); + g_return_val_if_fail (Y, NULL); + g_return_val_if_fail ((len > 0), NULL); + + points = g_object_new (GTK_DATABOX_TYPE_POINTS, + "X-Values", X, + "Y-Values", Y, + "xstart", xstart, + "ystart", ystart, + "xstride", xstride, + "ystride", ystride, + "xtype", xtype, + "ytype", ytype, + "length", len, + "maxlen", maxlen, + "color", color, "size", size, NULL); + + return GTK_DATABOX_GRAPH (points); +} + +static void +gtk_databox_points_real_draw (GtkDataboxGraph * graph, + GtkDatabox* box) +{ + GtkDataboxPoints *points = GTK_DATABOX_POINTS (graph); + GtkDataboxPointsPrivate *priv=GTK_DATABOX_POINTS_GET_PRIVATE(points); + guint i = 0; + void *X; + void *Y; + guint len, maxlen; + gint pointsize = 0; + cairo_t *cr; + gint16 *xpixels, *ypixels; + guint xstart, xstride, ystart, ystride; + GType xtype, ytype; + + g_return_if_fail (GTK_DATABOX_IS_POINTS (points)); + g_return_if_fail (GTK_IS_DATABOX (box)); + + cr = gtk_databox_graph_create_gc (graph, box); + + len = gtk_databox_xyc_graph_get_length (GTK_DATABOX_XYC_GRAPH (graph)); + maxlen = gtk_databox_xyc_graph_get_maxlen (GTK_DATABOX_XYC_GRAPH (graph)); + + if (priv->pixelsalloc < len) + { + priv->pixelsalloc = len; + priv->xpixels = (gint16 *)g_realloc(priv->xpixels, len * sizeof(gint16)); + priv->ypixels = (gint16 *)g_realloc(priv->ypixels, len * sizeof(gint16)); + } + + xpixels = priv->xpixels; + ypixels = priv->ypixels; + + X = gtk_databox_xyc_graph_get_X (GTK_DATABOX_XYC_GRAPH (graph)); + xstart = gtk_databox_xyc_graph_get_xstart (GTK_DATABOX_XYC_GRAPH (graph)); + xstride = gtk_databox_xyc_graph_get_xstride (GTK_DATABOX_XYC_GRAPH (graph)); + xtype = gtk_databox_xyc_graph_get_xtype (GTK_DATABOX_XYC_GRAPH (graph)); + gtk_databox_values_to_xpixels(box, xpixels, X, xtype, maxlen, xstart, xstride, len); + + Y = gtk_databox_xyc_graph_get_Y (GTK_DATABOX_XYC_GRAPH (graph)); + ystart = gtk_databox_xyc_graph_get_ystart (GTK_DATABOX_XYC_GRAPH (graph)); + ystride = gtk_databox_xyc_graph_get_ystride (GTK_DATABOX_XYC_GRAPH (graph)); + ytype = gtk_databox_xyc_graph_get_ytype (GTK_DATABOX_XYC_GRAPH (graph)); + gtk_databox_values_to_ypixels(box, ypixels, Y, ytype, maxlen, ystart, ystride, len); + + pointsize = gtk_databox_graph_get_size (graph); + + for (i = 0; i < len; i++, xpixels++, ypixels++) + cairo_rectangle(cr, *xpixels - pointsize / 2, *ypixels - pointsize / 2, pointsize, pointsize); + + cairo_fill(cr); + cairo_destroy(cr); + return; +} diff -Nru klavaro-1.9.9/gtkdatabox/gtkdatabox_points.h klavaro-3.00/gtkdatabox/gtkdatabox_points.h --- klavaro-1.9.9/gtkdatabox/gtkdatabox_points.h 1970-01-01 00:00:00.000000000 +0000 +++ klavaro-3.00/gtkdatabox/gtkdatabox_points.h 2014-01-04 15:41:32.000000000 +0000 @@ -0,0 +1,87 @@ +/* $Id: gtkdatabox_points.h 4 2008-06-22 09:19:11Z rbock $ */ +/* GtkDatabox - An extension to the gtk+ library + * Copyright (C) 1998 - 2008 Dr. Roland Bock + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public License + * as published by the Free Software Foundation; either version 2.1 + * of the License, or (at your option) any later version. + * + * 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 Lesser 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., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + */ + +/** + * SECTION:gtkdatabox_points + * @short_description: A #GtkDataboxGraph used for displaying xy-values as dots. + * @include: gtkdatabox_points.h + * @see_also: #GtkDatabox, #GtkDataboxGraph, #GtkDataboxLines, #GtkDataboxBars, #GtkDataboxMarkers + * + * #GtkDataboxPoints is a #GtkDataboxGraph class for displaying xy-values as dots. + * + */ + +#ifndef __GTK_DATABOX_POINTS_H__ +#define __GTK_DATABOX_POINTS_H__ + +#include + +G_BEGIN_DECLS +#define GTK_DATABOX_TYPE_POINTS (gtk_databox_points_get_type ()) +#define GTK_DATABOX_POINTS(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), \ + GTK_DATABOX_TYPE_POINTS, \ + GtkDataboxPoints)) +#define GTK_DATABOX_POINTS_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), \ + GTK_DATABOX_TYPE_POINTS, \ + GtkDataboxPointsClass)) +#define GTK_DATABOX_IS_POINTS(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), \ + GTK_DATABOX_TYPE_POINTS)) +#define GTK_DATABOX_IS_POINTS_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), \ + GTK_DATABOX_TYPE_POINTS)) +#define GTK_DATABOX_POINTS_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), \ + GTK_DATABOX_TYPE_POINTS, \ + GtkDataboxPointsClass)) +#define GTK_DATABOX_POINTS_GET_PRIVATE(obj) \ + G_TYPE_INSTANCE_GET_PRIVATE ((obj), GTK_DATABOX_TYPE_POINTS, GtkDataboxPointsPrivate) + +/** + * GtkDataboxPoints: + * @see_also: #GtkDatabox, #GtkDataboxGraph, #GtkDataboxLines, #GtkDataboxBars, #GtkDataboxMarkers + * + * #GtkDataboxPoints is a #GtkDataboxGraph class for displaying xy-values as dots. + * + */ + + typedef struct _GtkDataboxPoints GtkDataboxPoints; + + typedef struct _GtkDataboxPointsClass GtkDataboxPointsClass; + + struct _GtkDataboxPoints + { + /*< private >*/ + GtkDataboxXYCGraph parent; + }; + + struct _GtkDataboxPointsClass + { + GtkDataboxXYCGraphClass parent_class; + }; + + GType gtk_databox_points_get_type (void); + + GtkDataboxGraph *gtk_databox_points_new (guint len, gfloat * X, gfloat * Y, + GdkRGBA * color, gint size); + + GtkDataboxGraph *gtk_databox_points_new_full (guint maxlen, guint len, + void * X, guint xstart, guint xstride, GType xtype, + void * Y, guint ystart, guint ystride, GType ytype, + GdkRGBA * color, gint size); + +G_END_DECLS +#endif /* __GTK_DATABOX_POINTS_H__ */ diff -Nru klavaro-1.9.9/gtkdatabox/gtkdatabox_regions.c klavaro-3.00/gtkdatabox/gtkdatabox_regions.c --- klavaro-1.9.9/gtkdatabox/gtkdatabox_regions.c 1970-01-01 00:00:00.000000000 +0000 +++ klavaro-3.00/gtkdatabox/gtkdatabox_regions.c 2014-01-03 18:40:55.000000000 +0000 @@ -0,0 +1,263 @@ +/* $Id: gtkdatabox_regions.c 4 2008-06-22 09:19:11Z rbock $ */ +/* GtkDatabox - An extension to the gtk+ library + * Copyright (C) 2011 - 2012 Dr. Matt Flax + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public License + * as published by the Free Software Foundation; either version 2.1 + * of the License, or (at your option) any later version. + * + * 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 Lesser 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., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + */ + +#include + +G_DEFINE_TYPE(GtkDataboxRegions, gtk_databox_regions, + GTK_DATABOX_TYPE_XYYC_GRAPH) + +static void gtk_databox_regions_real_draw (GtkDataboxGraph * regions, + GtkDatabox* box); + +/** + * GtkDataboxRegionsPrivate + * + * A private data structure used by the #GtkDataboxRegions. It shields all internal things + * from developers who are just using the object. + * + **/ +typedef struct _GtkDataboxRegionsPrivate GtkDataboxRegionsPrivate; + +struct _GtkDataboxRegionsPrivate +{ + gint16 *xpixels; + gint16 *y1pixels; + gint16 *y2pixels; + guint pixelsalloc; +}; + +static void +regions_finalize (GObject * object) +{ + GtkDataboxRegions *regions = GTK_DATABOX_REGIONS (object); + GtkDataboxRegionsPrivate *priv=GTK_DATABOX_REGIONS_GET_PRIVATE(regions); + g_free (priv->xpixels); + g_free (priv->y1pixels); + g_free (priv->y2pixels); + + /* Chain up to the parent class */ + G_OBJECT_CLASS (gtk_databox_regions_parent_class)->finalize (object); +} + +static void +gtk_databox_regions_class_init (GtkDataboxRegionsClass *klass ) +{ + GtkDataboxGraphClass *graph_class = GTK_DATABOX_GRAPH_CLASS (klass); + GObjectClass *gobject_class = G_OBJECT_CLASS (klass); + + gobject_class->finalize = regions_finalize; + + graph_class->draw = gtk_databox_regions_real_draw; + + g_type_class_add_private (klass, sizeof (GtkDataboxRegionsPrivate)); +} + +static void +gtk_databox_regions_complete (GtkDataboxRegions * regions) +{ + GTK_DATABOX_REGIONS_GET_PRIVATE(regions)->xpixels = NULL; + GTK_DATABOX_REGIONS_GET_PRIVATE(regions)->y1pixels = NULL; + GTK_DATABOX_REGIONS_GET_PRIVATE(regions)->y2pixels = NULL; + GTK_DATABOX_REGIONS_GET_PRIVATE(regions)->pixelsalloc = 0; +} + +static void +gtk_databox_regions_init (GtkDataboxRegions *regions) +{ + g_signal_connect (regions, "notify::length", + G_CALLBACK (gtk_databox_regions_complete), NULL); +} + +/** + * gtk_databox_regions_new: + * @len: length of @X, @Y1 and @Y2 + * @X: array of ordinates + * @Y1: array of co-ordinates + * @Y2: array of co-ordinates + * @color: color of the markers + * + * Creates a new #GtkDataboxRegions object which can be added to a #GtkDatabox widget + * + * Return value: A new #GtkDataboxRegions object + **/ +GtkDataboxGraph * +gtk_databox_regions_new (guint len, gfloat * X, gfloat * Y1, gfloat * Y2, GdkRGBA * color) +{ + GtkDataboxRegions *regions; + g_return_val_if_fail (X, NULL); + g_return_val_if_fail (Y1, NULL); + g_return_val_if_fail (Y2, NULL); + g_return_val_if_fail ((len > 0), NULL); + + regions = g_object_new (GTK_DATABOX_TYPE_REGIONS, + "X-Values", X, + "Y1-Values", Y1, + "Y2-Values", Y2, + "xstart", 0, + "y1start", 0, + "y2start", 0, + "xstride", 1, + "y1stride", 1, + "y2stride", 1, + "xtype", G_TYPE_FLOAT, + "ytype", G_TYPE_FLOAT, + "length", len, + "maxlen", len, + "color", color,NULL); + + return GTK_DATABOX_GRAPH (regions); +} + +/** + * gtk_databox_regions_new_full: + * @maxlen: maximum length of @X and @Y + * @len: actual number of @X and @Y values to plot + * @X: array of ordinates + * @Y1: array of co-ordinates + * @Y2: array of co-ordinates + * @xstart: the first element in the X array to plot (usually 0) + * @y1start: the first element in the Y1 array to plot (usually 0) + * @y2start: the first element in the Y2 array to plot (usually 0) + * @xstride: successive elements in the X array are separated by this much (1 if array, ncols if matrix) + * @y1stride: successive elements in the Y1 array are separated by this much (1 if array, ncols if matrix) + * @y2stride: successive elements in the Y2 array are separated by this much (1 if array, ncols if matrix) + * @xtype: the GType of the X array elements. G_TYPE_FLOAT, G_TYPE_DOUBLE, etc. + * @ytype: the GType of the Y1/Y2 array elements. G_TYPE_FLOAT, G_TYPE_DOUBLE, etc. + * @color: color of the markers + * + * Creates a new #GtkDataboxRegions object which can be added to a #GtkDatabox widget + * + * Return value: A new #GtkDataboxRegions object + **/ +GtkDataboxGraph * +gtk_databox_regions_new_full (guint maxlen, guint len, + void * X, guint xstart, guint xstride, GType xtype, + void * Y1, guint y1start, guint y1stride, + void * Y2, guint y2start, guint y2stride, GType ytype, + GdkRGBA * color) +{ + GtkDataboxRegions *regions; + g_return_val_if_fail (X, NULL); + g_return_val_if_fail (Y1, NULL); + g_return_val_if_fail (Y2, NULL); + g_return_val_if_fail ((len > 0), NULL); + + regions = g_object_new (GTK_DATABOX_TYPE_REGIONS, + "X-Values", X, + "Y1-Values", Y1, + "Y2-Values", Y2, + "xstart", xstart, + "y1start", y1start, + "y2start", y2start, + "xstride", xstride, + "y1stride", y1stride, + "y2stride", y2stride, + "xtype", xtype, + "ytype", ytype, + "length", len, + "maxlen", maxlen, + "color", color,NULL); + + return GTK_DATABOX_GRAPH (regions); +} + +static void +gtk_databox_regions_real_draw (GtkDataboxGraph * graph, + GtkDatabox* box) +{ + GtkDataboxRegions *regions = GTK_DATABOX_REGIONS (graph); + GtkDataboxRegionsPrivate *priv=GTK_DATABOX_REGIONS_GET_PRIVATE(regions); + GdkPoint data[4]; + guint i = 0; + void *X; + void *Y1; + void *Y2; + guint len, maxlen; + cairo_t *cr; + gint16 *xpixels, *y1pixels, *y2pixels; + guint xstart, xstride, y1start, y1stride, y2start, y2stride; + GType xtype, ytype; + + g_return_if_fail (GTK_DATABOX_IS_REGIONS (regions)); + g_return_if_fail (GTK_IS_DATABOX (box)); + + if (gtk_databox_get_scale_type_y (box) == GTK_DATABOX_SCALE_LOG) + g_warning + ("gtk_databox_regions do not work well with logarithmic scale in Y axis"); + + len = gtk_databox_xyyc_graph_get_length (GTK_DATABOX_XYYC_GRAPH (graph)); + maxlen = gtk_databox_xyyc_graph_get_maxlen (GTK_DATABOX_XYYC_GRAPH (graph)); + + if (priv->pixelsalloc < len) + { + priv->pixelsalloc = len; + priv->xpixels = (gint16 *)g_realloc(priv->xpixels, len * sizeof(gint16)); + priv->y1pixels = (gint16 *)g_realloc(priv->y1pixels, len * sizeof(gint16)); + priv->y2pixels = (gint16 *)g_realloc(priv->y2pixels, len * sizeof(gint16)); + } + + xpixels = priv->xpixels; + y1pixels = priv->y1pixels; + y2pixels = priv->y2pixels; + + X = gtk_databox_xyyc_graph_get_X (GTK_DATABOX_XYYC_GRAPH (graph)); + xstart = gtk_databox_xyyc_graph_get_xstart (GTK_DATABOX_XYYC_GRAPH (graph)); + xstride = gtk_databox_xyyc_graph_get_xstride (GTK_DATABOX_XYYC_GRAPH (graph)); + xtype = gtk_databox_xyyc_graph_get_xtype (GTK_DATABOX_XYYC_GRAPH (graph)); + gtk_databox_values_to_xpixels(box, xpixels, X, xtype, maxlen, xstart, xstride, len); + + ytype = gtk_databox_xyyc_graph_get_ytype (GTK_DATABOX_XYYC_GRAPH (graph)); + Y1 = gtk_databox_xyyc_graph_get_Y1 (GTK_DATABOX_XYYC_GRAPH (graph)); + y1start = gtk_databox_xyyc_graph_get_y1start (GTK_DATABOX_XYYC_GRAPH (graph)); + y1stride = gtk_databox_xyyc_graph_get_y1stride (GTK_DATABOX_XYYC_GRAPH (graph)); + gtk_databox_values_to_ypixels(box, y1pixels, Y1, ytype, maxlen, y1start, y1stride, len); + + Y2 = gtk_databox_xyyc_graph_get_Y2 (GTK_DATABOX_XYYC_GRAPH (graph)); + y2start = gtk_databox_xyyc_graph_get_y2start (GTK_DATABOX_XYYC_GRAPH (graph)); + y2stride = gtk_databox_xyyc_graph_get_y2stride (GTK_DATABOX_XYYC_GRAPH (graph)); + gtk_databox_values_to_ypixels(box, y2pixels, Y2, ytype, maxlen, y2start, y2stride, len); + + cr = gtk_databox_graph_create_gc (graph, box); + + data[2].x = *xpixels; + data[2].y = *y2pixels; + data[3].x = *xpixels; + data[3].y = *y1pixels; + xpixels++; y1pixels++; y2pixels++; + for (i = 0; i < len-1; i++, xpixels++, y1pixels++, y2pixels++) + { + data[0].x = data[2].x; /* 4 points in the polygon */ + data[0].y = data[2].y; + data[1].x = data[3].x; + data[1].y = data[3].y; + data[2].x = *xpixels; + data[2].y = *y2pixels; + data[3].x = *xpixels; + data[3].y = *y1pixels; + cairo_move_to(cr, data[1].x, data[1].y); + cairo_line_to(cr, data[0].x, data[0].y); + cairo_line_to(cr, data[2].x, data[2].y); + cairo_line_to(cr, data[3].x, data[3].y); + cairo_close_path (cr); + cairo_fill(cr); + } + cairo_destroy(cr); + + return; +} diff -Nru klavaro-1.9.9/gtkdatabox/gtkdatabox_regions.h klavaro-3.00/gtkdatabox/gtkdatabox_regions.h --- klavaro-1.9.9/gtkdatabox/gtkdatabox_regions.h 1970-01-01 00:00:00.000000000 +0000 +++ klavaro-3.00/gtkdatabox/gtkdatabox_regions.h 2014-01-03 18:40:55.000000000 +0000 @@ -0,0 +1,85 @@ +/* $Id: gtkdatabox_regions.h 4 2008-06-22 09:19:11Z rbock $ */ +/* GtkDatabox - An extension to the gtk+ library + * Copyright (C) 1998 - 2008 Dr. Roland Bock + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public License + * as published by the Free Software Foundation; either version 2.1 + * of the License, or (at your option) any later version. + * + * 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 Lesser 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., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + */ + +/** + * SECTION:gtkdatabox_regions + * @short_description: A #GtkDataboxGraph used for displaying xxyy-values (x1, x2, y1 and y2 values) as oblongs from x1 to y1, x2 to y2. + * @include: gtkdatabox_regions.h + * @see_also: #GtkDatabox, #GtkDataboxGraph, #GtkDataboxPoints, #GtkDataboxLines, #GtkDataboxMarkers, #GtkDataboxRegions + * + * #GtkDataboxRegions is a #GtkDataboxGraph class for displaying xxyy-values as oblongs. + * + */ + +#ifndef __GTK_DATABOX_REGIONS_H__ +#define __GTK_DATABOX_REGIONS_H__ + +#include + +G_BEGIN_DECLS +#define GTK_DATABOX_TYPE_REGIONS (gtk_databox_regions_get_type ()) +#define GTK_DATABOX_REGIONS(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), \ + GTK_DATABOX_TYPE_REGIONS, \ + GtkDataboxRegions)) +#define GTK_DATABOX_REGIONS_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), \ + GTK_DATABOX_TYPE_REGIONS, \ + GtkDataboxRegionsClass)) +#define GTK_DATABOX_IS_REGIONS(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), \ + GTK_DATABOX_TYPE_REGIONS)) +#define GTK_DATABOX_IS_REGIONS_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), \ + GTK_DATABOX_TYPE_REGIONS)) +#define GTK_DATABOX_REGIONS_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), \ + GTK_DATABOX_TYPE_REGIONS, \ + GtkDataboxRegionsClass)) +#define GTK_DATABOX_REGIONS_GET_PRIVATE(obj) \ + G_TYPE_INSTANCE_GET_PRIVATE ((obj), GTK_DATABOX_TYPE_REGIONS, \ + GtkDataboxRegionsPrivate) + +/** + * GtkDataboxRegions: + * @see_also: #GtkDatabox, #GtkDataboxGraph, #GtkDataboxPoints, #GtkDataboxLines, #GtkDataboxMarkers, #GtkDataboxBars, #GtkDataboxOffsetBars + * + * #GtkDataboxRegions is a #GtkDataboxGraph class for displaying xxyy-values as oblongs. + * + */ + typedef struct _GtkDataboxRegions GtkDataboxRegions; + + typedef struct _GtkDataboxRegionsClass GtkDataboxRegionsClass; + + struct _GtkDataboxRegions + { + /*< private >*/ + GtkDataboxXYYCGraph parent; + }; + + struct _GtkDataboxRegionsClass + { + GtkDataboxXYYCGraphClass parent_class; + }; + + GType gtk_databox_regions_get_type (void); + + GtkDataboxGraph *gtk_databox_regions_new (guint len, gfloat * X, gfloat * Y1, gfloat * Y2, GdkRGBA * color); + GtkDataboxGraph *gtk_databox_regions_new_full (guint maxlen, guint len, + void * X, guint xstart, guint xstride, GType xtype, + void * Y1, guint y1start, guint y1stride, + void * Y2, guint y2start, guint y2stride, GType ytype, + GdkRGBA * color); +G_END_DECLS +#endif /* __GTK_DATABOX_REGIONS_H__ */ diff -Nru klavaro-1.9.9/gtkdatabox/gtkdatabox_ruler.c klavaro-3.00/gtkdatabox/gtkdatabox_ruler.c --- klavaro-1.9.9/gtkdatabox/gtkdatabox_ruler.c 1970-01-01 00:00:00.000000000 +0000 +++ klavaro-3.00/gtkdatabox/gtkdatabox_ruler.c 2014-01-03 18:40:55.000000000 +0000 @@ -0,0 +1,1811 @@ +/* $Id: gtkdatabox_ruler.c 4 2008-06-22 09:19:11Z rbock $ */ +/* GTK - The GIMP Toolkit + * Copyright (C) 1995-1997 Peter Mattis, Spencer Kimball and Josh MacDonald + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the + * Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, + * Boston, MA 02110-1301 USA + */ + +/* + * Modified by the GTK+ Team and others 1997-2000. See the AUTHORS + * file for a list of people on the GTK+ Team. See the ChangeLog + * files for a list of changes. These files are distributed with + * GTK+ at ftp://ftp.gtk.org/pub/gtk/. + */ + +/* Modified by Roland Bock 2007, see ChangeLog */ + +#include + +#include +#include + +#include + +#define RULER_SIZE 20 + +#define ROUND(x) ((int) ((x) + 0.5)) + +#define FORMAT_LENGTH 20 /* the length of the label format string */ + +#define LINEAR_FORMAT_MARKUP "%%-+%dg" +#define LOG_FORMAT_MARKUP "%%-%dg" + +static void gtk_databox_ruler_draw_ticks (GtkDataboxRuler * ruler); +static void gtk_databox_ruler_draw_pos (GtkDataboxRuler * ruler); +static gint gtk_databox_ruler_motion_notify (GtkWidget * widget, + GdkEventMotion * event); +static void gtk_databox_ruler_realize (GtkWidget * widget); +static void gtk_databox_ruler_unrealize (GtkWidget * widget); +static void gtk_databox_ruler_size_allocate (GtkWidget * widget, + GtkAllocation * allocation); +static gint gtk_databox_ruler_draw (GtkWidget * widget, + cairo_t * cr); +static void gtk_databox_ruler_get_preferred_width (GtkWidget *widget, + gint *minimal_width, + gint *natural_width); +static void gtk_databox_ruler_get_preferred_height (GtkWidget *widget, + gint *minimal_height, + gint *natural_height); +static void gtk_databox_ruler_create_backing_surface (GtkDataboxRuler * ruler); +static void gtk_databox_ruler_set_property (GObject * object, + guint prop_id, + const GValue * value, + GParamSpec * pspec); +static void gtk_databox_ruler_get_property (GObject * object, + guint prop_id, + GValue * value, + GParamSpec * pspec); + +enum { + PROP_0, + PROP_LOWER, + PROP_UPPER, + PROP_POSITION, + PROP_DRAW_POSITION, + PROP_MAX_LENGTH, + PROP_ORIENTATION, + PROP_TEXT_ORIENTATION, + PROP_TEXT_ALIGNMENT, + PROP_TEXT_HOFFSET, + PROP_DRAW_TICKS, + PROP_DRAW_SUBTICKS, + PROP_MANUAL_TICKS, + PROP_MANUAL_TICK_CNT, + PROP_MANUAL_TICK_LABELS, + PROP_INVERT_EDGE, + PROP_LINEAR_LABEL_FORMAT, + PROP_LOG_LABEL_FORMAT, + PROP_BOX_SHADOW, + PROP_END_OF_LIST +}; + +struct _GtkDataboxRulerPrivate +{ + cairo_surface_t *backing_surface; + gint old_width; + gint old_height; + + gint xsrc; + gint ysrc; + /* The lower limit of the ruler */ + gdouble lower; + /* The upper limit of the ruler */ + gdouble upper; + /* The position of the mark on the ruler */ + gdouble position; + /* whether to draw the position arrows*/ + gboolean draw_position; + + /* The maximum length of the labels (in characters) */ + guint max_length; + /* The scale type of the ruler */ + GtkDataboxScaleType scale_type; + /* Orientation of the ruler */ + GtkOrientation orientation; + /* Orientation of the tick marks on the vertical ruler */ + GtkOrientation text_orientation; + + /* Whether the horizontal text on the vertical ruler is aligned left or right or center */ + PangoAlignment text_alignment; + /* horizontal tick offset (shift ticks left or right) */ + gint text_hoffset; + + /* The maximum height of text on the horizontal ruler */ + gint max_x_text_height; + /* The maximum width of text on the horizontal ruler */ + gint max_y_text_width; + + /* When true draw the ticks */ + gboolean draw_ticks; + + /* When true draw the subticks */ + gboolean draw_subticks; + + /* Whether the ruler is inverted (i.e. drawn with the edge on the left or right, top or bottom) */ + gboolean invert_edge; + + /* Strings used to mark up the g_sprintf label format - one for log scaling and one for linear scaling */ + gchar linear_format[FORMAT_LENGTH], log_format[FORMAT_LENGTH]; + + /* If we are manually setting ticks, this will be non-null */ + gfloat *manual_ticks; + guint manual_tick_cnt; + /* we have the option of manually setting the tick labels. */ + gchar **manual_tick_labels; + + GtkShadowType box_shadow; /* The type of shadow drawn on the ruler pixmap */ +}; + +G_DEFINE_TYPE (GtkDataboxRuler, gtk_databox_ruler, GTK_TYPE_WIDGET) + +static void gtk_databox_ruler_class_init (GtkDataboxRulerClass * class) { + GObjectClass *gobject_class; + GtkWidgetClass *widget_class; + + gobject_class = G_OBJECT_CLASS (class); + widget_class = (GtkWidgetClass *) class; + + gobject_class->set_property = gtk_databox_ruler_set_property; + gobject_class->get_property = gtk_databox_ruler_get_property; + + widget_class->realize = gtk_databox_ruler_realize; + widget_class->unrealize = gtk_databox_ruler_unrealize; + widget_class->size_allocate = gtk_databox_ruler_size_allocate; + widget_class->draw = gtk_databox_ruler_draw; + widget_class->motion_notify_event = gtk_databox_ruler_motion_notify; + widget_class->get_preferred_width = gtk_databox_ruler_get_preferred_width; + widget_class->get_preferred_height = gtk_databox_ruler_get_preferred_height; + + g_object_class_install_property (gobject_class, + PROP_LOWER, + g_param_spec_double ("lower", + "Lower", + "Lower limit of ruler", + -G_MAXDOUBLE, + G_MAXDOUBLE, + 0.0, + G_PARAM_READWRITE)); + + g_object_class_install_property (gobject_class, + PROP_UPPER, + g_param_spec_double ("upper", + "Upper", + "Upper limit of ruler", + -G_MAXDOUBLE, + G_MAXDOUBLE, + 0.0, + G_PARAM_READWRITE)); + + g_object_class_install_property (gobject_class, + PROP_POSITION, + g_param_spec_double ("position", + "Position", + "Position of mark on the ruler", + -G_MAXDOUBLE, + G_MAXDOUBLE, + 0.0, + G_PARAM_READWRITE)); + + g_object_class_install_property (gobject_class, + PROP_DRAW_POSITION, + g_param_spec_uint ("draw-position", + "Draw Position Arrows", + "Draw the position arrows: true or false", + FALSE, + TRUE, + TRUE, + G_PARAM_READWRITE)); + + g_object_class_install_property (gobject_class, + PROP_MAX_LENGTH, + g_param_spec_uint ("max-length", + "Max Length", + "Maximum length of the labels (in digits)", + 2, + GTK_DATABOX_RULER_MAX_MAX_LENGTH, + 6, G_PARAM_READWRITE)); + g_object_class_install_property (gobject_class, + PROP_ORIENTATION, + g_param_spec_uint ("orientation", + "Orientation", + "Orientation of the ruler: horizontal or vertical", + GTK_ORIENTATION_HORIZONTAL, + GTK_ORIENTATION_VERTICAL, + GTK_ORIENTATION_HORIZONTAL, + G_PARAM_READWRITE | + G_PARAM_CONSTRUCT_ONLY)); + g_object_class_install_property (gobject_class, + PROP_TEXT_ORIENTATION, + g_param_spec_uint ("text-orientation", + "Text Orientation", + "Orientation of the tick mark text (on the vertical ruler): horizontal or vertical", + GTK_ORIENTATION_HORIZONTAL, + GTK_ORIENTATION_VERTICAL, + GTK_ORIENTATION_VERTICAL, + G_PARAM_READWRITE)); + g_object_class_install_property (gobject_class, + PROP_TEXT_ALIGNMENT, + g_param_spec_uint ("text-alignment", + "Text Alignment", + "Alignment of the tick mark text (on the vertical ruler when using horizonal text): { PANGO_ALIGN_LEFT, PANGO_ALIGN_CENTER, PANGO_ALIGN_RIGHT}", + PANGO_ALIGN_LEFT, + PANGO_ALIGN_RIGHT, + PANGO_ALIGN_LEFT, + G_PARAM_READWRITE)); + g_object_class_install_property (gobject_class, + PROP_TEXT_HOFFSET, + g_param_spec_uint ("text-hoffset", + "Text Horizonal offset", + "Move the tick mark text left or right : pixels", + 0, + 20, + 0, + G_PARAM_READWRITE)); + g_object_class_install_property (gobject_class, + PROP_DRAW_TICKS, + g_param_spec_uint ("draw-ticks", + "Draw Ticks", + "Draw the Ticks: true or false", + FALSE, + TRUE, + TRUE, + G_PARAM_READWRITE)); + g_object_class_install_property (gobject_class, + PROP_DRAW_SUBTICKS, + g_param_spec_uint ("draw-subticks", + "Draw Subticks", + "Draw the subticks: true or false", + FALSE, + TRUE, + TRUE, + G_PARAM_READWRITE)); + g_object_class_install_property (gobject_class, + PROP_MANUAL_TICKS, + g_param_spec_pointer ("manual-ticks", + "Manual Ticks", + "Manually specify the tick locations", + G_PARAM_READWRITE)); + g_object_class_install_property (gobject_class, + PROP_MANUAL_TICK_CNT, + g_param_spec_uint ("manual-tick-cnt", + "Manual Tick Count", + "The number of manual ticks in the manual_tick array: horizontal or vertical", + 0, + G_MAXUINT, + 0, + G_PARAM_READWRITE)); + g_object_class_install_property (gobject_class, + PROP_MANUAL_TICK_LABELS, + g_param_spec_pointer ("manual-tick-labels", + "Manual Tick Labels", + "Manually specify the tick labels", + G_PARAM_READWRITE)); + g_object_class_install_property (gobject_class, + PROP_INVERT_EDGE, + g_param_spec_uint ("invert-edge", + "Invert Edge", + "Invert the Edge - the edge is drawn inverted: true or false", + FALSE, + TRUE, + FALSE, + G_PARAM_READWRITE)); + g_object_class_install_property (gobject_class, + PROP_LINEAR_LABEL_FORMAT, + g_param_spec_string ("linear-label-format", + "Linear Label Format", + "Linear Label format mark up strings: marked up formatting strings for linear labels (i.e. \"%%-+%dg\")", + LINEAR_FORMAT_MARKUP, + G_PARAM_READWRITE)); + g_object_class_install_property (gobject_class, + PROP_LOG_LABEL_FORMAT, + g_param_spec_string ("log-label-format", + "Log Label Format", + "Log Label format mark up strings: marked up formatting strings for log labels (i.e. \"%%-%dg\")", + LOG_FORMAT_MARKUP, + G_PARAM_READWRITE)); + g_object_class_install_property (gobject_class, + PROP_BOX_SHADOW, + g_param_spec_uint ("box-shadow", + "Box Shadow", + "Style of the box shadow: GTK_SHADOW_NONE, GTK_SHADOW_IN, GTK_SHADOW_OUT, GTK_SHADOW_ETCHED_IN, GTK_SHADOW_ETCHED_OUT", + GTK_SHADOW_NONE, + GTK_SHADOW_ETCHED_OUT, + GTK_SHADOW_OUT, + G_PARAM_READWRITE)); +} + +static void +gtk_databox_ruler_init (GtkDataboxRuler * ruler) { + ruler->priv = g_new0 (GtkDataboxRulerPrivate, 1); + ruler->priv->backing_surface = NULL; + ruler->priv->xsrc = 0; + ruler->priv->ysrc = 0; + ruler->priv->lower = 0; + ruler->priv->upper = 0; + ruler->priv->position = 0; + ruler->priv->draw_position = TRUE; + ruler->priv->max_length = 6; + ruler->priv->scale_type = GTK_DATABOX_SCALE_LINEAR; + ruler->priv->orientation = GTK_ORIENTATION_HORIZONTAL; + ruler->priv->text_orientation = GTK_ORIENTATION_VERTICAL; + ruler->priv->text_hoffset=0; + ruler->priv->max_x_text_height = 0; + ruler->priv->max_y_text_width = 0; + ruler->priv->draw_ticks = TRUE; + ruler->priv->draw_subticks = TRUE; + ruler->priv->invert_edge = FALSE; + g_stpcpy(ruler->priv->linear_format, LINEAR_FORMAT_MARKUP); + g_stpcpy(ruler->priv->log_format, LOG_FORMAT_MARKUP); + ruler->priv->manual_ticks=NULL; + ruler->priv->manual_tick_cnt=0; + ruler->priv->manual_tick_labels=NULL; + ruler->priv->box_shadow=GTK_SHADOW_OUT; +} + +/** + * gtk_databox_ruler_new: + * @orientation: orientation of the ruler + * + * Creates a new #GtkDataboxRuler widget with the given @orientation (horizontal or vertical). + * + * Return value: A new #GtkDataboxRuler + **/ +GtkWidget * +gtk_databox_ruler_new (GtkOrientation orientation) { + return g_object_new (GTK_DATABOX_TYPE_RULER, "orientation", orientation, + NULL); +} + +static gint +gtk_databox_ruler_motion_notify (GtkWidget * widget, GdkEventMotion * event) { + GtkDataboxRuler *ruler; + gint x; + gint y; + GtkAllocation allocation; + + ruler = GTK_DATABOX_RULER (widget); + gtk_widget_get_allocation(widget, &allocation); + + if (gtk_databox_ruler_get_draw_position (ruler)) { + + if (event->is_hint) { + gdk_window_get_device_position (gtk_widget_get_window(widget), event->device, &x, &y, NULL); + } else { + x = event->x; + y = event->y; + } + + if (ruler->priv->orientation == GTK_ORIENTATION_HORIZONTAL) + ruler->priv->position = + ruler->priv->lower + + ((ruler->priv->upper - ruler->priv->lower) * x) / allocation.width; + else + ruler->priv->position = + ruler->priv->lower + + ((ruler->priv->upper - ruler->priv->lower) * y) / allocation.height; + + g_object_notify (G_OBJECT (ruler), "position"); + + /* Make sure the ruler has been allocated already */ + if (ruler->priv->backing_surface != NULL) + if (ruler->priv->draw_position) + gtk_databox_ruler_draw_pos (ruler); + } + return FALSE; +} + +static void +gtk_databox_ruler_set_property (GObject * object, + guint prop_id, + const GValue * value, GParamSpec * pspec) { + GtkDataboxRuler *ruler = GTK_DATABOX_RULER (object); + + switch (prop_id) { + case PROP_LOWER: + gtk_databox_ruler_set_range (ruler, g_value_get_double (value), + ruler->priv->upper, ruler->priv->position); + break; + case PROP_UPPER: + gtk_databox_ruler_set_range (ruler, ruler->priv->lower, + g_value_get_double (value), + ruler->priv->position); + break; + case PROP_POSITION: + gtk_databox_ruler_set_range (ruler, ruler->priv->lower, ruler->priv->upper, + g_value_get_double (value)); + break; + case PROP_DRAW_POSITION: + gtk_databox_ruler_set_draw_position (ruler, (gboolean) g_value_get_boolean (value)); + break; + case PROP_MAX_LENGTH: + gtk_databox_ruler_set_max_length (ruler, g_value_get_uint (value)); + break; + case PROP_ORIENTATION: + gtk_databox_ruler_set_orientation (ruler, (GtkOrientation) g_value_get_uint (value)); + break; + case PROP_TEXT_ORIENTATION: + gtk_databox_ruler_set_text_orientation (ruler, (GtkOrientation) g_value_get_uint (value)); + break; + case PROP_TEXT_ALIGNMENT: + gtk_databox_ruler_set_text_alignment (ruler, (GtkOrientation) g_value_get_uint (value)); + break; + case PROP_TEXT_HOFFSET: + gtk_databox_ruler_set_text_hoffset (ruler, (GtkOrientation) g_value_get_uint (value)); + break; + case PROP_DRAW_TICKS: + gtk_databox_ruler_set_draw_ticks (ruler, (gboolean) g_value_get_boolean (value)); + break; + case PROP_DRAW_SUBTICKS: + gtk_databox_ruler_set_draw_subticks (ruler, (gboolean) g_value_get_boolean (value)); + break; + case PROP_MANUAL_TICKS: + gtk_databox_ruler_set_manual_ticks (ruler, (gfloat *) g_value_get_pointer (value)); + break; + case PROP_MANUAL_TICK_CNT: + gtk_databox_ruler_set_manual_tick_cnt (ruler, g_value_get_uint (value)); + break; + case PROP_MANUAL_TICK_LABELS: + gtk_databox_ruler_set_manual_tick_labels (ruler, (gchar **) g_value_get_pointer (value)); + break; + case PROP_INVERT_EDGE: + gtk_databox_ruler_set_invert_edge (ruler, (gboolean) g_value_get_boolean (value)); + break; + case PROP_LINEAR_LABEL_FORMAT: + gtk_databox_ruler_set_linear_label_format (ruler, (gchar *) g_value_get_string (value)); + break; + case PROP_LOG_LABEL_FORMAT: + gtk_databox_ruler_set_log_label_format (ruler, (gchar *) g_value_get_string (value)); + break; + case PROP_BOX_SHADOW: + gtk_databox_ruler_set_box_shadow (ruler, (GtkShadowType) g_value_get_uint (value)); + break; + default: + G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec); + break; + } +} + +static void +gtk_databox_ruler_get_property (GObject * object, + guint prop_id, + GValue * value, GParamSpec * pspec) { + GtkDataboxRuler *ruler = GTK_DATABOX_RULER (object); + + switch (prop_id) { + case PROP_LOWER: + g_value_set_double (value, ruler->priv->lower); + break; + case PROP_UPPER: + g_value_set_double (value, ruler->priv->upper); + break; + case PROP_POSITION: + g_value_set_double (value, ruler->priv->position); + break; + case PROP_DRAW_POSITION: + g_value_set_boolean (value, ruler->priv->draw_position); + break; + case PROP_MAX_LENGTH: + g_value_set_uint (value, ruler->priv->max_length); + break; + case PROP_ORIENTATION: + g_value_set_uint (value, ruler->priv->orientation); + break; + case PROP_TEXT_ORIENTATION: + g_value_set_uint (value, ruler->priv->text_orientation); + break; + case PROP_TEXT_ALIGNMENT: + g_value_set_uint (value, ruler->priv->text_alignment); + break; + case PROP_TEXT_HOFFSET: + g_value_set_uint (value, ruler->priv->text_hoffset); + break; + case PROP_DRAW_TICKS: + g_value_set_boolean (value, ruler->priv->draw_ticks); + break; + case PROP_DRAW_SUBTICKS: + g_value_set_boolean (value, ruler->priv->draw_subticks); + break; + case PROP_MANUAL_TICKS: + g_value_set_pointer (value, ruler->priv->manual_ticks); + break; + case PROP_MANUAL_TICK_CNT: + g_value_set_uint (value, ruler->priv->manual_tick_cnt); + break; + case PROP_MANUAL_TICK_LABELS: + g_value_set_pointer (value, ruler->priv->manual_tick_labels); + break; + case PROP_INVERT_EDGE: + g_value_set_boolean (value, ruler->priv->invert_edge); + break; + case PROP_LINEAR_LABEL_FORMAT: + g_value_set_string (value, ruler->priv->linear_format); + break; + case PROP_LOG_LABEL_FORMAT: + g_value_set_string (value, ruler->priv->log_format); + break; + case PROP_BOX_SHADOW: + g_value_set_uint (value, ruler->priv->box_shadow); + break; + default: + G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec); + break; + } +} + +/** + * gtk_databox_ruler_set_range: + * @ruler: a #GtkDataboxRuler + * @lower: lower limit of the ruler + * @upper: upper limit of the ruler + * @position: current position of the mark on the ruler + * + * Sets values indicating the range and current position of a #GtkDataboxRuler. + * + * See gtk_databox_ruler_get_range(). + **/ +void +gtk_databox_ruler_set_range (GtkDataboxRuler * ruler, + gdouble lower, gdouble upper, gdouble position) { + g_return_if_fail (GTK_DATABOX_IS_RULER (ruler)); + + g_object_freeze_notify (G_OBJECT (ruler)); + if (ruler->priv->lower != lower) { + ruler->priv->lower = lower; + g_object_notify (G_OBJECT (ruler), "lower"); + } + if (ruler->priv->upper != upper) { + ruler->priv->upper = upper; + g_object_notify (G_OBJECT (ruler), "upper"); + } + if (ruler->priv->position != position) { + ruler->priv->position = position; + g_object_notify (G_OBJECT (ruler), "position"); + } + g_object_thaw_notify (G_OBJECT (ruler)); + + if (gtk_widget_is_drawable (GTK_WIDGET (ruler))) + gtk_widget_queue_draw (GTK_WIDGET (ruler)); +} + +/** + * gtk_databox_ruler_set_max_length: + * @ruler: A #GtkDataboxRuler widget + * @max_length: Maximum length (digits) of tick labels + * + * This function sets the maximum number of digits to be used for each tick + * label of the @ruler. + * + * The @max_length cannot be smaller than 2 and not bigger than + * #GTK_DATABOX_RULER_MAX_MAX_LENGTH. + * + */ +void +gtk_databox_ruler_set_max_length (GtkDataboxRuler * ruler, guint max_length) { + g_return_if_fail (GTK_DATABOX_IS_RULER (ruler)); + g_return_if_fail (max_length < GTK_DATABOX_RULER_MAX_MAX_LENGTH + 1); + + g_object_freeze_notify (G_OBJECT (ruler)); + if (ruler->priv->max_length != max_length) { + ruler->priv->max_length = max_length; + g_object_notify (G_OBJECT (ruler), "max-length"); + } + g_object_thaw_notify (G_OBJECT (ruler)); + + if (gtk_widget_is_drawable (GTK_WIDGET (ruler))) + gtk_widget_queue_draw (GTK_WIDGET (ruler)); +} + +/** + * gtk_databox_ruler_set_scale_type: + * @ruler: A #GtkDataboxRuler widget + * @scale_type: The new scale type for @ruler (linear or logarithmic) + * + * This function sets the scale type of the @ruler. + * + */ +void +gtk_databox_ruler_set_scale_type (GtkDataboxRuler * ruler, + GtkDataboxScaleType scale_type) { + g_return_if_fail (GTK_DATABOX_IS_RULER (ruler)); + + if (ruler->priv->scale_type != scale_type) { + ruler->priv->scale_type = scale_type; + /* g_object_notify (G_OBJECT (ruler), "scale-type"); */ + } + + if (gtk_widget_is_drawable (GTK_WIDGET (ruler))) + gtk_widget_queue_draw (GTK_WIDGET (ruler)); +} + +/** + * gtk_databox_ruler_set_orientation: + * @ruler: a #GtkDataboxRuler + * @orientation: new orientation of the ruler + * + * Sets the orientation of the @ruler (horizontal or vertical). + **/ +void +gtk_databox_ruler_set_orientation (GtkDataboxRuler * ruler, + GtkOrientation orientation) { + GtkWidget *widget; + g_return_if_fail (GTK_DATABOX_IS_RULER (ruler)); + + if (ruler->priv->orientation != orientation) { + ruler->priv->orientation = orientation; + g_object_notify (G_OBJECT (ruler), "orientation"); + } + + widget = GTK_WIDGET (ruler); + + // get the padding + GtkRequisition gtkRequisition; + GtkStyleContext *context= gtk_widget_get_style_context (widget); + GtkBorder padding; + gtk_style_context_get_padding (context, gtk_widget_get_state_flags (widget), &padding); + + if (orientation == GTK_ORIENTATION_HORIZONTAL) { + gtkRequisition.width = (padding.left+padding.right) * 2 + 1; + gtkRequisition.height = (padding.top+padding.bottom) * 2 + RULER_SIZE; + } else { + gtkRequisition.height = (padding.top+padding.bottom) * 2 + 1; + if (ruler->priv->max_y_text_width==0) + gtkRequisition.width = (padding.left+padding.right) * 2 + RULER_SIZE; + else + gtkRequisition.width = (padding.left+padding.right) + ruler->priv->max_y_text_width; + } + gtk_widget_set_size_request(widget, gtkRequisition.width, gtkRequisition.height); + + if (gtk_widget_is_drawable (widget)) { + gtk_widget_queue_resize (widget); + gtk_widget_queue_draw (widget); + } +} + +static void gtk_databox_ruler_get_preferred_width (GtkWidget *widget, gint *minimal_width, gint *natural_width) +{ + GtkDataboxRuler *ruler = GTK_DATABOX_RULER (widget); + GtkOrientation orientation; + gint width; + GtkStyleContext *context= gtk_widget_get_style_context (widget); + GtkBorder padding; + gint xthickness; + gtk_style_context_get_padding (context, gtk_widget_get_state_flags (widget), &padding); + xthickness=padding.left+padding.right; + + orientation = ruler->priv->orientation; + + if (orientation == GTK_ORIENTATION_HORIZONTAL) { + width = xthickness * 2 + 1; + } + else + { + if (ruler->priv->max_y_text_width==0) + width = xthickness * 2 + RULER_SIZE; + else + width = ruler->priv->max_y_text_width; + } + *minimal_width = *natural_width = width; +} + +static void gtk_databox_ruler_get_preferred_height (GtkWidget *widget, gint *minimal_height, gint *natural_height) +{ + GtkDataboxRuler *ruler = GTK_DATABOX_RULER (widget); + GtkOrientation orientation; + gint height; + + GtkStyleContext *context= gtk_widget_get_style_context (widget); + GtkBorder padding; + gint ythickness; + gtk_style_context_get_padding (context, gtk_widget_get_state_flags (widget), &padding); + ythickness=padding.top+padding.bottom; + + orientation = ruler->priv->orientation; + + if (orientation == GTK_ORIENTATION_HORIZONTAL) { + height = ythickness * 2 + RULER_SIZE; + } else { + height = ythickness * 2 + 1; + } + *minimal_height = *natural_height = height; +} + + +/** + * gtk_databox_ruler_get_orientation: + * @ruler: a #GtkDataboxRuler + * + * Gets the orientation of the @ruler (horizontal or vertical). + * + * Return value: Orientation of the @ruler. + **/ +GtkOrientation +gtk_databox_ruler_get_orientation (GtkDataboxRuler * ruler) { + + g_return_val_if_fail (GTK_DATABOX_IS_RULER (ruler), -1); + + return ruler->priv->orientation; +} + +/** + * gtk_databox_ruler_set_text_orientation: + * @ruler: a #GtkDataboxRuler + * @orientation: new orientation of the tick marks in the vertical ruler + * + * Sets the text orientation of the @ruler (vertical). + **/ +void +gtk_databox_ruler_set_text_orientation (GtkDataboxRuler * ruler, + GtkOrientation orientation) { + GtkWidget *widget; + GtkRequisition gtkRequisition; + GtkStyleContext *context; + GtkBorder padding; + gint minimal_height, natural_height; + + g_return_if_fail (GTK_DATABOX_IS_RULER (ruler)); + + /* check this is a vertical ruler */ + if (ruler->priv->orientation != GTK_ORIENTATION_VERTICAL) + return; + + if (ruler->priv->text_orientation != orientation) { + ruler->priv->text_orientation = orientation; + g_object_notify (G_OBJECT (ruler), "text-orientation"); + } + + widget = GTK_WIDGET (ruler); + + // get the padding + context= gtk_widget_get_style_context (widget); + gtk_style_context_get_padding (context, gtk_widget_get_state_flags (widget), &padding); + gtk_databox_ruler_get_preferred_height (widget, &minimal_height, &natural_height); + gtkRequisition.height=natural_height; + if (ruler->priv->max_y_text_width==0) + gtkRequisition.width = (padding.left + padding.right) * 2 + RULER_SIZE; + else + gtkRequisition.width = ruler->priv->max_y_text_width; + gtk_widget_set_size_request(widget, gtkRequisition.width, gtkRequisition.height); + + if (gtk_widget_is_drawable (widget)) + { + gtk_widget_queue_draw (widget); + } +} + +/** + * gtk_databox_ruler_get_text_orientation: + * @ruler: a #GtkDataboxRuler + * + * Gets the text orientation of the @ruler (horizontal or vertical). + * Horizontal rulers always have horizontal text + * + * Return value: Text orientation of the @ruler. + **/ +GtkOrientation +gtk_databox_ruler_get_text_orientation (GtkDataboxRuler * ruler) { + + g_return_val_if_fail (GTK_DATABOX_IS_RULER (ruler), -1); + + return ruler->priv->text_orientation; +} + +/** + * gtk_databox_ruler_set_text_alignment: + * @ruler: a #GtkDataboxRuler + * @alignment: new alignment of the tick label in the vertical ruler when horizontal text is set + * + * Sets the text alignment of the @ruler (vertical with horizontal text). + **/ +void +gtk_databox_ruler_set_text_alignment (GtkDataboxRuler * ruler, + PangoAlignment alignment) { + g_return_if_fail (GTK_DATABOX_IS_RULER (ruler)); + + /* check this is a vertical ruler */ + if (ruler->priv->orientation != GTK_ORIENTATION_VERTICAL) + return; + + if (ruler->priv->text_alignment != alignment) { + ruler->priv->text_alignment = alignment; + g_object_notify (G_OBJECT (ruler), "text-alignment"); + } + + if (gtk_widget_is_drawable (GTK_WIDGET (ruler))) + gtk_widget_queue_draw (GTK_WIDGET (ruler)); +} + +/** + * gtk_databox_ruler_get_text_alignment: + * @ruler: a #GtkDataboxRuler + * + * Gets the text alignment of the @ruler (vertical). + * Vertical rulers with vertical text do not use this flag + * + * Return value: Text alignment of the @ruler. + **/ +PangoAlignment +gtk_databox_ruler_get_text_alignment (GtkDataboxRuler * ruler) { + + g_return_val_if_fail (GTK_DATABOX_IS_RULER (ruler), -1); + + return ruler->priv->text_alignment; +} + +/** + * gtk_databox_ruler_set_text_hoffset: + * @ruler: a #GtkDataboxRuler + * @offset: new x offset of the tick label in the ruler + * + * Sets the text x (horizontal) offset of the @ruler. + **/ +void +gtk_databox_ruler_set_text_hoffset (GtkDataboxRuler * ruler, + gint offset) { + g_return_if_fail (GTK_DATABOX_IS_RULER (ruler)); + + if (ruler->priv->text_hoffset != offset) { + ruler->priv->text_hoffset = offset; + g_object_notify (G_OBJECT (ruler), "text-hoffset"); + } + + if (gtk_widget_is_drawable (GTK_WIDGET (ruler))) + gtk_widget_queue_draw (GTK_WIDGET (ruler)); +} + +/** + * gtk_databox_ruler_get_text_hoffset: + * @ruler: a #GtkDataboxRuler + * + * Gets the text x (horizontal) offset of the @ruler. + * + * Return value: Text horizontal (x) offset of the @ruler. + **/ +gint +gtk_databox_ruler_get_text_hoffset (GtkDataboxRuler * ruler) { + + g_return_val_if_fail (GTK_DATABOX_IS_RULER (ruler), -1); + + return ruler->priv->text_hoffset; +} + +/** + * gtk_databox_ruler_set_draw_position: + * @ruler: a #GtkDataboxRuler + * @draw: whether to draw the position arrows on the ruler at all + * + * Sets the option for drawing the position arrows. If false, don't draw any arrows, + * If true draw arrows. + **/ +void +gtk_databox_ruler_set_draw_position(GtkDataboxRuler * ruler, gboolean draw) { + g_return_if_fail (GTK_DATABOX_IS_RULER (ruler)); + + if (ruler->priv->draw_position!= draw) { + ruler->priv->draw_position = draw; + g_object_notify (G_OBJECT (ruler), "draw-position"); + + if (gtk_widget_is_drawable (GTK_WIDGET (ruler))) + gtk_widget_queue_draw (GTK_WIDGET (ruler)); + } +} + +/** + * gtk_databox_ruler_get_draw_position: + * @ruler: a #GtkDataboxRuler + * + * Gets the draw position arrows option from the @ruler (horizontal or vertical). + * + * Return value: Position drawing option of the @ruler. + **/ +gboolean +gtk_databox_ruler_get_draw_position(GtkDataboxRuler * ruler) { + + g_return_val_if_fail (GTK_DATABOX_IS_RULER (ruler), -1); + + return ruler->priv->draw_position; +} + +/** + * gtk_databox_ruler_set_draw_ticks: + * @ruler: a #GtkDataboxRuler + * @draw: whether to draw the ticks on the ruler at all + * + * Sets the option for drawing the ticks. If false, don't draw any ticks, + * If true draw major ticks and subticks if the draw_subticks boolean is set. + **/ +void +gtk_databox_ruler_set_draw_ticks(GtkDataboxRuler * ruler, gboolean draw) { + g_return_if_fail (GTK_DATABOX_IS_RULER (ruler)); + + if (ruler->priv->draw_ticks!= draw) { + ruler->priv->draw_ticks = draw; + g_object_notify (G_OBJECT (ruler), "draw-ticks"); + + if (gtk_widget_is_drawable (GTK_WIDGET (ruler))) + gtk_widget_queue_draw (GTK_WIDGET (ruler)); + } +} + +/** + * gtk_databox_ruler_get_draw_ticks: + * @ruler: a #GtkDataboxRuler + * + * Gets the draw ticks option from the @ruler (horizontal or vertical). + * + * Return value: Tick drawing option of the @ruler. + **/ +gboolean +gtk_databox_ruler_get_draw_ticks(GtkDataboxRuler * ruler) { + + g_return_val_if_fail (GTK_DATABOX_IS_RULER (ruler), -1); + + return ruler->priv->draw_ticks; +} + +/** + * gtk_databox_ruler_set_draw_subticks: + * @ruler: a #GtkDataboxRuler + * @draw: whether to draw the subticks on the ruler + * + * Sets the option for drawing the subticks + **/ +void +gtk_databox_ruler_set_draw_subticks(GtkDataboxRuler * ruler, gboolean draw) { + g_return_if_fail (GTK_DATABOX_IS_RULER (ruler)); + + if (ruler->priv->draw_subticks!= draw) { + ruler->priv->draw_subticks = draw; + g_object_notify (G_OBJECT (ruler), "draw-subticks"); + + if (gtk_widget_is_drawable (GTK_WIDGET (ruler))) + gtk_widget_queue_draw (GTK_WIDGET (ruler)); + } +} + +/** + * gtk_databox_ruler_get_draw_subticks: + * @ruler: a #GtkDataboxRuler + * + * Gets the draw subticks option from the @ruler (horizontal or vertical). + * + * Return value: Subtick drawing option of the @ruler. + **/ +gboolean +gtk_databox_ruler_get_draw_subticks(GtkDataboxRuler * ruler) { + + g_return_val_if_fail (GTK_DATABOX_IS_RULER (ruler), -1); + + return ruler->priv->draw_subticks; +} + +/** + * gtk_databox_grid_set_manual_ticks: + * @ruler: a #GtkDataboxRuler + * @manual_ticks: sets the pointer to the hline values for the @ruler + * + * Sets the ticks for the @ruler (horizontal or vertical). + **/ +void +gtk_databox_ruler_set_manual_ticks (GtkDataboxRuler * ruler, gfloat *manual_ticks) { + g_return_if_fail (GTK_DATABOX_IS_RULER (ruler)); + + ruler->priv->manual_ticks = manual_ticks; + + g_object_notify (G_OBJECT(ruler), "manual-ticks"); +} + +/** + * gtk_databox_grid_get_manual_ticks: + * @ruler: a #GtkDataboxRuler + * + * Gets the pointer to the manual tick values for the @ruler. + * + * Return value: Pointer to the manual tick values for the @ruler. + **/ +gfloat* +gtk_databox_ruler_get_manual_ticks (GtkDataboxRuler * ruler) { + g_return_val_if_fail (GTK_DATABOX_IS_RULER (ruler), NULL); + + return ruler->priv->manual_ticks; +} + +/** + * gtk_databox_grid_set_manual_tick_cnt: + * @ruler: a #GtkDataboxRuler + * @manual_tick_cnt: sets the number of manual ticks for the @ruler + * + * Sets the number of manual ticks for the @ruler (horizontal or vertical). + **/ +void +gtk_databox_ruler_set_manual_tick_cnt (GtkDataboxRuler * ruler, guint manual_tick_cnt) { + g_return_if_fail (GTK_DATABOX_IS_RULER (ruler)); + + ruler->priv->manual_tick_cnt = manual_tick_cnt; + + g_object_notify (G_OBJECT(ruler), "manual-tick-cnt"); +} + +/** + * gtk_databox_grid_get_manual_tick_cnt: + * @ruler: a #GtkDataboxRuler + * + * Gets the number manual tick values for the @ruler. + * + * Return value: The number of manual tick values for the @ruler. + **/ +guint +gtk_databox_ruler_get_manual_tick_cnt (GtkDataboxRuler * ruler) { + g_return_val_if_fail (GTK_DATABOX_IS_RULER (ruler), -1); + + return ruler->priv->manual_tick_cnt; +} + +/** + * gtk_databox_grid_set_manual_tick_labels: + * @ruler: a #GtkDataboxRuler + * @manual_tick_labels: sets the pointer to the labels for the ticks on the @ruler + * + * Note: This function should be preceeded by calls to gtk_databox_ruler_set_manual_ticks() and gtk_databox_ruler_set_manual_tick_cnt(). + * The number of tick labels should match gtk_databox_ruler_get_manual_tick_cnt(). + * + * Sets the tick labels of the @ruler (horizontal or vertical). + **/ +void +gtk_databox_ruler_set_manual_tick_labels (GtkDataboxRuler * ruler, gchar **manual_tick_labels) { + g_return_if_fail (GTK_DATABOX_IS_RULER (ruler)); + + ruler->priv->manual_tick_labels = manual_tick_labels; + + g_object_notify (G_OBJECT(ruler), "manual-tick-labels"); +} + +/** + * gtk_databox_grid_get_manual_tick_labels: + * @ruler: a #GtkDataboxRuler + * + * Gets the pointer to the manual tick labels for the @ruler. + * + * Return value: Pointer to the manual tick labels for the @ruler. + **/ +gchar** +gtk_databox_ruler_get_manual_tick_labels (GtkDataboxRuler * ruler) { + g_return_val_if_fail (GTK_DATABOX_IS_RULER (ruler), NULL); + + return ruler->priv->manual_tick_labels; +} + +/** + * gtk_databox_ruler_set_invert_edge: + * @ruler: a #GtkDataboxRuler + * @invert: whether to draw the ruler detail with the edge inverted + * + * Sets the option for drawing the ruler detail on the opposite edge + **/ +void +gtk_databox_ruler_set_invert_edge(GtkDataboxRuler * ruler, gboolean invert) { + g_return_if_fail (GTK_DATABOX_IS_RULER (ruler)); + + if (ruler->priv->invert_edge!= invert) { + ruler->priv->invert_edge = invert; + g_object_notify (G_OBJECT (ruler), "invert-edge"); + + if (gtk_widget_is_drawable (GTK_WIDGET (ruler))) + gtk_widget_queue_draw (GTK_WIDGET (ruler)); + } +} + +/** + * gtk_databox_ruler_get_invert_edge: + * @ruler: a #GtkDataboxRuler + * + * Gets the invert edge option from the @ruler (horizontal or vertical). + * + * Return value: Edge inversion option of the @ruler. + **/ +gboolean +gtk_databox_ruler_get_invert_edge(GtkDataboxRuler * ruler) { + + g_return_val_if_fail (GTK_DATABOX_IS_RULER (ruler), -1); + + return ruler->priv->invert_edge; +} + +/** + * gtk_databox_ruler_set_linear_label_format: + * @ruler: a #GtkDataboxRuler + * @invert: How to format the labels for linear rulers + * + * Sets the meta format string for the labels of linear rulers, for example "%%+-%dg" will become "%+-#g" where # is the int variable + **/ +void +gtk_databox_ruler_set_linear_label_format(GtkDataboxRuler * ruler, gchar *format) { + g_return_if_fail (GTK_DATABOX_IS_RULER (ruler)); + + if (g_strcmp0(ruler->priv->linear_format, format)!=0) { + if (strlen(format)>FORMAT_LENGTH) { + g_warning("maximum format length = %d chars exceeded, truncating to the maximum from %d",FORMAT_LENGTH,(int)strlen(format)); + format[FORMAT_LENGTH]='\0'; + } + + g_stpcpy(ruler->priv->linear_format, format); + g_object_notify (G_OBJECT (ruler), "linear-label-format"); + + if (gtk_widget_is_drawable (GTK_WIDGET (ruler))) + gtk_widget_queue_draw (GTK_WIDGET (ruler)); + } +} + +/** + * gtk_databox_ruler_get_linear_label_format: + * @ruler: a #GtkDataboxRuler + * + * Gets the linear label meta format of the @ruler (horizontal or vertical). + * + * Return value: The string meta format the @ruler NULL on failure. + **/ +gchar* +gtk_databox_ruler_get_linear_label_format(GtkDataboxRuler * ruler) { + + g_return_val_if_fail (GTK_DATABOX_IS_RULER (ruler), NULL); + + return ruler->priv->linear_format; +} + +/** + * gtk_databox_ruler_set_log_label_format: + * @ruler: a #GtkDataboxRuler + * @invert: How to format the labels for log scaled rulers + * + * Sets the meta format string for the labels of log scaled rulers, for example "%%-%dg" will become "%-#g" where # is the int variable + **/ +void +gtk_databox_ruler_set_log_label_format(GtkDataboxRuler * ruler, gchar *format) { + g_return_if_fail (GTK_DATABOX_IS_RULER (ruler)); + + if (g_strcmp0(ruler->priv->log_format, format)!=0) { + if (strlen(format)>FORMAT_LENGTH) { + g_warning("maximum format length = %d chars exceeded, truncating to the maximum from %d",FORMAT_LENGTH,(int)strlen(format)); + format[FORMAT_LENGTH]='\0'; + } + + g_stpcpy(ruler->priv->log_format, format); + g_object_notify (G_OBJECT (ruler), "log-label-format"); + + if (gtk_widget_is_drawable (GTK_WIDGET (ruler))) + gtk_widget_queue_draw (GTK_WIDGET (ruler)); + } +} + +/** + * gtk_databox_ruler_get_log_label_format: + * @ruler: a #GtkDataboxRuler + * + * Gets the log label meta format of the @ruler (horizontal or vertical). + * + * Return value: The string meta format the @ruler, NULL on failure. + **/ +gchar* +gtk_databox_ruler_get_log_label_format(GtkDataboxRuler * ruler) { + + g_return_val_if_fail (GTK_DATABOX_IS_RULER (ruler), NULL); + + return ruler->priv->log_format; +} + +/** + * gtk_databox_ruler_get_range: + * @ruler: a #GtkDataboxRuler + * @lower: location to store lower limit of the ruler, or %NULL + * @upper: location to store upper limit of the ruler, or %NULL + * @position: location to store the current position of the mark on the ruler, or %NULL + * + * Retrieves values indicating the range and current position of a #GtkDataboxRuler. + * See gtk_databox_ruler_set_range(). + **/ +void +gtk_databox_ruler_get_range (GtkDataboxRuler * ruler, + gdouble * lower, + gdouble * upper, gdouble * position) { + g_return_if_fail (GTK_DATABOX_IS_RULER (ruler)); + + if (lower) + *lower = ruler->priv->lower; + if (upper) + *upper = ruler->priv->upper; + if (position) + *position = ruler->priv->position; +} + +/** + * gtk_databox_ruler_get_max_length: + * @ruler: A #GtkDataboxRuler widget + * + * This function returns the maximum number of digits to be used for each tick + * label of the @ruler. + * + * Return value: The maximum length of the tick labels. + * + */ +guint +gtk_databox_ruler_get_max_length (GtkDataboxRuler * ruler) { + g_return_val_if_fail (GTK_DATABOX_IS_RULER (ruler), 0); + + return ruler->priv->max_length; +} + +/** + * gtk_databox_ruler_get_scale_type: + * @ruler: A #GtkDataboxRuler widget + * + * This function returns the scale type of the @ruler (linear or logarithmic). + * + * Return value: The scale type (linear or logarithmic) + * + */ +GtkDataboxScaleType +gtk_databox_ruler_get_scale_type (GtkDataboxRuler * ruler) { + g_return_val_if_fail (GTK_DATABOX_IS_RULER (ruler), 0); + + return ruler->priv->scale_type; +} + +/** + * gtk_databox_ruler_set_box_shadow: + * @ruler: a #GtkDataboxRuler + * @which_shadow: How to render the box shadow on the ruler edges. + * + * Sets the shadow type when using gtk_paint_box. This will draw the desired edge shadow. + **/ +void +gtk_databox_ruler_set_box_shadow(GtkDataboxRuler * ruler, GtkShadowType which_shadow) { + g_return_if_fail (GTK_DATABOX_IS_RULER (ruler)); + g_return_if_fail (which_shadow<=GTK_SHADOW_ETCHED_OUT); + + if (ruler->priv->box_shadow!=which_shadow) { + ruler->priv->box_shadow=which_shadow; + if (gtk_widget_is_drawable (GTK_WIDGET (ruler))) + gtk_widget_queue_draw (GTK_WIDGET (ruler)); + } +} + +/** + * gtk_databox_ruler_get_box_shadow: + * @ruler: a #GtkDataboxRuler + * + * Gets the type of shadow being rendered to the @ruler (GTK_SHADOW_NONE, GTK_SHADOW_IN, GTK_SHADOW_OUT, GTK_SHADOW_ETCHED_IN, GTK_SHADOW_ETCHED_OUT). + * + * Return value: The currently used shadow type of the @ruler, -1 on failure. + **/ +GtkShadowType +gtk_databox_ruler_get_box_shadow(GtkDataboxRuler * ruler) { + + g_return_val_if_fail (GTK_DATABOX_IS_RULER (ruler), -1); + + return ruler->priv->box_shadow; +} + +static void +gtk_databox_ruler_draw_ticks (GtkDataboxRuler * ruler) { + GtkWidget *widget = GTK_WIDGET (ruler); + cairo_t *cr; + GtkStyleContext *stylecontext = gtk_widget_get_style_context (widget); + gint i; + gint width, height; + gint xthickness; + gint ythickness; + gint length; + gdouble lower, upper; /* Upper and lower limits */ + gdouble increment; /* pixel per value unit */ + gint power; + gint digit; + gdouble subd_incr; + gdouble start, end, cur, cur_text; + gchar unit_str[GTK_DATABOX_RULER_MAX_MAX_LENGTH + 1]; /* buffer for writing numbers */ + gint digit_width; + gint text_width; + gint pos; + gint y_loc, x_loc; + gint subtick_start; + gchar format_string[FORMAT_LENGTH]; + PangoMatrix matrix = PANGO_MATRIX_INIT; + PangoContext *context; + PangoLayout *layout; + PangoRectangle logical_rect, ink_rect; + GtkAllocation allocation; + GdkRGBA fg_color, bg_color; + + GtkBorder padding; + gtk_style_context_get_padding (stylecontext, gtk_widget_get_state_flags (widget), &padding); + xthickness=padding.left+padding.right; + ythickness=padding.top+padding.bottom; + + if (ruler->priv->scale_type == GTK_DATABOX_SCALE_LINEAR) + if (ruler->priv->max_length==1) + g_snprintf (format_string, FORMAT_LENGTH, ruler->priv->linear_format, ruler->priv->max_length); + else + g_snprintf (format_string, FORMAT_LENGTH, ruler->priv->linear_format, ruler->priv->max_length - 1); + else if (ruler->priv->max_length==1) + g_snprintf (format_string, FORMAT_LENGTH, ruler->priv->log_format, ruler->priv->max_length); + else + g_snprintf (format_string, FORMAT_LENGTH, ruler->priv->log_format, ruler->priv->max_length - 1); + + if (!gtk_widget_is_drawable (GTK_WIDGET (ruler))) + return; + + gtk_widget_get_allocation(widget, &allocation); + stylecontext = gtk_widget_get_style_context(widget); + + layout = gtk_widget_create_pango_layout (widget, "E+-012456789"); + + if ((ruler->priv->orientation == GTK_ORIENTATION_VERTICAL) && (ruler->priv->text_orientation == GTK_ORIENTATION_VERTICAL)) { + /* vertical ruler with vertical text */ + context = gtk_widget_get_pango_context (widget); + pango_context_set_base_gravity (context, PANGO_GRAVITY_WEST); + pango_matrix_rotate (&matrix, 90.); + pango_context_set_matrix (context, &matrix); + pango_layout_context_changed(layout); + } + + pango_layout_get_pixel_extents (layout, &ink_rect, &logical_rect); + + digit_width = ceil ((logical_rect.width) / 12); + + width = allocation.width; + height = allocation.height; + + cr = cairo_create(ruler->priv->backing_surface); + gtk_style_context_get_background_color(stylecontext, GTK_STATE_FLAG_NORMAL, &bg_color); + gdk_cairo_set_source_rgba (cr, &bg_color); + cairo_paint(cr); + + gtk_style_context_get_color(stylecontext, GTK_STATE_FLAG_NORMAL, &fg_color); + gdk_cairo_set_source_rgba (cr, &fg_color); + + gtk_render_frame(stylecontext, cr, 0.0, 0.0, width, height); + + /* only draw the bottom line IF we are drawing ticks */ + if (ruler->priv->draw_ticks) { + if (ruler->priv->orientation == GTK_ORIENTATION_HORIZONTAL) { + cairo_rectangle (cr, 0, height - ythickness, width, ythickness); + } + else { + cairo_rectangle (cr, width-xthickness, 0, xthickness, height); + } + } + + if (ruler->priv->scale_type == GTK_DATABOX_SCALE_LINEAR) { + upper = ruler->priv->upper; + lower = ruler->priv->lower; + } else if (ruler->priv->scale_type == GTK_DATABOX_SCALE_LOG2) { + if (ruler->priv->upper <= 0 || ruler->priv->lower <= 0) { + g_warning + ("For logarithmic scaling, the visible limits must by larger than 0!"); + } + upper = log2 (ruler->priv->upper); + lower = log2 (ruler->priv->lower); + } else { + if (ruler->priv->upper <= 0 || ruler->priv->lower <= 0) { + g_warning + ("For logarithmic scaling, the visible limits must by larger than 0!"); + } + upper = log10 (ruler->priv->upper); + lower = log10 (ruler->priv->lower); + } + + if ((upper - lower) == 0) + goto out; + + if (ruler->priv->orientation == GTK_ORIENTATION_HORIZONTAL) + increment = (gdouble) width / (upper - lower); + else + increment = (gdouble) height / (upper - lower); + + + /* determine the scale, i.e. the distance between the most significant ticks + * + * the ticks have to be farther apart than the length of the displayed numbers + */ + if (ruler->priv->scale_type == GTK_DATABOX_SCALE_LINEAR) { + text_width = (ruler->priv->max_length) * digit_width + 1; + + for (power = -20; power < 21; power++) { + if ((digit = 1) * pow (10, power) * fabs (increment) > text_width) + break; + if ((digit = 2.5) * pow (10, power) * fabs (increment) > text_width) + break; + if ((digit = 5) * pow (10, power) * fabs (increment) > text_width) + break; + } + + + if (power == 21) { + power = 20; + digit = 5; + } + subd_incr = digit * pow (10, power); + } else if (ruler->priv->scale_type == GTK_DATABOX_SCALE_LOG2) { + subd_incr = 1.; + } else { + subd_incr = 1.; + } + + length = (ruler->priv->orientation == GTK_ORIENTATION_HORIZONTAL) + ? height - 5 : width - 5; + + if (ruler->priv->manual_ticks==NULL) + if (lower < upper) { + start = floor (lower / subd_incr) * subd_incr; + end = ceil (upper / subd_incr) * subd_incr; + } else { + start = floor (upper / subd_incr) * subd_incr; + end = ceil (lower / subd_incr) * subd_incr; + } + else { /* we are manually setting the tick labels and marks. */ + start = 0.; + end = (gfloat)ruler->priv->manual_tick_cnt-1; + subd_incr=1.; + } + + + for (cur = start; cur <= end; cur += subd_incr) { + if (ruler->priv->manual_ticks==NULL) + pos = ROUND (((cur_text=cur) - lower) * increment); + else { + /* manual ticks must be positioned according to the scale */ + if (ruler->priv->scale_type == GTK_DATABOX_SCALE_LINEAR) + cur_text=ruler->priv->manual_ticks[(int)cur]; + else if (ruler->priv->scale_type == GTK_DATABOX_SCALE_LOG2) + cur_text=log2(ruler->priv->manual_ticks[(int)cur]); + else + cur_text=log10(ruler->priv->manual_ticks[(int)cur]); + pos = ROUND ((cur_text - lower) * increment); + cur_text=ruler->priv->manual_ticks[(int)cur]; + } + /*draw main ticks*/ + if (ruler->priv->draw_ticks) { + if (ruler->priv->orientation == GTK_ORIENTATION_HORIZONTAL) + cairo_rectangle (cr, pos, height + ythickness - length, 1, length); + else + cairo_rectangle (cr, width + xthickness - length, pos, length, 1); + } + + + /* draw label */ + /* if manual tick labels are present, display them instead of calculated labels */ + if ((ruler->priv->manual_ticks!=NULL) && (ruler->priv->manual_tick_cnt!=0) && (ruler->priv->manual_tick_labels!=NULL)) + pango_layout_set_text (layout, ruler->priv->manual_tick_labels[(int)cur], -1); + else { + if ((ruler->priv->scale_type == GTK_DATABOX_SCALE_LINEAR) || (ruler->priv->manual_ticks!=NULL)) { + if (ABS (cur_text) < 0.1 * subd_incr) /* Rounding errors occur and might make "0" look funny without this check */ + cur_text = 0; + + g_snprintf (unit_str, ruler->priv->max_length + 1, format_string, cur_text); + } else if (ruler->priv->scale_type == GTK_DATABOX_SCALE_LOG2) + g_snprintf (unit_str, ruler->priv->max_length + 1, format_string, pow (2, cur_text)); + else + g_snprintf (unit_str, ruler->priv->max_length + 1, format_string, pow (10, cur_text)); + + pango_layout_set_text (layout, unit_str, -1); + } + pango_layout_get_pixel_extents (layout, &ink_rect, &logical_rect); + + /* remember the pixel extents for sizing later. */ + if ((ruler->priv->orientation == GTK_ORIENTATION_VERTICAL) & (ruler->priv->max_y_text_widthpriv->text_orientation ==GTK_ORIENTATION_VERTICAL) + ruler->priv->max_y_text_width=logical_rect.height; + else + ruler->priv->max_y_text_width=logical_rect.width; + gtk_widget_set_size_request(GTK_WIDGET(ruler), ruler->priv->max_y_text_width, ruler->priv->max_x_text_height); + } else if (ruler->priv->max_x_text_heightpriv->max_x_text_height=logical_rect.height; + gtk_widget_set_size_request(GTK_WIDGET(ruler), ruler->priv->max_y_text_width, ruler->priv->max_x_text_height); + } + + + + if (ruler->priv->orientation == GTK_ORIENTATION_HORIZONTAL){ + if (!ruler->priv->draw_ticks) /* if ticks aren't present, draw a little lower */ + pos=pos - logical_rect.width+2+ruler->priv->text_hoffset; + gtk_render_layout(stylecontext, cr, pos + 2, ythickness - 1, layout); + } else { + y_loc=pos - logical_rect.width - 2; /* standard vertical text y alignment */ + /*y_loc=pos-2;*/ /* standard vertical text y alignment */ + if (ruler->priv->text_orientation == GTK_ORIENTATION_HORIZONTAL) /* if ticks are present, then draw a little higher */ + y_loc=pos - logical_rect.width*2/3; /* horizontal text y alignment */ + if ((ruler->priv->text_orientation == GTK_ORIENTATION_HORIZONTAL) & (!ruler->priv->draw_ticks)) /* if ticks aren't present, draw a little lower */ + y_loc=pos - logical_rect.width/3; + + x_loc=xthickness-1+ruler->priv->text_hoffset; + if ((ruler->priv->text_orientation == GTK_ORIENTATION_HORIZONTAL) & (ruler->priv->text_alignment == PANGO_ALIGN_RIGHT)) /* set right adjusted text */ + x_loc=width-ink_rect.width-2+ruler->priv->text_hoffset; /* shift 2 pixels left to give a better aesthetic */ + if ((ruler->priv->text_orientation == GTK_ORIENTATION_HORIZONTAL) & (ruler->priv->text_alignment == PANGO_ALIGN_CENTER)) /* set centrally adjusted text */ + x_loc=(width-ink_rect.width)/2-2+ruler->priv->text_hoffset; + gtk_render_layout(stylecontext, cr, x_loc, y_loc, layout); + } + + /* Draw sub-ticks */ + if (ruler->priv->draw_subticks & ruler->priv->draw_ticks) { + if (!ruler->priv->invert_edge) /* sub-ticks on the bottom */ + subtick_start=length / 2; + else + subtick_start=length; + + if (ruler->priv->scale_type == GTK_DATABOX_SCALE_LINEAR) + for (i = 1; i < 5; ++i) { + pos = ROUND ((cur - lower + subd_incr / 5 * i) * increment); + + if (ruler->priv->orientation == GTK_ORIENTATION_HORIZONTAL) + cairo_rectangle (cr, pos, height + ythickness - subtick_start, 1, length / 2); + else + cairo_rectangle (cr, width + xthickness - subtick_start, pos, length / 2, 1); + } + else if (ruler->priv->scale_type == GTK_DATABOX_SCALE_LOG2) + for (i = 1; i < 8; ++i) { + pos = ROUND ((cur - lower + log2 (i)) * increment); + + if (ruler->priv->orientation == GTK_ORIENTATION_HORIZONTAL) + cairo_rectangle (cr, pos, height + ythickness - subtick_start, 1, length / 2); + else + cairo_rectangle (cr, width + xthickness - subtick_start, pos, length / 2, 1); + } + else + for (i = 2; i < 10; ++i) { + pos = ROUND ((cur - lower + log10 (i)) * increment); + + if (ruler->priv->orientation == GTK_ORIENTATION_HORIZONTAL) + cairo_rectangle (cr, pos, height + ythickness - subtick_start, 1, length / 2); + else + cairo_rectangle (cr, width + xthickness - subtick_start, pos, length / 2, 1); + } + } + } + + cairo_fill (cr); +out: + cairo_destroy (cr); + + g_object_unref (layout); +} + +static void +gtk_databox_ruler_draw_pos (GtkDataboxRuler * ruler) { + GtkWidget *widget = GTK_WIDGET (ruler); + GtkStyleContext *stylecontext = gtk_widget_get_style_context(widget); + gint x, y; + gint width, height; + gint bs_width, bs_height; + gint ythickness; + gdouble increment; + cairo_t *cr; + GtkAllocation allocation; + GdkRGBA fg_color; + + GtkStyleContext *context= gtk_widget_get_style_context (widget); + GtkBorder padding; + gint xthickness; + gtk_style_context_get_padding (context, gtk_widget_get_state_flags (widget), &padding); + xthickness=padding.left+padding.right; + ythickness=padding.top+padding.bottom; + + if (gtk_widget_is_drawable (widget)) { + gtk_widget_get_allocation(widget, &allocation); + width = allocation.width - xthickness * 2; + height = allocation.height - ythickness * 2; + + if (ruler->priv->orientation == GTK_ORIENTATION_HORIZONTAL) { + bs_width = height / 2 + 2; + bs_width |= 1; /* make sure it's odd */ + bs_height = bs_width / 2 + 1; + if (ruler->priv->invert_edge) + bs_height=-bs_height; + } else { + bs_height = width / 2 + 2; + bs_height |= 1; /* make sure it's odd */ + bs_width = bs_height / 2 + 1; + if (ruler->priv->invert_edge) + bs_width=-bs_width; + } + + if (!ruler->priv->invert_edge && (bs_width < 0) && (bs_height < 0)) + return; /* return if negative values and not inverted */ + + if (ruler->priv->invert_edge && (bs_width > 0) && (bs_height > 0)) + return; /* return if positive values and inverted */ + + cr = gdk_cairo_create (gtk_widget_get_window(widget)); + + /* If a backing store exists, restore the ruler */ + if (ruler->priv->backing_surface) + { +/* TODO: HERE WE SHOULD REALLY CLIP THIS TO THE RECTANGLE OF THE ARROW */ + cairo_set_source_surface(cr, ruler->priv->backing_surface, 0, 0); + cairo_paint(cr); + } + + gtk_style_context_get_color(stylecontext, gtk_style_context_get_state(stylecontext), &fg_color); + if (ruler->priv->orientation == GTK_ORIENTATION_HORIZONTAL) { + increment = (gdouble) width / (ruler->priv->upper - ruler->priv->lower); + + x = ROUND ((ruler->priv->position - ruler->priv->lower) * increment) + + (xthickness - bs_width) / 2 - 1; + y = (height + bs_height) / 2 + ythickness; + + gdk_cairo_set_source_rgba (cr, &fg_color); + + cairo_move_to (cr, x, y); + cairo_line_to (cr, x + bs_width / 2., y + bs_height); + cairo_line_to (cr, x + bs_width, y); + } else { + increment = (gdouble) height / (ruler->priv->upper - ruler->priv->lower); + + x = (width + bs_width) / 2 + xthickness; + y = ROUND ((ruler->priv->position - ruler->priv->lower) * increment) + + (ythickness - bs_height) / 2 - 1; + + gdk_cairo_set_source_rgba (cr, &fg_color); + + cairo_move_to (cr, x, y); + cairo_line_to (cr, x + bs_width, y + bs_height / 2.); + cairo_line_to (cr, x, y + bs_height); + } + cairo_fill (cr); + + cairo_destroy (cr); + + /* remember the rectangle of the arrow - so that it may be cleared on re-run */ + ruler->priv->xsrc = x; + ruler->priv->ysrc = y; + if (ruler->priv->invert_edge) { /* inverted edges need clearing in the negative direction */ + if (ruler->priv->orientation == GTK_ORIENTATION_HORIZONTAL) + ruler->priv->ysrc = y+bs_height; /* bs_height is negative */ + else + ruler->priv->xsrc = x+bs_width; /* bs_width is negative */ + } + } +} + + +static void +gtk_databox_ruler_realize (GtkWidget * widget) { + GtkDataboxRuler *ruler; + GdkWindowAttr attributes; + gint attributes_mask; + GtkAllocation allocation; + GtkStyleContext *stylecontext; + + ruler = GTK_DATABOX_RULER (widget); + gtk_widget_set_realized(GTK_WIDGET (ruler), TRUE); + gtk_widget_get_allocation(widget, &allocation); + + attributes.window_type = GDK_WINDOW_CHILD; + attributes.x = allocation.x; + attributes.y = allocation.y; + attributes.width = allocation.width; + attributes.height = allocation.height; + attributes.wclass = GDK_INPUT_OUTPUT; + attributes.visual = gtk_widget_get_visual (widget); + attributes.event_mask = gtk_widget_get_events (widget); + attributes.event_mask |= (GDK_EXPOSURE_MASK | + GDK_POINTER_MOTION_MASK | + GDK_POINTER_MOTION_HINT_MASK); + + attributes_mask = GDK_WA_X | GDK_WA_Y | GDK_WA_VISUAL; + + gtk_widget_set_window(widget, + gdk_window_new (gtk_widget_get_parent_window (widget), &attributes, + attributes_mask)); + gdk_window_set_user_data (gtk_widget_get_window(widget), ruler); + + stylecontext = gtk_widget_get_style_context(widget); + + gtk_style_context_add_class(stylecontext, GTK_STYLE_CLASS_BACKGROUND); + + gtk_style_context_set_background(stylecontext, gtk_widget_get_window(widget)); + + gtk_databox_ruler_create_backing_surface (ruler); +} + +static void +gtk_databox_ruler_unrealize (GtkWidget * widget) { + GtkDataboxRuler *ruler = GTK_DATABOX_RULER (widget); + gtk_widget_set_realized(widget, FALSE); + + if (ruler->priv->backing_surface) + cairo_surface_destroy (ruler->priv->backing_surface); + ruler->priv->backing_surface=NULL; + + if (GTK_WIDGET_CLASS (gtk_databox_ruler_parent_class)->unrealize) + (*GTK_WIDGET_CLASS (gtk_databox_ruler_parent_class)->unrealize) (widget); +} + +static void +gtk_databox_ruler_size_allocate (GtkWidget * widget, + GtkAllocation * allocation) { + GtkDataboxRuler *ruler = GTK_DATABOX_RULER (widget); + + gtk_widget_set_allocation(widget, allocation); + + if (gtk_widget_get_realized (widget)) + if (gtk_widget_is_drawable(widget)) { + gdk_window_move_resize (gtk_widget_get_window(widget), + allocation->x, allocation->y, + allocation->width, allocation->height); + + gtk_databox_ruler_create_backing_surface (ruler); + } +} + +static gint +gtk_databox_ruler_draw (GtkWidget * widget, cairo_t * cr){ + GtkDataboxRuler *ruler; + GtkAllocation allocation; + + if (gtk_widget_is_drawable (widget)) { + ruler = GTK_DATABOX_RULER (widget); + gtk_widget_get_allocation(widget, &allocation); + + gtk_databox_ruler_draw_ticks (ruler); + + if (ruler->priv->backing_surface) + { + cairo_set_source_surface(cr, ruler->priv->backing_surface, 0, 0); + cairo_paint(cr); + } + +/* TODO: draw_pos also blits the backing_surface to the window, should make it happen only once) */ + if (ruler->priv->draw_position) + gtk_databox_ruler_draw_pos (ruler); + } + + return FALSE; +} + +static void +gtk_databox_ruler_create_backing_surface (GtkDataboxRuler * ruler) { + GtkWidget *widget; + gint width; + gint height; + GtkAllocation allocation; + cairo_t *cr; + + widget = GTK_WIDGET (ruler); + gtk_widget_get_allocation(widget, &allocation); + width = allocation.width; + height = allocation.height; + + if (ruler->priv->backing_surface) { + if ((width == ruler->priv->old_width) && + (height == ruler->priv->old_height)) + return; + + cairo_surface_destroy(ruler->priv->backing_surface); + } + + ruler->priv->old_width = width; + ruler->priv->old_height = height; + + cr = gdk_cairo_create(gtk_widget_get_window(widget)); + + ruler->priv->backing_surface = cairo_surface_create_similar( + cairo_get_target(cr), + CAIRO_CONTENT_COLOR, + width, height); + + ruler->priv->xsrc = 0; + ruler->priv->ysrc = 0; +} + +#define __GTK_DATABOX_RULER_C__ diff -Nru klavaro-1.9.9/gtkdatabox/gtkdatabox_ruler.h klavaro-3.00/gtkdatabox/gtkdatabox_ruler.h --- klavaro-1.9.9/gtkdatabox/gtkdatabox_ruler.h 1970-01-01 00:00:00.000000000 +0000 +++ klavaro-3.00/gtkdatabox/gtkdatabox_ruler.h 2014-01-03 18:40:55.000000000 +0000 @@ -0,0 +1,180 @@ +/* $Id: gtkdatabox_ruler.h 4 2008-06-22 09:19:11Z rbock $ */ +/* GTK - The GIMP Toolkit + * Copyright (C) 1995-1997 Peter Mattis, Spencer Kimball and Josh MacDonald + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the + * Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, + * Boston, MA 02110-1301 USA. + */ + +/* + * Modified by the GTK+ Team and others 1997-2000. See the AUTHORS + * file for a list of people on the GTK+ Team. See the ChangeLog + * files for a list of changes. These files are distributed with + * GTK+ at ftp://ftp.gtk.org/pub/gtk/. + */ + +/* + * Modified by Roland Bock 2007 - 2008. + */ + +/** + * SECTION:gtkdatabox_ruler + * @short_description: An improved version of the #GtkRuler. + * @include: gtkdatabox_ruler.h + * @see_also: #GtkDatabox + * + * #GtkDataboxRuler is a widget for the GTK+ library similar to GtkRuler. + * + * It is improved in several ways: + * + * + * + * + * It supports linear and logarithmic scales. + * + * + * + * + * In the vertical orientation, the labels are rotated 90° (instead of being written + * as a vertical column of horizontal characters). This increases readability. + * + * + * + * + * It works for very small and very large value ranges. + * + * + * + **/ +#ifndef __GTK_DATABOX_RULER_H__ +#define __GTK_DATABOX_RULER_H__ + +#ifdef _MSC_VER +#define log2(x) (log(x)/log(2)) +#endif + +#include +#include +#include + +G_BEGIN_DECLS +#define GTK_DATABOX_TYPE_RULER (gtk_databox_ruler_get_type ()) +#define GTK_DATABOX_RULER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GTK_DATABOX_TYPE_RULER, GtkDataboxRuler)) +#define GTK_DATABOX_RULER_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GTK_DATABOX_TYPE_RULER, GtkDataboxRulerClass)) +#define GTK_DATABOX_IS_RULER(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GTK_DATABOX_TYPE_RULER)) +#define GTK_DATABOX_IS_RULER_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GTK_DATABOX_TYPE_RULER)) +#define GTK_DATABOX_RULER_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), GTK_DATABOX_TYPE_RULER, GtkDataboxRulerClass)) +/** + * GtkDataboxRuler: + * + * An improved version (see above) of GtkRuler which supports linear and logarithmic scales. + * + **/ +typedef struct _GtkDataboxRuler GtkDataboxRuler; +typedef struct _GtkDataboxRulerClass GtkDataboxRulerClass; + +/** + * GTK_DATABOX_RULER_MAX_MAX_LENGTH + * + * The maximum upper limit of label length in characters + */ +#define GTK_DATABOX_RULER_MAX_MAX_LENGTH 63 + +/** + * GtkDataboxRulerPrivate + * + * A private data structure used by the #GtkDataboxRuler. It shields all internal things + * from developers who are just using the object. + * + **/ + typedef struct _GtkDataboxRulerPrivate GtkDataboxRulerPrivate; + +struct _GtkDataboxRuler +{ + GtkWidget widget; + + GtkDataboxRulerPrivate *priv; +}; + +struct _GtkDataboxRulerClass +{ + GtkWidgetClass parent_class; +}; + + +GType +gtk_databox_ruler_get_type (void) + G_GNUC_CONST; + GtkWidget *gtk_databox_ruler_new (GtkOrientation orientation); + + void gtk_databox_ruler_set_range (GtkDataboxRuler * ruler, + gdouble lower, + gdouble upper, gdouble position); + void gtk_databox_ruler_set_max_length (GtkDataboxRuler * ruler, + guint max_length); + void gtk_databox_ruler_set_scale_type (GtkDataboxRuler * ruler, + guint scale_type); + + void gtk_databox_ruler_get_range (GtkDataboxRuler * ruler, + gdouble * lower, + gdouble * upper, gdouble * position); + guint gtk_databox_ruler_get_max_length (GtkDataboxRuler * ruler); + GtkDataboxScaleType gtk_databox_ruler_get_scale_type (GtkDataboxRuler * + ruler); + + void gtk_databox_ruler_set_orientation (GtkDataboxRuler * ruler, GtkOrientation orientation); + GtkOrientation gtk_databox_ruler_get_orientation (GtkDataboxRuler *ruler); + + void gtk_databox_ruler_set_text_orientation (GtkDataboxRuler * ruler, GtkOrientation orientation); + GtkOrientation gtk_databox_ruler_get_text_orientation (GtkDataboxRuler *ruler); + + void gtk_databox_ruler_set_text_alignment (GtkDataboxRuler * ruler, PangoAlignment alignment); + PangoAlignment gtk_databox_ruler_get_text_alignment (GtkDataboxRuler * ruler); + + void gtk_databox_ruler_set_text_hoffset (GtkDataboxRuler * ruler,gint offset); + gint gtk_databox_ruler_get_text_hoffset (GtkDataboxRuler * ruler); + + void gtk_databox_ruler_set_draw_ticks(GtkDataboxRuler * ruler, gboolean draw); + gboolean gtk_databox_ruler_get_draw_ticks(GtkDataboxRuler * ruler); + + void gtk_databox_ruler_set_draw_position(GtkDataboxRuler * ruler, gboolean draw); + gboolean gtk_databox_ruler_get_draw_position(GtkDataboxRuler * ruler); + + void gtk_databox_ruler_set_draw_subticks(GtkDataboxRuler * ruler, gboolean draw); + gboolean gtk_databox_ruler_get_draw_subticks(GtkDataboxRuler * ruler); + + void gtk_databox_ruler_set_invert_edge(GtkDataboxRuler * ruler, gboolean invert); + gboolean gtk_databox_ruler_get_invert_edge(GtkDataboxRuler * ruler); + + void gtk_databox_ruler_set_linear_label_format(GtkDataboxRuler * ruler, gchar *format); + void gtk_databox_ruler_set_log_label_format(GtkDataboxRuler * ruler, gchar *format); + + gchar* gtk_databox_ruler_get_linear_label_format(GtkDataboxRuler * ruler); + gchar* gtk_databox_ruler_get_log_label_format(GtkDataboxRuler * ruler); + + void gtk_databox_ruler_set_manual_ticks(GtkDataboxRuler * ruler, gfloat* manual_ticks); + gfloat* gtk_databox_ruler_get_manual_ticks(GtkDataboxRuler * ruler); + + void gtk_databox_ruler_set_manual_tick_cnt(GtkDataboxRuler * ruler, guint manual_tick_cnt); + guint gtk_databox_ruler_get_manual_tick_cnt(GtkDataboxRuler * ruler); + + void gtk_databox_ruler_set_manual_tick_labels(GtkDataboxRuler * ruler, gchar *labels[]); + gchar ** gtk_databox_ruler_get_manual_tick_labels(GtkDataboxRuler * ruler); + + void gtk_databox_ruler_set_box_shadow(GtkDataboxRuler * ruler, GtkShadowType which_shadow); + GtkShadowType gtk_databox_ruler_get_box_shadow(GtkDataboxRuler * ruler); + +G_END_DECLS +#endif /* __GTK_DATABOX_RULER_H__ */ diff -Nru klavaro-1.9.9/gtkdatabox/gtkdatabox_scale.c klavaro-3.00/gtkdatabox/gtkdatabox_scale.c --- klavaro-1.9.9/gtkdatabox/gtkdatabox_scale.c 1970-01-01 00:00:00.000000000 +0000 +++ klavaro-3.00/gtkdatabox/gtkdatabox_scale.c 2014-01-03 18:40:55.000000000 +0000 @@ -0,0 +1,40 @@ +/* $Id: gtkdatabox_scale.c 4 2008-06-22 09:19:11Z rbock $ */ +/* GtkDatabox - An extension to the gtk+ library + * Copyright (C) 1998 - 2008 Dr. Roland Bock + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public License + * as published by the Free Software Foundation; either version 2.1 + * of the License, or (at your option) any later version. + * + * 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 Lesser 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., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + */ + +#include + +GType +gtk_databox_scale_type_get_type (void) +{ + static GType type = 0; + + if (type == 0) + { + static const GEnumValue values[] = { + { GTK_DATABOX_SCALE_LINEAR, "GTK_DATABOX_SCALE_LINEAR", "linear" }, + { GTK_DATABOX_SCALE_LOG, "GTK_DATABOX_SCALE_LOG", "log" }, + { GTK_DATABOX_SCALE_LOG2, "GTK_DATABOX_SCALE_LOG2", "log2" }, + { 0, NULL, NULL }}; + type = g_enum_register_static (g_intern_static_string ("GtkDataboxScaleType"), values); + } + + return type; +} + + diff -Nru klavaro-1.9.9/gtkdatabox/gtkdatabox_scale.h klavaro-3.00/gtkdatabox/gtkdatabox_scale.h --- klavaro-1.9.9/gtkdatabox/gtkdatabox_scale.h 1970-01-01 00:00:00.000000000 +0000 +++ klavaro-3.00/gtkdatabox/gtkdatabox_scale.h 2014-01-03 18:40:55.000000000 +0000 @@ -0,0 +1,54 @@ +/* $Id: gtkdatabox_scale.h 4 2008-06-22 09:19:11Z rbock $ */ +/* GtkDatabox - An extension to the gtk+ library + * Copyright (C) 1998 - 2008 Dr. Roland Bock + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public License + * as published by the Free Software Foundation; either version 2.1 + * of the License, or (at your option) any later version. + * + * 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 Lesser 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., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + */ + +/** + * @file gtkdatabox_scale.h + * + * Currently just an enumeration used in several places... + * + */ + +#ifndef __GTK_DATABOX_SCALE_H__ +#define __GTK_DATABOX_SCALE_H__ + +#include + +G_BEGIN_DECLS + +/** + * GtkDataboxScaleType: + * @GTK_DATABOX_SCALE_LINEAR: Linear scale + * @GTK_DATABOX_SCALE_LOG: Logarithmic scale (base 10) + * + * Scale type for #GtkDatabox and #GtkDataboxRuler objects. + * + * See also: #GtkDatabox:scale_type_x, #GtkDatabox:scale_type_y + */ +typedef enum +{ + GTK_DATABOX_SCALE_LINEAR = 0, + GTK_DATABOX_SCALE_LOG2, + GTK_DATABOX_SCALE_LOG +} +GtkDataboxScaleType; + +GType gtk_databox_scale_type_get_type (void); + +G_END_DECLS +#endif /* __GTK_DATABOX_SCALE_H__ */ diff -Nru klavaro-1.9.9/gtkdatabox/gtkdatabox_typedefs.h klavaro-3.00/gtkdatabox/gtkdatabox_typedefs.h --- klavaro-1.9.9/gtkdatabox/gtkdatabox_typedefs.h 1970-01-01 00:00:00.000000000 +0000 +++ klavaro-3.00/gtkdatabox/gtkdatabox_typedefs.h 2014-01-03 18:40:55.000000000 +0000 @@ -0,0 +1,53 @@ +/* $Id: gtkdatabox_typedefs.h 4 2008-06-22 09:19:11Z rbock $ */ +/* GtkDatabox - An extension to the gtk+ library + * Copyright (C) 1998 - 2008 Dr. Roland Bock + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public License + * as published by the Free Software Foundation; either version 2.1 + * of the License, or (at your option) any later version. + * + * 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 Lesser 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., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + */ + +#ifndef __GTK_DATABOX_TYPEDEFS_H__ +#define __GTK_DATABOX_TYPEDEFS_H__ + +#include + +G_BEGIN_DECLS + /** + * GtkDatabox: + * @box: The parent object + * + * A GTK+ widget to display large amounts of numerical data quickly and easily. + * The numerical data is represented/displayed by #GtkDataboxGraph objects, e.g. + * #GtkDataboxPoints. + * + * Implemented by #_GtkDatabox; + * + **/ + typedef struct _GtkDatabox GtkDatabox; + + /** + * GtkDataboxGraph + * @parent: The parent object + * + * The GtkDataboxGraph is the base class for all kinds of graphs (e.g. lines, points, decorations like coordinate crosses) + * to be shown in a #GtkDatabox wiget. + * + * Implemented by #_GtkDataboxGraph + * + **/ +typedef struct _GtkDataboxGraph GtkDataboxGraph; +G_END_DECLS +#endif /* __GTK_DATABOX_TYPEDEFS_H__ */ + + diff -Nru klavaro-1.9.9/gtkdatabox/gtkdatabox_xyc_graph.c klavaro-3.00/gtkdatabox/gtkdatabox_xyc_graph.c --- klavaro-1.9.9/gtkdatabox/gtkdatabox_xyc_graph.c 1970-01-01 00:00:00.000000000 +0000 +++ klavaro-3.00/gtkdatabox/gtkdatabox_xyc_graph.c 2014-01-03 18:40:55.000000000 +0000 @@ -0,0 +1,657 @@ +/* $Id: gtkdatabox_xyc_graph.c 4 2008-06-22 09:19:11Z rbock $ */ +/* GtkDatabox - An extension to the gtk+ library + * Copyright (C) 1998 - 2008 Dr. Roland Bock + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public License + * as published by the Free Software Foundation; either version 2.1 + * of the License, or (at your option) any later version. + * + * 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 Lesser 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., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + */ + +#include + +G_DEFINE_TYPE(GtkDataboxXYCGraph, gtk_databox_xyc_graph, + GTK_DATABOX_TYPE_GRAPH) + +static gint gtk_databox_xyc_graph_real_calculate_extrema (GtkDataboxGraph * + xyc_graph, + gfloat * min_x, + gfloat * max_x, + gfloat * min_y, + gfloat * max_y); + +/* IDs of properties */ +enum +{ + PROP_X = 1, + PROP_Y, + PROP_LEN, + PROP_MAXLEN, + PROP_XSTART, + PROP_YSTART, + PROP_XSTRIDE, + PROP_YSTRIDE, + PROP_XTYPE, + PROP_YTYPE +}; + +/** + * GtkDataboxXYCGraphPrivate + * + * A private data structure used by the #GtkDataboxXYCGraph. It shields all internal things + * from developers who are just using the object. + * + **/ +typedef struct _GtkDataboxXYCGraphPrivate GtkDataboxXYCGraphPrivate; + +struct _GtkDataboxXYCGraphPrivate +{ + gfloat *X; + gfloat *Y; + guint len; + guint maxlen; + guint xstart; + guint ystart; + guint xstride; + guint ystride; + GType xtype; + GType ytype; +}; + +static gpointer parent_class = NULL; + +void +gtk_databox_xyc_graph_set_X_Y_length(GtkDataboxXYCGraph * xyc_graph, gfloat * X, gfloat * Y, guint len) +{ + GtkDataboxXYCGraphPrivate *priv = GTK_DATABOX_XYC_GRAPH_GET_PRIVATE(xyc_graph); + priv->Y = Y; + priv->X = X; + priv->len = len; +} + +static void +gtk_databox_xyc_graph_set_X (GtkDataboxXYCGraph * xyc_graph, gfloat * X) +{ + g_return_if_fail (GTK_DATABOX_IS_XYC_GRAPH (xyc_graph)); + g_return_if_fail (X); + + GTK_DATABOX_XYC_GRAPH_GET_PRIVATE(xyc_graph)->X = X; + + g_object_notify (G_OBJECT (xyc_graph), "X-Values"); +} + +static void +gtk_databox_xyc_graph_set_Y (GtkDataboxXYCGraph * xyc_graph, gfloat * Y) +{ + g_return_if_fail (GTK_DATABOX_IS_XYC_GRAPH (xyc_graph)); + g_return_if_fail (Y); + + GTK_DATABOX_XYC_GRAPH_GET_PRIVATE(xyc_graph)->Y = Y; + + g_object_notify (G_OBJECT (xyc_graph), "Y-Values"); +} + +static void +gtk_databox_xyc_graph_set_length (GtkDataboxXYCGraph * xyc_graph, guint len) +{ + g_return_if_fail (GTK_DATABOX_IS_XYC_GRAPH (xyc_graph)); + g_return_if_fail (len > 0); + + GTK_DATABOX_XYC_GRAPH_GET_PRIVATE(xyc_graph)->len = len; + + g_object_notify (G_OBJECT (xyc_graph), "length"); +} + +static void +gtk_databox_xyc_graph_set_maxlen (GtkDataboxXYCGraph * xyc_graph, guint maxlen) +{ + g_return_if_fail (GTK_DATABOX_IS_XYC_GRAPH (xyc_graph)); + g_return_if_fail (maxlen > 0); + + GTK_DATABOX_XYC_GRAPH_GET_PRIVATE(xyc_graph)->maxlen = maxlen; + + g_object_notify (G_OBJECT (xyc_graph), "maxlen"); +} + +static void +gtk_databox_xyc_graph_set_xstart (GtkDataboxXYCGraph * xyc_graph, guint xstart) +{ + g_return_if_fail (GTK_DATABOX_IS_XYC_GRAPH (xyc_graph)); + + GTK_DATABOX_XYC_GRAPH_GET_PRIVATE(xyc_graph)->xstart = xstart; + + g_object_notify (G_OBJECT (xyc_graph), "X-Values"); +} + +static void +gtk_databox_xyc_graph_set_ystart (GtkDataboxXYCGraph * xyc_graph, guint ystart) +{ + g_return_if_fail (GTK_DATABOX_IS_XYC_GRAPH (xyc_graph)); + + GTK_DATABOX_XYC_GRAPH_GET_PRIVATE(xyc_graph)->ystart = ystart; + + g_object_notify (G_OBJECT (xyc_graph), "Y-Values"); +} + +static void +gtk_databox_xyc_graph_set_xstride (GtkDataboxXYCGraph * xyc_graph, guint xstride) +{ + g_return_if_fail (GTK_DATABOX_IS_XYC_GRAPH (xyc_graph)); + + GTK_DATABOX_XYC_GRAPH_GET_PRIVATE(xyc_graph)->xstride = xstride; + + g_object_notify (G_OBJECT (xyc_graph), "X-Values"); +} + +static void +gtk_databox_xyc_graph_set_ystride (GtkDataboxXYCGraph * xyc_graph, guint ystride) +{ + g_return_if_fail (GTK_DATABOX_IS_XYC_GRAPH (xyc_graph)); + + GTK_DATABOX_XYC_GRAPH_GET_PRIVATE(xyc_graph)->ystride = ystride; + + g_object_notify (G_OBJECT (xyc_graph), "Y-Values"); +} + +static void +gtk_databox_xyc_graph_set_xtype (GtkDataboxXYCGraph * xyc_graph, GType xtype) +{ + g_return_if_fail (GTK_DATABOX_IS_XYC_GRAPH (xyc_graph)); + + GTK_DATABOX_XYC_GRAPH_GET_PRIVATE(xyc_graph)->xtype = xtype; + + g_object_notify (G_OBJECT (xyc_graph), "X-Values"); +} + +static void +gtk_databox_xyc_graph_set_ytype (GtkDataboxXYCGraph * xyc_graph, GType ytype) +{ + g_return_if_fail (GTK_DATABOX_IS_XYC_GRAPH (xyc_graph)); + + GTK_DATABOX_XYC_GRAPH_GET_PRIVATE(xyc_graph)->ytype = ytype; + + g_object_notify (G_OBJECT (xyc_graph), "Y-Values"); +} + +static void +gtk_databox_xyc_graph_set_property (GObject * object, + guint property_id, + const GValue * value, GParamSpec * pspec) +{ + GtkDataboxXYCGraph *xyc_graph = GTK_DATABOX_XYC_GRAPH (object); + + switch (property_id) + { + case PROP_X: + gtk_databox_xyc_graph_set_X (xyc_graph, (gfloat *) g_value_get_pointer (value)); + break; + case PROP_Y: + gtk_databox_xyc_graph_set_Y (xyc_graph, (gfloat *) g_value_get_pointer (value)); + break; + case PROP_LEN: + gtk_databox_xyc_graph_set_length (xyc_graph, g_value_get_int (value)); + break; + case PROP_MAXLEN: + gtk_databox_xyc_graph_set_maxlen (xyc_graph, g_value_get_int (value)); + break; + case PROP_XSTART: + gtk_databox_xyc_graph_set_xstart (xyc_graph, g_value_get_int (value)); + break; + case PROP_YSTART: + gtk_databox_xyc_graph_set_ystart (xyc_graph, g_value_get_int (value)); + break; + case PROP_XSTRIDE: + gtk_databox_xyc_graph_set_xstride (xyc_graph, g_value_get_int (value)); + break; + case PROP_YSTRIDE: + gtk_databox_xyc_graph_set_ystride (xyc_graph, g_value_get_int (value)); + break; + case PROP_XTYPE: + gtk_databox_xyc_graph_set_xtype (xyc_graph, g_value_get_gtype (value)); + break; + case PROP_YTYPE: + gtk_databox_xyc_graph_set_ytype (xyc_graph, g_value_get_gtype (value)); + break; + default: + /* We don't have any other property... */ + G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec); + break; + } +} + +/** + * gtk_databox_xyc_graph_get_X: + * @xyc_graph: A #GtkDataboxXYCGraph object + * + * Gets the X values of the @xzc_graph. + * + * Return value: Pointer to X values + */ +gfloat * +gtk_databox_xyc_graph_get_X (GtkDataboxXYCGraph * xyc_graph) +{ + g_return_val_if_fail (GTK_DATABOX_IS_XYC_GRAPH (xyc_graph), NULL); + + return GTK_DATABOX_XYC_GRAPH_GET_PRIVATE(xyc_graph)->X; +} + +/** + * gtk_databox_xyc_graph_get_Y: + * @xyc_graph: A #GtkDataboxXYCGraph object + * + * Gets the Y values of the @xzc_graph. + * + * Return value: Pointer to Y values + */ +gfloat * +gtk_databox_xyc_graph_get_Y (GtkDataboxXYCGraph * xyc_graph) +{ + g_return_val_if_fail (GTK_DATABOX_IS_XYC_GRAPH (xyc_graph), NULL); + + return GTK_DATABOX_XYC_GRAPH_GET_PRIVATE(xyc_graph)->Y; +} + +/** + * gtk_databox_xyc_graph_get_length: + * @xyc_graph: A #GtkDataboxXYCGraph object + * + * Gets the the length of the X and Y values arrays. + * + * Return value: Length of X/Y arrays. + */ +guint +gtk_databox_xyc_graph_get_length (GtkDataboxXYCGraph * xyc_graph) +{ + g_return_val_if_fail (GTK_DATABOX_IS_XYC_GRAPH (xyc_graph), 0); + return GTK_DATABOX_XYC_GRAPH_GET_PRIVATE(xyc_graph)->len; +} + +/** + * gtk_databox_xyc_graph_get_maxlen: + * @xyc_graph: A #GtkDataboxXYCGraph object + * + * Gets the the maxlen of the X and Y values arrays. + * + * Return value: Size of X/Y arrays. + */ +guint +gtk_databox_xyc_graph_get_maxlen (GtkDataboxXYCGraph * xyc_graph) +{ + g_return_val_if_fail (GTK_DATABOX_IS_XYC_GRAPH (xyc_graph), 0); + return GTK_DATABOX_XYC_GRAPH_GET_PRIVATE(xyc_graph)->maxlen; +} + +/** + * gtk_databox_xyc_graph_get_xstart: + * @xyc_graph: A #GtkDataboxXYCGraph object + * + * Gets the the start offset of the X values array. This is the element in the array pointed to by X that will be the first element plotted. + * If X is a pointer to a gfloat array, and xstart is 5, then x[5] will be the first data element. If Xstride is 1, then x[6] will be the + * second element. x[5 + len - 1] will be last element. + * Usually, xstart will be 0. It can be nonzero to allow for interleaved X/Y samples, or if the data is stored as a matrix, then X can point + * to the start of the matrix, xstart can be the column number, and xstride the number of columns. + * + * Return value: The xstart value. + */ +guint +gtk_databox_xyc_graph_get_xstart (GtkDataboxXYCGraph * xyc_graph) +{ + g_return_val_if_fail (GTK_DATABOX_IS_XYC_GRAPH (xyc_graph), 0); + return GTK_DATABOX_XYC_GRAPH_GET_PRIVATE(xyc_graph)->xstart; +} + +/** + * gtk_databox_xyc_graph_get_ystart: + * @xyc_graph: A #GtkDataboxXYCGraph object + * + * Gets the the start offset of the Y values array. This is the element in the array pointed to by Y that will be the first element plotted. + * If Y is a pointer to a gfloat array, and ystart is 5, then y[5] will be the first data element. If Ystride is 1, then y[6] will be the + * second element. y[5 + len - 1] will be last element. + * Usually, ystart will be 0. It can be nonzero to allow for interleaved X/Y samples, or if the data is stored as a matrix, then Y can point + * to the start of the matrix, ystart can be the column number, and ystride the number of columns. + * + * Return value: The ystart value. + */ +guint +gtk_databox_xyc_graph_get_ystart (GtkDataboxXYCGraph * xyc_graph) +{ + g_return_val_if_fail (GTK_DATABOX_IS_XYC_GRAPH (xyc_graph), 0); + return GTK_DATABOX_XYC_GRAPH_GET_PRIVATE(xyc_graph)->ystart; +} + +/** + * gtk_databox_xyc_graph_get_xstride: + * @xyc_graph: A #GtkDataboxXYCGraph object + * + * Gets the the stride offset of the X values array. This is the element in the array pointed to by X that will be the first element plotted. + * If X is a pointer to a gfloat array, and xstart is 5, then x[5] will be the first data element. If Xstride is 1, then x[6] will be the + * second element. x[5 + len - 1] will be last element. + * Usually, xstride will be 1. It can be nonzero to allow for interleaved X/Y samples, or if the data is stored as a matrix, then X can point + * to the start of the matrix, xstart can be the column number, and xstride the number of columns. + * + * Return value: The xstride value. + */ +guint +gtk_databox_xyc_graph_get_xstride (GtkDataboxXYCGraph * xyc_graph) +{ + g_return_val_if_fail (GTK_DATABOX_IS_XYC_GRAPH (xyc_graph), 0); + return GTK_DATABOX_XYC_GRAPH_GET_PRIVATE(xyc_graph)->xstride; +} + +/** + * gtk_databox_xyc_graph_get_ystride: + * @xyc_graph: A #GtkDataboxXYCGraph object + * + * Gets the the stride offset of the Y values array. This is the element in the array pointed to by Y that will be the first element plotted. + * If Y is a pointer to a gfloat array, and ystart is 5, then y[5] will be the first data element. If Ystride is 1, then y[6] will be the + * second element. y[5 + len - 1] will be last element. + * Usually, ystride will be 1. It can be nonzero to allow for interleaved X/Y samples, or if the data is stored as a matrix, then Y can point + * to the start of the matrix, ystart can be the column number, and ystride the number of columns. + * + * Return value: The ystride value. + */ +guint +gtk_databox_xyc_graph_get_ystride (GtkDataboxXYCGraph * xyc_graph) +{ + g_return_val_if_fail (GTK_DATABOX_IS_XYC_GRAPH (xyc_graph), 0); + return GTK_DATABOX_XYC_GRAPH_GET_PRIVATE(xyc_graph)->ystride; +} + +/** + * gtk_databox_xyc_graph_get_xtype: + * @xyc_graph: A #GtkDataboxXYCGraph object + * + * Gets the the GType of the X array elements. This may be G_TYPE_FLOAT, G_TYPE_DOUBLE, or similar. + * + * Return value: A GType, usually this is G_TYPE_FLOAT. + */ +GType +gtk_databox_xyc_graph_get_xtype (GtkDataboxXYCGraph * xyc_graph) +{ + g_return_val_if_fail (GTK_DATABOX_IS_XYC_GRAPH (xyc_graph), 0); + return GTK_DATABOX_XYC_GRAPH_GET_PRIVATE(xyc_graph)->xtype; +} + +/** + * gtk_databox_xyc_graph_get_ytype: + * @xyc_graph: A #GtkDataboxXYCGraph object + * + * Gets the the GType of the Y array elements. This may be G_TYPE_FLOAT, G_TYPE_DOUBLE, or similar. + * + * Return value: A GType, usually this is G_TYPE_FLOAT. + */ +GType +gtk_databox_xyc_graph_get_ytype (GtkDataboxXYCGraph * xyc_graph) +{ + g_return_val_if_fail (GTK_DATABOX_IS_XYC_GRAPH (xyc_graph), 0); + return GTK_DATABOX_XYC_GRAPH_GET_PRIVATE(xyc_graph)->ytype; +} + +static void +gtk_databox_xyc_graph_get_property (GObject * object, + guint property_id, + GValue * value, GParamSpec * pspec) +{ + GtkDataboxXYCGraph *xyc_graph = GTK_DATABOX_XYC_GRAPH (object); + + switch (property_id) + { + case PROP_X: + g_value_set_pointer (value, gtk_databox_xyc_graph_get_X (xyc_graph)); + break; + case PROP_Y: + g_value_set_pointer (value, gtk_databox_xyc_graph_get_Y (xyc_graph)); + break; + case PROP_LEN: + g_value_set_int (value, gtk_databox_xyc_graph_get_length (xyc_graph)); + break; + case PROP_MAXLEN: + g_value_set_int (value, gtk_databox_xyc_graph_get_maxlen (xyc_graph)); + break; + case PROP_XSTART: + g_value_set_int (value, gtk_databox_xyc_graph_get_xstart (xyc_graph)); + break; + case PROP_YSTART: + g_value_set_int (value, gtk_databox_xyc_graph_get_ystart (xyc_graph)); + break; + case PROP_XSTRIDE: + g_value_set_int (value, gtk_databox_xyc_graph_get_xstride (xyc_graph)); + break; + case PROP_YSTRIDE: + g_value_set_int (value, gtk_databox_xyc_graph_get_ystride (xyc_graph)); + break; + case PROP_XTYPE: + g_value_set_gtype (value, gtk_databox_xyc_graph_get_xtype (xyc_graph)); + break; + case PROP_YTYPE: + g_value_set_gtype (value, gtk_databox_xyc_graph_get_ytype (xyc_graph)); + break; + default: + /* We don't have any other property... */ + G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec); + break; + } +} + +static void +gtk_databox_xyc_graph_class_init (GtkDataboxXYCGraphClass *klass) +{ + GObjectClass *gobject_class = G_OBJECT_CLASS (klass); + GtkDataboxGraphClass *graph_class = GTK_DATABOX_GRAPH_CLASS (klass); + GParamSpec *xyc_graph_param_spec; + + gobject_class->set_property = gtk_databox_xyc_graph_set_property; + gobject_class->get_property = gtk_databox_xyc_graph_get_property; + + xyc_graph_param_spec = g_param_spec_pointer ("X-Values", + "X coordinates", + "X values of data", + G_PARAM_CONSTRUCT_ONLY | + G_PARAM_READWRITE); + + g_object_class_install_property (gobject_class, + PROP_X, xyc_graph_param_spec); + + xyc_graph_param_spec = g_param_spec_pointer ("Y-Values", + "Y coordinates", + "Y values of data", + G_PARAM_CONSTRUCT_ONLY | + G_PARAM_READWRITE); + + g_object_class_install_property (gobject_class, + PROP_Y, xyc_graph_param_spec); + + xyc_graph_param_spec = g_param_spec_int ("length", "length of X and Y", "number of data points", G_MININT, G_MAXINT, 0, /* default value */ + G_PARAM_CONSTRUCT_ONLY | + G_PARAM_READWRITE); + + g_object_class_install_property (gobject_class, + PROP_LEN, xyc_graph_param_spec); + + xyc_graph_param_spec = g_param_spec_int ("maxlen", "maxlen of X and Y", "maximal number of data points", G_MININT, G_MAXINT, 0, /* default value */ + G_PARAM_CONSTRUCT_ONLY | + G_PARAM_READWRITE); + g_object_class_install_property (gobject_class, + PROP_MAXLEN, xyc_graph_param_spec); + + xyc_graph_param_spec = g_param_spec_int ("xstart", "array index of first X", "array index of first X", G_MININT, G_MAXINT, 0, /* default value */ + G_PARAM_CONSTRUCT_ONLY | + G_PARAM_READWRITE); + g_object_class_install_property (gobject_class, + PROP_XSTART, xyc_graph_param_spec); + + xyc_graph_param_spec = g_param_spec_int ("ystart", "array index of first Y", "array index of first Y", G_MININT, G_MAXINT, 0, /* default value */ + G_PARAM_CONSTRUCT_ONLY | + G_PARAM_READWRITE); + g_object_class_install_property (gobject_class, + PROP_YSTART, xyc_graph_param_spec); + + xyc_graph_param_spec = g_param_spec_int ("xstride", "stride of X values", "stride of X values", G_MININT, G_MAXINT, 1, /* default value */ + G_PARAM_CONSTRUCT_ONLY | + G_PARAM_READWRITE); + g_object_class_install_property (gobject_class, + PROP_XSTRIDE, xyc_graph_param_spec); + + xyc_graph_param_spec = g_param_spec_int ("ystride", "stride of Y values", "stride of Y values", G_MININT, G_MAXINT, 1, /* default value */ + G_PARAM_CONSTRUCT_ONLY | + G_PARAM_READWRITE); + g_object_class_install_property (gobject_class, + PROP_YSTRIDE, xyc_graph_param_spec); + + xyc_graph_param_spec = g_param_spec_gtype ("xtype", "GType of X elements", "GType of X elements", G_TYPE_NONE, + G_PARAM_CONSTRUCT_ONLY | + G_PARAM_READWRITE); + g_object_class_install_property (gobject_class, + PROP_XTYPE, xyc_graph_param_spec); + + xyc_graph_param_spec = g_param_spec_gtype ("ytype", "GType of Y elements", "GType of Y elements", G_TYPE_NONE, + G_PARAM_CONSTRUCT_ONLY | + G_PARAM_READWRITE); + g_object_class_install_property (gobject_class, + PROP_YTYPE, xyc_graph_param_spec); + + graph_class->calculate_extrema = + gtk_databox_xyc_graph_real_calculate_extrema; + + g_type_class_add_private (klass, sizeof (GtkDataboxXYCGraphPrivate)); +} + +static void +gtk_databox_xyc_graph_init (GtkDataboxXYCGraph *xyc_graph) +{ +} + +static gint +gtk_databox_xyc_graph_real_calculate_extrema (GtkDataboxGraph * graph, + gfloat * min_x, gfloat * max_x, + gfloat * min_y, gfloat * max_y) +{ + GtkDataboxXYCGraph *xyc_graph = GTK_DATABOX_XYC_GRAPH (graph); + GtkDataboxXYCGraphPrivate *priv = GTK_DATABOX_XYC_GRAPH_GET_PRIVATE(xyc_graph); + guint i, indx, len, maxlen, start, stride; + void *values; + GType vtype; + gfloat fval = 0.0, minval = 0.0, maxval = 0.0; + + g_return_val_if_fail (GTK_DATABOX_IS_XYC_GRAPH (graph), -1); + g_return_val_if_fail (min_x, -1); + g_return_val_if_fail (max_x, -1); + g_return_val_if_fail (min_y, -1); + g_return_val_if_fail (max_y, -1); + g_return_val_if_fail (priv->len, -1); + + len = priv->len; + maxlen = priv->maxlen; + values = priv->X; + vtype = priv->xtype; + start = priv->xstart; + stride = priv->xstride; + + indx = start * stride; + i = 0; + do { + if (vtype == G_TYPE_FLOAT) + fval = ((gfloat *)values)[indx]; + else if (vtype == G_TYPE_DOUBLE) + fval = ((gdouble *)values)[indx]; + else if (vtype == G_TYPE_INT) + fval = ((gint *)values)[indx]; + else if (vtype == G_TYPE_UINT) + fval = ((guint *)values)[indx]; + else if (vtype == G_TYPE_LONG) + fval = ((glong *)values)[indx]; + else if (vtype == G_TYPE_ULONG) + fval = ((gulong *)values)[indx]; + else if (vtype == G_TYPE_INT64) + fval = ((gint64 *)values)[indx]; + else if (vtype == G_TYPE_UINT64) + fval = ((guint64 *)values)[indx]; + else if (vtype == G_TYPE_CHAR) + fval = ((gchar *)values)[indx]; + else if (vtype == G_TYPE_UCHAR) + fval = ((guchar *)values)[indx]; + + if (i==0) + { + minval = maxval = fval; + } + else + { + if (fval < minval) minval = fval; + if (fval > maxval) maxval = fval; + } + + /* handle the wrap-around (ring buffer) issue using modulus. for efficiency, don't do this for non-wraparound cases. */ + /* note this allows multiple wrap-arounds. One could hold a single cycle of a sine wave, and plot a continuous wave */ + /* This can be optimized using pointers later */ + if (i + start > maxlen) + indx = ((i + start) % maxlen) * stride; + else + indx += stride; + } while (++i < len); + + *min_x = minval; + *max_x = maxval; + + values = priv->Y; + vtype = priv->ytype; + start = priv->ystart; + stride = priv->ystride; + + indx = start * stride; + i = 0; + do { + if (vtype == G_TYPE_FLOAT) + fval = ((gfloat *)values)[indx]; + else if (vtype == G_TYPE_DOUBLE) + fval = ((gdouble *)values)[indx]; + else if (vtype == G_TYPE_INT) + fval = ((gint *)values)[indx]; + else if (vtype == G_TYPE_UINT) + fval = ((guint *)values)[indx]; + else if (vtype == G_TYPE_LONG) + fval = ((glong *)values)[indx]; + else if (vtype == G_TYPE_ULONG) + fval = ((gulong *)values)[indx]; + else if (vtype == G_TYPE_INT64) + fval = ((gint64 *)values)[indx]; + else if (vtype == G_TYPE_UINT64) + fval = ((guint64 *)values)[indx]; + else if (vtype == G_TYPE_CHAR) + fval = ((gchar *)values)[indx]; + else if (vtype == G_TYPE_UCHAR) + fval = ((guchar *)values)[indx]; + + if (i==0) /* yes putting this check inside the loop is inefficient, but it makes the code simpler */ + { + minval = maxval = fval; + } + else + { + if (fval < minval) minval = fval; + if (fval > maxval) maxval = fval; + } + + /* handle the wrap-around (ring buffer) issue using modulus. for efficiency, don't do this for non-wraparound cases. */ + /* note this allows multiple wrap-arounds. One could hold a single cycle of a sine wave, and plot a continuous wave */ + /* This can be optimized using pointers later */ + if (i + start > maxlen) + indx = ((i + start) % maxlen) * stride; + else + indx += stride; + } while (++i < len); + + *min_y = minval; + *max_y = maxval; + + return 0; +} diff -Nru klavaro-1.9.9/gtkdatabox/gtkdatabox_xyc_graph.h klavaro-3.00/gtkdatabox/gtkdatabox_xyc_graph.h --- klavaro-1.9.9/gtkdatabox/gtkdatabox_xyc_graph.h 1970-01-01 00:00:00.000000000 +0000 +++ klavaro-3.00/gtkdatabox/gtkdatabox_xyc_graph.h 2014-01-03 18:40:55.000000000 +0000 @@ -0,0 +1,94 @@ +/* $Id: gtkdatabox_xyc_graph.h 4 2008-06-22 09:19:11Z rbock $ */ +/* GtkDatabox - An extension to the gtk+ library + * Copyright (C) 1998 - 2008 Dr. Roland Bock + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public License + * as published by the Free Software Foundation; either version 2.1 + * of the License, or (at your option) any later version. + * + * 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 Lesser 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., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + */ + +/** + * SECTION:gtkdatabox_xyc_graph + * @short_description: An abstract anchestor for all graphs which display xy-values in one color. + * @include: gtkdatabox_xyc_graph.h + * @see_also: #GtkDatabox, #GtkDataboxGraph, #GtkDataboxPoints, #GtkDataboxLines, #GtkDataboxBars + * + * GtkDataboxXYCGraphs are an abstract class for displaying XY-data in one color. The values for the data are represented + * as an array of X values and a second array of Y values. In order to actually display data, you should + * use one of the derived classes. + * + */ + +#ifndef __GTK_DATABOX_XYC_GRAPH_H__ +#define __GTK_DATABOX_XYC_GRAPH_H__ + +#include + +G_BEGIN_DECLS +#define GTK_DATABOX_TYPE_XYC_GRAPH (gtk_databox_xyc_graph_get_type ()) +#define GTK_DATABOX_XYC_GRAPH(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), \ + GTK_DATABOX_TYPE_XYC_GRAPH, \ + GtkDataboxXYCGraph)) +#define GTK_DATABOX_XYC_GRAPH_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), \ + GTK_DATABOX_TYPE_XYC_GRAPH, \ + GtkDataboxXYCGraphClass)) +#define GTK_DATABOX_IS_XYC_GRAPH(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), \ + GTK_DATABOX_TYPE_XYC_GRAPH)) +#define GTK_DATABOX_IS_XYC_GRAPH_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), \ + GTK_DATABOX_TYPE_XYC_GRAPH)) +#define GTK_DATABOX_XYC_GRAPH_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), \ + GTK_DATABOX_TYPE_XYC_GRAPH, \ + GtkDataboxXYCGraphClass)) +#define GTK_DATABOX_XYC_GRAPH_GET_PRIVATE(obj) \ + G_TYPE_INSTANCE_GET_PRIVATE ((obj), GTK_DATABOX_TYPE_XYC_GRAPH, GtkDataboxXYCGraphPrivate) + +/** + * GtkDataboxXYCGraph: + * + * GtkDataboxXYCGraphs are an abstract class for displaying XY-data in one color. The values for the data are represented + * as an array of X values and a second array of Y values. In order to actually display data, you should + * use one of the derived classes. + * + */ + typedef struct _GtkDataboxXYCGraph GtkDataboxXYCGraph; + + typedef struct _GtkDataboxXYCGraphClass GtkDataboxXYCGraphClass; + + struct _GtkDataboxXYCGraph + { + /*< private >*/ + GtkDataboxGraph parent; + }; + + struct _GtkDataboxXYCGraphClass + { + GtkDataboxGraphClass parent_class; + }; + + GType gtk_databox_xyc_graph_get_type (void); + + guint gtk_databox_xyc_graph_get_length (GtkDataboxXYCGraph * xyc_graph); + guint gtk_databox_xyc_graph_get_maxlen (GtkDataboxXYCGraph * xyc_graph); + gfloat *gtk_databox_xyc_graph_get_X (GtkDataboxXYCGraph * xyc_graph); + gfloat *gtk_databox_xyc_graph_get_Y (GtkDataboxXYCGraph * xyc_graph); + guint gtk_databox_xyc_graph_get_xstart (GtkDataboxXYCGraph * xyc_graph); + guint gtk_databox_xyc_graph_get_ystart (GtkDataboxXYCGraph * xyc_graph); + guint gtk_databox_xyc_graph_get_xstride (GtkDataboxXYCGraph * xyc_graph); + guint gtk_databox_xyc_graph_get_ystride (GtkDataboxXYCGraph * xyc_graph); + GType gtk_databox_xyc_graph_get_xtype (GtkDataboxXYCGraph * xyc_graph); + GType gtk_databox_xyc_graph_get_ytype (GtkDataboxXYCGraph * xyc_graph); + + void gtk_databox_xyc_graph_set_X_Y_length(GtkDataboxXYCGraph * xyc_graph, gfloat * X, gfloat * Y, guint len); + +G_END_DECLS +#endif /* __GTK_DATABOX_XYC_GRAPH_H__ */ diff -Nru klavaro-1.9.9/gtkdatabox/gtkdatabox_xyyc_graph.c klavaro-3.00/gtkdatabox/gtkdatabox_xyyc_graph.c --- klavaro-1.9.9/gtkdatabox/gtkdatabox_xyyc_graph.c 1970-01-01 00:00:00.000000000 +0000 +++ klavaro-3.00/gtkdatabox/gtkdatabox_xyyc_graph.c 2014-01-03 18:40:55.000000000 +0000 @@ -0,0 +1,820 @@ +/* $Id: gtkdatabox_xyyc_graph.c 4 2008-06-22 09:19:11Z rbock $ */ +/* GtkDatabox - An extension to the gtk+ library + * Copyright (C) 1998 - 2008 Dr. Roland Bock + * Copyright (C) 2012 Dr. Matt Flax + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public License + * as published by the Free Software Foundation; either version 2.1 + * of the License, or (at your option) any later version. + * + * 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 Lesser 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., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + */ + +#include + +G_DEFINE_TYPE(GtkDataboxXYYCGraph, gtk_databox_xyyc_graph, + GTK_DATABOX_TYPE_GRAPH) + +static gint gtk_databox_xyyc_graph_real_calculate_extrema (GtkDataboxGraph * + xyyc_graph, + gfloat * min_x, + gfloat * max_x, + gfloat * min_y, + gfloat * max_y); + +/* IDs of properties */ +enum +{ + PROP_X = 1, + PROP_Y1, + PROP_Y2, + PROP_LEN, + PROP_SIZE, + PROP_XSTART, + PROP_Y1START, + PROP_Y2START, + PROP_XSTRIDE, + PROP_Y1STRIDE, + PROP_Y2STRIDE, + PROP_XTYPE, + PROP_YTYPE +}; + +/** + * GtkDataboxXYYCGraphPrivate + * + * A private data structure used by the #GtkDataboxXYYCGraph. It shields all internal things + * from developers who are just using the object. + * + **/ +typedef struct _GtkDataboxXYYCGraphPrivate GtkDataboxXYYCGraphPrivate; + +struct _GtkDataboxXYYCGraphPrivate +{ + gfloat *X; + gfloat *Y1; + gfloat *Y2; + guint len; + guint maxlen; + guint xstart; + guint y1start; + guint y2start; + guint xstride; + guint y1stride; + guint y2stride; + GType xtype; + GType ytype; +}; + +static void +gtk_databox_xyyc_graph_set_X (GtkDataboxXYYCGraph * xyyc_graph, gfloat * X) +{ + g_return_if_fail (GTK_DATABOX_IS_XYYC_GRAPH (xyyc_graph)); + g_return_if_fail (X); + + GTK_DATABOX_XYYC_GRAPH_GET_PRIVATE(xyyc_graph)->X = X; + + g_object_notify (G_OBJECT (xyyc_graph), "X-Values"); +} + +static void +gtk_databox_xyyc_graph_set_Y1 (GtkDataboxXYYCGraph * xyyc_graph, gfloat * Y1) +{ + g_return_if_fail (GTK_DATABOX_IS_XYYC_GRAPH (xyyc_graph)); + g_return_if_fail (Y1); + + GTK_DATABOX_XYYC_GRAPH_GET_PRIVATE(xyyc_graph)->Y1 = Y1; + + g_object_notify (G_OBJECT (xyyc_graph), "Y1-Values"); +} + +static void +gtk_databox_xyyc_graph_set_Y2 (GtkDataboxXYYCGraph * xyyc_graph, gfloat * Y2) +{ + g_return_if_fail (GTK_DATABOX_IS_XYYC_GRAPH (xyyc_graph)); + g_return_if_fail (Y2); + + GTK_DATABOX_XYYC_GRAPH_GET_PRIVATE(xyyc_graph)->Y2 = Y2; + + g_object_notify (G_OBJECT (xyyc_graph), "Y2-Values"); +} + +static void +gtk_databox_xyyc_graph_set_length (GtkDataboxXYYCGraph * xyyc_graph, guint len) +{ + g_return_if_fail (GTK_DATABOX_IS_XYYC_GRAPH (xyyc_graph)); + g_return_if_fail (len > 0); + + GTK_DATABOX_XYYC_GRAPH_GET_PRIVATE(xyyc_graph)->len = len; + + g_object_notify (G_OBJECT (xyyc_graph), "length"); +} + +static void +gtk_databox_xyyc_graph_set_maxlen (GtkDataboxXYYCGraph * xyyc_graph, guint maxlen) +{ + g_return_if_fail (GTK_DATABOX_IS_XYYC_GRAPH (xyyc_graph)); + g_return_if_fail (maxlen > 0); + + GTK_DATABOX_XYYC_GRAPH_GET_PRIVATE(xyyc_graph)->maxlen = maxlen; + + g_object_notify (G_OBJECT (xyyc_graph), "maxlen"); +} + +static void +gtk_databox_xyyc_graph_set_xstart (GtkDataboxXYYCGraph * xyyc_graph, guint xstart) +{ + g_return_if_fail (GTK_DATABOX_IS_XYYC_GRAPH (xyyc_graph)); + + GTK_DATABOX_XYYC_GRAPH_GET_PRIVATE(xyyc_graph)->xstart = xstart; + + g_object_notify (G_OBJECT (xyyc_graph), "X-Values"); +} + +static void +gtk_databox_xyyc_graph_set_y1start (GtkDataboxXYYCGraph * xyyc_graph, guint y1start) +{ + g_return_if_fail (GTK_DATABOX_IS_XYYC_GRAPH (xyyc_graph)); + + GTK_DATABOX_XYYC_GRAPH_GET_PRIVATE(xyyc_graph)->y1start = y1start; + + g_object_notify (G_OBJECT (xyyc_graph), "Y1-Values"); +} + +static void +gtk_databox_xyyc_graph_set_y2start (GtkDataboxXYYCGraph * xyyc_graph, guint y2start) +{ + g_return_if_fail (GTK_DATABOX_IS_XYYC_GRAPH (xyyc_graph)); + + GTK_DATABOX_XYYC_GRAPH_GET_PRIVATE(xyyc_graph)->y2start = y2start; + + g_object_notify (G_OBJECT (xyyc_graph), "Y2-Values"); +} + +static void +gtk_databox_xyyc_graph_set_xstride (GtkDataboxXYYCGraph * xyyc_graph, guint xstride) +{ + g_return_if_fail (GTK_DATABOX_IS_XYYC_GRAPH (xyyc_graph)); + + GTK_DATABOX_XYYC_GRAPH_GET_PRIVATE(xyyc_graph)->xstride = xstride; + + g_object_notify (G_OBJECT (xyyc_graph), "X-Values"); +} + +static void +gtk_databox_xyyc_graph_set_y1stride (GtkDataboxXYYCGraph * xyyc_graph, guint y1stride) +{ + g_return_if_fail (GTK_DATABOX_IS_XYYC_GRAPH (xyyc_graph)); + + GTK_DATABOX_XYYC_GRAPH_GET_PRIVATE(xyyc_graph)->y1stride = y1stride; + + g_object_notify (G_OBJECT (xyyc_graph), "Y1-Values"); +} + +static void +gtk_databox_xyyc_graph_set_y2stride (GtkDataboxXYYCGraph * xyyc_graph, guint y2stride) +{ + g_return_if_fail (GTK_DATABOX_IS_XYYC_GRAPH (xyyc_graph)); + + GTK_DATABOX_XYYC_GRAPH_GET_PRIVATE(xyyc_graph)->y2stride = y2stride; + + g_object_notify (G_OBJECT (xyyc_graph), "Y2-Values"); +} + +static void +gtk_databox_xyyc_graph_set_xtype (GtkDataboxXYYCGraph * xyyc_graph, GType xtype) +{ + g_return_if_fail (GTK_DATABOX_IS_XYYC_GRAPH (xyyc_graph)); + + GTK_DATABOX_XYYC_GRAPH_GET_PRIVATE(xyyc_graph)->xtype = xtype; + + g_object_notify (G_OBJECT (xyyc_graph), "X-Values"); +} + +static void +gtk_databox_xyyc_graph_set_ytype (GtkDataboxXYYCGraph * xyyc_graph, GType ytype) +{ + g_return_if_fail (GTK_DATABOX_IS_XYYC_GRAPH (xyyc_graph)); + + GTK_DATABOX_XYYC_GRAPH_GET_PRIVATE(xyyc_graph)->ytype = ytype; + + g_object_notify (G_OBJECT (xyyc_graph), "Y1-Values"); + g_object_notify (G_OBJECT (xyyc_graph), "Y2-Values"); +} + +static void +gtk_databox_xyyc_graph_set_property (GObject * object, + guint property_id, + const GValue * value, GParamSpec * pspec) +{ + GtkDataboxXYYCGraph *xyyc_graph = GTK_DATABOX_XYYC_GRAPH (object); + + switch (property_id) + { + case PROP_X: + gtk_databox_xyyc_graph_set_X (xyyc_graph, (gfloat *) g_value_get_pointer (value)); + break; + case PROP_Y1: + gtk_databox_xyyc_graph_set_Y1 (xyyc_graph, (gfloat *) g_value_get_pointer (value)); + break; + case PROP_Y2: + gtk_databox_xyyc_graph_set_Y2 (xyyc_graph, (gfloat *) g_value_get_pointer (value)); + break; + case PROP_LEN: + gtk_databox_xyyc_graph_set_length (xyyc_graph, g_value_get_int (value)); + break; + case PROP_SIZE: + gtk_databox_xyyc_graph_set_maxlen (xyyc_graph, g_value_get_int (value)); + break; + case PROP_XSTART: + gtk_databox_xyyc_graph_set_xstart (xyyc_graph, g_value_get_int (value)); + break; + case PROP_Y1START: + gtk_databox_xyyc_graph_set_y1start (xyyc_graph, g_value_get_int (value)); + break; + case PROP_Y2START: + gtk_databox_xyyc_graph_set_y2start (xyyc_graph, g_value_get_int (value)); + break; + case PROP_XSTRIDE: + gtk_databox_xyyc_graph_set_xstride (xyyc_graph, g_value_get_int (value)); + break; + case PROP_Y1STRIDE: + gtk_databox_xyyc_graph_set_y1stride (xyyc_graph, g_value_get_int (value)); + break; + case PROP_Y2STRIDE: + gtk_databox_xyyc_graph_set_y2stride (xyyc_graph, g_value_get_int (value)); + break; + case PROP_XTYPE: + gtk_databox_xyyc_graph_set_xtype (xyyc_graph, g_value_get_gtype (value)); + break; + case PROP_YTYPE: + gtk_databox_xyyc_graph_set_ytype (xyyc_graph, g_value_get_gtype (value)); + break; + default: + /* We don't have any other property... */ + G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec); + break; + } +} + +/** + * gtk_databox_xyyc_graph_get_X: + * @xyyc_graph: A #GtkDataboxXYYCGraph object + * + * Gets the X values of the @xzc_graph. + * + * Return value: Pointer to X values + */ +gfloat * +gtk_databox_xyyc_graph_get_X (GtkDataboxXYYCGraph * xyyc_graph) +{ + g_return_val_if_fail (GTK_DATABOX_IS_XYYC_GRAPH (xyyc_graph), NULL); + + return GTK_DATABOX_XYYC_GRAPH_GET_PRIVATE(xyyc_graph)->X; +} + +/** + * gtk_databox_xyyc_graph_get_Y1: + * @xyyc_graph: A #GtkDataboxXYYCGraph object + * + * Gets the Y1 values of the @xzc_graph. + * + * Return value: Pointer to Y1 values + */ +gfloat * +gtk_databox_xyyc_graph_get_Y1 (GtkDataboxXYYCGraph * xyyc_graph) +{ + g_return_val_if_fail (GTK_DATABOX_IS_XYYC_GRAPH (xyyc_graph), NULL); + + return GTK_DATABOX_XYYC_GRAPH_GET_PRIVATE(xyyc_graph)->Y1; +} + +/** + * gtk_databox_xyyc_graph_get_Y2: + * @xyyc_graph: A #GtkDataboxXYYCGraph object + * + * Gets the Y2 values of the @xzc_graph. + * + * Return value: Pointer to Y2 values + */ +gfloat * +gtk_databox_xyyc_graph_get_Y2 (GtkDataboxXYYCGraph * xyyc_graph) +{ + g_return_val_if_fail (GTK_DATABOX_IS_XYYC_GRAPH (xyyc_graph), NULL); + + return GTK_DATABOX_XYYC_GRAPH_GET_PRIVATE(xyyc_graph)->Y2; +} + +/** + * gtk_databox_xyyc_graph_get_length: + * @xyyc_graph: A #GtkDataboxXYYCGraph object + * + * Gets the the length of the X and Y values arrays. + * + * Return value: Length of X/Y arrays. + */ +guint +gtk_databox_xyyc_graph_get_length (GtkDataboxXYYCGraph * xyyc_graph) +{ + g_return_val_if_fail (GTK_DATABOX_IS_XYYC_GRAPH (xyyc_graph), 0); + + return GTK_DATABOX_XYYC_GRAPH_GET_PRIVATE(xyyc_graph)->len; +} + +/** + * gtk_databox_xyyc_graph_get_maxlen: + * @xyyc_graph: A #GtkDataboxXYYCGraph object + * + * Gets the the maxlen of the X and Y values arrays. + * + * Return value: Size of X/Y arrays (size of the allocated storage). + */ +guint +gtk_databox_xyyc_graph_get_maxlen (GtkDataboxXYYCGraph * xyyc_graph) +{ + g_return_val_if_fail (GTK_DATABOX_IS_XYYC_GRAPH (xyyc_graph), 0); + + return GTK_DATABOX_XYYC_GRAPH_GET_PRIVATE(xyyc_graph)->maxlen; +} + +/** + * gtk_databox_xyyc_graph_get_xstart: + * @xyyc_graph: A #GtkDataboxXYYCGraph object + * + * Gets the the start offset of the X values array. This is the element in the array pointed to by X that will be the first element plotted. + * If X is a pointer to a gfloat array, and xstart is 5, then x[5] will be the first data element. If Xstride is 1, then x[6] will be the + * second element. x[5 + len - 1] will be last element. + * Usually, xstart will be 0. It can be nonzero to allow for interleaved X/Y samples, or if the data is stored as a matrix, then X can point + * to the start of the matrix, xstart can be the column number, and xstride the number of columns. + * + * Return value: The xstart value. + */ +guint +gtk_databox_xyyc_graph_get_xstart (GtkDataboxXYYCGraph * xyyc_graph) +{ + g_return_val_if_fail (GTK_DATABOX_IS_XYYC_GRAPH (xyyc_graph), 0); + return GTK_DATABOX_XYYC_GRAPH_GET_PRIVATE(xyyc_graph)->xstart; +} + +/** + * gtk_databox_xyyc_graph_get_y1start: + * @xyyc_graph: A #GtkDataboxXYYCGraph object + * + * Gets the the start offset of the Y1 values array. This is the element in the array pointed to by Y that will be the first element plotted. + * If Y1 is a pointer to a gfloat array, and y1start is 5, then y1[5] will be the first data element. If y1stride is 1, then y1[6] will be the + * second element. y1[5 + len - 1] will be last element. + * Usually, y1start will be 0. It can be nonzero to allow for interleaved X/Y1/Y2 samples, or if the data is stored as a matrix, then Y1 can point + * to the start of the matrix, y1start can be the column number, and y1stride the number of columns. + * + * Return value: The y1start value. + */ +guint +gtk_databox_xyyc_graph_get_y1start (GtkDataboxXYYCGraph * xyyc_graph) +{ + g_return_val_if_fail (GTK_DATABOX_IS_XYYC_GRAPH (xyyc_graph), 0); + return GTK_DATABOX_XYYC_GRAPH_GET_PRIVATE(xyyc_graph)->y1start; +} + +/** + * gtk_databox_xyyc_graph_get_y2start: + * @xyyc_graph: A #GtkDataboxXYYCGraph object + * + * Gets the the start offset of the Y2 values array. This is the element in the array pointed to by Y that will be the first element plotted. + * If Y2 is a pointer to a gfloat array, and y2start is 5, then y2[5] will be the first data element. If y2stride is 1, then y2[6] will be the + * second element. y2[5 + len - 1] will be last element. + * Usually, y2start will be 0. It can be nonzero to allow for interleaved X/Y1/Y2 samples, or if the data is stored as a matrix, then Y2 can point + * to the start of the matrix, y2start can be the column number, and y2stride the number of columns. + * + * Return value: The y2start value. + */ +guint +gtk_databox_xyyc_graph_get_y2start (GtkDataboxXYYCGraph * xyyc_graph) +{ + g_return_val_if_fail (GTK_DATABOX_IS_XYYC_GRAPH (xyyc_graph), 0); + return GTK_DATABOX_XYYC_GRAPH_GET_PRIVATE(xyyc_graph)->y2start; +} + +/** + * gtk_databox_xyyc_graph_get_xstride: + * @xyyc_graph: A #GtkDataboxXYYCGraph object + * + * Gets the the stride offset of the X values array. This is the element in the array pointed to by X that will be the first element plotted. + * If X is a pointer to a gfloat array, and xstart is 5, then x[5] will be the first data element. If Xstride is 1, then x[6] will be the + * second element. x[5 + len - 1] will be last element. + * Usually, xstride will be 1. It can be nonzero to allow for interleaved X/Y samples, or if the data is stored as a matrix, then X can point + * to the start of the matrix, xstart can be the column number, and xstride the number of columns. + * + * Return value: The xstride value. + */ +guint +gtk_databox_xyyc_graph_get_xstride (GtkDataboxXYYCGraph * xyyc_graph) +{ + g_return_val_if_fail (GTK_DATABOX_IS_XYYC_GRAPH (xyyc_graph), 0); + return GTK_DATABOX_XYYC_GRAPH_GET_PRIVATE(xyyc_graph)->xstride; +} + +/** + * gtk_databox_xyyc_graph_get_y1stride: + * @xyyc_graph: A #GtkDataboxXYYCGraph object + * + * Gets the the stride offset of the Y1 values array. This is the element in the array pointed to by Y1 that will be the first element plotted. + * If Y1 is a pointer to a gfloat array, and y1start is 5, then y1[5] will be the first data element. If y1stride is 1, then y1[6] will be the + * second element. y1[5 + len - 1] will be last element. + * Usually, y1stride will be 1. It can be nonzero to allow for interleaved X/Y1/Y2 samples, or if the data is stored as a matrix, then Y1 can point + * to the start of the matrix, y1start can be the column number, and y1stride the number of columns. + * + * Return value: The y1stride value. + */ +guint +gtk_databox_xyyc_graph_get_y1stride (GtkDataboxXYYCGraph * xyyc_graph) +{ + g_return_val_if_fail (GTK_DATABOX_IS_XYYC_GRAPH (xyyc_graph), 0); + return GTK_DATABOX_XYYC_GRAPH_GET_PRIVATE(xyyc_graph)->y1stride; +} + +/** + * gtk_databox_xyyc_graph_get_y2stride: + * @xyyc_graph: A #GtkDataboxXYYCGraph object + * + * Gets the the stride offset of the Y2 values array. This is the element in the array pointed to by Y2 that will be the first element plotted. + * If Y2 is a pointer to a gfloat array, and y2start is 5, then y2[5] will be the first data element. If y2stride is 1, then y2[6] will be the + * second element. y2[5 + len - 1] will be last element. + * Usually, y2stride will be 1. It can be nonzero to allow for interleaved X/Y1/Y2 samples, or if the data is stored as a matrix, then Y2 can point + * to the start of the matrix, y2start can be the column number, and y2stride the number of columns. + * + * Return value: The y2stride value. + */ +guint +gtk_databox_xyyc_graph_get_y2stride (GtkDataboxXYYCGraph * xyyc_graph) +{ + g_return_val_if_fail (GTK_DATABOX_IS_XYYC_GRAPH (xyyc_graph), 0); + return GTK_DATABOX_XYYC_GRAPH_GET_PRIVATE(xyyc_graph)->y2stride; +} + +/** + * gtk_databox_xyyc_graph_get_xtype: + * @xyyc_graph: A #GtkDataboxXYYCGraph object + * + * Gets the the GType of the X array elements. This may be G_TYPE_FLOAT, G_TYPE_DOUBLE, or similar. + * + * Return value: A GType, usually this is G_TYPE_FLOAT. + */ +GType +gtk_databox_xyyc_graph_get_xtype (GtkDataboxXYYCGraph * xyyc_graph) +{ + g_return_val_if_fail (GTK_DATABOX_IS_XYYC_GRAPH (xyyc_graph), 0); + return GTK_DATABOX_XYYC_GRAPH_GET_PRIVATE(xyyc_graph)->xtype; +} + +/** + * gtk_databox_xyyc_graph_get_ytype: + * @xyyc_graph: A #GtkDataboxXYYCGraph object + * + * Gets the the GType of the Y1/Y2 array elements. This may be G_TYPE_FLOAT, G_TYPE_DOUBLE, or similar. + * + * Return value: A GType, usually this is G_TYPE_FLOAT. + */ +GType +gtk_databox_xyyc_graph_get_ytype (GtkDataboxXYYCGraph * xyyc_graph) +{ + g_return_val_if_fail (GTK_DATABOX_IS_XYYC_GRAPH (xyyc_graph), 0); + return GTK_DATABOX_XYYC_GRAPH_GET_PRIVATE(xyyc_graph)->ytype; +} + +static void +gtk_databox_xyyc_graph_get_property (GObject * object, + guint property_id, + GValue * value, GParamSpec * pspec) +{ + GtkDataboxXYYCGraph *xyyc_graph = GTK_DATABOX_XYYC_GRAPH (object); + + switch (property_id) + { + case PROP_X: + g_value_set_pointer (value, gtk_databox_xyyc_graph_get_X (xyyc_graph)); + break; + case PROP_Y1: + g_value_set_pointer (value, gtk_databox_xyyc_graph_get_Y1 (xyyc_graph)); + break; + case PROP_Y2: + g_value_set_pointer (value, gtk_databox_xyyc_graph_get_Y2 (xyyc_graph)); + break; + case PROP_LEN: + g_value_set_int (value, gtk_databox_xyyc_graph_get_length (xyyc_graph)); + break; + case PROP_SIZE: + g_value_set_int (value, gtk_databox_xyyc_graph_get_maxlen (xyyc_graph)); + break; + case PROP_XSTART: + g_value_set_int (value, gtk_databox_xyyc_graph_get_xstart (xyyc_graph)); + break; + case PROP_Y1START: + g_value_set_int (value, gtk_databox_xyyc_graph_get_y1start (xyyc_graph)); + break; + case PROP_Y2START: + g_value_set_int (value, gtk_databox_xyyc_graph_get_y2start (xyyc_graph)); + break; + case PROP_XSTRIDE: + g_value_set_int (value, gtk_databox_xyyc_graph_get_xstride (xyyc_graph)); + break; + case PROP_Y1STRIDE: + g_value_set_int (value, gtk_databox_xyyc_graph_get_y1stride (xyyc_graph)); + break; + case PROP_Y2STRIDE: + g_value_set_int (value, gtk_databox_xyyc_graph_get_y2stride (xyyc_graph)); + break; + case PROP_XTYPE: + g_value_set_gtype (value, gtk_databox_xyyc_graph_get_xtype (xyyc_graph)); + break; + case PROP_YTYPE: + g_value_set_gtype (value, gtk_databox_xyyc_graph_get_ytype (xyyc_graph)); + break; + default: + /* We don't have any other property... */ + G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec); + break; + } +} + +static void +gtk_databox_xyyc_graph_class_init (GtkDataboxXYYCGraphClass *klass) +{ + GObjectClass *gobject_class = G_OBJECT_CLASS (klass); + GtkDataboxGraphClass *graph_class = GTK_DATABOX_GRAPH_CLASS (klass); + GParamSpec *xyyc_graph_param_spec; + + gobject_class->set_property = gtk_databox_xyyc_graph_set_property; + gobject_class->get_property = gtk_databox_xyyc_graph_get_property; + + xyyc_graph_param_spec = g_param_spec_pointer ("X-Values", + "X coordinates", + "X values of data", + G_PARAM_CONSTRUCT_ONLY | + G_PARAM_READWRITE); + + g_object_class_install_property (gobject_class, + PROP_X, xyyc_graph_param_spec); + + xyyc_graph_param_spec = g_param_spec_pointer ("Y1-Values", + "Y1 coordinates", + "Y1 values of data", + G_PARAM_CONSTRUCT_ONLY | + G_PARAM_READWRITE); + + g_object_class_install_property (gobject_class, + PROP_Y1, xyyc_graph_param_spec); + + xyyc_graph_param_spec = g_param_spec_pointer ("Y2-Values", + "Y2 coordinates", + "Y2 values of data", + G_PARAM_CONSTRUCT_ONLY | + G_PARAM_READWRITE); + + g_object_class_install_property (gobject_class, + PROP_Y2, xyyc_graph_param_spec); + + xyyc_graph_param_spec = g_param_spec_int ("length", "length of X, Y1 and Y2", "number of data points", G_MININT, G_MAXINT, 0, /* default value */ + G_PARAM_CONSTRUCT_ONLY | + G_PARAM_READWRITE); + + g_object_class_install_property (gobject_class, + PROP_LEN, xyyc_graph_param_spec); + + xyyc_graph_param_spec = g_param_spec_int ("maxlen", "maxlen of X and Y", "maximal number of data points", G_MININT, G_MAXINT, 0, /* default value */ + G_PARAM_CONSTRUCT_ONLY | + G_PARAM_READWRITE); + g_object_class_install_property (gobject_class, + PROP_SIZE, xyyc_graph_param_spec); + + xyyc_graph_param_spec = g_param_spec_int ("xstart", "array index of first X", "array index of first X", G_MININT, G_MAXINT, 0, /* default value */ + G_PARAM_CONSTRUCT_ONLY | + G_PARAM_READWRITE); + g_object_class_install_property (gobject_class, + PROP_XSTART, xyyc_graph_param_spec); + + xyyc_graph_param_spec = g_param_spec_int ("y1start", "array index of first Y1", "array index of first Y1", G_MININT, G_MAXINT, 0, /* default value */ + G_PARAM_CONSTRUCT_ONLY | + G_PARAM_READWRITE); + g_object_class_install_property (gobject_class, + PROP_Y1START, xyyc_graph_param_spec); + + xyyc_graph_param_spec = g_param_spec_int ("y2start", "array index of first Y2", "array index of first Y2", G_MININT, G_MAXINT, 0, /* default value */ + G_PARAM_CONSTRUCT_ONLY | + G_PARAM_READWRITE); + g_object_class_install_property (gobject_class, + PROP_Y2START, xyyc_graph_param_spec); + + xyyc_graph_param_spec = g_param_spec_int ("xstride", "stride of X values", "stride of X values", G_MININT, G_MAXINT, 1, /* default value */ + G_PARAM_CONSTRUCT_ONLY | + G_PARAM_READWRITE); + g_object_class_install_property (gobject_class, + PROP_XSTRIDE, xyyc_graph_param_spec); + + xyyc_graph_param_spec = g_param_spec_int ("y1stride", "stride of Y1 values", "stride of Y1 values", G_MININT, G_MAXINT, 1, /* default value */ + G_PARAM_CONSTRUCT_ONLY | + G_PARAM_READWRITE); + g_object_class_install_property (gobject_class, + PROP_Y1STRIDE, xyyc_graph_param_spec); + + xyyc_graph_param_spec = g_param_spec_int ("y2stride", "stride of Y2 values", "stride of Y2 values", G_MININT, G_MAXINT, 1, /* default value */ + G_PARAM_CONSTRUCT_ONLY | + G_PARAM_READWRITE); + g_object_class_install_property (gobject_class, + PROP_Y2STRIDE, xyyc_graph_param_spec); + + xyyc_graph_param_spec = g_param_spec_gtype ("xtype", "GType of X elements", "GType of X elements", G_TYPE_NONE, + G_PARAM_CONSTRUCT_ONLY | + G_PARAM_READWRITE); + g_object_class_install_property (gobject_class, + PROP_XTYPE, xyyc_graph_param_spec); + + xyyc_graph_param_spec = g_param_spec_gtype ("ytype", "GType of Y1/Y2 elements", "GType of Y1/Y2 elements", G_TYPE_NONE, + G_PARAM_CONSTRUCT_ONLY | + G_PARAM_READWRITE); + g_object_class_install_property (gobject_class, + PROP_YTYPE, xyyc_graph_param_spec); + + graph_class->calculate_extrema = + gtk_databox_xyyc_graph_real_calculate_extrema; + + g_type_class_add_private (klass, sizeof (GtkDataboxXYYCGraphPrivate)); +} + +static void +gtk_databox_xyyc_graph_init (GtkDataboxXYYCGraph * xyyc_graph) +{ +} + +static gint +gtk_databox_xyyc_graph_real_calculate_extrema (GtkDataboxGraph * graph, + gfloat * min_x, gfloat * max_x, + gfloat * min_y, gfloat * max_y) +{ + GtkDataboxXYYCGraphPrivate *priv = GTK_DATABOX_XYYC_GRAPH_GET_PRIVATE (graph); + guint i, indx, len, maxlen, start, stride; + void *values; + GType vtype; + gfloat fval = 0.0, minval = 0.0, maxval = 0.0; + + g_return_val_if_fail (GTK_DATABOX_IS_XYYC_GRAPH (graph), -1); + g_return_val_if_fail (min_x, -1); + g_return_val_if_fail (max_x, -1); + g_return_val_if_fail (min_y, -1); + g_return_val_if_fail (max_y, -1); + g_return_val_if_fail (priv->len, -1); + + len = priv->len; + maxlen = priv->maxlen; + values = priv->X; + vtype = priv->xtype; + start = priv->xstart; + stride = priv->xstride; + + indx = start * stride; + i = 0; + do { + if (vtype == G_TYPE_FLOAT) + fval = ((gfloat *)values)[indx]; + else if (vtype == G_TYPE_DOUBLE) + fval = ((gdouble *)values)[indx]; + else if (vtype == G_TYPE_INT) + fval = ((gint *)values)[indx]; + else if (vtype == G_TYPE_UINT) + fval = ((guint *)values)[indx]; + else if (vtype == G_TYPE_LONG) + fval = ((glong *)values)[indx]; + else if (vtype == G_TYPE_ULONG) + fval = ((gulong *)values)[indx]; + else if (vtype == G_TYPE_INT64) + fval = ((gint64 *)values)[indx]; + else if (vtype == G_TYPE_UINT64) + fval = ((guint64 *)values)[indx]; + else if (vtype == G_TYPE_CHAR) + fval = ((gchar *)values)[indx]; + else if (vtype == G_TYPE_UCHAR) + fval = ((guchar *)values)[indx]; + + if (i==0) + { + minval = maxval = fval; + } + else + { + if (fval < minval) minval = fval; + if (fval > maxval) maxval = fval; + } + + /* handle the wrap-around (ring buffer) issue using modulus. for efficiency, don't do this for non-wraparound cases. */ + /* note this allows multiple wrap-arounds. One could hold a single cycle of a sine wave, and plot a continuous wave */ + /* This can be optimized using pointers later */ + if (i + start > maxlen) + indx = ((i + start) % maxlen) * stride; + else + indx += stride; + } while (++i < len); + + *min_x = minval; + *max_x = maxval; + + values = priv->Y1; + vtype = priv->ytype; + start = priv->y1start; + stride = priv->y1stride; + + indx = start * stride; + i = 0; + do { + if (vtype == G_TYPE_FLOAT) + fval = ((gfloat *)values)[indx]; + else if (vtype == G_TYPE_DOUBLE) + fval = ((gdouble *)values)[indx]; + else if (vtype == G_TYPE_INT) + fval = ((gint *)values)[indx]; + else if (vtype == G_TYPE_UINT) + fval = ((guint *)values)[indx]; + else if (vtype == G_TYPE_LONG) + fval = ((glong *)values)[indx]; + else if (vtype == G_TYPE_ULONG) + fval = ((gulong *)values)[indx]; + else if (vtype == G_TYPE_INT64) + fval = ((gint64 *)values)[indx]; + else if (vtype == G_TYPE_UINT64) + fval = ((guint64 *)values)[indx]; + else if (vtype == G_TYPE_CHAR) + fval = ((gchar *)values)[indx]; + else if (vtype == G_TYPE_UCHAR) + fval = ((guchar *)values)[indx]; + + if (i==0) /* yes putting this check inside the loop is inefficient, but it makes the code simpler */ + { + minval = maxval = fval; + } + else + { + if (fval < minval) minval = fval; + if (fval > maxval) maxval = fval; + } + + /* handle the wrap-around (ring buffer) issue using modulus. for efficiency, don't do this for non-wraparound cases. */ + /* note this allows multiple wrap-arounds. One could hold a single cycle of a sine wave, and plot a continuous wave */ + /* This can be optimized using pointers later */ + if (i + start > maxlen) + indx = ((i + start) % maxlen) * stride; + else + indx += stride; + } while (++i < len); + + values = priv->Y2; + start = priv->y2start; + stride = priv->y2stride; + + indx = start * stride; + i = 0; + do { + if (vtype == G_TYPE_FLOAT) + fval = ((gfloat *)values)[indx]; + else if (vtype == G_TYPE_DOUBLE) + fval = ((gdouble *)values)[indx]; + else if (vtype == G_TYPE_INT) + fval = ((gint *)values)[indx]; + else if (vtype == G_TYPE_UINT) + fval = ((guint *)values)[indx]; + else if (vtype == G_TYPE_LONG) + fval = ((glong *)values)[indx]; + else if (vtype == G_TYPE_ULONG) + fval = ((gulong *)values)[indx]; + else if (vtype == G_TYPE_INT64) + fval = ((gint64 *)values)[indx]; + else if (vtype == G_TYPE_UINT64) + fval = ((guint64 *)values)[indx]; + else if (vtype == G_TYPE_CHAR) + fval = ((gchar *)values)[indx]; + else if (vtype == G_TYPE_UCHAR) + fval = ((guchar *)values)[indx]; + + /* Note that this is different from where we checked Y1 */ + if (fval < minval) minval = fval; + if (fval > maxval) maxval = fval; + + /* handle the wrap-around (ring buffer) issue using modulus. for efficiency, don't do this for non-wraparound cases. */ + /* note this allows multiple wrap-arounds. One could hold a single cycle of a sine wave, and plot a continuous wave */ + /* This can be optimized using pointers later */ + if (i + start > maxlen) + indx = ((i + start) % maxlen) * stride; + else + indx += stride; + } while (++i < len); + + *min_y = minval; + *max_y = maxval; + + return 0; +} diff -Nru klavaro-1.9.9/gtkdatabox/gtkdatabox_xyyc_graph.h klavaro-3.00/gtkdatabox/gtkdatabox_xyyc_graph.h --- klavaro-1.9.9/gtkdatabox/gtkdatabox_xyyc_graph.h 1970-01-01 00:00:00.000000000 +0000 +++ klavaro-3.00/gtkdatabox/gtkdatabox_xyyc_graph.h 2014-01-03 18:40:55.000000000 +0000 @@ -0,0 +1,95 @@ +/* $Id: gtkdatabox_xyyc_graph.h 4 2008-06-22 09:19:11Z rbock $ */ +/* GtkDatabox - An extension to the gtk+ library + * Copyright (C) 1998 - 2008 Dr. Roland Bock + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public License + * as published by the Free Software Foundation; either version 2.1 + * of the License, or (at your option) any later version. + * + * 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 Lesser 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., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + */ + +/** + * SECTION:gtkdatabox_xyyc_graph + * @short_description: An abstract anchestor for all graphs which display xyy-values (x, y1 and y2 values) in one color. + * @include: gtkdatabox_xyyc_graph.h + * @see_also: #GtkDatabox, #GtkDataboxOffsetBars + * + * GtkDataboxXYYCGraphs are an abstract class for displaying XYY-data (x, y1 and y2 values) in one color. The values for the data are represented + * as an array of X values, an array of Y1 values and an array of Y2 values. In order to actually display data, you should + * use one of the derived classes. + * + */ + +#ifndef __GTK_DATABOX_XYYC_GRAPH_H__ +#define __GTK_DATABOX_XYYC_GRAPH_H__ + +#include + +G_BEGIN_DECLS +#define GTK_DATABOX_TYPE_XYYC_GRAPH (gtk_databox_xyyc_graph_get_type ()) +#define GTK_DATABOX_XYYC_GRAPH(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), \ + GTK_DATABOX_TYPE_XYYC_GRAPH, \ + GtkDataboxXYYCGraph)) +#define GTK_DATABOX_XYYC_GRAPH_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), \ + GTK_DATABOX_TYPE_XYYC_GRAPH, \ + GtkDataboxXYYCGraphClass)) +#define GTK_DATABOX_IS_XYYC_GRAPH(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), \ + GTK_DATABOX_TYPE_XYYC_GRAPH)) +#define GTK_DATABOX_IS_XYYC_GRAPH_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), \ + GTK_DATABOX_TYPE_XYYC_GRAPH)) +#define GTK_DATABOX_XYYC_GRAPH_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), \ + GTK_DATABOX_TYPE_XYYC_GRAPH, \ + GtkDataboxXYYCGraphClass)) +#define GTK_DATABOX_XYYC_GRAPH_GET_PRIVATE(obj) \ + G_TYPE_INSTANCE_GET_PRIVATE ((obj), GTK_DATABOX_TYPE_XYYC_GRAPH, GtkDataboxXYYCGraphPrivate) + +/** + * GtkDataboxXYYCGraph: + * + * GtkDataboxXYYCGraphs are an abstract class for displaying XY-data in one color. The values for the data are represented + * as an array of X values and a second array of Y values. In order to actually display data, you should + * use one of the derived classes. + * + */ + typedef struct _GtkDataboxXYYCGraph GtkDataboxXYYCGraph; + + typedef struct _GtkDataboxXYYCGraphClass GtkDataboxXYYCGraphClass; + + struct _GtkDataboxXYYCGraph + { + /*< private >*/ + GtkDataboxGraph parent; + }; + + struct _GtkDataboxXYYCGraphClass + { + GtkDataboxGraphClass parent_class; + }; + + GType gtk_databox_xyyc_graph_get_type (void); + + guint gtk_databox_xyyc_graph_get_length (GtkDataboxXYYCGraph * xyyc_graph); + guint gtk_databox_xyyc_graph_get_maxlen (GtkDataboxXYYCGraph * xyyc_graph); + gfloat *gtk_databox_xyyc_graph_get_X (GtkDataboxXYYCGraph * xyyc_graph); + gfloat *gtk_databox_xyyc_graph_get_Y1 (GtkDataboxXYYCGraph * xyyc_graph); + gfloat *gtk_databox_xyyc_graph_get_Y2 (GtkDataboxXYYCGraph * xyyc_graph); + guint gtk_databox_xyyc_graph_get_xstart (GtkDataboxXYYCGraph * xyyc_graph); + guint gtk_databox_xyyc_graph_get_y1start (GtkDataboxXYYCGraph * xyyc_graph); + guint gtk_databox_xyyc_graph_get_y2start (GtkDataboxXYYCGraph * xyyc_graph); + guint gtk_databox_xyyc_graph_get_xstride (GtkDataboxXYYCGraph * xyyc_graph); + guint gtk_databox_xyyc_graph_get_y1stride (GtkDataboxXYYCGraph * xyyc_graph); + guint gtk_databox_xyyc_graph_get_y2stride (GtkDataboxXYYCGraph * xyyc_graph); + GType gtk_databox_xyyc_graph_get_xtype (GtkDataboxXYYCGraph * xyyc_graph); + GType gtk_databox_xyyc_graph_get_ytype (GtkDataboxXYYCGraph * xyyc_graph); + +G_END_DECLS +#endif /* __GTK_DATABOX_XYYC_GRAPH_H__ */ diff -Nru klavaro-1.9.9/gtkdatabox/Makefile.am klavaro-3.00/gtkdatabox/Makefile.am --- klavaro-1.9.9/gtkdatabox/Makefile.am 1970-01-01 00:00:00.000000000 +0000 +++ klavaro-3.00/gtkdatabox/Makefile.am 2014-01-04 18:36:44.000000000 +0000 @@ -0,0 +1,69 @@ +# $Id: Makefile.am 4 2008-06-22 09:19:11Z rbock $ + +lib_LTLIBRARIES = libgtkdatabox.la +libgtkdatabox_la_SOURCES= \ + gtkdatabox.c\ + gtkdatabox_marshal.c\ + gtkdatabox_scale.c\ + gtkdatabox_graph.c\ + gtkdatabox_xyc_graph.c\ + gtkdatabox_xyyc_graph.c\ + gtkdatabox_points.c\ + gtkdatabox_lines.c\ + gtkdatabox_bars.c\ + gtkdatabox_offset_bars.c\ + gtkdatabox_regions.c\ + gtkdatabox_markers.c\ + gtkdatabox_cross_simple.c\ + gtkdatabox_grid.c\ + gtkdatabox_ruler.c\ + gtkdatabox_typedefs.h\ + gtkdatabox.h\ + gtkdatabox_marshal.h\ + gtkdatabox_scale.h\ + gtkdatabox_graph.h\ + gtkdatabox_xyc_graph.h\ + gtkdatabox_xyyc_graph.h\ + gtkdatabox_points.h\ + gtkdatabox_lines.h\ + gtkdatabox_bars.h\ + gtkdatabox_offset_bars.h\ + gtkdatabox_regions.h\ + gtkdatabox_markers.h\ + gtkdatabox_cross_simple.h\ + gtkdatabox_grid.h\ + gtkdatabox_ruler.h + +libgtkdatabox_la_LDFLAGS= \ + -no-undefined\ + @GTK_LIBS@ +# -version-info $(LT_CURRENT) +# -release $(LT_RELEASE) + + +EXTRA_DIST = gtkdatabox_marshal.list + +BUILT_SOURCES = gtkdatabox_marshal.c gtkdatabox_marshal.h + +$(srcdir)/gtkdatabox_marshal.c: $(srcdir)/gtkdatabox_marshal.list + glib-genmarshal --body --prefix=gtk_databox_marshal --internal $< > $@ + +$(srcdir)/gtkdatabox_marshal.h: $(srcdir)/gtkdatabox_marshal.list + glib-genmarshal --header --prefix=gtk_databox_marshal --internal $< > $@ + +AM_CPPFLAGS = \ + -I$(top_srcdir) + +AM_CFLAGS =\ + -O2\ + -W -Wall -pedantic\ + -DG_DISABLE_DEPRECATED\ + -DGDK_DISABLE_DEPRECATED\ + -DGDK_PIXBUF_DISABLE_DEPRECATED\ + -DGTK_DISABLE_DEPRECATED\ + -DGTK_MULTIHEAD_SAFE=1\ + -DGSEAL_ENABLE\ + -DGTK_DISABLE_SINGLE_INCLUDES\ + @GTK_CFLAGS@ + +AM_LDFLAGS = -static diff -Nru klavaro-1.9.9/gtkdatabox/Makefile.in klavaro-3.00/gtkdatabox/Makefile.in --- klavaro-1.9.9/gtkdatabox/Makefile.in 1970-01-01 00:00:00.000000000 +0000 +++ klavaro-3.00/gtkdatabox/Makefile.in 2014-01-21 23:25:39.000000000 +0000 @@ -0,0 +1,761 @@ +# Makefile.in generated by automake 1.14.1 from Makefile.am. +# @configure_input@ + +# Copyright (C) 1994-2013 Free Software Foundation, Inc. + +# This Makefile.in is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY, to the extent permitted by law; without +# even the implied warranty of MERCHANTABILITY or FITNESS FOR A +# PARTICULAR PURPOSE. + +@SET_MAKE@ + +# $Id: Makefile.am 4 2008-06-22 09:19:11Z rbock $ + +VPATH = @srcdir@ +am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)' +am__make_running_with_option = \ + case $${target_option-} in \ + ?) ;; \ + *) echo "am__make_running_with_option: internal error: invalid" \ + "target option '$${target_option-}' specified" >&2; \ + exit 1;; \ + esac; \ + has_opt=no; \ + sane_makeflags=$$MAKEFLAGS; \ + if $(am__is_gnu_make); then \ + sane_makeflags=$$MFLAGS; \ + else \ + case $$MAKEFLAGS in \ + *\\[\ \ ]*) \ + bs=\\; \ + sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \ + | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \ + esac; \ + fi; \ + skip_next=no; \ + strip_trailopt () \ + { \ + flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \ + }; \ + for flg in $$sane_makeflags; do \ + test $$skip_next = yes && { skip_next=no; continue; }; \ + case $$flg in \ + *=*|--*) continue;; \ + -*I) strip_trailopt 'I'; skip_next=yes;; \ + -*I?*) strip_trailopt 'I';; \ + -*O) strip_trailopt 'O'; skip_next=yes;; \ + -*O?*) strip_trailopt 'O';; \ + -*l) strip_trailopt 'l'; skip_next=yes;; \ + -*l?*) strip_trailopt 'l';; \ + -[dEDm]) skip_next=yes;; \ + -[JT]) skip_next=yes;; \ + esac; \ + case $$flg in \ + *$$target_option*) has_opt=yes; break;; \ + esac; \ + done; \ + test $$has_opt = yes +am__make_dryrun = (target_option=n; $(am__make_running_with_option)) +am__make_keepgoing = (target_option=k; $(am__make_running_with_option)) +pkgdatadir = $(datadir)/@PACKAGE@ +pkgincludedir = $(includedir)/@PACKAGE@ +pkglibdir = $(libdir)/@PACKAGE@ +pkglibexecdir = $(libexecdir)/@PACKAGE@ +am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd +install_sh_DATA = $(install_sh) -c -m 644 +install_sh_PROGRAM = $(install_sh) -c +install_sh_SCRIPT = $(install_sh) -c +INSTALL_HEADER = $(INSTALL_DATA) +transform = $(program_transform_name) +NORMAL_INSTALL = : +PRE_INSTALL = : +POST_INSTALL = : +NORMAL_UNINSTALL = : +PRE_UNINSTALL = : +POST_UNINSTALL = : +build_triplet = @build@ +host_triplet = @host@ +subdir = gtkdatabox +DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am \ + $(top_srcdir)/mkinstalldirs $(top_srcdir)/depcomp +ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 +am__aclocal_m4_deps = $(top_srcdir)/m4/gettext.m4 \ + $(top_srcdir)/m4/iconv.m4 $(top_srcdir)/m4/intltool.m4 \ + $(top_srcdir)/m4/lib-ld.m4 $(top_srcdir)/m4/lib-link.m4 \ + $(top_srcdir)/m4/lib-prefix.m4 $(top_srcdir)/m4/libtool.m4 \ + $(top_srcdir)/m4/ltoptions.m4 $(top_srcdir)/m4/ltsugar.m4 \ + $(top_srcdir)/m4/ltversion.m4 $(top_srcdir)/m4/lt~obsolete.m4 \ + $(top_srcdir)/m4/nls.m4 $(top_srcdir)/m4/po.m4 \ + $(top_srcdir)/m4/progtest.m4 $(top_srcdir)/configure.ac +am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ + $(ACLOCAL_M4) +mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs +CONFIG_HEADER = $(top_builddir)/config.h +CONFIG_CLEAN_FILES = +CONFIG_CLEAN_VPATH_FILES = +am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; +am__vpath_adj = case $$p in \ + $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \ + *) f=$$p;; \ + esac; +am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`; +am__install_max = 40 +am__nobase_strip_setup = \ + srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'` +am__nobase_strip = \ + for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||" +am__nobase_list = $(am__nobase_strip_setup); \ + for p in $$list; do echo "$$p $$p"; done | \ + sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \ + $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \ + if (++n[$$2] == $(am__install_max)) \ + { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \ + END { for (dir in files) print dir, files[dir] }' +am__base_list = \ + sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \ + sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g' +am__uninstall_files_from_dir = { \ + test -z "$$files" \ + || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \ + || { echo " ( cd '$$dir' && rm -f" $$files ")"; \ + $(am__cd) "$$dir" && rm -f $$files; }; \ + } +am__installdirs = "$(DESTDIR)$(libdir)" +LTLIBRARIES = $(lib_LTLIBRARIES) +libgtkdatabox_la_LIBADD = +am_libgtkdatabox_la_OBJECTS = gtkdatabox.lo gtkdatabox_marshal.lo \ + gtkdatabox_scale.lo gtkdatabox_graph.lo \ + gtkdatabox_xyc_graph.lo gtkdatabox_xyyc_graph.lo \ + gtkdatabox_points.lo gtkdatabox_lines.lo gtkdatabox_bars.lo \ + gtkdatabox_offset_bars.lo gtkdatabox_regions.lo \ + gtkdatabox_markers.lo gtkdatabox_cross_simple.lo \ + gtkdatabox_grid.lo gtkdatabox_ruler.lo +libgtkdatabox_la_OBJECTS = $(am_libgtkdatabox_la_OBJECTS) +AM_V_lt = $(am__v_lt_@AM_V@) +am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@) +am__v_lt_0 = --silent +am__v_lt_1 = +libgtkdatabox_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \ + $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link $(CCLD) \ + $(AM_CFLAGS) $(CFLAGS) $(libgtkdatabox_la_LDFLAGS) $(LDFLAGS) \ + -o $@ +AM_V_P = $(am__v_P_@AM_V@) +am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) +am__v_P_0 = false +am__v_P_1 = : +AM_V_GEN = $(am__v_GEN_@AM_V@) +am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) +am__v_GEN_0 = @echo " GEN " $@; +am__v_GEN_1 = +AM_V_at = $(am__v_at_@AM_V@) +am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) +am__v_at_0 = @ +am__v_at_1 = +DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir) +depcomp = $(SHELL) $(top_srcdir)/depcomp +am__depfiles_maybe = depfiles +am__mv = mv -f +COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \ + $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) +LTCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ + $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) \ + $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \ + $(AM_CFLAGS) $(CFLAGS) +AM_V_CC = $(am__v_CC_@AM_V@) +am__v_CC_ = $(am__v_CC_@AM_DEFAULT_V@) +am__v_CC_0 = @echo " CC " $@; +am__v_CC_1 = +CCLD = $(CC) +LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ + $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ + $(AM_LDFLAGS) $(LDFLAGS) -o $@ +AM_V_CCLD = $(am__v_CCLD_@AM_V@) +am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@) +am__v_CCLD_0 = @echo " CCLD " $@; +am__v_CCLD_1 = +SOURCES = $(libgtkdatabox_la_SOURCES) +DIST_SOURCES = $(libgtkdatabox_la_SOURCES) +am__can_run_installinfo = \ + case $$AM_UPDATE_INFO_DIR in \ + n|no|NO) false;; \ + *) (install-info --version) >/dev/null 2>&1;; \ + esac +am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP) +# Read a list of newline-separated strings from the standard input, +# and print each of them once, without duplicates. Input order is +# *not* preserved. +am__uniquify_input = $(AWK) '\ + BEGIN { nonempty = 0; } \ + { items[$$0] = 1; nonempty = 1; } \ + END { if (nonempty) { for (i in items) print i; }; } \ +' +# Make sure the list of sources is unique. This is necessary because, +# e.g., the same source file might be shared among _SOURCES variables +# for different programs/libraries. +am__define_uniq_tagged_files = \ + list='$(am__tagged_files)'; \ + unique=`for i in $$list; do \ + if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ + done | $(am__uniquify_input)` +ETAGS = etags +CTAGS = ctags +DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) +ACLOCAL = @ACLOCAL@ +ALL_LINGUAS = @ALL_LINGUAS@ +AMTAR = @AMTAR@ +AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ +AR = @AR@ +AUTOCONF = @AUTOCONF@ +AUTOHEADER = @AUTOHEADER@ +AUTOMAKE = @AUTOMAKE@ +AWK = @AWK@ +CAIRO_CFLAGS = @CAIRO_CFLAGS@ +CAIRO_LIBS = @CAIRO_LIBS@ +CC = @CC@ +CCDEPMODE = @CCDEPMODE@ +CFLAGS = @CFLAGS@ +CPP = @CPP@ +CPPFLAGS = @CPPFLAGS@ +CYGPATH_W = @CYGPATH_W@ +DATADIRNAME = @DATADIRNAME@ +DEFS = @DEFS@ +DEPDIR = @DEPDIR@ +DLLTOOL = @DLLTOOL@ +DSYMUTIL = @DSYMUTIL@ +DUMPBIN = @DUMPBIN@ +ECHO_C = @ECHO_C@ +ECHO_N = @ECHO_N@ +ECHO_T = @ECHO_T@ +EGREP = @EGREP@ +EXEEXT = @EXEEXT@ +FGREP = @FGREP@ +GETTEXT_MACRO_VERSION = @GETTEXT_MACRO_VERSION@ +GETTEXT_PACKAGE = @GETTEXT_PACKAGE@ +GMSGFMT = @GMSGFMT@ +GMSGFMT_015 = @GMSGFMT_015@ +GREP = @GREP@ +GTK_CFLAGS = @GTK_CFLAGS@ +GTK_LIBS = @GTK_LIBS@ +INSTALL = @INSTALL@ +INSTALL_DATA = @INSTALL_DATA@ +INSTALL_PROGRAM = @INSTALL_PROGRAM@ +INSTALL_SCRIPT = @INSTALL_SCRIPT@ +INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ +INTLLIBS = @INTLLIBS@ +INTLTOOL_EXTRACT = @INTLTOOL_EXTRACT@ +INTLTOOL_MERGE = @INTLTOOL_MERGE@ +INTLTOOL_PERL = @INTLTOOL_PERL@ +INTLTOOL_UPDATE = @INTLTOOL_UPDATE@ +INTLTOOL_V_MERGE = @INTLTOOL_V_MERGE@ +INTLTOOL_V_MERGE_OPTIONS = @INTLTOOL_V_MERGE_OPTIONS@ +INTLTOOL__v_MERGE_ = @INTLTOOL__v_MERGE_@ +INTLTOOL__v_MERGE_0 = @INTLTOOL__v_MERGE_0@ +INTL_MACOSX_LIBS = @INTL_MACOSX_LIBS@ +LD = @LD@ +LDFLAGS = @LDFLAGS@ +LIBICONV = @LIBICONV@ +LIBINTL = @LIBINTL@ +LIBOBJS = @LIBOBJS@ +LIBS = @LIBS@ +LIBTOOL = @LIBTOOL@ +LIPO = @LIPO@ +LN_S = @LN_S@ +LTLIBICONV = @LTLIBICONV@ +LTLIBINTL = @LTLIBINTL@ +LTLIBOBJS = @LTLIBOBJS@ +MAKEINFO = @MAKEINFO@ +MANIFEST_TOOL = @MANIFEST_TOOL@ +MKDIR_P = @MKDIR_P@ +MSGFMT = @MSGFMT@ +MSGFMT_015 = @MSGFMT_015@ +MSGMERGE = @MSGMERGE@ +NM = @NM@ +NMEDIT = @NMEDIT@ +OBJDUMP = @OBJDUMP@ +OBJEXT = @OBJEXT@ +OTOOL = @OTOOL@ +OTOOL64 = @OTOOL64@ +PACKAGE = @PACKAGE@ +PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ +PACKAGE_NAME = @PACKAGE_NAME@ +PACKAGE_STRING = @PACKAGE_STRING@ +PACKAGE_TARNAME = @PACKAGE_TARNAME@ +PACKAGE_URL = @PACKAGE_URL@ +PACKAGE_VERSION = @PACKAGE_VERSION@ +PANGO_CFLAGS = @PANGO_CFLAGS@ +PANGO_LIBS = @PANGO_LIBS@ +PATH_SEPARATOR = @PATH_SEPARATOR@ +PKG_CONFIG = @PKG_CONFIG@ +PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@ +PKG_CONFIG_PATH = @PKG_CONFIG_PATH@ +POSUB = @POSUB@ +POW_LIB = @POW_LIB@ +RANLIB = @RANLIB@ +SED = @SED@ +SET_MAKE = @SET_MAKE@ +SHELL = @SHELL@ +STRIP = @STRIP@ +USE_NLS = @USE_NLS@ +VERSION = @VERSION@ +XGETTEXT = @XGETTEXT@ +XGETTEXT_015 = @XGETTEXT_015@ +XGETTEXT_EXTRA_OPTIONS = @XGETTEXT_EXTRA_OPTIONS@ +abs_builddir = @abs_builddir@ +abs_srcdir = @abs_srcdir@ +abs_top_builddir = @abs_top_builddir@ +abs_top_srcdir = @abs_top_srcdir@ +ac_ct_AR = @ac_ct_AR@ +ac_ct_CC = @ac_ct_CC@ +ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ +am__include = @am__include@ +am__leading_dot = @am__leading_dot@ +am__quote = @am__quote@ +am__tar = @am__tar@ +am__untar = @am__untar@ +bindir = @bindir@ +build = @build@ +build_alias = @build_alias@ +build_cpu = @build_cpu@ +build_os = @build_os@ +build_vendor = @build_vendor@ +builddir = @builddir@ +datadir = @datadir@ +datarootdir = @datarootdir@ +docdir = @docdir@ +dvidir = @dvidir@ +exec_prefix = @exec_prefix@ +host = @host@ +host_alias = @host_alias@ +host_cpu = @host_cpu@ +host_os = @host_os@ +host_vendor = @host_vendor@ +htmldir = @htmldir@ +includedir = @includedir@ +infodir = @infodir@ +install_sh = @install_sh@ +intltool__v_merge_options_ = @intltool__v_merge_options_@ +intltool__v_merge_options_0 = @intltool__v_merge_options_0@ +libdir = @libdir@ +libexecdir = @libexecdir@ +localedir = @localedir@ +localstatedir = @localstatedir@ +mandir = @mandir@ +mkdir_p = @mkdir_p@ +oldincludedir = @oldincludedir@ +pdfdir = @pdfdir@ +prefix = @prefix@ +program_transform_name = @program_transform_name@ +psdir = @psdir@ +sbindir = @sbindir@ +sharedstatedir = @sharedstatedir@ +srcdir = @srcdir@ +sysconfdir = @sysconfdir@ +target_alias = @target_alias@ +top_build_prefix = @top_build_prefix@ +top_builddir = @top_builddir@ +top_srcdir = @top_srcdir@ +lib_LTLIBRARIES = libgtkdatabox.la +libgtkdatabox_la_SOURCES = \ + gtkdatabox.c\ + gtkdatabox_marshal.c\ + gtkdatabox_scale.c\ + gtkdatabox_graph.c\ + gtkdatabox_xyc_graph.c\ + gtkdatabox_xyyc_graph.c\ + gtkdatabox_points.c\ + gtkdatabox_lines.c\ + gtkdatabox_bars.c\ + gtkdatabox_offset_bars.c\ + gtkdatabox_regions.c\ + gtkdatabox_markers.c\ + gtkdatabox_cross_simple.c\ + gtkdatabox_grid.c\ + gtkdatabox_ruler.c\ + gtkdatabox_typedefs.h\ + gtkdatabox.h\ + gtkdatabox_marshal.h\ + gtkdatabox_scale.h\ + gtkdatabox_graph.h\ + gtkdatabox_xyc_graph.h\ + gtkdatabox_xyyc_graph.h\ + gtkdatabox_points.h\ + gtkdatabox_lines.h\ + gtkdatabox_bars.h\ + gtkdatabox_offset_bars.h\ + gtkdatabox_regions.h\ + gtkdatabox_markers.h\ + gtkdatabox_cross_simple.h\ + gtkdatabox_grid.h\ + gtkdatabox_ruler.h + +libgtkdatabox_la_LDFLAGS = \ + -no-undefined\ + @GTK_LIBS@ + +# -version-info $(LT_CURRENT) +# -release $(LT_RELEASE) +EXTRA_DIST = gtkdatabox_marshal.list +BUILT_SOURCES = gtkdatabox_marshal.c gtkdatabox_marshal.h +AM_CPPFLAGS = \ + -I$(top_srcdir) + +AM_CFLAGS = \ + -O2\ + -W -Wall -pedantic\ + -DG_DISABLE_DEPRECATED\ + -DGDK_DISABLE_DEPRECATED\ + -DGDK_PIXBUF_DISABLE_DEPRECATED\ + -DGTK_DISABLE_DEPRECATED\ + -DGTK_MULTIHEAD_SAFE=1\ + -DGSEAL_ENABLE\ + -DGTK_DISABLE_SINGLE_INCLUDES\ + @GTK_CFLAGS@ + +AM_LDFLAGS = -static +all: $(BUILT_SOURCES) + $(MAKE) $(AM_MAKEFLAGS) all-am + +.SUFFIXES: +.SUFFIXES: .c .lo .o .obj +$(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps) + @for dep in $?; do \ + case '$(am__configure_deps)' in \ + *$$dep*) \ + ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ + && { if test -f $@; then exit 0; else break; fi; }; \ + exit 1;; \ + esac; \ + done; \ + echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu gtkdatabox/Makefile'; \ + $(am__cd) $(top_srcdir) && \ + $(AUTOMAKE) --gnu gtkdatabox/Makefile +.PRECIOUS: Makefile +Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status + @case '$?' in \ + *config.status*) \ + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ + *) \ + echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ + cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ + esac; + +$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh + +$(top_srcdir)/configure: $(am__configure_deps) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh +$(ACLOCAL_M4): $(am__aclocal_m4_deps) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh +$(am__aclocal_m4_deps): + +install-libLTLIBRARIES: $(lib_LTLIBRARIES) + @$(NORMAL_INSTALL) + @list='$(lib_LTLIBRARIES)'; test -n "$(libdir)" || list=; \ + list2=; for p in $$list; do \ + if test -f $$p; then \ + list2="$$list2 $$p"; \ + else :; fi; \ + done; \ + test -z "$$list2" || { \ + echo " $(MKDIR_P) '$(DESTDIR)$(libdir)'"; \ + $(MKDIR_P) "$(DESTDIR)$(libdir)" || exit 1; \ + echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 '$(DESTDIR)$(libdir)'"; \ + $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 "$(DESTDIR)$(libdir)"; \ + } + +uninstall-libLTLIBRARIES: + @$(NORMAL_UNINSTALL) + @list='$(lib_LTLIBRARIES)'; test -n "$(libdir)" || list=; \ + for p in $$list; do \ + $(am__strip_dir) \ + echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=uninstall rm -f '$(DESTDIR)$(libdir)/$$f'"; \ + $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=uninstall rm -f "$(DESTDIR)$(libdir)/$$f"; \ + done + +clean-libLTLIBRARIES: + -test -z "$(lib_LTLIBRARIES)" || rm -f $(lib_LTLIBRARIES) + @list='$(lib_LTLIBRARIES)'; \ + locs=`for p in $$list; do echo $$p; done | \ + sed 's|^[^/]*$$|.|; s|/[^/]*$$||; s|$$|/so_locations|' | \ + sort -u`; \ + test -z "$$locs" || { \ + echo rm -f $${locs}; \ + rm -f $${locs}; \ + } + +libgtkdatabox.la: $(libgtkdatabox_la_OBJECTS) $(libgtkdatabox_la_DEPENDENCIES) $(EXTRA_libgtkdatabox_la_DEPENDENCIES) + $(AM_V_CCLD)$(libgtkdatabox_la_LINK) -rpath $(libdir) $(libgtkdatabox_la_OBJECTS) $(libgtkdatabox_la_LIBADD) $(LIBS) + +mostlyclean-compile: + -rm -f *.$(OBJEXT) + +distclean-compile: + -rm -f *.tab.c + +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/gtkdatabox.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/gtkdatabox_bars.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/gtkdatabox_cross_simple.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/gtkdatabox_graph.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/gtkdatabox_grid.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/gtkdatabox_lines.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/gtkdatabox_markers.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/gtkdatabox_marshal.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/gtkdatabox_offset_bars.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/gtkdatabox_points.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/gtkdatabox_regions.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/gtkdatabox_ruler.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/gtkdatabox_scale.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/gtkdatabox_xyc_graph.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/gtkdatabox_xyyc_graph.Plo@am__quote@ + +.c.o: +@am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(COMPILE) -c -o $@ $< + +.c.obj: +@am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(COMPILE) -c -o $@ `$(CYGPATH_W) '$<'` + +.c.lo: +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LTCOMPILE) -c -o $@ $< + +mostlyclean-libtool: + -rm -f *.lo + +clean-libtool: + -rm -rf .libs _libs + +ID: $(am__tagged_files) + $(am__define_uniq_tagged_files); mkid -fID $$unique +tags: tags-am +TAGS: tags + +tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) + set x; \ + here=`pwd`; \ + $(am__define_uniq_tagged_files); \ + shift; \ + if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ + test -n "$$unique" || unique=$$empty_fix; \ + if test $$# -gt 0; then \ + $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ + "$$@" $$unique; \ + else \ + $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ + $$unique; \ + fi; \ + fi +ctags: ctags-am + +CTAGS: ctags +ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) + $(am__define_uniq_tagged_files); \ + test -z "$(CTAGS_ARGS)$$unique" \ + || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ + $$unique + +GTAGS: + here=`$(am__cd) $(top_builddir) && pwd` \ + && $(am__cd) $(top_srcdir) \ + && gtags -i $(GTAGS_ARGS) "$$here" +cscopelist: cscopelist-am + +cscopelist-am: $(am__tagged_files) + list='$(am__tagged_files)'; \ + case "$(srcdir)" in \ + [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \ + *) sdir=$(subdir)/$(srcdir) ;; \ + esac; \ + for i in $$list; do \ + if test -f "$$i"; then \ + echo "$(subdir)/$$i"; \ + else \ + echo "$$sdir/$$i"; \ + fi; \ + done >> $(top_builddir)/cscope.files + +distclean-tags: + -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags + +distdir: $(DISTFILES) + @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ + topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ + list='$(DISTFILES)'; \ + dist_files=`for file in $$list; do echo $$file; done | \ + sed -e "s|^$$srcdirstrip/||;t" \ + -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ + case $$dist_files in \ + */*) $(MKDIR_P) `echo "$$dist_files" | \ + sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ + sort -u` ;; \ + esac; \ + for file in $$dist_files; do \ + if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ + if test -d $$d/$$file; then \ + dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ + if test -d "$(distdir)/$$file"; then \ + find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ + fi; \ + if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ + cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ + find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ + fi; \ + cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ + else \ + test -f "$(distdir)/$$file" \ + || cp -p $$d/$$file "$(distdir)/$$file" \ + || exit 1; \ + fi; \ + done +check-am: all-am +check: $(BUILT_SOURCES) + $(MAKE) $(AM_MAKEFLAGS) check-am +all-am: Makefile $(LTLIBRARIES) +installdirs: + for dir in "$(DESTDIR)$(libdir)"; do \ + test -z "$$dir" || $(MKDIR_P) "$$dir"; \ + done +install: $(BUILT_SOURCES) + $(MAKE) $(AM_MAKEFLAGS) install-am +install-exec: install-exec-am +install-data: install-data-am +uninstall: uninstall-am + +install-am: all-am + @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am + +installcheck: installcheck-am +install-strip: + if test -z '$(STRIP)'; then \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + install; \ + else \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ + fi +mostlyclean-generic: + +clean-generic: + +distclean-generic: + -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) + -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) + +maintainer-clean-generic: + @echo "This command is intended for maintainers to use" + @echo "it deletes files that may require special tools to rebuild." + -test -z "$(BUILT_SOURCES)" || rm -f $(BUILT_SOURCES) +clean: clean-am + +clean-am: clean-generic clean-libLTLIBRARIES clean-libtool \ + mostlyclean-am + +distclean: distclean-am + -rm -rf ./$(DEPDIR) + -rm -f Makefile +distclean-am: clean-am distclean-compile distclean-generic \ + distclean-tags + +dvi: dvi-am + +dvi-am: + +html: html-am + +html-am: + +info: info-am + +info-am: + +install-data-am: + +install-dvi: install-dvi-am + +install-dvi-am: + +install-exec-am: install-libLTLIBRARIES + +install-html: install-html-am + +install-html-am: + +install-info: install-info-am + +install-info-am: + +install-man: + +install-pdf: install-pdf-am + +install-pdf-am: + +install-ps: install-ps-am + +install-ps-am: + +installcheck-am: + +maintainer-clean: maintainer-clean-am + -rm -rf ./$(DEPDIR) + -rm -f Makefile +maintainer-clean-am: distclean-am maintainer-clean-generic + +mostlyclean: mostlyclean-am + +mostlyclean-am: mostlyclean-compile mostlyclean-generic \ + mostlyclean-libtool + +pdf: pdf-am + +pdf-am: + +ps: ps-am + +ps-am: + +uninstall-am: uninstall-libLTLIBRARIES + +.MAKE: all check install install-am install-strip + +.PHONY: CTAGS GTAGS TAGS all all-am check check-am clean clean-generic \ + clean-libLTLIBRARIES clean-libtool cscopelist-am ctags \ + ctags-am distclean distclean-compile distclean-generic \ + distclean-libtool distclean-tags distdir dvi dvi-am html \ + html-am info info-am install install-am install-data \ + install-data-am install-dvi install-dvi-am install-exec \ + install-exec-am install-html install-html-am install-info \ + install-info-am install-libLTLIBRARIES install-man install-pdf \ + install-pdf-am install-ps install-ps-am install-strip \ + installcheck installcheck-am installdirs maintainer-clean \ + maintainer-clean-generic mostlyclean mostlyclean-compile \ + mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \ + tags tags-am uninstall uninstall-am uninstall-libLTLIBRARIES + + +$(srcdir)/gtkdatabox_marshal.c: $(srcdir)/gtkdatabox_marshal.list + glib-genmarshal --body --prefix=gtk_databox_marshal --internal $< > $@ + +$(srcdir)/gtkdatabox_marshal.h: $(srcdir)/gtkdatabox_marshal.list + glib-genmarshal --header --prefix=gtk_databox_marshal --internal $< > $@ + +# Tell versions [3.59,3.63) of GNU make to not export all variables. +# Otherwise a system limit (for SysV at least) may be exceeded. +.NOEXPORT: diff -Nru klavaro-1.9.9/ltmain.sh klavaro-3.00/ltmain.sh --- klavaro-1.9.9/ltmain.sh 1970-01-01 00:00:00.000000000 +0000 +++ klavaro-3.00/ltmain.sh 2014-01-02 20:30:56.000000000 +0000 @@ -0,0 +1,9661 @@ + +# libtool (GNU libtool) 2.4.2 +# Written by Gordon Matzigkeit , 1996 + +# Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2003, 2004, 2005, 2006, +# 2007, 2008, 2009, 2010, 2011 Free Software Foundation, Inc. +# This is free software; see the source for copying conditions. There is NO +# warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. + +# GNU Libtool is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 2 of the License, or +# (at your option) any later version. +# +# As a special exception to the GNU General Public License, +# if you distribute this file as part of a program or library that +# is built using GNU Libtool, you may include this file under the +# same distribution terms that you use for the rest of that program. +# +# GNU Libtool 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 GNU Libtool; see the file COPYING. If not, a copy +# can be downloaded from http://www.gnu.org/licenses/gpl.html, +# or obtained by writing to the Free Software Foundation, Inc., +# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + +# Usage: $progname [OPTION]... [MODE-ARG]... +# +# Provide generalized library-building support services. +# +# --config show all configuration variables +# --debug enable verbose shell tracing +# -n, --dry-run display commands without modifying any files +# --features display basic configuration information and exit +# --mode=MODE use operation mode MODE +# --preserve-dup-deps don't remove duplicate dependency libraries +# --quiet, --silent don't print informational messages +# --no-quiet, --no-silent +# print informational messages (default) +# --no-warn don't display warning messages +# --tag=TAG use configuration variables from tag TAG +# -v, --verbose print more informational messages than default +# --no-verbose don't print the extra informational messages +# --version print version information +# -h, --help, --help-all print short, long, or detailed help message +# +# MODE must be one of the following: +# +# clean remove files from the build directory +# compile compile a source file into a libtool object +# execute automatically set library path, then run a program +# finish complete the installation of libtool libraries +# install install libraries or executables +# link create a library or an executable +# uninstall remove libraries from an installed directory +# +# MODE-ARGS vary depending on the MODE. When passed as first option, +# `--mode=MODE' may be abbreviated as `MODE' or a unique abbreviation of that. +# Try `$progname --help --mode=MODE' for a more detailed description of MODE. +# +# When reporting a bug, please describe a test case to reproduce it and +# include the following information: +# +# host-triplet: $host +# shell: $SHELL +# compiler: $LTCC +# compiler flags: $LTCFLAGS +# linker: $LD (gnu? $with_gnu_ld) +# $progname: (GNU libtool) 2.4.2 Debian-2.4.2-1.6 +# automake: $automake_version +# autoconf: $autoconf_version +# +# Report bugs to . +# GNU libtool home page: . +# General help using GNU software: . + +PROGRAM=libtool +PACKAGE=libtool +VERSION="2.4.2 Debian-2.4.2-1.6" +TIMESTAMP="" +package_revision=1.3337 + +# Be Bourne compatible +if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then + emulate sh + NULLCMD=: + # Zsh 3.x and 4.x performs word splitting on ${1+"$@"}, which + # is contrary to our usage. Disable this feature. + alias -g '${1+"$@"}'='"$@"' + setopt NO_GLOB_SUBST +else + case `(set -o) 2>/dev/null` in *posix*) set -o posix;; esac +fi +BIN_SH=xpg4; export BIN_SH # for Tru64 +DUALCASE=1; export DUALCASE # for MKS sh + +# A function that is used when there is no print builtin or printf. +func_fallback_echo () +{ + eval 'cat <<_LTECHO_EOF +$1 +_LTECHO_EOF' +} + +# NLS nuisances: We save the old values to restore during execute mode. +lt_user_locale= +lt_safe_locale= +for lt_var in LANG LANGUAGE LC_ALL LC_CTYPE LC_COLLATE LC_MESSAGES +do + eval "if test \"\${$lt_var+set}\" = set; then + save_$lt_var=\$$lt_var + $lt_var=C + export $lt_var + lt_user_locale=\"$lt_var=\\\$save_\$lt_var; \$lt_user_locale\" + lt_safe_locale=\"$lt_var=C; \$lt_safe_locale\" + fi" +done +LC_ALL=C +LANGUAGE=C +export LANGUAGE LC_ALL + +$lt_unset CDPATH + + +# Work around backward compatibility issue on IRIX 6.5. On IRIX 6.4+, sh +# is ksh but when the shell is invoked as "sh" and the current value of +# the _XPG environment variable is not equal to 1 (one), the special +# positional parameter $0, within a function call, is the name of the +# function. +progpath="$0" + + + +: ${CP="cp -f"} +test "${ECHO+set}" = set || ECHO=${as_echo-'printf %s\n'} +: ${MAKE="make"} +: ${MKDIR="mkdir"} +: ${MV="mv -f"} +: ${RM="rm -f"} +: ${SHELL="${CONFIG_SHELL-/bin/sh}"} +: ${Xsed="$SED -e 1s/^X//"} + +# Global variables: +EXIT_SUCCESS=0 +EXIT_FAILURE=1 +EXIT_MISMATCH=63 # $? = 63 is used to indicate version mismatch to missing. +EXIT_SKIP=77 # $? = 77 is used to indicate a skipped test to automake. + +exit_status=$EXIT_SUCCESS + +# Make sure IFS has a sensible default +lt_nl=' +' +IFS=" $lt_nl" + +dirname="s,/[^/]*$,," +basename="s,^.*/,," + +# func_dirname file append nondir_replacement +# Compute the dirname of FILE. If nonempty, add APPEND to the result, +# otherwise set result to NONDIR_REPLACEMENT. +func_dirname () +{ + func_dirname_result=`$ECHO "${1}" | $SED "$dirname"` + if test "X$func_dirname_result" = "X${1}"; then + func_dirname_result="${3}" + else + func_dirname_result="$func_dirname_result${2}" + fi +} # func_dirname may be replaced by extended shell implementation + + +# func_basename file +func_basename () +{ + func_basename_result=`$ECHO "${1}" | $SED "$basename"` +} # func_basename may be replaced by extended shell implementation + + +# func_dirname_and_basename file append nondir_replacement +# perform func_basename and func_dirname in a single function +# call: +# dirname: Compute the dirname of FILE. If nonempty, +# add APPEND to the result, otherwise set result +# to NONDIR_REPLACEMENT. +# value returned in "$func_dirname_result" +# basename: Compute filename of FILE. +# value retuned in "$func_basename_result" +# Implementation must be kept synchronized with func_dirname +# and func_basename. For efficiency, we do not delegate to +# those functions but instead duplicate the functionality here. +func_dirname_and_basename () +{ + # Extract subdirectory from the argument. + func_dirname_result=`$ECHO "${1}" | $SED -e "$dirname"` + if test "X$func_dirname_result" = "X${1}"; then + func_dirname_result="${3}" + else + func_dirname_result="$func_dirname_result${2}" + fi + func_basename_result=`$ECHO "${1}" | $SED -e "$basename"` +} # func_dirname_and_basename may be replaced by extended shell implementation + + +# func_stripname prefix suffix name +# strip PREFIX and SUFFIX off of NAME. +# PREFIX and SUFFIX must not contain globbing or regex special +# characters, hashes, percent signs, but SUFFIX may contain a leading +# dot (in which case that matches only a dot). +# func_strip_suffix prefix name +func_stripname () +{ + case ${2} in + .*) func_stripname_result=`$ECHO "${3}" | $SED "s%^${1}%%; s%\\\\${2}\$%%"`;; + *) func_stripname_result=`$ECHO "${3}" | $SED "s%^${1}%%; s%${2}\$%%"`;; + esac +} # func_stripname may be replaced by extended shell implementation + + +# These SED scripts presuppose an absolute path with a trailing slash. +pathcar='s,^/\([^/]*\).*$,\1,' +pathcdr='s,^/[^/]*,,' +removedotparts=':dotsl + s@/\./@/@g + t dotsl + s,/\.$,/,' +collapseslashes='s@/\{1,\}@/@g' +finalslash='s,/*$,/,' + +# func_normal_abspath PATH +# Remove doubled-up and trailing slashes, "." path components, +# and cancel out any ".." path components in PATH after making +# it an absolute path. +# value returned in "$func_normal_abspath_result" +func_normal_abspath () +{ + # Start from root dir and reassemble the path. + func_normal_abspath_result= + func_normal_abspath_tpath=$1 + func_normal_abspath_altnamespace= + case $func_normal_abspath_tpath in + "") + # Empty path, that just means $cwd. + func_stripname '' '/' "`pwd`" + func_normal_abspath_result=$func_stripname_result + return + ;; + # The next three entries are used to spot a run of precisely + # two leading slashes without using negated character classes; + # we take advantage of case's first-match behaviour. + ///*) + # Unusual form of absolute path, do nothing. + ;; + //*) + # Not necessarily an ordinary path; POSIX reserves leading '//' + # and for example Cygwin uses it to access remote file shares + # over CIFS/SMB, so we conserve a leading double slash if found. + func_normal_abspath_altnamespace=/ + ;; + /*) + # Absolute path, do nothing. + ;; + *) + # Relative path, prepend $cwd. + func_normal_abspath_tpath=`pwd`/$func_normal_abspath_tpath + ;; + esac + # Cancel out all the simple stuff to save iterations. We also want + # the path to end with a slash for ease of parsing, so make sure + # there is one (and only one) here. + func_normal_abspath_tpath=`$ECHO "$func_normal_abspath_tpath" | $SED \ + -e "$removedotparts" -e "$collapseslashes" -e "$finalslash"` + while :; do + # Processed it all yet? + if test "$func_normal_abspath_tpath" = / ; then + # If we ascended to the root using ".." the result may be empty now. + if test -z "$func_normal_abspath_result" ; then + func_normal_abspath_result=/ + fi + break + fi + func_normal_abspath_tcomponent=`$ECHO "$func_normal_abspath_tpath" | $SED \ + -e "$pathcar"` + func_normal_abspath_tpath=`$ECHO "$func_normal_abspath_tpath" | $SED \ + -e "$pathcdr"` + # Figure out what to do with it + case $func_normal_abspath_tcomponent in + "") + # Trailing empty path component, ignore it. + ;; + ..) + # Parent dir; strip last assembled component from result. + func_dirname "$func_normal_abspath_result" + func_normal_abspath_result=$func_dirname_result + ;; + *) + # Actual path component, append it. + func_normal_abspath_result=$func_normal_abspath_result/$func_normal_abspath_tcomponent + ;; + esac + done + # Restore leading double-slash if one was found on entry. + func_normal_abspath_result=$func_normal_abspath_altnamespace$func_normal_abspath_result +} + +# func_relative_path SRCDIR DSTDIR +# generates a relative path from SRCDIR to DSTDIR, with a trailing +# slash if non-empty, suitable for immediately appending a filename +# without needing to append a separator. +# value returned in "$func_relative_path_result" +func_relative_path () +{ + func_relative_path_result= + func_normal_abspath "$1" + func_relative_path_tlibdir=$func_normal_abspath_result + func_normal_abspath "$2" + func_relative_path_tbindir=$func_normal_abspath_result + + # Ascend the tree starting from libdir + while :; do + # check if we have found a prefix of bindir + case $func_relative_path_tbindir in + $func_relative_path_tlibdir) + # found an exact match + func_relative_path_tcancelled= + break + ;; + $func_relative_path_tlibdir*) + # found a matching prefix + func_stripname "$func_relative_path_tlibdir" '' "$func_relative_path_tbindir" + func_relative_path_tcancelled=$func_stripname_result + if test -z "$func_relative_path_result"; then + func_relative_path_result=. + fi + break + ;; + *) + func_dirname $func_relative_path_tlibdir + func_relative_path_tlibdir=${func_dirname_result} + if test "x$func_relative_path_tlibdir" = x ; then + # Have to descend all the way to the root! + func_relative_path_result=../$func_relative_path_result + func_relative_path_tcancelled=$func_relative_path_tbindir + break + fi + func_relative_path_result=../$func_relative_path_result + ;; + esac + done + + # Now calculate path; take care to avoid doubling-up slashes. + func_stripname '' '/' "$func_relative_path_result" + func_relative_path_result=$func_stripname_result + func_stripname '/' '/' "$func_relative_path_tcancelled" + if test "x$func_stripname_result" != x ; then + func_relative_path_result=${func_relative_path_result}/${func_stripname_result} + fi + + # Normalisation. If bindir is libdir, return empty string, + # else relative path ending with a slash; either way, target + # file name can be directly appended. + if test ! -z "$func_relative_path_result"; then + func_stripname './' '' "$func_relative_path_result/" + func_relative_path_result=$func_stripname_result + fi +} + +# The name of this program: +func_dirname_and_basename "$progpath" +progname=$func_basename_result + +# Make sure we have an absolute path for reexecution: +case $progpath in + [\\/]*|[A-Za-z]:\\*) ;; + *[\\/]*) + progdir=$func_dirname_result + progdir=`cd "$progdir" && pwd` + progpath="$progdir/$progname" + ;; + *) + save_IFS="$IFS" + IFS=${PATH_SEPARATOR-:} + for progdir in $PATH; do + IFS="$save_IFS" + test -x "$progdir/$progname" && break + done + IFS="$save_IFS" + test -n "$progdir" || progdir=`pwd` + progpath="$progdir/$progname" + ;; +esac + +# Sed substitution that helps us do robust quoting. It backslashifies +# metacharacters that are still active within double-quoted strings. +Xsed="${SED}"' -e 1s/^X//' +sed_quote_subst='s/\([`"$\\]\)/\\\1/g' + +# Same as above, but do not quote variable references. +double_quote_subst='s/\(["`\\]\)/\\\1/g' + +# Sed substitution that turns a string into a regex matching for the +# string literally. +sed_make_literal_regex='s,[].[^$\\*\/],\\&,g' + +# Sed substitution that converts a w32 file name or path +# which contains forward slashes, into one that contains +# (escaped) backslashes. A very naive implementation. +lt_sed_naive_backslashify='s|\\\\*|\\|g;s|/|\\|g;s|\\|\\\\|g' + +# Re-`\' parameter expansions in output of double_quote_subst that were +# `\'-ed in input to the same. If an odd number of `\' preceded a '$' +# in input to double_quote_subst, that '$' was protected from expansion. +# Since each input `\' is now two `\'s, look for any number of runs of +# four `\'s followed by two `\'s and then a '$'. `\' that '$'. +bs='\\' +bs2='\\\\' +bs4='\\\\\\\\' +dollar='\$' +sed_double_backslash="\ + s/$bs4/&\\ +/g + s/^$bs2$dollar/$bs&/ + s/\\([^$bs]\\)$bs2$dollar/\\1$bs2$bs$dollar/g + s/\n//g" + +# Standard options: +opt_dry_run=false +opt_help=false +opt_quiet=false +opt_verbose=false +opt_warning=: + +# func_echo arg... +# Echo program name prefixed message, along with the current mode +# name if it has been set yet. +func_echo () +{ + $ECHO "$progname: ${opt_mode+$opt_mode: }$*" +} + +# func_verbose arg... +# Echo program name prefixed message in verbose mode only. +func_verbose () +{ + $opt_verbose && func_echo ${1+"$@"} + + # A bug in bash halts the script if the last line of a function + # fails when set -e is in force, so we need another command to + # work around that: + : +} + +# func_echo_all arg... +# Invoke $ECHO with all args, space-separated. +func_echo_all () +{ + $ECHO "$*" +} + +# func_error arg... +# Echo program name prefixed message to standard error. +func_error () +{ + $ECHO "$progname: ${opt_mode+$opt_mode: }"${1+"$@"} 1>&2 +} + +# func_warning arg... +# Echo program name prefixed warning message to standard error. +func_warning () +{ + $opt_warning && $ECHO "$progname: ${opt_mode+$opt_mode: }warning: "${1+"$@"} 1>&2 + + # bash bug again: + : +} + +# func_fatal_error arg... +# Echo program name prefixed message to standard error, and exit. +func_fatal_error () +{ + func_error ${1+"$@"} + exit $EXIT_FAILURE +} + +# func_fatal_help arg... +# Echo program name prefixed message to standard error, followed by +# a help hint, and exit. +func_fatal_help () +{ + func_error ${1+"$@"} + func_fatal_error "$help" +} +help="Try \`$progname --help' for more information." ## default + + +# func_grep expression filename +# Check whether EXPRESSION matches any line of FILENAME, without output. +func_grep () +{ + $GREP "$1" "$2" >/dev/null 2>&1 +} + + +# func_mkdir_p directory-path +# Make sure the entire path to DIRECTORY-PATH is available. +func_mkdir_p () +{ + my_directory_path="$1" + my_dir_list= + + if test -n "$my_directory_path" && test "$opt_dry_run" != ":"; then + + # Protect directory names starting with `-' + case $my_directory_path in + -*) my_directory_path="./$my_directory_path" ;; + esac + + # While some portion of DIR does not yet exist... + while test ! -d "$my_directory_path"; do + # ...make a list in topmost first order. Use a colon delimited + # list incase some portion of path contains whitespace. + my_dir_list="$my_directory_path:$my_dir_list" + + # If the last portion added has no slash in it, the list is done + case $my_directory_path in */*) ;; *) break ;; esac + + # ...otherwise throw away the child directory and loop + my_directory_path=`$ECHO "$my_directory_path" | $SED -e "$dirname"` + done + my_dir_list=`$ECHO "$my_dir_list" | $SED 's,:*$,,'` + + save_mkdir_p_IFS="$IFS"; IFS=':' + for my_dir in $my_dir_list; do + IFS="$save_mkdir_p_IFS" + # mkdir can fail with a `File exist' error if two processes + # try to create one of the directories concurrently. Don't + # stop in that case! + $MKDIR "$my_dir" 2>/dev/null || : + done + IFS="$save_mkdir_p_IFS" + + # Bail out if we (or some other process) failed to create a directory. + test -d "$my_directory_path" || \ + func_fatal_error "Failed to create \`$1'" + fi +} + + +# func_mktempdir [string] +# Make a temporary directory that won't clash with other running +# libtool processes, and avoids race conditions if possible. If +# given, STRING is the basename for that directory. +func_mktempdir () +{ + my_template="${TMPDIR-/tmp}/${1-$progname}" + + if test "$opt_dry_run" = ":"; then + # Return a directory name, but don't create it in dry-run mode + my_tmpdir="${my_template}-$$" + else + + # If mktemp works, use that first and foremost + my_tmpdir=`mktemp -d "${my_template}-XXXXXXXX" 2>/dev/null` + + if test ! -d "$my_tmpdir"; then + # Failing that, at least try and use $RANDOM to avoid a race + my_tmpdir="${my_template}-${RANDOM-0}$$" + + save_mktempdir_umask=`umask` + umask 0077 + $MKDIR "$my_tmpdir" + umask $save_mktempdir_umask + fi + + # If we're not in dry-run mode, bomb out on failure + test -d "$my_tmpdir" || \ + func_fatal_error "cannot create temporary directory \`$my_tmpdir'" + fi + + $ECHO "$my_tmpdir" +} + + +# func_quote_for_eval arg +# Aesthetically quote ARG to be evaled later. +# This function returns two values: FUNC_QUOTE_FOR_EVAL_RESULT +# is double-quoted, suitable for a subsequent eval, whereas +# FUNC_QUOTE_FOR_EVAL_UNQUOTED_RESULT has merely all characters +# which are still active within double quotes backslashified. +func_quote_for_eval () +{ + case $1 in + *[\\\`\"\$]*) + func_quote_for_eval_unquoted_result=`$ECHO "$1" | $SED "$sed_quote_subst"` ;; + *) + func_quote_for_eval_unquoted_result="$1" ;; + esac + + case $func_quote_for_eval_unquoted_result in + # Double-quote args containing shell metacharacters to delay + # word splitting, command substitution and and variable + # expansion for a subsequent eval. + # Many Bourne shells cannot handle close brackets correctly + # in scan sets, so we specify it separately. + *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"") + func_quote_for_eval_result="\"$func_quote_for_eval_unquoted_result\"" + ;; + *) + func_quote_for_eval_result="$func_quote_for_eval_unquoted_result" + esac +} + + +# func_quote_for_expand arg +# Aesthetically quote ARG to be evaled later; same as above, +# but do not quote variable references. +func_quote_for_expand () +{ + case $1 in + *[\\\`\"]*) + my_arg=`$ECHO "$1" | $SED \ + -e "$double_quote_subst" -e "$sed_double_backslash"` ;; + *) + my_arg="$1" ;; + esac + + case $my_arg in + # Double-quote args containing shell metacharacters to delay + # word splitting and command substitution for a subsequent eval. + # Many Bourne shells cannot handle close brackets correctly + # in scan sets, so we specify it separately. + *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"") + my_arg="\"$my_arg\"" + ;; + esac + + func_quote_for_expand_result="$my_arg" +} + + +# func_show_eval cmd [fail_exp] +# Unless opt_silent is true, then output CMD. Then, if opt_dryrun is +# not true, evaluate CMD. If the evaluation of CMD fails, and FAIL_EXP +# is given, then evaluate it. +func_show_eval () +{ + my_cmd="$1" + my_fail_exp="${2-:}" + + ${opt_silent-false} || { + func_quote_for_expand "$my_cmd" + eval "func_echo $func_quote_for_expand_result" + } + + if ${opt_dry_run-false}; then :; else + eval "$my_cmd" + my_status=$? + if test "$my_status" -eq 0; then :; else + eval "(exit $my_status); $my_fail_exp" + fi + fi +} + + +# func_show_eval_locale cmd [fail_exp] +# Unless opt_silent is true, then output CMD. Then, if opt_dryrun is +# not true, evaluate CMD. If the evaluation of CMD fails, and FAIL_EXP +# is given, then evaluate it. Use the saved locale for evaluation. +func_show_eval_locale () +{ + my_cmd="$1" + my_fail_exp="${2-:}" + + ${opt_silent-false} || { + func_quote_for_expand "$my_cmd" + eval "func_echo $func_quote_for_expand_result" + } + + if ${opt_dry_run-false}; then :; else + eval "$lt_user_locale + $my_cmd" + my_status=$? + eval "$lt_safe_locale" + if test "$my_status" -eq 0; then :; else + eval "(exit $my_status); $my_fail_exp" + fi + fi +} + +# func_tr_sh +# Turn $1 into a string suitable for a shell variable name. +# Result is stored in $func_tr_sh_result. All characters +# not in the set a-zA-Z0-9_ are replaced with '_'. Further, +# if $1 begins with a digit, a '_' is prepended as well. +func_tr_sh () +{ + case $1 in + [0-9]* | *[!a-zA-Z0-9_]*) + func_tr_sh_result=`$ECHO "$1" | $SED 's/^\([0-9]\)/_\1/; s/[^a-zA-Z0-9_]/_/g'` + ;; + * ) + func_tr_sh_result=$1 + ;; + esac +} + + +# func_version +# Echo version message to standard output and exit. +func_version () +{ + $opt_debug + + $SED -n '/(C)/!b go + :more + /\./!{ + N + s/\n# / / + b more + } + :go + /^# '$PROGRAM' (GNU /,/# warranty; / { + s/^# // + s/^# *$// + s/\((C)\)[ 0-9,-]*\( [1-9][0-9]*\)/\1\2/ + p + }' < "$progpath" + exit $? +} + +# func_usage +# Echo short help message to standard output and exit. +func_usage () +{ + $opt_debug + + $SED -n '/^# Usage:/,/^# *.*--help/ { + s/^# // + s/^# *$// + s/\$progname/'$progname'/ + p + }' < "$progpath" + echo + $ECHO "run \`$progname --help | more' for full usage" + exit $? +} + +# func_help [NOEXIT] +# Echo long help message to standard output and exit, +# unless 'noexit' is passed as argument. +func_help () +{ + $opt_debug + + $SED -n '/^# Usage:/,/# Report bugs to/ { + :print + s/^# // + s/^# *$// + s*\$progname*'$progname'* + s*\$host*'"$host"'* + s*\$SHELL*'"$SHELL"'* + s*\$LTCC*'"$LTCC"'* + s*\$LTCFLAGS*'"$LTCFLAGS"'* + s*\$LD*'"$LD"'* + s/\$with_gnu_ld/'"$with_gnu_ld"'/ + s/\$automake_version/'"`(${AUTOMAKE-automake} --version) 2>/dev/null |$SED 1q`"'/ + s/\$autoconf_version/'"`(${AUTOCONF-autoconf} --version) 2>/dev/null |$SED 1q`"'/ + p + d + } + /^# .* home page:/b print + /^# General help using/b print + ' < "$progpath" + ret=$? + if test -z "$1"; then + exit $ret + fi +} + +# func_missing_arg argname +# Echo program name prefixed message to standard error and set global +# exit_cmd. +func_missing_arg () +{ + $opt_debug + + func_error "missing argument for $1." + exit_cmd=exit +} + + +# func_split_short_opt shortopt +# Set func_split_short_opt_name and func_split_short_opt_arg shell +# variables after splitting SHORTOPT after the 2nd character. +func_split_short_opt () +{ + my_sed_short_opt='1s/^\(..\).*$/\1/;q' + my_sed_short_rest='1s/^..\(.*\)$/\1/;q' + + func_split_short_opt_name=`$ECHO "$1" | $SED "$my_sed_short_opt"` + func_split_short_opt_arg=`$ECHO "$1" | $SED "$my_sed_short_rest"` +} # func_split_short_opt may be replaced by extended shell implementation + + +# func_split_long_opt longopt +# Set func_split_long_opt_name and func_split_long_opt_arg shell +# variables after splitting LONGOPT at the `=' sign. +func_split_long_opt () +{ + my_sed_long_opt='1s/^\(--[^=]*\)=.*/\1/;q' + my_sed_long_arg='1s/^--[^=]*=//' + + func_split_long_opt_name=`$ECHO "$1" | $SED "$my_sed_long_opt"` + func_split_long_opt_arg=`$ECHO "$1" | $SED "$my_sed_long_arg"` +} # func_split_long_opt may be replaced by extended shell implementation + +exit_cmd=: + + + + + +magic="%%%MAGIC variable%%%" +magic_exe="%%%MAGIC EXE variable%%%" + +# Global variables. +nonopt= +preserve_args= +lo2o="s/\\.lo\$/.${objext}/" +o2lo="s/\\.${objext}\$/.lo/" +extracted_archives= +extracted_serial=0 + +# If this variable is set in any of the actions, the command in it +# will be execed at the end. This prevents here-documents from being +# left over by shells. +exec_cmd= + +# func_append var value +# Append VALUE to the end of shell variable VAR. +func_append () +{ + eval "${1}=\$${1}\${2}" +} # func_append may be replaced by extended shell implementation + +# func_append_quoted var value +# Quote VALUE and append to the end of shell variable VAR, separated +# by a space. +func_append_quoted () +{ + func_quote_for_eval "${2}" + eval "${1}=\$${1}\\ \$func_quote_for_eval_result" +} # func_append_quoted may be replaced by extended shell implementation + + +# func_arith arithmetic-term... +func_arith () +{ + func_arith_result=`expr "${@}"` +} # func_arith may be replaced by extended shell implementation + + +# func_len string +# STRING may not start with a hyphen. +func_len () +{ + func_len_result=`expr "${1}" : ".*" 2>/dev/null || echo $max_cmd_len` +} # func_len may be replaced by extended shell implementation + + +# func_lo2o object +func_lo2o () +{ + func_lo2o_result=`$ECHO "${1}" | $SED "$lo2o"` +} # func_lo2o may be replaced by extended shell implementation + + +# func_xform libobj-or-source +func_xform () +{ + func_xform_result=`$ECHO "${1}" | $SED 's/\.[^.]*$/.lo/'` +} # func_xform may be replaced by extended shell implementation + + +# func_fatal_configuration arg... +# Echo program name prefixed message to standard error, followed by +# a configuration failure hint, and exit. +func_fatal_configuration () +{ + func_error ${1+"$@"} + func_error "See the $PACKAGE documentation for more information." + func_fatal_error "Fatal configuration error." +} + + +# func_config +# Display the configuration for all the tags in this script. +func_config () +{ + re_begincf='^# ### BEGIN LIBTOOL' + re_endcf='^# ### END LIBTOOL' + + # Default configuration. + $SED "1,/$re_begincf CONFIG/d;/$re_endcf CONFIG/,\$d" < "$progpath" + + # Now print the configurations for the tags. + for tagname in $taglist; do + $SED -n "/$re_begincf TAG CONFIG: $tagname\$/,/$re_endcf TAG CONFIG: $tagname\$/p" < "$progpath" + done + + exit $? +} + +# func_features +# Display the features supported by this script. +func_features () +{ + echo "host: $host" + if test "$build_libtool_libs" = yes; then + echo "enable shared libraries" + else + echo "disable shared libraries" + fi + if test "$build_old_libs" = yes; then + echo "enable static libraries" + else + echo "disable static libraries" + fi + + exit $? +} + +# func_enable_tag tagname +# Verify that TAGNAME is valid, and either flag an error and exit, or +# enable the TAGNAME tag. We also add TAGNAME to the global $taglist +# variable here. +func_enable_tag () +{ + # Global variable: + tagname="$1" + + re_begincf="^# ### BEGIN LIBTOOL TAG CONFIG: $tagname\$" + re_endcf="^# ### END LIBTOOL TAG CONFIG: $tagname\$" + sed_extractcf="/$re_begincf/,/$re_endcf/p" + + # Validate tagname. + case $tagname in + *[!-_A-Za-z0-9,/]*) + func_fatal_error "invalid tag name: $tagname" + ;; + esac + + # Don't test for the "default" C tag, as we know it's + # there but not specially marked. + case $tagname in + CC) ;; + *) + if $GREP "$re_begincf" "$progpath" >/dev/null 2>&1; then + taglist="$taglist $tagname" + + # Evaluate the configuration. Be careful to quote the path + # and the sed script, to avoid splitting on whitespace, but + # also don't use non-portable quotes within backquotes within + # quotes we have to do it in 2 steps: + extractedcf=`$SED -n -e "$sed_extractcf" < "$progpath"` + eval "$extractedcf" + else + func_error "ignoring unknown tag $tagname" + fi + ;; + esac +} + +# func_check_version_match +# Ensure that we are using m4 macros, and libtool script from the same +# release of libtool. +func_check_version_match () +{ + if test "$package_revision" != "$macro_revision"; then + if test "$VERSION" != "$macro_version"; then + if test -z "$macro_version"; then + cat >&2 <<_LT_EOF +$progname: Version mismatch error. This is $PACKAGE $VERSION, but the +$progname: definition of this LT_INIT comes from an older release. +$progname: You should recreate aclocal.m4 with macros from $PACKAGE $VERSION +$progname: and run autoconf again. +_LT_EOF + else + cat >&2 <<_LT_EOF +$progname: Version mismatch error. This is $PACKAGE $VERSION, but the +$progname: definition of this LT_INIT comes from $PACKAGE $macro_version. +$progname: You should recreate aclocal.m4 with macros from $PACKAGE $VERSION +$progname: and run autoconf again. +_LT_EOF + fi + else + cat >&2 <<_LT_EOF +$progname: Version mismatch error. This is $PACKAGE $VERSION, revision $package_revision, +$progname: but the definition of this LT_INIT comes from revision $macro_revision. +$progname: You should recreate aclocal.m4 with macros from revision $package_revision +$progname: of $PACKAGE $VERSION and run autoconf again. +_LT_EOF + fi + + exit $EXIT_MISMATCH + fi +} + + +# Shorthand for --mode=foo, only valid as the first argument +case $1 in +clean|clea|cle|cl) + shift; set dummy --mode clean ${1+"$@"}; shift + ;; +compile|compil|compi|comp|com|co|c) + shift; set dummy --mode compile ${1+"$@"}; shift + ;; +execute|execut|execu|exec|exe|ex|e) + shift; set dummy --mode execute ${1+"$@"}; shift + ;; +finish|finis|fini|fin|fi|f) + shift; set dummy --mode finish ${1+"$@"}; shift + ;; +install|instal|insta|inst|ins|in|i) + shift; set dummy --mode install ${1+"$@"}; shift + ;; +link|lin|li|l) + shift; set dummy --mode link ${1+"$@"}; shift + ;; +uninstall|uninstal|uninsta|uninst|unins|unin|uni|un|u) + shift; set dummy --mode uninstall ${1+"$@"}; shift + ;; +esac + + + +# Option defaults: +opt_debug=: +opt_dry_run=false +opt_config=false +opt_preserve_dup_deps=false +opt_features=false +opt_finish=false +opt_help=false +opt_help_all=false +opt_silent=: +opt_warning=: +opt_verbose=: +opt_silent=false +opt_verbose=false + + +# Parse options once, thoroughly. This comes as soon as possible in the +# script to make things like `--version' happen as quickly as we can. +{ + # this just eases exit handling + while test $# -gt 0; do + opt="$1" + shift + case $opt in + --debug|-x) opt_debug='set -x' + func_echo "enabling shell trace mode" + $opt_debug + ;; + --dry-run|--dryrun|-n) + opt_dry_run=: + ;; + --config) + opt_config=: +func_config + ;; + --dlopen|-dlopen) + optarg="$1" + opt_dlopen="${opt_dlopen+$opt_dlopen +}$optarg" + shift + ;; + --preserve-dup-deps) + opt_preserve_dup_deps=: + ;; + --features) + opt_features=: +func_features + ;; + --finish) + opt_finish=: +set dummy --mode finish ${1+"$@"}; shift + ;; + --help) + opt_help=: + ;; + --help-all) + opt_help_all=: +opt_help=': help-all' + ;; + --mode) + test $# = 0 && func_missing_arg $opt && break + optarg="$1" + opt_mode="$optarg" +case $optarg in + # Valid mode arguments: + clean|compile|execute|finish|install|link|relink|uninstall) ;; + + # Catch anything else as an error + *) func_error "invalid argument for $opt" + exit_cmd=exit + break + ;; +esac + shift + ;; + --no-silent|--no-quiet) + opt_silent=false +func_append preserve_args " $opt" + ;; + --no-warning|--no-warn) + opt_warning=false +func_append preserve_args " $opt" + ;; + --no-verbose) + opt_verbose=false +func_append preserve_args " $opt" + ;; + --silent|--quiet) + opt_silent=: +func_append preserve_args " $opt" + opt_verbose=false + ;; + --verbose|-v) + opt_verbose=: +func_append preserve_args " $opt" +opt_silent=false + ;; + --tag) + test $# = 0 && func_missing_arg $opt && break + optarg="$1" + opt_tag="$optarg" +func_append preserve_args " $opt $optarg" +func_enable_tag "$optarg" + shift + ;; + + -\?|-h) func_usage ;; + --help) func_help ;; + --version) func_version ;; + + # Separate optargs to long options: + --*=*) + func_split_long_opt "$opt" + set dummy "$func_split_long_opt_name" "$func_split_long_opt_arg" ${1+"$@"} + shift + ;; + + # Separate non-argument short options: + -\?*|-h*|-n*|-v*) + func_split_short_opt "$opt" + set dummy "$func_split_short_opt_name" "-$func_split_short_opt_arg" ${1+"$@"} + shift + ;; + + --) break ;; + -*) func_fatal_help "unrecognized option \`$opt'" ;; + *) set dummy "$opt" ${1+"$@"}; shift; break ;; + esac + done + + # Validate options: + + # save first non-option argument + if test "$#" -gt 0; then + nonopt="$opt" + shift + fi + + # preserve --debug + test "$opt_debug" = : || func_append preserve_args " --debug" + + case $host in + *cygwin* | *mingw* | *pw32* | *cegcc*) + # don't eliminate duplications in $postdeps and $predeps + opt_duplicate_compiler_generated_deps=: + ;; + *) + opt_duplicate_compiler_generated_deps=$opt_preserve_dup_deps + ;; + esac + + $opt_help || { + # Sanity checks first: + func_check_version_match + + if test "$build_libtool_libs" != yes && test "$build_old_libs" != yes; then + func_fatal_configuration "not configured to build any kind of library" + fi + + # Darwin sucks + eval std_shrext=\"$shrext_cmds\" + + # Only execute mode is allowed to have -dlopen flags. + if test -n "$opt_dlopen" && test "$opt_mode" != execute; then + func_error "unrecognized option \`-dlopen'" + $ECHO "$help" 1>&2 + exit $EXIT_FAILURE + fi + + # Change the help message to a mode-specific one. + generic_help="$help" + help="Try \`$progname --help --mode=$opt_mode' for more information." + } + + + # Bail if the options were screwed + $exit_cmd $EXIT_FAILURE +} + + + + +## ----------- ## +## Main. ## +## ----------- ## + +# func_lalib_p file +# True iff FILE is a libtool `.la' library or `.lo' object file. +# This function is only a basic sanity check; it will hardly flush out +# determined imposters. +func_lalib_p () +{ + test -f "$1" && + $SED -e 4q "$1" 2>/dev/null \ + | $GREP "^# Generated by .*$PACKAGE" > /dev/null 2>&1 +} + +# func_lalib_unsafe_p file +# True iff FILE is a libtool `.la' library or `.lo' object file. +# This function implements the same check as func_lalib_p without +# resorting to external programs. To this end, it redirects stdin and +# closes it afterwards, without saving the original file descriptor. +# As a safety measure, use it only where a negative result would be +# fatal anyway. Works if `file' does not exist. +func_lalib_unsafe_p () +{ + lalib_p=no + if test -f "$1" && test -r "$1" && exec 5<&0 <"$1"; then + for lalib_p_l in 1 2 3 4 + do + read lalib_p_line + case "$lalib_p_line" in + \#\ Generated\ by\ *$PACKAGE* ) lalib_p=yes; break;; + esac + done + exec 0<&5 5<&- + fi + test "$lalib_p" = yes +} + +# func_ltwrapper_script_p file +# True iff FILE is a libtool wrapper script +# This function is only a basic sanity check; it will hardly flush out +# determined imposters. +func_ltwrapper_script_p () +{ + func_lalib_p "$1" +} + +# func_ltwrapper_executable_p file +# True iff FILE is a libtool wrapper executable +# This function is only a basic sanity check; it will hardly flush out +# determined imposters. +func_ltwrapper_executable_p () +{ + func_ltwrapper_exec_suffix= + case $1 in + *.exe) ;; + *) func_ltwrapper_exec_suffix=.exe ;; + esac + $GREP "$magic_exe" "$1$func_ltwrapper_exec_suffix" >/dev/null 2>&1 +} + +# func_ltwrapper_scriptname file +# Assumes file is an ltwrapper_executable +# uses $file to determine the appropriate filename for a +# temporary ltwrapper_script. +func_ltwrapper_scriptname () +{ + func_dirname_and_basename "$1" "" "." + func_stripname '' '.exe' "$func_basename_result" + func_ltwrapper_scriptname_result="$func_dirname_result/$objdir/${func_stripname_result}_ltshwrapper" +} + +# func_ltwrapper_p file +# True iff FILE is a libtool wrapper script or wrapper executable +# This function is only a basic sanity check; it will hardly flush out +# determined imposters. +func_ltwrapper_p () +{ + func_ltwrapper_script_p "$1" || func_ltwrapper_executable_p "$1" +} + + +# func_execute_cmds commands fail_cmd +# Execute tilde-delimited COMMANDS. +# If FAIL_CMD is given, eval that upon failure. +# FAIL_CMD may read-access the current command in variable CMD! +func_execute_cmds () +{ + $opt_debug + save_ifs=$IFS; IFS='~' + for cmd in $1; do + IFS=$save_ifs + eval cmd=\"$cmd\" + func_show_eval "$cmd" "${2-:}" + done + IFS=$save_ifs +} + + +# func_source file +# Source FILE, adding directory component if necessary. +# Note that it is not necessary on cygwin/mingw to append a dot to +# FILE even if both FILE and FILE.exe exist: automatic-append-.exe +# behavior happens only for exec(3), not for open(2)! Also, sourcing +# `FILE.' does not work on cygwin managed mounts. +func_source () +{ + $opt_debug + case $1 in + */* | *\\*) . "$1" ;; + *) . "./$1" ;; + esac +} + + +# func_resolve_sysroot PATH +# Replace a leading = in PATH with a sysroot. Store the result into +# func_resolve_sysroot_result +func_resolve_sysroot () +{ + func_resolve_sysroot_result=$1 + case $func_resolve_sysroot_result in + =*) + func_stripname '=' '' "$func_resolve_sysroot_result" + func_resolve_sysroot_result=$lt_sysroot$func_stripname_result + ;; + esac +} + +# func_replace_sysroot PATH +# If PATH begins with the sysroot, replace it with = and +# store the result into func_replace_sysroot_result. +func_replace_sysroot () +{ + case "$lt_sysroot:$1" in + ?*:"$lt_sysroot"*) + func_stripname "$lt_sysroot" '' "$1" + func_replace_sysroot_result="=$func_stripname_result" + ;; + *) + # Including no sysroot. + func_replace_sysroot_result=$1 + ;; + esac +} + +# func_infer_tag arg +# Infer tagged configuration to use if any are available and +# if one wasn't chosen via the "--tag" command line option. +# Only attempt this if the compiler in the base compile +# command doesn't match the default compiler. +# arg is usually of the form 'gcc ...' +func_infer_tag () +{ + $opt_debug + if test -n "$available_tags" && test -z "$tagname"; then + CC_quoted= + for arg in $CC; do + func_append_quoted CC_quoted "$arg" + done + CC_expanded=`func_echo_all $CC` + CC_quoted_expanded=`func_echo_all $CC_quoted` + case $@ in + # Blanks in the command may have been stripped by the calling shell, + # but not from the CC environment variable when configure was run. + " $CC "* | "$CC "* | " $CC_expanded "* | "$CC_expanded "* | \ + " $CC_quoted"* | "$CC_quoted "* | " $CC_quoted_expanded "* | "$CC_quoted_expanded "*) ;; + # Blanks at the start of $base_compile will cause this to fail + # if we don't check for them as well. + *) + for z in $available_tags; do + if $GREP "^# ### BEGIN LIBTOOL TAG CONFIG: $z$" < "$progpath" > /dev/null; then + # Evaluate the configuration. + eval "`${SED} -n -e '/^# ### BEGIN LIBTOOL TAG CONFIG: '$z'$/,/^# ### END LIBTOOL TAG CONFIG: '$z'$/p' < $progpath`" + CC_quoted= + for arg in $CC; do + # Double-quote args containing other shell metacharacters. + func_append_quoted CC_quoted "$arg" + done + CC_expanded=`func_echo_all $CC` + CC_quoted_expanded=`func_echo_all $CC_quoted` + case "$@ " in + " $CC "* | "$CC "* | " $CC_expanded "* | "$CC_expanded "* | \ + " $CC_quoted"* | "$CC_quoted "* | " $CC_quoted_expanded "* | "$CC_quoted_expanded "*) + # The compiler in the base compile command matches + # the one in the tagged configuration. + # Assume this is the tagged configuration we want. + tagname=$z + break + ;; + esac + fi + done + # If $tagname still isn't set, then no tagged configuration + # was found and let the user know that the "--tag" command + # line option must be used. + if test -z "$tagname"; then + func_echo "unable to infer tagged configuration" + func_fatal_error "specify a tag with \`--tag'" +# else +# func_verbose "using $tagname tagged configuration" + fi + ;; + esac + fi +} + + + +# func_write_libtool_object output_name pic_name nonpic_name +# Create a libtool object file (analogous to a ".la" file), +# but don't create it if we're doing a dry run. +func_write_libtool_object () +{ + write_libobj=${1} + if test "$build_libtool_libs" = yes; then + write_lobj=\'${2}\' + else + write_lobj=none + fi + + if test "$build_old_libs" = yes; then + write_oldobj=\'${3}\' + else + write_oldobj=none + fi + + $opt_dry_run || { + cat >${write_libobj}T </dev/null` + if test "$?" -eq 0 && test -n "${func_convert_core_file_wine_to_w32_tmp}"; then + func_convert_core_file_wine_to_w32_result=`$ECHO "$func_convert_core_file_wine_to_w32_tmp" | + $SED -e "$lt_sed_naive_backslashify"` + else + func_convert_core_file_wine_to_w32_result= + fi + fi +} +# end: func_convert_core_file_wine_to_w32 + + +# func_convert_core_path_wine_to_w32 ARG +# Helper function used by path conversion functions when $build is *nix, and +# $host is mingw, cygwin, or some other w32 environment. Relies on a correctly +# configured wine environment available, with the winepath program in $build's +# $PATH. Assumes ARG has no leading or trailing path separator characters. +# +# ARG is path to be converted from $build format to win32. +# Result is available in $func_convert_core_path_wine_to_w32_result. +# Unconvertible file (directory) names in ARG are skipped; if no directory names +# are convertible, then the result may be empty. +func_convert_core_path_wine_to_w32 () +{ + $opt_debug + # unfortunately, winepath doesn't convert paths, only file names + func_convert_core_path_wine_to_w32_result="" + if test -n "$1"; then + oldIFS=$IFS + IFS=: + for func_convert_core_path_wine_to_w32_f in $1; do + IFS=$oldIFS + func_convert_core_file_wine_to_w32 "$func_convert_core_path_wine_to_w32_f" + if test -n "$func_convert_core_file_wine_to_w32_result" ; then + if test -z "$func_convert_core_path_wine_to_w32_result"; then + func_convert_core_path_wine_to_w32_result="$func_convert_core_file_wine_to_w32_result" + else + func_append func_convert_core_path_wine_to_w32_result ";$func_convert_core_file_wine_to_w32_result" + fi + fi + done + IFS=$oldIFS + fi +} +# end: func_convert_core_path_wine_to_w32 + + +# func_cygpath ARGS... +# Wrapper around calling the cygpath program via LT_CYGPATH. This is used when +# when (1) $build is *nix and Cygwin is hosted via a wine environment; or (2) +# $build is MSYS and $host is Cygwin, or (3) $build is Cygwin. In case (1) or +# (2), returns the Cygwin file name or path in func_cygpath_result (input +# file name or path is assumed to be in w32 format, as previously converted +# from $build's *nix or MSYS format). In case (3), returns the w32 file name +# or path in func_cygpath_result (input file name or path is assumed to be in +# Cygwin format). Returns an empty string on error. +# +# ARGS are passed to cygpath, with the last one being the file name or path to +# be converted. +# +# Specify the absolute *nix (or w32) name to cygpath in the LT_CYGPATH +# environment variable; do not put it in $PATH. +func_cygpath () +{ + $opt_debug + if test -n "$LT_CYGPATH" && test -f "$LT_CYGPATH"; then + func_cygpath_result=`$LT_CYGPATH "$@" 2>/dev/null` + if test "$?" -ne 0; then + # on failure, ensure result is empty + func_cygpath_result= + fi + else + func_cygpath_result= + func_error "LT_CYGPATH is empty or specifies non-existent file: \`$LT_CYGPATH'" + fi +} +#end: func_cygpath + + +# func_convert_core_msys_to_w32 ARG +# Convert file name or path ARG from MSYS format to w32 format. Return +# result in func_convert_core_msys_to_w32_result. +func_convert_core_msys_to_w32 () +{ + $opt_debug + # awkward: cmd appends spaces to result + func_convert_core_msys_to_w32_result=`( cmd //c echo "$1" ) 2>/dev/null | + $SED -e 's/[ ]*$//' -e "$lt_sed_naive_backslashify"` +} +#end: func_convert_core_msys_to_w32 + + +# func_convert_file_check ARG1 ARG2 +# Verify that ARG1 (a file name in $build format) was converted to $host +# format in ARG2. Otherwise, emit an error message, but continue (resetting +# func_to_host_file_result to ARG1). +func_convert_file_check () +{ + $opt_debug + if test -z "$2" && test -n "$1" ; then + func_error "Could not determine host file name corresponding to" + func_error " \`$1'" + func_error "Continuing, but uninstalled executables may not work." + # Fallback: + func_to_host_file_result="$1" + fi +} +# end func_convert_file_check + + +# func_convert_path_check FROM_PATHSEP TO_PATHSEP FROM_PATH TO_PATH +# Verify that FROM_PATH (a path in $build format) was converted to $host +# format in TO_PATH. Otherwise, emit an error message, but continue, resetting +# func_to_host_file_result to a simplistic fallback value (see below). +func_convert_path_check () +{ + $opt_debug + if test -z "$4" && test -n "$3"; then + func_error "Could not determine the host path corresponding to" + func_error " \`$3'" + func_error "Continuing, but uninstalled executables may not work." + # Fallback. This is a deliberately simplistic "conversion" and + # should not be "improved". See libtool.info. + if test "x$1" != "x$2"; then + lt_replace_pathsep_chars="s|$1|$2|g" + func_to_host_path_result=`echo "$3" | + $SED -e "$lt_replace_pathsep_chars"` + else + func_to_host_path_result="$3" + fi + fi +} +# end func_convert_path_check + + +# func_convert_path_front_back_pathsep FRONTPAT BACKPAT REPL ORIG +# Modifies func_to_host_path_result by prepending REPL if ORIG matches FRONTPAT +# and appending REPL if ORIG matches BACKPAT. +func_convert_path_front_back_pathsep () +{ + $opt_debug + case $4 in + $1 ) func_to_host_path_result="$3$func_to_host_path_result" + ;; + esac + case $4 in + $2 ) func_append func_to_host_path_result "$3" + ;; + esac +} +# end func_convert_path_front_back_pathsep + + +################################################## +# $build to $host FILE NAME CONVERSION FUNCTIONS # +################################################## +# invoked via `$to_host_file_cmd ARG' +# +# In each case, ARG is the path to be converted from $build to $host format. +# Result will be available in $func_to_host_file_result. + + +# func_to_host_file ARG +# Converts the file name ARG from $build format to $host format. Return result +# in func_to_host_file_result. +func_to_host_file () +{ + $opt_debug + $to_host_file_cmd "$1" +} +# end func_to_host_file + + +# func_to_tool_file ARG LAZY +# converts the file name ARG from $build format to toolchain format. Return +# result in func_to_tool_file_result. If the conversion in use is listed +# in (the comma separated) LAZY, no conversion takes place. +func_to_tool_file () +{ + $opt_debug + case ,$2, in + *,"$to_tool_file_cmd",*) + func_to_tool_file_result=$1 + ;; + *) + $to_tool_file_cmd "$1" + func_to_tool_file_result=$func_to_host_file_result + ;; + esac +} +# end func_to_tool_file + + +# func_convert_file_noop ARG +# Copy ARG to func_to_host_file_result. +func_convert_file_noop () +{ + func_to_host_file_result="$1" +} +# end func_convert_file_noop + + +# func_convert_file_msys_to_w32 ARG +# Convert file name ARG from (mingw) MSYS to (mingw) w32 format; automatic +# conversion to w32 is not available inside the cwrapper. Returns result in +# func_to_host_file_result. +func_convert_file_msys_to_w32 () +{ + $opt_debug + func_to_host_file_result="$1" + if test -n "$1"; then + func_convert_core_msys_to_w32 "$1" + func_to_host_file_result="$func_convert_core_msys_to_w32_result" + fi + func_convert_file_check "$1" "$func_to_host_file_result" +} +# end func_convert_file_msys_to_w32 + + +# func_convert_file_cygwin_to_w32 ARG +# Convert file name ARG from Cygwin to w32 format. Returns result in +# func_to_host_file_result. +func_convert_file_cygwin_to_w32 () +{ + $opt_debug + func_to_host_file_result="$1" + if test -n "$1"; then + # because $build is cygwin, we call "the" cygpath in $PATH; no need to use + # LT_CYGPATH in this case. + func_to_host_file_result=`cygpath -m "$1"` + fi + func_convert_file_check "$1" "$func_to_host_file_result" +} +# end func_convert_file_cygwin_to_w32 + + +# func_convert_file_nix_to_w32 ARG +# Convert file name ARG from *nix to w32 format. Requires a wine environment +# and a working winepath. Returns result in func_to_host_file_result. +func_convert_file_nix_to_w32 () +{ + $opt_debug + func_to_host_file_result="$1" + if test -n "$1"; then + func_convert_core_file_wine_to_w32 "$1" + func_to_host_file_result="$func_convert_core_file_wine_to_w32_result" + fi + func_convert_file_check "$1" "$func_to_host_file_result" +} +# end func_convert_file_nix_to_w32 + + +# func_convert_file_msys_to_cygwin ARG +# Convert file name ARG from MSYS to Cygwin format. Requires LT_CYGPATH set. +# Returns result in func_to_host_file_result. +func_convert_file_msys_to_cygwin () +{ + $opt_debug + func_to_host_file_result="$1" + if test -n "$1"; then + func_convert_core_msys_to_w32 "$1" + func_cygpath -u "$func_convert_core_msys_to_w32_result" + func_to_host_file_result="$func_cygpath_result" + fi + func_convert_file_check "$1" "$func_to_host_file_result" +} +# end func_convert_file_msys_to_cygwin + + +# func_convert_file_nix_to_cygwin ARG +# Convert file name ARG from *nix to Cygwin format. Requires Cygwin installed +# in a wine environment, working winepath, and LT_CYGPATH set. Returns result +# in func_to_host_file_result. +func_convert_file_nix_to_cygwin () +{ + $opt_debug + func_to_host_file_result="$1" + if test -n "$1"; then + # convert from *nix to w32, then use cygpath to convert from w32 to cygwin. + func_convert_core_file_wine_to_w32 "$1" + func_cygpath -u "$func_convert_core_file_wine_to_w32_result" + func_to_host_file_result="$func_cygpath_result" + fi + func_convert_file_check "$1" "$func_to_host_file_result" +} +# end func_convert_file_nix_to_cygwin + + +############################################# +# $build to $host PATH CONVERSION FUNCTIONS # +############################################# +# invoked via `$to_host_path_cmd ARG' +# +# In each case, ARG is the path to be converted from $build to $host format. +# The result will be available in $func_to_host_path_result. +# +# Path separators are also converted from $build format to $host format. If +# ARG begins or ends with a path separator character, it is preserved (but +# converted to $host format) on output. +# +# All path conversion functions are named using the following convention: +# file name conversion function : func_convert_file_X_to_Y () +# path conversion function : func_convert_path_X_to_Y () +# where, for any given $build/$host combination the 'X_to_Y' value is the +# same. If conversion functions are added for new $build/$host combinations, +# the two new functions must follow this pattern, or func_init_to_host_path_cmd +# will break. + + +# func_init_to_host_path_cmd +# Ensures that function "pointer" variable $to_host_path_cmd is set to the +# appropriate value, based on the value of $to_host_file_cmd. +to_host_path_cmd= +func_init_to_host_path_cmd () +{ + $opt_debug + if test -z "$to_host_path_cmd"; then + func_stripname 'func_convert_file_' '' "$to_host_file_cmd" + to_host_path_cmd="func_convert_path_${func_stripname_result}" + fi +} + + +# func_to_host_path ARG +# Converts the path ARG from $build format to $host format. Return result +# in func_to_host_path_result. +func_to_host_path () +{ + $opt_debug + func_init_to_host_path_cmd + $to_host_path_cmd "$1" +} +# end func_to_host_path + + +# func_convert_path_noop ARG +# Copy ARG to func_to_host_path_result. +func_convert_path_noop () +{ + func_to_host_path_result="$1" +} +# end func_convert_path_noop + + +# func_convert_path_msys_to_w32 ARG +# Convert path ARG from (mingw) MSYS to (mingw) w32 format; automatic +# conversion to w32 is not available inside the cwrapper. Returns result in +# func_to_host_path_result. +func_convert_path_msys_to_w32 () +{ + $opt_debug + func_to_host_path_result="$1" + if test -n "$1"; then + # Remove leading and trailing path separator characters from ARG. MSYS + # behavior is inconsistent here; cygpath turns them into '.;' and ';.'; + # and winepath ignores them completely. + func_stripname : : "$1" + func_to_host_path_tmp1=$func_stripname_result + func_convert_core_msys_to_w32 "$func_to_host_path_tmp1" + func_to_host_path_result="$func_convert_core_msys_to_w32_result" + func_convert_path_check : ";" \ + "$func_to_host_path_tmp1" "$func_to_host_path_result" + func_convert_path_front_back_pathsep ":*" "*:" ";" "$1" + fi +} +# end func_convert_path_msys_to_w32 + + +# func_convert_path_cygwin_to_w32 ARG +# Convert path ARG from Cygwin to w32 format. Returns result in +# func_to_host_file_result. +func_convert_path_cygwin_to_w32 () +{ + $opt_debug + func_to_host_path_result="$1" + if test -n "$1"; then + # See func_convert_path_msys_to_w32: + func_stripname : : "$1" + func_to_host_path_tmp1=$func_stripname_result + func_to_host_path_result=`cygpath -m -p "$func_to_host_path_tmp1"` + func_convert_path_check : ";" \ + "$func_to_host_path_tmp1" "$func_to_host_path_result" + func_convert_path_front_back_pathsep ":*" "*:" ";" "$1" + fi +} +# end func_convert_path_cygwin_to_w32 + + +# func_convert_path_nix_to_w32 ARG +# Convert path ARG from *nix to w32 format. Requires a wine environment and +# a working winepath. Returns result in func_to_host_file_result. +func_convert_path_nix_to_w32 () +{ + $opt_debug + func_to_host_path_result="$1" + if test -n "$1"; then + # See func_convert_path_msys_to_w32: + func_stripname : : "$1" + func_to_host_path_tmp1=$func_stripname_result + func_convert_core_path_wine_to_w32 "$func_to_host_path_tmp1" + func_to_host_path_result="$func_convert_core_path_wine_to_w32_result" + func_convert_path_check : ";" \ + "$func_to_host_path_tmp1" "$func_to_host_path_result" + func_convert_path_front_back_pathsep ":*" "*:" ";" "$1" + fi +} +# end func_convert_path_nix_to_w32 + + +# func_convert_path_msys_to_cygwin ARG +# Convert path ARG from MSYS to Cygwin format. Requires LT_CYGPATH set. +# Returns result in func_to_host_file_result. +func_convert_path_msys_to_cygwin () +{ + $opt_debug + func_to_host_path_result="$1" + if test -n "$1"; then + # See func_convert_path_msys_to_w32: + func_stripname : : "$1" + func_to_host_path_tmp1=$func_stripname_result + func_convert_core_msys_to_w32 "$func_to_host_path_tmp1" + func_cygpath -u -p "$func_convert_core_msys_to_w32_result" + func_to_host_path_result="$func_cygpath_result" + func_convert_path_check : : \ + "$func_to_host_path_tmp1" "$func_to_host_path_result" + func_convert_path_front_back_pathsep ":*" "*:" : "$1" + fi +} +# end func_convert_path_msys_to_cygwin + + +# func_convert_path_nix_to_cygwin ARG +# Convert path ARG from *nix to Cygwin format. Requires Cygwin installed in a +# a wine environment, working winepath, and LT_CYGPATH set. Returns result in +# func_to_host_file_result. +func_convert_path_nix_to_cygwin () +{ + $opt_debug + func_to_host_path_result="$1" + if test -n "$1"; then + # Remove leading and trailing path separator characters from + # ARG. msys behavior is inconsistent here, cygpath turns them + # into '.;' and ';.', and winepath ignores them completely. + func_stripname : : "$1" + func_to_host_path_tmp1=$func_stripname_result + func_convert_core_path_wine_to_w32 "$func_to_host_path_tmp1" + func_cygpath -u -p "$func_convert_core_path_wine_to_w32_result" + func_to_host_path_result="$func_cygpath_result" + func_convert_path_check : : \ + "$func_to_host_path_tmp1" "$func_to_host_path_result" + func_convert_path_front_back_pathsep ":*" "*:" : "$1" + fi +} +# end func_convert_path_nix_to_cygwin + + +# func_mode_compile arg... +func_mode_compile () +{ + $opt_debug + # Get the compilation command and the source file. + base_compile= + srcfile="$nonopt" # always keep a non-empty value in "srcfile" + suppress_opt=yes + suppress_output= + arg_mode=normal + libobj= + later= + pie_flag= + + for arg + do + case $arg_mode in + arg ) + # do not "continue". Instead, add this to base_compile + lastarg="$arg" + arg_mode=normal + ;; + + target ) + libobj="$arg" + arg_mode=normal + continue + ;; + + normal ) + # Accept any command-line options. + case $arg in + -o) + test -n "$libobj" && \ + func_fatal_error "you cannot specify \`-o' more than once" + arg_mode=target + continue + ;; + + -pie | -fpie | -fPIE) + func_append pie_flag " $arg" + continue + ;; + + -shared | -static | -prefer-pic | -prefer-non-pic) + func_append later " $arg" + continue + ;; + + -no-suppress) + suppress_opt=no + continue + ;; + + -Xcompiler) + arg_mode=arg # the next one goes into the "base_compile" arg list + continue # The current "srcfile" will either be retained or + ;; # replaced later. I would guess that would be a bug. + + -Wc,*) + func_stripname '-Wc,' '' "$arg" + args=$func_stripname_result + lastarg= + save_ifs="$IFS"; IFS=',' + for arg in $args; do + IFS="$save_ifs" + func_append_quoted lastarg "$arg" + done + IFS="$save_ifs" + func_stripname ' ' '' "$lastarg" + lastarg=$func_stripname_result + + # Add the arguments to base_compile. + func_append base_compile " $lastarg" + continue + ;; + + *) + # Accept the current argument as the source file. + # The previous "srcfile" becomes the current argument. + # + lastarg="$srcfile" + srcfile="$arg" + ;; + esac # case $arg + ;; + esac # case $arg_mode + + # Aesthetically quote the previous argument. + func_append_quoted base_compile "$lastarg" + done # for arg + + case $arg_mode in + arg) + func_fatal_error "you must specify an argument for -Xcompile" + ;; + target) + func_fatal_error "you must specify a target with \`-o'" + ;; + *) + # Get the name of the library object. + test -z "$libobj" && { + func_basename "$srcfile" + libobj="$func_basename_result" + } + ;; + esac + + # Recognize several different file suffixes. + # If the user specifies -o file.o, it is replaced with file.lo + case $libobj in + *.[cCFSifmso] | \ + *.ada | *.adb | *.ads | *.asm | \ + *.c++ | *.cc | *.ii | *.class | *.cpp | *.cxx | \ + *.[fF][09]? | *.for | *.java | *.go | *.obj | *.sx | *.cu | *.cup) + func_xform "$libobj" + libobj=$func_xform_result + ;; + esac + + case $libobj in + *.lo) func_lo2o "$libobj"; obj=$func_lo2o_result ;; + *) + func_fatal_error "cannot determine name of library object from \`$libobj'" + ;; + esac + + func_infer_tag $base_compile + + for arg in $later; do + case $arg in + -shared) + test "$build_libtool_libs" != yes && \ + func_fatal_configuration "can not build a shared library" + build_old_libs=no + continue + ;; + + -static) + build_libtool_libs=no + build_old_libs=yes + continue + ;; + + -prefer-pic) + pic_mode=yes + continue + ;; + + -prefer-non-pic) + pic_mode=no + continue + ;; + esac + done + + func_quote_for_eval "$libobj" + test "X$libobj" != "X$func_quote_for_eval_result" \ + && $ECHO "X$libobj" | $GREP '[]~#^*{};<>?"'"'"' &()|`$[]' \ + && func_warning "libobj name \`$libobj' may not contain shell special characters." + func_dirname_and_basename "$obj" "/" "" + objname="$func_basename_result" + xdir="$func_dirname_result" + lobj=${xdir}$objdir/$objname + + test -z "$base_compile" && \ + func_fatal_help "you must specify a compilation command" + + # Delete any leftover library objects. + if test "$build_old_libs" = yes; then + removelist="$obj $lobj $libobj ${libobj}T" + else + removelist="$lobj $libobj ${libobj}T" + fi + + # On Cygwin there's no "real" PIC flag so we must build both object types + case $host_os in + cygwin* | mingw* | pw32* | os2* | cegcc*) + pic_mode=default + ;; + esac + if test "$pic_mode" = no && test "$deplibs_check_method" != pass_all; then + # non-PIC code in shared libraries is not supported + pic_mode=default + fi + + # Calculate the filename of the output object if compiler does + # not support -o with -c + if test "$compiler_c_o" = no; then + output_obj=`$ECHO "$srcfile" | $SED 's%^.*/%%; s%\.[^.]*$%%'`.${objext} + lockfile="$output_obj.lock" + else + output_obj= + need_locks=no + lockfile= + fi + + # Lock this critical section if it is needed + # We use this script file to make the link, it avoids creating a new file + if test "$need_locks" = yes; then + until $opt_dry_run || ln "$progpath" "$lockfile" 2>/dev/null; do + func_echo "Waiting for $lockfile to be removed" + sleep 2 + done + elif test "$need_locks" = warn; then + if test -f "$lockfile"; then + $ECHO "\ +*** ERROR, $lockfile exists and contains: +`cat $lockfile 2>/dev/null` + +This indicates that another process is trying to use the same +temporary object file, and libtool could not work around it because +your compiler does not support \`-c' and \`-o' together. If you +repeat this compilation, it may succeed, by chance, but you had better +avoid parallel builds (make -j) in this platform, or get a better +compiler." + + $opt_dry_run || $RM $removelist + exit $EXIT_FAILURE + fi + func_append removelist " $output_obj" + $ECHO "$srcfile" > "$lockfile" + fi + + $opt_dry_run || $RM $removelist + func_append removelist " $lockfile" + trap '$opt_dry_run || $RM $removelist; exit $EXIT_FAILURE' 1 2 15 + + func_to_tool_file "$srcfile" func_convert_file_msys_to_w32 + srcfile=$func_to_tool_file_result + func_quote_for_eval "$srcfile" + qsrcfile=$func_quote_for_eval_result + + # Only build a PIC object if we are building libtool libraries. + if test "$build_libtool_libs" = yes; then + # Without this assignment, base_compile gets emptied. + fbsd_hideous_sh_bug=$base_compile + + if test "$pic_mode" != no; then + command="$base_compile $qsrcfile $pic_flag" + else + # Don't build PIC code + command="$base_compile $qsrcfile" + fi + + func_mkdir_p "$xdir$objdir" + + if test -z "$output_obj"; then + # Place PIC objects in $objdir + func_append command " -o $lobj" + fi + + func_show_eval_locale "$command" \ + 'test -n "$output_obj" && $RM $removelist; exit $EXIT_FAILURE' + + if test "$need_locks" = warn && + test "X`cat $lockfile 2>/dev/null`" != "X$srcfile"; then + $ECHO "\ +*** ERROR, $lockfile contains: +`cat $lockfile 2>/dev/null` + +but it should contain: +$srcfile + +This indicates that another process is trying to use the same +temporary object file, and libtool could not work around it because +your compiler does not support \`-c' and \`-o' together. If you +repeat this compilation, it may succeed, by chance, but you had better +avoid parallel builds (make -j) in this platform, or get a better +compiler." + + $opt_dry_run || $RM $removelist + exit $EXIT_FAILURE + fi + + # Just move the object if needed, then go on to compile the next one + if test -n "$output_obj" && test "X$output_obj" != "X$lobj"; then + func_show_eval '$MV "$output_obj" "$lobj"' \ + 'error=$?; $opt_dry_run || $RM $removelist; exit $error' + fi + + # Allow error messages only from the first compilation. + if test "$suppress_opt" = yes; then + suppress_output=' >/dev/null 2>&1' + fi + fi + + # Only build a position-dependent object if we build old libraries. + if test "$build_old_libs" = yes; then + if test "$pic_mode" != yes; then + # Don't build PIC code + command="$base_compile $qsrcfile$pie_flag" + else + command="$base_compile $qsrcfile $pic_flag" + fi + if test "$compiler_c_o" = yes; then + func_append command " -o $obj" + fi + + # Suppress compiler output if we already did a PIC compilation. + func_append command "$suppress_output" + func_show_eval_locale "$command" \ + '$opt_dry_run || $RM $removelist; exit $EXIT_FAILURE' + + if test "$need_locks" = warn && + test "X`cat $lockfile 2>/dev/null`" != "X$srcfile"; then + $ECHO "\ +*** ERROR, $lockfile contains: +`cat $lockfile 2>/dev/null` + +but it should contain: +$srcfile + +This indicates that another process is trying to use the same +temporary object file, and libtool could not work around it because +your compiler does not support \`-c' and \`-o' together. If you +repeat this compilation, it may succeed, by chance, but you had better +avoid parallel builds (make -j) in this platform, or get a better +compiler." + + $opt_dry_run || $RM $removelist + exit $EXIT_FAILURE + fi + + # Just move the object if needed + if test -n "$output_obj" && test "X$output_obj" != "X$obj"; then + func_show_eval '$MV "$output_obj" "$obj"' \ + 'error=$?; $opt_dry_run || $RM $removelist; exit $error' + fi + fi + + $opt_dry_run || { + func_write_libtool_object "$libobj" "$objdir/$objname" "$objname" + + # Unlock the critical section if it was locked + if test "$need_locks" != no; then + removelist=$lockfile + $RM "$lockfile" + fi + } + + exit $EXIT_SUCCESS +} + +$opt_help || { + test "$opt_mode" = compile && func_mode_compile ${1+"$@"} +} + +func_mode_help () +{ + # We need to display help for each of the modes. + case $opt_mode in + "") + # Generic help is extracted from the usage comments + # at the start of this file. + func_help + ;; + + clean) + $ECHO \ +"Usage: $progname [OPTION]... --mode=clean RM [RM-OPTION]... FILE... + +Remove files from the build directory. + +RM is the name of the program to use to delete files associated with each FILE +(typically \`/bin/rm'). RM-OPTIONS are options (such as \`-f') to be passed +to RM. + +If FILE is a libtool library, object or program, all the files associated +with it are deleted. Otherwise, only FILE itself is deleted using RM." + ;; + + compile) + $ECHO \ +"Usage: $progname [OPTION]... --mode=compile COMPILE-COMMAND... SOURCEFILE + +Compile a source file into a libtool library object. + +This mode accepts the following additional options: + + -o OUTPUT-FILE set the output file name to OUTPUT-FILE + -no-suppress do not suppress compiler output for multiple passes + -prefer-pic try to build PIC objects only + -prefer-non-pic try to build non-PIC objects only + -shared do not build a \`.o' file suitable for static linking + -static only build a \`.o' file suitable for static linking + -Wc,FLAG pass FLAG directly to the compiler + +COMPILE-COMMAND is a command to be used in creating a \`standard' object file +from the given SOURCEFILE. + +The output file name is determined by removing the directory component from +SOURCEFILE, then substituting the C source code suffix \`.c' with the +library object suffix, \`.lo'." + ;; + + execute) + $ECHO \ +"Usage: $progname [OPTION]... --mode=execute COMMAND [ARGS]... + +Automatically set library path, then run a program. + +This mode accepts the following additional options: + + -dlopen FILE add the directory containing FILE to the library path + +This mode sets the library path environment variable according to \`-dlopen' +flags. + +If any of the ARGS are libtool executable wrappers, then they are translated +into their corresponding uninstalled binary, and any of their required library +directories are added to the library path. + +Then, COMMAND is executed, with ARGS as arguments." + ;; + + finish) + $ECHO \ +"Usage: $progname [OPTION]... --mode=finish [LIBDIR]... + +Complete the installation of libtool libraries. + +Each LIBDIR is a directory that contains libtool libraries. + +The commands that this mode executes may require superuser privileges. Use +the \`--dry-run' option if you just want to see what would be executed." + ;; + + install) + $ECHO \ +"Usage: $progname [OPTION]... --mode=install INSTALL-COMMAND... + +Install executables or libraries. + +INSTALL-COMMAND is the installation command. The first component should be +either the \`install' or \`cp' program. + +The following components of INSTALL-COMMAND are treated specially: + + -inst-prefix-dir PREFIX-DIR Use PREFIX-DIR as a staging area for installation + +The rest of the components are interpreted as arguments to that command (only +BSD-compatible install options are recognized)." + ;; + + link) + $ECHO \ +"Usage: $progname [OPTION]... --mode=link LINK-COMMAND... + +Link object files or libraries together to form another library, or to +create an executable program. + +LINK-COMMAND is a command using the C compiler that you would use to create +a program from several object files. + +The following components of LINK-COMMAND are treated specially: + + -all-static do not do any dynamic linking at all + -avoid-version do not add a version suffix if possible + -bindir BINDIR specify path to binaries directory (for systems where + libraries must be found in the PATH setting at runtime) + -dlopen FILE \`-dlpreopen' FILE if it cannot be dlopened at runtime + -dlpreopen FILE link in FILE and add its symbols to lt_preloaded_symbols + -export-dynamic allow symbols from OUTPUT-FILE to be resolved with dlsym(3) + -export-symbols SYMFILE + try to export only the symbols listed in SYMFILE + -export-symbols-regex REGEX + try to export only the symbols matching REGEX + -LLIBDIR search LIBDIR for required installed libraries + -lNAME OUTPUT-FILE requires the installed library libNAME + -module build a library that can dlopened + -no-fast-install disable the fast-install mode + -no-install link a not-installable executable + -no-undefined declare that a library does not refer to external symbols + -o OUTPUT-FILE create OUTPUT-FILE from the specified objects + -objectlist FILE Use a list of object files found in FILE to specify objects + -precious-files-regex REGEX + don't remove output files matching REGEX + -release RELEASE specify package release information + -rpath LIBDIR the created library will eventually be installed in LIBDIR + -R[ ]LIBDIR add LIBDIR to the runtime path of programs and libraries + -shared only do dynamic linking of libtool libraries + -shrext SUFFIX override the standard shared library file extension + -static do not do any dynamic linking of uninstalled libtool libraries + -static-libtool-libs + do not do any dynamic linking of libtool libraries + -version-info CURRENT[:REVISION[:AGE]] + specify library version info [each variable defaults to 0] + -weak LIBNAME declare that the target provides the LIBNAME interface + -Wc,FLAG + -Xcompiler FLAG pass linker-specific FLAG directly to the compiler + -Wl,FLAG + -Xlinker FLAG pass linker-specific FLAG directly to the linker + -XCClinker FLAG pass link-specific FLAG to the compiler driver (CC) + +All other options (arguments beginning with \`-') are ignored. + +Every other argument is treated as a filename. Files ending in \`.la' are +treated as uninstalled libtool libraries, other files are standard or library +object files. + +If the OUTPUT-FILE ends in \`.la', then a libtool library is created, +only library objects (\`.lo' files) may be specified, and \`-rpath' is +required, except when creating a convenience library. + +If OUTPUT-FILE ends in \`.a' or \`.lib', then a standard library is created +using \`ar' and \`ranlib', or on Windows using \`lib'. + +If OUTPUT-FILE ends in \`.lo' or \`.${objext}', then a reloadable object file +is created, otherwise an executable program is created." + ;; + + uninstall) + $ECHO \ +"Usage: $progname [OPTION]... --mode=uninstall RM [RM-OPTION]... FILE... + +Remove libraries from an installation directory. + +RM is the name of the program to use to delete files associated with each FILE +(typically \`/bin/rm'). RM-OPTIONS are options (such as \`-f') to be passed +to RM. + +If FILE is a libtool library, all the files associated with it are deleted. +Otherwise, only FILE itself is deleted using RM." + ;; + + *) + func_fatal_help "invalid operation mode \`$opt_mode'" + ;; + esac + + echo + $ECHO "Try \`$progname --help' for more information about other modes." +} + +# Now that we've collected a possible --mode arg, show help if necessary +if $opt_help; then + if test "$opt_help" = :; then + func_mode_help + else + { + func_help noexit + for opt_mode in compile link execute install finish uninstall clean; do + func_mode_help + done + } | sed -n '1p; 2,$s/^Usage:/ or: /p' + { + func_help noexit + for opt_mode in compile link execute install finish uninstall clean; do + echo + func_mode_help + done + } | + sed '1d + /^When reporting/,/^Report/{ + H + d + } + $x + /information about other modes/d + /more detailed .*MODE/d + s/^Usage:.*--mode=\([^ ]*\) .*/Description of \1 mode:/' + fi + exit $? +fi + + +# func_mode_execute arg... +func_mode_execute () +{ + $opt_debug + # The first argument is the command name. + cmd="$nonopt" + test -z "$cmd" && \ + func_fatal_help "you must specify a COMMAND" + + # Handle -dlopen flags immediately. + for file in $opt_dlopen; do + test -f "$file" \ + || func_fatal_help "\`$file' is not a file" + + dir= + case $file in + *.la) + func_resolve_sysroot "$file" + file=$func_resolve_sysroot_result + + # Check to see that this really is a libtool archive. + func_lalib_unsafe_p "$file" \ + || func_fatal_help "\`$lib' is not a valid libtool archive" + + # Read the libtool library. + dlname= + library_names= + func_source "$file" + + # Skip this library if it cannot be dlopened. + if test -z "$dlname"; then + # Warn if it was a shared library. + test -n "$library_names" && \ + func_warning "\`$file' was not linked with \`-export-dynamic'" + continue + fi + + func_dirname "$file" "" "." + dir="$func_dirname_result" + + if test -f "$dir/$objdir/$dlname"; then + func_append dir "/$objdir" + else + if test ! -f "$dir/$dlname"; then + func_fatal_error "cannot find \`$dlname' in \`$dir' or \`$dir/$objdir'" + fi + fi + ;; + + *.lo) + # Just add the directory containing the .lo file. + func_dirname "$file" "" "." + dir="$func_dirname_result" + ;; + + *) + func_warning "\`-dlopen' is ignored for non-libtool libraries and objects" + continue + ;; + esac + + # Get the absolute pathname. + absdir=`cd "$dir" && pwd` + test -n "$absdir" && dir="$absdir" + + # Now add the directory to shlibpath_var. + if eval "test -z \"\$$shlibpath_var\""; then + eval "$shlibpath_var=\"\$dir\"" + else + eval "$shlibpath_var=\"\$dir:\$$shlibpath_var\"" + fi + done + + # This variable tells wrapper scripts just to set shlibpath_var + # rather than running their programs. + libtool_execute_magic="$magic" + + # Check if any of the arguments is a wrapper script. + args= + for file + do + case $file in + -* | *.la | *.lo ) ;; + *) + # Do a test to see if this is really a libtool program. + if func_ltwrapper_script_p "$file"; then + func_source "$file" + # Transform arg to wrapped name. + file="$progdir/$program" + elif func_ltwrapper_executable_p "$file"; then + func_ltwrapper_scriptname "$file" + func_source "$func_ltwrapper_scriptname_result" + # Transform arg to wrapped name. + file="$progdir/$program" + fi + ;; + esac + # Quote arguments (to preserve shell metacharacters). + func_append_quoted args "$file" + done + + if test "X$opt_dry_run" = Xfalse; then + if test -n "$shlibpath_var"; then + # Export the shlibpath_var. + eval "export $shlibpath_var" + fi + + # Restore saved environment variables + for lt_var in LANG LANGUAGE LC_ALL LC_CTYPE LC_COLLATE LC_MESSAGES + do + eval "if test \"\${save_$lt_var+set}\" = set; then + $lt_var=\$save_$lt_var; export $lt_var + else + $lt_unset $lt_var + fi" + done + + # Now prepare to actually exec the command. + exec_cmd="\$cmd$args" + else + # Display what would be done. + if test -n "$shlibpath_var"; then + eval "\$ECHO \"\$shlibpath_var=\$$shlibpath_var\"" + echo "export $shlibpath_var" + fi + $ECHO "$cmd$args" + exit $EXIT_SUCCESS + fi +} + +test "$opt_mode" = execute && func_mode_execute ${1+"$@"} + + +# func_mode_finish arg... +func_mode_finish () +{ + $opt_debug + libs= + libdirs= + admincmds= + + for opt in "$nonopt" ${1+"$@"} + do + if test -d "$opt"; then + func_append libdirs " $opt" + + elif test -f "$opt"; then + if func_lalib_unsafe_p "$opt"; then + func_append libs " $opt" + else + func_warning "\`$opt' is not a valid libtool archive" + fi + + else + func_fatal_error "invalid argument \`$opt'" + fi + done + + if test -n "$libs"; then + if test -n "$lt_sysroot"; then + sysroot_regex=`$ECHO "$lt_sysroot" | $SED "$sed_make_literal_regex"` + sysroot_cmd="s/\([ ']\)$sysroot_regex/\1/g;" + else + sysroot_cmd= + fi + + # Remove sysroot references + if $opt_dry_run; then + for lib in $libs; do + echo "removing references to $lt_sysroot and \`=' prefixes from $lib" + done + else + tmpdir=`func_mktempdir` + for lib in $libs; do + sed -e "${sysroot_cmd} s/\([ ']-[LR]\)=/\1/g; s/\([ ']\)=/\1/g" $lib \ + > $tmpdir/tmp-la + mv -f $tmpdir/tmp-la $lib + done + ${RM}r "$tmpdir" + fi + fi + + if test -n "$finish_cmds$finish_eval" && test -n "$libdirs"; then + for libdir in $libdirs; do + if test -n "$finish_cmds"; then + # Do each command in the finish commands. + func_execute_cmds "$finish_cmds" 'admincmds="$admincmds +'"$cmd"'"' + fi + if test -n "$finish_eval"; then + # Do the single finish_eval. + eval cmds=\"$finish_eval\" + $opt_dry_run || eval "$cmds" || func_append admincmds " + $cmds" + fi + done + fi + + # Exit here if they wanted silent mode. + $opt_silent && exit $EXIT_SUCCESS + + if test -n "$finish_cmds$finish_eval" && test -n "$libdirs"; then + echo "----------------------------------------------------------------------" + echo "Libraries have been installed in:" + for libdir in $libdirs; do + $ECHO " $libdir" + done + echo + echo "If you ever happen to want to link against installed libraries" + echo "in a given directory, LIBDIR, you must either use libtool, and" + echo "specify the full pathname of the library, or use the \`-LLIBDIR'" + echo "flag during linking and do at least one of the following:" + if test -n "$shlibpath_var"; then + echo " - add LIBDIR to the \`$shlibpath_var' environment variable" + echo " during execution" + fi + if test -n "$runpath_var"; then + echo " - add LIBDIR to the \`$runpath_var' environment variable" + echo " during linking" + fi + if test -n "$hardcode_libdir_flag_spec"; then + libdir=LIBDIR + eval flag=\"$hardcode_libdir_flag_spec\" + + $ECHO " - use the \`$flag' linker flag" + fi + if test -n "$admincmds"; then + $ECHO " - have your system administrator run these commands:$admincmds" + fi + if test -f /etc/ld.so.conf; then + echo " - have your system administrator add LIBDIR to \`/etc/ld.so.conf'" + fi + echo + + echo "See any operating system documentation about shared libraries for" + case $host in + solaris2.[6789]|solaris2.1[0-9]) + echo "more information, such as the ld(1), crle(1) and ld.so(8) manual" + echo "pages." + ;; + *) + echo "more information, such as the ld(1) and ld.so(8) manual pages." + ;; + esac + echo "----------------------------------------------------------------------" + fi + exit $EXIT_SUCCESS +} + +test "$opt_mode" = finish && func_mode_finish ${1+"$@"} + + +# func_mode_install arg... +func_mode_install () +{ + $opt_debug + # There may be an optional sh(1) argument at the beginning of + # install_prog (especially on Windows NT). + if test "$nonopt" = "$SHELL" || test "$nonopt" = /bin/sh || + # Allow the use of GNU shtool's install command. + case $nonopt in *shtool*) :;; *) false;; esac; then + # Aesthetically quote it. + func_quote_for_eval "$nonopt" + install_prog="$func_quote_for_eval_result " + arg=$1 + shift + else + install_prog= + arg=$nonopt + fi + + # The real first argument should be the name of the installation program. + # Aesthetically quote it. + func_quote_for_eval "$arg" + func_append install_prog "$func_quote_for_eval_result" + install_shared_prog=$install_prog + case " $install_prog " in + *[\\\ /]cp\ *) install_cp=: ;; + *) install_cp=false ;; + esac + + # We need to accept at least all the BSD install flags. + dest= + files= + opts= + prev= + install_type= + isdir=no + stripme= + no_mode=: + for arg + do + arg2= + if test -n "$dest"; then + func_append files " $dest" + dest=$arg + continue + fi + + case $arg in + -d) isdir=yes ;; + -f) + if $install_cp; then :; else + prev=$arg + fi + ;; + -g | -m | -o) + prev=$arg + ;; + -s) + stripme=" -s" + continue + ;; + -*) + ;; + *) + # If the previous option needed an argument, then skip it. + if test -n "$prev"; then + if test "x$prev" = x-m && test -n "$install_override_mode"; then + arg2=$install_override_mode + no_mode=false + fi + prev= + else + dest=$arg + continue + fi + ;; + esac + + # Aesthetically quote the argument. + func_quote_for_eval "$arg" + func_append install_prog " $func_quote_for_eval_result" + if test -n "$arg2"; then + func_quote_for_eval "$arg2" + fi + func_append install_shared_prog " $func_quote_for_eval_result" + done + + test -z "$install_prog" && \ + func_fatal_help "you must specify an install program" + + test -n "$prev" && \ + func_fatal_help "the \`$prev' option requires an argument" + + if test -n "$install_override_mode" && $no_mode; then + if $install_cp; then :; else + func_quote_for_eval "$install_override_mode" + func_append install_shared_prog " -m $func_quote_for_eval_result" + fi + fi + + if test -z "$files"; then + if test -z "$dest"; then + func_fatal_help "no file or destination specified" + else + func_fatal_help "you must specify a destination" + fi + fi + + # Strip any trailing slash from the destination. + func_stripname '' '/' "$dest" + dest=$func_stripname_result + + # Check to see that the destination is a directory. + test -d "$dest" && isdir=yes + if test "$isdir" = yes; then + destdir="$dest" + destname= + else + func_dirname_and_basename "$dest" "" "." + destdir="$func_dirname_result" + destname="$func_basename_result" + + # Not a directory, so check to see that there is only one file specified. + set dummy $files; shift + test "$#" -gt 1 && \ + func_fatal_help "\`$dest' is not a directory" + fi + case $destdir in + [\\/]* | [A-Za-z]:[\\/]*) ;; + *) + for file in $files; do + case $file in + *.lo) ;; + *) + func_fatal_help "\`$destdir' must be an absolute directory name" + ;; + esac + done + ;; + esac + + # This variable tells wrapper scripts just to set variables rather + # than running their programs. + libtool_install_magic="$magic" + + staticlibs= + future_libdirs= + current_libdirs= + for file in $files; do + + # Do each installation. + case $file in + *.$libext) + # Do the static libraries later. + func_append staticlibs " $file" + ;; + + *.la) + func_resolve_sysroot "$file" + file=$func_resolve_sysroot_result + + # Check to see that this really is a libtool archive. + func_lalib_unsafe_p "$file" \ + || func_fatal_help "\`$file' is not a valid libtool archive" + + library_names= + old_library= + relink_command= + func_source "$file" + + # Add the libdir to current_libdirs if it is the destination. + if test "X$destdir" = "X$libdir"; then + case "$current_libdirs " in + *" $libdir "*) ;; + *) func_append current_libdirs " $libdir" ;; + esac + else + # Note the libdir as a future libdir. + case "$future_libdirs " in + *" $libdir "*) ;; + *) func_append future_libdirs " $libdir" ;; + esac + fi + + func_dirname "$file" "/" "" + dir="$func_dirname_result" + func_append dir "$objdir" + + if test -n "$relink_command"; then + # Determine the prefix the user has applied to our future dir. + inst_prefix_dir=`$ECHO "$destdir" | $SED -e "s%$libdir\$%%"` + + # Don't allow the user to place us outside of our expected + # location b/c this prevents finding dependent libraries that + # are installed to the same prefix. + # At present, this check doesn't affect windows .dll's that + # are installed into $libdir/../bin (currently, that works fine) + # but it's something to keep an eye on. + test "$inst_prefix_dir" = "$destdir" && \ + func_fatal_error "error: cannot install \`$file' to a directory not ending in $libdir" + + if test -n "$inst_prefix_dir"; then + # Stick the inst_prefix_dir data into the link command. + relink_command=`$ECHO "$relink_command" | $SED "s%@inst_prefix_dir@%-inst-prefix-dir $inst_prefix_dir%"` + else + relink_command=`$ECHO "$relink_command" | $SED "s%@inst_prefix_dir@%%"` + fi + + func_warning "relinking \`$file'" + func_show_eval "$relink_command" \ + 'func_fatal_error "error: relink \`$file'\'' with the above command before installing it"' + fi + + # See the names of the shared library. + set dummy $library_names; shift + if test -n "$1"; then + realname="$1" + shift + + srcname="$realname" + test -n "$relink_command" && srcname="$realname"T + + # Install the shared library and build the symlinks. + func_show_eval "$install_shared_prog $dir/$srcname $destdir/$realname" \ + 'exit $?' + tstripme="$stripme" + case $host_os in + cygwin* | mingw* | pw32* | cegcc*) + case $realname in + *.dll.a) + tstripme="" + ;; + esac + ;; + esac + if test -n "$tstripme" && test -n "$striplib"; then + func_show_eval "$striplib $destdir/$realname" 'exit $?' + fi + + if test "$#" -gt 0; then + # Delete the old symlinks, and create new ones. + # Try `ln -sf' first, because the `ln' binary might depend on + # the symlink we replace! Solaris /bin/ln does not understand -f, + # so we also need to try rm && ln -s. + for linkname + do + test "$linkname" != "$realname" \ + && func_show_eval "(cd $destdir && { $LN_S -f $realname $linkname || { $RM $linkname && $LN_S $realname $linkname; }; })" + done + fi + + # Do each command in the postinstall commands. + lib="$destdir/$realname" + func_execute_cmds "$postinstall_cmds" 'exit $?' + fi + + # Install the pseudo-library for information purposes. + func_basename "$file" + name="$func_basename_result" + instname="$dir/$name"i + func_show_eval "$install_prog $instname $destdir/$name" 'exit $?' + + # Maybe install the static library, too. + test -n "$old_library" && func_append staticlibs " $dir/$old_library" + ;; + + *.lo) + # Install (i.e. copy) a libtool object. + + # Figure out destination file name, if it wasn't already specified. + if test -n "$destname"; then + destfile="$destdir/$destname" + else + func_basename "$file" + destfile="$func_basename_result" + destfile="$destdir/$destfile" + fi + + # Deduce the name of the destination old-style object file. + case $destfile in + *.lo) + func_lo2o "$destfile" + staticdest=$func_lo2o_result + ;; + *.$objext) + staticdest="$destfile" + destfile= + ;; + *) + func_fatal_help "cannot copy a libtool object to \`$destfile'" + ;; + esac + + # Install the libtool object if requested. + test -n "$destfile" && \ + func_show_eval "$install_prog $file $destfile" 'exit $?' + + # Install the old object if enabled. + if test "$build_old_libs" = yes; then + # Deduce the name of the old-style object file. + func_lo2o "$file" + staticobj=$func_lo2o_result + func_show_eval "$install_prog \$staticobj \$staticdest" 'exit $?' + fi + exit $EXIT_SUCCESS + ;; + + *) + # Figure out destination file name, if it wasn't already specified. + if test -n "$destname"; then + destfile="$destdir/$destname" + else + func_basename "$file" + destfile="$func_basename_result" + destfile="$destdir/$destfile" + fi + + # If the file is missing, and there is a .exe on the end, strip it + # because it is most likely a libtool script we actually want to + # install + stripped_ext="" + case $file in + *.exe) + if test ! -f "$file"; then + func_stripname '' '.exe' "$file" + file=$func_stripname_result + stripped_ext=".exe" + fi + ;; + esac + + # Do a test to see if this is really a libtool program. + case $host in + *cygwin* | *mingw*) + if func_ltwrapper_executable_p "$file"; then + func_ltwrapper_scriptname "$file" + wrapper=$func_ltwrapper_scriptname_result + else + func_stripname '' '.exe' "$file" + wrapper=$func_stripname_result + fi + ;; + *) + wrapper=$file + ;; + esac + if func_ltwrapper_script_p "$wrapper"; then + notinst_deplibs= + relink_command= + + func_source "$wrapper" + + # Check the variables that should have been set. + test -z "$generated_by_libtool_version" && \ + func_fatal_error "invalid libtool wrapper script \`$wrapper'" + + finalize=yes + for lib in $notinst_deplibs; do + # Check to see that each library is installed. + libdir= + if test -f "$lib"; then + func_source "$lib" + fi + libfile="$libdir/"`$ECHO "$lib" | $SED 's%^.*/%%g'` ### testsuite: skip nested quoting test + if test -n "$libdir" && test ! -f "$libfile"; then + func_warning "\`$lib' has not been installed in \`$libdir'" + finalize=no + fi + done + + relink_command= + func_source "$wrapper" + + outputname= + if test "$fast_install" = no && test -n "$relink_command"; then + $opt_dry_run || { + if test "$finalize" = yes; then + tmpdir=`func_mktempdir` + func_basename "$file$stripped_ext" + file="$func_basename_result" + outputname="$tmpdir/$file" + # Replace the output file specification. + relink_command=`$ECHO "$relink_command" | $SED 's%@OUTPUT@%'"$outputname"'%g'` + + $opt_silent || { + func_quote_for_expand "$relink_command" + eval "func_echo $func_quote_for_expand_result" + } + if eval "$relink_command"; then : + else + func_error "error: relink \`$file' with the above command before installing it" + $opt_dry_run || ${RM}r "$tmpdir" + continue + fi + file="$outputname" + else + func_warning "cannot relink \`$file'" + fi + } + else + # Install the binary that we compiled earlier. + file=`$ECHO "$file$stripped_ext" | $SED "s%\([^/]*\)$%$objdir/\1%"` + fi + fi + + # remove .exe since cygwin /usr/bin/install will append another + # one anyway + case $install_prog,$host in + */usr/bin/install*,*cygwin*) + case $file:$destfile in + *.exe:*.exe) + # this is ok + ;; + *.exe:*) + destfile=$destfile.exe + ;; + *:*.exe) + func_stripname '' '.exe' "$destfile" + destfile=$func_stripname_result + ;; + esac + ;; + esac + func_show_eval "$install_prog\$stripme \$file \$destfile" 'exit $?' + $opt_dry_run || if test -n "$outputname"; then + ${RM}r "$tmpdir" + fi + ;; + esac + done + + for file in $staticlibs; do + func_basename "$file" + name="$func_basename_result" + + # Set up the ranlib parameters. + oldlib="$destdir/$name" + func_to_tool_file "$oldlib" func_convert_file_msys_to_w32 + tool_oldlib=$func_to_tool_file_result + + func_show_eval "$install_prog \$file \$oldlib" 'exit $?' + + if test -n "$stripme" && test -n "$old_striplib"; then + func_show_eval "$old_striplib $tool_oldlib" 'exit $?' + fi + + # Do each command in the postinstall commands. + func_execute_cmds "$old_postinstall_cmds" 'exit $?' + done + + test -n "$future_libdirs" && \ + func_warning "remember to run \`$progname --finish$future_libdirs'" + + if test -n "$current_libdirs"; then + # Maybe just do a dry run. + $opt_dry_run && current_libdirs=" -n$current_libdirs" + exec_cmd='$SHELL $progpath $preserve_args --finish$current_libdirs' + else + exit $EXIT_SUCCESS + fi +} + +test "$opt_mode" = install && func_mode_install ${1+"$@"} + + +# func_generate_dlsyms outputname originator pic_p +# Extract symbols from dlprefiles and create ${outputname}S.o with +# a dlpreopen symbol table. +func_generate_dlsyms () +{ + $opt_debug + my_outputname="$1" + my_originator="$2" + my_pic_p="${3-no}" + my_prefix=`$ECHO "$my_originator" | sed 's%[^a-zA-Z0-9]%_%g'` + my_dlsyms= + + if test -n "$dlfiles$dlprefiles" || test "$dlself" != no; then + if test -n "$NM" && test -n "$global_symbol_pipe"; then + my_dlsyms="${my_outputname}S.c" + else + func_error "not configured to extract global symbols from dlpreopened files" + fi + fi + + if test -n "$my_dlsyms"; then + case $my_dlsyms in + "") ;; + *.c) + # Discover the nlist of each of the dlfiles. + nlist="$output_objdir/${my_outputname}.nm" + + func_show_eval "$RM $nlist ${nlist}S ${nlist}T" + + # Parse the name list into a source file. + func_verbose "creating $output_objdir/$my_dlsyms" + + $opt_dry_run || $ECHO > "$output_objdir/$my_dlsyms" "\ +/* $my_dlsyms - symbol resolution table for \`$my_outputname' dlsym emulation. */ +/* Generated by $PROGRAM (GNU $PACKAGE$TIMESTAMP) $VERSION */ + +#ifdef __cplusplus +extern \"C\" { +#endif + +#if defined(__GNUC__) && (((__GNUC__ == 4) && (__GNUC_MINOR__ >= 4)) || (__GNUC__ > 4)) +#pragma GCC diagnostic ignored \"-Wstrict-prototypes\" +#endif + +/* Keep this code in sync between libtool.m4, ltmain, lt_system.h, and tests. */ +#if defined(_WIN32) || defined(__CYGWIN__) || defined(_WIN32_WCE) +/* DATA imports from DLLs on WIN32 con't be const, because runtime + relocations are performed -- see ld's documentation on pseudo-relocs. */ +# define LT_DLSYM_CONST +#elif defined(__osf__) +/* This system does not cope well with relocations in const data. */ +# define LT_DLSYM_CONST +#else +# define LT_DLSYM_CONST const +#endif + +/* External symbol declarations for the compiler. */\ +" + + if test "$dlself" = yes; then + func_verbose "generating symbol list for \`$output'" + + $opt_dry_run || echo ': @PROGRAM@ ' > "$nlist" + + # Add our own program objects to the symbol list. + progfiles=`$ECHO "$objs$old_deplibs" | $SP2NL | $SED "$lo2o" | $NL2SP` + for progfile in $progfiles; do + func_to_tool_file "$progfile" func_convert_file_msys_to_w32 + func_verbose "extracting global C symbols from \`$func_to_tool_file_result'" + $opt_dry_run || eval "$NM $func_to_tool_file_result | $global_symbol_pipe >> '$nlist'" + done + + if test -n "$exclude_expsyms"; then + $opt_dry_run || { + eval '$EGREP -v " ($exclude_expsyms)$" "$nlist" > "$nlist"T' + eval '$MV "$nlist"T "$nlist"' + } + fi + + if test -n "$export_symbols_regex"; then + $opt_dry_run || { + eval '$EGREP -e "$export_symbols_regex" "$nlist" > "$nlist"T' + eval '$MV "$nlist"T "$nlist"' + } + fi + + # Prepare the list of exported symbols + if test -z "$export_symbols"; then + export_symbols="$output_objdir/$outputname.exp" + $opt_dry_run || { + $RM $export_symbols + eval "${SED} -n -e '/^: @PROGRAM@ $/d' -e 's/^.* \(.*\)$/\1/p' "'< "$nlist" > "$export_symbols"' + case $host in + *cygwin* | *mingw* | *cegcc* ) + eval "echo EXPORTS "'> "$output_objdir/$outputname.def"' + eval 'cat "$export_symbols" >> "$output_objdir/$outputname.def"' + ;; + esac + } + else + $opt_dry_run || { + eval "${SED} -e 's/\([].[*^$]\)/\\\\\1/g' -e 's/^/ /' -e 's/$/$/'"' < "$export_symbols" > "$output_objdir/$outputname.exp"' + eval '$GREP -f "$output_objdir/$outputname.exp" < "$nlist" > "$nlist"T' + eval '$MV "$nlist"T "$nlist"' + case $host in + *cygwin* | *mingw* | *cegcc* ) + eval "echo EXPORTS "'> "$output_objdir/$outputname.def"' + eval 'cat "$nlist" >> "$output_objdir/$outputname.def"' + ;; + esac + } + fi + fi + + for dlprefile in $dlprefiles; do + func_verbose "extracting global C symbols from \`$dlprefile'" + func_basename "$dlprefile" + name="$func_basename_result" + case $host in + *cygwin* | *mingw* | *cegcc* ) + # if an import library, we need to obtain dlname + if func_win32_import_lib_p "$dlprefile"; then + func_tr_sh "$dlprefile" + eval "curr_lafile=\$libfile_$func_tr_sh_result" + dlprefile_dlbasename="" + if test -n "$curr_lafile" && func_lalib_p "$curr_lafile"; then + # Use subshell, to avoid clobbering current variable values + dlprefile_dlname=`source "$curr_lafile" && echo "$dlname"` + if test -n "$dlprefile_dlname" ; then + func_basename "$dlprefile_dlname" + dlprefile_dlbasename="$func_basename_result" + else + # no lafile. user explicitly requested -dlpreopen . + $sharedlib_from_linklib_cmd "$dlprefile" + dlprefile_dlbasename=$sharedlib_from_linklib_result + fi + fi + $opt_dry_run || { + if test -n "$dlprefile_dlbasename" ; then + eval '$ECHO ": $dlprefile_dlbasename" >> "$nlist"' + else + func_warning "Could not compute DLL name from $name" + eval '$ECHO ": $name " >> "$nlist"' + fi + func_to_tool_file "$dlprefile" func_convert_file_msys_to_w32 + eval "$NM \"$func_to_tool_file_result\" 2>/dev/null | $global_symbol_pipe | + $SED -e '/I __imp/d' -e 's/I __nm_/D /;s/_nm__//' >> '$nlist'" + } + else # not an import lib + $opt_dry_run || { + eval '$ECHO ": $name " >> "$nlist"' + func_to_tool_file "$dlprefile" func_convert_file_msys_to_w32 + eval "$NM \"$func_to_tool_file_result\" 2>/dev/null | $global_symbol_pipe >> '$nlist'" + } + fi + ;; + *) + $opt_dry_run || { + eval '$ECHO ": $name " >> "$nlist"' + func_to_tool_file "$dlprefile" func_convert_file_msys_to_w32 + eval "$NM \"$func_to_tool_file_result\" 2>/dev/null | $global_symbol_pipe >> '$nlist'" + } + ;; + esac + done + + $opt_dry_run || { + # Make sure we have at least an empty file. + test -f "$nlist" || : > "$nlist" + + if test -n "$exclude_expsyms"; then + $EGREP -v " ($exclude_expsyms)$" "$nlist" > "$nlist"T + $MV "$nlist"T "$nlist" + fi + + # Try sorting and uniquifying the output. + if $GREP -v "^: " < "$nlist" | + if sort -k 3 /dev/null 2>&1; then + sort -k 3 + else + sort +2 + fi | + uniq > "$nlist"S; then + : + else + $GREP -v "^: " < "$nlist" > "$nlist"S + fi + + if test -f "$nlist"S; then + eval "$global_symbol_to_cdecl"' < "$nlist"S >> "$output_objdir/$my_dlsyms"' + else + echo '/* NONE */' >> "$output_objdir/$my_dlsyms" + fi + + echo >> "$output_objdir/$my_dlsyms" "\ + +/* The mapping between symbol names and symbols. */ +typedef struct { + const char *name; + void *address; +} lt_dlsymlist; +extern LT_DLSYM_CONST lt_dlsymlist +lt_${my_prefix}_LTX_preloaded_symbols[]; +LT_DLSYM_CONST lt_dlsymlist +lt_${my_prefix}_LTX_preloaded_symbols[] = +{\ + { \"$my_originator\", (void *) 0 }," + + case $need_lib_prefix in + no) + eval "$global_symbol_to_c_name_address" < "$nlist" >> "$output_objdir/$my_dlsyms" + ;; + *) + eval "$global_symbol_to_c_name_address_lib_prefix" < "$nlist" >> "$output_objdir/$my_dlsyms" + ;; + esac + echo >> "$output_objdir/$my_dlsyms" "\ + {0, (void *) 0} +}; + +/* This works around a problem in FreeBSD linker */ +#ifdef FREEBSD_WORKAROUND +static const void *lt_preloaded_setup() { + return lt_${my_prefix}_LTX_preloaded_symbols; +} +#endif + +#ifdef __cplusplus +} +#endif\ +" + } # !$opt_dry_run + + pic_flag_for_symtable= + case "$compile_command " in + *" -static "*) ;; + *) + case $host in + # compiling the symbol table file with pic_flag works around + # a FreeBSD bug that causes programs to crash when -lm is + # linked before any other PIC object. But we must not use + # pic_flag when linking with -static. The problem exists in + # FreeBSD 2.2.6 and is fixed in FreeBSD 3.1. + *-*-freebsd2.*|*-*-freebsd3.0*|*-*-freebsdelf3.0*) + pic_flag_for_symtable=" $pic_flag -DFREEBSD_WORKAROUND" ;; + *-*-hpux*) + pic_flag_for_symtable=" $pic_flag" ;; + *) + if test "X$my_pic_p" != Xno; then + pic_flag_for_symtable=" $pic_flag" + fi + ;; + esac + ;; + esac + symtab_cflags= + for arg in $LTCFLAGS; do + case $arg in + -pie | -fpie | -fPIE) ;; + *) func_append symtab_cflags " $arg" ;; + esac + done + + # Now compile the dynamic symbol file. + func_show_eval '(cd $output_objdir && $LTCC$symtab_cflags -c$no_builtin_flag$pic_flag_for_symtable "$my_dlsyms")' 'exit $?' + + # Clean up the generated files. + func_show_eval '$RM "$output_objdir/$my_dlsyms" "$nlist" "${nlist}S" "${nlist}T"' + + # Transform the symbol file into the correct name. + symfileobj="$output_objdir/${my_outputname}S.$objext" + case $host in + *cygwin* | *mingw* | *cegcc* ) + if test -f "$output_objdir/$my_outputname.def"; then + compile_command=`$ECHO "$compile_command" | $SED "s%@SYMFILE@%$output_objdir/$my_outputname.def $symfileobj%"` + finalize_command=`$ECHO "$finalize_command" | $SED "s%@SYMFILE@%$output_objdir/$my_outputname.def $symfileobj%"` + else + compile_command=`$ECHO "$compile_command" | $SED "s%@SYMFILE@%$symfileobj%"` + finalize_command=`$ECHO "$finalize_command" | $SED "s%@SYMFILE@%$symfileobj%"` + fi + ;; + *) + compile_command=`$ECHO "$compile_command" | $SED "s%@SYMFILE@%$symfileobj%"` + finalize_command=`$ECHO "$finalize_command" | $SED "s%@SYMFILE@%$symfileobj%"` + ;; + esac + ;; + *) + func_fatal_error "unknown suffix for \`$my_dlsyms'" + ;; + esac + else + # We keep going just in case the user didn't refer to + # lt_preloaded_symbols. The linker will fail if global_symbol_pipe + # really was required. + + # Nullify the symbol file. + compile_command=`$ECHO "$compile_command" | $SED "s% @SYMFILE@%%"` + finalize_command=`$ECHO "$finalize_command" | $SED "s% @SYMFILE@%%"` + fi +} + +# func_win32_libid arg +# return the library type of file 'arg' +# +# Need a lot of goo to handle *both* DLLs and import libs +# Has to be a shell function in order to 'eat' the argument +# that is supplied when $file_magic_command is called. +# Despite the name, also deal with 64 bit binaries. +func_win32_libid () +{ + $opt_debug + win32_libid_type="unknown" + win32_fileres=`file -L $1 2>/dev/null` + case $win32_fileres in + *ar\ archive\ import\ library*) # definitely import + win32_libid_type="x86 archive import" + ;; + *ar\ archive*) # could be an import, or static + # Keep the egrep pattern in sync with the one in _LT_CHECK_MAGIC_METHOD. + if eval $OBJDUMP -f $1 | $SED -e '10q' 2>/dev/null | + $EGREP 'file format (pei*-i386(.*architecture: i386)?|pe-arm-wince|pe-x86-64)' >/dev/null; then + func_to_tool_file "$1" func_convert_file_msys_to_w32 + win32_nmres=`eval $NM -f posix -A \"$func_to_tool_file_result\" | + $SED -n -e ' + 1,100{ + / I /{ + s,.*,import, + p + q + } + }'` + case $win32_nmres in + import*) win32_libid_type="x86 archive import";; + *) win32_libid_type="x86 archive static";; + esac + fi + ;; + *DLL*) + win32_libid_type="x86 DLL" + ;; + *executable*) # but shell scripts are "executable" too... + case $win32_fileres in + *MS\ Windows\ PE\ Intel*) + win32_libid_type="x86 DLL" + ;; + esac + ;; + esac + $ECHO "$win32_libid_type" +} + +# func_cygming_dll_for_implib ARG +# +# Platform-specific function to extract the +# name of the DLL associated with the specified +# import library ARG. +# Invoked by eval'ing the libtool variable +# $sharedlib_from_linklib_cmd +# Result is available in the variable +# $sharedlib_from_linklib_result +func_cygming_dll_for_implib () +{ + $opt_debug + sharedlib_from_linklib_result=`$DLLTOOL --identify-strict --identify "$1"` +} + +# func_cygming_dll_for_implib_fallback_core SECTION_NAME LIBNAMEs +# +# The is the core of a fallback implementation of a +# platform-specific function to extract the name of the +# DLL associated with the specified import library LIBNAME. +# +# SECTION_NAME is either .idata$6 or .idata$7, depending +# on the platform and compiler that created the implib. +# +# Echos the name of the DLL associated with the +# specified import library. +func_cygming_dll_for_implib_fallback_core () +{ + $opt_debug + match_literal=`$ECHO "$1" | $SED "$sed_make_literal_regex"` + $OBJDUMP -s --section "$1" "$2" 2>/dev/null | + $SED '/^Contents of section '"$match_literal"':/{ + # Place marker at beginning of archive member dllname section + s/.*/====MARK====/ + p + d + } + # These lines can sometimes be longer than 43 characters, but + # are always uninteresting + /:[ ]*file format pe[i]\{,1\}-/d + /^In archive [^:]*:/d + # Ensure marker is printed + /^====MARK====/p + # Remove all lines with less than 43 characters + /^.\{43\}/!d + # From remaining lines, remove first 43 characters + s/^.\{43\}//' | + $SED -n ' + # Join marker and all lines until next marker into a single line + /^====MARK====/ b para + H + $ b para + b + :para + x + s/\n//g + # Remove the marker + s/^====MARK====// + # Remove trailing dots and whitespace + s/[\. \t]*$// + # Print + /./p' | + # we now have a list, one entry per line, of the stringified + # contents of the appropriate section of all members of the + # archive which possess that section. Heuristic: eliminate + # all those which have a first or second character that is + # a '.' (that is, objdump's representation of an unprintable + # character.) This should work for all archives with less than + # 0x302f exports -- but will fail for DLLs whose name actually + # begins with a literal '.' or a single character followed by + # a '.'. + # + # Of those that remain, print the first one. + $SED -e '/^\./d;/^.\./d;q' +} + +# func_cygming_gnu_implib_p ARG +# This predicate returns with zero status (TRUE) if +# ARG is a GNU/binutils-style import library. Returns +# with nonzero status (FALSE) otherwise. +func_cygming_gnu_implib_p () +{ + $opt_debug + func_to_tool_file "$1" func_convert_file_msys_to_w32 + func_cygming_gnu_implib_tmp=`$NM "$func_to_tool_file_result" | eval "$global_symbol_pipe" | $EGREP ' (_head_[A-Za-z0-9_]+_[ad]l*|[A-Za-z0-9_]+_[ad]l*_iname)$'` + test -n "$func_cygming_gnu_implib_tmp" +} + +# func_cygming_ms_implib_p ARG +# This predicate returns with zero status (TRUE) if +# ARG is an MS-style import library. Returns +# with nonzero status (FALSE) otherwise. +func_cygming_ms_implib_p () +{ + $opt_debug + func_to_tool_file "$1" func_convert_file_msys_to_w32 + func_cygming_ms_implib_tmp=`$NM "$func_to_tool_file_result" | eval "$global_symbol_pipe" | $GREP '_NULL_IMPORT_DESCRIPTOR'` + test -n "$func_cygming_ms_implib_tmp" +} + +# func_cygming_dll_for_implib_fallback ARG +# Platform-specific function to extract the +# name of the DLL associated with the specified +# import library ARG. +# +# This fallback implementation is for use when $DLLTOOL +# does not support the --identify-strict option. +# Invoked by eval'ing the libtool variable +# $sharedlib_from_linklib_cmd +# Result is available in the variable +# $sharedlib_from_linklib_result +func_cygming_dll_for_implib_fallback () +{ + $opt_debug + if func_cygming_gnu_implib_p "$1" ; then + # binutils import library + sharedlib_from_linklib_result=`func_cygming_dll_for_implib_fallback_core '.idata$7' "$1"` + elif func_cygming_ms_implib_p "$1" ; then + # ms-generated import library + sharedlib_from_linklib_result=`func_cygming_dll_for_implib_fallback_core '.idata$6' "$1"` + else + # unknown + sharedlib_from_linklib_result="" + fi +} + + +# func_extract_an_archive dir oldlib +func_extract_an_archive () +{ + $opt_debug + f_ex_an_ar_dir="$1"; shift + f_ex_an_ar_oldlib="$1" + if test "$lock_old_archive_extraction" = yes; then + lockfile=$f_ex_an_ar_oldlib.lock + until $opt_dry_run || ln "$progpath" "$lockfile" 2>/dev/null; do + func_echo "Waiting for $lockfile to be removed" + sleep 2 + done + fi + func_show_eval "(cd \$f_ex_an_ar_dir && $AR x \"\$f_ex_an_ar_oldlib\")" \ + 'stat=$?; rm -f "$lockfile"; exit $stat' + if test "$lock_old_archive_extraction" = yes; then + $opt_dry_run || rm -f "$lockfile" + fi + if ($AR t "$f_ex_an_ar_oldlib" | sort | sort -uc >/dev/null 2>&1); then + : + else + func_fatal_error "object name conflicts in archive: $f_ex_an_ar_dir/$f_ex_an_ar_oldlib" + fi +} + + +# func_extract_archives gentop oldlib ... +func_extract_archives () +{ + $opt_debug + my_gentop="$1"; shift + my_oldlibs=${1+"$@"} + my_oldobjs="" + my_xlib="" + my_xabs="" + my_xdir="" + + for my_xlib in $my_oldlibs; do + # Extract the objects. + case $my_xlib in + [\\/]* | [A-Za-z]:[\\/]*) my_xabs="$my_xlib" ;; + *) my_xabs=`pwd`"/$my_xlib" ;; + esac + func_basename "$my_xlib" + my_xlib="$func_basename_result" + my_xlib_u=$my_xlib + while :; do + case " $extracted_archives " in + *" $my_xlib_u "*) + func_arith $extracted_serial + 1 + extracted_serial=$func_arith_result + my_xlib_u=lt$extracted_serial-$my_xlib ;; + *) break ;; + esac + done + extracted_archives="$extracted_archives $my_xlib_u" + my_xdir="$my_gentop/$my_xlib_u" + + func_mkdir_p "$my_xdir" + + case $host in + *-darwin*) + func_verbose "Extracting $my_xabs" + # Do not bother doing anything if just a dry run + $opt_dry_run || { + darwin_orig_dir=`pwd` + cd $my_xdir || exit $? + darwin_archive=$my_xabs + darwin_curdir=`pwd` + darwin_base_archive=`basename "$darwin_archive"` + darwin_arches=`$LIPO -info "$darwin_archive" 2>/dev/null | $GREP Architectures 2>/dev/null || true` + if test -n "$darwin_arches"; then + darwin_arches=`$ECHO "$darwin_arches" | $SED -e 's/.*are://'` + darwin_arch= + func_verbose "$darwin_base_archive has multiple architectures $darwin_arches" + for darwin_arch in $darwin_arches ; do + func_mkdir_p "unfat-$$/${darwin_base_archive}-${darwin_arch}" + $LIPO -thin $darwin_arch -output "unfat-$$/${darwin_base_archive}-${darwin_arch}/${darwin_base_archive}" "${darwin_archive}" + cd "unfat-$$/${darwin_base_archive}-${darwin_arch}" + func_extract_an_archive "`pwd`" "${darwin_base_archive}" + cd "$darwin_curdir" + $RM "unfat-$$/${darwin_base_archive}-${darwin_arch}/${darwin_base_archive}" + done # $darwin_arches + ## Okay now we've a bunch of thin objects, gotta fatten them up :) + darwin_filelist=`find unfat-$$ -type f -name \*.o -print -o -name \*.lo -print | $SED -e "$basename" | sort -u` + darwin_file= + darwin_files= + for darwin_file in $darwin_filelist; do + darwin_files=`find unfat-$$ -name $darwin_file -print | sort | $NL2SP` + $LIPO -create -output "$darwin_file" $darwin_files + done # $darwin_filelist + $RM -rf unfat-$$ + cd "$darwin_orig_dir" + else + cd $darwin_orig_dir + func_extract_an_archive "$my_xdir" "$my_xabs" + fi # $darwin_arches + } # !$opt_dry_run + ;; + *) + func_extract_an_archive "$my_xdir" "$my_xabs" + ;; + esac + my_oldobjs="$my_oldobjs "`find $my_xdir -name \*.$objext -print -o -name \*.lo -print | sort | $NL2SP` + done + + func_extract_archives_result="$my_oldobjs" +} + + +# func_emit_wrapper [arg=no] +# +# Emit a libtool wrapper script on stdout. +# Don't directly open a file because we may want to +# incorporate the script contents within a cygwin/mingw +# wrapper executable. Must ONLY be called from within +# func_mode_link because it depends on a number of variables +# set therein. +# +# ARG is the value that the WRAPPER_SCRIPT_BELONGS_IN_OBJDIR +# variable will take. If 'yes', then the emitted script +# will assume that the directory in which it is stored is +# the $objdir directory. This is a cygwin/mingw-specific +# behavior. +func_emit_wrapper () +{ + func_emit_wrapper_arg1=${1-no} + + $ECHO "\ +#! $SHELL + +# $output - temporary wrapper script for $objdir/$outputname +# Generated by $PROGRAM (GNU $PACKAGE$TIMESTAMP) $VERSION +# +# The $output program cannot be directly executed until all the libtool +# libraries that it depends on are installed. +# +# This wrapper script should never be moved out of the build directory. +# If it is, it will not operate correctly. + +# Sed substitution that helps us do robust quoting. It backslashifies +# metacharacters that are still active within double-quoted strings. +sed_quote_subst='$sed_quote_subst' + +# Be Bourne compatible +if test -n \"\${ZSH_VERSION+set}\" && (emulate sh) >/dev/null 2>&1; then + emulate sh + NULLCMD=: + # Zsh 3.x and 4.x performs word splitting on \${1+\"\$@\"}, which + # is contrary to our usage. Disable this feature. + alias -g '\${1+\"\$@\"}'='\"\$@\"' + setopt NO_GLOB_SUBST +else + case \`(set -o) 2>/dev/null\` in *posix*) set -o posix;; esac +fi +BIN_SH=xpg4; export BIN_SH # for Tru64 +DUALCASE=1; export DUALCASE # for MKS sh + +# The HP-UX ksh and POSIX shell print the target directory to stdout +# if CDPATH is set. +(unset CDPATH) >/dev/null 2>&1 && unset CDPATH + +relink_command=\"$relink_command\" + +# This environment variable determines our operation mode. +if test \"\$libtool_install_magic\" = \"$magic\"; then + # install mode needs the following variables: + generated_by_libtool_version='$macro_version' + notinst_deplibs='$notinst_deplibs' +else + # When we are sourced in execute mode, \$file and \$ECHO are already set. + if test \"\$libtool_execute_magic\" != \"$magic\"; then + file=\"\$0\"" + + qECHO=`$ECHO "$ECHO" | $SED "$sed_quote_subst"` + $ECHO "\ + +# A function that is used when there is no print builtin or printf. +func_fallback_echo () +{ + eval 'cat <<_LTECHO_EOF +\$1 +_LTECHO_EOF' +} + ECHO=\"$qECHO\" + fi + +# Very basic option parsing. These options are (a) specific to +# the libtool wrapper, (b) are identical between the wrapper +# /script/ and the wrapper /executable/ which is used only on +# windows platforms, and (c) all begin with the string "--lt-" +# (application programs are unlikely to have options which match +# this pattern). +# +# There are only two supported options: --lt-debug and +# --lt-dump-script. There is, deliberately, no --lt-help. +# +# The first argument to this parsing function should be the +# script's $0 value, followed by "$@". +lt_option_debug= +func_parse_lt_options () +{ + lt_script_arg0=\$0 + shift + for lt_opt + do + case \"\$lt_opt\" in + --lt-debug) lt_option_debug=1 ;; + --lt-dump-script) + lt_dump_D=\`\$ECHO \"X\$lt_script_arg0\" | $SED -e 's/^X//' -e 's%/[^/]*$%%'\` + test \"X\$lt_dump_D\" = \"X\$lt_script_arg0\" && lt_dump_D=. + lt_dump_F=\`\$ECHO \"X\$lt_script_arg0\" | $SED -e 's/^X//' -e 's%^.*/%%'\` + cat \"\$lt_dump_D/\$lt_dump_F\" + exit 0 + ;; + --lt-*) + \$ECHO \"Unrecognized --lt- option: '\$lt_opt'\" 1>&2 + exit 1 + ;; + esac + done + + # Print the debug banner immediately: + if test -n \"\$lt_option_debug\"; then + echo \"${outputname}:${output}:\${LINENO}: libtool wrapper (GNU $PACKAGE$TIMESTAMP) $VERSION\" 1>&2 + fi +} + +# Used when --lt-debug. Prints its arguments to stdout +# (redirection is the responsibility of the caller) +func_lt_dump_args () +{ + lt_dump_args_N=1; + for lt_arg + do + \$ECHO \"${outputname}:${output}:\${LINENO}: newargv[\$lt_dump_args_N]: \$lt_arg\" + lt_dump_args_N=\`expr \$lt_dump_args_N + 1\` + done +} + +# Core function for launching the target application +func_exec_program_core () +{ +" + case $host in + # Backslashes separate directories on plain windows + *-*-mingw | *-*-os2* | *-cegcc*) + $ECHO "\ + if test -n \"\$lt_option_debug\"; then + \$ECHO \"${outputname}:${output}:\${LINENO}: newargv[0]: \$progdir\\\\\$program\" 1>&2 + func_lt_dump_args \${1+\"\$@\"} 1>&2 + fi + exec \"\$progdir\\\\\$program\" \${1+\"\$@\"} +" + ;; + + *) + $ECHO "\ + if test -n \"\$lt_option_debug\"; then + \$ECHO \"${outputname}:${output}:\${LINENO}: newargv[0]: \$progdir/\$program\" 1>&2 + func_lt_dump_args \${1+\"\$@\"} 1>&2 + fi + exec \"\$progdir/\$program\" \${1+\"\$@\"} +" + ;; + esac + $ECHO "\ + \$ECHO \"\$0: cannot exec \$program \$*\" 1>&2 + exit 1 +} + +# A function to encapsulate launching the target application +# Strips options in the --lt-* namespace from \$@ and +# launches target application with the remaining arguments. +func_exec_program () +{ + case \" \$* \" in + *\\ --lt-*) + for lt_wr_arg + do + case \$lt_wr_arg in + --lt-*) ;; + *) set x \"\$@\" \"\$lt_wr_arg\"; shift;; + esac + shift + done ;; + esac + func_exec_program_core \${1+\"\$@\"} +} + + # Parse options + func_parse_lt_options \"\$0\" \${1+\"\$@\"} + + # Find the directory that this script lives in. + thisdir=\`\$ECHO \"\$file\" | $SED 's%/[^/]*$%%'\` + test \"x\$thisdir\" = \"x\$file\" && thisdir=. + + # Follow symbolic links until we get to the real thisdir. + file=\`ls -ld \"\$file\" | $SED -n 's/.*-> //p'\` + while test -n \"\$file\"; do + destdir=\`\$ECHO \"\$file\" | $SED 's%/[^/]*\$%%'\` + + # If there was a directory component, then change thisdir. + if test \"x\$destdir\" != \"x\$file\"; then + case \"\$destdir\" in + [\\\\/]* | [A-Za-z]:[\\\\/]*) thisdir=\"\$destdir\" ;; + *) thisdir=\"\$thisdir/\$destdir\" ;; + esac + fi + + file=\`\$ECHO \"\$file\" | $SED 's%^.*/%%'\` + file=\`ls -ld \"\$thisdir/\$file\" | $SED -n 's/.*-> //p'\` + done + + # Usually 'no', except on cygwin/mingw when embedded into + # the cwrapper. + WRAPPER_SCRIPT_BELONGS_IN_OBJDIR=$func_emit_wrapper_arg1 + if test \"\$WRAPPER_SCRIPT_BELONGS_IN_OBJDIR\" = \"yes\"; then + # special case for '.' + if test \"\$thisdir\" = \".\"; then + thisdir=\`pwd\` + fi + # remove .libs from thisdir + case \"\$thisdir\" in + *[\\\\/]$objdir ) thisdir=\`\$ECHO \"\$thisdir\" | $SED 's%[\\\\/][^\\\\/]*$%%'\` ;; + $objdir ) thisdir=. ;; + esac + fi + + # Try to get the absolute directory name. + absdir=\`cd \"\$thisdir\" && pwd\` + test -n \"\$absdir\" && thisdir=\"\$absdir\" +" + + if test "$fast_install" = yes; then + $ECHO "\ + program=lt-'$outputname'$exeext + progdir=\"\$thisdir/$objdir\" + + if test ! -f \"\$progdir/\$program\" || + { file=\`ls -1dt \"\$progdir/\$program\" \"\$progdir/../\$program\" 2>/dev/null | ${SED} 1q\`; \\ + test \"X\$file\" != \"X\$progdir/\$program\"; }; then + + file=\"\$\$-\$program\" + + if test ! -d \"\$progdir\"; then + $MKDIR \"\$progdir\" + else + $RM \"\$progdir/\$file\" + fi" + + $ECHO "\ + + # relink executable if necessary + if test -n \"\$relink_command\"; then + if relink_command_output=\`eval \$relink_command 2>&1\`; then : + else + $ECHO \"\$relink_command_output\" >&2 + $RM \"\$progdir/\$file\" + exit 1 + fi + fi + + $MV \"\$progdir/\$file\" \"\$progdir/\$program\" 2>/dev/null || + { $RM \"\$progdir/\$program\"; + $MV \"\$progdir/\$file\" \"\$progdir/\$program\"; } + $RM \"\$progdir/\$file\" + fi" + else + $ECHO "\ + program='$outputname' + progdir=\"\$thisdir/$objdir\" +" + fi + + $ECHO "\ + + if test -f \"\$progdir/\$program\"; then" + + # fixup the dll searchpath if we need to. + # + # Fix the DLL searchpath if we need to. Do this before prepending + # to shlibpath, because on Windows, both are PATH and uninstalled + # libraries must come first. + if test -n "$dllsearchpath"; then + $ECHO "\ + # Add the dll search path components to the executable PATH + PATH=$dllsearchpath:\$PATH +" + fi + + # Export our shlibpath_var if we have one. + if test "$shlibpath_overrides_runpath" = yes && test -n "$shlibpath_var" && test -n "$temp_rpath"; then + $ECHO "\ + # Add our own library path to $shlibpath_var + $shlibpath_var=\"$temp_rpath\$$shlibpath_var\" + + # Some systems cannot cope with colon-terminated $shlibpath_var + # The second colon is a workaround for a bug in BeOS R4 sed + $shlibpath_var=\`\$ECHO \"\$$shlibpath_var\" | $SED 's/::*\$//'\` + + export $shlibpath_var +" + fi + + $ECHO "\ + if test \"\$libtool_execute_magic\" != \"$magic\"; then + # Run the actual program with our arguments. + func_exec_program \${1+\"\$@\"} + fi + else + # The program doesn't exist. + \$ECHO \"\$0: error: \\\`\$progdir/\$program' does not exist\" 1>&2 + \$ECHO \"This script is just a wrapper for \$program.\" 1>&2 + \$ECHO \"See the $PACKAGE documentation for more information.\" 1>&2 + exit 1 + fi +fi\ +" +} + + +# func_emit_cwrapperexe_src +# emit the source code for a wrapper executable on stdout +# Must ONLY be called from within func_mode_link because +# it depends on a number of variable set therein. +func_emit_cwrapperexe_src () +{ + cat < +#include +#ifdef _MSC_VER +# include +# include +# include +#else +# include +# include +# ifdef __CYGWIN__ +# include +# endif +#endif +#include +#include +#include +#include +#include +#include +#include +#include + +/* declarations of non-ANSI functions */ +#if defined(__MINGW32__) +# ifdef __STRICT_ANSI__ +int _putenv (const char *); +# endif +#elif defined(__CYGWIN__) +# ifdef __STRICT_ANSI__ +char *realpath (const char *, char *); +int putenv (char *); +int setenv (const char *, const char *, int); +# endif +/* #elif defined (other platforms) ... */ +#endif + +/* portability defines, excluding path handling macros */ +#if defined(_MSC_VER) +# define setmode _setmode +# define stat _stat +# define chmod _chmod +# define getcwd _getcwd +# define putenv _putenv +# define S_IXUSR _S_IEXEC +# ifndef _INTPTR_T_DEFINED +# define _INTPTR_T_DEFINED +# define intptr_t int +# endif +#elif defined(__MINGW32__) +# define setmode _setmode +# define stat _stat +# define chmod _chmod +# define getcwd _getcwd +# define putenv _putenv +#elif defined(__CYGWIN__) +# define HAVE_SETENV +# define FOPEN_WB "wb" +/* #elif defined (other platforms) ... */ +#endif + +#if defined(PATH_MAX) +# define LT_PATHMAX PATH_MAX +#elif defined(MAXPATHLEN) +# define LT_PATHMAX MAXPATHLEN +#else +# define LT_PATHMAX 1024 +#endif + +#ifndef S_IXOTH +# define S_IXOTH 0 +#endif +#ifndef S_IXGRP +# define S_IXGRP 0 +#endif + +/* path handling portability macros */ +#ifndef DIR_SEPARATOR +# define DIR_SEPARATOR '/' +# define PATH_SEPARATOR ':' +#endif + +#if defined (_WIN32) || defined (__MSDOS__) || defined (__DJGPP__) || \ + defined (__OS2__) +# define HAVE_DOS_BASED_FILE_SYSTEM +# define FOPEN_WB "wb" +# ifndef DIR_SEPARATOR_2 +# define DIR_SEPARATOR_2 '\\' +# endif +# ifndef PATH_SEPARATOR_2 +# define PATH_SEPARATOR_2 ';' +# endif +#endif + +#ifndef DIR_SEPARATOR_2 +# define IS_DIR_SEPARATOR(ch) ((ch) == DIR_SEPARATOR) +#else /* DIR_SEPARATOR_2 */ +# define IS_DIR_SEPARATOR(ch) \ + (((ch) == DIR_SEPARATOR) || ((ch) == DIR_SEPARATOR_2)) +#endif /* DIR_SEPARATOR_2 */ + +#ifndef PATH_SEPARATOR_2 +# define IS_PATH_SEPARATOR(ch) ((ch) == PATH_SEPARATOR) +#else /* PATH_SEPARATOR_2 */ +# define IS_PATH_SEPARATOR(ch) ((ch) == PATH_SEPARATOR_2) +#endif /* PATH_SEPARATOR_2 */ + +#ifndef FOPEN_WB +# define FOPEN_WB "w" +#endif +#ifndef _O_BINARY +# define _O_BINARY 0 +#endif + +#define XMALLOC(type, num) ((type *) xmalloc ((num) * sizeof(type))) +#define XFREE(stale) do { \ + if (stale) { free ((void *) stale); stale = 0; } \ +} while (0) + +#if defined(LT_DEBUGWRAPPER) +static int lt_debug = 1; +#else +static int lt_debug = 0; +#endif + +const char *program_name = "libtool-wrapper"; /* in case xstrdup fails */ + +void *xmalloc (size_t num); +char *xstrdup (const char *string); +const char *base_name (const char *name); +char *find_executable (const char *wrapper); +char *chase_symlinks (const char *pathspec); +int make_executable (const char *path); +int check_executable (const char *path); +char *strendzap (char *str, const char *pat); +void lt_debugprintf (const char *file, int line, const char *fmt, ...); +void lt_fatal (const char *file, int line, const char *message, ...); +static const char *nonnull (const char *s); +static const char *nonempty (const char *s); +void lt_setenv (const char *name, const char *value); +char *lt_extend_str (const char *orig_value, const char *add, int to_end); +void lt_update_exe_path (const char *name, const char *value); +void lt_update_lib_path (const char *name, const char *value); +char **prepare_spawn (char **argv); +void lt_dump_script (FILE *f); +EOF + + cat <= 0) + && (st.st_mode & (S_IXUSR | S_IXGRP | S_IXOTH))) + return 1; + else + return 0; +} + +int +make_executable (const char *path) +{ + int rval = 0; + struct stat st; + + lt_debugprintf (__FILE__, __LINE__, "(make_executable): %s\n", + nonempty (path)); + if ((!path) || (!*path)) + return 0; + + if (stat (path, &st) >= 0) + { + rval = chmod (path, st.st_mode | S_IXOTH | S_IXGRP | S_IXUSR); + } + return rval; +} + +/* Searches for the full path of the wrapper. Returns + newly allocated full path name if found, NULL otherwise + Does not chase symlinks, even on platforms that support them. +*/ +char * +find_executable (const char *wrapper) +{ + int has_slash = 0; + const char *p; + const char *p_next; + /* static buffer for getcwd */ + char tmp[LT_PATHMAX + 1]; + int tmp_len; + char *concat_name; + + lt_debugprintf (__FILE__, __LINE__, "(find_executable): %s\n", + nonempty (wrapper)); + + if ((wrapper == NULL) || (*wrapper == '\0')) + return NULL; + + /* Absolute path? */ +#if defined (HAVE_DOS_BASED_FILE_SYSTEM) + if (isalpha ((unsigned char) wrapper[0]) && wrapper[1] == ':') + { + concat_name = xstrdup (wrapper); + if (check_executable (concat_name)) + return concat_name; + XFREE (concat_name); + } + else + { +#endif + if (IS_DIR_SEPARATOR (wrapper[0])) + { + concat_name = xstrdup (wrapper); + if (check_executable (concat_name)) + return concat_name; + XFREE (concat_name); + } +#if defined (HAVE_DOS_BASED_FILE_SYSTEM) + } +#endif + + for (p = wrapper; *p; p++) + if (*p == '/') + { + has_slash = 1; + break; + } + if (!has_slash) + { + /* no slashes; search PATH */ + const char *path = getenv ("PATH"); + if (path != NULL) + { + for (p = path; *p; p = p_next) + { + const char *q; + size_t p_len; + for (q = p; *q; q++) + if (IS_PATH_SEPARATOR (*q)) + break; + p_len = q - p; + p_next = (*q == '\0' ? q : q + 1); + if (p_len == 0) + { + /* empty path: current directory */ + if (getcwd (tmp, LT_PATHMAX) == NULL) + lt_fatal (__FILE__, __LINE__, "getcwd failed: %s", + nonnull (strerror (errno))); + tmp_len = strlen (tmp); + concat_name = + XMALLOC (char, tmp_len + 1 + strlen (wrapper) + 1); + memcpy (concat_name, tmp, tmp_len); + concat_name[tmp_len] = '/'; + strcpy (concat_name + tmp_len + 1, wrapper); + } + else + { + concat_name = + XMALLOC (char, p_len + 1 + strlen (wrapper) + 1); + memcpy (concat_name, p, p_len); + concat_name[p_len] = '/'; + strcpy (concat_name + p_len + 1, wrapper); + } + if (check_executable (concat_name)) + return concat_name; + XFREE (concat_name); + } + } + /* not found in PATH; assume curdir */ + } + /* Relative path | not found in path: prepend cwd */ + if (getcwd (tmp, LT_PATHMAX) == NULL) + lt_fatal (__FILE__, __LINE__, "getcwd failed: %s", + nonnull (strerror (errno))); + tmp_len = strlen (tmp); + concat_name = XMALLOC (char, tmp_len + 1 + strlen (wrapper) + 1); + memcpy (concat_name, tmp, tmp_len); + concat_name[tmp_len] = '/'; + strcpy (concat_name + tmp_len + 1, wrapper); + + if (check_executable (concat_name)) + return concat_name; + XFREE (concat_name); + return NULL; +} + +char * +chase_symlinks (const char *pathspec) +{ +#ifndef S_ISLNK + return xstrdup (pathspec); +#else + char buf[LT_PATHMAX]; + struct stat s; + char *tmp_pathspec = xstrdup (pathspec); + char *p; + int has_symlinks = 0; + while (strlen (tmp_pathspec) && !has_symlinks) + { + lt_debugprintf (__FILE__, __LINE__, + "checking path component for symlinks: %s\n", + tmp_pathspec); + if (lstat (tmp_pathspec, &s) == 0) + { + if (S_ISLNK (s.st_mode) != 0) + { + has_symlinks = 1; + break; + } + + /* search backwards for last DIR_SEPARATOR */ + p = tmp_pathspec + strlen (tmp_pathspec) - 1; + while ((p > tmp_pathspec) && (!IS_DIR_SEPARATOR (*p))) + p--; + if ((p == tmp_pathspec) && (!IS_DIR_SEPARATOR (*p))) + { + /* no more DIR_SEPARATORS left */ + break; + } + *p = '\0'; + } + else + { + lt_fatal (__FILE__, __LINE__, + "error accessing file \"%s\": %s", + tmp_pathspec, nonnull (strerror (errno))); + } + } + XFREE (tmp_pathspec); + + if (!has_symlinks) + { + return xstrdup (pathspec); + } + + tmp_pathspec = realpath (pathspec, buf); + if (tmp_pathspec == 0) + { + lt_fatal (__FILE__, __LINE__, + "could not follow symlinks for %s", pathspec); + } + return xstrdup (tmp_pathspec); +#endif +} + +char * +strendzap (char *str, const char *pat) +{ + size_t len, patlen; + + assert (str != NULL); + assert (pat != NULL); + + len = strlen (str); + patlen = strlen (pat); + + if (patlen <= len) + { + str += len - patlen; + if (strcmp (str, pat) == 0) + *str = '\0'; + } + return str; +} + +void +lt_debugprintf (const char *file, int line, const char *fmt, ...) +{ + va_list args; + if (lt_debug) + { + (void) fprintf (stderr, "%s:%s:%d: ", program_name, file, line); + va_start (args, fmt); + (void) vfprintf (stderr, fmt, args); + va_end (args); + } +} + +static void +lt_error_core (int exit_status, const char *file, + int line, const char *mode, + const char *message, va_list ap) +{ + fprintf (stderr, "%s:%s:%d: %s: ", program_name, file, line, mode); + vfprintf (stderr, message, ap); + fprintf (stderr, ".\n"); + + if (exit_status >= 0) + exit (exit_status); +} + +void +lt_fatal (const char *file, int line, const char *message, ...) +{ + va_list ap; + va_start (ap, message); + lt_error_core (EXIT_FAILURE, file, line, "FATAL", message, ap); + va_end (ap); +} + +static const char * +nonnull (const char *s) +{ + return s ? s : "(null)"; +} + +static const char * +nonempty (const char *s) +{ + return (s && !*s) ? "(empty)" : nonnull (s); +} + +void +lt_setenv (const char *name, const char *value) +{ + lt_debugprintf (__FILE__, __LINE__, + "(lt_setenv) setting '%s' to '%s'\n", + nonnull (name), nonnull (value)); + { +#ifdef HAVE_SETENV + /* always make a copy, for consistency with !HAVE_SETENV */ + char *str = xstrdup (value); + setenv (name, str, 1); +#else + int len = strlen (name) + 1 + strlen (value) + 1; + char *str = XMALLOC (char, len); + sprintf (str, "%s=%s", name, value); + if (putenv (str) != EXIT_SUCCESS) + { + XFREE (str); + } +#endif + } +} + +char * +lt_extend_str (const char *orig_value, const char *add, int to_end) +{ + char *new_value; + if (orig_value && *orig_value) + { + int orig_value_len = strlen (orig_value); + int add_len = strlen (add); + new_value = XMALLOC (char, add_len + orig_value_len + 1); + if (to_end) + { + strcpy (new_value, orig_value); + strcpy (new_value + orig_value_len, add); + } + else + { + strcpy (new_value, add); + strcpy (new_value + add_len, orig_value); + } + } + else + { + new_value = xstrdup (add); + } + return new_value; +} + +void +lt_update_exe_path (const char *name, const char *value) +{ + lt_debugprintf (__FILE__, __LINE__, + "(lt_update_exe_path) modifying '%s' by prepending '%s'\n", + nonnull (name), nonnull (value)); + + if (name && *name && value && *value) + { + char *new_value = lt_extend_str (getenv (name), value, 0); + /* some systems can't cope with a ':'-terminated path #' */ + int len = strlen (new_value); + while (((len = strlen (new_value)) > 0) && IS_PATH_SEPARATOR (new_value[len-1])) + { + new_value[len-1] = '\0'; + } + lt_setenv (name, new_value); + XFREE (new_value); + } +} + +void +lt_update_lib_path (const char *name, const char *value) +{ + lt_debugprintf (__FILE__, __LINE__, + "(lt_update_lib_path) modifying '%s' by prepending '%s'\n", + nonnull (name), nonnull (value)); + + if (name && *name && value && *value) + { + char *new_value = lt_extend_str (getenv (name), value, 0); + lt_setenv (name, new_value); + XFREE (new_value); + } +} + +EOF + case $host_os in + mingw*) + cat <<"EOF" + +/* Prepares an argument vector before calling spawn(). + Note that spawn() does not by itself call the command interpreter + (getenv ("COMSPEC") != NULL ? getenv ("COMSPEC") : + ({ OSVERSIONINFO v; v.dwOSVersionInfoSize = sizeof(OSVERSIONINFO); + GetVersionEx(&v); + v.dwPlatformId == VER_PLATFORM_WIN32_NT; + }) ? "cmd.exe" : "command.com"). + Instead it simply concatenates the arguments, separated by ' ', and calls + CreateProcess(). We must quote the arguments since Win32 CreateProcess() + interprets characters like ' ', '\t', '\\', '"' (but not '<' and '>') in a + special way: + - Space and tab are interpreted as delimiters. They are not treated as + delimiters if they are surrounded by double quotes: "...". + - Unescaped double quotes are removed from the input. Their only effect is + that within double quotes, space and tab are treated like normal + characters. + - Backslashes not followed by double quotes are not special. + - But 2*n+1 backslashes followed by a double quote become + n backslashes followed by a double quote (n >= 0): + \" -> " + \\\" -> \" + \\\\\" -> \\" + */ +#define SHELL_SPECIAL_CHARS "\"\\ \001\002\003\004\005\006\007\010\011\012\013\014\015\016\017\020\021\022\023\024\025\026\027\030\031\032\033\034\035\036\037" +#define SHELL_SPACE_CHARS " \001\002\003\004\005\006\007\010\011\012\013\014\015\016\017\020\021\022\023\024\025\026\027\030\031\032\033\034\035\036\037" +char ** +prepare_spawn (char **argv) +{ + size_t argc; + char **new_argv; + size_t i; + + /* Count number of arguments. */ + for (argc = 0; argv[argc] != NULL; argc++) + ; + + /* Allocate new argument vector. */ + new_argv = XMALLOC (char *, argc + 1); + + /* Put quoted arguments into the new argument vector. */ + for (i = 0; i < argc; i++) + { + const char *string = argv[i]; + + if (string[0] == '\0') + new_argv[i] = xstrdup ("\"\""); + else if (strpbrk (string, SHELL_SPECIAL_CHARS) != NULL) + { + int quote_around = (strpbrk (string, SHELL_SPACE_CHARS) != NULL); + size_t length; + unsigned int backslashes; + const char *s; + char *quoted_string; + char *p; + + length = 0; + backslashes = 0; + if (quote_around) + length++; + for (s = string; *s != '\0'; s++) + { + char c = *s; + if (c == '"') + length += backslashes + 1; + length++; + if (c == '\\') + backslashes++; + else + backslashes = 0; + } + if (quote_around) + length += backslashes + 1; + + quoted_string = XMALLOC (char, length + 1); + + p = quoted_string; + backslashes = 0; + if (quote_around) + *p++ = '"'; + for (s = string; *s != '\0'; s++) + { + char c = *s; + if (c == '"') + { + unsigned int j; + for (j = backslashes + 1; j > 0; j--) + *p++ = '\\'; + } + *p++ = c; + if (c == '\\') + backslashes++; + else + backslashes = 0; + } + if (quote_around) + { + unsigned int j; + for (j = backslashes; j > 0; j--) + *p++ = '\\'; + *p++ = '"'; + } + *p = '\0'; + + new_argv[i] = quoted_string; + } + else + new_argv[i] = (char *) string; + } + new_argv[argc] = NULL; + + return new_argv; +} +EOF + ;; + esac + + cat <<"EOF" +void lt_dump_script (FILE* f) +{ +EOF + func_emit_wrapper yes | + $SED -n -e ' +s/^\(.\{79\}\)\(..*\)/\1\ +\2/ +h +s/\([\\"]\)/\\\1/g +s/$/\\n/ +s/\([^\n]*\).*/ fputs ("\1", f);/p +g +D' + cat <<"EOF" +} +EOF +} +# end: func_emit_cwrapperexe_src + +# func_win32_import_lib_p ARG +# True if ARG is an import lib, as indicated by $file_magic_cmd +func_win32_import_lib_p () +{ + $opt_debug + case `eval $file_magic_cmd \"\$1\" 2>/dev/null | $SED -e 10q` in + *import*) : ;; + *) false ;; + esac +} + +# func_mode_link arg... +func_mode_link () +{ + $opt_debug + case $host in + *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2* | *-cegcc*) + # It is impossible to link a dll without this setting, and + # we shouldn't force the makefile maintainer to figure out + # which system we are compiling for in order to pass an extra + # flag for every libtool invocation. + # allow_undefined=no + + # FIXME: Unfortunately, there are problems with the above when trying + # to make a dll which has undefined symbols, in which case not + # even a static library is built. For now, we need to specify + # -no-undefined on the libtool link line when we can be certain + # that all symbols are satisfied, otherwise we get a static library. + allow_undefined=yes + ;; + *) + allow_undefined=yes + ;; + esac + libtool_args=$nonopt + base_compile="$nonopt $@" + compile_command=$nonopt + finalize_command=$nonopt + + compile_rpath= + finalize_rpath= + compile_shlibpath= + finalize_shlibpath= + convenience= + old_convenience= + deplibs= + old_deplibs= + compiler_flags= + linker_flags= + dllsearchpath= + lib_search_path=`pwd` + inst_prefix_dir= + new_inherited_linker_flags= + + avoid_version=no + bindir= + dlfiles= + dlprefiles= + dlself=no + export_dynamic=no + export_symbols= + export_symbols_regex= + generated= + libobjs= + ltlibs= + module=no + no_install=no + objs= + non_pic_objects= + precious_files_regex= + prefer_static_libs=no + preload=no + prev= + prevarg= + release= + rpath= + xrpath= + perm_rpath= + temp_rpath= + thread_safe=no + vinfo= + vinfo_number=no + weak_libs= + single_module="${wl}-single_module" + func_infer_tag $base_compile + + # We need to know -static, to get the right output filenames. + for arg + do + case $arg in + -shared) + test "$build_libtool_libs" != yes && \ + func_fatal_configuration "can not build a shared library" + build_old_libs=no + break + ;; + -all-static | -static | -static-libtool-libs) + case $arg in + -all-static) + if test "$build_libtool_libs" = yes && test -z "$link_static_flag"; then + func_warning "complete static linking is impossible in this configuration" + fi + if test -n "$link_static_flag"; then + dlopen_self=$dlopen_self_static + fi + prefer_static_libs=yes + ;; + -static) + if test -z "$pic_flag" && test -n "$link_static_flag"; then + dlopen_self=$dlopen_self_static + fi + prefer_static_libs=built + ;; + -static-libtool-libs) + if test -z "$pic_flag" && test -n "$link_static_flag"; then + dlopen_self=$dlopen_self_static + fi + prefer_static_libs=yes + ;; + esac + build_libtool_libs=no + build_old_libs=yes + break + ;; + esac + done + + # See if our shared archives depend on static archives. + test -n "$old_archive_from_new_cmds" && build_old_libs=yes + + # Go through the arguments, transforming them on the way. + while test "$#" -gt 0; do + arg="$1" + shift + func_quote_for_eval "$arg" + qarg=$func_quote_for_eval_unquoted_result + func_append libtool_args " $func_quote_for_eval_result" + + # If the previous option needs an argument, assign it. + if test -n "$prev"; then + case $prev in + output) + func_append compile_command " @OUTPUT@" + func_append finalize_command " @OUTPUT@" + ;; + esac + + case $prev in + bindir) + bindir="$arg" + prev= + continue + ;; + dlfiles|dlprefiles) + if test "$preload" = no; then + # Add the symbol object into the linking commands. + func_append compile_command " @SYMFILE@" + func_append finalize_command " @SYMFILE@" + preload=yes + fi + case $arg in + *.la | *.lo) ;; # We handle these cases below. + force) + if test "$dlself" = no; then + dlself=needless + export_dynamic=yes + fi + prev= + continue + ;; + self) + if test "$prev" = dlprefiles; then + dlself=yes + elif test "$prev" = dlfiles && test "$dlopen_self" != yes; then + dlself=yes + else + dlself=needless + export_dynamic=yes + fi + prev= + continue + ;; + *) + if test "$prev" = dlfiles; then + func_append dlfiles " $arg" + else + func_append dlprefiles " $arg" + fi + prev= + continue + ;; + esac + ;; + expsyms) + export_symbols="$arg" + test -f "$arg" \ + || func_fatal_error "symbol file \`$arg' does not exist" + prev= + continue + ;; + expsyms_regex) + export_symbols_regex="$arg" + prev= + continue + ;; + framework) + case $host in + *-*-darwin*) + case "$deplibs " in + *" $qarg.ltframework "*) ;; + *) func_append deplibs " $qarg.ltframework" # this is fixed later + ;; + esac + ;; + esac + prev= + continue + ;; + inst_prefix) + inst_prefix_dir="$arg" + prev= + continue + ;; + objectlist) + if test -f "$arg"; then + save_arg=$arg + moreargs= + for fil in `cat "$save_arg"` + do +# func_append moreargs " $fil" + arg=$fil + # A libtool-controlled object. + + # Check to see that this really is a libtool object. + if func_lalib_unsafe_p "$arg"; then + pic_object= + non_pic_object= + + # Read the .lo file + func_source "$arg" + + if test -z "$pic_object" || + test -z "$non_pic_object" || + test "$pic_object" = none && + test "$non_pic_object" = none; then + func_fatal_error "cannot find name of object for \`$arg'" + fi + + # Extract subdirectory from the argument. + func_dirname "$arg" "/" "" + xdir="$func_dirname_result" + + if test "$pic_object" != none; then + # Prepend the subdirectory the object is found in. + pic_object="$xdir$pic_object" + + if test "$prev" = dlfiles; then + if test "$build_libtool_libs" = yes && test "$dlopen_support" = yes; then + func_append dlfiles " $pic_object" + prev= + continue + else + # If libtool objects are unsupported, then we need to preload. + prev=dlprefiles + fi + fi + + # CHECK ME: I think I busted this. -Ossama + if test "$prev" = dlprefiles; then + # Preload the old-style object. + func_append dlprefiles " $pic_object" + prev= + fi + + # A PIC object. + func_append libobjs " $pic_object" + arg="$pic_object" + fi + + # Non-PIC object. + if test "$non_pic_object" != none; then + # Prepend the subdirectory the object is found in. + non_pic_object="$xdir$non_pic_object" + + # A standard non-PIC object + func_append non_pic_objects " $non_pic_object" + if test -z "$pic_object" || test "$pic_object" = none ; then + arg="$non_pic_object" + fi + else + # If the PIC object exists, use it instead. + # $xdir was prepended to $pic_object above. + non_pic_object="$pic_object" + func_append non_pic_objects " $non_pic_object" + fi + else + # Only an error if not doing a dry-run. + if $opt_dry_run; then + # Extract subdirectory from the argument. + func_dirname "$arg" "/" "" + xdir="$func_dirname_result" + + func_lo2o "$arg" + pic_object=$xdir$objdir/$func_lo2o_result + non_pic_object=$xdir$func_lo2o_result + func_append libobjs " $pic_object" + func_append non_pic_objects " $non_pic_object" + else + func_fatal_error "\`$arg' is not a valid libtool object" + fi + fi + done + else + func_fatal_error "link input file \`$arg' does not exist" + fi + arg=$save_arg + prev= + continue + ;; + precious_regex) + precious_files_regex="$arg" + prev= + continue + ;; + release) + release="-$arg" + prev= + continue + ;; + rpath | xrpath) + # We need an absolute path. + case $arg in + [\\/]* | [A-Za-z]:[\\/]*) ;; + *) + func_fatal_error "only absolute run-paths are allowed" + ;; + esac + if test "$prev" = rpath; then + case "$rpath " in + *" $arg "*) ;; + *) func_append rpath " $arg" ;; + esac + else + case "$xrpath " in + *" $arg "*) ;; + *) func_append xrpath " $arg" ;; + esac + fi + prev= + continue + ;; + shrext) + shrext_cmds="$arg" + prev= + continue + ;; + weak) + func_append weak_libs " $arg" + prev= + continue + ;; + xcclinker) + func_append linker_flags " $qarg" + func_append compiler_flags " $qarg" + prev= + func_append compile_command " $qarg" + func_append finalize_command " $qarg" + continue + ;; + xcompiler) + func_append compiler_flags " $qarg" + prev= + func_append compile_command " $qarg" + func_append finalize_command " $qarg" + continue + ;; + xlinker) + func_append linker_flags " $qarg" + func_append compiler_flags " $wl$qarg" + prev= + func_append compile_command " $wl$qarg" + func_append finalize_command " $wl$qarg" + continue + ;; + *) + eval "$prev=\"\$arg\"" + prev= + continue + ;; + esac + fi # test -n "$prev" + + prevarg="$arg" + + case $arg in + -all-static) + if test -n "$link_static_flag"; then + # See comment for -static flag below, for more details. + func_append compile_command " $link_static_flag" + func_append finalize_command " $link_static_flag" + fi + continue + ;; + + -allow-undefined) + # FIXME: remove this flag sometime in the future. + func_fatal_error "\`-allow-undefined' must not be used because it is the default" + ;; + + -avoid-version) + avoid_version=yes + continue + ;; + + -bindir) + prev=bindir + continue + ;; + + -dlopen) + prev=dlfiles + continue + ;; + + -dlpreopen) + prev=dlprefiles + continue + ;; + + -export-dynamic) + export_dynamic=yes + continue + ;; + + -export-symbols | -export-symbols-regex) + if test -n "$export_symbols" || test -n "$export_symbols_regex"; then + func_fatal_error "more than one -exported-symbols argument is not allowed" + fi + if test "X$arg" = "X-export-symbols"; then + prev=expsyms + else + prev=expsyms_regex + fi + continue + ;; + + -framework) + prev=framework + continue + ;; + + -inst-prefix-dir) + prev=inst_prefix + continue + ;; + + # The native IRIX linker understands -LANG:*, -LIST:* and -LNO:* + # so, if we see these flags be careful not to treat them like -L + -L[A-Z][A-Z]*:*) + case $with_gcc/$host in + no/*-*-irix* | /*-*-irix*) + func_append compile_command " $arg" + func_append finalize_command " $arg" + ;; + esac + continue + ;; + + -L*) + func_stripname "-L" '' "$arg" + if test -z "$func_stripname_result"; then + if test "$#" -gt 0; then + func_fatal_error "require no space between \`-L' and \`$1'" + else + func_fatal_error "need path for \`-L' option" + fi + fi + func_resolve_sysroot "$func_stripname_result" + dir=$func_resolve_sysroot_result + # We need an absolute path. + case $dir in + [\\/]* | [A-Za-z]:[\\/]*) ;; + *) + absdir=`cd "$dir" && pwd` + test -z "$absdir" && \ + func_fatal_error "cannot determine absolute directory name of \`$dir'" + dir="$absdir" + ;; + esac + case "$deplibs " in + *" -L$dir "* | *" $arg "*) + # Will only happen for absolute or sysroot arguments + ;; + *) + # Preserve sysroot, but never include relative directories + case $dir in + [\\/]* | [A-Za-z]:[\\/]* | =*) func_append deplibs " $arg" ;; + *) func_append deplibs " -L$dir" ;; + esac + func_append lib_search_path " $dir" + ;; + esac + case $host in + *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2* | *-cegcc*) + testbindir=`$ECHO "$dir" | $SED 's*/lib$*/bin*'` + case :$dllsearchpath: in + *":$dir:"*) ;; + ::) dllsearchpath=$dir;; + *) func_append dllsearchpath ":$dir";; + esac + case :$dllsearchpath: in + *":$testbindir:"*) ;; + ::) dllsearchpath=$testbindir;; + *) func_append dllsearchpath ":$testbindir";; + esac + ;; + esac + continue + ;; + + -l*) + if test "X$arg" = "X-lc" || test "X$arg" = "X-lm"; then + case $host in + *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-beos* | *-cegcc* | *-*-haiku*) + # These systems don't actually have a C or math library (as such) + continue + ;; + *-*-os2*) + # These systems don't actually have a C library (as such) + test "X$arg" = "X-lc" && continue + ;; + *-*-openbsd* | *-*-freebsd* | *-*-dragonfly*) + # Do not include libc due to us having libc/libc_r. + test "X$arg" = "X-lc" && continue + ;; + *-*-rhapsody* | *-*-darwin1.[012]) + # Rhapsody C and math libraries are in the System framework + func_append deplibs " System.ltframework" + continue + ;; + *-*-sco3.2v5* | *-*-sco5v6*) + # Causes problems with __ctype + test "X$arg" = "X-lc" && continue + ;; + *-*-sysv4.2uw2* | *-*-sysv5* | *-*-unixware* | *-*-OpenUNIX*) + # Compiler inserts libc in the correct place for threads to work + test "X$arg" = "X-lc" && continue + ;; + esac + elif test "X$arg" = "X-lc_r"; then + case $host in + *-*-openbsd* | *-*-freebsd* | *-*-dragonfly*) + # Do not include libc_r directly, use -pthread flag. + continue + ;; + esac + fi + func_append deplibs " $arg" + continue + ;; + + -module) + module=yes + continue + ;; + + # Tru64 UNIX uses -model [arg] to determine the layout of C++ + # classes, name mangling, and exception handling. + # Darwin uses the -arch flag to determine output architecture. + -model|-arch|-isysroot|--sysroot) + func_append compiler_flags " $arg" + func_append compile_command " $arg" + func_append finalize_command " $arg" + prev=xcompiler + continue + ;; + + -mt|-mthreads|-kthread|-Kthread|-pthread|-pthreads|--thread-safe \ + |-threads|-fopenmp|-openmp|-mp|-xopenmp|-omp|-qsmp=*) + func_append compiler_flags " $arg" + func_append compile_command " $arg" + func_append finalize_command " $arg" + case "$new_inherited_linker_flags " in + *" $arg "*) ;; + * ) func_append new_inherited_linker_flags " $arg" ;; + esac + continue + ;; + + -multi_module) + single_module="${wl}-multi_module" + continue + ;; + + -no-fast-install) + fast_install=no + continue + ;; + + -no-install) + case $host in + *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2* | *-*-darwin* | *-cegcc*) + # The PATH hackery in wrapper scripts is required on Windows + # and Darwin in order for the loader to find any dlls it needs. + func_warning "\`-no-install' is ignored for $host" + func_warning "assuming \`-no-fast-install' instead" + fast_install=no + ;; + *) no_install=yes ;; + esac + continue + ;; + + -no-undefined) + allow_undefined=no + continue + ;; + + -objectlist) + prev=objectlist + continue + ;; + + -o) prev=output ;; + + -precious-files-regex) + prev=precious_regex + continue + ;; + + -release) + prev=release + continue + ;; + + -rpath) + prev=rpath + continue + ;; + + -R) + prev=xrpath + continue + ;; + + -R*) + func_stripname '-R' '' "$arg" + dir=$func_stripname_result + # We need an absolute path. + case $dir in + [\\/]* | [A-Za-z]:[\\/]*) ;; + =*) + func_stripname '=' '' "$dir" + dir=$lt_sysroot$func_stripname_result + ;; + *) + func_fatal_error "only absolute run-paths are allowed" + ;; + esac + case "$xrpath " in + *" $dir "*) ;; + *) func_append xrpath " $dir" ;; + esac + continue + ;; + + -shared) + # The effects of -shared are defined in a previous loop. + continue + ;; + + -shrext) + prev=shrext + continue + ;; + + -static | -static-libtool-libs) + # The effects of -static are defined in a previous loop. + # We used to do the same as -all-static on platforms that + # didn't have a PIC flag, but the assumption that the effects + # would be equivalent was wrong. It would break on at least + # Digital Unix and AIX. + continue + ;; + + -thread-safe) + thread_safe=yes + continue + ;; + + -version-info) + prev=vinfo + continue + ;; + + -version-number) + prev=vinfo + vinfo_number=yes + continue + ;; + + -weak) + prev=weak + continue + ;; + + -Wc,*) + func_stripname '-Wc,' '' "$arg" + args=$func_stripname_result + arg= + save_ifs="$IFS"; IFS=',' + for flag in $args; do + IFS="$save_ifs" + func_quote_for_eval "$flag" + func_append arg " $func_quote_for_eval_result" + func_append compiler_flags " $func_quote_for_eval_result" + done + IFS="$save_ifs" + func_stripname ' ' '' "$arg" + arg=$func_stripname_result + ;; + + -Wl,*) + func_stripname '-Wl,' '' "$arg" + args=$func_stripname_result + arg= + save_ifs="$IFS"; IFS=',' + for flag in $args; do + IFS="$save_ifs" + func_quote_for_eval "$flag" + func_append arg " $wl$func_quote_for_eval_result" + func_append compiler_flags " $wl$func_quote_for_eval_result" + func_append linker_flags " $func_quote_for_eval_result" + done + IFS="$save_ifs" + func_stripname ' ' '' "$arg" + arg=$func_stripname_result + ;; + + -Xcompiler) + prev=xcompiler + continue + ;; + + -Xlinker) + prev=xlinker + continue + ;; + + -XCClinker) + prev=xcclinker + continue + ;; + + # -msg_* for osf cc + -msg_*) + func_quote_for_eval "$arg" + arg="$func_quote_for_eval_result" + ;; + + # Flags to be passed through unchanged, with rationale: + # -64, -mips[0-9] enable 64-bit mode for the SGI compiler + # -r[0-9][0-9]* specify processor for the SGI compiler + # -xarch=*, -xtarget=* enable 64-bit mode for the Sun compiler + # +DA*, +DD* enable 64-bit mode for the HP compiler + # -q* compiler args for the IBM compiler + # -m*, -t[45]*, -txscale* architecture-specific flags for GCC + # -F/path path to uninstalled frameworks, gcc on darwin + # -p, -pg, --coverage, -fprofile-* profiling flags for GCC + # @file GCC response files + # -tp=* Portland pgcc target processor selection + # --sysroot=* for sysroot support + # -O*, -flto*, -fwhopr*, -fuse-linker-plugin GCC link-time optimization + -64|-mips[0-9]|-r[0-9][0-9]*|-xarch=*|-xtarget=*|+DA*|+DD*|-q*|-m*| \ + -t[45]*|-txscale*|-p|-pg|--coverage|-fprofile-*|-F*|@*|-tp=*|--sysroot=*| \ + -O*|-flto*|-fwhopr*|-fuse-linker-plugin) + func_quote_for_eval "$arg" + arg="$func_quote_for_eval_result" + func_append compile_command " $arg" + func_append finalize_command " $arg" + func_append compiler_flags " $arg" + continue + ;; + + # Some other compiler flag. + -* | +*) + func_quote_for_eval "$arg" + arg="$func_quote_for_eval_result" + ;; + + *.$objext) + # A standard object. + func_append objs " $arg" + ;; + + *.lo) + # A libtool-controlled object. + + # Check to see that this really is a libtool object. + if func_lalib_unsafe_p "$arg"; then + pic_object= + non_pic_object= + + # Read the .lo file + func_source "$arg" + + if test -z "$pic_object" || + test -z "$non_pic_object" || + test "$pic_object" = none && + test "$non_pic_object" = none; then + func_fatal_error "cannot find name of object for \`$arg'" + fi + + # Extract subdirectory from the argument. + func_dirname "$arg" "/" "" + xdir="$func_dirname_result" + + if test "$pic_object" != none; then + # Prepend the subdirectory the object is found in. + pic_object="$xdir$pic_object" + + if test "$prev" = dlfiles; then + if test "$build_libtool_libs" = yes && test "$dlopen_support" = yes; then + func_append dlfiles " $pic_object" + prev= + continue + else + # If libtool objects are unsupported, then we need to preload. + prev=dlprefiles + fi + fi + + # CHECK ME: I think I busted this. -Ossama + if test "$prev" = dlprefiles; then + # Preload the old-style object. + func_append dlprefiles " $pic_object" + prev= + fi + + # A PIC object. + func_append libobjs " $pic_object" + arg="$pic_object" + fi + + # Non-PIC object. + if test "$non_pic_object" != none; then + # Prepend the subdirectory the object is found in. + non_pic_object="$xdir$non_pic_object" + + # A standard non-PIC object + func_append non_pic_objects " $non_pic_object" + if test -z "$pic_object" || test "$pic_object" = none ; then + arg="$non_pic_object" + fi + else + # If the PIC object exists, use it instead. + # $xdir was prepended to $pic_object above. + non_pic_object="$pic_object" + func_append non_pic_objects " $non_pic_object" + fi + else + # Only an error if not doing a dry-run. + if $opt_dry_run; then + # Extract subdirectory from the argument. + func_dirname "$arg" "/" "" + xdir="$func_dirname_result" + + func_lo2o "$arg" + pic_object=$xdir$objdir/$func_lo2o_result + non_pic_object=$xdir$func_lo2o_result + func_append libobjs " $pic_object" + func_append non_pic_objects " $non_pic_object" + else + func_fatal_error "\`$arg' is not a valid libtool object" + fi + fi + ;; + + *.$libext) + # An archive. + func_append deplibs " $arg" + func_append old_deplibs " $arg" + continue + ;; + + *.la) + # A libtool-controlled library. + + func_resolve_sysroot "$arg" + if test "$prev" = dlfiles; then + # This library was specified with -dlopen. + func_append dlfiles " $func_resolve_sysroot_result" + prev= + elif test "$prev" = dlprefiles; then + # The library was specified with -dlpreopen. + func_append dlprefiles " $func_resolve_sysroot_result" + prev= + else + func_append deplibs " $func_resolve_sysroot_result" + fi + continue + ;; + + # Some other compiler argument. + *) + # Unknown arguments in both finalize_command and compile_command need + # to be aesthetically quoted because they are evaled later. + func_quote_for_eval "$arg" + arg="$func_quote_for_eval_result" + ;; + esac # arg + + # Now actually substitute the argument into the commands. + if test -n "$arg"; then + func_append compile_command " $arg" + func_append finalize_command " $arg" + fi + done # argument parsing loop + + test -n "$prev" && \ + func_fatal_help "the \`$prevarg' option requires an argument" + + if test "$export_dynamic" = yes && test -n "$export_dynamic_flag_spec"; then + eval arg=\"$export_dynamic_flag_spec\" + func_append compile_command " $arg" + func_append finalize_command " $arg" + fi + + oldlibs= + # calculate the name of the file, without its directory + func_basename "$output" + outputname="$func_basename_result" + libobjs_save="$libobjs" + + if test -n "$shlibpath_var"; then + # get the directories listed in $shlibpath_var + eval shlib_search_path=\`\$ECHO \"\${$shlibpath_var}\" \| \$SED \'s/:/ /g\'\` + else + shlib_search_path= + fi + eval sys_lib_search_path=\"$sys_lib_search_path_spec\" + eval sys_lib_dlsearch_path=\"$sys_lib_dlsearch_path_spec\" + + func_dirname "$output" "/" "" + output_objdir="$func_dirname_result$objdir" + func_to_tool_file "$output_objdir/" + tool_output_objdir=$func_to_tool_file_result + # Create the object directory. + func_mkdir_p "$output_objdir" + + # Determine the type of output + case $output in + "") + func_fatal_help "you must specify an output file" + ;; + *.$libext) linkmode=oldlib ;; + *.lo | *.$objext) linkmode=obj ;; + *.la) linkmode=lib ;; + *) linkmode=prog ;; # Anything else should be a program. + esac + + specialdeplibs= + + libs= + # Find all interdependent deplibs by searching for libraries + # that are linked more than once (e.g. -la -lb -la) + for deplib in $deplibs; do + if $opt_preserve_dup_deps ; then + case "$libs " in + *" $deplib "*) func_append specialdeplibs " $deplib" ;; + esac + fi + func_append libs " $deplib" + done + + if test "$linkmode" = lib; then + libs="$predeps $libs $compiler_lib_search_path $postdeps" + + # Compute libraries that are listed more than once in $predeps + # $postdeps and mark them as special (i.e., whose duplicates are + # not to be eliminated). + pre_post_deps= + if $opt_duplicate_compiler_generated_deps; then + for pre_post_dep in $predeps $postdeps; do + case "$pre_post_deps " in + *" $pre_post_dep "*) func_append specialdeplibs " $pre_post_deps" ;; + esac + func_append pre_post_deps " $pre_post_dep" + done + fi + pre_post_deps= + fi + + deplibs= + newdependency_libs= + newlib_search_path= + need_relink=no # whether we're linking any uninstalled libtool libraries + notinst_deplibs= # not-installed libtool libraries + notinst_path= # paths that contain not-installed libtool libraries + + case $linkmode in + lib) + passes="conv dlpreopen link" + for file in $dlfiles $dlprefiles; do + case $file in + *.la) ;; + *) + func_fatal_help "libraries can \`-dlopen' only libtool libraries: $file" + ;; + esac + done + ;; + prog) + compile_deplibs= + finalize_deplibs= + alldeplibs=no + newdlfiles= + newdlprefiles= + passes="conv scan dlopen dlpreopen link" + ;; + *) passes="conv" + ;; + esac + + for pass in $passes; do + # The preopen pass in lib mode reverses $deplibs; put it back here + # so that -L comes before libs that need it for instance... + if test "$linkmode,$pass" = "lib,link"; then + ## FIXME: Find the place where the list is rebuilt in the wrong + ## order, and fix it there properly + tmp_deplibs= + for deplib in $deplibs; do + tmp_deplibs="$deplib $tmp_deplibs" + done + deplibs="$tmp_deplibs" + fi + + if test "$linkmode,$pass" = "lib,link" || + test "$linkmode,$pass" = "prog,scan"; then + libs="$deplibs" + deplibs= + fi + if test "$linkmode" = prog; then + case $pass in + dlopen) libs="$dlfiles" ;; + dlpreopen) libs="$dlprefiles" ;; + link) + libs="$deplibs %DEPLIBS%" + test "X$link_all_deplibs" != Xno && libs="$libs $dependency_libs" + ;; + esac + fi + if test "$linkmode,$pass" = "lib,dlpreopen"; then + # Collect and forward deplibs of preopened libtool libs + for lib in $dlprefiles; do + # Ignore non-libtool-libs + dependency_libs= + func_resolve_sysroot "$lib" + case $lib in + *.la) func_source "$func_resolve_sysroot_result" ;; + esac + + # Collect preopened libtool deplibs, except any this library + # has declared as weak libs + for deplib in $dependency_libs; do + func_basename "$deplib" + deplib_base=$func_basename_result + case " $weak_libs " in + *" $deplib_base "*) ;; + *) func_append deplibs " $deplib" ;; + esac + done + done + libs="$dlprefiles" + fi + if test "$pass" = dlopen; then + # Collect dlpreopened libraries + save_deplibs="$deplibs" + deplibs= + fi + + for deplib in $libs; do + lib= + found=no + case $deplib in + -mt|-mthreads|-kthread|-Kthread|-pthread|-pthreads|--thread-safe \ + |-threads|-fopenmp|-openmp|-mp|-xopenmp|-omp|-qsmp=*) + if test "$linkmode,$pass" = "prog,link"; then + compile_deplibs="$deplib $compile_deplibs" + finalize_deplibs="$deplib $finalize_deplibs" + else + func_append compiler_flags " $deplib" + if test "$linkmode" = lib ; then + case "$new_inherited_linker_flags " in + *" $deplib "*) ;; + * ) func_append new_inherited_linker_flags " $deplib" ;; + esac + fi + fi + continue + ;; + -l*) + if test "$linkmode" != lib && test "$linkmode" != prog; then + func_warning "\`-l' is ignored for archives/objects" + continue + fi + func_stripname '-l' '' "$deplib" + name=$func_stripname_result + if test "$linkmode" = lib; then + searchdirs="$newlib_search_path $lib_search_path $compiler_lib_search_dirs $sys_lib_search_path $shlib_search_path" + else + searchdirs="$newlib_search_path $lib_search_path $sys_lib_search_path $shlib_search_path" + fi + for searchdir in $searchdirs; do + for search_ext in .la $std_shrext .so .a; do + # Search the libtool library + lib="$searchdir/lib${name}${search_ext}" + if test -f "$lib"; then + if test "$search_ext" = ".la"; then + found=yes + else + found=no + fi + break 2 + fi + done + done + if test "$found" != yes; then + # deplib doesn't seem to be a libtool library + if test "$linkmode,$pass" = "prog,link"; then + compile_deplibs="$deplib $compile_deplibs" + finalize_deplibs="$deplib $finalize_deplibs" + else + deplibs="$deplib $deplibs" + test "$linkmode" = lib && newdependency_libs="$deplib $newdependency_libs" + fi + continue + else # deplib is a libtool library + # If $allow_libtool_libs_with_static_runtimes && $deplib is a stdlib, + # We need to do some special things here, and not later. + if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then + case " $predeps $postdeps " in + *" $deplib "*) + if func_lalib_p "$lib"; then + library_names= + old_library= + func_source "$lib" + for l in $old_library $library_names; do + ll="$l" + done + if test "X$ll" = "X$old_library" ; then # only static version available + found=no + func_dirname "$lib" "" "." + ladir="$func_dirname_result" + lib=$ladir/$old_library + if test "$linkmode,$pass" = "prog,link"; then + compile_deplibs="$deplib $compile_deplibs" + finalize_deplibs="$deplib $finalize_deplibs" + else + deplibs="$deplib $deplibs" + test "$linkmode" = lib && newdependency_libs="$deplib $newdependency_libs" + fi + continue + fi + fi + ;; + *) ;; + esac + fi + fi + ;; # -l + *.ltframework) + if test "$linkmode,$pass" = "prog,link"; then + compile_deplibs="$deplib $compile_deplibs" + finalize_deplibs="$deplib $finalize_deplibs" + else + deplibs="$deplib $deplibs" + if test "$linkmode" = lib ; then + case "$new_inherited_linker_flags " in + *" $deplib "*) ;; + * ) func_append new_inherited_linker_flags " $deplib" ;; + esac + fi + fi + continue + ;; + -L*) + case $linkmode in + lib) + deplibs="$deplib $deplibs" + test "$pass" = conv && continue + newdependency_libs="$deplib $newdependency_libs" + func_stripname '-L' '' "$deplib" + func_resolve_sysroot "$func_stripname_result" + func_append newlib_search_path " $func_resolve_sysroot_result" + ;; + prog) + if test "$pass" = conv; then + deplibs="$deplib $deplibs" + continue + fi + if test "$pass" = scan; then + deplibs="$deplib $deplibs" + else + compile_deplibs="$deplib $compile_deplibs" + finalize_deplibs="$deplib $finalize_deplibs" + fi + func_stripname '-L' '' "$deplib" + func_resolve_sysroot "$func_stripname_result" + func_append newlib_search_path " $func_resolve_sysroot_result" + ;; + *) + func_warning "\`-L' is ignored for archives/objects" + ;; + esac # linkmode + continue + ;; # -L + -R*) + if test "$pass" = link; then + func_stripname '-R' '' "$deplib" + func_resolve_sysroot "$func_stripname_result" + dir=$func_resolve_sysroot_result + # Make sure the xrpath contains only unique directories. + case "$xrpath " in + *" $dir "*) ;; + *) func_append xrpath " $dir" ;; + esac + fi + deplibs="$deplib $deplibs" + continue + ;; + *.la) + func_resolve_sysroot "$deplib" + lib=$func_resolve_sysroot_result + ;; + *.$libext) + if test "$pass" = conv; then + deplibs="$deplib $deplibs" + continue + fi + case $linkmode in + lib) + # Linking convenience modules into shared libraries is allowed, + # but linking other static libraries is non-portable. + case " $dlpreconveniencelibs " in + *" $deplib "*) ;; + *) + valid_a_lib=no + case $deplibs_check_method in + match_pattern*) + set dummy $deplibs_check_method; shift + match_pattern_regex=`expr "$deplibs_check_method" : "$1 \(.*\)"` + if eval "\$ECHO \"$deplib\"" 2>/dev/null | $SED 10q \ + | $EGREP "$match_pattern_regex" > /dev/null; then + valid_a_lib=yes + fi + ;; + pass_all) + valid_a_lib=yes + ;; + esac + if test "$valid_a_lib" != yes; then + echo + $ECHO "*** Warning: Trying to link with static lib archive $deplib." + echo "*** I have the capability to make that library automatically link in when" + echo "*** you link to this library. But I can only do this if you have a" + echo "*** shared version of the library, which you do not appear to have" + echo "*** because the file extensions .$libext of this argument makes me believe" + echo "*** that it is just a static archive that I should not use here." + else + echo + $ECHO "*** Warning: Linking the shared library $output against the" + $ECHO "*** static library $deplib is not portable!" + deplibs="$deplib $deplibs" + fi + ;; + esac + continue + ;; + prog) + if test "$pass" != link; then + deplibs="$deplib $deplibs" + else + compile_deplibs="$deplib $compile_deplibs" + finalize_deplibs="$deplib $finalize_deplibs" + fi + continue + ;; + esac # linkmode + ;; # *.$libext + *.lo | *.$objext) + if test "$pass" = conv; then + deplibs="$deplib $deplibs" + elif test "$linkmode" = prog; then + if test "$pass" = dlpreopen || test "$dlopen_support" != yes || test "$build_libtool_libs" = no; then + # If there is no dlopen support or we're linking statically, + # we need to preload. + func_append newdlprefiles " $deplib" + compile_deplibs="$deplib $compile_deplibs" + finalize_deplibs="$deplib $finalize_deplibs" + else + func_append newdlfiles " $deplib" + fi + fi + continue + ;; + %DEPLIBS%) + alldeplibs=yes + continue + ;; + esac # case $deplib + + if test "$found" = yes || test -f "$lib"; then : + else + func_fatal_error "cannot find the library \`$lib' or unhandled argument \`$deplib'" + fi + + # Check to see that this really is a libtool archive. + func_lalib_unsafe_p "$lib" \ + || func_fatal_error "\`$lib' is not a valid libtool archive" + + func_dirname "$lib" "" "." + ladir="$func_dirname_result" + + dlname= + dlopen= + dlpreopen= + libdir= + library_names= + old_library= + inherited_linker_flags= + # If the library was installed with an old release of libtool, + # it will not redefine variables installed, or shouldnotlink + installed=yes + shouldnotlink=no + avoidtemprpath= + + + # Read the .la file + func_source "$lib" + + # Convert "-framework foo" to "foo.ltframework" + if test -n "$inherited_linker_flags"; then + tmp_inherited_linker_flags=`$ECHO "$inherited_linker_flags" | $SED 's/-framework \([^ $]*\)/\1.ltframework/g'` + for tmp_inherited_linker_flag in $tmp_inherited_linker_flags; do + case " $new_inherited_linker_flags " in + *" $tmp_inherited_linker_flag "*) ;; + *) func_append new_inherited_linker_flags " $tmp_inherited_linker_flag";; + esac + done + fi + dependency_libs=`$ECHO " $dependency_libs" | $SED 's% \([^ $]*\).ltframework% -framework \1%g'` + if test "$linkmode,$pass" = "lib,link" || + test "$linkmode,$pass" = "prog,scan" || + { test "$linkmode" != prog && test "$linkmode" != lib; }; then + test -n "$dlopen" && func_append dlfiles " $dlopen" + test -n "$dlpreopen" && func_append dlprefiles " $dlpreopen" + fi + + if test "$pass" = conv; then + # Only check for convenience libraries + deplibs="$lib $deplibs" + if test -z "$libdir"; then + if test -z "$old_library"; then + func_fatal_error "cannot find name of link library for \`$lib'" + fi + # It is a libtool convenience library, so add in its objects. + func_append convenience " $ladir/$objdir/$old_library" + func_append old_convenience " $ladir/$objdir/$old_library" + tmp_libs= + for deplib in $dependency_libs; do + deplibs="$deplib $deplibs" + if $opt_preserve_dup_deps ; then + case "$tmp_libs " in + *" $deplib "*) func_append specialdeplibs " $deplib" ;; + esac + fi + func_append tmp_libs " $deplib" + done + elif test "$linkmode" != prog && test "$linkmode" != lib; then + func_fatal_error "\`$lib' is not a convenience library" + fi + continue + fi # $pass = conv + + + # Get the name of the library we link against. + linklib= + if test -n "$old_library" && + { test "$prefer_static_libs" = yes || + test "$prefer_static_libs,$installed" = "built,no"; }; then + linklib=$old_library + else + for l in $old_library $library_names; do + linklib="$l" + done + fi + if test -z "$linklib"; then + func_fatal_error "cannot find name of link library for \`$lib'" + fi + + # This library was specified with -dlopen. + if test "$pass" = dlopen; then + if test -z "$libdir"; then + func_fatal_error "cannot -dlopen a convenience library: \`$lib'" + fi + if test -z "$dlname" || + test "$dlopen_support" != yes || + test "$build_libtool_libs" = no; then + # If there is no dlname, no dlopen support or we're linking + # statically, we need to preload. We also need to preload any + # dependent libraries so libltdl's deplib preloader doesn't + # bomb out in the load deplibs phase. + func_append dlprefiles " $lib $dependency_libs" + else + func_append newdlfiles " $lib" + fi + continue + fi # $pass = dlopen + + # We need an absolute path. + case $ladir in + [\\/]* | [A-Za-z]:[\\/]*) abs_ladir="$ladir" ;; + *) + abs_ladir=`cd "$ladir" && pwd` + if test -z "$abs_ladir"; then + func_warning "cannot determine absolute directory name of \`$ladir'" + func_warning "passing it literally to the linker, although it might fail" + abs_ladir="$ladir" + fi + ;; + esac + func_basename "$lib" + laname="$func_basename_result" + + # Find the relevant object directory and library name. + if test "X$installed" = Xyes; then + if test ! -f "$lt_sysroot$libdir/$linklib" && test -f "$abs_ladir/$linklib"; then + func_warning "library \`$lib' was moved." + dir="$ladir" + absdir="$abs_ladir" + libdir="$abs_ladir" + else + dir="$lt_sysroot$libdir" + absdir="$lt_sysroot$libdir" + fi + test "X$hardcode_automatic" = Xyes && avoidtemprpath=yes + else + if test ! -f "$ladir/$objdir/$linklib" && test -f "$abs_ladir/$linklib"; then + dir="$ladir" + absdir="$abs_ladir" + # Remove this search path later + func_append notinst_path " $abs_ladir" + else + dir="$ladir/$objdir" + absdir="$abs_ladir/$objdir" + # Remove this search path later + func_append notinst_path " $abs_ladir" + fi + fi # $installed = yes + func_stripname 'lib' '.la' "$laname" + name=$func_stripname_result + + # This library was specified with -dlpreopen. + if test "$pass" = dlpreopen; then + if test -z "$libdir" && test "$linkmode" = prog; then + func_fatal_error "only libraries may -dlpreopen a convenience library: \`$lib'" + fi + case "$host" in + # special handling for platforms with PE-DLLs. + *cygwin* | *mingw* | *cegcc* ) + # Linker will automatically link against shared library if both + # static and shared are present. Therefore, ensure we extract + # symbols from the import library if a shared library is present + # (otherwise, the dlopen module name will be incorrect). We do + # this by putting the import library name into $newdlprefiles. + # We recover the dlopen module name by 'saving' the la file + # name in a special purpose variable, and (later) extracting the + # dlname from the la file. + if test -n "$dlname"; then + func_tr_sh "$dir/$linklib" + eval "libfile_$func_tr_sh_result=\$abs_ladir/\$laname" + func_append newdlprefiles " $dir/$linklib" + else + func_append newdlprefiles " $dir/$old_library" + # Keep a list of preopened convenience libraries to check + # that they are being used correctly in the link pass. + test -z "$libdir" && \ + func_append dlpreconveniencelibs " $dir/$old_library" + fi + ;; + * ) + # Prefer using a static library (so that no silly _DYNAMIC symbols + # are required to link). + if test -n "$old_library"; then + func_append newdlprefiles " $dir/$old_library" + # Keep a list of preopened convenience libraries to check + # that they are being used correctly in the link pass. + test -z "$libdir" && \ + func_append dlpreconveniencelibs " $dir/$old_library" + # Otherwise, use the dlname, so that lt_dlopen finds it. + elif test -n "$dlname"; then + func_append newdlprefiles " $dir/$dlname" + else + func_append newdlprefiles " $dir/$linklib" + fi + ;; + esac + fi # $pass = dlpreopen + + if test -z "$libdir"; then + # Link the convenience library + if test "$linkmode" = lib; then + deplibs="$dir/$old_library $deplibs" + elif test "$linkmode,$pass" = "prog,link"; then + compile_deplibs="$dir/$old_library $compile_deplibs" + finalize_deplibs="$dir/$old_library $finalize_deplibs" + else + deplibs="$lib $deplibs" # used for prog,scan pass + fi + continue + fi + + + if test "$linkmode" = prog && test "$pass" != link; then + func_append newlib_search_path " $ladir" + deplibs="$lib $deplibs" + + linkalldeplibs=no + if test "$link_all_deplibs" != no || test -z "$library_names" || + test "$build_libtool_libs" = no; then + linkalldeplibs=yes + fi + + tmp_libs= + for deplib in $dependency_libs; do + case $deplib in + -L*) func_stripname '-L' '' "$deplib" + func_resolve_sysroot "$func_stripname_result" + func_append newlib_search_path " $func_resolve_sysroot_result" + ;; + esac + # Need to link against all dependency_libs? + if test "$linkalldeplibs" = yes; then + deplibs="$deplib $deplibs" + else + # Need to hardcode shared library paths + # or/and link against static libraries + newdependency_libs="$deplib $newdependency_libs" + fi + if $opt_preserve_dup_deps ; then + case "$tmp_libs " in + *" $deplib "*) func_append specialdeplibs " $deplib" ;; + esac + fi + func_append tmp_libs " $deplib" + done # for deplib + continue + fi # $linkmode = prog... + + if test "$linkmode,$pass" = "prog,link"; then + if test -n "$library_names" && + { { test "$prefer_static_libs" = no || + test "$prefer_static_libs,$installed" = "built,yes"; } || + test -z "$old_library"; }; then + # We need to hardcode the library path + if test -n "$shlibpath_var" && test -z "$avoidtemprpath" ; then + # Make sure the rpath contains only unique directories. + case "$temp_rpath:" in + *"$absdir:"*) ;; + *) func_append temp_rpath "$absdir:" ;; + esac + fi + + # Hardcode the library path. + # Skip directories that are in the system default run-time + # search path. + case " $sys_lib_dlsearch_path " in + *" $absdir "*) ;; + *) + case "$compile_rpath " in + *" $absdir "*) ;; + *) func_append compile_rpath " $absdir" ;; + esac + ;; + esac + case " $sys_lib_dlsearch_path " in + *" $libdir "*) ;; + *) + case "$finalize_rpath " in + *" $libdir "*) ;; + *) func_append finalize_rpath " $libdir" ;; + esac + ;; + esac + fi # $linkmode,$pass = prog,link... + + if test "$alldeplibs" = yes && + { test "$deplibs_check_method" = pass_all || + { test "$build_libtool_libs" = yes && + test -n "$library_names"; }; }; then + # We only need to search for static libraries + continue + fi + fi + + link_static=no # Whether the deplib will be linked statically + use_static_libs=$prefer_static_libs + if test "$use_static_libs" = built && test "$installed" = yes; then + use_static_libs=no + fi + if test -n "$library_names" && + { test "$use_static_libs" = no || test -z "$old_library"; }; then + case $host in + *cygwin* | *mingw* | *cegcc*) + # No point in relinking DLLs because paths are not encoded + func_append notinst_deplibs " $lib" + need_relink=no + ;; + *) + if test "$installed" = no; then + func_append notinst_deplibs " $lib" + need_relink=yes + fi + ;; + esac + # This is a shared library + + # Warn about portability, can't link against -module's on some + # systems (darwin). Don't bleat about dlopened modules though! + dlopenmodule="" + for dlpremoduletest in $dlprefiles; do + if test "X$dlpremoduletest" = "X$lib"; then + dlopenmodule="$dlpremoduletest" + break + fi + done + if test -z "$dlopenmodule" && test "$shouldnotlink" = yes && test "$pass" = link; then + echo + if test "$linkmode" = prog; then + $ECHO "*** Warning: Linking the executable $output against the loadable module" + else + $ECHO "*** Warning: Linking the shared library $output against the loadable module" + fi + $ECHO "*** $linklib is not portable!" + fi + if test "$linkmode" = lib && + test "$hardcode_into_libs" = yes; then + # Hardcode the library path. + # Skip directories that are in the system default run-time + # search path. + case " $sys_lib_dlsearch_path " in + *" $absdir "*) ;; + *) + case "$compile_rpath " in + *" $absdir "*) ;; + *) func_append compile_rpath " $absdir" ;; + esac + ;; + esac + case " $sys_lib_dlsearch_path " in + *" $libdir "*) ;; + *) + case "$finalize_rpath " in + *" $libdir "*) ;; + *) func_append finalize_rpath " $libdir" ;; + esac + ;; + esac + fi + + if test -n "$old_archive_from_expsyms_cmds"; then + # figure out the soname + set dummy $library_names + shift + realname="$1" + shift + libname=`eval "\\$ECHO \"$libname_spec\""` + # use dlname if we got it. it's perfectly good, no? + if test -n "$dlname"; then + soname="$dlname" + elif test -n "$soname_spec"; then + # bleh windows + case $host in + *cygwin* | mingw* | *cegcc*) + func_arith $current - $age + major=$func_arith_result + versuffix="-$major" + ;; + esac + eval soname=\"$soname_spec\" + else + soname="$realname" + fi + + # Make a new name for the extract_expsyms_cmds to use + soroot="$soname" + func_basename "$soroot" + soname="$func_basename_result" + func_stripname 'lib' '.dll' "$soname" + newlib=libimp-$func_stripname_result.a + + # If the library has no export list, then create one now + if test -f "$output_objdir/$soname-def"; then : + else + func_verbose "extracting exported symbol list from \`$soname'" + func_execute_cmds "$extract_expsyms_cmds" 'exit $?' + fi + + # Create $newlib + if test -f "$output_objdir/$newlib"; then :; else + func_verbose "generating import library for \`$soname'" + func_execute_cmds "$old_archive_from_expsyms_cmds" 'exit $?' + fi + # make sure the library variables are pointing to the new library + dir=$output_objdir + linklib=$newlib + fi # test -n "$old_archive_from_expsyms_cmds" + + if test "$linkmode" = prog || test "$opt_mode" != relink; then + add_shlibpath= + add_dir= + add= + lib_linked=yes + case $hardcode_action in + immediate | unsupported) + if test "$hardcode_direct" = no; then + add="$dir/$linklib" + case $host in + *-*-sco3.2v5.0.[024]*) add_dir="-L$dir" ;; + *-*-sysv4*uw2*) add_dir="-L$dir" ;; + *-*-sysv5OpenUNIX* | *-*-sysv5UnixWare7.[01].[10]* | \ + *-*-unixware7*) add_dir="-L$dir" ;; + *-*-darwin* ) + # if the lib is a (non-dlopened) module then we can not + # link against it, someone is ignoring the earlier warnings + if /usr/bin/file -L $add 2> /dev/null | + $GREP ": [^:]* bundle" >/dev/null ; then + if test "X$dlopenmodule" != "X$lib"; then + $ECHO "*** Warning: lib $linklib is a module, not a shared library" + if test -z "$old_library" ; then + echo + echo "*** And there doesn't seem to be a static archive available" + echo "*** The link will probably fail, sorry" + else + add="$dir/$old_library" + fi + elif test -n "$old_library"; then + add="$dir/$old_library" + fi + fi + esac + elif test "$hardcode_minus_L" = no; then + case $host in + *-*-sunos*) add_shlibpath="$dir" ;; + esac + add_dir="-L$dir" + add="-l$name" + elif test "$hardcode_shlibpath_var" = no; then + add_shlibpath="$dir" + add="-l$name" + else + lib_linked=no + fi + ;; + relink) + if test "$hardcode_direct" = yes && + test "$hardcode_direct_absolute" = no; then + add="$dir/$linklib" + elif test "$hardcode_minus_L" = yes; then + add_dir="-L$absdir" + # Try looking first in the location we're being installed to. + if test -n "$inst_prefix_dir"; then + case $libdir in + [\\/]*) + func_append add_dir " -L$inst_prefix_dir$libdir" + ;; + esac + fi + add="-l$name" + elif test "$hardcode_shlibpath_var" = yes; then + add_shlibpath="$dir" + add="-l$name" + else + lib_linked=no + fi + ;; + *) lib_linked=no ;; + esac + + if test "$lib_linked" != yes; then + func_fatal_configuration "unsupported hardcode properties" + fi + + if test -n "$add_shlibpath"; then + case :$compile_shlibpath: in + *":$add_shlibpath:"*) ;; + *) func_append compile_shlibpath "$add_shlibpath:" ;; + esac + fi + if test "$linkmode" = prog; then + test -n "$add_dir" && compile_deplibs="$add_dir $compile_deplibs" + test -n "$add" && compile_deplibs="$add $compile_deplibs" + else + test -n "$add_dir" && deplibs="$add_dir $deplibs" + test -n "$add" && deplibs="$add $deplibs" + if test "$hardcode_direct" != yes && + test "$hardcode_minus_L" != yes && + test "$hardcode_shlibpath_var" = yes; then + case :$finalize_shlibpath: in + *":$libdir:"*) ;; + *) func_append finalize_shlibpath "$libdir:" ;; + esac + fi + fi + fi + + if test "$linkmode" = prog || test "$opt_mode" = relink; then + add_shlibpath= + add_dir= + add= + # Finalize command for both is simple: just hardcode it. + if test "$hardcode_direct" = yes && + test "$hardcode_direct_absolute" = no; then + add="$libdir/$linklib" + elif test "$hardcode_minus_L" = yes; then + add_dir="-L$libdir" + add="-l$name" + elif test "$hardcode_shlibpath_var" = yes; then + case :$finalize_shlibpath: in + *":$libdir:"*) ;; + *) func_append finalize_shlibpath "$libdir:" ;; + esac + add="-l$name" + elif test "$hardcode_automatic" = yes; then + if test -n "$inst_prefix_dir" && + test -f "$inst_prefix_dir$libdir/$linklib" ; then + add="$inst_prefix_dir$libdir/$linklib" + else + add="$libdir/$linklib" + fi + else + # We cannot seem to hardcode it, guess we'll fake it. + add_dir="-L$libdir" + # Try looking first in the location we're being installed to. + if test -n "$inst_prefix_dir"; then + case $libdir in + [\\/]*) + func_append add_dir " -L$inst_prefix_dir$libdir" + ;; + esac + fi + add="-l$name" + fi + + if test "$linkmode" = prog; then + test -n "$add_dir" && finalize_deplibs="$add_dir $finalize_deplibs" + test -n "$add" && finalize_deplibs="$add $finalize_deplibs" + else + test -n "$add_dir" && deplibs="$add_dir $deplibs" + test -n "$add" && deplibs="$add $deplibs" + fi + fi + elif test "$linkmode" = prog; then + # Here we assume that one of hardcode_direct or hardcode_minus_L + # is not unsupported. This is valid on all known static and + # shared platforms. + if test "$hardcode_direct" != unsupported; then + test -n "$old_library" && linklib="$old_library" + compile_deplibs="$dir/$linklib $compile_deplibs" + finalize_deplibs="$dir/$linklib $finalize_deplibs" + else + compile_deplibs="-l$name -L$dir $compile_deplibs" + finalize_deplibs="-l$name -L$dir $finalize_deplibs" + fi + elif test "$build_libtool_libs" = yes; then + # Not a shared library + if test "$deplibs_check_method" != pass_all; then + # We're trying link a shared library against a static one + # but the system doesn't support it. + + # Just print a warning and add the library to dependency_libs so + # that the program can be linked against the static library. + echo + $ECHO "*** Warning: This system can not link to static lib archive $lib." + echo "*** I have the capability to make that library automatically link in when" + echo "*** you link to this library. But I can only do this if you have a" + echo "*** shared version of the library, which you do not appear to have." + if test "$module" = yes; then + echo "*** But as you try to build a module library, libtool will still create " + echo "*** a static module, that should work as long as the dlopening application" + echo "*** is linked with the -dlopen flag to resolve symbols at runtime." + if test -z "$global_symbol_pipe"; then + echo + echo "*** However, this would only work if libtool was able to extract symbol" + echo "*** lists from a program, using \`nm' or equivalent, but libtool could" + echo "*** not find such a program. So, this module is probably useless." + echo "*** \`nm' from GNU binutils and a full rebuild may help." + fi + if test "$build_old_libs" = no; then + build_libtool_libs=module + build_old_libs=yes + else + build_libtool_libs=no + fi + fi + else + deplibs="$dir/$old_library $deplibs" + link_static=yes + fi + fi # link shared/static library? + + if test "$linkmode" = lib; then + if test -n "$dependency_libs" && + { test "$hardcode_into_libs" != yes || + test "$build_old_libs" = yes || + test "$link_static" = yes; }; then + # Extract -R from dependency_libs + temp_deplibs= + for libdir in $dependency_libs; do + case $libdir in + -R*) func_stripname '-R' '' "$libdir" + temp_xrpath=$func_stripname_result + case " $xrpath " in + *" $temp_xrpath "*) ;; + *) func_append xrpath " $temp_xrpath";; + esac;; + *) func_append temp_deplibs " $libdir";; + esac + done + dependency_libs="$temp_deplibs" + fi + + func_append newlib_search_path " $absdir" + # Link against this library + test "$link_static" = no && newdependency_libs="$abs_ladir/$laname $newdependency_libs" + # ... and its dependency_libs + tmp_libs= + for deplib in $dependency_libs; do + newdependency_libs="$deplib $newdependency_libs" + case $deplib in + -L*) func_stripname '-L' '' "$deplib" + func_resolve_sysroot "$func_stripname_result";; + *) func_resolve_sysroot "$deplib" ;; + esac + if $opt_preserve_dup_deps ; then + case "$tmp_libs " in + *" $func_resolve_sysroot_result "*) + func_append specialdeplibs " $func_resolve_sysroot_result" ;; + esac + fi + func_append tmp_libs " $func_resolve_sysroot_result" + done + + if test "$link_all_deplibs" != no; then + # Add the search paths of all dependency libraries + for deplib in $dependency_libs; do + path= + case $deplib in + -L*) path="$deplib" ;; + *.la) + func_resolve_sysroot "$deplib" + deplib=$func_resolve_sysroot_result + func_dirname "$deplib" "" "." + dir=$func_dirname_result + # We need an absolute path. + case $dir in + [\\/]* | [A-Za-z]:[\\/]*) absdir="$dir" ;; + *) + absdir=`cd "$dir" && pwd` + if test -z "$absdir"; then + func_warning "cannot determine absolute directory name of \`$dir'" + absdir="$dir" + fi + ;; + esac + if $GREP "^installed=no" $deplib > /dev/null; then + case $host in + *-*-darwin*) + depdepl= + eval deplibrary_names=`${SED} -n -e 's/^library_names=\(.*\)$/\1/p' $deplib` + if test -n "$deplibrary_names" ; then + for tmp in $deplibrary_names ; do + depdepl=$tmp + done + if test -f "$absdir/$objdir/$depdepl" ; then + depdepl="$absdir/$objdir/$depdepl" + darwin_install_name=`${OTOOL} -L $depdepl | awk '{if (NR == 2) {print $1;exit}}'` + if test -z "$darwin_install_name"; then + darwin_install_name=`${OTOOL64} -L $depdepl | awk '{if (NR == 2) {print $1;exit}}'` + fi + func_append compiler_flags " ${wl}-dylib_file ${wl}${darwin_install_name}:${depdepl}" + func_append linker_flags " -dylib_file ${darwin_install_name}:${depdepl}" + path= + fi + fi + ;; + *) + path="-L$absdir/$objdir" + ;; + esac + else + eval libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $deplib` + test -z "$libdir" && \ + func_fatal_error "\`$deplib' is not a valid libtool archive" + test "$absdir" != "$libdir" && \ + func_warning "\`$deplib' seems to be moved" + + path="-L$absdir" + fi + ;; + esac + case " $deplibs " in + *" $path "*) ;; + *) deplibs="$path $deplibs" ;; + esac + done + fi # link_all_deplibs != no + fi # linkmode = lib + done # for deplib in $libs + if test "$pass" = link; then + if test "$linkmode" = "prog"; then + compile_deplibs="$new_inherited_linker_flags $compile_deplibs" + finalize_deplibs="$new_inherited_linker_flags $finalize_deplibs" + else + compiler_flags="$compiler_flags "`$ECHO " $new_inherited_linker_flags" | $SED 's% \([^ $]*\).ltframework% -framework \1%g'` + fi + fi + dependency_libs="$newdependency_libs" + if test "$pass" = dlpreopen; then + # Link the dlpreopened libraries before other libraries + for deplib in $save_deplibs; do + deplibs="$deplib $deplibs" + done + fi + if test "$pass" != dlopen; then + if test "$pass" != conv; then + # Make sure lib_search_path contains only unique directories. + lib_search_path= + for dir in $newlib_search_path; do + case "$lib_search_path " in + *" $dir "*) ;; + *) func_append lib_search_path " $dir" ;; + esac + done + newlib_search_path= + fi + + if test "$linkmode,$pass" != "prog,link"; then + vars="deplibs" + else + vars="compile_deplibs finalize_deplibs" + fi + for var in $vars dependency_libs; do + # Add libraries to $var in reverse order + eval tmp_libs=\"\$$var\" + new_libs= + for deplib in $tmp_libs; do + # FIXME: Pedantically, this is the right thing to do, so + # that some nasty dependency loop isn't accidentally + # broken: + #new_libs="$deplib $new_libs" + # Pragmatically, this seems to cause very few problems in + # practice: + case $deplib in + -L*) new_libs="$deplib $new_libs" ;; + -R*) ;; + *) + # And here is the reason: when a library appears more + # than once as an explicit dependence of a library, or + # is implicitly linked in more than once by the + # compiler, it is considered special, and multiple + # occurrences thereof are not removed. Compare this + # with having the same library being listed as a + # dependency of multiple other libraries: in this case, + # we know (pedantically, we assume) the library does not + # need to be listed more than once, so we keep only the + # last copy. This is not always right, but it is rare + # enough that we require users that really mean to play + # such unportable linking tricks to link the library + # using -Wl,-lname, so that libtool does not consider it + # for duplicate removal. + case " $specialdeplibs " in + *" $deplib "*) new_libs="$deplib $new_libs" ;; + *) + case " $new_libs " in + *" $deplib "*) ;; + *) new_libs="$deplib $new_libs" ;; + esac + ;; + esac + ;; + esac + done + tmp_libs= + for deplib in $new_libs; do + case $deplib in + -L*) + case " $tmp_libs " in + *" $deplib "*) ;; + *) func_append tmp_libs " $deplib" ;; + esac + ;; + *) func_append tmp_libs " $deplib" ;; + esac + done + eval $var=\"$tmp_libs\" + done # for var + fi + # Last step: remove runtime libs from dependency_libs + # (they stay in deplibs) + tmp_libs= + for i in $dependency_libs ; do + case " $predeps $postdeps $compiler_lib_search_path " in + *" $i "*) + i="" + ;; + esac + if test -n "$i" ; then + func_append tmp_libs " $i" + fi + done + dependency_libs=$tmp_libs + done # for pass + if test "$linkmode" = prog; then + dlfiles="$newdlfiles" + fi + if test "$linkmode" = prog || test "$linkmode" = lib; then + dlprefiles="$newdlprefiles" + fi + + case $linkmode in + oldlib) + if test -n "$dlfiles$dlprefiles" || test "$dlself" != no; then + func_warning "\`-dlopen' is ignored for archives" + fi + + case " $deplibs" in + *\ -l* | *\ -L*) + func_warning "\`-l' and \`-L' are ignored for archives" ;; + esac + + test -n "$rpath" && \ + func_warning "\`-rpath' is ignored for archives" + + test -n "$xrpath" && \ + func_warning "\`-R' is ignored for archives" + + test -n "$vinfo" && \ + func_warning "\`-version-info/-version-number' is ignored for archives" + + test -n "$release" && \ + func_warning "\`-release' is ignored for archives" + + test -n "$export_symbols$export_symbols_regex" && \ + func_warning "\`-export-symbols' is ignored for archives" + + # Now set the variables for building old libraries. + build_libtool_libs=no + oldlibs="$output" + func_append objs "$old_deplibs" + ;; + + lib) + # Make sure we only generate libraries of the form `libNAME.la'. + case $outputname in + lib*) + func_stripname 'lib' '.la' "$outputname" + name=$func_stripname_result + eval shared_ext=\"$shrext_cmds\" + eval libname=\"$libname_spec\" + ;; + *) + test "$module" = no && \ + func_fatal_help "libtool library \`$output' must begin with \`lib'" + + if test "$need_lib_prefix" != no; then + # Add the "lib" prefix for modules if required + func_stripname '' '.la' "$outputname" + name=$func_stripname_result + eval shared_ext=\"$shrext_cmds\" + eval libname=\"$libname_spec\" + else + func_stripname '' '.la' "$outputname" + libname=$func_stripname_result + fi + ;; + esac + + if test -n "$objs"; then + if test "$deplibs_check_method" != pass_all; then + func_fatal_error "cannot build libtool library \`$output' from non-libtool objects on this host:$objs" + else + echo + $ECHO "*** Warning: Linking the shared library $output against the non-libtool" + $ECHO "*** objects $objs is not portable!" + func_append libobjs " $objs" + fi + fi + + test "$dlself" != no && \ + func_warning "\`-dlopen self' is ignored for libtool libraries" + + set dummy $rpath + shift + test "$#" -gt 1 && \ + func_warning "ignoring multiple \`-rpath's for a libtool library" + + install_libdir="$1" + + oldlibs= + if test -z "$rpath"; then + if test "$build_libtool_libs" = yes; then + # Building a libtool convenience library. + # Some compilers have problems with a `.al' extension so + # convenience libraries should have the same extension an + # archive normally would. + oldlibs="$output_objdir/$libname.$libext $oldlibs" + build_libtool_libs=convenience + build_old_libs=yes + fi + + test -n "$vinfo" && \ + func_warning "\`-version-info/-version-number' is ignored for convenience libraries" + + test -n "$release" && \ + func_warning "\`-release' is ignored for convenience libraries" + else + + # Parse the version information argument. + save_ifs="$IFS"; IFS=':' + set dummy $vinfo 0 0 0 + shift + IFS="$save_ifs" + + test -n "$7" && \ + func_fatal_help "too many parameters to \`-version-info'" + + # convert absolute version numbers to libtool ages + # this retains compatibility with .la files and attempts + # to make the code below a bit more comprehensible + + case $vinfo_number in + yes) + number_major="$1" + number_minor="$2" + number_revision="$3" + # + # There are really only two kinds -- those that + # use the current revision as the major version + # and those that subtract age and use age as + # a minor version. But, then there is irix + # which has an extra 1 added just for fun + # + case $version_type in + # correct linux to gnu/linux during the next big refactor + darwin|linux|osf|windows|none) + func_arith $number_major + $number_minor + current=$func_arith_result + age="$number_minor" + revision="$number_revision" + ;; + freebsd-aout|freebsd-elf|qnx|sunos) + current="$number_major" + revision="$number_minor" + age="0" + ;; + irix|nonstopux) + func_arith $number_major + $number_minor + current=$func_arith_result + age="$number_minor" + revision="$number_minor" + lt_irix_increment=no + ;; + *) + func_fatal_configuration "$modename: unknown library version type \`$version_type'" + ;; + esac + ;; + no) + current="$1" + revision="$2" + age="$3" + ;; + esac + + # Check that each of the things are valid numbers. + case $current in + 0|[1-9]|[1-9][0-9]|[1-9][0-9][0-9]|[1-9][0-9][0-9][0-9]|[1-9][0-9][0-9][0-9][0-9]) ;; + *) + func_error "CURRENT \`$current' must be a nonnegative integer" + func_fatal_error "\`$vinfo' is not valid version information" + ;; + esac + + case $revision in + 0|[1-9]|[1-9][0-9]|[1-9][0-9][0-9]|[1-9][0-9][0-9][0-9]|[1-9][0-9][0-9][0-9][0-9]) ;; + *) + func_error "REVISION \`$revision' must be a nonnegative integer" + func_fatal_error "\`$vinfo' is not valid version information" + ;; + esac + + case $age in + 0|[1-9]|[1-9][0-9]|[1-9][0-9][0-9]|[1-9][0-9][0-9][0-9]|[1-9][0-9][0-9][0-9][0-9]) ;; + *) + func_error "AGE \`$age' must be a nonnegative integer" + func_fatal_error "\`$vinfo' is not valid version information" + ;; + esac + + if test "$age" -gt "$current"; then + func_error "AGE \`$age' is greater than the current interface number \`$current'" + func_fatal_error "\`$vinfo' is not valid version information" + fi + + # Calculate the version variables. + major= + versuffix= + verstring= + case $version_type in + none) ;; + + darwin) + # Like Linux, but with the current version available in + # verstring for coding it into the library header + func_arith $current - $age + major=.$func_arith_result + versuffix="$major.$age.$revision" + # Darwin ld doesn't like 0 for these options... + func_arith $current + 1 + minor_current=$func_arith_result + xlcverstring="${wl}-compatibility_version ${wl}$minor_current ${wl}-current_version ${wl}$minor_current.$revision" + verstring="-compatibility_version $minor_current -current_version $minor_current.$revision" + ;; + + freebsd-aout) + major=".$current" + versuffix=".$current.$revision"; + ;; + + freebsd-elf) + major=".$current" + versuffix=".$current" + ;; + + irix | nonstopux) + if test "X$lt_irix_increment" = "Xno"; then + func_arith $current - $age + else + func_arith $current - $age + 1 + fi + major=$func_arith_result + + case $version_type in + nonstopux) verstring_prefix=nonstopux ;; + *) verstring_prefix=sgi ;; + esac + verstring="$verstring_prefix$major.$revision" + + # Add in all the interfaces that we are compatible with. + loop=$revision + while test "$loop" -ne 0; do + func_arith $revision - $loop + iface=$func_arith_result + func_arith $loop - 1 + loop=$func_arith_result + verstring="$verstring_prefix$major.$iface:$verstring" + done + + # Before this point, $major must not contain `.'. + major=.$major + versuffix="$major.$revision" + ;; + + linux) # correct to gnu/linux during the next big refactor + func_arith $current - $age + major=.$func_arith_result + versuffix="$major.$age.$revision" + ;; + + osf) + func_arith $current - $age + major=.$func_arith_result + versuffix=".$current.$age.$revision" + verstring="$current.$age.$revision" + + # Add in all the interfaces that we are compatible with. + loop=$age + while test "$loop" -ne 0; do + func_arith $current - $loop + iface=$func_arith_result + func_arith $loop - 1 + loop=$func_arith_result + verstring="$verstring:${iface}.0" + done + + # Make executables depend on our current version. + func_append verstring ":${current}.0" + ;; + + qnx) + major=".$current" + versuffix=".$current" + ;; + + sunos) + major=".$current" + versuffix=".$current.$revision" + ;; + + windows) + # Use '-' rather than '.', since we only want one + # extension on DOS 8.3 filesystems. + func_arith $current - $age + major=$func_arith_result + versuffix="-$major" + ;; + + *) + func_fatal_configuration "unknown library version type \`$version_type'" + ;; + esac + + # Clear the version info if we defaulted, and they specified a release. + if test -z "$vinfo" && test -n "$release"; then + major= + case $version_type in + darwin) + # we can't check for "0.0" in archive_cmds due to quoting + # problems, so we reset it completely + verstring= + ;; + *) + verstring="0.0" + ;; + esac + if test "$need_version" = no; then + versuffix= + else + versuffix=".0.0" + fi + fi + + # Remove version info from name if versioning should be avoided + if test "$avoid_version" = yes && test "$need_version" = no; then + major= + versuffix= + verstring="" + fi + + # Check to see if the archive will have undefined symbols. + if test "$allow_undefined" = yes; then + if test "$allow_undefined_flag" = unsupported; then + func_warning "undefined symbols not allowed in $host shared libraries" + build_libtool_libs=no + build_old_libs=yes + fi + else + # Don't allow undefined symbols. + allow_undefined_flag="$no_undefined_flag" + fi + + fi + + func_generate_dlsyms "$libname" "$libname" "yes" + func_append libobjs " $symfileobj" + test "X$libobjs" = "X " && libobjs= + + if test "$opt_mode" != relink; then + # Remove our outputs, but don't remove object files since they + # may have been created when compiling PIC objects. + removelist= + tempremovelist=`$ECHO "$output_objdir/*"` + for p in $tempremovelist; do + case $p in + *.$objext | *.gcno) + ;; + $output_objdir/$outputname | $output_objdir/$libname.* | $output_objdir/${libname}${release}.*) + if test "X$precious_files_regex" != "X"; then + if $ECHO "$p" | $EGREP -e "$precious_files_regex" >/dev/null 2>&1 + then + continue + fi + fi + func_append removelist " $p" + ;; + *) ;; + esac + done + test -n "$removelist" && \ + func_show_eval "${RM}r \$removelist" + fi + + # Now set the variables for building old libraries. + if test "$build_old_libs" = yes && test "$build_libtool_libs" != convenience ; then + func_append oldlibs " $output_objdir/$libname.$libext" + + # Transform .lo files to .o files. + oldobjs="$objs "`$ECHO "$libobjs" | $SP2NL | $SED "/\.${libext}$/d; $lo2o" | $NL2SP` + fi + + # Eliminate all temporary directories. + #for path in $notinst_path; do + # lib_search_path=`$ECHO "$lib_search_path " | $SED "s% $path % %g"` + # deplibs=`$ECHO "$deplibs " | $SED "s% -L$path % %g"` + # dependency_libs=`$ECHO "$dependency_libs " | $SED "s% -L$path % %g"` + #done + + if test -n "$xrpath"; then + # If the user specified any rpath flags, then add them. + temp_xrpath= + for libdir in $xrpath; do + func_replace_sysroot "$libdir" + func_append temp_xrpath " -R$func_replace_sysroot_result" + case "$finalize_rpath " in + *" $libdir "*) ;; + *) func_append finalize_rpath " $libdir" ;; + esac + done + if test "$hardcode_into_libs" != yes || test "$build_old_libs" = yes; then + dependency_libs="$temp_xrpath $dependency_libs" + fi + fi + + # Make sure dlfiles contains only unique files that won't be dlpreopened + old_dlfiles="$dlfiles" + dlfiles= + for lib in $old_dlfiles; do + case " $dlprefiles $dlfiles " in + *" $lib "*) ;; + *) func_append dlfiles " $lib" ;; + esac + done + + # Make sure dlprefiles contains only unique files + old_dlprefiles="$dlprefiles" + dlprefiles= + for lib in $old_dlprefiles; do + case "$dlprefiles " in + *" $lib "*) ;; + *) func_append dlprefiles " $lib" ;; + esac + done + + if test "$build_libtool_libs" = yes; then + if test -n "$rpath"; then + case $host in + *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2* | *-*-beos* | *-cegcc* | *-*-haiku*) + # these systems don't actually have a c library (as such)! + ;; + *-*-rhapsody* | *-*-darwin1.[012]) + # Rhapsody C library is in the System framework + func_append deplibs " System.ltframework" + ;; + *-*-netbsd*) + # Don't link with libc until the a.out ld.so is fixed. + ;; + *-*-openbsd* | *-*-freebsd* | *-*-dragonfly*) + # Do not include libc due to us having libc/libc_r. + ;; + *-*-sco3.2v5* | *-*-sco5v6*) + # Causes problems with __ctype + ;; + *-*-sysv4.2uw2* | *-*-sysv5* | *-*-unixware* | *-*-OpenUNIX*) + # Compiler inserts libc in the correct place for threads to work + ;; + *) + # Add libc to deplibs on all other systems if necessary. + if test "$build_libtool_need_lc" = "yes"; then + func_append deplibs " -lc" + fi + ;; + esac + fi + + # Transform deplibs into only deplibs that can be linked in shared. + name_save=$name + libname_save=$libname + release_save=$release + versuffix_save=$versuffix + major_save=$major + # I'm not sure if I'm treating the release correctly. I think + # release should show up in the -l (ie -lgmp5) so we don't want to + # add it in twice. Is that correct? + release="" + versuffix="" + major="" + newdeplibs= + droppeddeps=no + case $deplibs_check_method in + pass_all) + # Don't check for shared/static. Everything works. + # This might be a little naive. We might want to check + # whether the library exists or not. But this is on + # osf3 & osf4 and I'm not really sure... Just + # implementing what was already the behavior. + newdeplibs=$deplibs + ;; + test_compile) + # This code stresses the "libraries are programs" paradigm to its + # limits. Maybe even breaks it. We compile a program, linking it + # against the deplibs as a proxy for the library. Then we can check + # whether they linked in statically or dynamically with ldd. + $opt_dry_run || $RM conftest.c + cat > conftest.c </dev/null` + $nocaseglob + else + potential_libs=`ls $i/$libnameglob[.-]* 2>/dev/null` + fi + for potent_lib in $potential_libs; do + # Follow soft links. + if ls -lLd "$potent_lib" 2>/dev/null | + $GREP " -> " >/dev/null; then + continue + fi + # The statement above tries to avoid entering an + # endless loop below, in case of cyclic links. + # We might still enter an endless loop, since a link + # loop can be closed while we follow links, + # but so what? + potlib="$potent_lib" + while test -h "$potlib" 2>/dev/null; do + potliblink=`ls -ld $potlib | ${SED} 's/.* -> //'` + case $potliblink in + [\\/]* | [A-Za-z]:[\\/]*) potlib="$potliblink";; + *) potlib=`$ECHO "$potlib" | $SED 's,[^/]*$,,'`"$potliblink";; + esac + done + if eval $file_magic_cmd \"\$potlib\" 2>/dev/null | + $SED -e 10q | + $EGREP "$file_magic_regex" > /dev/null; then + func_append newdeplibs " $a_deplib" + a_deplib="" + break 2 + fi + done + done + fi + if test -n "$a_deplib" ; then + droppeddeps=yes + echo + $ECHO "*** Warning: linker path does not have real file for library $a_deplib." + echo "*** I have the capability to make that library automatically link in when" + echo "*** you link to this library. But I can only do this if you have a" + echo "*** shared version of the library, which you do not appear to have" + echo "*** because I did check the linker path looking for a file starting" + if test -z "$potlib" ; then + $ECHO "*** with $libname but no candidates were found. (...for file magic test)" + else + $ECHO "*** with $libname and none of the candidates passed a file format test" + $ECHO "*** using a file magic. Last file checked: $potlib" + fi + fi + ;; + *) + # Add a -L argument. + func_append newdeplibs " $a_deplib" + ;; + esac + done # Gone through all deplibs. + ;; + match_pattern*) + set dummy $deplibs_check_method; shift + match_pattern_regex=`expr "$deplibs_check_method" : "$1 \(.*\)"` + for a_deplib in $deplibs; do + case $a_deplib in + -l*) + func_stripname -l '' "$a_deplib" + name=$func_stripname_result + if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then + case " $predeps $postdeps " in + *" $a_deplib "*) + func_append newdeplibs " $a_deplib" + a_deplib="" + ;; + esac + fi + if test -n "$a_deplib" ; then + libname=`eval "\\$ECHO \"$libname_spec\""` + for i in $lib_search_path $sys_lib_search_path $shlib_search_path; do + potential_libs=`ls $i/$libname[.-]* 2>/dev/null` + for potent_lib in $potential_libs; do + potlib="$potent_lib" # see symlink-check above in file_magic test + if eval "\$ECHO \"$potent_lib\"" 2>/dev/null | $SED 10q | \ + $EGREP "$match_pattern_regex" > /dev/null; then + func_append newdeplibs " $a_deplib" + a_deplib="" + break 2 + fi + done + done + fi + if test -n "$a_deplib" ; then + droppeddeps=yes + echo + $ECHO "*** Warning: linker path does not have real file for library $a_deplib." + echo "*** I have the capability to make that library automatically link in when" + echo "*** you link to this library. But I can only do this if you have a" + echo "*** shared version of the library, which you do not appear to have" + echo "*** because I did check the linker path looking for a file starting" + if test -z "$potlib" ; then + $ECHO "*** with $libname but no candidates were found. (...for regex pattern test)" + else + $ECHO "*** with $libname and none of the candidates passed a file format test" + $ECHO "*** using a regex pattern. Last file checked: $potlib" + fi + fi + ;; + *) + # Add a -L argument. + func_append newdeplibs " $a_deplib" + ;; + esac + done # Gone through all deplibs. + ;; + none | unknown | *) + newdeplibs="" + tmp_deplibs=`$ECHO " $deplibs" | $SED 's/ -lc$//; s/ -[LR][^ ]*//g'` + if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then + for i in $predeps $postdeps ; do + # can't use Xsed below, because $i might contain '/' + tmp_deplibs=`$ECHO " $tmp_deplibs" | $SED "s,$i,,"` + done + fi + case $tmp_deplibs in + *[!\ \ ]*) + echo + if test "X$deplibs_check_method" = "Xnone"; then + echo "*** Warning: inter-library dependencies are not supported in this platform." + else + echo "*** Warning: inter-library dependencies are not known to be supported." + fi + echo "*** All declared inter-library dependencies are being dropped." + droppeddeps=yes + ;; + esac + ;; + esac + versuffix=$versuffix_save + major=$major_save + release=$release_save + libname=$libname_save + name=$name_save + + case $host in + *-*-rhapsody* | *-*-darwin1.[012]) + # On Rhapsody replace the C library with the System framework + newdeplibs=`$ECHO " $newdeplibs" | $SED 's/ -lc / System.ltframework /'` + ;; + esac + + if test "$droppeddeps" = yes; then + if test "$module" = yes; then + echo + echo "*** Warning: libtool could not satisfy all declared inter-library" + $ECHO "*** dependencies of module $libname. Therefore, libtool will create" + echo "*** a static module, that should work as long as the dlopening" + echo "*** application is linked with the -dlopen flag." + if test -z "$global_symbol_pipe"; then + echo + echo "*** However, this would only work if libtool was able to extract symbol" + echo "*** lists from a program, using \`nm' or equivalent, but libtool could" + echo "*** not find such a program. So, this module is probably useless." + echo "*** \`nm' from GNU binutils and a full rebuild may help." + fi + if test "$build_old_libs" = no; then + oldlibs="$output_objdir/$libname.$libext" + build_libtool_libs=module + build_old_libs=yes + else + build_libtool_libs=no + fi + else + echo "*** The inter-library dependencies that have been dropped here will be" + echo "*** automatically added whenever a program is linked with this library" + echo "*** or is declared to -dlopen it." + + if test "$allow_undefined" = no; then + echo + echo "*** Since this library must not contain undefined symbols," + echo "*** because either the platform does not support them or" + echo "*** it was explicitly requested with -no-undefined," + echo "*** libtool will only create a static version of it." + if test "$build_old_libs" = no; then + oldlibs="$output_objdir/$libname.$libext" + build_libtool_libs=module + build_old_libs=yes + else + build_libtool_libs=no + fi + fi + fi + fi + # Done checking deplibs! + deplibs=$newdeplibs + fi + # Time to change all our "foo.ltframework" stuff back to "-framework foo" + case $host in + *-*-darwin*) + newdeplibs=`$ECHO " $newdeplibs" | $SED 's% \([^ $]*\).ltframework% -framework \1%g'` + new_inherited_linker_flags=`$ECHO " $new_inherited_linker_flags" | $SED 's% \([^ $]*\).ltframework% -framework \1%g'` + deplibs=`$ECHO " $deplibs" | $SED 's% \([^ $]*\).ltframework% -framework \1%g'` + ;; + esac + + # move library search paths that coincide with paths to not yet + # installed libraries to the beginning of the library search list + new_libs= + for path in $notinst_path; do + case " $new_libs " in + *" -L$path/$objdir "*) ;; + *) + case " $deplibs " in + *" -L$path/$objdir "*) + func_append new_libs " -L$path/$objdir" ;; + esac + ;; + esac + done + for deplib in $deplibs; do + case $deplib in + -L*) + case " $new_libs " in + *" $deplib "*) ;; + *) func_append new_libs " $deplib" ;; + esac + ;; + *) func_append new_libs " $deplib" ;; + esac + done + deplibs="$new_libs" + + # All the library-specific variables (install_libdir is set above). + library_names= + old_library= + dlname= + + # Test again, we may have decided not to build it any more + if test "$build_libtool_libs" = yes; then + # Remove ${wl} instances when linking with ld. + # FIXME: should test the right _cmds variable. + case $archive_cmds in + *\$LD\ *) wl= ;; + esac + if test "$hardcode_into_libs" = yes; then + # Hardcode the library paths + hardcode_libdirs= + dep_rpath= + rpath="$finalize_rpath" + test "$opt_mode" != relink && rpath="$compile_rpath$rpath" + for libdir in $rpath; do + if test -n "$hardcode_libdir_flag_spec"; then + if test -n "$hardcode_libdir_separator"; then + func_replace_sysroot "$libdir" + libdir=$func_replace_sysroot_result + if test -z "$hardcode_libdirs"; then + hardcode_libdirs="$libdir" + else + # Just accumulate the unique libdirs. + case $hardcode_libdir_separator$hardcode_libdirs$hardcode_libdir_separator in + *"$hardcode_libdir_separator$libdir$hardcode_libdir_separator"*) + ;; + *) + func_append hardcode_libdirs "$hardcode_libdir_separator$libdir" + ;; + esac + fi + else + eval flag=\"$hardcode_libdir_flag_spec\" + func_append dep_rpath " $flag" + fi + elif test -n "$runpath_var"; then + case "$perm_rpath " in + *" $libdir "*) ;; + *) func_append perm_rpath " $libdir" ;; + esac + fi + done + # Substitute the hardcoded libdirs into the rpath. + if test -n "$hardcode_libdir_separator" && + test -n "$hardcode_libdirs"; then + libdir="$hardcode_libdirs" + eval "dep_rpath=\"$hardcode_libdir_flag_spec\"" + fi + if test -n "$runpath_var" && test -n "$perm_rpath"; then + # We should set the runpath_var. + rpath= + for dir in $perm_rpath; do + func_append rpath "$dir:" + done + eval "$runpath_var='$rpath\$$runpath_var'; export $runpath_var" + fi + test -n "$dep_rpath" && deplibs="$dep_rpath $deplibs" + fi + + shlibpath="$finalize_shlibpath" + test "$opt_mode" != relink && shlibpath="$compile_shlibpath$shlibpath" + if test -n "$shlibpath"; then + eval "$shlibpath_var='$shlibpath\$$shlibpath_var'; export $shlibpath_var" + fi + + # Get the real and link names of the library. + eval shared_ext=\"$shrext_cmds\" + eval library_names=\"$library_names_spec\" + set dummy $library_names + shift + realname="$1" + shift + + if test -n "$soname_spec"; then + eval soname=\"$soname_spec\" + else + soname="$realname" + fi + if test -z "$dlname"; then + dlname=$soname + fi + + lib="$output_objdir/$realname" + linknames= + for link + do + func_append linknames " $link" + done + + # Use standard objects if they are pic + test -z "$pic_flag" && libobjs=`$ECHO "$libobjs" | $SP2NL | $SED "$lo2o" | $NL2SP` + test "X$libobjs" = "X " && libobjs= + + delfiles= + if test -n "$export_symbols" && test -n "$include_expsyms"; then + $opt_dry_run || cp "$export_symbols" "$output_objdir/$libname.uexp" + export_symbols="$output_objdir/$libname.uexp" + func_append delfiles " $export_symbols" + fi + + orig_export_symbols= + case $host_os in + cygwin* | mingw* | cegcc*) + if test -n "$export_symbols" && test -z "$export_symbols_regex"; then + # exporting using user supplied symfile + if test "x`$SED 1q $export_symbols`" != xEXPORTS; then + # and it's NOT already a .def file. Must figure out + # which of the given symbols are data symbols and tag + # them as such. So, trigger use of export_symbols_cmds. + # export_symbols gets reassigned inside the "prepare + # the list of exported symbols" if statement, so the + # include_expsyms logic still works. + orig_export_symbols="$export_symbols" + export_symbols= + always_export_symbols=yes + fi + fi + ;; + esac + + # Prepare the list of exported symbols + if test -z "$export_symbols"; then + if test "$always_export_symbols" = yes || test -n "$export_symbols_regex"; then + func_verbose "generating symbol list for \`$libname.la'" + export_symbols="$output_objdir/$libname.exp" + $opt_dry_run || $RM $export_symbols + cmds=$export_symbols_cmds + save_ifs="$IFS"; IFS='~' + for cmd1 in $cmds; do + IFS="$save_ifs" + # Take the normal branch if the nm_file_list_spec branch + # doesn't work or if tool conversion is not needed. + case $nm_file_list_spec~$to_tool_file_cmd in + *~func_convert_file_noop | *~func_convert_file_msys_to_w32 | ~*) + try_normal_branch=yes + eval cmd=\"$cmd1\" + func_len " $cmd" + len=$func_len_result + ;; + *) + try_normal_branch=no + ;; + esac + if test "$try_normal_branch" = yes \ + && { test "$len" -lt "$max_cmd_len" \ + || test "$max_cmd_len" -le -1; } + then + func_show_eval "$cmd" 'exit $?' + skipped_export=false + elif test -n "$nm_file_list_spec"; then + func_basename "$output" + output_la=$func_basename_result + save_libobjs=$libobjs + save_output=$output + output=${output_objdir}/${output_la}.nm + func_to_tool_file "$output" + libobjs=$nm_file_list_spec$func_to_tool_file_result + func_append delfiles " $output" + func_verbose "creating $NM input file list: $output" + for obj in $save_libobjs; do + func_to_tool_file "$obj" + $ECHO "$func_to_tool_file_result" + done > "$output" + eval cmd=\"$cmd1\" + func_show_eval "$cmd" 'exit $?' + output=$save_output + libobjs=$save_libobjs + skipped_export=false + else + # The command line is too long to execute in one step. + func_verbose "using reloadable object file for export list..." + skipped_export=: + # Break out early, otherwise skipped_export may be + # set to false by a later but shorter cmd. + break + fi + done + IFS="$save_ifs" + if test -n "$export_symbols_regex" && test "X$skipped_export" != "X:"; then + func_show_eval '$EGREP -e "$export_symbols_regex" "$export_symbols" > "${export_symbols}T"' + func_show_eval '$MV "${export_symbols}T" "$export_symbols"' + fi + fi + fi + + if test -n "$export_symbols" && test -n "$include_expsyms"; then + tmp_export_symbols="$export_symbols" + test -n "$orig_export_symbols" && tmp_export_symbols="$orig_export_symbols" + $opt_dry_run || eval '$ECHO "$include_expsyms" | $SP2NL >> "$tmp_export_symbols"' + fi + + if test "X$skipped_export" != "X:" && test -n "$orig_export_symbols"; then + # The given exports_symbols file has to be filtered, so filter it. + func_verbose "filter symbol list for \`$libname.la' to tag DATA exports" + # FIXME: $output_objdir/$libname.filter potentially contains lots of + # 's' commands which not all seds can handle. GNU sed should be fine + # though. Also, the filter scales superlinearly with the number of + # global variables. join(1) would be nice here, but unfortunately + # isn't a blessed tool. + $opt_dry_run || $SED -e '/[ ,]DATA/!d;s,\(.*\)\([ \,].*\),s|^\1$|\1\2|,' < $export_symbols > $output_objdir/$libname.filter + func_append delfiles " $export_symbols $output_objdir/$libname.filter" + export_symbols=$output_objdir/$libname.def + $opt_dry_run || $SED -f $output_objdir/$libname.filter < $orig_export_symbols > $export_symbols + fi + + tmp_deplibs= + for test_deplib in $deplibs; do + case " $convenience " in + *" $test_deplib "*) ;; + *) + func_append tmp_deplibs " $test_deplib" + ;; + esac + done + deplibs="$tmp_deplibs" + + if test -n "$convenience"; then + if test -n "$whole_archive_flag_spec" && + test "$compiler_needs_object" = yes && + test -z "$libobjs"; then + # extract the archives, so we have objects to list. + # TODO: could optimize this to just extract one archive. + whole_archive_flag_spec= + fi + if test -n "$whole_archive_flag_spec"; then + save_libobjs=$libobjs + eval libobjs=\"\$libobjs $whole_archive_flag_spec\" + test "X$libobjs" = "X " && libobjs= + else + gentop="$output_objdir/${outputname}x" + func_append generated " $gentop" + + func_extract_archives $gentop $convenience + func_append libobjs " $func_extract_archives_result" + test "X$libobjs" = "X " && libobjs= + fi + fi + + if test "$thread_safe" = yes && test -n "$thread_safe_flag_spec"; then + eval flag=\"$thread_safe_flag_spec\" + func_append linker_flags " $flag" + fi + + # Make a backup of the uninstalled library when relinking + if test "$opt_mode" = relink; then + $opt_dry_run || eval '(cd $output_objdir && $RM ${realname}U && $MV $realname ${realname}U)' || exit $? + fi + + # Do each of the archive commands. + if test "$module" = yes && test -n "$module_cmds" ; then + if test -n "$export_symbols" && test -n "$module_expsym_cmds"; then + eval test_cmds=\"$module_expsym_cmds\" + cmds=$module_expsym_cmds + else + eval test_cmds=\"$module_cmds\" + cmds=$module_cmds + fi + else + if test -n "$export_symbols" && test -n "$archive_expsym_cmds"; then + eval test_cmds=\"$archive_expsym_cmds\" + cmds=$archive_expsym_cmds + else + eval test_cmds=\"$archive_cmds\" + cmds=$archive_cmds + fi + fi + + if test "X$skipped_export" != "X:" && + func_len " $test_cmds" && + len=$func_len_result && + test "$len" -lt "$max_cmd_len" || test "$max_cmd_len" -le -1; then + : + else + # The command line is too long to link in one step, link piecewise + # or, if using GNU ld and skipped_export is not :, use a linker + # script. + + # Save the value of $output and $libobjs because we want to + # use them later. If we have whole_archive_flag_spec, we + # want to use save_libobjs as it was before + # whole_archive_flag_spec was expanded, because we can't + # assume the linker understands whole_archive_flag_spec. + # This may have to be revisited, in case too many + # convenience libraries get linked in and end up exceeding + # the spec. + if test -z "$convenience" || test -z "$whole_archive_flag_spec"; then + save_libobjs=$libobjs + fi + save_output=$output + func_basename "$output" + output_la=$func_basename_result + + # Clear the reloadable object creation command queue and + # initialize k to one. + test_cmds= + concat_cmds= + objlist= + last_robj= + k=1 + + if test -n "$save_libobjs" && test "X$skipped_export" != "X:" && test "$with_gnu_ld" = yes; then + output=${output_objdir}/${output_la}.lnkscript + func_verbose "creating GNU ld script: $output" + echo 'INPUT (' > $output + for obj in $save_libobjs + do + func_to_tool_file "$obj" + $ECHO "$func_to_tool_file_result" >> $output + done + echo ')' >> $output + func_append delfiles " $output" + func_to_tool_file "$output" + output=$func_to_tool_file_result + elif test -n "$save_libobjs" && test "X$skipped_export" != "X:" && test "X$file_list_spec" != X; then + output=${output_objdir}/${output_la}.lnk + func_verbose "creating linker input file list: $output" + : > $output + set x $save_libobjs + shift + firstobj= + if test "$compiler_needs_object" = yes; then + firstobj="$1 " + shift + fi + for obj + do + func_to_tool_file "$obj" + $ECHO "$func_to_tool_file_result" >> $output + done + func_append delfiles " $output" + func_to_tool_file "$output" + output=$firstobj\"$file_list_spec$func_to_tool_file_result\" + else + if test -n "$save_libobjs"; then + func_verbose "creating reloadable object files..." + output=$output_objdir/$output_la-${k}.$objext + eval test_cmds=\"$reload_cmds\" + func_len " $test_cmds" + len0=$func_len_result + len=$len0 + + # Loop over the list of objects to be linked. + for obj in $save_libobjs + do + func_len " $obj" + func_arith $len + $func_len_result + len=$func_arith_result + if test "X$objlist" = X || + test "$len" -lt "$max_cmd_len"; then + func_append objlist " $obj" + else + # The command $test_cmds is almost too long, add a + # command to the queue. + if test "$k" -eq 1 ; then + # The first file doesn't have a previous command to add. + reload_objs=$objlist + eval concat_cmds=\"$reload_cmds\" + else + # All subsequent reloadable object files will link in + # the last one created. + reload_objs="$objlist $last_robj" + eval concat_cmds=\"\$concat_cmds~$reload_cmds~\$RM $last_robj\" + fi + last_robj=$output_objdir/$output_la-${k}.$objext + func_arith $k + 1 + k=$func_arith_result + output=$output_objdir/$output_la-${k}.$objext + objlist=" $obj" + func_len " $last_robj" + func_arith $len0 + $func_len_result + len=$func_arith_result + fi + done + # Handle the remaining objects by creating one last + # reloadable object file. All subsequent reloadable object + # files will link in the last one created. + test -z "$concat_cmds" || concat_cmds=$concat_cmds~ + reload_objs="$objlist $last_robj" + eval concat_cmds=\"\${concat_cmds}$reload_cmds\" + if test -n "$last_robj"; then + eval concat_cmds=\"\${concat_cmds}~\$RM $last_robj\" + fi + func_append delfiles " $output" + + else + output= + fi + + if ${skipped_export-false}; then + func_verbose "generating symbol list for \`$libname.la'" + export_symbols="$output_objdir/$libname.exp" + $opt_dry_run || $RM $export_symbols + libobjs=$output + # Append the command to create the export file. + test -z "$concat_cmds" || concat_cmds=$concat_cmds~ + eval concat_cmds=\"\$concat_cmds$export_symbols_cmds\" + if test -n "$last_robj"; then + eval concat_cmds=\"\$concat_cmds~\$RM $last_robj\" + fi + fi + + test -n "$save_libobjs" && + func_verbose "creating a temporary reloadable object file: $output" + + # Loop through the commands generated above and execute them. + save_ifs="$IFS"; IFS='~' + for cmd in $concat_cmds; do + IFS="$save_ifs" + $opt_silent || { + func_quote_for_expand "$cmd" + eval "func_echo $func_quote_for_expand_result" + } + $opt_dry_run || eval "$cmd" || { + lt_exit=$? + + # Restore the uninstalled library and exit + if test "$opt_mode" = relink; then + ( cd "$output_objdir" && \ + $RM "${realname}T" && \ + $MV "${realname}U" "$realname" ) + fi + + exit $lt_exit + } + done + IFS="$save_ifs" + + if test -n "$export_symbols_regex" && ${skipped_export-false}; then + func_show_eval '$EGREP -e "$export_symbols_regex" "$export_symbols" > "${export_symbols}T"' + func_show_eval '$MV "${export_symbols}T" "$export_symbols"' + fi + fi + + if ${skipped_export-false}; then + if test -n "$export_symbols" && test -n "$include_expsyms"; then + tmp_export_symbols="$export_symbols" + test -n "$orig_export_symbols" && tmp_export_symbols="$orig_export_symbols" + $opt_dry_run || eval '$ECHO "$include_expsyms" | $SP2NL >> "$tmp_export_symbols"' + fi + + if test -n "$orig_export_symbols"; then + # The given exports_symbols file has to be filtered, so filter it. + func_verbose "filter symbol list for \`$libname.la' to tag DATA exports" + # FIXME: $output_objdir/$libname.filter potentially contains lots of + # 's' commands which not all seds can handle. GNU sed should be fine + # though. Also, the filter scales superlinearly with the number of + # global variables. join(1) would be nice here, but unfortunately + # isn't a blessed tool. + $opt_dry_run || $SED -e '/[ ,]DATA/!d;s,\(.*\)\([ \,].*\),s|^\1$|\1\2|,' < $export_symbols > $output_objdir/$libname.filter + func_append delfiles " $export_symbols $output_objdir/$libname.filter" + export_symbols=$output_objdir/$libname.def + $opt_dry_run || $SED -f $output_objdir/$libname.filter < $orig_export_symbols > $export_symbols + fi + fi + + libobjs=$output + # Restore the value of output. + output=$save_output + + if test -n "$convenience" && test -n "$whole_archive_flag_spec"; then + eval libobjs=\"\$libobjs $whole_archive_flag_spec\" + test "X$libobjs" = "X " && libobjs= + fi + # Expand the library linking commands again to reset the + # value of $libobjs for piecewise linking. + + # Do each of the archive commands. + if test "$module" = yes && test -n "$module_cmds" ; then + if test -n "$export_symbols" && test -n "$module_expsym_cmds"; then + cmds=$module_expsym_cmds + else + cmds=$module_cmds + fi + else + if test -n "$export_symbols" && test -n "$archive_expsym_cmds"; then + cmds=$archive_expsym_cmds + else + cmds=$archive_cmds + fi + fi + fi + + if test -n "$delfiles"; then + # Append the command to remove temporary files to $cmds. + eval cmds=\"\$cmds~\$RM $delfiles\" + fi + + # Add any objects from preloaded convenience libraries + if test -n "$dlprefiles"; then + gentop="$output_objdir/${outputname}x" + func_append generated " $gentop" + + func_extract_archives $gentop $dlprefiles + func_append libobjs " $func_extract_archives_result" + test "X$libobjs" = "X " && libobjs= + fi + + save_ifs="$IFS"; IFS='~' + for cmd in $cmds; do + IFS="$save_ifs" + eval cmd=\"$cmd\" + $opt_silent || { + func_quote_for_expand "$cmd" + eval "func_echo $func_quote_for_expand_result" + } + $opt_dry_run || eval "$cmd" || { + lt_exit=$? + + # Restore the uninstalled library and exit + if test "$opt_mode" = relink; then + ( cd "$output_objdir" && \ + $RM "${realname}T" && \ + $MV "${realname}U" "$realname" ) + fi + + exit $lt_exit + } + done + IFS="$save_ifs" + + # Restore the uninstalled library and exit + if test "$opt_mode" = relink; then + $opt_dry_run || eval '(cd $output_objdir && $RM ${realname}T && $MV $realname ${realname}T && $MV ${realname}U $realname)' || exit $? + + if test -n "$convenience"; then + if test -z "$whole_archive_flag_spec"; then + func_show_eval '${RM}r "$gentop"' + fi + fi + + exit $EXIT_SUCCESS + fi + + # Create links to the real library. + for linkname in $linknames; do + if test "$realname" != "$linkname"; then + func_show_eval '(cd "$output_objdir" && $RM "$linkname" && $LN_S "$realname" "$linkname")' 'exit $?' + fi + done + + # If -module or -export-dynamic was specified, set the dlname. + if test "$module" = yes || test "$export_dynamic" = yes; then + # On all known operating systems, these are identical. + dlname="$soname" + fi + fi + ;; + + obj) + if test -n "$dlfiles$dlprefiles" || test "$dlself" != no; then + func_warning "\`-dlopen' is ignored for objects" + fi + + case " $deplibs" in + *\ -l* | *\ -L*) + func_warning "\`-l' and \`-L' are ignored for objects" ;; + esac + + test -n "$rpath" && \ + func_warning "\`-rpath' is ignored for objects" + + test -n "$xrpath" && \ + func_warning "\`-R' is ignored for objects" + + test -n "$vinfo" && \ + func_warning "\`-version-info' is ignored for objects" + + test -n "$release" && \ + func_warning "\`-release' is ignored for objects" + + case $output in + *.lo) + test -n "$objs$old_deplibs" && \ + func_fatal_error "cannot build library object \`$output' from non-libtool objects" + + libobj=$output + func_lo2o "$libobj" + obj=$func_lo2o_result + ;; + *) + libobj= + obj="$output" + ;; + esac + + # Delete the old objects. + $opt_dry_run || $RM $obj $libobj + + # Objects from convenience libraries. This assumes + # single-version convenience libraries. Whenever we create + # different ones for PIC/non-PIC, this we'll have to duplicate + # the extraction. + reload_conv_objs= + gentop= + # reload_cmds runs $LD directly, so let us get rid of + # -Wl from whole_archive_flag_spec and hope we can get by with + # turning comma into space.. + wl= + + if test -n "$convenience"; then + if test -n "$whole_archive_flag_spec"; then + eval tmp_whole_archive_flags=\"$whole_archive_flag_spec\" + reload_conv_objs=$reload_objs\ `$ECHO "$tmp_whole_archive_flags" | $SED 's|,| |g'` + else + gentop="$output_objdir/${obj}x" + func_append generated " $gentop" + + func_extract_archives $gentop $convenience + reload_conv_objs="$reload_objs $func_extract_archives_result" + fi + fi + + # If we're not building shared, we need to use non_pic_objs + test "$build_libtool_libs" != yes && libobjs="$non_pic_objects" + + # Create the old-style object. + reload_objs="$objs$old_deplibs "`$ECHO "$libobjs" | $SP2NL | $SED "/\.${libext}$/d; /\.lib$/d; $lo2o" | $NL2SP`" $reload_conv_objs" ### testsuite: skip nested quoting test + + output="$obj" + func_execute_cmds "$reload_cmds" 'exit $?' + + # Exit if we aren't doing a library object file. + if test -z "$libobj"; then + if test -n "$gentop"; then + func_show_eval '${RM}r "$gentop"' + fi + + exit $EXIT_SUCCESS + fi + + if test "$build_libtool_libs" != yes; then + if test -n "$gentop"; then + func_show_eval '${RM}r "$gentop"' + fi + + # Create an invalid libtool object if no PIC, so that we don't + # accidentally link it into a program. + # $show "echo timestamp > $libobj" + # $opt_dry_run || eval "echo timestamp > $libobj" || exit $? + exit $EXIT_SUCCESS + fi + + if test -n "$pic_flag" || test "$pic_mode" != default; then + # Only do commands if we really have different PIC objects. + reload_objs="$libobjs $reload_conv_objs" + output="$libobj" + func_execute_cmds "$reload_cmds" 'exit $?' + fi + + if test -n "$gentop"; then + func_show_eval '${RM}r "$gentop"' + fi + + exit $EXIT_SUCCESS + ;; + + prog) + case $host in + *cygwin*) func_stripname '' '.exe' "$output" + output=$func_stripname_result.exe;; + esac + test -n "$vinfo" && \ + func_warning "\`-version-info' is ignored for programs" + + test -n "$release" && \ + func_warning "\`-release' is ignored for programs" + + test "$preload" = yes \ + && test "$dlopen_support" = unknown \ + && test "$dlopen_self" = unknown \ + && test "$dlopen_self_static" = unknown && \ + func_warning "\`LT_INIT([dlopen])' not used. Assuming no dlopen support." + + case $host in + *-*-rhapsody* | *-*-darwin1.[012]) + # On Rhapsody replace the C library is the System framework + compile_deplibs=`$ECHO " $compile_deplibs" | $SED 's/ -lc / System.ltframework /'` + finalize_deplibs=`$ECHO " $finalize_deplibs" | $SED 's/ -lc / System.ltframework /'` + ;; + esac + + case $host in + *-*-darwin*) + # Don't allow lazy linking, it breaks C++ global constructors + # But is supposedly fixed on 10.4 or later (yay!). + if test "$tagname" = CXX ; then + case ${MACOSX_DEPLOYMENT_TARGET-10.0} in + 10.[0123]) + func_append compile_command " ${wl}-bind_at_load" + func_append finalize_command " ${wl}-bind_at_load" + ;; + esac + fi + # Time to change all our "foo.ltframework" stuff back to "-framework foo" + compile_deplibs=`$ECHO " $compile_deplibs" | $SED 's% \([^ $]*\).ltframework% -framework \1%g'` + finalize_deplibs=`$ECHO " $finalize_deplibs" | $SED 's% \([^ $]*\).ltframework% -framework \1%g'` + ;; + esac + + + # move library search paths that coincide with paths to not yet + # installed libraries to the beginning of the library search list + new_libs= + for path in $notinst_path; do + case " $new_libs " in + *" -L$path/$objdir "*) ;; + *) + case " $compile_deplibs " in + *" -L$path/$objdir "*) + func_append new_libs " -L$path/$objdir" ;; + esac + ;; + esac + done + for deplib in $compile_deplibs; do + case $deplib in + -L*) + case " $new_libs " in + *" $deplib "*) ;; + *) func_append new_libs " $deplib" ;; + esac + ;; + *) func_append new_libs " $deplib" ;; + esac + done + compile_deplibs="$new_libs" + + + func_append compile_command " $compile_deplibs" + func_append finalize_command " $finalize_deplibs" + + if test -n "$rpath$xrpath"; then + # If the user specified any rpath flags, then add them. + for libdir in $rpath $xrpath; do + # This is the magic to use -rpath. + case "$finalize_rpath " in + *" $libdir "*) ;; + *) func_append finalize_rpath " $libdir" ;; + esac + done + fi + + # Now hardcode the library paths + rpath= + hardcode_libdirs= + for libdir in $compile_rpath $finalize_rpath; do + if test -n "$hardcode_libdir_flag_spec"; then + if test -n "$hardcode_libdir_separator"; then + if test -z "$hardcode_libdirs"; then + hardcode_libdirs="$libdir" + else + # Just accumulate the unique libdirs. + case $hardcode_libdir_separator$hardcode_libdirs$hardcode_libdir_separator in + *"$hardcode_libdir_separator$libdir$hardcode_libdir_separator"*) + ;; + *) + func_append hardcode_libdirs "$hardcode_libdir_separator$libdir" + ;; + esac + fi + else + eval flag=\"$hardcode_libdir_flag_spec\" + func_append rpath " $flag" + fi + elif test -n "$runpath_var"; then + case "$perm_rpath " in + *" $libdir "*) ;; + *) func_append perm_rpath " $libdir" ;; + esac + fi + case $host in + *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2* | *-cegcc*) + testbindir=`${ECHO} "$libdir" | ${SED} -e 's*/lib$*/bin*'` + case :$dllsearchpath: in + *":$libdir:"*) ;; + ::) dllsearchpath=$libdir;; + *) func_append dllsearchpath ":$libdir";; + esac + case :$dllsearchpath: in + *":$testbindir:"*) ;; + ::) dllsearchpath=$testbindir;; + *) func_append dllsearchpath ":$testbindir";; + esac + ;; + esac + done + # Substitute the hardcoded libdirs into the rpath. + if test -n "$hardcode_libdir_separator" && + test -n "$hardcode_libdirs"; then + libdir="$hardcode_libdirs" + eval rpath=\" $hardcode_libdir_flag_spec\" + fi + compile_rpath="$rpath" + + rpath= + hardcode_libdirs= + for libdir in $finalize_rpath; do + if test -n "$hardcode_libdir_flag_spec"; then + if test -n "$hardcode_libdir_separator"; then + if test -z "$hardcode_libdirs"; then + hardcode_libdirs="$libdir" + else + # Just accumulate the unique libdirs. + case $hardcode_libdir_separator$hardcode_libdirs$hardcode_libdir_separator in + *"$hardcode_libdir_separator$libdir$hardcode_libdir_separator"*) + ;; + *) + func_append hardcode_libdirs "$hardcode_libdir_separator$libdir" + ;; + esac + fi + else + eval flag=\"$hardcode_libdir_flag_spec\" + func_append rpath " $flag" + fi + elif test -n "$runpath_var"; then + case "$finalize_perm_rpath " in + *" $libdir "*) ;; + *) func_append finalize_perm_rpath " $libdir" ;; + esac + fi + done + # Substitute the hardcoded libdirs into the rpath. + if test -n "$hardcode_libdir_separator" && + test -n "$hardcode_libdirs"; then + libdir="$hardcode_libdirs" + eval rpath=\" $hardcode_libdir_flag_spec\" + fi + finalize_rpath="$rpath" + + if test -n "$libobjs" && test "$build_old_libs" = yes; then + # Transform all the library objects into standard objects. + compile_command=`$ECHO "$compile_command" | $SP2NL | $SED "$lo2o" | $NL2SP` + finalize_command=`$ECHO "$finalize_command" | $SP2NL | $SED "$lo2o" | $NL2SP` + fi + + func_generate_dlsyms "$outputname" "@PROGRAM@" "no" + + # template prelinking step + if test -n "$prelink_cmds"; then + func_execute_cmds "$prelink_cmds" 'exit $?' + fi + + wrappers_required=yes + case $host in + *cegcc* | *mingw32ce*) + # Disable wrappers for cegcc and mingw32ce hosts, we are cross compiling anyway. + wrappers_required=no + ;; + *cygwin* | *mingw* ) + if test "$build_libtool_libs" != yes; then + wrappers_required=no + fi + ;; + *) + if test "$need_relink" = no || test "$build_libtool_libs" != yes; then + wrappers_required=no + fi + ;; + esac + if test "$wrappers_required" = no; then + # Replace the output file specification. + compile_command=`$ECHO "$compile_command" | $SED 's%@OUTPUT@%'"$output"'%g'` + link_command="$compile_command$compile_rpath" + + # We have no uninstalled library dependencies, so finalize right now. + exit_status=0 + func_show_eval "$link_command" 'exit_status=$?' + + if test -n "$postlink_cmds"; then + func_to_tool_file "$output" + postlink_cmds=`func_echo_all "$postlink_cmds" | $SED -e 's%@OUTPUT@%'"$output"'%g' -e 's%@TOOL_OUTPUT@%'"$func_to_tool_file_result"'%g'` + func_execute_cmds "$postlink_cmds" 'exit $?' + fi + + # Delete the generated files. + if test -f "$output_objdir/${outputname}S.${objext}"; then + func_show_eval '$RM "$output_objdir/${outputname}S.${objext}"' + fi + + exit $exit_status + fi + + if test -n "$compile_shlibpath$finalize_shlibpath"; then + compile_command="$shlibpath_var=\"$compile_shlibpath$finalize_shlibpath\$$shlibpath_var\" $compile_command" + fi + if test -n "$finalize_shlibpath"; then + finalize_command="$shlibpath_var=\"$finalize_shlibpath\$$shlibpath_var\" $finalize_command" + fi + + compile_var= + finalize_var= + if test -n "$runpath_var"; then + if test -n "$perm_rpath"; then + # We should set the runpath_var. + rpath= + for dir in $perm_rpath; do + func_append rpath "$dir:" + done + compile_var="$runpath_var=\"$rpath\$$runpath_var\" " + fi + if test -n "$finalize_perm_rpath"; then + # We should set the runpath_var. + rpath= + for dir in $finalize_perm_rpath; do + func_append rpath "$dir:" + done + finalize_var="$runpath_var=\"$rpath\$$runpath_var\" " + fi + fi + + if test "$no_install" = yes; then + # We don't need to create a wrapper script. + link_command="$compile_var$compile_command$compile_rpath" + # Replace the output file specification. + link_command=`$ECHO "$link_command" | $SED 's%@OUTPUT@%'"$output"'%g'` + # Delete the old output file. + $opt_dry_run || $RM $output + # Link the executable and exit + func_show_eval "$link_command" 'exit $?' + + if test -n "$postlink_cmds"; then + func_to_tool_file "$output" + postlink_cmds=`func_echo_all "$postlink_cmds" | $SED -e 's%@OUTPUT@%'"$output"'%g' -e 's%@TOOL_OUTPUT@%'"$func_to_tool_file_result"'%g'` + func_execute_cmds "$postlink_cmds" 'exit $?' + fi + + exit $EXIT_SUCCESS + fi + + if test "$hardcode_action" = relink; then + # Fast installation is not supported + link_command="$compile_var$compile_command$compile_rpath" + relink_command="$finalize_var$finalize_command$finalize_rpath" + + func_warning "this platform does not like uninstalled shared libraries" + func_warning "\`$output' will be relinked during installation" + else + if test "$fast_install" != no; then + link_command="$finalize_var$compile_command$finalize_rpath" + if test "$fast_install" = yes; then + relink_command=`$ECHO "$compile_var$compile_command$compile_rpath" | $SED 's%@OUTPUT@%\$progdir/\$file%g'` + else + # fast_install is set to needless + relink_command= + fi + else + link_command="$compile_var$compile_command$compile_rpath" + relink_command="$finalize_var$finalize_command$finalize_rpath" + fi + fi + + # Replace the output file specification. + link_command=`$ECHO "$link_command" | $SED 's%@OUTPUT@%'"$output_objdir/$outputname"'%g'` + + # Delete the old output files. + $opt_dry_run || $RM $output $output_objdir/$outputname $output_objdir/lt-$outputname + + func_show_eval "$link_command" 'exit $?' + + if test -n "$postlink_cmds"; then + func_to_tool_file "$output_objdir/$outputname" + postlink_cmds=`func_echo_all "$postlink_cmds" | $SED -e 's%@OUTPUT@%'"$output_objdir/$outputname"'%g' -e 's%@TOOL_OUTPUT@%'"$func_to_tool_file_result"'%g'` + func_execute_cmds "$postlink_cmds" 'exit $?' + fi + + # Now create the wrapper script. + func_verbose "creating $output" + + # Quote the relink command for shipping. + if test -n "$relink_command"; then + # Preserve any variables that may affect compiler behavior + for var in $variables_saved_for_relink; do + if eval test -z \"\${$var+set}\"; then + relink_command="{ test -z \"\${$var+set}\" || $lt_unset $var || { $var=; export $var; }; }; $relink_command" + elif eval var_value=\$$var; test -z "$var_value"; then + relink_command="$var=; export $var; $relink_command" + else + func_quote_for_eval "$var_value" + relink_command="$var=$func_quote_for_eval_result; export $var; $relink_command" + fi + done + relink_command="(cd `pwd`; $relink_command)" + relink_command=`$ECHO "$relink_command" | $SED "$sed_quote_subst"` + fi + + # Only actually do things if not in dry run mode. + $opt_dry_run || { + # win32 will think the script is a binary if it has + # a .exe suffix, so we strip it off here. + case $output in + *.exe) func_stripname '' '.exe' "$output" + output=$func_stripname_result ;; + esac + # test for cygwin because mv fails w/o .exe extensions + case $host in + *cygwin*) + exeext=.exe + func_stripname '' '.exe' "$outputname" + outputname=$func_stripname_result ;; + *) exeext= ;; + esac + case $host in + *cygwin* | *mingw* ) + func_dirname_and_basename "$output" "" "." + output_name=$func_basename_result + output_path=$func_dirname_result + cwrappersource="$output_path/$objdir/lt-$output_name.c" + cwrapper="$output_path/$output_name.exe" + $RM $cwrappersource $cwrapper + trap "$RM $cwrappersource $cwrapper; exit $EXIT_FAILURE" 1 2 15 + + func_emit_cwrapperexe_src > $cwrappersource + + # The wrapper executable is built using the $host compiler, + # because it contains $host paths and files. If cross- + # compiling, it, like the target executable, must be + # executed on the $host or under an emulation environment. + $opt_dry_run || { + $LTCC $LTCFLAGS -o $cwrapper $cwrappersource + $STRIP $cwrapper + } + + # Now, create the wrapper script for func_source use: + func_ltwrapper_scriptname $cwrapper + $RM $func_ltwrapper_scriptname_result + trap "$RM $func_ltwrapper_scriptname_result; exit $EXIT_FAILURE" 1 2 15 + $opt_dry_run || { + # note: this script will not be executed, so do not chmod. + if test "x$build" = "x$host" ; then + $cwrapper --lt-dump-script > $func_ltwrapper_scriptname_result + else + func_emit_wrapper no > $func_ltwrapper_scriptname_result + fi + } + ;; + * ) + $RM $output + trap "$RM $output; exit $EXIT_FAILURE" 1 2 15 + + func_emit_wrapper no > $output + chmod +x $output + ;; + esac + } + exit $EXIT_SUCCESS + ;; + esac + + # See if we need to build an old-fashioned archive. + for oldlib in $oldlibs; do + + if test "$build_libtool_libs" = convenience; then + oldobjs="$libobjs_save $symfileobj" + addlibs="$convenience" + build_libtool_libs=no + else + if test "$build_libtool_libs" = module; then + oldobjs="$libobjs_save" + build_libtool_libs=no + else + oldobjs="$old_deplibs $non_pic_objects" + if test "$preload" = yes && test -f "$symfileobj"; then + func_append oldobjs " $symfileobj" + fi + fi + addlibs="$old_convenience" + fi + + if test -n "$addlibs"; then + gentop="$output_objdir/${outputname}x" + func_append generated " $gentop" + + func_extract_archives $gentop $addlibs + func_append oldobjs " $func_extract_archives_result" + fi + + # Do each command in the archive commands. + if test -n "$old_archive_from_new_cmds" && test "$build_libtool_libs" = yes; then + cmds=$old_archive_from_new_cmds + else + + # Add any objects from preloaded convenience libraries + if test -n "$dlprefiles"; then + gentop="$output_objdir/${outputname}x" + func_append generated " $gentop" + + func_extract_archives $gentop $dlprefiles + func_append oldobjs " $func_extract_archives_result" + fi + + # POSIX demands no paths to be encoded in archives. We have + # to avoid creating archives with duplicate basenames if we + # might have to extract them afterwards, e.g., when creating a + # static archive out of a convenience library, or when linking + # the entirety of a libtool archive into another (currently + # not supported by libtool). + if (for obj in $oldobjs + do + func_basename "$obj" + $ECHO "$func_basename_result" + done | sort | sort -uc >/dev/null 2>&1); then + : + else + echo "copying selected object files to avoid basename conflicts..." + gentop="$output_objdir/${outputname}x" + func_append generated " $gentop" + func_mkdir_p "$gentop" + save_oldobjs=$oldobjs + oldobjs= + counter=1 + for obj in $save_oldobjs + do + func_basename "$obj" + objbase="$func_basename_result" + case " $oldobjs " in + " ") oldobjs=$obj ;; + *[\ /]"$objbase "*) + while :; do + # Make sure we don't pick an alternate name that also + # overlaps. + newobj=lt$counter-$objbase + func_arith $counter + 1 + counter=$func_arith_result + case " $oldobjs " in + *[\ /]"$newobj "*) ;; + *) if test ! -f "$gentop/$newobj"; then break; fi ;; + esac + done + func_show_eval "ln $obj $gentop/$newobj || cp $obj $gentop/$newobj" + func_append oldobjs " $gentop/$newobj" + ;; + *) func_append oldobjs " $obj" ;; + esac + done + fi + func_to_tool_file "$oldlib" func_convert_file_msys_to_w32 + tool_oldlib=$func_to_tool_file_result + eval cmds=\"$old_archive_cmds\" + + func_len " $cmds" + len=$func_len_result + if test "$len" -lt "$max_cmd_len" || test "$max_cmd_len" -le -1; then + cmds=$old_archive_cmds + elif test -n "$archiver_list_spec"; then + func_verbose "using command file archive linking..." + for obj in $oldobjs + do + func_to_tool_file "$obj" + $ECHO "$func_to_tool_file_result" + done > $output_objdir/$libname.libcmd + func_to_tool_file "$output_objdir/$libname.libcmd" + oldobjs=" $archiver_list_spec$func_to_tool_file_result" + cmds=$old_archive_cmds + else + # the command line is too long to link in one step, link in parts + func_verbose "using piecewise archive linking..." + save_RANLIB=$RANLIB + RANLIB=: + objlist= + concat_cmds= + save_oldobjs=$oldobjs + oldobjs= + # Is there a better way of finding the last object in the list? + for obj in $save_oldobjs + do + last_oldobj=$obj + done + eval test_cmds=\"$old_archive_cmds\" + func_len " $test_cmds" + len0=$func_len_result + len=$len0 + for obj in $save_oldobjs + do + func_len " $obj" + func_arith $len + $func_len_result + len=$func_arith_result + func_append objlist " $obj" + if test "$len" -lt "$max_cmd_len"; then + : + else + # the above command should be used before it gets too long + oldobjs=$objlist + if test "$obj" = "$last_oldobj" ; then + RANLIB=$save_RANLIB + fi + test -z "$concat_cmds" || concat_cmds=$concat_cmds~ + eval concat_cmds=\"\${concat_cmds}$old_archive_cmds\" + objlist= + len=$len0 + fi + done + RANLIB=$save_RANLIB + oldobjs=$objlist + if test "X$oldobjs" = "X" ; then + eval cmds=\"\$concat_cmds\" + else + eval cmds=\"\$concat_cmds~\$old_archive_cmds\" + fi + fi + fi + func_execute_cmds "$cmds" 'exit $?' + done + + test -n "$generated" && \ + func_show_eval "${RM}r$generated" + + # Now create the libtool archive. + case $output in + *.la) + old_library= + test "$build_old_libs" = yes && old_library="$libname.$libext" + func_verbose "creating $output" + + # Preserve any variables that may affect compiler behavior + for var in $variables_saved_for_relink; do + if eval test -z \"\${$var+set}\"; then + relink_command="{ test -z \"\${$var+set}\" || $lt_unset $var || { $var=; export $var; }; }; $relink_command" + elif eval var_value=\$$var; test -z "$var_value"; then + relink_command="$var=; export $var; $relink_command" + else + func_quote_for_eval "$var_value" + relink_command="$var=$func_quote_for_eval_result; export $var; $relink_command" + fi + done + # Quote the link command for shipping. + relink_command="(cd `pwd`; $SHELL $progpath $preserve_args --mode=relink $libtool_args @inst_prefix_dir@)" + relink_command=`$ECHO "$relink_command" | $SED "$sed_quote_subst"` + if test "$hardcode_automatic" = yes ; then + relink_command= + fi + + # Only create the output if not a dry run. + $opt_dry_run || { + for installed in no yes; do + if test "$installed" = yes; then + if test -z "$install_libdir"; then + break + fi + output="$output_objdir/$outputname"i + # Replace all uninstalled libtool libraries with the installed ones + newdependency_libs= + for deplib in $dependency_libs; do + case $deplib in + *.la) + func_basename "$deplib" + name="$func_basename_result" + func_resolve_sysroot "$deplib" + eval libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $func_resolve_sysroot_result` + test -z "$libdir" && \ + func_fatal_error "\`$deplib' is not a valid libtool archive" + func_append newdependency_libs " ${lt_sysroot:+=}$libdir/$name" + ;; + -L*) + func_stripname -L '' "$deplib" + func_replace_sysroot "$func_stripname_result" + func_append newdependency_libs " -L$func_replace_sysroot_result" + ;; + -R*) + func_stripname -R '' "$deplib" + func_replace_sysroot "$func_stripname_result" + func_append newdependency_libs " -R$func_replace_sysroot_result" + ;; + *) func_append newdependency_libs " $deplib" ;; + esac + done + dependency_libs="$newdependency_libs" + newdlfiles= + + for lib in $dlfiles; do + case $lib in + *.la) + func_basename "$lib" + name="$func_basename_result" + eval libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $lib` + test -z "$libdir" && \ + func_fatal_error "\`$lib' is not a valid libtool archive" + func_append newdlfiles " ${lt_sysroot:+=}$libdir/$name" + ;; + *) func_append newdlfiles " $lib" ;; + esac + done + dlfiles="$newdlfiles" + newdlprefiles= + for lib in $dlprefiles; do + case $lib in + *.la) + # Only pass preopened files to the pseudo-archive (for + # eventual linking with the app. that links it) if we + # didn't already link the preopened objects directly into + # the library: + func_basename "$lib" + name="$func_basename_result" + eval libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $lib` + test -z "$libdir" && \ + func_fatal_error "\`$lib' is not a valid libtool archive" + func_append newdlprefiles " ${lt_sysroot:+=}$libdir/$name" + ;; + esac + done + dlprefiles="$newdlprefiles" + else + newdlfiles= + for lib in $dlfiles; do + case $lib in + [\\/]* | [A-Za-z]:[\\/]*) abs="$lib" ;; + *) abs=`pwd`"/$lib" ;; + esac + func_append newdlfiles " $abs" + done + dlfiles="$newdlfiles" + newdlprefiles= + for lib in $dlprefiles; do + case $lib in + [\\/]* | [A-Za-z]:[\\/]*) abs="$lib" ;; + *) abs=`pwd`"/$lib" ;; + esac + func_append newdlprefiles " $abs" + done + dlprefiles="$newdlprefiles" + fi + $RM $output + # place dlname in correct position for cygwin + # In fact, it would be nice if we could use this code for all target + # systems that can't hard-code library paths into their executables + # and that have no shared library path variable independent of PATH, + # but it turns out we can't easily determine that from inspecting + # libtool variables, so we have to hard-code the OSs to which it + # applies here; at the moment, that means platforms that use the PE + # object format with DLL files. See the long comment at the top of + # tests/bindir.at for full details. + tdlname=$dlname + case $host,$output,$installed,$module,$dlname in + *cygwin*,*lai,yes,no,*.dll | *mingw*,*lai,yes,no,*.dll | *cegcc*,*lai,yes,no,*.dll) + # If a -bindir argument was supplied, place the dll there. + if test "x$bindir" != x ; + then + func_relative_path "$install_libdir" "$bindir" + tdlname=$func_relative_path_result$dlname + else + # Otherwise fall back on heuristic. + tdlname=../bin/$dlname + fi + ;; + esac + $ECHO > $output "\ +# $outputname - a libtool library file +# Generated by $PROGRAM (GNU $PACKAGE$TIMESTAMP) $VERSION +# +# Please DO NOT delete this file! +# It is necessary for linking the library. + +# The name that we can dlopen(3). +dlname='$tdlname' + +# Names of this library. +library_names='$library_names' + +# The name of the static archive. +old_library='$old_library' + +# Linker flags that can not go in dependency_libs. +inherited_linker_flags='$new_inherited_linker_flags' + +# Libraries that this one depends upon. +dependency_libs='$dependency_libs' + +# Names of additional weak libraries provided by this library +weak_library_names='$weak_libs' + +# Version information for $libname. +current=$current +age=$age +revision=$revision + +# Is this an already installed library? +installed=$installed + +# Should we warn about portability when linking against -modules? +shouldnotlink=$module + +# Files to dlopen/dlpreopen +dlopen='$dlfiles' +dlpreopen='$dlprefiles' + +# Directory that this library needs to be installed in: +libdir='$install_libdir'" + if test "$installed" = no && test "$need_relink" = yes; then + $ECHO >> $output "\ +relink_command=\"$relink_command\"" + fi + done + } + + # Do a symbolic link so that the libtool archive can be found in + # LD_LIBRARY_PATH before the program is installed. + func_show_eval '( cd "$output_objdir" && $RM "$outputname" && $LN_S "../$outputname" "$outputname" )' 'exit $?' + ;; + esac + exit $EXIT_SUCCESS +} + +{ test "$opt_mode" = link || test "$opt_mode" = relink; } && + func_mode_link ${1+"$@"} + + +# func_mode_uninstall arg... +func_mode_uninstall () +{ + $opt_debug + RM="$nonopt" + files= + rmforce= + exit_status=0 + + # This variable tells wrapper scripts just to set variables rather + # than running their programs. + libtool_install_magic="$magic" + + for arg + do + case $arg in + -f) func_append RM " $arg"; rmforce=yes ;; + -*) func_append RM " $arg" ;; + *) func_append files " $arg" ;; + esac + done + + test -z "$RM" && \ + func_fatal_help "you must specify an RM program" + + rmdirs= + + for file in $files; do + func_dirname "$file" "" "." + dir="$func_dirname_result" + if test "X$dir" = X.; then + odir="$objdir" + else + odir="$dir/$objdir" + fi + func_basename "$file" + name="$func_basename_result" + test "$opt_mode" = uninstall && odir="$dir" + + # Remember odir for removal later, being careful to avoid duplicates + if test "$opt_mode" = clean; then + case " $rmdirs " in + *" $odir "*) ;; + *) func_append rmdirs " $odir" ;; + esac + fi + + # Don't error if the file doesn't exist and rm -f was used. + if { test -L "$file"; } >/dev/null 2>&1 || + { test -h "$file"; } >/dev/null 2>&1 || + test -f "$file"; then + : + elif test -d "$file"; then + exit_status=1 + continue + elif test "$rmforce" = yes; then + continue + fi + + rmfiles="$file" + + case $name in + *.la) + # Possibly a libtool archive, so verify it. + if func_lalib_p "$file"; then + func_source $dir/$name + + # Delete the libtool libraries and symlinks. + for n in $library_names; do + func_append rmfiles " $odir/$n" + done + test -n "$old_library" && func_append rmfiles " $odir/$old_library" + + case "$opt_mode" in + clean) + case " $library_names " in + *" $dlname "*) ;; + *) test -n "$dlname" && func_append rmfiles " $odir/$dlname" ;; + esac + test -n "$libdir" && func_append rmfiles " $odir/$name $odir/${name}i" + ;; + uninstall) + if test -n "$library_names"; then + # Do each command in the postuninstall commands. + func_execute_cmds "$postuninstall_cmds" 'test "$rmforce" = yes || exit_status=1' + fi + + if test -n "$old_library"; then + # Do each command in the old_postuninstall commands. + func_execute_cmds "$old_postuninstall_cmds" 'test "$rmforce" = yes || exit_status=1' + fi + # FIXME: should reinstall the best remaining shared library. + ;; + esac + fi + ;; + + *.lo) + # Possibly a libtool object, so verify it. + if func_lalib_p "$file"; then + + # Read the .lo file + func_source $dir/$name + + # Add PIC object to the list of files to remove. + if test -n "$pic_object" && + test "$pic_object" != none; then + func_append rmfiles " $dir/$pic_object" + fi + + # Add non-PIC object to the list of files to remove. + if test -n "$non_pic_object" && + test "$non_pic_object" != none; then + func_append rmfiles " $dir/$non_pic_object" + fi + fi + ;; + + *) + if test "$opt_mode" = clean ; then + noexename=$name + case $file in + *.exe) + func_stripname '' '.exe' "$file" + file=$func_stripname_result + func_stripname '' '.exe' "$name" + noexename=$func_stripname_result + # $file with .exe has already been added to rmfiles, + # add $file without .exe + func_append rmfiles " $file" + ;; + esac + # Do a test to see if this is a libtool program. + if func_ltwrapper_p "$file"; then + if func_ltwrapper_executable_p "$file"; then + func_ltwrapper_scriptname "$file" + relink_command= + func_source $func_ltwrapper_scriptname_result + func_append rmfiles " $func_ltwrapper_scriptname_result" + else + relink_command= + func_source $dir/$noexename + fi + + # note $name still contains .exe if it was in $file originally + # as does the version of $file that was added into $rmfiles + func_append rmfiles " $odir/$name $odir/${name}S.${objext}" + if test "$fast_install" = yes && test -n "$relink_command"; then + func_append rmfiles " $odir/lt-$name" + fi + if test "X$noexename" != "X$name" ; then + func_append rmfiles " $odir/lt-${noexename}.c" + fi + fi + fi + ;; + esac + func_show_eval "$RM $rmfiles" 'exit_status=1' + done + + # Try to remove the ${objdir}s in the directories where we deleted files + for dir in $rmdirs; do + if test -d "$dir"; then + func_show_eval "rmdir $dir >/dev/null 2>&1" + fi + done + + exit $exit_status +} + +{ test "$opt_mode" = uninstall || test "$opt_mode" = clean; } && + func_mode_uninstall ${1+"$@"} + +test -z "$opt_mode" && { + help="$generic_help" + func_fatal_help "you must specify a MODE" +} + +test -z "$exec_cmd" && \ + func_fatal_help "invalid operation mode \`$opt_mode'" + +if test -n "$exec_cmd"; then + eval exec "$exec_cmd" + exit $EXIT_FAILURE +fi + +exit $exit_status + + +# The TAGs below are defined such that we never get into a situation +# in which we disable both kinds of libraries. Given conflicting +# choices, we go for a static library, that is the most portable, +# since we can't tell whether shared libraries were disabled because +# the user asked for that or because the platform doesn't support +# them. This is particularly important on AIX, because we don't +# support having both static and shared libraries enabled at the same +# time on that platform, so we default to a shared-only configuration. +# If a disable-shared tag is given, we'll fallback to a static-only +# configuration. But we'll never go from static-only to shared-only. + +# ### BEGIN LIBTOOL TAG CONFIG: disable-shared +build_libtool_libs=no +build_old_libs=yes +# ### END LIBTOOL TAG CONFIG: disable-shared + +# ### BEGIN LIBTOOL TAG CONFIG: disable-static +build_old_libs=`case $build_libtool_libs in yes) echo no;; *) echo yes;; esac` +# ### END LIBTOOL TAG CONFIG: disable-static + +# Local Variables: +# mode:shell-script +# sh-indentation:2 +# End: +# vi:sw=2 + diff -Nru klavaro-1.9.9/m4/ChangeLog klavaro-3.00/m4/ChangeLog --- klavaro-1.9.9/m4/ChangeLog 1970-01-01 00:00:00.000000000 +0000 +++ klavaro-3.00/m4/ChangeLog 2013-11-21 08:48:15.000000000 +0000 @@ -0,0 +1,11 @@ +2013-11-21 gettextize + + * gettext.m4: New file, from gettext-0.18.3. + * iconv.m4: New file, from gettext-0.18.3. + * lib-ld.m4: New file, from gettext-0.18.3. + * lib-link.m4: New file, from gettext-0.18.3. + * lib-prefix.m4: New file, from gettext-0.18.3. + * nls.m4: New file, from gettext-0.18.3. + * po.m4: New file, from gettext-0.18.3. + * progtest.m4: New file, from gettext-0.18.3. + diff -Nru klavaro-1.9.9/m4/gettext.m4 klavaro-3.00/m4/gettext.m4 --- klavaro-1.9.9/m4/gettext.m4 1970-01-01 00:00:00.000000000 +0000 +++ klavaro-3.00/m4/gettext.m4 2014-01-04 19:02:05.000000000 +0000 @@ -0,0 +1,401 @@ +# gettext.m4 serial 66 (gettext-0.18.2) +dnl Copyright (C) 1995-2013 Free Software Foundation, Inc. +dnl This file is free software; the Free Software Foundation +dnl gives unlimited permission to copy and/or distribute it, +dnl with or without modifications, as long as this notice is preserved. +dnl +dnl This file can can be used in projects which are not available under +dnl the GNU General Public License or the GNU Library General Public +dnl License but which still want to provide support for the GNU gettext +dnl functionality. +dnl Please note that the actual code of the GNU gettext library is covered +dnl by the GNU Library General Public License, and the rest of the GNU +dnl gettext package package is covered by the GNU General Public License. +dnl They are *not* in the public domain. + +dnl Authors: +dnl Ulrich Drepper , 1995-2000. +dnl Bruno Haible , 2000-2006, 2008-2010. + +dnl Macro to add for using GNU gettext. + +dnl Usage: AM_GNU_GETTEXT([INTLSYMBOL], [NEEDSYMBOL], [INTLDIR]). +dnl INTLSYMBOL can be one of 'external', 'no-libtool', 'use-libtool'. The +dnl default (if it is not specified or empty) is 'no-libtool'. +dnl INTLSYMBOL should be 'external' for packages with no intl directory, +dnl and 'no-libtool' or 'use-libtool' for packages with an intl directory. +dnl If INTLSYMBOL is 'use-libtool', then a libtool library +dnl $(top_builddir)/intl/libintl.la will be created (shared and/or static, +dnl depending on --{enable,disable}-{shared,static} and on the presence of +dnl AM-DISABLE-SHARED). If INTLSYMBOL is 'no-libtool', a static library +dnl $(top_builddir)/intl/libintl.a will be created. +dnl If NEEDSYMBOL is specified and is 'need-ngettext', then GNU gettext +dnl implementations (in libc or libintl) without the ngettext() function +dnl will be ignored. If NEEDSYMBOL is specified and is +dnl 'need-formatstring-macros', then GNU gettext implementations that don't +dnl support the ISO C 99 formatstring macros will be ignored. +dnl INTLDIR is used to find the intl libraries. If empty, +dnl the value '$(top_builddir)/intl/' is used. +dnl +dnl The result of the configuration is one of three cases: +dnl 1) GNU gettext, as included in the intl subdirectory, will be compiled +dnl and used. +dnl Catalog format: GNU --> install in $(datadir) +dnl Catalog extension: .mo after installation, .gmo in source tree +dnl 2) GNU gettext has been found in the system's C library. +dnl Catalog format: GNU --> install in $(datadir) +dnl Catalog extension: .mo after installation, .gmo in source tree +dnl 3) No internationalization, always use English msgid. +dnl Catalog format: none +dnl Catalog extension: none +dnl If INTLSYMBOL is 'external', only cases 2 and 3 can occur. +dnl The use of .gmo is historical (it was needed to avoid overwriting the +dnl GNU format catalogs when building on a platform with an X/Open gettext), +dnl but we keep it in order not to force irrelevant filename changes on the +dnl maintainers. +dnl +AC_DEFUN([AM_GNU_GETTEXT], +[ + dnl Argument checking. + ifelse([$1], [], , [ifelse([$1], [external], , [ifelse([$1], [no-libtool], , [ifelse([$1], [use-libtool], , + [errprint([ERROR: invalid first argument to AM_GNU_GETTEXT +])])])])]) + ifelse(ifelse([$1], [], [old])[]ifelse([$1], [no-libtool], [old]), [old], + [AC_DIAGNOSE([obsolete], [Use of AM_GNU_GETTEXT without [external] argument is deprecated.])]) + ifelse([$2], [], , [ifelse([$2], [need-ngettext], , [ifelse([$2], [need-formatstring-macros], , + [errprint([ERROR: invalid second argument to AM_GNU_GETTEXT +])])])]) + define([gt_included_intl], + ifelse([$1], [external], + ifdef([AM_GNU_GETTEXT_][INTL_SUBDIR], [yes], [no]), + [yes])) + define([gt_libtool_suffix_prefix], ifelse([$1], [use-libtool], [l], [])) + gt_NEEDS_INIT + AM_GNU_GETTEXT_NEED([$2]) + + AC_REQUIRE([AM_PO_SUBDIRS])dnl + ifelse(gt_included_intl, yes, [ + AC_REQUIRE([AM_INTL_SUBDIR])dnl + ]) + + dnl Prerequisites of AC_LIB_LINKFLAGS_BODY. + AC_REQUIRE([AC_LIB_PREPARE_PREFIX]) + AC_REQUIRE([AC_LIB_RPATH]) + + dnl Sometimes libintl requires libiconv, so first search for libiconv. + dnl Ideally we would do this search only after the + dnl if test "$USE_NLS" = "yes"; then + dnl if { eval "gt_val=\$$gt_func_gnugettext_libc"; test "$gt_val" != "yes"; }; then + dnl tests. But if configure.in invokes AM_ICONV after AM_GNU_GETTEXT + dnl the configure script would need to contain the same shell code + dnl again, outside any 'if'. There are two solutions: + dnl - Invoke AM_ICONV_LINKFLAGS_BODY here, outside any 'if'. + dnl - Control the expansions in more detail using AC_PROVIDE_IFELSE. + dnl Since AC_PROVIDE_IFELSE is only in autoconf >= 2.52 and not + dnl documented, we avoid it. + ifelse(gt_included_intl, yes, , [ + AC_REQUIRE([AM_ICONV_LINKFLAGS_BODY]) + ]) + + dnl Sometimes, on Mac OS X, libintl requires linking with CoreFoundation. + gt_INTL_MACOSX + + dnl Set USE_NLS. + AC_REQUIRE([AM_NLS]) + + ifelse(gt_included_intl, yes, [ + BUILD_INCLUDED_LIBINTL=no + USE_INCLUDED_LIBINTL=no + ]) + LIBINTL= + LTLIBINTL= + POSUB= + + dnl Add a version number to the cache macros. + case " $gt_needs " in + *" need-formatstring-macros "*) gt_api_version=3 ;; + *" need-ngettext "*) gt_api_version=2 ;; + *) gt_api_version=1 ;; + esac + gt_func_gnugettext_libc="gt_cv_func_gnugettext${gt_api_version}_libc" + gt_func_gnugettext_libintl="gt_cv_func_gnugettext${gt_api_version}_libintl" + + dnl If we use NLS figure out what method + if test "$USE_NLS" = "yes"; then + gt_use_preinstalled_gnugettext=no + ifelse(gt_included_intl, yes, [ + AC_MSG_CHECKING([whether included gettext is requested]) + AC_ARG_WITH([included-gettext], + [ --with-included-gettext use the GNU gettext library included here], + nls_cv_force_use_gnu_gettext=$withval, + nls_cv_force_use_gnu_gettext=no) + AC_MSG_RESULT([$nls_cv_force_use_gnu_gettext]) + + nls_cv_use_gnu_gettext="$nls_cv_force_use_gnu_gettext" + if test "$nls_cv_force_use_gnu_gettext" != "yes"; then + ]) + dnl User does not insist on using GNU NLS library. Figure out what + dnl to use. If GNU gettext is available we use this. Else we have + dnl to fall back to GNU NLS library. + + if test $gt_api_version -ge 3; then + gt_revision_test_code=' +#ifndef __GNU_GETTEXT_SUPPORTED_REVISION +#define __GNU_GETTEXT_SUPPORTED_REVISION(major) ((major) == 0 ? 0 : -1) +#endif +changequote(,)dnl +typedef int array [2 * (__GNU_GETTEXT_SUPPORTED_REVISION(0) >= 1) - 1]; +changequote([,])dnl +' + else + gt_revision_test_code= + fi + if test $gt_api_version -ge 2; then + gt_expression_test_code=' + * ngettext ("", "", 0)' + else + gt_expression_test_code= + fi + + AC_CACHE_CHECK([for GNU gettext in libc], [$gt_func_gnugettext_libc], + [AC_LINK_IFELSE( + [AC_LANG_PROGRAM( + [[ +#include +$gt_revision_test_code +extern int _nl_msg_cat_cntr; +extern int *_nl_domain_bindings; + ]], + [[ +bindtextdomain ("", ""); +return * gettext ("")$gt_expression_test_code + _nl_msg_cat_cntr + *_nl_domain_bindings + ]])], + [eval "$gt_func_gnugettext_libc=yes"], + [eval "$gt_func_gnugettext_libc=no"])]) + + if { eval "gt_val=\$$gt_func_gnugettext_libc"; test "$gt_val" != "yes"; }; then + dnl Sometimes libintl requires libiconv, so first search for libiconv. + ifelse(gt_included_intl, yes, , [ + AM_ICONV_LINK + ]) + dnl Search for libintl and define LIBINTL, LTLIBINTL and INCINTL + dnl accordingly. Don't use AC_LIB_LINKFLAGS_BODY([intl],[iconv]) + dnl because that would add "-liconv" to LIBINTL and LTLIBINTL + dnl even if libiconv doesn't exist. + AC_LIB_LINKFLAGS_BODY([intl]) + AC_CACHE_CHECK([for GNU gettext in libintl], + [$gt_func_gnugettext_libintl], + [gt_save_CPPFLAGS="$CPPFLAGS" + CPPFLAGS="$CPPFLAGS $INCINTL" + gt_save_LIBS="$LIBS" + LIBS="$LIBS $LIBINTL" + dnl Now see whether libintl exists and does not depend on libiconv. + AC_LINK_IFELSE( + [AC_LANG_PROGRAM( + [[ +#include +$gt_revision_test_code +extern int _nl_msg_cat_cntr; +extern +#ifdef __cplusplus +"C" +#endif +const char *_nl_expand_alias (const char *); + ]], + [[ +bindtextdomain ("", ""); +return * gettext ("")$gt_expression_test_code + _nl_msg_cat_cntr + *_nl_expand_alias ("") + ]])], + [eval "$gt_func_gnugettext_libintl=yes"], + [eval "$gt_func_gnugettext_libintl=no"]) + dnl Now see whether libintl exists and depends on libiconv. + if { eval "gt_val=\$$gt_func_gnugettext_libintl"; test "$gt_val" != yes; } && test -n "$LIBICONV"; then + LIBS="$LIBS $LIBICONV" + AC_LINK_IFELSE( + [AC_LANG_PROGRAM( + [[ +#include +$gt_revision_test_code +extern int _nl_msg_cat_cntr; +extern +#ifdef __cplusplus +"C" +#endif +const char *_nl_expand_alias (const char *); + ]], + [[ +bindtextdomain ("", ""); +return * gettext ("")$gt_expression_test_code + _nl_msg_cat_cntr + *_nl_expand_alias ("") + ]])], + [LIBINTL="$LIBINTL $LIBICONV" + LTLIBINTL="$LTLIBINTL $LTLIBICONV" + eval "$gt_func_gnugettext_libintl=yes" + ]) + fi + CPPFLAGS="$gt_save_CPPFLAGS" + LIBS="$gt_save_LIBS"]) + fi + + dnl If an already present or preinstalled GNU gettext() is found, + dnl use it. But if this macro is used in GNU gettext, and GNU + dnl gettext is already preinstalled in libintl, we update this + dnl libintl. (Cf. the install rule in intl/Makefile.in.) + if { eval "gt_val=\$$gt_func_gnugettext_libc"; test "$gt_val" = "yes"; } \ + || { { eval "gt_val=\$$gt_func_gnugettext_libintl"; test "$gt_val" = "yes"; } \ + && test "$PACKAGE" != gettext-runtime \ + && test "$PACKAGE" != gettext-tools; }; then + gt_use_preinstalled_gnugettext=yes + else + dnl Reset the values set by searching for libintl. + LIBINTL= + LTLIBINTL= + INCINTL= + fi + + ifelse(gt_included_intl, yes, [ + if test "$gt_use_preinstalled_gnugettext" != "yes"; then + dnl GNU gettext is not found in the C library. + dnl Fall back on included GNU gettext library. + nls_cv_use_gnu_gettext=yes + fi + fi + + if test "$nls_cv_use_gnu_gettext" = "yes"; then + dnl Mark actions used to generate GNU NLS library. + BUILD_INCLUDED_LIBINTL=yes + USE_INCLUDED_LIBINTL=yes + LIBINTL="ifelse([$3],[],\${top_builddir}/intl,[$3])/libintl.[]gt_libtool_suffix_prefix[]a $LIBICONV $LIBTHREAD" + LTLIBINTL="ifelse([$3],[],\${top_builddir}/intl,[$3])/libintl.[]gt_libtool_suffix_prefix[]a $LTLIBICONV $LTLIBTHREAD" + LIBS=`echo " $LIBS " | sed -e 's/ -lintl / /' -e 's/^ //' -e 's/ $//'` + fi + + CATOBJEXT= + if test "$gt_use_preinstalled_gnugettext" = "yes" \ + || test "$nls_cv_use_gnu_gettext" = "yes"; then + dnl Mark actions to use GNU gettext tools. + CATOBJEXT=.gmo + fi + ]) + + if test -n "$INTL_MACOSX_LIBS"; then + if test "$gt_use_preinstalled_gnugettext" = "yes" \ + || test "$nls_cv_use_gnu_gettext" = "yes"; then + dnl Some extra flags are needed during linking. + LIBINTL="$LIBINTL $INTL_MACOSX_LIBS" + LTLIBINTL="$LTLIBINTL $INTL_MACOSX_LIBS" + fi + fi + + if test "$gt_use_preinstalled_gnugettext" = "yes" \ + || test "$nls_cv_use_gnu_gettext" = "yes"; then + AC_DEFINE([ENABLE_NLS], [1], + [Define to 1 if translation of program messages to the user's native language + is requested.]) + else + USE_NLS=no + fi + fi + + AC_MSG_CHECKING([whether to use NLS]) + AC_MSG_RESULT([$USE_NLS]) + if test "$USE_NLS" = "yes"; then + AC_MSG_CHECKING([where the gettext function comes from]) + if test "$gt_use_preinstalled_gnugettext" = "yes"; then + if { eval "gt_val=\$$gt_func_gnugettext_libintl"; test "$gt_val" = "yes"; }; then + gt_source="external libintl" + else + gt_source="libc" + fi + else + gt_source="included intl directory" + fi + AC_MSG_RESULT([$gt_source]) + fi + + if test "$USE_NLS" = "yes"; then + + if test "$gt_use_preinstalled_gnugettext" = "yes"; then + if { eval "gt_val=\$$gt_func_gnugettext_libintl"; test "$gt_val" = "yes"; }; then + AC_MSG_CHECKING([how to link with libintl]) + AC_MSG_RESULT([$LIBINTL]) + AC_LIB_APPENDTOVAR([CPPFLAGS], [$INCINTL]) + fi + + dnl For backward compatibility. Some packages may be using this. + AC_DEFINE([HAVE_GETTEXT], [1], + [Define if the GNU gettext() function is already present or preinstalled.]) + AC_DEFINE([HAVE_DCGETTEXT], [1], + [Define if the GNU dcgettext() function is already present or preinstalled.]) + fi + + dnl We need to process the po/ directory. + POSUB=po + fi + + ifelse(gt_included_intl, yes, [ + dnl If this is used in GNU gettext we have to set BUILD_INCLUDED_LIBINTL + dnl to 'yes' because some of the testsuite requires it. + if test "$PACKAGE" = gettext-runtime || test "$PACKAGE" = gettext-tools; then + BUILD_INCLUDED_LIBINTL=yes + fi + + dnl Make all variables we use known to autoconf. + AC_SUBST([BUILD_INCLUDED_LIBINTL]) + AC_SUBST([USE_INCLUDED_LIBINTL]) + AC_SUBST([CATOBJEXT]) + + dnl For backward compatibility. Some configure.ins may be using this. + nls_cv_header_intl= + nls_cv_header_libgt= + + dnl For backward compatibility. Some Makefiles may be using this. + DATADIRNAME=share + AC_SUBST([DATADIRNAME]) + + dnl For backward compatibility. Some Makefiles may be using this. + INSTOBJEXT=.mo + AC_SUBST([INSTOBJEXT]) + + dnl For backward compatibility. Some Makefiles may be using this. + GENCAT=gencat + AC_SUBST([GENCAT]) + + dnl For backward compatibility. Some Makefiles may be using this. + INTLOBJS= + if test "$USE_INCLUDED_LIBINTL" = yes; then + INTLOBJS="\$(GETTOBJS)" + fi + AC_SUBST([INTLOBJS]) + + dnl Enable libtool support if the surrounding package wishes it. + INTL_LIBTOOL_SUFFIX_PREFIX=gt_libtool_suffix_prefix + AC_SUBST([INTL_LIBTOOL_SUFFIX_PREFIX]) + ]) + + dnl For backward compatibility. Some Makefiles may be using this. + INTLLIBS="$LIBINTL" + AC_SUBST([INTLLIBS]) + + dnl Make all documented variables known to autoconf. + AC_SUBST([LIBINTL]) + AC_SUBST([LTLIBINTL]) + AC_SUBST([POSUB]) +]) + + +dnl gt_NEEDS_INIT ensures that the gt_needs variable is initialized. +m4_define([gt_NEEDS_INIT], +[ + m4_divert_text([DEFAULTS], [gt_needs=]) + m4_define([gt_NEEDS_INIT], []) +]) + + +dnl Usage: AM_GNU_GETTEXT_NEED([NEEDSYMBOL]) +AC_DEFUN([AM_GNU_GETTEXT_NEED], +[ + m4_divert_text([INIT_PREPARE], [gt_needs="$gt_needs $1"]) +]) + + +dnl Usage: AM_GNU_GETTEXT_VERSION([gettext-version]) +AC_DEFUN([AM_GNU_GETTEXT_VERSION], []) diff -Nru klavaro-1.9.9/m4/iconv.m4 klavaro-3.00/m4/iconv.m4 --- klavaro-1.9.9/m4/iconv.m4 1970-01-01 00:00:00.000000000 +0000 +++ klavaro-3.00/m4/iconv.m4 2014-01-04 19:02:05.000000000 +0000 @@ -0,0 +1,268 @@ +# iconv.m4 serial 18 (gettext-0.18.2) +dnl Copyright (C) 2000-2002, 2007-2013 Free Software Foundation, Inc. +dnl This file is free software; the Free Software Foundation +dnl gives unlimited permission to copy and/or distribute it, +dnl with or without modifications, as long as this notice is preserved. + +dnl From Bruno Haible. + +AC_DEFUN([AM_ICONV_LINKFLAGS_BODY], +[ + dnl Prerequisites of AC_LIB_LINKFLAGS_BODY. + AC_REQUIRE([AC_LIB_PREPARE_PREFIX]) + AC_REQUIRE([AC_LIB_RPATH]) + + dnl Search for libiconv and define LIBICONV, LTLIBICONV and INCICONV + dnl accordingly. + AC_LIB_LINKFLAGS_BODY([iconv]) +]) + +AC_DEFUN([AM_ICONV_LINK], +[ + dnl Some systems have iconv in libc, some have it in libiconv (OSF/1 and + dnl those with the standalone portable GNU libiconv installed). + AC_REQUIRE([AC_CANONICAL_HOST]) dnl for cross-compiles + + dnl Search for libiconv and define LIBICONV, LTLIBICONV and INCICONV + dnl accordingly. + AC_REQUIRE([AM_ICONV_LINKFLAGS_BODY]) + + dnl Add $INCICONV to CPPFLAGS before performing the following checks, + dnl because if the user has installed libiconv and not disabled its use + dnl via --without-libiconv-prefix, he wants to use it. The first + dnl AC_LINK_IFELSE will then fail, the second AC_LINK_IFELSE will succeed. + am_save_CPPFLAGS="$CPPFLAGS" + AC_LIB_APPENDTOVAR([CPPFLAGS], [$INCICONV]) + + AC_CACHE_CHECK([for iconv], [am_cv_func_iconv], [ + am_cv_func_iconv="no, consider installing GNU libiconv" + am_cv_lib_iconv=no + AC_LINK_IFELSE( + [AC_LANG_PROGRAM( + [[ +#include +#include + ]], + [[iconv_t cd = iconv_open("",""); + iconv(cd,NULL,NULL,NULL,NULL); + iconv_close(cd);]])], + [am_cv_func_iconv=yes]) + if test "$am_cv_func_iconv" != yes; then + am_save_LIBS="$LIBS" + LIBS="$LIBS $LIBICONV" + AC_LINK_IFELSE( + [AC_LANG_PROGRAM( + [[ +#include +#include + ]], + [[iconv_t cd = iconv_open("",""); + iconv(cd,NULL,NULL,NULL,NULL); + iconv_close(cd);]])], + [am_cv_lib_iconv=yes] + [am_cv_func_iconv=yes]) + LIBS="$am_save_LIBS" + fi + ]) + if test "$am_cv_func_iconv" = yes; then + AC_CACHE_CHECK([for working iconv], [am_cv_func_iconv_works], [ + dnl This tests against bugs in AIX 5.1, AIX 6.1..7.1, HP-UX 11.11, + dnl Solaris 10. + am_save_LIBS="$LIBS" + if test $am_cv_lib_iconv = yes; then + LIBS="$LIBS $LIBICONV" + fi + AC_RUN_IFELSE( + [AC_LANG_SOURCE([[ +#include +#include +int main () +{ + int result = 0; + /* Test against AIX 5.1 bug: Failures are not distinguishable from successful + returns. */ + { + iconv_t cd_utf8_to_88591 = iconv_open ("ISO8859-1", "UTF-8"); + if (cd_utf8_to_88591 != (iconv_t)(-1)) + { + static const char input[] = "\342\202\254"; /* EURO SIGN */ + char buf[10]; + const char *inptr = input; + size_t inbytesleft = strlen (input); + char *outptr = buf; + size_t outbytesleft = sizeof (buf); + size_t res = iconv (cd_utf8_to_88591, + (char **) &inptr, &inbytesleft, + &outptr, &outbytesleft); + if (res == 0) + result |= 1; + iconv_close (cd_utf8_to_88591); + } + } + /* Test against Solaris 10 bug: Failures are not distinguishable from + successful returns. */ + { + iconv_t cd_ascii_to_88591 = iconv_open ("ISO8859-1", "646"); + if (cd_ascii_to_88591 != (iconv_t)(-1)) + { + static const char input[] = "\263"; + char buf[10]; + const char *inptr = input; + size_t inbytesleft = strlen (input); + char *outptr = buf; + size_t outbytesleft = sizeof (buf); + size_t res = iconv (cd_ascii_to_88591, + (char **) &inptr, &inbytesleft, + &outptr, &outbytesleft); + if (res == 0) + result |= 2; + iconv_close (cd_ascii_to_88591); + } + } + /* Test against AIX 6.1..7.1 bug: Buffer overrun. */ + { + iconv_t cd_88591_to_utf8 = iconv_open ("UTF-8", "ISO-8859-1"); + if (cd_88591_to_utf8 != (iconv_t)(-1)) + { + static const char input[] = "\304"; + static char buf[2] = { (char)0xDE, (char)0xAD }; + const char *inptr = input; + size_t inbytesleft = 1; + char *outptr = buf; + size_t outbytesleft = 1; + size_t res = iconv (cd_88591_to_utf8, + (char **) &inptr, &inbytesleft, + &outptr, &outbytesleft); + if (res != (size_t)(-1) || outptr - buf > 1 || buf[1] != (char)0xAD) + result |= 4; + iconv_close (cd_88591_to_utf8); + } + } +#if 0 /* This bug could be worked around by the caller. */ + /* Test against HP-UX 11.11 bug: Positive return value instead of 0. */ + { + iconv_t cd_88591_to_utf8 = iconv_open ("utf8", "iso88591"); + if (cd_88591_to_utf8 != (iconv_t)(-1)) + { + static const char input[] = "\304rger mit b\366sen B\374bchen ohne Augenma\337"; + char buf[50]; + const char *inptr = input; + size_t inbytesleft = strlen (input); + char *outptr = buf; + size_t outbytesleft = sizeof (buf); + size_t res = iconv (cd_88591_to_utf8, + (char **) &inptr, &inbytesleft, + &outptr, &outbytesleft); + if ((int)res > 0) + result |= 8; + iconv_close (cd_88591_to_utf8); + } + } +#endif + /* Test against HP-UX 11.11 bug: No converter from EUC-JP to UTF-8 is + provided. */ + if (/* Try standardized names. */ + iconv_open ("UTF-8", "EUC-JP") == (iconv_t)(-1) + /* Try IRIX, OSF/1 names. */ + && iconv_open ("UTF-8", "eucJP") == (iconv_t)(-1) + /* Try AIX names. */ + && iconv_open ("UTF-8", "IBM-eucJP") == (iconv_t)(-1) + /* Try HP-UX names. */ + && iconv_open ("utf8", "eucJP") == (iconv_t)(-1)) + result |= 16; + return result; +}]])], + [am_cv_func_iconv_works=yes], + [am_cv_func_iconv_works=no], + [ +changequote(,)dnl + case "$host_os" in + aix* | hpux*) am_cv_func_iconv_works="guessing no" ;; + *) am_cv_func_iconv_works="guessing yes" ;; + esac +changequote([,])dnl + ]) + LIBS="$am_save_LIBS" + ]) + case "$am_cv_func_iconv_works" in + *no) am_func_iconv=no am_cv_lib_iconv=no ;; + *) am_func_iconv=yes ;; + esac + else + am_func_iconv=no am_cv_lib_iconv=no + fi + if test "$am_func_iconv" = yes; then + AC_DEFINE([HAVE_ICONV], [1], + [Define if you have the iconv() function and it works.]) + fi + if test "$am_cv_lib_iconv" = yes; then + AC_MSG_CHECKING([how to link with libiconv]) + AC_MSG_RESULT([$LIBICONV]) + else + dnl If $LIBICONV didn't lead to a usable library, we don't need $INCICONV + dnl either. + CPPFLAGS="$am_save_CPPFLAGS" + LIBICONV= + LTLIBICONV= + fi + AC_SUBST([LIBICONV]) + AC_SUBST([LTLIBICONV]) +]) + +dnl Define AM_ICONV using AC_DEFUN_ONCE for Autoconf >= 2.64, in order to +dnl avoid warnings like +dnl "warning: AC_REQUIRE: `AM_ICONV' was expanded before it was required". +dnl This is tricky because of the way 'aclocal' is implemented: +dnl - It requires defining an auxiliary macro whose name ends in AC_DEFUN. +dnl Otherwise aclocal's initial scan pass would miss the macro definition. +dnl - It requires a line break inside the AC_DEFUN_ONCE and AC_DEFUN expansions. +dnl Otherwise aclocal would emit many "Use of uninitialized value $1" +dnl warnings. +m4_define([gl_iconv_AC_DEFUN], + m4_version_prereq([2.64], + [[AC_DEFUN_ONCE( + [$1], [$2])]], + [m4_ifdef([gl_00GNULIB], + [[AC_DEFUN_ONCE( + [$1], [$2])]], + [[AC_DEFUN( + [$1], [$2])]])])) +gl_iconv_AC_DEFUN([AM_ICONV], +[ + AM_ICONV_LINK + if test "$am_cv_func_iconv" = yes; then + AC_MSG_CHECKING([for iconv declaration]) + AC_CACHE_VAL([am_cv_proto_iconv], [ + AC_COMPILE_IFELSE( + [AC_LANG_PROGRAM( + [[ +#include +#include +extern +#ifdef __cplusplus +"C" +#endif +#if defined(__STDC__) || defined(_MSC_VER) || defined(__cplusplus) +size_t iconv (iconv_t cd, char * *inbuf, size_t *inbytesleft, char * *outbuf, size_t *outbytesleft); +#else +size_t iconv(); +#endif + ]], + [[]])], + [am_cv_proto_iconv_arg1=""], + [am_cv_proto_iconv_arg1="const"]) + am_cv_proto_iconv="extern size_t iconv (iconv_t cd, $am_cv_proto_iconv_arg1 char * *inbuf, size_t *inbytesleft, char * *outbuf, size_t *outbytesleft);"]) + am_cv_proto_iconv=`echo "[$]am_cv_proto_iconv" | tr -s ' ' | sed -e 's/( /(/'` + AC_MSG_RESULT([ + $am_cv_proto_iconv]) + AC_DEFINE_UNQUOTED([ICONV_CONST], [$am_cv_proto_iconv_arg1], + [Define as const if the declaration of iconv() needs const.]) + dnl Also substitute ICONV_CONST in the gnulib generated . + m4_ifdef([gl_ICONV_H_DEFAULTS], + [AC_REQUIRE([gl_ICONV_H_DEFAULTS]) + if test -n "$am_cv_proto_iconv_arg1"; then + ICONV_CONST="const" + fi + ]) + fi +]) diff -Nru klavaro-1.9.9/m4/intltool.m4 klavaro-3.00/m4/intltool.m4 --- klavaro-1.9.9/m4/intltool.m4 1970-01-01 00:00:00.000000000 +0000 +++ klavaro-3.00/m4/intltool.m4 2012-03-30 18:55:39.000000000 +0000 @@ -0,0 +1,237 @@ +## intltool.m4 - Configure intltool for the target system. -*-Shell-script-*- +## Copyright (C) 2001 Eazel, Inc. +## Author: Maciej Stachowiak +## Kenneth Christiansen +## +## This program is free software; you can redistribute it and/or modify +## it under the terms of the GNU General Public License as published by +## the Free Software Foundation; either version 2 of the License, or +## (at your option) any later version. +## +## This program is distributed in the hope that it will be useful, but +## WITHOUT ANY WARRANTY; without even the implied warranty of +## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +## General Public License for more details. +## +## You should have received a copy of the GNU General Public License +## along with this program; if not, write to the Free Software +## Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. +## +## As a special exception to the GNU General Public License, if you +## distribute this file as part of a program that contains a +## configuration script generated by Autoconf, you may include it under +## the same distribution terms that you use for the rest of that program. + +dnl IT_PROG_INTLTOOL([MINIMUM-VERSION], [no-xml]) +# serial 42 IT_PROG_INTLTOOL +AC_DEFUN([IT_PROG_INTLTOOL], [ +AC_PREREQ([2.50])dnl +AC_REQUIRE([AM_NLS])dnl + +case "$am__api_version" in + 1.[01234]) + AC_MSG_ERROR([Automake 1.5 or newer is required to use intltool]) + ;; + *) + ;; +esac + +INTLTOOL_REQUIRED_VERSION_AS_INT=`echo $1 | awk -F. '{ print $ 1 * 1000 + $ 2 * 100 + $ 3; }'` +INTLTOOL_APPLIED_VERSION=`intltool-update --version | head -1 | cut -d" " -f3` +INTLTOOL_APPLIED_VERSION_AS_INT=`echo $INTLTOOL_APPLIED_VERSION | awk -F. '{ print $ 1 * 1000 + $ 2 * 100 + $ 3; }'` +if test -n "$1"; then + AC_MSG_CHECKING([for intltool >= $1]) + AC_MSG_RESULT([$INTLTOOL_APPLIED_VERSION found]) + test "$INTLTOOL_APPLIED_VERSION_AS_INT" -ge "$INTLTOOL_REQUIRED_VERSION_AS_INT" || + AC_MSG_ERROR([Your intltool is too old. You need intltool $1 or later.]) +fi + +AC_PATH_PROG(INTLTOOL_UPDATE, [intltool-update]) +AC_PATH_PROG(INTLTOOL_MERGE, [intltool-merge]) +AC_PATH_PROG(INTLTOOL_EXTRACT, [intltool-extract]) +if test -z "$INTLTOOL_UPDATE" -o -z "$INTLTOOL_MERGE" -o -z "$INTLTOOL_EXTRACT"; then + AC_MSG_ERROR([The intltool scripts were not found. Please install intltool.]) +fi + +if test -z "$AM_DEFAULT_VERBOSITY"; then + AM_DEFAULT_VERBOSITY=1 +fi +AC_SUBST([AM_DEFAULT_VERBOSITY]) + +INTLTOOL_V_MERGE='$(INTLTOOL__v_MERGE_$(V))' +INTLTOOL__v_MERGE_='$(INTLTOOL__v_MERGE_$(AM_DEFAULT_VERBOSITY))' +INTLTOOL__v_MERGE_0='@echo " ITMRG " [$]@;' +AC_SUBST(INTLTOOL_V_MERGE) +AC_SUBST(INTLTOOL__v_MERGE_) +AC_SUBST(INTLTOOL__v_MERGE_0) + +INTLTOOL_V_MERGE_OPTIONS='$(intltool__v_merge_options_$(V))' +intltool__v_merge_options_='$(intltool__v_merge_options_$(AM_DEFAULT_VERBOSITY))' +intltool__v_merge_options_0='-q' +AC_SUBST(INTLTOOL_V_MERGE_OPTIONS) +AC_SUBST(intltool__v_merge_options_) +AC_SUBST(intltool__v_merge_options_0) + + INTLTOOL_DESKTOP_RULE='%.desktop: %.desktop.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; $(INTLTOOL_V_MERGE)LC_ALL=C $(INTLTOOL_MERGE) $(INTLTOOL_V_MERGE_OPTIONS) -d -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< [$]@' +INTLTOOL_DIRECTORY_RULE='%.directory: %.directory.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; $(INTLTOOL_V_MERGE)LC_ALL=C $(INTLTOOL_MERGE) $(INTLTOOL_V_MERGE_OPTIONS) -d -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< [$]@' + INTLTOOL_KEYS_RULE='%.keys: %.keys.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; $(INTLTOOL_V_MERGE)LC_ALL=C $(INTLTOOL_MERGE) $(INTLTOOL_V_MERGE_OPTIONS) -k -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< [$]@' + INTLTOOL_PROP_RULE='%.prop: %.prop.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; $(INTLTOOL_V_MERGE)LC_ALL=C $(INTLTOOL_MERGE) $(INTLTOOL_V_MERGE_OPTIONS) -d -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< [$]@' + INTLTOOL_OAF_RULE='%.oaf: %.oaf.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; $(INTLTOOL_V_MERGE)LC_ALL=C $(INTLTOOL_MERGE) $(INTLTOOL_V_MERGE_OPTIONS) -o -p $(top_srcdir)/po $< [$]@' + INTLTOOL_PONG_RULE='%.pong: %.pong.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; $(INTLTOOL_V_MERGE)LC_ALL=C $(INTLTOOL_MERGE) $(INTLTOOL_V_MERGE_OPTIONS) -x -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< [$]@' + INTLTOOL_SERVER_RULE='%.server: %.server.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; $(INTLTOOL_V_MERGE)LC_ALL=C $(INTLTOOL_MERGE) $(INTLTOOL_V_MERGE_OPTIONS) -o -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< [$]@' + INTLTOOL_SHEET_RULE='%.sheet: %.sheet.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; $(INTLTOOL_V_MERGE)LC_ALL=C $(INTLTOOL_MERGE) $(INTLTOOL_V_MERGE_OPTIONS) -x -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< [$]@' +INTLTOOL_SOUNDLIST_RULE='%.soundlist: %.soundlist.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; $(INTLTOOL_V_MERGE)LC_ALL=C $(INTLTOOL_MERGE) $(INTLTOOL_V_MERGE_OPTIONS) -d -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< [$]@' + INTLTOOL_UI_RULE='%.ui: %.ui.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; $(INTLTOOL_V_MERGE)LC_ALL=C $(INTLTOOL_MERGE) $(INTLTOOL_V_MERGE_OPTIONS) -x -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< [$]@' + INTLTOOL_XML_RULE='%.xml: %.xml.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; $(INTLTOOL_V_MERGE)LC_ALL=C $(INTLTOOL_MERGE) $(INTLTOOL_V_MERGE_OPTIONS) -x -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< [$]@' +if test "$INTLTOOL_APPLIED_VERSION_AS_INT" -ge 5000; then + INTLTOOL_XML_NOMERGE_RULE='%.xml: %.xml.in $(INTLTOOL_MERGE) ; $(INTLTOOL_V_MERGE)LC_ALL=C $(INTLTOOL_MERGE) $(INTLTOOL_V_MERGE_OPTIONS) -x -u --no-translations $< [$]@' +else + INTLTOOL_XML_NOMERGE_RULE='%.xml: %.xml.in $(INTLTOOL_MERGE) ; $(INTLTOOL_V_MERGE)_it_tmp_dir=tmp.intltool.[$][$]RANDOM && mkdir [$][$]_it_tmp_dir && LC_ALL=C $(INTLTOOL_MERGE) $(INTLTOOL_V_MERGE_OPTIONS) -x -u [$][$]_it_tmp_dir $< [$]@ && rmdir [$][$]_it_tmp_dir' +fi + INTLTOOL_XAM_RULE='%.xam: %.xml.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; $(INTLTOOL_V_MERGE)LC_ALL=C $(INTLTOOL_MERGE) $(INTLTOOL_V_MERGE_OPTIONS) -x -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< [$]@' + INTLTOOL_KBD_RULE='%.kbd: %.kbd.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; $(INTLTOOL_V_MERGE)LC_ALL=C $(INTLTOOL_MERGE) $(INTLTOOL_V_MERGE_OPTIONS) -x -u -m -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< [$]@' + INTLTOOL_CAVES_RULE='%.caves: %.caves.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; $(INTLTOOL_V_MERGE)LC_ALL=C $(INTLTOOL_MERGE) $(INTLTOOL_V_MERGE_OPTIONS) -d -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< [$]@' + INTLTOOL_SCHEMAS_RULE='%.schemas: %.schemas.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; $(INTLTOOL_V_MERGE)LC_ALL=C $(INTLTOOL_MERGE) $(INTLTOOL_V_MERGE_OPTIONS) -s -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< [$]@' + INTLTOOL_THEME_RULE='%.theme: %.theme.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; $(INTLTOOL_V_MERGE)LC_ALL=C $(INTLTOOL_MERGE) $(INTLTOOL_V_MERGE_OPTIONS) -d -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< [$]@' + INTLTOOL_SERVICE_RULE='%.service: %.service.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; $(INTLTOOL_V_MERGE)LC_ALL=C $(INTLTOOL_MERGE) $(INTLTOOL_V_MERGE_OPTIONS) -d -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< [$]@' + INTLTOOL_POLICY_RULE='%.policy: %.policy.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; $(INTLTOOL_V_MERGE)LC_ALL=C $(INTLTOOL_MERGE) $(INTLTOOL_V_MERGE_OPTIONS) -x -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< [$]@' + +_IT_SUBST(INTLTOOL_DESKTOP_RULE) +_IT_SUBST(INTLTOOL_DIRECTORY_RULE) +_IT_SUBST(INTLTOOL_KEYS_RULE) +_IT_SUBST(INTLTOOL_PROP_RULE) +_IT_SUBST(INTLTOOL_OAF_RULE) +_IT_SUBST(INTLTOOL_PONG_RULE) +_IT_SUBST(INTLTOOL_SERVER_RULE) +_IT_SUBST(INTLTOOL_SHEET_RULE) +_IT_SUBST(INTLTOOL_SOUNDLIST_RULE) +_IT_SUBST(INTLTOOL_UI_RULE) +_IT_SUBST(INTLTOOL_XAM_RULE) +_IT_SUBST(INTLTOOL_KBD_RULE) +_IT_SUBST(INTLTOOL_XML_RULE) +_IT_SUBST(INTLTOOL_XML_NOMERGE_RULE) +_IT_SUBST(INTLTOOL_CAVES_RULE) +_IT_SUBST(INTLTOOL_SCHEMAS_RULE) +_IT_SUBST(INTLTOOL_THEME_RULE) +_IT_SUBST(INTLTOOL_SERVICE_RULE) +_IT_SUBST(INTLTOOL_POLICY_RULE) + +# Check the gettext tools to make sure they are GNU +AC_PATH_PROG(XGETTEXT, xgettext) +AC_PATH_PROG(MSGMERGE, msgmerge) +AC_PATH_PROG(MSGFMT, msgfmt) +AC_PATH_PROG(GMSGFMT, gmsgfmt, $MSGFMT) +if test -z "$XGETTEXT" -o -z "$MSGMERGE" -o -z "$MSGFMT"; then + AC_MSG_ERROR([GNU gettext tools not found; required for intltool]) +fi +xgversion="`$XGETTEXT --version|grep '(GNU ' 2> /dev/null`" +mmversion="`$MSGMERGE --version|grep '(GNU ' 2> /dev/null`" +mfversion="`$MSGFMT --version|grep '(GNU ' 2> /dev/null`" +if test -z "$xgversion" -o -z "$mmversion" -o -z "$mfversion"; then + AC_MSG_ERROR([GNU gettext tools not found; required for intltool]) +fi + +AC_PATH_PROG(INTLTOOL_PERL, perl) +if test -z "$INTLTOOL_PERL"; then + AC_MSG_ERROR([perl not found]) +fi +AC_MSG_CHECKING([for perl >= 5.8.1]) +$INTLTOOL_PERL -e "use 5.8.1;" > /dev/null 2>&1 +if test $? -ne 0; then + AC_MSG_ERROR([perl 5.8.1 is required for intltool]) +else + IT_PERL_VERSION=`$INTLTOOL_PERL -e "printf '%vd', $^V"` + AC_MSG_RESULT([$IT_PERL_VERSION]) +fi +if test "x$2" != "xno-xml"; then + AC_MSG_CHECKING([for XML::Parser]) + if `$INTLTOOL_PERL -e "require XML::Parser" 2>/dev/null`; then + AC_MSG_RESULT([ok]) + else + AC_MSG_ERROR([XML::Parser perl module is required for intltool]) + fi +fi + +# Substitute ALL_LINGUAS so we can use it in po/Makefile +AC_SUBST(ALL_LINGUAS) + +# Set DATADIRNAME correctly if it is not set yet +# (copied from glib-gettext.m4) +if test -z "$DATADIRNAME"; then + AC_LINK_IFELSE( + [AC_LANG_PROGRAM([[]], + [[extern int _nl_msg_cat_cntr; + return _nl_msg_cat_cntr]])], + [DATADIRNAME=share], + [case $host in + *-*-solaris*) + dnl On Solaris, if bind_textdomain_codeset is in libc, + dnl GNU format message catalog is always supported, + dnl since both are added to the libc all together. + dnl Hence, we'd like to go with DATADIRNAME=share + dnl in this case. + AC_CHECK_FUNC(bind_textdomain_codeset, + [DATADIRNAME=share], [DATADIRNAME=lib]) + ;; + *) + [DATADIRNAME=lib] + ;; + esac]) +fi +AC_SUBST(DATADIRNAME) + +IT_PO_SUBDIR([po]) + +]) + + +# IT_PO_SUBDIR(DIRNAME) +# --------------------- +# All po subdirs have to be declared with this macro; the subdir "po" is +# declared by IT_PROG_INTLTOOL. +# +AC_DEFUN([IT_PO_SUBDIR], +[AC_PREREQ([2.53])dnl We use ac_top_srcdir inside AC_CONFIG_COMMANDS. +dnl +dnl The following CONFIG_COMMANDS should be executed at the very end +dnl of config.status. +AC_CONFIG_COMMANDS_PRE([ + AC_CONFIG_COMMANDS([$1/stamp-it], [ + if [ ! grep "^# INTLTOOL_MAKEFILE$" "$1/Makefile.in" > /dev/null ]; then + AC_MSG_ERROR([$1/Makefile.in.in was not created by intltoolize.]) + fi + rm -f "$1/stamp-it" "$1/stamp-it.tmp" "$1/POTFILES" "$1/Makefile.tmp" + >"$1/stamp-it.tmp" + [sed '/^#/d + s/^[[].*] *// + /^[ ]*$/d + '"s|^| $ac_top_srcdir/|" \ + "$srcdir/$1/POTFILES.in" | sed '$!s/$/ \\/' >"$1/POTFILES" + ] + [sed '/^POTFILES =/,/[^\\]$/ { + /^POTFILES =/!d + r $1/POTFILES + } + ' "$1/Makefile.in" >"$1/Makefile"] + rm -f "$1/Makefile.tmp" + mv "$1/stamp-it.tmp" "$1/stamp-it" + ]) +])dnl +]) + +# _IT_SUBST(VARIABLE) +# ------------------- +# Abstract macro to do either _AM_SUBST_NOTMAKE or AC_SUBST +# +AC_DEFUN([_IT_SUBST], +[ +AC_SUBST([$1]) +m4_ifdef([_AM_SUBST_NOTMAKE], [_AM_SUBST_NOTMAKE([$1])]) +] +) + +# deprecated macros +AU_ALIAS([AC_PROG_INTLTOOL], [IT_PROG_INTLTOOL]) +# A hint is needed for aclocal from Automake <= 1.9.4: +# AC_DEFUN([AC_PROG_INTLTOOL], ...) + diff -Nru klavaro-1.9.9/m4/lib-ld.m4 klavaro-3.00/m4/lib-ld.m4 --- klavaro-1.9.9/m4/lib-ld.m4 1970-01-01 00:00:00.000000000 +0000 +++ klavaro-3.00/m4/lib-ld.m4 2014-01-04 19:02:05.000000000 +0000 @@ -0,0 +1,119 @@ +# lib-ld.m4 serial 6 +dnl Copyright (C) 1996-2003, 2009-2013 Free Software Foundation, Inc. +dnl This file is free software; the Free Software Foundation +dnl gives unlimited permission to copy and/or distribute it, +dnl with or without modifications, as long as this notice is preserved. + +dnl Subroutines of libtool.m4, +dnl with replacements s/_*LT_PATH/AC_LIB_PROG/ and s/lt_/acl_/ to avoid +dnl collision with libtool.m4. + +dnl From libtool-2.4. Sets the variable with_gnu_ld to yes or no. +AC_DEFUN([AC_LIB_PROG_LD_GNU], +[AC_CACHE_CHECK([if the linker ($LD) is GNU ld], [acl_cv_prog_gnu_ld], +[# I'd rather use --version here, but apparently some GNU lds only accept -v. +case `$LD -v 2>&1 /dev/null 2>&1 \ + && { (PATH='/bin:/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 \ + || PATH_SEPARATOR=';' + } +fi + +ac_prog=ld +if test "$GCC" = yes; then + # Check if gcc -print-prog-name=ld gives a path. + AC_MSG_CHECKING([for ld used by $CC]) + case $host in + *-*-mingw*) + # gcc leaves a trailing carriage return which upsets mingw + ac_prog=`($CC -print-prog-name=ld) 2>&5 | tr -d '\015'` ;; + *) + ac_prog=`($CC -print-prog-name=ld) 2>&5` ;; + esac + case $ac_prog in + # Accept absolute paths. + [[\\/]]* | ?:[[\\/]]*) + re_direlt='/[[^/]][[^/]]*/\.\./' + # Canonicalize the pathname of ld + ac_prog=`echo "$ac_prog"| sed 's%\\\\%/%g'` + while echo "$ac_prog" | grep "$re_direlt" > /dev/null 2>&1; do + ac_prog=`echo $ac_prog| sed "s%$re_direlt%/%"` + done + test -z "$LD" && LD="$ac_prog" + ;; + "") + # If it fails, then pretend we aren't using GCC. + ac_prog=ld + ;; + *) + # If it is relative, then search for the first ld in PATH. + with_gnu_ld=unknown + ;; + esac +elif test "$with_gnu_ld" = yes; then + AC_MSG_CHECKING([for GNU ld]) +else + AC_MSG_CHECKING([for non-GNU ld]) +fi +AC_CACHE_VAL([acl_cv_path_LD], +[if test -z "$LD"; then + acl_save_ifs="$IFS"; IFS=$PATH_SEPARATOR + for ac_dir in $PATH; do + IFS="$acl_save_ifs" + test -z "$ac_dir" && ac_dir=. + if test -f "$ac_dir/$ac_prog" || test -f "$ac_dir/$ac_prog$ac_exeext"; then + acl_cv_path_LD="$ac_dir/$ac_prog" + # Check to see if the program is GNU ld. I'd rather use --version, + # but apparently some variants of GNU ld only accept -v. + # Break only if it was the GNU/non-GNU ld that we prefer. + case `"$acl_cv_path_LD" -v 2>&1 = 1.10 to complain if config.rpath is missing. + m4_ifdef([AC_REQUIRE_AUX_FILE], [AC_REQUIRE_AUX_FILE([config.rpath])]) + AC_REQUIRE([AC_PROG_CC]) dnl we use $CC, $GCC, $LDFLAGS + AC_REQUIRE([AC_LIB_PROG_LD]) dnl we use $LD, $with_gnu_ld + AC_REQUIRE([AC_CANONICAL_HOST]) dnl we use $host + AC_REQUIRE([AC_CONFIG_AUX_DIR_DEFAULT]) dnl we use $ac_aux_dir + AC_CACHE_CHECK([for shared library run path origin], [acl_cv_rpath], [ + CC="$CC" GCC="$GCC" LDFLAGS="$LDFLAGS" LD="$LD" with_gnu_ld="$with_gnu_ld" \ + ${CONFIG_SHELL-/bin/sh} "$ac_aux_dir/config.rpath" "$host" > conftest.sh + . ./conftest.sh + rm -f ./conftest.sh + acl_cv_rpath=done + ]) + wl="$acl_cv_wl" + acl_libext="$acl_cv_libext" + acl_shlibext="$acl_cv_shlibext" + acl_libname_spec="$acl_cv_libname_spec" + acl_library_names_spec="$acl_cv_library_names_spec" + acl_hardcode_libdir_flag_spec="$acl_cv_hardcode_libdir_flag_spec" + acl_hardcode_libdir_separator="$acl_cv_hardcode_libdir_separator" + acl_hardcode_direct="$acl_cv_hardcode_direct" + acl_hardcode_minus_L="$acl_cv_hardcode_minus_L" + dnl Determine whether the user wants rpath handling at all. + AC_ARG_ENABLE([rpath], + [ --disable-rpath do not hardcode runtime library paths], + :, enable_rpath=yes) +]) + +dnl AC_LIB_FROMPACKAGE(name, package) +dnl declares that libname comes from the given package. The configure file +dnl will then not have a --with-libname-prefix option but a +dnl --with-package-prefix option. Several libraries can come from the same +dnl package. This declaration must occur before an AC_LIB_LINKFLAGS or similar +dnl macro call that searches for libname. +AC_DEFUN([AC_LIB_FROMPACKAGE], +[ + pushdef([NAME],[m4_translit([$1],[abcdefghijklmnopqrstuvwxyz./+-], + [ABCDEFGHIJKLMNOPQRSTUVWXYZ____])]) + define([acl_frompackage_]NAME, [$2]) + popdef([NAME]) + pushdef([PACK],[$2]) + pushdef([PACKUP],[m4_translit(PACK,[abcdefghijklmnopqrstuvwxyz./+-], + [ABCDEFGHIJKLMNOPQRSTUVWXYZ____])]) + define([acl_libsinpackage_]PACKUP, + m4_ifdef([acl_libsinpackage_]PACKUP, [m4_defn([acl_libsinpackage_]PACKUP)[, ]],)[lib$1]) + popdef([PACKUP]) + popdef([PACK]) +]) + +dnl AC_LIB_LINKFLAGS_BODY(name [, dependencies]) searches for libname and +dnl the libraries corresponding to explicit and implicit dependencies. +dnl Sets the LIB${NAME}, LTLIB${NAME} and INC${NAME} variables. +dnl Also, sets the LIB${NAME}_PREFIX variable to nonempty if libname was found +dnl in ${LIB${NAME}_PREFIX}/$acl_libdirstem. +AC_DEFUN([AC_LIB_LINKFLAGS_BODY], +[ + AC_REQUIRE([AC_LIB_PREPARE_MULTILIB]) + pushdef([NAME],[m4_translit([$1],[abcdefghijklmnopqrstuvwxyz./+-], + [ABCDEFGHIJKLMNOPQRSTUVWXYZ____])]) + pushdef([PACK],[m4_ifdef([acl_frompackage_]NAME, [acl_frompackage_]NAME, lib[$1])]) + pushdef([PACKUP],[m4_translit(PACK,[abcdefghijklmnopqrstuvwxyz./+-], + [ABCDEFGHIJKLMNOPQRSTUVWXYZ____])]) + pushdef([PACKLIBS],[m4_ifdef([acl_frompackage_]NAME, [acl_libsinpackage_]PACKUP, lib[$1])]) + dnl Autoconf >= 2.61 supports dots in --with options. + pushdef([P_A_C_K],[m4_if(m4_version_compare(m4_defn([m4_PACKAGE_VERSION]),[2.61]),[-1],[m4_translit(PACK,[.],[_])],PACK)]) + dnl By default, look in $includedir and $libdir. + use_additional=yes + AC_LIB_WITH_FINAL_PREFIX([ + eval additional_includedir=\"$includedir\" + eval additional_libdir=\"$libdir\" + ]) + AC_ARG_WITH(P_A_C_K[-prefix], +[[ --with-]]P_A_C_K[[-prefix[=DIR] search for ]PACKLIBS[ in DIR/include and DIR/lib + --without-]]P_A_C_K[[-prefix don't search for ]PACKLIBS[ in includedir and libdir]], +[ + if test "X$withval" = "Xno"; then + use_additional=no + else + if test "X$withval" = "X"; then + AC_LIB_WITH_FINAL_PREFIX([ + eval additional_includedir=\"$includedir\" + eval additional_libdir=\"$libdir\" + ]) + else + additional_includedir="$withval/include" + additional_libdir="$withval/$acl_libdirstem" + if test "$acl_libdirstem2" != "$acl_libdirstem" \ + && ! test -d "$withval/$acl_libdirstem"; then + additional_libdir="$withval/$acl_libdirstem2" + fi + fi + fi +]) + dnl Search the library and its dependencies in $additional_libdir and + dnl $LDFLAGS. Using breadth-first-seach. + LIB[]NAME= + LTLIB[]NAME= + INC[]NAME= + LIB[]NAME[]_PREFIX= + dnl HAVE_LIB${NAME} is an indicator that LIB${NAME}, LTLIB${NAME} have been + dnl computed. So it has to be reset here. + HAVE_LIB[]NAME= + rpathdirs= + ltrpathdirs= + names_already_handled= + names_next_round='$1 $2' + while test -n "$names_next_round"; do + names_this_round="$names_next_round" + names_next_round= + for name in $names_this_round; do + already_handled= + for n in $names_already_handled; do + if test "$n" = "$name"; then + already_handled=yes + break + fi + done + if test -z "$already_handled"; then + names_already_handled="$names_already_handled $name" + dnl See if it was already located by an earlier AC_LIB_LINKFLAGS + dnl or AC_LIB_HAVE_LINKFLAGS call. + uppername=`echo "$name" | sed -e 'y|abcdefghijklmnopqrstuvwxyz./+-|ABCDEFGHIJKLMNOPQRSTUVWXYZ____|'` + eval value=\"\$HAVE_LIB$uppername\" + if test -n "$value"; then + if test "$value" = yes; then + eval value=\"\$LIB$uppername\" + test -z "$value" || LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }$value" + eval value=\"\$LTLIB$uppername\" + test -z "$value" || LTLIB[]NAME="${LTLIB[]NAME}${LTLIB[]NAME:+ }$value" + else + dnl An earlier call to AC_LIB_HAVE_LINKFLAGS has determined + dnl that this library doesn't exist. So just drop it. + : + fi + else + dnl Search the library lib$name in $additional_libdir and $LDFLAGS + dnl and the already constructed $LIBNAME/$LTLIBNAME. + found_dir= + found_la= + found_so= + found_a= + eval libname=\"$acl_libname_spec\" # typically: libname=lib$name + if test -n "$acl_shlibext"; then + shrext=".$acl_shlibext" # typically: shrext=.so + else + shrext= + fi + if test $use_additional = yes; then + dir="$additional_libdir" + dnl The same code as in the loop below: + dnl First look for a shared library. + if test -n "$acl_shlibext"; then + if test -f "$dir/$libname$shrext"; then + found_dir="$dir" + found_so="$dir/$libname$shrext" + else + if test "$acl_library_names_spec" = '$libname$shrext$versuffix'; then + ver=`(cd "$dir" && \ + for f in "$libname$shrext".*; do echo "$f"; done \ + | sed -e "s,^$libname$shrext\\\\.,," \ + | sort -t '.' -n -r -k1,1 -k2,2 -k3,3 -k4,4 -k5,5 \ + | sed 1q ) 2>/dev/null` + if test -n "$ver" && test -f "$dir/$libname$shrext.$ver"; then + found_dir="$dir" + found_so="$dir/$libname$shrext.$ver" + fi + else + eval library_names=\"$acl_library_names_spec\" + for f in $library_names; do + if test -f "$dir/$f"; then + found_dir="$dir" + found_so="$dir/$f" + break + fi + done + fi + fi + fi + dnl Then look for a static library. + if test "X$found_dir" = "X"; then + if test -f "$dir/$libname.$acl_libext"; then + found_dir="$dir" + found_a="$dir/$libname.$acl_libext" + fi + fi + if test "X$found_dir" != "X"; then + if test -f "$dir/$libname.la"; then + found_la="$dir/$libname.la" + fi + fi + fi + if test "X$found_dir" = "X"; then + for x in $LDFLAGS $LTLIB[]NAME; do + AC_LIB_WITH_FINAL_PREFIX([eval x=\"$x\"]) + case "$x" in + -L*) + dir=`echo "X$x" | sed -e 's/^X-L//'` + dnl First look for a shared library. + if test -n "$acl_shlibext"; then + if test -f "$dir/$libname$shrext"; then + found_dir="$dir" + found_so="$dir/$libname$shrext" + else + if test "$acl_library_names_spec" = '$libname$shrext$versuffix'; then + ver=`(cd "$dir" && \ + for f in "$libname$shrext".*; do echo "$f"; done \ + | sed -e "s,^$libname$shrext\\\\.,," \ + | sort -t '.' -n -r -k1,1 -k2,2 -k3,3 -k4,4 -k5,5 \ + | sed 1q ) 2>/dev/null` + if test -n "$ver" && test -f "$dir/$libname$shrext.$ver"; then + found_dir="$dir" + found_so="$dir/$libname$shrext.$ver" + fi + else + eval library_names=\"$acl_library_names_spec\" + for f in $library_names; do + if test -f "$dir/$f"; then + found_dir="$dir" + found_so="$dir/$f" + break + fi + done + fi + fi + fi + dnl Then look for a static library. + if test "X$found_dir" = "X"; then + if test -f "$dir/$libname.$acl_libext"; then + found_dir="$dir" + found_a="$dir/$libname.$acl_libext" + fi + fi + if test "X$found_dir" != "X"; then + if test -f "$dir/$libname.la"; then + found_la="$dir/$libname.la" + fi + fi + ;; + esac + if test "X$found_dir" != "X"; then + break + fi + done + fi + if test "X$found_dir" != "X"; then + dnl Found the library. + LTLIB[]NAME="${LTLIB[]NAME}${LTLIB[]NAME:+ }-L$found_dir -l$name" + if test "X$found_so" != "X"; then + dnl Linking with a shared library. We attempt to hardcode its + dnl directory into the executable's runpath, unless it's the + dnl standard /usr/lib. + if test "$enable_rpath" = no \ + || test "X$found_dir" = "X/usr/$acl_libdirstem" \ + || test "X$found_dir" = "X/usr/$acl_libdirstem2"; then + dnl No hardcoding is needed. + LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }$found_so" + else + dnl Use an explicit option to hardcode DIR into the resulting + dnl binary. + dnl Potentially add DIR to ltrpathdirs. + dnl The ltrpathdirs will be appended to $LTLIBNAME at the end. + haveit= + for x in $ltrpathdirs; do + if test "X$x" = "X$found_dir"; then + haveit=yes + break + fi + done + if test -z "$haveit"; then + ltrpathdirs="$ltrpathdirs $found_dir" + fi + dnl The hardcoding into $LIBNAME is system dependent. + if test "$acl_hardcode_direct" = yes; then + dnl Using DIR/libNAME.so during linking hardcodes DIR into the + dnl resulting binary. + LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }$found_so" + else + if test -n "$acl_hardcode_libdir_flag_spec" && test "$acl_hardcode_minus_L" = no; then + dnl Use an explicit option to hardcode DIR into the resulting + dnl binary. + LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }$found_so" + dnl Potentially add DIR to rpathdirs. + dnl The rpathdirs will be appended to $LIBNAME at the end. + haveit= + for x in $rpathdirs; do + if test "X$x" = "X$found_dir"; then + haveit=yes + break + fi + done + if test -z "$haveit"; then + rpathdirs="$rpathdirs $found_dir" + fi + else + dnl Rely on "-L$found_dir". + dnl But don't add it if it's already contained in the LDFLAGS + dnl or the already constructed $LIBNAME + haveit= + for x in $LDFLAGS $LIB[]NAME; do + AC_LIB_WITH_FINAL_PREFIX([eval x=\"$x\"]) + if test "X$x" = "X-L$found_dir"; then + haveit=yes + break + fi + done + if test -z "$haveit"; then + LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }-L$found_dir" + fi + if test "$acl_hardcode_minus_L" != no; then + dnl FIXME: Not sure whether we should use + dnl "-L$found_dir -l$name" or "-L$found_dir $found_so" + dnl here. + LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }$found_so" + else + dnl We cannot use $acl_hardcode_runpath_var and LD_RUN_PATH + dnl here, because this doesn't fit in flags passed to the + dnl compiler. So give up. No hardcoding. This affects only + dnl very old systems. + dnl FIXME: Not sure whether we should use + dnl "-L$found_dir -l$name" or "-L$found_dir $found_so" + dnl here. + LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }-l$name" + fi + fi + fi + fi + else + if test "X$found_a" != "X"; then + dnl Linking with a static library. + LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }$found_a" + else + dnl We shouldn't come here, but anyway it's good to have a + dnl fallback. + LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }-L$found_dir -l$name" + fi + fi + dnl Assume the include files are nearby. + additional_includedir= + case "$found_dir" in + */$acl_libdirstem | */$acl_libdirstem/) + basedir=`echo "X$found_dir" | sed -e 's,^X,,' -e "s,/$acl_libdirstem/"'*$,,'` + if test "$name" = '$1'; then + LIB[]NAME[]_PREFIX="$basedir" + fi + additional_includedir="$basedir/include" + ;; + */$acl_libdirstem2 | */$acl_libdirstem2/) + basedir=`echo "X$found_dir" | sed -e 's,^X,,' -e "s,/$acl_libdirstem2/"'*$,,'` + if test "$name" = '$1'; then + LIB[]NAME[]_PREFIX="$basedir" + fi + additional_includedir="$basedir/include" + ;; + esac + if test "X$additional_includedir" != "X"; then + dnl Potentially add $additional_includedir to $INCNAME. + dnl But don't add it + dnl 1. if it's the standard /usr/include, + dnl 2. if it's /usr/local/include and we are using GCC on Linux, + dnl 3. if it's already present in $CPPFLAGS or the already + dnl constructed $INCNAME, + dnl 4. if it doesn't exist as a directory. + if test "X$additional_includedir" != "X/usr/include"; then + haveit= + if test "X$additional_includedir" = "X/usr/local/include"; then + if test -n "$GCC"; then + case $host_os in + linux* | gnu* | k*bsd*-gnu) haveit=yes;; + esac + fi + fi + if test -z "$haveit"; then + for x in $CPPFLAGS $INC[]NAME; do + AC_LIB_WITH_FINAL_PREFIX([eval x=\"$x\"]) + if test "X$x" = "X-I$additional_includedir"; then + haveit=yes + break + fi + done + if test -z "$haveit"; then + if test -d "$additional_includedir"; then + dnl Really add $additional_includedir to $INCNAME. + INC[]NAME="${INC[]NAME}${INC[]NAME:+ }-I$additional_includedir" + fi + fi + fi + fi + fi + dnl Look for dependencies. + if test -n "$found_la"; then + dnl Read the .la file. It defines the variables + dnl dlname, library_names, old_library, dependency_libs, current, + dnl age, revision, installed, dlopen, dlpreopen, libdir. + save_libdir="$libdir" + case "$found_la" in + */* | *\\*) . "$found_la" ;; + *) . "./$found_la" ;; + esac + libdir="$save_libdir" + dnl We use only dependency_libs. + for dep in $dependency_libs; do + case "$dep" in + -L*) + additional_libdir=`echo "X$dep" | sed -e 's/^X-L//'` + dnl Potentially add $additional_libdir to $LIBNAME and $LTLIBNAME. + dnl But don't add it + dnl 1. if it's the standard /usr/lib, + dnl 2. if it's /usr/local/lib and we are using GCC on Linux, + dnl 3. if it's already present in $LDFLAGS or the already + dnl constructed $LIBNAME, + dnl 4. if it doesn't exist as a directory. + if test "X$additional_libdir" != "X/usr/$acl_libdirstem" \ + && test "X$additional_libdir" != "X/usr/$acl_libdirstem2"; then + haveit= + if test "X$additional_libdir" = "X/usr/local/$acl_libdirstem" \ + || test "X$additional_libdir" = "X/usr/local/$acl_libdirstem2"; then + if test -n "$GCC"; then + case $host_os in + linux* | gnu* | k*bsd*-gnu) haveit=yes;; + esac + fi + fi + if test -z "$haveit"; then + haveit= + for x in $LDFLAGS $LIB[]NAME; do + AC_LIB_WITH_FINAL_PREFIX([eval x=\"$x\"]) + if test "X$x" = "X-L$additional_libdir"; then + haveit=yes + break + fi + done + if test -z "$haveit"; then + if test -d "$additional_libdir"; then + dnl Really add $additional_libdir to $LIBNAME. + LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }-L$additional_libdir" + fi + fi + haveit= + for x in $LDFLAGS $LTLIB[]NAME; do + AC_LIB_WITH_FINAL_PREFIX([eval x=\"$x\"]) + if test "X$x" = "X-L$additional_libdir"; then + haveit=yes + break + fi + done + if test -z "$haveit"; then + if test -d "$additional_libdir"; then + dnl Really add $additional_libdir to $LTLIBNAME. + LTLIB[]NAME="${LTLIB[]NAME}${LTLIB[]NAME:+ }-L$additional_libdir" + fi + fi + fi + fi + ;; + -R*) + dir=`echo "X$dep" | sed -e 's/^X-R//'` + if test "$enable_rpath" != no; then + dnl Potentially add DIR to rpathdirs. + dnl The rpathdirs will be appended to $LIBNAME at the end. + haveit= + for x in $rpathdirs; do + if test "X$x" = "X$dir"; then + haveit=yes + break + fi + done + if test -z "$haveit"; then + rpathdirs="$rpathdirs $dir" + fi + dnl Potentially add DIR to ltrpathdirs. + dnl The ltrpathdirs will be appended to $LTLIBNAME at the end. + haveit= + for x in $ltrpathdirs; do + if test "X$x" = "X$dir"; then + haveit=yes + break + fi + done + if test -z "$haveit"; then + ltrpathdirs="$ltrpathdirs $dir" + fi + fi + ;; + -l*) + dnl Handle this in the next round. + names_next_round="$names_next_round "`echo "X$dep" | sed -e 's/^X-l//'` + ;; + *.la) + dnl Handle this in the next round. Throw away the .la's + dnl directory; it is already contained in a preceding -L + dnl option. + names_next_round="$names_next_round "`echo "X$dep" | sed -e 's,^X.*/,,' -e 's,^lib,,' -e 's,\.la$,,'` + ;; + *) + dnl Most likely an immediate library name. + LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }$dep" + LTLIB[]NAME="${LTLIB[]NAME}${LTLIB[]NAME:+ }$dep" + ;; + esac + done + fi + else + dnl Didn't find the library; assume it is in the system directories + dnl known to the linker and runtime loader. (All the system + dnl directories known to the linker should also be known to the + dnl runtime loader, otherwise the system is severely misconfigured.) + LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }-l$name" + LTLIB[]NAME="${LTLIB[]NAME}${LTLIB[]NAME:+ }-l$name" + fi + fi + fi + done + done + if test "X$rpathdirs" != "X"; then + if test -n "$acl_hardcode_libdir_separator"; then + dnl Weird platform: only the last -rpath option counts, the user must + dnl pass all path elements in one option. We can arrange that for a + dnl single library, but not when more than one $LIBNAMEs are used. + alldirs= + for found_dir in $rpathdirs; do + alldirs="${alldirs}${alldirs:+$acl_hardcode_libdir_separator}$found_dir" + done + dnl Note: acl_hardcode_libdir_flag_spec uses $libdir and $wl. + acl_save_libdir="$libdir" + libdir="$alldirs" + eval flag=\"$acl_hardcode_libdir_flag_spec\" + libdir="$acl_save_libdir" + LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }$flag" + else + dnl The -rpath options are cumulative. + for found_dir in $rpathdirs; do + acl_save_libdir="$libdir" + libdir="$found_dir" + eval flag=\"$acl_hardcode_libdir_flag_spec\" + libdir="$acl_save_libdir" + LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }$flag" + done + fi + fi + if test "X$ltrpathdirs" != "X"; then + dnl When using libtool, the option that works for both libraries and + dnl executables is -R. The -R options are cumulative. + for found_dir in $ltrpathdirs; do + LTLIB[]NAME="${LTLIB[]NAME}${LTLIB[]NAME:+ }-R$found_dir" + done + fi + popdef([P_A_C_K]) + popdef([PACKLIBS]) + popdef([PACKUP]) + popdef([PACK]) + popdef([NAME]) +]) + +dnl AC_LIB_APPENDTOVAR(VAR, CONTENTS) appends the elements of CONTENTS to VAR, +dnl unless already present in VAR. +dnl Works only for CPPFLAGS, not for LIB* variables because that sometimes +dnl contains two or three consecutive elements that belong together. +AC_DEFUN([AC_LIB_APPENDTOVAR], +[ + for element in [$2]; do + haveit= + for x in $[$1]; do + AC_LIB_WITH_FINAL_PREFIX([eval x=\"$x\"]) + if test "X$x" = "X$element"; then + haveit=yes + break + fi + done + if test -z "$haveit"; then + [$1]="${[$1]}${[$1]:+ }$element" + fi + done +]) + +dnl For those cases where a variable contains several -L and -l options +dnl referring to unknown libraries and directories, this macro determines the +dnl necessary additional linker options for the runtime path. +dnl AC_LIB_LINKFLAGS_FROM_LIBS([LDADDVAR], [LIBSVALUE], [USE-LIBTOOL]) +dnl sets LDADDVAR to linker options needed together with LIBSVALUE. +dnl If USE-LIBTOOL evaluates to non-empty, linking with libtool is assumed, +dnl otherwise linking without libtool is assumed. +AC_DEFUN([AC_LIB_LINKFLAGS_FROM_LIBS], +[ + AC_REQUIRE([AC_LIB_RPATH]) + AC_REQUIRE([AC_LIB_PREPARE_MULTILIB]) + $1= + if test "$enable_rpath" != no; then + if test -n "$acl_hardcode_libdir_flag_spec" && test "$acl_hardcode_minus_L" = no; then + dnl Use an explicit option to hardcode directories into the resulting + dnl binary. + rpathdirs= + next= + for opt in $2; do + if test -n "$next"; then + dir="$next" + dnl No need to hardcode the standard /usr/lib. + if test "X$dir" != "X/usr/$acl_libdirstem" \ + && test "X$dir" != "X/usr/$acl_libdirstem2"; then + rpathdirs="$rpathdirs $dir" + fi + next= + else + case $opt in + -L) next=yes ;; + -L*) dir=`echo "X$opt" | sed -e 's,^X-L,,'` + dnl No need to hardcode the standard /usr/lib. + if test "X$dir" != "X/usr/$acl_libdirstem" \ + && test "X$dir" != "X/usr/$acl_libdirstem2"; then + rpathdirs="$rpathdirs $dir" + fi + next= ;; + *) next= ;; + esac + fi + done + if test "X$rpathdirs" != "X"; then + if test -n ""$3""; then + dnl libtool is used for linking. Use -R options. + for dir in $rpathdirs; do + $1="${$1}${$1:+ }-R$dir" + done + else + dnl The linker is used for linking directly. + if test -n "$acl_hardcode_libdir_separator"; then + dnl Weird platform: only the last -rpath option counts, the user + dnl must pass all path elements in one option. + alldirs= + for dir in $rpathdirs; do + alldirs="${alldirs}${alldirs:+$acl_hardcode_libdir_separator}$dir" + done + acl_save_libdir="$libdir" + libdir="$alldirs" + eval flag=\"$acl_hardcode_libdir_flag_spec\" + libdir="$acl_save_libdir" + $1="$flag" + else + dnl The -rpath options are cumulative. + for dir in $rpathdirs; do + acl_save_libdir="$libdir" + libdir="$dir" + eval flag=\"$acl_hardcode_libdir_flag_spec\" + libdir="$acl_save_libdir" + $1="${$1}${$1:+ }$flag" + done + fi + fi + fi + fi + fi + AC_SUBST([$1]) +]) diff -Nru klavaro-1.9.9/m4/lib-prefix.m4 klavaro-3.00/m4/lib-prefix.m4 --- klavaro-1.9.9/m4/lib-prefix.m4 1970-01-01 00:00:00.000000000 +0000 +++ klavaro-3.00/m4/lib-prefix.m4 2014-01-04 19:02:05.000000000 +0000 @@ -0,0 +1,224 @@ +# lib-prefix.m4 serial 7 (gettext-0.18) +dnl Copyright (C) 2001-2005, 2008-2013 Free Software Foundation, Inc. +dnl This file is free software; the Free Software Foundation +dnl gives unlimited permission to copy and/or distribute it, +dnl with or without modifications, as long as this notice is preserved. + +dnl From Bruno Haible. + +dnl AC_LIB_ARG_WITH is synonymous to AC_ARG_WITH in autoconf-2.13, and +dnl similar to AC_ARG_WITH in autoconf 2.52...2.57 except that is doesn't +dnl require excessive bracketing. +ifdef([AC_HELP_STRING], +[AC_DEFUN([AC_LIB_ARG_WITH], [AC_ARG_WITH([$1],[[$2]],[$3],[$4])])], +[AC_DEFUN([AC_][LIB_ARG_WITH], [AC_ARG_WITH([$1],[$2],[$3],[$4])])]) + +dnl AC_LIB_PREFIX adds to the CPPFLAGS and LDFLAGS the flags that are needed +dnl to access previously installed libraries. The basic assumption is that +dnl a user will want packages to use other packages he previously installed +dnl with the same --prefix option. +dnl This macro is not needed if only AC_LIB_LINKFLAGS is used to locate +dnl libraries, but is otherwise very convenient. +AC_DEFUN([AC_LIB_PREFIX], +[ + AC_BEFORE([$0], [AC_LIB_LINKFLAGS]) + AC_REQUIRE([AC_PROG_CC]) + AC_REQUIRE([AC_CANONICAL_HOST]) + AC_REQUIRE([AC_LIB_PREPARE_MULTILIB]) + AC_REQUIRE([AC_LIB_PREPARE_PREFIX]) + dnl By default, look in $includedir and $libdir. + use_additional=yes + AC_LIB_WITH_FINAL_PREFIX([ + eval additional_includedir=\"$includedir\" + eval additional_libdir=\"$libdir\" + ]) + AC_LIB_ARG_WITH([lib-prefix], +[ --with-lib-prefix[=DIR] search for libraries in DIR/include and DIR/lib + --without-lib-prefix don't search for libraries in includedir and libdir], +[ + if test "X$withval" = "Xno"; then + use_additional=no + else + if test "X$withval" = "X"; then + AC_LIB_WITH_FINAL_PREFIX([ + eval additional_includedir=\"$includedir\" + eval additional_libdir=\"$libdir\" + ]) + else + additional_includedir="$withval/include" + additional_libdir="$withval/$acl_libdirstem" + fi + fi +]) + if test $use_additional = yes; then + dnl Potentially add $additional_includedir to $CPPFLAGS. + dnl But don't add it + dnl 1. if it's the standard /usr/include, + dnl 2. if it's already present in $CPPFLAGS, + dnl 3. if it's /usr/local/include and we are using GCC on Linux, + dnl 4. if it doesn't exist as a directory. + if test "X$additional_includedir" != "X/usr/include"; then + haveit= + for x in $CPPFLAGS; do + AC_LIB_WITH_FINAL_PREFIX([eval x=\"$x\"]) + if test "X$x" = "X-I$additional_includedir"; then + haveit=yes + break + fi + done + if test -z "$haveit"; then + if test "X$additional_includedir" = "X/usr/local/include"; then + if test -n "$GCC"; then + case $host_os in + linux* | gnu* | k*bsd*-gnu) haveit=yes;; + esac + fi + fi + if test -z "$haveit"; then + if test -d "$additional_includedir"; then + dnl Really add $additional_includedir to $CPPFLAGS. + CPPFLAGS="${CPPFLAGS}${CPPFLAGS:+ }-I$additional_includedir" + fi + fi + fi + fi + dnl Potentially add $additional_libdir to $LDFLAGS. + dnl But don't add it + dnl 1. if it's the standard /usr/lib, + dnl 2. if it's already present in $LDFLAGS, + dnl 3. if it's /usr/local/lib and we are using GCC on Linux, + dnl 4. if it doesn't exist as a directory. + if test "X$additional_libdir" != "X/usr/$acl_libdirstem"; then + haveit= + for x in $LDFLAGS; do + AC_LIB_WITH_FINAL_PREFIX([eval x=\"$x\"]) + if test "X$x" = "X-L$additional_libdir"; then + haveit=yes + break + fi + done + if test -z "$haveit"; then + if test "X$additional_libdir" = "X/usr/local/$acl_libdirstem"; then + if test -n "$GCC"; then + case $host_os in + linux*) haveit=yes;; + esac + fi + fi + if test -z "$haveit"; then + if test -d "$additional_libdir"; then + dnl Really add $additional_libdir to $LDFLAGS. + LDFLAGS="${LDFLAGS}${LDFLAGS:+ }-L$additional_libdir" + fi + fi + fi + fi + fi +]) + +dnl AC_LIB_PREPARE_PREFIX creates variables acl_final_prefix, +dnl acl_final_exec_prefix, containing the values to which $prefix and +dnl $exec_prefix will expand at the end of the configure script. +AC_DEFUN([AC_LIB_PREPARE_PREFIX], +[ + dnl Unfortunately, prefix and exec_prefix get only finally determined + dnl at the end of configure. + if test "X$prefix" = "XNONE"; then + acl_final_prefix="$ac_default_prefix" + else + acl_final_prefix="$prefix" + fi + if test "X$exec_prefix" = "XNONE"; then + acl_final_exec_prefix='${prefix}' + else + acl_final_exec_prefix="$exec_prefix" + fi + acl_save_prefix="$prefix" + prefix="$acl_final_prefix" + eval acl_final_exec_prefix=\"$acl_final_exec_prefix\" + prefix="$acl_save_prefix" +]) + +dnl AC_LIB_WITH_FINAL_PREFIX([statement]) evaluates statement, with the +dnl variables prefix and exec_prefix bound to the values they will have +dnl at the end of the configure script. +AC_DEFUN([AC_LIB_WITH_FINAL_PREFIX], +[ + acl_save_prefix="$prefix" + prefix="$acl_final_prefix" + acl_save_exec_prefix="$exec_prefix" + exec_prefix="$acl_final_exec_prefix" + $1 + exec_prefix="$acl_save_exec_prefix" + prefix="$acl_save_prefix" +]) + +dnl AC_LIB_PREPARE_MULTILIB creates +dnl - a variable acl_libdirstem, containing the basename of the libdir, either +dnl "lib" or "lib64" or "lib/64", +dnl - a variable acl_libdirstem2, as a secondary possible value for +dnl acl_libdirstem, either the same as acl_libdirstem or "lib/sparcv9" or +dnl "lib/amd64". +AC_DEFUN([AC_LIB_PREPARE_MULTILIB], +[ + dnl There is no formal standard regarding lib and lib64. + dnl On glibc systems, the current practice is that on a system supporting + dnl 32-bit and 64-bit instruction sets or ABIs, 64-bit libraries go under + dnl $prefix/lib64 and 32-bit libraries go under $prefix/lib. We determine + dnl the compiler's default mode by looking at the compiler's library search + dnl path. If at least one of its elements ends in /lib64 or points to a + dnl directory whose absolute pathname ends in /lib64, we assume a 64-bit ABI. + dnl Otherwise we use the default, namely "lib". + dnl On Solaris systems, the current practice is that on a system supporting + dnl 32-bit and 64-bit instruction sets or ABIs, 64-bit libraries go under + dnl $prefix/lib/64 (which is a symlink to either $prefix/lib/sparcv9 or + dnl $prefix/lib/amd64) and 32-bit libraries go under $prefix/lib. + AC_REQUIRE([AC_CANONICAL_HOST]) + acl_libdirstem=lib + acl_libdirstem2= + case "$host_os" in + solaris*) + dnl See Solaris 10 Software Developer Collection > Solaris 64-bit Developer's Guide > The Development Environment + dnl . + dnl "Portable Makefiles should refer to any library directories using the 64 symbolic link." + dnl But we want to recognize the sparcv9 or amd64 subdirectory also if the + dnl symlink is missing, so we set acl_libdirstem2 too. + AC_CACHE_CHECK([for 64-bit host], [gl_cv_solaris_64bit], + [AC_EGREP_CPP([sixtyfour bits], [ +#ifdef _LP64 +sixtyfour bits +#endif + ], [gl_cv_solaris_64bit=yes], [gl_cv_solaris_64bit=no]) + ]) + if test $gl_cv_solaris_64bit = yes; then + acl_libdirstem=lib/64 + case "$host_cpu" in + sparc*) acl_libdirstem2=lib/sparcv9 ;; + i*86 | x86_64) acl_libdirstem2=lib/amd64 ;; + esac + fi + ;; + *) + searchpath=`(LC_ALL=C $CC -print-search-dirs) 2>/dev/null | sed -n -e 's,^libraries: ,,p' | sed -e 's,^=,,'` + if test -n "$searchpath"; then + acl_save_IFS="${IFS= }"; IFS=":" + for searchdir in $searchpath; do + if test -d "$searchdir"; then + case "$searchdir" in + */lib64/ | */lib64 ) acl_libdirstem=lib64 ;; + */../ | */.. ) + # Better ignore directories of this form. They are misleading. + ;; + *) searchdir=`cd "$searchdir" && pwd` + case "$searchdir" in + */lib64 ) acl_libdirstem=lib64 ;; + esac ;; + esac + fi + done + IFS="$acl_save_IFS" + fi + ;; + esac + test -n "$acl_libdirstem2" || acl_libdirstem2="$acl_libdirstem" +]) diff -Nru klavaro-1.9.9/m4/libtool.m4 klavaro-3.00/m4/libtool.m4 --- klavaro-1.9.9/m4/libtool.m4 1970-01-01 00:00:00.000000000 +0000 +++ klavaro-3.00/m4/libtool.m4 2014-01-02 20:30:56.000000000 +0000 @@ -0,0 +1,7997 @@ +# libtool.m4 - Configure libtool for the host system. -*-Autoconf-*- +# +# Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2003, 2004, 2005, +# 2006, 2007, 2008, 2009, 2010, 2011 Free Software +# Foundation, Inc. +# Written by Gordon Matzigkeit, 1996 +# +# This file is free software; the Free Software Foundation gives +# unlimited permission to copy and/or distribute it, with or without +# modifications, as long as this notice is preserved. + +m4_define([_LT_COPYING], [dnl +# Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2003, 2004, 2005, +# 2006, 2007, 2008, 2009, 2010, 2011 Free Software +# Foundation, Inc. +# Written by Gordon Matzigkeit, 1996 +# +# This file is part of GNU Libtool. +# +# GNU Libtool is free software; you can redistribute it and/or +# modify it under the terms of the GNU General Public License as +# published by the Free Software Foundation; either version 2 of +# the License, or (at your option) any later version. +# +# As a special exception to the GNU General Public License, +# if you distribute this file as part of a program or library that +# is built using GNU Libtool, you may include this file under the +# same distribution terms that you use for the rest of that program. +# +# GNU Libtool 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 GNU Libtool; see the file COPYING. If not, a copy +# can be downloaded from http://www.gnu.org/licenses/gpl.html, or +# obtained by writing to the Free Software Foundation, Inc., +# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. +]) + +# serial 57 LT_INIT + + +# LT_PREREQ(VERSION) +# ------------------ +# Complain and exit if this libtool version is less that VERSION. +m4_defun([LT_PREREQ], +[m4_if(m4_version_compare(m4_defn([LT_PACKAGE_VERSION]), [$1]), -1, + [m4_default([$3], + [m4_fatal([Libtool version $1 or higher is required], + 63)])], + [$2])]) + + +# _LT_CHECK_BUILDDIR +# ------------------ +# Complain if the absolute build directory name contains unusual characters +m4_defun([_LT_CHECK_BUILDDIR], +[case `pwd` in + *\ * | *\ *) + AC_MSG_WARN([Libtool does not cope well with whitespace in `pwd`]) ;; +esac +]) + + +# LT_INIT([OPTIONS]) +# ------------------ +AC_DEFUN([LT_INIT], +[AC_PREREQ([2.58])dnl We use AC_INCLUDES_DEFAULT +AC_REQUIRE([AC_CONFIG_AUX_DIR_DEFAULT])dnl +AC_BEFORE([$0], [LT_LANG])dnl +AC_BEFORE([$0], [LT_OUTPUT])dnl +AC_BEFORE([$0], [LTDL_INIT])dnl +m4_require([_LT_CHECK_BUILDDIR])dnl + +dnl Autoconf doesn't catch unexpanded LT_ macros by default: +m4_pattern_forbid([^_?LT_[A-Z_]+$])dnl +m4_pattern_allow([^(_LT_EOF|LT_DLGLOBAL|LT_DLLAZY_OR_NOW|LT_MULTI_MODULE)$])dnl +dnl aclocal doesn't pull ltoptions.m4, ltsugar.m4, or ltversion.m4 +dnl unless we require an AC_DEFUNed macro: +AC_REQUIRE([LTOPTIONS_VERSION])dnl +AC_REQUIRE([LTSUGAR_VERSION])dnl +AC_REQUIRE([LTVERSION_VERSION])dnl +AC_REQUIRE([LTOBSOLETE_VERSION])dnl +m4_require([_LT_PROG_LTMAIN])dnl + +_LT_SHELL_INIT([SHELL=${CONFIG_SHELL-/bin/sh}]) + +dnl Parse OPTIONS +_LT_SET_OPTIONS([$0], [$1]) + +# This can be used to rebuild libtool when needed +LIBTOOL_DEPS="$ltmain" + +# Always use our own libtool. +LIBTOOL='$(SHELL) $(top_builddir)/libtool' +AC_SUBST(LIBTOOL)dnl + +_LT_SETUP + +# Only expand once: +m4_define([LT_INIT]) +])# LT_INIT + +# Old names: +AU_ALIAS([AC_PROG_LIBTOOL], [LT_INIT]) +AU_ALIAS([AM_PROG_LIBTOOL], [LT_INIT]) +dnl aclocal-1.4 backwards compatibility: +dnl AC_DEFUN([AC_PROG_LIBTOOL], []) +dnl AC_DEFUN([AM_PROG_LIBTOOL], []) + + +# _LT_CC_BASENAME(CC) +# ------------------- +# Calculate cc_basename. Skip known compiler wrappers and cross-prefix. +m4_defun([_LT_CC_BASENAME], +[for cc_temp in $1""; do + case $cc_temp in + compile | *[[\\/]]compile | ccache | *[[\\/]]ccache ) ;; + distcc | *[[\\/]]distcc | purify | *[[\\/]]purify ) ;; + \-*) ;; + *) break;; + esac +done +cc_basename=`$ECHO "$cc_temp" | $SED "s%.*/%%; s%^$host_alias-%%"` +]) + + +# _LT_FILEUTILS_DEFAULTS +# ---------------------- +# It is okay to use these file commands and assume they have been set +# sensibly after `m4_require([_LT_FILEUTILS_DEFAULTS])'. +m4_defun([_LT_FILEUTILS_DEFAULTS], +[: ${CP="cp -f"} +: ${MV="mv -f"} +: ${RM="rm -f"} +])# _LT_FILEUTILS_DEFAULTS + + +# _LT_SETUP +# --------- +m4_defun([_LT_SETUP], +[AC_REQUIRE([AC_CANONICAL_HOST])dnl +AC_REQUIRE([AC_CANONICAL_BUILD])dnl +AC_REQUIRE([_LT_PREPARE_SED_QUOTE_VARS])dnl +AC_REQUIRE([_LT_PROG_ECHO_BACKSLASH])dnl + +_LT_DECL([], [PATH_SEPARATOR], [1], [The PATH separator for the build system])dnl +dnl +_LT_DECL([], [host_alias], [0], [The host system])dnl +_LT_DECL([], [host], [0])dnl +_LT_DECL([], [host_os], [0])dnl +dnl +_LT_DECL([], [build_alias], [0], [The build system])dnl +_LT_DECL([], [build], [0])dnl +_LT_DECL([], [build_os], [0])dnl +dnl +AC_REQUIRE([AC_PROG_CC])dnl +AC_REQUIRE([LT_PATH_LD])dnl +AC_REQUIRE([LT_PATH_NM])dnl +dnl +AC_REQUIRE([AC_PROG_LN_S])dnl +test -z "$LN_S" && LN_S="ln -s" +_LT_DECL([], [LN_S], [1], [Whether we need soft or hard links])dnl +dnl +AC_REQUIRE([LT_CMD_MAX_LEN])dnl +_LT_DECL([objext], [ac_objext], [0], [Object file suffix (normally "o")])dnl +_LT_DECL([], [exeext], [0], [Executable file suffix (normally "")])dnl +dnl +m4_require([_LT_FILEUTILS_DEFAULTS])dnl +m4_require([_LT_CHECK_SHELL_FEATURES])dnl +m4_require([_LT_PATH_CONVERSION_FUNCTIONS])dnl +m4_require([_LT_CMD_RELOAD])dnl +m4_require([_LT_CHECK_MAGIC_METHOD])dnl +m4_require([_LT_CHECK_SHAREDLIB_FROM_LINKLIB])dnl +m4_require([_LT_CMD_OLD_ARCHIVE])dnl +m4_require([_LT_CMD_GLOBAL_SYMBOLS])dnl +m4_require([_LT_WITH_SYSROOT])dnl + +_LT_CONFIG_LIBTOOL_INIT([ +# See if we are running on zsh, and set the options which allow our +# commands through without removal of \ escapes INIT. +if test -n "\${ZSH_VERSION+set}" ; then + setopt NO_GLOB_SUBST +fi +]) +if test -n "${ZSH_VERSION+set}" ; then + setopt NO_GLOB_SUBST +fi + +_LT_CHECK_OBJDIR + +m4_require([_LT_TAG_COMPILER])dnl + +case $host_os in +aix3*) + # AIX sometimes has problems with the GCC collect2 program. For some + # reason, if we set the COLLECT_NAMES environment variable, the problems + # vanish in a puff of smoke. + if test "X${COLLECT_NAMES+set}" != Xset; then + COLLECT_NAMES= + export COLLECT_NAMES + fi + ;; +esac + +# Global variables: +ofile=libtool +can_build_shared=yes + +# All known linkers require a `.a' archive for static linking (except MSVC, +# which needs '.lib'). +libext=a + +with_gnu_ld="$lt_cv_prog_gnu_ld" + +old_CC="$CC" +old_CFLAGS="$CFLAGS" + +# Set sane defaults for various variables +test -z "$CC" && CC=cc +test -z "$LTCC" && LTCC=$CC +test -z "$LTCFLAGS" && LTCFLAGS=$CFLAGS +test -z "$LD" && LD=ld +test -z "$ac_objext" && ac_objext=o + +_LT_CC_BASENAME([$compiler]) + +# Only perform the check for file, if the check method requires it +test -z "$MAGIC_CMD" && MAGIC_CMD=file +case $deplibs_check_method in +file_magic*) + if test "$file_magic_cmd" = '$MAGIC_CMD'; then + _LT_PATH_MAGIC + fi + ;; +esac + +# Use C for the default configuration in the libtool script +LT_SUPPORTED_TAG([CC]) +_LT_LANG_C_CONFIG +_LT_LANG_DEFAULT_CONFIG +_LT_CONFIG_COMMANDS +])# _LT_SETUP + + +# _LT_PREPARE_SED_QUOTE_VARS +# -------------------------- +# Define a few sed substitution that help us do robust quoting. +m4_defun([_LT_PREPARE_SED_QUOTE_VARS], +[# Backslashify metacharacters that are still active within +# double-quoted strings. +sed_quote_subst='s/\([["`$\\]]\)/\\\1/g' + +# Same as above, but do not quote variable references. +double_quote_subst='s/\([["`\\]]\)/\\\1/g' + +# Sed substitution to delay expansion of an escaped shell variable in a +# double_quote_subst'ed string. +delay_variable_subst='s/\\\\\\\\\\\$/\\\\\\$/g' + +# Sed substitution to delay expansion of an escaped single quote. +delay_single_quote_subst='s/'\''/'\'\\\\\\\'\''/g' + +# Sed substitution to avoid accidental globbing in evaled expressions +no_glob_subst='s/\*/\\\*/g' +]) + +# _LT_PROG_LTMAIN +# --------------- +# Note that this code is called both from `configure', and `config.status' +# now that we use AC_CONFIG_COMMANDS to generate libtool. Notably, +# `config.status' has no value for ac_aux_dir unless we are using Automake, +# so we pass a copy along to make sure it has a sensible value anyway. +m4_defun([_LT_PROG_LTMAIN], +[m4_ifdef([AC_REQUIRE_AUX_FILE], [AC_REQUIRE_AUX_FILE([ltmain.sh])])dnl +_LT_CONFIG_LIBTOOL_INIT([ac_aux_dir='$ac_aux_dir']) +ltmain="$ac_aux_dir/ltmain.sh" +])# _LT_PROG_LTMAIN + + +## ------------------------------------- ## +## Accumulate code for creating libtool. ## +## ------------------------------------- ## + +# So that we can recreate a full libtool script including additional +# tags, we accumulate the chunks of code to send to AC_CONFIG_COMMANDS +# in macros and then make a single call at the end using the `libtool' +# label. + + +# _LT_CONFIG_LIBTOOL_INIT([INIT-COMMANDS]) +# ---------------------------------------- +# Register INIT-COMMANDS to be passed to AC_CONFIG_COMMANDS later. +m4_define([_LT_CONFIG_LIBTOOL_INIT], +[m4_ifval([$1], + [m4_append([_LT_OUTPUT_LIBTOOL_INIT], + [$1 +])])]) + +# Initialize. +m4_define([_LT_OUTPUT_LIBTOOL_INIT]) + + +# _LT_CONFIG_LIBTOOL([COMMANDS]) +# ------------------------------ +# Register COMMANDS to be passed to AC_CONFIG_COMMANDS later. +m4_define([_LT_CONFIG_LIBTOOL], +[m4_ifval([$1], + [m4_append([_LT_OUTPUT_LIBTOOL_COMMANDS], + [$1 +])])]) + +# Initialize. +m4_define([_LT_OUTPUT_LIBTOOL_COMMANDS]) + + +# _LT_CONFIG_SAVE_COMMANDS([COMMANDS], [INIT_COMMANDS]) +# ----------------------------------------------------- +m4_defun([_LT_CONFIG_SAVE_COMMANDS], +[_LT_CONFIG_LIBTOOL([$1]) +_LT_CONFIG_LIBTOOL_INIT([$2]) +]) + + +# _LT_FORMAT_COMMENT([COMMENT]) +# ----------------------------- +# Add leading comment marks to the start of each line, and a trailing +# full-stop to the whole comment if one is not present already. +m4_define([_LT_FORMAT_COMMENT], +[m4_ifval([$1], [ +m4_bpatsubst([m4_bpatsubst([$1], [^ *], [# ])], + [['`$\]], [\\\&])]m4_bmatch([$1], [[!?.]$], [], [.]) +)]) + + + +## ------------------------ ## +## FIXME: Eliminate VARNAME ## +## ------------------------ ## + + +# _LT_DECL([CONFIGNAME], VARNAME, VALUE, [DESCRIPTION], [IS-TAGGED?]) +# ------------------------------------------------------------------- +# CONFIGNAME is the name given to the value in the libtool script. +# VARNAME is the (base) name used in the configure script. +# VALUE may be 0, 1 or 2 for a computed quote escaped value based on +# VARNAME. Any other value will be used directly. +m4_define([_LT_DECL], +[lt_if_append_uniq([lt_decl_varnames], [$2], [, ], + [lt_dict_add_subkey([lt_decl_dict], [$2], [libtool_name], + [m4_ifval([$1], [$1], [$2])]) + lt_dict_add_subkey([lt_decl_dict], [$2], [value], [$3]) + m4_ifval([$4], + [lt_dict_add_subkey([lt_decl_dict], [$2], [description], [$4])]) + lt_dict_add_subkey([lt_decl_dict], [$2], + [tagged?], [m4_ifval([$5], [yes], [no])])]) +]) + + +# _LT_TAGDECL([CONFIGNAME], VARNAME, VALUE, [DESCRIPTION]) +# -------------------------------------------------------- +m4_define([_LT_TAGDECL], [_LT_DECL([$1], [$2], [$3], [$4], [yes])]) + + +# lt_decl_tag_varnames([SEPARATOR], [VARNAME1...]) +# ------------------------------------------------ +m4_define([lt_decl_tag_varnames], +[_lt_decl_filter([tagged?], [yes], $@)]) + + +# _lt_decl_filter(SUBKEY, VALUE, [SEPARATOR], [VARNAME1..]) +# --------------------------------------------------------- +m4_define([_lt_decl_filter], +[m4_case([$#], + [0], [m4_fatal([$0: too few arguments: $#])], + [1], [m4_fatal([$0: too few arguments: $#: $1])], + [2], [lt_dict_filter([lt_decl_dict], [$1], [$2], [], lt_decl_varnames)], + [3], [lt_dict_filter([lt_decl_dict], [$1], [$2], [$3], lt_decl_varnames)], + [lt_dict_filter([lt_decl_dict], $@)])[]dnl +]) + + +# lt_decl_quote_varnames([SEPARATOR], [VARNAME1...]) +# -------------------------------------------------- +m4_define([lt_decl_quote_varnames], +[_lt_decl_filter([value], [1], $@)]) + + +# lt_decl_dquote_varnames([SEPARATOR], [VARNAME1...]) +# --------------------------------------------------- +m4_define([lt_decl_dquote_varnames], +[_lt_decl_filter([value], [2], $@)]) + + +# lt_decl_varnames_tagged([SEPARATOR], [VARNAME1...]) +# --------------------------------------------------- +m4_define([lt_decl_varnames_tagged], +[m4_assert([$# <= 2])dnl +_$0(m4_quote(m4_default([$1], [[, ]])), + m4_ifval([$2], [[$2]], [m4_dquote(lt_decl_tag_varnames)]), + m4_split(m4_normalize(m4_quote(_LT_TAGS)), [ ]))]) +m4_define([_lt_decl_varnames_tagged], +[m4_ifval([$3], [lt_combine([$1], [$2], [_], $3)])]) + + +# lt_decl_all_varnames([SEPARATOR], [VARNAME1...]) +# ------------------------------------------------ +m4_define([lt_decl_all_varnames], +[_$0(m4_quote(m4_default([$1], [[, ]])), + m4_if([$2], [], + m4_quote(lt_decl_varnames), + m4_quote(m4_shift($@))))[]dnl +]) +m4_define([_lt_decl_all_varnames], +[lt_join($@, lt_decl_varnames_tagged([$1], + lt_decl_tag_varnames([[, ]], m4_shift($@))))dnl +]) + + +# _LT_CONFIG_STATUS_DECLARE([VARNAME]) +# ------------------------------------ +# Quote a variable value, and forward it to `config.status' so that its +# declaration there will have the same value as in `configure'. VARNAME +# must have a single quote delimited value for this to work. +m4_define([_LT_CONFIG_STATUS_DECLARE], +[$1='`$ECHO "$][$1" | $SED "$delay_single_quote_subst"`']) + + +# _LT_CONFIG_STATUS_DECLARATIONS +# ------------------------------ +# We delimit libtool config variables with single quotes, so when +# we write them to config.status, we have to be sure to quote all +# embedded single quotes properly. In configure, this macro expands +# each variable declared with _LT_DECL (and _LT_TAGDECL) into: +# +# ='`$ECHO "$" | $SED "$delay_single_quote_subst"`' +m4_defun([_LT_CONFIG_STATUS_DECLARATIONS], +[m4_foreach([_lt_var], m4_quote(lt_decl_all_varnames), + [m4_n([_LT_CONFIG_STATUS_DECLARE(_lt_var)])])]) + + +# _LT_LIBTOOL_TAGS +# ---------------- +# Output comment and list of tags supported by the script +m4_defun([_LT_LIBTOOL_TAGS], +[_LT_FORMAT_COMMENT([The names of the tagged configurations supported by this script])dnl +available_tags="_LT_TAGS"dnl +]) + + +# _LT_LIBTOOL_DECLARE(VARNAME, [TAG]) +# ----------------------------------- +# Extract the dictionary values for VARNAME (optionally with TAG) and +# expand to a commented shell variable setting: +# +# # Some comment about what VAR is for. +# visible_name=$lt_internal_name +m4_define([_LT_LIBTOOL_DECLARE], +[_LT_FORMAT_COMMENT(m4_quote(lt_dict_fetch([lt_decl_dict], [$1], + [description])))[]dnl +m4_pushdef([_libtool_name], + m4_quote(lt_dict_fetch([lt_decl_dict], [$1], [libtool_name])))[]dnl +m4_case(m4_quote(lt_dict_fetch([lt_decl_dict], [$1], [value])), + [0], [_libtool_name=[$]$1], + [1], [_libtool_name=$lt_[]$1], + [2], [_libtool_name=$lt_[]$1], + [_libtool_name=lt_dict_fetch([lt_decl_dict], [$1], [value])])[]dnl +m4_ifval([$2], [_$2])[]m4_popdef([_libtool_name])[]dnl +]) + + +# _LT_LIBTOOL_CONFIG_VARS +# ----------------------- +# Produce commented declarations of non-tagged libtool config variables +# suitable for insertion in the LIBTOOL CONFIG section of the `libtool' +# script. Tagged libtool config variables (even for the LIBTOOL CONFIG +# section) are produced by _LT_LIBTOOL_TAG_VARS. +m4_defun([_LT_LIBTOOL_CONFIG_VARS], +[m4_foreach([_lt_var], + m4_quote(_lt_decl_filter([tagged?], [no], [], lt_decl_varnames)), + [m4_n([_LT_LIBTOOL_DECLARE(_lt_var)])])]) + + +# _LT_LIBTOOL_TAG_VARS(TAG) +# ------------------------- +m4_define([_LT_LIBTOOL_TAG_VARS], +[m4_foreach([_lt_var], m4_quote(lt_decl_tag_varnames), + [m4_n([_LT_LIBTOOL_DECLARE(_lt_var, [$1])])])]) + + +# _LT_TAGVAR(VARNAME, [TAGNAME]) +# ------------------------------ +m4_define([_LT_TAGVAR], [m4_ifval([$2], [$1_$2], [$1])]) + + +# _LT_CONFIG_COMMANDS +# ------------------- +# Send accumulated output to $CONFIG_STATUS. Thanks to the lists of +# variables for single and double quote escaping we saved from calls +# to _LT_DECL, we can put quote escaped variables declarations +# into `config.status', and then the shell code to quote escape them in +# for loops in `config.status'. Finally, any additional code accumulated +# from calls to _LT_CONFIG_LIBTOOL_INIT is expanded. +m4_defun([_LT_CONFIG_COMMANDS], +[AC_PROVIDE_IFELSE([LT_OUTPUT], + dnl If the libtool generation code has been placed in $CONFIG_LT, + dnl instead of duplicating it all over again into config.status, + dnl then we will have config.status run $CONFIG_LT later, so it + dnl needs to know what name is stored there: + [AC_CONFIG_COMMANDS([libtool], + [$SHELL $CONFIG_LT || AS_EXIT(1)], [CONFIG_LT='$CONFIG_LT'])], + dnl If the libtool generation code is destined for config.status, + dnl expand the accumulated commands and init code now: + [AC_CONFIG_COMMANDS([libtool], + [_LT_OUTPUT_LIBTOOL_COMMANDS], [_LT_OUTPUT_LIBTOOL_COMMANDS_INIT])]) +])#_LT_CONFIG_COMMANDS + + +# Initialize. +m4_define([_LT_OUTPUT_LIBTOOL_COMMANDS_INIT], +[ + +# The HP-UX ksh and POSIX shell print the target directory to stdout +# if CDPATH is set. +(unset CDPATH) >/dev/null 2>&1 && unset CDPATH + +sed_quote_subst='$sed_quote_subst' +double_quote_subst='$double_quote_subst' +delay_variable_subst='$delay_variable_subst' +_LT_CONFIG_STATUS_DECLARATIONS +LTCC='$LTCC' +LTCFLAGS='$LTCFLAGS' +compiler='$compiler_DEFAULT' + +# A function that is used when there is no print builtin or printf. +func_fallback_echo () +{ + eval 'cat <<_LTECHO_EOF +\$[]1 +_LTECHO_EOF' +} + +# Quote evaled strings. +for var in lt_decl_all_varnames([[ \ +]], lt_decl_quote_varnames); do + case \`eval \\\\\$ECHO \\\\""\\\\\$\$var"\\\\"\` in + *[[\\\\\\\`\\"\\\$]]*) + eval "lt_\$var=\\\\\\"\\\`\\\$ECHO \\"\\\$\$var\\" | \\\$SED \\"\\\$sed_quote_subst\\"\\\`\\\\\\"" + ;; + *) + eval "lt_\$var=\\\\\\"\\\$\$var\\\\\\"" + ;; + esac +done + +# Double-quote double-evaled strings. +for var in lt_decl_all_varnames([[ \ +]], lt_decl_dquote_varnames); do + case \`eval \\\\\$ECHO \\\\""\\\\\$\$var"\\\\"\` in + *[[\\\\\\\`\\"\\\$]]*) + eval "lt_\$var=\\\\\\"\\\`\\\$ECHO \\"\\\$\$var\\" | \\\$SED -e \\"\\\$double_quote_subst\\" -e \\"\\\$sed_quote_subst\\" -e \\"\\\$delay_variable_subst\\"\\\`\\\\\\"" + ;; + *) + eval "lt_\$var=\\\\\\"\\\$\$var\\\\\\"" + ;; + esac +done + +_LT_OUTPUT_LIBTOOL_INIT +]) + +# _LT_GENERATED_FILE_INIT(FILE, [COMMENT]) +# ------------------------------------ +# Generate a child script FILE with all initialization necessary to +# reuse the environment learned by the parent script, and make the +# file executable. If COMMENT is supplied, it is inserted after the +# `#!' sequence but before initialization text begins. After this +# macro, additional text can be appended to FILE to form the body of +# the child script. The macro ends with non-zero status if the +# file could not be fully written (such as if the disk is full). +m4_ifdef([AS_INIT_GENERATED], +[m4_defun([_LT_GENERATED_FILE_INIT],[AS_INIT_GENERATED($@)])], +[m4_defun([_LT_GENERATED_FILE_INIT], +[m4_require([AS_PREPARE])]dnl +[m4_pushdef([AS_MESSAGE_LOG_FD])]dnl +[lt_write_fail=0 +cat >$1 <<_ASEOF || lt_write_fail=1 +#! $SHELL +# Generated by $as_me. +$2 +SHELL=\${CONFIG_SHELL-$SHELL} +export SHELL +_ASEOF +cat >>$1 <<\_ASEOF || lt_write_fail=1 +AS_SHELL_SANITIZE +_AS_PREPARE +exec AS_MESSAGE_FD>&1 +_ASEOF +test $lt_write_fail = 0 && chmod +x $1[]dnl +m4_popdef([AS_MESSAGE_LOG_FD])])])# _LT_GENERATED_FILE_INIT + +# LT_OUTPUT +# --------- +# This macro allows early generation of the libtool script (before +# AC_OUTPUT is called), incase it is used in configure for compilation +# tests. +AC_DEFUN([LT_OUTPUT], +[: ${CONFIG_LT=./config.lt} +AC_MSG_NOTICE([creating $CONFIG_LT]) +_LT_GENERATED_FILE_INIT(["$CONFIG_LT"], +[# Run this file to recreate a libtool stub with the current configuration.]) + +cat >>"$CONFIG_LT" <<\_LTEOF +lt_cl_silent=false +exec AS_MESSAGE_LOG_FD>>config.log +{ + echo + AS_BOX([Running $as_me.]) +} >&AS_MESSAGE_LOG_FD + +lt_cl_help="\ +\`$as_me' creates a local libtool stub from the current configuration, +for use in further configure time tests before the real libtool is +generated. + +Usage: $[0] [[OPTIONS]] + + -h, --help print this help, then exit + -V, --version print version number, then exit + -q, --quiet do not print progress messages + -d, --debug don't remove temporary files + +Report bugs to ." + +lt_cl_version="\ +m4_ifset([AC_PACKAGE_NAME], [AC_PACKAGE_NAME ])config.lt[]dnl +m4_ifset([AC_PACKAGE_VERSION], [ AC_PACKAGE_VERSION]) +configured by $[0], generated by m4_PACKAGE_STRING. + +Copyright (C) 2011 Free Software Foundation, Inc. +This config.lt script is free software; the Free Software Foundation +gives unlimited permision to copy, distribute and modify it." + +while test $[#] != 0 +do + case $[1] in + --version | --v* | -V ) + echo "$lt_cl_version"; exit 0 ;; + --help | --h* | -h ) + echo "$lt_cl_help"; exit 0 ;; + --debug | --d* | -d ) + debug=: ;; + --quiet | --q* | --silent | --s* | -q ) + lt_cl_silent=: ;; + + -*) AC_MSG_ERROR([unrecognized option: $[1] +Try \`$[0] --help' for more information.]) ;; + + *) AC_MSG_ERROR([unrecognized argument: $[1] +Try \`$[0] --help' for more information.]) ;; + esac + shift +done + +if $lt_cl_silent; then + exec AS_MESSAGE_FD>/dev/null +fi +_LTEOF + +cat >>"$CONFIG_LT" <<_LTEOF +_LT_OUTPUT_LIBTOOL_COMMANDS_INIT +_LTEOF + +cat >>"$CONFIG_LT" <<\_LTEOF +AC_MSG_NOTICE([creating $ofile]) +_LT_OUTPUT_LIBTOOL_COMMANDS +AS_EXIT(0) +_LTEOF +chmod +x "$CONFIG_LT" + +# configure is writing to config.log, but config.lt does its own redirection, +# appending to config.log, which fails on DOS, as config.log is still kept +# open by configure. Here we exec the FD to /dev/null, effectively closing +# config.log, so it can be properly (re)opened and appended to by config.lt. +lt_cl_success=: +test "$silent" = yes && + lt_config_lt_args="$lt_config_lt_args --quiet" +exec AS_MESSAGE_LOG_FD>/dev/null +$SHELL "$CONFIG_LT" $lt_config_lt_args || lt_cl_success=false +exec AS_MESSAGE_LOG_FD>>config.log +$lt_cl_success || AS_EXIT(1) +])# LT_OUTPUT + + +# _LT_CONFIG(TAG) +# --------------- +# If TAG is the built-in tag, create an initial libtool script with a +# default configuration from the untagged config vars. Otherwise add code +# to config.status for appending the configuration named by TAG from the +# matching tagged config vars. +m4_defun([_LT_CONFIG], +[m4_require([_LT_FILEUTILS_DEFAULTS])dnl +_LT_CONFIG_SAVE_COMMANDS([ + m4_define([_LT_TAG], m4_if([$1], [], [C], [$1]))dnl + m4_if(_LT_TAG, [C], [ + # See if we are running on zsh, and set the options which allow our + # commands through without removal of \ escapes. + if test -n "${ZSH_VERSION+set}" ; then + setopt NO_GLOB_SUBST + fi + + cfgfile="${ofile}T" + trap "$RM \"$cfgfile\"; exit 1" 1 2 15 + $RM "$cfgfile" + + cat <<_LT_EOF >> "$cfgfile" +#! $SHELL + +# `$ECHO "$ofile" | sed 's%^.*/%%'` - Provide generalized library-building support services. +# Generated automatically by $as_me ($PACKAGE$TIMESTAMP) $VERSION +# Libtool was configured on host `(hostname || uname -n) 2>/dev/null | sed 1q`: +# NOTE: Changes made to this file will be lost: look at ltmain.sh. +# +_LT_COPYING +_LT_LIBTOOL_TAGS + +# ### BEGIN LIBTOOL CONFIG +_LT_LIBTOOL_CONFIG_VARS +_LT_LIBTOOL_TAG_VARS +# ### END LIBTOOL CONFIG + +_LT_EOF + + case $host_os in + aix3*) + cat <<\_LT_EOF >> "$cfgfile" +# AIX sometimes has problems with the GCC collect2 program. For some +# reason, if we set the COLLECT_NAMES environment variable, the problems +# vanish in a puff of smoke. +if test "X${COLLECT_NAMES+set}" != Xset; then + COLLECT_NAMES= + export COLLECT_NAMES +fi +_LT_EOF + ;; + esac + + _LT_PROG_LTMAIN + + # We use sed instead of cat because bash on DJGPP gets confused if + # if finds mixed CR/LF and LF-only lines. Since sed operates in + # text mode, it properly converts lines to CR/LF. This bash problem + # is reportedly fixed, but why not run on old versions too? + sed '$q' "$ltmain" >> "$cfgfile" \ + || (rm -f "$cfgfile"; exit 1) + + _LT_PROG_REPLACE_SHELLFNS + + mv -f "$cfgfile" "$ofile" || + (rm -f "$ofile" && cp "$cfgfile" "$ofile" && rm -f "$cfgfile") + chmod +x "$ofile" +], +[cat <<_LT_EOF >> "$ofile" + +dnl Unfortunately we have to use $1 here, since _LT_TAG is not expanded +dnl in a comment (ie after a #). +# ### BEGIN LIBTOOL TAG CONFIG: $1 +_LT_LIBTOOL_TAG_VARS(_LT_TAG) +# ### END LIBTOOL TAG CONFIG: $1 +_LT_EOF +])dnl /m4_if +], +[m4_if([$1], [], [ + PACKAGE='$PACKAGE' + VERSION='$VERSION' + TIMESTAMP='$TIMESTAMP' + RM='$RM' + ofile='$ofile'], []) +])dnl /_LT_CONFIG_SAVE_COMMANDS +])# _LT_CONFIG + + +# LT_SUPPORTED_TAG(TAG) +# --------------------- +# Trace this macro to discover what tags are supported by the libtool +# --tag option, using: +# autoconf --trace 'LT_SUPPORTED_TAG:$1' +AC_DEFUN([LT_SUPPORTED_TAG], []) + + +# C support is built-in for now +m4_define([_LT_LANG_C_enabled], []) +m4_define([_LT_TAGS], []) + + +# LT_LANG(LANG) +# ------------- +# Enable libtool support for the given language if not already enabled. +AC_DEFUN([LT_LANG], +[AC_BEFORE([$0], [LT_OUTPUT])dnl +m4_case([$1], + [C], [_LT_LANG(C)], + [C++], [_LT_LANG(CXX)], + [Go], [_LT_LANG(GO)], + [Java], [_LT_LANG(GCJ)], + [Fortran 77], [_LT_LANG(F77)], + [Fortran], [_LT_LANG(FC)], + [Windows Resource], [_LT_LANG(RC)], + [m4_ifdef([_LT_LANG_]$1[_CONFIG], + [_LT_LANG($1)], + [m4_fatal([$0: unsupported language: "$1"])])])dnl +])# LT_LANG + + +# _LT_LANG(LANGNAME) +# ------------------ +m4_defun([_LT_LANG], +[m4_ifdef([_LT_LANG_]$1[_enabled], [], + [LT_SUPPORTED_TAG([$1])dnl + m4_append([_LT_TAGS], [$1 ])dnl + m4_define([_LT_LANG_]$1[_enabled], [])dnl + _LT_LANG_$1_CONFIG($1)])dnl +])# _LT_LANG + + +m4_ifndef([AC_PROG_GO], [ +############################################################ +# NOTE: This macro has been submitted for inclusion into # +# GNU Autoconf as AC_PROG_GO. When it is available in # +# a released version of Autoconf we should remove this # +# macro and use it instead. # +############################################################ +m4_defun([AC_PROG_GO], +[AC_LANG_PUSH(Go)dnl +AC_ARG_VAR([GOC], [Go compiler command])dnl +AC_ARG_VAR([GOFLAGS], [Go compiler flags])dnl +_AC_ARG_VAR_LDFLAGS()dnl +AC_CHECK_TOOL(GOC, gccgo) +if test -z "$GOC"; then + if test -n "$ac_tool_prefix"; then + AC_CHECK_PROG(GOC, [${ac_tool_prefix}gccgo], [${ac_tool_prefix}gccgo]) + fi +fi +if test -z "$GOC"; then + AC_CHECK_PROG(GOC, gccgo, gccgo, false) +fi +])#m4_defun +])#m4_ifndef + + +# _LT_LANG_DEFAULT_CONFIG +# ----------------------- +m4_defun([_LT_LANG_DEFAULT_CONFIG], +[AC_PROVIDE_IFELSE([AC_PROG_CXX], + [LT_LANG(CXX)], + [m4_define([AC_PROG_CXX], defn([AC_PROG_CXX])[LT_LANG(CXX)])]) + +AC_PROVIDE_IFELSE([AC_PROG_F77], + [LT_LANG(F77)], + [m4_define([AC_PROG_F77], defn([AC_PROG_F77])[LT_LANG(F77)])]) + +AC_PROVIDE_IFELSE([AC_PROG_FC], + [LT_LANG(FC)], + [m4_define([AC_PROG_FC], defn([AC_PROG_FC])[LT_LANG(FC)])]) + +dnl The call to [A][M_PROG_GCJ] is quoted like that to stop aclocal +dnl pulling things in needlessly. +AC_PROVIDE_IFELSE([AC_PROG_GCJ], + [LT_LANG(GCJ)], + [AC_PROVIDE_IFELSE([A][M_PROG_GCJ], + [LT_LANG(GCJ)], + [AC_PROVIDE_IFELSE([LT_PROG_GCJ], + [LT_LANG(GCJ)], + [m4_ifdef([AC_PROG_GCJ], + [m4_define([AC_PROG_GCJ], defn([AC_PROG_GCJ])[LT_LANG(GCJ)])]) + m4_ifdef([A][M_PROG_GCJ], + [m4_define([A][M_PROG_GCJ], defn([A][M_PROG_GCJ])[LT_LANG(GCJ)])]) + m4_ifdef([LT_PROG_GCJ], + [m4_define([LT_PROG_GCJ], defn([LT_PROG_GCJ])[LT_LANG(GCJ)])])])])]) + +AC_PROVIDE_IFELSE([AC_PROG_GO], + [LT_LANG(GO)], + [m4_define([AC_PROG_GO], defn([AC_PROG_GO])[LT_LANG(GO)])]) + +AC_PROVIDE_IFELSE([LT_PROG_RC], + [LT_LANG(RC)], + [m4_define([LT_PROG_RC], defn([LT_PROG_RC])[LT_LANG(RC)])]) +])# _LT_LANG_DEFAULT_CONFIG + +# Obsolete macros: +AU_DEFUN([AC_LIBTOOL_CXX], [LT_LANG(C++)]) +AU_DEFUN([AC_LIBTOOL_F77], [LT_LANG(Fortran 77)]) +AU_DEFUN([AC_LIBTOOL_FC], [LT_LANG(Fortran)]) +AU_DEFUN([AC_LIBTOOL_GCJ], [LT_LANG(Java)]) +AU_DEFUN([AC_LIBTOOL_RC], [LT_LANG(Windows Resource)]) +dnl aclocal-1.4 backwards compatibility: +dnl AC_DEFUN([AC_LIBTOOL_CXX], []) +dnl AC_DEFUN([AC_LIBTOOL_F77], []) +dnl AC_DEFUN([AC_LIBTOOL_FC], []) +dnl AC_DEFUN([AC_LIBTOOL_GCJ], []) +dnl AC_DEFUN([AC_LIBTOOL_RC], []) + + +# _LT_TAG_COMPILER +# ---------------- +m4_defun([_LT_TAG_COMPILER], +[AC_REQUIRE([AC_PROG_CC])dnl + +_LT_DECL([LTCC], [CC], [1], [A C compiler])dnl +_LT_DECL([LTCFLAGS], [CFLAGS], [1], [LTCC compiler flags])dnl +_LT_TAGDECL([CC], [compiler], [1], [A language specific compiler])dnl +_LT_TAGDECL([with_gcc], [GCC], [0], [Is the compiler the GNU compiler?])dnl + +# If no C compiler was specified, use CC. +LTCC=${LTCC-"$CC"} + +# If no C compiler flags were specified, use CFLAGS. +LTCFLAGS=${LTCFLAGS-"$CFLAGS"} + +# Allow CC to be a program name with arguments. +compiler=$CC +])# _LT_TAG_COMPILER + + +# _LT_COMPILER_BOILERPLATE +# ------------------------ +# Check for compiler boilerplate output or warnings with +# the simple compiler test code. +m4_defun([_LT_COMPILER_BOILERPLATE], +[m4_require([_LT_DECL_SED])dnl +ac_outfile=conftest.$ac_objext +echo "$lt_simple_compile_test_code" >conftest.$ac_ext +eval "$ac_compile" 2>&1 >/dev/null | $SED '/^$/d; /^ *+/d' >conftest.err +_lt_compiler_boilerplate=`cat conftest.err` +$RM conftest* +])# _LT_COMPILER_BOILERPLATE + + +# _LT_LINKER_BOILERPLATE +# ---------------------- +# Check for linker boilerplate output or warnings with +# the simple link test code. +m4_defun([_LT_LINKER_BOILERPLATE], +[m4_require([_LT_DECL_SED])dnl +ac_outfile=conftest.$ac_objext +echo "$lt_simple_link_test_code" >conftest.$ac_ext +eval "$ac_link" 2>&1 >/dev/null | $SED '/^$/d; /^ *+/d' >conftest.err +_lt_linker_boilerplate=`cat conftest.err` +$RM -r conftest* +])# _LT_LINKER_BOILERPLATE + +# _LT_REQUIRED_DARWIN_CHECKS +# ------------------------- +m4_defun_once([_LT_REQUIRED_DARWIN_CHECKS],[ + case $host_os in + rhapsody* | darwin*) + AC_CHECK_TOOL([DSYMUTIL], [dsymutil], [:]) + AC_CHECK_TOOL([NMEDIT], [nmedit], [:]) + AC_CHECK_TOOL([LIPO], [lipo], [:]) + AC_CHECK_TOOL([OTOOL], [otool], [:]) + AC_CHECK_TOOL([OTOOL64], [otool64], [:]) + _LT_DECL([], [DSYMUTIL], [1], + [Tool to manipulate archived DWARF debug symbol files on Mac OS X]) + _LT_DECL([], [NMEDIT], [1], + [Tool to change global to local symbols on Mac OS X]) + _LT_DECL([], [LIPO], [1], + [Tool to manipulate fat objects and archives on Mac OS X]) + _LT_DECL([], [OTOOL], [1], + [ldd/readelf like tool for Mach-O binaries on Mac OS X]) + _LT_DECL([], [OTOOL64], [1], + [ldd/readelf like tool for 64 bit Mach-O binaries on Mac OS X 10.4]) + + AC_CACHE_CHECK([for -single_module linker flag],[lt_cv_apple_cc_single_mod], + [lt_cv_apple_cc_single_mod=no + if test -z "${LT_MULTI_MODULE}"; then + # By default we will add the -single_module flag. You can override + # by either setting the environment variable LT_MULTI_MODULE + # non-empty at configure time, or by adding -multi_module to the + # link flags. + rm -rf libconftest.dylib* + echo "int foo(void){return 1;}" > conftest.c + echo "$LTCC $LTCFLAGS $LDFLAGS -o libconftest.dylib \ +-dynamiclib -Wl,-single_module conftest.c" >&AS_MESSAGE_LOG_FD + $LTCC $LTCFLAGS $LDFLAGS -o libconftest.dylib \ + -dynamiclib -Wl,-single_module conftest.c 2>conftest.err + _lt_result=$? + # If there is a non-empty error log, and "single_module" + # appears in it, assume the flag caused a linker warning + if test -s conftest.err && $GREP single_module conftest.err; then + cat conftest.err >&AS_MESSAGE_LOG_FD + # Otherwise, if the output was created with a 0 exit code from + # the compiler, it worked. + elif test -f libconftest.dylib && test $_lt_result -eq 0; then + lt_cv_apple_cc_single_mod=yes + else + cat conftest.err >&AS_MESSAGE_LOG_FD + fi + rm -rf libconftest.dylib* + rm -f conftest.* + fi]) + + AC_CACHE_CHECK([for -exported_symbols_list linker flag], + [lt_cv_ld_exported_symbols_list], + [lt_cv_ld_exported_symbols_list=no + save_LDFLAGS=$LDFLAGS + echo "_main" > conftest.sym + LDFLAGS="$LDFLAGS -Wl,-exported_symbols_list,conftest.sym" + AC_LINK_IFELSE([AC_LANG_PROGRAM([],[])], + [lt_cv_ld_exported_symbols_list=yes], + [lt_cv_ld_exported_symbols_list=no]) + LDFLAGS="$save_LDFLAGS" + ]) + + AC_CACHE_CHECK([for -force_load linker flag],[lt_cv_ld_force_load], + [lt_cv_ld_force_load=no + cat > conftest.c << _LT_EOF +int forced_loaded() { return 2;} +_LT_EOF + echo "$LTCC $LTCFLAGS -c -o conftest.o conftest.c" >&AS_MESSAGE_LOG_FD + $LTCC $LTCFLAGS -c -o conftest.o conftest.c 2>&AS_MESSAGE_LOG_FD + echo "$AR cru libconftest.a conftest.o" >&AS_MESSAGE_LOG_FD + $AR cru libconftest.a conftest.o 2>&AS_MESSAGE_LOG_FD + echo "$RANLIB libconftest.a" >&AS_MESSAGE_LOG_FD + $RANLIB libconftest.a 2>&AS_MESSAGE_LOG_FD + cat > conftest.c << _LT_EOF +int main() { return 0;} +_LT_EOF + echo "$LTCC $LTCFLAGS $LDFLAGS -o conftest conftest.c -Wl,-force_load,./libconftest.a" >&AS_MESSAGE_LOG_FD + $LTCC $LTCFLAGS $LDFLAGS -o conftest conftest.c -Wl,-force_load,./libconftest.a 2>conftest.err + _lt_result=$? + if test -s conftest.err && $GREP force_load conftest.err; then + cat conftest.err >&AS_MESSAGE_LOG_FD + elif test -f conftest && test $_lt_result -eq 0 && $GREP forced_load conftest >/dev/null 2>&1 ; then + lt_cv_ld_force_load=yes + else + cat conftest.err >&AS_MESSAGE_LOG_FD + fi + rm -f conftest.err libconftest.a conftest conftest.c + rm -rf conftest.dSYM + ]) + case $host_os in + rhapsody* | darwin1.[[012]]) + _lt_dar_allow_undefined='${wl}-undefined ${wl}suppress' ;; + darwin1.*) + _lt_dar_allow_undefined='${wl}-flat_namespace ${wl}-undefined ${wl}suppress' ;; + darwin*) # darwin 5.x on + # if running on 10.5 or later, the deployment target defaults + # to the OS version, if on x86, and 10.4, the deployment + # target defaults to 10.4. Don't you love it? + case ${MACOSX_DEPLOYMENT_TARGET-10.0},$host in + 10.0,*86*-darwin8*|10.0,*-darwin[[91]]*) + _lt_dar_allow_undefined='${wl}-undefined ${wl}dynamic_lookup' ;; + 10.[[012]]*) + _lt_dar_allow_undefined='${wl}-flat_namespace ${wl}-undefined ${wl}suppress' ;; + 10.*) + _lt_dar_allow_undefined='${wl}-undefined ${wl}dynamic_lookup' ;; + esac + ;; + esac + if test "$lt_cv_apple_cc_single_mod" = "yes"; then + _lt_dar_single_mod='$single_module' + fi + if test "$lt_cv_ld_exported_symbols_list" = "yes"; then + _lt_dar_export_syms=' ${wl}-exported_symbols_list,$output_objdir/${libname}-symbols.expsym' + else + _lt_dar_export_syms='~$NMEDIT -s $output_objdir/${libname}-symbols.expsym ${lib}' + fi + if test "$DSYMUTIL" != ":" && test "$lt_cv_ld_force_load" = "no"; then + _lt_dsymutil='~$DSYMUTIL $lib || :' + else + _lt_dsymutil= + fi + ;; + esac +]) + + +# _LT_DARWIN_LINKER_FEATURES([TAG]) +# --------------------------------- +# Checks for linker and compiler features on darwin +m4_defun([_LT_DARWIN_LINKER_FEATURES], +[ + m4_require([_LT_REQUIRED_DARWIN_CHECKS]) + _LT_TAGVAR(archive_cmds_need_lc, $1)=no + _LT_TAGVAR(hardcode_direct, $1)=no + _LT_TAGVAR(hardcode_automatic, $1)=yes + _LT_TAGVAR(hardcode_shlibpath_var, $1)=unsupported + if test "$lt_cv_ld_force_load" = "yes"; then + _LT_TAGVAR(whole_archive_flag_spec, $1)='`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience ${wl}-force_load,$conv\"; done; func_echo_all \"$new_convenience\"`' + m4_case([$1], [F77], [_LT_TAGVAR(compiler_needs_object, $1)=yes], + [FC], [_LT_TAGVAR(compiler_needs_object, $1)=yes]) + else + _LT_TAGVAR(whole_archive_flag_spec, $1)='' + fi + _LT_TAGVAR(link_all_deplibs, $1)=yes + _LT_TAGVAR(allow_undefined_flag, $1)="$_lt_dar_allow_undefined" + case $cc_basename in + ifort*) _lt_dar_can_shared=yes ;; + *) _lt_dar_can_shared=$GCC ;; + esac + if test "$_lt_dar_can_shared" = "yes"; then + output_verbose_link_cmd=func_echo_all + _LT_TAGVAR(archive_cmds, $1)="\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring $_lt_dar_single_mod${_lt_dsymutil}" + _LT_TAGVAR(module_cmds, $1)="\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags${_lt_dsymutil}" + _LT_TAGVAR(archive_expsym_cmds, $1)="sed 's,^,_,' < \$export_symbols > \$output_objdir/\${libname}-symbols.expsym~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring ${_lt_dar_single_mod}${_lt_dar_export_syms}${_lt_dsymutil}" + _LT_TAGVAR(module_expsym_cmds, $1)="sed -e 's,^,_,' < \$export_symbols > \$output_objdir/\${libname}-symbols.expsym~\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags${_lt_dar_export_syms}${_lt_dsymutil}" + m4_if([$1], [CXX], +[ if test "$lt_cv_apple_cc_single_mod" != "yes"; then + _LT_TAGVAR(archive_cmds, $1)="\$CC -r -keep_private_externs -nostdlib -o \${lib}-master.o \$libobjs~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \${lib}-master.o \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring${_lt_dsymutil}" + _LT_TAGVAR(archive_expsym_cmds, $1)="sed 's,^,_,' < \$export_symbols > \$output_objdir/\${libname}-symbols.expsym~\$CC -r -keep_private_externs -nostdlib -o \${lib}-master.o \$libobjs~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \${lib}-master.o \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring${_lt_dar_export_syms}${_lt_dsymutil}" + fi +],[]) + else + _LT_TAGVAR(ld_shlibs, $1)=no + fi +]) + +# _LT_SYS_MODULE_PATH_AIX([TAGNAME]) +# ---------------------------------- +# Links a minimal program and checks the executable +# for the system default hardcoded library path. In most cases, +# this is /usr/lib:/lib, but when the MPI compilers are used +# the location of the communication and MPI libs are included too. +# If we don't find anything, use the default library path according +# to the aix ld manual. +# Store the results from the different compilers for each TAGNAME. +# Allow to override them for all tags through lt_cv_aix_libpath. +m4_defun([_LT_SYS_MODULE_PATH_AIX], +[m4_require([_LT_DECL_SED])dnl +if test "${lt_cv_aix_libpath+set}" = set; then + aix_libpath=$lt_cv_aix_libpath +else + AC_CACHE_VAL([_LT_TAGVAR([lt_cv_aix_libpath_], [$1])], + [AC_LINK_IFELSE([AC_LANG_PROGRAM],[ + lt_aix_libpath_sed='[ + /Import File Strings/,/^$/ { + /^0/ { + s/^0 *\([^ ]*\) *$/\1/ + p + } + }]' + _LT_TAGVAR([lt_cv_aix_libpath_], [$1])=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` + # Check for a 64-bit object if we didn't find anything. + if test -z "$_LT_TAGVAR([lt_cv_aix_libpath_], [$1])"; then + _LT_TAGVAR([lt_cv_aix_libpath_], [$1])=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` + fi],[]) + if test -z "$_LT_TAGVAR([lt_cv_aix_libpath_], [$1])"; then + _LT_TAGVAR([lt_cv_aix_libpath_], [$1])="/usr/lib:/lib" + fi + ]) + aix_libpath=$_LT_TAGVAR([lt_cv_aix_libpath_], [$1]) +fi +])# _LT_SYS_MODULE_PATH_AIX + + +# _LT_SHELL_INIT(ARG) +# ------------------- +m4_define([_LT_SHELL_INIT], +[m4_divert_text([M4SH-INIT], [$1 +])])# _LT_SHELL_INIT + + + +# _LT_PROG_ECHO_BACKSLASH +# ----------------------- +# Find how we can fake an echo command that does not interpret backslash. +# In particular, with Autoconf 2.60 or later we add some code to the start +# of the generated configure script which will find a shell with a builtin +# printf (which we can use as an echo command). +m4_defun([_LT_PROG_ECHO_BACKSLASH], +[ECHO='\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\' +ECHO=$ECHO$ECHO$ECHO$ECHO$ECHO +ECHO=$ECHO$ECHO$ECHO$ECHO$ECHO$ECHO + +AC_MSG_CHECKING([how to print strings]) +# Test print first, because it will be a builtin if present. +if test "X`( print -r -- -n ) 2>/dev/null`" = X-n && \ + test "X`print -r -- $ECHO 2>/dev/null`" = "X$ECHO"; then + ECHO='print -r --' +elif test "X`printf %s $ECHO 2>/dev/null`" = "X$ECHO"; then + ECHO='printf %s\n' +else + # Use this function as a fallback that always works. + func_fallback_echo () + { + eval 'cat <<_LTECHO_EOF +$[]1 +_LTECHO_EOF' + } + ECHO='func_fallback_echo' +fi + +# func_echo_all arg... +# Invoke $ECHO with all args, space-separated. +func_echo_all () +{ + $ECHO "$*" +} + +case "$ECHO" in + printf*) AC_MSG_RESULT([printf]) ;; + print*) AC_MSG_RESULT([print -r]) ;; + *) AC_MSG_RESULT([cat]) ;; +esac + +m4_ifdef([_AS_DETECT_SUGGESTED], +[_AS_DETECT_SUGGESTED([ + test -n "${ZSH_VERSION+set}${BASH_VERSION+set}" || ( + ECHO='\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\' + ECHO=$ECHO$ECHO$ECHO$ECHO$ECHO + ECHO=$ECHO$ECHO$ECHO$ECHO$ECHO$ECHO + PATH=/empty FPATH=/empty; export PATH FPATH + test "X`printf %s $ECHO`" = "X$ECHO" \ + || test "X`print -r -- $ECHO`" = "X$ECHO" )])]) + +_LT_DECL([], [SHELL], [1], [Shell to use when invoking shell scripts]) +_LT_DECL([], [ECHO], [1], [An echo program that protects backslashes]) +])# _LT_PROG_ECHO_BACKSLASH + + +# _LT_WITH_SYSROOT +# ---------------- +AC_DEFUN([_LT_WITH_SYSROOT], +[AC_MSG_CHECKING([for sysroot]) +AC_ARG_WITH([sysroot], +[ --with-sysroot[=DIR] Search for dependent libraries within DIR + (or the compiler's sysroot if not specified).], +[], [with_sysroot=no]) + +dnl lt_sysroot will always be passed unquoted. We quote it here +dnl in case the user passed a directory name. +lt_sysroot= +case ${with_sysroot} in #( + yes) + if test "$GCC" = yes; then + lt_sysroot=`$CC --print-sysroot 2>/dev/null` + fi + ;; #( + /*) + lt_sysroot=`echo "$with_sysroot" | sed -e "$sed_quote_subst"` + ;; #( + no|'') + ;; #( + *) + AC_MSG_RESULT([${with_sysroot}]) + AC_MSG_ERROR([The sysroot must be an absolute path.]) + ;; +esac + + AC_MSG_RESULT([${lt_sysroot:-no}]) +_LT_DECL([], [lt_sysroot], [0], [The root where to search for ]dnl +[dependent libraries, and in which our libraries should be installed.])]) + +# _LT_ENABLE_LOCK +# --------------- +m4_defun([_LT_ENABLE_LOCK], +[AC_ARG_ENABLE([libtool-lock], + [AS_HELP_STRING([--disable-libtool-lock], + [avoid locking (might break parallel builds)])]) +test "x$enable_libtool_lock" != xno && enable_libtool_lock=yes + +# Some flags need to be propagated to the compiler or linker for good +# libtool support. +case $host in +ia64-*-hpux*) + # Find out which ABI we are using. + echo 'int i;' > conftest.$ac_ext + if AC_TRY_EVAL(ac_compile); then + case `/usr/bin/file conftest.$ac_objext` in + *ELF-32*) + HPUX_IA64_MODE="32" + ;; + *ELF-64*) + HPUX_IA64_MODE="64" + ;; + esac + fi + rm -rf conftest* + ;; +*-*-irix6*) + # Find out which ABI we are using. + echo '[#]line '$LINENO' "configure"' > conftest.$ac_ext + if AC_TRY_EVAL(ac_compile); then + if test "$lt_cv_prog_gnu_ld" = yes; then + case `/usr/bin/file conftest.$ac_objext` in + *32-bit*) + LD="${LD-ld} -melf32bsmip" + ;; + *N32*) + LD="${LD-ld} -melf32bmipn32" + ;; + *64-bit*) + LD="${LD-ld} -melf64bmip" + ;; + esac + else + case `/usr/bin/file conftest.$ac_objext` in + *32-bit*) + LD="${LD-ld} -32" + ;; + *N32*) + LD="${LD-ld} -n32" + ;; + *64-bit*) + LD="${LD-ld} -64" + ;; + esac + fi + fi + rm -rf conftest* + ;; + +x86_64-*kfreebsd*-gnu|x86_64-*linux*|powerpc*-*linux*| \ +s390*-*linux*|s390*-*tpf*|sparc*-*linux*) + # Find out which ABI we are using. + echo 'int i;' > conftest.$ac_ext + if AC_TRY_EVAL(ac_compile); then + case `/usr/bin/file conftest.o` in + *32-bit*) + case $host in + x86_64-*kfreebsd*-gnu) + LD="${LD-ld} -m elf_i386_fbsd" + ;; + x86_64-*linux*) + case `/usr/bin/file conftest.o` in + *x86-64*) + LD="${LD-ld} -m elf32_x86_64" + ;; + *) + LD="${LD-ld} -m elf_i386" + ;; + esac + ;; + powerpc64le-*) + LD="${LD-ld} -m elf32lppclinux" + ;; + powerpc64-*) + LD="${LD-ld} -m elf32ppclinux" + ;; + s390x-*linux*) + LD="${LD-ld} -m elf_s390" + ;; + sparc64-*linux*) + LD="${LD-ld} -m elf32_sparc" + ;; + esac + ;; + *64-bit*) + case $host in + x86_64-*kfreebsd*-gnu) + LD="${LD-ld} -m elf_x86_64_fbsd" + ;; + x86_64-*linux*) + LD="${LD-ld} -m elf_x86_64" + ;; + powerpcle-*) + LD="${LD-ld} -m elf64lppc" + ;; + powerpc-*) + LD="${LD-ld} -m elf64ppc" + ;; + s390*-*linux*|s390*-*tpf*) + LD="${LD-ld} -m elf64_s390" + ;; + sparc*-*linux*) + LD="${LD-ld} -m elf64_sparc" + ;; + esac + ;; + esac + fi + rm -rf conftest* + ;; + +*-*-sco3.2v5*) + # On SCO OpenServer 5, we need -belf to get full-featured binaries. + SAVE_CFLAGS="$CFLAGS" + CFLAGS="$CFLAGS -belf" + AC_CACHE_CHECK([whether the C compiler needs -belf], lt_cv_cc_needs_belf, + [AC_LANG_PUSH(C) + AC_LINK_IFELSE([AC_LANG_PROGRAM([[]],[[]])],[lt_cv_cc_needs_belf=yes],[lt_cv_cc_needs_belf=no]) + AC_LANG_POP]) + if test x"$lt_cv_cc_needs_belf" != x"yes"; then + # this is probably gcc 2.8.0, egcs 1.0 or newer; no need for -belf + CFLAGS="$SAVE_CFLAGS" + fi + ;; +*-*solaris*) + # Find out which ABI we are using. + echo 'int i;' > conftest.$ac_ext + if AC_TRY_EVAL(ac_compile); then + case `/usr/bin/file conftest.o` in + *64-bit*) + case $lt_cv_prog_gnu_ld in + yes*) + case $host in + i?86-*-solaris*) + LD="${LD-ld} -m elf_x86_64" + ;; + sparc*-*-solaris*) + LD="${LD-ld} -m elf64_sparc" + ;; + esac + # GNU ld 2.21 introduced _sol2 emulations. Use them if available. + if ${LD-ld} -V | grep _sol2 >/dev/null 2>&1; then + LD="${LD-ld}_sol2" + fi + ;; + *) + if ${LD-ld} -64 -r -o conftest2.o conftest.o >/dev/null 2>&1; then + LD="${LD-ld} -64" + fi + ;; + esac + ;; + esac + fi + rm -rf conftest* + ;; +esac + +need_locks="$enable_libtool_lock" +])# _LT_ENABLE_LOCK + + +# _LT_PROG_AR +# ----------- +m4_defun([_LT_PROG_AR], +[AC_CHECK_TOOLS(AR, [ar], false) +: ${AR=ar} +: ${AR_FLAGS=cru} +_LT_DECL([], [AR], [1], [The archiver]) +_LT_DECL([], [AR_FLAGS], [1], [Flags to create an archive]) + +AC_CACHE_CHECK([for archiver @FILE support], [lt_cv_ar_at_file], + [lt_cv_ar_at_file=no + AC_COMPILE_IFELSE([AC_LANG_PROGRAM], + [echo conftest.$ac_objext > conftest.lst + lt_ar_try='$AR $AR_FLAGS libconftest.a @conftest.lst >&AS_MESSAGE_LOG_FD' + AC_TRY_EVAL([lt_ar_try]) + if test "$ac_status" -eq 0; then + # Ensure the archiver fails upon bogus file names. + rm -f conftest.$ac_objext libconftest.a + AC_TRY_EVAL([lt_ar_try]) + if test "$ac_status" -ne 0; then + lt_cv_ar_at_file=@ + fi + fi + rm -f conftest.* libconftest.a + ]) + ]) + +if test "x$lt_cv_ar_at_file" = xno; then + archiver_list_spec= +else + archiver_list_spec=$lt_cv_ar_at_file +fi +_LT_DECL([], [archiver_list_spec], [1], + [How to feed a file listing to the archiver]) +])# _LT_PROG_AR + + +# _LT_CMD_OLD_ARCHIVE +# ------------------- +m4_defun([_LT_CMD_OLD_ARCHIVE], +[_LT_PROG_AR + +AC_CHECK_TOOL(STRIP, strip, :) +test -z "$STRIP" && STRIP=: +_LT_DECL([], [STRIP], [1], [A symbol stripping program]) + +AC_CHECK_TOOL(RANLIB, ranlib, :) +test -z "$RANLIB" && RANLIB=: +_LT_DECL([], [RANLIB], [1], + [Commands used to install an old-style archive]) + +# Determine commands to create old-style static archives. +old_archive_cmds='$AR $AR_FLAGS $oldlib$oldobjs' +old_postinstall_cmds='chmod 644 $oldlib' +old_postuninstall_cmds= + +if test -n "$RANLIB"; then + case $host_os in + openbsd*) + old_postinstall_cmds="$old_postinstall_cmds~\$RANLIB -t \$tool_oldlib" + ;; + *) + old_postinstall_cmds="$old_postinstall_cmds~\$RANLIB \$tool_oldlib" + ;; + esac + old_archive_cmds="$old_archive_cmds~\$RANLIB \$tool_oldlib" +fi + +case $host_os in + darwin*) + lock_old_archive_extraction=yes ;; + *) + lock_old_archive_extraction=no ;; +esac +_LT_DECL([], [old_postinstall_cmds], [2]) +_LT_DECL([], [old_postuninstall_cmds], [2]) +_LT_TAGDECL([], [old_archive_cmds], [2], + [Commands used to build an old-style archive]) +_LT_DECL([], [lock_old_archive_extraction], [0], + [Whether to use a lock for old archive extraction]) +])# _LT_CMD_OLD_ARCHIVE + + +# _LT_COMPILER_OPTION(MESSAGE, VARIABLE-NAME, FLAGS, +# [OUTPUT-FILE], [ACTION-SUCCESS], [ACTION-FAILURE]) +# ---------------------------------------------------------------- +# Check whether the given compiler option works +AC_DEFUN([_LT_COMPILER_OPTION], +[m4_require([_LT_FILEUTILS_DEFAULTS])dnl +m4_require([_LT_DECL_SED])dnl +AC_CACHE_CHECK([$1], [$2], + [$2=no + m4_if([$4], , [ac_outfile=conftest.$ac_objext], [ac_outfile=$4]) + echo "$lt_simple_compile_test_code" > conftest.$ac_ext + lt_compiler_flag="$3" + # Insert the option either (1) after the last *FLAGS variable, or + # (2) before a word containing "conftest.", or (3) at the end. + # Note that $ac_compile itself does not contain backslashes and begins + # with a dollar sign (not a hyphen), so the echo should work correctly. + # The option is referenced via a variable to avoid confusing sed. + lt_compile=`echo "$ac_compile" | $SED \ + -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ + -e 's: [[^ ]]*conftest\.: $lt_compiler_flag&:; t' \ + -e 's:$: $lt_compiler_flag:'` + (eval echo "\"\$as_me:$LINENO: $lt_compile\"" >&AS_MESSAGE_LOG_FD) + (eval "$lt_compile" 2>conftest.err) + ac_status=$? + cat conftest.err >&AS_MESSAGE_LOG_FD + echo "$as_me:$LINENO: \$? = $ac_status" >&AS_MESSAGE_LOG_FD + if (exit $ac_status) && test -s "$ac_outfile"; then + # The compiler can only warn and ignore the option if not recognized + # So say no if there are warnings other than the usual output. + $ECHO "$_lt_compiler_boilerplate" | $SED '/^$/d' >conftest.exp + $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2 + if test ! -s conftest.er2 || diff conftest.exp conftest.er2 >/dev/null; then + $2=yes + fi + fi + $RM conftest* +]) + +if test x"[$]$2" = xyes; then + m4_if([$5], , :, [$5]) +else + m4_if([$6], , :, [$6]) +fi +])# _LT_COMPILER_OPTION + +# Old name: +AU_ALIAS([AC_LIBTOOL_COMPILER_OPTION], [_LT_COMPILER_OPTION]) +dnl aclocal-1.4 backwards compatibility: +dnl AC_DEFUN([AC_LIBTOOL_COMPILER_OPTION], []) + + +# _LT_LINKER_OPTION(MESSAGE, VARIABLE-NAME, FLAGS, +# [ACTION-SUCCESS], [ACTION-FAILURE]) +# ---------------------------------------------------- +# Check whether the given linker option works +AC_DEFUN([_LT_LINKER_OPTION], +[m4_require([_LT_FILEUTILS_DEFAULTS])dnl +m4_require([_LT_DECL_SED])dnl +AC_CACHE_CHECK([$1], [$2], + [$2=no + save_LDFLAGS="$LDFLAGS" + LDFLAGS="$LDFLAGS $3" + echo "$lt_simple_link_test_code" > conftest.$ac_ext + if (eval $ac_link 2>conftest.err) && test -s conftest$ac_exeext; then + # The linker can only warn and ignore the option if not recognized + # So say no if there are warnings + if test -s conftest.err; then + # Append any errors to the config.log. + cat conftest.err 1>&AS_MESSAGE_LOG_FD + $ECHO "$_lt_linker_boilerplate" | $SED '/^$/d' > conftest.exp + $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2 + if diff conftest.exp conftest.er2 >/dev/null; then + $2=yes + fi + else + $2=yes + fi + fi + $RM -r conftest* + LDFLAGS="$save_LDFLAGS" +]) + +if test x"[$]$2" = xyes; then + m4_if([$4], , :, [$4]) +else + m4_if([$5], , :, [$5]) +fi +])# _LT_LINKER_OPTION + +# Old name: +AU_ALIAS([AC_LIBTOOL_LINKER_OPTION], [_LT_LINKER_OPTION]) +dnl aclocal-1.4 backwards compatibility: +dnl AC_DEFUN([AC_LIBTOOL_LINKER_OPTION], []) + + +# LT_CMD_MAX_LEN +#--------------- +AC_DEFUN([LT_CMD_MAX_LEN], +[AC_REQUIRE([AC_CANONICAL_HOST])dnl +# find the maximum length of command line arguments +AC_MSG_CHECKING([the maximum length of command line arguments]) +AC_CACHE_VAL([lt_cv_sys_max_cmd_len], [dnl + i=0 + teststring="ABCD" + + case $build_os in + msdosdjgpp*) + # On DJGPP, this test can blow up pretty badly due to problems in libc + # (any single argument exceeding 2000 bytes causes a buffer overrun + # during glob expansion). Even if it were fixed, the result of this + # check would be larger than it should be. + lt_cv_sys_max_cmd_len=12288; # 12K is about right + ;; + + gnu*) + # Under GNU Hurd, this test is not required because there is + # no limit to the length of command line arguments. + # Libtool will interpret -1 as no limit whatsoever + lt_cv_sys_max_cmd_len=-1; + ;; + + cygwin* | mingw* | cegcc*) + # On Win9x/ME, this test blows up -- it succeeds, but takes + # about 5 minutes as the teststring grows exponentially. + # Worse, since 9x/ME are not pre-emptively multitasking, + # you end up with a "frozen" computer, even though with patience + # the test eventually succeeds (with a max line length of 256k). + # Instead, let's just punt: use the minimum linelength reported by + # all of the supported platforms: 8192 (on NT/2K/XP). + lt_cv_sys_max_cmd_len=8192; + ;; + + mint*) + # On MiNT this can take a long time and run out of memory. + lt_cv_sys_max_cmd_len=8192; + ;; + + amigaos*) + # On AmigaOS with pdksh, this test takes hours, literally. + # So we just punt and use a minimum line length of 8192. + lt_cv_sys_max_cmd_len=8192; + ;; + + netbsd* | freebsd* | openbsd* | darwin* | dragonfly*) + # This has been around since 386BSD, at least. Likely further. + if test -x /sbin/sysctl; then + lt_cv_sys_max_cmd_len=`/sbin/sysctl -n kern.argmax` + elif test -x /usr/sbin/sysctl; then + lt_cv_sys_max_cmd_len=`/usr/sbin/sysctl -n kern.argmax` + else + lt_cv_sys_max_cmd_len=65536 # usable default for all BSDs + fi + # And add a safety zone + lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \/ 4` + lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \* 3` + ;; + + interix*) + # We know the value 262144 and hardcode it with a safety zone (like BSD) + lt_cv_sys_max_cmd_len=196608 + ;; + + os2*) + # The test takes a long time on OS/2. + lt_cv_sys_max_cmd_len=8192 + ;; + + osf*) + # Dr. Hans Ekkehard Plesser reports seeing a kernel panic running configure + # due to this test when exec_disable_arg_limit is 1 on Tru64. It is not + # nice to cause kernel panics so lets avoid the loop below. + # First set a reasonable default. + lt_cv_sys_max_cmd_len=16384 + # + if test -x /sbin/sysconfig; then + case `/sbin/sysconfig -q proc exec_disable_arg_limit` in + *1*) lt_cv_sys_max_cmd_len=-1 ;; + esac + fi + ;; + sco3.2v5*) + lt_cv_sys_max_cmd_len=102400 + ;; + sysv5* | sco5v6* | sysv4.2uw2*) + kargmax=`grep ARG_MAX /etc/conf/cf.d/stune 2>/dev/null` + if test -n "$kargmax"; then + lt_cv_sys_max_cmd_len=`echo $kargmax | sed 's/.*[[ ]]//'` + else + lt_cv_sys_max_cmd_len=32768 + fi + ;; + *) + lt_cv_sys_max_cmd_len=`(getconf ARG_MAX) 2> /dev/null` + if test -n "$lt_cv_sys_max_cmd_len" && \ + test undefined != "$lt_cv_sys_max_cmd_len"; then + lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \/ 4` + lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \* 3` + else + # Make teststring a little bigger before we do anything with it. + # a 1K string should be a reasonable start. + for i in 1 2 3 4 5 6 7 8 ; do + teststring=$teststring$teststring + done + SHELL=${SHELL-${CONFIG_SHELL-/bin/sh}} + # If test is not a shell built-in, we'll probably end up computing a + # maximum length that is only half of the actual maximum length, but + # we can't tell. + while { test "X"`env echo "$teststring$teststring" 2>/dev/null` \ + = "X$teststring$teststring"; } >/dev/null 2>&1 && + test $i != 17 # 1/2 MB should be enough + do + i=`expr $i + 1` + teststring=$teststring$teststring + done + # Only check the string length outside the loop. + lt_cv_sys_max_cmd_len=`expr "X$teststring" : ".*" 2>&1` + teststring= + # Add a significant safety factor because C++ compilers can tack on + # massive amounts of additional arguments before passing them to the + # linker. It appears as though 1/2 is a usable value. + lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \/ 2` + fi + ;; + esac +]) +if test -n $lt_cv_sys_max_cmd_len ; then + AC_MSG_RESULT($lt_cv_sys_max_cmd_len) +else + AC_MSG_RESULT(none) +fi +max_cmd_len=$lt_cv_sys_max_cmd_len +_LT_DECL([], [max_cmd_len], [0], + [What is the maximum length of a command?]) +])# LT_CMD_MAX_LEN + +# Old name: +AU_ALIAS([AC_LIBTOOL_SYS_MAX_CMD_LEN], [LT_CMD_MAX_LEN]) +dnl aclocal-1.4 backwards compatibility: +dnl AC_DEFUN([AC_LIBTOOL_SYS_MAX_CMD_LEN], []) + + +# _LT_HEADER_DLFCN +# ---------------- +m4_defun([_LT_HEADER_DLFCN], +[AC_CHECK_HEADERS([dlfcn.h], [], [], [AC_INCLUDES_DEFAULT])dnl +])# _LT_HEADER_DLFCN + + +# _LT_TRY_DLOPEN_SELF (ACTION-IF-TRUE, ACTION-IF-TRUE-W-USCORE, +# ACTION-IF-FALSE, ACTION-IF-CROSS-COMPILING) +# ---------------------------------------------------------------- +m4_defun([_LT_TRY_DLOPEN_SELF], +[m4_require([_LT_HEADER_DLFCN])dnl +if test "$cross_compiling" = yes; then : + [$4] +else + lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2 + lt_status=$lt_dlunknown + cat > conftest.$ac_ext <<_LT_EOF +[#line $LINENO "configure" +#include "confdefs.h" + +#if HAVE_DLFCN_H +#include +#endif + +#include + +#ifdef RTLD_GLOBAL +# define LT_DLGLOBAL RTLD_GLOBAL +#else +# ifdef DL_GLOBAL +# define LT_DLGLOBAL DL_GLOBAL +# else +# define LT_DLGLOBAL 0 +# endif +#endif + +/* We may have to define LT_DLLAZY_OR_NOW in the command line if we + find out it does not work in some platform. */ +#ifndef LT_DLLAZY_OR_NOW +# ifdef RTLD_LAZY +# define LT_DLLAZY_OR_NOW RTLD_LAZY +# else +# ifdef DL_LAZY +# define LT_DLLAZY_OR_NOW DL_LAZY +# else +# ifdef RTLD_NOW +# define LT_DLLAZY_OR_NOW RTLD_NOW +# else +# ifdef DL_NOW +# define LT_DLLAZY_OR_NOW DL_NOW +# else +# define LT_DLLAZY_OR_NOW 0 +# endif +# endif +# endif +# endif +#endif + +/* When -fvisbility=hidden is used, assume the code has been annotated + correspondingly for the symbols needed. */ +#if defined(__GNUC__) && (((__GNUC__ == 3) && (__GNUC_MINOR__ >= 3)) || (__GNUC__ > 3)) +int fnord () __attribute__((visibility("default"))); +#endif + +int fnord () { return 42; } +int main () +{ + void *self = dlopen (0, LT_DLGLOBAL|LT_DLLAZY_OR_NOW); + int status = $lt_dlunknown; + + if (self) + { + if (dlsym (self,"fnord")) status = $lt_dlno_uscore; + else + { + if (dlsym( self,"_fnord")) status = $lt_dlneed_uscore; + else puts (dlerror ()); + } + /* dlclose (self); */ + } + else + puts (dlerror ()); + + return status; +}] +_LT_EOF + if AC_TRY_EVAL(ac_link) && test -s conftest${ac_exeext} 2>/dev/null; then + (./conftest; exit; ) >&AS_MESSAGE_LOG_FD 2>/dev/null + lt_status=$? + case x$lt_status in + x$lt_dlno_uscore) $1 ;; + x$lt_dlneed_uscore) $2 ;; + x$lt_dlunknown|x*) $3 ;; + esac + else : + # compilation failed + $3 + fi +fi +rm -fr conftest* +])# _LT_TRY_DLOPEN_SELF + + +# LT_SYS_DLOPEN_SELF +# ------------------ +AC_DEFUN([LT_SYS_DLOPEN_SELF], +[m4_require([_LT_HEADER_DLFCN])dnl +if test "x$enable_dlopen" != xyes; then + enable_dlopen=unknown + enable_dlopen_self=unknown + enable_dlopen_self_static=unknown +else + lt_cv_dlopen=no + lt_cv_dlopen_libs= + + case $host_os in + beos*) + lt_cv_dlopen="load_add_on" + lt_cv_dlopen_libs= + lt_cv_dlopen_self=yes + ;; + + mingw* | pw32* | cegcc*) + lt_cv_dlopen="LoadLibrary" + lt_cv_dlopen_libs= + ;; + + cygwin*) + lt_cv_dlopen="dlopen" + lt_cv_dlopen_libs= + ;; + + darwin*) + # if libdl is installed we need to link against it + AC_CHECK_LIB([dl], [dlopen], + [lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-ldl"],[ + lt_cv_dlopen="dyld" + lt_cv_dlopen_libs= + lt_cv_dlopen_self=yes + ]) + ;; + + *) + AC_CHECK_FUNC([shl_load], + [lt_cv_dlopen="shl_load"], + [AC_CHECK_LIB([dld], [shl_load], + [lt_cv_dlopen="shl_load" lt_cv_dlopen_libs="-ldld"], + [AC_CHECK_FUNC([dlopen], + [lt_cv_dlopen="dlopen"], + [AC_CHECK_LIB([dl], [dlopen], + [lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-ldl"], + [AC_CHECK_LIB([svld], [dlopen], + [lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-lsvld"], + [AC_CHECK_LIB([dld], [dld_link], + [lt_cv_dlopen="dld_link" lt_cv_dlopen_libs="-ldld"]) + ]) + ]) + ]) + ]) + ]) + ;; + esac + + if test "x$lt_cv_dlopen" != xno; then + enable_dlopen=yes + else + enable_dlopen=no + fi + + case $lt_cv_dlopen in + dlopen) + save_CPPFLAGS="$CPPFLAGS" + test "x$ac_cv_header_dlfcn_h" = xyes && CPPFLAGS="$CPPFLAGS -DHAVE_DLFCN_H" + + save_LDFLAGS="$LDFLAGS" + wl=$lt_prog_compiler_wl eval LDFLAGS=\"\$LDFLAGS $export_dynamic_flag_spec\" + + save_LIBS="$LIBS" + LIBS="$lt_cv_dlopen_libs $LIBS" + + AC_CACHE_CHECK([whether a program can dlopen itself], + lt_cv_dlopen_self, [dnl + _LT_TRY_DLOPEN_SELF( + lt_cv_dlopen_self=yes, lt_cv_dlopen_self=yes, + lt_cv_dlopen_self=no, lt_cv_dlopen_self=cross) + ]) + + if test "x$lt_cv_dlopen_self" = xyes; then + wl=$lt_prog_compiler_wl eval LDFLAGS=\"\$LDFLAGS $lt_prog_compiler_static\" + AC_CACHE_CHECK([whether a statically linked program can dlopen itself], + lt_cv_dlopen_self_static, [dnl + _LT_TRY_DLOPEN_SELF( + lt_cv_dlopen_self_static=yes, lt_cv_dlopen_self_static=yes, + lt_cv_dlopen_self_static=no, lt_cv_dlopen_self_static=cross) + ]) + fi + + CPPFLAGS="$save_CPPFLAGS" + LDFLAGS="$save_LDFLAGS" + LIBS="$save_LIBS" + ;; + esac + + case $lt_cv_dlopen_self in + yes|no) enable_dlopen_self=$lt_cv_dlopen_self ;; + *) enable_dlopen_self=unknown ;; + esac + + case $lt_cv_dlopen_self_static in + yes|no) enable_dlopen_self_static=$lt_cv_dlopen_self_static ;; + *) enable_dlopen_self_static=unknown ;; + esac +fi +_LT_DECL([dlopen_support], [enable_dlopen], [0], + [Whether dlopen is supported]) +_LT_DECL([dlopen_self], [enable_dlopen_self], [0], + [Whether dlopen of programs is supported]) +_LT_DECL([dlopen_self_static], [enable_dlopen_self_static], [0], + [Whether dlopen of statically linked programs is supported]) +])# LT_SYS_DLOPEN_SELF + +# Old name: +AU_ALIAS([AC_LIBTOOL_DLOPEN_SELF], [LT_SYS_DLOPEN_SELF]) +dnl aclocal-1.4 backwards compatibility: +dnl AC_DEFUN([AC_LIBTOOL_DLOPEN_SELF], []) + + +# _LT_COMPILER_C_O([TAGNAME]) +# --------------------------- +# Check to see if options -c and -o are simultaneously supported by compiler. +# This macro does not hard code the compiler like AC_PROG_CC_C_O. +m4_defun([_LT_COMPILER_C_O], +[m4_require([_LT_DECL_SED])dnl +m4_require([_LT_FILEUTILS_DEFAULTS])dnl +m4_require([_LT_TAG_COMPILER])dnl +AC_CACHE_CHECK([if $compiler supports -c -o file.$ac_objext], + [_LT_TAGVAR(lt_cv_prog_compiler_c_o, $1)], + [_LT_TAGVAR(lt_cv_prog_compiler_c_o, $1)=no + $RM -r conftest 2>/dev/null + mkdir conftest + cd conftest + mkdir out + echo "$lt_simple_compile_test_code" > conftest.$ac_ext + + lt_compiler_flag="-o out/conftest2.$ac_objext" + # Insert the option either (1) after the last *FLAGS variable, or + # (2) before a word containing "conftest.", or (3) at the end. + # Note that $ac_compile itself does not contain backslashes and begins + # with a dollar sign (not a hyphen), so the echo should work correctly. + lt_compile=`echo "$ac_compile" | $SED \ + -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ + -e 's: [[^ ]]*conftest\.: $lt_compiler_flag&:; t' \ + -e 's:$: $lt_compiler_flag:'` + (eval echo "\"\$as_me:$LINENO: $lt_compile\"" >&AS_MESSAGE_LOG_FD) + (eval "$lt_compile" 2>out/conftest.err) + ac_status=$? + cat out/conftest.err >&AS_MESSAGE_LOG_FD + echo "$as_me:$LINENO: \$? = $ac_status" >&AS_MESSAGE_LOG_FD + if (exit $ac_status) && test -s out/conftest2.$ac_objext + then + # The compiler can only warn and ignore the option if not recognized + # So say no if there are warnings + $ECHO "$_lt_compiler_boilerplate" | $SED '/^$/d' > out/conftest.exp + $SED '/^$/d; /^ *+/d' out/conftest.err >out/conftest.er2 + if test ! -s out/conftest.er2 || diff out/conftest.exp out/conftest.er2 >/dev/null; then + _LT_TAGVAR(lt_cv_prog_compiler_c_o, $1)=yes + fi + fi + chmod u+w . 2>&AS_MESSAGE_LOG_FD + $RM conftest* + # SGI C++ compiler will create directory out/ii_files/ for + # template instantiation + test -d out/ii_files && $RM out/ii_files/* && rmdir out/ii_files + $RM out/* && rmdir out + cd .. + $RM -r conftest + $RM conftest* +]) +_LT_TAGDECL([compiler_c_o], [lt_cv_prog_compiler_c_o], [1], + [Does compiler simultaneously support -c and -o options?]) +])# _LT_COMPILER_C_O + + +# _LT_COMPILER_FILE_LOCKS([TAGNAME]) +# ---------------------------------- +# Check to see if we can do hard links to lock some files if needed +m4_defun([_LT_COMPILER_FILE_LOCKS], +[m4_require([_LT_ENABLE_LOCK])dnl +m4_require([_LT_FILEUTILS_DEFAULTS])dnl +_LT_COMPILER_C_O([$1]) + +hard_links="nottested" +if test "$_LT_TAGVAR(lt_cv_prog_compiler_c_o, $1)" = no && test "$need_locks" != no; then + # do not overwrite the value of need_locks provided by the user + AC_MSG_CHECKING([if we can lock with hard links]) + hard_links=yes + $RM conftest* + ln conftest.a conftest.b 2>/dev/null && hard_links=no + touch conftest.a + ln conftest.a conftest.b 2>&5 || hard_links=no + ln conftest.a conftest.b 2>/dev/null && hard_links=no + AC_MSG_RESULT([$hard_links]) + if test "$hard_links" = no; then + AC_MSG_WARN([`$CC' does not support `-c -o', so `make -j' may be unsafe]) + need_locks=warn + fi +else + need_locks=no +fi +_LT_DECL([], [need_locks], [1], [Must we lock files when doing compilation?]) +])# _LT_COMPILER_FILE_LOCKS + + +# _LT_CHECK_OBJDIR +# ---------------- +m4_defun([_LT_CHECK_OBJDIR], +[AC_CACHE_CHECK([for objdir], [lt_cv_objdir], +[rm -f .libs 2>/dev/null +mkdir .libs 2>/dev/null +if test -d .libs; then + lt_cv_objdir=.libs +else + # MS-DOS does not allow filenames that begin with a dot. + lt_cv_objdir=_libs +fi +rmdir .libs 2>/dev/null]) +objdir=$lt_cv_objdir +_LT_DECL([], [objdir], [0], + [The name of the directory that contains temporary libtool files])dnl +m4_pattern_allow([LT_OBJDIR])dnl +AC_DEFINE_UNQUOTED(LT_OBJDIR, "$lt_cv_objdir/", + [Define to the sub-directory in which libtool stores uninstalled libraries.]) +])# _LT_CHECK_OBJDIR + + +# _LT_LINKER_HARDCODE_LIBPATH([TAGNAME]) +# -------------------------------------- +# Check hardcoding attributes. +m4_defun([_LT_LINKER_HARDCODE_LIBPATH], +[AC_MSG_CHECKING([how to hardcode library paths into programs]) +_LT_TAGVAR(hardcode_action, $1)= +if test -n "$_LT_TAGVAR(hardcode_libdir_flag_spec, $1)" || + test -n "$_LT_TAGVAR(runpath_var, $1)" || + test "X$_LT_TAGVAR(hardcode_automatic, $1)" = "Xyes" ; then + + # We can hardcode non-existent directories. + if test "$_LT_TAGVAR(hardcode_direct, $1)" != no && + # If the only mechanism to avoid hardcoding is shlibpath_var, we + # have to relink, otherwise we might link with an installed library + # when we should be linking with a yet-to-be-installed one + ## test "$_LT_TAGVAR(hardcode_shlibpath_var, $1)" != no && + test "$_LT_TAGVAR(hardcode_minus_L, $1)" != no; then + # Linking always hardcodes the temporary library directory. + _LT_TAGVAR(hardcode_action, $1)=relink + else + # We can link without hardcoding, and we can hardcode nonexisting dirs. + _LT_TAGVAR(hardcode_action, $1)=immediate + fi +else + # We cannot hardcode anything, or else we can only hardcode existing + # directories. + _LT_TAGVAR(hardcode_action, $1)=unsupported +fi +AC_MSG_RESULT([$_LT_TAGVAR(hardcode_action, $1)]) + +if test "$_LT_TAGVAR(hardcode_action, $1)" = relink || + test "$_LT_TAGVAR(inherit_rpath, $1)" = yes; then + # Fast installation is not supported + enable_fast_install=no +elif test "$shlibpath_overrides_runpath" = yes || + test "$enable_shared" = no; then + # Fast installation is not necessary + enable_fast_install=needless +fi +_LT_TAGDECL([], [hardcode_action], [0], + [How to hardcode a shared library path into an executable]) +])# _LT_LINKER_HARDCODE_LIBPATH + + +# _LT_CMD_STRIPLIB +# ---------------- +m4_defun([_LT_CMD_STRIPLIB], +[m4_require([_LT_DECL_EGREP]) +striplib= +old_striplib= +AC_MSG_CHECKING([whether stripping libraries is possible]) +if test -n "$STRIP" && $STRIP -V 2>&1 | $GREP "GNU strip" >/dev/null; then + test -z "$old_striplib" && old_striplib="$STRIP --strip-debug" + test -z "$striplib" && striplib="$STRIP --strip-unneeded" + AC_MSG_RESULT([yes]) +else +# FIXME - insert some real tests, host_os isn't really good enough + case $host_os in + darwin*) + if test -n "$STRIP" ; then + striplib="$STRIP -x" + old_striplib="$STRIP -S" + AC_MSG_RESULT([yes]) + else + AC_MSG_RESULT([no]) + fi + ;; + *) + AC_MSG_RESULT([no]) + ;; + esac +fi +_LT_DECL([], [old_striplib], [1], [Commands to strip libraries]) +_LT_DECL([], [striplib], [1]) +])# _LT_CMD_STRIPLIB + + +# _LT_SYS_DYNAMIC_LINKER([TAG]) +# ----------------------------- +# PORTME Fill in your ld.so characteristics +m4_defun([_LT_SYS_DYNAMIC_LINKER], +[AC_REQUIRE([AC_CANONICAL_HOST])dnl +m4_require([_LT_DECL_EGREP])dnl +m4_require([_LT_FILEUTILS_DEFAULTS])dnl +m4_require([_LT_DECL_OBJDUMP])dnl +m4_require([_LT_DECL_SED])dnl +m4_require([_LT_CHECK_SHELL_FEATURES])dnl +AC_MSG_CHECKING([dynamic linker characteristics]) +m4_if([$1], + [], [ +if test "$GCC" = yes; then + case $host_os in + darwin*) lt_awk_arg="/^libraries:/,/LR/" ;; + *) lt_awk_arg="/^libraries:/" ;; + esac + case $host_os in + mingw* | cegcc*) lt_sed_strip_eq="s,=\([[A-Za-z]]:\),\1,g" ;; + *) lt_sed_strip_eq="s,=/,/,g" ;; + esac + lt_search_path_spec=`$CC -print-search-dirs | awk $lt_awk_arg | $SED -e "s/^libraries://" -e $lt_sed_strip_eq` + case $lt_search_path_spec in + *\;*) + # if the path contains ";" then we assume it to be the separator + # otherwise default to the standard path separator (i.e. ":") - it is + # assumed that no part of a normal pathname contains ";" but that should + # okay in the real world where ";" in dirpaths is itself problematic. + lt_search_path_spec=`$ECHO "$lt_search_path_spec" | $SED 's/;/ /g'` + ;; + *) + lt_search_path_spec=`$ECHO "$lt_search_path_spec" | $SED "s/$PATH_SEPARATOR/ /g"` + ;; + esac + # Ok, now we have the path, separated by spaces, we can step through it + # and add multilib dir if necessary. + lt_tmp_lt_search_path_spec= + lt_multi_os_dir=`$CC $CPPFLAGS $CFLAGS $LDFLAGS -print-multi-os-directory 2>/dev/null` + for lt_sys_path in $lt_search_path_spec; do + if test -d "$lt_sys_path/$lt_multi_os_dir"; then + lt_tmp_lt_search_path_spec="$lt_tmp_lt_search_path_spec $lt_sys_path/$lt_multi_os_dir" + else + test -d "$lt_sys_path" && \ + lt_tmp_lt_search_path_spec="$lt_tmp_lt_search_path_spec $lt_sys_path" + fi + done + lt_search_path_spec=`$ECHO "$lt_tmp_lt_search_path_spec" | awk ' +BEGIN {RS=" "; FS="/|\n";} { + lt_foo=""; + lt_count=0; + for (lt_i = NF; lt_i > 0; lt_i--) { + if ($lt_i != "" && $lt_i != ".") { + if ($lt_i == "..") { + lt_count++; + } else { + if (lt_count == 0) { + lt_foo="/" $lt_i lt_foo; + } else { + lt_count--; + } + } + } + } + if (lt_foo != "") { lt_freq[[lt_foo]]++; } + if (lt_freq[[lt_foo]] == 1) { print lt_foo; } +}'` + # AWK program above erroneously prepends '/' to C:/dos/paths + # for these hosts. + case $host_os in + mingw* | cegcc*) lt_search_path_spec=`$ECHO "$lt_search_path_spec" |\ + $SED 's,/\([[A-Za-z]]:\),\1,g'` ;; + esac + sys_lib_search_path_spec=`$ECHO "$lt_search_path_spec" | $lt_NL2SP` +else + sys_lib_search_path_spec="/lib /usr/lib /usr/local/lib" +fi]) +library_names_spec= +libname_spec='lib$name' +soname_spec= +shrext_cmds=".so" +postinstall_cmds= +postuninstall_cmds= +finish_cmds= +finish_eval= +shlibpath_var= +shlibpath_overrides_runpath=unknown +version_type=none +dynamic_linker="$host_os ld.so" +sys_lib_dlsearch_path_spec="/lib /usr/lib" +need_lib_prefix=unknown +hardcode_into_libs=no + +# when you set need_version to no, make sure it does not cause -set_version +# flags to be left without arguments +need_version=unknown + +case $host_os in +aix3*) + version_type=linux # correct to gnu/linux during the next big refactor + library_names_spec='${libname}${release}${shared_ext}$versuffix $libname.a' + shlibpath_var=LIBPATH + + # AIX 3 has no versioning support, so we append a major version to the name. + soname_spec='${libname}${release}${shared_ext}$major' + ;; + +aix[[4-9]]*) + version_type=linux # correct to gnu/linux during the next big refactor + need_lib_prefix=no + need_version=no + hardcode_into_libs=yes + if test "$host_cpu" = ia64; then + # AIX 5 supports IA64 + library_names_spec='${libname}${release}${shared_ext}$major ${libname}${release}${shared_ext}$versuffix $libname${shared_ext}' + shlibpath_var=LD_LIBRARY_PATH + else + # With GCC up to 2.95.x, collect2 would create an import file + # for dependence libraries. The import file would start with + # the line `#! .'. This would cause the generated library to + # depend on `.', always an invalid library. This was fixed in + # development snapshots of GCC prior to 3.0. + case $host_os in + aix4 | aix4.[[01]] | aix4.[[01]].*) + if { echo '#if __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 97)' + echo ' yes ' + echo '#endif'; } | ${CC} -E - | $GREP yes > /dev/null; then + : + else + can_build_shared=no + fi + ;; + esac + # AIX (on Power*) has no versioning support, so currently we can not hardcode correct + # soname into executable. Probably we can add versioning support to + # collect2, so additional links can be useful in future. + if test "$aix_use_runtimelinking" = yes; then + # If using run time linking (on AIX 4.2 or later) use lib.so + # instead of lib.a to let people know that these are not + # typical AIX shared libraries. + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' + else + # We preserve .a as extension for shared libraries through AIX4.2 + # and later when we are not doing run time linking. + library_names_spec='${libname}${release}.a $libname.a' + soname_spec='${libname}${release}${shared_ext}$major' + fi + shlibpath_var=LIBPATH + fi + ;; + +amigaos*) + case $host_cpu in + powerpc) + # Since July 2007 AmigaOS4 officially supports .so libraries. + # When compiling the executable, add -use-dynld -Lsobjs: to the compileline. + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' + ;; + m68k) + library_names_spec='$libname.ixlibrary $libname.a' + # Create ${libname}_ixlibrary.a entries in /sys/libs. + finish_eval='for lib in `ls $libdir/*.ixlibrary 2>/dev/null`; do libname=`func_echo_all "$lib" | $SED '\''s%^.*/\([[^/]]*\)\.ixlibrary$%\1%'\''`; test $RM /sys/libs/${libname}_ixlibrary.a; $show "cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a"; cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a || exit 1; done' + ;; + esac + ;; + +beos*) + library_names_spec='${libname}${shared_ext}' + dynamic_linker="$host_os ld.so" + shlibpath_var=LIBRARY_PATH + ;; + +bsdi[[45]]*) + version_type=linux # correct to gnu/linux during the next big refactor + need_version=no + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + finish_cmds='PATH="\$PATH:/sbin" ldconfig $libdir' + shlibpath_var=LD_LIBRARY_PATH + sys_lib_search_path_spec="/shlib /usr/lib /usr/X11/lib /usr/contrib/lib /lib /usr/local/lib" + sys_lib_dlsearch_path_spec="/shlib /usr/lib /usr/local/lib" + # the default ld.so.conf also contains /usr/contrib/lib and + # /usr/X11R6/lib (/usr/X11 is a link to /usr/X11R6), but let us allow + # libtool to hard-code these into programs + ;; + +cygwin* | mingw* | pw32* | cegcc*) + version_type=windows + shrext_cmds=".dll" + need_version=no + need_lib_prefix=no + + case $GCC,$cc_basename in + yes,*) + # gcc + library_names_spec='$libname.dll.a' + # DLL is installed to $(libdir)/../bin by postinstall_cmds + postinstall_cmds='base_file=`basename \${file}`~ + dlpath=`$SHELL 2>&1 -c '\''. $dir/'\''\${base_file}'\''i; echo \$dlname'\''`~ + dldir=$destdir/`dirname \$dlpath`~ + test -d \$dldir || mkdir -p \$dldir~ + $install_prog $dir/$dlname \$dldir/$dlname~ + chmod a+x \$dldir/$dlname~ + if test -n '\''$stripme'\'' && test -n '\''$striplib'\''; then + eval '\''$striplib \$dldir/$dlname'\'' || exit \$?; + fi' + postuninstall_cmds='dldll=`$SHELL 2>&1 -c '\''. $file; echo \$dlname'\''`~ + dlpath=$dir/\$dldll~ + $RM \$dlpath' + shlibpath_overrides_runpath=yes + + case $host_os in + cygwin*) + # Cygwin DLLs use 'cyg' prefix rather than 'lib' + soname_spec='`echo ${libname} | sed -e 's/^lib/cyg/'``echo ${release} | $SED -e 's/[[.]]/-/g'`${versuffix}${shared_ext}' +m4_if([$1], [],[ + sys_lib_search_path_spec="$sys_lib_search_path_spec /usr/lib/w32api"]) + ;; + mingw* | cegcc*) + # MinGW DLLs use traditional 'lib' prefix + soname_spec='${libname}`echo ${release} | $SED -e 's/[[.]]/-/g'`${versuffix}${shared_ext}' + ;; + pw32*) + # pw32 DLLs use 'pw' prefix rather than 'lib' + library_names_spec='`echo ${libname} | sed -e 's/^lib/pw/'``echo ${release} | $SED -e 's/[[.]]/-/g'`${versuffix}${shared_ext}' + ;; + esac + dynamic_linker='Win32 ld.exe' + ;; + + *,cl*) + # Native MSVC + libname_spec='$name' + soname_spec='${libname}`echo ${release} | $SED -e 's/[[.]]/-/g'`${versuffix}${shared_ext}' + library_names_spec='${libname}.dll.lib' + + case $build_os in + mingw*) + sys_lib_search_path_spec= + lt_save_ifs=$IFS + IFS=';' + for lt_path in $LIB + do + IFS=$lt_save_ifs + # Let DOS variable expansion print the short 8.3 style file name. + lt_path=`cd "$lt_path" 2>/dev/null && cmd //C "for %i in (".") do @echo %~si"` + sys_lib_search_path_spec="$sys_lib_search_path_spec $lt_path" + done + IFS=$lt_save_ifs + # Convert to MSYS style. + sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | sed -e 's|\\\\|/|g' -e 's| \\([[a-zA-Z]]\\):| /\\1|g' -e 's|^ ||'` + ;; + cygwin*) + # Convert to unix form, then to dos form, then back to unix form + # but this time dos style (no spaces!) so that the unix form looks + # like /cygdrive/c/PROGRA~1:/cygdr... + sys_lib_search_path_spec=`cygpath --path --unix "$LIB"` + sys_lib_search_path_spec=`cygpath --path --dos "$sys_lib_search_path_spec" 2>/dev/null` + sys_lib_search_path_spec=`cygpath --path --unix "$sys_lib_search_path_spec" | $SED -e "s/$PATH_SEPARATOR/ /g"` + ;; + *) + sys_lib_search_path_spec="$LIB" + if $ECHO "$sys_lib_search_path_spec" | [$GREP ';[c-zC-Z]:/' >/dev/null]; then + # It is most probably a Windows format PATH. + sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | $SED -e 's/;/ /g'` + else + sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | $SED -e "s/$PATH_SEPARATOR/ /g"` + fi + # FIXME: find the short name or the path components, as spaces are + # common. (e.g. "Program Files" -> "PROGRA~1") + ;; + esac + + # DLL is installed to $(libdir)/../bin by postinstall_cmds + postinstall_cmds='base_file=`basename \${file}`~ + dlpath=`$SHELL 2>&1 -c '\''. $dir/'\''\${base_file}'\''i; echo \$dlname'\''`~ + dldir=$destdir/`dirname \$dlpath`~ + test -d \$dldir || mkdir -p \$dldir~ + $install_prog $dir/$dlname \$dldir/$dlname' + postuninstall_cmds='dldll=`$SHELL 2>&1 -c '\''. $file; echo \$dlname'\''`~ + dlpath=$dir/\$dldll~ + $RM \$dlpath' + shlibpath_overrides_runpath=yes + dynamic_linker='Win32 link.exe' + ;; + + *) + # Assume MSVC wrapper + library_names_spec='${libname}`echo ${release} | $SED -e 's/[[.]]/-/g'`${versuffix}${shared_ext} $libname.lib' + dynamic_linker='Win32 ld.exe' + ;; + esac + # FIXME: first we should search . and the directory the executable is in + shlibpath_var=PATH + ;; + +darwin* | rhapsody*) + dynamic_linker="$host_os dyld" + version_type=darwin + need_lib_prefix=no + need_version=no + library_names_spec='${libname}${release}${major}$shared_ext ${libname}$shared_ext' + soname_spec='${libname}${release}${major}$shared_ext' + shlibpath_overrides_runpath=yes + shlibpath_var=DYLD_LIBRARY_PATH + shrext_cmds='`test .$module = .yes && echo .so || echo .dylib`' +m4_if([$1], [],[ + sys_lib_search_path_spec="$sys_lib_search_path_spec /usr/local/lib"]) + sys_lib_dlsearch_path_spec='/usr/local/lib /lib /usr/lib' + ;; + +dgux*) + version_type=linux # correct to gnu/linux during the next big refactor + need_lib_prefix=no + need_version=no + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname$shared_ext' + soname_spec='${libname}${release}${shared_ext}$major' + shlibpath_var=LD_LIBRARY_PATH + ;; + +freebsd* | dragonfly*) + # DragonFly does not have aout. When/if they implement a new + # versioning mechanism, adjust this. + if test -x /usr/bin/objformat; then + objformat=`/usr/bin/objformat` + else + case $host_os in + freebsd[[23]].*) objformat=aout ;; + *) objformat=elf ;; + esac + fi + version_type=freebsd-$objformat + case $version_type in + freebsd-elf*) + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext} $libname${shared_ext}' + need_version=no + need_lib_prefix=no + ;; + freebsd-*) + library_names_spec='${libname}${release}${shared_ext}$versuffix $libname${shared_ext}$versuffix' + need_version=yes + ;; + esac + shlibpath_var=LD_LIBRARY_PATH + case $host_os in + freebsd2.*) + shlibpath_overrides_runpath=yes + ;; + freebsd3.[[01]]* | freebsdelf3.[[01]]*) + shlibpath_overrides_runpath=yes + hardcode_into_libs=yes + ;; + freebsd3.[[2-9]]* | freebsdelf3.[[2-9]]* | \ + freebsd4.[[0-5]] | freebsdelf4.[[0-5]] | freebsd4.1.1 | freebsdelf4.1.1) + shlibpath_overrides_runpath=no + hardcode_into_libs=yes + ;; + *) # from 4.6 on, and DragonFly + shlibpath_overrides_runpath=yes + hardcode_into_libs=yes + ;; + esac + ;; + +haiku*) + version_type=linux # correct to gnu/linux during the next big refactor + need_lib_prefix=no + need_version=no + dynamic_linker="$host_os runtime_loader" + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}${major} ${libname}${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + shlibpath_var=LIBRARY_PATH + shlibpath_overrides_runpath=yes + sys_lib_dlsearch_path_spec='/boot/home/config/lib /boot/common/lib /boot/system/lib' + hardcode_into_libs=yes + ;; + +hpux9* | hpux10* | hpux11*) + # Give a soname corresponding to the major version so that dld.sl refuses to + # link against other versions. + version_type=sunos + need_lib_prefix=no + need_version=no + case $host_cpu in + ia64*) + shrext_cmds='.so' + hardcode_into_libs=yes + dynamic_linker="$host_os dld.so" + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=yes # Unless +noenvvar is specified. + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + if test "X$HPUX_IA64_MODE" = X32; then + sys_lib_search_path_spec="/usr/lib/hpux32 /usr/local/lib/hpux32 /usr/local/lib" + else + sys_lib_search_path_spec="/usr/lib/hpux64 /usr/local/lib/hpux64" + fi + sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec + ;; + hppa*64*) + shrext_cmds='.sl' + hardcode_into_libs=yes + dynamic_linker="$host_os dld.sl" + shlibpath_var=LD_LIBRARY_PATH # How should we handle SHLIB_PATH + shlibpath_overrides_runpath=yes # Unless +noenvvar is specified. + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + sys_lib_search_path_spec="/usr/lib/pa20_64 /usr/ccs/lib/pa20_64" + sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec + ;; + *) + shrext_cmds='.sl' + dynamic_linker="$host_os dld.sl" + shlibpath_var=SHLIB_PATH + shlibpath_overrides_runpath=no # +s is required to enable SHLIB_PATH + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + ;; + esac + # HP-UX runs *really* slowly unless shared libraries are mode 555, ... + postinstall_cmds='chmod 555 $lib' + # or fails outright, so override atomically: + install_override_mode=555 + ;; + +interix[[3-9]]*) + version_type=linux # correct to gnu/linux during the next big refactor + need_lib_prefix=no + need_version=no + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + dynamic_linker='Interix 3.x ld.so.1 (PE, like ELF)' + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=no + hardcode_into_libs=yes + ;; + +irix5* | irix6* | nonstopux*) + case $host_os in + nonstopux*) version_type=nonstopux ;; + *) + if test "$lt_cv_prog_gnu_ld" = yes; then + version_type=linux # correct to gnu/linux during the next big refactor + else + version_type=irix + fi ;; + esac + need_lib_prefix=no + need_version=no + soname_spec='${libname}${release}${shared_ext}$major' + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${release}${shared_ext} $libname${shared_ext}' + case $host_os in + irix5* | nonstopux*) + libsuff= shlibsuff= + ;; + *) + case $LD in # libtool.m4 will add one of these switches to LD + *-32|*"-32 "|*-melf32bsmip|*"-melf32bsmip ") + libsuff= shlibsuff= libmagic=32-bit;; + *-n32|*"-n32 "|*-melf32bmipn32|*"-melf32bmipn32 ") + libsuff=32 shlibsuff=N32 libmagic=N32;; + *-64|*"-64 "|*-melf64bmip|*"-melf64bmip ") + libsuff=64 shlibsuff=64 libmagic=64-bit;; + *) libsuff= shlibsuff= libmagic=never-match;; + esac + ;; + esac + shlibpath_var=LD_LIBRARY${shlibsuff}_PATH + shlibpath_overrides_runpath=no + sys_lib_search_path_spec="/usr/lib${libsuff} /lib${libsuff} /usr/local/lib${libsuff}" + sys_lib_dlsearch_path_spec="/usr/lib${libsuff} /lib${libsuff}" + hardcode_into_libs=yes + ;; + +# No shared lib support for Linux oldld, aout, or coff. +linux*oldld* | linux*aout* | linux*coff*) + dynamic_linker=no + ;; + +# This must be glibc/ELF. +linux* | k*bsd*-gnu | kopensolaris*-gnu | gnu*) + version_type=linux # correct to gnu/linux during the next big refactor + need_lib_prefix=no + need_version=no + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + finish_cmds='PATH="\$PATH:/sbin" ldconfig -n $libdir' + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=no + + # Some binutils ld are patched to set DT_RUNPATH + AC_CACHE_VAL([lt_cv_shlibpath_overrides_runpath], + [lt_cv_shlibpath_overrides_runpath=no + save_LDFLAGS=$LDFLAGS + save_libdir=$libdir + eval "libdir=/foo; wl=\"$_LT_TAGVAR(lt_prog_compiler_wl, $1)\"; \ + LDFLAGS=\"\$LDFLAGS $_LT_TAGVAR(hardcode_libdir_flag_spec, $1)\"" + AC_LINK_IFELSE([AC_LANG_PROGRAM([],[])], + [AS_IF([ ($OBJDUMP -p conftest$ac_exeext) 2>/dev/null | grep "RUNPATH.*$libdir" >/dev/null], + [lt_cv_shlibpath_overrides_runpath=yes])]) + LDFLAGS=$save_LDFLAGS + libdir=$save_libdir + ]) + shlibpath_overrides_runpath=$lt_cv_shlibpath_overrides_runpath + + # This implies no fast_install, which is unacceptable. + # Some rework will be needed to allow for fast_install + # before this can be enabled. + hardcode_into_libs=yes + + # Append ld.so.conf contents to the search path + if test -f /etc/ld.so.conf; then + lt_ld_extra=`awk '/^include / { system(sprintf("cd /etc; cat %s 2>/dev/null", \[$]2)); skip = 1; } { if (!skip) print \[$]0; skip = 0; }' < /etc/ld.so.conf | $SED -e 's/#.*//;/^[ ]*hwcap[ ]/d;s/[:, ]/ /g;s/=[^=]*$//;s/=[^= ]* / /g;s/"//g;/^$/d' | tr '\n' ' '` + sys_lib_dlsearch_path_spec="/lib /usr/lib $lt_ld_extra" + fi + + # We used to test for /lib/ld.so.1 and disable shared libraries on + # powerpc, because MkLinux only supported shared libraries with the + # GNU dynamic linker. Since this was broken with cross compilers, + # most powerpc-linux boxes support dynamic linking these days and + # people can always --disable-shared, the test was removed, and we + # assume the GNU/Linux dynamic linker is in use. + dynamic_linker='GNU/Linux ld.so' + ;; + +netbsdelf*-gnu) + version_type=linux + need_lib_prefix=no + need_version=no + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=no + hardcode_into_libs=yes + dynamic_linker='NetBSD ld.elf_so' + ;; + +netbsd*) + version_type=sunos + need_lib_prefix=no + need_version=no + if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix' + finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir' + dynamic_linker='NetBSD (a.out) ld.so' + else + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + dynamic_linker='NetBSD ld.elf_so' + fi + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=yes + hardcode_into_libs=yes + ;; + +newsos6) + version_type=linux # correct to gnu/linux during the next big refactor + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=yes + ;; + +*nto* | *qnx*) + version_type=qnx + need_lib_prefix=no + need_version=no + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=no + hardcode_into_libs=yes + dynamic_linker='ldqnx.so' + ;; + +openbsd*) + version_type=sunos + sys_lib_dlsearch_path_spec="/usr/lib" + need_lib_prefix=no + # Some older versions of OpenBSD (3.3 at least) *do* need versioned libs. + case $host_os in + openbsd3.3 | openbsd3.3.*) need_version=yes ;; + *) need_version=no ;; + esac + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix' + finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir' + shlibpath_var=LD_LIBRARY_PATH + if test -z "`echo __ELF__ | $CC -E - | $GREP __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then + case $host_os in + openbsd2.[[89]] | openbsd2.[[89]].*) + shlibpath_overrides_runpath=no + ;; + *) + shlibpath_overrides_runpath=yes + ;; + esac + else + shlibpath_overrides_runpath=yes + fi + ;; + +os2*) + libname_spec='$name' + shrext_cmds=".dll" + need_lib_prefix=no + library_names_spec='$libname${shared_ext} $libname.a' + dynamic_linker='OS/2 ld.exe' + shlibpath_var=LIBPATH + ;; + +osf3* | osf4* | osf5*) + version_type=osf + need_lib_prefix=no + need_version=no + soname_spec='${libname}${release}${shared_ext}$major' + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' + shlibpath_var=LD_LIBRARY_PATH + sys_lib_search_path_spec="/usr/shlib /usr/ccs/lib /usr/lib/cmplrs/cc /usr/lib /usr/local/lib /var/shlib" + sys_lib_dlsearch_path_spec="$sys_lib_search_path_spec" + ;; + +rdos*) + dynamic_linker=no + ;; + +solaris*) + version_type=linux # correct to gnu/linux during the next big refactor + need_lib_prefix=no + need_version=no + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=yes + hardcode_into_libs=yes + # ldd complains unless libraries are executable + postinstall_cmds='chmod +x $lib' + ;; + +sunos4*) + version_type=sunos + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix' + finish_cmds='PATH="\$PATH:/usr/etc" ldconfig $libdir' + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=yes + if test "$with_gnu_ld" = yes; then + need_lib_prefix=no + fi + need_version=yes + ;; + +sysv4 | sysv4.3*) + version_type=linux # correct to gnu/linux during the next big refactor + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + shlibpath_var=LD_LIBRARY_PATH + case $host_vendor in + sni) + shlibpath_overrides_runpath=no + need_lib_prefix=no + runpath_var=LD_RUN_PATH + ;; + siemens) + need_lib_prefix=no + ;; + motorola) + need_lib_prefix=no + need_version=no + shlibpath_overrides_runpath=no + sys_lib_search_path_spec='/lib /usr/lib /usr/ccs/lib' + ;; + esac + ;; + +sysv4*MP*) + if test -d /usr/nec ;then + version_type=linux # correct to gnu/linux during the next big refactor + library_names_spec='$libname${shared_ext}.$versuffix $libname${shared_ext}.$major $libname${shared_ext}' + soname_spec='$libname${shared_ext}.$major' + shlibpath_var=LD_LIBRARY_PATH + fi + ;; + +sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX* | sysv4*uw2*) + version_type=freebsd-elf + need_lib_prefix=no + need_version=no + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext} $libname${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=yes + hardcode_into_libs=yes + if test "$with_gnu_ld" = yes; then + sys_lib_search_path_spec='/usr/local/lib /usr/gnu/lib /usr/ccs/lib /usr/lib /lib' + else + sys_lib_search_path_spec='/usr/ccs/lib /usr/lib' + case $host_os in + sco3.2v5*) + sys_lib_search_path_spec="$sys_lib_search_path_spec /lib" + ;; + esac + fi + sys_lib_dlsearch_path_spec='/usr/lib' + ;; + +tpf*) + # TPF is a cross-target only. Preferred cross-host = GNU/Linux. + version_type=linux # correct to gnu/linux during the next big refactor + need_lib_prefix=no + need_version=no + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=no + hardcode_into_libs=yes + ;; + +uts4*) + version_type=linux # correct to gnu/linux during the next big refactor + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + shlibpath_var=LD_LIBRARY_PATH + ;; + +*) + dynamic_linker=no + ;; +esac +AC_MSG_RESULT([$dynamic_linker]) +test "$dynamic_linker" = no && can_build_shared=no + +variables_saved_for_relink="PATH $shlibpath_var $runpath_var" +if test "$GCC" = yes; then + variables_saved_for_relink="$variables_saved_for_relink GCC_EXEC_PREFIX COMPILER_PATH LIBRARY_PATH" +fi + +if test "${lt_cv_sys_lib_search_path_spec+set}" = set; then + sys_lib_search_path_spec="$lt_cv_sys_lib_search_path_spec" +fi +if test "${lt_cv_sys_lib_dlsearch_path_spec+set}" = set; then + sys_lib_dlsearch_path_spec="$lt_cv_sys_lib_dlsearch_path_spec" +fi + +_LT_DECL([], [variables_saved_for_relink], [1], + [Variables whose values should be saved in libtool wrapper scripts and + restored at link time]) +_LT_DECL([], [need_lib_prefix], [0], + [Do we need the "lib" prefix for modules?]) +_LT_DECL([], [need_version], [0], [Do we need a version for libraries?]) +_LT_DECL([], [version_type], [0], [Library versioning type]) +_LT_DECL([], [runpath_var], [0], [Shared library runtime path variable]) +_LT_DECL([], [shlibpath_var], [0],[Shared library path variable]) +_LT_DECL([], [shlibpath_overrides_runpath], [0], + [Is shlibpath searched before the hard-coded library search path?]) +_LT_DECL([], [libname_spec], [1], [Format of library name prefix]) +_LT_DECL([], [library_names_spec], [1], + [[List of archive names. First name is the real one, the rest are links. + The last name is the one that the linker finds with -lNAME]]) +_LT_DECL([], [soname_spec], [1], + [[The coded name of the library, if different from the real name]]) +_LT_DECL([], [install_override_mode], [1], + [Permission mode override for installation of shared libraries]) +_LT_DECL([], [postinstall_cmds], [2], + [Command to use after installation of a shared archive]) +_LT_DECL([], [postuninstall_cmds], [2], + [Command to use after uninstallation of a shared archive]) +_LT_DECL([], [finish_cmds], [2], + [Commands used to finish a libtool library installation in a directory]) +_LT_DECL([], [finish_eval], [1], + [[As "finish_cmds", except a single script fragment to be evaled but + not shown]]) +_LT_DECL([], [hardcode_into_libs], [0], + [Whether we should hardcode library paths into libraries]) +_LT_DECL([], [sys_lib_search_path_spec], [2], + [Compile-time system search path for libraries]) +_LT_DECL([], [sys_lib_dlsearch_path_spec], [2], + [Run-time system search path for libraries]) +])# _LT_SYS_DYNAMIC_LINKER + + +# _LT_PATH_TOOL_PREFIX(TOOL) +# -------------------------- +# find a file program which can recognize shared library +AC_DEFUN([_LT_PATH_TOOL_PREFIX], +[m4_require([_LT_DECL_EGREP])dnl +AC_MSG_CHECKING([for $1]) +AC_CACHE_VAL(lt_cv_path_MAGIC_CMD, +[case $MAGIC_CMD in +[[\\/*] | ?:[\\/]*]) + lt_cv_path_MAGIC_CMD="$MAGIC_CMD" # Let the user override the test with a path. + ;; +*) + lt_save_MAGIC_CMD="$MAGIC_CMD" + lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR +dnl $ac_dummy forces splitting on constant user-supplied paths. +dnl POSIX.2 word splitting is done only on the output of word expansions, +dnl not every word. This closes a longstanding sh security hole. + ac_dummy="m4_if([$2], , $PATH, [$2])" + for ac_dir in $ac_dummy; do + IFS="$lt_save_ifs" + test -z "$ac_dir" && ac_dir=. + if test -f $ac_dir/$1; then + lt_cv_path_MAGIC_CMD="$ac_dir/$1" + if test -n "$file_magic_test_file"; then + case $deplibs_check_method in + "file_magic "*) + file_magic_regex=`expr "$deplibs_check_method" : "file_magic \(.*\)"` + MAGIC_CMD="$lt_cv_path_MAGIC_CMD" + if eval $file_magic_cmd \$file_magic_test_file 2> /dev/null | + $EGREP "$file_magic_regex" > /dev/null; then + : + else + cat <<_LT_EOF 1>&2 + +*** Warning: the command libtool uses to detect shared libraries, +*** $file_magic_cmd, produces output that libtool cannot recognize. +*** The result is that libtool may fail to recognize shared libraries +*** as such. This will affect the creation of libtool libraries that +*** depend on shared libraries, but programs linked with such libtool +*** libraries will work regardless of this problem. Nevertheless, you +*** may want to report the problem to your system manager and/or to +*** bug-libtool@gnu.org + +_LT_EOF + fi ;; + esac + fi + break + fi + done + IFS="$lt_save_ifs" + MAGIC_CMD="$lt_save_MAGIC_CMD" + ;; +esac]) +MAGIC_CMD="$lt_cv_path_MAGIC_CMD" +if test -n "$MAGIC_CMD"; then + AC_MSG_RESULT($MAGIC_CMD) +else + AC_MSG_RESULT(no) +fi +_LT_DECL([], [MAGIC_CMD], [0], + [Used to examine libraries when file_magic_cmd begins with "file"])dnl +])# _LT_PATH_TOOL_PREFIX + +# Old name: +AU_ALIAS([AC_PATH_TOOL_PREFIX], [_LT_PATH_TOOL_PREFIX]) +dnl aclocal-1.4 backwards compatibility: +dnl AC_DEFUN([AC_PATH_TOOL_PREFIX], []) + + +# _LT_PATH_MAGIC +# -------------- +# find a file program which can recognize a shared library +m4_defun([_LT_PATH_MAGIC], +[_LT_PATH_TOOL_PREFIX(${ac_tool_prefix}file, /usr/bin$PATH_SEPARATOR$PATH) +if test -z "$lt_cv_path_MAGIC_CMD"; then + if test -n "$ac_tool_prefix"; then + _LT_PATH_TOOL_PREFIX(file, /usr/bin$PATH_SEPARATOR$PATH) + else + MAGIC_CMD=: + fi +fi +])# _LT_PATH_MAGIC + + +# LT_PATH_LD +# ---------- +# find the pathname to the GNU or non-GNU linker +AC_DEFUN([LT_PATH_LD], +[AC_REQUIRE([AC_PROG_CC])dnl +AC_REQUIRE([AC_CANONICAL_HOST])dnl +AC_REQUIRE([AC_CANONICAL_BUILD])dnl +m4_require([_LT_DECL_SED])dnl +m4_require([_LT_DECL_EGREP])dnl +m4_require([_LT_PROG_ECHO_BACKSLASH])dnl + +AC_ARG_WITH([gnu-ld], + [AS_HELP_STRING([--with-gnu-ld], + [assume the C compiler uses GNU ld @<:@default=no@:>@])], + [test "$withval" = no || with_gnu_ld=yes], + [with_gnu_ld=no])dnl + +ac_prog=ld +if test "$GCC" = yes; then + # Check if gcc -print-prog-name=ld gives a path. + AC_MSG_CHECKING([for ld used by $CC]) + case $host in + *-*-mingw*) + # gcc leaves a trailing carriage return which upsets mingw + ac_prog=`($CC -print-prog-name=ld) 2>&5 | tr -d '\015'` ;; + *) + ac_prog=`($CC -print-prog-name=ld) 2>&5` ;; + esac + case $ac_prog in + # Accept absolute paths. + [[\\/]]* | ?:[[\\/]]*) + re_direlt='/[[^/]][[^/]]*/\.\./' + # Canonicalize the pathname of ld + ac_prog=`$ECHO "$ac_prog"| $SED 's%\\\\%/%g'` + while $ECHO "$ac_prog" | $GREP "$re_direlt" > /dev/null 2>&1; do + ac_prog=`$ECHO $ac_prog| $SED "s%$re_direlt%/%"` + done + test -z "$LD" && LD="$ac_prog" + ;; + "") + # If it fails, then pretend we aren't using GCC. + ac_prog=ld + ;; + *) + # If it is relative, then search for the first ld in PATH. + with_gnu_ld=unknown + ;; + esac +elif test "$with_gnu_ld" = yes; then + AC_MSG_CHECKING([for GNU ld]) +else + AC_MSG_CHECKING([for non-GNU ld]) +fi +AC_CACHE_VAL(lt_cv_path_LD, +[if test -z "$LD"; then + lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR + for ac_dir in $PATH; do + IFS="$lt_save_ifs" + test -z "$ac_dir" && ac_dir=. + if test -f "$ac_dir/$ac_prog" || test -f "$ac_dir/$ac_prog$ac_exeext"; then + lt_cv_path_LD="$ac_dir/$ac_prog" + # Check to see if the program is GNU ld. I'd rather use --version, + # but apparently some variants of GNU ld only accept -v. + # Break only if it was the GNU/non-GNU ld that we prefer. + case `"$lt_cv_path_LD" -v 2>&1 &1 /dev/null 2>&1; then + lt_cv_deplibs_check_method='file_magic ^x86 archive import|^x86 DLL' + lt_cv_file_magic_cmd='func_win32_libid' + else + # Keep this pattern in sync with the one in func_win32_libid. + lt_cv_deplibs_check_method='file_magic file format (pei*-i386(.*architecture: i386)?|pe-arm-wince|pe-x86-64)' + lt_cv_file_magic_cmd='$OBJDUMP -f' + fi + ;; + +cegcc*) + # use the weaker test based on 'objdump'. See mingw*. + lt_cv_deplibs_check_method='file_magic file format pe-arm-.*little(.*architecture: arm)?' + lt_cv_file_magic_cmd='$OBJDUMP -f' + ;; + +darwin* | rhapsody*) + lt_cv_deplibs_check_method=pass_all + ;; + +freebsd* | dragonfly*) + if echo __ELF__ | $CC -E - | $GREP __ELF__ > /dev/null; then + case $host_cpu in + i*86 ) + # Not sure whether the presence of OpenBSD here was a mistake. + # Let's accept both of them until this is cleared up. + lt_cv_deplibs_check_method='file_magic (FreeBSD|OpenBSD|DragonFly)/i[[3-9]]86 (compact )?demand paged shared library' + lt_cv_file_magic_cmd=/usr/bin/file + lt_cv_file_magic_test_file=`echo /usr/lib/libc.so.*` + ;; + esac + else + lt_cv_deplibs_check_method=pass_all + fi + ;; + +haiku*) + lt_cv_deplibs_check_method=pass_all + ;; + +hpux10.20* | hpux11*) + lt_cv_file_magic_cmd=/usr/bin/file + case $host_cpu in + ia64*) + lt_cv_deplibs_check_method='file_magic (s[[0-9]][[0-9]][[0-9]]|ELF-[[0-9]][[0-9]]) shared object file - IA64' + lt_cv_file_magic_test_file=/usr/lib/hpux32/libc.so + ;; + hppa*64*) + [lt_cv_deplibs_check_method='file_magic (s[0-9][0-9][0-9]|ELF[ -][0-9][0-9])(-bit)?( [LM]SB)? shared object( file)?[, -]* PA-RISC [0-9]\.[0-9]'] + lt_cv_file_magic_test_file=/usr/lib/pa20_64/libc.sl + ;; + *) + lt_cv_deplibs_check_method='file_magic (s[[0-9]][[0-9]][[0-9]]|PA-RISC[[0-9]]\.[[0-9]]) shared library' + lt_cv_file_magic_test_file=/usr/lib/libc.sl + ;; + esac + ;; + +interix[[3-9]]*) + # PIC code is broken on Interix 3.x, that's why |\.a not |_pic\.a here + lt_cv_deplibs_check_method='match_pattern /lib[[^/]]+(\.so|\.a)$' + ;; + +irix5* | irix6* | nonstopux*) + case $LD in + *-32|*"-32 ") libmagic=32-bit;; + *-n32|*"-n32 ") libmagic=N32;; + *-64|*"-64 ") libmagic=64-bit;; + *) libmagic=never-match;; + esac + lt_cv_deplibs_check_method=pass_all + ;; + +# This must be glibc/ELF. +linux* | k*bsd*-gnu | kopensolaris*-gnu | gnu*) + lt_cv_deplibs_check_method=pass_all + ;; + +netbsd* | netbsdelf*-gnu) + if echo __ELF__ | $CC -E - | $GREP __ELF__ > /dev/null; then + lt_cv_deplibs_check_method='match_pattern /lib[[^/]]+(\.so\.[[0-9]]+\.[[0-9]]+|_pic\.a)$' + else + lt_cv_deplibs_check_method='match_pattern /lib[[^/]]+(\.so|_pic\.a)$' + fi + ;; + +newos6*) + lt_cv_deplibs_check_method='file_magic ELF [[0-9]][[0-9]]*-bit [[ML]]SB (executable|dynamic lib)' + lt_cv_file_magic_cmd=/usr/bin/file + lt_cv_file_magic_test_file=/usr/lib/libnls.so + ;; + +*nto* | *qnx*) + lt_cv_deplibs_check_method=pass_all + ;; + +openbsd*) + if test -z "`echo __ELF__ | $CC -E - | $GREP __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then + lt_cv_deplibs_check_method='match_pattern /lib[[^/]]+(\.so\.[[0-9]]+\.[[0-9]]+|\.so|_pic\.a)$' + else + lt_cv_deplibs_check_method='match_pattern /lib[[^/]]+(\.so\.[[0-9]]+\.[[0-9]]+|_pic\.a)$' + fi + ;; + +osf3* | osf4* | osf5*) + lt_cv_deplibs_check_method=pass_all + ;; + +rdos*) + lt_cv_deplibs_check_method=pass_all + ;; + +solaris*) + lt_cv_deplibs_check_method=pass_all + ;; + +sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX* | sysv4*uw2*) + lt_cv_deplibs_check_method=pass_all + ;; + +sysv4 | sysv4.3*) + case $host_vendor in + motorola) + lt_cv_deplibs_check_method='file_magic ELF [[0-9]][[0-9]]*-bit [[ML]]SB (shared object|dynamic lib) M[[0-9]][[0-9]]* Version [[0-9]]' + lt_cv_file_magic_test_file=`echo /usr/lib/libc.so*` + ;; + ncr) + lt_cv_deplibs_check_method=pass_all + ;; + sequent) + lt_cv_file_magic_cmd='/bin/file' + lt_cv_deplibs_check_method='file_magic ELF [[0-9]][[0-9]]*-bit [[LM]]SB (shared object|dynamic lib )' + ;; + sni) + lt_cv_file_magic_cmd='/bin/file' + lt_cv_deplibs_check_method="file_magic ELF [[0-9]][[0-9]]*-bit [[LM]]SB dynamic lib" + lt_cv_file_magic_test_file=/lib/libc.so + ;; + siemens) + lt_cv_deplibs_check_method=pass_all + ;; + pc) + lt_cv_deplibs_check_method=pass_all + ;; + esac + ;; + +tpf*) + lt_cv_deplibs_check_method=pass_all + ;; +esac +]) + +file_magic_glob= +want_nocaseglob=no +if test "$build" = "$host"; then + case $host_os in + mingw* | pw32*) + if ( shopt | grep nocaseglob ) >/dev/null 2>&1; then + want_nocaseglob=yes + else + file_magic_glob=`echo aAbBcCdDeEfFgGhHiIjJkKlLmMnNoOpPqQrRsStTuUvVwWxXyYzZ | $SED -e "s/\(..\)/s\/[[\1]]\/[[\1]]\/g;/g"` + fi + ;; + esac +fi + +file_magic_cmd=$lt_cv_file_magic_cmd +deplibs_check_method=$lt_cv_deplibs_check_method +test -z "$deplibs_check_method" && deplibs_check_method=unknown + +_LT_DECL([], [deplibs_check_method], [1], + [Method to check whether dependent libraries are shared objects]) +_LT_DECL([], [file_magic_cmd], [1], + [Command to use when deplibs_check_method = "file_magic"]) +_LT_DECL([], [file_magic_glob], [1], + [How to find potential files when deplibs_check_method = "file_magic"]) +_LT_DECL([], [want_nocaseglob], [1], + [Find potential files using nocaseglob when deplibs_check_method = "file_magic"]) +])# _LT_CHECK_MAGIC_METHOD + + +# LT_PATH_NM +# ---------- +# find the pathname to a BSD- or MS-compatible name lister +AC_DEFUN([LT_PATH_NM], +[AC_REQUIRE([AC_PROG_CC])dnl +AC_CACHE_CHECK([for BSD- or MS-compatible name lister (nm)], lt_cv_path_NM, +[if test -n "$NM"; then + # Let the user override the test. + lt_cv_path_NM="$NM" +else + lt_nm_to_check="${ac_tool_prefix}nm" + if test -n "$ac_tool_prefix" && test "$build" = "$host"; then + lt_nm_to_check="$lt_nm_to_check nm" + fi + for lt_tmp_nm in $lt_nm_to_check; do + lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR + for ac_dir in $PATH /usr/ccs/bin/elf /usr/ccs/bin /usr/ucb /bin; do + IFS="$lt_save_ifs" + test -z "$ac_dir" && ac_dir=. + tmp_nm="$ac_dir/$lt_tmp_nm" + if test -f "$tmp_nm" || test -f "$tmp_nm$ac_exeext" ; then + # Check to see if the nm accepts a BSD-compat flag. + # Adding the `sed 1q' prevents false positives on HP-UX, which says: + # nm: unknown option "B" ignored + # Tru64's nm complains that /dev/null is an invalid object file + case `"$tmp_nm" -B /dev/null 2>&1 | sed '1q'` in + */dev/null* | *'Invalid file or object type'*) + lt_cv_path_NM="$tmp_nm -B" + break + ;; + *) + case `"$tmp_nm" -p /dev/null 2>&1 | sed '1q'` in + */dev/null*) + lt_cv_path_NM="$tmp_nm -p" + break + ;; + *) + lt_cv_path_NM=${lt_cv_path_NM="$tmp_nm"} # keep the first match, but + continue # so that we can try to find one that supports BSD flags + ;; + esac + ;; + esac + fi + done + IFS="$lt_save_ifs" + done + : ${lt_cv_path_NM=no} +fi]) +if test "$lt_cv_path_NM" != "no"; then + NM="$lt_cv_path_NM" +else + # Didn't find any BSD compatible name lister, look for dumpbin. + if test -n "$DUMPBIN"; then : + # Let the user override the test. + else + AC_CHECK_TOOLS(DUMPBIN, [dumpbin "link -dump"], :) + case `$DUMPBIN -symbols /dev/null 2>&1 | sed '1q'` in + *COFF*) + DUMPBIN="$DUMPBIN -symbols" + ;; + *) + DUMPBIN=: + ;; + esac + fi + AC_SUBST([DUMPBIN]) + if test "$DUMPBIN" != ":"; then + NM="$DUMPBIN" + fi +fi +test -z "$NM" && NM=nm +AC_SUBST([NM]) +_LT_DECL([], [NM], [1], [A BSD- or MS-compatible name lister])dnl + +AC_CACHE_CHECK([the name lister ($NM) interface], [lt_cv_nm_interface], + [lt_cv_nm_interface="BSD nm" + echo "int some_variable = 0;" > conftest.$ac_ext + (eval echo "\"\$as_me:$LINENO: $ac_compile\"" >&AS_MESSAGE_LOG_FD) + (eval "$ac_compile" 2>conftest.err) + cat conftest.err >&AS_MESSAGE_LOG_FD + (eval echo "\"\$as_me:$LINENO: $NM \\\"conftest.$ac_objext\\\"\"" >&AS_MESSAGE_LOG_FD) + (eval "$NM \"conftest.$ac_objext\"" 2>conftest.err > conftest.out) + cat conftest.err >&AS_MESSAGE_LOG_FD + (eval echo "\"\$as_me:$LINENO: output\"" >&AS_MESSAGE_LOG_FD) + cat conftest.out >&AS_MESSAGE_LOG_FD + if $GREP 'External.*some_variable' conftest.out > /dev/null; then + lt_cv_nm_interface="MS dumpbin" + fi + rm -f conftest*]) +])# LT_PATH_NM + +# Old names: +AU_ALIAS([AM_PROG_NM], [LT_PATH_NM]) +AU_ALIAS([AC_PROG_NM], [LT_PATH_NM]) +dnl aclocal-1.4 backwards compatibility: +dnl AC_DEFUN([AM_PROG_NM], []) +dnl AC_DEFUN([AC_PROG_NM], []) + +# _LT_CHECK_SHAREDLIB_FROM_LINKLIB +# -------------------------------- +# how to determine the name of the shared library +# associated with a specific link library. +# -- PORTME fill in with the dynamic library characteristics +m4_defun([_LT_CHECK_SHAREDLIB_FROM_LINKLIB], +[m4_require([_LT_DECL_EGREP]) +m4_require([_LT_DECL_OBJDUMP]) +m4_require([_LT_DECL_DLLTOOL]) +AC_CACHE_CHECK([how to associate runtime and link libraries], +lt_cv_sharedlib_from_linklib_cmd, +[lt_cv_sharedlib_from_linklib_cmd='unknown' + +case $host_os in +cygwin* | mingw* | pw32* | cegcc*) + # two different shell functions defined in ltmain.sh + # decide which to use based on capabilities of $DLLTOOL + case `$DLLTOOL --help 2>&1` in + *--identify-strict*) + lt_cv_sharedlib_from_linklib_cmd=func_cygming_dll_for_implib + ;; + *) + lt_cv_sharedlib_from_linklib_cmd=func_cygming_dll_for_implib_fallback + ;; + esac + ;; +*) + # fallback: assume linklib IS sharedlib + lt_cv_sharedlib_from_linklib_cmd="$ECHO" + ;; +esac +]) +sharedlib_from_linklib_cmd=$lt_cv_sharedlib_from_linklib_cmd +test -z "$sharedlib_from_linklib_cmd" && sharedlib_from_linklib_cmd=$ECHO + +_LT_DECL([], [sharedlib_from_linklib_cmd], [1], + [Command to associate shared and link libraries]) +])# _LT_CHECK_SHAREDLIB_FROM_LINKLIB + + +# _LT_PATH_MANIFEST_TOOL +# ---------------------- +# locate the manifest tool +m4_defun([_LT_PATH_MANIFEST_TOOL], +[AC_CHECK_TOOL(MANIFEST_TOOL, mt, :) +test -z "$MANIFEST_TOOL" && MANIFEST_TOOL=mt +AC_CACHE_CHECK([if $MANIFEST_TOOL is a manifest tool], [lt_cv_path_mainfest_tool], + [lt_cv_path_mainfest_tool=no + echo "$as_me:$LINENO: $MANIFEST_TOOL '-?'" >&AS_MESSAGE_LOG_FD + $MANIFEST_TOOL '-?' 2>conftest.err > conftest.out + cat conftest.err >&AS_MESSAGE_LOG_FD + if $GREP 'Manifest Tool' conftest.out > /dev/null; then + lt_cv_path_mainfest_tool=yes + fi + rm -f conftest*]) +if test "x$lt_cv_path_mainfest_tool" != xyes; then + MANIFEST_TOOL=: +fi +_LT_DECL([], [MANIFEST_TOOL], [1], [Manifest tool])dnl +])# _LT_PATH_MANIFEST_TOOL + + +# LT_LIB_M +# -------- +# check for math library +AC_DEFUN([LT_LIB_M], +[AC_REQUIRE([AC_CANONICAL_HOST])dnl +LIBM= +case $host in +*-*-beos* | *-*-cegcc* | *-*-cygwin* | *-*-haiku* | *-*-pw32* | *-*-darwin*) + # These system don't have libm, or don't need it + ;; +*-ncr-sysv4.3*) + AC_CHECK_LIB(mw, _mwvalidcheckl, LIBM="-lmw") + AC_CHECK_LIB(m, cos, LIBM="$LIBM -lm") + ;; +*) + AC_CHECK_LIB(m, cos, LIBM="-lm") + ;; +esac +AC_SUBST([LIBM]) +])# LT_LIB_M + +# Old name: +AU_ALIAS([AC_CHECK_LIBM], [LT_LIB_M]) +dnl aclocal-1.4 backwards compatibility: +dnl AC_DEFUN([AC_CHECK_LIBM], []) + + +# _LT_COMPILER_NO_RTTI([TAGNAME]) +# ------------------------------- +m4_defun([_LT_COMPILER_NO_RTTI], +[m4_require([_LT_TAG_COMPILER])dnl + +_LT_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)= + +if test "$GCC" = yes; then + case $cc_basename in + nvcc*) + _LT_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)=' -Xcompiler -fno-builtin' ;; + *) + _LT_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)=' -fno-builtin' ;; + esac + + _LT_COMPILER_OPTION([if $compiler supports -fno-rtti -fno-exceptions], + lt_cv_prog_compiler_rtti_exceptions, + [-fno-rtti -fno-exceptions], [], + [_LT_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)="$_LT_TAGVAR(lt_prog_compiler_no_builtin_flag, $1) -fno-rtti -fno-exceptions"]) +fi +_LT_TAGDECL([no_builtin_flag], [lt_prog_compiler_no_builtin_flag], [1], + [Compiler flag to turn off builtin functions]) +])# _LT_COMPILER_NO_RTTI + + +# _LT_CMD_GLOBAL_SYMBOLS +# ---------------------- +m4_defun([_LT_CMD_GLOBAL_SYMBOLS], +[AC_REQUIRE([AC_CANONICAL_HOST])dnl +AC_REQUIRE([AC_PROG_CC])dnl +AC_REQUIRE([AC_PROG_AWK])dnl +AC_REQUIRE([LT_PATH_NM])dnl +AC_REQUIRE([LT_PATH_LD])dnl +m4_require([_LT_DECL_SED])dnl +m4_require([_LT_DECL_EGREP])dnl +m4_require([_LT_TAG_COMPILER])dnl + +# Check for command to grab the raw symbol name followed by C symbol from nm. +AC_MSG_CHECKING([command to parse $NM output from $compiler object]) +AC_CACHE_VAL([lt_cv_sys_global_symbol_pipe], +[ +# These are sane defaults that work on at least a few old systems. +# [They come from Ultrix. What could be older than Ultrix?!! ;)] + +# Character class describing NM global symbol codes. +symcode='[[BCDEGRST]]' + +# Regexp to match symbols that can be accessed directly from C. +sympat='\([[_A-Za-z]][[_A-Za-z0-9]]*\)' + +# Define system-specific variables. +case $host_os in +aix*) + symcode='[[BCDT]]' + ;; +cygwin* | mingw* | pw32* | cegcc*) + symcode='[[ABCDGISTW]]' + ;; +hpux*) + if test "$host_cpu" = ia64; then + symcode='[[ABCDEGRST]]' + fi + ;; +irix* | nonstopux*) + symcode='[[BCDEGRST]]' + ;; +osf*) + symcode='[[BCDEGQRST]]' + ;; +solaris*) + symcode='[[BDRT]]' + ;; +sco3.2v5*) + symcode='[[DT]]' + ;; +sysv4.2uw2*) + symcode='[[DT]]' + ;; +sysv5* | sco5v6* | unixware* | OpenUNIX*) + symcode='[[ABDT]]' + ;; +sysv4) + symcode='[[DFNSTU]]' + ;; +esac + +# If we're using GNU nm, then use its standard symbol codes. +case `$NM -V 2>&1` in +*GNU* | *'with BFD'*) + symcode='[[ABCDGIRSTW]]' ;; +esac + +# Transform an extracted symbol line into a proper C declaration. +# Some systems (esp. on ia64) link data and code symbols differently, +# so use this general approach. +lt_cv_sys_global_symbol_to_cdecl="sed -n -e 's/^T .* \(.*\)$/extern int \1();/p' -e 's/^$symcode* .* \(.*\)$/extern char \1;/p'" + +# Transform an extracted symbol line into symbol name and symbol address +lt_cv_sys_global_symbol_to_c_name_address="sed -n -e 's/^: \([[^ ]]*\)[[ ]]*$/ {\\\"\1\\\", (void *) 0},/p' -e 's/^$symcode* \([[^ ]]*\) \([[^ ]]*\)$/ {\"\2\", (void *) \&\2},/p'" +lt_cv_sys_global_symbol_to_c_name_address_lib_prefix="sed -n -e 's/^: \([[^ ]]*\)[[ ]]*$/ {\\\"\1\\\", (void *) 0},/p' -e 's/^$symcode* \([[^ ]]*\) \(lib[[^ ]]*\)$/ {\"\2\", (void *) \&\2},/p' -e 's/^$symcode* \([[^ ]]*\) \([[^ ]]*\)$/ {\"lib\2\", (void *) \&\2},/p'" + +# Handle CRLF in mingw tool chain +opt_cr= +case $build_os in +mingw*) + opt_cr=`$ECHO 'x\{0,1\}' | tr x '\015'` # option cr in regexp + ;; +esac + +# Try without a prefix underscore, then with it. +for ac_symprfx in "" "_"; do + + # Transform symcode, sympat, and symprfx into a raw symbol and a C symbol. + symxfrm="\\1 $ac_symprfx\\2 \\2" + + # Write the raw and C identifiers. + if test "$lt_cv_nm_interface" = "MS dumpbin"; then + # Fake it for dumpbin and say T for any non-static function + # and D for any global variable. + # Also find C++ and __fastcall symbols from MSVC++, + # which start with @ or ?. + lt_cv_sys_global_symbol_pipe="$AWK ['"\ +" {last_section=section; section=\$ 3};"\ +" /^COFF SYMBOL TABLE/{for(i in hide) delete hide[i]};"\ +" /Section length .*#relocs.*(pick any)/{hide[last_section]=1};"\ +" \$ 0!~/External *\|/{next};"\ +" / 0+ UNDEF /{next}; / UNDEF \([^|]\)*()/{next};"\ +" {if(hide[section]) next};"\ +" {f=0}; \$ 0~/\(\).*\|/{f=1}; {printf f ? \"T \" : \"D \"};"\ +" {split(\$ 0, a, /\||\r/); split(a[2], s)};"\ +" s[1]~/^[@?]/{print s[1], s[1]; next};"\ +" s[1]~prfx {split(s[1],t,\"@\"); print t[1], substr(t[1],length(prfx))}"\ +" ' prfx=^$ac_symprfx]" + else + lt_cv_sys_global_symbol_pipe="sed -n -e 's/^.*[[ ]]\($symcode$symcode*\)[[ ]][[ ]]*$ac_symprfx$sympat$opt_cr$/$symxfrm/p'" + fi + lt_cv_sys_global_symbol_pipe="$lt_cv_sys_global_symbol_pipe | sed '/ __gnu_lto/d'" + + # Check to see that the pipe works correctly. + pipe_works=no + + rm -f conftest* + cat > conftest.$ac_ext <<_LT_EOF +#ifdef __cplusplus +extern "C" { +#endif +char nm_test_var; +void nm_test_func(void); +void nm_test_func(void){} +#ifdef __cplusplus +} +#endif +int main(){nm_test_var='a';nm_test_func();return(0);} +_LT_EOF + + if AC_TRY_EVAL(ac_compile); then + # Now try to grab the symbols. + nlist=conftest.nm + if AC_TRY_EVAL(NM conftest.$ac_objext \| "$lt_cv_sys_global_symbol_pipe" \> $nlist) && test -s "$nlist"; then + # Try sorting and uniquifying the output. + if sort "$nlist" | uniq > "$nlist"T; then + mv -f "$nlist"T "$nlist" + else + rm -f "$nlist"T + fi + + # Make sure that we snagged all the symbols we need. + if $GREP ' nm_test_var$' "$nlist" >/dev/null; then + if $GREP ' nm_test_func$' "$nlist" >/dev/null; then + cat <<_LT_EOF > conftest.$ac_ext +/* Keep this code in sync between libtool.m4, ltmain, lt_system.h, and tests. */ +#if defined(_WIN32) || defined(__CYGWIN__) || defined(_WIN32_WCE) +/* DATA imports from DLLs on WIN32 con't be const, because runtime + relocations are performed -- see ld's documentation on pseudo-relocs. */ +# define LT@&t@_DLSYM_CONST +#elif defined(__osf__) +/* This system does not cope well with relocations in const data. */ +# define LT@&t@_DLSYM_CONST +#else +# define LT@&t@_DLSYM_CONST const +#endif + +#ifdef __cplusplus +extern "C" { +#endif + +_LT_EOF + # Now generate the symbol file. + eval "$lt_cv_sys_global_symbol_to_cdecl"' < "$nlist" | $GREP -v main >> conftest.$ac_ext' + + cat <<_LT_EOF >> conftest.$ac_ext + +/* The mapping between symbol names and symbols. */ +LT@&t@_DLSYM_CONST struct { + const char *name; + void *address; +} +lt__PROGRAM__LTX_preloaded_symbols[[]] = +{ + { "@PROGRAM@", (void *) 0 }, +_LT_EOF + $SED "s/^$symcode$symcode* \(.*\) \(.*\)$/ {\"\2\", (void *) \&\2},/" < "$nlist" | $GREP -v main >> conftest.$ac_ext + cat <<\_LT_EOF >> conftest.$ac_ext + {0, (void *) 0} +}; + +/* This works around a problem in FreeBSD linker */ +#ifdef FREEBSD_WORKAROUND +static const void *lt_preloaded_setup() { + return lt__PROGRAM__LTX_preloaded_symbols; +} +#endif + +#ifdef __cplusplus +} +#endif +_LT_EOF + # Now try linking the two files. + mv conftest.$ac_objext conftstm.$ac_objext + lt_globsym_save_LIBS=$LIBS + lt_globsym_save_CFLAGS=$CFLAGS + LIBS="conftstm.$ac_objext" + CFLAGS="$CFLAGS$_LT_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)" + if AC_TRY_EVAL(ac_link) && test -s conftest${ac_exeext}; then + pipe_works=yes + fi + LIBS=$lt_globsym_save_LIBS + CFLAGS=$lt_globsym_save_CFLAGS + else + echo "cannot find nm_test_func in $nlist" >&AS_MESSAGE_LOG_FD + fi + else + echo "cannot find nm_test_var in $nlist" >&AS_MESSAGE_LOG_FD + fi + else + echo "cannot run $lt_cv_sys_global_symbol_pipe" >&AS_MESSAGE_LOG_FD + fi + else + echo "$progname: failed program was:" >&AS_MESSAGE_LOG_FD + cat conftest.$ac_ext >&5 + fi + rm -rf conftest* conftst* + + # Do not use the global_symbol_pipe unless it works. + if test "$pipe_works" = yes; then + break + else + lt_cv_sys_global_symbol_pipe= + fi +done +]) +if test -z "$lt_cv_sys_global_symbol_pipe"; then + lt_cv_sys_global_symbol_to_cdecl= +fi +if test -z "$lt_cv_sys_global_symbol_pipe$lt_cv_sys_global_symbol_to_cdecl"; then + AC_MSG_RESULT(failed) +else + AC_MSG_RESULT(ok) +fi + +# Response file support. +if test "$lt_cv_nm_interface" = "MS dumpbin"; then + nm_file_list_spec='@' +elif $NM --help 2>/dev/null | grep '[[@]]FILE' >/dev/null; then + nm_file_list_spec='@' +fi + +_LT_DECL([global_symbol_pipe], [lt_cv_sys_global_symbol_pipe], [1], + [Take the output of nm and produce a listing of raw symbols and C names]) +_LT_DECL([global_symbol_to_cdecl], [lt_cv_sys_global_symbol_to_cdecl], [1], + [Transform the output of nm in a proper C declaration]) +_LT_DECL([global_symbol_to_c_name_address], + [lt_cv_sys_global_symbol_to_c_name_address], [1], + [Transform the output of nm in a C name address pair]) +_LT_DECL([global_symbol_to_c_name_address_lib_prefix], + [lt_cv_sys_global_symbol_to_c_name_address_lib_prefix], [1], + [Transform the output of nm in a C name address pair when lib prefix is needed]) +_LT_DECL([], [nm_file_list_spec], [1], + [Specify filename containing input files for $NM]) +]) # _LT_CMD_GLOBAL_SYMBOLS + + +# _LT_COMPILER_PIC([TAGNAME]) +# --------------------------- +m4_defun([_LT_COMPILER_PIC], +[m4_require([_LT_TAG_COMPILER])dnl +_LT_TAGVAR(lt_prog_compiler_wl, $1)= +_LT_TAGVAR(lt_prog_compiler_pic, $1)= +_LT_TAGVAR(lt_prog_compiler_static, $1)= + +m4_if([$1], [CXX], [ + # C++ specific cases for pic, static, wl, etc. + if test "$GXX" = yes; then + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' + _LT_TAGVAR(lt_prog_compiler_static, $1)='-static' + + case $host_os in + aix*) + # All AIX code is PIC. + if test "$host_cpu" = ia64; then + # AIX 5 now supports IA64 processor + _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' + fi + ;; + + amigaos*) + case $host_cpu in + powerpc) + # see comment about AmigaOS4 .so support + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC' + ;; + m68k) + # FIXME: we need at least 68020 code to build shared libraries, but + # adding the `-m68020' flag to GCC prevents building anything better, + # like `-m68040'. + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-m68020 -resident32 -malways-restore-a4' + ;; + esac + ;; + + beos* | irix5* | irix6* | nonstopux* | osf3* | osf4* | osf5*) + # PIC is the default for these OSes. + ;; + mingw* | cygwin* | os2* | pw32* | cegcc*) + # This hack is so that the source file can tell whether it is being + # built for inclusion in a dll (and should export symbols for example). + # Although the cygwin gcc ignores -fPIC, still need this for old-style + # (--disable-auto-import) libraries + m4_if([$1], [GCJ], [], + [_LT_TAGVAR(lt_prog_compiler_pic, $1)='-DDLL_EXPORT']) + ;; + darwin* | rhapsody*) + # PIC is the default on this platform + # Common symbols not allowed in MH_DYLIB files + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fno-common' + ;; + *djgpp*) + # DJGPP does not support shared libraries at all + _LT_TAGVAR(lt_prog_compiler_pic, $1)= + ;; + haiku*) + # PIC is the default for Haiku. + # The "-static" flag exists, but is broken. + _LT_TAGVAR(lt_prog_compiler_static, $1)= + ;; + interix[[3-9]]*) + # Interix 3.x gcc -fpic/-fPIC options generate broken code. + # Instead, we relocate shared libraries at runtime. + ;; + sysv4*MP*) + if test -d /usr/nec; then + _LT_TAGVAR(lt_prog_compiler_pic, $1)=-Kconform_pic + fi + ;; + hpux*) + # PIC is the default for 64-bit PA HP-UX, but not for 32-bit + # PA HP-UX. On IA64 HP-UX, PIC is the default but the pic flag + # sets the default TLS model and affects inlining. + case $host_cpu in + hppa*64*) + ;; + *) + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC' + ;; + esac + ;; + *qnx* | *nto*) + # QNX uses GNU C++, but need to define -shared option too, otherwise + # it will coredump. + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC -shared' + ;; + *) + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC' + ;; + esac + else + case $host_os in + aix[[4-9]]*) + # All AIX code is PIC. + if test "$host_cpu" = ia64; then + # AIX 5 now supports IA64 processor + _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' + else + _LT_TAGVAR(lt_prog_compiler_static, $1)='-bnso -bI:/lib/syscalls.exp' + fi + ;; + chorus*) + case $cc_basename in + cxch68*) + # Green Hills C++ Compiler + # _LT_TAGVAR(lt_prog_compiler_static, $1)="--no_auto_instantiation -u __main -u __premain -u _abort -r $COOL_DIR/lib/libOrb.a $MVME_DIR/lib/CC/libC.a $MVME_DIR/lib/classix/libcx.s.a" + ;; + esac + ;; + mingw* | cygwin* | os2* | pw32* | cegcc*) + # This hack is so that the source file can tell whether it is being + # built for inclusion in a dll (and should export symbols for example). + m4_if([$1], [GCJ], [], + [_LT_TAGVAR(lt_prog_compiler_pic, $1)='-DDLL_EXPORT']) + ;; + dgux*) + case $cc_basename in + ec++*) + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' + ;; + ghcx*) + # Green Hills C++ Compiler + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-pic' + ;; + *) + ;; + esac + ;; + freebsd* | dragonfly*) + # FreeBSD uses GNU C++ + ;; + hpux9* | hpux10* | hpux11*) + case $cc_basename in + CC*) + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' + _LT_TAGVAR(lt_prog_compiler_static, $1)='${wl}-a ${wl}archive' + if test "$host_cpu" != ia64; then + _LT_TAGVAR(lt_prog_compiler_pic, $1)='+Z' + fi + ;; + aCC*) + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' + _LT_TAGVAR(lt_prog_compiler_static, $1)='${wl}-a ${wl}archive' + case $host_cpu in + hppa*64*|ia64*) + # +Z the default + ;; + *) + _LT_TAGVAR(lt_prog_compiler_pic, $1)='+Z' + ;; + esac + ;; + *) + ;; + esac + ;; + interix*) + # This is c89, which is MS Visual C++ (no shared libs) + # Anyone wants to do a port? + ;; + irix5* | irix6* | nonstopux*) + case $cc_basename in + CC*) + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' + _LT_TAGVAR(lt_prog_compiler_static, $1)='-non_shared' + # CC pic flag -KPIC is the default. + ;; + *) + ;; + esac + ;; + linux* | k*bsd*-gnu | kopensolaris*-gnu | gnu*) + case $cc_basename in + KCC*) + # KAI C++ Compiler + _LT_TAGVAR(lt_prog_compiler_wl, $1)='--backend -Wl,' + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC' + ;; + ecpc* ) + # old Intel C++ for x86_64 which still supported -KPIC. + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' + _LT_TAGVAR(lt_prog_compiler_static, $1)='-static' + ;; + icpc* ) + # Intel C++, used to be incompatible with GCC. + # ICC 10 doesn't accept -KPIC any more. + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC' + _LT_TAGVAR(lt_prog_compiler_static, $1)='-static' + ;; + pgCC* | pgcpp*) + # Portland Group C++ compiler + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fpic' + _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' + ;; + cxx*) + # Compaq C++ + # Make sure the PIC flag is empty. It appears that all Alpha + # Linux and Compaq Tru64 Unix objects are PIC. + _LT_TAGVAR(lt_prog_compiler_pic, $1)= + _LT_TAGVAR(lt_prog_compiler_static, $1)='-non_shared' + ;; + xlc* | xlC* | bgxl[[cC]]* | mpixl[[cC]]*) + # IBM XL 8.0, 9.0 on PPC and BlueGene + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-qpic' + _LT_TAGVAR(lt_prog_compiler_static, $1)='-qstaticlink' + ;; + *) + case `$CC -V 2>&1 | sed 5q` in + *Sun\ C*) + # Sun C++ 5.9 + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' + _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Qoption ld ' + ;; + esac + ;; + esac + ;; + lynxos*) + ;; + m88k*) + ;; + mvs*) + case $cc_basename in + cxx*) + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-W c,exportall' + ;; + *) + ;; + esac + ;; + netbsd* | netbsdelf*-gnu) + ;; + *qnx* | *nto*) + # QNX uses GNU C++, but need to define -shared option too, otherwise + # it will coredump. + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC -shared' + ;; + osf3* | osf4* | osf5*) + case $cc_basename in + KCC*) + _LT_TAGVAR(lt_prog_compiler_wl, $1)='--backend -Wl,' + ;; + RCC*) + # Rational C++ 2.4.1 + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-pic' + ;; + cxx*) + # Digital/Compaq C++ + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' + # Make sure the PIC flag is empty. It appears that all Alpha + # Linux and Compaq Tru64 Unix objects are PIC. + _LT_TAGVAR(lt_prog_compiler_pic, $1)= + _LT_TAGVAR(lt_prog_compiler_static, $1)='-non_shared' + ;; + *) + ;; + esac + ;; + psos*) + ;; + solaris*) + case $cc_basename in + CC* | sunCC*) + # Sun C++ 4.2, 5.x and Centerline C++ + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' + _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Qoption ld ' + ;; + gcx*) + # Green Hills C++ Compiler + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-PIC' + ;; + *) + ;; + esac + ;; + sunos4*) + case $cc_basename in + CC*) + # Sun C++ 4.x + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-pic' + _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' + ;; + lcc*) + # Lucid + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-pic' + ;; + *) + ;; + esac + ;; + sysv5* | unixware* | sco3.2v5* | sco5v6* | OpenUNIX*) + case $cc_basename in + CC*) + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' + _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' + ;; + esac + ;; + tandem*) + case $cc_basename in + NCC*) + # NonStop-UX NCC 3.20 + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' + ;; + *) + ;; + esac + ;; + vxworks*) + ;; + *) + _LT_TAGVAR(lt_prog_compiler_can_build_shared, $1)=no + ;; + esac + fi +], +[ + if test "$GCC" = yes; then + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' + _LT_TAGVAR(lt_prog_compiler_static, $1)='-static' + + case $host_os in + aix*) + # All AIX code is PIC. + if test "$host_cpu" = ia64; then + # AIX 5 now supports IA64 processor + _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' + fi + ;; + + amigaos*) + case $host_cpu in + powerpc) + # see comment about AmigaOS4 .so support + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC' + ;; + m68k) + # FIXME: we need at least 68020 code to build shared libraries, but + # adding the `-m68020' flag to GCC prevents building anything better, + # like `-m68040'. + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-m68020 -resident32 -malways-restore-a4' + ;; + esac + ;; + + beos* | irix5* | irix6* | nonstopux* | osf3* | osf4* | osf5*) + # PIC is the default for these OSes. + ;; + + mingw* | cygwin* | pw32* | os2* | cegcc*) + # This hack is so that the source file can tell whether it is being + # built for inclusion in a dll (and should export symbols for example). + # Although the cygwin gcc ignores -fPIC, still need this for old-style + # (--disable-auto-import) libraries + m4_if([$1], [GCJ], [], + [_LT_TAGVAR(lt_prog_compiler_pic, $1)='-DDLL_EXPORT']) + ;; + + darwin* | rhapsody*) + # PIC is the default on this platform + # Common symbols not allowed in MH_DYLIB files + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fno-common' + ;; + + haiku*) + # PIC is the default for Haiku. + # The "-static" flag exists, but is broken. + _LT_TAGVAR(lt_prog_compiler_static, $1)= + ;; + + hpux*) + # PIC is the default for 64-bit PA HP-UX, but not for 32-bit + # PA HP-UX. On IA64 HP-UX, PIC is the default but the pic flag + # sets the default TLS model and affects inlining. + case $host_cpu in + hppa*64*) + # +Z the default + ;; + *) + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC' + ;; + esac + ;; + + interix[[3-9]]*) + # Interix 3.x gcc -fpic/-fPIC options generate broken code. + # Instead, we relocate shared libraries at runtime. + ;; + + msdosdjgpp*) + # Just because we use GCC doesn't mean we suddenly get shared libraries + # on systems that don't support them. + _LT_TAGVAR(lt_prog_compiler_can_build_shared, $1)=no + enable_shared=no + ;; + + *nto* | *qnx*) + # QNX uses GNU C++, but need to define -shared option too, otherwise + # it will coredump. + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC -shared' + ;; + + sysv4*MP*) + if test -d /usr/nec; then + _LT_TAGVAR(lt_prog_compiler_pic, $1)=-Kconform_pic + fi + ;; + + *) + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC' + ;; + esac + + case $cc_basename in + nvcc*) # Cuda Compiler Driver 2.2 + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Xlinker ' + if test -n "$_LT_TAGVAR(lt_prog_compiler_pic, $1)"; then + _LT_TAGVAR(lt_prog_compiler_pic, $1)="-Xcompiler $_LT_TAGVAR(lt_prog_compiler_pic, $1)" + fi + ;; + esac + else + # PORTME Check for flag to pass linker flags through the system compiler. + case $host_os in + aix*) + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' + if test "$host_cpu" = ia64; then + # AIX 5 now supports IA64 processor + _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' + else + _LT_TAGVAR(lt_prog_compiler_static, $1)='-bnso -bI:/lib/syscalls.exp' + fi + ;; + + mingw* | cygwin* | pw32* | os2* | cegcc*) + # This hack is so that the source file can tell whether it is being + # built for inclusion in a dll (and should export symbols for example). + m4_if([$1], [GCJ], [], + [_LT_TAGVAR(lt_prog_compiler_pic, $1)='-DDLL_EXPORT']) + ;; + + hpux9* | hpux10* | hpux11*) + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' + # PIC is the default for IA64 HP-UX and 64-bit HP-UX, but + # not for PA HP-UX. + case $host_cpu in + hppa*64*|ia64*) + # +Z the default + ;; + *) + _LT_TAGVAR(lt_prog_compiler_pic, $1)='+Z' + ;; + esac + # Is there a better lt_prog_compiler_static that works with the bundled CC? + _LT_TAGVAR(lt_prog_compiler_static, $1)='${wl}-a ${wl}archive' + ;; + + irix5* | irix6* | nonstopux*) + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' + # PIC (with -KPIC) is the default. + _LT_TAGVAR(lt_prog_compiler_static, $1)='-non_shared' + ;; + + linux* | k*bsd*-gnu | kopensolaris*-gnu | gnu*) + case $cc_basename in + # old Intel for x86_64 which still supported -KPIC. + ecc*) + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' + _LT_TAGVAR(lt_prog_compiler_static, $1)='-static' + ;; + # icc used to be incompatible with GCC. + # ICC 10 doesn't accept -KPIC any more. + icc* | ifort*) + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC' + _LT_TAGVAR(lt_prog_compiler_static, $1)='-static' + ;; + # Lahey Fortran 8.1. + lf95*) + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' + _LT_TAGVAR(lt_prog_compiler_pic, $1)='--shared' + _LT_TAGVAR(lt_prog_compiler_static, $1)='--static' + ;; + nagfor*) + # NAG Fortran compiler + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,-Wl,,' + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-PIC' + _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' + ;; + pgcc* | pgf77* | pgf90* | pgf95* | pgfortran*) + # Portland Group compilers (*not* the Pentium gcc compiler, + # which looks to be a dead project) + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fpic' + _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' + ;; + ccc*) + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' + # All Alpha code is PIC. + _LT_TAGVAR(lt_prog_compiler_static, $1)='-non_shared' + ;; + xl* | bgxl* | bgf* | mpixl*) + # IBM XL C 8.0/Fortran 10.1, 11.1 on PPC and BlueGene + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-qpic' + _LT_TAGVAR(lt_prog_compiler_static, $1)='-qstaticlink' + ;; + *) + case `$CC -V 2>&1 | sed 5q` in + *Sun\ Ceres\ Fortran* | *Sun*Fortran*\ [[1-7]].* | *Sun*Fortran*\ 8.[[0-3]]*) + # Sun Fortran 8.3 passes all unrecognized flags to the linker + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' + _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' + _LT_TAGVAR(lt_prog_compiler_wl, $1)='' + ;; + *Sun\ F* | *Sun*Fortran*) + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' + _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Qoption ld ' + ;; + *Sun\ C*) + # Sun C 5.9 + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' + _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' + ;; + *Intel*\ [[CF]]*Compiler*) + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC' + _LT_TAGVAR(lt_prog_compiler_static, $1)='-static' + ;; + *Portland\ Group*) + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fpic' + _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' + ;; + esac + ;; + esac + ;; + + newsos6) + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' + _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' + ;; + + *nto* | *qnx*) + # QNX uses GNU C++, but need to define -shared option too, otherwise + # it will coredump. + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC -shared' + ;; + + osf3* | osf4* | osf5*) + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' + # All OSF/1 code is PIC. + _LT_TAGVAR(lt_prog_compiler_static, $1)='-non_shared' + ;; + + rdos*) + _LT_TAGVAR(lt_prog_compiler_static, $1)='-non_shared' + ;; + + solaris*) + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' + _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' + case $cc_basename in + f77* | f90* | f95* | sunf77* | sunf90* | sunf95*) + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Qoption ld ';; + *) + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,';; + esac + ;; + + sunos4*) + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Qoption ld ' + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-PIC' + _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' + ;; + + sysv4 | sysv4.2uw2* | sysv4.3*) + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' + _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' + ;; + + sysv4*MP*) + if test -d /usr/nec ;then + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-Kconform_pic' + _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' + fi + ;; + + sysv5* | unixware* | sco3.2v5* | sco5v6* | OpenUNIX*) + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' + _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' + ;; + + unicos*) + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' + _LT_TAGVAR(lt_prog_compiler_can_build_shared, $1)=no + ;; + + uts4*) + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-pic' + _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' + ;; + + *) + _LT_TAGVAR(lt_prog_compiler_can_build_shared, $1)=no + ;; + esac + fi +]) +case $host_os in + # For platforms which do not support PIC, -DPIC is meaningless: + *djgpp*) + _LT_TAGVAR(lt_prog_compiler_pic, $1)= + ;; + *) + _LT_TAGVAR(lt_prog_compiler_pic, $1)="$_LT_TAGVAR(lt_prog_compiler_pic, $1)@&t@m4_if([$1],[],[ -DPIC],[m4_if([$1],[CXX],[ -DPIC],[])])" + ;; +esac + +AC_CACHE_CHECK([for $compiler option to produce PIC], + [_LT_TAGVAR(lt_cv_prog_compiler_pic, $1)], + [_LT_TAGVAR(lt_cv_prog_compiler_pic, $1)=$_LT_TAGVAR(lt_prog_compiler_pic, $1)]) +_LT_TAGVAR(lt_prog_compiler_pic, $1)=$_LT_TAGVAR(lt_cv_prog_compiler_pic, $1) + +# +# Check to make sure the PIC flag actually works. +# +if test -n "$_LT_TAGVAR(lt_prog_compiler_pic, $1)"; then + _LT_COMPILER_OPTION([if $compiler PIC flag $_LT_TAGVAR(lt_prog_compiler_pic, $1) works], + [_LT_TAGVAR(lt_cv_prog_compiler_pic_works, $1)], + [$_LT_TAGVAR(lt_prog_compiler_pic, $1)@&t@m4_if([$1],[],[ -DPIC],[m4_if([$1],[CXX],[ -DPIC],[])])], [], + [case $_LT_TAGVAR(lt_prog_compiler_pic, $1) in + "" | " "*) ;; + *) _LT_TAGVAR(lt_prog_compiler_pic, $1)=" $_LT_TAGVAR(lt_prog_compiler_pic, $1)" ;; + esac], + [_LT_TAGVAR(lt_prog_compiler_pic, $1)= + _LT_TAGVAR(lt_prog_compiler_can_build_shared, $1)=no]) +fi +_LT_TAGDECL([pic_flag], [lt_prog_compiler_pic], [1], + [Additional compiler flags for building library objects]) + +_LT_TAGDECL([wl], [lt_prog_compiler_wl], [1], + [How to pass a linker flag through the compiler]) +# +# Check to make sure the static flag actually works. +# +wl=$_LT_TAGVAR(lt_prog_compiler_wl, $1) eval lt_tmp_static_flag=\"$_LT_TAGVAR(lt_prog_compiler_static, $1)\" +_LT_LINKER_OPTION([if $compiler static flag $lt_tmp_static_flag works], + _LT_TAGVAR(lt_cv_prog_compiler_static_works, $1), + $lt_tmp_static_flag, + [], + [_LT_TAGVAR(lt_prog_compiler_static, $1)=]) +_LT_TAGDECL([link_static_flag], [lt_prog_compiler_static], [1], + [Compiler flag to prevent dynamic linking]) +])# _LT_COMPILER_PIC + + +# _LT_LINKER_SHLIBS([TAGNAME]) +# ---------------------------- +# See if the linker supports building shared libraries. +m4_defun([_LT_LINKER_SHLIBS], +[AC_REQUIRE([LT_PATH_LD])dnl +AC_REQUIRE([LT_PATH_NM])dnl +m4_require([_LT_PATH_MANIFEST_TOOL])dnl +m4_require([_LT_FILEUTILS_DEFAULTS])dnl +m4_require([_LT_DECL_EGREP])dnl +m4_require([_LT_DECL_SED])dnl +m4_require([_LT_CMD_GLOBAL_SYMBOLS])dnl +m4_require([_LT_TAG_COMPILER])dnl +AC_MSG_CHECKING([whether the $compiler linker ($LD) supports shared libraries]) +m4_if([$1], [CXX], [ + _LT_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols' + _LT_TAGVAR(exclude_expsyms, $1)=['_GLOBAL_OFFSET_TABLE_|_GLOBAL__F[ID]_.*'] + case $host_os in + aix[[4-9]]*) + # If we're using GNU nm, then we don't want the "-C" option. + # -C means demangle to AIX nm, but means don't demangle with GNU nm + # Also, AIX nm treats weak defined symbols like other global defined + # symbols, whereas GNU nm marks them as "W". + if $NM -V 2>&1 | $GREP 'GNU' > /dev/null; then + _LT_TAGVAR(export_symbols_cmds, $1)='$NM -Bpg $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B") || (\$ 2 == "W")) && ([substr](\$ 3,1,1) != ".")) { print \$ 3 } }'\'' | sort -u > $export_symbols' + else + _LT_TAGVAR(export_symbols_cmds, $1)='$NM -BCpg $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B")) && ([substr](\$ 3,1,1) != ".")) { print \$ 3 } }'\'' | sort -u > $export_symbols' + fi + ;; + pw32*) + _LT_TAGVAR(export_symbols_cmds, $1)="$ltdll_cmds" + ;; + cygwin* | mingw* | cegcc*) + case $cc_basename in + cl*) + _LT_TAGVAR(exclude_expsyms, $1)='_NULL_IMPORT_DESCRIPTOR|_IMPORT_DESCRIPTOR_.*' + ;; + *) + _LT_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[[BCDGRS]][[ ]]/s/.*[[ ]]\([[^ ]]*\)/\1 DATA/;s/^.*[[ ]]__nm__\([[^ ]]*\)[[ ]][[^ ]]*/\1 DATA/;/^I[[ ]]/d;/^[[AITW]][[ ]]/s/.* //'\'' | sort | uniq > $export_symbols' + _LT_TAGVAR(exclude_expsyms, $1)=['[_]+GLOBAL_OFFSET_TABLE_|[_]+GLOBAL__[FID]_.*|[_]+head_[A-Za-z0-9_]+_dll|[A-Za-z0-9_]+_dll_iname'] + ;; + esac + ;; + linux* | k*bsd*-gnu | gnu*) + _LT_TAGVAR(link_all_deplibs, $1)=no + ;; + *) + _LT_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols' + ;; + esac +], [ + runpath_var= + _LT_TAGVAR(allow_undefined_flag, $1)= + _LT_TAGVAR(always_export_symbols, $1)=no + _LT_TAGVAR(archive_cmds, $1)= + _LT_TAGVAR(archive_expsym_cmds, $1)= + _LT_TAGVAR(compiler_needs_object, $1)=no + _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=no + _LT_TAGVAR(export_dynamic_flag_spec, $1)= + _LT_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols' + _LT_TAGVAR(hardcode_automatic, $1)=no + _LT_TAGVAR(hardcode_direct, $1)=no + _LT_TAGVAR(hardcode_direct_absolute, $1)=no + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)= + _LT_TAGVAR(hardcode_libdir_separator, $1)= + _LT_TAGVAR(hardcode_minus_L, $1)=no + _LT_TAGVAR(hardcode_shlibpath_var, $1)=unsupported + _LT_TAGVAR(inherit_rpath, $1)=no + _LT_TAGVAR(link_all_deplibs, $1)=unknown + _LT_TAGVAR(module_cmds, $1)= + _LT_TAGVAR(module_expsym_cmds, $1)= + _LT_TAGVAR(old_archive_from_new_cmds, $1)= + _LT_TAGVAR(old_archive_from_expsyms_cmds, $1)= + _LT_TAGVAR(thread_safe_flag_spec, $1)= + _LT_TAGVAR(whole_archive_flag_spec, $1)= + # include_expsyms should be a list of space-separated symbols to be *always* + # included in the symbol list + _LT_TAGVAR(include_expsyms, $1)= + # exclude_expsyms can be an extended regexp of symbols to exclude + # it will be wrapped by ` (' and `)$', so one must not match beginning or + # end of line. Example: `a|bc|.*d.*' will exclude the symbols `a' and `bc', + # as well as any symbol that contains `d'. + _LT_TAGVAR(exclude_expsyms, $1)=['_GLOBAL_OFFSET_TABLE_|_GLOBAL__F[ID]_.*'] + # Although _GLOBAL_OFFSET_TABLE_ is a valid symbol C name, most a.out + # platforms (ab)use it in PIC code, but their linkers get confused if + # the symbol is explicitly referenced. Since portable code cannot + # rely on this symbol name, it's probably fine to never include it in + # preloaded symbol tables. + # Exclude shared library initialization/finalization symbols. +dnl Note also adjust exclude_expsyms for C++ above. + extract_expsyms_cmds= + + case $host_os in + cygwin* | mingw* | pw32* | cegcc*) + # FIXME: the MSVC++ port hasn't been tested in a loooong time + # When not using gcc, we currently assume that we are using + # Microsoft Visual C++. + if test "$GCC" != yes; then + with_gnu_ld=no + fi + ;; + interix*) + # we just hope/assume this is gcc and not c89 (= MSVC++) + with_gnu_ld=yes + ;; + openbsd*) + with_gnu_ld=no + ;; + linux* | k*bsd*-gnu | gnu*) + _LT_TAGVAR(link_all_deplibs, $1)=no + ;; + esac + + _LT_TAGVAR(ld_shlibs, $1)=yes + + # On some targets, GNU ld is compatible enough with the native linker + # that we're better off using the native interface for both. + lt_use_gnu_ld_interface=no + if test "$with_gnu_ld" = yes; then + case $host_os in + aix*) + # The AIX port of GNU ld has always aspired to compatibility + # with the native linker. However, as the warning in the GNU ld + # block says, versions before 2.19.5* couldn't really create working + # shared libraries, regardless of the interface used. + case `$LD -v 2>&1` in + *\ \(GNU\ Binutils\)\ 2.19.5*) ;; + *\ \(GNU\ Binutils\)\ 2.[[2-9]]*) ;; + *\ \(GNU\ Binutils\)\ [[3-9]]*) ;; + *) + lt_use_gnu_ld_interface=yes + ;; + esac + ;; + *) + lt_use_gnu_ld_interface=yes + ;; + esac + fi + + if test "$lt_use_gnu_ld_interface" = yes; then + # If archive_cmds runs LD, not CC, wlarc should be empty + wlarc='${wl}' + + # Set some defaults for GNU ld with shared library support. These + # are reset later if shared libraries are not supported. Putting them + # here allows them to be overridden if necessary. + runpath_var=LD_RUN_PATH + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir' + _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}--export-dynamic' + # ancient GNU ld didn't support --whole-archive et. al. + if $LD --help 2>&1 | $GREP 'no-whole-archive' > /dev/null; then + _LT_TAGVAR(whole_archive_flag_spec, $1)="$wlarc"'--whole-archive$convenience '"$wlarc"'--no-whole-archive' + else + _LT_TAGVAR(whole_archive_flag_spec, $1)= + fi + supports_anon_versioning=no + case `$LD -v 2>&1` in + *GNU\ gold*) supports_anon_versioning=yes ;; + *\ [[01]].* | *\ 2.[[0-9]].* | *\ 2.10.*) ;; # catch versions < 2.11 + *\ 2.11.93.0.2\ *) supports_anon_versioning=yes ;; # RH7.3 ... + *\ 2.11.92.0.12\ *) supports_anon_versioning=yes ;; # Mandrake 8.2 ... + *\ 2.11.*) ;; # other 2.11 versions + *) supports_anon_versioning=yes ;; + esac + + # See if GNU ld supports shared libraries. + case $host_os in + aix[[3-9]]*) + # On AIX/PPC, the GNU linker is very broken + if test "$host_cpu" != ia64; then + _LT_TAGVAR(ld_shlibs, $1)=no + cat <<_LT_EOF 1>&2 + +*** Warning: the GNU linker, at least up to release 2.19, is reported +*** to be unable to reliably create shared libraries on AIX. +*** Therefore, libtool is disabling shared libraries support. If you +*** really care for shared libraries, you may want to install binutils +*** 2.20 or above, or modify your PATH so that a non-GNU linker is found. +*** You will then need to restart the configuration process. + +_LT_EOF + fi + ;; + + amigaos*) + case $host_cpu in + powerpc) + # see comment about AmigaOS4 .so support + _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' + _LT_TAGVAR(archive_expsym_cmds, $1)='' + ;; + m68k) + _LT_TAGVAR(archive_cmds, $1)='$RM $output_objdir/a2ixlibrary.data~$ECHO "#define NAME $libname" > $output_objdir/a2ixlibrary.data~$ECHO "#define LIBRARY_ID 1" >> $output_objdir/a2ixlibrary.data~$ECHO "#define VERSION $major" >> $output_objdir/a2ixlibrary.data~$ECHO "#define REVISION $revision" >> $output_objdir/a2ixlibrary.data~$AR $AR_FLAGS $lib $libobjs~$RANLIB $lib~(cd $output_objdir && a2ixlibrary -32)' + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' + _LT_TAGVAR(hardcode_minus_L, $1)=yes + ;; + esac + ;; + + beos*) + if $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then + _LT_TAGVAR(allow_undefined_flag, $1)=unsupported + # Joseph Beckenbach says some releases of gcc + # support --undefined. This deserves some investigation. FIXME + _LT_TAGVAR(archive_cmds, $1)='$CC -nostart $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' + else + _LT_TAGVAR(ld_shlibs, $1)=no + fi + ;; + + cygwin* | mingw* | pw32* | cegcc*) + # _LT_TAGVAR(hardcode_libdir_flag_spec, $1) is actually meaningless, + # as there is no search path for DLLs. + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' + _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}--export-all-symbols' + _LT_TAGVAR(allow_undefined_flag, $1)=unsupported + _LT_TAGVAR(always_export_symbols, $1)=no + _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=yes + _LT_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[[BCDGRS]][[ ]]/s/.*[[ ]]\([[^ ]]*\)/\1 DATA/;s/^.*[[ ]]__nm__\([[^ ]]*\)[[ ]][[^ ]]*/\1 DATA/;/^I[[ ]]/d;/^[[AITW]][[ ]]/s/.* //'\'' | sort | uniq > $export_symbols' + _LT_TAGVAR(exclude_expsyms, $1)=['[_]+GLOBAL_OFFSET_TABLE_|[_]+GLOBAL__[FID]_.*|[_]+head_[A-Za-z0-9_]+_dll|[A-Za-z0-9_]+_dll_iname'] + + if $LD --help 2>&1 | $GREP 'auto-import' > /dev/null; then + _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib' + # If the export-symbols file already is a .def file (1st line + # is EXPORTS), use it as is; otherwise, prepend... + _LT_TAGVAR(archive_expsym_cmds, $1)='if test "x`$SED 1q $export_symbols`" = xEXPORTS; then + cp $export_symbols $output_objdir/$soname.def; + else + echo EXPORTS > $output_objdir/$soname.def; + cat $export_symbols >> $output_objdir/$soname.def; + fi~ + $CC -shared $output_objdir/$soname.def $libobjs $deplibs $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib' + else + _LT_TAGVAR(ld_shlibs, $1)=no + fi + ;; + + haiku*) + _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' + _LT_TAGVAR(link_all_deplibs, $1)=yes + ;; + + interix[[3-9]]*) + _LT_TAGVAR(hardcode_direct, $1)=no + _LT_TAGVAR(hardcode_shlibpath_var, $1)=no + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir' + _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E' + # Hack: On Interix 3.x, we cannot compile PIC because of a broken gcc. + # Instead, shared libraries are loaded at an image base (0x10000000 by + # default) and relocated if they conflict, which is a slow very memory + # consuming and fragmenting process. To avoid this, we pick a random, + # 256 KiB-aligned image base between 0x50000000 and 0x6FFC0000 at link + # time. Moving up from 0x10000000 also allows more sbrk(2) space. + _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-h,$soname ${wl}--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib' + _LT_TAGVAR(archive_expsym_cmds, $1)='sed "s,^,_," $export_symbols >$output_objdir/$soname.expsym~$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-h,$soname ${wl}--retain-symbols-file,$output_objdir/$soname.expsym ${wl}--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib' + ;; + + gnu* | linux* | tpf* | k*bsd*-gnu | kopensolaris*-gnu) + tmp_diet=no + if test "$host_os" = linux-dietlibc; then + case $cc_basename in + diet\ *) tmp_diet=yes;; # linux-dietlibc with static linking (!diet-dyn) + esac + fi + if $LD --help 2>&1 | $EGREP ': supported targets:.* elf' > /dev/null \ + && test "$tmp_diet" = no + then + tmp_addflag=' $pic_flag' + tmp_sharedflag='-shared' + case $cc_basename,$host_cpu in + pgcc*) # Portland Group C compiler + _LT_TAGVAR(whole_archive_flag_spec, $1)='${wl}--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` ${wl}--no-whole-archive' + tmp_addflag=' $pic_flag' + ;; + pgf77* | pgf90* | pgf95* | pgfortran*) + # Portland Group f77 and f90 compilers + _LT_TAGVAR(whole_archive_flag_spec, $1)='${wl}--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` ${wl}--no-whole-archive' + tmp_addflag=' $pic_flag -Mnomain' ;; + ecc*,ia64* | icc*,ia64*) # Intel C compiler on ia64 + tmp_addflag=' -i_dynamic' ;; + efc*,ia64* | ifort*,ia64*) # Intel Fortran compiler on ia64 + tmp_addflag=' -i_dynamic -nofor_main' ;; + ifc* | ifort*) # Intel Fortran compiler + tmp_addflag=' -nofor_main' ;; + lf95*) # Lahey Fortran 8.1 + _LT_TAGVAR(whole_archive_flag_spec, $1)= + tmp_sharedflag='--shared' ;; + xl[[cC]]* | bgxl[[cC]]* | mpixl[[cC]]*) # IBM XL C 8.0 on PPC (deal with xlf below) + tmp_sharedflag='-qmkshrobj' + tmp_addflag= ;; + nvcc*) # Cuda Compiler Driver 2.2 + _LT_TAGVAR(whole_archive_flag_spec, $1)='${wl}--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` ${wl}--no-whole-archive' + _LT_TAGVAR(compiler_needs_object, $1)=yes + ;; + esac + case `$CC -V 2>&1 | sed 5q` in + *Sun\ C*) # Sun C 5.9 + _LT_TAGVAR(whole_archive_flag_spec, $1)='${wl}--whole-archive`new_convenience=; for conv in $convenience\"\"; do test -z \"$conv\" || new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` ${wl}--no-whole-archive' + _LT_TAGVAR(compiler_needs_object, $1)=yes + tmp_sharedflag='-G' ;; + *Sun\ F*) # Sun Fortran 8.3 + tmp_sharedflag='-G' ;; + esac + _LT_TAGVAR(archive_cmds, $1)='$CC '"$tmp_sharedflag""$tmp_addflag"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' + + if test "x$supports_anon_versioning" = xyes; then + _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $output_objdir/$libname.ver~ + cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~ + echo "local: *; };" >> $output_objdir/$libname.ver~ + $CC '"$tmp_sharedflag""$tmp_addflag"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-version-script ${wl}$output_objdir/$libname.ver -o $lib' + fi + + case $cc_basename in + xlf* | bgf* | bgxlf* | mpixlf*) + # IBM XL Fortran 10.1 on PPC cannot create shared libs itself + _LT_TAGVAR(whole_archive_flag_spec, $1)='--whole-archive$convenience --no-whole-archive' + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir' + _LT_TAGVAR(archive_cmds, $1)='$LD -shared $libobjs $deplibs $linker_flags -soname $soname -o $lib' + if test "x$supports_anon_versioning" = xyes; then + _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $output_objdir/$libname.ver~ + cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~ + echo "local: *; };" >> $output_objdir/$libname.ver~ + $LD -shared $libobjs $deplibs $linker_flags -soname $soname -version-script $output_objdir/$libname.ver -o $lib' + fi + ;; + esac + else + _LT_TAGVAR(ld_shlibs, $1)=no + fi + ;; + + netbsd* | netbsdelf*-gnu) + if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then + _LT_TAGVAR(archive_cmds, $1)='$LD -Bshareable $libobjs $deplibs $linker_flags -o $lib' + wlarc= + else + _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' + _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' + fi + ;; + + solaris*) + if $LD -v 2>&1 | $GREP 'BFD 2\.8' > /dev/null; then + _LT_TAGVAR(ld_shlibs, $1)=no + cat <<_LT_EOF 1>&2 + +*** Warning: The releases 2.8.* of the GNU linker cannot reliably +*** create shared libraries on Solaris systems. Therefore, libtool +*** is disabling shared libraries support. We urge you to upgrade GNU +*** binutils to release 2.9.1 or newer. Another option is to modify +*** your PATH or compiler configuration so that the native linker is +*** used, and then restart. + +_LT_EOF + elif $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then + _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' + _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' + else + _LT_TAGVAR(ld_shlibs, $1)=no + fi + ;; + + sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX*) + case `$LD -v 2>&1` in + *\ [[01]].* | *\ 2.[[0-9]].* | *\ 2.1[[0-5]].*) + _LT_TAGVAR(ld_shlibs, $1)=no + cat <<_LT_EOF 1>&2 + +*** Warning: Releases of the GNU linker prior to 2.16.91.0.3 can not +*** reliably create shared libraries on SCO systems. Therefore, libtool +*** is disabling shared libraries support. We urge you to upgrade GNU +*** binutils to release 2.16.91.0.3 or newer. Another option is to modify +*** your PATH or compiler configuration so that the native linker is +*** used, and then restart. + +_LT_EOF + ;; + *) + # For security reasons, it is highly recommended that you always + # use absolute paths for naming shared libraries, and exclude the + # DT_RUNPATH tag from executables and libraries. But doing so + # requires that you compile everything twice, which is a pain. + if $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir' + _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' + _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' + else + _LT_TAGVAR(ld_shlibs, $1)=no + fi + ;; + esac + ;; + + sunos4*) + _LT_TAGVAR(archive_cmds, $1)='$LD -assert pure-text -Bshareable -o $lib $libobjs $deplibs $linker_flags' + wlarc= + _LT_TAGVAR(hardcode_direct, $1)=yes + _LT_TAGVAR(hardcode_shlibpath_var, $1)=no + ;; + + *) + if $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then + _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' + _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' + else + _LT_TAGVAR(ld_shlibs, $1)=no + fi + ;; + esac + + if test "$_LT_TAGVAR(ld_shlibs, $1)" = no; then + runpath_var= + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)= + _LT_TAGVAR(export_dynamic_flag_spec, $1)= + _LT_TAGVAR(whole_archive_flag_spec, $1)= + fi + else + # PORTME fill in a description of your system's linker (not GNU ld) + case $host_os in + aix3*) + _LT_TAGVAR(allow_undefined_flag, $1)=unsupported + _LT_TAGVAR(always_export_symbols, $1)=yes + _LT_TAGVAR(archive_expsym_cmds, $1)='$LD -o $output_objdir/$soname $libobjs $deplibs $linker_flags -bE:$export_symbols -T512 -H512 -bM:SRE~$AR $AR_FLAGS $lib $output_objdir/$soname' + # Note: this linker hardcodes the directories in LIBPATH if there + # are no directories specified by -L. + _LT_TAGVAR(hardcode_minus_L, $1)=yes + if test "$GCC" = yes && test -z "$lt_prog_compiler_static"; then + # Neither direct hardcoding nor static linking is supported with a + # broken collect2. + _LT_TAGVAR(hardcode_direct, $1)=unsupported + fi + ;; + + aix[[4-9]]*) + if test "$host_cpu" = ia64; then + # On IA64, the linker does run time linking by default, so we don't + # have to do anything special. + aix_use_runtimelinking=no + exp_sym_flag='-Bexport' + no_entry_flag="" + else + # If we're using GNU nm, then we don't want the "-C" option. + # -C means demangle to AIX nm, but means don't demangle with GNU nm + # Also, AIX nm treats weak defined symbols like other global + # defined symbols, whereas GNU nm marks them as "W". + if $NM -V 2>&1 | $GREP 'GNU' > /dev/null; then + _LT_TAGVAR(export_symbols_cmds, $1)='$NM -Bpg $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B") || (\$ 2 == "W")) && ([substr](\$ 3,1,1) != ".")) { print \$ 3 } }'\'' | sort -u > $export_symbols' + else + _LT_TAGVAR(export_symbols_cmds, $1)='$NM -BCpg $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B")) && ([substr](\$ 3,1,1) != ".")) { print \$ 3 } }'\'' | sort -u > $export_symbols' + fi + aix_use_runtimelinking=no + + # Test if we are trying to use run time linking or normal + # AIX style linking. If -brtl is somewhere in LDFLAGS, we + # need to do runtime linking. + case $host_os in aix4.[[23]]|aix4.[[23]].*|aix[[5-9]]*) + for ld_flag in $LDFLAGS; do + if (test $ld_flag = "-brtl" || test $ld_flag = "-Wl,-brtl"); then + aix_use_runtimelinking=yes + break + fi + done + ;; + esac + + exp_sym_flag='-bexport' + no_entry_flag='-bnoentry' + fi + + # When large executables or shared objects are built, AIX ld can + # have problems creating the table of contents. If linking a library + # or program results in "error TOC overflow" add -mminimal-toc to + # CXXFLAGS/CFLAGS for g++/gcc. In the cases where that is not + # enough to fix the problem, add -Wl,-bbigtoc to LDFLAGS. + + _LT_TAGVAR(archive_cmds, $1)='' + _LT_TAGVAR(hardcode_direct, $1)=yes + _LT_TAGVAR(hardcode_direct_absolute, $1)=yes + _LT_TAGVAR(hardcode_libdir_separator, $1)=':' + _LT_TAGVAR(link_all_deplibs, $1)=yes + _LT_TAGVAR(file_list_spec, $1)='${wl}-f,' + + if test "$GCC" = yes; then + case $host_os in aix4.[[012]]|aix4.[[012]].*) + # We only want to do this on AIX 4.2 and lower, the check + # below for broken collect2 doesn't work under 4.3+ + collect2name=`${CC} -print-prog-name=collect2` + if test -f "$collect2name" && + strings "$collect2name" | $GREP resolve_lib_name >/dev/null + then + # We have reworked collect2 + : + else + # We have old collect2 + _LT_TAGVAR(hardcode_direct, $1)=unsupported + # It fails to find uninstalled libraries when the uninstalled + # path is not listed in the libpath. Setting hardcode_minus_L + # to unsupported forces relinking + _LT_TAGVAR(hardcode_minus_L, $1)=yes + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' + _LT_TAGVAR(hardcode_libdir_separator, $1)= + fi + ;; + esac + shared_flag='-shared' + if test "$aix_use_runtimelinking" = yes; then + shared_flag="$shared_flag "'${wl}-G' + fi + _LT_TAGVAR(link_all_deplibs, $1)=no + else + # not using gcc + if test "$host_cpu" = ia64; then + # VisualAge C++, Version 5.5 for AIX 5L for IA-64, Beta 3 Release + # chokes on -Wl,-G. The following line is correct: + shared_flag='-G' + else + if test "$aix_use_runtimelinking" = yes; then + shared_flag='${wl}-G' + else + shared_flag='${wl}-bM:SRE' + fi + fi + fi + + _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-bexpall' + # It seems that -bexpall does not export symbols beginning with + # underscore (_), so it is better to generate a list of symbols to export. + _LT_TAGVAR(always_export_symbols, $1)=yes + if test "$aix_use_runtimelinking" = yes; then + # Warning - without using the other runtime loading flags (-brtl), + # -berok will link without error, but may produce a broken library. + _LT_TAGVAR(allow_undefined_flag, $1)='-berok' + # Determine the default libpath from the value encoded in an + # empty executable. + _LT_SYS_MODULE_PATH_AIX([$1]) + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-blibpath:$libdir:'"$aix_libpath" + _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags `if test "x${allow_undefined_flag}" != "x"; then func_echo_all "${wl}${allow_undefined_flag}"; else :; fi` '"\${wl}$exp_sym_flag:\$export_symbols $shared_flag" + else + if test "$host_cpu" = ia64; then + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-R $libdir:/usr/lib:/lib' + _LT_TAGVAR(allow_undefined_flag, $1)="-z nodefs" + _LT_TAGVAR(archive_expsym_cmds, $1)="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags ${wl}${allow_undefined_flag} '"\${wl}$exp_sym_flag:\$export_symbols" + else + # Determine the default libpath from the value encoded in an + # empty executable. + _LT_SYS_MODULE_PATH_AIX([$1]) + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-blibpath:$libdir:'"$aix_libpath" + # Warning - without using the other run time loading flags, + # -berok will link without error, but may produce a broken library. + _LT_TAGVAR(no_undefined_flag, $1)=' ${wl}-bernotok' + _LT_TAGVAR(allow_undefined_flag, $1)=' ${wl}-berok' + if test "$with_gnu_ld" = yes; then + # We only use this code for GNU lds that support --whole-archive. + _LT_TAGVAR(whole_archive_flag_spec, $1)='${wl}--whole-archive$convenience ${wl}--no-whole-archive' + else + # Exported symbols can be pulled into shared objects from archives + _LT_TAGVAR(whole_archive_flag_spec, $1)='$convenience' + fi + _LT_TAGVAR(archive_cmds_need_lc, $1)=yes + # This is similar to how AIX traditionally builds its shared libraries. + _LT_TAGVAR(archive_expsym_cmds, $1)="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs ${wl}-bnoentry $compiler_flags ${wl}-bE:$export_symbols${allow_undefined_flag}~$AR $AR_FLAGS $output_objdir/$libname$release.a $output_objdir/$soname' + fi + fi + ;; + + amigaos*) + case $host_cpu in + powerpc) + # see comment about AmigaOS4 .so support + _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' + _LT_TAGVAR(archive_expsym_cmds, $1)='' + ;; + m68k) + _LT_TAGVAR(archive_cmds, $1)='$RM $output_objdir/a2ixlibrary.data~$ECHO "#define NAME $libname" > $output_objdir/a2ixlibrary.data~$ECHO "#define LIBRARY_ID 1" >> $output_objdir/a2ixlibrary.data~$ECHO "#define VERSION $major" >> $output_objdir/a2ixlibrary.data~$ECHO "#define REVISION $revision" >> $output_objdir/a2ixlibrary.data~$AR $AR_FLAGS $lib $libobjs~$RANLIB $lib~(cd $output_objdir && a2ixlibrary -32)' + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' + _LT_TAGVAR(hardcode_minus_L, $1)=yes + ;; + esac + ;; + + bsdi[[45]]*) + _LT_TAGVAR(export_dynamic_flag_spec, $1)=-rdynamic + ;; + + cygwin* | mingw* | pw32* | cegcc*) + # When not using gcc, we currently assume that we are using + # Microsoft Visual C++. + # hardcode_libdir_flag_spec is actually meaningless, as there is + # no search path for DLLs. + case $cc_basename in + cl*) + # Native MSVC + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)=' ' + _LT_TAGVAR(allow_undefined_flag, $1)=unsupported + _LT_TAGVAR(always_export_symbols, $1)=yes + _LT_TAGVAR(file_list_spec, $1)='@' + # Tell ltmain to make .lib files, not .a files. + libext=lib + # Tell ltmain to make .dll files, not .so files. + shrext_cmds=".dll" + # FIXME: Setting linknames here is a bad hack. + _LT_TAGVAR(archive_cmds, $1)='$CC -o $output_objdir/$soname $libobjs $compiler_flags $deplibs -Wl,-dll~linknames=' + _LT_TAGVAR(archive_expsym_cmds, $1)='if test "x`$SED 1q $export_symbols`" = xEXPORTS; then + sed -n -e 's/\\\\\\\(.*\\\\\\\)/-link\\\ -EXPORT:\\\\\\\1/' -e '1\\\!p' < $export_symbols > $output_objdir/$soname.exp; + else + sed -e 's/\\\\\\\(.*\\\\\\\)/-link\\\ -EXPORT:\\\\\\\1/' < $export_symbols > $output_objdir/$soname.exp; + fi~ + $CC -o $tool_output_objdir$soname $libobjs $compiler_flags $deplibs "@$tool_output_objdir$soname.exp" -Wl,-DLL,-IMPLIB:"$tool_output_objdir$libname.dll.lib"~ + linknames=' + # The linker will not automatically build a static lib if we build a DLL. + # _LT_TAGVAR(old_archive_from_new_cmds, $1)='true' + _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=yes + _LT_TAGVAR(exclude_expsyms, $1)='_NULL_IMPORT_DESCRIPTOR|_IMPORT_DESCRIPTOR_.*' + _LT_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[[BCDGRS]][[ ]]/s/.*[[ ]]\([[^ ]]*\)/\1,DATA/'\'' | $SED -e '\''/^[[AITW]][[ ]]/s/.*[[ ]]//'\'' | sort | uniq > $export_symbols' + # Don't use ranlib + _LT_TAGVAR(old_postinstall_cmds, $1)='chmod 644 $oldlib' + _LT_TAGVAR(postlink_cmds, $1)='lt_outputfile="@OUTPUT@"~ + lt_tool_outputfile="@TOOL_OUTPUT@"~ + case $lt_outputfile in + *.exe|*.EXE) ;; + *) + lt_outputfile="$lt_outputfile.exe" + lt_tool_outputfile="$lt_tool_outputfile.exe" + ;; + esac~ + if test "$MANIFEST_TOOL" != ":" && test -f "$lt_outputfile.manifest"; then + $MANIFEST_TOOL -manifest "$lt_tool_outputfile.manifest" -outputresource:"$lt_tool_outputfile" || exit 1; + $RM "$lt_outputfile.manifest"; + fi' + ;; + *) + # Assume MSVC wrapper + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)=' ' + _LT_TAGVAR(allow_undefined_flag, $1)=unsupported + # Tell ltmain to make .lib files, not .a files. + libext=lib + # Tell ltmain to make .dll files, not .so files. + shrext_cmds=".dll" + # FIXME: Setting linknames here is a bad hack. + _LT_TAGVAR(archive_cmds, $1)='$CC -o $lib $libobjs $compiler_flags `func_echo_all "$deplibs" | $SED '\''s/ -lc$//'\''` -link -dll~linknames=' + # The linker will automatically build a .lib file if we build a DLL. + _LT_TAGVAR(old_archive_from_new_cmds, $1)='true' + # FIXME: Should let the user specify the lib program. + _LT_TAGVAR(old_archive_cmds, $1)='lib -OUT:$oldlib$oldobjs$old_deplibs' + _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=yes + ;; + esac + ;; + + darwin* | rhapsody*) + _LT_DARWIN_LINKER_FEATURES($1) + ;; + + dgux*) + _LT_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' + _LT_TAGVAR(hardcode_shlibpath_var, $1)=no + ;; + + # FreeBSD 2.2.[012] allows us to include c++rt0.o to get C++ constructor + # support. Future versions do this automatically, but an explicit c++rt0.o + # does not break anything, and helps significantly (at the cost of a little + # extra space). + freebsd2.2*) + _LT_TAGVAR(archive_cmds, $1)='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags /usr/lib/c++rt0.o' + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir' + _LT_TAGVAR(hardcode_direct, $1)=yes + _LT_TAGVAR(hardcode_shlibpath_var, $1)=no + ;; + + # Unfortunately, older versions of FreeBSD 2 do not have this feature. + freebsd2.*) + _LT_TAGVAR(archive_cmds, $1)='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags' + _LT_TAGVAR(hardcode_direct, $1)=yes + _LT_TAGVAR(hardcode_minus_L, $1)=yes + _LT_TAGVAR(hardcode_shlibpath_var, $1)=no + ;; + + # FreeBSD 3 and greater uses gcc -shared to do shared libraries. + freebsd* | dragonfly*) + _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags' + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir' + _LT_TAGVAR(hardcode_direct, $1)=yes + _LT_TAGVAR(hardcode_shlibpath_var, $1)=no + ;; + + hpux9*) + if test "$GCC" = yes; then + _LT_TAGVAR(archive_cmds, $1)='$RM $output_objdir/$soname~$CC -shared $pic_flag ${wl}+b ${wl}$install_libdir -o $output_objdir/$soname $libobjs $deplibs $compiler_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib' + else + _LT_TAGVAR(archive_cmds, $1)='$RM $output_objdir/$soname~$LD -b +b $install_libdir -o $output_objdir/$soname $libobjs $deplibs $linker_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib' + fi + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}+b ${wl}$libdir' + _LT_TAGVAR(hardcode_libdir_separator, $1)=: + _LT_TAGVAR(hardcode_direct, $1)=yes + + # hardcode_minus_L: Not really in the search PATH, + # but as the default location of the library. + _LT_TAGVAR(hardcode_minus_L, $1)=yes + _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E' + ;; + + hpux10*) + if test "$GCC" = yes && test "$with_gnu_ld" = no; then + _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags' + else + _LT_TAGVAR(archive_cmds, $1)='$LD -b +h $soname +b $install_libdir -o $lib $libobjs $deplibs $linker_flags' + fi + if test "$with_gnu_ld" = no; then + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}+b ${wl}$libdir' + _LT_TAGVAR(hardcode_libdir_separator, $1)=: + _LT_TAGVAR(hardcode_direct, $1)=yes + _LT_TAGVAR(hardcode_direct_absolute, $1)=yes + _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E' + # hardcode_minus_L: Not really in the search PATH, + # but as the default location of the library. + _LT_TAGVAR(hardcode_minus_L, $1)=yes + fi + ;; + + hpux11*) + if test "$GCC" = yes && test "$with_gnu_ld" = no; then + case $host_cpu in + hppa*64*) + _LT_TAGVAR(archive_cmds, $1)='$CC -shared ${wl}+h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags' + ;; + ia64*) + _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $libobjs $deplibs $compiler_flags' + ;; + *) + _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags' + ;; + esac + else + case $host_cpu in + hppa*64*) + _LT_TAGVAR(archive_cmds, $1)='$CC -b ${wl}+h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags' + ;; + ia64*) + _LT_TAGVAR(archive_cmds, $1)='$CC -b ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $libobjs $deplibs $compiler_flags' + ;; + *) + m4_if($1, [], [ + # Older versions of the 11.00 compiler do not understand -b yet + # (HP92453-01 A.11.01.20 doesn't, HP92453-01 B.11.X.35175-35176.GP does) + _LT_LINKER_OPTION([if $CC understands -b], + _LT_TAGVAR(lt_cv_prog_compiler__b, $1), [-b], + [_LT_TAGVAR(archive_cmds, $1)='$CC -b ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags'], + [_LT_TAGVAR(archive_cmds, $1)='$LD -b +h $soname +b $install_libdir -o $lib $libobjs $deplibs $linker_flags'])], + [_LT_TAGVAR(archive_cmds, $1)='$CC -b ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags']) + ;; + esac + fi + if test "$with_gnu_ld" = no; then + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}+b ${wl}$libdir' + _LT_TAGVAR(hardcode_libdir_separator, $1)=: + + case $host_cpu in + hppa*64*|ia64*) + _LT_TAGVAR(hardcode_direct, $1)=no + _LT_TAGVAR(hardcode_shlibpath_var, $1)=no + ;; + *) + _LT_TAGVAR(hardcode_direct, $1)=yes + _LT_TAGVAR(hardcode_direct_absolute, $1)=yes + _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E' + + # hardcode_minus_L: Not really in the search PATH, + # but as the default location of the library. + _LT_TAGVAR(hardcode_minus_L, $1)=yes + ;; + esac + fi + ;; + + irix5* | irix6* | nonstopux*) + if test "$GCC" = yes; then + _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' + # Try to use the -exported_symbol ld option, if it does not + # work, assume that -exports_file does not work either and + # implicitly export all symbols. + # This should be the same for all languages, so no per-tag cache variable. + AC_CACHE_CHECK([whether the $host_os linker accepts -exported_symbol], + [lt_cv_irix_exported_symbol], + [save_LDFLAGS="$LDFLAGS" + LDFLAGS="$LDFLAGS -shared ${wl}-exported_symbol ${wl}foo ${wl}-update_registry ${wl}/dev/null" + AC_LINK_IFELSE( + [AC_LANG_SOURCE( + [AC_LANG_CASE([C], [[int foo (void) { return 0; }]], + [C++], [[int foo (void) { return 0; }]], + [Fortran 77], [[ + subroutine foo + end]], + [Fortran], [[ + subroutine foo + end]])])], + [lt_cv_irix_exported_symbol=yes], + [lt_cv_irix_exported_symbol=no]) + LDFLAGS="$save_LDFLAGS"]) + if test "$lt_cv_irix_exported_symbol" = yes; then + _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations ${wl}-exports_file ${wl}$export_symbols -o $lib' + fi + else + _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -o $lib' + _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -exports_file $export_symbols -o $lib' + fi + _LT_TAGVAR(archive_cmds_need_lc, $1)='no' + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir' + _LT_TAGVAR(hardcode_libdir_separator, $1)=: + _LT_TAGVAR(inherit_rpath, $1)=yes + _LT_TAGVAR(link_all_deplibs, $1)=yes + ;; + + netbsd* | netbsdelf*-gnu) + if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then + _LT_TAGVAR(archive_cmds, $1)='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags' # a.out + else + _LT_TAGVAR(archive_cmds, $1)='$LD -shared -o $lib $libobjs $deplibs $linker_flags' # ELF + fi + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir' + _LT_TAGVAR(hardcode_direct, $1)=yes + _LT_TAGVAR(hardcode_shlibpath_var, $1)=no + ;; + + newsos6) + _LT_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' + _LT_TAGVAR(hardcode_direct, $1)=yes + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir' + _LT_TAGVAR(hardcode_libdir_separator, $1)=: + _LT_TAGVAR(hardcode_shlibpath_var, $1)=no + ;; + + *nto* | *qnx*) + ;; + + openbsd*) + if test -f /usr/libexec/ld.so; then + _LT_TAGVAR(hardcode_direct, $1)=yes + _LT_TAGVAR(hardcode_shlibpath_var, $1)=no + _LT_TAGVAR(hardcode_direct_absolute, $1)=yes + if test -z "`echo __ELF__ | $CC -E - | $GREP __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then + _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags' + _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags ${wl}-retain-symbols-file,$export_symbols' + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir' + _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E' + else + case $host_os in + openbsd[[01]].* | openbsd2.[[0-7]] | openbsd2.[[0-7]].*) + _LT_TAGVAR(archive_cmds, $1)='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags' + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir' + ;; + *) + _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags' + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir' + ;; + esac + fi + else + _LT_TAGVAR(ld_shlibs, $1)=no + fi + ;; + + os2*) + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' + _LT_TAGVAR(hardcode_minus_L, $1)=yes + _LT_TAGVAR(allow_undefined_flag, $1)=unsupported + _LT_TAGVAR(archive_cmds, $1)='$ECHO "LIBRARY $libname INITINSTANCE" > $output_objdir/$libname.def~$ECHO "DESCRIPTION \"$libname\"" >> $output_objdir/$libname.def~echo DATA >> $output_objdir/$libname.def~echo " SINGLE NONSHARED" >> $output_objdir/$libname.def~echo EXPORTS >> $output_objdir/$libname.def~emxexp $libobjs >> $output_objdir/$libname.def~$CC -Zdll -Zcrtdll -o $lib $libobjs $deplibs $compiler_flags $output_objdir/$libname.def' + _LT_TAGVAR(old_archive_from_new_cmds, $1)='emximp -o $output_objdir/$libname.a $output_objdir/$libname.def' + ;; + + osf3*) + if test "$GCC" = yes; then + _LT_TAGVAR(allow_undefined_flag, $1)=' ${wl}-expect_unresolved ${wl}\*' + _LT_TAGVAR(archive_cmds, $1)='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' + else + _LT_TAGVAR(allow_undefined_flag, $1)=' -expect_unresolved \*' + _LT_TAGVAR(archive_cmds, $1)='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -o $lib' + fi + _LT_TAGVAR(archive_cmds_need_lc, $1)='no' + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir' + _LT_TAGVAR(hardcode_libdir_separator, $1)=: + ;; + + osf4* | osf5*) # as osf3* with the addition of -msym flag + if test "$GCC" = yes; then + _LT_TAGVAR(allow_undefined_flag, $1)=' ${wl}-expect_unresolved ${wl}\*' + _LT_TAGVAR(archive_cmds, $1)='$CC -shared${allow_undefined_flag} $pic_flag $libobjs $deplibs $compiler_flags ${wl}-msym ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir' + else + _LT_TAGVAR(allow_undefined_flag, $1)=' -expect_unresolved \*' + _LT_TAGVAR(archive_cmds, $1)='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags -msym -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -o $lib' + _LT_TAGVAR(archive_expsym_cmds, $1)='for i in `cat $export_symbols`; do printf "%s %s\\n" -exported_symbol "\$i" >> $lib.exp; done; printf "%s\\n" "-hidden">> $lib.exp~ + $CC -shared${allow_undefined_flag} ${wl}-input ${wl}$lib.exp $compiler_flags $libobjs $deplibs -soname $soname `test -n "$verstring" && $ECHO "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -o $lib~$RM $lib.exp' + + # Both c and cxx compiler support -rpath directly + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-rpath $libdir' + fi + _LT_TAGVAR(archive_cmds_need_lc, $1)='no' + _LT_TAGVAR(hardcode_libdir_separator, $1)=: + ;; + + solaris*) + _LT_TAGVAR(no_undefined_flag, $1)=' -z defs' + if test "$GCC" = yes; then + wlarc='${wl}' + _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag ${wl}-z ${wl}text ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags' + _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~ + $CC -shared $pic_flag ${wl}-z ${wl}text ${wl}-M ${wl}$lib.exp ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags~$RM $lib.exp' + else + case `$CC -V 2>&1` in + *"Compilers 5.0"*) + wlarc='' + _LT_TAGVAR(archive_cmds, $1)='$LD -G${allow_undefined_flag} -h $soname -o $lib $libobjs $deplibs $linker_flags' + _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~ + $LD -G${allow_undefined_flag} -M $lib.exp -h $soname -o $lib $libobjs $deplibs $linker_flags~$RM $lib.exp' + ;; + *) + wlarc='${wl}' + _LT_TAGVAR(archive_cmds, $1)='$CC -G${allow_undefined_flag} -h $soname -o $lib $libobjs $deplibs $compiler_flags' + _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~ + $CC -G${allow_undefined_flag} -M $lib.exp -h $soname -o $lib $libobjs $deplibs $compiler_flags~$RM $lib.exp' + ;; + esac + fi + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir' + _LT_TAGVAR(hardcode_shlibpath_var, $1)=no + case $host_os in + solaris2.[[0-5]] | solaris2.[[0-5]].*) ;; + *) + # The compiler driver will combine and reorder linker options, + # but understands `-z linker_flag'. GCC discards it without `$wl', + # but is careful enough not to reorder. + # Supported since Solaris 2.6 (maybe 2.5.1?) + if test "$GCC" = yes; then + _LT_TAGVAR(whole_archive_flag_spec, $1)='${wl}-z ${wl}allextract$convenience ${wl}-z ${wl}defaultextract' + else + _LT_TAGVAR(whole_archive_flag_spec, $1)='-z allextract$convenience -z defaultextract' + fi + ;; + esac + _LT_TAGVAR(link_all_deplibs, $1)=yes + ;; + + sunos4*) + if test "x$host_vendor" = xsequent; then + # Use $CC to link under sequent, because it throws in some extra .o + # files that make .init and .fini sections work. + _LT_TAGVAR(archive_cmds, $1)='$CC -G ${wl}-h $soname -o $lib $libobjs $deplibs $compiler_flags' + else + _LT_TAGVAR(archive_cmds, $1)='$LD -assert pure-text -Bstatic -o $lib $libobjs $deplibs $linker_flags' + fi + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' + _LT_TAGVAR(hardcode_direct, $1)=yes + _LT_TAGVAR(hardcode_minus_L, $1)=yes + _LT_TAGVAR(hardcode_shlibpath_var, $1)=no + ;; + + sysv4) + case $host_vendor in + sni) + _LT_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' + _LT_TAGVAR(hardcode_direct, $1)=yes # is this really true??? + ;; + siemens) + ## LD is ld it makes a PLAMLIB + ## CC just makes a GrossModule. + _LT_TAGVAR(archive_cmds, $1)='$LD -G -o $lib $libobjs $deplibs $linker_flags' + _LT_TAGVAR(reload_cmds, $1)='$CC -r -o $output$reload_objs' + _LT_TAGVAR(hardcode_direct, $1)=no + ;; + motorola) + _LT_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' + _LT_TAGVAR(hardcode_direct, $1)=no #Motorola manual says yes, but my tests say they lie + ;; + esac + runpath_var='LD_RUN_PATH' + _LT_TAGVAR(hardcode_shlibpath_var, $1)=no + ;; + + sysv4.3*) + _LT_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' + _LT_TAGVAR(hardcode_shlibpath_var, $1)=no + _LT_TAGVAR(export_dynamic_flag_spec, $1)='-Bexport' + ;; + + sysv4*MP*) + if test -d /usr/nec; then + _LT_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' + _LT_TAGVAR(hardcode_shlibpath_var, $1)=no + runpath_var=LD_RUN_PATH + hardcode_runpath_var=yes + _LT_TAGVAR(ld_shlibs, $1)=yes + fi + ;; + + sysv4*uw2* | sysv5OpenUNIX* | sysv5UnixWare7.[[01]].[[10]]* | unixware7* | sco3.2v5.0.[[024]]*) + _LT_TAGVAR(no_undefined_flag, $1)='${wl}-z,text' + _LT_TAGVAR(archive_cmds_need_lc, $1)=no + _LT_TAGVAR(hardcode_shlibpath_var, $1)=no + runpath_var='LD_RUN_PATH' + + if test "$GCC" = yes; then + _LT_TAGVAR(archive_cmds, $1)='$CC -shared ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' + _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' + else + _LT_TAGVAR(archive_cmds, $1)='$CC -G ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' + _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -G ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' + fi + ;; + + sysv5* | sco3.2v5* | sco5v6*) + # Note: We can NOT use -z defs as we might desire, because we do not + # link with -lc, and that would cause any symbols used from libc to + # always be unresolved, which means just about no library would + # ever link correctly. If we're not using GNU ld we use -z text + # though, which does catch some bad symbols but isn't as heavy-handed + # as -z defs. + _LT_TAGVAR(no_undefined_flag, $1)='${wl}-z,text' + _LT_TAGVAR(allow_undefined_flag, $1)='${wl}-z,nodefs' + _LT_TAGVAR(archive_cmds_need_lc, $1)=no + _LT_TAGVAR(hardcode_shlibpath_var, $1)=no + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-R,$libdir' + _LT_TAGVAR(hardcode_libdir_separator, $1)=':' + _LT_TAGVAR(link_all_deplibs, $1)=yes + _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-Bexport' + runpath_var='LD_RUN_PATH' + + if test "$GCC" = yes; then + _LT_TAGVAR(archive_cmds, $1)='$CC -shared ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' + _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' + else + _LT_TAGVAR(archive_cmds, $1)='$CC -G ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' + _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -G ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' + fi + ;; + + uts4*) + _LT_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' + _LT_TAGVAR(hardcode_shlibpath_var, $1)=no + ;; + + *) + _LT_TAGVAR(ld_shlibs, $1)=no + ;; + esac + + if test x$host_vendor = xsni; then + case $host in + sysv4 | sysv4.2uw2* | sysv4.3* | sysv5*) + _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-Blargedynsym' + ;; + esac + fi + fi +]) +AC_MSG_RESULT([$_LT_TAGVAR(ld_shlibs, $1)]) +test "$_LT_TAGVAR(ld_shlibs, $1)" = no && can_build_shared=no + +_LT_TAGVAR(with_gnu_ld, $1)=$with_gnu_ld + +_LT_DECL([], [libext], [0], [Old archive suffix (normally "a")])dnl +_LT_DECL([], [shrext_cmds], [1], [Shared library suffix (normally ".so")])dnl +_LT_DECL([], [extract_expsyms_cmds], [2], + [The commands to extract the exported symbol list from a shared archive]) + +# +# Do we need to explicitly link libc? +# +case "x$_LT_TAGVAR(archive_cmds_need_lc, $1)" in +x|xyes) + # Assume -lc should be added + _LT_TAGVAR(archive_cmds_need_lc, $1)=yes + + if test "$enable_shared" = yes && test "$GCC" = yes; then + case $_LT_TAGVAR(archive_cmds, $1) in + *'~'*) + # FIXME: we may have to deal with multi-command sequences. + ;; + '$CC '*) + # Test whether the compiler implicitly links with -lc since on some + # systems, -lgcc has to come before -lc. If gcc already passes -lc + # to ld, don't add -lc before -lgcc. + AC_CACHE_CHECK([whether -lc should be explicitly linked in], + [lt_cv_]_LT_TAGVAR(archive_cmds_need_lc, $1), + [$RM conftest* + echo "$lt_simple_compile_test_code" > conftest.$ac_ext + + if AC_TRY_EVAL(ac_compile) 2>conftest.err; then + soname=conftest + lib=conftest + libobjs=conftest.$ac_objext + deplibs= + wl=$_LT_TAGVAR(lt_prog_compiler_wl, $1) + pic_flag=$_LT_TAGVAR(lt_prog_compiler_pic, $1) + compiler_flags=-v + linker_flags=-v + verstring= + output_objdir=. + libname=conftest + lt_save_allow_undefined_flag=$_LT_TAGVAR(allow_undefined_flag, $1) + _LT_TAGVAR(allow_undefined_flag, $1)= + if AC_TRY_EVAL(_LT_TAGVAR(archive_cmds, $1) 2\>\&1 \| $GREP \" -lc \" \>/dev/null 2\>\&1) + then + lt_cv_[]_LT_TAGVAR(archive_cmds_need_lc, $1)=no + else + lt_cv_[]_LT_TAGVAR(archive_cmds_need_lc, $1)=yes + fi + _LT_TAGVAR(allow_undefined_flag, $1)=$lt_save_allow_undefined_flag + else + cat conftest.err 1>&5 + fi + $RM conftest* + ]) + _LT_TAGVAR(archive_cmds_need_lc, $1)=$lt_cv_[]_LT_TAGVAR(archive_cmds_need_lc, $1) + ;; + esac + fi + ;; +esac + +_LT_TAGDECL([build_libtool_need_lc], [archive_cmds_need_lc], [0], + [Whether or not to add -lc for building shared libraries]) +_LT_TAGDECL([allow_libtool_libs_with_static_runtimes], + [enable_shared_with_static_runtimes], [0], + [Whether or not to disallow shared libs when runtime libs are static]) +_LT_TAGDECL([], [export_dynamic_flag_spec], [1], + [Compiler flag to allow reflexive dlopens]) +_LT_TAGDECL([], [whole_archive_flag_spec], [1], + [Compiler flag to generate shared objects directly from archives]) +_LT_TAGDECL([], [compiler_needs_object], [1], + [Whether the compiler copes with passing no objects directly]) +_LT_TAGDECL([], [old_archive_from_new_cmds], [2], + [Create an old-style archive from a shared archive]) +_LT_TAGDECL([], [old_archive_from_expsyms_cmds], [2], + [Create a temporary old-style archive to link instead of a shared archive]) +_LT_TAGDECL([], [archive_cmds], [2], [Commands used to build a shared archive]) +_LT_TAGDECL([], [archive_expsym_cmds], [2]) +_LT_TAGDECL([], [module_cmds], [2], + [Commands used to build a loadable module if different from building + a shared archive.]) +_LT_TAGDECL([], [module_expsym_cmds], [2]) +_LT_TAGDECL([], [with_gnu_ld], [1], + [Whether we are building with GNU ld or not]) +_LT_TAGDECL([], [allow_undefined_flag], [1], + [Flag that allows shared libraries with undefined symbols to be built]) +_LT_TAGDECL([], [no_undefined_flag], [1], + [Flag that enforces no undefined symbols]) +_LT_TAGDECL([], [hardcode_libdir_flag_spec], [1], + [Flag to hardcode $libdir into a binary during linking. + This must work even if $libdir does not exist]) +_LT_TAGDECL([], [hardcode_libdir_separator], [1], + [Whether we need a single "-rpath" flag with a separated argument]) +_LT_TAGDECL([], [hardcode_direct], [0], + [Set to "yes" if using DIR/libNAME${shared_ext} during linking hardcodes + DIR into the resulting binary]) +_LT_TAGDECL([], [hardcode_direct_absolute], [0], + [Set to "yes" if using DIR/libNAME${shared_ext} during linking hardcodes + DIR into the resulting binary and the resulting library dependency is + "absolute", i.e impossible to change by setting ${shlibpath_var} if the + library is relocated]) +_LT_TAGDECL([], [hardcode_minus_L], [0], + [Set to "yes" if using the -LDIR flag during linking hardcodes DIR + into the resulting binary]) +_LT_TAGDECL([], [hardcode_shlibpath_var], [0], + [Set to "yes" if using SHLIBPATH_VAR=DIR during linking hardcodes DIR + into the resulting binary]) +_LT_TAGDECL([], [hardcode_automatic], [0], + [Set to "yes" if building a shared library automatically hardcodes DIR + into the library and all subsequent libraries and executables linked + against it]) +_LT_TAGDECL([], [inherit_rpath], [0], + [Set to yes if linker adds runtime paths of dependent libraries + to runtime path list]) +_LT_TAGDECL([], [link_all_deplibs], [0], + [Whether libtool must link a program against all its dependency libraries]) +_LT_TAGDECL([], [always_export_symbols], [0], + [Set to "yes" if exported symbols are required]) +_LT_TAGDECL([], [export_symbols_cmds], [2], + [The commands to list exported symbols]) +_LT_TAGDECL([], [exclude_expsyms], [1], + [Symbols that should not be listed in the preloaded symbols]) +_LT_TAGDECL([], [include_expsyms], [1], + [Symbols that must always be exported]) +_LT_TAGDECL([], [prelink_cmds], [2], + [Commands necessary for linking programs (against libraries) with templates]) +_LT_TAGDECL([], [postlink_cmds], [2], + [Commands necessary for finishing linking programs]) +_LT_TAGDECL([], [file_list_spec], [1], + [Specify filename containing input files]) +dnl FIXME: Not yet implemented +dnl _LT_TAGDECL([], [thread_safe_flag_spec], [1], +dnl [Compiler flag to generate thread safe objects]) +])# _LT_LINKER_SHLIBS + + +# _LT_LANG_C_CONFIG([TAG]) +# ------------------------ +# Ensure that the configuration variables for a C compiler are suitably +# defined. These variables are subsequently used by _LT_CONFIG to write +# the compiler configuration to `libtool'. +m4_defun([_LT_LANG_C_CONFIG], +[m4_require([_LT_DECL_EGREP])dnl +lt_save_CC="$CC" +AC_LANG_PUSH(C) + +# Source file extension for C test sources. +ac_ext=c + +# Object file extension for compiled C test sources. +objext=o +_LT_TAGVAR(objext, $1)=$objext + +# Code to be used in simple compile tests +lt_simple_compile_test_code="int some_variable = 0;" + +# Code to be used in simple link tests +lt_simple_link_test_code='int main(){return(0);}' + +_LT_TAG_COMPILER +# Save the default compiler, since it gets overwritten when the other +# tags are being tested, and _LT_TAGVAR(compiler, []) is a NOP. +compiler_DEFAULT=$CC + +# save warnings/boilerplate of simple test code +_LT_COMPILER_BOILERPLATE +_LT_LINKER_BOILERPLATE + +## CAVEAT EMPTOR: +## There is no encapsulation within the following macros, do not change +## the running order or otherwise move them around unless you know exactly +## what you are doing... +if test -n "$compiler"; then + _LT_COMPILER_NO_RTTI($1) + _LT_COMPILER_PIC($1) + _LT_COMPILER_C_O($1) + _LT_COMPILER_FILE_LOCKS($1) + _LT_LINKER_SHLIBS($1) + _LT_SYS_DYNAMIC_LINKER($1) + _LT_LINKER_HARDCODE_LIBPATH($1) + LT_SYS_DLOPEN_SELF + _LT_CMD_STRIPLIB + + # Report which library types will actually be built + AC_MSG_CHECKING([if libtool supports shared libraries]) + AC_MSG_RESULT([$can_build_shared]) + + AC_MSG_CHECKING([whether to build shared libraries]) + test "$can_build_shared" = "no" && enable_shared=no + + # On AIX, shared libraries and static libraries use the same namespace, and + # are all built from PIC. + case $host_os in + aix3*) + test "$enable_shared" = yes && enable_static=no + if test -n "$RANLIB"; then + archive_cmds="$archive_cmds~\$RANLIB \$lib" + postinstall_cmds='$RANLIB $lib' + fi + ;; + + aix[[4-9]]*) + if test "$host_cpu" != ia64 && test "$aix_use_runtimelinking" = no ; then + test "$enable_shared" = yes && enable_static=no + fi + ;; + esac + AC_MSG_RESULT([$enable_shared]) + + AC_MSG_CHECKING([whether to build static libraries]) + # Make sure either enable_shared or enable_static is yes. + test "$enable_shared" = yes || enable_static=yes + AC_MSG_RESULT([$enable_static]) + + _LT_CONFIG($1) +fi +AC_LANG_POP +CC="$lt_save_CC" +])# _LT_LANG_C_CONFIG + + +# _LT_LANG_CXX_CONFIG([TAG]) +# -------------------------- +# Ensure that the configuration variables for a C++ compiler are suitably +# defined. These variables are subsequently used by _LT_CONFIG to write +# the compiler configuration to `libtool'. +m4_defun([_LT_LANG_CXX_CONFIG], +[m4_require([_LT_FILEUTILS_DEFAULTS])dnl +m4_require([_LT_DECL_EGREP])dnl +m4_require([_LT_PATH_MANIFEST_TOOL])dnl +if test -n "$CXX" && ( test "X$CXX" != "Xno" && + ( (test "X$CXX" = "Xg++" && `g++ -v >/dev/null 2>&1` ) || + (test "X$CXX" != "Xg++"))) ; then + AC_PROG_CXXCPP +else + _lt_caught_CXX_error=yes +fi + +AC_LANG_PUSH(C++) +_LT_TAGVAR(archive_cmds_need_lc, $1)=no +_LT_TAGVAR(allow_undefined_flag, $1)= +_LT_TAGVAR(always_export_symbols, $1)=no +_LT_TAGVAR(archive_expsym_cmds, $1)= +_LT_TAGVAR(compiler_needs_object, $1)=no +_LT_TAGVAR(export_dynamic_flag_spec, $1)= +_LT_TAGVAR(hardcode_direct, $1)=no +_LT_TAGVAR(hardcode_direct_absolute, $1)=no +_LT_TAGVAR(hardcode_libdir_flag_spec, $1)= +_LT_TAGVAR(hardcode_libdir_separator, $1)= +_LT_TAGVAR(hardcode_minus_L, $1)=no +_LT_TAGVAR(hardcode_shlibpath_var, $1)=unsupported +_LT_TAGVAR(hardcode_automatic, $1)=no +_LT_TAGVAR(inherit_rpath, $1)=no +_LT_TAGVAR(module_cmds, $1)= +_LT_TAGVAR(module_expsym_cmds, $1)= +_LT_TAGVAR(link_all_deplibs, $1)=unknown +_LT_TAGVAR(old_archive_cmds, $1)=$old_archive_cmds +_LT_TAGVAR(reload_flag, $1)=$reload_flag +_LT_TAGVAR(reload_cmds, $1)=$reload_cmds +_LT_TAGVAR(no_undefined_flag, $1)= +_LT_TAGVAR(whole_archive_flag_spec, $1)= +_LT_TAGVAR(enable_shared_with_static_runtimes, $1)=no + +# Source file extension for C++ test sources. +ac_ext=cpp + +# Object file extension for compiled C++ test sources. +objext=o +_LT_TAGVAR(objext, $1)=$objext + +# No sense in running all these tests if we already determined that +# the CXX compiler isn't working. Some variables (like enable_shared) +# are currently assumed to apply to all compilers on this platform, +# and will be corrupted by setting them based on a non-working compiler. +if test "$_lt_caught_CXX_error" != yes; then + # Code to be used in simple compile tests + lt_simple_compile_test_code="int some_variable = 0;" + + # Code to be used in simple link tests + lt_simple_link_test_code='int main(int, char *[[]]) { return(0); }' + + # ltmain only uses $CC for tagged configurations so make sure $CC is set. + _LT_TAG_COMPILER + + # save warnings/boilerplate of simple test code + _LT_COMPILER_BOILERPLATE + _LT_LINKER_BOILERPLATE + + # Allow CC to be a program name with arguments. + lt_save_CC=$CC + lt_save_CFLAGS=$CFLAGS + lt_save_LD=$LD + lt_save_GCC=$GCC + GCC=$GXX + lt_save_with_gnu_ld=$with_gnu_ld + lt_save_path_LD=$lt_cv_path_LD + if test -n "${lt_cv_prog_gnu_ldcxx+set}"; then + lt_cv_prog_gnu_ld=$lt_cv_prog_gnu_ldcxx + else + $as_unset lt_cv_prog_gnu_ld + fi + if test -n "${lt_cv_path_LDCXX+set}"; then + lt_cv_path_LD=$lt_cv_path_LDCXX + else + $as_unset lt_cv_path_LD + fi + test -z "${LDCXX+set}" || LD=$LDCXX + CC=${CXX-"c++"} + CFLAGS=$CXXFLAGS + compiler=$CC + _LT_TAGVAR(compiler, $1)=$CC + _LT_CC_BASENAME([$compiler]) + + if test -n "$compiler"; then + # We don't want -fno-exception when compiling C++ code, so set the + # no_builtin_flag separately + if test "$GXX" = yes; then + _LT_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)=' -fno-builtin' + else + _LT_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)= + fi + + if test "$GXX" = yes; then + # Set up default GNU C++ configuration + + LT_PATH_LD + + # Check if GNU C++ uses GNU ld as the underlying linker, since the + # archiving commands below assume that GNU ld is being used. + if test "$with_gnu_ld" = yes; then + _LT_TAGVAR(archive_cmds, $1)='$CC $pic_flag -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname -o $lib' + _LT_TAGVAR(archive_expsym_cmds, $1)='$CC $pic_flag -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' + + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir' + _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}--export-dynamic' + + # If archive_cmds runs LD, not CC, wlarc should be empty + # XXX I think wlarc can be eliminated in ltcf-cxx, but I need to + # investigate it a little bit more. (MM) + wlarc='${wl}' + + # ancient GNU ld didn't support --whole-archive et. al. + if eval "`$CC -print-prog-name=ld` --help 2>&1" | + $GREP 'no-whole-archive' > /dev/null; then + _LT_TAGVAR(whole_archive_flag_spec, $1)="$wlarc"'--whole-archive$convenience '"$wlarc"'--no-whole-archive' + else + _LT_TAGVAR(whole_archive_flag_spec, $1)= + fi + else + with_gnu_ld=no + wlarc= + + # A generic and very simple default shared library creation + # command for GNU C++ for the case where it uses the native + # linker, instead of GNU ld. If possible, this setting should + # overridden to take advantage of the native linker features on + # the platform it is being used on. + _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $lib' + fi + + # Commands to make compiler produce verbose output that lists + # what "hidden" libraries, object files and flags are used when + # linking a shared library. + output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP -v "^Configured with:" | $GREP "\-L"' + + else + GXX=no + with_gnu_ld=no + wlarc= + fi + + # PORTME: fill in a description of your system's C++ link characteristics + AC_MSG_CHECKING([whether the $compiler linker ($LD) supports shared libraries]) + _LT_TAGVAR(ld_shlibs, $1)=yes + case $host_os in + aix3*) + # FIXME: insert proper C++ library support + _LT_TAGVAR(ld_shlibs, $1)=no + ;; + aix[[4-9]]*) + if test "$host_cpu" = ia64; then + # On IA64, the linker does run time linking by default, so we don't + # have to do anything special. + aix_use_runtimelinking=no + exp_sym_flag='-Bexport' + no_entry_flag="" + else + aix_use_runtimelinking=no + + # Test if we are trying to use run time linking or normal + # AIX style linking. If -brtl is somewhere in LDFLAGS, we + # need to do runtime linking. + case $host_os in aix4.[[23]]|aix4.[[23]].*|aix[[5-9]]*) + for ld_flag in $LDFLAGS; do + case $ld_flag in + *-brtl*) + aix_use_runtimelinking=yes + break + ;; + esac + done + ;; + esac + + exp_sym_flag='-bexport' + no_entry_flag='-bnoentry' + fi + + # When large executables or shared objects are built, AIX ld can + # have problems creating the table of contents. If linking a library + # or program results in "error TOC overflow" add -mminimal-toc to + # CXXFLAGS/CFLAGS for g++/gcc. In the cases where that is not + # enough to fix the problem, add -Wl,-bbigtoc to LDFLAGS. + + _LT_TAGVAR(archive_cmds, $1)='' + _LT_TAGVAR(hardcode_direct, $1)=yes + _LT_TAGVAR(hardcode_direct_absolute, $1)=yes + _LT_TAGVAR(hardcode_libdir_separator, $1)=':' + _LT_TAGVAR(link_all_deplibs, $1)=yes + _LT_TAGVAR(file_list_spec, $1)='${wl}-f,' + + if test "$GXX" = yes; then + case $host_os in aix4.[[012]]|aix4.[[012]].*) + # We only want to do this on AIX 4.2 and lower, the check + # below for broken collect2 doesn't work under 4.3+ + collect2name=`${CC} -print-prog-name=collect2` + if test -f "$collect2name" && + strings "$collect2name" | $GREP resolve_lib_name >/dev/null + then + # We have reworked collect2 + : + else + # We have old collect2 + _LT_TAGVAR(hardcode_direct, $1)=unsupported + # It fails to find uninstalled libraries when the uninstalled + # path is not listed in the libpath. Setting hardcode_minus_L + # to unsupported forces relinking + _LT_TAGVAR(hardcode_minus_L, $1)=yes + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' + _LT_TAGVAR(hardcode_libdir_separator, $1)= + fi + esac + shared_flag='-shared' + if test "$aix_use_runtimelinking" = yes; then + shared_flag="$shared_flag "'${wl}-G' + fi + else + # not using gcc + if test "$host_cpu" = ia64; then + # VisualAge C++, Version 5.5 for AIX 5L for IA-64, Beta 3 Release + # chokes on -Wl,-G. The following line is correct: + shared_flag='-G' + else + if test "$aix_use_runtimelinking" = yes; then + shared_flag='${wl}-G' + else + shared_flag='${wl}-bM:SRE' + fi + fi + fi + + _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-bexpall' + # It seems that -bexpall does not export symbols beginning with + # underscore (_), so it is better to generate a list of symbols to + # export. + _LT_TAGVAR(always_export_symbols, $1)=yes + if test "$aix_use_runtimelinking" = yes; then + # Warning - without using the other runtime loading flags (-brtl), + # -berok will link without error, but may produce a broken library. + _LT_TAGVAR(allow_undefined_flag, $1)='-berok' + # Determine the default libpath from the value encoded in an empty + # executable. + _LT_SYS_MODULE_PATH_AIX([$1]) + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-blibpath:$libdir:'"$aix_libpath" + + _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags `if test "x${allow_undefined_flag}" != "x"; then func_echo_all "${wl}${allow_undefined_flag}"; else :; fi` '"\${wl}$exp_sym_flag:\$export_symbols $shared_flag" + else + if test "$host_cpu" = ia64; then + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-R $libdir:/usr/lib:/lib' + _LT_TAGVAR(allow_undefined_flag, $1)="-z nodefs" + _LT_TAGVAR(archive_expsym_cmds, $1)="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags ${wl}${allow_undefined_flag} '"\${wl}$exp_sym_flag:\$export_symbols" + else + # Determine the default libpath from the value encoded in an + # empty executable. + _LT_SYS_MODULE_PATH_AIX([$1]) + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-blibpath:$libdir:'"$aix_libpath" + # Warning - without using the other run time loading flags, + # -berok will link without error, but may produce a broken library. + _LT_TAGVAR(no_undefined_flag, $1)=' ${wl}-bernotok' + _LT_TAGVAR(allow_undefined_flag, $1)=' ${wl}-berok' + if test "$with_gnu_ld" = yes; then + # We only use this code for GNU lds that support --whole-archive. + _LT_TAGVAR(whole_archive_flag_spec, $1)='${wl}--whole-archive$convenience ${wl}--no-whole-archive' + else + # Exported symbols can be pulled into shared objects from archives + _LT_TAGVAR(whole_archive_flag_spec, $1)='$convenience' + fi + _LT_TAGVAR(archive_cmds_need_lc, $1)=yes + # This is similar to how AIX traditionally builds its shared + # libraries. + _LT_TAGVAR(archive_expsym_cmds, $1)="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs ${wl}-bnoentry $compiler_flags ${wl}-bE:$export_symbols${allow_undefined_flag}~$AR $AR_FLAGS $output_objdir/$libname$release.a $output_objdir/$soname' + fi + fi + ;; + + beos*) + if $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then + _LT_TAGVAR(allow_undefined_flag, $1)=unsupported + # Joseph Beckenbach says some releases of gcc + # support --undefined. This deserves some investigation. FIXME + _LT_TAGVAR(archive_cmds, $1)='$CC -nostart $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' + else + _LT_TAGVAR(ld_shlibs, $1)=no + fi + ;; + + chorus*) + case $cc_basename in + *) + # FIXME: insert proper C++ library support + _LT_TAGVAR(ld_shlibs, $1)=no + ;; + esac + ;; + + cygwin* | mingw* | pw32* | cegcc*) + case $GXX,$cc_basename in + ,cl* | no,cl*) + # Native MSVC + # hardcode_libdir_flag_spec is actually meaningless, as there is + # no search path for DLLs. + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)=' ' + _LT_TAGVAR(allow_undefined_flag, $1)=unsupported + _LT_TAGVAR(always_export_symbols, $1)=yes + _LT_TAGVAR(file_list_spec, $1)='@' + # Tell ltmain to make .lib files, not .a files. + libext=lib + # Tell ltmain to make .dll files, not .so files. + shrext_cmds=".dll" + # FIXME: Setting linknames here is a bad hack. + _LT_TAGVAR(archive_cmds, $1)='$CC -o $output_objdir/$soname $libobjs $compiler_flags $deplibs -Wl,-dll~linknames=' + _LT_TAGVAR(archive_expsym_cmds, $1)='if test "x`$SED 1q $export_symbols`" = xEXPORTS; then + $SED -n -e 's/\\\\\\\(.*\\\\\\\)/-link\\\ -EXPORT:\\\\\\\1/' -e '1\\\!p' < $export_symbols > $output_objdir/$soname.exp; + else + $SED -e 's/\\\\\\\(.*\\\\\\\)/-link\\\ -EXPORT:\\\\\\\1/' < $export_symbols > $output_objdir/$soname.exp; + fi~ + $CC -o $tool_output_objdir$soname $libobjs $compiler_flags $deplibs "@$tool_output_objdir$soname.exp" -Wl,-DLL,-IMPLIB:"$tool_output_objdir$libname.dll.lib"~ + linknames=' + # The linker will not automatically build a static lib if we build a DLL. + # _LT_TAGVAR(old_archive_from_new_cmds, $1)='true' + _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=yes + # Don't use ranlib + _LT_TAGVAR(old_postinstall_cmds, $1)='chmod 644 $oldlib' + _LT_TAGVAR(postlink_cmds, $1)='lt_outputfile="@OUTPUT@"~ + lt_tool_outputfile="@TOOL_OUTPUT@"~ + case $lt_outputfile in + *.exe|*.EXE) ;; + *) + lt_outputfile="$lt_outputfile.exe" + lt_tool_outputfile="$lt_tool_outputfile.exe" + ;; + esac~ + func_to_tool_file "$lt_outputfile"~ + if test "$MANIFEST_TOOL" != ":" && test -f "$lt_outputfile.manifest"; then + $MANIFEST_TOOL -manifest "$lt_tool_outputfile.manifest" -outputresource:"$lt_tool_outputfile" || exit 1; + $RM "$lt_outputfile.manifest"; + fi' + ;; + *) + # g++ + # _LT_TAGVAR(hardcode_libdir_flag_spec, $1) is actually meaningless, + # as there is no search path for DLLs. + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' + _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}--export-all-symbols' + _LT_TAGVAR(allow_undefined_flag, $1)=unsupported + _LT_TAGVAR(always_export_symbols, $1)=no + _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=yes + + if $LD --help 2>&1 | $GREP 'auto-import' > /dev/null; then + _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib' + # If the export-symbols file already is a .def file (1st line + # is EXPORTS), use it as is; otherwise, prepend... + _LT_TAGVAR(archive_expsym_cmds, $1)='if test "x`$SED 1q $export_symbols`" = xEXPORTS; then + cp $export_symbols $output_objdir/$soname.def; + else + echo EXPORTS > $output_objdir/$soname.def; + cat $export_symbols >> $output_objdir/$soname.def; + fi~ + $CC -shared -nostdlib $output_objdir/$soname.def $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib' + else + _LT_TAGVAR(ld_shlibs, $1)=no + fi + ;; + esac + ;; + darwin* | rhapsody*) + _LT_DARWIN_LINKER_FEATURES($1) + ;; + + dgux*) + case $cc_basename in + ec++*) + # FIXME: insert proper C++ library support + _LT_TAGVAR(ld_shlibs, $1)=no + ;; + ghcx*) + # Green Hills C++ Compiler + # FIXME: insert proper C++ library support + _LT_TAGVAR(ld_shlibs, $1)=no + ;; + *) + # FIXME: insert proper C++ library support + _LT_TAGVAR(ld_shlibs, $1)=no + ;; + esac + ;; + + freebsd2.*) + # C++ shared libraries reported to be fairly broken before + # switch to ELF + _LT_TAGVAR(ld_shlibs, $1)=no + ;; + + freebsd-elf*) + _LT_TAGVAR(archive_cmds_need_lc, $1)=no + ;; + + freebsd* | dragonfly*) + # FreeBSD 3 and later use GNU C++ and GNU ld with standard ELF + # conventions + _LT_TAGVAR(ld_shlibs, $1)=yes + ;; + + haiku*) + _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' + _LT_TAGVAR(link_all_deplibs, $1)=yes + ;; + + hpux9*) + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}+b ${wl}$libdir' + _LT_TAGVAR(hardcode_libdir_separator, $1)=: + _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E' + _LT_TAGVAR(hardcode_direct, $1)=yes + _LT_TAGVAR(hardcode_minus_L, $1)=yes # Not in the search PATH, + # but as the default + # location of the library. + + case $cc_basename in + CC*) + # FIXME: insert proper C++ library support + _LT_TAGVAR(ld_shlibs, $1)=no + ;; + aCC*) + _LT_TAGVAR(archive_cmds, $1)='$RM $output_objdir/$soname~$CC -b ${wl}+b ${wl}$install_libdir -o $output_objdir/$soname $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib' + # Commands to make compiler produce verbose output that lists + # what "hidden" libraries, object files and flags are used when + # linking a shared library. + # + # There doesn't appear to be a way to prevent this compiler from + # explicitly linking system object files so we need to strip them + # from the output so that they don't get included in the library + # dependencies. + output_verbose_link_cmd='templist=`($CC -b $CFLAGS -v conftest.$objext 2>&1) | $EGREP "\-L"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; func_echo_all "$list"' + ;; + *) + if test "$GXX" = yes; then + _LT_TAGVAR(archive_cmds, $1)='$RM $output_objdir/$soname~$CC -shared -nostdlib $pic_flag ${wl}+b ${wl}$install_libdir -o $output_objdir/$soname $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib' + else + # FIXME: insert proper C++ library support + _LT_TAGVAR(ld_shlibs, $1)=no + fi + ;; + esac + ;; + + hpux10*|hpux11*) + if test $with_gnu_ld = no; then + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}+b ${wl}$libdir' + _LT_TAGVAR(hardcode_libdir_separator, $1)=: + + case $host_cpu in + hppa*64*|ia64*) + ;; + *) + _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E' + ;; + esac + fi + case $host_cpu in + hppa*64*|ia64*) + _LT_TAGVAR(hardcode_direct, $1)=no + _LT_TAGVAR(hardcode_shlibpath_var, $1)=no + ;; + *) + _LT_TAGVAR(hardcode_direct, $1)=yes + _LT_TAGVAR(hardcode_direct_absolute, $1)=yes + _LT_TAGVAR(hardcode_minus_L, $1)=yes # Not in the search PATH, + # but as the default + # location of the library. + ;; + esac + + case $cc_basename in + CC*) + # FIXME: insert proper C++ library support + _LT_TAGVAR(ld_shlibs, $1)=no + ;; + aCC*) + case $host_cpu in + hppa*64*) + _LT_TAGVAR(archive_cmds, $1)='$CC -b ${wl}+h ${wl}$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' + ;; + ia64*) + _LT_TAGVAR(archive_cmds, $1)='$CC -b ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' + ;; + *) + _LT_TAGVAR(archive_cmds, $1)='$CC -b ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' + ;; + esac + # Commands to make compiler produce verbose output that lists + # what "hidden" libraries, object files and flags are used when + # linking a shared library. + # + # There doesn't appear to be a way to prevent this compiler from + # explicitly linking system object files so we need to strip them + # from the output so that they don't get included in the library + # dependencies. + output_verbose_link_cmd='templist=`($CC -b $CFLAGS -v conftest.$objext 2>&1) | $GREP "\-L"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; func_echo_all "$list"' + ;; + *) + if test "$GXX" = yes; then + if test $with_gnu_ld = no; then + case $host_cpu in + hppa*64*) + _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib -fPIC ${wl}+h ${wl}$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' + ;; + ia64*) + _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $pic_flag ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' + ;; + *) + _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $pic_flag ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' + ;; + esac + fi + else + # FIXME: insert proper C++ library support + _LT_TAGVAR(ld_shlibs, $1)=no + fi + ;; + esac + ;; + + interix[[3-9]]*) + _LT_TAGVAR(hardcode_direct, $1)=no + _LT_TAGVAR(hardcode_shlibpath_var, $1)=no + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir' + _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E' + # Hack: On Interix 3.x, we cannot compile PIC because of a broken gcc. + # Instead, shared libraries are loaded at an image base (0x10000000 by + # default) and relocated if they conflict, which is a slow very memory + # consuming and fragmenting process. To avoid this, we pick a random, + # 256 KiB-aligned image base between 0x50000000 and 0x6FFC0000 at link + # time. Moving up from 0x10000000 also allows more sbrk(2) space. + _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-h,$soname ${wl}--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib' + _LT_TAGVAR(archive_expsym_cmds, $1)='sed "s,^,_," $export_symbols >$output_objdir/$soname.expsym~$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-h,$soname ${wl}--retain-symbols-file,$output_objdir/$soname.expsym ${wl}--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib' + ;; + irix5* | irix6*) + case $cc_basename in + CC*) + # SGI C++ + _LT_TAGVAR(archive_cmds, $1)='$CC -shared -all -multigot $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -o $lib' + + # Archives containing C++ object files must be created using + # "CC -ar", where "CC" is the IRIX C++ compiler. This is + # necessary to make sure instantiated templates are included + # in the archive. + _LT_TAGVAR(old_archive_cmds, $1)='$CC -ar -WR,-u -o $oldlib $oldobjs' + ;; + *) + if test "$GXX" = yes; then + if test "$with_gnu_ld" = no; then + _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' + else + _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` -o $lib' + fi + fi + _LT_TAGVAR(link_all_deplibs, $1)=yes + ;; + esac + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir' + _LT_TAGVAR(hardcode_libdir_separator, $1)=: + _LT_TAGVAR(inherit_rpath, $1)=yes + ;; + + linux* | k*bsd*-gnu | kopensolaris*-gnu | gnu*) + case $cc_basename in + KCC*) + # Kuck and Associates, Inc. (KAI) C++ Compiler + + # KCC will only create a shared library if the output file + # ends with ".so" (or ".sl" for HP-UX), so rename the library + # to its proper name (with version) after linking. + _LT_TAGVAR(archive_cmds, $1)='tempext=`echo $shared_ext | $SED -e '\''s/\([[^()0-9A-Za-z{}]]\)/\\\\\1/g'\''`; templib=`echo $lib | $SED -e "s/\${tempext}\..*/.so/"`; $CC $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags --soname $soname -o \$templib; mv \$templib $lib' + _LT_TAGVAR(archive_expsym_cmds, $1)='tempext=`echo $shared_ext | $SED -e '\''s/\([[^()0-9A-Za-z{}]]\)/\\\\\1/g'\''`; templib=`echo $lib | $SED -e "s/\${tempext}\..*/.so/"`; $CC $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags --soname $soname -o \$templib ${wl}-retain-symbols-file,$export_symbols; mv \$templib $lib' + # Commands to make compiler produce verbose output that lists + # what "hidden" libraries, object files and flags are used when + # linking a shared library. + # + # There doesn't appear to be a way to prevent this compiler from + # explicitly linking system object files so we need to strip them + # from the output so that they don't get included in the library + # dependencies. + output_verbose_link_cmd='templist=`$CC $CFLAGS -v conftest.$objext -o libconftest$shared_ext 2>&1 | $GREP "ld"`; rm -f libconftest$shared_ext; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; func_echo_all "$list"' + + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir' + _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}--export-dynamic' + + # Archives containing C++ object files must be created using + # "CC -Bstatic", where "CC" is the KAI C++ compiler. + _LT_TAGVAR(old_archive_cmds, $1)='$CC -Bstatic -o $oldlib $oldobjs' + ;; + icpc* | ecpc* ) + # Intel C++ + with_gnu_ld=yes + # version 8.0 and above of icpc choke on multiply defined symbols + # if we add $predep_objects and $postdep_objects, however 7.1 and + # earlier do not add the objects themselves. + case `$CC -V 2>&1` in + *"Version 7."*) + _LT_TAGVAR(archive_cmds, $1)='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname -o $lib' + _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' + ;; + *) # Version 8.0 or newer + tmp_idyn= + case $host_cpu in + ia64*) tmp_idyn=' -i_dynamic';; + esac + _LT_TAGVAR(archive_cmds, $1)='$CC -shared'"$tmp_idyn"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' + _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared'"$tmp_idyn"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' + ;; + esac + _LT_TAGVAR(archive_cmds_need_lc, $1)=no + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir' + _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}--export-dynamic' + _LT_TAGVAR(whole_archive_flag_spec, $1)='${wl}--whole-archive$convenience ${wl}--no-whole-archive' + ;; + pgCC* | pgcpp*) + # Portland Group C++ compiler + case `$CC -V` in + *pgCC\ [[1-5]].* | *pgcpp\ [[1-5]].*) + _LT_TAGVAR(prelink_cmds, $1)='tpldir=Template.dir~ + rm -rf $tpldir~ + $CC --prelink_objects --instantiation_dir $tpldir $objs $libobjs $compile_deplibs~ + compile_command="$compile_command `find $tpldir -name \*.o | sort | $NL2SP`"' + _LT_TAGVAR(old_archive_cmds, $1)='tpldir=Template.dir~ + rm -rf $tpldir~ + $CC --prelink_objects --instantiation_dir $tpldir $oldobjs$old_deplibs~ + $AR $AR_FLAGS $oldlib$oldobjs$old_deplibs `find $tpldir -name \*.o | sort | $NL2SP`~ + $RANLIB $oldlib' + _LT_TAGVAR(archive_cmds, $1)='tpldir=Template.dir~ + rm -rf $tpldir~ + $CC --prelink_objects --instantiation_dir $tpldir $predep_objects $libobjs $deplibs $convenience $postdep_objects~ + $CC -shared $pic_flag $predep_objects $libobjs $deplibs `find $tpldir -name \*.o | sort | $NL2SP` $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname -o $lib' + _LT_TAGVAR(archive_expsym_cmds, $1)='tpldir=Template.dir~ + rm -rf $tpldir~ + $CC --prelink_objects --instantiation_dir $tpldir $predep_objects $libobjs $deplibs $convenience $postdep_objects~ + $CC -shared $pic_flag $predep_objects $libobjs $deplibs `find $tpldir -name \*.o | sort | $NL2SP` $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname ${wl}-retain-symbols-file ${wl}$export_symbols -o $lib' + ;; + *) # Version 6 and above use weak symbols + _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname -o $lib' + _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname ${wl}-retain-symbols-file ${wl}$export_symbols -o $lib' + ;; + esac + + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}--rpath ${wl}$libdir' + _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}--export-dynamic' + _LT_TAGVAR(whole_archive_flag_spec, $1)='${wl}--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` ${wl}--no-whole-archive' + ;; + cxx*) + # Compaq C++ + _LT_TAGVAR(archive_cmds, $1)='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname -o $lib' + _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname -o $lib ${wl}-retain-symbols-file $wl$export_symbols' + + runpath_var=LD_RUN_PATH + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-rpath $libdir' + _LT_TAGVAR(hardcode_libdir_separator, $1)=: + + # Commands to make compiler produce verbose output that lists + # what "hidden" libraries, object files and flags are used when + # linking a shared library. + # + # There doesn't appear to be a way to prevent this compiler from + # explicitly linking system object files so we need to strip them + # from the output so that they don't get included in the library + # dependencies. + output_verbose_link_cmd='templist=`$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP "ld"`; templist=`func_echo_all "$templist" | $SED "s/\(^.*ld.*\)\( .*ld .*$\)/\1/"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; func_echo_all "X$list" | $Xsed' + ;; + xl* | mpixl* | bgxl*) + # IBM XL 8.0 on PPC, with GNU ld + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir' + _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}--export-dynamic' + _LT_TAGVAR(archive_cmds, $1)='$CC -qmkshrobj $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' + if test "x$supports_anon_versioning" = xyes; then + _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $output_objdir/$libname.ver~ + cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~ + echo "local: *; };" >> $output_objdir/$libname.ver~ + $CC -qmkshrobj $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-version-script ${wl}$output_objdir/$libname.ver -o $lib' + fi + ;; + *) + case `$CC -V 2>&1 | sed 5q` in + *Sun\ C*) + # Sun C++ 5.9 + _LT_TAGVAR(no_undefined_flag, $1)=' -zdefs' + _LT_TAGVAR(archive_cmds, $1)='$CC -G${allow_undefined_flag} -h$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' + _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -G${allow_undefined_flag} -h$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-retain-symbols-file ${wl}$export_symbols' + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir' + _LT_TAGVAR(whole_archive_flag_spec, $1)='${wl}--whole-archive`new_convenience=; for conv in $convenience\"\"; do test -z \"$conv\" || new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` ${wl}--no-whole-archive' + _LT_TAGVAR(compiler_needs_object, $1)=yes + + # Not sure whether something based on + # $CC $CFLAGS -v conftest.$objext -o libconftest$shared_ext 2>&1 + # would be better. + output_verbose_link_cmd='func_echo_all' + + # Archives containing C++ object files must be created using + # "CC -xar", where "CC" is the Sun C++ compiler. This is + # necessary to make sure instantiated templates are included + # in the archive. + _LT_TAGVAR(old_archive_cmds, $1)='$CC -xar -o $oldlib $oldobjs' + ;; + esac + ;; + esac + ;; + + lynxos*) + # FIXME: insert proper C++ library support + _LT_TAGVAR(ld_shlibs, $1)=no + ;; + + m88k*) + # FIXME: insert proper C++ library support + _LT_TAGVAR(ld_shlibs, $1)=no + ;; + + mvs*) + case $cc_basename in + cxx*) + # FIXME: insert proper C++ library support + _LT_TAGVAR(ld_shlibs, $1)=no + ;; + *) + # FIXME: insert proper C++ library support + _LT_TAGVAR(ld_shlibs, $1)=no + ;; + esac + ;; + + netbsd*) + if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then + _LT_TAGVAR(archive_cmds, $1)='$LD -Bshareable -o $lib $predep_objects $libobjs $deplibs $postdep_objects $linker_flags' + wlarc= + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir' + _LT_TAGVAR(hardcode_direct, $1)=yes + _LT_TAGVAR(hardcode_shlibpath_var, $1)=no + fi + # Workaround some broken pre-1.5 toolchains + output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP conftest.$objext | $SED -e "s:-lgcc -lc -lgcc::"' + ;; + + *nto* | *qnx*) + _LT_TAGVAR(ld_shlibs, $1)=yes + ;; + + openbsd2*) + # C++ shared libraries are fairly broken + _LT_TAGVAR(ld_shlibs, $1)=no + ;; + + openbsd*) + if test -f /usr/libexec/ld.so; then + _LT_TAGVAR(hardcode_direct, $1)=yes + _LT_TAGVAR(hardcode_shlibpath_var, $1)=no + _LT_TAGVAR(hardcode_direct_absolute, $1)=yes + _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $lib' + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir' + if test -z "`echo __ELF__ | $CC -E - | grep __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then + _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-retain-symbols-file,$export_symbols -o $lib' + _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E' + _LT_TAGVAR(whole_archive_flag_spec, $1)="$wlarc"'--whole-archive$convenience '"$wlarc"'--no-whole-archive' + fi + output_verbose_link_cmd=func_echo_all + else + _LT_TAGVAR(ld_shlibs, $1)=no + fi + ;; + + osf3* | osf4* | osf5*) + case $cc_basename in + KCC*) + # Kuck and Associates, Inc. (KAI) C++ Compiler + + # KCC will only create a shared library if the output file + # ends with ".so" (or ".sl" for HP-UX), so rename the library + # to its proper name (with version) after linking. + _LT_TAGVAR(archive_cmds, $1)='tempext=`echo $shared_ext | $SED -e '\''s/\([[^()0-9A-Za-z{}]]\)/\\\\\1/g'\''`; templib=`echo "$lib" | $SED -e "s/\${tempext}\..*/.so/"`; $CC $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags --soname $soname -o \$templib; mv \$templib $lib' + + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir' + _LT_TAGVAR(hardcode_libdir_separator, $1)=: + + # Archives containing C++ object files must be created using + # the KAI C++ compiler. + case $host in + osf3*) _LT_TAGVAR(old_archive_cmds, $1)='$CC -Bstatic -o $oldlib $oldobjs' ;; + *) _LT_TAGVAR(old_archive_cmds, $1)='$CC -o $oldlib $oldobjs' ;; + esac + ;; + RCC*) + # Rational C++ 2.4.1 + # FIXME: insert proper C++ library support + _LT_TAGVAR(ld_shlibs, $1)=no + ;; + cxx*) + case $host in + osf3*) + _LT_TAGVAR(allow_undefined_flag, $1)=' ${wl}-expect_unresolved ${wl}\*' + _LT_TAGVAR(archive_cmds, $1)='$CC -shared${allow_undefined_flag} $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $soname `test -n "$verstring" && func_echo_all "${wl}-set_version $verstring"` -update_registry ${output_objdir}/so_locations -o $lib' + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir' + ;; + *) + _LT_TAGVAR(allow_undefined_flag, $1)=' -expect_unresolved \*' + _LT_TAGVAR(archive_cmds, $1)='$CC -shared${allow_undefined_flag} $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -msym -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -o $lib' + _LT_TAGVAR(archive_expsym_cmds, $1)='for i in `cat $export_symbols`; do printf "%s %s\\n" -exported_symbol "\$i" >> $lib.exp; done~ + echo "-hidden">> $lib.exp~ + $CC -shared$allow_undefined_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -msym -soname $soname ${wl}-input ${wl}$lib.exp `test -n "$verstring" && $ECHO "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -o $lib~ + $RM $lib.exp' + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-rpath $libdir' + ;; + esac + + _LT_TAGVAR(hardcode_libdir_separator, $1)=: + + # Commands to make compiler produce verbose output that lists + # what "hidden" libraries, object files and flags are used when + # linking a shared library. + # + # There doesn't appear to be a way to prevent this compiler from + # explicitly linking system object files so we need to strip them + # from the output so that they don't get included in the library + # dependencies. + output_verbose_link_cmd='templist=`$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP "ld" | $GREP -v "ld:"`; templist=`func_echo_all "$templist" | $SED "s/\(^.*ld.*\)\( .*ld.*$\)/\1/"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; func_echo_all "$list"' + ;; + *) + if test "$GXX" = yes && test "$with_gnu_ld" = no; then + _LT_TAGVAR(allow_undefined_flag, $1)=' ${wl}-expect_unresolved ${wl}\*' + case $host in + osf3*) + _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib ${allow_undefined_flag} $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' + ;; + *) + _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag -nostdlib ${allow_undefined_flag} $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-msym ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' + ;; + esac + + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir' + _LT_TAGVAR(hardcode_libdir_separator, $1)=: + + # Commands to make compiler produce verbose output that lists + # what "hidden" libraries, object files and flags are used when + # linking a shared library. + output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP -v "^Configured with:" | $GREP "\-L"' + + else + # FIXME: insert proper C++ library support + _LT_TAGVAR(ld_shlibs, $1)=no + fi + ;; + esac + ;; + + psos*) + # FIXME: insert proper C++ library support + _LT_TAGVAR(ld_shlibs, $1)=no + ;; + + sunos4*) + case $cc_basename in + CC*) + # Sun C++ 4.x + # FIXME: insert proper C++ library support + _LT_TAGVAR(ld_shlibs, $1)=no + ;; + lcc*) + # Lucid + # FIXME: insert proper C++ library support + _LT_TAGVAR(ld_shlibs, $1)=no + ;; + *) + # FIXME: insert proper C++ library support + _LT_TAGVAR(ld_shlibs, $1)=no + ;; + esac + ;; + + solaris*) + case $cc_basename in + CC* | sunCC*) + # Sun C++ 4.2, 5.x and Centerline C++ + _LT_TAGVAR(archive_cmds_need_lc,$1)=yes + _LT_TAGVAR(no_undefined_flag, $1)=' -zdefs' + _LT_TAGVAR(archive_cmds, $1)='$CC -G${allow_undefined_flag} -h$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' + _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~ + $CC -G${allow_undefined_flag} ${wl}-M ${wl}$lib.exp -h$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~$RM $lib.exp' + + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir' + _LT_TAGVAR(hardcode_shlibpath_var, $1)=no + case $host_os in + solaris2.[[0-5]] | solaris2.[[0-5]].*) ;; + *) + # The compiler driver will combine and reorder linker options, + # but understands `-z linker_flag'. + # Supported since Solaris 2.6 (maybe 2.5.1?) + _LT_TAGVAR(whole_archive_flag_spec, $1)='-z allextract$convenience -z defaultextract' + ;; + esac + _LT_TAGVAR(link_all_deplibs, $1)=yes + + output_verbose_link_cmd='func_echo_all' + + # Archives containing C++ object files must be created using + # "CC -xar", where "CC" is the Sun C++ compiler. This is + # necessary to make sure instantiated templates are included + # in the archive. + _LT_TAGVAR(old_archive_cmds, $1)='$CC -xar -o $oldlib $oldobjs' + ;; + gcx*) + # Green Hills C++ Compiler + _LT_TAGVAR(archive_cmds, $1)='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-h $wl$soname -o $lib' + + # The C++ compiler must be used to create the archive. + _LT_TAGVAR(old_archive_cmds, $1)='$CC $LDFLAGS -archive -o $oldlib $oldobjs' + ;; + *) + # GNU C++ compiler with Solaris linker + if test "$GXX" = yes && test "$with_gnu_ld" = no; then + _LT_TAGVAR(no_undefined_flag, $1)=' ${wl}-z ${wl}defs' + if $CC --version | $GREP -v '^2\.7' > /dev/null; then + _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag -nostdlib $LDFLAGS $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-h $wl$soname -o $lib' + _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~ + $CC -shared $pic_flag -nostdlib ${wl}-M $wl$lib.exp -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~$RM $lib.exp' + + # Commands to make compiler produce verbose output that lists + # what "hidden" libraries, object files and flags are used when + # linking a shared library. + output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP -v "^Configured with:" | $GREP "\-L"' + else + # g++ 2.7 appears to require `-G' NOT `-shared' on this + # platform. + _LT_TAGVAR(archive_cmds, $1)='$CC -G -nostdlib $LDFLAGS $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-h $wl$soname -o $lib' + _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~ + $CC -G -nostdlib ${wl}-M $wl$lib.exp -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~$RM $lib.exp' + + # Commands to make compiler produce verbose output that lists + # what "hidden" libraries, object files and flags are used when + # linking a shared library. + output_verbose_link_cmd='$CC -G $CFLAGS -v conftest.$objext 2>&1 | $GREP -v "^Configured with:" | $GREP "\-L"' + fi + + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-R $wl$libdir' + case $host_os in + solaris2.[[0-5]] | solaris2.[[0-5]].*) ;; + *) + _LT_TAGVAR(whole_archive_flag_spec, $1)='${wl}-z ${wl}allextract$convenience ${wl}-z ${wl}defaultextract' + ;; + esac + fi + ;; + esac + ;; + + sysv4*uw2* | sysv5OpenUNIX* | sysv5UnixWare7.[[01]].[[10]]* | unixware7* | sco3.2v5.0.[[024]]*) + _LT_TAGVAR(no_undefined_flag, $1)='${wl}-z,text' + _LT_TAGVAR(archive_cmds_need_lc, $1)=no + _LT_TAGVAR(hardcode_shlibpath_var, $1)=no + runpath_var='LD_RUN_PATH' + + case $cc_basename in + CC*) + _LT_TAGVAR(archive_cmds, $1)='$CC -G ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' + _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -G ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' + ;; + *) + _LT_TAGVAR(archive_cmds, $1)='$CC -shared ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' + _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' + ;; + esac + ;; + + sysv5* | sco3.2v5* | sco5v6*) + # Note: We can NOT use -z defs as we might desire, because we do not + # link with -lc, and that would cause any symbols used from libc to + # always be unresolved, which means just about no library would + # ever link correctly. If we're not using GNU ld we use -z text + # though, which does catch some bad symbols but isn't as heavy-handed + # as -z defs. + _LT_TAGVAR(no_undefined_flag, $1)='${wl}-z,text' + _LT_TAGVAR(allow_undefined_flag, $1)='${wl}-z,nodefs' + _LT_TAGVAR(archive_cmds_need_lc, $1)=no + _LT_TAGVAR(hardcode_shlibpath_var, $1)=no + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-R,$libdir' + _LT_TAGVAR(hardcode_libdir_separator, $1)=':' + _LT_TAGVAR(link_all_deplibs, $1)=yes + _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-Bexport' + runpath_var='LD_RUN_PATH' + + case $cc_basename in + CC*) + _LT_TAGVAR(archive_cmds, $1)='$CC -G ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' + _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -G ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' + _LT_TAGVAR(old_archive_cmds, $1)='$CC -Tprelink_objects $oldobjs~ + '"$_LT_TAGVAR(old_archive_cmds, $1)" + _LT_TAGVAR(reload_cmds, $1)='$CC -Tprelink_objects $reload_objs~ + '"$_LT_TAGVAR(reload_cmds, $1)" + ;; + *) + _LT_TAGVAR(archive_cmds, $1)='$CC -shared ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' + _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' + ;; + esac + ;; + + tandem*) + case $cc_basename in + NCC*) + # NonStop-UX NCC 3.20 + # FIXME: insert proper C++ library support + _LT_TAGVAR(ld_shlibs, $1)=no + ;; + *) + # FIXME: insert proper C++ library support + _LT_TAGVAR(ld_shlibs, $1)=no + ;; + esac + ;; + + vxworks*) + # FIXME: insert proper C++ library support + _LT_TAGVAR(ld_shlibs, $1)=no + ;; + + *) + # FIXME: insert proper C++ library support + _LT_TAGVAR(ld_shlibs, $1)=no + ;; + esac + + AC_MSG_RESULT([$_LT_TAGVAR(ld_shlibs, $1)]) + test "$_LT_TAGVAR(ld_shlibs, $1)" = no && can_build_shared=no + + _LT_TAGVAR(GCC, $1)="$GXX" + _LT_TAGVAR(LD, $1)="$LD" + + ## CAVEAT EMPTOR: + ## There is no encapsulation within the following macros, do not change + ## the running order or otherwise move them around unless you know exactly + ## what you are doing... + _LT_SYS_HIDDEN_LIBDEPS($1) + _LT_COMPILER_PIC($1) + _LT_COMPILER_C_O($1) + _LT_COMPILER_FILE_LOCKS($1) + _LT_LINKER_SHLIBS($1) + _LT_SYS_DYNAMIC_LINKER($1) + _LT_LINKER_HARDCODE_LIBPATH($1) + + _LT_CONFIG($1) + fi # test -n "$compiler" + + CC=$lt_save_CC + CFLAGS=$lt_save_CFLAGS + LDCXX=$LD + LD=$lt_save_LD + GCC=$lt_save_GCC + with_gnu_ld=$lt_save_with_gnu_ld + lt_cv_path_LDCXX=$lt_cv_path_LD + lt_cv_path_LD=$lt_save_path_LD + lt_cv_prog_gnu_ldcxx=$lt_cv_prog_gnu_ld + lt_cv_prog_gnu_ld=$lt_save_with_gnu_ld +fi # test "$_lt_caught_CXX_error" != yes + +AC_LANG_POP +])# _LT_LANG_CXX_CONFIG + + +# _LT_FUNC_STRIPNAME_CNF +# ---------------------- +# func_stripname_cnf prefix suffix name +# strip PREFIX and SUFFIX off of NAME. +# PREFIX and SUFFIX must not contain globbing or regex special +# characters, hashes, percent signs, but SUFFIX may contain a leading +# dot (in which case that matches only a dot). +# +# This function is identical to the (non-XSI) version of func_stripname, +# except this one can be used by m4 code that may be executed by configure, +# rather than the libtool script. +m4_defun([_LT_FUNC_STRIPNAME_CNF],[dnl +AC_REQUIRE([_LT_DECL_SED]) +AC_REQUIRE([_LT_PROG_ECHO_BACKSLASH]) +func_stripname_cnf () +{ + case ${2} in + .*) func_stripname_result=`$ECHO "${3}" | $SED "s%^${1}%%; s%\\\\${2}\$%%"`;; + *) func_stripname_result=`$ECHO "${3}" | $SED "s%^${1}%%; s%${2}\$%%"`;; + esac +} # func_stripname_cnf +])# _LT_FUNC_STRIPNAME_CNF + +# _LT_SYS_HIDDEN_LIBDEPS([TAGNAME]) +# --------------------------------- +# Figure out "hidden" library dependencies from verbose +# compiler output when linking a shared library. +# Parse the compiler output and extract the necessary +# objects, libraries and library flags. +m4_defun([_LT_SYS_HIDDEN_LIBDEPS], +[m4_require([_LT_FILEUTILS_DEFAULTS])dnl +AC_REQUIRE([_LT_FUNC_STRIPNAME_CNF])dnl +# Dependencies to place before and after the object being linked: +_LT_TAGVAR(predep_objects, $1)= +_LT_TAGVAR(postdep_objects, $1)= +_LT_TAGVAR(predeps, $1)= +_LT_TAGVAR(postdeps, $1)= +_LT_TAGVAR(compiler_lib_search_path, $1)= + +dnl we can't use the lt_simple_compile_test_code here, +dnl because it contains code intended for an executable, +dnl not a library. It's possible we should let each +dnl tag define a new lt_????_link_test_code variable, +dnl but it's only used here... +m4_if([$1], [], [cat > conftest.$ac_ext <<_LT_EOF +int a; +void foo (void) { a = 0; } +_LT_EOF +], [$1], [CXX], [cat > conftest.$ac_ext <<_LT_EOF +class Foo +{ +public: + Foo (void) { a = 0; } +private: + int a; +}; +_LT_EOF +], [$1], [F77], [cat > conftest.$ac_ext <<_LT_EOF + subroutine foo + implicit none + integer*4 a + a=0 + return + end +_LT_EOF +], [$1], [FC], [cat > conftest.$ac_ext <<_LT_EOF + subroutine foo + implicit none + integer a + a=0 + return + end +_LT_EOF +], [$1], [GCJ], [cat > conftest.$ac_ext <<_LT_EOF +public class foo { + private int a; + public void bar (void) { + a = 0; + } +}; +_LT_EOF +], [$1], [GO], [cat > conftest.$ac_ext <<_LT_EOF +package foo +func foo() { +} +_LT_EOF +]) + +_lt_libdeps_save_CFLAGS=$CFLAGS +case "$CC $CFLAGS " in #( +*\ -flto*\ *) CFLAGS="$CFLAGS -fno-lto" ;; +*\ -fwhopr*\ *) CFLAGS="$CFLAGS -fno-whopr" ;; +*\ -fuse-linker-plugin*\ *) CFLAGS="$CFLAGS -fno-use-linker-plugin" ;; +esac + +dnl Parse the compiler output and extract the necessary +dnl objects, libraries and library flags. +if AC_TRY_EVAL(ac_compile); then + # Parse the compiler output and extract the necessary + # objects, libraries and library flags. + + # Sentinel used to keep track of whether or not we are before + # the conftest object file. + pre_test_object_deps_done=no + + for p in `eval "$output_verbose_link_cmd"`; do + case ${prev}${p} in + + -L* | -R* | -l*) + # Some compilers place space between "-{L,R}" and the path. + # Remove the space. + if test $p = "-L" || + test $p = "-R"; then + prev=$p + continue + fi + + # Expand the sysroot to ease extracting the directories later. + if test -z "$prev"; then + case $p in + -L*) func_stripname_cnf '-L' '' "$p"; prev=-L; p=$func_stripname_result ;; + -R*) func_stripname_cnf '-R' '' "$p"; prev=-R; p=$func_stripname_result ;; + -l*) func_stripname_cnf '-l' '' "$p"; prev=-l; p=$func_stripname_result ;; + esac + fi + case $p in + =*) func_stripname_cnf '=' '' "$p"; p=$lt_sysroot$func_stripname_result ;; + esac + if test "$pre_test_object_deps_done" = no; then + case ${prev} in + -L | -R) + # Internal compiler library paths should come after those + # provided the user. The postdeps already come after the + # user supplied libs so there is no need to process them. + if test -z "$_LT_TAGVAR(compiler_lib_search_path, $1)"; then + _LT_TAGVAR(compiler_lib_search_path, $1)="${prev}${p}" + else + _LT_TAGVAR(compiler_lib_search_path, $1)="${_LT_TAGVAR(compiler_lib_search_path, $1)} ${prev}${p}" + fi + ;; + # The "-l" case would never come before the object being + # linked, so don't bother handling this case. + esac + else + if test -z "$_LT_TAGVAR(postdeps, $1)"; then + _LT_TAGVAR(postdeps, $1)="${prev}${p}" + else + _LT_TAGVAR(postdeps, $1)="${_LT_TAGVAR(postdeps, $1)} ${prev}${p}" + fi + fi + prev= + ;; + + *.lto.$objext) ;; # Ignore GCC LTO objects + *.$objext) + # This assumes that the test object file only shows up + # once in the compiler output. + if test "$p" = "conftest.$objext"; then + pre_test_object_deps_done=yes + continue + fi + + if test "$pre_test_object_deps_done" = no; then + if test -z "$_LT_TAGVAR(predep_objects, $1)"; then + _LT_TAGVAR(predep_objects, $1)="$p" + else + _LT_TAGVAR(predep_objects, $1)="$_LT_TAGVAR(predep_objects, $1) $p" + fi + else + if test -z "$_LT_TAGVAR(postdep_objects, $1)"; then + _LT_TAGVAR(postdep_objects, $1)="$p" + else + _LT_TAGVAR(postdep_objects, $1)="$_LT_TAGVAR(postdep_objects, $1) $p" + fi + fi + ;; + + *) ;; # Ignore the rest. + + esac + done + + # Clean up. + rm -f a.out a.exe +else + echo "libtool.m4: error: problem compiling $1 test program" +fi + +$RM -f confest.$objext +CFLAGS=$_lt_libdeps_save_CFLAGS + +# PORTME: override above test on systems where it is broken +m4_if([$1], [CXX], +[case $host_os in +interix[[3-9]]*) + # Interix 3.5 installs completely hosed .la files for C++, so rather than + # hack all around it, let's just trust "g++" to DTRT. + _LT_TAGVAR(predep_objects,$1)= + _LT_TAGVAR(postdep_objects,$1)= + _LT_TAGVAR(postdeps,$1)= + ;; + +linux*) + case `$CC -V 2>&1 | sed 5q` in + *Sun\ C*) + # Sun C++ 5.9 + + # The more standards-conforming stlport4 library is + # incompatible with the Cstd library. Avoid specifying + # it if it's in CXXFLAGS. Ignore libCrun as + # -library=stlport4 depends on it. + case " $CXX $CXXFLAGS " in + *" -library=stlport4 "*) + solaris_use_stlport4=yes + ;; + esac + + if test "$solaris_use_stlport4" != yes; then + _LT_TAGVAR(postdeps,$1)='-library=Cstd -library=Crun' + fi + ;; + esac + ;; + +solaris*) + case $cc_basename in + CC* | sunCC*) + # The more standards-conforming stlport4 library is + # incompatible with the Cstd library. Avoid specifying + # it if it's in CXXFLAGS. Ignore libCrun as + # -library=stlport4 depends on it. + case " $CXX $CXXFLAGS " in + *" -library=stlport4 "*) + solaris_use_stlport4=yes + ;; + esac + + # Adding this requires a known-good setup of shared libraries for + # Sun compiler versions before 5.6, else PIC objects from an old + # archive will be linked into the output, leading to subtle bugs. + if test "$solaris_use_stlport4" != yes; then + _LT_TAGVAR(postdeps,$1)='-library=Cstd -library=Crun' + fi + ;; + esac + ;; +esac +]) + +case " $_LT_TAGVAR(postdeps, $1) " in +*" -lc "*) _LT_TAGVAR(archive_cmds_need_lc, $1)=no ;; +esac + _LT_TAGVAR(compiler_lib_search_dirs, $1)= +if test -n "${_LT_TAGVAR(compiler_lib_search_path, $1)}"; then + _LT_TAGVAR(compiler_lib_search_dirs, $1)=`echo " ${_LT_TAGVAR(compiler_lib_search_path, $1)}" | ${SED} -e 's! -L! !g' -e 's!^ !!'` +fi +_LT_TAGDECL([], [compiler_lib_search_dirs], [1], + [The directories searched by this compiler when creating a shared library]) +_LT_TAGDECL([], [predep_objects], [1], + [Dependencies to place before and after the objects being linked to + create a shared library]) +_LT_TAGDECL([], [postdep_objects], [1]) +_LT_TAGDECL([], [predeps], [1]) +_LT_TAGDECL([], [postdeps], [1]) +_LT_TAGDECL([], [compiler_lib_search_path], [1], + [The library search path used internally by the compiler when linking + a shared library]) +])# _LT_SYS_HIDDEN_LIBDEPS + + +# _LT_LANG_F77_CONFIG([TAG]) +# -------------------------- +# Ensure that the configuration variables for a Fortran 77 compiler are +# suitably defined. These variables are subsequently used by _LT_CONFIG +# to write the compiler configuration to `libtool'. +m4_defun([_LT_LANG_F77_CONFIG], +[AC_LANG_PUSH(Fortran 77) +if test -z "$F77" || test "X$F77" = "Xno"; then + _lt_disable_F77=yes +fi + +_LT_TAGVAR(archive_cmds_need_lc, $1)=no +_LT_TAGVAR(allow_undefined_flag, $1)= +_LT_TAGVAR(always_export_symbols, $1)=no +_LT_TAGVAR(archive_expsym_cmds, $1)= +_LT_TAGVAR(export_dynamic_flag_spec, $1)= +_LT_TAGVAR(hardcode_direct, $1)=no +_LT_TAGVAR(hardcode_direct_absolute, $1)=no +_LT_TAGVAR(hardcode_libdir_flag_spec, $1)= +_LT_TAGVAR(hardcode_libdir_separator, $1)= +_LT_TAGVAR(hardcode_minus_L, $1)=no +_LT_TAGVAR(hardcode_automatic, $1)=no +_LT_TAGVAR(inherit_rpath, $1)=no +_LT_TAGVAR(module_cmds, $1)= +_LT_TAGVAR(module_expsym_cmds, $1)= +_LT_TAGVAR(link_all_deplibs, $1)=unknown +_LT_TAGVAR(old_archive_cmds, $1)=$old_archive_cmds +_LT_TAGVAR(reload_flag, $1)=$reload_flag +_LT_TAGVAR(reload_cmds, $1)=$reload_cmds +_LT_TAGVAR(no_undefined_flag, $1)= +_LT_TAGVAR(whole_archive_flag_spec, $1)= +_LT_TAGVAR(enable_shared_with_static_runtimes, $1)=no + +# Source file extension for f77 test sources. +ac_ext=f + +# Object file extension for compiled f77 test sources. +objext=o +_LT_TAGVAR(objext, $1)=$objext + +# No sense in running all these tests if we already determined that +# the F77 compiler isn't working. Some variables (like enable_shared) +# are currently assumed to apply to all compilers on this platform, +# and will be corrupted by setting them based on a non-working compiler. +if test "$_lt_disable_F77" != yes; then + # Code to be used in simple compile tests + lt_simple_compile_test_code="\ + subroutine t + return + end +" + + # Code to be used in simple link tests + lt_simple_link_test_code="\ + program t + end +" + + # ltmain only uses $CC for tagged configurations so make sure $CC is set. + _LT_TAG_COMPILER + + # save warnings/boilerplate of simple test code + _LT_COMPILER_BOILERPLATE + _LT_LINKER_BOILERPLATE + + # Allow CC to be a program name with arguments. + lt_save_CC="$CC" + lt_save_GCC=$GCC + lt_save_CFLAGS=$CFLAGS + CC=${F77-"f77"} + CFLAGS=$FFLAGS + compiler=$CC + _LT_TAGVAR(compiler, $1)=$CC + _LT_CC_BASENAME([$compiler]) + GCC=$G77 + if test -n "$compiler"; then + AC_MSG_CHECKING([if libtool supports shared libraries]) + AC_MSG_RESULT([$can_build_shared]) + + AC_MSG_CHECKING([whether to build shared libraries]) + test "$can_build_shared" = "no" && enable_shared=no + + # On AIX, shared libraries and static libraries use the same namespace, and + # are all built from PIC. + case $host_os in + aix3*) + test "$enable_shared" = yes && enable_static=no + if test -n "$RANLIB"; then + archive_cmds="$archive_cmds~\$RANLIB \$lib" + postinstall_cmds='$RANLIB $lib' + fi + ;; + aix[[4-9]]*) + if test "$host_cpu" != ia64 && test "$aix_use_runtimelinking" = no ; then + test "$enable_shared" = yes && enable_static=no + fi + ;; + esac + AC_MSG_RESULT([$enable_shared]) + + AC_MSG_CHECKING([whether to build static libraries]) + # Make sure either enable_shared or enable_static is yes. + test "$enable_shared" = yes || enable_static=yes + AC_MSG_RESULT([$enable_static]) + + _LT_TAGVAR(GCC, $1)="$G77" + _LT_TAGVAR(LD, $1)="$LD" + + ## CAVEAT EMPTOR: + ## There is no encapsulation within the following macros, do not change + ## the running order or otherwise move them around unless you know exactly + ## what you are doing... + _LT_COMPILER_PIC($1) + _LT_COMPILER_C_O($1) + _LT_COMPILER_FILE_LOCKS($1) + _LT_LINKER_SHLIBS($1) + _LT_SYS_DYNAMIC_LINKER($1) + _LT_LINKER_HARDCODE_LIBPATH($1) + + _LT_CONFIG($1) + fi # test -n "$compiler" + + GCC=$lt_save_GCC + CC="$lt_save_CC" + CFLAGS="$lt_save_CFLAGS" +fi # test "$_lt_disable_F77" != yes + +AC_LANG_POP +])# _LT_LANG_F77_CONFIG + + +# _LT_LANG_FC_CONFIG([TAG]) +# ------------------------- +# Ensure that the configuration variables for a Fortran compiler are +# suitably defined. These variables are subsequently used by _LT_CONFIG +# to write the compiler configuration to `libtool'. +m4_defun([_LT_LANG_FC_CONFIG], +[AC_LANG_PUSH(Fortran) + +if test -z "$FC" || test "X$FC" = "Xno"; then + _lt_disable_FC=yes +fi + +_LT_TAGVAR(archive_cmds_need_lc, $1)=no +_LT_TAGVAR(allow_undefined_flag, $1)= +_LT_TAGVAR(always_export_symbols, $1)=no +_LT_TAGVAR(archive_expsym_cmds, $1)= +_LT_TAGVAR(export_dynamic_flag_spec, $1)= +_LT_TAGVAR(hardcode_direct, $1)=no +_LT_TAGVAR(hardcode_direct_absolute, $1)=no +_LT_TAGVAR(hardcode_libdir_flag_spec, $1)= +_LT_TAGVAR(hardcode_libdir_separator, $1)= +_LT_TAGVAR(hardcode_minus_L, $1)=no +_LT_TAGVAR(hardcode_automatic, $1)=no +_LT_TAGVAR(inherit_rpath, $1)=no +_LT_TAGVAR(module_cmds, $1)= +_LT_TAGVAR(module_expsym_cmds, $1)= +_LT_TAGVAR(link_all_deplibs, $1)=unknown +_LT_TAGVAR(old_archive_cmds, $1)=$old_archive_cmds +_LT_TAGVAR(reload_flag, $1)=$reload_flag +_LT_TAGVAR(reload_cmds, $1)=$reload_cmds +_LT_TAGVAR(no_undefined_flag, $1)= +_LT_TAGVAR(whole_archive_flag_spec, $1)= +_LT_TAGVAR(enable_shared_with_static_runtimes, $1)=no + +# Source file extension for fc test sources. +ac_ext=${ac_fc_srcext-f} + +# Object file extension for compiled fc test sources. +objext=o +_LT_TAGVAR(objext, $1)=$objext + +# No sense in running all these tests if we already determined that +# the FC compiler isn't working. Some variables (like enable_shared) +# are currently assumed to apply to all compilers on this platform, +# and will be corrupted by setting them based on a non-working compiler. +if test "$_lt_disable_FC" != yes; then + # Code to be used in simple compile tests + lt_simple_compile_test_code="\ + subroutine t + return + end +" + + # Code to be used in simple link tests + lt_simple_link_test_code="\ + program t + end +" + + # ltmain only uses $CC for tagged configurations so make sure $CC is set. + _LT_TAG_COMPILER + + # save warnings/boilerplate of simple test code + _LT_COMPILER_BOILERPLATE + _LT_LINKER_BOILERPLATE + + # Allow CC to be a program name with arguments. + lt_save_CC="$CC" + lt_save_GCC=$GCC + lt_save_CFLAGS=$CFLAGS + CC=${FC-"f95"} + CFLAGS=$FCFLAGS + compiler=$CC + GCC=$ac_cv_fc_compiler_gnu + + _LT_TAGVAR(compiler, $1)=$CC + _LT_CC_BASENAME([$compiler]) + + if test -n "$compiler"; then + AC_MSG_CHECKING([if libtool supports shared libraries]) + AC_MSG_RESULT([$can_build_shared]) + + AC_MSG_CHECKING([whether to build shared libraries]) + test "$can_build_shared" = "no" && enable_shared=no + + # On AIX, shared libraries and static libraries use the same namespace, and + # are all built from PIC. + case $host_os in + aix3*) + test "$enable_shared" = yes && enable_static=no + if test -n "$RANLIB"; then + archive_cmds="$archive_cmds~\$RANLIB \$lib" + postinstall_cmds='$RANLIB $lib' + fi + ;; + aix[[4-9]]*) + if test "$host_cpu" != ia64 && test "$aix_use_runtimelinking" = no ; then + test "$enable_shared" = yes && enable_static=no + fi + ;; + esac + AC_MSG_RESULT([$enable_shared]) + + AC_MSG_CHECKING([whether to build static libraries]) + # Make sure either enable_shared or enable_static is yes. + test "$enable_shared" = yes || enable_static=yes + AC_MSG_RESULT([$enable_static]) + + _LT_TAGVAR(GCC, $1)="$ac_cv_fc_compiler_gnu" + _LT_TAGVAR(LD, $1)="$LD" + + ## CAVEAT EMPTOR: + ## There is no encapsulation within the following macros, do not change + ## the running order or otherwise move them around unless you know exactly + ## what you are doing... + _LT_SYS_HIDDEN_LIBDEPS($1) + _LT_COMPILER_PIC($1) + _LT_COMPILER_C_O($1) + _LT_COMPILER_FILE_LOCKS($1) + _LT_LINKER_SHLIBS($1) + _LT_SYS_DYNAMIC_LINKER($1) + _LT_LINKER_HARDCODE_LIBPATH($1) + + _LT_CONFIG($1) + fi # test -n "$compiler" + + GCC=$lt_save_GCC + CC=$lt_save_CC + CFLAGS=$lt_save_CFLAGS +fi # test "$_lt_disable_FC" != yes + +AC_LANG_POP +])# _LT_LANG_FC_CONFIG + + +# _LT_LANG_GCJ_CONFIG([TAG]) +# -------------------------- +# Ensure that the configuration variables for the GNU Java Compiler compiler +# are suitably defined. These variables are subsequently used by _LT_CONFIG +# to write the compiler configuration to `libtool'. +m4_defun([_LT_LANG_GCJ_CONFIG], +[AC_REQUIRE([LT_PROG_GCJ])dnl +AC_LANG_SAVE + +# Source file extension for Java test sources. +ac_ext=java + +# Object file extension for compiled Java test sources. +objext=o +_LT_TAGVAR(objext, $1)=$objext + +# Code to be used in simple compile tests +lt_simple_compile_test_code="class foo {}" + +# Code to be used in simple link tests +lt_simple_link_test_code='public class conftest { public static void main(String[[]] argv) {}; }' + +# ltmain only uses $CC for tagged configurations so make sure $CC is set. +_LT_TAG_COMPILER + +# save warnings/boilerplate of simple test code +_LT_COMPILER_BOILERPLATE +_LT_LINKER_BOILERPLATE + +# Allow CC to be a program name with arguments. +lt_save_CC=$CC +lt_save_CFLAGS=$CFLAGS +lt_save_GCC=$GCC +GCC=yes +CC=${GCJ-"gcj"} +CFLAGS=$GCJFLAGS +compiler=$CC +_LT_TAGVAR(compiler, $1)=$CC +_LT_TAGVAR(LD, $1)="$LD" +_LT_CC_BASENAME([$compiler]) + +# GCJ did not exist at the time GCC didn't implicitly link libc in. +_LT_TAGVAR(archive_cmds_need_lc, $1)=no + +_LT_TAGVAR(old_archive_cmds, $1)=$old_archive_cmds +_LT_TAGVAR(reload_flag, $1)=$reload_flag +_LT_TAGVAR(reload_cmds, $1)=$reload_cmds + +## CAVEAT EMPTOR: +## There is no encapsulation within the following macros, do not change +## the running order or otherwise move them around unless you know exactly +## what you are doing... +if test -n "$compiler"; then + _LT_COMPILER_NO_RTTI($1) + _LT_COMPILER_PIC($1) + _LT_COMPILER_C_O($1) + _LT_COMPILER_FILE_LOCKS($1) + _LT_LINKER_SHLIBS($1) + _LT_LINKER_HARDCODE_LIBPATH($1) + + _LT_CONFIG($1) +fi + +AC_LANG_RESTORE + +GCC=$lt_save_GCC +CC=$lt_save_CC +CFLAGS=$lt_save_CFLAGS +])# _LT_LANG_GCJ_CONFIG + + +# _LT_LANG_GO_CONFIG([TAG]) +# -------------------------- +# Ensure that the configuration variables for the GNU Go compiler +# are suitably defined. These variables are subsequently used by _LT_CONFIG +# to write the compiler configuration to `libtool'. +m4_defun([_LT_LANG_GO_CONFIG], +[AC_REQUIRE([LT_PROG_GO])dnl +AC_LANG_SAVE + +# Source file extension for Go test sources. +ac_ext=go + +# Object file extension for compiled Go test sources. +objext=o +_LT_TAGVAR(objext, $1)=$objext + +# Code to be used in simple compile tests +lt_simple_compile_test_code="package main; func main() { }" + +# Code to be used in simple link tests +lt_simple_link_test_code='package main; func main() { }' + +# ltmain only uses $CC for tagged configurations so make sure $CC is set. +_LT_TAG_COMPILER + +# save warnings/boilerplate of simple test code +_LT_COMPILER_BOILERPLATE +_LT_LINKER_BOILERPLATE + +# Allow CC to be a program name with arguments. +lt_save_CC=$CC +lt_save_CFLAGS=$CFLAGS +lt_save_GCC=$GCC +GCC=yes +CC=${GOC-"gccgo"} +CFLAGS=$GOFLAGS +compiler=$CC +_LT_TAGVAR(compiler, $1)=$CC +_LT_TAGVAR(LD, $1)="$LD" +_LT_CC_BASENAME([$compiler]) + +# Go did not exist at the time GCC didn't implicitly link libc in. +_LT_TAGVAR(archive_cmds_need_lc, $1)=no + +_LT_TAGVAR(old_archive_cmds, $1)=$old_archive_cmds +_LT_TAGVAR(reload_flag, $1)=$reload_flag +_LT_TAGVAR(reload_cmds, $1)=$reload_cmds + +## CAVEAT EMPTOR: +## There is no encapsulation within the following macros, do not change +## the running order or otherwise move them around unless you know exactly +## what you are doing... +if test -n "$compiler"; then + _LT_COMPILER_NO_RTTI($1) + _LT_COMPILER_PIC($1) + _LT_COMPILER_C_O($1) + _LT_COMPILER_FILE_LOCKS($1) + _LT_LINKER_SHLIBS($1) + _LT_LINKER_HARDCODE_LIBPATH($1) + + _LT_CONFIG($1) +fi + +AC_LANG_RESTORE + +GCC=$lt_save_GCC +CC=$lt_save_CC +CFLAGS=$lt_save_CFLAGS +])# _LT_LANG_GO_CONFIG + + +# _LT_LANG_RC_CONFIG([TAG]) +# ------------------------- +# Ensure that the configuration variables for the Windows resource compiler +# are suitably defined. These variables are subsequently used by _LT_CONFIG +# to write the compiler configuration to `libtool'. +m4_defun([_LT_LANG_RC_CONFIG], +[AC_REQUIRE([LT_PROG_RC])dnl +AC_LANG_SAVE + +# Source file extension for RC test sources. +ac_ext=rc + +# Object file extension for compiled RC test sources. +objext=o +_LT_TAGVAR(objext, $1)=$objext + +# Code to be used in simple compile tests +lt_simple_compile_test_code='sample MENU { MENUITEM "&Soup", 100, CHECKED }' + +# Code to be used in simple link tests +lt_simple_link_test_code="$lt_simple_compile_test_code" + +# ltmain only uses $CC for tagged configurations so make sure $CC is set. +_LT_TAG_COMPILER + +# save warnings/boilerplate of simple test code +_LT_COMPILER_BOILERPLATE +_LT_LINKER_BOILERPLATE + +# Allow CC to be a program name with arguments. +lt_save_CC="$CC" +lt_save_CFLAGS=$CFLAGS +lt_save_GCC=$GCC +GCC= +CC=${RC-"windres"} +CFLAGS= +compiler=$CC +_LT_TAGVAR(compiler, $1)=$CC +_LT_CC_BASENAME([$compiler]) +_LT_TAGVAR(lt_cv_prog_compiler_c_o, $1)=yes + +if test -n "$compiler"; then + : + _LT_CONFIG($1) +fi + +GCC=$lt_save_GCC +AC_LANG_RESTORE +CC=$lt_save_CC +CFLAGS=$lt_save_CFLAGS +])# _LT_LANG_RC_CONFIG + + +# LT_PROG_GCJ +# ----------- +AC_DEFUN([LT_PROG_GCJ], +[m4_ifdef([AC_PROG_GCJ], [AC_PROG_GCJ], + [m4_ifdef([A][M_PROG_GCJ], [A][M_PROG_GCJ], + [AC_CHECK_TOOL(GCJ, gcj,) + test "x${GCJFLAGS+set}" = xset || GCJFLAGS="-g -O2" + AC_SUBST(GCJFLAGS)])])[]dnl +]) + +# Old name: +AU_ALIAS([LT_AC_PROG_GCJ], [LT_PROG_GCJ]) +dnl aclocal-1.4 backwards compatibility: +dnl AC_DEFUN([LT_AC_PROG_GCJ], []) + + +# LT_PROG_GO +# ---------- +AC_DEFUN([LT_PROG_GO], +[AC_CHECK_TOOL(GOC, gccgo,) +]) + + +# LT_PROG_RC +# ---------- +AC_DEFUN([LT_PROG_RC], +[AC_CHECK_TOOL(RC, windres,) +]) + +# Old name: +AU_ALIAS([LT_AC_PROG_RC], [LT_PROG_RC]) +dnl aclocal-1.4 backwards compatibility: +dnl AC_DEFUN([LT_AC_PROG_RC], []) + + +# _LT_DECL_EGREP +# -------------- +# If we don't have a new enough Autoconf to choose the best grep +# available, choose the one first in the user's PATH. +m4_defun([_LT_DECL_EGREP], +[AC_REQUIRE([AC_PROG_EGREP])dnl +AC_REQUIRE([AC_PROG_FGREP])dnl +test -z "$GREP" && GREP=grep +_LT_DECL([], [GREP], [1], [A grep program that handles long lines]) +_LT_DECL([], [EGREP], [1], [An ERE matcher]) +_LT_DECL([], [FGREP], [1], [A literal string matcher]) +dnl Non-bleeding-edge autoconf doesn't subst GREP, so do it here too +AC_SUBST([GREP]) +]) + + +# _LT_DECL_OBJDUMP +# -------------- +# If we don't have a new enough Autoconf to choose the best objdump +# available, choose the one first in the user's PATH. +m4_defun([_LT_DECL_OBJDUMP], +[AC_CHECK_TOOL(OBJDUMP, objdump, false) +test -z "$OBJDUMP" && OBJDUMP=objdump +_LT_DECL([], [OBJDUMP], [1], [An object symbol dumper]) +AC_SUBST([OBJDUMP]) +]) + +# _LT_DECL_DLLTOOL +# ---------------- +# Ensure DLLTOOL variable is set. +m4_defun([_LT_DECL_DLLTOOL], +[AC_CHECK_TOOL(DLLTOOL, dlltool, false) +test -z "$DLLTOOL" && DLLTOOL=dlltool +_LT_DECL([], [DLLTOOL], [1], [DLL creation program]) +AC_SUBST([DLLTOOL]) +]) + +# _LT_DECL_SED +# ------------ +# Check for a fully-functional sed program, that truncates +# as few characters as possible. Prefer GNU sed if found. +m4_defun([_LT_DECL_SED], +[AC_PROG_SED +test -z "$SED" && SED=sed +Xsed="$SED -e 1s/^X//" +_LT_DECL([], [SED], [1], [A sed program that does not truncate output]) +_LT_DECL([], [Xsed], ["\$SED -e 1s/^X//"], + [Sed that helps us avoid accidentally triggering echo(1) options like -n]) +])# _LT_DECL_SED + +m4_ifndef([AC_PROG_SED], [ +############################################################ +# NOTE: This macro has been submitted for inclusion into # +# GNU Autoconf as AC_PROG_SED. When it is available in # +# a released version of Autoconf we should remove this # +# macro and use it instead. # +############################################################ + +m4_defun([AC_PROG_SED], +[AC_MSG_CHECKING([for a sed that does not truncate output]) +AC_CACHE_VAL(lt_cv_path_SED, +[# Loop through the user's path and test for sed and gsed. +# Then use that list of sed's as ones to test for truncation. +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for lt_ac_prog in sed gsed; do + for ac_exec_ext in '' $ac_executable_extensions; do + if $as_executable_p "$as_dir/$lt_ac_prog$ac_exec_ext"; then + lt_ac_sed_list="$lt_ac_sed_list $as_dir/$lt_ac_prog$ac_exec_ext" + fi + done + done +done +IFS=$as_save_IFS +lt_ac_max=0 +lt_ac_count=0 +# Add /usr/xpg4/bin/sed as it is typically found on Solaris +# along with /bin/sed that truncates output. +for lt_ac_sed in $lt_ac_sed_list /usr/xpg4/bin/sed; do + test ! -f $lt_ac_sed && continue + cat /dev/null > conftest.in + lt_ac_count=0 + echo $ECHO_N "0123456789$ECHO_C" >conftest.in + # Check for GNU sed and select it if it is found. + if "$lt_ac_sed" --version 2>&1 < /dev/null | grep 'GNU' > /dev/null; then + lt_cv_path_SED=$lt_ac_sed + break + fi + while true; do + cat conftest.in conftest.in >conftest.tmp + mv conftest.tmp conftest.in + cp conftest.in conftest.nl + echo >>conftest.nl + $lt_ac_sed -e 's/a$//' < conftest.nl >conftest.out || break + cmp -s conftest.out conftest.nl || break + # 10000 chars as input seems more than enough + test $lt_ac_count -gt 10 && break + lt_ac_count=`expr $lt_ac_count + 1` + if test $lt_ac_count -gt $lt_ac_max; then + lt_ac_max=$lt_ac_count + lt_cv_path_SED=$lt_ac_sed + fi + done +done +]) +SED=$lt_cv_path_SED +AC_SUBST([SED]) +AC_MSG_RESULT([$SED]) +])#AC_PROG_SED +])#m4_ifndef + +# Old name: +AU_ALIAS([LT_AC_PROG_SED], [AC_PROG_SED]) +dnl aclocal-1.4 backwards compatibility: +dnl AC_DEFUN([LT_AC_PROG_SED], []) + + +# _LT_CHECK_SHELL_FEATURES +# ------------------------ +# Find out whether the shell is Bourne or XSI compatible, +# or has some other useful features. +m4_defun([_LT_CHECK_SHELL_FEATURES], +[AC_MSG_CHECKING([whether the shell understands some XSI constructs]) +# Try some XSI features +xsi_shell=no +( _lt_dummy="a/b/c" + test "${_lt_dummy##*/},${_lt_dummy%/*},${_lt_dummy#??}"${_lt_dummy%"$_lt_dummy"}, \ + = c,a/b,b/c, \ + && eval 'test $(( 1 + 1 )) -eq 2 \ + && test "${#_lt_dummy}" -eq 5' ) >/dev/null 2>&1 \ + && xsi_shell=yes +AC_MSG_RESULT([$xsi_shell]) +_LT_CONFIG_LIBTOOL_INIT([xsi_shell='$xsi_shell']) + +AC_MSG_CHECKING([whether the shell understands "+="]) +lt_shell_append=no +( foo=bar; set foo baz; eval "$[1]+=\$[2]" && test "$foo" = barbaz ) \ + >/dev/null 2>&1 \ + && lt_shell_append=yes +AC_MSG_RESULT([$lt_shell_append]) +_LT_CONFIG_LIBTOOL_INIT([lt_shell_append='$lt_shell_append']) + +if ( (MAIL=60; unset MAIL) || exit) >/dev/null 2>&1; then + lt_unset=unset +else + lt_unset=false +fi +_LT_DECL([], [lt_unset], [0], [whether the shell understands "unset"])dnl + +# test EBCDIC or ASCII +case `echo X|tr X '\101'` in + A) # ASCII based system + # \n is not interpreted correctly by Solaris 8 /usr/ucb/tr + lt_SP2NL='tr \040 \012' + lt_NL2SP='tr \015\012 \040\040' + ;; + *) # EBCDIC based system + lt_SP2NL='tr \100 \n' + lt_NL2SP='tr \r\n \100\100' + ;; +esac +_LT_DECL([SP2NL], [lt_SP2NL], [1], [turn spaces into newlines])dnl +_LT_DECL([NL2SP], [lt_NL2SP], [1], [turn newlines into spaces])dnl +])# _LT_CHECK_SHELL_FEATURES + + +# _LT_PROG_FUNCTION_REPLACE (FUNCNAME, REPLACEMENT-BODY) +# ------------------------------------------------------ +# In `$cfgfile', look for function FUNCNAME delimited by `^FUNCNAME ()$' and +# '^} FUNCNAME ', and replace its body with REPLACEMENT-BODY. +m4_defun([_LT_PROG_FUNCTION_REPLACE], +[dnl { +sed -e '/^$1 ()$/,/^} # $1 /c\ +$1 ()\ +{\ +m4_bpatsubsts([$2], [$], [\\], [^\([ ]\)], [\\\1]) +} # Extended-shell $1 implementation' "$cfgfile" > $cfgfile.tmp \ + && mv -f "$cfgfile.tmp" "$cfgfile" \ + || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") +test 0 -eq $? || _lt_function_replace_fail=: +]) + + +# _LT_PROG_REPLACE_SHELLFNS +# ------------------------- +# Replace existing portable implementations of several shell functions with +# equivalent extended shell implementations where those features are available.. +m4_defun([_LT_PROG_REPLACE_SHELLFNS], +[if test x"$xsi_shell" = xyes; then + _LT_PROG_FUNCTION_REPLACE([func_dirname], [dnl + case ${1} in + */*) func_dirname_result="${1%/*}${2}" ;; + * ) func_dirname_result="${3}" ;; + esac]) + + _LT_PROG_FUNCTION_REPLACE([func_basename], [dnl + func_basename_result="${1##*/}"]) + + _LT_PROG_FUNCTION_REPLACE([func_dirname_and_basename], [dnl + case ${1} in + */*) func_dirname_result="${1%/*}${2}" ;; + * ) func_dirname_result="${3}" ;; + esac + func_basename_result="${1##*/}"]) + + _LT_PROG_FUNCTION_REPLACE([func_stripname], [dnl + # pdksh 5.2.14 does not do ${X%$Y} correctly if both X and Y are + # positional parameters, so assign one to ordinary parameter first. + func_stripname_result=${3} + func_stripname_result=${func_stripname_result#"${1}"} + func_stripname_result=${func_stripname_result%"${2}"}]) + + _LT_PROG_FUNCTION_REPLACE([func_split_long_opt], [dnl + func_split_long_opt_name=${1%%=*} + func_split_long_opt_arg=${1#*=}]) + + _LT_PROG_FUNCTION_REPLACE([func_split_short_opt], [dnl + func_split_short_opt_arg=${1#??} + func_split_short_opt_name=${1%"$func_split_short_opt_arg"}]) + + _LT_PROG_FUNCTION_REPLACE([func_lo2o], [dnl + case ${1} in + *.lo) func_lo2o_result=${1%.lo}.${objext} ;; + *) func_lo2o_result=${1} ;; + esac]) + + _LT_PROG_FUNCTION_REPLACE([func_xform], [ func_xform_result=${1%.*}.lo]) + + _LT_PROG_FUNCTION_REPLACE([func_arith], [ func_arith_result=$(( $[*] ))]) + + _LT_PROG_FUNCTION_REPLACE([func_len], [ func_len_result=${#1}]) +fi + +if test x"$lt_shell_append" = xyes; then + _LT_PROG_FUNCTION_REPLACE([func_append], [ eval "${1}+=\\${2}"]) + + _LT_PROG_FUNCTION_REPLACE([func_append_quoted], [dnl + func_quote_for_eval "${2}" +dnl m4 expansion turns \\\\ into \\, and then the shell eval turns that into \ + eval "${1}+=\\\\ \\$func_quote_for_eval_result"]) + + # Save a `func_append' function call where possible by direct use of '+=' + sed -e 's%func_append \([[a-zA-Z_]]\{1,\}\) "%\1+="%g' $cfgfile > $cfgfile.tmp \ + && mv -f "$cfgfile.tmp" "$cfgfile" \ + || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") + test 0 -eq $? || _lt_function_replace_fail=: +else + # Save a `func_append' function call even when '+=' is not available + sed -e 's%func_append \([[a-zA-Z_]]\{1,\}\) "%\1="$\1%g' $cfgfile > $cfgfile.tmp \ + && mv -f "$cfgfile.tmp" "$cfgfile" \ + || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") + test 0 -eq $? || _lt_function_replace_fail=: +fi + +if test x"$_lt_function_replace_fail" = x":"; then + AC_MSG_WARN([Unable to substitute extended shell functions in $ofile]) +fi +]) + +# _LT_PATH_CONVERSION_FUNCTIONS +# ----------------------------- +# Determine which file name conversion functions should be used by +# func_to_host_file (and, implicitly, by func_to_host_path). These are needed +# for certain cross-compile configurations and native mingw. +m4_defun([_LT_PATH_CONVERSION_FUNCTIONS], +[AC_REQUIRE([AC_CANONICAL_HOST])dnl +AC_REQUIRE([AC_CANONICAL_BUILD])dnl +AC_MSG_CHECKING([how to convert $build file names to $host format]) +AC_CACHE_VAL(lt_cv_to_host_file_cmd, +[case $host in + *-*-mingw* ) + case $build in + *-*-mingw* ) # actually msys + lt_cv_to_host_file_cmd=func_convert_file_msys_to_w32 + ;; + *-*-cygwin* ) + lt_cv_to_host_file_cmd=func_convert_file_cygwin_to_w32 + ;; + * ) # otherwise, assume *nix + lt_cv_to_host_file_cmd=func_convert_file_nix_to_w32 + ;; + esac + ;; + *-*-cygwin* ) + case $build in + *-*-mingw* ) # actually msys + lt_cv_to_host_file_cmd=func_convert_file_msys_to_cygwin + ;; + *-*-cygwin* ) + lt_cv_to_host_file_cmd=func_convert_file_noop + ;; + * ) # otherwise, assume *nix + lt_cv_to_host_file_cmd=func_convert_file_nix_to_cygwin + ;; + esac + ;; + * ) # unhandled hosts (and "normal" native builds) + lt_cv_to_host_file_cmd=func_convert_file_noop + ;; +esac +]) +to_host_file_cmd=$lt_cv_to_host_file_cmd +AC_MSG_RESULT([$lt_cv_to_host_file_cmd]) +_LT_DECL([to_host_file_cmd], [lt_cv_to_host_file_cmd], + [0], [convert $build file names to $host format])dnl + +AC_MSG_CHECKING([how to convert $build file names to toolchain format]) +AC_CACHE_VAL(lt_cv_to_tool_file_cmd, +[#assume ordinary cross tools, or native build. +lt_cv_to_tool_file_cmd=func_convert_file_noop +case $host in + *-*-mingw* ) + case $build in + *-*-mingw* ) # actually msys + lt_cv_to_tool_file_cmd=func_convert_file_msys_to_w32 + ;; + esac + ;; +esac +]) +to_tool_file_cmd=$lt_cv_to_tool_file_cmd +AC_MSG_RESULT([$lt_cv_to_tool_file_cmd]) +_LT_DECL([to_tool_file_cmd], [lt_cv_to_tool_file_cmd], + [0], [convert $build files to toolchain format])dnl +])# _LT_PATH_CONVERSION_FUNCTIONS diff -Nru klavaro-1.9.9/m4/lt~obsolete.m4 klavaro-3.00/m4/lt~obsolete.m4 --- klavaro-1.9.9/m4/lt~obsolete.m4 1970-01-01 00:00:00.000000000 +0000 +++ klavaro-3.00/m4/lt~obsolete.m4 2014-01-02 20:30:56.000000000 +0000 @@ -0,0 +1,98 @@ +# lt~obsolete.m4 -- aclocal satisfying obsolete definitions. -*-Autoconf-*- +# +# Copyright (C) 2004, 2005, 2007, 2009 Free Software Foundation, Inc. +# Written by Scott James Remnant, 2004. +# +# This file is free software; the Free Software Foundation gives +# unlimited permission to copy and/or distribute it, with or without +# modifications, as long as this notice is preserved. + +# serial 5 lt~obsolete.m4 + +# These exist entirely to fool aclocal when bootstrapping libtool. +# +# In the past libtool.m4 has provided macros via AC_DEFUN (or AU_DEFUN) +# which have later been changed to m4_define as they aren't part of the +# exported API, or moved to Autoconf or Automake where they belong. +# +# The trouble is, aclocal is a bit thick. It'll see the old AC_DEFUN +# in /usr/share/aclocal/libtool.m4 and remember it, then when it sees us +# using a macro with the same name in our local m4/libtool.m4 it'll +# pull the old libtool.m4 in (it doesn't see our shiny new m4_define +# and doesn't know about Autoconf macros at all.) +# +# So we provide this file, which has a silly filename so it's always +# included after everything else. This provides aclocal with the +# AC_DEFUNs it wants, but when m4 processes it, it doesn't do anything +# because those macros already exist, or will be overwritten later. +# We use AC_DEFUN over AU_DEFUN for compatibility with aclocal-1.6. +# +# Anytime we withdraw an AC_DEFUN or AU_DEFUN, remember to add it here. +# Yes, that means every name once taken will need to remain here until +# we give up compatibility with versions before 1.7, at which point +# we need to keep only those names which we still refer to. + +# This is to help aclocal find these macros, as it can't see m4_define. +AC_DEFUN([LTOBSOLETE_VERSION], [m4_if([1])]) + +m4_ifndef([AC_LIBTOOL_LINKER_OPTION], [AC_DEFUN([AC_LIBTOOL_LINKER_OPTION])]) +m4_ifndef([AC_PROG_EGREP], [AC_DEFUN([AC_PROG_EGREP])]) +m4_ifndef([_LT_AC_PROG_ECHO_BACKSLASH], [AC_DEFUN([_LT_AC_PROG_ECHO_BACKSLASH])]) +m4_ifndef([_LT_AC_SHELL_INIT], [AC_DEFUN([_LT_AC_SHELL_INIT])]) +m4_ifndef([_LT_AC_SYS_LIBPATH_AIX], [AC_DEFUN([_LT_AC_SYS_LIBPATH_AIX])]) +m4_ifndef([_LT_PROG_LTMAIN], [AC_DEFUN([_LT_PROG_LTMAIN])]) +m4_ifndef([_LT_AC_TAGVAR], [AC_DEFUN([_LT_AC_TAGVAR])]) +m4_ifndef([AC_LTDL_ENABLE_INSTALL], [AC_DEFUN([AC_LTDL_ENABLE_INSTALL])]) +m4_ifndef([AC_LTDL_PREOPEN], [AC_DEFUN([AC_LTDL_PREOPEN])]) +m4_ifndef([_LT_AC_SYS_COMPILER], [AC_DEFUN([_LT_AC_SYS_COMPILER])]) +m4_ifndef([_LT_AC_LOCK], [AC_DEFUN([_LT_AC_LOCK])]) +m4_ifndef([AC_LIBTOOL_SYS_OLD_ARCHIVE], [AC_DEFUN([AC_LIBTOOL_SYS_OLD_ARCHIVE])]) +m4_ifndef([_LT_AC_TRY_DLOPEN_SELF], [AC_DEFUN([_LT_AC_TRY_DLOPEN_SELF])]) +m4_ifndef([AC_LIBTOOL_PROG_CC_C_O], [AC_DEFUN([AC_LIBTOOL_PROG_CC_C_O])]) +m4_ifndef([AC_LIBTOOL_SYS_HARD_LINK_LOCKS], [AC_DEFUN([AC_LIBTOOL_SYS_HARD_LINK_LOCKS])]) +m4_ifndef([AC_LIBTOOL_OBJDIR], [AC_DEFUN([AC_LIBTOOL_OBJDIR])]) +m4_ifndef([AC_LTDL_OBJDIR], [AC_DEFUN([AC_LTDL_OBJDIR])]) +m4_ifndef([AC_LIBTOOL_PROG_LD_HARDCODE_LIBPATH], [AC_DEFUN([AC_LIBTOOL_PROG_LD_HARDCODE_LIBPATH])]) +m4_ifndef([AC_LIBTOOL_SYS_LIB_STRIP], [AC_DEFUN([AC_LIBTOOL_SYS_LIB_STRIP])]) +m4_ifndef([AC_PATH_MAGIC], [AC_DEFUN([AC_PATH_MAGIC])]) +m4_ifndef([AC_PROG_LD_GNU], [AC_DEFUN([AC_PROG_LD_GNU])]) +m4_ifndef([AC_PROG_LD_RELOAD_FLAG], [AC_DEFUN([AC_PROG_LD_RELOAD_FLAG])]) +m4_ifndef([AC_DEPLIBS_CHECK_METHOD], [AC_DEFUN([AC_DEPLIBS_CHECK_METHOD])]) +m4_ifndef([AC_LIBTOOL_PROG_COMPILER_NO_RTTI], [AC_DEFUN([AC_LIBTOOL_PROG_COMPILER_NO_RTTI])]) +m4_ifndef([AC_LIBTOOL_SYS_GLOBAL_SYMBOL_PIPE], [AC_DEFUN([AC_LIBTOOL_SYS_GLOBAL_SYMBOL_PIPE])]) +m4_ifndef([AC_LIBTOOL_PROG_COMPILER_PIC], [AC_DEFUN([AC_LIBTOOL_PROG_COMPILER_PIC])]) +m4_ifndef([AC_LIBTOOL_PROG_LD_SHLIBS], [AC_DEFUN([AC_LIBTOOL_PROG_LD_SHLIBS])]) +m4_ifndef([AC_LIBTOOL_POSTDEP_PREDEP], [AC_DEFUN([AC_LIBTOOL_POSTDEP_PREDEP])]) +m4_ifndef([LT_AC_PROG_EGREP], [AC_DEFUN([LT_AC_PROG_EGREP])]) +m4_ifndef([LT_AC_PROG_SED], [AC_DEFUN([LT_AC_PROG_SED])]) +m4_ifndef([_LT_CC_BASENAME], [AC_DEFUN([_LT_CC_BASENAME])]) +m4_ifndef([_LT_COMPILER_BOILERPLATE], [AC_DEFUN([_LT_COMPILER_BOILERPLATE])]) +m4_ifndef([_LT_LINKER_BOILERPLATE], [AC_DEFUN([_LT_LINKER_BOILERPLATE])]) +m4_ifndef([_AC_PROG_LIBTOOL], [AC_DEFUN([_AC_PROG_LIBTOOL])]) +m4_ifndef([AC_LIBTOOL_SETUP], [AC_DEFUN([AC_LIBTOOL_SETUP])]) +m4_ifndef([_LT_AC_CHECK_DLFCN], [AC_DEFUN([_LT_AC_CHECK_DLFCN])]) +m4_ifndef([AC_LIBTOOL_SYS_DYNAMIC_LINKER], [AC_DEFUN([AC_LIBTOOL_SYS_DYNAMIC_LINKER])]) +m4_ifndef([_LT_AC_TAGCONFIG], [AC_DEFUN([_LT_AC_TAGCONFIG])]) +m4_ifndef([AC_DISABLE_FAST_INSTALL], [AC_DEFUN([AC_DISABLE_FAST_INSTALL])]) +m4_ifndef([_LT_AC_LANG_CXX], [AC_DEFUN([_LT_AC_LANG_CXX])]) +m4_ifndef([_LT_AC_LANG_F77], [AC_DEFUN([_LT_AC_LANG_F77])]) +m4_ifndef([_LT_AC_LANG_GCJ], [AC_DEFUN([_LT_AC_LANG_GCJ])]) +m4_ifndef([AC_LIBTOOL_LANG_C_CONFIG], [AC_DEFUN([AC_LIBTOOL_LANG_C_CONFIG])]) +m4_ifndef([_LT_AC_LANG_C_CONFIG], [AC_DEFUN([_LT_AC_LANG_C_CONFIG])]) +m4_ifndef([AC_LIBTOOL_LANG_CXX_CONFIG], [AC_DEFUN([AC_LIBTOOL_LANG_CXX_CONFIG])]) +m4_ifndef([_LT_AC_LANG_CXX_CONFIG], [AC_DEFUN([_LT_AC_LANG_CXX_CONFIG])]) +m4_ifndef([AC_LIBTOOL_LANG_F77_CONFIG], [AC_DEFUN([AC_LIBTOOL_LANG_F77_CONFIG])]) +m4_ifndef([_LT_AC_LANG_F77_CONFIG], [AC_DEFUN([_LT_AC_LANG_F77_CONFIG])]) +m4_ifndef([AC_LIBTOOL_LANG_GCJ_CONFIG], [AC_DEFUN([AC_LIBTOOL_LANG_GCJ_CONFIG])]) +m4_ifndef([_LT_AC_LANG_GCJ_CONFIG], [AC_DEFUN([_LT_AC_LANG_GCJ_CONFIG])]) +m4_ifndef([AC_LIBTOOL_LANG_RC_CONFIG], [AC_DEFUN([AC_LIBTOOL_LANG_RC_CONFIG])]) +m4_ifndef([_LT_AC_LANG_RC_CONFIG], [AC_DEFUN([_LT_AC_LANG_RC_CONFIG])]) +m4_ifndef([AC_LIBTOOL_CONFIG], [AC_DEFUN([AC_LIBTOOL_CONFIG])]) +m4_ifndef([_LT_AC_FILE_LTDLL_C], [AC_DEFUN([_LT_AC_FILE_LTDLL_C])]) +m4_ifndef([_LT_REQUIRED_DARWIN_CHECKS], [AC_DEFUN([_LT_REQUIRED_DARWIN_CHECKS])]) +m4_ifndef([_LT_AC_PROG_CXXCPP], [AC_DEFUN([_LT_AC_PROG_CXXCPP])]) +m4_ifndef([_LT_PREPARE_SED_QUOTE_VARS], [AC_DEFUN([_LT_PREPARE_SED_QUOTE_VARS])]) +m4_ifndef([_LT_PROG_ECHO_BACKSLASH], [AC_DEFUN([_LT_PROG_ECHO_BACKSLASH])]) +m4_ifndef([_LT_PROG_F77], [AC_DEFUN([_LT_PROG_F77])]) +m4_ifndef([_LT_PROG_FC], [AC_DEFUN([_LT_PROG_FC])]) +m4_ifndef([_LT_PROG_CXX], [AC_DEFUN([_LT_PROG_CXX])]) diff -Nru klavaro-1.9.9/m4/ltoptions.m4 klavaro-3.00/m4/ltoptions.m4 --- klavaro-1.9.9/m4/ltoptions.m4 1970-01-01 00:00:00.000000000 +0000 +++ klavaro-3.00/m4/ltoptions.m4 2014-01-02 20:30:56.000000000 +0000 @@ -0,0 +1,384 @@ +# Helper functions for option handling. -*- Autoconf -*- +# +# Copyright (C) 2004, 2005, 2007, 2008, 2009 Free Software Foundation, +# Inc. +# Written by Gary V. Vaughan, 2004 +# +# This file is free software; the Free Software Foundation gives +# unlimited permission to copy and/or distribute it, with or without +# modifications, as long as this notice is preserved. + +# serial 7 ltoptions.m4 + +# This is to help aclocal find these macros, as it can't see m4_define. +AC_DEFUN([LTOPTIONS_VERSION], [m4_if([1])]) + + +# _LT_MANGLE_OPTION(MACRO-NAME, OPTION-NAME) +# ------------------------------------------ +m4_define([_LT_MANGLE_OPTION], +[[_LT_OPTION_]m4_bpatsubst($1__$2, [[^a-zA-Z0-9_]], [_])]) + + +# _LT_SET_OPTION(MACRO-NAME, OPTION-NAME) +# --------------------------------------- +# Set option OPTION-NAME for macro MACRO-NAME, and if there is a +# matching handler defined, dispatch to it. Other OPTION-NAMEs are +# saved as a flag. +m4_define([_LT_SET_OPTION], +[m4_define(_LT_MANGLE_OPTION([$1], [$2]))dnl +m4_ifdef(_LT_MANGLE_DEFUN([$1], [$2]), + _LT_MANGLE_DEFUN([$1], [$2]), + [m4_warning([Unknown $1 option `$2'])])[]dnl +]) + + +# _LT_IF_OPTION(MACRO-NAME, OPTION-NAME, IF-SET, [IF-NOT-SET]) +# ------------------------------------------------------------ +# Execute IF-SET if OPTION is set, IF-NOT-SET otherwise. +m4_define([_LT_IF_OPTION], +[m4_ifdef(_LT_MANGLE_OPTION([$1], [$2]), [$3], [$4])]) + + +# _LT_UNLESS_OPTIONS(MACRO-NAME, OPTION-LIST, IF-NOT-SET) +# ------------------------------------------------------- +# Execute IF-NOT-SET unless all options in OPTION-LIST for MACRO-NAME +# are set. +m4_define([_LT_UNLESS_OPTIONS], +[m4_foreach([_LT_Option], m4_split(m4_normalize([$2])), + [m4_ifdef(_LT_MANGLE_OPTION([$1], _LT_Option), + [m4_define([$0_found])])])[]dnl +m4_ifdef([$0_found], [m4_undefine([$0_found])], [$3 +])[]dnl +]) + + +# _LT_SET_OPTIONS(MACRO-NAME, OPTION-LIST) +# ---------------------------------------- +# OPTION-LIST is a space-separated list of Libtool options associated +# with MACRO-NAME. If any OPTION has a matching handler declared with +# LT_OPTION_DEFINE, dispatch to that macro; otherwise complain about +# the unknown option and exit. +m4_defun([_LT_SET_OPTIONS], +[# Set options +m4_foreach([_LT_Option], m4_split(m4_normalize([$2])), + [_LT_SET_OPTION([$1], _LT_Option)]) + +m4_if([$1],[LT_INIT],[ + dnl + dnl Simply set some default values (i.e off) if boolean options were not + dnl specified: + _LT_UNLESS_OPTIONS([LT_INIT], [dlopen], [enable_dlopen=no + ]) + _LT_UNLESS_OPTIONS([LT_INIT], [win32-dll], [enable_win32_dll=no + ]) + dnl + dnl If no reference was made to various pairs of opposing options, then + dnl we run the default mode handler for the pair. For example, if neither + dnl `shared' nor `disable-shared' was passed, we enable building of shared + dnl archives by default: + _LT_UNLESS_OPTIONS([LT_INIT], [shared disable-shared], [_LT_ENABLE_SHARED]) + _LT_UNLESS_OPTIONS([LT_INIT], [static disable-static], [_LT_ENABLE_STATIC]) + _LT_UNLESS_OPTIONS([LT_INIT], [pic-only no-pic], [_LT_WITH_PIC]) + _LT_UNLESS_OPTIONS([LT_INIT], [fast-install disable-fast-install], + [_LT_ENABLE_FAST_INSTALL]) + ]) +])# _LT_SET_OPTIONS + + +## --------------------------------- ## +## Macros to handle LT_INIT options. ## +## --------------------------------- ## + +# _LT_MANGLE_DEFUN(MACRO-NAME, OPTION-NAME) +# ----------------------------------------- +m4_define([_LT_MANGLE_DEFUN], +[[_LT_OPTION_DEFUN_]m4_bpatsubst(m4_toupper([$1__$2]), [[^A-Z0-9_]], [_])]) + + +# LT_OPTION_DEFINE(MACRO-NAME, OPTION-NAME, CODE) +# ----------------------------------------------- +m4_define([LT_OPTION_DEFINE], +[m4_define(_LT_MANGLE_DEFUN([$1], [$2]), [$3])[]dnl +])# LT_OPTION_DEFINE + + +# dlopen +# ------ +LT_OPTION_DEFINE([LT_INIT], [dlopen], [enable_dlopen=yes +]) + +AU_DEFUN([AC_LIBTOOL_DLOPEN], +[_LT_SET_OPTION([LT_INIT], [dlopen]) +AC_DIAGNOSE([obsolete], +[$0: Remove this warning and the call to _LT_SET_OPTION when you +put the `dlopen' option into LT_INIT's first parameter.]) +]) + +dnl aclocal-1.4 backwards compatibility: +dnl AC_DEFUN([AC_LIBTOOL_DLOPEN], []) + + +# win32-dll +# --------- +# Declare package support for building win32 dll's. +LT_OPTION_DEFINE([LT_INIT], [win32-dll], +[enable_win32_dll=yes + +case $host in +*-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-cegcc*) + AC_CHECK_TOOL(AS, as, false) + AC_CHECK_TOOL(DLLTOOL, dlltool, false) + AC_CHECK_TOOL(OBJDUMP, objdump, false) + ;; +esac + +test -z "$AS" && AS=as +_LT_DECL([], [AS], [1], [Assembler program])dnl + +test -z "$DLLTOOL" && DLLTOOL=dlltool +_LT_DECL([], [DLLTOOL], [1], [DLL creation program])dnl + +test -z "$OBJDUMP" && OBJDUMP=objdump +_LT_DECL([], [OBJDUMP], [1], [Object dumper program])dnl +])# win32-dll + +AU_DEFUN([AC_LIBTOOL_WIN32_DLL], +[AC_REQUIRE([AC_CANONICAL_HOST])dnl +_LT_SET_OPTION([LT_INIT], [win32-dll]) +AC_DIAGNOSE([obsolete], +[$0: Remove this warning and the call to _LT_SET_OPTION when you +put the `win32-dll' option into LT_INIT's first parameter.]) +]) + +dnl aclocal-1.4 backwards compatibility: +dnl AC_DEFUN([AC_LIBTOOL_WIN32_DLL], []) + + +# _LT_ENABLE_SHARED([DEFAULT]) +# ---------------------------- +# implement the --enable-shared flag, and supports the `shared' and +# `disable-shared' LT_INIT options. +# DEFAULT is either `yes' or `no'. If omitted, it defaults to `yes'. +m4_define([_LT_ENABLE_SHARED], +[m4_define([_LT_ENABLE_SHARED_DEFAULT], [m4_if($1, no, no, yes)])dnl +AC_ARG_ENABLE([shared], + [AS_HELP_STRING([--enable-shared@<:@=PKGS@:>@], + [build shared libraries @<:@default=]_LT_ENABLE_SHARED_DEFAULT[@:>@])], + [p=${PACKAGE-default} + case $enableval in + yes) enable_shared=yes ;; + no) enable_shared=no ;; + *) + enable_shared=no + # Look at the argument we got. We use all the common list separators. + lt_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR," + for pkg in $enableval; do + IFS="$lt_save_ifs" + if test "X$pkg" = "X$p"; then + enable_shared=yes + fi + done + IFS="$lt_save_ifs" + ;; + esac], + [enable_shared=]_LT_ENABLE_SHARED_DEFAULT) + + _LT_DECL([build_libtool_libs], [enable_shared], [0], + [Whether or not to build shared libraries]) +])# _LT_ENABLE_SHARED + +LT_OPTION_DEFINE([LT_INIT], [shared], [_LT_ENABLE_SHARED([yes])]) +LT_OPTION_DEFINE([LT_INIT], [disable-shared], [_LT_ENABLE_SHARED([no])]) + +# Old names: +AC_DEFUN([AC_ENABLE_SHARED], +[_LT_SET_OPTION([LT_INIT], m4_if([$1], [no], [disable-])[shared]) +]) + +AC_DEFUN([AC_DISABLE_SHARED], +[_LT_SET_OPTION([LT_INIT], [disable-shared]) +]) + +AU_DEFUN([AM_ENABLE_SHARED], [AC_ENABLE_SHARED($@)]) +AU_DEFUN([AM_DISABLE_SHARED], [AC_DISABLE_SHARED($@)]) + +dnl aclocal-1.4 backwards compatibility: +dnl AC_DEFUN([AM_ENABLE_SHARED], []) +dnl AC_DEFUN([AM_DISABLE_SHARED], []) + + + +# _LT_ENABLE_STATIC([DEFAULT]) +# ---------------------------- +# implement the --enable-static flag, and support the `static' and +# `disable-static' LT_INIT options. +# DEFAULT is either `yes' or `no'. If omitted, it defaults to `yes'. +m4_define([_LT_ENABLE_STATIC], +[m4_define([_LT_ENABLE_STATIC_DEFAULT], [m4_if($1, no, no, yes)])dnl +AC_ARG_ENABLE([static], + [AS_HELP_STRING([--enable-static@<:@=PKGS@:>@], + [build static libraries @<:@default=]_LT_ENABLE_STATIC_DEFAULT[@:>@])], + [p=${PACKAGE-default} + case $enableval in + yes) enable_static=yes ;; + no) enable_static=no ;; + *) + enable_static=no + # Look at the argument we got. We use all the common list separators. + lt_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR," + for pkg in $enableval; do + IFS="$lt_save_ifs" + if test "X$pkg" = "X$p"; then + enable_static=yes + fi + done + IFS="$lt_save_ifs" + ;; + esac], + [enable_static=]_LT_ENABLE_STATIC_DEFAULT) + + _LT_DECL([build_old_libs], [enable_static], [0], + [Whether or not to build static libraries]) +])# _LT_ENABLE_STATIC + +LT_OPTION_DEFINE([LT_INIT], [static], [_LT_ENABLE_STATIC([yes])]) +LT_OPTION_DEFINE([LT_INIT], [disable-static], [_LT_ENABLE_STATIC([no])]) + +# Old names: +AC_DEFUN([AC_ENABLE_STATIC], +[_LT_SET_OPTION([LT_INIT], m4_if([$1], [no], [disable-])[static]) +]) + +AC_DEFUN([AC_DISABLE_STATIC], +[_LT_SET_OPTION([LT_INIT], [disable-static]) +]) + +AU_DEFUN([AM_ENABLE_STATIC], [AC_ENABLE_STATIC($@)]) +AU_DEFUN([AM_DISABLE_STATIC], [AC_DISABLE_STATIC($@)]) + +dnl aclocal-1.4 backwards compatibility: +dnl AC_DEFUN([AM_ENABLE_STATIC], []) +dnl AC_DEFUN([AM_DISABLE_STATIC], []) + + + +# _LT_ENABLE_FAST_INSTALL([DEFAULT]) +# ---------------------------------- +# implement the --enable-fast-install flag, and support the `fast-install' +# and `disable-fast-install' LT_INIT options. +# DEFAULT is either `yes' or `no'. If omitted, it defaults to `yes'. +m4_define([_LT_ENABLE_FAST_INSTALL], +[m4_define([_LT_ENABLE_FAST_INSTALL_DEFAULT], [m4_if($1, no, no, yes)])dnl +AC_ARG_ENABLE([fast-install], + [AS_HELP_STRING([--enable-fast-install@<:@=PKGS@:>@], + [optimize for fast installation @<:@default=]_LT_ENABLE_FAST_INSTALL_DEFAULT[@:>@])], + [p=${PACKAGE-default} + case $enableval in + yes) enable_fast_install=yes ;; + no) enable_fast_install=no ;; + *) + enable_fast_install=no + # Look at the argument we got. We use all the common list separators. + lt_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR," + for pkg in $enableval; do + IFS="$lt_save_ifs" + if test "X$pkg" = "X$p"; then + enable_fast_install=yes + fi + done + IFS="$lt_save_ifs" + ;; + esac], + [enable_fast_install=]_LT_ENABLE_FAST_INSTALL_DEFAULT) + +_LT_DECL([fast_install], [enable_fast_install], [0], + [Whether or not to optimize for fast installation])dnl +])# _LT_ENABLE_FAST_INSTALL + +LT_OPTION_DEFINE([LT_INIT], [fast-install], [_LT_ENABLE_FAST_INSTALL([yes])]) +LT_OPTION_DEFINE([LT_INIT], [disable-fast-install], [_LT_ENABLE_FAST_INSTALL([no])]) + +# Old names: +AU_DEFUN([AC_ENABLE_FAST_INSTALL], +[_LT_SET_OPTION([LT_INIT], m4_if([$1], [no], [disable-])[fast-install]) +AC_DIAGNOSE([obsolete], +[$0: Remove this warning and the call to _LT_SET_OPTION when you put +the `fast-install' option into LT_INIT's first parameter.]) +]) + +AU_DEFUN([AC_DISABLE_FAST_INSTALL], +[_LT_SET_OPTION([LT_INIT], [disable-fast-install]) +AC_DIAGNOSE([obsolete], +[$0: Remove this warning and the call to _LT_SET_OPTION when you put +the `disable-fast-install' option into LT_INIT's first parameter.]) +]) + +dnl aclocal-1.4 backwards compatibility: +dnl AC_DEFUN([AC_ENABLE_FAST_INSTALL], []) +dnl AC_DEFUN([AM_DISABLE_FAST_INSTALL], []) + + +# _LT_WITH_PIC([MODE]) +# -------------------- +# implement the --with-pic flag, and support the `pic-only' and `no-pic' +# LT_INIT options. +# MODE is either `yes' or `no'. If omitted, it defaults to `both'. +m4_define([_LT_WITH_PIC], +[AC_ARG_WITH([pic], + [AS_HELP_STRING([--with-pic@<:@=PKGS@:>@], + [try to use only PIC/non-PIC objects @<:@default=use both@:>@])], + [lt_p=${PACKAGE-default} + case $withval in + yes|no) pic_mode=$withval ;; + *) + pic_mode=default + # Look at the argument we got. We use all the common list separators. + lt_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR," + for lt_pkg in $withval; do + IFS="$lt_save_ifs" + if test "X$lt_pkg" = "X$lt_p"; then + pic_mode=yes + fi + done + IFS="$lt_save_ifs" + ;; + esac], + [pic_mode=default]) + +test -z "$pic_mode" && pic_mode=m4_default([$1], [default]) + +_LT_DECL([], [pic_mode], [0], [What type of objects to build])dnl +])# _LT_WITH_PIC + +LT_OPTION_DEFINE([LT_INIT], [pic-only], [_LT_WITH_PIC([yes])]) +LT_OPTION_DEFINE([LT_INIT], [no-pic], [_LT_WITH_PIC([no])]) + +# Old name: +AU_DEFUN([AC_LIBTOOL_PICMODE], +[_LT_SET_OPTION([LT_INIT], [pic-only]) +AC_DIAGNOSE([obsolete], +[$0: Remove this warning and the call to _LT_SET_OPTION when you +put the `pic-only' option into LT_INIT's first parameter.]) +]) + +dnl aclocal-1.4 backwards compatibility: +dnl AC_DEFUN([AC_LIBTOOL_PICMODE], []) + +## ----------------- ## +## LTDL_INIT Options ## +## ----------------- ## + +m4_define([_LTDL_MODE], []) +LT_OPTION_DEFINE([LTDL_INIT], [nonrecursive], + [m4_define([_LTDL_MODE], [nonrecursive])]) +LT_OPTION_DEFINE([LTDL_INIT], [recursive], + [m4_define([_LTDL_MODE], [recursive])]) +LT_OPTION_DEFINE([LTDL_INIT], [subproject], + [m4_define([_LTDL_MODE], [subproject])]) + +m4_define([_LTDL_TYPE], []) +LT_OPTION_DEFINE([LTDL_INIT], [installable], + [m4_define([_LTDL_TYPE], [installable])]) +LT_OPTION_DEFINE([LTDL_INIT], [convenience], + [m4_define([_LTDL_TYPE], [convenience])]) diff -Nru klavaro-1.9.9/m4/ltsugar.m4 klavaro-3.00/m4/ltsugar.m4 --- klavaro-1.9.9/m4/ltsugar.m4 1970-01-01 00:00:00.000000000 +0000 +++ klavaro-3.00/m4/ltsugar.m4 2014-01-02 20:30:56.000000000 +0000 @@ -0,0 +1,123 @@ +# ltsugar.m4 -- libtool m4 base layer. -*-Autoconf-*- +# +# Copyright (C) 2004, 2005, 2007, 2008 Free Software Foundation, Inc. +# Written by Gary V. Vaughan, 2004 +# +# This file is free software; the Free Software Foundation gives +# unlimited permission to copy and/or distribute it, with or without +# modifications, as long as this notice is preserved. + +# serial 6 ltsugar.m4 + +# This is to help aclocal find these macros, as it can't see m4_define. +AC_DEFUN([LTSUGAR_VERSION], [m4_if([0.1])]) + + +# lt_join(SEP, ARG1, [ARG2...]) +# ----------------------------- +# Produce ARG1SEPARG2...SEPARGn, omitting [] arguments and their +# associated separator. +# Needed until we can rely on m4_join from Autoconf 2.62, since all earlier +# versions in m4sugar had bugs. +m4_define([lt_join], +[m4_if([$#], [1], [], + [$#], [2], [[$2]], + [m4_if([$2], [], [], [[$2]_])$0([$1], m4_shift(m4_shift($@)))])]) +m4_define([_lt_join], +[m4_if([$#$2], [2], [], + [m4_if([$2], [], [], [[$1$2]])$0([$1], m4_shift(m4_shift($@)))])]) + + +# lt_car(LIST) +# lt_cdr(LIST) +# ------------ +# Manipulate m4 lists. +# These macros are necessary as long as will still need to support +# Autoconf-2.59 which quotes differently. +m4_define([lt_car], [[$1]]) +m4_define([lt_cdr], +[m4_if([$#], 0, [m4_fatal([$0: cannot be called without arguments])], + [$#], 1, [], + [m4_dquote(m4_shift($@))])]) +m4_define([lt_unquote], $1) + + +# lt_append(MACRO-NAME, STRING, [SEPARATOR]) +# ------------------------------------------ +# Redefine MACRO-NAME to hold its former content plus `SEPARATOR'`STRING'. +# Note that neither SEPARATOR nor STRING are expanded; they are appended +# to MACRO-NAME as is (leaving the expansion for when MACRO-NAME is invoked). +# No SEPARATOR is output if MACRO-NAME was previously undefined (different +# than defined and empty). +# +# This macro is needed until we can rely on Autoconf 2.62, since earlier +# versions of m4sugar mistakenly expanded SEPARATOR but not STRING. +m4_define([lt_append], +[m4_define([$1], + m4_ifdef([$1], [m4_defn([$1])[$3]])[$2])]) + + + +# lt_combine(SEP, PREFIX-LIST, INFIX, SUFFIX1, [SUFFIX2...]) +# ---------------------------------------------------------- +# Produce a SEP delimited list of all paired combinations of elements of +# PREFIX-LIST with SUFFIX1 through SUFFIXn. Each element of the list +# has the form PREFIXmINFIXSUFFIXn. +# Needed until we can rely on m4_combine added in Autoconf 2.62. +m4_define([lt_combine], +[m4_if(m4_eval([$# > 3]), [1], + [m4_pushdef([_Lt_sep], [m4_define([_Lt_sep], m4_defn([lt_car]))])]]dnl +[[m4_foreach([_Lt_prefix], [$2], + [m4_foreach([_Lt_suffix], + ]m4_dquote(m4_dquote(m4_shift(m4_shift(m4_shift($@)))))[, + [_Lt_sep([$1])[]m4_defn([_Lt_prefix])[$3]m4_defn([_Lt_suffix])])])])]) + + +# lt_if_append_uniq(MACRO-NAME, VARNAME, [SEPARATOR], [UNIQ], [NOT-UNIQ]) +# ----------------------------------------------------------------------- +# Iff MACRO-NAME does not yet contain VARNAME, then append it (delimited +# by SEPARATOR if supplied) and expand UNIQ, else NOT-UNIQ. +m4_define([lt_if_append_uniq], +[m4_ifdef([$1], + [m4_if(m4_index([$3]m4_defn([$1])[$3], [$3$2$3]), [-1], + [lt_append([$1], [$2], [$3])$4], + [$5])], + [lt_append([$1], [$2], [$3])$4])]) + + +# lt_dict_add(DICT, KEY, VALUE) +# ----------------------------- +m4_define([lt_dict_add], +[m4_define([$1($2)], [$3])]) + + +# lt_dict_add_subkey(DICT, KEY, SUBKEY, VALUE) +# -------------------------------------------- +m4_define([lt_dict_add_subkey], +[m4_define([$1($2:$3)], [$4])]) + + +# lt_dict_fetch(DICT, KEY, [SUBKEY]) +# ---------------------------------- +m4_define([lt_dict_fetch], +[m4_ifval([$3], + m4_ifdef([$1($2:$3)], [m4_defn([$1($2:$3)])]), + m4_ifdef([$1($2)], [m4_defn([$1($2)])]))]) + + +# lt_if_dict_fetch(DICT, KEY, [SUBKEY], VALUE, IF-TRUE, [IF-FALSE]) +# ----------------------------------------------------------------- +m4_define([lt_if_dict_fetch], +[m4_if(lt_dict_fetch([$1], [$2], [$3]), [$4], + [$5], + [$6])]) + + +# lt_dict_filter(DICT, [SUBKEY], VALUE, [SEPARATOR], KEY, [...]) +# -------------------------------------------------------------- +m4_define([lt_dict_filter], +[m4_if([$5], [], [], + [lt_join(m4_quote(m4_default([$4], [[, ]])), + lt_unquote(m4_split(m4_normalize(m4_foreach(_Lt_key, lt_car([m4_shiftn(4, $@)]), + [lt_if_dict_fetch([$1], _Lt_key, [$2], [$3], [_Lt_key ])])))))])[]dnl +]) diff -Nru klavaro-1.9.9/m4/ltversion.m4 klavaro-3.00/m4/ltversion.m4 --- klavaro-1.9.9/m4/ltversion.m4 1970-01-01 00:00:00.000000000 +0000 +++ klavaro-3.00/m4/ltversion.m4 2014-01-02 20:30:56.000000000 +0000 @@ -0,0 +1,23 @@ +# ltversion.m4 -- version numbers -*- Autoconf -*- +# +# Copyright (C) 2004 Free Software Foundation, Inc. +# Written by Scott James Remnant, 2004 +# +# This file is free software; the Free Software Foundation gives +# unlimited permission to copy and/or distribute it, with or without +# modifications, as long as this notice is preserved. + +# @configure_input@ + +# serial 3337 ltversion.m4 +# This file is part of GNU Libtool + +m4_define([LT_PACKAGE_VERSION], [2.4.2]) +m4_define([LT_PACKAGE_REVISION], [1.3337]) + +AC_DEFUN([LTVERSION_VERSION], +[macro_version='2.4.2' +macro_revision='1.3337' +_LT_DECL(, macro_version, 0, [Which release of libtool.m4 was used?]) +_LT_DECL(, macro_revision, 0) +]) diff -Nru klavaro-1.9.9/m4/nls.m4 klavaro-3.00/m4/nls.m4 --- klavaro-1.9.9/m4/nls.m4 1970-01-01 00:00:00.000000000 +0000 +++ klavaro-3.00/m4/nls.m4 2014-01-04 19:02:05.000000000 +0000 @@ -0,0 +1,32 @@ +# nls.m4 serial 5 (gettext-0.18) +dnl Copyright (C) 1995-2003, 2005-2006, 2008-2013 Free Software Foundation, +dnl Inc. +dnl This file is free software; the Free Software Foundation +dnl gives unlimited permission to copy and/or distribute it, +dnl with or without modifications, as long as this notice is preserved. +dnl +dnl This file can can be used in projects which are not available under +dnl the GNU General Public License or the GNU Library General Public +dnl License but which still want to provide support for the GNU gettext +dnl functionality. +dnl Please note that the actual code of the GNU gettext library is covered +dnl by the GNU Library General Public License, and the rest of the GNU +dnl gettext package package is covered by the GNU General Public License. +dnl They are *not* in the public domain. + +dnl Authors: +dnl Ulrich Drepper , 1995-2000. +dnl Bruno Haible , 2000-2003. + +AC_PREREQ([2.50]) + +AC_DEFUN([AM_NLS], +[ + AC_MSG_CHECKING([whether NLS is requested]) + dnl Default is enabled NLS + AC_ARG_ENABLE([nls], + [ --disable-nls do not use Native Language Support], + USE_NLS=$enableval, USE_NLS=yes) + AC_MSG_RESULT([$USE_NLS]) + AC_SUBST([USE_NLS]) +]) diff -Nru klavaro-1.9.9/m4/po.m4 klavaro-3.00/m4/po.m4 --- klavaro-1.9.9/m4/po.m4 1970-01-01 00:00:00.000000000 +0000 +++ klavaro-3.00/m4/po.m4 2014-01-04 19:02:05.000000000 +0000 @@ -0,0 +1,453 @@ +# po.m4 serial 21 (gettext-0.18.3) +dnl Copyright (C) 1995-2013 Free Software Foundation, Inc. +dnl This file is free software; the Free Software Foundation +dnl gives unlimited permission to copy and/or distribute it, +dnl with or without modifications, as long as this notice is preserved. +dnl +dnl This file can can be used in projects which are not available under +dnl the GNU General Public License or the GNU Library General Public +dnl License but which still want to provide support for the GNU gettext +dnl functionality. +dnl Please note that the actual code of the GNU gettext library is covered +dnl by the GNU Library General Public License, and the rest of the GNU +dnl gettext package package is covered by the GNU General Public License. +dnl They are *not* in the public domain. + +dnl Authors: +dnl Ulrich Drepper , 1995-2000. +dnl Bruno Haible , 2000-2003. + +AC_PREREQ([2.60]) + +dnl Checks for all prerequisites of the po subdirectory. +AC_DEFUN([AM_PO_SUBDIRS], +[ + AC_REQUIRE([AC_PROG_MAKE_SET])dnl + AC_REQUIRE([AC_PROG_INSTALL])dnl + AC_REQUIRE([AC_PROG_MKDIR_P])dnl + AC_REQUIRE([AC_PROG_SED])dnl + AC_REQUIRE([AM_NLS])dnl + + dnl Release version of the gettext macros. This is used to ensure that + dnl the gettext macros and po/Makefile.in.in are in sync. + AC_SUBST([GETTEXT_MACRO_VERSION], [0.18]) + + dnl Perform the following tests also if --disable-nls has been given, + dnl because they are needed for "make dist" to work. + + dnl Search for GNU msgfmt in the PATH. + dnl The first test excludes Solaris msgfmt and early GNU msgfmt versions. + dnl The second test excludes FreeBSD msgfmt. + AM_PATH_PROG_WITH_TEST(MSGFMT, msgfmt, + [$ac_dir/$ac_word --statistics /dev/null >&]AS_MESSAGE_LOG_FD[ 2>&1 && + (if $ac_dir/$ac_word --statistics /dev/null 2>&1 >/dev/null | grep usage >/dev/null; then exit 1; else exit 0; fi)], + :) + AC_PATH_PROG([GMSGFMT], [gmsgfmt], [$MSGFMT]) + + dnl Test whether it is GNU msgfmt >= 0.15. +changequote(,)dnl + case `$MSGFMT --version | sed 1q | sed -e 's,^[^0-9]*,,'` in + '' | 0.[0-9] | 0.[0-9].* | 0.1[0-4] | 0.1[0-4].*) MSGFMT_015=: ;; + *) MSGFMT_015=$MSGFMT ;; + esac +changequote([,])dnl + AC_SUBST([MSGFMT_015]) +changequote(,)dnl + case `$GMSGFMT --version | sed 1q | sed -e 's,^[^0-9]*,,'` in + '' | 0.[0-9] | 0.[0-9].* | 0.1[0-4] | 0.1[0-4].*) GMSGFMT_015=: ;; + *) GMSGFMT_015=$GMSGFMT ;; + esac +changequote([,])dnl + AC_SUBST([GMSGFMT_015]) + + dnl Search for GNU xgettext 0.12 or newer in the PATH. + dnl The first test excludes Solaris xgettext and early GNU xgettext versions. + dnl The second test excludes FreeBSD xgettext. + AM_PATH_PROG_WITH_TEST(XGETTEXT, xgettext, + [$ac_dir/$ac_word --omit-header --copyright-holder= --msgid-bugs-address= /dev/null >&]AS_MESSAGE_LOG_FD[ 2>&1 && + (if $ac_dir/$ac_word --omit-header --copyright-holder= --msgid-bugs-address= /dev/null 2>&1 >/dev/null | grep usage >/dev/null; then exit 1; else exit 0; fi)], + :) + dnl Remove leftover from FreeBSD xgettext call. + rm -f messages.po + + dnl Test whether it is GNU xgettext >= 0.15. +changequote(,)dnl + case `$XGETTEXT --version | sed 1q | sed -e 's,^[^0-9]*,,'` in + '' | 0.[0-9] | 0.[0-9].* | 0.1[0-4] | 0.1[0-4].*) XGETTEXT_015=: ;; + *) XGETTEXT_015=$XGETTEXT ;; + esac +changequote([,])dnl + AC_SUBST([XGETTEXT_015]) + + dnl Search for GNU msgmerge 0.11 or newer in the PATH. + AM_PATH_PROG_WITH_TEST(MSGMERGE, msgmerge, + [$ac_dir/$ac_word --update -q /dev/null /dev/null >&]AS_MESSAGE_LOG_FD[ 2>&1], :) + + dnl Installation directories. + dnl Autoconf >= 2.60 defines localedir. For older versions of autoconf, we + dnl have to define it here, so that it can be used in po/Makefile. + test -n "$localedir" || localedir='${datadir}/locale' + AC_SUBST([localedir]) + + dnl Support for AM_XGETTEXT_OPTION. + test -n "${XGETTEXT_EXTRA_OPTIONS+set}" || XGETTEXT_EXTRA_OPTIONS= + AC_SUBST([XGETTEXT_EXTRA_OPTIONS]) + + AC_CONFIG_COMMANDS([po-directories], [[ + for ac_file in $CONFIG_FILES; do + # Support "outfile[:infile[:infile...]]" + case "$ac_file" in + *:*) ac_file=`echo "$ac_file"|sed 's%:.*%%'` ;; + esac + # PO directories have a Makefile.in generated from Makefile.in.in. + case "$ac_file" in */Makefile.in) + # Adjust a relative srcdir. + ac_dir=`echo "$ac_file"|sed 's%/[^/][^/]*$%%'` + ac_dir_suffix=/`echo "$ac_dir"|sed 's%^\./%%'` + ac_dots=`echo "$ac_dir_suffix"|sed 's%/[^/]*%../%g'` + # In autoconf-2.13 it is called $ac_given_srcdir. + # In autoconf-2.50 it is called $srcdir. + test -n "$ac_given_srcdir" || ac_given_srcdir="$srcdir" + case "$ac_given_srcdir" in + .) top_srcdir=`echo $ac_dots|sed 's%/$%%'` ;; + /*) top_srcdir="$ac_given_srcdir" ;; + *) top_srcdir="$ac_dots$ac_given_srcdir" ;; + esac + # Treat a directory as a PO directory if and only if it has a + # POTFILES.in file. This allows packages to have multiple PO + # directories under different names or in different locations. + if test -f "$ac_given_srcdir/$ac_dir/POTFILES.in"; then + rm -f "$ac_dir/POTFILES" + test -n "$as_me" && echo "$as_me: creating $ac_dir/POTFILES" || echo "creating $ac_dir/POTFILES" + gt_tab=`printf '\t'` + cat "$ac_given_srcdir/$ac_dir/POTFILES.in" | sed -e "/^#/d" -e "/^[ ${gt_tab}]*\$/d" -e "s,.*, $top_srcdir/& \\\\," | sed -e "\$s/\(.*\) \\\\/\1/" > "$ac_dir/POTFILES" + POMAKEFILEDEPS="POTFILES.in" + # ALL_LINGUAS, POFILES, UPDATEPOFILES, DUMMYPOFILES, GMOFILES depend + # on $ac_dir but don't depend on user-specified configuration + # parameters. + if test -f "$ac_given_srcdir/$ac_dir/LINGUAS"; then + # The LINGUAS file contains the set of available languages. + if test -n "$OBSOLETE_ALL_LINGUAS"; then + test -n "$as_me" && echo "$as_me: setting ALL_LINGUAS in configure.in is obsolete" || echo "setting ALL_LINGUAS in configure.in is obsolete" + fi + ALL_LINGUAS_=`sed -e "/^#/d" -e "s/#.*//" "$ac_given_srcdir/$ac_dir/LINGUAS"` + # Hide the ALL_LINGUAS assignment from automake < 1.5. + eval 'ALL_LINGUAS''=$ALL_LINGUAS_' + POMAKEFILEDEPS="$POMAKEFILEDEPS LINGUAS" + else + # The set of available languages was given in configure.in. + # Hide the ALL_LINGUAS assignment from automake < 1.5. + eval 'ALL_LINGUAS''=$OBSOLETE_ALL_LINGUAS' + fi + # Compute POFILES + # as $(foreach lang, $(ALL_LINGUAS), $(srcdir)/$(lang).po) + # Compute UPDATEPOFILES + # as $(foreach lang, $(ALL_LINGUAS), $(lang).po-update) + # Compute DUMMYPOFILES + # as $(foreach lang, $(ALL_LINGUAS), $(lang).nop) + # Compute GMOFILES + # as $(foreach lang, $(ALL_LINGUAS), $(srcdir)/$(lang).gmo) + case "$ac_given_srcdir" in + .) srcdirpre= ;; + *) srcdirpre='$(srcdir)/' ;; + esac + POFILES= + UPDATEPOFILES= + DUMMYPOFILES= + GMOFILES= + for lang in $ALL_LINGUAS; do + POFILES="$POFILES $srcdirpre$lang.po" + UPDATEPOFILES="$UPDATEPOFILES $lang.po-update" + DUMMYPOFILES="$DUMMYPOFILES $lang.nop" + GMOFILES="$GMOFILES $srcdirpre$lang.gmo" + done + # CATALOGS depends on both $ac_dir and the user's LINGUAS + # environment variable. + INST_LINGUAS= + if test -n "$ALL_LINGUAS"; then + for presentlang in $ALL_LINGUAS; do + useit=no + if test "%UNSET%" != "$LINGUAS"; then + desiredlanguages="$LINGUAS" + else + desiredlanguages="$ALL_LINGUAS" + fi + for desiredlang in $desiredlanguages; do + # Use the presentlang catalog if desiredlang is + # a. equal to presentlang, or + # b. a variant of presentlang (because in this case, + # presentlang can be used as a fallback for messages + # which are not translated in the desiredlang catalog). + case "$desiredlang" in + "$presentlang"*) useit=yes;; + esac + done + if test $useit = yes; then + INST_LINGUAS="$INST_LINGUAS $presentlang" + fi + done + fi + CATALOGS= + if test -n "$INST_LINGUAS"; then + for lang in $INST_LINGUAS; do + CATALOGS="$CATALOGS $lang.gmo" + done + fi + test -n "$as_me" && echo "$as_me: creating $ac_dir/Makefile" || echo "creating $ac_dir/Makefile" + sed -e "/^POTFILES =/r $ac_dir/POTFILES" -e "/^# Makevars/r $ac_given_srcdir/$ac_dir/Makevars" -e "s|@POFILES@|$POFILES|g" -e "s|@UPDATEPOFILES@|$UPDATEPOFILES|g" -e "s|@DUMMYPOFILES@|$DUMMYPOFILES|g" -e "s|@GMOFILES@|$GMOFILES|g" -e "s|@CATALOGS@|$CATALOGS|g" -e "s|@POMAKEFILEDEPS@|$POMAKEFILEDEPS|g" "$ac_dir/Makefile.in" > "$ac_dir/Makefile" + for f in "$ac_given_srcdir/$ac_dir"/Rules-*; do + if test -f "$f"; then + case "$f" in + *.orig | *.bak | *~) ;; + *) cat "$f" >> "$ac_dir/Makefile" ;; + esac + fi + done + fi + ;; + esac + done]], + [# Capture the value of obsolete ALL_LINGUAS because we need it to compute + # POFILES, UPDATEPOFILES, DUMMYPOFILES, GMOFILES, CATALOGS. But hide it + # from automake < 1.5. + eval 'OBSOLETE_ALL_LINGUAS''="$ALL_LINGUAS"' + # Capture the value of LINGUAS because we need it to compute CATALOGS. + LINGUAS="${LINGUAS-%UNSET%}" + ]) +]) + +dnl Postprocesses a Makefile in a directory containing PO files. +AC_DEFUN([AM_POSTPROCESS_PO_MAKEFILE], +[ + # When this code is run, in config.status, two variables have already been + # set: + # - OBSOLETE_ALL_LINGUAS is the value of LINGUAS set in configure.in, + # - LINGUAS is the value of the environment variable LINGUAS at configure + # time. + +changequote(,)dnl + # Adjust a relative srcdir. + ac_dir=`echo "$ac_file"|sed 's%/[^/][^/]*$%%'` + ac_dir_suffix=/`echo "$ac_dir"|sed 's%^\./%%'` + ac_dots=`echo "$ac_dir_suffix"|sed 's%/[^/]*%../%g'` + # In autoconf-2.13 it is called $ac_given_srcdir. + # In autoconf-2.50 it is called $srcdir. + test -n "$ac_given_srcdir" || ac_given_srcdir="$srcdir" + case "$ac_given_srcdir" in + .) top_srcdir=`echo $ac_dots|sed 's%/$%%'` ;; + /*) top_srcdir="$ac_given_srcdir" ;; + *) top_srcdir="$ac_dots$ac_given_srcdir" ;; + esac + + # Find a way to echo strings without interpreting backslash. + if test "X`(echo '\t') 2>/dev/null`" = 'X\t'; then + gt_echo='echo' + else + if test "X`(printf '%s\n' '\t') 2>/dev/null`" = 'X\t'; then + gt_echo='printf %s\n' + else + echo_func () { + cat < "$ac_file.tmp" + tab=`printf '\t'` + if grep -l '@TCLCATALOGS@' "$ac_file" > /dev/null; then + # Add dependencies that cannot be formulated as a simple suffix rule. + for lang in $ALL_LINGUAS; do + frobbedlang=`echo $lang | sed -e 's/\..*$//' -e 'y/ABCDEFGHIJKLMNOPQRSTUVWXYZ/abcdefghijklmnopqrstuvwxyz/'` + cat >> "$ac_file.tmp" < /dev/null; then + # Add dependencies that cannot be formulated as a simple suffix rule. + for lang in $ALL_LINGUAS; do + frobbedlang=`echo $lang | sed -e 's/_/-/g' -e 's/^sr-CS/sr-SP/' -e 's/@latin$/-Latn/' -e 's/@cyrillic$/-Cyrl/' -e 's/^sr-SP$/sr-SP-Latn/' -e 's/^uz-UZ$/uz-UZ-Latn/'` + cat >> "$ac_file.tmp" <> "$ac_file.tmp" <, 1996. + +AC_PREREQ([2.50]) + +# Search path for a program which passes the given test. + +dnl AM_PATH_PROG_WITH_TEST(VARIABLE, PROG-TO-CHECK-FOR, +dnl TEST-PERFORMED-ON-FOUND_PROGRAM [, VALUE-IF-NOT-FOUND [, PATH]]) +AC_DEFUN([AM_PATH_PROG_WITH_TEST], +[ +# Prepare PATH_SEPARATOR. +# The user is always right. +if test "${PATH_SEPARATOR+set}" != set; then + # Determine PATH_SEPARATOR by trying to find /bin/sh in a PATH which + # contains only /bin. Note that ksh looks also at the FPATH variable, + # so we have to set that as well for the test. + PATH_SEPARATOR=: + (PATH='/bin;/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 \ + && { (PATH='/bin:/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 \ + || PATH_SEPARATOR=';' + } +fi + +# Find out how to test for executable files. Don't use a zero-byte file, +# as systems may use methods other than mode bits to determine executability. +cat >conf$$.file <<_ASEOF +#! /bin/sh +exit 0 +_ASEOF +chmod +x conf$$.file +if test -x conf$$.file >/dev/null 2>&1; then + ac_executable_p="test -x" +else + ac_executable_p="test -f" +fi +rm -f conf$$.file + +# Extract the first word of "$2", so it can be a program name with args. +set dummy $2; ac_word=[$]2 +AC_MSG_CHECKING([for $ac_word]) +AC_CACHE_VAL([ac_cv_path_$1], +[case "[$]$1" in + [[\\/]]* | ?:[[\\/]]*) + ac_cv_path_$1="[$]$1" # Let the user override the test with a path. + ;; + *) + ac_save_IFS="$IFS"; IFS=$PATH_SEPARATOR + for ac_dir in ifelse([$5], , $PATH, [$5]); do + IFS="$ac_save_IFS" + test -z "$ac_dir" && ac_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if $ac_executable_p "$ac_dir/$ac_word$ac_exec_ext"; then + echo "$as_me: trying $ac_dir/$ac_word..." >&AS_MESSAGE_LOG_FD + if [$3]; then + ac_cv_path_$1="$ac_dir/$ac_word$ac_exec_ext" + break 2 + fi + fi + done + done + IFS="$ac_save_IFS" +dnl If no 4th arg is given, leave the cache variable unset, +dnl so AC_PATH_PROGS will keep looking. +ifelse([$4], , , [ test -z "[$]ac_cv_path_$1" && ac_cv_path_$1="$4" +])dnl + ;; +esac])dnl +$1="$ac_cv_path_$1" +if test ifelse([$4], , [-n "[$]$1"], ["[$]$1" != "$4"]); then + AC_MSG_RESULT([$][$1]) +else + AC_MSG_RESULT([no]) +fi +AC_SUBST([$1])dnl +]) diff -Nru klavaro-1.9.9/Makefile.am klavaro-3.00/Makefile.am --- klavaro-1.9.9/Makefile.am 2013-08-15 13:26:59.000000000 +0000 +++ klavaro-3.00/Makefile.am 2014-01-03 18:52:38.000000000 +0000 @@ -1,7 +1,7 @@ ## Process this file with automake to produce Makefile.in -SUBDIRS = src data po doc +SUBDIRS = gtkdatabox src data po doc -EXTRA_DIST = TODO ABOUT-NLS intltool-extract.in intltool-merge.in intltool-update.in +EXTRA_DIST = m4/ChangeLog TODO ABOUT-NLS intltool-extract.in intltool-merge.in intltool-update.in - +ACLOCAL_AMFLAGS = -I m4 diff -Nru klavaro-1.9.9/Makefile.in klavaro-3.00/Makefile.in --- klavaro-1.9.9/Makefile.in 2013-08-15 13:46:55.000000000 +0000 +++ klavaro-3.00/Makefile.in 2014-01-21 23:25:38.000000000 +0000 @@ -1,4 +1,4 @@ -# Makefile.in generated by automake 1.13.3 from Makefile.am. +# Makefile.in generated by automake 1.14.1 from Makefile.am. # @configure_input@ # Copyright (C) 1994-2013 Free Software Foundation, Inc. @@ -82,10 +82,17 @@ $(srcdir)/Makefile.in $(srcdir)/Makefile.am \ $(top_srcdir)/configure $(am__configure_deps) \ $(srcdir)/config.h.in mkinstalldirs ABOUT-NLS COPYING TODO \ - config.guess config.rpath config.sub depcomp install-sh \ - missing + ar-lib compile config.guess config.rpath config.sub depcomp \ + install-sh missing ltmain.sh ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 -am__aclocal_m4_deps = $(top_srcdir)/configure.ac +am__aclocal_m4_deps = $(top_srcdir)/m4/gettext.m4 \ + $(top_srcdir)/m4/iconv.m4 $(top_srcdir)/m4/intltool.m4 \ + $(top_srcdir)/m4/lib-ld.m4 $(top_srcdir)/m4/lib-link.m4 \ + $(top_srcdir)/m4/lib-prefix.m4 $(top_srcdir)/m4/libtool.m4 \ + $(top_srcdir)/m4/ltoptions.m4 $(top_srcdir)/m4/ltsugar.m4 \ + $(top_srcdir)/m4/ltversion.m4 $(top_srcdir)/m4/lt~obsolete.m4 \ + $(top_srcdir)/m4/nls.m4 $(top_srcdir)/m4/po.m4 \ + $(top_srcdir)/m4/progtest.m4 $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) am__CONFIG_DISTCLEAN_FILES = config.status config.cache config.log \ @@ -197,10 +204,13 @@ ALL_LINGUAS = @ALL_LINGUAS@ AMTAR = @AMTAR@ AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ +AR = @AR@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ +CAIRO_CFLAGS = @CAIRO_CFLAGS@ +CAIRO_LIBS = @CAIRO_LIBS@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ @@ -210,17 +220,22 @@ DATADIRNAME = @DATADIRNAME@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ +DLLTOOL = @DLLTOOL@ +DSYMUTIL = @DSYMUTIL@ +DUMPBIN = @DUMPBIN@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EXEEXT = @EXEEXT@ +FGREP = @FGREP@ GETTEXT_MACRO_VERSION = @GETTEXT_MACRO_VERSION@ GETTEXT_PACKAGE = @GETTEXT_PACKAGE@ GMSGFMT = @GMSGFMT@ GMSGFMT_015 = @GMSGFMT_015@ GREP = @GREP@ -GTKBLDRCONV = @GTKBLDRCONV@ +GTK_CFLAGS = @GTK_CFLAGS@ +GTK_LIBS = @GTK_LIBS@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ @@ -236,35 +251,46 @@ INTLTOOL__v_MERGE_ = @INTLTOOL__v_MERGE_@ INTLTOOL__v_MERGE_0 = @INTLTOOL__v_MERGE_0@ INTL_MACOSX_LIBS = @INTL_MACOSX_LIBS@ +LD = @LD@ LDFLAGS = @LDFLAGS@ LIBICONV = @LIBICONV@ LIBINTL = @LIBINTL@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ +LIBTOOL = @LIBTOOL@ +LIPO = @LIPO@ +LN_S = @LN_S@ LTLIBICONV = @LTLIBICONV@ LTLIBINTL = @LTLIBINTL@ LTLIBOBJS = @LTLIBOBJS@ MAKEINFO = @MAKEINFO@ +MANIFEST_TOOL = @MANIFEST_TOOL@ MKDIR_P = @MKDIR_P@ MSGFMT = @MSGFMT@ MSGFMT_015 = @MSGFMT_015@ MSGMERGE = @MSGMERGE@ +NM = @NM@ +NMEDIT = @NMEDIT@ +OBJDUMP = @OBJDUMP@ OBJEXT = @OBJEXT@ +OTOOL = @OTOOL@ +OTOOL64 = @OTOOL64@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ -PACKAGE_CFLAGS = @PACKAGE_CFLAGS@ -PACKAGE_LIBS = @PACKAGE_LIBS@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ +PANGO_CFLAGS = @PANGO_CFLAGS@ +PANGO_LIBS = @PANGO_LIBS@ PATH_SEPARATOR = @PATH_SEPARATOR@ PKG_CONFIG = @PKG_CONFIG@ PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@ PKG_CONFIG_PATH = @PKG_CONFIG_PATH@ POSUB = @POSUB@ POW_LIB = @POW_LIB@ +RANLIB = @RANLIB@ SED = @SED@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ @@ -278,7 +304,9 @@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ +ac_ct_AR = @ac_ct_AR@ ac_ct_CC = @ac_ct_CC@ +ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ @@ -326,8 +354,9 @@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ -SUBDIRS = src data po doc -EXTRA_DIST = TODO ABOUT-NLS intltool-extract.in intltool-merge.in intltool-update.in +SUBDIRS = gtkdatabox src data po doc +EXTRA_DIST = m4/ChangeLog TODO ABOUT-NLS intltool-extract.in intltool-merge.in intltool-update.in +ACLOCAL_AMFLAGS = -I m4 all: config.h $(MAKE) $(AM_MAKEFLAGS) all-recursive @@ -368,8 +397,8 @@ $(am__aclocal_m4_deps): config.h: stamp-h1 - @if test ! -f $@; then rm -f stamp-h1; else :; fi - @if test ! -f $@; then $(MAKE) $(AM_MAKEFLAGS) stamp-h1; else :; fi + @test -f $@ || rm -f stamp-h1 + @test -f $@ || $(MAKE) $(AM_MAKEFLAGS) stamp-h1 stamp-h1: $(srcdir)/config.h.in $(top_builddir)/config.status @rm -f stamp-h1 @@ -382,6 +411,15 @@ distclean-hdr: -rm -f config.h stamp-h1 +mostlyclean-libtool: + -rm -f *.lo + +clean-libtool: + -rm -rf .libs _libs + +distclean-libtool: + -rm -f libtool config.lt + # This directory's subdirectories are mostly independent; you can cd # into them and run 'make' without going through this Makefile. # To change the values of 'make' variables: instead of editing Makefiles, @@ -569,10 +607,16 @@ $(am__post_remove_distdir) dist-tarZ: distdir + @echo WARNING: "Support for shar distribution archives is" \ + "deprecated." >&2 + @echo WARNING: "It will be removed altogether in Automake 2.0" >&2 tardir=$(distdir) && $(am__tar) | compress -c >$(distdir).tar.Z $(am__post_remove_distdir) dist-shar: distdir + @echo WARNING: "Support for distribution archives compressed with" \ + "legacy program 'compress' is deprecated." >&2 + @echo WARNING: "It will be removed altogether in Automake 2.0" >&2 shar $(distdir) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).shar.gz $(am__post_remove_distdir) @@ -614,9 +658,10 @@ && dc_destdir="$${TMPDIR-/tmp}/am-dc-$$$$/" \ && am__cwd=`pwd` \ && $(am__cd) $(distdir)/_build \ - && ../configure --srcdir=.. --prefix="$$dc_install_base" \ + && ../configure \ $(AM_DISTCHECK_CONFIGURE_FLAGS) \ $(DISTCHECK_CONFIGURE_FLAGS) \ + --srcdir=.. --prefix="$$dc_install_base" \ && $(MAKE) $(AM_MAKEFLAGS) \ && $(MAKE) $(AM_MAKEFLAGS) dvi \ && $(MAKE) $(AM_MAKEFLAGS) check \ @@ -706,12 +751,13 @@ @echo "it deletes files that may require special tools to rebuild." clean: clean-recursive -clean-am: clean-generic mostlyclean-am +clean-am: clean-generic clean-libtool mostlyclean-am distclean: distclean-recursive -rm -f $(am__CONFIG_DISTCLEAN_FILES) -rm -f Makefile -distclean-am: clean-am distclean-generic distclean-hdr distclean-tags +distclean-am: clean-am distclean-generic distclean-hdr \ + distclean-libtool distclean-tags dvi: dvi-recursive @@ -761,7 +807,7 @@ mostlyclean: mostlyclean-recursive -mostlyclean-am: mostlyclean-generic +mostlyclean-am: mostlyclean-generic mostlyclean-libtool pdf: pdf-recursive @@ -777,18 +823,19 @@ .PHONY: $(am__recursive_targets) CTAGS GTAGS TAGS all all-am \ am--refresh check check-am clean clean-cscope clean-generic \ - cscope cscopelist-am ctags ctags-am dist dist-all dist-bzip2 \ - dist-gzip dist-lzip dist-shar dist-tarZ dist-xz dist-zip \ - distcheck distclean distclean-generic distclean-hdr \ - distclean-tags distcleancheck distdir distuninstallcheck dvi \ - dvi-am html html-am info info-am install install-am \ - install-data install-data-am install-dvi install-dvi-am \ - install-exec install-exec-am install-html install-html-am \ - install-info install-info-am install-man install-pdf \ - install-pdf-am install-ps install-ps-am install-strip \ - installcheck installcheck-am installdirs installdirs-am \ - maintainer-clean maintainer-clean-generic mostlyclean \ - mostlyclean-generic pdf pdf-am ps ps-am tags tags-am uninstall \ + clean-libtool cscope cscopelist-am ctags ctags-am dist \ + dist-all dist-bzip2 dist-gzip dist-lzip dist-shar dist-tarZ \ + dist-xz dist-zip distcheck distclean distclean-generic \ + distclean-hdr distclean-libtool distclean-tags distcleancheck \ + distdir distuninstallcheck dvi dvi-am html html-am info \ + info-am install install-am install-data install-data-am \ + install-dvi install-dvi-am install-exec install-exec-am \ + install-html install-html-am install-info install-info-am \ + install-man install-pdf install-pdf-am install-ps \ + install-ps-am install-strip installcheck installcheck-am \ + installdirs installdirs-am maintainer-clean \ + maintainer-clean-generic mostlyclean mostlyclean-generic \ + mostlyclean-libtool pdf pdf-am ps ps-am tags tags-am uninstall \ uninstall-am diff -Nru klavaro-1.9.9/NEWS klavaro-3.00/NEWS --- klavaro-1.9.9/NEWS 2013-08-31 17:54:21.000000000 +0000 +++ klavaro-3.00/NEWS 2014-01-21 23:39:36.000000000 +0000 @@ -1,4 +1,11 @@ _____________ +Version 3.00 + +- Moved to GTK+3! +- Configurable goals and levels. +- New language added: Finnish, partially. + +_____________ Version 1.9.9 - New language added: Greek, enjoy it! diff -Nru klavaro-1.9.9/po/ar.po klavaro-3.00/po/ar.po --- klavaro-1.9.9/po/ar.po 2013-08-15 13:38:48.000000000 +0000 +++ klavaro-3.00/po/ar.po 2014-01-13 23:25:48.000000000 +0000 @@ -6,8 +6,8 @@ msgid "" msgstr "" "Project-Id-Version: klavaro 1.3.0\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2013-08-15 10:38-0300\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2014-01-13 21:25-0200\n" "PO-Revision-Date: 2009-10-20 13:59+0300\n" "Last-Translator: Usama Akkad \n" "Language-Team: Arabic \n" @@ -18,456 +18,462 @@ "Plural-Forms: nplurals=6; plural= n==0 ? 0 : n==1 ? 1 : n==2 ? 2 : n%100>=3 " "&& n%100<=10 ? 3 : n%100>=11 && n%100<=99 ? 4 : 5;\n" -#: ../data/klavaro.desktop.in.h:1 ../data/klavaro.glade.h:59 -msgid "Yet another touch typing tutor" -msgstr "جولة تعليم طباعة أخرى جديدة" - #: ../data/klavaro.glade.h:1 -msgid "Klavaro - Main menu" -msgstr "كلفاروا - القائمة الرئيسية" +msgid "About 'Klavaro'" +msgstr "حول 'كلفاروا'" #: ../data/klavaro.glade.h:2 -msgid "Don't be shy about learning the basics!" -msgstr "لا تكن خجولا من تعلم الأساسيات!" +msgid "Yet another touch typing tutor" +msgstr "جولة تعليم طباعة أخرى جديدة" #: ../data/klavaro.glade.h:3 -msgid "Learn how to type correctly" -msgstr "تعلم طريقة الطباعة الصحيحة" +msgid "Remember always: someone loves you!" +msgstr "تذكر دائما: شخص ما يحبك!" #: ../data/klavaro.glade.h:4 -msgid "Initial training for your fingers." -msgstr "تدريب ابتدائي لأصابعك." +msgid "Change language" +msgstr "غير اللغة" #: ../data/klavaro.glade.h:5 -msgid "First steps with initial training" -msgstr "الخطوات الأولى للتعليم الابتدائي" +msgid "Attention!" +msgstr "إنتباه!" #: ../data/klavaro.glade.h:6 -msgid "Memorizing the keyboard practicing random keys exercises." -msgstr "حفظ لوحة المفاتيح بتمارين مفاتيح عشوائية." +msgid "Do you confirm?" +msgstr "أتؤكد؟" #: ../data/klavaro.glade.h:7 -msgid "Practice with random keys" -msgstr "التمرن بمفاتيح عشوائية" +msgid "_No" +msgstr "_لا" + +#: ../data/klavaro.glade.h:8 +msgid "_Yes" +msgstr "_نعم" -#. English typo: touchs -> touches #: ../data/klavaro.glade.h:9 -#, fuzzy -msgid "Accelerating the touches practicing random words exercises." -msgstr "تسريع اللمسات بالتمرن على كلمات عشوائية." +msgid "Help?" +msgstr "مساعدة؟" #: ../data/klavaro.glade.h:10 -msgid "Practice with random words" -msgstr "التدرب بكلمات عشوائية" +msgid "This is a tip. Now you press this button to return to the main menu." +msgstr "هذا تلميح. الآن انقر هذا الزر للعودة للقائمة الرئيسية." #: ../data/klavaro.glade.h:11 -msgid "Becoming proficient practicing complete paragraphs exercises." -msgstr "الإتقان بالتمرن على فقرات كاملة." +msgid "B_ack to menu" +msgstr "ارجع لل_قائمة" #: ../data/klavaro.glade.h:12 -msgid "Practice with complete texts" -msgstr "تمرن بفقرات كاملة" +msgid "" +"The main menu of the application is very straightforward. Just select the " +"type of exercise you wish to take. Do not worry about clicking any button on " +"the screen. The buttons will never hurt you!" +msgstr "" +"القائمة الرئيسية للبرنامج ميسرة جدا. حدد نوع التمرين الذي تريده. لا تقلق من " +"ضغط أي زر على الشاشة. لن تضرك الأزرار أبدا!" #: ../data/klavaro.glade.h:13 msgid "" -"Keyboard layout for modules 1 and 2. Also used informatively in the " -"fluidness contest." +"Also the controls have tips which will appear if you hover over them with " +"your mouse. These tips can come in very handy. To see how these tips work, " +"position your mouse over the button below, and without clicking, wait for " +"the tip to appear..." msgstr "" -"Keyboard layout for modules 1 and 2. Also used informatively in the " -"fluidness contest." +"أيضا الأزرار لها تلميحات تظهر عند الوقوف عليها. التلميحات هذه مفيدة. لترى " +"كيف تعمل, ضع مؤشر الفأرة على الزر ادناه, ودون نقر, انتظر ظهور التلميح..." #: ../data/klavaro.glade.h:14 -msgid "_Keyboard:" -msgstr "_لوحة المفاتيح:" +msgid "Klavaro - Select file" +msgstr "كلفاروا - حدد ملفا" #: ../data/klavaro.glade.h:15 -msgid "Language for modules 3 and 4." -msgstr "اللغة للمكون 3 و 4." +msgid "_Cancel" +msgstr "إ_لغ" #: ../data/klavaro.glade.h:16 -msgid "_Language:" -msgstr "الل_غة:" +msgid "_Open" +msgstr "ا_فتح" #: ../data/klavaro.glade.h:17 -msgid "Variant" -msgstr "البديل" +msgid "Re_name:" +msgstr "أعد ال_تسمية:" #: ../data/klavaro.glade.h:18 -#, fuzzy -msgid "Klavaro" -msgstr "حول 'كلفاروا'" +msgid "Rename the selected item." +msgstr "أعد تسمية العنصر المحدد." #: ../data/klavaro.glade.h:19 -msgid "Country / Custom" -msgstr "البلد / مخصص" +msgid "" +"Read a text file and add a copy of it here. The file must be encoded in " +"UTF-8." +msgstr "اقرأ ملفا نصيا و اضف نسخة منه هنا. يجب أن يكون بترميز UTF-8." #: ../data/klavaro.glade.h:20 -msgid "Your language here." -msgstr "لغتك هنا." +msgid "_Open text file" +msgstr "ا_فتح ملفا نصيا" #: ../data/klavaro.glade.h:21 -#, fuzzy -msgid "Speech" -msgstr "السرعة" +msgid "Paste text that was copied to the clipboard." +msgstr "الصق الملف المنسوخ للحافظة." #: ../data/klavaro.glade.h:22 -msgid "Little tip about this program." -msgstr "لمحة صغيرة عن البرنامج." +msgid "_Paste from clipboard" +msgstr "أ_لصق من الحافظة" #: ../data/klavaro.glade.h:23 -msgid "_Help" -msgstr "_مساعدة" +msgid "Remove the selected item." +msgstr "أزل العنصر المحدد." #: ../data/klavaro.glade.h:24 -msgid "General information about the program." -msgstr "معلومات عامة عن البرنامج." +msgid "_Remove copied file" +msgstr "أ_زل العناصر المنسوخة" #: ../data/klavaro.glade.h:25 -msgid "_About..." -msgstr "_حول..." +msgid "Apply the selected item to create an exercise." +msgstr "طبق العناصر المحددة لتطبيق تمرين." #: ../data/klavaro.glade.h:26 -msgid "Exit the application immediately." -msgstr "اخرج من البرنامج مباشرة." +msgid "_Apply" +msgstr "_طبق" #: ../data/klavaro.glade.h:27 -msgid "_Close" -msgstr "أ_غلق" +msgid "Close this window." +msgstr "أغلق هذه النافذة." #: ../data/klavaro.glade.h:28 -msgid "Load other exercises/lessons" -msgstr "حمل تمارين/دروس أخرى" +msgid "_Close" +msgstr "أ_غلق" #: ../data/klavaro.glade.h:29 -msgid "_Other texts" -msgstr "_نصوص أخرى" +msgid "Country / Custom" +msgstr "البلد / مخصص" #: ../data/klavaro.glade.h:30 -msgid "_Lesson:" -msgstr "_دروس:" +msgid "Variant" +msgstr "البديل" #: ../data/klavaro.glade.h:31 -msgid "Edit the character set to be used in this lesson." -msgstr "حرر مجموعة المحارف المستخدمة في هذا الدرس." +msgid "Remove the selected custom layout." +msgstr "أزل الشريحة المخصصة المحددة." #: ../data/klavaro.glade.h:32 -msgid "Edit the character set to be used in lessons 44 through 50." -msgstr "حرر مجموعة المحارف المستخدمة من الدرس 44 إلى 50." +msgid "_Remove" +msgstr "أ_زل" #: ../data/klavaro.glade.h:33 -msgid "This is a specific exercise, adjusted to your error profile." -msgstr "هذا تمرين خاص, عدل وفقا لسجل أخطائك." +msgid "" +"Toggles the shift effect on the keys. Alternates between the upper and lower " +"characters of the keys." +msgstr "بدل تأثير Shift على المفاتيح. يبدل بين العالي و المنخفضل للمفاتيح." -#: ../data/klavaro.glade.h:34 ../src/tutor.c:252 -msgid "Drag and drop text here to practice with it." -msgstr "اسحب و أفلت نصا هنا للتمرين عليه." +#: ../data/klavaro.glade.h:34 +msgid "SPACE BAR" +msgstr "زر المسافة" -#: ../data/klavaro.glade.h:35 -msgid "Press here to restart the exercise. Hotkey: [Ctrl R]" -msgstr "انقر هنا لإعادة بدء التمرين. المفتاح السريع: [Ctrl R]" +#: ../data/klavaro.glade.h:35 ../src/keyboard.c:1630 +msgid "thumbs" +msgstr "مصغرات" #: ../data/klavaro.glade.h:36 -msgid "Show the virtual keyboard and the relation between fingers and keys." -msgstr "أظهر لوحة مفاتيح و الربط بين المفاتيح و الأصابع." +msgid "Ctrl" +msgstr "Ctrl" #: ../data/klavaro.glade.h:37 -msgid "_Keyboard" -msgstr "_لوحة مفاتيح" +msgid "Caps" +msgstr "Caps" #: ../data/klavaro.glade.h:38 -msgid "Select the font to be used in the exercise window." -msgstr "اختر خط نافذة التمرين." +msgid "S_ave as:" +msgstr "ا_حفظ كـ:" #: ../data/klavaro.glade.h:39 -msgid "_Font" -msgstr "ال_خط" +msgid "Show previous screen." +msgstr "اعرض الشاشة السابقة." #: ../data/klavaro.glade.h:40 -msgid "Keep this checked if you want to get those nice beeps." -msgstr "ابقه محددا لسماع النغمات اللطيفة." +msgid "_Previous step" +msgstr "ال_خطوة السابقة" #: ../data/klavaro.glade.h:41 -msgid "_Beep" -msgstr "_نغمة" +msgid "Show next screen." +msgstr "اعرض الشاشة التالية." #: ../data/klavaro.glade.h:42 -msgid "Co_urse information" -msgstr "معلومات ال_درس" +msgid "_Next step" +msgstr "الخطوة ال_تالية" #: ../data/klavaro.glade.h:43 -msgid "Charts showing the learning progress along the exercises." -msgstr "المخططات التي تعرض سير التعلم خلال التمرن." +msgid "Return without any modification." +msgstr "ارجع من دون أي تعديل." #: ../data/klavaro.glade.h:44 -msgid "_Progress" -msgstr "_التقدم" +msgid "Save the current keyboard layout with the name specified above." +msgstr "احفظ تخطيط المفاتيح الحالي بالاسم المحدد أعلاه." #: ../data/klavaro.glade.h:45 -msgid "Show local and external scores from other users." -msgstr "أظهر المعدلات المحلية و الخارجية من مستخدمين آخرين." +msgid "_Save and use" +msgstr "ا_حفظ و استخدم" #: ../data/klavaro.glade.h:46 -msgid "_Top 10" -msgstr "أ_فضل 10" +msgid "" +"If you like those beautiful hands, click here to close this window keeping " +"them." +msgstr "إن اعجبتك هذه الأيادي الجميلة, أنقر هنا لغلق هذه النافذة وابقائهم." #: ../data/klavaro.glade.h:47 -msgid "Return to the main menu." -msgstr "العودة للقائمة الرئيسية." +msgid "_Keep hands" +msgstr "أ_بق الأيادي" #: ../data/klavaro.glade.h:48 -msgid "B_ack to menu" -msgstr "ارجع لل_قائمة" +msgid "Klavaro - Main menu" +msgstr "كلفاروا - القائمة الرئيسية" #: ../data/klavaro.glade.h:49 -msgid "Close this window." -msgstr "أغلق هذه النافذة." +msgid "Don't be shy about learning the basics!" +msgstr "لا تكن خجولا من تعلم الأساسيات!" #: ../data/klavaro.glade.h:50 -msgid "Font definition" -msgstr "تعريف الخط" +msgid "Learn how to type correctly" +msgstr "تعلم طريقة الطباعة الصحيحة" #: ../data/klavaro.glade.h:51 -msgid "Top 10" -msgstr "أفضل 10" +msgid "Initial training for your fingers." +msgstr "تدريب ابتدائي لأصابعك." #: ../data/klavaro.glade.h:52 -msgid "Show extra information" -msgstr "أظهر مزيدا من المعلومات" +msgid "First steps with initial training" +msgstr "الخطوات الأولى للتعليم الابتدائي" #: ../data/klavaro.glade.h:53 -msgid "Hide extra information" -msgstr "أخف المعلومات الإضافية" +msgid "Memorizing the keyboard practicing random keys exercises." +msgstr "حفظ لوحة المفاتيح بتمارين مفاتيح عشوائية." #: ../data/klavaro.glade.h:54 -msgid "Publish to the web your local scores." -msgstr "ارسل نتائجك المحلية للانترنت." +msgid "Practice with random keys" +msgstr "التمرن بمفاتيح عشوائية" #: ../data/klavaro.glade.h:55 -msgid "_Participate" -msgstr "_شارك" +#, fuzzy +msgid "Accelerating the touches practicing random words exercises." +msgstr "تسريع اللمسات بالتمرن على كلمات عشوائية." #: ../data/klavaro.glade.h:56 -msgid "Download from the web the most up to date ranking." -msgstr "أنزل آخر التقييمات من الانترنت." +msgid "Practice with random words" +msgstr "التدرب بكلمات عشوائية" #: ../data/klavaro.glade.h:57 -msgid "_Update" -msgstr "_حدث" +msgid "Becoming proficient practicing complete paragraphs exercises." +msgstr "الإتقان بالتمرن على فقرات كاملة." #: ../data/klavaro.glade.h:58 -msgid "About 'Klavaro'" -msgstr "حول 'كلفاروا'" +msgid "Practice with complete texts" +msgstr "تمرن بفقرات كاملة" + +#: ../data/klavaro.glade.h:59 +msgid "" +"Keyboard layout for modules 1 and 2. Also used informatively in the " +"fluidness contest." +msgstr "" +"Keyboard layout for modules 1 and 2. Also used informatively in the " +"fluidness contest." #: ../data/klavaro.glade.h:60 -msgid "Remember always: someone loves you!" -msgstr "تذكر دائما: شخص ما يحبك!" +msgid "_Keyboard:" +msgstr "_لوحة المفاتيح:" #: ../data/klavaro.glade.h:61 -msgid "Remove the selected custom layout." -msgstr "أزل الشريحة المخصصة المحددة." +msgid "Language for modules 3 and 4." +msgstr "اللغة للمكون 3 و 4." #: ../data/klavaro.glade.h:62 -msgid "_Remove" -msgstr "أ_زل" +msgid "_Language:" +msgstr "الل_غة:" #: ../data/klavaro.glade.h:63 -msgid "" -"Toggles the shift effect on the keys. Alternates between the upper and lower " -"characters of the keys." -msgstr "بدل تأثير Shift على المفاتيح. يبدل بين العالي و المنخفضل للمفاتيح." +#, fuzzy +msgid "Speech" +msgstr "السرعة" #: ../data/klavaro.glade.h:64 -msgid "SPACE BAR" -msgstr "زر المسافة" +msgid "Your language here." +msgstr "لغتك هنا." -#: ../data/klavaro.glade.h:65 ../src/keyboard.c:1630 -msgid "thumbs" -msgstr "مصغرات" +#: ../data/klavaro.glade.h:65 +msgid "Little tip about this program." +msgstr "لمحة صغيرة عن البرنامج." #: ../data/klavaro.glade.h:66 -msgid "Ctrl" -msgstr "Ctrl" +msgid "_Help" +msgstr "_مساعدة" #: ../data/klavaro.glade.h:67 -msgid "Caps" -msgstr "Caps" +msgid "General information about the program." +msgstr "معلومات عامة عن البرنامج." #: ../data/klavaro.glade.h:68 -msgid "S_ave as:" -msgstr "ا_حفظ كـ:" +msgid "_About..." +msgstr "_حول..." #: ../data/klavaro.glade.h:69 -msgid "Show previous screen." -msgstr "اعرض الشاشة السابقة." +msgid "Exit the application immediately." +msgstr "اخرج من البرنامج مباشرة." #: ../data/klavaro.glade.h:70 -msgid "_Previous step" -msgstr "ال_خطوة السابقة" +msgid "Klavaro - Progress" +msgstr "كلفاروا - الانجاز" #: ../data/klavaro.glade.h:71 -msgid "Show next screen." -msgstr "اعرض الشاشة التالية." +msgid "_Lesson:" +msgstr "_دروس:" #: ../data/klavaro.glade.h:72 -msgid "_Next step" -msgstr "الخطوة ال_تالية" +msgid "Value" +msgstr "القيمة" #: ../data/klavaro.glade.h:73 -msgid "Return without any modification." -msgstr "ارجع من دون أي تعديل." +msgid "Close this window, returning to the exercise." +msgstr "أغلق هذه النافذة, للعودة للتمرين." #: ../data/klavaro.glade.h:74 -msgid "_Cancel" -msgstr "إ_لغ" +msgid "Clear all the progress data, for every module." +msgstr "امسح كل معلومات التقدم, لكل الوحدات." #: ../data/klavaro.glade.h:75 -msgid "Save the current keyboard layout with the name specified above." -msgstr "احفظ تخطيط المفاتيح الحالي بالاسم المحدد أعلاه." +msgid "_Reset" +msgstr "_صفر" #: ../data/klavaro.glade.h:76 -msgid "_Save and use" -msgstr "ا_حفظ و استخدم" +msgid "Top 10" +msgstr "أفضل 10" #: ../data/klavaro.glade.h:77 -msgid "" -"If you like those beautiful hands, click here to close this window keeping " -"them." -msgstr "إن اعجبتك هذه الأيادي الجميلة, أنقر هنا لغلق هذه النافذة وابقائهم." +#, fuzzy +msgid "Show extra information." +msgstr "أظهر مزيدا من المعلومات" #: ../data/klavaro.glade.h:78 -msgid "_Keep hands" -msgstr "أ_بق الأيادي" +#, fuzzy +msgid "Hide extra information." +msgstr "أخف المعلومات الإضافية" #: ../data/klavaro.glade.h:79 -msgid "Change language" -msgstr "غير اللغة" +msgid "Publish to the web your local scores." +msgstr "ارسل نتائجك المحلية للانترنت." #: ../data/klavaro.glade.h:80 -msgid "Attention!" -msgstr "إنتباه!" +msgid "_Participate" +msgstr "_شارك" #: ../data/klavaro.glade.h:81 -msgid "Do you confirm?" -msgstr "أتؤكد؟" +msgid "Download from the web the most up to date ranking." +msgstr "أنزل آخر التقييمات من الانترنت." #: ../data/klavaro.glade.h:82 -msgid "_No" -msgstr "_لا" +msgid "_Update" +msgstr "_حدث" #: ../data/klavaro.glade.h:83 -msgid "_Yes" -msgstr "_نعم" +msgid "Load other exercises/lessons" +msgstr "حمل تمارين/دروس أخرى" #: ../data/klavaro.glade.h:84 -msgid "Re_name:" -msgstr "أعد ال_تسمية:" +msgid "_Other texts" +msgstr "_نصوص أخرى" #: ../data/klavaro.glade.h:85 -msgid "Rename the selected item." -msgstr "أعد تسمية العنصر المحدد." +msgid "Edit the character set to be used in this lesson." +msgstr "حرر مجموعة المحارف المستخدمة في هذا الدرس." #: ../data/klavaro.glade.h:86 -msgid "" -"Read a text file and add a copy of it here. The file must be encoded in " -"UTF-8." -msgstr "اقرأ ملفا نصيا و اضف نسخة منه هنا. يجب أن يكون بترميز UTF-8." +msgid "This is a specific exercise, adjusted to your error profile." +msgstr "هذا تمرين خاص, عدل وفقا لسجل أخطائك." #: ../data/klavaro.glade.h:87 -msgid "_Open text file" -msgstr "ا_فتح ملفا نصيا" +#, fuzzy +msgid "" +"Edit the character set to be used in lessons after 43: they are customizable!" +msgstr "حرر مجموعة المحارف المستخدمة من الدرس 44 إلى 50." -#: ../data/klavaro.glade.h:88 -msgid "Paste text that was copied to the clipboard." -msgstr "الصق الملف المنسوخ للحافظة." +#: ../data/klavaro.glade.h:88 ../src/tutor.c:376 +msgid "Drag and drop text here to practice with it." +msgstr "اسحب و أفلت نصا هنا للتمرين عليه." #: ../data/klavaro.glade.h:89 -msgid "_Paste from clipboard" -msgstr "أ_لصق من الحافظة" +#, fuzzy +msgid "Press here to restart the exercise. Hotkey: [Ctrl-R]" +msgstr "انقر هنا لإعادة بدء التمرين. المفتاح السريع: [Ctrl R]" #: ../data/klavaro.glade.h:90 -msgid "Remove the selected item." -msgstr "أزل العنصر المحدد." +msgid "Show the virtual keyboard and the relation between fingers and keys." +msgstr "أظهر لوحة مفاتيح و الربط بين المفاتيح و الأصابع." #: ../data/klavaro.glade.h:91 -msgid "_Remove copied file" -msgstr "أ_زل العناصر المنسوخة" +msgid "_Keyboard" +msgstr "_لوحة مفاتيح" #: ../data/klavaro.glade.h:92 -msgid "Apply the selected item to create an exercise." -msgstr "طبق العناصر المحددة لتطبيق تمرين." +msgid "Select the font to be used in the exercise window." +msgstr "اختر خط نافذة التمرين." #: ../data/klavaro.glade.h:93 -msgid "_Apply" -msgstr "_طبق" +msgid "Font definition" +msgstr "تعريف الخط" #: ../data/klavaro.glade.h:94 -msgid "Klavaro - Progress" -msgstr "كلفاروا - الانجاز" +msgid "Keep this checked if you want to get those nice beeps." +msgstr "ابقه محددا لسماع النغمات اللطيفة." #: ../data/klavaro.glade.h:95 -msgid "Value" -msgstr "القيمة" +msgid "_Beep" +msgstr "_نغمة" #: ../data/klavaro.glade.h:96 -msgid "Clear all the progress data, for every module." -msgstr "امسح كل معلومات التقدم, لكل الوحدات." +msgid "Co_urse information" +msgstr "معلومات ال_درس" #: ../data/klavaro.glade.h:97 -msgid "_Reset" -msgstr "_صفر" +msgid "Charts showing the learning progress along the exercises." +msgstr "المخططات التي تعرض سير التعلم خلال التمرن." #: ../data/klavaro.glade.h:98 -msgid "Close this window, returning to the exercise." -msgstr "أغلق هذه النافذة, للعودة للتمرين." +msgid "_Progress" +msgstr "_التقدم" #: ../data/klavaro.glade.h:99 -msgid "Klavaro - Select file" -msgstr "كلفاروا - حدد ملفا" +msgid "Return to the main menu." +msgstr "العودة للقائمة الرئيسية." #: ../data/klavaro.glade.h:100 -msgid "_Open" -msgstr "ا_فتح" +msgid "Show local and external scores from other users." +msgstr "أظهر المعدلات المحلية و الخارجية من مستخدمين آخرين." #: ../data/klavaro.glade.h:101 -msgid "Help?" -msgstr "مساعدة؟" - -#: ../data/klavaro.glade.h:102 -msgid "" -"The main menu of the application is very straightforward. Just select the " -"type of exercise you wish to take. Do not worry about clicking any button on " -"the screen. The buttons will never hurt you!" -msgstr "" -"القائمة الرئيسية للبرنامج ميسرة جدا. حدد نوع التمرين الذي تريده. لا تقلق من " -"ضغط أي زر على الشاشة. لن تضرك الأزرار أبدا!" +msgid "_Top 10" +msgstr "أ_فضل 10" -#: ../data/klavaro.glade.h:103 -msgid "" -"Also the controls have tips which will appear if you hover over them with " -"your mouse. These tips can come in very handy. To see how these tips work, " -"position your mouse over the button below, and without clicking, wait for " -"the tip to appear..." -msgstr "" -"أيضا الأزرار لها تلميحات تظهر عند الوقوف عليها. التلميحات هذه مفيدة. لترى " -"كيف تعمل, ضع مؤشر الفأرة على الزر ادناه, ودون نقر, انتظر ظهور التلميح..." +#: ../data/klavaro.desktop.in.h:1 +#, fuzzy +msgid "A very flexible and efficient touch typing tutor." +msgstr "جولة تعليم طباعة أخرى جديدة" -#: ../data/klavaro.glade.h:104 -msgid "This is a tip. Now you press this button to return to the main menu." -msgstr "هذا تلميح. الآن انقر هذا الزر للعودة للقائمة الرئيسية." +#. Translators: these are keywords related to the program. CAI above means Computer Aided Instruction. Feel free to add and/or change the keywords in your language. +#: ../data/klavaro.desktop.in.h:3 +#, fuzzy +msgid "keyboard;typing;tutor;CAI" +msgstr "لوحة المفاتيح" -#: ../src/main.c:314 +#: ../src/main.c:242 msgid "(Custom)" msgstr "(مخصص)" -#: ../src/main.c:315 +#: ../src/main.c:243 msgid "(Edit custom)" msgstr "(حرر المخصص)" -#: ../src/main.c:316 +#: ../src/main.c:244 msgid "(Default)" msgstr "(الافتراضي)" -#: ../src/main.c:393 +#: ../src/main.c:321 #, c-format msgid "Dictation mode (depends on this speech synthesizer: %s)" msgid_plural "Dictation mode (depends on one of these speech synthesizers: %s)" @@ -478,88 +484,86 @@ msgstr[4] "" msgstr[5] "" -#. Set main labels (for translation) -#. -#: ../src/main.c:435 ../src/keyboard.c:1291 +#: ../src/main.c:364 ../src/keyboard.c:1291 msgid "Introduction" msgstr "مقدمة" -#: ../src/main.c:438 ../src/top10.c:109 +#: ../src/main.c:367 ../src/top10.c:109 msgid "Basic course" msgstr "درس ابتدائي" -#: ../src/main.c:441 ../src/top10.c:112 +#: ../src/main.c:370 ../src/top10.c:112 msgid "Adaptability" msgstr "التكيف" -#: ../src/main.c:444 ../src/callbacks.c:1310 ../src/top10.c:89 +#: ../src/main.c:373 ../src/callbacks.c:1226 ../src/top10.c:89 #: ../src/top10.c:115 msgid "Speed" msgstr "السرعة" -#: ../src/main.c:447 ../src/callbacks.c:1333 ../src/top10.c:91 +#: ../src/main.c:376 ../src/callbacks.c:1249 ../src/top10.c:91 #: ../src/top10.c:118 msgid "Fluidity" msgstr "الانسيابية" -#: ../src/callbacks.c:468 ../src/tutor.c:391 +#: ../src/callbacks.c:407 ../src/tutor.c:515 msgid "Keys:" msgstr "المفاتيح:" -#: ../src/callbacks.c:858 ../src/callbacks.c:874 +#: ../src/callbacks.c:774 ../src/callbacks.c:790 msgid "Connecting..." msgstr "الاتصال..." -#: ../src/callbacks.c:1145 +#: ../src/callbacks.c:1061 msgid "Overwrite user layout" msgstr "غير خريطة المستخدم" -#: ../src/callbacks.c:1147 +#: ../src/callbacks.c:1063 msgid "This will OVERWRITE an existent keyboard layout." msgstr "سيغير هذا خريطة مفاتيح سابقة." -#: ../src/callbacks.c:1154 +#: ../src/callbacks.c:1070 msgid "Remove user layout" msgstr "أزل خريطة المستخدم" -#: ../src/callbacks.c:1156 +#: ../src/callbacks.c:1072 msgid "This will REMOVE an existent keyboard layout." msgstr "سيزيل هذا خريطة مفاتيح مسبقة" -#: ../src/callbacks.c:1163 +#: ../src/callbacks.c:1079 msgid "Reset progress data" msgstr "صفر بيانات التقدم" -#: ../src/callbacks.c:1164 +#: ../src/callbacks.c:1080 msgid "This will DELETE all the progress data shown in the charts." msgstr "سيحذف هذا كل بيانات التقدم المعروضة في المخططات." -#: ../src/callbacks.c:1307 ../src/top10.c:87 +#: ../src/callbacks.c:1223 ../src/top10.c:87 msgid "Accuracy" msgstr "الدقة" -#: ../src/callbacks.c:1310 ../src/tutor.c:1160 +#: ../src/callbacks.c:1226 ../src/tutor.c:1288 msgid "(WPM)" msgstr "(ك.د)" -#: ../src/callbacks.c:1321 +#: ../src/callbacks.c:1237 msgid "Errors" msgstr "الأخطاء" -#: ../src/callbacks.c:1324 +#: ../src/callbacks.c:1240 msgid "Touch times (s)" msgstr "" -#: ../src/callbacks.c:1336 ../src/tutor.c:1187 ../src/top10.c:69 +#: ../src/callbacks.c:1252 ../src/tutor.c:1315 ../src/top10.c:69 msgid "Score" msgstr "المعدل" #. Translators: your language code (first 2 letters of your po-file) -#: ../src/translation.c:423 ../src/translation.c:489 ../src/tutor.c:1597 +#: ../src/translation.c:485 ../src/tutor.c:1725 msgid "en" msgstr "ar" -#: ../src/translation.c:576 +#: ../src/translation.c:572 msgid "" "The basic course focuses on having you read the characters presented to you " "on screen and typing the corresponding keys. Remember to keep your hands " @@ -570,7 +574,7 @@ "تذكر أن عليك ابقاء يديك بشكل صحيح على الصف المنزل للوحة المفاتيح دائما (انظر " "المقدمة في القائمة الرئيسية)" -#: ../src/translation.c:580 +#: ../src/translation.c:576 msgid "" "The key set used in each series will be shown in the above message line. The " "[Space], [Shift] and [Enter] keys may not show up there but are used very " @@ -579,7 +583,7 @@ "مجموعة المفاتيح المستخدمة في كل سلسلة ستعرض لك في سطر الرسالة . مفاتيح " "[Space], [Shift] و [Enter] قد لا تظهر لك هناك لكن ستسخدم كثيرا." -#: ../src/translation.c:583 +#: ../src/translation.c:579 msgid "" "The message line below follows and echoes your key presses. If required, it " "changes and displays instructions for actions required from you." @@ -587,7 +591,7 @@ "سطر الرسالة ادناه يتبع و يعكس ضغطاتك للمفاتيح. وقت الحاجة, يتغير ويعرض " "تعليمات عما يجب عليك فعله." -#: ../src/translation.c:587 +#: ../src/translation.c:583 msgid "" "Here you may practice and improve your memorization of all keys. There will " "be sentences presented with nonsense words which mix some numbers and " @@ -596,7 +600,7 @@ "هنا يمكنك التمرن و تطوير حفظ لكل المفاتيح. ستقدم لك جمل مع كلمات بلا معنى " "تخلط بين الأرقام و الرموز." -#: ../src/translation.c:590 +#: ../src/translation.c:586 msgid "" "In order to keep the lesson contents language and keyboard independent, " "accented letter combinations will probably not appear. For real word " @@ -605,20 +609,20 @@ "لإبقاء محتوى الدرس و لوحة المفاتيح مستقلين, جمع الأحرف المعلمة لن يظهر. لجمل " "بكلمات حقيقية, استخدم الخيار الرابع من القائمة الرئيسية (حول الإنسابية)." -#: ../src/translation.c:594 +#: ../src/translation.c:590 msgid "" "After each exercise there will be a brief statistics panel reviewing your " "performance along with some relevant comments." msgstr "" "بعد كل تمرين سيكون هناك لوح إحصائي يراجع أدائك مع بعض التعليقات المتعلقة." -#: ../src/translation.c:598 +#: ../src/translation.c:594 msgid "" "This exercise is very similar to the second one, for adaptability. The " "difference is that here you'll type real words." msgstr "هذا التمرين مشابه للثاني, للتكيف. الفرق أنك ستطبع هنا كلمات حقيقية." -#: ../src/translation.c:601 +#: ../src/translation.c:597 msgid "" "The default language is the actual one of the interface. But you may select " "any other texts with words you would like to use. Press the 'Other' option " @@ -628,7 +632,7 @@ "مع كلمات تريد استخدامها. اضغط خيار ’غير ذلك’ أعلاه و أضف الملفات التي تحوي " "تلك النصوص." -#: ../src/translation.c:605 +#: ../src/translation.c:601 msgid "" "With this exercise the focus is on speed. So, you are supposed to type " "really fast and I will only flatter you when you deserve it!" @@ -636,7 +640,7 @@ "مع هذا التمرين التركيز هو على السرعة. لذا, عليك أن تطبع سريعا و ستسمع " "الاطراء عندما تستحقه!" -#: ../src/translation.c:609 +#: ../src/translation.c:605 msgid "" "We will now use complete sentences and paragraphs which make logical sense. " "This may distract you while you type if you try to understand what you are " @@ -646,7 +650,7 @@ "ستسخدم جمل و كلمات كاملة منطقية. قد يشتتك هذا أثناء الطباعة إن كنت تحاول فهم " "ما تطبع. التمرين السابق كان يهدف لجعلك تطبع دون تفسير أو تحليل ما تطبع." -#: ../src/translation.c:613 +#: ../src/translation.c:609 msgid "" "We do not mean to imply that the typists must behave like a robot, without " "understanding what they type. We do aim to develop the skill of typing, " @@ -660,8 +664,7 @@ "إلخ. بعد الوصول لهذا الهدف, فعل الطباعة سيصبح تلقائيا و يتطلب تركيزا أقل. " "بعدها سستمكن من الانتباه للمعنى الحقيقي للنص." -#. English typo: minimun -> minimum -#: ../src/translation.c:618 +#: ../src/translation.c:613 #, fuzzy msgid "" "These exercises are longer. Each exercise consists of three paragraphs and " @@ -673,7 +676,6 @@ "الإيقاع, بأقل سرعة. هنا سيطلب منك استخدام زر المسح للخلف لتصحيح أي خطأ. " "بمعنى آخر, فقط الإدخال دون أخطاء سيقبل." -#. English typo: recomendations -> recommendations #: ../src/keyboard.c:1094 #, fuzzy msgid "" @@ -766,13 +768,11 @@ msgid "Step %i" msgstr "الخطوة %i" -#. Recommendations -#: ../src/keyboard.c:1140 +#: ../src/keyboard.c:1142 msgid "To position the hands" msgstr "لتموضع اليدين" -#. Final words -#: ../src/keyboard.c:1225 +#: ../src/keyboard.c:1227 msgid "Go ahead!" msgstr "انطلق!" @@ -812,65 +812,65 @@ msgid "Press and edit me" msgstr "اضغط و حررني" -#: ../src/tutor.c:176 +#: ../src/tutor.c:300 msgid "Lesson:" msgstr "الدرس:" -#: ../src/tutor.c:186 +#: ../src/tutor.c:310 msgid "Paragraphs:" msgstr "الفقرات:" -#: ../src/tutor.c:219 +#: ../src/tutor.c:343 msgid "Klavaro - Basic Course" msgstr "كلفاروا - درس ابتدائي" -#: ../src/tutor.c:224 +#: ../src/tutor.c:348 msgid "Klavaro - Adaptability" msgstr "كلفاروا - التكييف" -#: ../src/tutor.c:227 +#: ../src/tutor.c:351 msgid "" "Adaptability exercises: automating the fingers responses, typing over all " "the keyboard." msgstr "تمارين التكيف: تلقائية إجابة الأصابع, الكتابة على كل اللوحة." -#: ../src/tutor.c:232 +#: ../src/tutor.c:356 msgid "Klavaro - Velocity" msgstr "كلفاروا - السرعة" -#: ../src/tutor.c:233 +#: ../src/tutor.c:357 msgid "Velocity exercises: accelerate typing real words." msgstr "تمارين السرعة: تسريع طباعة كلمات حقيقية." -#: ../src/tutor.c:237 +#: ../src/tutor.c:361 msgid "Klavaro - Fluidness" msgstr "كلفاروا - الإنسيابية" -#: ../src/tutor.c:239 +#: ../src/tutor.c:363 msgid "Fluidness exercises: accuracy typing good sense paragraphs." msgstr "تمارين الإنسيابية: طباعة فقرات منطقية بدقة." -#: ../src/tutor.c:301 +#: ../src/tutor.c:425 msgid "End of exercise. Press [Enter] to start another." msgstr "نهاية التمرين. اضغط [إدخال] لبدء آخر." -#: ../src/tutor.c:329 +#: ../src/tutor.c:453 msgid "Learning the key positions." msgstr "تعلم مواضع المفاتيح." -#: ../src/tutor.c:332 +#: ../src/tutor.c:456 msgid "Press any key to start the exercise. " msgstr "اضغط اي مفتاح لبدء التمرين." -#: ../src/tutor.c:440 ../src/tutor.c:443 +#: ../src/tutor.c:567 ../src/tutor.c:570 msgid "Start typing when you are ready. " msgstr "ابدأ الطباعة عندما تستعد." -#: ../src/tutor.c:441 +#: ../src/tutor.c:568 msgid "Use backspace to correct errors." msgstr "" -#: ../src/tutor.c:885 +#: ../src/tutor.c:1012 #, c-format msgid "" "ps.: logging not performed for this session: the number of typed characters " @@ -879,11 +879,11 @@ "ملاحظة: التسجيل لم يعمل لهذه الجلسة: عدد المحارف المطبوعة (%i) يجب أن " "يتجاوز %i." -#: ../src/tutor.c:1027 +#: ../src/tutor.c:1154 msgid "ps.: you have entered the Top 10 list, great!" msgstr "ملاحظة: لقد دخلت قائمة العشرة الأوائل, عظيم!" -#: ../src/tutor.c:1039 +#: ../src/tutor.c:1166 msgid "" "ps.: the text you just typed doesn't seem to be similar to ordinary texts in " "the language currently selected: we can't account for it in the 'Top 10' " @@ -892,16 +892,15 @@ "ملاحظة: النص الذي أدخلته لا يبدو أنه مشابه لنص من اللغة المحددة: لا يمكن " "احتسابه في مسابقة ’العشرة الأوائل’." -#. Begin the accuracy -#: ../src/tutor.c:1087 +#: ../src/tutor.c:1215 msgid "STATISTICS" msgstr "الاحصاءات" -#: ../src/tutor.c:1088 +#: ../src/tutor.c:1216 msgid "Elapsed time:" msgstr "الوقت المنقضي:" -#: ../src/tutor.c:1089 +#: ../src/tutor.c:1217 msgid "minute and" msgid_plural "minutes and" msgstr[0] "لا دقائق و" @@ -911,7 +910,7 @@ msgstr[4] "دقيقة و" msgstr[5] "دقيقة و" -#: ../src/tutor.c:1090 +#: ../src/tutor.c:1218 msgid "second" msgid_plural "seconds" msgstr[0] "لا ثوان" @@ -921,70 +920,68 @@ msgstr[4] "ثانية" msgstr[5] "ثانية" -#: ../src/tutor.c:1091 +#: ../src/tutor.c:1219 msgid "Error ratio:" msgstr "نسبة الخطأ:" -#: ../src/tutor.c:1091 +#: ../src/tutor.c:1219 msgid "Accuracy:" msgstr "الدقة:" -#: ../src/tutor.c:1112 ../src/tutor.c:1137 ../src/tutor.c:1160 -#: ../src/tutor.c:1186 +#: ../src/tutor.c:1240 ../src/tutor.c:1265 ../src/tutor.c:1288 +#: ../src/tutor.c:1314 msgid "Goal:" msgstr "الهدف:" -#: ../src/tutor.c:1119 +#: ../src/tutor.c:1247 msgid "Characters per second:" msgstr "محرف في الثانية:" -#: ../src/tutor.c:1137 +#: ../src/tutor.c:1265 msgid "(CPS)" msgstr "(م.ث)" -#: ../src/tutor.c:1142 +#: ../src/tutor.c:1270 msgid "Words per minute:" msgstr "كلمة في الدقيقة:" -#: ../src/tutor.c:1167 +#: ../src/tutor.c:1295 msgid "Fluidness:" msgstr "الإنسيابية:" -#: ../src/tutor.c:1194 +#: ../src/tutor.c:1322 msgid "Comments:" msgstr "التعليقات:" -#: ../src/tutor.c:1676 +#: ../src/tutor.c:1804 msgid "space" msgstr "" #. Translators: the name of letter Y -#: ../src/tutor.c:1681 +#: ../src/tutor.c:1809 msgid "wye" msgstr "" #. Translators: the name of the Return key -#: ../src/tutor.c:1685 +#: ../src/tutor.c:1813 msgid "enter" msgstr "" -#: ../src/tutor.c:1691 +#: ../src/tutor.c:1819 msgid "apostrophe" msgstr "" #. Translators: double quote symbol: " -#: ../src/tutor.c:1695 +#: ../src/tutor.c:1823 msgid "quote" msgstr "" #. Translators: ampersand symbol: & -#: ../src/tutor.c:1699 +#: ../src/tutor.c:1827 msgid "ampersand" msgstr "" -#. Error frequencies or touch times -#. -#: ../src/plot.c:308 +#: ../src/plot.c:305 msgid "Character" msgstr "" @@ -992,11 +989,11 @@ msgid "Date & Time" msgstr "الوقت & التاريخ" -#: ../src/basic.c:331 +#: ../src/basic.c:326 msgid "Positions of keys seems to be learned!" msgstr "يبدو أنك تعلمت مواضع المفاتيح!" -#: ../src/basic.c:332 +#: ../src/basic.c:327 msgid "" " Congratulations!\n" " You have accomplished the entire basic course.\n" @@ -1008,7 +1005,7 @@ "إذهب للنوع التالي من التمارين:التكيف.\n" "هناك ستتعلم الدقة كأساس.\n" -#: ../src/basic.c:338 +#: ../src/basic.c:333 msgid "" " All right, now you got it!\n" " Go to the next lesson.\n" @@ -1016,33 +1013,35 @@ "تماما, لقد أحسنت!\n" "اذهب للدرس التالي.\n" -#: ../src/adaptability.c:217 +#: ../src/adaptability.c:213 +#, fuzzy, c-format msgid "" -" Your accuracy rate is below 90%...\n" +" Your accuracy rate is below %.0f%%...\n" " Could you please try again to improve it?\n" msgstr "" "معدل دقتك أدنى من 90%...\n" "هل يمكنك المحاولة مجددا لتحسينها؟\n" -#: ../src/adaptability.c:222 +#: ../src/adaptability.c:216 +#, fuzzy, c-format msgid "" " You are doing well. But...\n" -" Could you make the accuracy reach 95%?\n" +" Could you make the accuracy reach %.0f%%?\n" msgstr "" "أنت تحسن صنعا. لكن...\n" "هل يمكنك إيصال الدقة إلى 95%؟\n" -#: ../src/adaptability.c:225 -#, c-format +#: ../src/adaptability.c:219 +#, fuzzy, c-format msgid "" " You are almost there, but your accuracy rate is still below %.0f%%.\n" -" Try a few more times, or maybe you're getting upset, so go to other kind of " -"exercise.\n" +" Try a few more times, or maybe you're getting upset, so go to another kind " +"of exercise.\n" msgstr "" "وصلت تقريبا, لكن دقتك مازال تحت %.0f%%.\n" "حاول مرات أخرى, لربما شعرت بالضيق, انتقل لنوع آخر من التمارين.\n" -#: ../src/adaptability.c:232 +#: ../src/adaptability.c:226 #, c-format msgid "" " Very good!\n" @@ -1055,11 +1054,11 @@ "إنه الوقت المناسب لزيادة السرعة.\n" "اذهب للتمرين الثالث في القائمة الرئيسية.\n" -#: ../src/velocity.c:313 ../src/fluidness.c:435 +#: ../src/velocity.c:312 ../src/fluidness.c:435 msgid "Pasted_or_dropped" msgstr "ملصق_أو_مسقط" -#: ../src/velocity.c:432 +#: ../src/velocity.c:423 msgid "" " You are just beginning.\n" " Be patient, try it again every day, rest and don't worry so much:\n" @@ -1069,31 +1068,34 @@ "كن صبورا, حاول مجدد كل يوم, استرح ولا تقلق كثيرا:\n" "الإصرار و التمرين سيزيد سرعتك.\n" -#: ../src/velocity.c:436 +#: ../src/velocity.c:427 +#, fuzzy, c-format msgid "" " Still away from the highway. You can make better...\n" -" Try at least 20 WPM.\n" +" Try to reach at least %.0f WPM.\n" msgstr "" "مازلت بعيدا من الطريق السريع. يمكنك عمل أفضل من هذا...\n" "حاول على الأقل 20 ك.د.\n" -#: ../src/velocity.c:439 +#: ../src/velocity.c:430 +#, fuzzy, c-format msgid "" " You are doing well, but need to go faster.\n" -" And don't forget the accuracy. Try to get 30 WPM.\n" +" And don't forget the accuracy. Try to get %.0f WPM.\n" msgstr "" "أحسنت صنعا, لكن عليك زيادة السرعة.\n" "وتنبه للدقة. حاول الوصول ل 30 ك.د.\n" -#: ../src/velocity.c:443 +#: ../src/velocity.c:433 +#, fuzzy, c-format msgid "" " Fine. Now you need to start running.\n" -" Can you reach 40 WPM?\n" +" Can you reach %.0f WPM?\n" msgstr "" "جيد. الآن يمكنك الركض.\n" "أيمكنك الوصول ل 40 ك.د؟\n" -#: ../src/velocity.c:446 +#: ../src/velocity.c:436 #, c-format msgid "" " Very good. You are almost there.\n" @@ -1102,7 +1104,7 @@ "جيد جدا. شارفت على الوصول.\n" "أخيرا أتستطيع بلوغ %.0f ك.د؟\n" -#: ../src/velocity.c:451 +#: ../src/velocity.c:439 msgid "" " Excellent. For this course, that is enough.\n" " Try now the fluidness exercises, OK?\n" @@ -1110,31 +1112,34 @@ "ممتاز. بالنسبة لهذا الدرس, هذا يكفي.\n" "جرب الآن تمارين الانسيابية, موافق؟\n" -#: ../src/velocity.c:455 +#: ../src/velocity.c:442 +#, fuzzy, c-format msgid "" -" Fast! Are you training for a competition?\n" -" So, try to get 70 WPM!\n" +" Fast! Are you a professional?\n" +" So, try to get %.0f WPM!\n" msgstr "" "سريع! هل تتدرب على مسابقة؟\n" "إذا, جرب الوصول ل 70 ك.د!\n" -#: ../src/velocity.c:458 -msgid "" -" Top of \"qwerty\". Now it's time to change to the Dvorak mode.\n" -" Are you afraid of reaching 80 WPM?\n" +#. Translators: Speed Racer is a reference to a Japanese anime franchise +#. about automobile racing, also known as Mach GoGoGo. +#: ../src/velocity.c:447 +#, c-format +msgid " Ranking good, Speed Racer! Are you afraid of reaching %.0f WPM?\n" msgstr "" -"قمة \"qwerty\". الآن عليك التغيير لوضع Dvorak.\n" -"هل أنت خائف من الوصول ل 80 ك.د?\n" -#: ../src/velocity.c:462 +#. Translators: feel free to change the reference to that martial art, if you find another good analogy. +#: ../src/velocity.c:451 +#, fuzzy, c-format msgid "" -" Dvorak mode dominated!\n" -" Can you fly at 90 WPM?\n" +" Kunf-fu mastering!\n" +" Can you fly at %.0f WPM?\n" msgstr "" "السيطرة على وضع Dvorak!\n" "هل يمكنك الطيران بسرعة 90 ك.د؟\n" -#: ../src/velocity.c:466 +#. Translators: Dvorak here means that infamous ergonomic keyboard layout. +#: ../src/velocity.c:454 msgid "" " Dvorak master!\n" " I have no words to express my admiration!\n" @@ -1142,7 +1147,7 @@ "زعيم Dvorak!\n" "اعجزتني الكلمات للتعبير عن احترامي!\n" -#: ../src/fluidness.c:545 +#: ../src/fluidness.c:538 #, c-format msgid "" " You type accurately but not so fast.\n" @@ -1151,7 +1156,7 @@ "أنت تكتب بدقة لكن ببطئ.\n" "أيمكنك بلوغ %.0f ك.د؟\n" -#: ../src/fluidness.c:548 +#: ../src/fluidness.c:541 #, c-format msgid "" " Your rhythm is not so constant. Calm down.\n" @@ -1160,7 +1165,7 @@ "إيقاعك غير ثابت. اهدأ.\n" "للوقت الحالي, حاول جعل الإنسيابية أكبر من %i%%.\n" -#: ../src/fluidness.c:551 +#: ../src/fluidness.c:544 #, c-format msgid "" " You are almost getting there. Type more fluently.\n" @@ -1169,7 +1174,7 @@ "شارفت على الوصول. اكتب بانسيابة أكبر.\n" "اريد رؤية انسيابية أكبر من %.0f%%.\n" -#: ../src/fluidness.c:554 +#: ../src/fluidness.c:547 msgid "" " Congratulations!\n" " It seems to me that you are a professional.\n" @@ -1181,7 +1186,7 @@ "لست بحاجة لهذا البرنامج بعد الآن.\n" "آمل أن تكون قضيت وقتا ممتعا. شكرا و حياة طيبة!\n" -#: ../src/fluidness.c:559 +#: ../src/fluidness.c:552 msgid "" " How can you type so fast?\n" " You have exceeded all my expectations.\n" @@ -1247,12 +1252,25 @@ msgid "Could not upload/download scores." msgstr "تعذر رفع/تنزيل المعدلات." -#~ msgid "Default" -#~ msgstr "الافتراضي" +#~ msgid "" +#~ " Top of \"qwerty\". Now it's time to change to the Dvorak mode.\n" +#~ " Are you afraid of reaching 80 WPM?\n" +#~ msgstr "" +#~ "قمة \"qwerty\". الآن عليك التغيير لوضع Dvorak.\n" +#~ "هل أنت خائف من الوصول ل 80 ك.د?\n" + +#~ msgid "Press here to restart the exercise. Hotkey: [Ctrl R]" +#~ msgstr "انقر هنا لإعادة بدء التمرين. المفتاح السريع: [Ctrl R]" + +#~ msgid "_Font" +#~ msgstr "ال_خط" #, fuzzy -#~ msgid "A flexible touch typing tutor" -#~ msgstr "جولة تعليم طباعة أخرى جديدة" +#~ msgid "Klavaro" +#~ msgstr "حول 'كلفاروا'" + +#~ msgid "Default" +#~ msgstr "الافتراضي" #, fuzzy #~ msgid "About..." diff -Nru klavaro-1.9.9/po/bg.po klavaro-3.00/po/bg.po --- klavaro-1.9.9/po/bg.po 2013-08-15 13:38:48.000000000 +0000 +++ klavaro-3.00/po/bg.po 2014-01-13 23:25:49.000000000 +0000 @@ -7,567 +7,572 @@ msgid "" msgstr "" "Project-Id-Version: 1.95\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2013-08-15 10:38-0300\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2014-01-13 21:25-0200\n" "PO-Revision-Date: 2013-02-08 19:40+0200\n" "Last-Translator: Slav <>\n" "Language-Team: Bulgarian <>\n" -"Language: \n" +"Language: bg\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n!=1);\n" -#: ../data/klavaro.desktop.in.h:1 ../data/klavaro.glade.h:59 -msgid "Yet another touch typing tutor" -msgstr "Поредният самоучител по машинопис" - #: ../data/klavaro.glade.h:1 -msgid "Klavaro - Main menu" -msgstr "Klavaro - основно меню" +msgid "About 'Klavaro'" +msgstr "Относно 'Klavaro'" #: ../data/klavaro.glade.h:2 -msgid "Don't be shy about learning the basics!" -msgstr "Не бъдете срамежливи, научете основното!" +msgid "Yet another touch typing tutor" +msgstr "Поредният самоучител по машинопис" #: ../data/klavaro.glade.h:3 -msgid "Learn how to type correctly" -msgstr "Научете се да пишете правилно." +msgid "Remember always: someone loves you!" +msgstr "Винаги помнете: някой Ви обича!" #: ../data/klavaro.glade.h:4 -msgid "Initial training for your fingers." -msgstr "Начални упражнения за Вашите пръсти." +msgid "Change language" +msgstr "Смяна на езика" #: ../data/klavaro.glade.h:5 -msgid "First steps with initial training" -msgstr "Първи стъпки с начални упражнения" +msgid "Attention!" +msgstr "Внимание!" #: ../data/klavaro.glade.h:6 -msgid "Memorizing the keyboard practicing random keys exercises." -msgstr "Запаветете клавиатурата, като се упражнявате с произволни клавиши." +msgid "Do you confirm?" +msgstr "Потвърждавате ли?" #: ../data/klavaro.glade.h:7 -msgid "Practice with random keys" -msgstr "Упражнявайте се с произволни клавиши" +msgid "_No" +msgstr "_Не" + +#: ../data/klavaro.glade.h:8 +msgid "_Yes" +msgstr "_Да" -#. English typo: touchs -> touches #: ../data/klavaro.glade.h:9 -msgid "Accelerating the touches practicing random words exercises." -msgstr "По-бързо натискане на клавишите чрез упражнения с произволни думи" +msgid "Help?" +msgstr "Помощ?" #: ../data/klavaro.glade.h:10 -msgid "Practice with random words" -msgstr "Упражнявайте се с произволни думи" +msgid "This is a tip. Now you press this button to return to the main menu." +msgstr "" +"Това е полезна информация. Сега натиснете този бутон, за да се завърнете към " +"главното меню." #: ../data/klavaro.glade.h:11 -msgid "Becoming proficient practicing complete paragraphs exercises." -msgstr "Станете професионалист, като се упражнявате с цели абзаци." +msgid "B_ack to menu" +msgstr "Назад към менюто" #: ../data/klavaro.glade.h:12 -msgid "Practice with complete texts" -msgstr "Упражнявайте се с цели текстове" +msgid "" +"The main menu of the application is very straightforward. Just select the " +"type of exercise you wish to take. Do not worry about clicking any button on " +"the screen. The buttons will never hurt you!" +msgstr "" +"Главното меню е много разбираемо. Просто изберете типа упражнение, който " +"искате да опитате. Не се притеснявайне, че ще натиснете някой бутон на " +"екрана. Бутоните няма да Ви наранят!" #: ../data/klavaro.glade.h:13 msgid "" -"Keyboard layout for modules 1 and 2. Also used informatively in the " -"fluidness contest." +"Also the controls have tips which will appear if you hover over them with " +"your mouse. These tips can come in very handy. To see how these tips work, " +"position your mouse over the button below, and without clicking, wait for " +"the tip to appear..." msgstr "" -"Клавиатурна подредба за модули 1 и 2. Използва се и информативно за " -"състезанието по гладкост." +"Освен това, към бутоните има информация, която ще се появи, ако ги посочите " +"с мишката. Тази информация понякога е много полезна. За да разберете как " +"работи, поставете мишката на бутона отдолу и без да натискате, изчакайте, " +"докато информационното каре се появи..." #: ../data/klavaro.glade.h:14 -msgid "_Keyboard:" -msgstr "_Клавиатура:" +msgid "Klavaro - Select file" +msgstr "Klavaro - избор на файл" #: ../data/klavaro.glade.h:15 -msgid "Language for modules 3 and 4." -msgstr "Език за модули 3 и 4." +msgid "_Cancel" +msgstr "_Отказ" #: ../data/klavaro.glade.h:16 -msgid "_Language:" -msgstr "_Език:" +msgid "_Open" +msgstr "_Отваряне" #: ../data/klavaro.glade.h:17 -msgid "Variant" -msgstr "Вариант" +msgid "Re_name:" +msgstr "Промяна на името:" #: ../data/klavaro.glade.h:18 -msgid "Klavaro" -msgstr "Klavaro" +msgid "Rename the selected item." +msgstr "Преименуване на избрания файл." #: ../data/klavaro.glade.h:19 -msgid "Country / Custom" -msgstr "Страна / Зададена от потребителя" +msgid "" +"Read a text file and add a copy of it here. The file must be encoded in " +"UTF-8." +msgstr "" +"Прочетете текстов файл и копирайте съдържанието му тук. Файлът трябва да е " +"кодиран в UTF-8." #: ../data/klavaro.glade.h:20 -msgid "Your language here." -msgstr "Тук е Вашият език." +msgid "_Open text file" +msgstr "_Отваряне на текстов файл" #: ../data/klavaro.glade.h:21 -msgid "Speech" -msgstr "Реч" +msgid "Paste text that was copied to the clipboard." +msgstr "Вмъкнете текст, копиран в клипборда." #: ../data/klavaro.glade.h:22 -msgid "Little tip about this program." -msgstr "Малко помощ за тази програма." +msgid "_Paste from clipboard" +msgstr "_Вмъкване от клипборда" #: ../data/klavaro.glade.h:23 -msgid "_Help" -msgstr "_Помощ" +msgid "Remove the selected item." +msgstr "Премахване на избрания файл." #: ../data/klavaro.glade.h:24 -msgid "General information about the program." -msgstr "Обща информация за програмата." +msgid "_Remove copied file" +msgstr "_Премахване на копирания файл" #: ../data/klavaro.glade.h:25 -msgid "_About..." -msgstr "_Относно..." +msgid "Apply the selected item to create an exercise." +msgstr "Прилагане на избрания текст и създаване на упражнение." #: ../data/klavaro.glade.h:26 -msgid "Exit the application immediately." -msgstr "Напускане на приложението веднага." +msgid "_Apply" +msgstr "_Прилагане" #: ../data/klavaro.glade.h:27 -msgid "_Close" -msgstr "_Затваряне" +msgid "Close this window." +msgstr "Затворете този прозорец." #: ../data/klavaro.glade.h:28 -msgid "Load other exercises/lessons" -msgstr "Зареждане на други упражнения/уроци" +msgid "_Close" +msgstr "_Затваряне" #: ../data/klavaro.glade.h:29 -msgid "_Other texts" -msgstr "_Други текстове" +msgid "Country / Custom" +msgstr "Страна / Зададена от потребителя" #: ../data/klavaro.glade.h:30 -msgid "_Lesson:" -msgstr "_Урок:" +msgid "Variant" +msgstr "Вариант" #: ../data/klavaro.glade.h:31 -msgid "Edit the character set to be used in this lesson." -msgstr "" -"Редактиране на набора от символи, които ще се използват в текущия урок." +msgid "Remove the selected custom layout." +msgstr "Премахване на избраната подредба, зададена от потребителя." #: ../data/klavaro.glade.h:32 -msgid "Edit the character set to be used in lessons 44 through 50." -msgstr "" -"Редактиране на набора от символи, които ще се използват в уроците от 44 до " -"50." +msgid "_Remove" +msgstr "_Премахване" #: ../data/klavaro.glade.h:33 -msgid "This is a specific exercise, adjusted to your error profile." -msgstr "Това е специално упражнение, напаснато към грешките, които правите." +msgid "" +"Toggles the shift effect on the keys. Alternates between the upper and lower " +"characters of the keys." +msgstr "" +"Включва капитализацията. Сменя главните и малките символи на клавишите." -#: ../data/klavaro.glade.h:34 ../src/tutor.c:252 -msgid "Drag and drop text here to practice with it." -msgstr "Изтеглете и пуснете текст тук, за да се упражнявате с него." +#: ../data/klavaro.glade.h:34 +msgid "SPACE BAR" +msgstr "ИНТЕРВАЛ" -#: ../data/klavaro.glade.h:35 -msgid "Press here to restart the exercise. Hotkey: [Ctrl R]" -msgstr "" -"Натиснете тук, за да започнете упражнението отначало. Бързи клавиши: [Ctrl R]" +#: ../data/klavaro.glade.h:35 ../src/keyboard.c:1630 +msgid "thumbs" +msgstr "умалени изображения" #: ../data/klavaro.glade.h:36 -msgid "Show the virtual keyboard and the relation between fingers and keys." -msgstr "" -"Показване на виртуална клавиатура и връзката между пръстите и клавишите." +msgid "Ctrl" +msgstr "Ctrl" #: ../data/klavaro.glade.h:37 -msgid "_Keyboard" -msgstr "_Клавиатура" +msgid "Caps" +msgstr "Главни букви" #: ../data/klavaro.glade.h:38 -msgid "Select the font to be used in the exercise window." -msgstr "Изберете шрифт, който да се ползва в прозореца с упражненията." +msgid "S_ave as:" +msgstr "Запомняне като:" #: ../data/klavaro.glade.h:39 -msgid "_Font" -msgstr "_Шрифт" +msgid "Show previous screen." +msgstr "Показване на предишния екран." #: ../data/klavaro.glade.h:40 -msgid "Keep this checked if you want to get those nice beeps." -msgstr "Отбележете тук, ако искате да слушате тези приятни сигнали." +msgid "_Previous step" +msgstr "_Предишна стъпка" #: ../data/klavaro.glade.h:41 -msgid "_Beep" -msgstr "_Звук" +msgid "Show next screen." +msgstr "Показване на следващия екран." #: ../data/klavaro.glade.h:42 -msgid "Co_urse information" -msgstr "Информация за курса" +msgid "_Next step" +msgstr "_Следваща стъпка" #: ../data/klavaro.glade.h:43 -msgid "Charts showing the learning progress along the exercises." -msgstr "Графики, показващи Вашия напредък с течение на упражненията." +msgid "Return without any modification." +msgstr "Завръщане без запомняне на промените." #: ../data/klavaro.glade.h:44 -msgid "_Progress" -msgstr "_Напредък" +msgid "Save the current keyboard layout with the name specified above." +msgstr "Запомняне на текущата клавиатурна подредба с името, посочено горе." #: ../data/klavaro.glade.h:45 -msgid "Show local and external scores from other users." -msgstr "Показване на резултати от други потребители." +msgid "_Save and use" +msgstr "_Запомни и използвай" #: ../data/klavaro.glade.h:46 -msgid "_Top 10" -msgstr "_Топ 10" +msgid "" +"If you like those beautiful hands, click here to close this window keeping " +"them." +msgstr "" +"Ако харесвате тези красиви ръце, натиснете тук, за да затворите прозореца, " +"като ги запазите." #: ../data/klavaro.glade.h:47 -msgid "Return to the main menu." -msgstr "Завръщане към главното меню." +msgid "_Keep hands" +msgstr "_Запазване на ръцете" #: ../data/klavaro.glade.h:48 -msgid "B_ack to menu" -msgstr "Назад към менюто" +msgid "Klavaro - Main menu" +msgstr "Klavaro - основно меню" #: ../data/klavaro.glade.h:49 -msgid "Close this window." -msgstr "Затворете този прозорец." +msgid "Don't be shy about learning the basics!" +msgstr "Не бъдете срамежливи, научете основното!" #: ../data/klavaro.glade.h:50 -msgid "Font definition" -msgstr "Определяне на шрифта" +msgid "Learn how to type correctly" +msgstr "Научете се да пишете правилно." #: ../data/klavaro.glade.h:51 -msgid "Top 10" -msgstr "Топ 10" +msgid "Initial training for your fingers." +msgstr "Начални упражнения за Вашите пръсти." #: ../data/klavaro.glade.h:52 -msgid "Show extra information" -msgstr "Показване на допълнителна информация" +msgid "First steps with initial training" +msgstr "Първи стъпки с начални упражнения" #: ../data/klavaro.glade.h:53 -msgid "Hide extra information" -msgstr "Скриване на допълнителната информация" +msgid "Memorizing the keyboard practicing random keys exercises." +msgstr "Запаветете клавиатурата, като се упражнявате с произволни клавиши." #: ../data/klavaro.glade.h:54 -msgid "Publish to the web your local scores." -msgstr "Публикувайте в интернет резултатите си." +msgid "Practice with random keys" +msgstr "Упражнявайте се с произволни клавиши" #: ../data/klavaro.glade.h:55 -msgid "_Participate" -msgstr "_Участие" +msgid "Accelerating the touches practicing random words exercises." +msgstr "По-бързо натискане на клавишите чрез упражнения с произволни думи" #: ../data/klavaro.glade.h:56 -msgid "Download from the web the most up to date ranking." -msgstr "Изтеглете от интернет най-актуалните класации." +msgid "Practice with random words" +msgstr "Упражнявайте се с произволни думи" #: ../data/klavaro.glade.h:57 -msgid "_Update" -msgstr "_Обновяване" +msgid "Becoming proficient practicing complete paragraphs exercises." +msgstr "Станете професионалист, като се упражнявате с цели абзаци." #: ../data/klavaro.glade.h:58 -msgid "About 'Klavaro'" -msgstr "Относно 'Klavaro'" +msgid "Practice with complete texts" +msgstr "Упражнявайте се с цели текстове" + +#: ../data/klavaro.glade.h:59 +msgid "" +"Keyboard layout for modules 1 and 2. Also used informatively in the " +"fluidness contest." +msgstr "" +"Клавиатурна подредба за модули 1 и 2. Използва се и информативно за " +"състезанието по гладкост." #: ../data/klavaro.glade.h:60 -msgid "Remember always: someone loves you!" -msgstr "Винаги помнете: някой Ви обича!" +msgid "_Keyboard:" +msgstr "_Клавиатура:" #: ../data/klavaro.glade.h:61 -msgid "Remove the selected custom layout." -msgstr "Премахване на избраната подредба, зададена от потребителя." +msgid "Language for modules 3 and 4." +msgstr "Език за модули 3 и 4." #: ../data/klavaro.glade.h:62 -msgid "_Remove" -msgstr "_Премахване" +msgid "_Language:" +msgstr "_Език:" #: ../data/klavaro.glade.h:63 -msgid "" -"Toggles the shift effect on the keys. Alternates between the upper and lower " -"characters of the keys." -msgstr "" -"Включва капитализацията. Сменя главните и малките символи на клавишите." +msgid "Speech" +msgstr "Реч" #: ../data/klavaro.glade.h:64 -msgid "SPACE BAR" -msgstr "ИНТЕРВАЛ" +msgid "Your language here." +msgstr "Тук е Вашият език." -#: ../data/klavaro.glade.h:65 ../src/keyboard.c:1630 -msgid "thumbs" -msgstr "умалени изображения" +#: ../data/klavaro.glade.h:65 +msgid "Little tip about this program." +msgstr "Малко помощ за тази програма." #: ../data/klavaro.glade.h:66 -msgid "Ctrl" -msgstr "Ctrl" +msgid "_Help" +msgstr "_Помощ" #: ../data/klavaro.glade.h:67 -msgid "Caps" -msgstr "Главни букви" +msgid "General information about the program." +msgstr "Обща информация за програмата." #: ../data/klavaro.glade.h:68 -msgid "S_ave as:" -msgstr "Запомняне като:" +msgid "_About..." +msgstr "_Относно..." #: ../data/klavaro.glade.h:69 -msgid "Show previous screen." -msgstr "Показване на предишния екран." +msgid "Exit the application immediately." +msgstr "Напускане на приложението веднага." #: ../data/klavaro.glade.h:70 -msgid "_Previous step" -msgstr "_Предишна стъпка" +msgid "Klavaro - Progress" +msgstr "Klavaro - напредък" #: ../data/klavaro.glade.h:71 -msgid "Show next screen." -msgstr "Показване на следващия екран." +msgid "_Lesson:" +msgstr "_Урок:" #: ../data/klavaro.glade.h:72 -msgid "_Next step" -msgstr "_Следваща стъпка" +msgid "Value" +msgstr "Стойност" #: ../data/klavaro.glade.h:73 -msgid "Return without any modification." -msgstr "Завръщане без запомняне на промените." +msgid "Close this window, returning to the exercise." +msgstr "Затворете този прозорец и се върнете към упражнението." #: ../data/klavaro.glade.h:74 -msgid "_Cancel" -msgstr "_Отказ" +msgid "Clear all the progress data, for every module." +msgstr "Изтриване на цялата информация за текущия напредък, във всеки модул." #: ../data/klavaro.glade.h:75 -msgid "Save the current keyboard layout with the name specified above." -msgstr "Запомняне на текущата клавиатурна подредба с името, посочено горе." +msgid "_Reset" +msgstr "_Отначало" #: ../data/klavaro.glade.h:76 -msgid "_Save and use" -msgstr "_Запомни и използвай" +msgid "Top 10" +msgstr "Топ 10" #: ../data/klavaro.glade.h:77 -msgid "" -"If you like those beautiful hands, click here to close this window keeping " -"them." -msgstr "" -"Ако харесвате тези красиви ръце, натиснете тук, за да затворите прозореца, " -"като ги запазите." +#, fuzzy +msgid "Show extra information." +msgstr "Показване на допълнителна информация" #: ../data/klavaro.glade.h:78 -msgid "_Keep hands" -msgstr "_Запазване на ръцете" +#, fuzzy +msgid "Hide extra information." +msgstr "Скриване на допълнителната информация" #: ../data/klavaro.glade.h:79 -msgid "Change language" -msgstr "Смяна на езика" +msgid "Publish to the web your local scores." +msgstr "Публикувайте в интернет резултатите си." #: ../data/klavaro.glade.h:80 -msgid "Attention!" -msgstr "Внимание!" +msgid "_Participate" +msgstr "_Участие" #: ../data/klavaro.glade.h:81 -msgid "Do you confirm?" -msgstr "Потвърждавате ли?" +msgid "Download from the web the most up to date ranking." +msgstr "Изтеглете от интернет най-актуалните класации." #: ../data/klavaro.glade.h:82 -msgid "_No" -msgstr "_Не" +msgid "_Update" +msgstr "_Обновяване" #: ../data/klavaro.glade.h:83 -msgid "_Yes" -msgstr "_Да" +msgid "Load other exercises/lessons" +msgstr "Зареждане на други упражнения/уроци" #: ../data/klavaro.glade.h:84 -msgid "Re_name:" -msgstr "Промяна на името:" +msgid "_Other texts" +msgstr "_Други текстове" #: ../data/klavaro.glade.h:85 -msgid "Rename the selected item." -msgstr "Преименуване на избрания файл." +msgid "Edit the character set to be used in this lesson." +msgstr "" +"Редактиране на набора от символи, които ще се използват в текущия урок." #: ../data/klavaro.glade.h:86 -msgid "" -"Read a text file and add a copy of it here. The file must be encoded in " -"UTF-8." -msgstr "" -"Прочетете текстов файл и копирайте съдържанието му тук. Файлът трябва да е " -"кодиран в UTF-8." +msgid "This is a specific exercise, adjusted to your error profile." +msgstr "Това е специално упражнение, напаснато към грешките, които правите." #: ../data/klavaro.glade.h:87 -msgid "_Open text file" -msgstr "_Отваряне на текстов файл" +#, fuzzy +msgid "" +"Edit the character set to be used in lessons after 43: they are customizable!" +msgstr "" +"Редактиране на набора от символи, които ще се използват в уроците от 44 до " +"50." -#: ../data/klavaro.glade.h:88 -msgid "Paste text that was copied to the clipboard." -msgstr "Вмъкнете текст, копиран в клипборда." +#: ../data/klavaro.glade.h:88 ../src/tutor.c:376 +msgid "Drag and drop text here to practice with it." +msgstr "Изтеглете и пуснете текст тук, за да се упражнявате с него." #: ../data/klavaro.glade.h:89 -msgid "_Paste from clipboard" -msgstr "_Вмъкване от клипборда" +#, fuzzy +msgid "Press here to restart the exercise. Hotkey: [Ctrl-R]" +msgstr "" +"Натиснете тук, за да започнете упражнението отначало. Бързи клавиши: [Ctrl R]" #: ../data/klavaro.glade.h:90 -msgid "Remove the selected item." -msgstr "Премахване на избрания файл." +msgid "Show the virtual keyboard and the relation between fingers and keys." +msgstr "" +"Показване на виртуална клавиатура и връзката между пръстите и клавишите." #: ../data/klavaro.glade.h:91 -msgid "_Remove copied file" -msgstr "_Премахване на копирания файл" +msgid "_Keyboard" +msgstr "_Клавиатура" #: ../data/klavaro.glade.h:92 -msgid "Apply the selected item to create an exercise." -msgstr "Прилагане на избрания текст и създаване на упражнение." +msgid "Select the font to be used in the exercise window." +msgstr "Изберете шрифт, който да се ползва в прозореца с упражненията." #: ../data/klavaro.glade.h:93 -msgid "_Apply" -msgstr "_Прилагане" +msgid "Font definition" +msgstr "Определяне на шрифта" #: ../data/klavaro.glade.h:94 -msgid "Klavaro - Progress" -msgstr "Klavaro - напредък" +msgid "Keep this checked if you want to get those nice beeps." +msgstr "Отбележете тук, ако искате да слушате тези приятни сигнали." #: ../data/klavaro.glade.h:95 -msgid "Value" -msgstr "Стойност" +msgid "_Beep" +msgstr "_Звук" #: ../data/klavaro.glade.h:96 -msgid "Clear all the progress data, for every module." -msgstr "Изтриване на цялата информация за текущия напредък, във всеки модул." +msgid "Co_urse information" +msgstr "Информация за курса" #: ../data/klavaro.glade.h:97 -msgid "_Reset" -msgstr "_Отначало" +msgid "Charts showing the learning progress along the exercises." +msgstr "Графики, показващи Вашия напредък с течение на упражненията." #: ../data/klavaro.glade.h:98 -msgid "Close this window, returning to the exercise." -msgstr "Затворете този прозорец и се върнете към упражнението." +msgid "_Progress" +msgstr "_Напредък" #: ../data/klavaro.glade.h:99 -msgid "Klavaro - Select file" -msgstr "Klavaro - избор на файл" +msgid "Return to the main menu." +msgstr "Завръщане към главното меню." #: ../data/klavaro.glade.h:100 -msgid "_Open" -msgstr "_Отваряне" +msgid "Show local and external scores from other users." +msgstr "Показване на резултати от други потребители." #: ../data/klavaro.glade.h:101 -msgid "Help?" -msgstr "Помощ?" - -#: ../data/klavaro.glade.h:102 -msgid "" -"The main menu of the application is very straightforward. Just select the " -"type of exercise you wish to take. Do not worry about clicking any button on " -"the screen. The buttons will never hurt you!" -msgstr "" -"Главното меню е много разбираемо. Просто изберете типа упражнение, който " -"искате да опитате. Не се притеснявайне, че ще натиснете някой бутон на " -"екрана. Бутоните няма да Ви наранят!" +msgid "_Top 10" +msgstr "_Топ 10" -#: ../data/klavaro.glade.h:103 -msgid "" -"Also the controls have tips which will appear if you hover over them with " -"your mouse. These tips can come in very handy. To see how these tips work, " -"position your mouse over the button below, and without clicking, wait for " -"the tip to appear..." -msgstr "" -"Освен това, към бутоните има информация, която ще се появи, ако ги посочите " -"с мишката. Тази информация понякога е много полезна. За да разберете как " -"работи, поставете мишката на бутона отдолу и без да натискате, изчакайте, " -"докато информационното каре се появи..." +#: ../data/klavaro.desktop.in.h:1 +#, fuzzy +msgid "A very flexible and efficient touch typing tutor." +msgstr "Поредният самоучител по машинопис" -#: ../data/klavaro.glade.h:104 -msgid "This is a tip. Now you press this button to return to the main menu." -msgstr "" -"Това е полезна информация. Сега натиснете този бутон, за да се завърнете към " -"главното меню." +#. Translators: these are keywords related to the program. CAI above means Computer Aided Instruction. Feel free to add and/or change the keywords in your language. +#: ../data/klavaro.desktop.in.h:3 +#, fuzzy +msgid "keyboard;typing;tutor;CAI" +msgstr "Клавиатура" -#: ../src/main.c:314 +#: ../src/main.c:242 msgid "(Custom)" msgstr "(Задаване от потребителя)" -#: ../src/main.c:315 +#: ../src/main.c:243 msgid "(Edit custom)" msgstr "(Редактиране на зададената от потребителя)" -#: ../src/main.c:316 +#: ../src/main.c:244 msgid "(Default)" msgstr "(По подразбиране)" -#: ../src/main.c:393 +#: ../src/main.c:321 #, c-format msgid "Dictation mode (depends on this speech synthesizer: %s)" msgid_plural "Dictation mode (depends on one of these speech synthesizers: %s)" msgstr[0] "Режим на диктовка (зависи от този речев синтезатор: %s)" msgstr[1] "Режим на диктовка (зависи от един от тези речеви синтезатори: %s)" -#. Set main labels (for translation) -#. -#: ../src/main.c:435 ../src/keyboard.c:1291 +#: ../src/main.c:364 ../src/keyboard.c:1291 msgid "Introduction" msgstr "Въведение" -#: ../src/main.c:438 ../src/top10.c:109 +#: ../src/main.c:367 ../src/top10.c:109 msgid "Basic course" msgstr "Начален курс" -#: ../src/main.c:441 ../src/top10.c:112 +#: ../src/main.c:370 ../src/top10.c:112 msgid "Adaptability" msgstr "Адаптивност" -#: ../src/main.c:444 ../src/callbacks.c:1310 ../src/top10.c:89 +#: ../src/main.c:373 ../src/callbacks.c:1226 ../src/top10.c:89 #: ../src/top10.c:115 msgid "Speed" msgstr "Бързина" -#: ../src/main.c:447 ../src/callbacks.c:1333 ../src/top10.c:91 +#: ../src/main.c:376 ../src/callbacks.c:1249 ../src/top10.c:91 #: ../src/top10.c:118 msgid "Fluidity" msgstr "Гладкост" -#: ../src/callbacks.c:468 ../src/tutor.c:391 +#: ../src/callbacks.c:407 ../src/tutor.c:515 msgid "Keys:" msgstr "Клавиши:" -#: ../src/callbacks.c:858 ../src/callbacks.c:874 +#: ../src/callbacks.c:774 ../src/callbacks.c:790 msgid "Connecting..." msgstr "Свързване..." -#: ../src/callbacks.c:1145 +#: ../src/callbacks.c:1061 msgid "Overwrite user layout" msgstr "Пренаписване на потребителската подредба" -#: ../src/callbacks.c:1147 +#: ../src/callbacks.c:1063 msgid "This will OVERWRITE an existent keyboard layout." msgstr "Съществуваща клавиатурна подредба ще бъде ПРЕНАПИСАНА." -#: ../src/callbacks.c:1154 +#: ../src/callbacks.c:1070 msgid "Remove user layout" msgstr "Премахване на потребителската подредба" -#: ../src/callbacks.c:1156 +#: ../src/callbacks.c:1072 msgid "This will REMOVE an existent keyboard layout." msgstr "Съществуваща клавиатурна подредба ще бъде ПРЕМАХНАТА." -#: ../src/callbacks.c:1163 +#: ../src/callbacks.c:1079 msgid "Reset progress data" msgstr "Рестартиране на информазията за напредъка" -#: ../src/callbacks.c:1164 +#: ../src/callbacks.c:1080 msgid "This will DELETE all the progress data shown in the charts." msgstr "Информацията за напредъка, показана в графиките, ще бъде ИЗТРИТА." -#: ../src/callbacks.c:1307 ../src/top10.c:87 +#: ../src/callbacks.c:1223 ../src/top10.c:87 msgid "Accuracy" msgstr "Прецизност" -#: ../src/callbacks.c:1310 ../src/tutor.c:1160 +#: ../src/callbacks.c:1226 ../src/tutor.c:1288 msgid "(WPM)" msgstr "(Думи/мин)" -#: ../src/callbacks.c:1321 +#: ../src/callbacks.c:1237 msgid "Errors" msgstr "Грешки" -#: ../src/callbacks.c:1324 +#: ../src/callbacks.c:1240 msgid "Touch times (s)" msgstr "Брой натискания (s)" -#: ../src/callbacks.c:1336 ../src/tutor.c:1187 ../src/top10.c:69 +#: ../src/callbacks.c:1252 ../src/tutor.c:1315 ../src/top10.c:69 msgid "Score" msgstr "Резултат" #. Translators: your language code (first 2 letters of your po-file) -#: ../src/translation.c:423 ../src/translation.c:489 ../src/tutor.c:1597 +#: ../src/translation.c:485 ../src/tutor.c:1725 msgid "en" msgstr "bg" -#: ../src/translation.c:576 +#: ../src/translation.c:572 msgid "" "The basic course focuses on having you read the characters presented to you " "on screen and typing the corresponding keys. Remember to keep your hands " @@ -579,7 +584,7 @@ "на основния ред на клавиатурата през цялото време (вижте въведението от " "основното меню)." -#: ../src/translation.c:580 +#: ../src/translation.c:576 msgid "" "The key set used in each series will be shown in the above message line. The " "[Space], [Shift] and [Enter] keys may not show up there but are used very " @@ -589,7 +594,7 @@ "съобщения по-горе. Клавишите [Интервал],[Главна буква]и [Нов ред] може и да " "не се появят там, но се използват много често." -#: ../src/translation.c:583 +#: ../src/translation.c:579 msgid "" "The message line below follows and echoes your key presses. If required, it " "changes and displays instructions for actions required from you." @@ -597,7 +602,7 @@ "Редът за съобщения по-долу следва и отразява натисканията на клавишите. Ако " "е необходимо, показва и инструкции за действия, които трябва да извършите." -#: ../src/translation.c:587 +#: ../src/translation.c:583 msgid "" "Here you may practice and improve your memorization of all keys. There will " "be sentences presented with nonsense words which mix some numbers and " @@ -607,7 +612,7 @@ "клавиши. Ще се появяват изречения с безсмислени думи, които смесват някои " "цифри и символи." -#: ../src/translation.c:590 +#: ../src/translation.c:586 msgid "" "In order to keep the lesson contents language and keyboard independent, " "accented letter combinations will probably not appear. For real word " @@ -618,7 +623,7 @@ "истински думи, моля, използвайте четвъртата възможност от главното меню (за " "гладкост)." -#: ../src/translation.c:594 +#: ../src/translation.c:590 msgid "" "After each exercise there will be a brief statistics panel reviewing your " "performance along with some relevant comments." @@ -626,7 +631,7 @@ "След всяко упражнение ще се появява панел с кратка статистическа справка, " "която показва напредъка Ви и по няколко полезни коментара." -#: ../src/translation.c:598 +#: ../src/translation.c:594 msgid "" "This exercise is very similar to the second one, for adaptability. The " "difference is that here you'll type real words." @@ -634,7 +639,7 @@ "Това упражнение много прилича на предишното, за адаптивност. Разликата е, че " "тук ще изписвате истински думи." -#: ../src/translation.c:601 +#: ../src/translation.c:597 msgid "" "The default language is the actual one of the interface. But you may select " "any other texts with words you would like to use. Press the 'Other' option " @@ -644,7 +649,7 @@ "всякакви други текстове с думи, които бихте искали да използвате. Натиснете " "бутона \"Други\" по-горе и добавете файловете, съдържащи тези текстове." -#: ../src/translation.c:605 +#: ../src/translation.c:601 msgid "" "With this exercise the focus is on speed. So, you are supposed to type " "really fast and I will only flatter you when you deserve it!" @@ -652,7 +657,7 @@ "В това упражнение фокусът е бързината. Така че би трябвало да пишете много " "бързо, за да си заслужите ласкателствата!" -#: ../src/translation.c:609 +#: ../src/translation.c:605 msgid "" "We will now use complete sentences and paragraphs which make logical sense. " "This may distract you while you type if you try to understand what you are " @@ -664,7 +669,7 @@ "Предишните упражнения имаха за цел да Ви научат да пишете, без да разбирате " "и анализирате съдържанието." -#: ../src/translation.c:613 +#: ../src/translation.c:609 msgid "" "We do not mean to imply that the typists must behave like a robot, without " "understanding what they type. We do aim to develop the skill of typing, " @@ -680,8 +685,7 @@ "минимална концентрация. Тогава ще можете да обръщате повече внимание на " "истинското съдържание на текста." -#. English typo: minimun -> minimum -#: ../src/translation.c:618 +#: ../src/translation.c:613 msgid "" "These exercises are longer. Each exercise consists of three paragraphs and " "the emphasis is placed on correctness and rhythm, with a minimum speed " @@ -693,7 +697,6 @@ "Тук ще трябва да използвате клавиша за изтриване, за да поправяте грешките. " "С други думи, ще се приема само въвеждане без грешки." -#. English typo: recomendations -> recommendations #: ../src/keyboard.c:1094 msgid "" "Correct positioning of the hands and fingers is very important to efficient " @@ -790,13 +793,11 @@ msgid "Step %i" msgstr "Стъпка %i" -#. Recommendations -#: ../src/keyboard.c:1140 +#: ../src/keyboard.c:1142 msgid "To position the hands" msgstr "Трябва да позиционирате ръцете си" -#. Final words -#: ../src/keyboard.c:1225 +#: ../src/keyboard.c:1227 msgid "Go ahead!" msgstr "Давай!" @@ -836,65 +837,65 @@ msgid "Press and edit me" msgstr "Натисни и ме редактирай" -#: ../src/tutor.c:176 +#: ../src/tutor.c:300 msgid "Lesson:" msgstr "Урок:" -#: ../src/tutor.c:186 +#: ../src/tutor.c:310 msgid "Paragraphs:" msgstr "Абзаци:" -#: ../src/tutor.c:219 +#: ../src/tutor.c:343 msgid "Klavaro - Basic Course" msgstr "Klavaro - Начален Курс" -#: ../src/tutor.c:224 +#: ../src/tutor.c:348 msgid "Klavaro - Adaptability" msgstr "Klavaro - Адаптивност" -#: ../src/tutor.c:227 +#: ../src/tutor.c:351 msgid "" "Adaptability exercises: automating the fingers responses, typing over all " "the keyboard." msgstr "Упражнения за адаптивност:" -#: ../src/tutor.c:232 +#: ../src/tutor.c:356 msgid "Klavaro - Velocity" msgstr "Klavaro - Скорост" -#: ../src/tutor.c:233 +#: ../src/tutor.c:357 msgid "Velocity exercises: accelerate typing real words." msgstr "Упражнения за бързина: ускорете, като пишете истински думи." -#: ../src/tutor.c:237 +#: ../src/tutor.c:361 msgid "Klavaro - Fluidness" msgstr "Klavaro - Гладкост" -#: ../src/tutor.c:239 +#: ../src/tutor.c:363 msgid "Fluidness exercises: accuracy typing good sense paragraphs." msgstr "Упражнения за гладкост: прецизност чрез писане на смислени абзаци." -#: ../src/tutor.c:301 +#: ../src/tutor.c:425 msgid "End of exercise. Press [Enter] to start another." msgstr "Край на упражнението. Натиснете [Нов ред], за да започнете друго." -#: ../src/tutor.c:329 +#: ../src/tutor.c:453 msgid "Learning the key positions." msgstr "Научаване на позициите на клавишите." -#: ../src/tutor.c:332 +#: ../src/tutor.c:456 msgid "Press any key to start the exercise. " msgstr "Натиснете някой клавиш, за да започнете упражнението." -#: ../src/tutor.c:440 ../src/tutor.c:443 +#: ../src/tutor.c:567 ../src/tutor.c:570 msgid "Start typing when you are ready. " msgstr "Започнете да пишете, когато сте готови." -#: ../src/tutor.c:441 +#: ../src/tutor.c:568 msgid "Use backspace to correct errors." msgstr "Използвайте изтриването, за да поправяте грешки." -#: ../src/tutor.c:885 +#: ../src/tutor.c:1012 #, c-format msgid "" "ps.: logging not performed for this session: the number of typed characters " @@ -903,11 +904,11 @@ "ps.: вход за сесията недостъпен: изписаните символи (%i) трябва да е по-" "голям от %i." -#: ../src/tutor.c:1027 +#: ../src/tutor.c:1154 msgid "ps.: you have entered the Top 10 list, great!" msgstr "ps.: влязохте в топ 10, страхотно!" -#: ../src/tutor.c:1039 +#: ../src/tutor.c:1166 msgid "" "ps.: the text you just typed doesn't seem to be similar to ordinary texts in " "the language currently selected: we can't account for it in the 'Top 10' " @@ -917,91 +918,88 @@ "обикновените текстове на езика, който сте избрали: не можем да го зачетем за " "състезанието за топ 10." -#. Begin the accuracy -#: ../src/tutor.c:1087 +#: ../src/tutor.c:1215 msgid "STATISTICS" msgstr "СТАТИСТИКА" -#: ../src/tutor.c:1088 +#: ../src/tutor.c:1216 msgid "Elapsed time:" msgstr "Изминало време:" -#: ../src/tutor.c:1089 +#: ../src/tutor.c:1217 msgid "minute and" msgid_plural "minutes and" msgstr[0] "минута и" msgstr[1] "минути и" -#: ../src/tutor.c:1090 +#: ../src/tutor.c:1218 msgid "second" msgid_plural "seconds" msgstr[0] "секунда" msgstr[1] "секунди" -#: ../src/tutor.c:1091 +#: ../src/tutor.c:1219 msgid "Error ratio:" msgstr "Честота на грешките:" -#: ../src/tutor.c:1091 +#: ../src/tutor.c:1219 msgid "Accuracy:" msgstr "Прецизност:" -#: ../src/tutor.c:1112 ../src/tutor.c:1137 ../src/tutor.c:1160 -#: ../src/tutor.c:1186 +#: ../src/tutor.c:1240 ../src/tutor.c:1265 ../src/tutor.c:1288 +#: ../src/tutor.c:1314 msgid "Goal:" msgstr "Цел:" -#: ../src/tutor.c:1119 +#: ../src/tutor.c:1247 msgid "Characters per second:" msgstr "Знака в секунда:" -#: ../src/tutor.c:1137 +#: ../src/tutor.c:1265 msgid "(CPS)" msgstr "(знака/мин)" -#: ../src/tutor.c:1142 +#: ../src/tutor.c:1270 msgid "Words per minute:" msgstr "Думи в минута:" -#: ../src/tutor.c:1167 +#: ../src/tutor.c:1295 msgid "Fluidness:" msgstr "Гладкост:" -#: ../src/tutor.c:1194 +#: ../src/tutor.c:1322 msgid "Comments:" msgstr "Коментари:" -#: ../src/tutor.c:1676 +#: ../src/tutor.c:1804 msgid "space" msgstr "интервал" #. Translators: the name of letter Y -#: ../src/tutor.c:1681 +#: ../src/tutor.c:1809 msgid "wye" msgstr "уай" #. Translators: the name of the Return key -#: ../src/tutor.c:1685 +#: ../src/tutor.c:1813 msgid "enter" msgstr "нов ред" -#: ../src/tutor.c:1691 +#: ../src/tutor.c:1819 msgid "apostrophe" msgstr "апостроф" #. Translators: double quote symbol: " -#: ../src/tutor.c:1695 +#: ../src/tutor.c:1823 msgid "quote" msgstr "кавички" #. Translators: ampersand symbol: & -#: ../src/tutor.c:1699 +#: ../src/tutor.c:1827 msgid "ampersand" msgstr "знак И" -#. Error frequencies or touch times -#. -#: ../src/plot.c:308 +#: ../src/plot.c:305 msgid "Character" msgstr "Символ" @@ -1009,11 +1007,11 @@ msgid "Date & Time" msgstr "Дата и час" -#: ../src/basic.c:331 +#: ../src/basic.c:326 msgid "Positions of keys seems to be learned!" msgstr "Позициите на клавишите явно са научени!" -#: ../src/basic.c:332 +#: ../src/basic.c:327 msgid "" " Congratulations!\n" " You have accomplished the entire basic course.\n" @@ -1025,7 +1023,7 @@ " Преминете към следващия тип упражнения: адаптивност.\n" " Там ще се упражнявате основно за прецизност.\n" -#: ../src/basic.c:338 +#: ../src/basic.c:333 msgid "" " All right, now you got it!\n" " Go to the next lesson.\n" @@ -1033,34 +1031,36 @@ " Добре, хванахте му цаката!\n" " Отидете напред към следващия урок.\n" -#: ../src/adaptability.c:217 +#: ../src/adaptability.c:213 +#, fuzzy, c-format msgid "" -" Your accuracy rate is below 90%...\n" +" Your accuracy rate is below %.0f%%...\n" " Could you please try again to improve it?\n" msgstr "" " Прецизността Ви е под 90%...\n" " Бихте ли пробвали отново, за да я подобрите, моля?\n" -#: ../src/adaptability.c:222 +#: ../src/adaptability.c:216 +#, fuzzy, c-format msgid "" " You are doing well. But...\n" -" Could you make the accuracy reach 95%?\n" +" Could you make the accuracy reach %.0f%%?\n" msgstr "" " Справяте се добре. Но...\n" " Можете ли да постигнете прецизност от 95%?\n" -#: ../src/adaptability.c:225 -#, c-format +#: ../src/adaptability.c:219 +#, fuzzy, c-format msgid "" " You are almost there, but your accuracy rate is still below %.0f%%.\n" -" Try a few more times, or maybe you're getting upset, so go to other kind of " -"exercise.\n" +" Try a few more times, or maybe you're getting upset, so go to another kind " +"of exercise.\n" msgstr "" " Почти сте готови, но прецизността Ви все още е под %.0f%%.\n" " Опитайте още няколко пъти, или, ако се разстройвате, пробвайте друго " "упражнение.\n" -#: ../src/adaptability.c:232 +#: ../src/adaptability.c:226 #, c-format msgid "" " Very good!\n" @@ -1073,11 +1073,11 @@ " Сега трябва да подобрите скоростта.\n" " Пробвайте 3-ото упражнение от главното меню.\n" -#: ../src/velocity.c:313 ../src/fluidness.c:435 +#: ../src/velocity.c:312 ../src/fluidness.c:435 msgid "Pasted_or_dropped" msgstr "Вмъкнато_или_пуснато" -#: ../src/velocity.c:432 +#: ../src/velocity.c:423 msgid "" " You are just beginning.\n" " Be patient, try it again every day, rest and don't worry so much:\n" @@ -1088,32 +1088,35 @@ "притеснявайте много:\n" " с постоянство и упражнения ще подобрите скоростта си.\n" -#: ../src/velocity.c:436 +#: ../src/velocity.c:427 +#, fuzzy, c-format msgid "" " Still away from the highway. You can make better...\n" -" Try at least 20 WPM.\n" +" Try to reach at least %.0f WPM.\n" msgstr "" " Все още сте далеч от най-добрите постижения. Можете да се справите по-" "добре...\n" " Опитайте да постигнете поне 20 думи/мин.\n" -#: ../src/velocity.c:439 +#: ../src/velocity.c:430 +#, fuzzy, c-format msgid "" " You are doing well, but need to go faster.\n" -" And don't forget the accuracy. Try to get 30 WPM.\n" +" And don't forget the accuracy. Try to get %.0f WPM.\n" msgstr "" " Справяте се добре, но трябва да сте по-бързи.\n" " И не забравяйте прецизността. Опитайте да достигнете 30 думи/мин.\n" -#: ../src/velocity.c:443 +#: ../src/velocity.c:433 +#, fuzzy, c-format msgid "" " Fine. Now you need to start running.\n" -" Can you reach 40 WPM?\n" +" Can you reach %.0f WPM?\n" msgstr "" " Добре. Сега трябва да започнете да тичате.\n" " Можете ли да достигнете 40 думи/мин?\n" -#: ../src/velocity.c:446 +#: ../src/velocity.c:436 #, c-format msgid "" " Very good. You are almost there.\n" @@ -1122,7 +1125,7 @@ " Много добре. Още малко и сте готови.\n" " Можете ли да достигнете %0f думи/мин?\n" -#: ../src/velocity.c:451 +#: ../src/velocity.c:439 msgid "" " Excellent. For this course, that is enough.\n" " Try now the fluidness exercises, OK?\n" @@ -1130,31 +1133,34 @@ " Отлично. За този курс - стига толкова.\n" " Защо не пробвате курса по гладкост?\n" -#: ../src/velocity.c:455 +#: ../src/velocity.c:442 +#, fuzzy, c-format msgid "" -" Fast! Are you training for a competition?\n" -" So, try to get 70 WPM!\n" +" Fast! Are you a professional?\n" +" So, try to get %.0f WPM!\n" msgstr "" " Бързо! За състезание ли тренирате?\n" " Тогава опитайте да достигнете 70 думи/мин!\n" -#: ../src/velocity.c:458 -msgid "" -" Top of \"qwerty\". Now it's time to change to the Dvorak mode.\n" -" Are you afraid of reaching 80 WPM?\n" +#. Translators: Speed Racer is a reference to a Japanese anime franchise +#. about automobile racing, also known as Mach GoGoGo. +#: ../src/velocity.c:447 +#, c-format +msgid " Ranking good, Speed Racer! Are you afraid of reaching %.0f WPM?\n" msgstr "" -" Най-доброто за QWERTY. Време е да пробвате Dvorak стандарта.\n" -" Страх ли Ви е да достигнете 80 думи/мин?\n" -#: ../src/velocity.c:462 +#. Translators: feel free to change the reference to that martial art, if you find another good analogy. +#: ../src/velocity.c:451 +#, fuzzy, c-format msgid "" -" Dvorak mode dominated!\n" -" Can you fly at 90 WPM?\n" +" Kunf-fu mastering!\n" +" Can you fly at %.0f WPM?\n" msgstr "" " Овладяхте Dvorak!\n" " Можете ли да достигнете 90 думи/мин?\n" -#: ../src/velocity.c:466 +#. Translators: Dvorak here means that infamous ergonomic keyboard layout. +#: ../src/velocity.c:454 msgid "" " Dvorak master!\n" " I have no words to express my admiration!\n" @@ -1162,7 +1168,7 @@ " Майстор на Dvorak!\n" " Нямам думи!\n" -#: ../src/fluidness.c:545 +#: ../src/fluidness.c:538 #, c-format msgid "" " You type accurately but not so fast.\n" @@ -1171,7 +1177,7 @@ " Пишете прецизно, но не много бързо.\n" " Можете ли да достигнете %0f думи/мин?\n" -#: ../src/fluidness.c:548 +#: ../src/fluidness.c:541 #, c-format msgid "" " Your rhythm is not so constant. Calm down.\n" @@ -1180,7 +1186,7 @@ " Ритъмът Ви не е много постоянен. Успокойте се.\n" " Засега, опитайте да постигнете гладкост, по-голяма от %i%%.\n" -#: ../src/fluidness.c:551 +#: ../src/fluidness.c:544 #, c-format msgid "" " You are almost getting there. Type more fluently.\n" @@ -1189,7 +1195,7 @@ " Почти готови сте. Пишете по-гладко.\n" " Искам гладкост, по-голяма от %.0f%%.\n" -#: ../src/fluidness.c:554 +#: ../src/fluidness.c:547 msgid "" " Congratulations!\n" " It seems to me that you are a professional.\n" @@ -1201,7 +1207,7 @@ " Нямате вече нужда от тази програма.\n" " Дано Ви е харесала. Благодаря и всичко най-хобаво!\n" -#: ../src/fluidness.c:559 +#: ../src/fluidness.c:552 msgid "" " How can you type so fast?\n" " You have exceeded all my expectations.\n" @@ -1261,5 +1267,23 @@ msgid "Could not upload/download scores." msgstr "Неуспешно качване/изтегляне на резултатите." +#~ msgid "" +#~ " Top of \"qwerty\". Now it's time to change to the Dvorak mode.\n" +#~ " Are you afraid of reaching 80 WPM?\n" +#~ msgstr "" +#~ " Най-доброто за QWERTY. Време е да пробвате Dvorak стандарта.\n" +#~ " Страх ли Ви е да достигнете 80 думи/мин?\n" + +#~ msgid "Press here to restart the exercise. Hotkey: [Ctrl R]" +#~ msgstr "" +#~ "Натиснете тук, за да започнете упражнението отначало. Бързи клавиши: " +#~ "[Ctrl R]" + +#~ msgid "_Font" +#~ msgstr "_Шрифт" + +#~ msgid "Klavaro" +#~ msgstr "Klavaro" + #~ msgid "Default" #~ msgstr "По подразбиране" diff -Nru klavaro-1.9.9/po/bn.po klavaro-3.00/po/bn.po --- klavaro-1.9.9/po/bn.po 2013-08-15 13:38:49.000000000 +0000 +++ klavaro-3.00/po/bn.po 2014-01-13 23:25:49.000000000 +0000 @@ -5,12 +5,12 @@ msgid "" msgstr "" "Project-Id-Version: 1.1.7\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2013-08-15 10:38-0300\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2014-01-13 21:25-0200\n" "PO-Revision-Date: 2008-11-05 16:51+0600\n" "Last-Translator: Md. Rezwan Shahid \n" "Language-Team: Bangla/Bengali \n" -"Language: \n" +"Language: bn\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=utf-8\n" "Content-Transfer-Encoding: 8bit\n" @@ -18,597 +18,598 @@ "X-Poedit-Language: Bengali\n" "X-Poedit-Country: BANGLADESH\n" -#: ../data/klavaro.desktop.in.h:1 ../data/klavaro.glade.h:59 -msgid "Yet another touch typing tutor" -msgstr "আরেকটি স্পর্শ টাইপিং শিক্ষক" - #: ../data/klavaro.glade.h:1 -msgid "Klavaro - Main menu" -msgstr "ক্লাভারো - প্রধান মেনু" +msgid "About 'Klavaro'" +msgstr "'ক্লাভারো' সম্পর্কিত" #: ../data/klavaro.glade.h:2 -msgid "Don't be shy about learning the basics!" -msgstr "শুরু থেকে শিখতে লজ্জা পাবেন না!" +msgid "Yet another touch typing tutor" +msgstr "আরেকটি স্পর্শ টাইপিং শিক্ষক" #: ../data/klavaro.glade.h:3 -#, fuzzy -msgid "Learn how to type correctly" -msgstr "কিভাবে সঠিক টাইপ করা যায়" +msgid "Remember always: someone loves you!" +msgstr "সবসময় মনে রাখবেন: কেউ একজন আপনাকে ভালবাসে!" #: ../data/klavaro.glade.h:4 -msgid "Initial training for your fingers." -msgstr "আপনার আঙ্গুলের জন্য প্রারম্ভিক প্রশিক্ষণ" +msgid "Change language" +msgstr "ভাযা পরিবর্তন করুন" #: ../data/klavaro.glade.h:5 -#, fuzzy -msgid "First steps with initial training" -msgstr "প্রারম্ভিক অনুশীলন" +msgid "Attention!" +msgstr "সাবধান!" #: ../data/klavaro.glade.h:6 -msgid "Memorizing the keyboard practicing random keys exercises." -msgstr "এলোমেলো কী (key) অনুশীলনের মাধ্যমে কীবোর্ড মনে রাখা।" +msgid "Do you confirm?" +msgstr "আপনি কি নিশ্চিত করছেন?" #: ../data/klavaro.glade.h:7 #, fuzzy -msgid "Practice with random keys" -msgstr "পূর্ণ টেক্সট" +msgid "_No" +msgstr "না" -#. English typo: touchs -> touches -#: ../data/klavaro.glade.h:9 +#: ../data/klavaro.glade.h:8 #, fuzzy -msgid "Accelerating the touches practicing random words exercises." -msgstr "এলোমেলো শব্দ অনুশীলনের মাধ্যমে হাতের গতি বাড়ানো।" +msgid "_Yes" +msgstr "হাঁ" + +#: ../data/klavaro.glade.h:9 +msgid "Help?" +msgstr "সাহায্য?" #: ../data/klavaro.glade.h:10 -#, fuzzy -msgid "Practice with random words" -msgstr "পূর্ণ টেক্সট" +msgid "This is a tip. Now you press this button to return to the main menu." +msgstr "এটি একটি টিপ। এখন প্রধান মেন্যুতে ফিরে যেতে এখানে চাপুন।" #: ../data/klavaro.glade.h:11 -msgid "Becoming proficient practicing complete paragraphs exercises." -msgstr "পূর্ণ প্যারাগ্রাফ অনুশীলন করে দক্ষ হয়ে উঠুন।" +msgid "B_ack to menu" +msgstr "" #: ../data/klavaro.glade.h:12 #, fuzzy -msgid "Practice with complete texts" -msgstr "পূর্ণ টেক্সট" +msgid "" +"The main menu of the application is very straightforward. Just select the " +"type of exercise you wish to take. Do not worry about clicking any button on " +"the screen. The buttons will never hurt you!" +msgstr "" +"এটি অ্যাপ্লিকেশনটির প্রধান মেন্যু এবং এটি খুব সহজ। আপনি কি ধরণের অনুশীলন করতে চান " +"সেটি নির্বাচন করুন। কোনো বোতামে ক্লিক করতে ভয় পাবেন না: এগুলো আপনাকে আঘাত করবেনা!" #: ../data/klavaro.glade.h:13 msgid "" -"Keyboard layout for modules 1 and 2. Also used informatively in the " -"fluidness contest." +"Also the controls have tips which will appear if you hover over them with " +"your mouse. These tips can come in very handy. To see how these tips work, " +"position your mouse over the button below, and without clicking, wait for " +"the tip to appear..." msgstr "" +"প্রতিটি নিয়ন্ত্রণের উপরে নির্দেশনা দেখানো পর্যন্ত অপেক্ষা করতে ভুলবেন না । মাঝে মাঝে " +"এগুলো সহায়ক হতে পারে। নির্দেশনাগুলো কিভাবে কাজ করে সেটি দেখতে, অনুগ্রহ করে ক্লিক " +"না করে, মাউসটি নিচের বোতামের উপর ধরে রাখুন এবং, নির্দেশনা না দেখানো পর্যন্ত " +"কিছুক্ষন অপেক্ষা করুন..." #: ../data/klavaro.glade.h:14 -#, fuzzy -msgid "_Keyboard:" -msgstr "কিবোর্ড" +msgid "Klavaro - Select file" +msgstr "ক্লাভারো - ফাইল নির্বাচন করুন" #: ../data/klavaro.glade.h:15 -msgid "Language for modules 3 and 4." -msgstr "" +#, fuzzy +msgid "_Cancel" +msgstr "বাতিল" #: ../data/klavaro.glade.h:16 -#, fuzzy -msgid "_Language:" -msgstr "ভা‌ষা" +msgid "_Open" +msgstr "" #: ../data/klavaro.glade.h:17 -msgid "Variant" -msgstr "" +#, fuzzy +msgid "Re_name:" +msgstr "মুছে ফেলুন" #: ../data/klavaro.glade.h:18 #, fuzzy -msgid "Klavaro" -msgstr "'Klavaro'" +msgid "Rename the selected item." +msgstr "উপরের লিস্ট থেকে নির্বাচিত আইটেম মুছে ফেলুন।" #: ../data/klavaro.glade.h:19 -msgid "Country / Custom" +msgid "" +"Read a text file and add a copy of it here. The file must be encoded in " +"UTF-8." msgstr "" +"একটি টেক্সট ফাইল পড়ুন এবং এর একটি কপি এখানে যোগ করুন। ফাইলটি অবশ্যই UTF-8 এ " +"এনকোড করা থাকতে হবে।" #: ../data/klavaro.glade.h:20 -msgid "Your language here." +msgid "_Open text file" msgstr "" #: ../data/klavaro.glade.h:21 -msgid "Speech" -msgstr "" +#, fuzzy +msgid "Paste text that was copied to the clipboard." +msgstr "ক্লিপবোর্ডে কপি করা টেক্ট এখানে পেস্ট করুন। শর্টকাট: [Ctrl-V]" #: ../data/klavaro.glade.h:22 -msgid "Little tip about this program." -msgstr "এই অ্যাপ্লিকেশন সম্পর্কিত কিছু টিপ।" +msgid "_Paste from clipboard" +msgstr "" #: ../data/klavaro.glade.h:23 #, fuzzy -msgid "_Help" -msgstr "সহায়িকা" +msgid "Remove the selected item." +msgstr "উপরের লিস্ট থেকে নির্বাচিত আইটেম মুছে ফেলুন।" #: ../data/klavaro.glade.h:24 #, fuzzy -msgid "General information about the program." -msgstr "এই অ্যাপ্লিকেশন সম্পর্কিত কিছু টিপ।" +msgid "_Remove copied file" +msgstr "নির্বাচিতগুলো মুছে ফেলুন" #: ../data/klavaro.glade.h:25 -#, fuzzy -msgid "_About..." -msgstr "ফ্লাভারো সম্পর্কিত..." +msgid "Apply the selected item to create an exercise." +msgstr "নতুন অনুশীলন তৈরি করতে নির্বাচিত আইটেম গুলো কার্যকর করুন।" #: ../data/klavaro.glade.h:26 -#, fuzzy -msgid "Exit the application immediately." -msgstr "এই মূহুর্তে অ্যাপ্লিকেশন থেকে বের হয়ে যান। শর্টকাট: [Ctrl-Q]" +msgid "_Apply" +msgstr "" #: ../data/klavaro.glade.h:27 -#, fuzzy -msgid "_Close" -msgstr "বন্ধ করুন" +msgid "Close this window." +msgstr "এই উইন্ডো বন্ধ করুন।" #: ../data/klavaro.glade.h:28 #, fuzzy -msgid "Load other exercises/lessons" -msgstr "অন্যান্য " +msgid "_Close" +msgstr "বন্ধ করুন" #: ../data/klavaro.glade.h:29 -#, fuzzy -msgid "_Other texts" -msgstr "পূর্ণ টেক্সট" +msgid "Country / Custom" +msgstr "" #: ../data/klavaro.glade.h:30 -#, fuzzy -msgid "_Lesson:" -msgstr "শিক্ষা" +msgid "Variant" +msgstr "" #: ../data/klavaro.glade.h:31 -msgid "Edit the character set to be used in this lesson." -msgstr "শিক্ষায় ব্যবহৃতব্য ক্যারেকটার সেটটি পরিবর্তন করুন।" +#, fuzzy +msgid "Remove the selected custom layout." +msgstr "উপরের লিস্ট থেকে নির্বাচিত আইটেম মুছে ফেলুন।" #: ../data/klavaro.glade.h:32 #, fuzzy -msgid "Edit the character set to be used in lessons 44 through 50." -msgstr "শিক্ষায় ব্যবহৃতব্য ক্যারেকটার সেটটি পরিবর্তন করুন।" +msgid "_Remove" +msgstr "মুছে ফেলুন" #: ../data/klavaro.glade.h:33 -msgid "This is a specific exercise, adjusted to your error profile." +msgid "" +"Toggles the shift effect on the keys. Alternates between the upper and lower " +"characters of the keys." msgstr "" +"কী-এর shift প্রভাব পরিবর্তন করে। কী-এর উপর এবং নিম্ন বর্নমালার মধ্যে অন্ত:পরিবর্তন " +"করে।" -#: ../data/klavaro.glade.h:34 ../src/tutor.c:252 -msgid "Drag and drop text here to practice with it." -msgstr "এখানে টেক্সট টেনে এনে অনুশীলন করুন।" +#: ../data/klavaro.glade.h:34 +msgid "SPACE BAR" +msgstr "স্পেসবার" -#: ../data/klavaro.glade.h:35 -msgid "Press here to restart the exercise. Hotkey: [Ctrl R]" -msgstr "অনুশীলন নতুন করে শুরু করতে চাইলে এখানে ক্লিক করুন। শর্টকাট: [Ctrl R]" +#: ../data/klavaro.glade.h:35 ../src/keyboard.c:1630 +msgid "thumbs" +msgstr "বুড়ো আঙ্গুল" #: ../data/klavaro.glade.h:36 -msgid "Show the virtual keyboard and the relation between fingers and keys." -msgstr "ভার্চুয়াল কীবোর্ড প্রদর্শন করুন এবং আঙ্গুল ও কী এর মধ্যে সম্পর্ক প্রদর্শন করুন" +msgid "Ctrl" +msgstr "Ctrl" #: ../data/klavaro.glade.h:37 -#, fuzzy -msgid "_Keyboard" -msgstr "কিবোর্ড" +msgid "Caps" +msgstr "ক্যাপস্" #: ../data/klavaro.glade.h:38 -msgid "Select the font to be used in the exercise window." -msgstr "অনুশীলনে ব্যবহৃতব্য ফন্টটি নির্বাচন করুন।" +#, fuzzy +msgid "S_ave as:" +msgstr "সংরক্ষণ করুন" #: ../data/klavaro.glade.h:39 -msgid "_Font" +msgid "Show previous screen." msgstr "" #: ../data/klavaro.glade.h:40 -#, fuzzy -msgid "Keep this checked if you want to get those nice beeps." -msgstr "আপনি যদি শব্দ কার্যকর রাখতে চান তাহলে এখানে টিক দিন। শর্টকাট: [Ctrl S]" +msgid "_Previous step" +msgstr "" #: ../data/klavaro.glade.h:41 -#, fuzzy -msgid "_Beep" -msgstr "সহায়িকা" +msgid "Show next screen." +msgstr "" #: ../data/klavaro.glade.h:42 -#, fuzzy -msgid "Co_urse information" -msgstr "তথ্য বাড়ান" +msgid "_Next step" +msgstr "" #: ../data/klavaro.glade.h:43 -msgid "Charts showing the learning progress along the exercises." -msgstr "অনুশীলনের সাথে শিক্ষার অগ্রগতি প্রদর্শনকারী চার্ট।" +#, fuzzy +msgid "Return without any modification." +msgstr "কোনো পরিবর্তন না করে ফিরে যান। শর্টকাট: [Esc]" #: ../data/klavaro.glade.h:44 -#, fuzzy -msgid "_Progress" -msgstr "অগ্রগতি" +msgid "Save the current keyboard layout with the name specified above." +msgstr "এই কিবোর্ড লেআউটটি উপরে উল্লিখিত নামে সংরক্ষণ করুন" #: ../data/klavaro.glade.h:45 -msgid "Show local and external scores from other users." -msgstr "অন্যান্য ব্যবহারকারীদের স্থানীয় এবং বহি:স্থ স্কোর প্রদর্শন করুন।" +#, fuzzy +msgid "_Save and use" +msgstr "সংরক্ষণ করুন" #: ../data/klavaro.glade.h:46 #, fuzzy -msgid "_Top 10" -msgstr "সেরা ১০" +msgid "" +"If you like those beautiful hands, click here to close this window keeping " +"them." +msgstr "" +"আপনি যদি এই সুন্দর হাতগুলো পাশে রাখতে চান, তাহলে এই উইন্ডো বন্ধ করার পূর্বে এখানে " +"ক্লিক করুন।" #: ../data/klavaro.glade.h:47 #, fuzzy -msgid "Return to the main menu." -msgstr "প্রধান মেন্যুতে ফিরে যান। শর্টকাট: [Ctrl-Q]" +msgid "_Keep hands" +msgstr "হাতটি রাখুন" #: ../data/klavaro.glade.h:48 -msgid "B_ack to menu" -msgstr "" +msgid "Klavaro - Main menu" +msgstr "ক্লাভারো - প্রধান মেনু" #: ../data/klavaro.glade.h:49 -msgid "Close this window." -msgstr "এই উইন্ডো বন্ধ করুন।" +msgid "Don't be shy about learning the basics!" +msgstr "শুরু থেকে শিখতে লজ্জা পাবেন না!" #: ../data/klavaro.glade.h:50 -msgid "Font definition" -msgstr "ফন্ট ডেফিনিশন" +#, fuzzy +msgid "Learn how to type correctly" +msgstr "কিভাবে সঠিক টাইপ করা যায়" #: ../data/klavaro.glade.h:51 -msgid "Top 10" -msgstr "সেরা ১০" +msgid "Initial training for your fingers." +msgstr "আপনার আঙ্গুলের জন্য প্রারম্ভিক প্রশিক্ষণ" #: ../data/klavaro.glade.h:52 #, fuzzy -msgid "Show extra information" -msgstr "তথ্য বাড়ান" +msgid "First steps with initial training" +msgstr "প্রারম্ভিক অনুশীলন" #: ../data/klavaro.glade.h:53 -#, fuzzy -msgid "Hide extra information" -msgstr "তথ্য বাড়ান" +msgid "Memorizing the keyboard practicing random keys exercises." +msgstr "এলোমেলো কী (key) অনুশীলনের মাধ্যমে কীবোর্ড মনে রাখা।" #: ../data/klavaro.glade.h:54 #, fuzzy -msgid "Publish to the web your local scores." -msgstr "আপনার স্থানীয় স্কোর কনফিগার করা হোস্টের কাছে পাবলিশ করুন।" +msgid "Practice with random keys" +msgstr "পূর্ণ টেক্সট" #: ../data/klavaro.glade.h:55 #, fuzzy -msgid "_Participate" -msgstr "অংশগ্রহন করুন" +msgid "Accelerating the touches practicing random words exercises." +msgstr "এলোমেলো শব্দ অনুশীলনের মাধ্যমে হাতের গতি বাড়ানো।" #: ../data/klavaro.glade.h:56 -msgid "Download from the web the most up to date ranking." -msgstr "" +#, fuzzy +msgid "Practice with random words" +msgstr "পূর্ণ টেক্সট" #: ../data/klavaro.glade.h:57 -#, fuzzy -msgid "_Update" -msgstr "আপডেট" +msgid "Becoming proficient practicing complete paragraphs exercises." +msgstr "পূর্ণ প্যারাগ্রাফ অনুশীলন করে দক্ষ হয়ে উঠুন।" #: ../data/klavaro.glade.h:58 -msgid "About 'Klavaro'" -msgstr "'ক্লাভারো' সম্পর্কিত" +#, fuzzy +msgid "Practice with complete texts" +msgstr "পূর্ণ টেক্সট" + +#: ../data/klavaro.glade.h:59 +msgid "" +"Keyboard layout for modules 1 and 2. Also used informatively in the " +"fluidness contest." +msgstr "" #: ../data/klavaro.glade.h:60 -msgid "Remember always: someone loves you!" -msgstr "সবসময় মনে রাখবেন: কেউ একজন আপনাকে ভালবাসে!" +#, fuzzy +msgid "_Keyboard:" +msgstr "কিবোর্ড" #: ../data/klavaro.glade.h:61 -#, fuzzy -msgid "Remove the selected custom layout." -msgstr "উপরের লিস্ট থেকে নির্বাচিত আইটেম মুছে ফেলুন।" +msgid "Language for modules 3 and 4." +msgstr "" #: ../data/klavaro.glade.h:62 #, fuzzy -msgid "_Remove" -msgstr "মুছে ফেলুন" +msgid "_Language:" +msgstr "ভা‌ষা" #: ../data/klavaro.glade.h:63 -msgid "" -"Toggles the shift effect on the keys. Alternates between the upper and lower " -"characters of the keys." +msgid "Speech" msgstr "" -"কী-এর shift প্রভাব পরিবর্তন করে। কী-এর উপর এবং নিম্ন বর্নমালার মধ্যে অন্ত:পরিবর্তন " -"করে।" #: ../data/klavaro.glade.h:64 -msgid "SPACE BAR" -msgstr "স্পেসবার" +msgid "Your language here." +msgstr "" -#: ../data/klavaro.glade.h:65 ../src/keyboard.c:1630 -msgid "thumbs" -msgstr "বুড়ো আঙ্গুল" +#: ../data/klavaro.glade.h:65 +msgid "Little tip about this program." +msgstr "এই অ্যাপ্লিকেশন সম্পর্কিত কিছু টিপ।" #: ../data/klavaro.glade.h:66 -msgid "Ctrl" -msgstr "Ctrl" +#, fuzzy +msgid "_Help" +msgstr "সহায়িকা" #: ../data/klavaro.glade.h:67 -msgid "Caps" -msgstr "ক্যাপস্" +#, fuzzy +msgid "General information about the program." +msgstr "এই অ্যাপ্লিকেশন সম্পর্কিত কিছু টিপ।" #: ../data/klavaro.glade.h:68 #, fuzzy -msgid "S_ave as:" -msgstr "সংরক্ষণ করুন" +msgid "_About..." +msgstr "ফ্লাভারো সম্পর্কিত..." #: ../data/klavaro.glade.h:69 -msgid "Show previous screen." -msgstr "" +#, fuzzy +msgid "Exit the application immediately." +msgstr "এই মূহুর্তে অ্যাপ্লিকেশন থেকে বের হয়ে যান। শর্টকাট: [Ctrl-Q]" #: ../data/klavaro.glade.h:70 -msgid "_Previous step" -msgstr "" +msgid "Klavaro - Progress" +msgstr "ক্লাভারো - অগ্রগতি" #: ../data/klavaro.glade.h:71 -msgid "Show next screen." -msgstr "" +#, fuzzy +msgid "_Lesson:" +msgstr "শিক্ষা" #: ../data/klavaro.glade.h:72 -msgid "_Next step" +msgid "Value" msgstr "" #: ../data/klavaro.glade.h:73 #, fuzzy -msgid "Return without any modification." -msgstr "কোনো পরিবর্তন না করে ফিরে যান। শর্টকাট: [Esc]" +msgid "Close this window, returning to the exercise." +msgstr "এই উইন্ডোটি বন্ধ করুন, অনুশীলনে ফিরে যান। শর্টকাট: [Esc]" #: ../data/klavaro.glade.h:74 -#, fuzzy -msgid "_Cancel" -msgstr "বাতিল" +msgid "Clear all the progress data, for every module." +msgstr "" #: ../data/klavaro.glade.h:75 -msgid "Save the current keyboard layout with the name specified above." -msgstr "এই কিবোর্ড লেআউটটি উপরে উল্লিখিত নামে সংরক্ষণ করুন" +#, fuzzy +msgid "_Reset" +msgstr "রিসেট!" #: ../data/klavaro.glade.h:76 -#, fuzzy -msgid "_Save and use" -msgstr "সংরক্ষণ করুন" +msgid "Top 10" +msgstr "সেরা ১০" #: ../data/klavaro.glade.h:77 #, fuzzy -msgid "" -"If you like those beautiful hands, click here to close this window keeping " -"them." -msgstr "" -"আপনি যদি এই সুন্দর হাতগুলো পাশে রাখতে চান, তাহলে এই উইন্ডো বন্ধ করার পূর্বে এখানে " -"ক্লিক করুন।" +msgid "Show extra information." +msgstr "তথ্য বাড়ান" #: ../data/klavaro.glade.h:78 #, fuzzy -msgid "_Keep hands" -msgstr "হাতটি রাখুন" +msgid "Hide extra information." +msgstr "তথ্য বাড়ান" #: ../data/klavaro.glade.h:79 -msgid "Change language" -msgstr "ভাযা পরিবর্তন করুন" +#, fuzzy +msgid "Publish to the web your local scores." +msgstr "আপনার স্থানীয় স্কোর কনফিগার করা হোস্টের কাছে পাবলিশ করুন।" #: ../data/klavaro.glade.h:80 -msgid "Attention!" -msgstr "সাবধান!" +#, fuzzy +msgid "_Participate" +msgstr "অংশগ্রহন করুন" #: ../data/klavaro.glade.h:81 -msgid "Do you confirm?" -msgstr "আপনি কি নিশ্চিত করছেন?" +msgid "Download from the web the most up to date ranking." +msgstr "" #: ../data/klavaro.glade.h:82 #, fuzzy -msgid "_No" -msgstr "না" +msgid "_Update" +msgstr "আপডেট" #: ../data/klavaro.glade.h:83 #, fuzzy -msgid "_Yes" -msgstr "হাঁ" +msgid "Load other exercises/lessons" +msgstr "অন্যান্য " #: ../data/klavaro.glade.h:84 #, fuzzy -msgid "Re_name:" -msgstr "মুছে ফেলুন" +msgid "_Other texts" +msgstr "পূর্ণ টেক্সট" #: ../data/klavaro.glade.h:85 -#, fuzzy -msgid "Rename the selected item." -msgstr "উপরের লিস্ট থেকে নির্বাচিত আইটেম মুছে ফেলুন।" +msgid "Edit the character set to be used in this lesson." +msgstr "শিক্ষায় ব্যবহৃতব্য ক্যারেকটার সেটটি পরিবর্তন করুন।" #: ../data/klavaro.glade.h:86 -msgid "" -"Read a text file and add a copy of it here. The file must be encoded in " -"UTF-8." +msgid "This is a specific exercise, adjusted to your error profile." msgstr "" -"একটি টেক্সট ফাইল পড়ুন এবং এর একটি কপি এখানে যোগ করুন। ফাইলটি অবশ্যই UTF-8 এ " -"এনকোড করা থাকতে হবে।" #: ../data/klavaro.glade.h:87 -msgid "_Open text file" -msgstr "" - -#: ../data/klavaro.glade.h:88 #, fuzzy -msgid "Paste text that was copied to the clipboard." -msgstr "ক্লিপবোর্ডে কপি করা টেক্ট এখানে পেস্ট করুন। শর্টকাট: [Ctrl-V]" +msgid "" +"Edit the character set to be used in lessons after 43: they are customizable!" +msgstr "শিক্ষায় ব্যবহৃতব্য ক্যারেকটার সেটটি পরিবর্তন করুন।" + +#: ../data/klavaro.glade.h:88 ../src/tutor.c:376 +msgid "Drag and drop text here to practice with it." +msgstr "এখানে টেক্সট টেনে এনে অনুশীলন করুন।" #: ../data/klavaro.glade.h:89 -msgid "_Paste from clipboard" -msgstr "" +#, fuzzy +msgid "Press here to restart the exercise. Hotkey: [Ctrl-R]" +msgstr "অনুশীলন নতুন করে শুরু করতে চাইলে এখানে ক্লিক করুন। শর্টকাট: [Ctrl R]" #: ../data/klavaro.glade.h:90 -#, fuzzy -msgid "Remove the selected item." -msgstr "উপরের লিস্ট থেকে নির্বাচিত আইটেম মুছে ফেলুন।" +msgid "Show the virtual keyboard and the relation between fingers and keys." +msgstr "ভার্চুয়াল কীবোর্ড প্রদর্শন করুন এবং আঙ্গুল ও কী এর মধ্যে সম্পর্ক প্রদর্শন করুন" #: ../data/klavaro.glade.h:91 #, fuzzy -msgid "_Remove copied file" -msgstr "নির্বাচিতগুলো মুছে ফেলুন" +msgid "_Keyboard" +msgstr "কিবোর্ড" #: ../data/klavaro.glade.h:92 -msgid "Apply the selected item to create an exercise." -msgstr "নতুন অনুশীলন তৈরি করতে নির্বাচিত আইটেম গুলো কার্যকর করুন।" +msgid "Select the font to be used in the exercise window." +msgstr "অনুশীলনে ব্যবহৃতব্য ফন্টটি নির্বাচন করুন।" #: ../data/klavaro.glade.h:93 -msgid "_Apply" -msgstr "" +msgid "Font definition" +msgstr "ফন্ট ডেফিনিশন" #: ../data/klavaro.glade.h:94 -msgid "Klavaro - Progress" -msgstr "ক্লাভারো - অগ্রগতি" +#, fuzzy +msgid "Keep this checked if you want to get those nice beeps." +msgstr "আপনি যদি শব্দ কার্যকর রাখতে চান তাহলে এখানে টিক দিন। শর্টকাট: [Ctrl S]" #: ../data/klavaro.glade.h:95 -msgid "Value" -msgstr "" +#, fuzzy +msgid "_Beep" +msgstr "সহায়িকা" #: ../data/klavaro.glade.h:96 -msgid "Clear all the progress data, for every module." -msgstr "" +#, fuzzy +msgid "Co_urse information" +msgstr "তথ্য বাড়ান" #: ../data/klavaro.glade.h:97 -#, fuzzy -msgid "_Reset" -msgstr "রিসেট!" +msgid "Charts showing the learning progress along the exercises." +msgstr "অনুশীলনের সাথে শিক্ষার অগ্রগতি প্রদর্শনকারী চার্ট।" #: ../data/klavaro.glade.h:98 #, fuzzy -msgid "Close this window, returning to the exercise." -msgstr "এই উইন্ডোটি বন্ধ করুন, অনুশীলনে ফিরে যান। শর্টকাট: [Esc]" +msgid "_Progress" +msgstr "অগ্রগতি" #: ../data/klavaro.glade.h:99 -msgid "Klavaro - Select file" -msgstr "ক্লাভারো - ফাইল নির্বাচন করুন" +#, fuzzy +msgid "Return to the main menu." +msgstr "প্রধান মেন্যুতে ফিরে যান। শর্টকাট: [Ctrl-Q]" #: ../data/klavaro.glade.h:100 -msgid "_Open" -msgstr "" +msgid "Show local and external scores from other users." +msgstr "অন্যান্য ব্যবহারকারীদের স্থানীয় এবং বহি:স্থ স্কোর প্রদর্শন করুন।" #: ../data/klavaro.glade.h:101 -msgid "Help?" -msgstr "সাহায্য?" - -#: ../data/klavaro.glade.h:102 #, fuzzy -msgid "" -"The main menu of the application is very straightforward. Just select the " -"type of exercise you wish to take. Do not worry about clicking any button on " -"the screen. The buttons will never hurt you!" -msgstr "" -"এটি অ্যাপ্লিকেশনটির প্রধান মেন্যু এবং এটি খুব সহজ। আপনি কি ধরণের অনুশীলন করতে চান " -"সেটি নির্বাচন করুন। কোনো বোতামে ক্লিক করতে ভয় পাবেন না: এগুলো আপনাকে আঘাত করবেনা!" +msgid "_Top 10" +msgstr "সেরা ১০" -#: ../data/klavaro.glade.h:103 -msgid "" -"Also the controls have tips which will appear if you hover over them with " -"your mouse. These tips can come in very handy. To see how these tips work, " -"position your mouse over the button below, and without clicking, wait for " -"the tip to appear..." -msgstr "" -"প্রতিটি নিয়ন্ত্রণের উপরে নির্দেশনা দেখানো পর্যন্ত অপেক্ষা করতে ভুলবেন না । মাঝে মাঝে " -"এগুলো সহায়ক হতে পারে। নির্দেশনাগুলো কিভাবে কাজ করে সেটি দেখতে, অনুগ্রহ করে ক্লিক " -"না করে, মাউসটি নিচের বোতামের উপর ধরে রাখুন এবং, নির্দেশনা না দেখানো পর্যন্ত " -"কিছুক্ষন অপেক্ষা করুন..." +#: ../data/klavaro.desktop.in.h:1 +#, fuzzy +msgid "A very flexible and efficient touch typing tutor." +msgstr "আরেকটি স্পর্শ টাইপিং শিক্ষক" -#: ../data/klavaro.glade.h:104 -msgid "This is a tip. Now you press this button to return to the main menu." -msgstr "এটি একটি টিপ। এখন প্রধান মেন্যুতে ফিরে যেতে এখানে চাপুন।" +#. Translators: these are keywords related to the program. CAI above means Computer Aided Instruction. Feel free to add and/or change the keywords in your language. +#: ../data/klavaro.desktop.in.h:3 +#, fuzzy +msgid "keyboard;typing;tutor;CAI" +msgstr "কিবোর্ড" -#: ../src/main.c:314 +#: ../src/main.c:242 msgid "(Custom)" msgstr "" -#: ../src/main.c:315 +#: ../src/main.c:243 msgid "(Edit custom)" msgstr "" -#: ../src/main.c:316 +#: ../src/main.c:244 #, fuzzy msgid "(Default)" msgstr "ডিফল্ট" -#: ../src/main.c:393 +#: ../src/main.c:321 #, c-format msgid "Dictation mode (depends on this speech synthesizer: %s)" msgid_plural "Dictation mode (depends on one of these speech synthesizers: %s)" msgstr[0] "" msgstr[1] "" -#. Set main labels (for translation) -#. -#: ../src/main.c:435 ../src/keyboard.c:1291 +#: ../src/main.c:364 ../src/keyboard.c:1291 msgid "Introduction" msgstr "পরিচিতি" -#: ../src/main.c:438 ../src/top10.c:109 +#: ../src/main.c:367 ../src/top10.c:109 msgid "Basic course" msgstr "প্রারম্ভিক কোর্স" -#: ../src/main.c:441 ../src/top10.c:112 +#: ../src/main.c:370 ../src/top10.c:112 msgid "Adaptability" msgstr "সঙ্গতিপ্রবণতা (খাপ খাওয়াবার ক্ষমতা)" -#: ../src/main.c:444 ../src/callbacks.c:1310 ../src/top10.c:89 +#: ../src/main.c:373 ../src/callbacks.c:1226 ../src/top10.c:89 #: ../src/top10.c:115 msgid "Speed" msgstr "" -#: ../src/main.c:447 ../src/callbacks.c:1333 ../src/top10.c:91 +#: ../src/main.c:376 ../src/callbacks.c:1249 ../src/top10.c:91 #: ../src/top10.c:118 msgid "Fluidity" msgstr "" -#: ../src/callbacks.c:468 ../src/tutor.c:391 +#: ../src/callbacks.c:407 ../src/tutor.c:515 #, fuzzy msgid "Keys:" msgstr "কী (Key): %s" -#: ../src/callbacks.c:858 ../src/callbacks.c:874 +#: ../src/callbacks.c:774 ../src/callbacks.c:790 msgid "Connecting..." msgstr "" -#: ../src/callbacks.c:1145 +#: ../src/callbacks.c:1061 msgid "Overwrite user layout" msgstr "ব্যবহারকারীর লেআউট ওভাররাইট করুন" -#: ../src/callbacks.c:1147 +#: ../src/callbacks.c:1063 msgid "This will OVERWRITE an existent keyboard layout." msgstr "এটি বর্তমানে উপস্থিত একটি কীবোর্ড লেআউট ওভাররাইট করবে।" -#: ../src/callbacks.c:1154 +#: ../src/callbacks.c:1070 msgid "Remove user layout" msgstr "ব্যবহারকারীর লেআউট মুছে ফেলুন" -#: ../src/callbacks.c:1156 +#: ../src/callbacks.c:1072 msgid "This will REMOVE an existent keyboard layout." msgstr "এটি বর্তমানে উপস্থিত একটি কীবোর্ড লেআউট মুছে ফেলবে।" -#: ../src/callbacks.c:1163 +#: ../src/callbacks.c:1079 msgid "Reset progress data" msgstr "" -#: ../src/callbacks.c:1164 +#: ../src/callbacks.c:1080 msgid "This will DELETE all the progress data shown in the charts." msgstr "" -#: ../src/callbacks.c:1307 ../src/top10.c:87 +#: ../src/callbacks.c:1223 ../src/top10.c:87 msgid "Accuracy" msgstr "নির্ভুলতা" -#: ../src/callbacks.c:1310 ../src/tutor.c:1160 +#: ../src/callbacks.c:1226 ../src/tutor.c:1288 msgid "(WPM)" msgstr "(WPM)" -#: ../src/callbacks.c:1321 +#: ../src/callbacks.c:1237 msgid "Errors" msgstr "" -#: ../src/callbacks.c:1324 +#: ../src/callbacks.c:1240 msgid "Touch times (s)" msgstr "" -#: ../src/callbacks.c:1336 ../src/tutor.c:1187 ../src/top10.c:69 +#: ../src/callbacks.c:1252 ../src/tutor.c:1315 ../src/top10.c:69 msgid "Score" msgstr "স্কোর" #. Translators: your language code (first 2 letters of your po-file) -#: ../src/translation.c:423 ../src/translation.c:489 ../src/tutor.c:1597 +#: ../src/translation.c:485 ../src/tutor.c:1725 msgid "en" msgstr "bn" -#: ../src/translation.c:576 +#: ../src/translation.c:572 msgid "" "The basic course focuses on having you read the characters presented to you " "on screen and typing the corresponding keys. Remember to keep your hands " @@ -619,7 +620,7 @@ "(key) চাপতে হবে। কীবোর্ডের হোম অবস্থান থেকে সঠিক অবস্থানে আঙ্গুল গুলো সরানো মনে " "রাখবেন (প্রধান মেনুতে নির্দেশনা দে‌‌‌‌‌‌‌‌‌‌‌‌‌খুন)।" -#: ../src/translation.c:580 +#: ../src/translation.c:576 msgid "" "The key set used in each series will be shown in the above message line. The " "[Space], [Shift] and [Enter] keys may not show up there but are used very " @@ -629,7 +630,7 @@ "[শিফট], এবং [এন্টার] কীগুলো সেখানে নাও দেখানো হতে পারে কারন সবাই জানে যে এগুলো " "খুব বেশি ব্যবহার করা হয়।" -#: ../src/translation.c:583 +#: ../src/translation.c:579 msgid "" "The message line below follows and echoes your key presses. If required, it " "changes and displays instructions for actions required from you." @@ -637,7 +638,7 @@ "নিচের বার্তা লাইন আপনার স্পর্শ অনুসরন করে এবং সেই অক্ষরটি দেখায়। যদি প্রয়োজন হয়, " "তাহলে এটি আপনার করনীয় পরিবর্তন করবে এবং এ সম্পর্কে নির্দেশনা দিবে।" -#: ../src/translation.c:587 +#: ../src/translation.c:583 msgid "" "Here you may practice and improve your memorization of all keys. There will " "be sentences presented with nonsense words which mix some numbers and " @@ -646,7 +647,7 @@ "এখানে আপনি অনুশীলন করতে পারবেন এবং সবগুলো কী (key) এর অবস্থান মুখস্থ করতে পারবেন। " "এতে কিছু অর্থ বিহীন শব্দ, মিশ্রিত অবস্থায় বিভিন্ন সংখ্যা এবং চিহ্ন থাকবে।" -#: ../src/translation.c:590 +#: ../src/translation.c:586 msgid "" "In order to keep the lesson contents language and keyboard independent, " "accented letter combinations will probably not appear. For real word " @@ -656,7 +657,7 @@ "পারে। বাক্য ব্যবহার করে আসল শব্দের অনুশীলন করতে প্রধান মেনুর (দ্রুততা সম্পর্কে) ৪র্থ " "পছন্দ ব্যবহার করুন।" -#: ../src/translation.c:594 +#: ../src/translation.c:590 msgid "" "After each exercise there will be a brief statistics panel reviewing your " "performance along with some relevant comments." @@ -664,7 +665,7 @@ "প্রত্যেক অনুশীলনীর শেষে, আপনার কর্মদক্ষতার একটি পরিসংখ্যান এবং এর সাথে সম্পর্কিত " "মন্তব্য আপনাকে দেখানো হবে।" -#: ../src/translation.c:598 +#: ../src/translation.c:594 msgid "" "This exercise is very similar to the second one, for adaptability. The " "difference is that here you'll type real words." @@ -672,7 +673,7 @@ "এই অনুশীলনটিও দ্বিতীয় অনুশীলনটির মত, খাপ খাওয়ানোর জন্য। পার্থক্য হলো এখানে আপনাকে " "প্রকৃত শব্দসমূহ টাইপ করতে হবে।" -#: ../src/translation.c:601 +#: ../src/translation.c:597 msgid "" "The default language is the actual one of the interface. But you may select " "any other texts with words you would like to use. Press the 'Other' option " @@ -682,7 +683,7 @@ "কোনো টেক্সট নির্বাচন করতে পারবেন। উপরের 'অণ্য' অপশনটি চাপুন এবং ওই টেক্সটসমূহ " "ধারণকারী ফাইলগুলো যুক্ত করুন।" -#: ../src/translation.c:605 +#: ../src/translation.c:601 msgid "" "With this exercise the focus is on speed. So, you are supposed to type " "really fast and I will only flatter you when you deserve it!" @@ -690,7 +691,7 @@ "এই অনুশীলনের উদ্দেশ্য হলো গতি। তাই, আপনাকে খুব দ্রুত টাইপ করতে হবে এবং কেবলমাত্র " "তখনই আমি আপনাকে সাধুবাদ জানাবো যখন আপনি এটির যোগ্যতা অর্জন করবেন!" -#: ../src/translation.c:609 +#: ../src/translation.c:605 msgid "" "We will now use complete sentences and paragraphs which make logical sense. " "This may distract you while you type if you try to understand what you are " @@ -702,7 +703,7 @@ "অনুশীলনগুলো করে থাকেন, তাহলে এতে আপনার কোন রকম অসুবিধা হওয়ার কথা না যেহেতু " "টেক্সটকে না বুঝে এবং গবেযনা না করে টাইপ করার অভ্যাস আপনার হয়ে গিয়েছে।" -#: ../src/translation.c:613 +#: ../src/translation.c:609 msgid "" "We do not mean to imply that the typists must behave like a robot, without " "understanding what they type. We do aim to develop the skill of typing, " @@ -716,8 +717,7 @@ "করতে চাই। এই স্তরে পৌঁছানোর পরে টাইপ করতে আপনাকে যুদ্ধ করতে হবে না: আপনি পাঠ্যের " "অর্থের দিকে মনোযোগ দিতে পারবেন।" -#. English typo: minimun -> minimum -#: ../src/translation.c:618 +#: ../src/translation.c:613 #, fuzzy msgid "" "These exercises are longer. Each exercise consists of three paragraphs and " @@ -730,7 +730,6 @@ "ভূল সঠিক করতে আপনি অবশ্যই ব্যাকস্পেস কী ব্যবহার করবেন। অন্যভাবে বলা যায়, শুধুমাত্র " "ত্রুটিহীন টেক্সট গ্রহন করা হবে।" -#. English typo: recomendations -> recommendations #: ../src/keyboard.c:1094 #, fuzzy msgid "" @@ -827,14 +826,12 @@ msgid "Step %i" msgstr "" -#. Recommendations -#: ../src/keyboard.c:1140 +#: ../src/keyboard.c:1142 #, fuzzy msgid "To position the hands" msgstr "হাতের অবস্থান ঠিক করতে:" -#. Final words -#: ../src/keyboard.c:1225 +#: ../src/keyboard.c:1227 msgid "Go ahead!" msgstr "" @@ -881,23 +878,23 @@ msgid "Press and edit me" msgstr "একটি কী চাপুন" -#: ../src/tutor.c:176 +#: ../src/tutor.c:300 msgid "Lesson:" msgstr "শিক্ষা" -#: ../src/tutor.c:186 +#: ../src/tutor.c:310 msgid "Paragraphs:" msgstr "প্যারাগ্রাফ:" -#: ../src/tutor.c:219 +#: ../src/tutor.c:343 msgid "Klavaro - Basic Course" msgstr "ক্লাভারো - প্রারম্ভিক কোর্স" -#: ../src/tutor.c:224 +#: ../src/tutor.c:348 msgid "Klavaro - Adaptability" msgstr "ক্লাভারো - মানিয়ে নেয়া" -#: ../src/tutor.c:227 +#: ../src/tutor.c:351 msgid "" "Adaptability exercises: automating the fingers responses, typing over all " "the keyboard." @@ -905,44 +902,44 @@ "মানিয়ে নেয়ার অনুশীলন: আঙ্গুলগুলো স্বয়ংক্রিয়ভাবে সাড়া দেয়, পুরো কীবোর্ড-র উপর টাইপ " "করা। " -#: ../src/tutor.c:232 +#: ../src/tutor.c:356 msgid "Klavaro - Velocity" msgstr "ক্লাভারো - গতি" -#: ../src/tutor.c:233 +#: ../src/tutor.c:357 msgid "Velocity exercises: accelerate typing real words." msgstr "গতি অনুশীলন: আসল শব্দ টাইপ করে গতি বাড়ান। " -#: ../src/tutor.c:237 +#: ../src/tutor.c:361 msgid "Klavaro - Fluidness" msgstr "ক্লাভারো - দ্রুততা" -#: ../src/tutor.c:239 +#: ../src/tutor.c:363 msgid "Fluidness exercises: accuracy typing good sense paragraphs." msgstr "দ্রুততা অনুশীলন: ভালো প্যারাগ্রাফ টাইপ করে নির্ভুলতা বাড়ান। " -#: ../src/tutor.c:301 +#: ../src/tutor.c:425 #, fuzzy msgid "End of exercise. Press [Enter] to start another." msgstr "<<== অনুশীলনের সমাপ্তি। আরেকটি শুরু করতে [Enter] চাপুন। ==>> " -#: ../src/tutor.c:329 +#: ../src/tutor.c:453 msgid "Learning the key positions." msgstr "কী (key)-র অবস্থান শিখুন। " -#: ../src/tutor.c:332 +#: ../src/tutor.c:456 msgid "Press any key to start the exercise. " msgstr "অনুশীলন শুরু করতে যেকোনো কী (key) চাপুন।" -#: ../src/tutor.c:440 ../src/tutor.c:443 +#: ../src/tutor.c:567 ../src/tutor.c:570 msgid "Start typing when you are ready. " msgstr "আপনি যখন প্রস্তুত হবেন তখন টাইপিং শুরু করুন। " -#: ../src/tutor.c:441 +#: ../src/tutor.c:568 msgid "Use backspace to correct errors." msgstr "" -#: ../src/tutor.c:885 +#: ../src/tutor.c:1012 #, c-format msgid "" "ps.: logging not performed for this session: the number of typed characters " @@ -951,11 +948,11 @@ "বি: দ্র: এই সেশনের জন্য লগিং সম্পন্ন হয়নি: টাইপ করা ক্যারেক্টার এর সংখ্যা (%i) %i " "এর চেয়ে বেশি হতে হবে। " -#: ../src/tutor.c:1027 +#: ../src/tutor.c:1154 msgid "ps.: you have entered the Top 10 list, great!" msgstr "বি: দ্র: আপনি সেরা ১০ এর লিস্টে ঢুকে গেছেন, দারুন! " -#: ../src/tutor.c:1039 +#: ../src/tutor.c:1166 msgid "" "ps.: the text you just typed doesn't seem to be similar to ordinary texts in " "the language currently selected: we can't account for it in the 'Top 10' " @@ -964,91 +961,88 @@ "বি: দ্র: আপনি যেই টেক্সট টাইপ করেছেন সেটি বর্তমানে নির্বাচিত ভাষার সাধারন টেক্সট-" "র মত লাগছে না: আমরা এটিকে 'সেরা ১০' এ স্থান দিতে পারছি না। " -#. Begin the accuracy -#: ../src/tutor.c:1087 +#: ../src/tutor.c:1215 msgid "STATISTICS" msgstr "পরিসংখ্যান" -#: ../src/tutor.c:1088 +#: ../src/tutor.c:1216 msgid "Elapsed time:" msgstr "অতিবাহিত সময়:" -#: ../src/tutor.c:1089 +#: ../src/tutor.c:1217 msgid "minute and" msgid_plural "minutes and" msgstr[0] "মিনিট এবং" msgstr[1] "মিনিট এবং\t" -#: ../src/tutor.c:1090 +#: ../src/tutor.c:1218 msgid "second" msgid_plural "seconds" msgstr[0] "সেকেন্ড" msgstr[1] "সেকেন্ড" -#: ../src/tutor.c:1091 +#: ../src/tutor.c:1219 msgid "Error ratio:" msgstr "" -#: ../src/tutor.c:1091 +#: ../src/tutor.c:1219 msgid "Accuracy:" msgstr "নির্ভুলতা:" -#: ../src/tutor.c:1112 ../src/tutor.c:1137 ../src/tutor.c:1160 -#: ../src/tutor.c:1186 +#: ../src/tutor.c:1240 ../src/tutor.c:1265 ../src/tutor.c:1288 +#: ../src/tutor.c:1314 msgid "Goal:" msgstr "উদ্দেশ্য:" -#: ../src/tutor.c:1119 +#: ../src/tutor.c:1247 msgid "Characters per second:" msgstr "প্রতি সেকেন্ডে ক্যারেক্টার: " -#: ../src/tutor.c:1137 +#: ../src/tutor.c:1265 msgid "(CPS)" msgstr "(CPS)" -#: ../src/tutor.c:1142 +#: ../src/tutor.c:1270 msgid "Words per minute:" msgstr "প্রতি মিনিটে শব্দ:" -#: ../src/tutor.c:1167 +#: ../src/tutor.c:1295 msgid "Fluidness:" msgstr "দ্রুততা" -#: ../src/tutor.c:1194 +#: ../src/tutor.c:1322 msgid "Comments:" msgstr "মন্তব্য:" -#: ../src/tutor.c:1676 +#: ../src/tutor.c:1804 msgid "space" msgstr "" #. Translators: the name of letter Y -#: ../src/tutor.c:1681 +#: ../src/tutor.c:1809 msgid "wye" msgstr "" #. Translators: the name of the Return key -#: ../src/tutor.c:1685 +#: ../src/tutor.c:1813 msgid "enter" msgstr "" -#: ../src/tutor.c:1691 +#: ../src/tutor.c:1819 msgid "apostrophe" msgstr "" #. Translators: double quote symbol: " -#: ../src/tutor.c:1695 +#: ../src/tutor.c:1823 msgid "quote" msgstr "" #. Translators: ampersand symbol: & -#: ../src/tutor.c:1699 +#: ../src/tutor.c:1827 msgid "ampersand" msgstr "" -#. Error frequencies or touch times -#. -#: ../src/plot.c:308 +#: ../src/plot.c:305 msgid "Character" msgstr "" @@ -1056,11 +1050,11 @@ msgid "Date & Time" msgstr "" -#: ../src/basic.c:331 +#: ../src/basic.c:326 msgid "Positions of keys seems to be learned!" msgstr "মনে হচ্ছে কী(key) গুলোর অবস্থান শেখা হয়ে গেছে!" -#: ../src/basic.c:332 +#: ../src/basic.c:327 msgid "" " Congratulations!\n" " You have accomplished the entire basic course.\n" @@ -1072,7 +1066,7 @@ " পরবর্তী ধরনের অনুশীলনে যান: মানিয়ে নেয়া।\n" " সেখানে আপনি প্রধানত নির্ভুলতা অনুশীলনে করবেন।\n" -#: ../src/basic.c:338 +#: ../src/basic.c:333 msgid "" " All right, now you got it!\n" " Go to the next lesson.\n" @@ -1080,34 +1074,36 @@ " ঠিক আছে, এবার হয়েছে!\n" " পরবর্তী শিক্ষাতে যান।\n" -#: ../src/adaptability.c:217 +#: ../src/adaptability.c:213 +#, fuzzy, c-format msgid "" -" Your accuracy rate is below 90%...\n" +" Your accuracy rate is below %.0f%%...\n" " Could you please try again to improve it?\n" msgstr "" " আপনার নির্ভুলতার মাত্রা ৯০% এর নিচে...\n" " আপনি কি অনুগ্রহ করে এর উন্নতি করার চেষ্টা করবেন?\n" -#: ../src/adaptability.c:222 +#: ../src/adaptability.c:216 +#, fuzzy, c-format msgid "" " You are doing well. But...\n" -" Could you make the accuracy reach 95%?\n" +" Could you make the accuracy reach %.0f%%?\n" msgstr "" " আপনি ভালো করছেন। কিন্তু...\n" " আপনি কি নির্ভুলতার মাত্রা ৯৫% এ নিতে পারেন?\n" -#: ../src/adaptability.c:225 +#: ../src/adaptability.c:219 #, fuzzy, c-format msgid "" " You are almost there, but your accuracy rate is still below %.0f%%.\n" -" Try a few more times, or maybe you're getting upset, so go to other kind of " -"exercise.\n" +" Try a few more times, or maybe you're getting upset, so go to another kind " +"of exercise.\n" msgstr "" " আপনি প্রায় পৌছে গেছেন, কিন্তু আপনার নির্ভুলতার মাত্রা এখনও ৯৮% এর নিচে।\n" " আরো কয়েকবার চেষ্টা করুন, অথবা আপনি হয়তো বিষন্ন হয়ে পরছেন, তাই অন্য ধরনের " "অনুশীলন এ যান।\n" -#: ../src/adaptability.c:232 +#: ../src/adaptability.c:226 #, fuzzy, c-format msgid "" " Very good!\n" @@ -1120,11 +1116,11 @@ " এবার আপনার গতি বাড়ানোর সময়।\n" " প্রধান মেন্যুর ৩য় অনুশীলনে যান।\n" -#: ../src/velocity.c:313 ../src/fluidness.c:435 +#: ../src/velocity.c:312 ../src/fluidness.c:435 msgid "Pasted_or_dropped" msgstr "Pasted_or_dropped" -#: ../src/velocity.c:432 +#: ../src/velocity.c:423 msgid "" " You are just beginning.\n" " Be patient, try it again every day, rest and don't worry so much:\n" @@ -1134,31 +1130,34 @@ " ধৈর্য ধরুন, প্রতিদিন চেষ্টা করুন, বিশ্রাম নিন এবং বেশি চিন্তা করবেন না:\n" " পরিশ্রম এবং অনুশীলন করলে আপনার গতি বাড়বে।\n" -#: ../src/velocity.c:436 +#: ../src/velocity.c:427 +#, fuzzy, c-format msgid "" " Still away from the highway. You can make better...\n" -" Try at least 20 WPM.\n" +" Try to reach at least %.0f WPM.\n" msgstr "" " এখনও আপনি অনেক দূরে। আপনি আরো ভালো করতে পারেন...\n" " অন্তত ২০ WPM করার চেষ্টা করুন।\n" -#: ../src/velocity.c:439 +#: ../src/velocity.c:430 +#, fuzzy, c-format msgid "" " You are doing well, but need to go faster.\n" -" And don't forget the accuracy. Try to get 30 WPM.\n" +" And don't forget the accuracy. Try to get %.0f WPM.\n" msgstr "" " আপনি ভালো করছেন, কিন্তু আরো দ্রুত হওয়া দরকার।\n" " এবং নির্ভুলতার কথা ভুলে যাবেন না। ৩০ WPM করার চেষ্টা করুন।\n" -#: ../src/velocity.c:443 +#: ../src/velocity.c:433 +#, fuzzy, c-format msgid "" " Fine. Now you need to start running.\n" -" Can you reach 40 WPM?\n" +" Can you reach %.0f WPM?\n" msgstr "" " ভালো। এবার আপনাকে দৌড়াতে হবে।\n" " আপনি কি ৪০ WPM করতে পারেন?\n" -#: ../src/velocity.c:446 +#: ../src/velocity.c:436 #, fuzzy, c-format msgid "" " Very good. You are almost there.\n" @@ -1167,7 +1166,7 @@ " খুব ভালো। আপনি প্রায় পৌছে গিয়েছেন।\n" " আপনি কি শেষ পর্যন্ত ৫০ WPM এ পৌছতে পারেন?\n" -#: ../src/velocity.c:451 +#: ../src/velocity.c:439 msgid "" " Excellent. For this course, that is enough.\n" " Try now the fluidness exercises, OK?\n" @@ -1175,31 +1174,34 @@ " দারুন। এই কোর্স এর জন্য এটি যথেষ্ট।\n" " এখন দ্রুততার অনুশীলন করুন, ঠিক আছে?\n" -#: ../src/velocity.c:455 +#: ../src/velocity.c:442 +#, fuzzy, c-format msgid "" -" Fast! Are you training for a competition?\n" -" So, try to get 70 WPM!\n" +" Fast! Are you a professional?\n" +" So, try to get %.0f WPM!\n" msgstr "" " দ্রুত! আপনি কি প্রতিযোগিতার জন্য অনুশীলন করছেন?\n" " ৭০ WPM করার চেষ্টা করুন।\n" -#: ../src/velocity.c:458 -msgid "" -" Top of \"qwerty\". Now it's time to change to the Dvorak mode.\n" -" Are you afraid of reaching 80 WPM?\n" +#. Translators: Speed Racer is a reference to a Japanese anime franchise +#. about automobile racing, also known as Mach GoGoGo. +#: ../src/velocity.c:447 +#, c-format +msgid " Ranking good, Speed Racer! Are you afraid of reaching %.0f WPM?\n" msgstr "" -" \"qwerty\" এর চূড়ায় পৌছে গিয়েছেন। এখন Dvorak মোড-এ যাওয়ার সময় হয়েছে।\n" -" আপনি কি ৮০ WPM এ পৌছতে ভয় পাচ্ছেন?\n" -#: ../src/velocity.c:462 +#. Translators: feel free to change the reference to that martial art, if you find another good analogy. +#: ../src/velocity.c:451 +#, fuzzy, c-format msgid "" -" Dvorak mode dominated!\n" -" Can you fly at 90 WPM?\n" +" Kunf-fu mastering!\n" +" Can you fly at %.0f WPM?\n" msgstr "" " Dvorak মোড চলছে!\n" " আপনি কি ৯০ WPM এ উড়তে পারেন?\n" -#: ../src/velocity.c:466 +#. Translators: Dvorak here means that infamous ergonomic keyboard layout. +#: ../src/velocity.c:454 msgid "" " Dvorak master!\n" " I have no words to express my admiration!\n" @@ -1207,7 +1209,7 @@ " Dvorak মাস্টার!\n" " আমি প্রশংসা করার ভাষা খুজে পাচ্ছিনা!\n" -#: ../src/fluidness.c:545 +#: ../src/fluidness.c:538 #, fuzzy, c-format msgid "" " You type accurately but not so fast.\n" @@ -1216,7 +1218,7 @@ " আপনি নির্ভুলভাবে টাইপ করেন কিন্তু যথেষ্ট তাড়াতাড়ি নয়।\n" " আপনি কি ৫০ WPM এ পৌছতে পারেন?\n" -#: ../src/fluidness.c:548 +#: ../src/fluidness.c:541 #, fuzzy, c-format msgid "" " Your rhythm is not so constant. Calm down.\n" @@ -1225,7 +1227,7 @@ " আপনার ছন্দ যথেষ্ট স্থির নয়। আস্তে করুন।\n" " এখন, দ্রুততা ৭০% এর অধিক করার চেষ্টা করুন।\n" -#: ../src/fluidness.c:551 +#: ../src/fluidness.c:544 #, fuzzy, c-format msgid "" " You are almost getting there. Type more fluently.\n" @@ -1234,7 +1236,7 @@ " আপনি প্রায় পৌছে যাচ্ছেন। আরো দ্রুত টাইপ করুন।\n" " আমি ৮০% এর অধিক দ্রুততা চাই।\n" -#: ../src/fluidness.c:554 +#: ../src/fluidness.c:547 msgid "" " Congratulations!\n" " It seems to me that you are a professional.\n" @@ -1246,7 +1248,7 @@ " আপনার এই প্রোগ্রামটির (আমাকে) আর প্রয়োজন নেই।\n" " আশা করি আপনি উপভোগ করেছেন। ধন্যবাদ!\n" -#: ../src/fluidness.c:559 +#: ../src/fluidness.c:552 msgid "" " How can you type so fast?\n" " You have exceeded all my expectations.\n" @@ -1308,12 +1310,22 @@ msgid "Could not upload/download scores." msgstr "লোকাল স্কোর আপলোড করা যায়নি।" -#~ msgid "Default" -#~ msgstr "ডিফল্ট" +#~ msgid "" +#~ " Top of \"qwerty\". Now it's time to change to the Dvorak mode.\n" +#~ " Are you afraid of reaching 80 WPM?\n" +#~ msgstr "" +#~ " \"qwerty\" এর চূড়ায় পৌছে গিয়েছেন। এখন Dvorak মোড-এ যাওয়ার সময় হয়েছে।\n" +#~ " আপনি কি ৮০ WPM এ পৌছতে ভয় পাচ্ছেন?\n" + +#~ msgid "Press here to restart the exercise. Hotkey: [Ctrl R]" +#~ msgstr "অনুশীলন নতুন করে শুরু করতে চাইলে এখানে ক্লিক করুন। শর্টকাট: [Ctrl R]" #, fuzzy -#~ msgid "A flexible touch typing tutor" -#~ msgstr "আরেকটি স্পর্শ টাইপিং শিক্ষক" +#~ msgid "Klavaro" +#~ msgstr "'Klavaro'" + +#~ msgid "Default" +#~ msgstr "ডিফল্ট" #, fuzzy #~ msgid "" diff -Nru klavaro-1.9.9/po/ChangeLog klavaro-3.00/po/ChangeLog --- klavaro-1.9.9/po/ChangeLog 2013-07-24 18:39:00.000000000 +0000 +++ klavaro-3.00/po/ChangeLog 2009-01-01 02:37:52.000000000 +0000 @@ -0,0 +1,5 @@ +2014-01-06 Felipe Castro + + * Makefile.in.in: keep klavaro.pot in the distribution package, only + remove by "make maintainer-clean" + diff -Nru klavaro-1.9.9/po/cs.po klavaro-3.00/po/cs.po --- klavaro-1.9.9/po/cs.po 2013-08-15 13:38:49.000000000 +0000 +++ klavaro-3.00/po/cs.po 2014-01-13 23:25:49.000000000 +0000 @@ -8,8 +8,8 @@ msgid "" msgstr "" "Project-Id-Version: klavaro 1.9.4-pre2\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2013-08-15 10:38-0300\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2014-01-13 21:25-0200\n" "PO-Revision-Date: 2012-01-16 09:35+0100\n" "Last-Translator: Marek Černocký \n" "Language-Team: Czech \n" @@ -19,460 +19,467 @@ "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=3; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2;\n" -#: ../data/klavaro.desktop.in.h:1 ../data/klavaro.glade.h:59 -msgid "Yet another touch typing tutor" -msgstr "Jeden z dalších programů pro výuku psaní na stroji" - #: ../data/klavaro.glade.h:1 -msgid "Klavaro - Main menu" -msgstr "Klavaro – hlavní nabídka" +msgid "About 'Klavaro'" +msgstr "O aplikaci „Klavaro“" #: ../data/klavaro.glade.h:2 -msgid "Don't be shy about learning the basics!" -msgstr "Nepodceňujte výuku základů!" +msgid "Yet another touch typing tutor" +msgstr "Jeden z dalších programů pro výuku psaní na stroji" #: ../data/klavaro.glade.h:3 -msgid "Learn how to type correctly" -msgstr "Naučte se správně psát" +msgid "Remember always: someone loves you!" +msgstr "Nezapomeňte: někdo vás určitě má rád!" #: ../data/klavaro.glade.h:4 -msgid "Initial training for your fingers." -msgstr "Počáteční trénink pro vaše prsty." +msgid "Change language" +msgstr "Změnit jazyk" #: ../data/klavaro.glade.h:5 -msgid "First steps with initial training" -msgstr "První kroky v počátečním tréninku" +msgid "Attention!" +msgstr "Upozornění!" #: ../data/klavaro.glade.h:6 -msgid "Memorizing the keyboard practicing random keys exercises." -msgstr "Zapamatujte si klávesnici procvičováním s náhodnými znaky." +msgid "Do you confirm?" +msgstr "Souhlasíte?" #: ../data/klavaro.glade.h:7 -msgid "Practice with random keys" -msgstr "Cvičení s náhodnými znaky" +msgid "_No" +msgstr "_Ne" + +#: ../data/klavaro.glade.h:8 +msgid "_Yes" +msgstr "_Ano" -#. English typo: touchs -> touches #: ../data/klavaro.glade.h:9 -msgid "Accelerating the touches practicing random words exercises." -msgstr "Zvyšujte rychlost psaní procvičováním s náhodnými slovy." +msgid "Help?" +msgstr "Nápověda?" #: ../data/klavaro.glade.h:10 -msgid "Practice with random words" -msgstr "Cvičení s náhodnými slovy" +msgid "This is a tip. Now you press this button to return to the main menu." +msgstr "" +"Tady je nápověda. Pro návrat do hlavní nabídky zmáčkněte toto tlačítko." #: ../data/klavaro.glade.h:11 -msgid "Becoming proficient practicing complete paragraphs exercises." -msgstr "Staňte se dokonalými procvičováním celých odstavců." +msgid "B_ack to menu" +msgstr "Z_pět do nabídky" #: ../data/klavaro.glade.h:12 -msgid "Practice with complete texts" -msgstr "Procvičovat kompletní texty" +msgid "" +"The main menu of the application is very straightforward. Just select the " +"type of exercise you wish to take. Do not worry about clicking any button on " +"the screen. The buttons will never hurt you!" +msgstr "" +"Hlavní nabídka aplikace je velmi přímočará. Prostě vyberte druh cvičení, " +"které chcete absolvovat. Nebojte se kliknout na kterékoliv tlačítko. " +"Tlačítka vám neublíží!" #: ../data/klavaro.glade.h:13 msgid "" -"Keyboard layout for modules 1 and 2. Also used informatively in the " -"fluidness contest." +"Also the controls have tips which will appear if you hover over them with " +"your mouse. These tips can come in very handy. To see how these tips work, " +"position your mouse over the button below, and without clicking, wait for " +"the tip to appear..." msgstr "" -"Rozložení klávesnice pro moduly 1 a 2. Také se informativně používá při " -"testu plynulosti." +"Také nezapomeňte chvilku počkat na tipy, které se zobrazí po najetí myší nad " +"každým ovládacím prvkem. Mnohdy mohou být užitečné. Chcete-li tyto tipy " +"zobrazit, ukažte myší na dané tlačítko, bez kliknutí, a chvilku posečkejte…" #: ../data/klavaro.glade.h:14 -msgid "_Keyboard:" -msgstr "_Klávesnice:" +msgid "Klavaro - Select file" +msgstr "Klavaro – volba souboru" #: ../data/klavaro.glade.h:15 -msgid "Language for modules 3 and 4." -msgstr "Jazyk pro moduly 3 a 4." +msgid "_Cancel" +msgstr "_Zrušit" #: ../data/klavaro.glade.h:16 -msgid "_Language:" -msgstr "_Jazyk:" +msgid "_Open" +msgstr "_Otevřít" #: ../data/klavaro.glade.h:17 -msgid "Variant" -msgstr "Varianta" +msgid "Re_name:" +msgstr "Přejme_novat:" #: ../data/klavaro.glade.h:18 -msgid "Klavaro" -msgstr "Klavaro" +msgid "Rename the selected item." +msgstr "Přejmenovat vybrané položky." #: ../data/klavaro.glade.h:19 -msgid "Country / Custom" -msgstr "Země / vlastní" +msgid "" +"Read a text file and add a copy of it here. The file must be encoded in " +"UTF-8." +msgstr "" +"Načíst textový soubor a přidat zde jeho kopii. Soubor musí být kódován " +"pomocí UTF-8." #: ../data/klavaro.glade.h:20 -msgid "Your language here." -msgstr "Váš jazyk." +msgid "_Open text file" +msgstr "_Otevřít textový soubor" #: ../data/klavaro.glade.h:21 -msgid "Speech" -msgstr "Diktovat" +msgid "Paste text that was copied to the clipboard." +msgstr "Vložit zkopírovaný text ze schránky." #: ../data/klavaro.glade.h:22 -msgid "Little tip about this program." -msgstr "Malý návod k tomuto programu." +msgid "_Paste from clipboard" +msgstr "_Vložit ze schránky" #: ../data/klavaro.glade.h:23 -msgid "_Help" -msgstr "_Nápověda" +msgid "Remove the selected item." +msgstr "Odstranit vybrané položky." #: ../data/klavaro.glade.h:24 -msgid "General information about the program." -msgstr "Obecné informace o této aplikaci." +msgid "_Remove copied file" +msgstr "Odst_ranit zkopírovaný soubor" #: ../data/klavaro.glade.h:25 -msgid "_About..." -msgstr "O _aplikaci…" +msgid "Apply the selected item to create an exercise." +msgstr "Použít vybrané položky pro vytvoření cvičení." #: ../data/klavaro.glade.h:26 -msgid "Exit the application immediately." -msgstr "Ihned ukončit aplikaci." +msgid "_Apply" +msgstr "_Použít" #: ../data/klavaro.glade.h:27 -msgid "_Close" -msgstr "_Zavřít" +msgid "Close this window." +msgstr "Zavřít toto okno." #: ../data/klavaro.glade.h:28 -msgid "Load other exercises/lessons" -msgstr "Načíst jiné cvičení/lekce" +msgid "_Close" +msgstr "_Zavřít" #: ../data/klavaro.glade.h:29 -msgid "_Other texts" -msgstr "_Další texty" +msgid "Country / Custom" +msgstr "Země / vlastní" #: ../data/klavaro.glade.h:30 -msgid "_Lesson:" -msgstr "_Lekce:" +msgid "Variant" +msgstr "Varianta" #: ../data/klavaro.glade.h:31 -msgid "Edit the character set to be used in this lesson." -msgstr "Upravit znakovou sadu použitou v této lekci." +msgid "Remove the selected custom layout." +msgstr "Odstranit vybraná vlastní rozložení." #: ../data/klavaro.glade.h:32 -msgid "Edit the character set to be used in lessons 44 through 50." -msgstr "Upravit znakovou sadu použitou v lekcích 44 až 50." +msgid "_Remove" +msgstr "Odst_ranit" #: ../data/klavaro.glade.h:33 -msgid "This is a specific exercise, adjusted to your error profile." -msgstr "Toto je cvičení ušité na míru dle chyb, kterých se dopouštíte." +msgid "" +"Toggles the shift effect on the keys. Alternates between the upper and lower " +"characters of the keys." +msgstr "Zmáčknutí klávesy shift přepíná mezi psaním malých a velkých písmen." -#: ../data/klavaro.glade.h:34 ../src/tutor.c:252 -msgid "Drag and drop text here to practice with it." -msgstr "Pro účely procvičení sem přetáhněte text." +#: ../data/klavaro.glade.h:34 +msgid "SPACE BAR" +msgstr "MEZERNÍK" -#: ../data/klavaro.glade.h:35 -msgid "Press here to restart the exercise. Hotkey: [Ctrl R]" -msgstr "Přejete-li si restartovat cvičení, pak zde klikněte. Zkratka: [Ctrl-R]" +#: ../data/klavaro.glade.h:35 ../src/keyboard.c:1630 +msgid "thumbs" +msgstr "palce" #: ../data/klavaro.glade.h:36 -msgid "Show the virtual keyboard and the relation between fingers and keys." -msgstr "Zobrazit virtuální klávesnici a vztahy mezi prsty a klávesami." +msgid "Ctrl" +msgstr "Ctrl" #: ../data/klavaro.glade.h:37 -msgid "_Keyboard" -msgstr "_Klávesnice" +msgid "Caps" +msgstr "Caps" #: ../data/klavaro.glade.h:38 -msgid "Select the font to be used in the exercise window." -msgstr "Vybrat písmo, které bude použito v okně se cvičením." +msgid "S_ave as:" +msgstr "Uložit j_ako:" #: ../data/klavaro.glade.h:39 -msgid "_Font" -msgstr "_Písmo" +msgid "Show previous screen." +msgstr "Zobrazit předchozí obrazovku." #: ../data/klavaro.glade.h:40 -msgid "Keep this checked if you want to get those nice beeps." -msgstr "Chcete-li slyšet pěkné pípání, nechte volbu zaškrtnutou." +msgid "_Previous step" +msgstr "_Předchozí krok" #: ../data/klavaro.glade.h:41 -msgid "_Beep" -msgstr "_Pípání" +msgid "Show next screen." +msgstr "Zobrazit následující obrazovku." #: ../data/klavaro.glade.h:42 -msgid "Co_urse information" -msgstr "Informace o k_urzu" +msgid "_Next step" +msgstr "_Následující krok" #: ../data/klavaro.glade.h:43 -msgid "Charts showing the learning progress along the exercises." -msgstr "Grafy znázorňují postup učení během jednotlivých cvičení." +msgid "Return without any modification." +msgstr "Vrátit se zpět bez jakýchkoliv změn." #: ../data/klavaro.glade.h:44 -msgid "_Progress" -msgstr "_Pokroky" +msgid "Save the current keyboard layout with the name specified above." +msgstr "Uložit současné rozložení klávesnice pod názvem zadaným výše." #: ../data/klavaro.glade.h:45 -msgid "Show local and external scores from other users." -msgstr "Zobrazit místní a externí hodnocení získaná od ostatních uživatelů." +msgid "_Save and use" +msgstr "_Uložit a použít" #: ../data/klavaro.glade.h:46 -msgid "_Top 10" -msgstr "_Top 10" +msgid "" +"If you like those beautiful hands, click here to close this window keeping " +"them." +msgstr "" +"Pokud se vám líbí tyto překrásné ruce, klikněte zde a zůstanou zobrazeny se " +"v malém okně." #: ../data/klavaro.glade.h:47 -msgid "Return to the main menu." -msgstr "Vrátit se do hlavní nabídky." +msgid "_Keep hands" +msgstr "_Ponechat ruce" #: ../data/klavaro.glade.h:48 -msgid "B_ack to menu" -msgstr "Z_pět do nabídky" +msgid "Klavaro - Main menu" +msgstr "Klavaro – hlavní nabídka" #: ../data/klavaro.glade.h:49 -msgid "Close this window." -msgstr "Zavřít toto okno." +msgid "Don't be shy about learning the basics!" +msgstr "Nepodceňujte výuku základů!" #: ../data/klavaro.glade.h:50 -msgid "Font definition" -msgstr "Definice písma" +msgid "Learn how to type correctly" +msgstr "Naučte se správně psát" #: ../data/klavaro.glade.h:51 -msgid "Top 10" -msgstr "Top 10" +msgid "Initial training for your fingers." +msgstr "Počáteční trénink pro vaše prsty." #: ../data/klavaro.glade.h:52 -msgid "Show extra information" -msgstr "Zobrazit doplňující informace" +msgid "First steps with initial training" +msgstr "První kroky v počátečním tréninku" #: ../data/klavaro.glade.h:53 -msgid "Hide extra information" -msgstr "Skrýt doplňující informace" +msgid "Memorizing the keyboard practicing random keys exercises." +msgstr "Zapamatujte si klávesnici procvičováním s náhodnými znaky." #: ../data/klavaro.glade.h:54 -msgid "Publish to the web your local scores." -msgstr "Publikovat vaše místní hodnocení na webu." +msgid "Practice with random keys" +msgstr "Cvičení s náhodnými znaky" #: ../data/klavaro.glade.h:55 -msgid "_Participate" -msgstr "Úča_stnit se" +msgid "Accelerating the touches practicing random words exercises." +msgstr "Zvyšujte rychlost psaní procvičováním s náhodnými slovy." #: ../data/klavaro.glade.h:56 -msgid "Download from the web the most up to date ranking." -msgstr "Stáhnout z webu nejlepší hodnocení." +msgid "Practice with random words" +msgstr "Cvičení s náhodnými slovy" #: ../data/klavaro.glade.h:57 -msgid "_Update" -msgstr "_Aktualizovat" +msgid "Becoming proficient practicing complete paragraphs exercises." +msgstr "Staňte se dokonalými procvičováním celých odstavců." #: ../data/klavaro.glade.h:58 -msgid "About 'Klavaro'" -msgstr "O aplikaci „Klavaro“" +msgid "Practice with complete texts" +msgstr "Procvičovat kompletní texty" + +#: ../data/klavaro.glade.h:59 +msgid "" +"Keyboard layout for modules 1 and 2. Also used informatively in the " +"fluidness contest." +msgstr "" +"Rozložení klávesnice pro moduly 1 a 2. Také se informativně používá při " +"testu plynulosti." #: ../data/klavaro.glade.h:60 -msgid "Remember always: someone loves you!" -msgstr "Nezapomeňte: někdo vás určitě má rád!" +msgid "_Keyboard:" +msgstr "_Klávesnice:" #: ../data/klavaro.glade.h:61 -msgid "Remove the selected custom layout." -msgstr "Odstranit vybraná vlastní rozložení." +msgid "Language for modules 3 and 4." +msgstr "Jazyk pro moduly 3 a 4." #: ../data/klavaro.glade.h:62 -msgid "_Remove" -msgstr "Odst_ranit" +msgid "_Language:" +msgstr "_Jazyk:" #: ../data/klavaro.glade.h:63 -msgid "" -"Toggles the shift effect on the keys. Alternates between the upper and lower " -"characters of the keys." -msgstr "Zmáčknutí klávesy shift přepíná mezi psaním malých a velkých písmen." +msgid "Speech" +msgstr "Diktovat" #: ../data/klavaro.glade.h:64 -msgid "SPACE BAR" -msgstr "MEZERNÍK" +msgid "Your language here." +msgstr "Váš jazyk." -#: ../data/klavaro.glade.h:65 ../src/keyboard.c:1630 -msgid "thumbs" -msgstr "palce" +#: ../data/klavaro.glade.h:65 +msgid "Little tip about this program." +msgstr "Malý návod k tomuto programu." #: ../data/klavaro.glade.h:66 -msgid "Ctrl" -msgstr "Ctrl" +msgid "_Help" +msgstr "_Nápověda" #: ../data/klavaro.glade.h:67 -msgid "Caps" -msgstr "Caps" +msgid "General information about the program." +msgstr "Obecné informace o této aplikaci." #: ../data/klavaro.glade.h:68 -msgid "S_ave as:" -msgstr "Uložit j_ako:" +msgid "_About..." +msgstr "O _aplikaci…" #: ../data/klavaro.glade.h:69 -msgid "Show previous screen." -msgstr "Zobrazit předchozí obrazovku." +msgid "Exit the application immediately." +msgstr "Ihned ukončit aplikaci." #: ../data/klavaro.glade.h:70 -msgid "_Previous step" -msgstr "_Předchozí krok" +msgid "Klavaro - Progress" +msgstr "Klavaro – pokrok" #: ../data/klavaro.glade.h:71 -msgid "Show next screen." -msgstr "Zobrazit následující obrazovku." +msgid "_Lesson:" +msgstr "_Lekce:" #: ../data/klavaro.glade.h:72 -msgid "_Next step" -msgstr "_Následující krok" +msgid "Value" +msgstr "Hodnota" #: ../data/klavaro.glade.h:73 -msgid "Return without any modification." -msgstr "Vrátit se zpět bez jakýchkoliv změn." +msgid "Close this window, returning to the exercise." +msgstr "Zavřít toto okno a vrátit se zpět ke cvičení." #: ../data/klavaro.glade.h:74 -msgid "_Cancel" -msgstr "_Zrušit" +msgid "Clear all the progress data, for every module." +msgstr "Smazat všechna data postupů ve všech modulech." #: ../data/klavaro.glade.h:75 -msgid "Save the current keyboard layout with the name specified above." -msgstr "Uložit současné rozložení klávesnice pod názvem zadaným výše." +msgid "_Reset" +msgstr "Vy_nulovat" #: ../data/klavaro.glade.h:76 -msgid "_Save and use" -msgstr "_Uložit a použít" +msgid "Top 10" +msgstr "Top 10" #: ../data/klavaro.glade.h:77 -msgid "" -"If you like those beautiful hands, click here to close this window keeping " -"them." -msgstr "" -"Pokud se vám líbí tyto překrásné ruce, klikněte zde a zůstanou zobrazeny se " -"v malém okně." +#, fuzzy +msgid "Show extra information." +msgstr "Zobrazit doplňující informace" #: ../data/klavaro.glade.h:78 -msgid "_Keep hands" -msgstr "_Ponechat ruce" +#, fuzzy +msgid "Hide extra information." +msgstr "Skrýt doplňující informace" #: ../data/klavaro.glade.h:79 -msgid "Change language" -msgstr "Změnit jazyk" +msgid "Publish to the web your local scores." +msgstr "Publikovat vaše místní hodnocení na webu." #: ../data/klavaro.glade.h:80 -msgid "Attention!" -msgstr "Upozornění!" +msgid "_Participate" +msgstr "Úča_stnit se" #: ../data/klavaro.glade.h:81 -msgid "Do you confirm?" -msgstr "Souhlasíte?" +msgid "Download from the web the most up to date ranking." +msgstr "Stáhnout z webu nejlepší hodnocení." #: ../data/klavaro.glade.h:82 -msgid "_No" -msgstr "_Ne" +msgid "_Update" +msgstr "_Aktualizovat" #: ../data/klavaro.glade.h:83 -msgid "_Yes" -msgstr "_Ano" +msgid "Load other exercises/lessons" +msgstr "Načíst jiné cvičení/lekce" #: ../data/klavaro.glade.h:84 -msgid "Re_name:" -msgstr "Přejme_novat:" +msgid "_Other texts" +msgstr "_Další texty" #: ../data/klavaro.glade.h:85 -msgid "Rename the selected item." -msgstr "Přejmenovat vybrané položky." +msgid "Edit the character set to be used in this lesson." +msgstr "Upravit znakovou sadu použitou v této lekci." #: ../data/klavaro.glade.h:86 -msgid "" -"Read a text file and add a copy of it here. The file must be encoded in " -"UTF-8." -msgstr "" -"Načíst textový soubor a přidat zde jeho kopii. Soubor musí být kódován " -"pomocí UTF-8." +msgid "This is a specific exercise, adjusted to your error profile." +msgstr "Toto je cvičení ušité na míru dle chyb, kterých se dopouštíte." #: ../data/klavaro.glade.h:87 -msgid "_Open text file" -msgstr "_Otevřít textový soubor" +#, fuzzy +msgid "" +"Edit the character set to be used in lessons after 43: they are customizable!" +msgstr "Upravit znakovou sadu použitou v lekcích 44 až 50." -#: ../data/klavaro.glade.h:88 -msgid "Paste text that was copied to the clipboard." -msgstr "Vložit zkopírovaný text ze schránky." +#: ../data/klavaro.glade.h:88 ../src/tutor.c:376 +msgid "Drag and drop text here to practice with it." +msgstr "Pro účely procvičení sem přetáhněte text." #: ../data/klavaro.glade.h:89 -msgid "_Paste from clipboard" -msgstr "_Vložit ze schránky" +#, fuzzy +msgid "Press here to restart the exercise. Hotkey: [Ctrl-R]" +msgstr "Přejete-li si restartovat cvičení, pak zde klikněte. Zkratka: [Ctrl-R]" #: ../data/klavaro.glade.h:90 -msgid "Remove the selected item." -msgstr "Odstranit vybrané položky." +msgid "Show the virtual keyboard and the relation between fingers and keys." +msgstr "Zobrazit virtuální klávesnici a vztahy mezi prsty a klávesami." #: ../data/klavaro.glade.h:91 -msgid "_Remove copied file" -msgstr "Odst_ranit zkopírovaný soubor" +msgid "_Keyboard" +msgstr "_Klávesnice" #: ../data/klavaro.glade.h:92 -msgid "Apply the selected item to create an exercise." -msgstr "Použít vybrané položky pro vytvoření cvičení." +msgid "Select the font to be used in the exercise window." +msgstr "Vybrat písmo, které bude použito v okně se cvičením." #: ../data/klavaro.glade.h:93 -msgid "_Apply" -msgstr "_Použít" +msgid "Font definition" +msgstr "Definice písma" #: ../data/klavaro.glade.h:94 -msgid "Klavaro - Progress" -msgstr "Klavaro – pokrok" +msgid "Keep this checked if you want to get those nice beeps." +msgstr "Chcete-li slyšet pěkné pípání, nechte volbu zaškrtnutou." #: ../data/klavaro.glade.h:95 -msgid "Value" -msgstr "Hodnota" +msgid "_Beep" +msgstr "_Pípání" #: ../data/klavaro.glade.h:96 -msgid "Clear all the progress data, for every module." -msgstr "Smazat všechna data postupů ve všech modulech." +msgid "Co_urse information" +msgstr "Informace o k_urzu" #: ../data/klavaro.glade.h:97 -msgid "_Reset" -msgstr "Vy_nulovat" +msgid "Charts showing the learning progress along the exercises." +msgstr "Grafy znázorňují postup učení během jednotlivých cvičení." #: ../data/klavaro.glade.h:98 -msgid "Close this window, returning to the exercise." -msgstr "Zavřít toto okno a vrátit se zpět ke cvičení." +msgid "_Progress" +msgstr "_Pokroky" #: ../data/klavaro.glade.h:99 -msgid "Klavaro - Select file" -msgstr "Klavaro – volba souboru" +msgid "Return to the main menu." +msgstr "Vrátit se do hlavní nabídky." #: ../data/klavaro.glade.h:100 -msgid "_Open" -msgstr "_Otevřít" +msgid "Show local and external scores from other users." +msgstr "Zobrazit místní a externí hodnocení získaná od ostatních uživatelů." #: ../data/klavaro.glade.h:101 -msgid "Help?" -msgstr "Nápověda?" - -#: ../data/klavaro.glade.h:102 -msgid "" -"The main menu of the application is very straightforward. Just select the " -"type of exercise you wish to take. Do not worry about clicking any button on " -"the screen. The buttons will never hurt you!" -msgstr "" -"Hlavní nabídka aplikace je velmi přímočará. Prostě vyberte druh cvičení, " -"které chcete absolvovat. Nebojte se kliknout na kterékoliv tlačítko. " -"Tlačítka vám neublíží!" +msgid "_Top 10" +msgstr "_Top 10" -#: ../data/klavaro.glade.h:103 -msgid "" -"Also the controls have tips which will appear if you hover over them with " -"your mouse. These tips can come in very handy. To see how these tips work, " -"position your mouse over the button below, and without clicking, wait for " -"the tip to appear..." -msgstr "" -"Také nezapomeňte chvilku počkat na tipy, které se zobrazí po najetí myší nad " -"každým ovládacím prvkem. Mnohdy mohou být užitečné. Chcete-li tyto tipy " -"zobrazit, ukažte myší na dané tlačítko, bez kliknutí, a chvilku posečkejte…" +#: ../data/klavaro.desktop.in.h:1 +#, fuzzy +msgid "A very flexible and efficient touch typing tutor." +msgstr "Jeden z dalších programů pro výuku psaní na stroji" -#: ../data/klavaro.glade.h:104 -msgid "This is a tip. Now you press this button to return to the main menu." -msgstr "" -"Tady je nápověda. Pro návrat do hlavní nabídky zmáčkněte toto tlačítko." +#. Translators: these are keywords related to the program. CAI above means Computer Aided Instruction. Feel free to add and/or change the keywords in your language. +#: ../data/klavaro.desktop.in.h:3 +#, fuzzy +msgid "keyboard;typing;tutor;CAI" +msgstr "Klávesnice" -#: ../src/main.c:314 +#: ../src/main.c:242 msgid "(Custom)" msgstr "(vlastní)" -#: ../src/main.c:315 +#: ../src/main.c:243 msgid "(Edit custom)" msgstr "(upravit vlastní)" -#: ../src/main.c:316 +#: ../src/main.c:244 msgid "(Default)" msgstr "(výchozí)" -#: ../src/main.c:393 +#: ../src/main.c:321 #, c-format msgid "Dictation mode (depends on this speech synthesizer: %s)" msgid_plural "Dictation mode (depends on one of these speech synthesizers: %s)" @@ -480,88 +487,86 @@ msgstr[1] "Režim diktování (závisí na těchto hlasových syntetizérech: %s)" msgstr[2] "Režim diktování (závisí na těchto hlasových syntetizérech: %s)" -#. Set main labels (for translation) -#. -#: ../src/main.c:435 ../src/keyboard.c:1291 +#: ../src/main.c:364 ../src/keyboard.c:1291 msgid "Introduction" msgstr "Úvod" -#: ../src/main.c:438 ../src/top10.c:109 +#: ../src/main.c:367 ../src/top10.c:109 msgid "Basic course" msgstr "Základní kurz" -#: ../src/main.c:441 ../src/top10.c:112 +#: ../src/main.c:370 ../src/top10.c:112 msgid "Adaptability" msgstr "Přizpůsobivost" -#: ../src/main.c:444 ../src/callbacks.c:1310 ../src/top10.c:89 +#: ../src/main.c:373 ../src/callbacks.c:1226 ../src/top10.c:89 #: ../src/top10.c:115 msgid "Speed" msgstr "Rychlost" -#: ../src/main.c:447 ../src/callbacks.c:1333 ../src/top10.c:91 +#: ../src/main.c:376 ../src/callbacks.c:1249 ../src/top10.c:91 #: ../src/top10.c:118 msgid "Fluidity" msgstr "Plynulost" -#: ../src/callbacks.c:468 ../src/tutor.c:391 +#: ../src/callbacks.c:407 ../src/tutor.c:515 msgid "Keys:" msgstr "Klávesy:" -#: ../src/callbacks.c:858 ../src/callbacks.c:874 +#: ../src/callbacks.c:774 ../src/callbacks.c:790 msgid "Connecting..." msgstr "Připojuje se…" -#: ../src/callbacks.c:1145 +#: ../src/callbacks.c:1061 msgid "Overwrite user layout" msgstr "Přepsat uživatelské rozložení" -#: ../src/callbacks.c:1147 +#: ../src/callbacks.c:1063 msgid "This will OVERWRITE an existent keyboard layout." msgstr "Tímto se PŘEPÍŠE stávající rozložení klávesnice." -#: ../src/callbacks.c:1154 +#: ../src/callbacks.c:1070 msgid "Remove user layout" msgstr "Odstranit uživatelské rozložení" -#: ../src/callbacks.c:1156 +#: ../src/callbacks.c:1072 msgid "This will REMOVE an existent keyboard layout." msgstr "Tímto se odstraní stávající rozložení klávesnice." -#: ../src/callbacks.c:1163 +#: ../src/callbacks.c:1079 msgid "Reset progress data" msgstr "Vynulovat data s postupem" -#: ../src/callbacks.c:1164 +#: ../src/callbacks.c:1080 msgid "This will DELETE all the progress data shown in the charts." msgstr "SMAŽE všechna data s postupme zobrazená v grafech." -#: ../src/callbacks.c:1307 ../src/top10.c:87 +#: ../src/callbacks.c:1223 ../src/top10.c:87 msgid "Accuracy" msgstr "Přesnost" -#: ../src/callbacks.c:1310 ../src/tutor.c:1160 +#: ../src/callbacks.c:1226 ../src/tutor.c:1288 msgid "(WPM)" msgstr "(slov/min)" -#: ../src/callbacks.c:1321 +#: ../src/callbacks.c:1237 msgid "Errors" msgstr "Chyby" -#: ../src/callbacks.c:1324 +#: ../src/callbacks.c:1240 msgid "Touch times (s)" msgstr "Časy doteku (s)" -#: ../src/callbacks.c:1336 ../src/tutor.c:1187 ../src/top10.c:69 +#: ../src/callbacks.c:1252 ../src/tutor.c:1315 ../src/top10.c:69 msgid "Score" msgstr "Hodnocení" #. Translators: your language code (first 2 letters of your po-file) -#: ../src/translation.c:423 ../src/translation.c:489 ../src/tutor.c:1597 +#: ../src/translation.c:485 ../src/tutor.c:1725 msgid "en" msgstr "cs" -#: ../src/translation.c:576 +#: ../src/translation.c:572 msgid "" "The basic course focuses on having you read the characters presented to you " "on screen and typing the corresponding keys. Remember to keep your hands " @@ -572,7 +577,7 @@ "klávesy. Pamatujte na neustálé správné umístění prstů na klávesnici (návod " "naleznete v hlavní nabídce)." -#: ../src/translation.c:580 +#: ../src/translation.c:576 msgid "" "The key set used in each series will be shown in the above message line. The " "[Space], [Shift] and [Enter] keys may not show up there but are used very " @@ -582,7 +587,7 @@ "řádku. [Mezerník], [Shift] a [Enter] zobrazeny nejsou, neboť je jasné, že se " "používají velmi často." -#: ../src/translation.c:583 +#: ../src/translation.c:579 msgid "" "The message line below follows and echoes your key presses. If required, it " "changes and displays instructions for actions required from you." @@ -591,7 +596,7 @@ "nutné, zobrazí se zde nějaké informační sdělení týkající se činnosti, která " "je po vás požadována." -#: ../src/translation.c:587 +#: ../src/translation.c:583 msgid "" "Here you may practice and improve your memorization of all keys. There will " "be sentences presented with nonsense words which mix some numbers and " @@ -601,7 +606,7 @@ "K dispozici máte věty skládající se z nesmyslných slov obsahujících i " "některá čísla a symboly." -#: ../src/translation.c:590 +#: ../src/translation.c:586 msgid "" "In order to keep the lesson contents language and keyboard independent, " "accented letter combinations will probably not appear. For real word " @@ -611,7 +616,7 @@ "nezávislosti na jazyku a rozložení klávesnice. Pro cvičení psaní skutečných " "vět zkuste čtvrtou volbu v hlavní nabídce (rychlost psaní)." -#: ../src/translation.c:594 +#: ../src/translation.c:590 msgid "" "After each exercise there will be a brief statistics panel reviewing your " "performance along with some relevant comments." @@ -619,7 +624,7 @@ "Na konci každého cvičení se zobrazí krátká statistika o dosaženém výkonu " "spolu s nějakým příslušným komentářem." -#: ../src/translation.c:598 +#: ../src/translation.c:594 msgid "" "This exercise is very similar to the second one, for adaptability. The " "difference is that here you'll type real words." @@ -627,7 +632,7 @@ "Toto cvičení je velmi podobné tomu druhému – přizpůsobení. Rozdíl spočívá ve " "psaní skutečných slov." -#: ../src/translation.c:601 +#: ../src/translation.c:597 msgid "" "The default language is the actual one of the interface. But you may select " "any other texts with words you would like to use. Press the 'Other' option " @@ -637,7 +642,7 @@ "můžete dle libosti vybrat kterýkoliv jiný textový soubor. Kliknutím na volbu " "„Další“ můžete přidat soubor s texty." -#: ../src/translation.c:605 +#: ../src/translation.c:601 msgid "" "With this exercise the focus is on speed. So, you are supposed to type " "really fast and I will only flatter you when you deserve it!" @@ -645,7 +650,7 @@ "V tomto cvičení se zaměříte na rychlost. Takže budete muset psát skutečně " "rychle a za to vám bude upřímně lichoceno." -#: ../src/translation.c:609 +#: ../src/translation.c:605 msgid "" "We will now use complete sentences and paragraphs which make logical sense. " "This may distract you while you type if you try to understand what you are " @@ -657,7 +662,7 @@ "Pokud jste prošli předchozími cvičeními, pak s tím zřejmě nebudete mít žádné " "problémy, neboť se musíte naučit psát bez interpretace a analyzování textu." -#: ../src/translation.c:613 +#: ../src/translation.c:609 msgid "" "We do not mean to imply that the typists must behave like a robot, without " "understanding what they type. We do aim to develop the skill of typing, " @@ -672,8 +677,7 @@ "dosažení tohoto cíle, nebudete s psaním již více bojovat a budete schopni " "dávat pozor na skutečný smysl textu." -#. English typo: minimun -> minimum -#: ../src/translation.c:618 +#: ../src/translation.c:613 msgid "" "These exercises are longer. Each exercise consists of three paragraphs and " "the emphasis is placed on correctness and rhythm, with a minimum speed " @@ -686,7 +690,6 @@ "Backspace. Jinými slovy, budou uznány pouze ty texty, které budou napsány " "bez chyb." -#. English typo: recomendations -> recommendations #: ../src/keyboard.c:1094 msgid "" "Correct positioning of the hands and fingers is very important to efficient " @@ -782,13 +785,11 @@ msgid "Step %i" msgstr "Krok %i" -#. Recommendations -#: ../src/keyboard.c:1140 +#: ../src/keyboard.c:1142 msgid "To position the hands" msgstr "K umístění rukou" -#. Final words -#: ../src/keyboard.c:1225 +#: ../src/keyboard.c:1227 msgid "Go ahead!" msgstr "Jen do toho!" @@ -828,23 +829,23 @@ msgid "Press and edit me" msgstr "Zmáčkni a uprav klávesu" -#: ../src/tutor.c:176 +#: ../src/tutor.c:300 msgid "Lesson:" msgstr "Lekce:" -#: ../src/tutor.c:186 +#: ../src/tutor.c:310 msgid "Paragraphs:" msgstr "Odstavců:" -#: ../src/tutor.c:219 +#: ../src/tutor.c:343 msgid "Klavaro - Basic Course" msgstr "Klavaro - základní kurz" -#: ../src/tutor.c:224 +#: ../src/tutor.c:348 msgid "Klavaro - Adaptability" msgstr "Klavaro - přizpůsobení" -#: ../src/tutor.c:227 +#: ../src/tutor.c:351 msgid "" "Adaptability exercises: automating the fingers responses, typing over all " "the keyboard." @@ -852,43 +853,43 @@ "Adaptační cvičení: zautomatizujte si reakce prstů při psaní na celé " "klávesnici." -#: ../src/tutor.c:232 +#: ../src/tutor.c:356 msgid "Klavaro - Velocity" msgstr "Klavaro - rychlost" -#: ../src/tutor.c:233 +#: ../src/tutor.c:357 msgid "Velocity exercises: accelerate typing real words." msgstr "Cvičení rychlosti: zrychlete si psaní skutečných slov." -#: ../src/tutor.c:237 +#: ../src/tutor.c:361 msgid "Klavaro - Fluidness" msgstr "Klavaro - plynulost" -#: ../src/tutor.c:239 +#: ../src/tutor.c:363 msgid "Fluidness exercises: accuracy typing good sense paragraphs." msgstr "Cvičení plynulosti: přesnost psaní smysluplných odstavců." -#: ../src/tutor.c:301 +#: ../src/tutor.c:425 msgid "End of exercise. Press [Enter] to start another." msgstr "Konec cvičení. Další spustíte zmáčknutím [Enter]." -#: ../src/tutor.c:329 +#: ../src/tutor.c:453 msgid "Learning the key positions." msgstr "Cvičení rozmístění kláves." -#: ../src/tutor.c:332 +#: ../src/tutor.c:456 msgid "Press any key to start the exercise. " msgstr "Cvičení spustíte zmáčknutím libovolné klávesy." -#: ../src/tutor.c:440 ../src/tutor.c:443 +#: ../src/tutor.c:567 ../src/tutor.c:570 msgid "Start typing when you are ready. " msgstr "Jakmile budete připraveni, začněte psát." -#: ../src/tutor.c:441 +#: ../src/tutor.c:568 msgid "Use backspace to correct errors." msgstr "" -#: ../src/tutor.c:885 +#: ../src/tutor.c:1012 #, c-format msgid "" "ps.: logging not performed for this session: the number of typed characters " @@ -897,11 +898,11 @@ "P.S.: uložení úspěšnosti tohoto sezení není možné: počet zadaných znaků (%i) " "musí být větší než %i." -#: ../src/tutor.c:1027 +#: ../src/tutor.c:1154 msgid "ps.: you have entered the Top 10 list, great!" msgstr "P.S.: umístili jste se mezi 10 nejlepšími výsledky, výborně!" -#: ../src/tutor.c:1039 +#: ../src/tutor.c:1166 msgid "" "ps.: the text you just typed doesn't seem to be similar to ordinary texts in " "the language currently selected: we can't account for it in the 'Top 10' " @@ -910,93 +911,90 @@ "P.S.: text, který jste právě psali nevypadá jako běžné texty zvoleného " "jazyka: výsledek není možno porovnat s těmi nejlepšími v „Top 10“ " -#. Begin the accuracy -#: ../src/tutor.c:1087 +#: ../src/tutor.c:1215 msgid "STATISTICS" msgstr "STATISTIKA" -#: ../src/tutor.c:1088 +#: ../src/tutor.c:1216 msgid "Elapsed time:" msgstr "Uplynulá doba:" -#: ../src/tutor.c:1089 +#: ../src/tutor.c:1217 msgid "minute and" msgid_plural "minutes and" msgstr[0] "minut a" msgstr[1] "minut a" msgstr[2] "minut a" -#: ../src/tutor.c:1090 +#: ../src/tutor.c:1218 msgid "second" msgid_plural "seconds" msgstr[0] "sekund" msgstr[1] "sekund" msgstr[2] "sekund" -#: ../src/tutor.c:1091 +#: ../src/tutor.c:1219 msgid "Error ratio:" msgstr "Poměr chyb:" -#: ../src/tutor.c:1091 +#: ../src/tutor.c:1219 msgid "Accuracy:" msgstr "Přesnost:" -#: ../src/tutor.c:1112 ../src/tutor.c:1137 ../src/tutor.c:1160 -#: ../src/tutor.c:1186 +#: ../src/tutor.c:1240 ../src/tutor.c:1265 ../src/tutor.c:1288 +#: ../src/tutor.c:1314 msgid "Goal:" msgstr "Cíl:" -#: ../src/tutor.c:1119 +#: ../src/tutor.c:1247 msgid "Characters per second:" msgstr "Znaků za sekundu:" -#: ../src/tutor.c:1137 +#: ../src/tutor.c:1265 msgid "(CPS)" msgstr "(zn/s)" -#: ../src/tutor.c:1142 +#: ../src/tutor.c:1270 msgid "Words per minute:" msgstr "Slov za minutu:" -#: ../src/tutor.c:1167 +#: ../src/tutor.c:1295 msgid "Fluidness:" msgstr "Plynulost:" -#: ../src/tutor.c:1194 +#: ../src/tutor.c:1322 msgid "Comments:" msgstr "Komentáře:" -#: ../src/tutor.c:1676 +#: ../src/tutor.c:1804 msgid "space" msgstr "mezerník" #. Translators: the name of letter Y -#: ../src/tutor.c:1681 +#: ../src/tutor.c:1809 msgid "wye" msgstr "ypsilon" #. Translators: the name of the Return key -#: ../src/tutor.c:1685 +#: ../src/tutor.c:1813 msgid "enter" msgstr "enter" -#: ../src/tutor.c:1691 +#: ../src/tutor.c:1819 msgid "apostrophe" msgstr "apostrof" #. Translators: double quote symbol: " -#: ../src/tutor.c:1695 +#: ../src/tutor.c:1823 msgid "quote" msgstr "uvozovky" #. Translators: ampersand symbol: & -#: ../src/tutor.c:1699 +#: ../src/tutor.c:1827 msgid "ampersand" msgstr "ampersand" -#. Error frequencies or touch times -#. -#: ../src/plot.c:308 +#: ../src/plot.c:305 msgid "Character" msgstr "Znak" @@ -1004,11 +1002,11 @@ msgid "Date & Time" msgstr "Datum a čas" -#: ../src/basic.c:331 +#: ../src/basic.c:326 msgid "Positions of keys seems to be learned!" msgstr "Zdá se, že jste se naučili rozmístění kláves!" -#: ../src/basic.c:332 +#: ../src/basic.c:327 msgid "" " Congratulations!\n" " You have accomplished the entire basic course.\n" @@ -1020,7 +1018,7 @@ " Nyní zkuste následující typ cvičení: přizpůsobení.\n" " Zde se bude cvičit zejména přesnost.\n" -#: ../src/basic.c:338 +#: ../src/basic.c:333 msgid "" " All right, now you got it!\n" " Go to the next lesson.\n" @@ -1028,34 +1026,36 @@ " V pořádku, nyní jste to zvládli!\n" " Pokračujte další lekcí.\n" -#: ../src/adaptability.c:217 +#: ../src/adaptability.c:213 +#, fuzzy, c-format msgid "" -" Your accuracy rate is below 90%...\n" +" Your accuracy rate is below %.0f%%...\n" " Could you please try again to improve it?\n" msgstr "" " Přesnost vašeho psaní je nižší než 90%…\n" " Můžete to prosím zkusit znovu, abyste ji zvýšili?\n" -#: ../src/adaptability.c:222 +#: ../src/adaptability.c:216 +#, fuzzy, c-format msgid "" " You are doing well. But...\n" -" Could you make the accuracy reach 95%?\n" +" Could you make the accuracy reach %.0f%%?\n" msgstr "" " Píšete dobře. Ale…\n" " Co takhle zvýšit přesnost psaní na více než 95%?\n" -#: ../src/adaptability.c:225 -#, c-format +#: ../src/adaptability.c:219 +#, fuzzy, c-format msgid "" " You are almost there, but your accuracy rate is still below %.0f%%.\n" -" Try a few more times, or maybe you're getting upset, so go to other kind of " -"exercise.\n" +" Try a few more times, or maybe you're getting upset, so go to another kind " +"of exercise.\n" msgstr "" " Už píšete téměř dokonale, ale přesnost psaní je stále menší jak %.0f%%.\n" " Zkuste si to ještě zopakovat. Také je možné, že píšete příliš překotně, pak " "zkuste raději jiný druh cvičení.\n" -#: ../src/adaptability.c:232 +#: ../src/adaptability.c:226 #, c-format msgid "" " Very good!\n" @@ -1068,11 +1068,11 @@ " Nyní je čas zvýšit vaši rychlost.\n" " Zkuste třetí cvičení v hlavní nabídce.\n" -#: ../src/velocity.c:313 ../src/fluidness.c:435 +#: ../src/velocity.c:312 ../src/fluidness.c:435 msgid "Pasted_or_dropped" msgstr "Vloženo_či_přetaženo" -#: ../src/velocity.c:432 +#: ../src/velocity.c:423 msgid "" " You are just beginning.\n" " Be patient, try it again every day, rest and don't worry so much:\n" @@ -1082,31 +1082,34 @@ " Buďte trpěliví, pravidelně cvičte, odpočívejte a nebojte se toho:\n" " jedině vytrvalostí a pravidelným cvičením zvýšíte rychlost svého psaní.\n" -#: ../src/velocity.c:436 +#: ../src/velocity.c:427 +#, fuzzy, c-format msgid "" " Still away from the highway. You can make better...\n" -" Try at least 20 WPM.\n" +" Try to reach at least %.0f WPM.\n" msgstr "" " Stále mimo hlavní proud. Určitě můžete psát lépe…\n" " Zkuste alespoň 20 slov za minutu.\n" -#: ../src/velocity.c:439 +#: ../src/velocity.c:430 +#, fuzzy, c-format msgid "" " You are doing well, but need to go faster.\n" -" And don't forget the accuracy. Try to get 30 WPM.\n" +" And don't forget the accuracy. Try to get %.0f WPM.\n" msgstr "" " Jde vám to dobře, ale pořád nejste dost rychlí.\n" " A nezapomeňte na přesnost. Zkuste se dostat na 30 slov za minutu.\n" -#: ../src/velocity.c:443 +#: ../src/velocity.c:433 +#, fuzzy, c-format msgid "" " Fine. Now you need to start running.\n" -" Can you reach 40 WPM?\n" +" Can you reach %.0f WPM?\n" msgstr "" " Dobře. Nyní se potřebujete rozjet.\n" " Můžete dosáhnout 40 slov za minutu?\n" -#: ../src/velocity.c:446 +#: ../src/velocity.c:436 #, c-format msgid "" " Very good. You are almost there.\n" @@ -1115,7 +1118,7 @@ " Velmi dobře. Už jste skoro tam.\n" " Můžete konečně dosáhnout %.0f slov za minutu?\n" -#: ../src/velocity.c:451 +#: ../src/velocity.c:439 msgid "" " Excellent. For this course, that is enough.\n" " Try now the fluidness exercises, OK?\n" @@ -1123,31 +1126,34 @@ " Znamenitě. Pro tento kurz to je dostatečné.\n" " Zkuste nyní cvičení plynulosti, OK?\n" -#: ../src/velocity.c:455 +#: ../src/velocity.c:442 +#, fuzzy, c-format msgid "" -" Fast! Are you training for a competition?\n" -" So, try to get 70 WPM!\n" +" Fast! Are you a professional?\n" +" So, try to get %.0f WPM!\n" msgstr "" " Rychlé! Trénujete na soutěž?\n" " Pak se snažte dostat na 70 slov za minutu!\n" -#: ../src/velocity.c:458 -msgid "" -" Top of \"qwerty\". Now it's time to change to the Dvorak mode.\n" -" Are you afraid of reaching 80 WPM?\n" +#. Translators: Speed Racer is a reference to a Japanese anime franchise +#. about automobile racing, also known as Mach GoGoGo. +#: ../src/velocity.c:447 +#, c-format +msgid " Ranking good, Speed Racer! Are you afraid of reaching %.0f WPM?\n" msgstr "" -" Jste na vrcholu „qwerty“. Nyní je čas změnit režim na Dvorak.\n" -" Bojíte se dosáhnout 80 slov za minutu?\n" -#: ../src/velocity.c:462 +#. Translators: feel free to change the reference to that martial art, if you find another good analogy. +#: ../src/velocity.c:451 +#, fuzzy, c-format msgid "" -" Dvorak mode dominated!\n" -" Can you fly at 90 WPM?\n" +" Kunf-fu mastering!\n" +" Can you fly at %.0f WPM?\n" msgstr "" " Režim Dvorak ovládnut!\n" " Můžete psát rychlostí 90 slov za minutu?\n" -#: ../src/velocity.c:466 +#. Translators: Dvorak here means that infamous ergonomic keyboard layout. +#: ../src/velocity.c:454 msgid "" " Dvorak master!\n" " I have no words to express my admiration!\n" @@ -1155,7 +1161,7 @@ " Jste Mistr!\n" " Nedostává se slov, jak popsat váš výkon!\n" -#: ../src/fluidness.c:545 +#: ../src/fluidness.c:538 #, c-format msgid "" " You type accurately but not so fast.\n" @@ -1164,7 +1170,7 @@ " Píšete přesně, ale ne rychle.\n" " Můžete dosáhnout %.0f slov za minutu?\n" -#: ../src/fluidness.c:548 +#: ../src/fluidness.c:541 #, c-format msgid "" " Your rhythm is not so constant. Calm down.\n" @@ -1173,7 +1179,7 @@ " Váš rytmus psaní není stálý. Uklidněte se.\n" " Od nynějška zkuste psát plynuleji a to více jak %i%%.\n" -#: ../src/fluidness.c:551 +#: ../src/fluidness.c:544 #, c-format msgid "" " You are almost getting there. Type more fluently.\n" @@ -1182,7 +1188,7 @@ " Už píšete téměř dokonale. Pište ale plynuleji.\n" " Chce to plynulost vyšší jak %.0f%%.\n" -#: ../src/fluidness.c:554 +#: ../src/fluidness.c:547 msgid "" " Congratulations!\n" " It seems to me that you are a professional.\n" @@ -1194,7 +1200,7 @@ " Tento program již nebudete nadále potřebovat.\n" " Snad jste se i pobavili. Díky a ať se daří!\n" -#: ../src/fluidness.c:559 +#: ../src/fluidness.c:552 msgid "" " How can you type so fast?\n" " You have exceeded all my expectations.\n" @@ -1254,5 +1260,22 @@ msgid "Could not upload/download scores." msgstr "Nelze nahrát/stáhnout hodnocení." +#~ msgid "" +#~ " Top of \"qwerty\". Now it's time to change to the Dvorak mode.\n" +#~ " Are you afraid of reaching 80 WPM?\n" +#~ msgstr "" +#~ " Jste na vrcholu „qwerty“. Nyní je čas změnit režim na Dvorak.\n" +#~ " Bojíte se dosáhnout 80 slov za minutu?\n" + +#~ msgid "Press here to restart the exercise. Hotkey: [Ctrl R]" +#~ msgstr "" +#~ "Přejete-li si restartovat cvičení, pak zde klikněte. Zkratka: [Ctrl-R]" + +#~ msgid "_Font" +#~ msgstr "_Písmo" + +#~ msgid "Klavaro" +#~ msgstr "Klavaro" + #~ msgid "Default" #~ msgstr "Výchozí" diff -Nru klavaro-1.9.9/po/da.po klavaro-3.00/po/da.po --- klavaro-1.9.9/po/da.po 2013-08-15 13:38:49.000000000 +0000 +++ klavaro-3.00/po/da.po 2014-01-16 11:19:04.000000000 +0000 @@ -1,7 +1,7 @@ # Danish translation of Klavaro. -# Copyright (C) 2012 Joe Hansen. +# Copyright (C) 2014 Joe Hansen. # This file is distributed under the same license as the klavaro package. -# Joe Hansen , 2009, 2010, 2011, 2012. +# Joe Hansen , 2009, 2010, 2011, 2012, 2014. # korrekturlæst 10. juni 2009 Lars Christian Jensen. # # Konventioner: @@ -17,10 +17,10 @@ # msgid "" msgstr "" -"Project-Id-Version: klavaro-1.9.5-pre2\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2013-08-15 10:38-0300\n" -"PO-Revision-Date: 2012-06-05 16:07+0200\n" +"Project-Id-Version: klavaro-3.00-pre2\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2014-01-13 21:25-0200\n" +"PO-Revision-Date: 2014-01-14 16:07+0200\n" "Last-Translator: Joe Hansen \n" "Language-Team: Danish \n" "Language: da\n" @@ -29,551 +29,553 @@ "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: ../data/klavaro.desktop.in.h:1 ../data/klavaro.glade.h:59 -msgid "Yet another touch typing tutor" -msgstr "Endnu et værktøj til øvelse af maskinskrivning" - #: ../data/klavaro.glade.h:1 -msgid "Klavaro - Main menu" -msgstr "Klavaro - hovedmenu" +msgid "About 'Klavaro'" +msgstr "Om »Klavaro«" #: ../data/klavaro.glade.h:2 -msgid "Don't be shy about learning the basics!" -msgstr "Hold dig ikke tilbage for at lære det basale!" +msgid "Yet another touch typing tutor" +msgstr "Endnu et værktøj til øvelse af maskinskrivning" #: ../data/klavaro.glade.h:3 -msgid "Learn how to type correctly" -msgstr "Lær korrekt maskinskrivning" +msgid "Remember always: someone loves you!" +msgstr "Husk altid: Nogen elsker dig!" #: ../data/klavaro.glade.h:4 -msgid "Initial training for your fingers." -msgstr "Indledende træning af dine fingre." +msgid "Change language" +msgstr "Ændr sprog" #: ../data/klavaro.glade.h:5 -msgid "First steps with initial training" -msgstr "De første trin med den indledende træning" +msgid "Attention!" +msgstr "Klar!" #: ../data/klavaro.glade.h:6 -msgid "Memorizing the keyboard practicing random keys exercises." -msgstr "Huskeøvelser med træning af tilfældige taster." +msgid "Do you confirm?" +msgstr "Bekræfter du?" #: ../data/klavaro.glade.h:7 -msgid "Practice with random keys" -msgstr "Øvelse med tilfældige taster" +msgid "_No" +msgstr "_Nej" + +#: ../data/klavaro.glade.h:8 +msgid "_Yes" +msgstr "_Ja" -#. English typo: touchs -> touches #: ../data/klavaro.glade.h:9 -msgid "Accelerating the touches practicing random words exercises." -msgstr "Øge følelsen med træning af tilfældige ord." +msgid "Help?" +msgstr "Hjælp?" #: ../data/klavaro.glade.h:10 -msgid "Practice with random words" -msgstr "Øvelse med tilfældige ord" +msgid "This is a tip. Now you press this button to return to the main menu." +msgstr "" +"Dette er et fif. Tryk nu på denne knap for at returnere til hovedmenuen." #: ../data/klavaro.glade.h:11 -msgid "Becoming proficient practicing complete paragraphs exercises." -msgstr "Blive fortrolig med træning af hele tekstafsnit." +msgid "B_ack to menu" +msgstr "Tilb_age til menu" #: ../data/klavaro.glade.h:12 -msgid "Practice with complete texts" -msgstr "Øvelse med hele tekster" +msgid "" +"The main menu of the application is very straightforward. Just select the " +"type of exercise you wish to take. Do not worry about clicking any button on " +"the screen. The buttons will never hurt you!" +msgstr "" +"Hovedmenuen i programmet er ligetil. Vælg den type øvelse du ønsker at øve " +"i. Du skal ikke bekymre dig om at klikke på nogen af knapperne på skærmen. " +"Knapperne vil aldrig gøre dig noget!" #: ../data/klavaro.glade.h:13 msgid "" -"Keyboard layout for modules 1 and 2. Also used informatively in the " -"fluidness contest." +"Also the controls have tips which will appear if you hover over them with " +"your mouse. These tips can come in very handy. To see how these tips work, " +"position your mouse over the button below, and without clicking, wait for " +"the tip to appear..." msgstr "" -"Tastaturlayout for modulerne 1 og 2. Bruges også informativt i den flydende " -"indtastningskonkurrence." +"Styringen har også tip som vil fremkomme hvis du placerer musen over dem. " +"Disse fif kan være gode. For at se hvordan de virker, så placer musen over " +"knappen nedenfor, og uden at klikke, vent til fiffet fremkommer..." #: ../data/klavaro.glade.h:14 -msgid "_Keyboard:" -msgstr "_Tastatur:" +msgid "Klavaro - Select file" +msgstr "Klavaro - vælg fil" #: ../data/klavaro.glade.h:15 -msgid "Language for modules 3 and 4." -msgstr "Sprog for modulerne 3 og 4." +msgid "_Cancel" +msgstr "_Afbryd" #: ../data/klavaro.glade.h:16 -msgid "_Language:" -msgstr "_Sprog:" +msgid "_Open" +msgstr "_Åbn" #: ../data/klavaro.glade.h:17 -msgid "Variant" -msgstr "Variant" +msgid "Re_name:" +msgstr "_Omdøb:" #: ../data/klavaro.glade.h:18 -msgid "Klavaro" -msgstr "Klavaro" +msgid "Rename the selected item." +msgstr "Omdøb det valgte punkt." #: ../data/klavaro.glade.h:19 -msgid "Country / Custom" -msgstr "Land / tilpasset" +msgid "" +"Read a text file and add a copy of it here. The file must be encoded in " +"UTF-8." +msgstr "" +"Læs en tekstfil og tilføj en kopi af den her. Filen skal være i formatet " +"UTF-8." #: ../data/klavaro.glade.h:20 -msgid "Your language here." -msgstr "Dit sprog her." +msgid "_Open text file" +msgstr "_Åbn tekstfil" #: ../data/klavaro.glade.h:21 -msgid "Speech" -msgstr "Tale" +msgid "Paste text that was copied to the clipboard." +msgstr "Indsæt tekst som blev kopieret til udklipsholderen." #: ../data/klavaro.glade.h:22 -msgid "Little tip about this program." -msgstr "Et lille fif om dette program." +msgid "_Paste from clipboard" +msgstr "_Indsæt fra udklipsholder" #: ../data/klavaro.glade.h:23 -msgid "_Help" -msgstr "_Hjælp" +msgid "Remove the selected item." +msgstr "Fjern det valgte punkt." #: ../data/klavaro.glade.h:24 -msgid "General information about the program." -msgstr "Generel information om programmet." +msgid "_Remove copied file" +msgstr "_Fjern kopieret fil" #: ../data/klavaro.glade.h:25 -msgid "_About..." -msgstr "_Om..." +msgid "Apply the selected item to create an exercise." +msgstr "Anvend det valgte punkt for at oprette en øvelse." #: ../data/klavaro.glade.h:26 -msgid "Exit the application immediately." -msgstr "Afslut programmet øjeblikkeligt." +msgid "_Apply" +msgstr "_Anvend" #: ../data/klavaro.glade.h:27 -msgid "_Close" -msgstr "_Luk" +msgid "Close this window." +msgstr "Luk dette vindue." #: ../data/klavaro.glade.h:28 -msgid "Load other exercises/lessons" -msgstr "Hent andre øvelser/lektioner" +msgid "_Close" +msgstr "_Luk" #: ../data/klavaro.glade.h:29 -msgid "_Other texts" -msgstr "_Andre tekster" +msgid "Country / Custom" +msgstr "Land / tilpasset" #: ../data/klavaro.glade.h:30 -msgid "_Lesson:" -msgstr "_Lektion:" +msgid "Variant" +msgstr "Variant" #: ../data/klavaro.glade.h:31 -msgid "Edit the character set to be used in this lesson." -msgstr "Rediger det karaktersæt som skal bruges i denne lektion." +msgid "Remove the selected custom layout." +msgstr "Fjern det valgte brugerlayout." #: ../data/klavaro.glade.h:32 -msgid "Edit the character set to be used in lessons 44 through 50." -msgstr "Rediger det karaktersæt som skal bruges i lektion 44 til 50." +msgid "_Remove" +msgstr "Fje_rn" #: ../data/klavaro.glade.h:33 -msgid "This is a specific exercise, adjusted to your error profile." -msgstr "Dette er en specifik øvelse, justeret til din fejlprofil." +msgid "" +"Toggles the shift effect on the keys. Alternates between the upper and lower " +"characters of the keys." +msgstr "" +"Skifter mellem skift-effekten på tasterne. Skifter mellem de øvre og nedre " +"tegn på tasterne." -#: ../data/klavaro.glade.h:34 ../src/tutor.c:252 -msgid "Drag and drop text here to practice with it." -msgstr "Træk og slip tekst her for at øve med den." +#: ../data/klavaro.glade.h:34 +msgid "SPACE BAR" +msgstr "MELLEMRUM" -#: ../data/klavaro.glade.h:35 -msgid "Press here to restart the exercise. Hotkey: [Ctrl R]" -msgstr "Tryk her for at starte øvelsen igen. Genvejstast: [Ctrl R]" +#: ../data/klavaro.glade.h:35 ../src/keyboard.c:1630 +msgid "thumbs" +msgstr "tommelfingre" #: ../data/klavaro.glade.h:36 -msgid "Show the virtual keyboard and the relation between fingers and keys." -msgstr "Vis det virtuelle tastatur og forbindelsen mellem fingre og taster." +msgid "Ctrl" +msgstr "Ctrl" +# versaler, store bogstaver #: ../data/klavaro.glade.h:37 -msgid "_Keyboard" -msgstr "_Tastatur" +msgid "Caps" +msgstr "Versaler" #: ../data/klavaro.glade.h:38 -msgid "Select the font to be used in the exercise window." -msgstr "Vælg skrifttypen der skal bruges i øvelsesvinduet." +msgid "S_ave as:" +msgstr "G_em som:" #: ../data/klavaro.glade.h:39 -msgid "_Font" -msgstr "_Skrifttype" +msgid "Show previous screen." +msgstr "Vis forrige skærm." #: ../data/klavaro.glade.h:40 -msgid "Keep this checked if you want to get those nice beeps." -msgstr "Hold denne afkrydset hvis du vil bevare de dejlige små bip." +msgid "_Previous step" +msgstr "_Forrige trin" #: ../data/klavaro.glade.h:41 -msgid "_Beep" -msgstr "_Bip" +msgid "Show next screen." +msgstr "Vis næste skærm." #: ../data/klavaro.glade.h:42 -msgid "Co_urse information" -msgstr "_Undervisningsinformation" +msgid "_Next step" +msgstr "_Næste trin" #: ../data/klavaro.glade.h:43 -msgid "Charts showing the learning progress along the exercises." -msgstr "Grafer der viser indlæringsfremskridtet igennem øvelserne." +msgid "Return without any modification." +msgstr "Retur uden nogen ændringer." #: ../data/klavaro.glade.h:44 -msgid "_Progress" -msgstr "_Fremskridt" +msgid "Save the current keyboard layout with the name specified above." +msgstr "Gem det aktuelle tastaturlayout med det ovenfor angivne navn." #: ../data/klavaro.glade.h:45 -msgid "Show local and external scores from other users." -msgstr "Vis lokale og eksterne point fra andre brugere." +msgid "_Save and use" +msgstr "_Gem og brug" #: ../data/klavaro.glade.h:46 -msgid "_Top 10" -msgstr "_Top 10" +msgid "" +"If you like those beautiful hands, click here to close this window keeping " +"them." +msgstr "" +"Hvis du kan li' de smukke hænder, så klik her for at lukke dette vindue og " +"beholde dem." #: ../data/klavaro.glade.h:47 -msgid "Return to the main menu." -msgstr "Retur til hovedmenuen." +msgid "_Keep hands" +msgstr "_Behold hænder" #: ../data/klavaro.glade.h:48 -msgid "B_ack to menu" -msgstr "Tilb_age til menu" +msgid "Klavaro - Main menu" +msgstr "Klavaro - hovedmenu" #: ../data/klavaro.glade.h:49 -msgid "Close this window." -msgstr "Luk dette vindue." +msgid "Don't be shy about learning the basics!" +msgstr "Hold dig ikke tilbage for at lære det basale!" #: ../data/klavaro.glade.h:50 -msgid "Font definition" -msgstr "Skrifttypedefinition" +msgid "Learn how to type correctly" +msgstr "Lær korrekt maskinskrivning" #: ../data/klavaro.glade.h:51 -msgid "Top 10" -msgstr "Top 10" +msgid "Initial training for your fingers." +msgstr "Indledende træning af dine fingre." #: ../data/klavaro.glade.h:52 -msgid "Show extra information" -msgstr "Vis ekstra information" +msgid "First steps with initial training" +msgstr "De første trin med den indledende træning" #: ../data/klavaro.glade.h:53 -msgid "Hide extra information" -msgstr "Skjul ekstra information" +msgid "Memorizing the keyboard practicing random keys exercises." +msgstr "Huskeøvelser med træning af tilfældige taster." #: ../data/klavaro.glade.h:54 -msgid "Publish to the web your local scores." -msgstr "Udgiv dine lokale point på nettet." +msgid "Practice with random keys" +msgstr "Øvelse med tilfældige taster" #: ../data/klavaro.glade.h:55 -msgid "_Participate" -msgstr "_Deltag" +msgid "Accelerating the touches practicing random words exercises." +msgstr "Øge følelsen med træning af tilfældige ord." #: ../data/klavaro.glade.h:56 -msgid "Download from the web the most up to date ranking." -msgstr "Hent den opdaterede rangering fra nettet." +msgid "Practice with random words" +msgstr "Øvelse med tilfældige ord" #: ../data/klavaro.glade.h:57 -msgid "_Update" -msgstr "_Opdater" +msgid "Becoming proficient practicing complete paragraphs exercises." +msgstr "Blive fortrolig med træning af hele tekstafsnit." #: ../data/klavaro.glade.h:58 -msgid "About 'Klavaro'" -msgstr "Om »Klavaro«" +msgid "Practice with complete texts" +msgstr "Øvelse med hele tekster" + +#: ../data/klavaro.glade.h:59 +msgid "" +"Keyboard layout for modules 1 and 2. Also used informatively in the " +"fluidness contest." +msgstr "" +"Tastaturlayout for modulerne 1 og 2. Bruges også informativt i den flydende " +"indtastningskonkurrence." #: ../data/klavaro.glade.h:60 -msgid "Remember always: someone loves you!" -msgstr "Husk altid: Nogen elsker dig!" +msgid "_Keyboard:" +msgstr "_Tastatur:" #: ../data/klavaro.glade.h:61 -msgid "Remove the selected custom layout." -msgstr "Fjern det valgte brugerlayout." +msgid "Language for modules 3 and 4." +msgstr "Sprog for modulerne 3 og 4." #: ../data/klavaro.glade.h:62 -msgid "_Remove" -msgstr "Fje_rn" +msgid "_Language:" +msgstr "_Sprog:" #: ../data/klavaro.glade.h:63 -msgid "" -"Toggles the shift effect on the keys. Alternates between the upper and lower " -"characters of the keys." -msgstr "" -"Skifter mellem skift-effekten på tasterne. Skifter mellem de øvre og nedre " -"tegn på tasterne." +msgid "Speech" +msgstr "Tale" #: ../data/klavaro.glade.h:64 -msgid "SPACE BAR" -msgstr "MELLEMRUM" +msgid "Your language here." +msgstr "Dit sprog her." -#: ../data/klavaro.glade.h:65 ../src/keyboard.c:1630 -msgid "thumbs" -msgstr "tommelfingre" +#: ../data/klavaro.glade.h:65 +msgid "Little tip about this program." +msgstr "Et lille fif om dette program." #: ../data/klavaro.glade.h:66 -msgid "Ctrl" -msgstr "Ctrl" +msgid "_Help" +msgstr "_Hjælp" -# versaler, store bogstaver #: ../data/klavaro.glade.h:67 -msgid "Caps" -msgstr "Versaler" +msgid "General information about the program." +msgstr "Generel information om programmet." #: ../data/klavaro.glade.h:68 -msgid "S_ave as:" -msgstr "G_em som:" +msgid "_About..." +msgstr "_Om..." #: ../data/klavaro.glade.h:69 -msgid "Show previous screen." -msgstr "Vis forrige skærm." +msgid "Exit the application immediately." +msgstr "Afslut programmet øjeblikkeligt." #: ../data/klavaro.glade.h:70 -msgid "_Previous step" -msgstr "_Forrige trin" +msgid "Klavaro - Progress" +msgstr "Klavaro - fremskridt" #: ../data/klavaro.glade.h:71 -msgid "Show next screen." -msgstr "Vis næste skærm." +msgid "_Lesson:" +msgstr "_Lektion:" #: ../data/klavaro.glade.h:72 -msgid "_Next step" -msgstr "_Næste trin" +msgid "Value" +msgstr "Værdi" #: ../data/klavaro.glade.h:73 -msgid "Return without any modification." -msgstr "Retur uden nogen ændringer." +msgid "Close this window, returning to the exercise." +msgstr "Luk dette vindue, retur til øvelsen." #: ../data/klavaro.glade.h:74 -msgid "_Cancel" -msgstr "_Afbryd" +msgid "Clear all the progress data, for every module." +msgstr "Ryd alle data om fremgang, for alle moduler." #: ../data/klavaro.glade.h:75 -msgid "Save the current keyboard layout with the name specified above." -msgstr "Gem det aktuelle tastaturlayout med det ovenfor angivne navn." +msgid "_Reset" +msgstr "_Nulstil" #: ../data/klavaro.glade.h:76 -msgid "_Save and use" -msgstr "_Gem og brug" +msgid "Top 10" +msgstr "Top 10" #: ../data/klavaro.glade.h:77 -msgid "" -"If you like those beautiful hands, click here to close this window keeping " -"them." -msgstr "" -"Hvis du kan li' de smukke hænder, så klik her for at lukke dette vindue og " -"beholde dem." +msgid "Show extra information." +msgstr "Vis ekstra information." #: ../data/klavaro.glade.h:78 -msgid "_Keep hands" -msgstr "_Behold hænder" +msgid "Hide extra information." +msgstr "Skjul ekstra information." #: ../data/klavaro.glade.h:79 -msgid "Change language" -msgstr "Ændr sprog" +msgid "Publish to the web your local scores." +msgstr "Udgiv dine lokale point på nettet." #: ../data/klavaro.glade.h:80 -msgid "Attention!" -msgstr "Klar!" +msgid "_Participate" +msgstr "_Deltag" #: ../data/klavaro.glade.h:81 -msgid "Do you confirm?" -msgstr "Bekræfter du?" +msgid "Download from the web the most up to date ranking." +msgstr "Hent den opdaterede rangering fra nettet." #: ../data/klavaro.glade.h:82 -msgid "_No" -msgstr "_Nej" +msgid "_Update" +msgstr "_Opdater" #: ../data/klavaro.glade.h:83 -msgid "_Yes" -msgstr "_Ja" +msgid "Load other exercises/lessons" +msgstr "Hent andre øvelser/lektioner" #: ../data/klavaro.glade.h:84 -msgid "Re_name:" -msgstr "_Omdøb:" +msgid "_Other texts" +msgstr "_Andre tekster" #: ../data/klavaro.glade.h:85 -msgid "Rename the selected item." -msgstr "Omdøb det valgte punkt." +msgid "Edit the character set to be used in this lesson." +msgstr "Rediger det karaktersæt som skal bruges i denne lektion." #: ../data/klavaro.glade.h:86 -msgid "" -"Read a text file and add a copy of it here. The file must be encoded in " -"UTF-8." -msgstr "" -"Læs en tekstfil og tilføj en kopi af den her. Filen skal være i formatet " -"UTF-8." +msgid "This is a specific exercise, adjusted to your error profile." +msgstr "Dette er en specifik øvelse, justeret til din fejlprofil." #: ../data/klavaro.glade.h:87 -msgid "_Open text file" -msgstr "_Åbn tekstfil" +msgid "" +"Edit the character set to be used in lessons after 43: they are customizable!" +msgstr "" +"Rediger det karaktersæt som skal bruges i lektioner efter 43: De kan " +"tilpasses!" -#: ../data/klavaro.glade.h:88 -msgid "Paste text that was copied to the clipboard." -msgstr "Indsæt tekst som blev kopieret til udklipsholderen." +#: ../data/klavaro.glade.h:88 ../src/tutor.c:376 +msgid "Drag and drop text here to practice with it." +msgstr "Træk og slip tekst her for at øve med den." #: ../data/klavaro.glade.h:89 -msgid "_Paste from clipboard" -msgstr "_Indsæt fra udklipsholder" +msgid "Press here to restart the exercise. Hotkey: [Ctrl-R]" +msgstr "Tryk her for at starte øvelsen igen. Genvejstast: [Ctrl-R]" #: ../data/klavaro.glade.h:90 -msgid "Remove the selected item." -msgstr "Fjern det valgte punkt." +msgid "Show the virtual keyboard and the relation between fingers and keys." +msgstr "Vis det virtuelle tastatur og forbindelsen mellem fingre og taster." #: ../data/klavaro.glade.h:91 -msgid "_Remove copied file" -msgstr "_Fjern kopieret fil" +msgid "_Keyboard" +msgstr "_Tastatur" #: ../data/klavaro.glade.h:92 -msgid "Apply the selected item to create an exercise." -msgstr "Anvend det valgte punkt for at oprette en øvelse." +msgid "Select the font to be used in the exercise window." +msgstr "Vælg skrifttypen der skal bruges i øvelsesvinduet." #: ../data/klavaro.glade.h:93 -msgid "_Apply" -msgstr "_Anvend" +msgid "Font definition" +msgstr "Skrifttypedefinition" #: ../data/klavaro.glade.h:94 -msgid "Klavaro - Progress" -msgstr "Klavaro - fremskridt" +msgid "Keep this checked if you want to get those nice beeps." +msgstr "Hold denne afkrydset hvis du vil bevare de dejlige små bip." #: ../data/klavaro.glade.h:95 -msgid "Value" -msgstr "Værdi" +msgid "_Beep" +msgstr "_Bip" #: ../data/klavaro.glade.h:96 -msgid "Clear all the progress data, for every module." -msgstr "Ryd alle data om fremgang, for alle moduler." +msgid "Co_urse information" +msgstr "_Undervisningsinformation" #: ../data/klavaro.glade.h:97 -msgid "_Reset" -msgstr "_Nulstil" +msgid "Charts showing the learning progress along the exercises." +msgstr "Grafer der viser indlæringsfremskridtet igennem øvelserne." #: ../data/klavaro.glade.h:98 -msgid "Close this window, returning to the exercise." -msgstr "Luk dette vindue, retur til øvelsen." +msgid "_Progress" +msgstr "_Fremskridt" #: ../data/klavaro.glade.h:99 -msgid "Klavaro - Select file" -msgstr "Klavaro - vælg fil" +msgid "Return to the main menu." +msgstr "Retur til hovedmenuen." #: ../data/klavaro.glade.h:100 -msgid "_Open" -msgstr "_Åbn" +msgid "Show local and external scores from other users." +msgstr "Vis lokale og eksterne point fra andre brugere." #: ../data/klavaro.glade.h:101 -msgid "Help?" -msgstr "Hjælp?" +msgid "_Top 10" +msgstr "_Top 10" -#: ../data/klavaro.glade.h:102 -msgid "" -"The main menu of the application is very straightforward. Just select the " -"type of exercise you wish to take. Do not worry about clicking any button on " -"the screen. The buttons will never hurt you!" +#: ../data/klavaro.desktop.in.h:1 +msgid "A very flexible and efficient touch typing tutor." msgstr "" -"Hovedmenuen i programmet er ligetil. Vælg den type øvelse du ønsker at øve " -"i. Du skal ikke bekymre dig om at klikke på nogen af knapperne på skærmen. " -"Knapperne vil aldrig gøre dig noget!" +"Et meget fleksibelt og effektivt værktøj til øvelse af maskinskrivning." -#: ../data/klavaro.glade.h:103 -msgid "" -"Also the controls have tips which will appear if you hover over them with " -"your mouse. These tips can come in very handy. To see how these tips work, " -"position your mouse over the button below, and without clicking, wait for " -"the tip to appear..." -msgstr "" -"Styringen har også tip som vil fremkomme hvis du placerer musen over dem. " -"Disse fif kan være gode. For at se hvordan de virker, så placer musen over " -"knappen nedenfor, og uden at klikke, vent til fiffet fremkommer..." - -#: ../data/klavaro.glade.h:104 -msgid "This is a tip. Now you press this button to return to the main menu." -msgstr "" -"Dette er et fif. Tryk nu på denne knap for at returnere til hovedmenuen." +#. Translators: these are keywords related to the program. CAI above means Computer Aided Instruction. Feel free to add and/or change the keywords in your language. +#: ../data/klavaro.desktop.in.h:3 +msgid "keyboard;typing;tutor;CAI" +msgstr "tastatur;blindskrift;øvelse;CAI;maskinskrivning;værktøj" -#: ../src/main.c:314 +#: ../src/main.c:242 msgid "(Custom)" msgstr "(Brugertilpasset)" -#: ../src/main.c:315 +#: ../src/main.c:243 msgid "(Edit custom)" msgstr "(Rediger brugertilpasset)" -#: ../src/main.c:316 +#: ../src/main.c:244 msgid "(Default)" msgstr "(Standard)" -#: ../src/main.c:393 +#: ../src/main.c:321 #, c-format msgid "Dictation mode (depends on this speech synthesizer: %s)" msgid_plural "Dictation mode (depends on one of these speech synthesizers: %s)" msgstr[0] "Diktafontilstand (afhænger af denne talesynthesizer: %s)" msgstr[1] "Diktafontilstand (afhænger af en af disse talesynthesizere: %s)" -#. Set main labels (for translation) -#. -#: ../src/main.c:435 ../src/keyboard.c:1291 +#: ../src/main.c:364 ../src/keyboard.c:1291 msgid "Introduction" msgstr "Introduktion" -#: ../src/main.c:438 ../src/top10.c:109 +#: ../src/main.c:367 ../src/top10.c:109 msgid "Basic course" msgstr "Grundlæggende øvelse" -#: ../src/main.c:441 ../src/top10.c:112 +#: ../src/main.c:370 ../src/top10.c:112 msgid "Adaptability" msgstr "Tilpasningsevne" -#: ../src/main.c:444 ../src/callbacks.c:1310 ../src/top10.c:89 +#: ../src/main.c:373 ../src/callbacks.c:1226 ../src/top10.c:89 #: ../src/top10.c:115 msgid "Speed" msgstr "Hastighed" -#: ../src/main.c:447 ../src/callbacks.c:1333 ../src/top10.c:91 +#: ../src/main.c:376 ../src/callbacks.c:1249 ../src/top10.c:91 #: ../src/top10.c:118 msgid "Fluidity" msgstr "Flydenhed" -#: ../src/callbacks.c:468 ../src/tutor.c:391 +#: ../src/callbacks.c:407 ../src/tutor.c:515 msgid "Keys:" msgstr "Taster:" -#: ../src/callbacks.c:858 ../src/callbacks.c:874 +#: ../src/callbacks.c:774 ../src/callbacks.c:790 msgid "Connecting..." msgstr "Forbinder..." -#: ../src/callbacks.c:1145 +#: ../src/callbacks.c:1061 msgid "Overwrite user layout" msgstr "Overskriv brugerlayout" -#: ../src/callbacks.c:1147 +#: ../src/callbacks.c:1063 msgid "This will OVERWRITE an existent keyboard layout." msgstr "Dette vil OVERSKRIVE et eksisterende tastaturlayout." -#: ../src/callbacks.c:1154 +#: ../src/callbacks.c:1070 msgid "Remove user layout" msgstr "Fjern brugerlayout" -#: ../src/callbacks.c:1156 +#: ../src/callbacks.c:1072 msgid "This will REMOVE an existent keyboard layout." msgstr "Dette vil FJERNE et eksisterende tastaturlayout." -#: ../src/callbacks.c:1163 +#: ../src/callbacks.c:1079 msgid "Reset progress data" msgstr "Nulstil data for fremskridt" -#: ../src/callbacks.c:1164 +#: ../src/callbacks.c:1080 msgid "This will DELETE all the progress data shown in the charts." msgstr "Dette vil SLETTE alle de data for fremskridt som vises i diagrammerne." -#: ../src/callbacks.c:1307 ../src/top10.c:87 +#: ../src/callbacks.c:1223 ../src/top10.c:87 msgid "Accuracy" msgstr "Præcision" -#: ../src/callbacks.c:1310 ../src/tutor.c:1160 +#: ../src/callbacks.c:1226 ../src/tutor.c:1288 msgid "(WPM)" msgstr "(OPM)" -#: ../src/callbacks.c:1321 +#: ../src/callbacks.c:1237 msgid "Errors" msgstr "Fejl" -#: ../src/callbacks.c:1324 +#: ../src/callbacks.c:1240 msgid "Touch times (s)" msgstr "Tastetid (s)" -#: ../src/callbacks.c:1336 ../src/tutor.c:1187 ../src/top10.c:69 +#: ../src/callbacks.c:1252 ../src/tutor.c:1315 ../src/top10.c:69 msgid "Score" msgstr "Point" #. Translators: your language code (first 2 letters of your po-file) -#: ../src/translation.c:423 ../src/translation.c:489 ../src/tutor.c:1597 +#: ../src/translation.c:485 ../src/tutor.c:1725 msgid "en" msgstr "da" -#: ../src/translation.c:576 +#: ../src/translation.c:572 msgid "" "The basic course focuses on having you read the characters presented to you " "on screen and typing the corresponding keys. Remember to keep your hands " @@ -585,7 +587,7 @@ "holde dine hænder korrekt placeret på udgangstasterne på tastaturet (se " "introduktionen på hovedmenuen)." -#: ../src/translation.c:580 +#: ../src/translation.c:576 msgid "" "The key set used in each series will be shown in the above message line. The " "[Space], [Shift] and [Enter] keys may not show up there but are used very " @@ -595,7 +597,7 @@ "Tasterne [Mellemrum], [Skift] og [Retur] bliver måske ikke vist men bruges " "ret ofte." -#: ../src/translation.c:583 +#: ../src/translation.c:579 msgid "" "The message line below follows and echoes your key presses. If required, it " "changes and displays instructions for actions required from you." @@ -603,7 +605,7 @@ "Beskedlinjen nedenfor følger og gentager dine tastninger. Hvis krævet ændrer " "den sig og viser instruktioner for handlinger der kræves af dig." -#: ../src/translation.c:587 +#: ../src/translation.c:583 msgid "" "Here you may practice and improve your memorization of all keys. There will " "be sentences presented with nonsense words which mix some numbers and " @@ -613,7 +615,7 @@ "taster. Der vil blive vist sætninger med nonsens ord iblandet nogle tal og " "symboler." -#: ../src/translation.c:590 +#: ../src/translation.c:586 msgid "" "In order to keep the lesson contents language and keyboard independent, " "accented letter combinations will probably not appear. For real word " @@ -623,7 +625,7 @@ "højst sandsynlig ikke fremgå. For rigtige ordsætninger, så brug venligst den " "fjerde valgmulighed i hovedmenuen (om flydenhed)." -#: ../src/translation.c:594 +#: ../src/translation.c:590 msgid "" "After each exercise there will be a brief statistics panel reviewing your " "performance along with some relevant comments." @@ -631,7 +633,7 @@ "Efter hver øvelse vil der være en kort statistisk fremvisning af din " "præstation, sammen med nogle relevante kommentarer." -#: ../src/translation.c:598 +#: ../src/translation.c:594 msgid "" "This exercise is very similar to the second one, for adaptability. The " "difference is that here you'll type real words." @@ -639,7 +641,7 @@ "Denne øvelse er meget lig nummer to, for tilpasningsevne. Forskellen er at " "du her indtaster rigtige ord." -#: ../src/translation.c:601 +#: ../src/translation.c:597 msgid "" "The default language is the actual one of the interface. But you may select " "any other texts with words you would like to use. Press the 'Other' option " @@ -649,7 +651,7 @@ "anden tekst med ord du ønsker at bruge. Tryk på »Andre tekster« ovenfor og " "tilføj filer der indeholder de ønskede tekster." -#: ../src/translation.c:605 +#: ../src/translation.c:601 msgid "" "With this exercise the focus is on speed. So, you are supposed to type " "really fast and I will only flatter you when you deserve it!" @@ -657,7 +659,7 @@ "Denne øvelses fokus er hastighed. Så det forventes at du taster virkelig " "hurtigt og jeg vil kun smigre dig når du fortjener det!" -#: ../src/translation.c:609 +#: ../src/translation.c:605 msgid "" "We will now use complete sentences and paragraphs which make logical sense. " "This may distract you while you type if you try to understand what you are " @@ -669,7 +671,7 @@ "indtaster. De tidligere øvelser havde som mål at få dig til at taste uden at " "fortolke og analysere indholdet." -#: ../src/translation.c:613 +#: ../src/translation.c:609 msgid "" "We do not mean to imply that the typists must behave like a robot, without " "understanding what they type. We do aim to develop the skill of typing, " @@ -685,8 +687,7 @@ "særlig stor koncentration. Så vil du være i stand til at bruge " "opmærksomheden på indholdet af teksten." -#. English typo: minimun -> minimum -#: ../src/translation.c:618 +#: ../src/translation.c:613 msgid "" "These exercises are longer. Each exercise consists of three paragraphs and " "the emphasis is placed on correctness and rhythm, with a minimum speed " @@ -698,7 +699,6 @@ "Her vil du skulle bruge slet tilbage-tasten for at rette fejltagelser. Med " "andre ord, kun inddata uden fejl vil blive accepteret." -#. English typo: recomendations -> recommendations #: ../src/keyboard.c:1094 msgid "" "Correct positioning of the hands and fingers is very important to efficient " @@ -796,13 +796,11 @@ msgid "Step %i" msgstr "Trin %i" -#. Recommendations -#: ../src/keyboard.c:1140 +#: ../src/keyboard.c:1142 msgid "To position the hands" msgstr "Placering af hænderne" -#. Final words -#: ../src/keyboard.c:1225 +#: ../src/keyboard.c:1227 msgid "Go ahead!" msgstr "Bare gå i gang!" @@ -842,23 +840,23 @@ msgid "Press and edit me" msgstr "Tryk og rediger mig" -#: ../src/tutor.c:176 +#: ../src/tutor.c:300 msgid "Lesson:" msgstr "Lektion:" -#: ../src/tutor.c:186 +#: ../src/tutor.c:310 msgid "Paragraphs:" msgstr "Tekstafsnit:" -#: ../src/tutor.c:219 +#: ../src/tutor.c:343 msgid "Klavaro - Basic Course" msgstr "Klavaro - grundlæggende øvelse" -#: ../src/tutor.c:224 +#: ../src/tutor.c:348 msgid "Klavaro - Adaptability" msgstr "Klavaro - Tilpasningsevne" -#: ../src/tutor.c:227 +#: ../src/tutor.c:351 msgid "" "Adaptability exercises: automating the fingers responses, typing over all " "the keyboard." @@ -866,43 +864,43 @@ "Øvelser for tilpasningsevne: Automatisk respons fra fingrene, indtastning på " "hele tastaturet." -#: ../src/tutor.c:232 +#: ../src/tutor.c:356 msgid "Klavaro - Velocity" msgstr "Klavaro - hastighed" -#: ../src/tutor.c:233 +#: ../src/tutor.c:357 msgid "Velocity exercises: accelerate typing real words." msgstr "Hastighedsøvelser: Øg hastigheden under indtastning af rigtige ord." -#: ../src/tutor.c:237 +#: ../src/tutor.c:361 msgid "Klavaro - Fluidness" msgstr "Klavaro - Flydende tastning" -#: ../src/tutor.c:239 +#: ../src/tutor.c:363 msgid "Fluidness exercises: accuracy typing good sense paragraphs." msgstr "Øvelser til flydende tastning: præcision ved at taste tekstafsnit." -#: ../src/tutor.c:301 +#: ../src/tutor.c:425 msgid "End of exercise. Press [Enter] to start another." msgstr "Slut på øvelse. Tryk [Retur] for at starte en ny." -#: ../src/tutor.c:329 +#: ../src/tutor.c:453 msgid "Learning the key positions." msgstr "Indlæring af tastpositionerne." -#: ../src/tutor.c:332 +#: ../src/tutor.c:456 msgid "Press any key to start the exercise. " msgstr "Tryk på en tast for at starte øvelsen. " -#: ../src/tutor.c:440 ../src/tutor.c:443 +#: ../src/tutor.c:567 ../src/tutor.c:570 msgid "Start typing when you are ready. " msgstr "Begynd at taste når du er klar. " -#: ../src/tutor.c:441 +#: ../src/tutor.c:568 msgid "Use backspace to correct errors." msgstr "Brug mellemrum til at rette fejl." -#: ../src/tutor.c:885 +#: ../src/tutor.c:1012 #, c-format msgid "" "ps.: logging not performed for this session: the number of typed characters " @@ -911,11 +909,11 @@ "ps: Logning udføres ikke for denne øvelse: Antallet af indtastede tegn (%i) " "skal være større end %i." -#: ../src/tutor.c:1027 +#: ../src/tutor.c:1154 msgid "ps.: you have entered the Top 10 list, great!" msgstr "ps.: Du er kommet på listen over de bedste 10, glimrende!" -#: ../src/tutor.c:1039 +#: ../src/tutor.c:1166 msgid "" "ps.: the text you just typed doesn't seem to be similar to ordinary texts in " "the language currently selected: we can't account for it in the 'Top 10' " @@ -924,91 +922,88 @@ "ps: Teksten, du netop har indtastet, ligner ikke tilsvarende tekster i det " "valgte sprog: Vi kan ikke indregne den i konkurrencen om top 10." -#. Begin the accuracy -#: ../src/tutor.c:1087 +#: ../src/tutor.c:1215 msgid "STATISTICS" msgstr "STATISTIK" -#: ../src/tutor.c:1088 +#: ../src/tutor.c:1216 msgid "Elapsed time:" msgstr "Forløbet tid:" -#: ../src/tutor.c:1089 +#: ../src/tutor.c:1217 msgid "minute and" msgid_plural "minutes and" msgstr[0] "minut og" msgstr[1] "minutter og" -#: ../src/tutor.c:1090 +#: ../src/tutor.c:1218 msgid "second" msgid_plural "seconds" msgstr[0] "sekund" msgstr[1] "sekunder" -#: ../src/tutor.c:1091 +#: ../src/tutor.c:1219 msgid "Error ratio:" msgstr "Fejlniveau:" -#: ../src/tutor.c:1091 +#: ../src/tutor.c:1219 msgid "Accuracy:" msgstr "Præcision:" -#: ../src/tutor.c:1112 ../src/tutor.c:1137 ../src/tutor.c:1160 -#: ../src/tutor.c:1186 +#: ../src/tutor.c:1240 ../src/tutor.c:1265 ../src/tutor.c:1288 +#: ../src/tutor.c:1314 msgid "Goal:" msgstr "Mål:" -#: ../src/tutor.c:1119 +#: ../src/tutor.c:1247 msgid "Characters per second:" msgstr "Tegn per sekund:" -#: ../src/tutor.c:1137 +#: ../src/tutor.c:1265 msgid "(CPS)" msgstr "(KPS)" -#: ../src/tutor.c:1142 +#: ../src/tutor.c:1270 msgid "Words per minute:" msgstr "Ord per minut:" -#: ../src/tutor.c:1167 +#: ../src/tutor.c:1295 msgid "Fluidness:" msgstr "Flydende indtasting:" -#: ../src/tutor.c:1194 +#: ../src/tutor.c:1322 msgid "Comments:" msgstr "Bemærkninger:" -#: ../src/tutor.c:1676 +#: ../src/tutor.c:1804 msgid "space" msgstr "mellemrum" #. Translators: the name of letter Y -#: ../src/tutor.c:1681 +#: ../src/tutor.c:1809 msgid "wye" msgstr "y" #. Translators: the name of the Return key -#: ../src/tutor.c:1685 +#: ../src/tutor.c:1813 msgid "enter" msgstr "retur" -#: ../src/tutor.c:1691 +#: ../src/tutor.c:1819 msgid "apostrophe" msgstr "apostrof" #. Translators: double quote symbol: " -#: ../src/tutor.c:1695 +#: ../src/tutor.c:1823 msgid "quote" msgstr "anførelsestegn" #. Translators: ampersand symbol: & -#: ../src/tutor.c:1699 +#: ../src/tutor.c:1827 msgid "ampersand" msgstr "og-tegn" -#. Error frequencies or touch times -#. -#: ../src/plot.c:308 +#: ../src/plot.c:305 msgid "Character" msgstr "Tegn" @@ -1016,11 +1011,11 @@ msgid "Date & Time" msgstr "Dato & tid" -#: ../src/basic.c:331 +#: ../src/basic.c:326 msgid "Positions of keys seems to be learned!" msgstr "Tasternes placering ser ud til at været lært!" -#: ../src/basic.c:332 +#: ../src/basic.c:327 msgid "" " Congratulations!\n" " You have accomplished the entire basic course.\n" @@ -1032,7 +1027,7 @@ " Gå til den næste type af øvelser: Tilpasningsevne.\n" " Der vil du hovedsagelig træne præcisionen.\n" -#: ../src/basic.c:338 +#: ../src/basic.c:333 msgid "" " All right, now you got it!\n" " Go to the next lesson.\n" @@ -1040,34 +1035,36 @@ " Nu har du det!\n" " Gå til den næste lektion.\n" -#: ../src/adaptability.c:217 +#: ../src/adaptability.c:213 +#, c-format msgid "" -" Your accuracy rate is below 90%...\n" +" Your accuracy rate is below %.0f%%...\n" " Could you please try again to improve it?\n" msgstr "" -" Din præcision er under 90 %...\n" +" Din præcision er under %.0f%% ...\n" " Kunne du venligst forsøge at forbedre den?\n" -#: ../src/adaptability.c:222 +#: ../src/adaptability.c:216 +#, c-format msgid "" " You are doing well. But...\n" -" Could you make the accuracy reach 95%?\n" +" Could you make the accuracy reach %.0f%%?\n" msgstr "" " Du klarer dig godt. Men...\n" -" Kan du få præcisionsraten op på 95 %?\n" +" Kan du få præcisionsraten op på %.0f%%?\n" -#: ../src/adaptability.c:225 +#: ../src/adaptability.c:219 #, c-format msgid "" " You are almost there, but your accuracy rate is still below %.0f%%.\n" -" Try a few more times, or maybe you're getting upset, so go to other kind of " -"exercise.\n" +" Try a few more times, or maybe you're getting upset, so go to another kind " +"of exercise.\n" msgstr "" " Du er der næsten, men din præcision er stadig under %.0f%%.\n" " Forsøg et par gange mere, eller hvis du er lidt oprevet så forsøg med en " "anden øvelse.\n" -#: ../src/adaptability.c:232 +#: ../src/adaptability.c:226 #, c-format msgid "" " Very good!\n" @@ -1080,11 +1077,11 @@ " Nu er det på tide at øge din hastighed.\n" " Gå til den tredje øvelse i hovedmenuen.\n" -#: ../src/velocity.c:313 ../src/fluidness.c:435 +#: ../src/velocity.c:312 ../src/fluidness.c:435 msgid "Pasted_or_dropped" msgstr "Indsat_eller_sluppet" -#: ../src/velocity.c:432 +#: ../src/velocity.c:423 msgid "" " You are just beginning.\n" " Be patient, try it again every day, rest and don't worry so much:\n" @@ -1094,31 +1091,34 @@ " Vær tålmodig, prøv hver dag, hvil og bekymr dig ikke så meget:\n" " ihærdighed og øvelse vil øge din hastighed.\n" -#: ../src/velocity.c:436 +#: ../src/velocity.c:427 +#, c-format msgid "" " Still away from the highway. You can make better...\n" -" Try at least 20 WPM.\n" +" Try to reach at least %.0f WPM.\n" msgstr "" -" Stadig langt fra hovedvejen. Du kan gøre det bedre...\n" -" Forsøg i det mindste at nå 20 OPM.\n" +" Stadig langt fra hovedvejen. Du kan gøre det bedre ...\n" +" Forsøg i det mindste at nå %.0f OPM.\n" -#: ../src/velocity.c:439 +#: ../src/velocity.c:430 +#, c-format msgid "" " You are doing well, but need to go faster.\n" -" And don't forget the accuracy. Try to get 30 WPM.\n" +" And don't forget the accuracy. Try to get %.0f WPM.\n" msgstr "" " Du gør det godt, men det skal gå hurtigere.\n" -" Og glem ikke præcisionen. Forsøg at nå 30 OPM.\n" +" Og glem ikke præcisionen. Forsøg at nå %.0f OPM.\n" -#: ../src/velocity.c:443 +#: ../src/velocity.c:433 +#, c-format msgid "" " Fine. Now you need to start running.\n" -" Can you reach 40 WPM?\n" +" Can you reach %.0f WPM?\n" msgstr "" " Fint. Nu skal du i gang med hastigheden.\n" -" Kan du nå 40 OPM?\n" +" Kan du nå %.0f OPM?\n" -#: ../src/velocity.c:446 +#: ../src/velocity.c:436 #, c-format msgid "" " Very good. You are almost there.\n" @@ -1127,7 +1127,7 @@ " Rigtig godt. Du er der næsten.\n" " Kan du nu nå %.0f OPM?\n" -#: ../src/velocity.c:451 +#: ../src/velocity.c:439 msgid "" " Excellent. For this course, that is enough.\n" " Try now the fluidness exercises, OK?\n" @@ -1135,31 +1135,34 @@ " Glimrende. Til dette kursus er det nok.\n" " Forsøg nu med øvelser til øgning af den flydende indtastning, okay?\n" -#: ../src/velocity.c:455 +#: ../src/velocity.c:442 +#, c-format msgid "" -" Fast! Are you training for a competition?\n" -" So, try to get 70 WPM!\n" +" Fast! Are you a professional?\n" +" So, try to get %.0f WPM!\n" msgstr "" " Hurtigt! Træner du til en konkurrence?\n" -" Så forsøg at nå 70 OPM!\n" +" Så forsøg at nå %.0f OPM!\n" -#: ../src/velocity.c:458 -msgid "" -" Top of \"qwerty\". Now it's time to change to the Dvorak mode.\n" -" Are you afraid of reaching 80 WPM?\n" -msgstr "" -" Toppen af »qwerty«. Nu er det på tide at skifte til Dvoraktilstand.\n" -" Er du bange for at nå 80 OPM?\n" +#. Translators: Speed Racer is a reference to a Japanese anime franchise +#. about automobile racing, also known as Mach GoGoGo. +#: ../src/velocity.c:447 +#, c-format +msgid " Ranking good, Speed Racer! Are you afraid of reaching %.0f WPM?\n" +msgstr " Godt niveau, Superkører! Er du bange for at nå %.0f OPM?\n" -#: ../src/velocity.c:462 +#. Translators: feel free to change the reference to that martial art, if you find another good analogy. +#: ../src/velocity.c:451 +#, c-format msgid "" -" Dvorak mode dominated!\n" -" Can you fly at 90 WPM?\n" +" Kunf-fu mastering!\n" +" Can you fly at %.0f WPM?\n" msgstr "" -" Dvoraktilstand erobret!\n" -" Kan du flyve af sted med 90 OPM?\n" +" Kung-fu-mester!\n" +" Kan du flyve af sted med %.0f OPM?\n" -#: ../src/velocity.c:466 +#. Translators: Dvorak here means that infamous ergonomic keyboard layout. +#: ../src/velocity.c:454 msgid "" " Dvorak master!\n" " I have no words to express my admiration!\n" @@ -1167,7 +1170,7 @@ " Dvorakmester!\n" " Ingen ord kan udtrykke min beundring!\n" -#: ../src/fluidness.c:545 +#: ../src/fluidness.c:538 #, c-format msgid "" " You type accurately but not so fast.\n" @@ -1176,7 +1179,7 @@ " Du taster præcist men ikke så hurtigt.\n" " Kan du nå %.0f OPM?\n" -#: ../src/fluidness.c:548 +#: ../src/fluidness.c:541 #, c-format msgid "" " Your rhythm is not so constant. Calm down.\n" @@ -1185,7 +1188,7 @@ " Din rytme er ikke konstant. Tag det roligt.\n" " Forsøg nu at gøre tastningens flydning større end %i%%.\n" -#: ../src/fluidness.c:551 +#: ../src/fluidness.c:544 #, c-format msgid "" " You are almost getting there. Type more fluently.\n" @@ -1194,7 +1197,7 @@ " Du er der næsten. Tast mere flydende.\n" " Jeg ser gerne en flydende indtastning større end %.0f%%.\n" -#: ../src/fluidness.c:554 +#: ../src/fluidness.c:547 msgid "" " Congratulations!\n" " It seems to me that you are a professional.\n" @@ -1206,7 +1209,7 @@ " Du har ikke længere bruge for dette program (mig).\n" " Håber du havde det sjovt. Tak og hyg dig!\n" -#: ../src/fluidness.c:559 +#: ../src/fluidness.c:552 msgid "" " How can you type so fast?\n" " You have exceeded all my expectations.\n" @@ -1266,5 +1269,18 @@ msgid "Could not upload/download scores." msgstr "Kunne ikke overføre/hente point." +#~ msgid "Klavaro" +#~ msgstr "Klavaro" + +#~ msgid "_Font" +#~ msgstr "_Skrifttype" + #~ msgid "Default" #~ msgstr "Standard" + +#~ msgid "" +#~ " Top of \"qwerty\". Now it's time to change to the Dvorak mode.\n" +#~ " Are you afraid of reaching 80 WPM?\n" +#~ msgstr "" +#~ " Toppen af »qwerty«. Nu er det på tide at skifte til Dvoraktilstand.\n" +#~ " Er du bange for at nå 80 OPM?\n" diff -Nru klavaro-1.9.9/po/de.po klavaro-3.00/po/de.po --- klavaro-1.9.9/po/de.po 2013-08-15 13:38:49.000000000 +0000 +++ klavaro-3.00/po/de.po 2014-01-13 23:25:49.000000000 +0000 @@ -7,8 +7,8 @@ msgid "" msgstr "" "Project-Id-Version: klavaro 1.9.5-pre2\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2013-08-15 10:38-0300\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2014-01-13 21:25-0200\n" "PO-Revision-Date: 2012-06-03 20:09+0200\n" "Last-Translator: Hermann J. Beckers \n" "Language-Team: German \n" @@ -22,559 +22,565 @@ "Plural-Forms: nplurals=2; plural=(n>1);\n" "X-Generator: Lokalize 1.2\n" -#: ../data/klavaro.desktop.in.h:1 ../data/klavaro.glade.h:59 -msgid "Yet another touch typing tutor" -msgstr "Ein weiteres Programm zum Erlernen des Tastschreibens" - #: ../data/klavaro.glade.h:1 -msgid "Klavaro - Main menu" -msgstr "Klavaro - Hauptmenü" +msgid "About 'Klavaro'" +msgstr "Über 'Klavaro'" #: ../data/klavaro.glade.h:2 -msgid "Don't be shy about learning the basics!" -msgstr "Scheuen Sie sich nicht, die Grundlagen zu lernen!" +msgid "Yet another touch typing tutor" +msgstr "Ein weiteres Programm zum Erlernen des Tastschreibens" #: ../data/klavaro.glade.h:3 -msgid "Learn how to type correctly" -msgstr "Lernen Sie, korrekt zu schreiben" +msgid "Remember always: someone loves you!" +msgstr "Denken Sie immer daran: Jemand liebt Sie!" #: ../data/klavaro.glade.h:4 -msgid "Initial training for your fingers." -msgstr "Anfängliche Übungen für Ihre Finger." +msgid "Change language" +msgstr "Sprache wechseln" #: ../data/klavaro.glade.h:5 -msgid "First steps with initial training" -msgstr "Erste Schritte mit dem Anfangstraining" +msgid "Attention!" +msgstr "Achtung!" #: ../data/klavaro.glade.h:6 -msgid "Memorizing the keyboard practicing random keys exercises." -msgstr "Einprägen der Tastatur durch Üben zufälliger Tasten." +msgid "Do you confirm?" +msgstr "Bestätigung?" #: ../data/klavaro.glade.h:7 -msgid "Practice with random keys" -msgstr "Übungen mit zufälligen Tasten" +msgid "_No" +msgstr "_Nein" + +#: ../data/klavaro.glade.h:8 +msgid "_Yes" +msgstr "_Ja" -#. English typo: touchs -> touches #: ../data/klavaro.glade.h:9 -msgid "Accelerating the touches practicing random words exercises." -msgstr "Zugriff beschleunigen durch Üben zufälliger Worte." +msgid "Help?" +msgstr "Hilfe?" #: ../data/klavaro.glade.h:10 -msgid "Practice with random words" -msgstr "Übungen mit zufälligen Worten" +msgid "This is a tip. Now you press this button to return to the main menu." +msgstr "" +"Dies ist ein Hinweis. Drücken Sie nun diese Schaltfläche, um zum Hauptmenü " +"zurückzukehren." #: ../data/klavaro.glade.h:11 -msgid "Becoming proficient practicing complete paragraphs exercises." -msgstr "Werden Sie kompetent durch das Üben vollständiger Absätze." +msgid "B_ack to menu" +msgstr "_Zurück zum Menü" #: ../data/klavaro.glade.h:12 -msgid "Practice with complete texts" -msgstr "Übungen mit vollständigen Texten" +msgid "" +"The main menu of the application is very straightforward. Just select the " +"type of exercise you wish to take. Do not worry about clicking any button on " +"the screen. The buttons will never hurt you!" +msgstr "" +"Dies ist das Hauptmenü der Anwendung und recht einfach. Wählen Sie einfach, " +"welche Übung Sie durchführen möchten. Haben Sie keine Angst, auf eine " +"Schaltfläche zu klicken: es wird Ihnen niemals weh tun!" #: ../data/klavaro.glade.h:13 msgid "" -"Keyboard layout for modules 1 and 2. Also used informatively in the " -"fluidness contest." +"Also the controls have tips which will appear if you hover over them with " +"your mouse. These tips can come in very handy. To see how these tips work, " +"position your mouse over the button below, and without clicking, wait for " +"the tip to appear..." msgstr "" -"Tastaturbelegung für Module 1 und 2. Auch informativ im " -"Schreibflüssigkeitswettbewerb verwendet." +"Und vergessen Sie nicht, auf die Tipps zu warten, die über jedem Element " +"erscheinen. Manchmal können sie sehr nützlich sein. Um zu sehen, wie diese " +"Tipps funktionieren, führen Sie die Maus über die untere Schaltfläche und " +"warten Sie etwas, ohne zu klicken ..." #: ../data/klavaro.glade.h:14 -msgid "_Keyboard:" -msgstr "Tastatur:" +msgid "Klavaro - Select file" +msgstr "Klavaro - Datei wählen" #: ../data/klavaro.glade.h:15 -msgid "Language for modules 3 and 4." -msgstr "Sprache für Module 3 und 4." +msgid "_Cancel" +msgstr "Abbru_ch" #: ../data/klavaro.glade.h:16 -msgid "_Language:" -msgstr "Sprache:" +msgid "_Open" +msgstr "_Öffnen" #: ../data/klavaro.glade.h:17 -msgid "Variant" -msgstr "Variante" +msgid "Re_name:" +msgstr "_Umbenennen" #: ../data/klavaro.glade.h:18 -msgid "Klavaro" -msgstr "Klavaro" +msgid "Rename the selected item." +msgstr "Den gewählten Eintrag umbenennen." #: ../data/klavaro.glade.h:19 -msgid "Country / Custom" -msgstr "Land/angepasst" +msgid "" +"Read a text file and add a copy of it here. The file must be encoded in " +"UTF-8." +msgstr "" +"Liest eine Textdatei und fügt hier eine Kopie hinzu. Die Datei muss in UTF-8 " +"kodiert sein." #: ../data/klavaro.glade.h:20 -msgid "Your language here." -msgstr "Hier steht Ihre Sprache." +msgid "_Open text file" +msgstr "Textdatei _öffnen" #: ../data/klavaro.glade.h:21 -msgid "Speech" -msgstr "" +msgid "Paste text that was copied to the clipboard." +msgstr "Fügt kopierten Text aus der Zwischenablage ein." #: ../data/klavaro.glade.h:22 -msgid "Little tip about this program." -msgstr "Kleiner Tipp zu diesem Programm." +msgid "_Paste from clipboard" +msgstr "Aus der Zwischenablage _einfügen" #: ../data/klavaro.glade.h:23 -msgid "_Help" -msgstr "_Hilfe" +msgid "Remove the selected item." +msgstr "Den gewählten Eintrag entfernen." #: ../data/klavaro.glade.h:24 -msgid "General information about the program." -msgstr "Allgemeine Informationen zu diesem Programm." +msgid "_Remove copied file" +msgstr "_Kopierte Datei entfernen" #: ../data/klavaro.glade.h:25 -msgid "_About..." -msgstr "_Über ..." +msgid "Apply the selected item to create an exercise." +msgstr "Den selektierten Eintrag zur Erstellung einer Übung verwenden." #: ../data/klavaro.glade.h:26 -msgid "Exit the application immediately." -msgstr "Diese Anwendung sofort beenden." +msgid "_Apply" +msgstr "_Anwenden" #: ../data/klavaro.glade.h:27 -msgid "_Close" -msgstr "_Schließen" +msgid "Close this window." +msgstr "Dieses Fenster schließen." #: ../data/klavaro.glade.h:28 -msgid "Load other exercises/lessons" -msgstr "Lade andere Übungen/Lektionen." +msgid "_Close" +msgstr "_Schließen" #: ../data/klavaro.glade.h:29 -msgid "_Other texts" -msgstr "_Andere Texte" +msgid "Country / Custom" +msgstr "Land/angepasst" #: ../data/klavaro.glade.h:30 -msgid "_Lesson:" -msgstr "_Übung:" +msgid "Variant" +msgstr "Variante" #: ../data/klavaro.glade.h:31 -msgid "Edit the character set to be used in this lesson." -msgstr "" -"Bearbeiten Sie den Zeichensatz, der in dieser Übung benutzt werden soll." +msgid "Remove the selected custom layout." +msgstr "Entfernt das gewählte angepasste Layout." #: ../data/klavaro.glade.h:32 -msgid "Edit the character set to be used in lessons 44 through 50." -msgstr "" -"Bearbeiten Sie den Zeichensatz, der in den Übungen 44 bis 50 benutzt werden " -"soll." +msgid "_Remove" +msgstr "_Entfernen" #: ../data/klavaro.glade.h:33 -msgid "This is a specific exercise, adjusted to your error profile." -msgstr "Dies ist eine speziell auf Ihr Fehlerprofil angepaßte Übung." +msgid "" +"Toggles the shift effect on the keys. Alternates between the upper and lower " +"characters of the keys." +msgstr "" +"Wechselt die Tastenumschaltung zwischen den oberen und unteren Zeichen der " +"Tasten." -#: ../data/klavaro.glade.h:34 ../src/tutor.c:252 -msgid "Drag and drop text here to practice with it." -msgstr "Verschieben Sie Text hierhin, um damit zu üben." +#: ../data/klavaro.glade.h:34 +msgid "SPACE BAR" +msgstr "LEERTASTE" -#: ../data/klavaro.glade.h:35 -msgid "Press here to restart the exercise. Hotkey: [Ctrl R]" -msgstr "Taste zum Neustart der Übung drücken. Tastenkürzel: [Strg-R]" +#: ../data/klavaro.glade.h:35 ../src/keyboard.c:1630 +msgid "thumbs" +msgstr "Daumen" #: ../data/klavaro.glade.h:36 -msgid "Show the virtual keyboard and the relation between fingers and keys." -msgstr "" -"Zeigt die virtuelle Tastatur und den Zusammenhang zwischen Fingern und " -"Tasten." +msgid "Ctrl" +msgstr "Strg" #: ../data/klavaro.glade.h:37 -msgid "_Keyboard" -msgstr "_Tastatur" +msgid "Caps" +msgstr "Umschalt" #: ../data/klavaro.glade.h:38 -msgid "Select the font to be used in the exercise window." -msgstr "Wählen Sie die Schriftart, die im Übungsfenster benutzt werden soll." +msgid "S_ave as:" +msgstr "_Speichern als" #: ../data/klavaro.glade.h:39 -msgid "_Font" -msgstr "Schri_ftart" +msgid "Show previous screen." +msgstr "Vorigen Bildschirm anzeigen." #: ../data/klavaro.glade.h:40 -msgid "Keep this checked if you want to get those nice beeps." -msgstr "" -"Wenn Sie nette Piepser hören möchten, lassen Sie diese Einstellung aktiviert." +msgid "_Previous step" +msgstr "_Vorheriger Schritt" #: ../data/klavaro.glade.h:41 -msgid "_Beep" -msgstr "_Pieps" +msgid "Show next screen." +msgstr "Nächsten Bildschirm anzeigen." #: ../data/klavaro.glade.h:42 -msgid "Co_urse information" -msgstr "Informationen zum K_urs" +msgid "_Next step" +msgstr "_Nächster Schritt" #: ../data/klavaro.glade.h:43 -msgid "Charts showing the learning progress along the exercises." -msgstr "Diagramme, die den Lernfortschritt über die Übungen hinweg zeigen." +msgid "Return without any modification." +msgstr "Ohne Veränderung zurückspringen." #: ../data/klavaro.glade.h:44 -msgid "_Progress" -msgstr "Fortschritt" +msgid "Save the current keyboard layout with the name specified above." +msgstr "" +"Speichert die aktuelle Tastaturbelegung unter dem oben angegebenen Namen." #: ../data/klavaro.glade.h:45 -msgid "Show local and external scores from other users." -msgstr "Zeige lokale und externe Punktestände anderer Benutzer." +msgid "_Save and use" +msgstr "_Speichern und verwenden" #: ../data/klavaro.glade.h:46 -msgid "_Top 10" -msgstr "_Top 10" +msgid "" +"If you like those beautiful hands, click here to close this window keeping " +"them." +msgstr "" +"Wenn Sie diese hübschen Hände mögen, klicken Sie hier bevor Sie das Fenster " +"schließen." #: ../data/klavaro.glade.h:47 -msgid "Return to the main menu." -msgstr "Zurück zum Hauptmenü." +msgid "_Keep hands" +msgstr "Hand-Anzeige beibehalten" #: ../data/klavaro.glade.h:48 -msgid "B_ack to menu" -msgstr "_Zurück zum Menü" +msgid "Klavaro - Main menu" +msgstr "Klavaro - Hauptmenü" #: ../data/klavaro.glade.h:49 -msgid "Close this window." -msgstr "Dieses Fenster schließen." +msgid "Don't be shy about learning the basics!" +msgstr "Scheuen Sie sich nicht, die Grundlagen zu lernen!" #: ../data/klavaro.glade.h:50 -msgid "Font definition" -msgstr "Schriftartdefinition" +msgid "Learn how to type correctly" +msgstr "Lernen Sie, korrekt zu schreiben" #: ../data/klavaro.glade.h:51 -msgid "Top 10" -msgstr "Top 10" +msgid "Initial training for your fingers." +msgstr "Anfängliche Übungen für Ihre Finger." #: ../data/klavaro.glade.h:52 -msgid "Show extra information" -msgstr "Zusätzliche Informationen zeigen" +msgid "First steps with initial training" +msgstr "Erste Schritte mit dem Anfangstraining" #: ../data/klavaro.glade.h:53 -msgid "Hide extra information" -msgstr "Zusätzliche Informationen ausblenden" +msgid "Memorizing the keyboard practicing random keys exercises." +msgstr "Einprägen der Tastatur durch Üben zufälliger Tasten." #: ../data/klavaro.glade.h:54 -msgid "Publish to the web your local scores." -msgstr "Veröffentlichen Sie Ihre lokalen Werte auf dem konfigurierten Rechner." +msgid "Practice with random keys" +msgstr "Übungen mit zufälligen Tasten" #: ../data/klavaro.glade.h:55 -msgid "_Participate" -msgstr "_Teilnehmen" +msgid "Accelerating the touches practicing random words exercises." +msgstr "Zugriff beschleunigen durch Üben zufälliger Worte." #: ../data/klavaro.glade.h:56 -msgid "Download from the web the most up to date ranking." -msgstr "Die aktuellste Liste aus dem Web abrufen." +msgid "Practice with random words" +msgstr "Übungen mit zufälligen Worten" #: ../data/klavaro.glade.h:57 -msgid "_Update" -msgstr "_Aktualisierung" +msgid "Becoming proficient practicing complete paragraphs exercises." +msgstr "Werden Sie kompetent durch das Üben vollständiger Absätze." #: ../data/klavaro.glade.h:58 -msgid "About 'Klavaro'" -msgstr "Über 'Klavaro'" +msgid "Practice with complete texts" +msgstr "Übungen mit vollständigen Texten" + +#: ../data/klavaro.glade.h:59 +msgid "" +"Keyboard layout for modules 1 and 2. Also used informatively in the " +"fluidness contest." +msgstr "" +"Tastaturbelegung für Module 1 und 2. Auch informativ im " +"Schreibflüssigkeitswettbewerb verwendet." #: ../data/klavaro.glade.h:60 -msgid "Remember always: someone loves you!" -msgstr "Denken Sie immer daran: Jemand liebt Sie!" +msgid "_Keyboard:" +msgstr "Tastatur:" #: ../data/klavaro.glade.h:61 -msgid "Remove the selected custom layout." -msgstr "Entfernt das gewählte angepasste Layout." +msgid "Language for modules 3 and 4." +msgstr "Sprache für Module 3 und 4." #: ../data/klavaro.glade.h:62 -msgid "_Remove" -msgstr "_Entfernen" +msgid "_Language:" +msgstr "Sprache:" #: ../data/klavaro.glade.h:63 -msgid "" -"Toggles the shift effect on the keys. Alternates between the upper and lower " -"characters of the keys." -msgstr "" -"Wechselt die Tastenumschaltung zwischen den oberen und unteren Zeichen der " -"Tasten." +#, fuzzy +msgid "Speech" +msgstr "Geschwindigkeit" #: ../data/klavaro.glade.h:64 -msgid "SPACE BAR" -msgstr "LEERTASTE" +msgid "Your language here." +msgstr "Hier steht Ihre Sprache." -#: ../data/klavaro.glade.h:65 ../src/keyboard.c:1630 -msgid "thumbs" -msgstr "Daumen" +#: ../data/klavaro.glade.h:65 +msgid "Little tip about this program." +msgstr "Kleiner Tipp zu diesem Programm." #: ../data/klavaro.glade.h:66 -msgid "Ctrl" -msgstr "Strg" +msgid "_Help" +msgstr "_Hilfe" #: ../data/klavaro.glade.h:67 -msgid "Caps" -msgstr "Umschalt" +msgid "General information about the program." +msgstr "Allgemeine Informationen zu diesem Programm." #: ../data/klavaro.glade.h:68 -msgid "S_ave as:" -msgstr "_Speichern als" +msgid "_About..." +msgstr "_Über ..." #: ../data/klavaro.glade.h:69 -msgid "Show previous screen." -msgstr "Vorigen Bildschirm anzeigen." +msgid "Exit the application immediately." +msgstr "Diese Anwendung sofort beenden." #: ../data/klavaro.glade.h:70 -msgid "_Previous step" -msgstr "_Vorheriger Schritt" +msgid "Klavaro - Progress" +msgstr "Klavaro - Fortschritt" #: ../data/klavaro.glade.h:71 -msgid "Show next screen." -msgstr "Nächsten Bildschirm anzeigen." +msgid "_Lesson:" +msgstr "_Übung:" #: ../data/klavaro.glade.h:72 -msgid "_Next step" -msgstr "_Nächster Schritt" +msgid "Value" +msgstr "Wert" #: ../data/klavaro.glade.h:73 -msgid "Return without any modification." -msgstr "Ohne Veränderung zurückspringen." +msgid "Close this window, returning to the exercise." +msgstr "Dieses Fenster schließen, zurück zur Übung." #: ../data/klavaro.glade.h:74 -msgid "_Cancel" -msgstr "Abbru_ch" +msgid "Clear all the progress data, for every module." +msgstr "Alle Verlaufsdaten für jedes Modul löschen!" #: ../data/klavaro.glade.h:75 -msgid "Save the current keyboard layout with the name specified above." -msgstr "" -"Speichert die aktuelle Tastaturbelegung unter dem oben angegebenen Namen." +msgid "_Reset" +msgstr "_Zurücksetzen!" #: ../data/klavaro.glade.h:76 -msgid "_Save and use" -msgstr "_Speichern und verwenden" +msgid "Top 10" +msgstr "Top 10" #: ../data/klavaro.glade.h:77 -msgid "" -"If you like those beautiful hands, click here to close this window keeping " -"them." -msgstr "" -"Wenn Sie diese hübschen Hände mögen, klicken Sie hier bevor Sie das Fenster " -"schließen." +#, fuzzy +msgid "Show extra information." +msgstr "Zusätzliche Informationen zeigen" #: ../data/klavaro.glade.h:78 -msgid "_Keep hands" -msgstr "Hand-Anzeige beibehalten" +#, fuzzy +msgid "Hide extra information." +msgstr "Zusätzliche Informationen ausblenden" #: ../data/klavaro.glade.h:79 -msgid "Change language" -msgstr "Sprache wechseln" +msgid "Publish to the web your local scores." +msgstr "Veröffentlichen Sie Ihre lokalen Werte auf dem konfigurierten Rechner." #: ../data/klavaro.glade.h:80 -msgid "Attention!" -msgstr "Achtung!" +msgid "_Participate" +msgstr "_Teilnehmen" #: ../data/klavaro.glade.h:81 -msgid "Do you confirm?" -msgstr "Bestätigung?" +msgid "Download from the web the most up to date ranking." +msgstr "Die aktuellste Liste aus dem Web abrufen." #: ../data/klavaro.glade.h:82 -msgid "_No" -msgstr "_Nein" +msgid "_Update" +msgstr "_Aktualisierung" #: ../data/klavaro.glade.h:83 -msgid "_Yes" -msgstr "_Ja" +msgid "Load other exercises/lessons" +msgstr "Lade andere Übungen/Lektionen." #: ../data/klavaro.glade.h:84 -msgid "Re_name:" -msgstr "_Umbenennen" +msgid "_Other texts" +msgstr "_Andere Texte" #: ../data/klavaro.glade.h:85 -msgid "Rename the selected item." -msgstr "Den gewählten Eintrag umbenennen." +msgid "Edit the character set to be used in this lesson." +msgstr "" +"Bearbeiten Sie den Zeichensatz, der in dieser Übung benutzt werden soll." #: ../data/klavaro.glade.h:86 -msgid "" -"Read a text file and add a copy of it here. The file must be encoded in " -"UTF-8." -msgstr "" -"Liest eine Textdatei und fügt hier eine Kopie hinzu. Die Datei muss in UTF-8 " -"kodiert sein." +msgid "This is a specific exercise, adjusted to your error profile." +msgstr "Dies ist eine speziell auf Ihr Fehlerprofil angepaßte Übung." #: ../data/klavaro.glade.h:87 -msgid "_Open text file" -msgstr "Textdatei _öffnen" +#, fuzzy +msgid "" +"Edit the character set to be used in lessons after 43: they are customizable!" +msgstr "" +"Bearbeiten Sie den Zeichensatz, der in den Übungen 44 bis 50 benutzt werden " +"soll." -#: ../data/klavaro.glade.h:88 -msgid "Paste text that was copied to the clipboard." -msgstr "Fügt kopierten Text aus der Zwischenablage ein." +#: ../data/klavaro.glade.h:88 ../src/tutor.c:376 +msgid "Drag and drop text here to practice with it." +msgstr "Verschieben Sie Text hierhin, um damit zu üben." #: ../data/klavaro.glade.h:89 -msgid "_Paste from clipboard" -msgstr "Aus der Zwischenablage _einfügen" +#, fuzzy +msgid "Press here to restart the exercise. Hotkey: [Ctrl-R]" +msgstr "Taste zum Neustart der Übung drücken. Tastenkürzel: [Strg-R]" #: ../data/klavaro.glade.h:90 -msgid "Remove the selected item." -msgstr "Den gewählten Eintrag entfernen." +msgid "Show the virtual keyboard and the relation between fingers and keys." +msgstr "" +"Zeigt die virtuelle Tastatur und den Zusammenhang zwischen Fingern und " +"Tasten." #: ../data/klavaro.glade.h:91 -msgid "_Remove copied file" -msgstr "_Kopierte Datei entfernen" +msgid "_Keyboard" +msgstr "_Tastatur" #: ../data/klavaro.glade.h:92 -msgid "Apply the selected item to create an exercise." -msgstr "Den selektierten Eintrag zur Erstellung einer Übung verwenden." +msgid "Select the font to be used in the exercise window." +msgstr "Wählen Sie die Schriftart, die im Übungsfenster benutzt werden soll." #: ../data/klavaro.glade.h:93 -msgid "_Apply" -msgstr "_Anwenden" +msgid "Font definition" +msgstr "Schriftartdefinition" #: ../data/klavaro.glade.h:94 -msgid "Klavaro - Progress" -msgstr "Klavaro - Fortschritt" +msgid "Keep this checked if you want to get those nice beeps." +msgstr "" +"Wenn Sie nette Piepser hören möchten, lassen Sie diese Einstellung aktiviert." #: ../data/klavaro.glade.h:95 -msgid "Value" -msgstr "Wert" +msgid "_Beep" +msgstr "_Pieps" #: ../data/klavaro.glade.h:96 -msgid "Clear all the progress data, for every module." -msgstr "Alle Verlaufsdaten für jedes Modul löschen!" +msgid "Co_urse information" +msgstr "Informationen zum K_urs" #: ../data/klavaro.glade.h:97 -msgid "_Reset" -msgstr "_Zurücksetzen!" +msgid "Charts showing the learning progress along the exercises." +msgstr "Diagramme, die den Lernfortschritt über die Übungen hinweg zeigen." #: ../data/klavaro.glade.h:98 -msgid "Close this window, returning to the exercise." -msgstr "Dieses Fenster schließen, zurück zur Übung." +msgid "_Progress" +msgstr "Fortschritt" #: ../data/klavaro.glade.h:99 -msgid "Klavaro - Select file" -msgstr "Klavaro - Datei wählen" +msgid "Return to the main menu." +msgstr "Zurück zum Hauptmenü." #: ../data/klavaro.glade.h:100 -msgid "_Open" -msgstr "_Öffnen" +msgid "Show local and external scores from other users." +msgstr "Zeige lokale und externe Punktestände anderer Benutzer." #: ../data/klavaro.glade.h:101 -msgid "Help?" -msgstr "Hilfe?" - -#: ../data/klavaro.glade.h:102 -msgid "" -"The main menu of the application is very straightforward. Just select the " -"type of exercise you wish to take. Do not worry about clicking any button on " -"the screen. The buttons will never hurt you!" -msgstr "" -"Dies ist das Hauptmenü der Anwendung und recht einfach. Wählen Sie einfach, " -"welche Übung Sie durchführen möchten. Haben Sie keine Angst, auf eine " -"Schaltfläche zu klicken: es wird Ihnen niemals weh tun!" +msgid "_Top 10" +msgstr "_Top 10" -#: ../data/klavaro.glade.h:103 -msgid "" -"Also the controls have tips which will appear if you hover over them with " -"your mouse. These tips can come in very handy. To see how these tips work, " -"position your mouse over the button below, and without clicking, wait for " -"the tip to appear..." -msgstr "" -"Und vergessen Sie nicht, auf die Tipps zu warten, die über jedem Element " -"erscheinen. Manchmal können sie sehr nützlich sein. Um zu sehen, wie diese " -"Tipps funktionieren, führen Sie die Maus über die untere Schaltfläche und " -"warten Sie etwas, ohne zu klicken ..." +#: ../data/klavaro.desktop.in.h:1 +#, fuzzy +msgid "A very flexible and efficient touch typing tutor." +msgstr "Ein weiteres Programm zum Erlernen des Tastschreibens" -#: ../data/klavaro.glade.h:104 -msgid "This is a tip. Now you press this button to return to the main menu." -msgstr "" -"Dies ist ein Hinweis. Drücken Sie nun diese Schaltfläche, um zum Hauptmenü " -"zurückzukehren." +#. Translators: these are keywords related to the program. CAI above means Computer Aided Instruction. Feel free to add and/or change the keywords in your language. +#: ../data/klavaro.desktop.in.h:3 +#, fuzzy +msgid "keyboard;typing;tutor;CAI" +msgstr "Tastatur" -#: ../src/main.c:314 +#: ../src/main.c:242 msgid "(Custom)" msgstr "(angepasst)" -#: ../src/main.c:315 +#: ../src/main.c:243 msgid "(Edit custom)" msgstr "(Anpassung bearbeiten)" -#: ../src/main.c:316 +#: ../src/main.c:244 msgid "(Default)" msgstr "Standard" -#: ../src/main.c:393 +#: ../src/main.c:321 #, c-format msgid "Dictation mode (depends on this speech synthesizer: %s)" msgid_plural "Dictation mode (depends on one of these speech synthesizers: %s)" msgstr[0] "Diktatmodus (abhängig von diesem Sprach-Synthesizer: %s)" msgstr[1] "Diktatmodus (abhängig von diesen Sprach-Synthesizern: %s)" -#. Set main labels (for translation) -#. -#: ../src/main.c:435 ../src/keyboard.c:1291 +#: ../src/main.c:364 ../src/keyboard.c:1291 msgid "Introduction" msgstr "Einführung" -#: ../src/main.c:438 ../src/top10.c:109 +#: ../src/main.c:367 ../src/top10.c:109 msgid "Basic course" msgstr "Grundkurs" -#: ../src/main.c:441 ../src/top10.c:112 +#: ../src/main.c:370 ../src/top10.c:112 msgid "Adaptability" msgstr "Anpassbarkeit" -#: ../src/main.c:444 ../src/callbacks.c:1310 ../src/top10.c:89 +#: ../src/main.c:373 ../src/callbacks.c:1226 ../src/top10.c:89 #: ../src/top10.c:115 msgid "Speed" msgstr "Geschwindigkeit" -#: ../src/main.c:447 ../src/callbacks.c:1333 ../src/top10.c:91 +#: ../src/main.c:376 ../src/callbacks.c:1249 ../src/top10.c:91 #: ../src/top10.c:118 msgid "Fluidity" msgstr "Schreibflüssigkeit" -#: ../src/callbacks.c:468 ../src/tutor.c:391 +#: ../src/callbacks.c:407 ../src/tutor.c:515 msgid "Keys:" msgstr "Tasten:" -#: ../src/callbacks.c:858 ../src/callbacks.c:874 +#: ../src/callbacks.c:774 ../src/callbacks.c:790 msgid "Connecting..." msgstr "Verbinde ..." -#: ../src/callbacks.c:1145 +#: ../src/callbacks.c:1061 msgid "Overwrite user layout" msgstr "Anwenderbelegung überschreiben" -#: ../src/callbacks.c:1147 +#: ../src/callbacks.c:1063 msgid "This will OVERWRITE an existent keyboard layout." msgstr "Dies ÜBERSCHREIBT eine bestehende Tastaturbelegung." -#: ../src/callbacks.c:1154 +#: ../src/callbacks.c:1070 msgid "Remove user layout" msgstr "Anwenderbelegung entfernen" -#: ../src/callbacks.c:1156 +#: ../src/callbacks.c:1072 msgid "This will REMOVE an existent keyboard layout." msgstr "Dies wird eine bestehende Tastaturbelegung ENTFERNEN." -#: ../src/callbacks.c:1163 +#: ../src/callbacks.c:1079 msgid "Reset progress data" msgstr "Verlaufsdaten löschen" -#: ../src/callbacks.c:1164 +#: ../src/callbacks.c:1080 msgid "This will DELETE all the progress data shown in the charts." msgstr "Dies LÖSCHT alle Verlaufsdaten, die in den Tabellen angezeigt werden." -#: ../src/callbacks.c:1307 ../src/top10.c:87 +#: ../src/callbacks.c:1223 ../src/top10.c:87 msgid "Accuracy" msgstr "Genauigkeit" -#: ../src/callbacks.c:1310 ../src/tutor.c:1160 +#: ../src/callbacks.c:1226 ../src/tutor.c:1288 msgid "(WPM)" msgstr "(WPM)" -#: ../src/callbacks.c:1321 +#: ../src/callbacks.c:1237 msgid "Errors" msgstr "Fehler" -#: ../src/callbacks.c:1324 +#: ../src/callbacks.c:1240 msgid "Touch times (s)" msgstr "Zugriffszeit (s)" -#: ../src/callbacks.c:1336 ../src/tutor.c:1187 ../src/top10.c:69 +#: ../src/callbacks.c:1252 ../src/tutor.c:1315 ../src/top10.c:69 msgid "Score" msgstr "Werte" #. Translators: your language code (first 2 letters of your po-file) -#: ../src/translation.c:423 ../src/translation.c:489 ../src/tutor.c:1597 +#: ../src/translation.c:485 ../src/tutor.c:1725 msgid "en" msgstr "de" -#: ../src/translation.c:576 +#: ../src/translation.c:572 msgid "" "The basic course focuses on having you read the characters presented to you " "on screen and typing the corresponding keys. Remember to keep your hands " @@ -586,7 +592,7 @@ "Position der Finger auf der Startposition auf der Tastatur (s. Einführung im " "Hauptmenü)." -#: ../src/translation.c:580 +#: ../src/translation.c:576 msgid "" "The key set used in each series will be shown in the above message line. The " "[Space], [Shift] and [Enter] keys may not show up there but are used very " @@ -596,7 +602,7 @@ "gezeigt. Die [Leer]-, [Umschalt]- und [Eingabe]-Tasten werden nicht " "angezeigt, aber sie werden oft benutzt." -#: ../src/translation.c:583 +#: ../src/translation.c:579 msgid "" "The message line below follows and echoes your key presses. If required, it " "changes and displays instructions for actions required from you." @@ -604,7 +610,7 @@ "Die untere Nachrichtenzeile folgt Ihren Eingaben. Falls erforderlich, " "wechselt sie und gibt Ihnen Hinweise auf eine von Ihnen erwartete Aktion." -#: ../src/translation.c:587 +#: ../src/translation.c:583 msgid "" "Here you may practice and improve your memorization of all keys. There will " "be sentences presented with nonsense words which mix some numbers and " @@ -613,7 +619,7 @@ "Hier üben Sie und merken Sie sich die Position aller Tasten. Es werden Sätze " "mit unsinnigen Worten angezeigt, gemischt mit einigen Zahlen und Symbolen." -#: ../src/translation.c:590 +#: ../src/translation.c:586 msgid "" "In order to keep the lesson contents language and keyboard independent, " "accented letter combinations will probably not appear. For real word " @@ -623,7 +629,7 @@ "der Tastaturbelegung zu bleiben. Zum Üben von Sätzen mit richtigen Worten " "benutzen Sie bitte die 4. Option des Hauptmenüs (über Schreibflüssigkeit)." -#: ../src/translation.c:594 +#: ../src/translation.c:590 msgid "" "After each exercise there will be a brief statistics panel reviewing your " "performance along with some relevant comments." @@ -631,7 +637,7 @@ "Am Ende jeder Übung wird eine kurze Statistik über Ihre Leistung angezeigt, " "zusammen mit einigen relevanten Kommentaren." -#: ../src/translation.c:598 +#: ../src/translation.c:594 msgid "" "This exercise is very similar to the second one, for adaptability. The " "difference is that here you'll type real words." @@ -639,7 +645,7 @@ "Diese Übung ist der zweiten Übung zur Anpaßbarkeit sehr ähnlich. Der " "Unterschied: Nun üben Sie richtige Worte in Ihrer Sprache." -#: ../src/translation.c:601 +#: ../src/translation.c:597 msgid "" "The default language is the actual one of the interface. But you may select " "any other texts with words you would like to use. Press the 'Other' option " @@ -650,7 +656,7 @@ "möchten. Wählen Sie die Option 'Andere' und fügen Sie Dateien mit diesen " "Texten hinzu." -#: ../src/translation.c:605 +#: ../src/translation.c:601 msgid "" "With this exercise the focus is on speed. So, you are supposed to type " "really fast and I will only flatter you when you deserve it!" @@ -659,7 +665,7 @@ "wirklich schnell schreiben und ich werde nur schmeichelhaft sein, wenn Sie " "es verdient haben." -#: ../src/translation.c:609 +#: ../src/translation.c:605 msgid "" "We will now use complete sentences and paragraphs which make logical sense. " "This may distract you while you type if you try to understand what you are " @@ -671,7 +677,7 @@ "zu verstehen. Die bisherigen Übungen zielten darauf ab, Sie ohne " "Interpretation und Analyse des Textes zum Schreiben zu bringen." -#: ../src/translation.c:613 +#: ../src/translation.c:609 msgid "" "We do not mean to imply that the typists must behave like a robot, without " "understanding what they type. We do aim to develop the skill of typing, " @@ -687,8 +693,7 @@ "sein und wenig Konzentration erfordern. Ihre ganze Aufmerksamkeit kann sich " "auf den Text-Inhalt richten." -#. English typo: minimun -> minimum -#: ../src/translation.c:618 +#: ../src/translation.c:613 msgid "" "These exercises are longer. Each exercise consists of three paragraphs and " "the emphasis is placed on correctness and rhythm, with a minimum speed " @@ -701,7 +706,6 @@ "Korrigieren evtl. Fehler benutzen. Anders gesagt: Nur vollständig " "fehlerfreie Texte werden akzeptiert." -#. English typo: recomendations -> recommendations #: ../src/keyboard.c:1094 msgid "" "Correct positioning of the hands and fingers is very important to efficient " @@ -802,13 +806,11 @@ msgid "Step %i" msgstr "Schritt %i" -#. Recommendations -#: ../src/keyboard.c:1140 +#: ../src/keyboard.c:1142 msgid "To position the hands" msgstr "Zur Positionierung der Hände" -#. Final words -#: ../src/keyboard.c:1225 +#: ../src/keyboard.c:1227 msgid "Go ahead!" msgstr "Weiter!" @@ -849,23 +851,23 @@ msgid "Press and edit me" msgstr "Taste drücken und bearbeiten" -#: ../src/tutor.c:176 +#: ../src/tutor.c:300 msgid "Lesson:" msgstr "Übung:" -#: ../src/tutor.c:186 +#: ../src/tutor.c:310 msgid "Paragraphs:" msgstr "Absätze:" -#: ../src/tutor.c:219 +#: ../src/tutor.c:343 msgid "Klavaro - Basic Course" msgstr "Klavaro - Grundlagenkurs" -#: ../src/tutor.c:224 +#: ../src/tutor.c:348 msgid "Klavaro - Adaptability" msgstr "Klavaro - Anpassbarkeit" -#: ../src/tutor.c:227 +#: ../src/tutor.c:351 msgid "" "Adaptability exercises: automating the fingers responses, typing over all " "the keyboard." @@ -873,44 +875,44 @@ "Anpassbarkeitsübungen: Automatisierung der Fingerreaktion; die gesamte " "Tastatur wird genutzt." -#: ../src/tutor.c:232 +#: ../src/tutor.c:356 msgid "Klavaro - Velocity" msgstr "Klavaro - Geschwindigkeit" -#: ../src/tutor.c:233 +#: ../src/tutor.c:357 msgid "Velocity exercises: accelerate typing real words." msgstr "Geschwindigkeitsübungen: Beschleunigung durch Schreiben echter Worte." -#: ../src/tutor.c:237 +#: ../src/tutor.c:361 msgid "Klavaro - Fluidness" msgstr "Klavaro - Schreibflüssigkeit" -#: ../src/tutor.c:239 +#: ../src/tutor.c:363 msgid "Fluidness exercises: accuracy typing good sense paragraphs." msgstr "" "Schreibflüssigkeitsübungen. Genauigkeit durch Schreiben sinnvoller Absätze." -#: ../src/tutor.c:301 +#: ../src/tutor.c:425 msgid "End of exercise. Press [Enter] to start another." msgstr "Ende der Übung. [Enter] drücken für eine weitere Übung." -#: ../src/tutor.c:329 +#: ../src/tutor.c:453 msgid "Learning the key positions." msgstr "Lernen der Tastenpositionen." -#: ../src/tutor.c:332 +#: ../src/tutor.c:456 msgid "Press any key to start the exercise. " msgstr "Beliebige Taste zum Start der Übung drücken. " -#: ../src/tutor.c:440 ../src/tutor.c:443 +#: ../src/tutor.c:567 ../src/tutor.c:570 msgid "Start typing when you are ready. " msgstr "Beginnen Sie mit dem Schreiben, wenn Sie bereit sind." -#: ../src/tutor.c:441 +#: ../src/tutor.c:568 msgid "Use backspace to correct errors." msgstr "Rückschritttaste zur Fehlerkorrektur benutzen." -#: ../src/tutor.c:885 +#: ../src/tutor.c:1012 #, c-format msgid "" "ps.: logging not performed for this session: the number of typed characters " @@ -919,11 +921,11 @@ "P.S.: Für diese Sitzung wurde keine Aufzeichnung durchgeführt: die Anzahl " "geschriebener Zeichen (%i) muss größer sein als %i." -#: ../src/tutor.c:1027 +#: ../src/tutor.c:1154 msgid "ps.: you have entered the Top 10 list, great!" msgstr "P.S.: Sie haben die TOP-10-Liste erreicht, klasse!" -#: ../src/tutor.c:1039 +#: ../src/tutor.c:1166 msgid "" "ps.: the text you just typed doesn't seem to be similar to ordinary texts in " "the language currently selected: we can't account for it in the 'Top 10' " @@ -933,91 +935,88 @@ "der derzeit gewählten Sprache nicht ähnlich: das können wir im TOP-10-" "Wettbewerb nicht berücksichtigen." -#. Begin the accuracy -#: ../src/tutor.c:1087 +#: ../src/tutor.c:1215 msgid "STATISTICS" msgstr "STATISTIK" -#: ../src/tutor.c:1088 +#: ../src/tutor.c:1216 msgid "Elapsed time:" msgstr "Abgelaufene Zeit:" -#: ../src/tutor.c:1089 +#: ../src/tutor.c:1217 msgid "minute and" msgid_plural "minutes and" msgstr[0] "Minute und" msgstr[1] "Minuten und" -#: ../src/tutor.c:1090 +#: ../src/tutor.c:1218 msgid "second" msgid_plural "seconds" msgstr[0] "Sekunde" msgstr[1] "Sekunden" -#: ../src/tutor.c:1091 +#: ../src/tutor.c:1219 msgid "Error ratio:" msgstr "Fehlerratio:" -#: ../src/tutor.c:1091 +#: ../src/tutor.c:1219 msgid "Accuracy:" msgstr "Genauigkeit:" -#: ../src/tutor.c:1112 ../src/tutor.c:1137 ../src/tutor.c:1160 -#: ../src/tutor.c:1186 +#: ../src/tutor.c:1240 ../src/tutor.c:1265 ../src/tutor.c:1288 +#: ../src/tutor.c:1314 msgid "Goal:" msgstr "Ziel:" -#: ../src/tutor.c:1119 +#: ../src/tutor.c:1247 msgid "Characters per second:" msgstr "Zeichen pro Sekunde:" -#: ../src/tutor.c:1137 +#: ../src/tutor.c:1265 msgid "(CPS)" msgstr "(ZPS)" -#: ../src/tutor.c:1142 +#: ../src/tutor.c:1270 msgid "Words per minute:" msgstr "Worte pro Minute:" -#: ../src/tutor.c:1167 +#: ../src/tutor.c:1295 msgid "Fluidness:" msgstr "Schreibflüssigkeit:" -#: ../src/tutor.c:1194 +#: ../src/tutor.c:1322 msgid "Comments:" msgstr "Kommentare:" -#: ../src/tutor.c:1676 +#: ../src/tutor.c:1804 msgid "space" msgstr "Leertaste" #. Translators: the name of letter Y -#: ../src/tutor.c:1681 +#: ../src/tutor.c:1809 msgid "wye" msgstr "Ypsilon" #. Translators: the name of the Return key -#: ../src/tutor.c:1685 +#: ../src/tutor.c:1813 msgid "enter" msgstr "enter" -#: ../src/tutor.c:1691 +#: ../src/tutor.c:1819 msgid "apostrophe" msgstr "Apostroph" #. Translators: double quote symbol: " -#: ../src/tutor.c:1695 +#: ../src/tutor.c:1823 msgid "quote" msgstr "Anführungszeichen" #. Translators: ampersand symbol: & -#: ../src/tutor.c:1699 +#: ../src/tutor.c:1827 msgid "ampersand" msgstr "Ampersand" -#. Error frequencies or touch times -#. -#: ../src/plot.c:308 +#: ../src/plot.c:305 msgid "Character" msgstr "Zeichen" @@ -1025,11 +1024,11 @@ msgid "Date & Time" msgstr "Datum und Zeit" -#: ../src/basic.c:331 +#: ../src/basic.c:326 msgid "Positions of keys seems to be learned!" msgstr "Die Tastenpositionen sind offenbar eingeprägt!" -#: ../src/basic.c:332 +#: ../src/basic.c:327 msgid "" " Congratulations!\n" " You have accomplished the entire basic course.\n" @@ -1041,7 +1040,7 @@ " Machen Sie mit der nächsten Übung Anpassbarkeit weiter.\n" " Damit testen Sie vor allem die Genauigkeit.\n" -#: ../src/basic.c:338 +#: ../src/basic.c:333 msgid "" " All right, now you got it!\n" " Go to the next lesson.\n" @@ -1049,35 +1048,37 @@ " In Ordnung, nun haben Sie es geschafft!\n" " Gehen Sie zur nächsten Lektion.\n" -#: ../src/adaptability.c:217 +#: ../src/adaptability.c:213 +#, fuzzy, c-format msgid "" -" Your accuracy rate is below 90%...\n" +" Your accuracy rate is below %.0f%%...\n" " Could you please try again to improve it?\n" msgstr "" " Ihre Genauigkeit liegt unter 90 % ...\n" " Würden Sie es zur Verbesserung erneut versuchen?\n" -#: ../src/adaptability.c:222 +#: ../src/adaptability.c:216 +#, fuzzy, c-format msgid "" " You are doing well. But...\n" -" Could you make the accuracy reach 95%?\n" +" Could you make the accuracy reach %.0f%%?\n" msgstr "" " Sie machen es gut. Aber ...\n" " Können Sie eine Genauigkeit von mindestens 95 % erreichen?\n" -#: ../src/adaptability.c:225 -#, c-format +#: ../src/adaptability.c:219 +#, fuzzy, c-format msgid "" " You are almost there, but your accuracy rate is still below %.0f%%.\n" -" Try a few more times, or maybe you're getting upset, so go to other kind of " -"exercise.\n" +" Try a few more times, or maybe you're getting upset, so go to another kind " +"of exercise.\n" msgstr "" " Sie haben es fast geschafft, aber Ihre Genauigkeit ist immer noch unter " "%.0f %%.\n" " Versuchen Sie es noch mehrmals, oder falls Sie aufgeregt sind, führen Sie " "eine andere Übung durch.\n" -#: ../src/adaptability.c:232 +#: ../src/adaptability.c:226 #, c-format msgid "" " Very good!\n" @@ -1090,11 +1091,11 @@ " Nun können wir Ihre Geschwindigkeit erhöhen.\n" " Nehmen Sie die 3. Übung im Hauptmenü.\n" -#: ../src/velocity.c:313 ../src/fluidness.c:435 +#: ../src/velocity.c:312 ../src/fluidness.c:435 msgid "Pasted_or_dropped" msgstr "Eingefügt_oder_übertragen" -#: ../src/velocity.c:432 +#: ../src/velocity.c:423 msgid "" " You are just beginning.\n" " Be patient, try it again every day, rest and don't worry so much:\n" @@ -1105,32 +1106,35 @@ "sich nicht zu sehr:\n" " Beständigkeit und Übung verbessern Ihre Geschwindigkeit.\n" -#: ../src/velocity.c:436 +#: ../src/velocity.c:427 +#, fuzzy, c-format msgid "" " Still away from the highway. You can make better...\n" -" Try at least 20 WPM.\n" +" Try to reach at least %.0f WPM.\n" msgstr "" " Noch von der Schnellstraße entfernt. Sie können es besser ...\n" " Versuchen Sie zumindest 20 WPM.\n" -#: ../src/velocity.c:439 +#: ../src/velocity.c:430 +#, fuzzy, c-format msgid "" " You are doing well, but need to go faster.\n" -" And don't forget the accuracy. Try to get 30 WPM.\n" +" And don't forget the accuracy. Try to get %.0f WPM.\n" msgstr "" " Sie sind gut, aber müssen noch schneller werden.\n" " Und vergessen Sie die Genauigkeit nicht. Versuchen Sie 30 WPM zu " "erreichen.\n" -#: ../src/velocity.c:443 +#: ../src/velocity.c:433 +#, fuzzy, c-format msgid "" " Fine. Now you need to start running.\n" -" Can you reach 40 WPM?\n" +" Can you reach %.0f WPM?\n" msgstr "" " Schön. Nun können Sie das Laufen versuchen.\n" " Können Sie 40 WPM erreichen?\n" -#: ../src/velocity.c:446 +#: ../src/velocity.c:436 #, c-format msgid "" " Very good. You are almost there.\n" @@ -1139,7 +1143,7 @@ " Sehr gut. Sie haben es fast geschafft.\n" " Können Sie jetzt %.0f WPM erreichen?\n" -#: ../src/velocity.c:451 +#: ../src/velocity.c:439 msgid "" " Excellent. For this course, that is enough.\n" " Try now the fluidness exercises, OK?\n" @@ -1147,31 +1151,34 @@ " Ausgezeichnet. Für diesen Kurs ist das genug.\n" " Versuchen Sie nun die Schreibflüssigkeitsübungen, OK?\n" -#: ../src/velocity.c:455 +#: ../src/velocity.c:442 +#, fuzzy, c-format msgid "" -" Fast! Are you training for a competition?\n" -" So, try to get 70 WPM!\n" +" Fast! Are you a professional?\n" +" So, try to get %.0f WPM!\n" msgstr "" " Schnell! Trainieren Sie für einen Wettbewerb?\n" " Dann sollten Sie 70 WPM erreichen!\n" -#: ../src/velocity.c:458 -msgid "" -" Top of \"qwerty\". Now it's time to change to the Dvorak mode.\n" -" Are you afraid of reaching 80 WPM?\n" +#. Translators: Speed Racer is a reference to a Japanese anime franchise +#. about automobile racing, also known as Mach GoGoGo. +#: ../src/velocity.c:447 +#, c-format +msgid " Ranking good, Speed Racer! Are you afraid of reaching %.0f WPM?\n" msgstr "" -" Spitze von \"qwerty\". Nun ist es Zeit, auf den Dvorak-Modus zu wechseln.\n" -" Haben Sie Angst, 80 WPM zu erreichen?\n" -#: ../src/velocity.c:462 +#. Translators: feel free to change the reference to that martial art, if you find another good analogy. +#: ../src/velocity.c:451 +#, fuzzy, c-format msgid "" -" Dvorak mode dominated!\n" -" Can you fly at 90 WPM?\n" +" Kunf-fu mastering!\n" +" Can you fly at %.0f WPM?\n" msgstr "" " Dvorak-Modus dominiert!\n" " Können Sie bei 90 WPM fliegen?\n" -#: ../src/velocity.c:466 +#. Translators: Dvorak here means that infamous ergonomic keyboard layout. +#: ../src/velocity.c:454 msgid "" " Dvorak master!\n" " I have no words to express my admiration!\n" @@ -1179,7 +1186,7 @@ " Dvorak-Meister!\n" " Es gibt keine Worte, die Bewunderung auszudrücken!\n" -#: ../src/fluidness.c:545 +#: ../src/fluidness.c:538 #, c-format msgid "" " You type accurately but not so fast.\n" @@ -1188,7 +1195,7 @@ " Sie schreiben genau, aber nicht sehr schnell.\n" " Können Sie %.0f WPM erreichen?\n" -#: ../src/fluidness.c:548 +#: ../src/fluidness.c:541 #, c-format msgid "" " Your rhythm is not so constant. Calm down.\n" @@ -1197,7 +1204,7 @@ " Ihr Rhythmus ist nicht konstant. Werden Sie ruhiger.\n" " Versuchen Sie jetzt, eine Schreibflüssigkeit über %i %% zu erreichen.\n" -#: ../src/fluidness.c:551 +#: ../src/fluidness.c:544 #, c-format msgid "" " You are almost getting there. Type more fluently.\n" @@ -1206,7 +1213,7 @@ " Sie haben es fast geschafft. Schreiben Sie flüssiger.\n" " Ihre Schreibflüssigkeit sollte über %.0f %% liegen.\n" -#: ../src/fluidness.c:554 +#: ../src/fluidness.c:547 msgid "" " Congratulations!\n" " It seems to me that you are a professional.\n" @@ -1218,7 +1225,7 @@ " Sie benötigen dieses Programm nicht mehr.\n" " Hoffentlich hat es Ihnen gefallen. Danke und seien Sie glücklich!\n" -#: ../src/fluidness.c:559 +#: ../src/fluidness.c:552 msgid "" " How can you type so fast?\n" " You have exceeded all my expectations.\n" @@ -1278,6 +1285,23 @@ msgid "Could not upload/download scores." msgstr "Konnte lokale Ergebnisse nicht übertragen." +#~ msgid "" +#~ " Top of \"qwerty\". Now it's time to change to the Dvorak mode.\n" +#~ " Are you afraid of reaching 80 WPM?\n" +#~ msgstr "" +#~ " Spitze von \"qwerty\". Nun ist es Zeit, auf den Dvorak-Modus zu " +#~ "wechseln.\n" +#~ " Haben Sie Angst, 80 WPM zu erreichen?\n" + +#~ msgid "Press here to restart the exercise. Hotkey: [Ctrl R]" +#~ msgstr "Taste zum Neustart der Übung drücken. Tastenkürzel: [Strg-R]" + +#~ msgid "_Font" +#~ msgstr "Schri_ftart" + +#~ msgid "Klavaro" +#~ msgstr "Klavaro" + #~ msgid "Default" #~ msgstr "Standard" diff -Nru klavaro-1.9.9/po/el.po klavaro-3.00/po/el.po --- klavaro-1.9.9/po/el.po 2013-08-15 13:38:49.000000000 +0000 +++ klavaro-3.00/po/el.po 2014-01-18 23:08:03.000000000 +0000 @@ -1,823 +1,633 @@ -# Klavaro - Greek localization +# Klavaro - Greek localization. # Copyright (C) 2013 Free Software Foundation, Inc. # This file is distributed under the same license as the klavaro package. # -# Evangelos Skarmoutsos , 2013. +# Vangelis Skarmoutsos , 2013, 2014. +# msgid "" msgstr "" -"Project-Id-Version: klavaro-1.9.7\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2013-08-15 10:38-0300\n" -"PO-Revision-Date: 2013-08-12 23:06+0300\n" -"Last-Translator: Evangelos Skarmoutsos \n" +"Project-Id-Version: klavaro-3.00-pre2\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2014-01-08 15:54-0200\n" +"PO-Revision-Date: 2014-01-18 03:07+0200\n" +"Last-Translator: Vangelis Skarmoutsos \n" "Language-Team: Greek \n" "Language: el\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -"X-Generator: Lokalize 1.4\n" - -#: ../data/klavaro.desktop.in.h:1 ../data/klavaro.glade.h:59 -msgid "Yet another touch typing tutor" -msgstr "Ένα ακόμη εκπαιδευτικό λογισμικό δακτυλογραφίας" +"X-Generator: Gtranslator 2.91.6\n" #: ../data/klavaro.glade.h:1 -msgid "Klavaro - Main menu" -msgstr "Klavaro - Κύριο μενού" +msgid "About 'Klavaro'" +msgstr "Σχετικά με το 'Klavaro'" #: ../data/klavaro.glade.h:2 -msgid "Don't be shy about learning the basics!" -msgstr "Μην είστε ντροπαλοί στο να μάθετε τα βασικά!" +msgid "Yet another touch typing tutor" +msgstr "Ένα ακόμη εκπαιδευτικό λογισμικό δακτυλογραφίας" #: ../data/klavaro.glade.h:3 -msgid "Learn how to type correctly" -msgstr "Μάθετε πως να πληκτρολογείτε σωστά" +msgid "Remember always: someone loves you!" +msgstr "Να θυμάστε πάντα: κάποιος σας αγαπάει!" #: ../data/klavaro.glade.h:4 -msgid "Initial training for your fingers." -msgstr "Αρχική εκπαίδευση για τα δάχτυλα σας." +msgid "Change language" +msgstr "Αλλαγή γλώσσας" #: ../data/klavaro.glade.h:5 -msgid "First steps with initial training" -msgstr "Πρώτα βήματα με την αρχική εκπαίδευση" +msgid "Attention!" +msgstr "Προσοχή!" #: ../data/klavaro.glade.h:6 -msgid "Memorizing the keyboard practicing random keys exercises." -msgstr "Απομνημόνευση του πληκτρολογίου με ασκήσεις τυχαίων πλήκτρων." +msgid "Do you confirm?" +msgstr "Το επιβεβαιώνετε;" #: ../data/klavaro.glade.h:7 -msgid "Practice with random keys" -msgstr "Εξάσκηση με τυχαία πλήκτρα" +msgid "_No" +msgstr "_Όχι" + +#: ../data/klavaro.glade.h:8 +msgid "_Yes" +msgstr "_Ναι" -#. English typo: touchs -> touches #: ../data/klavaro.glade.h:9 -msgid "Accelerating the touches practicing random words exercises." -msgstr "Επιτάχυνση των πατημάτων με ασκήσεις τυχαίων λέξεων." +msgid "Help?" +msgstr "Βοήθεια;" #: ../data/klavaro.glade.h:10 -msgid "Practice with random words" -msgstr "Εξάσκηση με τυχαίες λέξεις" +msgid "This is a tip. Now you press this button to return to the main menu." +msgstr "Αυτή είναι μια συμβουλή. Τώρα πατήστε αυτό το κουμπί για να επιστρέψετε στο κύριο μενού." #: ../data/klavaro.glade.h:11 -msgid "Becoming proficient practicing complete paragraphs exercises." -msgstr "Βελτίωση με εξάσκηση σε ασκήσεις ολόκληρων παραγράφων." +msgid "B_ack to menu" +msgstr "_Πίσω στο μενού" #: ../data/klavaro.glade.h:12 -msgid "Practice with complete texts" -msgstr "Εξάσκηση με πλήρη κείμενα" +msgid "The main menu of the application is very straightforward. Just select the type of exercise you wish to take. Do not worry about clicking any button on the screen. The buttons will never hurt you!" +msgstr "Το κύριο μενού της εφαρμογής είναι πολύ απλό. Απλά επιλέξτε τον τύπο της άσκησης που θέλετε να κάνετε. Μην ανησυχείτε για το αν θα πατήσετε οποιοδήποτε κουμπί στην οθόνη. Τα κουμπιά ποτέ δεν θα σας βλάψουν!" #: ../data/klavaro.glade.h:13 -msgid "" -"Keyboard layout for modules 1 and 2. Also used informatively in the " -"fluidness contest." -msgstr "" -"Διάταξη πληκτρολογίου για τις μονάδες 1 και 2. Επίσης χρησιμοποιείται για " -"τον διαγωνισμό ρευστότητας." +msgid "Also the controls have tips which will appear if you hover over them with your mouse. These tips can come in very handy. To see how these tips work, position your mouse over the button below, and without clicking, wait for the tip to appear..." +msgstr "Επίσης τα χειριστήρια έχουν συμβουλές που εμφανίζονται όταν σταθείτε πάνω τους με το ποντίκι. Αυτές οι συμβουλές μπορούν να είναι πολύ βολικές. Για να δείτε πως λειτουργούν αυτές οι συμβουλές, τοποθετήστε το δείκτη του ποντικιού σας πάνω από ένα κουμπί παρακάτω και χωρίς να κάνετε κλικ περιμένετε λίγο ώσπου να εμφανιστεί η συμβουλή..." #: ../data/klavaro.glade.h:14 -msgid "_Keyboard:" -msgstr "_Πληκτρολόγιο:" +msgid "Klavaro - Select file" +msgstr "Klavaro - Επιλογή αρχείου" #: ../data/klavaro.glade.h:15 -msgid "Language for modules 3 and 4." -msgstr "Γλώσσα για τις μονάδες 3 και 4." +msgid "_Cancel" +msgstr "_Άκυρο" #: ../data/klavaro.glade.h:16 -msgid "_Language:" -msgstr "_Γλώσσα:" +msgid "_Open" +msgstr "_Άνοιγμα" #: ../data/klavaro.glade.h:17 -msgid "Variant" -msgstr "Παραλλαγή" +msgid "Re_name:" +msgstr "_Μετονομασία:" #: ../data/klavaro.glade.h:18 -msgid "Klavaro" -msgstr "Klavaro" +msgid "Rename the selected item." +msgstr "Μετονομασία του επιλεγμένου αντικειμένου." #: ../data/klavaro.glade.h:19 -msgid "Country / Custom" -msgstr "Χώρα / Προσαρμογή" +msgid "Read a text file and add a copy of it here. The file must be encoded in UTF-8." +msgstr "Διάβασμα ενός αρχείου κειμένου και προσθήκη αντιγράφου του εδώ. Το αρχείο πρέπει να είναι κωδικοποιημένο σε UTF-8." #: ../data/klavaro.glade.h:20 -msgid "Your language here." -msgstr "Η γλώσσα σας εδώ" +msgid "_Open text file" +msgstr "_Άνοιγμα αρχείου κειμένου" #: ../data/klavaro.glade.h:21 -msgid "Speech" -msgstr "Ομιλία" +msgid "Paste text that was copied to the clipboard." +msgstr "Επικόλληση κειμένου που είχε αντιγραφεί στο πρόχειρο." #: ../data/klavaro.glade.h:22 -msgid "Little tip about this program." -msgstr "Μικρή συμβουλή σχετικά με αυτό το πρόγραμμα." +msgid "_Paste from clipboard" +msgstr "_Επικόλληση από το πρόχειρο" #: ../data/klavaro.glade.h:23 -msgid "_Help" -msgstr "_Βοήθεια" +msgid "Remove the selected item." +msgstr "Κατάργηση του επιλεγμένου αντικειμένου." #: ../data/klavaro.glade.h:24 -msgid "General information about the program." -msgstr "Γενικές πληροφορίες σχετικά με το πρόγραμμα." +msgid "_Remove copied file" +msgstr "_Κατάργηση αντιγραμμένου αρχείου" #: ../data/klavaro.glade.h:25 -msgid "_About..." -msgstr "_Σχετικά..." +msgid "Apply the selected item to create an exercise." +msgstr "Εφαρμογή του επιλεγμένου αντικειμένου για τη δημιουργία μια άσκησης." #: ../data/klavaro.glade.h:26 -msgid "Exit the application immediately." -msgstr "Έξοδος από την εφαρμογή άμεσα." +msgid "_Apply" +msgstr "_Εφαρμογή" #: ../data/klavaro.glade.h:27 -msgid "_Close" -msgstr "_Κλείσιμο" +msgid "Close this window." +msgstr "Κλείσιμο αυτού του παραθύρου." #: ../data/klavaro.glade.h:28 -msgid "Load other exercises/lessons" -msgstr "Φόρτωση άλλων ασκήσεων/μαθημάτων" +msgid "_Close" +msgstr "_Κλείσιμο" #: ../data/klavaro.glade.h:29 -msgid "_Other texts" -msgstr "_Άλλα κείμενα" +msgid "Country / Custom" +msgstr "Χώρα / Προσαρμογή" #: ../data/klavaro.glade.h:30 -msgid "_Lesson:" -msgstr "_Μάθημα:" +msgid "Variant" +msgstr "Παραλλαγή" #: ../data/klavaro.glade.h:31 -msgid "Edit the character set to be used in this lesson." -msgstr "" -"Επεξεργασία του συνόλου χαρακτήρων που θα χρησιμοποιηθούν σε αυτό το μάθημα." +msgid "Remove the selected custom layout." +msgstr "Κατάργηση της επιλεγμένης προσαρμοσμένης διάταξης." #: ../data/klavaro.glade.h:32 -msgid "Edit the character set to be used in lessons 44 through 50." -msgstr "" -"Επεξεργασία του συνόλου χαρακτήρων που θα χρησιμοποιηθούν στα μαθήματα 44 " -"έως 50." +msgid "_Remove" +msgstr "_Κατάργηση" #: ../data/klavaro.glade.h:33 -msgid "This is a specific exercise, adjusted to your error profile." -msgstr "" -"Αυτή είναι μία συγκεκριμένη άσκηση που προσαρμόστηκε στο προφίλ των λαθών " -"σας." +msgid "Toggles the shift effect on the keys. Alternates between the upper and lower characters of the keys." +msgstr "Εναλλάσσει την επίδραση του shift στα πλήκτρα. Εναλλάσσει μεταξύ κεφαλαίων και πεζών χαρακτήρων των πλήκτρων." -#: ../data/klavaro.glade.h:34 ../src/tutor.c:252 -msgid "Drag and drop text here to practice with it." -msgstr "Σύρετε και αφήστε κείμενο εδώ για να εξασκηθείτε με αυτό." +#: ../data/klavaro.glade.h:34 +msgid "SPACE BAR" +msgstr "ΔΙΑΣΤΗΜΑ" -#: ../data/klavaro.glade.h:35 -msgid "Press here to restart the exercise. Hotkey: [Ctrl R]" -msgstr "" -"Πατήστε εδώ για να επανεκκινήσετε την άσκηση. Πλήκτρο συντόμευσης [Ctrl R]" +#: ../data/klavaro.glade.h:35 ../src/keyboard.c:1630 +msgid "thumbs" +msgstr "αντίχειρες" #: ../data/klavaro.glade.h:36 -msgid "Show the virtual keyboard and the relation between fingers and keys." -msgstr "" -"Εμφάνιση του εικονικού πληκτρολογίου και της σχέσης μεταξύ δακτύλων και των " -"πλήκτρων." +msgid "Ctrl" +msgstr "Ctrl" #: ../data/klavaro.glade.h:37 -msgid "_Keyboard" -msgstr "_Πληκτρολόγιο" +msgid "Caps" +msgstr "Κεφαλαία" #: ../data/klavaro.glade.h:38 -msgid "Select the font to be used in the exercise window." -msgstr "" -"Επιλογή της γραμματοσειράς που θα χρησιμοποιηθεί στο παράθυρο της άσκησης." +msgid "S_ave as:" +msgstr "_Αποθήκευση ως:" #: ../data/klavaro.glade.h:39 -msgid "_Font" -msgstr "_Γραμματοσειρά" +msgid "Show previous screen." +msgstr "Εμφάνιση προηγούμενης οθόνης." #: ../data/klavaro.glade.h:40 -msgid "Keep this checked if you want to get those nice beeps." -msgstr "Κρατήστε αυτό επιλεγμένο αν θέλετε να έχετε αυτά τα ωραία μπιπ." +msgid "_Previous step" +msgstr "_Προηγούμενο βήμα" #: ../data/klavaro.glade.h:41 -msgid "_Beep" -msgstr "_Μπιπ" +msgid "Show next screen." +msgstr "Εμφάνιση επόμενης οθόνης." #: ../data/klavaro.glade.h:42 -msgid "Co_urse information" -msgstr "Πληροφορίες _μαθήματος" +msgid "_Next step" +msgstr "_Επόμενο βήμα" #: ../data/klavaro.glade.h:43 -msgid "Charts showing the learning progress along the exercises." -msgstr "" -"Διαγράμματα που δείχνουν την πρόοδο εκμάθησης κατά την εξέλιξη των ασκήσεων." +msgid "Return without any modification." +msgstr "Επιστροφή χωρίς καμία τροποποίηση." #: ../data/klavaro.glade.h:44 -msgid "_Progress" -msgstr "_Πρόοδος" +msgid "Save the current keyboard layout with the name specified above." +msgstr "Αποθήκευση της τρέχουσας διάταξης πληκτρολογίου με το όνομα που καθορίζεται παραπάνω." #: ../data/klavaro.glade.h:45 -msgid "Show local and external scores from other users." -msgstr "Εμφάνιση τοπικών και εξωτερικών βαθμολογιών από άλλους χρήστες." +msgid "_Save and use" +msgstr "_Αποθήκευση και χρήση" #: ../data/klavaro.glade.h:46 -msgid "_Top 10" -msgstr "_Κορυφαία 10" +msgid "If you like those beautiful hands, click here to close this window keeping them." +msgstr "Αν σας αρέσουν αυτά τα υπέροχα χέρια, κάντε κλικ εδώ για να κλείσετε αυτό το παράθυρο κρατώντας τα χέρια." #: ../data/klavaro.glade.h:47 -msgid "Return to the main menu." -msgstr "Επιστροφή στο κύριο μενού." +msgid "_Keep hands" +msgstr "_Διατήρηση χεριών" #: ../data/klavaro.glade.h:48 -msgid "B_ack to menu" -msgstr "_Πίσω στο μενού" +msgid "Klavaro - Main menu" +msgstr "Klavaro - Κύριο μενού" #: ../data/klavaro.glade.h:49 -msgid "Close this window." -msgstr "Κλείσιμο αυτού του παραθύρου." +msgid "Don't be shy about learning the basics!" +msgstr "Μην είστε ντροπαλοί στο να μάθετε τα βασικά!" #: ../data/klavaro.glade.h:50 -msgid "Font definition" -msgstr "Ορισμός γραμματοσειράς" +msgid "Learn how to type correctly" +msgstr "Μάθετε πως να πληκτρολογείτε σωστά" #: ../data/klavaro.glade.h:51 -msgid "Top 10" -msgstr "Κορυφαία 10" +msgid "Initial training for your fingers." +msgstr "Αρχική εκπαίδευση για τα δάχτυλα σας." #: ../data/klavaro.glade.h:52 -msgid "Show extra information" -msgstr "Εμφάνιση πρόσθετων πληροφοριών" +msgid "First steps with initial training" +msgstr "Πρώτα βήματα με την αρχική εκπαίδευση" #: ../data/klavaro.glade.h:53 -msgid "Hide extra information" -msgstr "Απόκρυψη πρόσθετων πληροφοριών" +msgid "Memorizing the keyboard practicing random keys exercises." +msgstr "Απομνημόνευση του πληκτρολογίου με ασκήσεις τυχαίων πλήκτρων." #: ../data/klavaro.glade.h:54 -msgid "Publish to the web your local scores." -msgstr "Δημοσίευση των τοπικών βαθμολογιών σας στον ιστό." +msgid "Practice with random keys" +msgstr "Εξάσκηση με τυχαία πλήκτρα" #: ../data/klavaro.glade.h:55 -msgid "_Participate" -msgstr "_Συμμετοχή" +msgid "Accelerating the touches practicing random words exercises." +msgstr "Επιτάχυνση των πατημάτων με ασκήσεις τυχαίων λέξεων." #: ../data/klavaro.glade.h:56 -msgid "Download from the web the most up to date ranking." -msgstr "Κατέβασμα από τον ιστό της πιο ενημερωμένης κατάταξης." +msgid "Practice with random words" +msgstr "Εξάσκηση με τυχαίες λέξεις" #: ../data/klavaro.glade.h:57 -msgid "_Update" -msgstr "_Ενημέρωση" +msgid "Becoming proficient practicing complete paragraphs exercises." +msgstr "Βελτίωση με εξάσκηση σε ασκήσεις ολόκληρων παραγράφων." #: ../data/klavaro.glade.h:58 -msgid "About 'Klavaro'" -msgstr "Σχετικά με το 'Klavaro'" +msgid "Practice with complete texts" +msgstr "Εξάσκηση με πλήρη κείμενα" + +#: ../data/klavaro.glade.h:59 +msgid "Keyboard layout for modules 1 and 2. Also used informatively in the fluidness contest." +msgstr "Διάταξη πληκτρολογίου για τις μονάδες 1 και 2. Επίσης χρησιμοποιείται για τον διαγωνισμό ρευστότητας." #: ../data/klavaro.glade.h:60 -msgid "Remember always: someone loves you!" -msgstr "Να θυμάστε πάντα: κάποιος σας αγαπάει!" +msgid "_Keyboard:" +msgstr "_Πληκτρολόγιο:" #: ../data/klavaro.glade.h:61 -msgid "Remove the selected custom layout." -msgstr "Κατάργηση της επιλεγμένης προσαρμοσμένης διάταξης." +msgid "Language for modules 3 and 4." +msgstr "Γλώσσα για τις μονάδες 3 και 4." #: ../data/klavaro.glade.h:62 -msgid "_Remove" -msgstr "_Κατάργηση" +msgid "_Language:" +msgstr "_Γλώσσα:" #: ../data/klavaro.glade.h:63 -msgid "" -"Toggles the shift effect on the keys. Alternates between the upper and lower " -"characters of the keys." -msgstr "" -"Εναλλάσσει την επίδραση του shift στα πλήκτρα. Εναλλάσσει μεταξύ κεφαλαίων " -"και πεζών χαρακτήρων των πλήκτρων." +msgid "Speech" +msgstr "Ομιλία" #: ../data/klavaro.glade.h:64 -msgid "SPACE BAR" -msgstr "ΔΙΑΣΤΗΜΑ" +msgid "Your language here." +msgstr "Η γλώσσα σας εδώ" -#: ../data/klavaro.glade.h:65 ../src/keyboard.c:1630 -msgid "thumbs" -msgstr "αντίχειρες" +#: ../data/klavaro.glade.h:65 +msgid "Little tip about this program." +msgstr "Μικρή συμβουλή σχετικά με αυτό το πρόγραμμα." #: ../data/klavaro.glade.h:66 -msgid "Ctrl" -msgstr "Ctrl" +msgid "_Help" +msgstr "_Βοήθεια" #: ../data/klavaro.glade.h:67 -msgid "Caps" -msgstr "Κεφαλαία" +msgid "General information about the program." +msgstr "Γενικές πληροφορίες σχετικά με το πρόγραμμα." #: ../data/klavaro.glade.h:68 -msgid "S_ave as:" -msgstr "_Αποθήκευση ως:" +msgid "_About..." +msgstr "_Σχετικά..." #: ../data/klavaro.glade.h:69 -msgid "Show previous screen." -msgstr "Εμφάνιση προηγούμενης οθόνης." +msgid "Exit the application immediately." +msgstr "Έξοδος από την εφαρμογή άμεσα." #: ../data/klavaro.glade.h:70 -msgid "_Previous step" -msgstr "_Προηγούμενο βήμα" +msgid "Klavaro - Progress" +msgstr "Klavaro - Πρόοδος" #: ../data/klavaro.glade.h:71 -msgid "Show next screen." -msgstr "Εμφάνιση επόμενης οθόνης." +msgid "_Lesson:" +msgstr "_Μάθημα:" #: ../data/klavaro.glade.h:72 -msgid "_Next step" -msgstr "_Επόμενο βήμα" +msgid "Value" +msgstr "Αξία" #: ../data/klavaro.glade.h:73 -msgid "Return without any modification." -msgstr "Επιστροφή χωρίς καμία τροποποίηση." +msgid "Close this window, returning to the exercise." +msgstr "Κλείσιμο αυτού του παραθύρου, επιστροφή στην άσκηση." #: ../data/klavaro.glade.h:74 -msgid "_Cancel" -msgstr "_Άκυρο" +msgid "Clear all the progress data, for every module." +msgstr "Καθαρισμός όλων των δεδομένων προόδου, για κάθε μονάδα." #: ../data/klavaro.glade.h:75 -msgid "Save the current keyboard layout with the name specified above." -msgstr "" -"Αποθήκευση της τρέχουσας διάταξης πληκτρολογίου με το όνομα που καθορίζεται " -"παραπάνω." +msgid "_Reset" +msgstr "_Κατάργηση" #: ../data/klavaro.glade.h:76 -msgid "_Save and use" -msgstr "_Αποθήκευση και χρήση" +msgid "Top 10" +msgstr "Κορυφαία 10" #: ../data/klavaro.glade.h:77 -msgid "" -"If you like those beautiful hands, click here to close this window keeping " -"them." -msgstr "" -"Αν σας αρέσουν αυτά τα υπέροχα χέρια, κάντε κλικ εδώ για να κλείσετε αυτό το " -"παράθυρο κρατώντας τα χέρια." +msgid "Show extra information." +msgstr "Εμφάνιση πρόσθετων πληροφοριών." #: ../data/klavaro.glade.h:78 -msgid "_Keep hands" -msgstr "_Διατήρηση χεριών" +msgid "Hide extra information." +msgstr "Απόκρυψη πρόσθετων πληροφοριών." #: ../data/klavaro.glade.h:79 -msgid "Change language" -msgstr "Αλλαγή γλώσσας" +msgid "Publish to the web your local scores." +msgstr "Δημοσίευση των τοπικών βαθμολογιών σας στον ιστό." #: ../data/klavaro.glade.h:80 -msgid "Attention!" -msgstr "Προσοχή!" +msgid "_Participate" +msgstr "_Συμμετοχή" #: ../data/klavaro.glade.h:81 -msgid "Do you confirm?" -msgstr "Το επιβεβαιώνετε;" +msgid "Download from the web the most up to date ranking." +msgstr "Κατέβασμα από τον ιστό της πιο ενημερωμένης κατάταξης." #: ../data/klavaro.glade.h:82 -msgid "_No" -msgstr "_Όχι" +msgid "_Update" +msgstr "_Ενημέρωση" #: ../data/klavaro.glade.h:83 -msgid "_Yes" -msgstr "_Ναι" +msgid "Load other exercises/lessons" +msgstr "Φόρτωση άλλων ασκήσεων/μαθημάτων" #: ../data/klavaro.glade.h:84 -msgid "Re_name:" -msgstr "_Μετονομασία:" +msgid "_Other texts" +msgstr "_Άλλα κείμενα" #: ../data/klavaro.glade.h:85 -msgid "Rename the selected item." -msgstr "Μετονομασία του επιλεγμένου αντικειμένου." +msgid "Edit the character set to be used in this lesson." +msgstr "Επεξεργασία του συνόλου χαρακτήρων που θα χρησιμοποιηθούν σε αυτό το μάθημα." #: ../data/klavaro.glade.h:86 -msgid "" -"Read a text file and add a copy of it here. The file must be encoded in " -"UTF-8." -msgstr "" -"Διάβασμα ενός αρχείου κειμένου και προσθήκη αντιγράφου του εδώ. Το αρχείο " -"πρέπει να είναι κωδικοποιημένο σε UTF-8." +msgid "This is a specific exercise, adjusted to your error profile." +msgstr "Αυτή είναι μία συγκεκριμένη άσκηση που προσαρμόστηκε στο προφίλ των λαθών σας." #: ../data/klavaro.glade.h:87 -msgid "_Open text file" -msgstr "_Άνοιγμα αρχείου κειμένου" +msgid "Edit the character set to be used in lessons after 43: they are customizable!" +msgstr "Επεξεργασία του συνόλου χαρακτήρων που θα χρησιμοποιηθούν στα μαθήματα μετά το 43: είναι προσαρμόσιμα!" -#: ../data/klavaro.glade.h:88 -msgid "Paste text that was copied to the clipboard." -msgstr "Επικόλληση κειμένου που είχε αντιγραφεί στο πρόχειρο." +#: ../data/klavaro.glade.h:88 ../src/tutor.c:376 +msgid "Drag and drop text here to practice with it." +msgstr "Σύρετε και αφήστε κείμενο εδώ για να εξασκηθείτε με αυτό." #: ../data/klavaro.glade.h:89 -msgid "_Paste from clipboard" -msgstr "_Επικόλληση από το πρόχειρο" +msgid "Press here to restart the exercise. Hotkey: [Ctrl-R]" +msgstr "Πατήστε εδώ για να επανεκκινήσετε την άσκηση. Πλήκτρο συντόμευσης [Ctrl-R]" #: ../data/klavaro.glade.h:90 -msgid "Remove the selected item." -msgstr "Κατάργηση του επιλεγμένου αντικειμένου." +msgid "Show the virtual keyboard and the relation between fingers and keys." +msgstr "Εμφάνιση του εικονικού πληκτρολογίου και της σχέσης μεταξύ δακτύλων και των πλήκτρων." #: ../data/klavaro.glade.h:91 -msgid "_Remove copied file" -msgstr "_Κατάργηση αντιγραμμένου αρχείου" +msgid "_Keyboard" +msgstr "_Πληκτρολόγιο" #: ../data/klavaro.glade.h:92 -msgid "Apply the selected item to create an exercise." -msgstr "Εφαρμογή του επιλεγμένου αντικειμένου για τη δημιουργία μια άσκησης." +msgid "Select the font to be used in the exercise window." +msgstr "Επιλογή της γραμματοσειράς που θα χρησιμοποιηθεί στο παράθυρο της άσκησης." #: ../data/klavaro.glade.h:93 -msgid "_Apply" -msgstr "_Εφαρμογή" +msgid "Font definition" +msgstr "Ορισμός γραμματοσειράς" #: ../data/klavaro.glade.h:94 -msgid "Klavaro - Progress" -msgstr "Klavaro - Πρόοδος" +msgid "Keep this checked if you want to get those nice beeps." +msgstr "Κρατήστε αυτό επιλεγμένο αν θέλετε να έχετε αυτά τα ωραία μπιπ." #: ../data/klavaro.glade.h:95 -msgid "Value" -msgstr "Αξία" +msgid "_Beep" +msgstr "_Μπιπ" #: ../data/klavaro.glade.h:96 -msgid "Clear all the progress data, for every module." -msgstr "Καθαρισμός όλων των δεδομένων προόδου, για κάθε μονάδα." +msgid "Co_urse information" +msgstr "Πληροφορίες _μαθήματος" #: ../data/klavaro.glade.h:97 -msgid "_Reset" -msgstr "_Κατάργηση" +msgid "Charts showing the learning progress along the exercises." +msgstr "Διαγράμματα που δείχνουν την πρόοδο εκμάθησης κατά την εξέλιξη των ασκήσεων." #: ../data/klavaro.glade.h:98 -msgid "Close this window, returning to the exercise." -msgstr "Κλείσιμο αυτού του παραθύρου, επιστροφή στην άσκηση." +msgid "_Progress" +msgstr "_Πρόοδος" #: ../data/klavaro.glade.h:99 -msgid "Klavaro - Select file" -msgstr "Klavaro - Επιλογή αρχείου" +msgid "Return to the main menu." +msgstr "Επιστροφή στο κύριο μενού." #: ../data/klavaro.glade.h:100 -msgid "_Open" -msgstr "_Άνοιγμα" +msgid "Show local and external scores from other users." +msgstr "Εμφάνιση τοπικών και εξωτερικών βαθμολογιών από άλλους χρήστες." #: ../data/klavaro.glade.h:101 -msgid "Help?" -msgstr "Βοήθεια;" +msgid "_Top 10" +msgstr "_Κορυφαία 10" -#: ../data/klavaro.glade.h:102 -msgid "" -"The main menu of the application is very straightforward. Just select the " -"type of exercise you wish to take. Do not worry about clicking any button on " -"the screen. The buttons will never hurt you!" -msgstr "" -"Το κύριο μενού της εφαρμογής είναι πολύ απλό. Απλά επιλέξτε τον τύπο της " -"άσκησης που θέλετε να κάνετε. Μην ανησυχείτε για το αν θα πατήσετε " -"οποιοδήποτε κουμπί στην οθόνη. Τα κουμπιά ποτέ δεν θα σας βλάψουν!" - -#: ../data/klavaro.glade.h:103 -msgid "" -"Also the controls have tips which will appear if you hover over them with " -"your mouse. These tips can come in very handy. To see how these tips work, " -"position your mouse over the button below, and without clicking, wait for " -"the tip to appear..." -msgstr "" -"Επίσης τα χειριστήρια έχουν συμβουλές που εμφανίζονται όταν σταθείτε πάνω " -"τους με το ποντίκι. Αυτές οι συμβουλές μπορούν να είναι πολύ βολικές. Για να " -"δείτε πως λειτουργούν αυτές οι συμβουλές, τοποθετήστε το δείκτη του " -"ποντικιού σας πάνω από ένα κουμπί παρακάτω και χωρίς να κάνετε κλικ " -"περιμένετε λίγο ώσπου να εμφανιστεί η συμβουλή..." +#: ../data/klavaro.desktop.in.h:1 +msgid "A very flexible and efficient touch typing tutor." +msgstr "Ένα πολύ ευέλικτο και αποτελεσματικό εκπαιδευτικό λογισμικό δακτυλογραφίας" + +#. Translators: these are keywords related to the program. CAI above means Computer Aided Instruction. Feel free to add and/or change the keywords in your language. +#: ../data/klavaro.desktop.in.h:3 +msgid "keyboard;typing;tutor;CAI" +msgstr "πληκτρολόγιο;πληκτρολόγηση;εκπαίδευση;keyboard;typing;tutor;CAI" -#: ../data/klavaro.glade.h:104 -msgid "This is a tip. Now you press this button to return to the main menu." -msgstr "" -"Αυτή είναι μια συμβουλή. Τώρα πατήστε αυτό το κουμπί για να επιστρέψετε στο " -"κύριο μενού." - -#: ../src/main.c:314 +#: ../src/main.c:242 msgid "(Custom)" msgstr "(Προσαρμογή)" -#: ../src/main.c:315 +#: ../src/main.c:243 msgid "(Edit custom)" msgstr "(Επεξεργασία προσαρμογής)" -#: ../src/main.c:316 +#: ../src/main.c:244 msgid "(Default)" msgstr "(Προκαθορισμένο)" -#: ../src/main.c:393 +#: ../src/main.c:321 #, c-format msgid "Dictation mode (depends on this speech synthesizer: %s)" msgid_plural "Dictation mode (depends on one of these speech synthesizers: %s)" msgstr[0] "Κατάσταση υπαγόρευσης (εξαρτάται από τον συνθετητή ομιλίας: %s)" -msgstr[1] "" -"Κατάσταση υπαγόρευσης (εξαρτάται από ένα από αυτούς τους συνθετητές ομιλίας: " -"%s)" - -#. Set main labels (for translation) -#. -#: ../src/main.c:435 ../src/keyboard.c:1291 +msgstr[1] "Κατάσταση υπαγόρευσης (εξαρτάται από ένα από αυτούς τους συνθετητές ομιλίας: %s)" + +#: ../src/main.c:364 ../src/keyboard.c:1291 msgid "Introduction" msgstr "Εισαγωγή" -#: ../src/main.c:438 ../src/top10.c:109 +#: ../src/main.c:367 ../src/top10.c:109 msgid "Basic course" msgstr "Βασική σειρά μαθημάτων" -#: ../src/main.c:441 ../src/top10.c:112 +#: ../src/main.c:370 ../src/top10.c:112 msgid "Adaptability" msgstr "Προσαρμοστικότητα" -#: ../src/main.c:444 ../src/callbacks.c:1310 ../src/top10.c:89 +#: ../src/main.c:373 ../src/callbacks.c:1226 ../src/top10.c:89 #: ../src/top10.c:115 msgid "Speed" msgstr "Ταχύτητα" -#: ../src/main.c:447 ../src/callbacks.c:1333 ../src/top10.c:91 +#: ../src/main.c:376 ../src/callbacks.c:1249 ../src/top10.c:91 #: ../src/top10.c:118 msgid "Fluidity" msgstr "Ρευστότητα" -#: ../src/callbacks.c:468 ../src/tutor.c:391 +#: ../src/callbacks.c:407 ../src/tutor.c:515 msgid "Keys:" msgstr "Πλήκτρα:" -#: ../src/callbacks.c:858 ../src/callbacks.c:874 +#: ../src/callbacks.c:774 ../src/callbacks.c:790 msgid "Connecting..." msgstr "Σύνδεση..." -#: ../src/callbacks.c:1145 +#: ../src/callbacks.c:1061 msgid "Overwrite user layout" msgstr "Επικάλυψη διάταξης χρήστη" -#: ../src/callbacks.c:1147 +#: ../src/callbacks.c:1063 msgid "This will OVERWRITE an existent keyboard layout." msgstr "Αυτό θα ΕΠΙΚΑΛΥΨΕΙ την υπάρχουσα διάταξη πληκτρολογίου." -#: ../src/callbacks.c:1154 +#: ../src/callbacks.c:1070 msgid "Remove user layout" msgstr "Κατάργηση διάταξης χρήστη" -#: ../src/callbacks.c:1156 +#: ../src/callbacks.c:1072 msgid "This will REMOVE an existent keyboard layout." msgstr "Αυτό θα ΚΑΤΑΡΓΗΣΕΙ την υπάρχουσα διάταξη πληκτρολογίου." -#: ../src/callbacks.c:1163 +#: ../src/callbacks.c:1079 msgid "Reset progress data" msgstr "Κατάργηση των δεδομένων προόδου" -#: ../src/callbacks.c:1164 +#: ../src/callbacks.c:1080 msgid "This will DELETE all the progress data shown in the charts." -msgstr "" -"Αυτό τα ΔΙΑΓΡΑΨΕΙ όλα τα δεδομένα προόδου που εμφανίζονται στα διαγράμματα." +msgstr "Αυτό τα ΔΙΑΓΡΑΨΕΙ όλα τα δεδομένα προόδου που εμφανίζονται στα διαγράμματα." -#: ../src/callbacks.c:1307 ../src/top10.c:87 +#: ../src/callbacks.c:1223 ../src/top10.c:87 msgid "Accuracy" msgstr "Ακρίβεια" -#: ../src/callbacks.c:1310 ../src/tutor.c:1160 +#: ../src/callbacks.c:1226 ../src/tutor.c:1288 msgid "(WPM)" msgstr "(ΛΑΛ)" -#: ../src/callbacks.c:1321 +#: ../src/callbacks.c:1237 msgid "Errors" msgstr "Σφάλματα" -#: ../src/callbacks.c:1324 +#: ../src/callbacks.c:1240 msgid "Touch times (s)" msgstr "Αριθμός πατημάτων" -#: ../src/callbacks.c:1336 ../src/tutor.c:1187 ../src/top10.c:69 +#: ../src/callbacks.c:1252 ../src/tutor.c:1315 ../src/top10.c:69 msgid "Score" msgstr "Βαθμολογία" #. Translators: your language code (first 2 letters of your po-file) -#: ../src/translation.c:423 ../src/translation.c:489 ../src/tutor.c:1597 +#: ../src/translation.c:485 ../src/tutor.c:1725 msgid "en" msgstr "el" +#: ../src/translation.c:572 +msgid "The basic course focuses on having you read the characters presented to you on screen and typing the corresponding keys. Remember to keep your hands correctly oriented on the home row of the keyboard at all times (see introduction on main menu)." +msgstr "Η βασική σειρά μαθημάτων εστιάζει στο να σας βάλει να διαβάζετε τους χαρακτήρες που σας παρουσιάζονται στην οθόνη και να πληκτρολογείτε τα αντίστοιχα πλήκτρα. Να θυμάστε να κρατάτε πάντα τα χέρια σας σωστά τοποθετημένα στην βασική γραμμή του πληκτρολογίου (δείτε την εισαγωγή στο κύριο μενού)." + #: ../src/translation.c:576 -msgid "" -"The basic course focuses on having you read the characters presented to you " -"on screen and typing the corresponding keys. Remember to keep your hands " -"correctly oriented on the home row of the keyboard at all times (see " -"introduction on main menu)." -msgstr "" -"Η βασική σειρά μαθημάτων εστιάζει στο να σας βάλει να διαβάζετε τους " -"χαρακτήρες που σας παρουσιάζονται στην οθόνη και να πληκτρολογείτε τα " -"αντίστοιχα πλήκτρα. Να θυμάστε να κρατάτε πάντα τα χέρια σας σωστά " -"τοποθετημένα στην βασική γραμμή του πληκτρολογίου (δείτε την εισαγωγή στο " -"κύριο μενού)." - -#: ../src/translation.c:580 -msgid "" -"The key set used in each series will be shown in the above message line. The " -"[Space], [Shift] and [Enter] keys may not show up there but are used very " -"often." -msgstr "" -"Στην επάνω γραμμή μηνύματος θα εμφανίζεται το σύνολο των πλήκτρων που " -"χρησιμοποιούνται σε κάθε ομάδα. Τα πλήκτρα [Διάστημα], [Shift] και [Enter] " -"μπορεί να μην εμφανίζονται αλλά χρησιμοποιούνται πολύ συχνά." +msgid "The key set used in each series will be shown in the above message line. The [Space], [Shift] and [Enter] keys may not show up there but are used very often." +msgstr "Στην επάνω γραμμή μηνύματος θα εμφανίζεται το σύνολο των πλήκτρων που χρησιμοποιούνται σε κάθε ομάδα. Τα πλήκτρα [Διάστημα], [Shift] και [Enter] μπορεί να μην εμφανίζονται αλλά χρησιμοποιούνται πολύ συχνά." + +#: ../src/translation.c:579 +msgid "The message line below follows and echoes your key presses. If required, it changes and displays instructions for actions required from you." +msgstr "Στην κάτω γραμμή μηνύματος εμφανίζονται τα πατήματα των πλήκτρων σας. Επίσης, αν απαιτείται, προβάλλονται οδηγίες για ενέργειες που χρειάζονται από εσάς." #: ../src/translation.c:583 -msgid "" -"The message line below follows and echoes your key presses. If required, it " -"changes and displays instructions for actions required from you." -msgstr "" -"Στην κάτω γραμμή μηνύματος εμφανίζονται τα πατήματα των πλήκτρων σας. " -"Επίσης, αν απαιτείται, προβάλλονται οδηγίες για ενέργειες που χρειάζονται " -"από εσάς." - -#: ../src/translation.c:587 -msgid "" -"Here you may practice and improve your memorization of all keys. There will " -"be sentences presented with nonsense words which mix some numbers and " -"symbols." -msgstr "" -"Εδώ μπορείτε να εξασκηθείτε και να βελτιωθείτε στην απομνημόνευση όλων των " -"πλήκτρων. Θα παρουσιαστούν προτάσεις με λέξεις χωρίς νόημα που αναμιγνύουν " -"μερικούς αριθμούς και σύμβολα." +msgid "Here you may practice and improve your memorization of all keys. There will be sentences presented with nonsense words which mix some numbers and symbols." +msgstr "Εδώ μπορείτε να εξασκηθείτε και να βελτιωθείτε στην απομνημόνευση όλων των πλήκτρων. Θα παρουσιαστούν προτάσεις με λέξεις χωρίς νόημα που αναμιγνύουν μερικούς αριθμούς και σύμβολα." + +#: ../src/translation.c:586 +msgid "In order to keep the lesson contents language and keyboard independent, accented letter combinations will probably not appear. For real word sentences, please use the fourth option of the main menu (about fluidness)." +msgstr "Για να διατηρηθούν τα περιεχόμενα του μαθήματος ανεξάρτητα από τη γλώσσα και το πληκτρολόγιο, οι συνδυασμοί τονισμένων χαρακτήρων πιθανά δεν θα εμφανίζονται. Για προτάσεις του πραγματικού κόσμου, παρακαλούμε χρησιμοποιήστε την τέταρτη επιλογή του κυρίως μενού (σχετικά με την ρευστότητα)." #: ../src/translation.c:590 -msgid "" -"In order to keep the lesson contents language and keyboard independent, " -"accented letter combinations will probably not appear. For real word " -"sentences, please use the fourth option of the main menu (about fluidness)." -msgstr "" -"Για να διατηρηθούν τα περιεχόμενα του μαθήματος ανεξάρτητα από τη γλώσσα και " -"το πληκτρολόγιο, οι συνδυασμοί τονισμένων χαρακτήρων πιθανά δεν θα " -"εμφανίζονται. Για προτάσεις του πραγματικού κόσμου, παρακαλούμε " -"χρησιμοποιήστε την τέταρτη επιλογή του κυρίως μενού (σχετικά με την " -"ρευστότητα)." +msgid "After each exercise there will be a brief statistics panel reviewing your performance along with some relevant comments." +msgstr "Μετά από κάθε άσκηση θα υπάρχει ένας σύντομος πίνακας στατιστικών με κριτική της απόδοσης σας μαζί με κάποια σχετικά σχόλια." #: ../src/translation.c:594 -msgid "" -"After each exercise there will be a brief statistics panel reviewing your " -"performance along with some relevant comments." -msgstr "" -"Μετά από κάθε άσκηση θα υπάρχει ένας σύντομος πίνακας στατιστικών με κριτική " -"της απόδοσης σας μαζί με κάποια σχετικά σχόλια." +msgid "This exercise is very similar to the second one, for adaptability. The difference is that here you'll type real words." +msgstr "Αυτή η άσκηση είναι πολύ όμοια με την δεύτερη, για προσαρμοστικότητα. Η διαφορά είναι ότι εδώ θα πληκτρολογείτε πραγματικές λέξεις." -#: ../src/translation.c:598 -msgid "" -"This exercise is very similar to the second one, for adaptability. The " -"difference is that here you'll type real words." -msgstr "" -"Αυτή η άσκηση είναι πολύ όμοια με την δεύτερη, για προσαρμοστικότητα. Η " -"διαφορά είναι ότι εδώ θα πληκτρολογείτε πραγματικές λέξεις." +#: ../src/translation.c:597 +msgid "The default language is the actual one of the interface. But you may select any other texts with words you would like to use. Press the 'Other' option above and add files containing those texts." +msgstr "Η προκαθορισμένη γλώσσα είναι η γλώσσα της διεπαφής. Αλλά μπορείτε να επιλέξετε οποιαδήποτε άλλα κείμενα με λέξεις που θέλετε να χρησιμοποιηθούν. Πατήστε την επιλογή 'Άλλα' πάνω και προσθέστε τα αρχεία που περιέχουν αυτά τα κείμενα." #: ../src/translation.c:601 -msgid "" -"The default language is the actual one of the interface. But you may select " -"any other texts with words you would like to use. Press the 'Other' option " -"above and add files containing those texts." -msgstr "" -"Η προκαθορισμένη γλώσσα είναι η γλώσσα της διεπαφής. Αλλά μπορείτε να " -"επιλέξετε οποιαδήποτε άλλα κείμενα με λέξεις που θέλετε να χρησιμοποιηθούν. " -"Πατήστε την επιλογή 'Άλλα' πάνω και προσθέστε τα αρχεία που περιέχουν αυτά " -"τα κείμενα." +msgid "With this exercise the focus is on speed. So, you are supposed to type really fast and I will only flatter you when you deserve it!" +msgstr "Με αυτή την άσκηση η εστίαση είναι στην ταχύτητα. Έτσι, θα προσπαθήσετε να πληκτρολογείτε πραγματικά γρήγορα και θα επαινείστε όταν το αξίζετε!" #: ../src/translation.c:605 -msgid "" -"With this exercise the focus is on speed. So, you are supposed to type " -"really fast and I will only flatter you when you deserve it!" -msgstr "" -"Με αυτή την άσκηση η εστίαση είναι στην ταχύτητα. Έτσι, θα προσπαθήσετε να " -"πληκτρολογείτε πραγματικά γρήγορα και θα επαινείστε όταν το αξίζετε!" +msgid "We will now use complete sentences and paragraphs which make logical sense. This may distract you while you type if you try to understand what you are entering. The previous exercises were aimed at getting you to type without interpreting and analyzing the content." +msgstr "Τώρα θα χρησιμοποιηθούν ολόκληρες προτάσεις και παράγραφοι που έχουν λογικό νόημα. Αυτό μπορεί να σας αποσπάσει την προσοχή καθώς πληκτρολογείτε, αν προσπαθήσετε να καταλάβετε τι εισάγετε. Οι προηγούμενες ασκήσεις στόχευαν στο να σας κάνουν να πληκτρολογείτε χωρίς να μεταφράζετε και να αναλύετε το περιεχόμενο." #: ../src/translation.c:609 -msgid "" -"We will now use complete sentences and paragraphs which make logical sense. " -"This may distract you while you type if you try to understand what you are " -"entering. The previous exercises were aimed at getting you to type without " -"interpreting and analyzing the content." -msgstr "" -"Τώρα θα χρησιμοποιηθούν ολόκληρες προτάσεις και παράγραφοι που έχουν λογικό " -"νόημα. Αυτό μπορεί να σας αποσπάσει την προσοχή καθώς πληκτρολογείτε, αν " -"προσπαθήσετε να καταλάβετε τι εισάγετε. Οι προηγούμενες ασκήσεις στόχευαν " -"στο να σας κάνουν να πληκτρολογείτε χωρίς να μεταφράζετε και να αναλύετε το " -"περιεχόμενο." +msgid "We do not mean to imply that the typists must behave like a robot, without understanding what they type. We do aim to develop the skill of typing, making it an automatic reflex akin to the acts of walking, talking, etc. After reaching this goal, the act of typing will become automatic and require little concentration. Then you will be able to pay attention to the real meaning of the text." +msgstr "Δεν εννοούμε ότι οι δακτυλογράφοι πρέπει να συμπεριφέρονται σαν ρομπότ, χωρίς κατανόηση του τι πληκτρολογούν. Στοχεύουμε να αναπτύξουμε την ικανότητα της πληκτρολόγησης δημιουργώντας ένα αυτόματο ανακλαστικό παρόμοιο με τη βάδιση, ομιλία κλπ. Μετά την επίτευξη αυτού του στόχου, η δράση της πληκτρολόγησης θα γίνει αυτόματη και θα χρειάζεται λίγη συγκέντρωση. Τότε θα μπορείτε να δώσετε σημασία στο πραγματικό νόημα του κειμένου." #: ../src/translation.c:613 -msgid "" -"We do not mean to imply that the typists must behave like a robot, without " -"understanding what they type. We do aim to develop the skill of typing, " -"making it an automatic reflex akin to the acts of walking, talking, etc. " -"After reaching this goal, the act of typing will become automatic and " -"require little concentration. Then you will be able to pay attention to the " -"real meaning of the text." -msgstr "" -"Δεν εννοούμε ότι οι δακτυλογράφοι πρέπει να συμπεριφέρονται σαν ρομπότ, " -"χωρίς κατανόηση του τι πληκτρολογούν. Στοχεύουμε να αναπτύξουμε την " -"ικανότητα της πληκτρολόγησης δημιουργώντας ένα αυτόματο ανακλαστικό παρόμοιο " -"με τη βάδιση, ομιλία κλπ. Μετά την επίτευξη αυτού του στόχου, η δράση της " -"πληκτρολόγησης θα γίνει αυτόματη και θα χρειάζεται λίγη συγκέντρωση. Τότε θα " -"μπορείτε να δώσετε σημασία στο πραγματικό νόημα του κειμένου." - -#. English typo: minimun -> minimum -#: ../src/translation.c:618 -msgid "" -"These exercises are longer. Each exercise consists of three paragraphs and " -"the emphasis is placed on correctness and rhythm, with a minimum speed " -"requirement. Here you will be required to use the backspace key to correct " -"any mistakes. In other words, only input without error will be accepted." -msgstr "" -"Αυτές οι ασκήσεις είναι μεγαλύτερες. Κάθε άσκηση αποτελείται από τρεις " -"παραγράφους και η έμφαση είναι στην ακρίβεια και στον ρυθμό, με ελάχιστη " -"απαίτηση ταχύτητας. Εδώ θα χρειαστεί να χρησιμοποιήσετε το πλήκτρο backspace " -"για να διορθώσετε οποιαδήποτε λάθη. Με άλλα λόγια, θα είναι αποδεκτή μόνο " -"είσοδος χωρίς σφάλματα." +msgid "These exercises are longer. Each exercise consists of three paragraphs and the emphasis is placed on correctness and rhythm, with a minimum speed requirement. Here you will be required to use the backspace key to correct any mistakes. In other words, only input without error will be accepted." +msgstr "Αυτές οι ασκήσεις είναι μεγαλύτερες. Κάθε άσκηση αποτελείται από τρεις παραγράφους και η έμφαση είναι στην ακρίβεια και στον ρυθμό, με ελάχιστη απαίτηση ταχύτητας. Εδώ θα χρειαστεί να χρησιμοποιήσετε το πλήκτρο backspace για να διορθώσετε οποιαδήποτε λάθη. Με άλλα λόγια, θα είναι αποδεκτή μόνο είσοδος χωρίς σφάλματα." -#. English typo: recomendations -> recommendations #: ../src/keyboard.c:1094 -msgid "" -"Correct positioning of the hands and fingers is very important to efficient " -"typing. You will learn faster and type better if you follow the next " -"recommendations." -msgstr "" -"Η σωστή τοποθέτηση των χεριών και των δακτύλων είναι πολύ σημαντική για " -"αποτελεσματική πληκτρολόγηση. Θα μάθετε γρηγορότερα και θα πληκτρολογείτε " -"καλύτερα αν ακολουθήσετε τις ακόλουθες συστάσεις." +msgid "Correct positioning of the hands and fingers is very important to efficient typing. You will learn faster and type better if you follow the next recommendations." +msgstr "Η σωστή τοποθέτηση των χεριών και των δακτύλων είναι πολύ σημαντική για αποτελεσματική πληκτρολόγηση. Θα μάθετε γρηγορότερα και θα πληκτρολογείτε καλύτερα αν ακολουθήσετε τις ακόλουθες συστάσεις." #: ../src/keyboard.c:1097 -msgid "" -"The index-finger tips rest over each of the two keys which have a small " -"raised mark, in the center of the keyboard." -msgstr "" -"Οι άκρες των δεικτών στέκονται στο κέντρο του πληκτρολογίου, πάνω από τα δύο " -"πλήκτρα που έχουν ένα μικρό εξόγκωμα," +msgid "The index-finger tips rest over each of the two keys which have a small raised mark, in the center of the keyboard." +msgstr "Οι άκρες των δεικτών στέκονται στο κέντρο του πληκτρολογίου, πάνω από τα δύο πλήκτρα που έχουν ένα μικρό εξόγκωμα," #: ../src/keyboard.c:1100 -msgid "" -"These marks function as 'tactile hooks' for your fingers to remain at the " -"correct position. This way, with a little experience, you will not need to " -"look at the keyboard to see if your fingers are properly positioned." -msgstr "" -"Αυτά τα εξογκώματα λειτουργούν ως αναγνώριση αφής ώστε τα δάχτυλα σας να " -"παραμένουν στην σωστή θέση. Έτσι δεν θα χρειάζεται να κοιτάζετε στο " -"πληκτρολόγιο για να δείτε αν τα δάχτυλα σας είναι τοποθετημένα σωστά." +msgid "These marks function as 'tactile hooks' for your fingers to remain at the correct position. This way, with a little experience, you will not need to look at the keyboard to see if your fingers are properly positioned." +msgstr "Αυτά τα εξογκώματα λειτουργούν ως αναγνώριση αφής ώστε τα δάχτυλα σας να παραμένουν στην σωστή θέση. Έτσι δεν θα χρειάζεται να κοιτάζετε στο πληκτρολόγιο για να δείτε αν τα δάχτυλα σας είναι τοποθετημένα σωστά." #: ../src/keyboard.c:1104 -msgid "" -"The tips of the other fingers lie naturally beside the index ones, over the " -"keys on the same row of the keyboard." -msgstr "" -"Οι άκρες των υπόλοιπων δακτύλων τοποθετούνται δίπλα στους δείκτες, πάνω στα " -"πλήκτρα της ίδιας σειράς του πληκτρολογίου." +msgid "The tips of the other fingers lie naturally beside the index ones, over the keys on the same row of the keyboard." +msgstr "Οι άκρες των υπόλοιπων δακτύλων τοποθετούνται δίπλα στους δείκτες, πάνω στα πλήκτρα της ίδιας σειράς του πληκτρολογίου." #: ../src/keyboard.c:1107 msgid "The outside edges of your thumbs rest over the space bar." msgstr "Τα εξωτερικά άκρα των αντιχείρων σας στέκονται πάνω από το διάστημα." #: ../src/keyboard.c:1109 -msgid "" -"The part of the hands closest to the wrist (the base) rest over the table, " -"outside the keyboard. Without this kind of support the arms would quickly " -"tire." -msgstr "" -"Το τμήμα του χεριού που είναι πλησιέστερα στον καρπό (η βάση) βρίσκεται πάνω " -"από το τραπέζι, εκτός πληκτρολογίου. Χωρίς αυτό το είδος υποστήριξης τα " -"χέρια θα κουράζονταν γρήγορα." +msgid "The part of the hands closest to the wrist (the base) rest over the table, outside the keyboard. Without this kind of support the arms would quickly tire." +msgstr "Το τμήμα του χεριού που είναι πλησιέστερα στον καρπό (η βάση) βρίσκεται πάνω από το τραπέζι, εκτός πληκτρολογίου. Χωρίς αυτό το είδος υποστήριξης τα χέρια θα κουράζονταν γρήγορα." #: ../src/keyboard.c:1112 -msgid "" -"This is referred to as the home position for the hands. From it the fingers " -"move all over the keyboard, reaching all the keys as naturally and quickly " -"as possible. To reach this goal one uses a specific relation between each " -"key and finger. This relation will be learned gradually as you complete the " -"basic course." -msgstr "" -"Αυτή είναι η λεγόμενη αρχική θέση των χεριών. Από αυτή τα δάχτυλα κινούνται " -"σε όλο το πληκτρολόγιο, φτάνοντας όλα τα πλήκτρα όσο πιο απλά και γρήγορα " -"είναι δυνατό. Για να επιτευχθεί αυτός ο στόχος κάποιος πρέπει να " -"χρησιμοποιήσει ειδική σχέση μεταξύ κάθε πλήκτρου και δαχτύλου. Αυτή η σχέση " -"θα επιτευχθεί σταδιακά καθώς θα ολοκληρώνετε την βασική σειρά μαθημάτων." +msgid "This is referred to as the home position for the hands. From it the fingers move all over the keyboard, reaching all the keys as naturally and quickly as possible. To reach this goal one uses a specific relation between each key and finger. This relation will be learned gradually as you complete the basic course." +msgstr "Αυτή είναι η λεγόμενη αρχική θέση των χεριών. Από αυτή τα δάχτυλα κινούνται σε όλο το πληκτρολόγιο, φτάνοντας όλα τα πλήκτρα όσο πιο απλά και γρήγορα είναι δυνατό. Για να επιτευχθεί αυτός ο στόχος κάποιος πρέπει να χρησιμοποιήσει ειδική σχέση μεταξύ κάθε πλήκτρου και δαχτύλου. Αυτή η σχέση θα επιτευχθεί σταδιακά καθώς θα ολοκληρώνετε την βασική σειρά μαθημάτων." #: ../src/keyboard.c:1118 -msgid "" -"When learning the relation between fingers and keys, it is very important " -"that you only move the finger which must press the key and allow all other " -"fingers to remain in the home position." -msgstr "" -"Όταν μαθαίνετε την σχέση μεταξύ των δαχτύλων και των πλήκτρων, είναι πολύ " -"σημαντικό να κινείτε μόνο το δάχτυλο που πρέπει να πατήσει το πλήκτρο, και " -"να αφήνετε όλα τα άλλα δάχτυλα να παραμένουν στην αρχική τους θέση." +msgid "When learning the relation between fingers and keys, it is very important that you only move the finger which must press the key and allow all other fingers to remain in the home position." +msgstr "Όταν μαθαίνετε την σχέση μεταξύ των δαχτύλων και των πλήκτρων, είναι πολύ σημαντικό να κινείτε μόνο το δάχτυλο που πρέπει να πατήσει το πλήκτρο, και να αφήνετε όλα τα άλλα δάχτυλα να παραμένουν στην αρχική τους θέση." #: ../src/keyboard.c:1122 -msgid "" -"After memorizing this relationship, you can relax the previous rule some, so " -"that you can attain greater speed while typing." -msgstr "" -"Μετά την απομνημόνευση αυτής της σχέσης, μπορείτε κάπως να χαλαρώσετε τον " -"προηγούμενο κανόνα, έτσι ώστε να επιτύχετε μεγαλύτερη ταχύτητα κατά την " -"πληκτρολόγηση." +msgid "After memorizing this relationship, you can relax the previous rule some, so that you can attain greater speed while typing." +msgstr "Μετά την απομνημόνευση αυτής της σχέσης, μπορείτε κάπως να χαλαρώσετε τον προηγούμενο κανόνα, έτσι ώστε να επιτύχετε μεγαλύτερη ταχύτητα κατά την πληκτρολόγηση." #: ../src/keyboard.c:1125 -msgid "" -"You should be prepared to start training with the basic course. It will take " -"effort and patience to be successful as a typist. We trust you have these " -"and look forward to your success!" -msgstr "" -"Πρέπει να είστε προετοιμασμένοι να ξεκινήσετε την εκπαίδευση με την βασική " -"σειρά μαθημάτων. Θα χρειαστεί προσπάθεια και υπομονή ώστε να γίνετε " -"επιτυχημένοι ως δακτυλογράφοι. Είμαστε σίγουροι ότι έχετε αυτές τις " -"ικανότητες και περιμένουμε με αγωνία την επιτυχία σας!" +msgid "You should be prepared to start training with the basic course. It will take effort and patience to be successful as a typist. We trust you have these and look forward to your success!" +msgstr "Πρέπει να είστε προετοιμασμένοι να ξεκινήσετε την εκπαίδευση με την βασική σειρά μαθημάτων. Θα χρειαστεί προσπάθεια και υπομονή ώστε να γίνετε επιτυχημένοι ως δακτυλογράφοι. Είμαστε σίγουροι ότι έχετε αυτές τις ικανότητες και περιμένουμε με αγωνία την επιτυχία σας!" #: ../src/keyboard.c:1136 #, c-format msgid "Step %i" msgstr "Βήμα %i" -#. Recommendations -#: ../src/keyboard.c:1140 +#: ../src/keyboard.c:1142 msgid "To position the hands" msgstr "Η θέση των χεριών" -#. Final words -#: ../src/keyboard.c:1225 +#: ../src/keyboard.c:1227 msgid "Go ahead!" msgstr "Προχωρήστε!" @@ -827,9 +637,7 @@ #: ../src/keyboard.c:1235 msgid "Click on any key to see which finger you must use:" -msgstr "" -"Για να δείτε ποιο δάχτυλο πρέπει να χρησιμοποιήσετε κάντε κλικ σε κάποιο " -"πλήκτρο:" +msgstr "Για να δείτε ποιο δάχτυλο πρέπει να χρησιμοποιήσετε κάντε κλικ σε κάποιο πλήκτρο:" #: ../src/keyboard.c:1291 ../src/keyboard.c:1325 msgid "Keyboard" @@ -859,176 +667,158 @@ msgid "Press and edit me" msgstr "Πάτα και επεξεργάσου με" -#: ../src/tutor.c:176 +#: ../src/tutor.c:300 msgid "Lesson:" msgstr "Μάθημα:" -#: ../src/tutor.c:186 +#: ../src/tutor.c:310 msgid "Paragraphs:" msgstr "Παράγραφοι:" -#: ../src/tutor.c:219 +#: ../src/tutor.c:343 msgid "Klavaro - Basic Course" msgstr "Klavaro - Βασική σειρά μαθημάτων" -#: ../src/tutor.c:224 +#: ../src/tutor.c:348 msgid "Klavaro - Adaptability" msgstr "Klavaro - Προσαρμοστικότητα" -#: ../src/tutor.c:227 -msgid "" -"Adaptability exercises: automating the fingers responses, typing over all " -"the keyboard." -msgstr "" -"Ασκήσεις προσαρμοστικότητας: αυτοματοποίηση της ανταπόκρισης των δαχτύλων, " -"πληκτρολόγηση σε όλο το πληκτρολόγιο." +#: ../src/tutor.c:351 +msgid "Adaptability exercises: automating the fingers responses, typing over all the keyboard." +msgstr "Ασκήσεις προσαρμοστικότητας: αυτοματοποίηση της ανταπόκρισης των δαχτύλων, πληκτρολόγηση σε όλο το πληκτρολόγιο." -#: ../src/tutor.c:232 +#: ../src/tutor.c:356 msgid "Klavaro - Velocity" msgstr "Klavaro - Ταχύτητα" -#: ../src/tutor.c:233 +#: ../src/tutor.c:357 msgid "Velocity exercises: accelerate typing real words." msgstr "Ασκήσεις ταχύτητας: επιτάχυνση με πληκτρολόγηση πραγματικών λέξεων." -#: ../src/tutor.c:237 +#: ../src/tutor.c:361 msgid "Klavaro - Fluidness" msgstr "Klavaro - Ρευστότητα" -#: ../src/tutor.c:239 +#: ../src/tutor.c:363 msgid "Fluidness exercises: accuracy typing good sense paragraphs." -msgstr "" -"Ασκήσεις ρευστότητας: πληκτρολόγηση ακριβείας με παραγράφους που έχουν νόημα." +msgstr "Ασκήσεις ρευστότητας: πληκτρολόγηση ακριβείας με παραγράφους που έχουν νόημα." -#: ../src/tutor.c:301 +#: ../src/tutor.c:425 msgid "End of exercise. Press [Enter] to start another." msgstr "Τέλος εξάσκησης. Πατήστε [Enter] για να ξεκινήσετε μία άλλη." -#: ../src/tutor.c:329 +#: ../src/tutor.c:453 msgid "Learning the key positions." msgstr "Μάθηση των θέσεων των πλήκτρων." -#: ../src/tutor.c:332 +#: ../src/tutor.c:456 msgid "Press any key to start the exercise. " msgstr "Πατήστε κάποιο πλήκτρο για να ξεκινήσετε την άσκηση." -#: ../src/tutor.c:440 ../src/tutor.c:443 +#: ../src/tutor.c:567 ../src/tutor.c:570 msgid "Start typing when you are ready. " msgstr "Πληκτρολογήστε όταν είστε έτοιμοι." -#: ../src/tutor.c:441 +#: ../src/tutor.c:568 msgid "Use backspace to correct errors." msgstr "Χρησιμοποιήστε το backspace για να διορθώσετε τα λάθη." -#: ../src/tutor.c:885 +#: ../src/tutor.c:1012 #, c-format -msgid "" -"ps.: logging not performed for this session: the number of typed characters " -"(%i) must be greater than %i." -msgstr "" -"ΥΓ.: η καταγραφή δεν λειτουργεί για αυτή την σύνοδο: ο αριθμός των " -"πληκτρολογημένων χαρακτήρων (%i) πρέπει να είναι μεγαλύτερος από %i." +msgid "ps.: logging not performed for this session: the number of typed characters (%i) must be greater than %i." +msgstr "ΥΓ.: η καταγραφή δεν λειτουργεί για αυτή την σύνοδο: ο αριθμός των πληκτρολογημένων χαρακτήρων (%i) πρέπει να είναι μεγαλύτερος από %i." -#: ../src/tutor.c:1027 +#: ../src/tutor.c:1154 msgid "ps.: you have entered the Top 10 list, great!" msgstr "ΥΓ.: μπράβο, μπήκατε στην λίστα Κορυφαία 10!" -#: ../src/tutor.c:1039 -msgid "" -"ps.: the text you just typed doesn't seem to be similar to ordinary texts in " -"the language currently selected: we can't account for it in the 'Top 10' " -"contest." -msgstr "" -"ΥΓ.: το κείμενο που μόλις πληκτρολογήσατε δεν μοιάζει να είναι παρόμοιο με " -"συνηθισμένα κείμενα στην τρέχουσα επιλεγμένη γλώσσα: δεν μπορούμε να το " -"λογαριάσουμε στον διαγωνισμό 'Κορυφαία 10'." +#: ../src/tutor.c:1166 +msgid "ps.: the text you just typed doesn't seem to be similar to ordinary texts in the language currently selected: we can't account for it in the 'Top 10' contest." +msgstr "ΥΓ.: το κείμενο που μόλις πληκτρολογήσατε δεν μοιάζει να είναι παρόμοιο με συνηθισμένα κείμενα στην τρέχουσα επιλεγμένη γλώσσα: δεν μπορούμε να το λογαριάσουμε στον διαγωνισμό 'Κορυφαία 10'." -#. Begin the accuracy -#: ../src/tutor.c:1087 +#: ../src/tutor.c:1215 msgid "STATISTICS" msgstr "ΣΤΑΤΙΣΤΙΚΑ" -#: ../src/tutor.c:1088 +#: ../src/tutor.c:1216 msgid "Elapsed time:" msgstr "Χρόνος που πέρασε:" -#: ../src/tutor.c:1089 +#: ../src/tutor.c:1217 msgid "minute and" msgid_plural "minutes and" msgstr[0] "λεπτό και" msgstr[1] "λεπτά και" -#: ../src/tutor.c:1090 +#: ../src/tutor.c:1218 msgid "second" msgid_plural "seconds" msgstr[0] "δευτερόλεπτο" msgstr[1] "δευτερόλεπτα" -#: ../src/tutor.c:1091 +#: ../src/tutor.c:1219 msgid "Error ratio:" msgstr "Αναλογία λαθών:" -#: ../src/tutor.c:1091 +#: ../src/tutor.c:1219 msgid "Accuracy:" msgstr "Ακρίβεια:" -#: ../src/tutor.c:1112 ../src/tutor.c:1137 ../src/tutor.c:1160 -#: ../src/tutor.c:1186 +#: ../src/tutor.c:1240 ../src/tutor.c:1265 ../src/tutor.c:1288 +#: ../src/tutor.c:1314 msgid "Goal:" -msgstr "Επιτυχία:" +msgstr "Στόχος:" -#: ../src/tutor.c:1119 +#: ../src/tutor.c:1247 msgid "Characters per second:" msgstr "Χαρακτήρες ανά δευτερόλεπτο:" -#: ../src/tutor.c:1137 +#: ../src/tutor.c:1265 msgid "(CPS)" msgstr "(ΧΑΔ)" -#: ../src/tutor.c:1142 +#: ../src/tutor.c:1270 msgid "Words per minute:" msgstr "Λέξεις ανά λεπτό:" -#: ../src/tutor.c:1167 +#: ../src/tutor.c:1295 msgid "Fluidness:" msgstr "Ρευστότητα:" -#: ../src/tutor.c:1194 +#: ../src/tutor.c:1322 msgid "Comments:" msgstr "Σχόλια:" -#: ../src/tutor.c:1676 +#: ../src/tutor.c:1804 msgid "space" msgstr "διάστημα" #. Translators: the name of letter Y -#: ../src/tutor.c:1681 +#: ../src/tutor.c:1809 msgid "wye" msgstr "ύψιλον" #. Translators: the name of the Return key -#: ../src/tutor.c:1685 +#: ../src/tutor.c:1813 msgid "enter" msgstr "enter" -#: ../src/tutor.c:1691 +#: ../src/tutor.c:1819 msgid "apostrophe" msgstr "απόστροφος" #. Translators: double quote symbol: " -#: ../src/tutor.c:1695 +#: ../src/tutor.c:1823 #, fuzzy msgid "quote" msgstr "εισαγωγικό" #. Translators: ampersand symbol: & -#: ../src/tutor.c:1699 +#: ../src/tutor.c:1827 msgid "ampersand" msgstr "συμπλεκτικό σύμβολο (&)" -#. Error frequencies or touch times -#. -#: ../src/plot.c:308 +#: ../src/plot.c:305 msgid "Character" msgstr "Χαρακτήρας" @@ -1036,11 +826,11 @@ msgid "Date & Time" msgstr "Ημερομηνία και ώρα" -#: ../src/basic.c:331 +#: ../src/basic.c:326 msgid "Positions of keys seems to be learned!" msgstr "Θέσεις πλήκτρων που μάλλον μάθατε!" -#: ../src/basic.c:332 +#: ../src/basic.c:327 msgid "" " Congratulations!\n" " You have accomplished the entire basic course.\n" @@ -1052,7 +842,7 @@ "Πηγαίνετε στον επόμενο τύπο άσκησης: προσαρμοστικότητα.\n" "Εκεί θα εξασκηθείτε κυρίως στην ακρίβεια.\n" -#: ../src/basic.c:338 +#: ../src/basic.c:333 msgid "" " All right, now you got it!\n" " Go to the next lesson.\n" @@ -1060,34 +850,34 @@ "Εντάξει, τώρα το κατέχετε!\n" "Πηγαίνετε στο επόμενο μάθημα.\n" -#: ../src/adaptability.c:217 +#: ../src/adaptability.c:213 +#, c-format msgid "" -" Your accuracy rate is below 90%...\n" +" Your accuracy rate is below %.0f%%...\n" " Could you please try again to improve it?\n" msgstr "" -"Η ακρίβεια σας είναι κάτω από 90%...\n" +"Η ακρίβεια σας είναι κάτω από %.0f%%...\n" "Μπορείτε σας παρακαλώ να δοκιμάσετε ξανά ώστε να την βελτιώσετε;\n" -#: ../src/adaptability.c:222 +#: ../src/adaptability.c:216 +#, c-format msgid "" " You are doing well. But...\n" -" Could you make the accuracy reach 95%?\n" +" Could you make the accuracy reach %.0f%%?\n" msgstr "" "Τα πάτε καλά. Αλλά...\n" -"Μπορείτε να κάνετε την ακρίβεια να φτάσει το 95%;\n" +"Μπορείτε να κάνετε την ακρίβεια να φτάσει το %.0f%%;\n" -#: ../src/adaptability.c:225 +#: ../src/adaptability.c:219 #, c-format msgid "" " You are almost there, but your accuracy rate is still below %.0f%%.\n" -" Try a few more times, or maybe you're getting upset, so go to other kind of " -"exercise.\n" +" Try a few more times, or maybe you're getting upset, so go to another kind of exercise.\n" msgstr "" "Σχεδόν τα καταφέρατε, αλλά η ακρίβεια σας είναι ακόμη κάτω από %.0f%%.\n" -"Δοκιμάστε μερικές φορές ακόμη ή ίσως να αισθάνεστε αναστατωμένος, οπότε " -"πηγαίνετε σε άλλο είδος άσκησης.\n" +"Δοκιμάστε μερικές φορές ακόμη ή ίσως να αισθάνεστε αναστατωμένος, οπότε πηγαίνετε σε άλλο είδος άσκησης.\n" -#: ../src/adaptability.c:232 +#: ../src/adaptability.c:226 #, c-format msgid "" " Very good!\n" @@ -1100,48 +890,48 @@ "Τώρα είναι ώρα να αυξήσετε την ταχύτητα σας.\n" "Πηγαίνετε στην 3η άσκηση στο κύριο μενού.\n" -#: ../src/velocity.c:313 ../src/fluidness.c:435 -#, fuzzy +#: ../src/velocity.c:312 ../src/fluidness.c:435 msgid "Pasted_or_dropped" msgstr "Επικολλημένο_ή_ριγμένο" -#: ../src/velocity.c:432 +#: ../src/velocity.c:423 msgid "" " You are just beginning.\n" " Be patient, try it again every day, rest and don't worry so much:\n" " persistence and practice will improve your velocity.\n" msgstr "" "Μόλις τώρα ξεκινάτε.\n" -"Να έχετε υπομονή, να δοκιμάζεται κάθε μέρα, να χαλαρώνετε και να μην " -"ανησυχείτε τόσο πολύ:\n" +"Να έχετε υπομονή, να δοκιμάζεται κάθε μέρα, να χαλαρώνετε και να μην ανησυχείτε τόσο πολύ:\n" "η επιμονή και η εξάσκηση θα βελτιώσουν την ταχύτητα σας.\n" -#: ../src/velocity.c:436 +#: ../src/velocity.c:427 +#, c-format msgid "" " Still away from the highway. You can make better...\n" -" Try at least 20 WPM.\n" +" Try to reach at least %.0f WPM.\n" msgstr "" -"Ακόμη είστε μακρυά από τον αυτοκινητόδρομο. Μπορείτε να τα καταφέρετε " -"καλύτερα...\n" -"Δοκιμάστε τουλάχιστον 20 ΛΑΛ.\n" +"Ακόμη είστε μακρυά από τον αυτοκινητόδρομο. Μπορείτε να τα καταφέρετε καλύτερα...\n" +"Δοκιμάστε τουλάχιστον %.0f ΛΑΛ.\n" -#: ../src/velocity.c:439 +#: ../src/velocity.c:430 +#, c-format msgid "" " You are doing well, but need to go faster.\n" -" And don't forget the accuracy. Try to get 30 WPM.\n" +" And don't forget the accuracy. Try to get %.0f WPM.\n" msgstr "" "Τα πηγαίνετε καλά, αλλά χρειάζεται να πάτε γρηγορότερα.\n" -"Και μην ξεχνάτε την ακρίβεια. Δοκιμάστε να φτάσετε 30 ΛΑΛ.\n" +"Και μην ξεχνάτε την ακρίβεια. Δοκιμάστε να φτάσετε %.0f ΛΑΛ.\n" -#: ../src/velocity.c:443 +#: ../src/velocity.c:433 +#, c-format msgid "" " Fine. Now you need to start running.\n" -" Can you reach 40 WPM?\n" +" Can you reach %.0f WPM?\n" msgstr "" "Ωραία. Τώρα πρέπει να αρχίσετε να τρέχετε.\n" -"Μπορείτε να φτάσετε 40 ΛΑΛ;\n" +"Μπορείτε να φτάσετε %.0f ΛΑΛ;\n" -#: ../src/velocity.c:446 +#: ../src/velocity.c:436 #, c-format msgid "" " Very good. You are almost there.\n" @@ -1150,7 +940,7 @@ "Πολύ καλά. Σχεδόν φτάσατε.\n" "Μπορείτε τελικά να φτάσετε %.0f ΛΑΛ;\n" -#: ../src/velocity.c:451 +#: ../src/velocity.c:439 msgid "" " Excellent. For this course, that is enough.\n" " Try now the fluidness exercises, OK?\n" @@ -1158,31 +948,34 @@ "Υπέροχα. Για αυτή τη σειρά μαθημάτων, αυτό είναι αρκετό.\n" "Δοκιμάστε τώρα τις ασκήσεις ρευστότητας, εντάξει;\n" -#: ../src/velocity.c:455 +#: ../src/velocity.c:442 +#, c-format msgid "" -" Fast! Are you training for a competition?\n" -" So, try to get 70 WPM!\n" +" Fast! Are you a professional?\n" +" So, try to get %.0f WPM!\n" msgstr "" "Γρήγορα! Εξασκείστε για κάποιο διαγωνισμό;\n" -"Λοιπόν, προσπαθήστε να φτάσετε 70 ΛΑΛ!\n" +"Λοιπόν, προσπαθήστε να φτάσετε %.0f ΛΑΛ!\n" -#: ../src/velocity.c:458 -msgid "" -" Top of \"qwerty\". Now it's time to change to the Dvorak mode.\n" -" Are you afraid of reaching 80 WPM?\n" -msgstr "" -"Η κορυφή του \"qwerty\". Τώρα είναι ώρα να αλλάξετε σε κατάσταση Dvorak.\n" -"Φοβάστε να φτάσετε τις 80 ΛΑΛ;\n" +#. Translators: Speed Racer is a reference to a Japanese anime franchise +#. about automobile racing, also known as Mach GoGoGo. +#: ../src/velocity.c:447 +#, c-format +msgid " Ranking good, Speed Racer! Are you afraid of reaching %.0f WPM?\n" +msgstr "Κατατάχτηκες καλά, δρομέα ταχύτητας! Φοβάσαι να φτάσεις τις %.0f ΛΑΛ;\n" -#: ../src/velocity.c:462 +#. Translators: feel free to change the reference to that martial art, if you find another good analogy. +#: ../src/velocity.c:451 +#, c-format msgid "" -" Dvorak mode dominated!\n" -" Can you fly at 90 WPM?\n" +" Kunf-fu mastering!\n" +" Can you fly at %.0f WPM?\n" msgstr "" -"Η κατάσταση Dvorak κυριάρχησε!\n" -"Μπορείτε να πετάξετε με 90 ΛΑΛ;\n" +"Δάσκαλος του κουγκ-φου!\n" +"Μπορείτε να πετάξετε με %.0f ΛΑΛ;\n" -#: ../src/velocity.c:466 +#. Translators: Dvorak here means that infamous ergonomic keyboard layout. +#: ../src/velocity.c:454 msgid "" " Dvorak master!\n" " I have no words to express my admiration!\n" @@ -1190,7 +983,7 @@ "Ο άρχοντας του Dvorak!\n" "Δεν έχω λέξεις να εκφράσω τον θαυμασμό μου!\n" -#: ../src/fluidness.c:545 +#: ../src/fluidness.c:538 #, c-format msgid "" " You type accurately but not so fast.\n" @@ -1199,7 +992,7 @@ "Πληκτρολογείτε με ακρίβεια αλλά όχι τόσο γρήγορα.\n" "Μπορείτε να φτάσετε %.0f ΛΑΛ;\n" -#: ../src/fluidness.c:548 +#: ../src/fluidness.c:541 #, c-format msgid "" " Your rhythm is not so constant. Calm down.\n" @@ -1208,7 +1001,7 @@ "Ο ρυθμός σας δεν είναι τόσο σταθερός. Ηρεμήστε.\n" "Για τώρα, δοκιμάστε να κάνετε την ρευστότητα μεγαλύτερη από %i%%.\n" -#: ../src/fluidness.c:551 +#: ../src/fluidness.c:544 #, c-format msgid "" " You are almost getting there. Type more fluently.\n" @@ -1217,7 +1010,7 @@ "Σχεδόν φτάσατε. Πληκτρολογήστε πιο άνετα.\n" "Χρειάζεται ρευστότητα μεγαλύτερη από %.0f%%.\n" -#: ../src/fluidness.c:554 +#: ../src/fluidness.c:547 msgid "" " Congratulations!\n" " It seems to me that you are a professional.\n" @@ -1229,7 +1022,7 @@ "Δεν χρειάζεστε αυτό το πρόγραμμα πια.\n" "Ελπίζουμε να διασκεδάσατε. Ευχαριστούμε και να είστε χαρούμενοι!\n" -#: ../src/fluidness.c:559 +#: ../src/fluidness.c:552 msgid "" " How can you type so fast?\n" " You have exceeded all my expectations.\n" @@ -1250,9 +1043,8 @@ msgstr "Χαρακτήρες" #: ../src/top10.c:95 -#, fuzzy msgid "When" -msgstr "Όταν" +msgstr "Πότε" #: ../src/top10.c:124 msgid "Local scores" @@ -1268,7 +1060,7 @@ #: ../src/top10.c:816 msgid "Not able to download files" -msgstr "Δεν ήταν δυνατό να κατέβουν τα αρχεία" +msgstr "Δεν ήταν δυνατό να ληφθούν τα αρχεία" #: ../src/top10.c:816 ../src/top10.c:906 msgid "not found" @@ -1284,11 +1076,24 @@ #: ../src/top10.c:906 msgid "Not able to upload files" -msgstr "Δεν ήταν δυνατό να ανέβουν τα αρχεία" +msgstr "Δεν ήταν δυνατό να σταλθούν τα αρχεία" #: ../src/top10.c:987 msgid "Could not upload/download scores." -msgstr "Δεν μπορούν να ανέβουν/κατέβουν οι βαθμολογίες." +msgstr "Δεν μπορούν να ληφθούν/σταλθούν οι βαθμολογίες." + +#~ msgid "Klavaro" +#~ msgstr "Klavaro" + +#~ msgid "_Font" +#~ msgstr "_Γραμματοσειρά" #~ msgid "Default" #~ msgstr "Προκαθορισμένο" + +#~ msgid "" +#~ " Top of \"qwerty\". Now it's time to change to the Dvorak mode.\n" +#~ " Are you afraid of reaching 80 WPM?\n" +#~ msgstr "" +#~ "Η κορυφή του \"qwerty\". Τώρα είναι ώρα να αλλάξετε σε κατάσταση Dvorak.\n" +#~ "Φοβάστε να φτάσετε τις 80 ΛΑΛ;\n" diff -Nru klavaro-1.9.9/po/en_GB.po klavaro-3.00/po/en_GB.po --- klavaro-1.9.9/po/en_GB.po 2013-08-15 13:38:49.000000000 +0000 +++ klavaro-3.00/po/en_GB.po 2014-01-13 23:25:49.000000000 +0000 @@ -6,594 +6,594 @@ msgid "" msgstr "" "Project-Id-Version: klavaro 1.1.7\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2013-08-15 10:38-0300\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2014-01-13 21:25-0200\n" "PO-Revision-Date: 2008-10-15 05:42-0300\n" "Last-Translator: Dave Pawson <_dave_._pawson_@gmail.com>\n" "Language-Team: en_GB \n" -"Language: \n" +"Language: en_GB\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n!=1);\n" -#: ../data/klavaro.desktop.in.h:1 ../data/klavaro.glade.h:59 -msgid "Yet another touch typing tutor" -msgstr "" - #: ../data/klavaro.glade.h:1 -msgid "Klavaro - Main menu" -msgstr "Klavaro -Main menu" +msgid "About 'Klavaro'" +msgstr "About 'Klavaro'" #: ../data/klavaro.glade.h:2 -msgid "Don't be shy about learning the basics!" -msgstr "Don't be shy about learning the basics!" +msgid "Yet another touch typing tutor" +msgstr "" #: ../data/klavaro.glade.h:3 -#, fuzzy -msgid "Learn how to type correctly" -msgstr "How to type correctly" +msgid "Remember always: someone loves you!" +msgstr "" #: ../data/klavaro.glade.h:4 -msgid "Initial training for your fingers." -msgstr "Initial training" +msgid "Change language" +msgstr "Change language" #: ../data/klavaro.glade.h:5 -#, fuzzy -msgid "First steps with initial training" -msgstr "Initial training" +msgid "Attention!" +msgstr "Attention!" #: ../data/klavaro.glade.h:6 -msgid "Memorizing the keyboard practicing random keys exercises." -msgstr "Memorizing the keyboard practicing random keys exercises." +msgid "Do you confirm?" +msgstr "Confirm?" #: ../data/klavaro.glade.h:7 #, fuzzy -msgid "Practice with random keys" -msgstr "Entire texts" +msgid "_No" +msgstr "No" -#. English typo: touchs -> touches -#: ../data/klavaro.glade.h:9 +#: ../data/klavaro.glade.h:8 #, fuzzy -msgid "Accelerating the touches practicing random words exercises." -msgstr "Random word practice" +msgid "_Yes" +msgstr "Yes" + +#: ../data/klavaro.glade.h:9 +msgid "Help?" +msgstr "Help?" #: ../data/klavaro.glade.h:10 -#, fuzzy -msgid "Practice with random words" -msgstr "Entire texts" +msgid "This is a tip. Now you press this button to return to the main menu." +msgstr "Tip! Press to return to main menu" #: ../data/klavaro.glade.h:11 -msgid "Becoming proficient practicing complete paragraphs exercises." -msgstr "Complete paragraph practice" +msgid "B_ack to menu" +msgstr "" #: ../data/klavaro.glade.h:12 -#, fuzzy -msgid "Practice with complete texts" -msgstr "Entire texts" +msgid "" +"The main menu of the application is very straightforward. Just select the " +"type of exercise you wish to take. Do not worry about clicking any button on " +"the screen. The buttons will never hurt you!" +msgstr "" #: ../data/klavaro.glade.h:13 msgid "" -"Keyboard layout for modules 1 and 2. Also used informatively in the " -"fluidness contest." +"Also the controls have tips which will appear if you hover over them with " +"your mouse. These tips can come in very handy. To see how these tips work, " +"position your mouse over the button below, and without clicking, wait for " +"the tip to appear..." msgstr "" #: ../data/klavaro.glade.h:14 -#, fuzzy -msgid "_Keyboard:" -msgstr "Keyboard" +msgid "Klavaro - Select file" +msgstr "Klavaro - Select file" #: ../data/klavaro.glade.h:15 -msgid "Language for modules 3 and 4." -msgstr "" +#, fuzzy +msgid "_Cancel" +msgstr "Cancel" #: ../data/klavaro.glade.h:16 -#, fuzzy -msgid "_Language:" -msgstr "Select language" +msgid "_Open" +msgstr "" #: ../data/klavaro.glade.h:17 -msgid "Variant" -msgstr "" +#, fuzzy +msgid "Re_name:" +msgstr "Remove" #: ../data/klavaro.glade.h:18 #, fuzzy -msgid "Klavaro" -msgstr "'Klavaro'" +msgid "Rename the selected item." +msgstr "Remove selected item " #: ../data/klavaro.glade.h:19 -msgid "Country / Custom" -msgstr "" +msgid "" +"Read a text file and add a copy of it here. The file must be encoded in " +"UTF-8." +msgstr "Read a text file and copy here. Must be utf-8" #: ../data/klavaro.glade.h:20 -msgid "Your language here." +msgid "_Open text file" msgstr "" #: ../data/klavaro.glade.h:21 -msgid "Speech" -msgstr "" +#, fuzzy +msgid "Paste text that was copied to the clipboard." +msgstr "Paste text that was copied to the clipboard. Hotkey: [Ctrl-V]" #: ../data/klavaro.glade.h:22 -msgid "Little tip about this program." -msgstr "Tips about Klavaro" +msgid "_Paste from clipboard" +msgstr "" #: ../data/klavaro.glade.h:23 #, fuzzy -msgid "_Help" -msgstr "Help" +msgid "Remove the selected item." +msgstr "Remove selected item " #: ../data/klavaro.glade.h:24 #, fuzzy -msgid "General information about the program." -msgstr "Tips about Klavaro" +msgid "_Remove copied file" +msgstr "Remove selected" #: ../data/klavaro.glade.h:25 -#, fuzzy -msgid "_About..." -msgstr "About..." +msgid "Apply the selected item to create an exercise." +msgstr "Apply the selected item to create an exercise." #: ../data/klavaro.glade.h:26 -#, fuzzy -msgid "Exit the application immediately." -msgstr "Quit. C-Q" +msgid "_Apply" +msgstr "" #: ../data/klavaro.glade.h:27 -#, fuzzy -msgid "_Close" +msgid "Close this window." msgstr "Close" #: ../data/klavaro.glade.h:28 #, fuzzy -msgid "Load other exercises/lessons" -msgstr "Load other exercise. [Ctrl-O]" +msgid "_Close" +msgstr "Close" #: ../data/klavaro.glade.h:29 -#, fuzzy -msgid "_Other texts" -msgstr "Entire texts" +msgid "Country / Custom" +msgstr "" #: ../data/klavaro.glade.h:30 -#, fuzzy -msgid "_Lesson:" -msgstr "Lesson" +msgid "Variant" +msgstr "" #: ../data/klavaro.glade.h:31 -msgid "Edit the character set to be used in this lesson." -msgstr "Edit the character set to be used in this lesson." +#, fuzzy +msgid "Remove the selected custom layout." +msgstr "Remove selected item " #: ../data/klavaro.glade.h:32 #, fuzzy -msgid "Edit the character set to be used in lessons 44 through 50." -msgstr "Edit the character set to be used in this lesson." +msgid "_Remove" +msgstr "Remove" #: ../data/klavaro.glade.h:33 -msgid "This is a specific exercise, adjusted to your error profile." -msgstr "" +msgid "" +"Toggles the shift effect on the keys. Alternates between the upper and lower " +"characters of the keys." +msgstr "Alternates between upper and lower" -#: ../data/klavaro.glade.h:34 ../src/tutor.c:252 -msgid "Drag and drop text here to practice with it." -msgstr "Drag and drop text here to practice with it." +#: ../data/klavaro.glade.h:34 +msgid "SPACE BAR" +msgstr "SPACE BAR" -#: ../data/klavaro.glade.h:35 -msgid "Press here to restart the exercise. Hotkey: [Ctrl R]" -msgstr "Press to restart the exercise. [Ctrl R]" +#: ../data/klavaro.glade.h:35 ../src/keyboard.c:1630 +msgid "thumbs" +msgstr "thumbs" #: ../data/klavaro.glade.h:36 -msgid "Show the virtual keyboard and the relation between fingers and keys." -msgstr "Show the relation between fingers and keys." +msgid "Ctrl" +msgstr "Control" #: ../data/klavaro.glade.h:37 -#, fuzzy -msgid "_Keyboard" -msgstr "Keyboard" +msgid "Caps" +msgstr "Caps" #: ../data/klavaro.glade.h:38 -msgid "Select the font to be used in the exercise window." -msgstr "Select the font to be used" +#, fuzzy +msgid "S_ave as:" +msgstr "Save" #: ../data/klavaro.glade.h:39 -msgid "_Font" +msgid "Show previous screen." msgstr "" #: ../data/klavaro.glade.h:40 -#, fuzzy -msgid "Keep this checked if you want to get those nice beeps." -msgstr "Keep this checked if you want sound. Hotkey: [Ctrl S]" +msgid "_Previous step" +msgstr "" #: ../data/klavaro.glade.h:41 -#, fuzzy -msgid "_Beep" -msgstr "Help" +msgid "Show next screen." +msgstr "" #: ../data/klavaro.glade.h:42 -#, fuzzy -msgid "Co_urse information" -msgstr "Show more information" +msgid "_Next step" +msgstr "" #: ../data/klavaro.glade.h:43 -msgid "Charts showing the learning progress along the exercises." -msgstr "Charts showing the learning progress along the exercises." +#, fuzzy +msgid "Return without any modification." +msgstr "Escape (no changes)" #: ../data/klavaro.glade.h:44 -#, fuzzy -msgid "_Progress" -msgstr "Progress" +msgid "Save the current keyboard layout with the name specified above." +msgstr "Save the layout" #: ../data/klavaro.glade.h:45 -msgid "Show local and external scores from other users." -msgstr "Show scores from other users." +#, fuzzy +msgid "_Save and use" +msgstr "Save" #: ../data/klavaro.glade.h:46 #, fuzzy -msgid "_Top 10" -msgstr "Top 10" +msgid "" +"If you like those beautiful hands, click here to close this window keeping " +"them." +msgstr "Click to keep the hands" #: ../data/klavaro.glade.h:47 #, fuzzy -msgid "Return to the main menu." -msgstr "Main menu [Ctrl-Q]" +msgid "_Keep hands" +msgstr "Keep hands" #: ../data/klavaro.glade.h:48 -msgid "B_ack to menu" -msgstr "" +msgid "Klavaro - Main menu" +msgstr "Klavaro -Main menu" #: ../data/klavaro.glade.h:49 -msgid "Close this window." -msgstr "Close" +msgid "Don't be shy about learning the basics!" +msgstr "Don't be shy about learning the basics!" #: ../data/klavaro.glade.h:50 -msgid "Font definition" -msgstr "Font definition" +#, fuzzy +msgid "Learn how to type correctly" +msgstr "How to type correctly" #: ../data/klavaro.glade.h:51 -msgid "Top 10" -msgstr "Top 10" +msgid "Initial training for your fingers." +msgstr "Initial training" #: ../data/klavaro.glade.h:52 #, fuzzy -msgid "Show extra information" -msgstr "Show more information" +msgid "First steps with initial training" +msgstr "Initial training" #: ../data/klavaro.glade.h:53 -#, fuzzy -msgid "Hide extra information" -msgstr "Show more information" +msgid "Memorizing the keyboard practicing random keys exercises." +msgstr "Memorizing the keyboard practicing random keys exercises." #: ../data/klavaro.glade.h:54 -msgid "Publish to the web your local scores." -msgstr "Publish to the web your local scores." +#, fuzzy +msgid "Practice with random keys" +msgstr "Entire texts" #: ../data/klavaro.glade.h:55 #, fuzzy -msgid "_Participate" -msgstr "Participate" +msgid "Accelerating the touches practicing random words exercises." +msgstr "Random word practice" #: ../data/klavaro.glade.h:56 -msgid "Download from the web the most up to date ranking." -msgstr "" +#, fuzzy +msgid "Practice with random words" +msgstr "Entire texts" #: ../data/klavaro.glade.h:57 -#, fuzzy -msgid "_Update" -msgstr "Update" +msgid "Becoming proficient practicing complete paragraphs exercises." +msgstr "Complete paragraph practice" #: ../data/klavaro.glade.h:58 -msgid "About 'Klavaro'" -msgstr "About 'Klavaro'" +#, fuzzy +msgid "Practice with complete texts" +msgstr "Entire texts" -#: ../data/klavaro.glade.h:60 -msgid "Remember always: someone loves you!" +#: ../data/klavaro.glade.h:59 +msgid "" +"Keyboard layout for modules 1 and 2. Also used informatively in the " +"fluidness contest." msgstr "" -#: ../data/klavaro.glade.h:61 +#: ../data/klavaro.glade.h:60 #, fuzzy -msgid "Remove the selected custom layout." -msgstr "Remove selected item " +msgid "_Keyboard:" +msgstr "Keyboard" + +#: ../data/klavaro.glade.h:61 +msgid "Language for modules 3 and 4." +msgstr "" #: ../data/klavaro.glade.h:62 #, fuzzy -msgid "_Remove" -msgstr "Remove" +msgid "_Language:" +msgstr "Select language" #: ../data/klavaro.glade.h:63 -msgid "" -"Toggles the shift effect on the keys. Alternates between the upper and lower " -"characters of the keys." -msgstr "Alternates between upper and lower" +msgid "Speech" +msgstr "" #: ../data/klavaro.glade.h:64 -msgid "SPACE BAR" -msgstr "SPACE BAR" +msgid "Your language here." +msgstr "" -#: ../data/klavaro.glade.h:65 ../src/keyboard.c:1630 -msgid "thumbs" -msgstr "thumbs" +#: ../data/klavaro.glade.h:65 +msgid "Little tip about this program." +msgstr "Tips about Klavaro" #: ../data/klavaro.glade.h:66 -msgid "Ctrl" -msgstr "Control" +#, fuzzy +msgid "_Help" +msgstr "Help" #: ../data/klavaro.glade.h:67 -msgid "Caps" -msgstr "Caps" +#, fuzzy +msgid "General information about the program." +msgstr "Tips about Klavaro" #: ../data/klavaro.glade.h:68 #, fuzzy -msgid "S_ave as:" -msgstr "Save" +msgid "_About..." +msgstr "About..." #: ../data/klavaro.glade.h:69 -msgid "Show previous screen." -msgstr "" +#, fuzzy +msgid "Exit the application immediately." +msgstr "Quit. C-Q" #: ../data/klavaro.glade.h:70 -msgid "_Previous step" -msgstr "" +msgid "Klavaro - Progress" +msgstr "Progress" #: ../data/klavaro.glade.h:71 -msgid "Show next screen." -msgstr "" +#, fuzzy +msgid "_Lesson:" +msgstr "Lesson" #: ../data/klavaro.glade.h:72 -msgid "_Next step" +msgid "Value" msgstr "" #: ../data/klavaro.glade.h:73 #, fuzzy -msgid "Return without any modification." -msgstr "Escape (no changes)" +msgid "Close this window, returning to the exercise." +msgstr "Close this window, return to exercises [Esc]" #: ../data/klavaro.glade.h:74 -#, fuzzy -msgid "_Cancel" -msgstr "Cancel" +msgid "Clear all the progress data, for every module." +msgstr "" #: ../data/klavaro.glade.h:75 -msgid "Save the current keyboard layout with the name specified above." -msgstr "Save the layout" +#, fuzzy +msgid "_Reset" +msgstr "Reset!" #: ../data/klavaro.glade.h:76 -#, fuzzy -msgid "_Save and use" -msgstr "Save" +msgid "Top 10" +msgstr "Top 10" #: ../data/klavaro.glade.h:77 #, fuzzy -msgid "" -"If you like those beautiful hands, click here to close this window keeping " -"them." -msgstr "Click to keep the hands" +msgid "Show extra information." +msgstr "Show more information" #: ../data/klavaro.glade.h:78 #, fuzzy -msgid "_Keep hands" -msgstr "Keep hands" +msgid "Hide extra information." +msgstr "Show more information" #: ../data/klavaro.glade.h:79 -msgid "Change language" -msgstr "Change language" +msgid "Publish to the web your local scores." +msgstr "Publish to the web your local scores." #: ../data/klavaro.glade.h:80 -msgid "Attention!" -msgstr "Attention!" +#, fuzzy +msgid "_Participate" +msgstr "Participate" #: ../data/klavaro.glade.h:81 -msgid "Do you confirm?" -msgstr "Confirm?" +msgid "Download from the web the most up to date ranking." +msgstr "" #: ../data/klavaro.glade.h:82 #, fuzzy -msgid "_No" -msgstr "No" +msgid "_Update" +msgstr "Update" #: ../data/klavaro.glade.h:83 #, fuzzy -msgid "_Yes" -msgstr "Yes" +msgid "Load other exercises/lessons" +msgstr "Load other exercise. [Ctrl-O]" #: ../data/klavaro.glade.h:84 #, fuzzy -msgid "Re_name:" -msgstr "Remove" +msgid "_Other texts" +msgstr "Entire texts" #: ../data/klavaro.glade.h:85 -#, fuzzy -msgid "Rename the selected item." -msgstr "Remove selected item " +msgid "Edit the character set to be used in this lesson." +msgstr "Edit the character set to be used in this lesson." #: ../data/klavaro.glade.h:86 -msgid "" -"Read a text file and add a copy of it here. The file must be encoded in " -"UTF-8." -msgstr "Read a text file and copy here. Must be utf-8" - -#: ../data/klavaro.glade.h:87 -msgid "_Open text file" +msgid "This is a specific exercise, adjusted to your error profile." msgstr "" -#: ../data/klavaro.glade.h:88 +#: ../data/klavaro.glade.h:87 #, fuzzy -msgid "Paste text that was copied to the clipboard." -msgstr "Paste text that was copied to the clipboard. Hotkey: [Ctrl-V]" +msgid "" +"Edit the character set to be used in lessons after 43: they are customizable!" +msgstr "Edit the character set to be used in this lesson." + +#: ../data/klavaro.glade.h:88 ../src/tutor.c:376 +msgid "Drag and drop text here to practice with it." +msgstr "Drag and drop text here to practice with it." #: ../data/klavaro.glade.h:89 -msgid "_Paste from clipboard" -msgstr "" +#, fuzzy +msgid "Press here to restart the exercise. Hotkey: [Ctrl-R]" +msgstr "Press to restart the exercise. [Ctrl R]" #: ../data/klavaro.glade.h:90 -#, fuzzy -msgid "Remove the selected item." -msgstr "Remove selected item " +msgid "Show the virtual keyboard and the relation between fingers and keys." +msgstr "Show the relation between fingers and keys." #: ../data/klavaro.glade.h:91 #, fuzzy -msgid "_Remove copied file" -msgstr "Remove selected" +msgid "_Keyboard" +msgstr "Keyboard" #: ../data/klavaro.glade.h:92 -msgid "Apply the selected item to create an exercise." -msgstr "Apply the selected item to create an exercise." +msgid "Select the font to be used in the exercise window." +msgstr "Select the font to be used" #: ../data/klavaro.glade.h:93 -msgid "_Apply" -msgstr "" +msgid "Font definition" +msgstr "Font definition" #: ../data/klavaro.glade.h:94 -msgid "Klavaro - Progress" -msgstr "Progress" +#, fuzzy +msgid "Keep this checked if you want to get those nice beeps." +msgstr "Keep this checked if you want sound. Hotkey: [Ctrl S]" #: ../data/klavaro.glade.h:95 -msgid "Value" -msgstr "" +#, fuzzy +msgid "_Beep" +msgstr "Help" #: ../data/klavaro.glade.h:96 -msgid "Clear all the progress data, for every module." -msgstr "" +#, fuzzy +msgid "Co_urse information" +msgstr "Show more information" #: ../data/klavaro.glade.h:97 -#, fuzzy -msgid "_Reset" -msgstr "Reset!" +msgid "Charts showing the learning progress along the exercises." +msgstr "Charts showing the learning progress along the exercises." #: ../data/klavaro.glade.h:98 #, fuzzy -msgid "Close this window, returning to the exercise." -msgstr "Close this window, return to exercises [Esc]" +msgid "_Progress" +msgstr "Progress" #: ../data/klavaro.glade.h:99 -msgid "Klavaro - Select file" -msgstr "Klavaro - Select file" +#, fuzzy +msgid "Return to the main menu." +msgstr "Main menu [Ctrl-Q]" #: ../data/klavaro.glade.h:100 -msgid "_Open" -msgstr "" +msgid "Show local and external scores from other users." +msgstr "Show scores from other users." #: ../data/klavaro.glade.h:101 -msgid "Help?" -msgstr "Help?" - -#: ../data/klavaro.glade.h:102 -msgid "" -"The main menu of the application is very straightforward. Just select the " -"type of exercise you wish to take. Do not worry about clicking any button on " -"the screen. The buttons will never hurt you!" -msgstr "" +#, fuzzy +msgid "_Top 10" +msgstr "Top 10" -#: ../data/klavaro.glade.h:103 -msgid "" -"Also the controls have tips which will appear if you hover over them with " -"your mouse. These tips can come in very handy. To see how these tips work, " -"position your mouse over the button below, and without clicking, wait for " -"the tip to appear..." +#: ../data/klavaro.desktop.in.h:1 +msgid "A very flexible and efficient touch typing tutor." msgstr "" -#: ../data/klavaro.glade.h:104 -msgid "This is a tip. Now you press this button to return to the main menu." -msgstr "Tip! Press to return to main menu" +#. Translators: these are keywords related to the program. CAI above means Computer Aided Instruction. Feel free to add and/or change the keywords in your language. +#: ../data/klavaro.desktop.in.h:3 +#, fuzzy +msgid "keyboard;typing;tutor;CAI" +msgstr "Keyboard" -#: ../src/main.c:314 +#: ../src/main.c:242 msgid "(Custom)" msgstr "" -#: ../src/main.c:315 +#: ../src/main.c:243 msgid "(Edit custom)" msgstr "" -#: ../src/main.c:316 +#: ../src/main.c:244 #, fuzzy msgid "(Default)" msgstr "Default" -#: ../src/main.c:393 +#: ../src/main.c:321 #, c-format msgid "Dictation mode (depends on this speech synthesizer: %s)" msgid_plural "Dictation mode (depends on one of these speech synthesizers: %s)" msgstr[0] "" msgstr[1] "" -#. Set main labels (for translation) -#. -#: ../src/main.c:435 ../src/keyboard.c:1291 +#: ../src/main.c:364 ../src/keyboard.c:1291 msgid "Introduction" msgstr "Introduction" -#: ../src/main.c:438 ../src/top10.c:109 +#: ../src/main.c:367 ../src/top10.c:109 msgid "Basic course" msgstr "Basics" -#: ../src/main.c:441 ../src/top10.c:112 +#: ../src/main.c:370 ../src/top10.c:112 msgid "Adaptability" msgstr "Adaptability" -#: ../src/main.c:444 ../src/callbacks.c:1310 ../src/top10.c:89 +#: ../src/main.c:373 ../src/callbacks.c:1226 ../src/top10.c:89 #: ../src/top10.c:115 msgid "Speed" msgstr "" -#: ../src/main.c:447 ../src/callbacks.c:1333 ../src/top10.c:91 +#: ../src/main.c:376 ../src/callbacks.c:1249 ../src/top10.c:91 #: ../src/top10.c:118 msgid "Fluidity" msgstr "" -#: ../src/callbacks.c:468 ../src/tutor.c:391 +#: ../src/callbacks.c:407 ../src/tutor.c:515 #, fuzzy msgid "Keys:" msgstr "Keys: %s" -#: ../src/callbacks.c:858 ../src/callbacks.c:874 +#: ../src/callbacks.c:774 ../src/callbacks.c:790 msgid "Connecting..." msgstr "" -#: ../src/callbacks.c:1145 +#: ../src/callbacks.c:1061 msgid "Overwrite user layout" msgstr "Overwrite user layout" -#: ../src/callbacks.c:1147 +#: ../src/callbacks.c:1063 msgid "This will OVERWRITE an existent keyboard layout." msgstr "This will OVERWRITE an existing keyboard layout." -#: ../src/callbacks.c:1154 +#: ../src/callbacks.c:1070 msgid "Remove user layout" msgstr "Remove user layout" -#: ../src/callbacks.c:1156 +#: ../src/callbacks.c:1072 msgid "This will REMOVE an existent keyboard layout." msgstr "This will REMOVE an existing keyboard layout." -#: ../src/callbacks.c:1163 +#: ../src/callbacks.c:1079 msgid "Reset progress data" msgstr "" -#: ../src/callbacks.c:1164 +#: ../src/callbacks.c:1080 msgid "This will DELETE all the progress data shown in the charts." msgstr "" -#: ../src/callbacks.c:1307 ../src/top10.c:87 +#: ../src/callbacks.c:1223 ../src/top10.c:87 msgid "Accuracy" msgstr "Accuracy" -#: ../src/callbacks.c:1310 ../src/tutor.c:1160 +#: ../src/callbacks.c:1226 ../src/tutor.c:1288 msgid "(WPM)" msgstr "(WPM)" -#: ../src/callbacks.c:1321 +#: ../src/callbacks.c:1237 msgid "Errors" msgstr "" -#: ../src/callbacks.c:1324 +#: ../src/callbacks.c:1240 msgid "Touch times (s)" msgstr "" -#: ../src/callbacks.c:1336 ../src/tutor.c:1187 ../src/top10.c:69 +#: ../src/callbacks.c:1252 ../src/tutor.c:1315 ../src/top10.c:69 msgid "Score" msgstr "Score" #. Translators: your language code (first 2 letters of your po-file) -#: ../src/translation.c:423 ../src/translation.c:489 ../src/tutor.c:1597 +#: ../src/translation.c:485 ../src/tutor.c:1725 msgid "en" msgstr "en" -#: ../src/translation.c:576 +#: ../src/translation.c:572 msgid "" "The basic course focuses on having you read the characters presented to you " "on screen and typing the corresponding keys. Remember to keep your hands " @@ -601,59 +601,59 @@ "introduction on main menu)." msgstr "" -#: ../src/translation.c:580 +#: ../src/translation.c:576 msgid "" "The key set used in each series will be shown in the above message line. The " "[Space], [Shift] and [Enter] keys may not show up there but are used very " "often." msgstr "" -#: ../src/translation.c:583 +#: ../src/translation.c:579 msgid "" "The message line below follows and echoes your key presses. If required, it " "changes and displays instructions for actions required from you." msgstr "" -#: ../src/translation.c:587 +#: ../src/translation.c:583 msgid "" "Here you may practice and improve your memorization of all keys. There will " "be sentences presented with nonsense words which mix some numbers and " "symbols." msgstr "" -#: ../src/translation.c:590 +#: ../src/translation.c:586 msgid "" "In order to keep the lesson contents language and keyboard independent, " "accented letter combinations will probably not appear. For real word " "sentences, please use the fourth option of the main menu (about fluidness)." msgstr "" -#: ../src/translation.c:594 +#: ../src/translation.c:590 msgid "" "After each exercise there will be a brief statistics panel reviewing your " "performance along with some relevant comments." msgstr "" -#: ../src/translation.c:598 +#: ../src/translation.c:594 msgid "" "This exercise is very similar to the second one, for adaptability. The " "difference is that here you'll type real words." msgstr "" -#: ../src/translation.c:601 +#: ../src/translation.c:597 msgid "" "The default language is the actual one of the interface. But you may select " "any other texts with words you would like to use. Press the 'Other' option " "above and add files containing those texts." msgstr "" -#: ../src/translation.c:605 +#: ../src/translation.c:601 msgid "" "With this exercise the focus is on speed. So, you are supposed to type " "really fast and I will only flatter you when you deserve it!" msgstr "" -#: ../src/translation.c:609 +#: ../src/translation.c:605 msgid "" "We will now use complete sentences and paragraphs which make logical sense. " "This may distract you while you type if you try to understand what you are " @@ -661,7 +661,7 @@ "interpreting and analyzing the content." msgstr "" -#: ../src/translation.c:613 +#: ../src/translation.c:609 msgid "" "We do not mean to imply that the typists must behave like a robot, without " "understanding what they type. We do aim to develop the skill of typing, " @@ -671,8 +671,7 @@ "real meaning of the text." msgstr "" -#. English typo: minimun -> minimum -#: ../src/translation.c:618 +#: ../src/translation.c:613 msgid "" "These exercises are longer. Each exercise consists of three paragraphs and " "the emphasis is placed on correctness and rhythm, with a minimum speed " @@ -680,7 +679,6 @@ "any mistakes. In other words, only input without error will be accepted." msgstr "" -#. English typo: recomendations -> recommendations #: ../src/keyboard.c:1094 #, fuzzy msgid "" @@ -782,13 +780,11 @@ msgid "Step %i" msgstr "" -#. Recommendations -#: ../src/keyboard.c:1140 +#: ../src/keyboard.c:1142 msgid "To position the hands" msgstr "" -#. Final words -#: ../src/keyboard.c:1225 +#: ../src/keyboard.c:1227 msgid "Go ahead!" msgstr "" @@ -834,66 +830,66 @@ msgid "Press and edit me" msgstr "Press a key" -#: ../src/tutor.c:176 +#: ../src/tutor.c:300 msgid "Lesson:" msgstr "Lesson" -#: ../src/tutor.c:186 +#: ../src/tutor.c:310 msgid "Paragraphs:" msgstr "Paragraphs" -#: ../src/tutor.c:219 +#: ../src/tutor.c:343 msgid "Klavaro - Basic Course" msgstr "Klavaro - Basic Course" -#: ../src/tutor.c:224 +#: ../src/tutor.c:348 msgid "Klavaro - Adaptability" msgstr "Klavaro - Adaptability" -#: ../src/tutor.c:227 +#: ../src/tutor.c:351 msgid "" "Adaptability exercises: automating the fingers responses, typing over all " "the keyboard." msgstr "Adaptability. Automating finger responses" -#: ../src/tutor.c:232 +#: ../src/tutor.c:356 msgid "Klavaro - Velocity" msgstr "Klavaro - Velocity" -#: ../src/tutor.c:233 +#: ../src/tutor.c:357 msgid "Velocity exercises: accelerate typing real words." msgstr "Speed exercises: accelerate typing real words." -#: ../src/tutor.c:237 +#: ../src/tutor.c:361 msgid "Klavaro - Fluidness" msgstr "Klavaro - Fluidity" -#: ../src/tutor.c:239 +#: ../src/tutor.c:363 msgid "Fluidness exercises: accuracy typing good sense paragraphs." msgstr "Accuracy typing with sensible paragraphs." -#: ../src/tutor.c:301 +#: ../src/tutor.c:425 #, fuzzy msgid "End of exercise. Press [Enter] to start another." msgstr "End of exercise. Press [Enter] to start another." -#: ../src/tutor.c:329 +#: ../src/tutor.c:453 msgid "Learning the key positions." msgstr "Learning the key positions." -#: ../src/tutor.c:332 +#: ../src/tutor.c:456 msgid "Press any key to start the exercise. " msgstr "Press any key to start the exercise." -#: ../src/tutor.c:440 ../src/tutor.c:443 +#: ../src/tutor.c:567 ../src/tutor.c:570 msgid "Start typing when you are ready. " msgstr "Start typing when you are ready." -#: ../src/tutor.c:441 +#: ../src/tutor.c:568 msgid "Use backspace to correct errors." msgstr "" -#: ../src/tutor.c:885 +#: ../src/tutor.c:1012 #, c-format msgid "" "ps.: logging not performed for this session: the number of typed characters " @@ -901,102 +897,99 @@ msgstr "" "No logging for this session. Typed characters (%i) must be more than %i." -#: ../src/tutor.c:1027 +#: ../src/tutor.c:1154 msgid "ps.: you have entered the Top 10 list, great!" msgstr "You have entered the Top 10 list, Well done!" -#: ../src/tutor.c:1039 +#: ../src/tutor.c:1166 msgid "" "ps.: the text you just typed doesn't seem to be similar to ordinary texts in " "the language currently selected: we can't account for it in the 'Top 10' " "contest." msgstr "Your text is not like ordinary text. We can't count it in the Top 10." -#. Begin the accuracy -#: ../src/tutor.c:1087 +#: ../src/tutor.c:1215 msgid "STATISTICS" msgstr "Statistics" -#: ../src/tutor.c:1088 +#: ../src/tutor.c:1216 msgid "Elapsed time:" msgstr "Elapsed time" -#: ../src/tutor.c:1089 +#: ../src/tutor.c:1217 msgid "minute and" msgid_plural "minutes and" msgstr[0] "minute and" msgstr[1] "minutes and" -#: ../src/tutor.c:1090 +#: ../src/tutor.c:1218 msgid "second" msgid_plural "seconds" msgstr[0] "second" msgstr[1] "seconds" -#: ../src/tutor.c:1091 +#: ../src/tutor.c:1219 msgid "Error ratio:" msgstr "" -#: ../src/tutor.c:1091 +#: ../src/tutor.c:1219 msgid "Accuracy:" msgstr "Accuracy:" -#: ../src/tutor.c:1112 ../src/tutor.c:1137 ../src/tutor.c:1160 -#: ../src/tutor.c:1186 +#: ../src/tutor.c:1240 ../src/tutor.c:1265 ../src/tutor.c:1288 +#: ../src/tutor.c:1314 msgid "Goal:" msgstr "Goal:" -#: ../src/tutor.c:1119 +#: ../src/tutor.c:1247 msgid "Characters per second:" msgstr "Characters per second:" -#: ../src/tutor.c:1137 +#: ../src/tutor.c:1265 msgid "(CPS)" msgstr "(CPS)" -#: ../src/tutor.c:1142 +#: ../src/tutor.c:1270 msgid "Words per minute:" msgstr "Words per minute:" -#: ../src/tutor.c:1167 +#: ../src/tutor.c:1295 msgid "Fluidness:" msgstr "Fluidity:" -#: ../src/tutor.c:1194 +#: ../src/tutor.c:1322 msgid "Comments:" msgstr "Comments:" -#: ../src/tutor.c:1676 +#: ../src/tutor.c:1804 msgid "space" msgstr "" #. Translators: the name of letter Y -#: ../src/tutor.c:1681 +#: ../src/tutor.c:1809 msgid "wye" msgstr "" #. Translators: the name of the Return key -#: ../src/tutor.c:1685 +#: ../src/tutor.c:1813 msgid "enter" msgstr "" -#: ../src/tutor.c:1691 +#: ../src/tutor.c:1819 msgid "apostrophe" msgstr "" #. Translators: double quote symbol: " -#: ../src/tutor.c:1695 +#: ../src/tutor.c:1823 msgid "quote" msgstr "" #. Translators: ampersand symbol: & -#: ../src/tutor.c:1699 +#: ../src/tutor.c:1827 msgid "ampersand" msgstr "" -#. Error frequencies or touch times -#. -#: ../src/plot.c:308 +#: ../src/plot.c:305 msgid "Character" msgstr "" @@ -1004,11 +997,11 @@ msgid "Date & Time" msgstr "" -#: ../src/basic.c:331 +#: ../src/basic.c:326 msgid "Positions of keys seems to be learned!" msgstr "Positions of keys seems to be learned!" -#: ../src/basic.c:332 +#: ../src/basic.c:327 msgid "" " Congratulations!\n" " You have accomplished the entire basic course.\n" @@ -1020,7 +1013,7 @@ " Go to the next type of exercise: adaptability.\n" " There you will practice mainly the accuracy.\n" -#: ../src/basic.c:338 +#: ../src/basic.c:333 msgid "" " All right, now you got it!\n" " Go to the next lesson.\n" @@ -1028,33 +1021,35 @@ " Now you've got it!\n" " On to the next lesson.\n" -#: ../src/adaptability.c:217 +#: ../src/adaptability.c:213 +#, fuzzy, c-format msgid "" -" Your accuracy rate is below 90%...\n" +" Your accuracy rate is below %.0f%%...\n" " Could you please try again to improve it?\n" msgstr "" "Your accuracy rate is below 90%...\n" " Could you please try again to improve it?\n" -#: ../src/adaptability.c:222 +#: ../src/adaptability.c:216 +#, fuzzy, c-format msgid "" " You are doing well. But...\n" -" Could you make the accuracy reach 95%?\n" +" Could you make the accuracy reach %.0f%%?\n" msgstr "" " Doing well but...\n" " Could you improve accuracy?\n" -#: ../src/adaptability.c:225 +#: ../src/adaptability.c:219 #, fuzzy, c-format msgid "" " You are almost there, but your accuracy rate is still below %.0f%%.\n" -" Try a few more times, or maybe you're getting upset, so go to other kind of " -"exercise.\n" +" Try a few more times, or maybe you're getting upset, so go to another kind " +"of exercise.\n" msgstr "" " Almost there, but accuracy is less than 98%.\n" " Try a few more times.\n" -#: ../src/adaptability.c:232 +#: ../src/adaptability.c:226 #, fuzzy, c-format msgid "" " Very good!\n" @@ -1067,11 +1062,11 @@ " Now it is time to increase your velocity.\n" " Go to the 3rd exercise at the main menu.\n" -#: ../src/velocity.c:313 ../src/fluidness.c:435 +#: ../src/velocity.c:312 ../src/fluidness.c:435 msgid "Pasted_or_dropped" msgstr "Pasted or dropped" -#: ../src/velocity.c:432 +#: ../src/velocity.c:423 msgid "" " You are just beginning.\n" " Be patient, try it again every day, rest and don't worry so much:\n" @@ -1081,25 +1076,28 @@ " Be patient, try it again every day, rest and don't worry so much:\n" " persistence and practice will improve your velocity.\n" -#: ../src/velocity.c:436 +#: ../src/velocity.c:427 +#, fuzzy, c-format msgid "" " Still away from the highway. You can make better...\n" -" Try at least 20 WPM.\n" +" Try to reach at least %.0f WPM.\n" msgstr " You can improve. Try for more than 20 WPM.\n" -#: ../src/velocity.c:439 +#: ../src/velocity.c:430 +#, fuzzy, c-format msgid "" " You are doing well, but need to go faster.\n" -" And don't forget the accuracy. Try to get 30 WPM.\n" +" And don't forget the accuracy. Try to get %.0f WPM.\n" msgstr "Doing well! Try faster, but don't forget accuracy.\n" -#: ../src/velocity.c:443 +#: ../src/velocity.c:433 +#, fuzzy, c-format msgid "" " Fine. Now you need to start running.\n" -" Can you reach 40 WPM?\n" +" Can you reach %.0f WPM?\n" msgstr " Fine. Now try to reach 40 WPM.\n" -#: ../src/velocity.c:446 +#: ../src/velocity.c:436 #, fuzzy, c-format msgid "" " Very good. You are almost there.\n" @@ -1108,31 +1106,36 @@ " Very good. Almost there\n" ". Try for 50 WPM.\n" -#: ../src/velocity.c:451 +#: ../src/velocity.c:439 msgid "" " Excellent. For this course, that is enough.\n" " Try now the fluidness exercises, OK?\n" msgstr " Excellent. Now try the fluidity exercises.\n" -#: ../src/velocity.c:455 +#: ../src/velocity.c:442 +#, fuzzy, c-format msgid "" -" Fast! Are you training for a competition?\n" -" So, try to get 70 WPM!\n" +" Fast! Are you a professional?\n" +" So, try to get %.0f WPM!\n" msgstr " Fast! Now try for 70 WPM.\n" -#: ../src/velocity.c:458 -msgid "" -" Top of \"qwerty\". Now it's time to change to the Dvorak mode.\n" -" Are you afraid of reaching 80 WPM?\n" -msgstr " Top of the 'qwerty'. Now try the Dvorak mode.\n" +#. Translators: Speed Racer is a reference to a Japanese anime franchise +#. about automobile racing, also known as Mach GoGoGo. +#: ../src/velocity.c:447 +#, c-format +msgid " Ranking good, Speed Racer! Are you afraid of reaching %.0f WPM?\n" +msgstr "" -#: ../src/velocity.c:462 +#. Translators: feel free to change the reference to that martial art, if you find another good analogy. +#: ../src/velocity.c:451 +#, fuzzy, c-format msgid "" -" Dvorak mode dominated!\n" -" Can you fly at 90 WPM?\n" +" Kunf-fu mastering!\n" +" Can you fly at %.0f WPM?\n" msgstr " You're good with Dvorak! Can you reach 90 WPM?\n" -#: ../src/velocity.c:466 +#. Translators: Dvorak here means that infamous ergonomic keyboard layout. +#: ../src/velocity.c:454 msgid "" " Dvorak master!\n" " I have no words to express my admiration!\n" @@ -1140,28 +1143,28 @@ " A Dvorak master!\n" " I have no words to express my admiration.\n" -#: ../src/fluidness.c:545 +#: ../src/fluidness.c:538 #, fuzzy, c-format msgid "" " You type accurately but not so fast.\n" " Can you reach %.0f WPM?\n" msgstr " Accurate, could you reach 50 WPM?\n" -#: ../src/fluidness.c:548 +#: ../src/fluidness.c:541 #, fuzzy, c-format msgid "" " Your rhythm is not so constant. Calm down.\n" " For now, try to make the fluidness greater than %i%%.\n" msgstr " Try for a constant rhythm, fluidity greater than 70%.\n" -#: ../src/fluidness.c:551 +#: ../src/fluidness.c:544 #, fuzzy, c-format msgid "" " You are almost getting there. Type more fluently.\n" " I want a fluidness greater than %.0f%%.\n" msgstr " Almost there, try for fluidity greater than 80%.\n" -#: ../src/fluidness.c:554 +#: ../src/fluidness.c:547 msgid "" " Congratulations!\n" " It seems to me that you are a professional.\n" @@ -1169,7 +1172,7 @@ " Hope you have enjoyed. Thanks and be happy!\n" msgstr " You seem like a professional! Hope you enjoyed Klavaro.\n" -#: ../src/fluidness.c:559 +#: ../src/fluidness.c:552 msgid "" " How can you type so fast?\n" " You have exceeded all my expectations.\n" @@ -1228,6 +1231,18 @@ msgid "Could not upload/download scores." msgstr "Could not upload/download scores." +#~ msgid "" +#~ " Top of \"qwerty\". Now it's time to change to the Dvorak mode.\n" +#~ " Are you afraid of reaching 80 WPM?\n" +#~ msgstr " Top of the 'qwerty'. Now try the Dvorak mode.\n" + +#~ msgid "Press here to restart the exercise. Hotkey: [Ctrl R]" +#~ msgstr "Press to restart the exercise. [Ctrl R]" + +#, fuzzy +#~ msgid "Klavaro" +#~ msgstr "'Klavaro'" + #~ msgid "Default" #~ msgstr "Default" diff -Nru klavaro-1.9.9/po/eo.po klavaro-3.00/po/eo.po --- klavaro-1.9.9/po/eo.po 2013-08-15 13:38:49.000000000 +0000 +++ klavaro-3.00/po/eo.po 2014-01-13 23:25:50.000000000 +0000 @@ -1,13 +1,13 @@ # Klavaro - Traduko al Esperanto -# Copyright (C) 2008, 2009, 2010, 2011, 2012, 2013 Free Software Foundation, Inc. +# Copyright (C) 2008, 2009, 2010, 2011, 2012, 2013, 2014 Free Software Foundation, Inc. # This file is distributed under the same license as the klavaro package. -# Felipe Castro , 2008, 2009, 2010, 2011, 2012, 2013. +# Felipe Castro , 2008, 2009, 2010, 2011, 2012, 2013, 2014. msgid "" msgstr "" -"Project-Id-Version: klavaro-1.9.7\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2013-08-15 10:38-0300\n" -"PO-Revision-Date: 2013-05-14 11:47-0300\n" +"Project-Id-Version: klavaro-3.00-pre2\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2014-01-13 21:25-0200\n" +"PO-Revision-Date: 2014-01-09 20:33-0300\n" "Last-Translator: Felipe Castro \n" "Language-Team: Esperanto \n" "Language: eo\n" @@ -15,553 +15,554 @@ "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n!=1);\n" - -#: ../data/klavaro.desktop.in.h:1 ../data/klavaro.glade.h:59 -msgid "Yet another touch typing tutor" -msgstr "Simple plia instruilo por tajpado" +"X-Generator: Poedit 1.5.4\n" #: ../data/klavaro.glade.h:1 -msgid "Klavaro - Main menu" -msgstr "Klavaro - Ĉefa menuo" +msgid "About 'Klavaro'" +msgstr "Pri 'Klavaro'" #: ../data/klavaro.glade.h:2 -msgid "Don't be shy about learning the basics!" -msgstr "Ne timetu lerni la bazon!" +msgid "Yet another touch typing tutor" +msgstr "Simple plia instruilo por tajpado" #: ../data/klavaro.glade.h:3 -msgid "Learn how to type correctly" -msgstr "Lernu kiel korekte tajpadi" +msgid "Remember always: someone loves you!" +msgstr "Ĉiam memoru: iu amas vin!" #: ../data/klavaro.glade.h:4 -msgid "Initial training for your fingers." -msgstr "Ektrejno por viaj fingroj." +msgid "Change language" +msgstr "Ŝanĝi lingvon" #: ../data/klavaro.glade.h:5 -msgid "First steps with initial training" -msgstr "Unuaj paŝoj kun ektrejnado" +msgid "Attention!" +msgstr "Atentu!" #: ../data/klavaro.glade.h:6 -msgid "Memorizing the keyboard practicing random keys exercises." -msgstr "Parkeru la klavaron per praktikado de hazardaj klavaj ekzercoj." +msgid "Do you confirm?" +msgstr "Ĉu vi konfirmas?" #: ../data/klavaro.glade.h:7 -msgid "Practice with random keys" -msgstr "Praktiki per hazardaj klavoj" +msgid "_No" +msgstr "_Ne" + +#: ../data/klavaro.glade.h:8 +msgid "_Yes" +msgstr "_Jes" -#. English typo: touchs -> touches #: ../data/klavaro.glade.h:9 -msgid "Accelerating the touches practicing random words exercises." -msgstr "Akcelu la tuŝojn per praktikado de hazardaj ekzercoj." +msgid "Help?" +msgstr "Helpon?" #: ../data/klavaro.glade.h:10 -msgid "Practice with random words" -msgstr "Praktiki per hazardaj vortoj" +msgid "This is a tip. Now you press this button to return to the main menu." +msgstr "" +"Tio ĉi estas konsileto. Nun vi premu tiun ĉi butonon por reiri al la ĉefa " +"menuo." #: ../data/klavaro.glade.h:11 -msgid "Becoming proficient practicing complete paragraphs exercises." -msgstr "Lertiĝu per praktikado de kompletaj alineaj ekzercoj." +msgid "B_ack to menu" +msgstr "_Reiri menuen" #: ../data/klavaro.glade.h:12 -msgid "Practice with complete texts" -msgstr "Praktiki per kompletaj tekstoj" +msgid "" +"The main menu of the application is very straightforward. Just select the " +"type of exercise you wish to take. Do not worry about clicking any button on " +"the screen. The buttons will never hurt you!" +msgstr "" +"La ĉefa menuo de la aplikaĵo estas tre simpla. Simple elektu la tipon de " +"ekzerco, kiun vi volas praktiki. Ne timu musklaki iun ajn butonon: ili " +"neniam vundos vin!" #: ../data/klavaro.glade.h:13 msgid "" -"Keyboard layout for modules 1 and 2. Also used informatively in the " -"fluidness contest." +"Also the controls have tips which will appear if you hover over them with " +"your mouse. These tips can come in very handy. To see how these tips work, " +"position your mouse over the button below, and without clicking, wait for " +"the tip to appear..." msgstr "" -"Klavar-aranĝo por moduloj 1 kaj 2. Ankaŭ uzate informe en la flueca konkuro." +"Krome, la regiloj enhavas konsiletojn, kiuj aperas kiam vi pasas la muson " +"sur ili. Tiuj konsiletoj povas esti tre utilaj. Por konstati kiel ili " +"funkcias, bonvolu igi la muson sur la suban butonon kaj, ne musklakante ĝin, " +"atendu ke la konsileto aperu..." #: ../data/klavaro.glade.h:14 -msgid "_Keyboard:" -msgstr "_Klavaro:" +msgid "Klavaro - Select file" +msgstr "Klavaro - Elektu dosieron" #: ../data/klavaro.glade.h:15 -msgid "Language for modules 3 and 4." -msgstr "Lingvo por moduloj 3 kaj 4." +msgid "_Cancel" +msgstr "_Rezigni" #: ../data/klavaro.glade.h:16 -msgid "_Language:" -msgstr "_Lingvo" +msgid "_Open" +msgstr "_Malfermi" #: ../data/klavaro.glade.h:17 -msgid "Variant" -msgstr "Variaĵo" +msgid "Re_name:" +msgstr "Re_nomigi:" #: ../data/klavaro.glade.h:18 -msgid "Klavaro" -msgstr "'Klavaro'" +msgid "Rename the selected item." +msgstr "Renomigi la elektitan eron." #: ../data/klavaro.glade.h:19 -msgid "Country / Custom" -msgstr "Lando / Propraĵo" +msgid "" +"Read a text file and add a copy of it here. The file must be encoded in " +"UTF-8." +msgstr "" +"Legi tekstan dosieron kaj aldoni kopion de ĝi tie ĉi. La dosiero devas esti " +"kodigita laŭ UTF-8." #: ../data/klavaro.glade.h:20 -msgid "Your language here." -msgstr "Via lingvo ĉi tie." +msgid "_Open text file" +msgstr "_Malfermi teksto-dosieron" #: ../data/klavaro.glade.h:21 -msgid "Speech" -msgstr "Parolado" +msgid "Paste text that was copied to the clipboard." +msgstr "Alglui tekston kiu estis kopiita al la provizorujo (\"Clipboard\")." #: ../data/klavaro.glade.h:22 -msgid "Little tip about this program." -msgstr "Konsileto pri tiu ĉi programo." +msgid "_Paste from clipboard" +msgstr "Al_glui el la tondejo" #: ../data/klavaro.glade.h:23 -msgid "_Help" -msgstr "_Helpon" +msgid "Remove the selected item." +msgstr "Forigi la elektitan eron." #: ../data/klavaro.glade.h:24 -msgid "General information about the program." -msgstr "Ĝenerala informo pri la programo." +msgid "_Remove copied file" +msgstr "_Forigi kopiitan dosieron" #: ../data/klavaro.glade.h:25 -msgid "_About..." -msgstr "_Pri..." +msgid "Apply the selected item to create an exercise." +msgstr "Apliki la elektitan eron por krei ekzercon." #: ../data/klavaro.glade.h:26 -msgid "Exit the application immediately." -msgstr "Eliri la aplikaĵon senpere." +msgid "_Apply" +msgstr "_Apliki" #: ../data/klavaro.glade.h:27 -msgid "_Close" -msgstr "_Fermi" +msgid "Close this window." +msgstr "Fermi tiun ĉi fenestron." #: ../data/klavaro.glade.h:28 -msgid "Load other exercises/lessons" -msgstr "Ŝargi je aliaj ekzercoj/lecionoj." +msgid "_Close" +msgstr "_Fermi" #: ../data/klavaro.glade.h:29 -msgid "_Other texts" -msgstr "_Aliaj tekstoj" +msgid "Country / Custom" +msgstr "Lando / Propraĵo" #: ../data/klavaro.glade.h:30 -msgid "_Lesson:" -msgstr "_Leciono:" +msgid "Variant" +msgstr "Variaĵo" #: ../data/klavaro.glade.h:31 -msgid "Edit the character set to be used in this lesson." -msgstr "Redakti la signaron uzotan en ĉi tiu leciono." +msgid "Remove the selected custom layout." +msgstr "Forigi la elektitan personan aranĝon." #: ../data/klavaro.glade.h:32 -msgid "Edit the character set to be used in lessons 44 through 50." -msgstr "Redakti la signaron uzotan en la lecionoj 44 ĝis 50." +msgid "_Remove" +msgstr "_Forigi" #: ../data/klavaro.glade.h:33 -msgid "This is a specific exercise, adjusted to your error profile." -msgstr "Tio ĉi estas specifa ekzerco, agordita el via erar-kolekto." +msgid "" +"Toggles the shift effect on the keys. Alternates between the upper and lower " +"characters of the keys." +msgstr "" +"Ŝanĝas la alternigan efekton por la klavoj. Alternas inter majuskloj kaj " +"minuskloj." -#: ../data/klavaro.glade.h:34 ../src/tutor.c:252 -msgid "Drag and drop text here to practice with it." -msgstr "Trenu kaj lasu tekston ĉi tie por praktiki per ĝi." +#: ../data/klavaro.glade.h:34 +msgid "SPACE BAR" +msgstr "SPACO-KLAVO" -#: ../data/klavaro.glade.h:35 -msgid "Press here to restart the exercise. Hotkey: [Ctrl R]" -msgstr "Premu tion ĉi por rekomenci la ekzercon. Klavkomando: [Ctrl R]" +#: ../data/klavaro.glade.h:35 ../src/keyboard.c:1630 +msgid "thumbs" +msgstr "dikfingroj" #: ../data/klavaro.glade.h:36 -msgid "Show the virtual keyboard and the relation between fingers and keys." -msgstr "" -"Montri la virtualan klavaron kaj la rilaton inter la fingroj kaj la klavoj." +msgid "Ctrl" +msgstr "Ctrl" #: ../data/klavaro.glade.h:37 -msgid "_Keyboard" -msgstr "_Klavaro" +msgid "Caps" +msgstr "Caps" #: ../data/klavaro.glade.h:38 -msgid "Select the font to be used in the exercise window." -msgstr "Elektu la litertiparon uzotan en la ekzerca fenestro." +msgid "S_ave as:" +msgstr "K_onservi kiel:" #: ../data/klavaro.glade.h:39 -msgid "_Font" -msgstr "_Tiparo" +msgid "Show previous screen." +msgstr "Montri antaŭan ekranon." #: ../data/klavaro.glade.h:40 -msgid "Keep this checked if you want to get those nice beeps." -msgstr "Tenu tion ĉi aktiva se vi volas aŭdi tiujn plaĉajn sonoretojn." +msgid "_Previous step" +msgstr "_Pasinta paŝo" #: ../data/klavaro.glade.h:41 -msgid "_Beep" -msgstr "Pep_o" +msgid "Show next screen." +msgstr "Montri sekvan ekranon." #: ../data/klavaro.glade.h:42 -msgid "Co_urse information" -msgstr "_Informo pri la kurso" +msgid "_Next step" +msgstr "_Sekvonta paŝo" #: ../data/klavaro.glade.h:43 -msgid "Charts showing the learning progress along the exercises." -msgstr "Grafikaĵoj montrantaj la lernadan progreson laŭ la ekzercoj." +msgid "Return without any modification." +msgstr "Retroiri sen ajna ŝanĝo." #: ../data/klavaro.glade.h:44 -msgid "_Progress" -msgstr "_Progreso" +msgid "Save the current keyboard layout with the name specified above." +msgstr "Konservi la nunan klavar-aranĝon uzante la nomon difinitan supre." #: ../data/klavaro.glade.h:45 -msgid "Show local and external scores from other users." -msgstr "Montri lokan kaj eksteran poentaron de aliaj uzuloj." +msgid "_Save and use" +msgstr "_Konservi kaj uzi" #: ../data/klavaro.glade.h:46 -msgid "_Top 10" -msgstr "_10 Plej" +msgid "" +"If you like those beautiful hands, click here to close this window keeping " +"them." +msgstr "" +"Se vi ŝatas tiujn belajn manetojn, musklaku tie ĉi por fermi tiun ĉi " +"fenestron tenante ilin." #: ../data/klavaro.glade.h:47 -msgid "Return to the main menu." -msgstr "Reiri al la ĉefa menuo." +msgid "_Keep hands" +msgstr "_Teni la manetojn" #: ../data/klavaro.glade.h:48 -msgid "B_ack to menu" -msgstr "_Reiri menuen" +msgid "Klavaro - Main menu" +msgstr "Klavaro - Ĉefa menuo" #: ../data/klavaro.glade.h:49 -msgid "Close this window." -msgstr "Fermi tiun ĉi fenestron." +msgid "Don't be shy about learning the basics!" +msgstr "Ne timetu lerni la bazon!" #: ../data/klavaro.glade.h:50 -msgid "Font definition" -msgstr "Difino de la litertiparo" +msgid "Learn how to type correctly" +msgstr "Lernu kiel korekte tajpadi" #: ../data/klavaro.glade.h:51 -msgid "Top 10" -msgstr "10 Plej" +msgid "Initial training for your fingers." +msgstr "Ektrejno por viaj fingroj." #: ../data/klavaro.glade.h:52 -msgid "Show extra information" -msgstr "Montri kromajn informojn" +msgid "First steps with initial training" +msgstr "Unuaj paŝoj kun ektrejnado" #: ../data/klavaro.glade.h:53 -msgid "Hide extra information" -msgstr "Kaŝi kromajn informojn" +msgid "Memorizing the keyboard practicing random keys exercises." +msgstr "Parkeru la klavaron per praktikado de hazardaj klavaj ekzercoj." #: ../data/klavaro.glade.h:54 -msgid "Publish to the web your local scores." -msgstr "Publikigi vian lokan poentaron en la reton." +msgid "Practice with random keys" +msgstr "Praktiki per hazardaj klavoj" #: ../data/klavaro.glade.h:55 -msgid "_Participate" -msgstr "_Partopreni" +msgid "Accelerating the touches practicing random words exercises." +msgstr "Akcelu la tuŝojn per praktikado de hazardaj ekzercoj." #: ../data/klavaro.glade.h:56 -msgid "Download from the web the most up to date ranking." -msgstr "Elŝuti el la reto la plej aktualan rangigon." +msgid "Practice with random words" +msgstr "Praktiki per hazardaj vortoj" #: ../data/klavaro.glade.h:57 -msgid "_Update" -msgstr "Ĝis_datigi" +msgid "Becoming proficient practicing complete paragraphs exercises." +msgstr "Lertiĝu per praktikado de kompletaj alineaj ekzercoj." #: ../data/klavaro.glade.h:58 -msgid "About 'Klavaro'" -msgstr "Pri 'Klavaro'" +msgid "Practice with complete texts" +msgstr "Praktiki per kompletaj tekstoj" + +#: ../data/klavaro.glade.h:59 +msgid "" +"Keyboard layout for modules 1 and 2. Also used informatively in the " +"fluidness contest." +msgstr "" +"Klavar-aranĝo por moduloj 1 kaj 2. Ankaŭ uzate informe en la flueca konkuro." #: ../data/klavaro.glade.h:60 -msgid "Remember always: someone loves you!" -msgstr "Ĉiam memoru: iu amas vin!" +msgid "_Keyboard:" +msgstr "_Klavaro:" #: ../data/klavaro.glade.h:61 -msgid "Remove the selected custom layout." -msgstr "Forigi la elektitan personan aranĝon." +msgid "Language for modules 3 and 4." +msgstr "Lingvo por moduloj 3 kaj 4." #: ../data/klavaro.glade.h:62 -msgid "_Remove" -msgstr "_Forigi" +msgid "_Language:" +msgstr "_Lingvo" #: ../data/klavaro.glade.h:63 -msgid "" -"Toggles the shift effect on the keys. Alternates between the upper and lower " -"characters of the keys." -msgstr "" -"Ŝanĝas la alternigan efekton por la klavoj. Alternas inter majuskloj kaj " -"minuskloj." +msgid "Speech" +msgstr "Parolado" #: ../data/klavaro.glade.h:64 -msgid "SPACE BAR" -msgstr "SPACO-KLAVO" +msgid "Your language here." +msgstr "Via lingvo ĉi tie." -#: ../data/klavaro.glade.h:65 ../src/keyboard.c:1630 -msgid "thumbs" -msgstr "dikfingroj" +#: ../data/klavaro.glade.h:65 +msgid "Little tip about this program." +msgstr "Konsileto pri tiu ĉi programo." #: ../data/klavaro.glade.h:66 -msgid "Ctrl" -msgstr "Ctrl" +msgid "_Help" +msgstr "_Helpon" #: ../data/klavaro.glade.h:67 -msgid "Caps" -msgstr "Caps" +msgid "General information about the program." +msgstr "Ĝenerala informo pri la programo." #: ../data/klavaro.glade.h:68 -msgid "S_ave as:" -msgstr "K_onservi kiel:" +msgid "_About..." +msgstr "_Pri..." #: ../data/klavaro.glade.h:69 -msgid "Show previous screen." -msgstr "Montri antaŭan ekranon." +msgid "Exit the application immediately." +msgstr "Eliri la aplikaĵon senpere." #: ../data/klavaro.glade.h:70 -msgid "_Previous step" -msgstr "_Pasinta paŝo" +msgid "Klavaro - Progress" +msgstr "Klavaro - Progreso" #: ../data/klavaro.glade.h:71 -msgid "Show next screen." -msgstr "Montri sekvan ekranon." +msgid "_Lesson:" +msgstr "_Leciono:" #: ../data/klavaro.glade.h:72 -msgid "_Next step" -msgstr "_Sekvonta paŝo" +msgid "Value" +msgstr "Valoro" #: ../data/klavaro.glade.h:73 -msgid "Return without any modification." -msgstr "Retroiri sen ajna ŝanĝo." +msgid "Close this window, returning to the exercise." +msgstr "Fermi tiun ĉi fenestron kaj retroiri al la ekzerco." #: ../data/klavaro.glade.h:74 -msgid "_Cancel" -msgstr "_Rezigni" +msgid "Clear all the progress data, for every module." +msgstr "Forigi la tutan progres-datumaron, de ĉiuj moduloj!" #: ../data/klavaro.glade.h:75 -msgid "Save the current keyboard layout with the name specified above." -msgstr "Konservi la nunan klavar-aranĝon uzante la nomon difinitan supre." +msgid "_Reset" +msgstr "_Reekigi!" #: ../data/klavaro.glade.h:76 -msgid "_Save and use" -msgstr "_Konservi kaj uzi" +msgid "Top 10" +msgstr "10 Plej" #: ../data/klavaro.glade.h:77 -msgid "" -"If you like those beautiful hands, click here to close this window keeping " -"them." -msgstr "" -"Se vi ŝatas tiujn belajn manetojn, musklaku tie ĉi por fermi tiun ĉi " -"fenestron tenante ilin." +msgid "Show extra information." +msgstr "Montri kromajn informojn." #: ../data/klavaro.glade.h:78 -msgid "_Keep hands" -msgstr "_Teni la manetojn" +msgid "Hide extra information." +msgstr "Kaŝi kromajn informojn." #: ../data/klavaro.glade.h:79 -msgid "Change language" -msgstr "Ŝanĝi lingvon" +msgid "Publish to the web your local scores." +msgstr "Publikigi vian lokan poentaron en la reton." #: ../data/klavaro.glade.h:80 -msgid "Attention!" -msgstr "Atentu!" +msgid "_Participate" +msgstr "_Partopreni" #: ../data/klavaro.glade.h:81 -msgid "Do you confirm?" -msgstr "Ĉu vi konfirmas?" +msgid "Download from the web the most up to date ranking." +msgstr "Elŝuti el la reto la plej aktualan rangigon." #: ../data/klavaro.glade.h:82 -msgid "_No" -msgstr "_Ne" +msgid "_Update" +msgstr "Ĝis_datigi" #: ../data/klavaro.glade.h:83 -msgid "_Yes" -msgstr "_Jes" +msgid "Load other exercises/lessons" +msgstr "Ŝargi je aliaj ekzercoj/lecionoj." #: ../data/klavaro.glade.h:84 -msgid "Re_name:" -msgstr "Re_nomigi:" +msgid "_Other texts" +msgstr "_Aliaj tekstoj" #: ../data/klavaro.glade.h:85 -msgid "Rename the selected item." -msgstr "Renomigi la elektitan eron." +msgid "Edit the character set to be used in this lesson." +msgstr "Redakti la signaron uzotan en ĉi tiu leciono." #: ../data/klavaro.glade.h:86 -msgid "" -"Read a text file and add a copy of it here. The file must be encoded in " -"UTF-8." -msgstr "" -"Legi tekstan dosieron kaj aldoni kopion de ĝi tie ĉi. La dosiero devas esti " -"kodigita laŭ UTF-8." +msgid "This is a specific exercise, adjusted to your error profile." +msgstr "Tio ĉi estas specifa ekzerco, agordita el via erar-kolekto." #: ../data/klavaro.glade.h:87 -msgid "_Open text file" -msgstr "_Malfermi teksto-dosieron" +msgid "" +"Edit the character set to be used in lessons after 43: they are customizable!" +msgstr "" +"Redakti la signaron uzotan en la lecionoj post 43: ili estas agordigeblaj!" -#: ../data/klavaro.glade.h:88 -msgid "Paste text that was copied to the clipboard." -msgstr "Alglui tekston kiu estis kopiita al la provizorujo (\"Clipboard\")." +#: ../data/klavaro.glade.h:88 ../src/tutor.c:376 +msgid "Drag and drop text here to practice with it." +msgstr "Trenu kaj lasu tekston ĉi tie por praktiki per ĝi." #: ../data/klavaro.glade.h:89 -msgid "_Paste from clipboard" -msgstr "Al_glui el la tondejo" +msgid "Press here to restart the exercise. Hotkey: [Ctrl-R]" +msgstr "Premu tion ĉi por rekomenci la ekzercon. Klavkomando: [Ctrl R]" #: ../data/klavaro.glade.h:90 -msgid "Remove the selected item." -msgstr "Forigi la elektitan eron." +msgid "Show the virtual keyboard and the relation between fingers and keys." +msgstr "" +"Montri la virtualan klavaron kaj la rilaton inter la fingroj kaj la klavoj." #: ../data/klavaro.glade.h:91 -msgid "_Remove copied file" -msgstr "_Forigi kopiitan dosieron" +msgid "_Keyboard" +msgstr "_Klavaro" #: ../data/klavaro.glade.h:92 -msgid "Apply the selected item to create an exercise." -msgstr "Apliki la elektitan eron por krei ekzercon." +msgid "Select the font to be used in the exercise window." +msgstr "Elektu la litertiparon uzotan en la ekzerca fenestro." #: ../data/klavaro.glade.h:93 -msgid "_Apply" -msgstr "_Apliki" +msgid "Font definition" +msgstr "Difino de la litertiparo" #: ../data/klavaro.glade.h:94 -msgid "Klavaro - Progress" -msgstr "Klavaro - Progreso" +msgid "Keep this checked if you want to get those nice beeps." +msgstr "Tenu tion ĉi aktiva se vi volas aŭdi tiujn plaĉajn sonoretojn." #: ../data/klavaro.glade.h:95 -msgid "Value" -msgstr "Valoro" +msgid "_Beep" +msgstr "Pep_o" #: ../data/klavaro.glade.h:96 -msgid "Clear all the progress data, for every module." -msgstr "Forigi la tutan progres-datumaron, de ĉiuj moduloj!" +msgid "Co_urse information" +msgstr "_Informo pri la kurso" #: ../data/klavaro.glade.h:97 -msgid "_Reset" -msgstr "_Reekigi!" +msgid "Charts showing the learning progress along the exercises." +msgstr "Grafikaĵoj montrantaj la lernadan progreson laŭ la ekzercoj." #: ../data/klavaro.glade.h:98 -msgid "Close this window, returning to the exercise." -msgstr "Fermi tiun ĉi fenestron kaj retroiri al la ekzerco." +msgid "_Progress" +msgstr "_Progreso" #: ../data/klavaro.glade.h:99 -msgid "Klavaro - Select file" -msgstr "Klavaro - Elektu dosieron" +msgid "Return to the main menu." +msgstr "Reiri al la ĉefa menuo." #: ../data/klavaro.glade.h:100 -msgid "_Open" -msgstr "_Malfermi" +msgid "Show local and external scores from other users." +msgstr "Montri lokan kaj eksteran poentaron de aliaj uzuloj." #: ../data/klavaro.glade.h:101 -msgid "Help?" -msgstr "Helpon?" - -#: ../data/klavaro.glade.h:102 -msgid "" -"The main menu of the application is very straightforward. Just select the " -"type of exercise you wish to take. Do not worry about clicking any button on " -"the screen. The buttons will never hurt you!" -msgstr "" -"La ĉefa menuo de la aplikaĵo estas tre simpla. Simple elektu la tipon de " -"ekzerco, kiun vi volas praktiki. Ne timu musklaki iun ajn butonon: ili " -"neniam vundos vin!" - -#: ../data/klavaro.glade.h:103 -msgid "" -"Also the controls have tips which will appear if you hover over them with " -"your mouse. These tips can come in very handy. To see how these tips work, " -"position your mouse over the button below, and without clicking, wait for " -"the tip to appear..." -msgstr "" -"Krome, la regiloj enhavas konsiletojn, kiuj aperas kiam vi pasas la muson " -"sur ili. Tiuj konsiletoj povas esti tre utilaj. Por konstati kiel ili " -"funkcias, bonvolu igi la muson sur la suban butonon kaj, ne musklakante ĝin, " -"atendu ke la konsileto aperu..." +msgid "_Top 10" +msgstr "_10 Plej" -#: ../data/klavaro.glade.h:104 -msgid "This is a tip. Now you press this button to return to the main menu." -msgstr "" -"Tio ĉi estas konsileto. Nun vi premu tiun ĉi butonon por reiri al la ĉefa " -"menuo." +#: ../data/klavaro.desktop.in.h:1 +msgid "A very flexible and efficient touch typing tutor." +msgstr "Tre fleksebla kaj efika instruilo por tajpado." + +#. Translators: these are keywords related to the program. CAI above means Computer Aided Instruction. Feel free to add and/or change the keywords in your language. +#: ../data/klavaro.desktop.in.h:3 +msgid "keyboard;typing;tutor;CAI" +msgstr "tajpado;instruilo;gvidilo;ekzercilo" -#: ../src/main.c:314 +#: ../src/main.c:242 msgid "(Custom)" msgstr "(Propra)" -#: ../src/main.c:315 +#: ../src/main.c:243 msgid "(Edit custom)" msgstr "(Redakti propran)" -#: ../src/main.c:316 +#: ../src/main.c:244 msgid "(Default)" msgstr "(Originala)" -#: ../src/main.c:393 +#: ../src/main.c:321 #, c-format msgid "Dictation mode (depends on this speech synthesizer: %s)" msgid_plural "Dictation mode (depends on one of these speech synthesizers: %s)" msgstr[0] "Diktada reĝimo (dependas de tiu ĉi voĉ-sintezilo: %s)" msgstr[1] "Diktada reĝimo (dependas de unu el tiuj voĉ-sinteziloj: %s)" -#. Set main labels (for translation) -#. -#: ../src/main.c:435 ../src/keyboard.c:1291 +#: ../src/main.c:364 ../src/keyboard.c:1291 msgid "Introduction" msgstr "Enkonduko" -#: ../src/main.c:438 ../src/top10.c:109 +#: ../src/main.c:367 ../src/top10.c:109 msgid "Basic course" msgstr "Baza kurso" -#: ../src/main.c:441 ../src/top10.c:112 +#: ../src/main.c:370 ../src/top10.c:112 msgid "Adaptability" msgstr "Adapteco" -#: ../src/main.c:444 ../src/callbacks.c:1310 ../src/top10.c:89 +#: ../src/main.c:373 ../src/callbacks.c:1226 ../src/top10.c:89 #: ../src/top10.c:115 msgid "Speed" msgstr "Rapideco" -#: ../src/main.c:447 ../src/callbacks.c:1333 ../src/top10.c:91 +#: ../src/main.c:376 ../src/callbacks.c:1249 ../src/top10.c:91 #: ../src/top10.c:118 msgid "Fluidity" msgstr "Flueco" -#: ../src/callbacks.c:468 ../src/tutor.c:391 +#: ../src/callbacks.c:407 ../src/tutor.c:515 msgid "Keys:" msgstr "Klavoj:" -#: ../src/callbacks.c:858 ../src/callbacks.c:874 +#: ../src/callbacks.c:774 ../src/callbacks.c:790 msgid "Connecting..." msgstr "Konektado..." -#: ../src/callbacks.c:1145 +#: ../src/callbacks.c:1061 msgid "Overwrite user layout" msgstr "Anstataŭigi aranĝon jam difinitan" -#: ../src/callbacks.c:1147 +#: ../src/callbacks.c:1063 msgid "This will OVERWRITE an existent keyboard layout." msgstr "Tio ĉi ANSTATAŬIGOS jam ekzistantan klavar-aranĝon." -#: ../src/callbacks.c:1154 +#: ../src/callbacks.c:1070 msgid "Remove user layout" msgstr "Forigi jam difinitan aranĝon" -#: ../src/callbacks.c:1156 +#: ../src/callbacks.c:1072 msgid "This will REMOVE an existent keyboard layout." msgstr "Tio ĉi FORIGOS jam ekzistantan klavar-aranĝon." -#: ../src/callbacks.c:1163 +#: ../src/callbacks.c:1079 msgid "Reset progress data" msgstr "Reekigi progres-datumaron" -#: ../src/callbacks.c:1164 +#: ../src/callbacks.c:1080 msgid "This will DELETE all the progress data shown in the charts." msgstr "Tio FORIGOS la tutan progres-datumaron montratan en la grafikaĵoj." -#: ../src/callbacks.c:1307 ../src/top10.c:87 +#: ../src/callbacks.c:1223 ../src/top10.c:87 msgid "Accuracy" msgstr "Korekteco" -#: ../src/callbacks.c:1310 ../src/tutor.c:1160 +#: ../src/callbacks.c:1226 ../src/tutor.c:1288 msgid "(WPM)" msgstr "(VPM)" -#: ../src/callbacks.c:1321 +#: ../src/callbacks.c:1237 msgid "Errors" msgstr "Eraroj" -#: ../src/callbacks.c:1324 +#: ../src/callbacks.c:1240 msgid "Touch times (s)" msgstr "Tuŝ-tempoj (s)" -#: ../src/callbacks.c:1336 ../src/tutor.c:1187 ../src/top10.c:69 +#: ../src/callbacks.c:1252 ../src/tutor.c:1315 ../src/top10.c:69 msgid "Score" msgstr "Poentaro" #. Translators: your language code (first 2 letters of your po-file) -#: ../src/translation.c:423 ../src/translation.c:489 ../src/tutor.c:1597 +#: ../src/translation.c:485 ../src/tutor.c:1725 msgid "en" msgstr "eo" -#: ../src/translation.c:576 +#: ../src/translation.c:572 msgid "" "The basic course focuses on having you read the characters presented to you " "on screen and typing the corresponding keys. Remember to keep your hands " @@ -573,7 +574,7 @@ "konforme al la ripoza pozicio sur la klavaro (legu la enkondukon el la ĉefa " "menuo)." -#: ../src/translation.c:580 +#: ../src/translation.c:576 msgid "" "The key set used in each series will be shown in the above message line. The " "[Space], [Shift] and [Enter] keys may not show up there but are used very " @@ -583,7 +584,7 @@ "strio. La klavoj [Spaco], [Levigo] kaj [Enigo] ne montriĝos tie, tamen oni " "scias, ke ili estas ofte uzataj." -#: ../src/translation.c:583 +#: ../src/translation.c:579 msgid "" "The message line below follows and echoes your key presses. If required, it " "changes and displays instructions for actions required from you." @@ -591,7 +592,7 @@ "La malsupra mesaĝo-strio ripetigas viajn klav-tuŝojn. Laŭnecese ĝi ŝanĝiĝos " "montrante instrukcion, kiu postulas iun agon de vi." -#: ../src/translation.c:587 +#: ../src/translation.c:583 msgid "" "Here you may practice and improve your memorization of all keys. There will " "be sentences presented with nonsense words which mix some numbers and " @@ -601,7 +602,7 @@ "Estos prezentataj frazoj sensence kunmetitaj per ordinaraj vortoj kaj per " "miksinte kelkajn numerojn kaj simbolojn." -#: ../src/translation.c:590 +#: ../src/translation.c:586 msgid "" "In order to keep the lesson contents language and keyboard independent, " "accented letter combinations will probably not appear. For real word " @@ -611,7 +612,7 @@ "klavar-aranĝo. Por trejni per frazoj kun realaj vortoj, uzu la 4-an opcion " "el la ĉefa menuo (pri flueco)." -#: ../src/translation.c:594 +#: ../src/translation.c:590 msgid "" "After each exercise there will be a brief statistics panel reviewing your " "performance along with some relevant comments." @@ -619,7 +620,7 @@ "Je la fino de ĉiu ekzerco, montriĝos mallonga statistika resumo pri via " "lerteco, kune kun iuj konsiderindaj komentoj." -#: ../src/translation.c:598 +#: ../src/translation.c:594 msgid "" "This exercise is very similar to the second one, for adaptability. The " "difference is that here you'll type real words." @@ -627,7 +628,7 @@ "Tiu ĉi ekzerco tre similas al tiu dua, por adapteco. La diferenco estas: tie " "ĉi vi tajpos realajn vortojn el via propra lingvo." -#: ../src/translation.c:601 +#: ../src/translation.c:597 msgid "" "The default language is the actual one of the interface. But you may select " "any other texts with words you would like to use. Press the 'Other' option " @@ -637,7 +638,7 @@ "alia teksto enhavantan vortojn, kiujn vi dezirus uzi. Por tio, premu la " "supran opcion 'Alia' kaj aldonu dosieron enhavantan tiujn vortojn." -#: ../src/translation.c:605 +#: ../src/translation.c:601 msgid "" "With this exercise the focus is on speed. So, you are supposed to type " "really fast and I will only flatter you when you deserve it!" @@ -645,7 +646,7 @@ "Dume mi kontrolos vian rapidecon. Do, vi strebu tajpi vere rapide tiel, ke " "mi povu sincere flati vin." -#: ../src/translation.c:609 +#: ../src/translation.c:605 msgid "" "We will now use complete sentences and paragraphs which make logical sense. " "This may distract you while you type if you try to understand what you are " @@ -658,7 +659,7 @@ "ekzercojn, tiel vi ne sentos iajn ajn malfacilecojn, supozeble ke vi " "kutimiĝis al tajpadi ne interpretante kaj ne analizante." -#: ../src/translation.c:613 +#: ../src/translation.c:609 msgid "" "We do not mean to imply that the typists must behave like a robot, without " "understanding what they type. We do aim to develop the skill of typing, " @@ -673,8 +674,7 @@ "Post trafinte tiun celon, la ago tajpadi ne plu postulos penadon al vi: tute " "via atento povos turniĝi al la signifo mem." -#. English typo: minimun -> minimum -#: ../src/translation.c:618 +#: ../src/translation.c:613 msgid "" "These exercises are longer. Each exercise consists of three paragraphs and " "the emphasis is placed on correctness and rhythm, with a minimum speed " @@ -686,7 +686,6 @@ "rapideco estas postulata. Tie ĉi vi devos uzi la retro-klavon por korektigi " "la eventualajn erarojn. Alivorte, nur plenkorektaj tekstoj estos permesataj." -#. English typo: recomendations -> recommendations #: ../src/keyboard.c:1094 msgid "" "Correct positioning of the hands and fingers is very important to efficient " @@ -782,13 +781,11 @@ msgid "Step %i" msgstr "Paŝo %i" -#. Recommendations -#: ../src/keyboard.c:1140 +#: ../src/keyboard.c:1142 msgid "To position the hands" msgstr "Por pozicii la manojn" -#. Final words -#: ../src/keyboard.c:1225 +#: ../src/keyboard.c:1227 msgid "Go ahead!" msgstr "Antaŭen!" @@ -828,23 +825,23 @@ msgid "Press and edit me" msgstr "Premu kaj redaktu min" -#: ../src/tutor.c:176 +#: ../src/tutor.c:300 msgid "Lesson:" msgstr "Leciono:" -#: ../src/tutor.c:186 +#: ../src/tutor.c:310 msgid "Paragraphs:" msgstr "Alineoj:" -#: ../src/tutor.c:219 +#: ../src/tutor.c:343 msgid "Klavaro - Basic Course" msgstr "Klavaro - Baza Kurso" -#: ../src/tutor.c:224 +#: ../src/tutor.c:348 msgid "Klavaro - Adaptability" msgstr "Klavaro - Adapteco" -#: ../src/tutor.c:227 +#: ../src/tutor.c:351 msgid "" "Adaptability exercises: automating the fingers responses, typing over all " "the keyboard." @@ -852,43 +849,43 @@ "Adaptecaj ekzercoj: aŭtomatigi la respondojn de la fingroj tra la tuta " "klavaro." -#: ../src/tutor.c:232 +#: ../src/tutor.c:356 msgid "Klavaro - Velocity" msgstr "Klavaro - Rapideco" -#: ../src/tutor.c:233 +#: ../src/tutor.c:357 msgid "Velocity exercises: accelerate typing real words." msgstr "Rapidecaj ekzercoj: akceligi per tajpado de ofte uzatajn vortojn." -#: ../src/tutor.c:237 +#: ../src/tutor.c:361 msgid "Klavaro - Fluidness" msgstr "Klavaro - Flueco" -#: ../src/tutor.c:239 +#: ../src/tutor.c:363 msgid "Fluidness exercises: accuracy typing good sense paragraphs." msgstr "Fluecaj ekzercoj: korekteco per tajpado de bonsencajn alineojn." -#: ../src/tutor.c:301 +#: ../src/tutor.c:425 msgid "End of exercise. Press [Enter] to start another." msgstr "Fino de la ekzerco. Premu [Enter] por iri al alia." -#: ../src/tutor.c:329 +#: ../src/tutor.c:453 msgid "Learning the key positions." msgstr "Lerni la dispozicion de la klavoj." -#: ../src/tutor.c:332 +#: ../src/tutor.c:456 msgid "Press any key to start the exercise. " msgstr "Premu iun klavon por komenci la ekzercon. " -#: ../src/tutor.c:440 ../src/tutor.c:443 +#: ../src/tutor.c:567 ../src/tutor.c:570 msgid "Start typing when you are ready. " msgstr "Ektajpu tiam, kiam vi estas preparita." -#: ../src/tutor.c:441 +#: ../src/tutor.c:568 msgid "Use backspace to correct errors." msgstr "Uzu la retro-klavon por korektigi erarojn." -#: ../src/tutor.c:885 +#: ../src/tutor.c:1012 #, c-format msgid "" "ps.: logging not performed for this session: the number of typed characters " @@ -897,11 +894,11 @@ "rim.: tiu ĉi seanco ne estis konservata: la nombro da tajpitaj signoj (%i) " "devus superi %i." -#: ../src/tutor.c:1027 +#: ../src/tutor.c:1154 msgid "ps.: you have entered the Top 10 list, great!" msgstr "rim.: vi sukcesis eniri la liston de la 10 Plej, gratulon!" -#: ../src/tutor.c:1039 +#: ../src/tutor.c:1166 msgid "" "ps.: the text you just typed doesn't seem to be similar to ordinary texts in " "the language currently selected: we can't account for it in the 'Top 10' " @@ -910,91 +907,88 @@ "rim.: la teksto ĵus tajpita de vi ne ŝajnas simila al ordinara teksto en " "Esperanto: ni ne povas kalkuli je ĝi por la konkuro de la '10 Plej'." -#. Begin the accuracy -#: ../src/tutor.c:1087 +#: ../src/tutor.c:1215 msgid "STATISTICS" msgstr "STATISTIKOJ" -#: ../src/tutor.c:1088 +#: ../src/tutor.c:1216 msgid "Elapsed time:" msgstr "Tempo-daŭro:" -#: ../src/tutor.c:1089 +#: ../src/tutor.c:1217 msgid "minute and" msgid_plural "minutes and" msgstr[0] "minuto kaj" msgstr[1] "minutoj kaj" -#: ../src/tutor.c:1090 +#: ../src/tutor.c:1218 msgid "second" msgid_plural "seconds" msgstr[0] "sekundo" msgstr[1] "sekundoj" -#: ../src/tutor.c:1091 +#: ../src/tutor.c:1219 msgid "Error ratio:" msgstr "Erar-proporcio:" -#: ../src/tutor.c:1091 +#: ../src/tutor.c:1219 msgid "Accuracy:" msgstr "Korekteco:" -#: ../src/tutor.c:1112 ../src/tutor.c:1137 ../src/tutor.c:1160 -#: ../src/tutor.c:1186 +#: ../src/tutor.c:1240 ../src/tutor.c:1265 ../src/tutor.c:1288 +#: ../src/tutor.c:1314 msgid "Goal:" msgstr "Celo:" -#: ../src/tutor.c:1119 +#: ../src/tutor.c:1247 msgid "Characters per second:" msgstr "Signaĵoj por sekundo:" -#: ../src/tutor.c:1137 +#: ../src/tutor.c:1265 msgid "(CPS)" msgstr "(SPS)" -#: ../src/tutor.c:1142 +#: ../src/tutor.c:1270 msgid "Words per minute:" msgstr "Vortoj por minuto:" -#: ../src/tutor.c:1167 +#: ../src/tutor.c:1295 msgid "Fluidness:" msgstr "Flueco:" -#: ../src/tutor.c:1194 +#: ../src/tutor.c:1322 msgid "Comments:" msgstr "Komentoj:" -#: ../src/tutor.c:1676 +#: ../src/tutor.c:1804 msgid "space" msgstr "spaco" #. Translators: the name of letter Y -#: ../src/tutor.c:1681 +#: ../src/tutor.c:1809 msgid "wye" msgstr "ipsilono" #. Translators: the name of the Return key -#: ../src/tutor.c:1685 +#: ../src/tutor.c:1813 msgid "enter" msgstr "enig-klavo" -#: ../src/tutor.c:1691 +#: ../src/tutor.c:1819 msgid "apostrophe" msgstr "apostrofo" #. Translators: double quote symbol: " -#: ../src/tutor.c:1695 +#: ../src/tutor.c:1823 msgid "quote" msgstr "citilo" #. Translators: ampersand symbol: & -#: ../src/tutor.c:1699 +#: ../src/tutor.c:1827 msgid "ampersand" msgstr "kaj-signo" -#. Error frequencies or touch times -#. -#: ../src/plot.c:308 +#: ../src/plot.c:305 msgid "Character" msgstr "Signaĵo" @@ -1002,11 +996,11 @@ msgid "Date & Time" msgstr "Dato kaj Horo" -#: ../src/basic.c:331 +#: ../src/basic.c:326 msgid "Positions of keys seems to be learned!" msgstr "La dispozicio de la klavoj ŝajnas esti parkerita!" -#: ../src/basic.c:332 +#: ../src/basic.c:327 msgid "" " Congratulations!\n" " You have accomplished the entire basic course.\n" @@ -1018,7 +1012,7 @@ " Iru al la sekva tipo de ekzerco: adapteco.\n" " Tie vi praktikos precipe pri korekteco.\n" -#: ../src/basic.c:338 +#: ../src/basic.c:333 msgid "" " All right, now you got it!\n" " Go to the next lesson.\n" @@ -1026,34 +1020,36 @@ " Tutcerte, nun vi sukcesis!\n" " Iru al la sekva leciono.\n" -#: ../src/adaptability.c:217 +#: ../src/adaptability.c:213 +#, c-format msgid "" -" Your accuracy rate is below 90%...\n" +" Your accuracy rate is below %.0f%%...\n" " Could you please try again to improve it?\n" msgstr "" -" Via korekteco estas pli malalta ol 90%...\n" -" Ĉu vi povus provi refoje plibonigi ĝin?\n" +" Via korekteco estas pli malalta ol %.0f%%...\n" +" Ĉu vi provu plibonigi ĝin refoje?\n" -#: ../src/adaptability.c:222 +#: ../src/adaptability.c:216 +#, c-format msgid "" " You are doing well. But...\n" -" Could you make the accuracy reach 95%?\n" +" Could you make the accuracy reach %.0f%%?\n" msgstr "" -" Vi iras bone. Sed...\n" -" Ĉu vi povus plialtigi la korektecon al 95%?\n" +" Vi bone progresas. Tamen...\n" +" Ĉu vi povos plialtigi la korektecon al %.0f%%?\n" -#: ../src/adaptability.c:225 +#: ../src/adaptability.c:219 #, c-format msgid "" " You are almost there, but your accuracy rate is still below %.0f%%.\n" -" Try a few more times, or maybe you're getting upset, so go to other kind of " -"exercise.\n" +" Try a few more times, or maybe you're getting upset, so go to another kind " +"of exercise.\n" msgstr "" " Vi preskaŭ sukcesas, sed via korekteco ankoraŭ estas malpli ol %.0f%%.\n" -" Reprovu iomete plifoje, aŭ eble vi ekenuas, do iru al alia tipo de " +" Reprovu iom plifoje, aŭ eble vi ekenuas, do iru al iu alia tipo de " "ekzerco.\n" -#: ../src/adaptability.c:232 +#: ../src/adaptability.c:226 #, c-format msgid "" " Very good!\n" @@ -1066,11 +1062,11 @@ " Nun estas tempo por plirapidiĝi.\n" " Iru al la 3-a ekzerco el la ĉefa menuo.\n" -#: ../src/velocity.c:313 ../src/fluidness.c:435 +#: ../src/velocity.c:312 ../src/fluidness.c:435 msgid "Pasted_or_dropped" msgstr "Algluite_surlasite" -#: ../src/velocity.c:432 +#: ../src/velocity.c:423 msgid "" " You are just beginning.\n" " Be patient, try it again every day, rest and don't worry so much:\n" @@ -1080,31 +1076,34 @@ " Paciencu, reprovu ĉiutage, ripozu kaj ne tro zorgu:\n" " persistemo kaj praktikado plibonigos vian rapidecon.\n" -#: ../src/velocity.c:436 +#: ../src/velocity.c:427 +#, c-format msgid "" " Still away from the highway. You can make better...\n" -" Try at least 20 WPM.\n" +" Try to reach at least %.0f WPM.\n" msgstr "" -" Ankoraŭ for de la vojo. Vi povas plenumi plibone...\n" -" Provu trafi almenaŭ 20 VPM.\n" +" Ankoraŭ for de la ŝoseo. Vi povas pli bone efektivigi...\n" +" Provu trafi almenaŭ %.0f VPM.\n" -#: ../src/velocity.c:439 +#: ../src/velocity.c:430 +#, c-format msgid "" " You are doing well, but need to go faster.\n" -" And don't forget the accuracy. Try to get 30 WPM.\n" +" And don't forget the accuracy. Try to get %.0f WPM.\n" msgstr "" -" Vi iras bone, tamen vi bezonas iri pli rapide.\n" -" Kaj ne forgesu kontroli la korektecon. Provu sukcesi je 30 VPM.\n" +" Vi bone progresas, tamen vi bezonas iri pli rapide.\n" +" Kaj ne forgesu kontroli la korektecon. Provu sukcesi je %.0f VPM.\n" -#: ../src/velocity.c:443 +#: ../src/velocity.c:433 +#, c-format msgid "" " Fine. Now you need to start running.\n" -" Can you reach 40 WPM?\n" +" Can you reach %.0f WPM?\n" msgstr "" " Bonete. Nun vi devas komenci kuri.\n" -" Ĉu vi povas trafi 40 VPM?\n" +" Ĉu vi povas trafi %.0f VPM?\n" -#: ../src/velocity.c:446 +#: ../src/velocity.c:436 #, c-format msgid "" " Very good. You are almost there.\n" @@ -1113,7 +1112,7 @@ " Tre bone. Vi preskaŭ sukcesas.\n" " Ĉu vi povas finfine trafi %.0f VPM?\n" -#: ../src/velocity.c:451 +#: ../src/velocity.c:439 msgid "" " Excellent. For this course, that is enough.\n" " Try now the fluidness exercises, OK?\n" @@ -1121,32 +1120,34 @@ " Bonege. Laŭ tiu ĉi kurso, jam sufiĉas.\n" " Provu nun la fluecajn ekzercojn, ĉu bone?\n" -#: ../src/velocity.c:455 +#: ../src/velocity.c:442 +#, c-format msgid "" -" Fast! Are you training for a competition?\n" -" So, try to get 70 WPM!\n" +" Fast! Are you a professional?\n" +" So, try to get %.0f WPM!\n" msgstr "" -" Kiel rapide! Ĉu vi trejnas por konkuro?\n" -" Do, provu trafi 70 VPM!\n" +" Kiel rapide! Ĉu vi estas profesiulo?\n" +" Do, provu trafi %.0f VPM!\n" -#: ../src/velocity.c:458 -msgid "" -" Top of \"qwerty\". Now it's time to change to the Dvorak mode.\n" -" Are you afraid of reaching 80 WPM?\n" -msgstr "" -" Plejsupro por la tajpistoj de \"QWERTY\". Nun estas tempo por ŝanĝi al la " -"Dvoraka modo.\n" -" Ĉu vi timas trafi 80 VPM?\n" +#. Translators: Speed Racer is a reference to a Japanese anime franchise +#. about automobile racing, also known as Mach GoGoGo. +#: ../src/velocity.c:447 +#, c-format +msgid " Ranking good, Speed Racer! Are you afraid of reaching %.0f WPM?\n" +msgstr "Bona rangiĝo, Speed Racer! Ĉu vi timas atingi %.0f VPM?\n" -#: ../src/velocity.c:462 +#. Translators: feel free to change the reference to that martial art, if you find another good analogy. +#: ../src/velocity.c:451 +#, c-format msgid "" -" Dvorak mode dominated!\n" -" Can you fly at 90 WPM?\n" +" Kunf-fu mastering!\n" +" Can you fly at %.0f WPM?\n" msgstr "" -" Dvorako estas regita de vi!\n" -" Ĉu vi povas flugi je 90 VPM?\n" +" Uŝua majstro!\n" +" Ĉu vi povas flugi je %.0f VPM?\n" -#: ../src/velocity.c:466 +#. Translators: Dvorak here means that infamous ergonomic keyboard layout. +#: ../src/velocity.c:454 msgid "" " Dvorak master!\n" " I have no words to express my admiration!\n" @@ -1154,7 +1155,7 @@ " Dvoraka majstro!\n" " Mi havas neniun vorton por esprimi mian miron!\n" -#: ../src/fluidness.c:545 +#: ../src/fluidness.c:538 #, c-format msgid "" " You type accurately but not so fast.\n" @@ -1163,7 +1164,7 @@ " Vi korekte tajpadas, tamen ne tiom rapide.\n" " Ĉu vi povas trafi %.0f VPM?\n" -#: ../src/fluidness.c:548 +#: ../src/fluidness.c:541 #, c-format msgid "" " Your rhythm is not so constant. Calm down.\n" @@ -1172,7 +1173,7 @@ " Via tajpada ritmo ne estas tiom konstanta. Trankviliĝu pli.\n" " Nune, provu igi la fluecon pli alta ol %i%%.\n" -#: ../src/fluidness.c:551 +#: ../src/fluidness.c:544 #, c-format msgid "" " You are almost getting there. Type more fluently.\n" @@ -1181,7 +1182,7 @@ " Vi preskaŭ sukcesas. Tajpu pli fluece.\n" " Mi volas fluecon pli altan ol %.0f%%.\n" -#: ../src/fluidness.c:554 +#: ../src/fluidness.c:547 msgid "" " Congratulations!\n" " It seems to me that you are a professional.\n" @@ -1193,7 +1194,7 @@ " Vi ne plu bezonas tiun ĉi programon (min).\n" " Mi esperas, ke vi estas ĝuinto! Dankon kaj feliĉu!\n" -#: ../src/fluidness.c:559 +#: ../src/fluidness.c:552 msgid "" " How can you type so fast?\n" " You have exceeded all my expectations.\n" @@ -1253,19 +1254,25 @@ msgid "Could not upload/download scores." msgstr "Ne eblis alŝuti/elŝuti la poentaron." -#~ msgid "Default" -#~ msgstr "Originala" +#~ msgid "Press here to restart the exercise. Hotkey: [Ctrl R]" +#~ msgstr "Premu tion ĉi por rekomenci la ekzercon. Klavkomando: [Ctrl R]" #~ msgid "" -#~ "1\n" -#~ "2\n" -#~ "3\n" -#~ "4" +#~ " Top of \"qwerty\". Now it's time to change to the Dvorak mode.\n" +#~ " Are you afraid of reaching 80 WPM?\n" #~ msgstr "" -#~ "1\n" -#~ "2\n" -#~ "3\n" -#~ "4" +#~ " Plejsupro por la tajpistoj de \"QWERTY\". Nun estas tempo por ŝanĝi al " +#~ "la Dvoraka modo.\n" +#~ " Ĉu vi timas trafi 80 VPM?\n" + +#~ msgid "Klavaro" +#~ msgstr "'Klavaro'" + +#~ msgid "_Font" +#~ msgstr "_Tiparo" + +#~ msgid "Default" +#~ msgstr "Originala" #~ msgid "No valid host" #~ msgstr "Neniu valida servilo" diff -Nru klavaro-1.9.9/po/es.po klavaro-3.00/po/es.po --- klavaro-1.9.9/po/es.po 2013-08-15 13:38:50.000000000 +0000 +++ klavaro-3.00/po/es.po 2014-01-13 23:25:50.000000000 +0000 @@ -9,8 +9,8 @@ msgid "" msgstr "" "Project-Id-Version: klavaro 1.9.4-pre2\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2013-08-15 10:38-0300\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2014-01-13 21:25-0200\n" "PO-Revision-Date: 2012-05-10 18:46-0500\n" "Last-Translator: Francisco Javier P.L. \n" "Language-Team: Spanish \n" @@ -21,461 +21,468 @@ "Plural-Forms: nplurals=2; plural=(n != 1);\n" "X-Generator: Virtaal 0.7.0\n" -#: ../data/klavaro.desktop.in.h:1 ../data/klavaro.glade.h:59 -msgid "Yet another touch typing tutor" -msgstr "Otro programa de mecanografía" - #: ../data/klavaro.glade.h:1 -msgid "Klavaro - Main menu" -msgstr "Klavaro - Menú principal" +msgid "About 'Klavaro'" +msgstr "Acerca de Klavaro" #: ../data/klavaro.glade.h:2 -msgid "Don't be shy about learning the basics!" -msgstr "¡Que no le dé vergüenza aprender lo básico!" +msgid "Yet another touch typing tutor" +msgstr "Otro programa de mecanografía" #: ../data/klavaro.glade.h:3 -msgid "Learn how to type correctly" -msgstr "Aprenda a escribir correctamente" +msgid "Remember always: someone loves you!" +msgstr "Recuerde siempre: ¡Alguien lo ama!" #: ../data/klavaro.glade.h:4 -msgid "Initial training for your fingers." -msgstr "Entrenamiento inicial para los dedos." +msgid "Change language" +msgstr "Cambiar idioma" #: ../data/klavaro.glade.h:5 -msgid "First steps with initial training" -msgstr "Primeros pasos" +msgid "Attention!" +msgstr "¡Atención!" #: ../data/klavaro.glade.h:6 -msgid "Memorizing the keyboard practicing random keys exercises." -msgstr "Memorización del teclado practicando con teclas al azar." +msgid "Do you confirm?" +msgstr "¿Lo confirma?" #: ../data/klavaro.glade.h:7 -msgid "Practice with random keys" -msgstr "Practicar con teclas al azar" +msgid "_No" +msgstr "_No" + +#: ../data/klavaro.glade.h:8 +msgid "_Yes" +msgstr "_Sí" -#. English typo: touchs -> touches #: ../data/klavaro.glade.h:9 -msgid "Accelerating the touches practicing random words exercises." -msgstr "Aumentar la velocidad con ejercicios de palabras al azar." +msgid "Help?" +msgstr "¿Ayuda?" #: ../data/klavaro.glade.h:10 -msgid "Practice with random words" -msgstr "Practicar con palabras al azar." +msgid "This is a tip. Now you press this button to return to the main menu." +msgstr "Esto es un tip. Pulse el botón para volver al menú principal." #: ../data/klavaro.glade.h:11 -msgid "Becoming proficient practicing complete paragraphs exercises." -msgstr "Adquirir destreza practicando con párrafos completos." +msgid "B_ack to menu" +msgstr "Vol_ver al menú" #: ../data/klavaro.glade.h:12 -msgid "Practice with complete texts" -msgstr "Practicar con textos completos" +msgid "" +"The main menu of the application is very straightforward. Just select the " +"type of exercise you wish to take. Do not worry about clicking any button on " +"the screen. The buttons will never hurt you!" +msgstr "" +"El menú principal de la aplicación es muy sencillo. Seleccione el tipo de " +"curso que desee realizar. No tenga miedo de pulsar cualquier botón. " +"¡Apretarlos no le hará ningún daño!" #: ../data/klavaro.glade.h:13 msgid "" -"Keyboard layout for modules 1 and 2. Also used informatively in the " -"fluidness contest." +"Also the controls have tips which will appear if you hover over them with " +"your mouse. These tips can come in very handy. To see how these tips work, " +"position your mouse over the button below, and without clicking, wait for " +"the tip to appear..." msgstr "" -"Distribución del teclado para los cursos 1 y 2. También se usa en el curso " -"de fluidez." +"Además, los elementos de la interfaz gŕafica contienen tips que aparecen si " +"posiciona su puntero sobre ellos. Para ver como funcionan, ponga el cursor " +"sobre el botón de abajo y sin presionarlo espere a que se muestre..." #: ../data/klavaro.glade.h:14 -msgid "_Keyboard:" -msgstr "Te_clado:" +msgid "Klavaro - Select file" +msgstr "Klavaro - Elegir un archivo" #: ../data/klavaro.glade.h:15 -msgid "Language for modules 3 and 4." -msgstr "Idioma de los cursos 3 y 4." +msgid "_Cancel" +msgstr "Can_celar" #: ../data/klavaro.glade.h:16 -msgid "_Language:" -msgstr "I_dioma:" +msgid "_Open" +msgstr "A_brir" #: ../data/klavaro.glade.h:17 -msgid "Variant" -msgstr "Variante" +msgid "Re_name:" +msgstr "Re_nombrar:" #: ../data/klavaro.glade.h:18 -msgid "Klavaro" -msgstr "Klavaro" +msgid "Rename the selected item." +msgstr "Renombrar el elemento seleccionado." #: ../data/klavaro.glade.h:19 -msgid "Country / Custom" -msgstr "País / Personalizado" +msgid "" +"Read a text file and add a copy of it here. The file must be encoded in " +"UTF-8." +msgstr "" +"Leer un archivo de texto y copiarlo aquí. El archivo debe estar codificado " +"en UTF-8." #: ../data/klavaro.glade.h:20 -msgid "Your language here." -msgstr "Elija aquí su idioma." +msgid "_Open text file" +msgstr "Abrir un archiv_o de texto" #: ../data/klavaro.glade.h:21 -msgid "Speech" -msgstr "Dictado" +msgid "Paste text that was copied to the clipboard." +msgstr "Pegar el texto copiado en el portapapeles." #: ../data/klavaro.glade.h:22 -msgid "Little tip about this program." -msgstr "Consejos sobre este programa." +msgid "_Paste from clipboard" +msgstr "Pe_gar contenido del portapapeles" #: ../data/klavaro.glade.h:23 -msgid "_Help" -msgstr "A_yuda" +msgid "Remove the selected item." +msgstr "Eliminar el elemento seleccionado." #: ../data/klavaro.glade.h:24 -msgid "General information about the program." -msgstr "Información general sobre el programa." +msgid "_Remove copied file" +msgstr "_Eliminar el archivo copiado" #: ../data/klavaro.glade.h:25 -msgid "_About..." -msgstr "Ace_rca de..." +msgid "Apply the selected item to create an exercise." +msgstr "Aplicar el elemento seleccionado para crear un ejercicio." #: ../data/klavaro.glade.h:26 -msgid "Exit the application immediately." -msgstr "Cerrar el programa inmediatamente." +msgid "_Apply" +msgstr "Apli_car" #: ../data/klavaro.glade.h:27 -msgid "_Close" -msgstr "C_errar" +msgid "Close this window." +msgstr "Cerrar la ventana." #: ../data/klavaro.glade.h:28 -msgid "Load other exercises/lessons" -msgstr "Cargar otros ejercicios/lecciones." +msgid "_Close" +msgstr "C_errar" #: ../data/klavaro.glade.h:29 -msgid "_Other texts" -msgstr "Otros _textos" +msgid "Country / Custom" +msgstr "País / Personalizado" #: ../data/klavaro.glade.h:30 -msgid "_Lesson:" -msgstr "Le_cción:" +msgid "Variant" +msgstr "Variante" #: ../data/klavaro.glade.h:31 -msgid "Edit the character set to be used in this lesson." -msgstr "Editar el juego de caracteres a usar en esta lección." +msgid "Remove the selected custom layout." +msgstr "Eliminar esta distribución personalizada." #: ../data/klavaro.glade.h:32 -msgid "Edit the character set to be used in lessons 44 through 50." -msgstr "Editar el juego de caracteres a usar de las lecciones 44 a la 50." +msgid "_Remove" +msgstr "Elimi_nar" #: ../data/klavaro.glade.h:33 -msgid "This is a specific exercise, adjusted to your error profile." -msgstr "Este es un ejercicio especial, ajustado a su perfil de errores." +msgid "" +"Toggles the shift effect on the keys. Alternates between the upper and lower " +"characters of the keys." +msgstr "Alternar entre mayúsculas y minúsculas." -#: ../data/klavaro.glade.h:34 ../src/tutor.c:252 -msgid "Drag and drop text here to practice with it." -msgstr "Arrastre un texto aquí para practicar con él." +#: ../data/klavaro.glade.h:34 +msgid "SPACE BAR" +msgstr "BARRA ESPACIADORA" -#: ../data/klavaro.glade.h:35 -msgid "Press here to restart the exercise. Hotkey: [Ctrl R]" -msgstr "Pulse para volver a comenzar el ejercicio. Atajo: [Ctrl-R]" +#: ../data/klavaro.glade.h:35 ../src/keyboard.c:1630 +msgid "thumbs" +msgstr "pulgares" #: ../data/klavaro.glade.h:36 -msgid "Show the virtual keyboard and the relation between fingers and keys." -msgstr "Ver el teclado virtual y la relación entre dedos y teclas." +msgid "Ctrl" +msgstr "Ctrl" #: ../data/klavaro.glade.h:37 -msgid "_Keyboard" -msgstr "Tecla_do" +msgid "Caps" +msgstr "Mayúsculas" #: ../data/klavaro.glade.h:38 -msgid "Select the font to be used in the exercise window." -msgstr "Elegir la fuente a usar en la ventana de ejercicio." +msgid "S_ave as:" +msgstr "_Guardar como:" #: ../data/klavaro.glade.h:39 -msgid "_Font" -msgstr "Fuen_te" +msgid "Show previous screen." +msgstr "Mostrar pantalla anterior." #: ../data/klavaro.glade.h:40 -msgid "Keep this checked if you want to get those nice beeps." -msgstr "Dejar esto activado si quiere oír esos pitidos tan bonitos." +msgid "_Previous step" +msgstr "Paso an_terior" #: ../data/klavaro.glade.h:41 -msgid "_Beep" -msgstr "_Pitido" +msgid "Show next screen." +msgstr "Mostrar siguiente pantalla." #: ../data/klavaro.glade.h:42 -msgid "Co_urse information" -msgstr "Información _sobre el curso" +msgid "_Next step" +msgstr "Si_guiente paso" #: ../data/klavaro.glade.h:43 -msgid "Charts showing the learning progress along the exercises." -msgstr "" -"Tablas con información sobre el progreso de su aprendizaje, ordenadas por " -"ejercicios." +msgid "Return without any modification." +msgstr "Volver sin guardar ningún cambio." #: ../data/klavaro.glade.h:44 -msgid "_Progress" -msgstr "P_rogreso" +msgid "Save the current keyboard layout with the name specified above." +msgstr "Guardar la distribución actual con el nombre seleccionado." #: ../data/klavaro.glade.h:45 -msgid "Show local and external scores from other users." -msgstr "Ver puntuaciones locales y globales de otros usuarios." +msgid "_Save and use" +msgstr "_Guardar y usar" #: ../data/klavaro.glade.h:46 -msgid "_Top 10" -msgstr "Los 10 me_jores" +msgid "" +"If you like those beautiful hands, click here to close this window keeping " +"them." +msgstr "" +"Si le gustan esas hermosas manos, haga click aquí para cerrar la ventana " +"conservándolas." #: ../data/klavaro.glade.h:47 -msgid "Return to the main menu." -msgstr "Volver al menú principal." +msgid "_Keep hands" +msgstr "Man_tener las manos" #: ../data/klavaro.glade.h:48 -msgid "B_ack to menu" -msgstr "Vol_ver al menú" +msgid "Klavaro - Main menu" +msgstr "Klavaro - Menú principal" #: ../data/klavaro.glade.h:49 -msgid "Close this window." -msgstr "Cerrar la ventana." +msgid "Don't be shy about learning the basics!" +msgstr "¡Que no le dé vergüenza aprender lo básico!" #: ../data/klavaro.glade.h:50 -msgid "Font definition" -msgstr "Definir fuente" +msgid "Learn how to type correctly" +msgstr "Aprenda a escribir correctamente" #: ../data/klavaro.glade.h:51 -msgid "Top 10" -msgstr "Los 10 mejores" +msgid "Initial training for your fingers." +msgstr "Entrenamiento inicial para los dedos." #: ../data/klavaro.glade.h:52 -msgid "Show extra information" -msgstr "Mostrar información adicional" +msgid "First steps with initial training" +msgstr "Primeros pasos" #: ../data/klavaro.glade.h:53 -msgid "Hide extra information" -msgstr "Ocultar información adicional" +msgid "Memorizing the keyboard practicing random keys exercises." +msgstr "Memorización del teclado practicando con teclas al azar." #: ../data/klavaro.glade.h:54 -msgid "Publish to the web your local scores." -msgstr "Publicar las puntuaciones locales en la web." +msgid "Practice with random keys" +msgstr "Practicar con teclas al azar" #: ../data/klavaro.glade.h:55 -msgid "_Participate" -msgstr "Partic_ipar" +msgid "Accelerating the touches practicing random words exercises." +msgstr "Aumentar la velocidad con ejercicios de palabras al azar." #: ../data/klavaro.glade.h:56 -msgid "Download from the web the most up to date ranking." -msgstr "Descargar las puntuaciones actualizadas de la web." +msgid "Practice with random words" +msgstr "Practicar con palabras al azar." #: ../data/klavaro.glade.h:57 -msgid "_Update" -msgstr "Actu_alizar" +msgid "Becoming proficient practicing complete paragraphs exercises." +msgstr "Adquirir destreza practicando con párrafos completos." #: ../data/klavaro.glade.h:58 -msgid "About 'Klavaro'" -msgstr "Acerca de Klavaro" +msgid "Practice with complete texts" +msgstr "Practicar con textos completos" + +#: ../data/klavaro.glade.h:59 +msgid "" +"Keyboard layout for modules 1 and 2. Also used informatively in the " +"fluidness contest." +msgstr "" +"Distribución del teclado para los cursos 1 y 2. También se usa en el curso " +"de fluidez." #: ../data/klavaro.glade.h:60 -msgid "Remember always: someone loves you!" -msgstr "Recuerde siempre: ¡Alguien lo ama!" +msgid "_Keyboard:" +msgstr "Te_clado:" #: ../data/klavaro.glade.h:61 -msgid "Remove the selected custom layout." -msgstr "Eliminar esta distribución personalizada." +msgid "Language for modules 3 and 4." +msgstr "Idioma de los cursos 3 y 4." #: ../data/klavaro.glade.h:62 -msgid "_Remove" -msgstr "Elimi_nar" +msgid "_Language:" +msgstr "I_dioma:" #: ../data/klavaro.glade.h:63 -msgid "" -"Toggles the shift effect on the keys. Alternates between the upper and lower " -"characters of the keys." -msgstr "Alternar entre mayúsculas y minúsculas." +msgid "Speech" +msgstr "Dictado" #: ../data/klavaro.glade.h:64 -msgid "SPACE BAR" -msgstr "BARRA ESPACIADORA" +msgid "Your language here." +msgstr "Elija aquí su idioma." -#: ../data/klavaro.glade.h:65 ../src/keyboard.c:1630 -msgid "thumbs" -msgstr "pulgares" +#: ../data/klavaro.glade.h:65 +msgid "Little tip about this program." +msgstr "Consejos sobre este programa." #: ../data/klavaro.glade.h:66 -msgid "Ctrl" -msgstr "Ctrl" +msgid "_Help" +msgstr "A_yuda" #: ../data/klavaro.glade.h:67 -msgid "Caps" -msgstr "Mayúsculas" +msgid "General information about the program." +msgstr "Información general sobre el programa." #: ../data/klavaro.glade.h:68 -msgid "S_ave as:" -msgstr "_Guardar como:" +msgid "_About..." +msgstr "Ace_rca de..." #: ../data/klavaro.glade.h:69 -msgid "Show previous screen." -msgstr "Mostrar pantalla anterior." +msgid "Exit the application immediately." +msgstr "Cerrar el programa inmediatamente." #: ../data/klavaro.glade.h:70 -msgid "_Previous step" -msgstr "Paso an_terior" +msgid "Klavaro - Progress" +msgstr "Klavaro - Progreso" #: ../data/klavaro.glade.h:71 -msgid "Show next screen." -msgstr "Mostrar siguiente pantalla." +msgid "_Lesson:" +msgstr "Le_cción:" #: ../data/klavaro.glade.h:72 -msgid "_Next step" -msgstr "Si_guiente paso" +msgid "Value" +msgstr "Valor" #: ../data/klavaro.glade.h:73 -msgid "Return without any modification." -msgstr "Volver sin guardar ningún cambio." +msgid "Close this window, returning to the exercise." +msgstr "Cerrar esta ventana y volver al ejercicio." #: ../data/klavaro.glade.h:74 -msgid "_Cancel" -msgstr "Can_celar" +msgid "Clear all the progress data, for every module." +msgstr "Borrar los datos de progreso, para todos los cursos." #: ../data/klavaro.glade.h:75 -msgid "Save the current keyboard layout with the name specified above." -msgstr "Guardar la distribución actual con el nombre seleccionado." +msgid "_Reset" +msgstr "Rei_niciar" #: ../data/klavaro.glade.h:76 -msgid "_Save and use" -msgstr "_Guardar y usar" +msgid "Top 10" +msgstr "Los 10 mejores" #: ../data/klavaro.glade.h:77 -msgid "" -"If you like those beautiful hands, click here to close this window keeping " -"them." -msgstr "" -"Si le gustan esas hermosas manos, haga click aquí para cerrar la ventana " -"conservándolas." +#, fuzzy +msgid "Show extra information." +msgstr "Mostrar información adicional" #: ../data/klavaro.glade.h:78 -msgid "_Keep hands" -msgstr "Man_tener las manos" +#, fuzzy +msgid "Hide extra information." +msgstr "Ocultar información adicional" #: ../data/klavaro.glade.h:79 -msgid "Change language" -msgstr "Cambiar idioma" +msgid "Publish to the web your local scores." +msgstr "Publicar las puntuaciones locales en la web." #: ../data/klavaro.glade.h:80 -msgid "Attention!" -msgstr "¡Atención!" +msgid "_Participate" +msgstr "Partic_ipar" #: ../data/klavaro.glade.h:81 -msgid "Do you confirm?" -msgstr "¿Lo confirma?" +msgid "Download from the web the most up to date ranking." +msgstr "Descargar las puntuaciones actualizadas de la web." #: ../data/klavaro.glade.h:82 -msgid "_No" -msgstr "_No" +msgid "_Update" +msgstr "Actu_alizar" #: ../data/klavaro.glade.h:83 -msgid "_Yes" -msgstr "_Sí" +msgid "Load other exercises/lessons" +msgstr "Cargar otros ejercicios/lecciones." #: ../data/klavaro.glade.h:84 -msgid "Re_name:" -msgstr "Re_nombrar:" +msgid "_Other texts" +msgstr "Otros _textos" #: ../data/klavaro.glade.h:85 -msgid "Rename the selected item." -msgstr "Renombrar el elemento seleccionado." +msgid "Edit the character set to be used in this lesson." +msgstr "Editar el juego de caracteres a usar en esta lección." #: ../data/klavaro.glade.h:86 -msgid "" -"Read a text file and add a copy of it here. The file must be encoded in " -"UTF-8." -msgstr "" -"Leer un archivo de texto y copiarlo aquí. El archivo debe estar codificado " -"en UTF-8." +msgid "This is a specific exercise, adjusted to your error profile." +msgstr "Este es un ejercicio especial, ajustado a su perfil de errores." #: ../data/klavaro.glade.h:87 -msgid "_Open text file" -msgstr "Abrir un archiv_o de texto" +#, fuzzy +msgid "" +"Edit the character set to be used in lessons after 43: they are customizable!" +msgstr "Editar el juego de caracteres a usar de las lecciones 44 a la 50." -#: ../data/klavaro.glade.h:88 -msgid "Paste text that was copied to the clipboard." -msgstr "Pegar el texto copiado en el portapapeles." +#: ../data/klavaro.glade.h:88 ../src/tutor.c:376 +msgid "Drag and drop text here to practice with it." +msgstr "Arrastre un texto aquí para practicar con él." #: ../data/klavaro.glade.h:89 -msgid "_Paste from clipboard" -msgstr "Pe_gar contenido del portapapeles" +#, fuzzy +msgid "Press here to restart the exercise. Hotkey: [Ctrl-R]" +msgstr "Pulse para volver a comenzar el ejercicio. Atajo: [Ctrl-R]" #: ../data/klavaro.glade.h:90 -msgid "Remove the selected item." -msgstr "Eliminar el elemento seleccionado." +msgid "Show the virtual keyboard and the relation between fingers and keys." +msgstr "Ver el teclado virtual y la relación entre dedos y teclas." #: ../data/klavaro.glade.h:91 -msgid "_Remove copied file" -msgstr "_Eliminar el archivo copiado" +msgid "_Keyboard" +msgstr "Tecla_do" #: ../data/klavaro.glade.h:92 -msgid "Apply the selected item to create an exercise." -msgstr "Aplicar el elemento seleccionado para crear un ejercicio." +msgid "Select the font to be used in the exercise window." +msgstr "Elegir la fuente a usar en la ventana de ejercicio." #: ../data/klavaro.glade.h:93 -msgid "_Apply" -msgstr "Apli_car" +msgid "Font definition" +msgstr "Definir fuente" #: ../data/klavaro.glade.h:94 -msgid "Klavaro - Progress" -msgstr "Klavaro - Progreso" +msgid "Keep this checked if you want to get those nice beeps." +msgstr "Dejar esto activado si quiere oír esos pitidos tan bonitos." #: ../data/klavaro.glade.h:95 -msgid "Value" -msgstr "Valor" +msgid "_Beep" +msgstr "_Pitido" #: ../data/klavaro.glade.h:96 -msgid "Clear all the progress data, for every module." -msgstr "Borrar los datos de progreso, para todos los cursos." +msgid "Co_urse information" +msgstr "Información _sobre el curso" #: ../data/klavaro.glade.h:97 -msgid "_Reset" -msgstr "Rei_niciar" +msgid "Charts showing the learning progress along the exercises." +msgstr "" +"Tablas con información sobre el progreso de su aprendizaje, ordenadas por " +"ejercicios." #: ../data/klavaro.glade.h:98 -msgid "Close this window, returning to the exercise." -msgstr "Cerrar esta ventana y volver al ejercicio." +msgid "_Progress" +msgstr "P_rogreso" #: ../data/klavaro.glade.h:99 -msgid "Klavaro - Select file" -msgstr "Klavaro - Elegir un archivo" +msgid "Return to the main menu." +msgstr "Volver al menú principal." #: ../data/klavaro.glade.h:100 -msgid "_Open" -msgstr "A_brir" +msgid "Show local and external scores from other users." +msgstr "Ver puntuaciones locales y globales de otros usuarios." #: ../data/klavaro.glade.h:101 -msgid "Help?" -msgstr "¿Ayuda?" - -#: ../data/klavaro.glade.h:102 -msgid "" -"The main menu of the application is very straightforward. Just select the " -"type of exercise you wish to take. Do not worry about clicking any button on " -"the screen. The buttons will never hurt you!" -msgstr "" -"El menú principal de la aplicación es muy sencillo. Seleccione el tipo de " -"curso que desee realizar. No tenga miedo de pulsar cualquier botón. " -"¡Apretarlos no le hará ningún daño!" +msgid "_Top 10" +msgstr "Los 10 me_jores" -#: ../data/klavaro.glade.h:103 -msgid "" -"Also the controls have tips which will appear if you hover over them with " -"your mouse. These tips can come in very handy. To see how these tips work, " -"position your mouse over the button below, and without clicking, wait for " -"the tip to appear..." -msgstr "" -"Además, los elementos de la interfaz gŕafica contienen tips que aparecen si " -"posiciona su puntero sobre ellos. Para ver como funcionan, ponga el cursor " -"sobre el botón de abajo y sin presionarlo espere a que se muestre..." +#: ../data/klavaro.desktop.in.h:1 +#, fuzzy +msgid "A very flexible and efficient touch typing tutor." +msgstr "Otro programa de mecanografía" -#: ../data/klavaro.glade.h:104 -msgid "This is a tip. Now you press this button to return to the main menu." -msgstr "Esto es un tip. Pulse el botón para volver al menú principal." +#. Translators: these are keywords related to the program. CAI above means Computer Aided Instruction. Feel free to add and/or change the keywords in your language. +#: ../data/klavaro.desktop.in.h:3 +#, fuzzy +msgid "keyboard;typing;tutor;CAI" +msgstr "Teclado" -#: ../src/main.c:314 +#: ../src/main.c:242 msgid "(Custom)" msgstr "(Personalizado)" -#: ../src/main.c:315 +#: ../src/main.c:243 msgid "(Edit custom)" msgstr "(Editar Personalizado)" -#: ../src/main.c:316 +#: ../src/main.c:244 msgid "(Default)" msgstr "(Por defecto)" -#: ../src/main.c:393 +#: ../src/main.c:321 #, c-format msgid "Dictation mode (depends on this speech synthesizer: %s)" msgid_plural "Dictation mode (depends on one of these speech synthesizers: %s)" @@ -483,88 +490,86 @@ msgstr[1] "" "El modo dictado (depende de uno de estos sintetizadores de voz: % s)" -#. Set main labels (for translation) -#. -#: ../src/main.c:435 ../src/keyboard.c:1291 +#: ../src/main.c:364 ../src/keyboard.c:1291 msgid "Introduction" msgstr "Introducción" -#: ../src/main.c:438 ../src/top10.c:109 +#: ../src/main.c:367 ../src/top10.c:109 msgid "Basic course" msgstr "Curso básico" -#: ../src/main.c:441 ../src/top10.c:112 +#: ../src/main.c:370 ../src/top10.c:112 msgid "Adaptability" msgstr "Adaptabilidad" -#: ../src/main.c:444 ../src/callbacks.c:1310 ../src/top10.c:89 +#: ../src/main.c:373 ../src/callbacks.c:1226 ../src/top10.c:89 #: ../src/top10.c:115 msgid "Speed" msgstr "Velocidad" -#: ../src/main.c:447 ../src/callbacks.c:1333 ../src/top10.c:91 +#: ../src/main.c:376 ../src/callbacks.c:1249 ../src/top10.c:91 #: ../src/top10.c:118 msgid "Fluidity" msgstr "Fluidez" -#: ../src/callbacks.c:468 ../src/tutor.c:391 +#: ../src/callbacks.c:407 ../src/tutor.c:515 msgid "Keys:" msgstr "Teclas:" -#: ../src/callbacks.c:858 ../src/callbacks.c:874 +#: ../src/callbacks.c:774 ../src/callbacks.c:790 msgid "Connecting..." msgstr "Conectando..." -#: ../src/callbacks.c:1145 +#: ../src/callbacks.c:1061 msgid "Overwrite user layout" msgstr "Sobreescribir la distribución de teclado" -#: ../src/callbacks.c:1147 +#: ../src/callbacks.c:1063 msgid "This will OVERWRITE an existent keyboard layout." msgstr "Esto SOBREESCRIBIRÁ una distribución de teclado existente." -#: ../src/callbacks.c:1154 +#: ../src/callbacks.c:1070 msgid "Remove user layout" msgstr "Eliminar la distribución de teclado" -#: ../src/callbacks.c:1156 +#: ../src/callbacks.c:1072 msgid "This will REMOVE an existent keyboard layout." msgstr "Esto ELIMINARÁ una distribución de teclado existente." -#: ../src/callbacks.c:1163 +#: ../src/callbacks.c:1079 msgid "Reset progress data" msgstr "Reiniciar los datos del progreso" -#: ../src/callbacks.c:1164 +#: ../src/callbacks.c:1080 msgid "This will DELETE all the progress data shown in the charts." msgstr "Esto BORRARÁ todos los datos de progreso mostrados en las tablas." -#: ../src/callbacks.c:1307 ../src/top10.c:87 +#: ../src/callbacks.c:1223 ../src/top10.c:87 msgid "Accuracy" msgstr "Precisión" -#: ../src/callbacks.c:1310 ../src/tutor.c:1160 +#: ../src/callbacks.c:1226 ../src/tutor.c:1288 msgid "(WPM)" msgstr "(PPM)" -#: ../src/callbacks.c:1321 +#: ../src/callbacks.c:1237 msgid "Errors" msgstr "Errores" -#: ../src/callbacks.c:1324 +#: ../src/callbacks.c:1240 msgid "Touch times (s)" msgstr "Tiempo de pulsación (s)" -#: ../src/callbacks.c:1336 ../src/tutor.c:1187 ../src/top10.c:69 +#: ../src/callbacks.c:1252 ../src/tutor.c:1315 ../src/top10.c:69 msgid "Score" msgstr "Puntuación" #. Translators: your language code (first 2 letters of your po-file) -#: ../src/translation.c:423 ../src/translation.c:489 ../src/tutor.c:1597 +#: ../src/translation.c:485 ../src/tutor.c:1725 msgid "en" msgstr "es" -#: ../src/translation.c:576 +#: ../src/translation.c:572 msgid "" "The basic course focuses on having you read the characters presented to you " "on screen and typing the corresponding keys. Remember to keep your hands " @@ -576,7 +581,7 @@ "orientadas en la fila guía (vea cómo hacerlo en la introducción del menú " "principal)." -#: ../src/translation.c:580 +#: ../src/translation.c:576 msgid "" "The key set used in each series will be shown in the above message line. The " "[Space], [Shift] and [Enter] keys may not show up there but are used very " @@ -586,7 +591,7 @@ "ventana. Puede que las teclas [Espacio], [Mayúsculas] e [Intro] no " "aparezcan, pero se usan muy a menudo." -#: ../src/translation.c:583 +#: ../src/translation.c:579 msgid "" "The message line below follows and echoes your key presses. If required, it " "changes and displays instructions for actions required from you." @@ -594,7 +599,7 @@ "El texto de la línea inferior repite las teclas que usted pulsa y si es " "necesario, muestra las teclas que debe presionar." -#: ../src/translation.c:587 +#: ../src/translation.c:583 msgid "" "Here you may practice and improve your memorization of all keys. There will " "be sentences presented with nonsense words which mix some numbers and " @@ -603,7 +608,7 @@ "Aquí puede practicar y mejorar su memorización de las teclas. Habrá frases " "formadas por palabras sin sentido, con números y símbolos." -#: ../src/translation.c:590 +#: ../src/translation.c:586 msgid "" "In order to keep the lesson contents language and keyboard independent, " "accented letter combinations will probably not appear. For real word " @@ -613,7 +618,7 @@ "probable que no aparezcan combinaciones de letras acentuadas. Para practicar " "con frases reales, use la cuarta opción del menú principal (fluidez)." -#: ../src/translation.c:594 +#: ../src/translation.c:590 msgid "" "After each exercise there will be a brief statistics panel reviewing your " "performance along with some relevant comments." @@ -621,7 +626,7 @@ "Tras cada ejercicio aparecerá un sencillo panel de estadísticas con un " "análisis de su rendimiento, junto a algunos comentarios relevantes." -#: ../src/translation.c:598 +#: ../src/translation.c:594 msgid "" "This exercise is very similar to the second one, for adaptability. The " "difference is that here you'll type real words." @@ -629,7 +634,7 @@ "Este ejercicio es similar al segundo (sobre adaptabilidad). La diferencia es " "que aquí practicará con palabras reales." -#: ../src/translation.c:601 +#: ../src/translation.c:597 msgid "" "The default language is the actual one of the interface. But you may select " "any other texts with words you would like to use. Press the 'Other' option " @@ -639,7 +644,7 @@ "otro texto que quiera utilizar. Haga click en la opción \"Otros textos\" en " "la parte superior de la ventana, y añada el archivo que contiene el texto." -#: ../src/translation.c:605 +#: ../src/translation.c:601 msgid "" "With this exercise the focus is on speed. So, you are supposed to type " "really fast and I will only flatter you when you deserve it!" @@ -647,7 +652,7 @@ "Este ejercicio se centra en la velocidad. Su objetivo es escribir muy " "rápido, ¡y sólo le felicitaré si en verdad se lo gana!" -#: ../src/translation.c:609 +#: ../src/translation.c:605 msgid "" "We will now use complete sentences and paragraphs which make logical sense. " "This may distract you while you type if you try to understand what you are " @@ -659,7 +664,7 @@ "pretendían conseguir que se centrase usted en teclear, sin interpretar ni " "analizar el contenido." -#: ../src/translation.c:613 +#: ../src/translation.c:609 msgid "" "We do not mean to imply that the typists must behave like a robot, without " "understanding what they type. We do aim to develop the skill of typing, " @@ -675,8 +680,7 @@ "concentración. Entonces podrá centrarse en el auténtico significado del " "texto." -#. English typo: minimun -> minimum -#: ../src/translation.c:618 +#: ../src/translation.c:613 msgid "" "These exercises are longer. Each exercise consists of three paragraphs and " "the emphasis is placed on correctness and rhythm, with a minimum speed " @@ -688,7 +692,6 @@ "mínimas. Se pedirá que use la tecla de retroceso para corregir los errores. " "Dicho de otro modo, solo se aceptará texto sin ningún error." -#. English typo: recomendations -> recommendations #: ../src/keyboard.c:1094 msgid "" "Correct positioning of the hands and fingers is very important to efficient " @@ -783,13 +786,11 @@ msgid "Step %i" msgstr "Paso %i" -#. Recommendations -#: ../src/keyboard.c:1140 +#: ../src/keyboard.c:1142 msgid "To position the hands" msgstr "Cómo poner las manos" -#. Final words -#: ../src/keyboard.c:1225 +#: ../src/keyboard.c:1227 msgid "Go ahead!" msgstr "¡Adelante!" @@ -829,23 +830,23 @@ msgid "Press and edit me" msgstr "Pulse y edíteme" -#: ../src/tutor.c:176 +#: ../src/tutor.c:300 msgid "Lesson:" msgstr "Lección:" -#: ../src/tutor.c:186 +#: ../src/tutor.c:310 msgid "Paragraphs:" msgstr "Párrafos:" -#: ../src/tutor.c:219 +#: ../src/tutor.c:343 msgid "Klavaro - Basic Course" msgstr "Klavaro - Curso básico" -#: ../src/tutor.c:224 +#: ../src/tutor.c:348 msgid "Klavaro - Adaptability" msgstr "Klavaro - Adaptabilidad" -#: ../src/tutor.c:227 +#: ../src/tutor.c:351 msgid "" "Adaptability exercises: automating the fingers responses, typing over all " "the keyboard." @@ -853,44 +854,44 @@ "Ejercicios de adaptabilidad: Automatice la respuesta de los dedos usando " "todo el teclado." -#: ../src/tutor.c:232 +#: ../src/tutor.c:356 msgid "Klavaro - Velocity" msgstr "Klavaro - Velocidad" -#: ../src/tutor.c:233 +#: ../src/tutor.c:357 msgid "Velocity exercises: accelerate typing real words." msgstr "Ejercicios de velocidad: Acelere la escritura de palabras reales." -#: ../src/tutor.c:237 +#: ../src/tutor.c:361 msgid "Klavaro - Fluidness" msgstr "Klavaro - Fluidez" -#: ../src/tutor.c:239 +#: ../src/tutor.c:363 msgid "Fluidness exercises: accuracy typing good sense paragraphs." msgstr "" "Ejercicios de fluidez: Adquiera precisión escribiendo párrafos con sentido." -#: ../src/tutor.c:301 +#: ../src/tutor.c:425 msgid "End of exercise. Press [Enter] to start another." msgstr "Fin del ejercicio. Pulse [Intro] para comenzar otro." -#: ../src/tutor.c:329 +#: ../src/tutor.c:453 msgid "Learning the key positions." msgstr "Aprenda la posición de las teclas." -#: ../src/tutor.c:332 +#: ../src/tutor.c:456 msgid "Press any key to start the exercise. " msgstr "Presione cualquier tecla para empezar el ejercicio." -#: ../src/tutor.c:440 ../src/tutor.c:443 +#: ../src/tutor.c:567 ../src/tutor.c:570 msgid "Start typing when you are ready. " msgstr "Comience a escribir cuando esté listo." -#: ../src/tutor.c:441 +#: ../src/tutor.c:568 msgid "Use backspace to correct errors." msgstr "" -#: ../src/tutor.c:885 +#: ../src/tutor.c:1012 #, c-format msgid "" "ps.: logging not performed for this session: the number of typed characters " @@ -899,11 +900,11 @@ "P.D. Esta sesión no ha quedado registrada: el número de caracteres escritos " "(%i) debe ser mayor que %i." -#: ../src/tutor.c:1027 +#: ../src/tutor.c:1154 msgid "ps.: you have entered the Top 10 list, great!" msgstr "P.D. Ha entrado en la lista de los 10 mejores, ¡felicidades!" -#: ../src/tutor.c:1039 +#: ../src/tutor.c:1166 msgid "" "ps.: the text you just typed doesn't seem to be similar to ordinary texts in " "the language currently selected: we can't account for it in the 'Top 10' " @@ -912,91 +913,88 @@ "P.D. El texto que ha escrito no se parece a otros textos comunes del idioma " "elegido. No podemos incluirlo en los 10 mejores." -#. Begin the accuracy -#: ../src/tutor.c:1087 +#: ../src/tutor.c:1215 msgid "STATISTICS" msgstr "ESTADÍSTICAS" -#: ../src/tutor.c:1088 +#: ../src/tutor.c:1216 msgid "Elapsed time:" msgstr "Tiempo transcurrido:" -#: ../src/tutor.c:1089 +#: ../src/tutor.c:1217 msgid "minute and" msgid_plural "minutes and" msgstr[0] "minuto y" msgstr[1] "minutos y" -#: ../src/tutor.c:1090 +#: ../src/tutor.c:1218 msgid "second" msgid_plural "seconds" msgstr[0] "segundo" msgstr[1] "segundos" -#: ../src/tutor.c:1091 +#: ../src/tutor.c:1219 msgid "Error ratio:" msgstr "Proporción de errores:" -#: ../src/tutor.c:1091 +#: ../src/tutor.c:1219 msgid "Accuracy:" msgstr "Precisión:" -#: ../src/tutor.c:1112 ../src/tutor.c:1137 ../src/tutor.c:1160 -#: ../src/tutor.c:1186 +#: ../src/tutor.c:1240 ../src/tutor.c:1265 ../src/tutor.c:1288 +#: ../src/tutor.c:1314 msgid "Goal:" msgstr "Objetivo:" -#: ../src/tutor.c:1119 +#: ../src/tutor.c:1247 msgid "Characters per second:" msgstr "Caracteres por segundo:" -#: ../src/tutor.c:1137 +#: ../src/tutor.c:1265 msgid "(CPS)" msgstr "(CPS)" -#: ../src/tutor.c:1142 +#: ../src/tutor.c:1270 msgid "Words per minute:" msgstr "Palabras por minuto:" -#: ../src/tutor.c:1167 +#: ../src/tutor.c:1295 msgid "Fluidness:" msgstr "Fluidez:" -#: ../src/tutor.c:1194 +#: ../src/tutor.c:1322 msgid "Comments:" msgstr "Comentarios:" -#: ../src/tutor.c:1676 +#: ../src/tutor.c:1804 msgid "space" msgstr "espacio" #. Translators: the name of letter Y -#: ../src/tutor.c:1681 +#: ../src/tutor.c:1809 msgid "wye" msgstr "ye" #. Translators: the name of the Return key -#: ../src/tutor.c:1685 +#: ../src/tutor.c:1813 msgid "enter" msgstr "intro" -#: ../src/tutor.c:1691 +#: ../src/tutor.c:1819 msgid "apostrophe" msgstr "apóstrofo" #. Translators: double quote symbol: " -#: ../src/tutor.c:1695 +#: ../src/tutor.c:1823 msgid "quote" msgstr "comillas" #. Translators: ampersand symbol: & -#: ../src/tutor.c:1699 +#: ../src/tutor.c:1827 msgid "ampersand" msgstr "ampersand" -#. Error frequencies or touch times -#. -#: ../src/plot.c:308 +#: ../src/plot.c:305 msgid "Character" msgstr "Letra" @@ -1004,11 +1002,11 @@ msgid "Date & Time" msgstr "Fecha y Hora" -#: ../src/basic.c:331 +#: ../src/basic.c:326 msgid "Positions of keys seems to be learned!" msgstr "¡Parece que ha aprendido la posición de las teclas!" -#: ../src/basic.c:332 +#: ../src/basic.c:327 msgid "" " Congratulations!\n" " You have accomplished the entire basic course.\n" @@ -1020,7 +1018,7 @@ " Vaya al siguiente curso: adaptabilidad.\n" " En él practicará sobre todo la precisión.\n" -#: ../src/basic.c:338 +#: ../src/basic.c:333 msgid "" " All right, now you got it!\n" " Go to the next lesson.\n" @@ -1028,33 +1026,35 @@ " ¡Perfecto, lo ha conseguido!\n" " Vaya a la siguiente lección.\n" -#: ../src/adaptability.c:217 +#: ../src/adaptability.c:213 +#, fuzzy, c-format msgid "" -" Your accuracy rate is below 90%...\n" +" Your accuracy rate is below %.0f%%...\n" " Could you please try again to improve it?\n" msgstr "" " Su precisión está por debajo del 90%...\n" " ¿Puede intentar mejorarla?\n" -#: ../src/adaptability.c:222 +#: ../src/adaptability.c:216 +#, fuzzy, c-format msgid "" " You are doing well. But...\n" -" Could you make the accuracy reach 95%?\n" +" Could you make the accuracy reach %.0f%%?\n" msgstr "" " Lo está haciendo muy bien. Pero...\n" " ¿Puede hacer que su precisión sea del 95%?\n" -#: ../src/adaptability.c:225 -#, c-format +#: ../src/adaptability.c:219 +#, fuzzy, c-format msgid "" " You are almost there, but your accuracy rate is still below %.0f%%.\n" -" Try a few more times, or maybe you're getting upset, so go to other kind of " -"exercise.\n" +" Try a few more times, or maybe you're getting upset, so go to another kind " +"of exercise.\n" msgstr "" " Casi lo ha conseguido, pero su precisión sigue por debajo del %.0f%%.\n" " Inténtelo otra vez o, si se está poniendo nervioso, cambie de ejercicio.\n" -#: ../src/adaptability.c:232 +#: ../src/adaptability.c:226 #, c-format msgid "" " Very good!\n" @@ -1067,11 +1067,11 @@ " Es hora de mejorar su velocidad.\n" " Elija el tercer curso en el menú principal.\n" -#: ../src/velocity.c:313 ../src/fluidness.c:435 +#: ../src/velocity.c:312 ../src/fluidness.c:435 msgid "Pasted_or_dropped" msgstr "Pegado_o_arrastrado" -#: ../src/velocity.c:432 +#: ../src/velocity.c:423 msgid "" " You are just beginning.\n" " Be patient, try it again every day, rest and don't worry so much:\n" @@ -1082,31 +1082,34 @@ "preocupe:\n" " la persistencia y la práctica mejorarán su velocidad.\n" -#: ../src/velocity.c:436 +#: ../src/velocity.c:427 +#, fuzzy, c-format msgid "" " Still away from the highway. You can make better...\n" -" Try at least 20 WPM.\n" +" Try to reach at least %.0f WPM.\n" msgstr "" " Aún le queda mucho camino por delante. Puede hacerlo mejor...\n" " Intente llegar por lo menos a las 20 PPM.\n" -#: ../src/velocity.c:439 +#: ../src/velocity.c:430 +#, fuzzy, c-format msgid "" " You are doing well, but need to go faster.\n" -" And don't forget the accuracy. Try to get 30 WPM.\n" +" And don't forget the accuracy. Try to get %.0f WPM.\n" msgstr "" " Lo está haciendo bien, pero tiene que ir más rápido.\n" " Y no olvide la precisión. Intente llegar a las 30 PPM.\n" -#: ../src/velocity.c:443 +#: ../src/velocity.c:433 +#, fuzzy, c-format msgid "" " Fine. Now you need to start running.\n" -" Can you reach 40 WPM?\n" +" Can you reach %.0f WPM?\n" msgstr "" " Estupendo. Ahora tiene que empezar a correr.\n" " ¿Puede llegar a las 40 PPM?\n" -#: ../src/velocity.c:446 +#: ../src/velocity.c:436 #, c-format msgid "" " Very good. You are almost there.\n" @@ -1115,7 +1118,7 @@ " Muy bien. Casi lo ha conseguido.\n" " ¿Puede llegar por fin a las %.0f PPM?\n" -#: ../src/velocity.c:451 +#: ../src/velocity.c:439 msgid "" " Excellent. For this course, that is enough.\n" " Try now the fluidness exercises, OK?\n" @@ -1123,31 +1126,34 @@ " Excelente. Puede decir que ha completado este curso.\n" " Ahora intente los ejercicios de fluidez, ¿de acuerdo?\n" -#: ../src/velocity.c:455 +#: ../src/velocity.c:442 +#, fuzzy, c-format msgid "" -" Fast! Are you training for a competition?\n" -" So, try to get 70 WPM!\n" +" Fast! Are you a professional?\n" +" So, try to get %.0f WPM!\n" msgstr "" " ¡Qué velocidad! ¿Se está entrenando para una competición?\n" " ¡Intente llegar a las 70 PPM!\n" -#: ../src/velocity.c:458 -msgid "" -" Top of \"qwerty\". Now it's time to change to the Dvorak mode.\n" -" Are you afraid of reaching 80 WPM?\n" +#. Translators: Speed Racer is a reference to a Japanese anime franchise +#. about automobile racing, also known as Mach GoGoGo. +#: ../src/velocity.c:447 +#, c-format +msgid " Ranking good, Speed Racer! Are you afraid of reaching %.0f WPM?\n" msgstr "" -" Ha superado el modo QWERTY. Es hora de intentarlo con el modo Dvorak.\n" -" ¿Se atreve a llegar a las 80 PPM?\n" -#: ../src/velocity.c:462 +#. Translators: feel free to change the reference to that martial art, if you find another good analogy. +#: ../src/velocity.c:451 +#, fuzzy, c-format msgid "" -" Dvorak mode dominated!\n" -" Can you fly at 90 WPM?\n" +" Kunf-fu mastering!\n" +" Can you fly at %.0f WPM?\n" msgstr "" " ¡Ha superado el modo Dvorak!\n" " ¿Puede volar a 90 PPM?\n" -#: ../src/velocity.c:466 +#. Translators: Dvorak here means that infamous ergonomic keyboard layout. +#: ../src/velocity.c:454 msgid "" " Dvorak master!\n" " I have no words to express my admiration!\n" @@ -1155,7 +1161,7 @@ " ¡Es un maestro del Dvorak!\n" " ¡Me faltan palabras para expresar mi admiración!\n" -#: ../src/fluidness.c:545 +#: ../src/fluidness.c:538 #, c-format msgid "" " You type accurately but not so fast.\n" @@ -1164,7 +1170,7 @@ " Escribe usted con precisión, pero sin velocidad.\n" " ¿Puede alcanzar las %.0f PPM?\n" -#: ../src/fluidness.c:548 +#: ../src/fluidness.c:541 #, c-format msgid "" " Your rhythm is not so constant. Calm down.\n" @@ -1173,7 +1179,7 @@ " No lleva un ritmo constante. Relájese.\n" " Por ahora, intente conseguir una fluidez por encima del %i%%.\n" -#: ../src/fluidness.c:551 +#: ../src/fluidness.c:544 #, c-format msgid "" " You are almost getting there. Type more fluently.\n" @@ -1182,7 +1188,7 @@ " Casi lo ha conseguido. Escriba con más fluidez.\n" " Quiero una fluidez por encima del %.0f%%.\n" -#: ../src/fluidness.c:554 +#: ../src/fluidness.c:547 msgid "" " Congratulations!\n" " It seems to me that you are a professional.\n" @@ -1194,7 +1200,7 @@ " Ya no necesita más este programa (o sea, a mí).\n" " Espero que lo haya disfrutado. ¡Gracias y que sea feliz!\n" -#: ../src/fluidness.c:559 +#: ../src/fluidness.c:552 msgid "" " How can you type so fast?\n" " You have exceeded all my expectations.\n" @@ -1254,6 +1260,22 @@ msgid "Could not upload/download scores." msgstr "No se ha podido subir / bajar la puntuación." +#~ msgid "" +#~ " Top of \"qwerty\". Now it's time to change to the Dvorak mode.\n" +#~ " Are you afraid of reaching 80 WPM?\n" +#~ msgstr "" +#~ " Ha superado el modo QWERTY. Es hora de intentarlo con el modo Dvorak.\n" +#~ " ¿Se atreve a llegar a las 80 PPM?\n" + +#~ msgid "Press here to restart the exercise. Hotkey: [Ctrl R]" +#~ msgstr "Pulse para volver a comenzar el ejercicio. Atajo: [Ctrl-R]" + +#~ msgid "_Font" +#~ msgstr "Fuen_te" + +#~ msgid "Klavaro" +#~ msgstr "Klavaro" + #~ msgid "Default" #~ msgstr "Por defecto" diff -Nru klavaro-1.9.9/po/eu.po klavaro-3.00/po/eu.po --- klavaro-1.9.9/po/eu.po 2013-08-15 13:38:50.000000000 +0000 +++ klavaro-3.00/po/eu.po 2014-01-13 23:25:50.000000000 +0000 @@ -1,575 +1,575 @@ # KLAVARO. MEKANOGRAFIA IKASTEKO TUTOREA. -# Copyright (C) 2012 # This file is distributed under the same license as the klavaro package. -# Gorka Azkarate , 2012. +# Gorka Azkarate Zubiaur , 2012, 2014. msgid "" msgstr "" -"Project-Id-Version: klavaro-1.9.5-pre2\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2013-08-15 10:38-0300\n" -"PO-Revision-Date: 2012-09-18 23:44+0200\n" -"Last-Translator: Gorka Azkarate \n" -"Language-Team: Basque \n" +"Project-Id-Version: klavaro-3.00-pre2\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2014-01-13 21:25-0200\n" +"PO-Revision-Date: 2014-01-12 14:13+0200\n" +"Last-Translator: Gorka Azkarate Zubiaur \n" +"Language-Team: Basque \n" "Language: eu\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -"X-Generator: Virtaal 0.7.0\n" - -#: ../data/klavaro.desktop.in.h:1 ../data/klavaro.glade.h:59 -msgid "Yet another touch typing tutor" -msgstr "Oraindik ere, beste ukitze-mekanografia tutore bat" +"X-Generator: Virtaal 0.7.1\n" #: ../data/klavaro.glade.h:1 -msgid "Klavaro - Main menu" -msgstr "Klavaro - Menu nagusia" +msgid "About 'Klavaro'" +msgstr "'Klavaro' honi buruz" #: ../data/klavaro.glade.h:2 -msgid "Don't be shy about learning the basics!" -msgstr "Ez zaitez lotsatu oinarrizkoena ikasteagatik!" +msgid "Yet another touch typing tutor" +msgstr "Oraindik ere, beste ukitze-mekanografia tutore bat" #: ../data/klavaro.glade.h:3 -msgid "Learn how to type correctly" -msgstr "Ikas ezazu behar bezala mekanografiatzen" +msgid "Remember always: someone loves you!" +msgstr "Gogoratu ezazu beti: norbaitek maite zaitu!" #: ../data/klavaro.glade.h:4 -msgid "Initial training for your fingers." -msgstr "Hasierako entrenamendua zure atzamarrentzat." +msgid "Change language" +msgstr "Aldatu hizkuntza" #: ../data/klavaro.glade.h:5 -msgid "First steps with initial training" -msgstr "Hasierako entrenamenduko lehen urratsak" +msgid "Attention!" +msgstr "Adi egon!" #: ../data/klavaro.glade.h:6 -msgid "Memorizing the keyboard practicing random keys exercises." -msgstr "" -"Giltzadia, teklatua, buruz ikasten ausazko giltzak sakatzeko ariketekin." +msgid "Do you confirm?" +msgstr "Baieztatzen duzu?" #: ../data/klavaro.glade.h:7 -msgid "Practice with random keys" -msgstr "Praktikatu ausazko giltzekin" +msgid "_No" +msgstr "E_z" + +#: ../data/klavaro.glade.h:8 +msgid "_Yes" +msgstr "_Bai" -#. English typo: touchs -> touches #: ../data/klavaro.glade.h:9 -msgid "Accelerating the touches practicing random words exercises." -msgstr "Lasterragotzen joaldiak, ukitze aldiak, ausazko hitzekin praktikatzen." +msgid "Help?" +msgstr "Laguntzarik behar?" #: ../data/klavaro.glade.h:10 -msgid "Practice with random words" -msgstr "Praktikatu ausazko hitzekin" +msgid "This is a tip. Now you press this button to return to the main menu." +msgstr "" +"Hauxe aholku bat da. Orain sakatu botoi honetan menu nagusira atzera joateko." #: ../data/klavaro.glade.h:11 -msgid "Becoming proficient practicing complete paragraphs exercises." -msgstr "Trebe bilakatzen paragrafo osoko ariketekin praktikatzen." +msgid "B_ack to menu" +msgstr "Atzera _menura" #: ../data/klavaro.glade.h:12 -msgid "Practice with complete texts" -msgstr "Praktikatu testu osoekin" +msgid "" +"The main menu of the application is very straightforward. Just select the " +"type of exercise you wish to take. Do not worry about clicking any button on " +"the screen. The buttons will never hurt you!" +msgstr "" +"Aplikazioaren menu nagusia argi eta garbi dago. Besterik gabe hautatu egin " +"nahi duzun ariketa mota. Ez kezkatu pantailan ager daitezkeen botoietan klik " +"egin behar izatearekin. Botoiek ez dizuten minik egingo!" #: ../data/klavaro.glade.h:13 msgid "" -"Keyboard layout for modules 1 and 2. Also used informatively in the " -"fluidness contest." +"Also the controls have tips which will appear if you hover over them with " +"your mouse. These tips can come in very handy. To see how these tips work, " +"position your mouse over the button below, and without clicking, wait for " +"the tip to appear..." msgstr "" -"Giltzadiaren diseinua 1 eta 2 moduluentzat. Jariakortasun testuinguruan " -"informatzeko ere erabilia." +"Kontrol batzuk badauzkate aholkuak. Aholku horiek kontrolen gainetik " +"saguarekin pasatzerakoan agertuko dira. Aholku horiek oso lagungarriak " +"suerta daitezke. Ikusteko aholku horiek nola ikus daitezkeen, jar ezazu zure " +"sagua beheko botoiaren gainean eta klik egin gabe itxaron ezazu une batean " +"eta aholkua hortxe agertuko zaizu, begien aurrean..." #: ../data/klavaro.glade.h:14 -msgid "_Keyboard:" -msgstr "_Giltzadia:" +msgid "Klavaro - Select file" +msgstr "Klavaro - Hautatu fitxategia" #: ../data/klavaro.glade.h:15 -msgid "Language for modules 3 and 4." -msgstr "3 eta 4 moduluentzako hizkuntza." +msgid "_Cancel" +msgstr "_Utzi bertan behera" #: ../data/klavaro.glade.h:16 -msgid "_Language:" -msgstr "_Hizkuntza:" +msgid "_Open" +msgstr "_Zabaldu" #: ../data/klavaro.glade.h:17 -msgid "Variant" -msgstr "Aldaera" +msgid "Re_name:" +msgstr "Berr_izendatu:" #: ../data/klavaro.glade.h:18 -msgid "Klavaro" -msgstr "Klavaro" +msgid "Rename the selected item." +msgstr "Berrizendatu hautatutako zera hori." #: ../data/klavaro.glade.h:19 -msgid "Country / Custom" -msgstr "Herrialdea / Pertsonalizatu" +msgid "" +"Read a text file and add a copy of it here. The file must be encoded in " +"UTF-8." +msgstr "" +"Irakur ezazu fitxategiaren testua eta gehitu bere kopia bat hementxe. " +"Fitxategia UTF-8 horren bidez kodeturik egon beharko du (hau da, 8-bit UCS/" +"Unicode Transformazio Formatua) ." #: ../data/klavaro.glade.h:20 -msgid "Your language here." -msgstr "Hemen zure hizkuntza." +msgid "_Open text file" +msgstr "_Open text formatuko fitxategia" #: ../data/klavaro.glade.h:21 -msgid "Speech" -msgstr "Hitzaldia" +msgid "Paste text that was copied to the clipboard." +msgstr "Itsatsi arbelean kopiatu den testua." #: ../data/klavaro.glade.h:22 -msgid "Little tip about this program." -msgstr "Aholkutxo bat programa honi buruz." +msgid "_Paste from clipboard" +msgstr "It_satsi arbelean dagoena" #: ../data/klavaro.glade.h:23 -msgid "_Help" -msgstr "_Laguntza" +msgid "Remove the selected item." +msgstr "Ezabatu hautatutako zera hori." #: ../data/klavaro.glade.h:24 -msgid "General information about the program." -msgstr "Programari buruzko informazio orokorra." +msgid "_Remove copied file" +msgstr "E_zabatu kopiatutako fitxategia" #: ../data/klavaro.glade.h:25 -msgid "_About..." -msgstr "_Jakingarri..." +msgid "Apply the selected item to create an exercise." +msgstr "Erabili hautatutako gaia ariketa bat sortzeko." #: ../data/klavaro.glade.h:26 -msgid "Exit the application immediately." -msgstr "Irten programatik berehala." +msgid "_Apply" +msgstr "_Erabili" #: ../data/klavaro.glade.h:27 -msgid "_Close" -msgstr "_Itxi" +msgid "Close this window." +msgstr "Itxi leiho hau." #: ../data/klavaro.glade.h:28 -msgid "Load other exercises/lessons" -msgstr "Kargatu beste ariketa/ikasgai batzuk" +msgid "_Close" +msgstr "_Itxi" #: ../data/klavaro.glade.h:29 -msgid "_Other texts" -msgstr "_Beste testu batzuk" +msgid "Country / Custom" +msgstr "Herrialdea / Pertsonalizatu" #: ../data/klavaro.glade.h:30 -msgid "_Lesson:" -msgstr "I_kasgaia:" +msgid "Variant" +msgstr "Aldaera" #: ../data/klavaro.glade.h:31 -msgid "Edit the character set to be used in this lesson." -msgstr "Editatu ikasgai honetan erabiliko den karaktere multzoa." +msgid "Remove the selected custom layout." +msgstr "Ezabatu hautatutako itxura pertsonalizatua." #: ../data/klavaro.glade.h:32 -msgid "Edit the character set to be used in lessons 44 through 50." -msgstr "Editatu 44 ikasgaitik 50 ikasgaira erabiliko den karaktere multzoa." +msgid "_Remove" +msgstr "E_zabatu" #: ../data/klavaro.glade.h:33 -msgid "This is a specific exercise, adjusted to your error profile." -msgstr "Ariketa hau berariaz zure akats profilerako prestatu den ariketa da." +msgid "" +"Toggles the shift effect on the keys. Alternates between the upper and lower " +"characters of the keys." +msgstr "" +"Txandakatzen du giltzen letra larriak/xeheak aukera. Txandakatze ditu " +"giltzen goiko/beheko karaktereak (adibidez !/1; \"/2; $/4)." -#: ../data/klavaro.glade.h:34 ../src/tutor.c:252 -msgid "Drag and drop text here to practice with it." -msgstr "Herrestan eraman testua eta askatu hemen testuarekin praktikatzeko." +#: ../data/klavaro.glade.h:34 +msgid "SPACE BAR" +msgstr "HUTSARTE BARRA" -#: ../data/klavaro.glade.h:35 -msgid "Press here to restart the exercise. Hotkey: [Ctrl R]" -msgstr "Sakatu hementxe ariketa berriro hasteko. Laster-tekla: [Ktrl R]" +#: ../data/klavaro.glade.h:35 ../src/keyboard.c:1630 +msgid "thumbs" +msgstr "erpuruak" #: ../data/klavaro.glade.h:36 -msgid "Show the virtual keyboard and the relation between fingers and keys." -msgstr "Erakutsi giltzadi birtuala eta atzamar eta giltzen arteko erlazioa." +msgid "Ctrl" +msgstr "Ktrl" #: ../data/klavaro.glade.h:37 -msgid "_Keyboard" -msgstr "_Giltzadia" +msgid "Caps" +msgstr "Letra larriak" #: ../data/klavaro.glade.h:38 -msgid "Select the font to be used in the exercise window." -msgstr "Aukeratu zein letra-tipo erabiliko den ariketa leihoan." +msgid "S_ave as:" +msgstr "_Gorde honela:" #: ../data/klavaro.glade.h:39 -msgid "_Font" -msgstr "Letra-_tipoa" +msgid "Show previous screen." +msgstr "Erakutsi aurreko pantaila." #: ../data/klavaro.glade.h:40 -msgid "Keep this checked if you want to get those nice beeps." -msgstr "Begira ezazu hau ondo beep zaratatxo eder horiek lortu nahi badituzu." +msgid "_Previous step" +msgstr "_Aurreko urratsa" #: ../data/klavaro.glade.h:41 -msgid "_Beep" -msgstr "_Soinu-seinalea" +msgid "Show next screen." +msgstr "Erakutsi hurrengo pantaila." #: ../data/klavaro.glade.h:42 -msgid "Co_urse information" -msgstr "Ikas_taroaren informazioa" +msgid "_Next step" +msgstr "Hur_rengo urratsa" #: ../data/klavaro.glade.h:43 -msgid "Charts showing the learning progress along the exercises." -msgstr "" -"Ariketak egiterakoan ikasketa prozesuan lortutako aurrerapena erakusten " -"duten grafikoak." +msgid "Return without any modification." +msgstr "Itzuli aldaketarik gabe." #: ../data/klavaro.glade.h:44 -msgid "_Progress" -msgstr "_Aurrerapena" +msgid "Save the current keyboard layout with the name specified above." +msgstr "Gorde ezazu oraingo giltzadiaren itxura behean zehaztutako izenarekin." #: ../data/klavaro.glade.h:45 -msgid "Show local and external scores from other users." -msgstr "Erakutsi beste erabiltzaileen barruko eta kanpoko emaitzak." +msgid "_Save and use" +msgstr "Gorde eta _erabili" #: ../data/klavaro.glade.h:46 -msgid "_Top 10" -msgstr " _Top 10 (Hamar onenak)" +msgid "" +"If you like those beautiful hands, click here to close this window keeping " +"them." +msgstr "" +"Esku eder hauek gustukoak baldin badituzu, egin ezazu klik hemen leiho hau " +"ixteko eskuak begi bistan mantenduz." #: ../data/klavaro.glade.h:47 -msgid "Return to the main menu." -msgstr "Atzera menu nagusira." +msgid "_Keep hands" +msgstr "_Mantendu eskuak" #: ../data/klavaro.glade.h:48 -msgid "B_ack to menu" -msgstr "Atzera _menura" +msgid "Klavaro - Main menu" +msgstr "Klavaro - Menu nagusia" #: ../data/klavaro.glade.h:49 -msgid "Close this window." -msgstr "Itxi leiho hau." +msgid "Don't be shy about learning the basics!" +msgstr "Ez zaitez lotsatu oinarrizkoena ikasteagatik!" #: ../data/klavaro.glade.h:50 -msgid "Font definition" -msgstr "Letra tipoaren definizioa" +msgid "Learn how to type correctly" +msgstr "Ikas ezazu behar bezala mekanografiatzen" #: ../data/klavaro.glade.h:51 -msgid "Top 10" -msgstr "Top 10 (Hamar onenak)" +msgid "Initial training for your fingers." +msgstr "Hasierako entrenamendua zure atzamarrentzat." #: ../data/klavaro.glade.h:52 -msgid "Show extra information" -msgstr "Erakutsi aparteko informazioa" +msgid "First steps with initial training" +msgstr "Hasierako entrenamenduko lehen urratsak" #: ../data/klavaro.glade.h:53 -msgid "Hide extra information" -msgstr "Ezkutatu aparteko informazioa" +msgid "Memorizing the keyboard practicing random keys exercises." +msgstr "" +"Giltzadia, teklatua, buruz ikasten ausazko giltzak sakatzeko ariketekin." #: ../data/klavaro.glade.h:54 -msgid "Publish to the web your local scores." -msgstr "" -"Argitaratu interneten lortu dituzun emaitzak. Argitaratu barneko emaitzak." +msgid "Practice with random keys" +msgstr "Praktikatu ausazko giltzekin" #: ../data/klavaro.glade.h:55 -msgid "_Participate" -msgstr "_Parte hartu" +msgid "Accelerating the touches practicing random words exercises." +msgstr "Lasterragotzen joaldiak, ukitze aldiak, ausazko hitzekin praktikatzen." #: ../data/klavaro.glade.h:56 -msgid "Download from the web the most up to date ranking." -msgstr "Deskargatu internetetik ranking eguneraketa." +msgid "Practice with random words" +msgstr "Praktikatu ausazko hitzekin" #: ../data/klavaro.glade.h:57 -msgid "_Update" -msgstr "_Eguneratu" +msgid "Becoming proficient practicing complete paragraphs exercises." +msgstr "Trebe bilakatzen paragrafo osoko ariketekin praktikatzen." #: ../data/klavaro.glade.h:58 -msgid "About 'Klavaro'" -msgstr "'Klavaro' honi buruz" +msgid "Practice with complete texts" +msgstr "Praktikatu testu osoekin" + +#: ../data/klavaro.glade.h:59 +msgid "" +"Keyboard layout for modules 1 and 2. Also used informatively in the " +"fluidness contest." +msgstr "" +"Giltzadiaren diseinua 1 eta 2 moduluentzat. Jariakortasun testuinguruan " +"informatzeko ere erabilia." #: ../data/klavaro.glade.h:60 -msgid "Remember always: someone loves you!" -msgstr "Gogoratu ezazu beti: norbaitek maite zaitu!" +msgid "_Keyboard:" +msgstr "_Giltzadia:" #: ../data/klavaro.glade.h:61 -msgid "Remove the selected custom layout." -msgstr "Ezabatu hautatutako itxura pertsonalizatua." +msgid "Language for modules 3 and 4." +msgstr "3 eta 4 moduluentzako hizkuntza." #: ../data/klavaro.glade.h:62 -msgid "_Remove" -msgstr "E_zabatu" +msgid "_Language:" +msgstr "_Hizkuntza:" #: ../data/klavaro.glade.h:63 -msgid "" -"Toggles the shift effect on the keys. Alternates between the upper and lower " -"characters of the keys." -msgstr "" -"Txandakatzen du giltzen letra larriak/xeheak aukera. Txandakatze ditu " -"giltzen goiko/beheko karaktereak (adibidez !/1; \"/2; $/4)." +msgid "Speech" +msgstr "Hitzaldia" #: ../data/klavaro.glade.h:64 -msgid "SPACE BAR" -msgstr "HUTSARTE BARRA" +msgid "Your language here." +msgstr "Hemen zure hizkuntza." -#: ../data/klavaro.glade.h:65 ../src/keyboard.c:1630 -msgid "thumbs" -msgstr "erpuruak" +#: ../data/klavaro.glade.h:65 +msgid "Little tip about this program." +msgstr "Aholkutxo bat programa honi buruz." #: ../data/klavaro.glade.h:66 -msgid "Ctrl" -msgstr "Ktrl" +msgid "_Help" +msgstr "_Laguntza" #: ../data/klavaro.glade.h:67 -msgid "Caps" -msgstr "Letra larriak" +msgid "General information about the program." +msgstr "Programari buruzko informazio orokorra." #: ../data/klavaro.glade.h:68 -msgid "S_ave as:" -msgstr "_Gorde honela:" +msgid "_About..." +msgstr "_Jakingarri..." #: ../data/klavaro.glade.h:69 -msgid "Show previous screen." -msgstr "Erakutsi aurreko pantaila." +msgid "Exit the application immediately." +msgstr "Irten programatik berehala." #: ../data/klavaro.glade.h:70 -msgid "_Previous step" -msgstr "_Aurreko urratsa" +msgid "Klavaro - Progress" +msgstr "Klavaro - Aurrerapena" #: ../data/klavaro.glade.h:71 -msgid "Show next screen." -msgstr "Erakutsi hurrengo pantaila." +msgid "_Lesson:" +msgstr "I_kasgaia:" #: ../data/klavaro.glade.h:72 -msgid "_Next step" -msgstr "Hur_rengo urratsa" +msgid "Value" +msgstr "Balioa" #: ../data/klavaro.glade.h:73 -msgid "Return without any modification." -msgstr "Itzuli aldaketarik gabe." +msgid "Close this window, returning to the exercise." +msgstr "Itxi leihoa, ariketara itzuliz." #: ../data/klavaro.glade.h:74 -msgid "_Cancel" -msgstr "_Utzi bertan behera" +msgid "Clear all the progress data, for every module." +msgstr "Ezabatu aurrerapen datu guztiak modu guztietatik." #: ../data/klavaro.glade.h:75 -msgid "Save the current keyboard layout with the name specified above." -msgstr "Gorde ezazu oraingo giltzadiaren itxura behean zehaztutako izenarekin." +msgid "_Reset" +msgstr "_Berrezarri" #: ../data/klavaro.glade.h:76 -msgid "_Save and use" -msgstr "Gorde eta _erabili" +msgid "Top 10" +msgstr "Top 10 (Hamar onenak)" #: ../data/klavaro.glade.h:77 -msgid "" -"If you like those beautiful hands, click here to close this window keeping " -"them." -msgstr "" -"Esku eder hauek gustukoak baldin badituzu, egin ezazu klik hemen leiho hau " -"ixteko eskuak begi bistan mantenduz." +msgid "Show extra information." +msgstr "Erakutsi aparteko informazioa." #: ../data/klavaro.glade.h:78 -msgid "_Keep hands" -msgstr "_Mantendu eskuak" +msgid "Hide extra information." +msgstr "Ezkutatu aparteko informazioa." #: ../data/klavaro.glade.h:79 -msgid "Change language" -msgstr "Aldatu hizkuntza" +msgid "Publish to the web your local scores." +msgstr "" +"Argitaratu interneten lortu dituzun emaitzak. Argitaratu barneko emaitzak." #: ../data/klavaro.glade.h:80 -msgid "Attention!" -msgstr "Adi egon!" +msgid "_Participate" +msgstr "_Parte hartu" #: ../data/klavaro.glade.h:81 -msgid "Do you confirm?" -msgstr "Baieztatzen duzu?" +msgid "Download from the web the most up to date ranking." +msgstr "Deskargatu internetetik ranking eguneraketa." #: ../data/klavaro.glade.h:82 -msgid "_No" -msgstr "E_z" +msgid "_Update" +msgstr "_Eguneratu" #: ../data/klavaro.glade.h:83 -msgid "_Yes" -msgstr "_Bai" +msgid "Load other exercises/lessons" +msgstr "Kargatu beste ariketa/ikasgai batzuk" #: ../data/klavaro.glade.h:84 -msgid "Re_name:" -msgstr "Berr_izendatu:" +msgid "_Other texts" +msgstr "_Beste testu batzuk" #: ../data/klavaro.glade.h:85 -msgid "Rename the selected item." -msgstr "Berrizendatu hautatutako zera hori." +msgid "Edit the character set to be used in this lesson." +msgstr "Editatu ikasgai honetan erabiliko den karaktere multzoa." #: ../data/klavaro.glade.h:86 -msgid "" -"Read a text file and add a copy of it here. The file must be encoded in " -"UTF-8." -msgstr "" -"Irakur ezazu fitxategiaren testua eta gehitu bere kopia bat hementxe. " -"Fitxategia UTF-8 horren bidez kodeturik egon beharko du (hau da, 8-bit UCS/" -"Unicode Transformazio Formatua) ." +msgid "This is a specific exercise, adjusted to your error profile." +msgstr "Ariketa hau berariaz zure akats profilerako prestatu den ariketa da." #: ../data/klavaro.glade.h:87 -msgid "_Open text file" -msgstr "_Open text formatuko fitxategia" +msgid "" +"Edit the character set to be used in lessons after 43: they are customizable!" +msgstr "" +"Editatu 43 ikasgaitik aurrera erabiliko den karaktere multzoa: karaktereak " +"pertsonalizatu egin daitezke!" -#: ../data/klavaro.glade.h:88 -msgid "Paste text that was copied to the clipboard." -msgstr "Itsatsi arbelean kopiatu den testua." +#: ../data/klavaro.glade.h:88 ../src/tutor.c:376 +msgid "Drag and drop text here to practice with it." +msgstr "Herrestan eraman testua eta askatu hemen testuarekin praktikatzeko." #: ../data/klavaro.glade.h:89 -msgid "_Paste from clipboard" -msgstr "It_satsi arbelean dagoena" +msgid "Press here to restart the exercise. Hotkey: [Ctrl-R]" +msgstr "Sakatu hementxe ariketa berriro hasteko. Laster-tekla: [Ktrl R]" #: ../data/klavaro.glade.h:90 -msgid "Remove the selected item." -msgstr "Ezabatu hautatutako zera hori." +msgid "Show the virtual keyboard and the relation between fingers and keys." +msgstr "Erakutsi giltzadi birtuala eta atzamar eta giltzen arteko erlazioa." #: ../data/klavaro.glade.h:91 -msgid "_Remove copied file" -msgstr "E_zabatu kopiatutako fitxategia" +msgid "_Keyboard" +msgstr "_Giltzadia" #: ../data/klavaro.glade.h:92 -msgid "Apply the selected item to create an exercise." -msgstr "Erabili hautatutako gaia ariketa bat sortzeko." +msgid "Select the font to be used in the exercise window." +msgstr "Aukeratu zein letra-tipo erabiliko den ariketa leihoan." #: ../data/klavaro.glade.h:93 -msgid "_Apply" -msgstr "_Erabili" +msgid "Font definition" +msgstr "Letra tipoaren definizioa" #: ../data/klavaro.glade.h:94 -msgid "Klavaro - Progress" -msgstr "Klavaro - Aurrerapena" +msgid "Keep this checked if you want to get those nice beeps." +msgstr "Begira ezazu hau ondo beep zaratatxo eder horiek lortu nahi badituzu." #: ../data/klavaro.glade.h:95 -msgid "Value" -msgstr "Balioa" +msgid "_Beep" +msgstr "_Soinu-seinalea" #: ../data/klavaro.glade.h:96 -msgid "Clear all the progress data, for every module." -msgstr "Ezabatu aurrerapen datu guztiak modu guztietatik." +msgid "Co_urse information" +msgstr "Ikas_taroaren informazioa" #: ../data/klavaro.glade.h:97 -msgid "_Reset" -msgstr "_Berrezarri" +msgid "Charts showing the learning progress along the exercises." +msgstr "" +"Ariketak egiterakoan ikasketa prozesuan lortutako aurrerapena erakusten " +"duten grafikoak." #: ../data/klavaro.glade.h:98 -msgid "Close this window, returning to the exercise." -msgstr "Itxi leihoa, ariketara itzuliz." +msgid "_Progress" +msgstr "_Aurrerapena" #: ../data/klavaro.glade.h:99 -msgid "Klavaro - Select file" -msgstr "Klavaro - Hautatu fitxategia" +msgid "Return to the main menu." +msgstr "Atzera menu nagusira." #: ../data/klavaro.glade.h:100 -msgid "_Open" -msgstr "_Zabaldu" +msgid "Show local and external scores from other users." +msgstr "Erakutsi beste erabiltzaileen barruko eta kanpoko emaitzak." #: ../data/klavaro.glade.h:101 -msgid "Help?" -msgstr "Laguntzarik behar?" - -#: ../data/klavaro.glade.h:102 -msgid "" -"The main menu of the application is very straightforward. Just select the " -"type of exercise you wish to take. Do not worry about clicking any button on " -"the screen. The buttons will never hurt you!" -msgstr "" -"Aplikazioaren menu nagusia argi eta garbi dago. Besterik gabe hautatu egin " -"nahi duzun ariketa mota. Ez kezkatu pantailan ager daitezkeen botoietan klik " -"egin behar izatearekin. Botoiek ez dizuten minik egingo!" - -#: ../data/klavaro.glade.h:103 -msgid "" -"Also the controls have tips which will appear if you hover over them with " -"your mouse. These tips can come in very handy. To see how these tips work, " -"position your mouse over the button below, and without clicking, wait for " -"the tip to appear..." -msgstr "" -"Kontrol batzuk badauzkate aholkuak. Aholku horiek kontrolen gainetik " -"saguarekin pasatzerakoan agertuko dira. Aholku horiek oso lagungarriak " -"suerta daitezke. Ikusteko aholku horiek nola ikus daitezkeen, jar ezazu zure " -"sagua beheko botoiaren gainean eta klik egin gabe itxaron ezazu une batean " -"eta aholkua hortxe agertuko zaizu, begien aurrean..." +msgid "_Top 10" +msgstr " _Top 10 (Hamar onenak)" -#: ../data/klavaro.glade.h:104 -msgid "This is a tip. Now you press this button to return to the main menu." -msgstr "" -"Hauxe aholku bat da. Orain sakatu botoi honetan menu nagusira atzera joateko." +#: ../data/klavaro.desktop.in.h:1 +msgid "A very flexible and efficient touch typing tutor." +msgstr "Ukitze-mekanografia ikasteko oso tutorial malgu eta eraginkorra." + +#. Translators: these are keywords related to the program. CAI above means Computer Aided Instruction. Feel free to add and/or change the keywords in your language. +#: ../data/klavaro.desktop.in.h:3 +msgid "keyboard;typing;tutor;CAI" +msgstr "giltzadia;mekanografiatzen;CAI" -#: ../src/main.c:314 +#: ../src/main.c:242 msgid "(Custom)" msgstr "(Pertsonalizatua)" -#: ../src/main.c:315 +#: ../src/main.c:243 msgid "(Edit custom)" msgstr "(Pertsonalizatu)" -#: ../src/main.c:316 +#: ../src/main.c:244 msgid "(Default)" msgstr "(Lehenetsia)" -#: ../src/main.c:393 +#: ../src/main.c:321 #, c-format msgid "Dictation mode (depends on this speech synthesizer: %s)" msgid_plural "Dictation mode (depends on one of these speech synthesizers: %s)" msgstr[0] "Diktatze modua (ahots-sintetizadorearen menpe: %s)" msgstr[1] "Diktatze modua (ahots-sintetizadore hauetariko baten menpe: %s)" -#. Set main labels (for translation) -#. -#: ../src/main.c:435 ../src/keyboard.c:1291 +#: ../src/main.c:364 ../src/keyboard.c:1291 msgid "Introduction" msgstr "Sarrera" -#: ../src/main.c:438 ../src/top10.c:109 +#: ../src/main.c:367 ../src/top10.c:109 msgid "Basic course" msgstr "Oinarrizko ikastaroa" -#: ../src/main.c:441 ../src/top10.c:112 +#: ../src/main.c:370 ../src/top10.c:112 msgid "Adaptability" msgstr "Moldagarritasuna" -#: ../src/main.c:444 ../src/callbacks.c:1310 ../src/top10.c:89 +#: ../src/main.c:373 ../src/callbacks.c:1226 ../src/top10.c:89 #: ../src/top10.c:115 msgid "Speed" msgstr "Lastertasuna" -#: ../src/main.c:447 ../src/callbacks.c:1333 ../src/top10.c:91 +#: ../src/main.c:376 ../src/callbacks.c:1249 ../src/top10.c:91 #: ../src/top10.c:118 msgid "Fluidity" msgstr "Jariakortasuna" -#: ../src/callbacks.c:468 ../src/tutor.c:391 +#: ../src/callbacks.c:407 ../src/tutor.c:515 msgid "Keys:" msgstr "Giltzak:" -#: ../src/callbacks.c:858 ../src/callbacks.c:874 +#: ../src/callbacks.c:774 ../src/callbacks.c:790 msgid "Connecting..." msgstr "Konektatzen..." -#: ../src/callbacks.c:1145 +#: ../src/callbacks.c:1061 msgid "Overwrite user layout" msgstr "Gainidatzi erabiltzailearen diseinua" -#: ../src/callbacks.c:1147 +#: ../src/callbacks.c:1063 msgid "This will OVERWRITE an existent keyboard layout." msgstr "Honek GAINIDATZI egingo du dagoen giltzadiaren diseinua." -#: ../src/callbacks.c:1154 +#: ../src/callbacks.c:1070 msgid "Remove user layout" msgstr "Ezabatu erabiltzailearen diseinua" -#: ../src/callbacks.c:1156 +#: ../src/callbacks.c:1072 msgid "This will REMOVE an existent keyboard layout." msgstr "Honek EZABATU egingo du dagoen giltzadiaren diseinua." -#: ../src/callbacks.c:1163 +#: ../src/callbacks.c:1079 msgid "Reset progress data" msgstr "Berrezarri aurrerapenei buruzko datuak" -#: ../src/callbacks.c:1164 +#: ../src/callbacks.c:1080 msgid "This will DELETE all the progress data shown in the charts." msgstr "" "Honek EZABATU egingo ditu grafikoetan erakusten diren aurrerapenei buruzko " "datu guztiak." -#: ../src/callbacks.c:1307 ../src/top10.c:87 +#: ../src/callbacks.c:1223 ../src/top10.c:87 msgid "Accuracy" msgstr "Zehaztasuna" -#: ../src/callbacks.c:1310 ../src/tutor.c:1160 +#: ../src/callbacks.c:1226 ../src/tutor.c:1288 msgid "(WPM)" msgstr "(hitzak minutuko)" -#: ../src/callbacks.c:1321 +#: ../src/callbacks.c:1237 msgid "Errors" msgstr "Akatsak" -#: ../src/callbacks.c:1324 +#: ../src/callbacks.c:1240 msgid "Touch times (s)" msgstr "Ukitze denborak (s)" -#: ../src/callbacks.c:1336 ../src/tutor.c:1187 ../src/top10.c:69 +#: ../src/callbacks.c:1252 ../src/tutor.c:1315 ../src/top10.c:69 msgid "Score" msgstr "Lortutako puntuazioa" #. Translators: your language code (first 2 letters of your po-file) -#: ../src/translation.c:423 ../src/translation.c:489 ../src/tutor.c:1597 +#: ../src/translation.c:485 ../src/tutor.c:1725 msgid "en" msgstr "eu" -#: ../src/translation.c:576 +#: ../src/translation.c:572 msgid "" "The basic course focuses on having you read the characters presented to you " "on screen and typing the corresponding keys. Remember to keep your hands " @@ -581,7 +581,7 @@ "Gogora ezazu zure eskuak hasiera ilaran behar bezala norabidetuta egon behar " "dutela beti (ikus ezazu sarrera menu nagusian)." -#: ../src/translation.c:580 +#: ../src/translation.c:576 msgid "" "The key set used in each series will be shown in the above message line. The " "[Space], [Shift] and [Enter] keys may not show up there but are used very " @@ -591,7 +591,7 @@ "da. [Espazio], [Maius] eta [Sartu] giltzak agian ez dira erakutsiko baina " "oso maiz erabiltzen dira." -#: ../src/translation.c:583 +#: ../src/translation.c:579 msgid "" "The message line below follows and echoes your key presses. If required, it " "changes and displays instructions for actions required from you." @@ -600,7 +600,7 @@ "Beharrezkoa bada, aldatzen ditu eta erakusten ditu zuri eskatuko zaizkizun " "ekintzen jarraibideak." -#: ../src/translation.c:587 +#: ../src/translation.c:583 msgid "" "Here you may practice and improve your memorization of all keys. There will " "be sentences presented with nonsense words which mix some numbers and " @@ -610,7 +610,7 @@ "ikasteko kontuak. Aurkeztu egingo dira zentzurik gabeko hitzak dauzkaten " "esaldiak non zenbakiak eta sinboloak nahastu egingo diren." -#: ../src/translation.c:590 +#: ../src/translation.c:586 msgid "" "In order to keep the lesson contents language and keyboard independent, " "accented letter combinations will probably not appear. For real word " @@ -621,7 +621,7 @@ "esaldietarako, mesedez erabil ezazu menu nagusiko laugarren aukera " "(jariakortasunari buruzkoa)." -#: ../src/translation.c:594 +#: ../src/translation.c:590 msgid "" "After each exercise there will be a brief statistics panel reviewing your " "performance along with some relevant comments." @@ -629,7 +629,7 @@ "Ariketa bakoitzaren ostean estatistika taula batek erakutsiko dizu, labur, " "zure saioa nolakoa izan den, iruzkin esanguratsu batzuekin." -#: ../src/translation.c:598 +#: ../src/translation.c:594 msgid "" "This exercise is very similar to the second one, for adaptability. The " "difference is that here you'll type real words." @@ -637,7 +637,7 @@ "Ariketa hau bigarrenaren antzekoa da, moldagarritasuna lortzekoa. Aldea " "hauxe da, hementxe benetako hitzak idatziko dituzu." -#: ../src/translation.c:601 +#: ../src/translation.c:597 msgid "" "The default language is the actual one of the interface. But you may select " "any other texts with words you would like to use. Press the 'Other' option " @@ -647,7 +647,7 @@ "beste edozein testu hauta dezakezu. Sakatu 'Beste' aukera hori, hemen goian, " "eta gehi itzazu testu horiek dauzkaten fitxategiak." -#: ../src/translation.c:605 +#: ../src/translation.c:601 msgid "" "With this exercise the focus is on speed. So, you are supposed to type " "really fast and I will only flatter you when you deserve it!" @@ -655,7 +655,7 @@ "Ariketa honekin helburu nagusia lastertasuna da. Beraz, idatz ezazu ahalik " "eta azkarren eta lausengatuko dizut benetan merezi duzunean bakarrik!" -#: ../src/translation.c:609 +#: ../src/translation.c:605 msgid "" "We will now use complete sentences and paragraphs which make logical sense. " "This may distract you while you type if you try to understand what you are " @@ -668,7 +668,7 @@ "gabe azkar idatz dezazun diseinatu dira, testua analizatu eta interpretatu " "gabe azkar idazteko." -#: ../src/translation.c:613 +#: ../src/translation.c:609 msgid "" "We do not mean to imply that the typists must behave like a robot, without " "understanding what they type. We do aim to develop the skill of typing, " @@ -685,8 +685,7 @@ "eta arreta biltze txikia eskatzen du. Orduan bai, orduan gai izango zara " "testuaren esanahiarekin arreta osoa jartzeko." -#. English typo: minimun -> minimum -#: ../src/translation.c:618 +#: ../src/translation.c:613 msgid "" "These exercises are longer. Each exercise consists of three paragraphs and " "the emphasis is placed on correctness and rhythm, with a minimum speed " @@ -699,7 +698,6 @@ "edozein akats eginez gero, konpontzeko, atzera-giltza (ezabatzen duen atzera-" "giltza) erabiltzea. Hau da, akatsik gabeko hitzak besterik ez dira onartuko." -#. English typo: recomendations -> recommendations #: ../src/keyboard.c:1094 msgid "" "Correct positioning of the hands and fingers is very important to efficient " @@ -804,13 +802,11 @@ msgid "Step %i" msgstr "%i urratsa" -#. Recommendations -#: ../src/keyboard.c:1140 +#: ../src/keyboard.c:1142 msgid "To position the hands" msgstr "Kokatu eskuak" -#. Final words -#: ../src/keyboard.c:1225 +#: ../src/keyboard.c:1227 msgid "Go ahead!" msgstr "Aurrera!" @@ -852,23 +848,23 @@ msgid "Press and edit me" msgstr "Sakatu eta zuzen iezadazu" -#: ../src/tutor.c:176 +#: ../src/tutor.c:300 msgid "Lesson:" msgstr "Ikasgaia:" -#: ../src/tutor.c:186 +#: ../src/tutor.c:310 msgid "Paragraphs:" msgstr "Paragrafoak:" -#: ../src/tutor.c:219 +#: ../src/tutor.c:343 msgid "Klavaro - Basic Course" msgstr "Klavaro - Oinarrizko ikastaroa" -#: ../src/tutor.c:224 +#: ../src/tutor.c:348 msgid "Klavaro - Adaptability" msgstr "Klavaro - Moldagarritasuna" -#: ../src/tutor.c:227 +#: ../src/tutor.c:351 msgid "" "Adaptability exercises: automating the fingers responses, typing over all " "the keyboard." @@ -876,46 +872,46 @@ "Moldagarritasun ariketak: atzamarren erantzun automatikoak lortzen, giltzadi " "osoarekin mekanografiatzen." -#: ../src/tutor.c:232 +#: ../src/tutor.c:356 msgid "Klavaro - Velocity" msgstr "Klavaro - Lastertasuna" -#: ../src/tutor.c:233 +#: ../src/tutor.c:357 msgid "Velocity exercises: accelerate typing real words." msgstr "Lastertasun ariketak: abiada lortzen benetako hitzak idatziz." -#: ../src/tutor.c:237 +#: ../src/tutor.c:361 msgid "Klavaro - Fluidness" msgstr "Klavaro - Jariakortasuna" -#: ../src/tutor.c:239 +#: ../src/tutor.c:363 msgid "Fluidness exercises: accuracy typing good sense paragraphs." msgstr "" "Jariakortasun ariketak: zehaztasuna eta zuzentasuna lortu zentzua duten " "paragrafoak mekanografiatuz." -#: ../src/tutor.c:301 +#: ../src/tutor.c:425 msgid "End of exercise. Press [Enter] to start another." msgstr "" "Ariketaren amaiera. Sakatu [Sartu] giltza beste ariketa bat batekin hasteko." -#: ../src/tutor.c:329 +#: ../src/tutor.c:453 msgid "Learning the key positions." msgstr "Giltzen kokapena buruz ikasten." -#: ../src/tutor.c:332 +#: ../src/tutor.c:456 msgid "Press any key to start the exercise. " msgstr "Sakatu edozein giltza ariketarekin hasteko. " -#: ../src/tutor.c:440 ../src/tutor.c:443 +#: ../src/tutor.c:567 ../src/tutor.c:570 msgid "Start typing when you are ready. " msgstr "Prest zaudenean, hasi mekanografiatzen. " -#: ../src/tutor.c:441 +#: ../src/tutor.c:568 msgid "Use backspace to correct errors." msgstr "Erabil ezazu atzeraka-gezia akatsak zuzentzeko." -#: ../src/tutor.c:885 +#: ../src/tutor.c:1012 #, c-format msgid "" "ps.: logging not performed for this session: the number of typed characters " @@ -924,13 +920,13 @@ "ps.: saio honetan ez da estatistika erregistrorik egingo: sakatzen duzun " "karaktere kopurua (%i), hau %i kopuru hau baino handiagoa beharko." -#: ../src/tutor.c:1027 +#: ../src/tutor.c:1154 msgid "ps.: you have entered the Top 10 list, great!" msgstr "" "ps.: lehen hamar onenen artean sartu zara, Top 10 horretan sartu zara, " "itzela!" -#: ../src/tutor.c:1039 +#: ../src/tutor.c:1166 msgid "" "ps.: the text you just typed doesn't seem to be similar to ordinary texts in " "the language currently selected: we can't account for it in the 'Top 10' " @@ -940,91 +936,88 @@ "hizkuntzako ohiko testuen oso antzekoa: ezin dugu, beraz, testu hori kontuan " "hartu gure 'Top 10' zerrenda betetzeko." -#. Begin the accuracy -#: ../src/tutor.c:1087 +#: ../src/tutor.c:1215 msgid "STATISTICS" msgstr "ESTATISTIKAK" -#: ../src/tutor.c:1088 +#: ../src/tutor.c:1216 msgid "Elapsed time:" msgstr "Igaro den denbora:" -#: ../src/tutor.c:1089 +#: ../src/tutor.c:1217 msgid "minute and" msgid_plural "minutes and" msgstr[0] "minutu eta" msgstr[1] "minutuak eta" -#: ../src/tutor.c:1090 +#: ../src/tutor.c:1218 msgid "second" msgid_plural "seconds" msgstr[0] "segundo" msgstr[1] "segundoak" -#: ../src/tutor.c:1091 +#: ../src/tutor.c:1219 msgid "Error ratio:" msgstr "Akatsen batez bestekoa:" -#: ../src/tutor.c:1091 +#: ../src/tutor.c:1219 msgid "Accuracy:" msgstr "Zehaztasuna:" -#: ../src/tutor.c:1112 ../src/tutor.c:1137 ../src/tutor.c:1160 -#: ../src/tutor.c:1186 +#: ../src/tutor.c:1240 ../src/tutor.c:1265 ../src/tutor.c:1288 +#: ../src/tutor.c:1314 msgid "Goal:" msgstr "Helburua:" -#: ../src/tutor.c:1119 +#: ../src/tutor.c:1247 msgid "Characters per second:" msgstr "Karaktere segundoko:" -#: ../src/tutor.c:1137 +#: ../src/tutor.c:1265 msgid "(CPS)" msgstr "Karaktere kopuru segundoko" -#: ../src/tutor.c:1142 +#: ../src/tutor.c:1270 msgid "Words per minute:" msgstr "Hitz kopurua minutuko:" -#: ../src/tutor.c:1167 +#: ../src/tutor.c:1295 msgid "Fluidness:" msgstr "Jariakortasuna:" -#: ../src/tutor.c:1194 +#: ../src/tutor.c:1322 msgid "Comments:" msgstr "Iruzkinak:" -#: ../src/tutor.c:1676 +#: ../src/tutor.c:1804 msgid "space" msgstr "zuriunea" #. Translators: the name of letter Y -#: ../src/tutor.c:1681 +#: ../src/tutor.c:1809 msgid "wye" msgstr "Y grekoa" #. Translators: the name of the Return key -#: ../src/tutor.c:1685 +#: ../src/tutor.c:1813 msgid "enter" msgstr "sartu giltza (Enter edo Return giltza)" -#: ../src/tutor.c:1691 +#: ../src/tutor.c:1819 msgid "apostrophe" msgstr "apostrofea" #. Translators: double quote symbol: " -#: ../src/tutor.c:1695 +#: ../src/tutor.c:1823 msgid "quote" msgstr "goiko komatxo bikoitzak: \"" #. Translators: ampersand symbol: & -#: ../src/tutor.c:1699 +#: ../src/tutor.c:1827 msgid "ampersand" msgstr "& ikurra" -#. Error frequencies or touch times -#. -#: ../src/plot.c:308 +#: ../src/plot.c:305 msgid "Character" msgstr "Karakterea" @@ -1032,11 +1025,11 @@ msgid "Date & Time" msgstr "Eguna & Ordua" -#: ../src/basic.c:331 +#: ../src/basic.c:326 msgid "Positions of keys seems to be learned!" msgstr "Giltzen kokapena ikasita daudela ematen du!" -#: ../src/basic.c:332 +#: ../src/basic.c:327 msgid "" " Congratulations!\n" " You have accomplished the entire basic course.\n" @@ -1048,7 +1041,7 @@ " Zoaz hurrengo ariketa motara: moldagarritasuna.\n" " Batez ere zehaztasuna izango da hemen landuko duzun abilezia.\n" -#: ../src/basic.c:338 +#: ../src/basic.c:333 msgid "" " All right, now you got it!\n" " Go to the next lesson.\n" @@ -1056,35 +1049,36 @@ " Oso ondo, oraintxe lortu duzu!\n" " Zoaz hurrengo ikasgaira.\n" -#: ../src/adaptability.c:217 +#: ../src/adaptability.c:213 +#, c-format msgid "" -" Your accuracy rate is below 90%...\n" +" Your accuracy rate is below %.0f%%...\n" " Could you please try again to improve it?\n" msgstr "" -" Zure zehaztasun indizea %90 azpitik dago...\n" -" Saiatuko zara, mesedez, hori hobetzen?\n" +" Zure zehaztasun indizea %.0f%% azpitik dago...\n" +" Saiatuko zara, mesedez, hori hobetzeko?\n" -#: ../src/adaptability.c:222 +#: ../src/adaptability.c:216 +#, c-format msgid "" " You are doing well. But...\n" -" Could you make the accuracy reach 95%?\n" +" Could you make the accuracy reach %.0f%%?\n" msgstr "" " Ondo ari zara. Baina...\n" -" Saiatuko zara zehaztasun indizea %95 mugaraino hobetzen?\n" +" Saiatuko zara zehaztasun indizea %.0f%% mugaraino hobetzen?\n" -#: ../src/adaptability.c:225 +#: ../src/adaptability.c:219 #, c-format msgid "" " You are almost there, but your accuracy rate is still below %.0f%%.\n" -" Try a few more times, or maybe you're getting upset, so go to other kind of " -"exercise.\n" +" Try a few more times, or maybe you're getting upset, so go to another kind " +"of exercise.\n" msgstr "" -" Hortxe-hortxe zaude, baina zure zehaztasun indizea oraindik %.0f%% " -"azpitik.\n" -" Egin itzazu saio berri bakar batzuk edo agian nekaturik zaude... Behar bada " -"hobe duzu beste ariketa mota batera jotzea.\n" +" Hortxe-hortxe zaude baina zure zehaztasun indizea oraindik %.0f%% azpitik.\n" +" Egin itzazu saio berri bakar batzuk edo agian asper-asper eginda zaude... " +"Behar bada hobe duzu beste ariketa mota batera jotzea.\n" -#: ../src/adaptability.c:232 +#: ../src/adaptability.c:226 #, c-format msgid "" " Very good!\n" @@ -1097,11 +1091,11 @@ " Orain zure lastertasuna hobetzeko garaia da.\n" " Zoaz hirugarren ariketara menu nagusian.\n" -#: ../src/velocity.c:313 ../src/fluidness.c:435 +#: ../src/velocity.c:312 ../src/fluidness.c:435 msgid "Pasted_or_dropped" msgstr "Txertatua_edo_itsatsia" -#: ../src/velocity.c:432 +#: ../src/velocity.c:423 msgid "" " You are just beginning.\n" " Be patient, try it again every day, rest and don't worry so much:\n" @@ -1112,40 +1106,43 @@ "gehiegi kezkatu:\n" " praktikak eta jarraikitasunak zure lastertasunean nabarituko dira.\n" -#: ../src/velocity.c:436 +#: ../src/velocity.c:427 +#, c-format msgid "" " Still away from the highway. You can make better...\n" -" Try at least 20 WPM.\n" +" Try to reach at least %.0f WPM.\n" msgstr "" -" Oraindik ez gara autobidean sartu. Hobeto egin dezakezu...\n" -" Saia zaitez gutxienez 20 hitz minutuko lortzen.\n" +" Oraindik ez gara autopistan sartu. Hobeto egin dezakezu...\n" +" Saia zaitez gutxienez %.0f hitz minutuko lortzen.\n" -#: ../src/velocity.c:439 +#: ../src/velocity.c:430 +#, c-format msgid "" " You are doing well, but need to go faster.\n" -" And don't forget the accuracy. Try to get 30 WPM.\n" +" And don't forget the accuracy. Try to get %.0f WPM.\n" msgstr "" -" Ondo ari zara baina azkarrago beharko duzu.\n" -" Eta ez ahaztu zehaztasuna. Saia zaitez 30 hitz minutuko lortzen.\n" +" Ondo ari zara baina azkarrago beharko zenuke.\n" +" Eta ez ahaztu zehaztasuna. Saia zaitez %.0f hitz minutuko lortzen.\n" -#: ../src/velocity.c:443 +#: ../src/velocity.c:433 +#, c-format msgid "" " Fine. Now you need to start running.\n" -" Can you reach 40 WPM?\n" +" Can you reach %.0f WPM?\n" msgstr "" " Ongi. Orain korrika egiten hasi beharko.\n" -" Irits zintezke 40 hitz minutuko lastertasuneraino?\n" +" Irits zintezke %.0f hitz minutuko lastertasuneraino?\n" -#: ../src/velocity.c:446 +#: ../src/velocity.c:436 #, c-format msgid "" " Very good. You are almost there.\n" " Can you finally reach %.0f WPM?\n" msgstr "" " Oso ongi. Hortxe-hortxe zaude.\n" -" Azkenik, irits zaitezke %.0f hitz minutuko lastertasuna lortzeraino?\n" +" Azkenik, irits zintezke %.0f hitz minutuko lastertasuna lortzeraino?\n" -#: ../src/velocity.c:451 +#: ../src/velocity.c:439 msgid "" " Excellent. For this course, that is enough.\n" " Try now the fluidness exercises, OK?\n" @@ -1153,31 +1150,36 @@ " Bikain. Ikastaro honi dagokionez, nahikoa da.\n" " Saiatuko zara orain jariakortasun ariketekin?\n" -#: ../src/velocity.c:455 +#: ../src/velocity.c:442 +#, c-format msgid "" -" Fast! Are you training for a competition?\n" -" So, try to get 70 WPM!\n" +" Fast! Are you a professional?\n" +" So, try to get %.0f WPM!\n" msgstr "" -" Azkar! Lehiaketa baterako prestatzen ari zara ala?\n" -" Bada, saia zaitez 70 hitz minutuko lortzen!\n" +" Azkar! Honetan profesionala zara?\n" +" Bada, saia zaitez %.0f hitz minutuko lortzen!\n" -#: ../src/velocity.c:458 -msgid "" -" Top of \"qwerty\". Now it's time to change to the Dvorak mode.\n" -" Are you afraid of reaching 80 WPM?\n" +#. Translators: Speed Racer is a reference to a Japanese anime franchise +#. about automobile racing, also known as Mach GoGoGo. +#: ../src/velocity.c:447 +#, c-format +msgid " Ranking good, Speed Racer! Are you afraid of reaching %.0f WPM?\n" msgstr "" -" \"qwerty\" giltzadiko onenak. Orain, bada garaia Dvorak modura aldatzeko.\n" -" Kezkatuta zaude 80 hitz minutuko mugarekin?\n" +"Estatistika onak, Speedy Gonzales! Ez zara ausartuko %.0f hiz minutuko " +"lortzen saiatzen?\n" -#: ../src/velocity.c:462 +#. Translators: feel free to change the reference to that martial art, if you find another good analogy. +#: ../src/velocity.c:451 +#, c-format msgid "" -" Dvorak mode dominated!\n" -" Can you fly at 90 WPM?\n" +" Kunf-fu mastering!\n" +" Can you fly at %.0f WPM?\n" msgstr "" -" Dvorak moduan bikain ibili zara!\n" -" Gora egin dezakezu 90 hitz minutuko mugaraino?\n" +" Shaolin botereak!\n" +" Gorago egin dezakezu %.0f hitz minutuko mugaraino?\n" -#: ../src/velocity.c:466 +#. Translators: Dvorak here means that infamous ergonomic keyboard layout. +#: ../src/velocity.c:454 msgid "" " Dvorak master!\n" " I have no words to express my admiration!\n" @@ -1185,7 +1187,7 @@ " Dvorak maisua!\n" " Ez dut hitzik zenbat miresten zaitudan adierazteko!\n" -#: ../src/fluidness.c:545 +#: ../src/fluidness.c:538 #, c-format msgid "" " You type accurately but not so fast.\n" @@ -1194,7 +1196,7 @@ " Zehatz mekanografiatu duzu baina ez horren azkar.\n" " Irits zintezke %.0f hitz minutuko mugaraino?\n" -#: ../src/fluidness.c:548 +#: ../src/fluidness.c:541 #, c-format msgid "" " Your rhythm is not so constant. Calm down.\n" @@ -1203,7 +1205,7 @@ " Zeure erritmoa ez da hain jarraikia. Lasai.\n" " Hemendik aurrera, saia zaitez jariakortasuna %i%% honetatik gora eusten.\n" -#: ../src/fluidness.c:551 +#: ../src/fluidness.c:544 #, c-format msgid "" " You are almost getting there. Type more fluently.\n" @@ -1213,7 +1215,7 @@ "mekanografiatzen.\n" " Zure jariakortasuna %.0f%% baino hobea izatea nahi nuke.\n" -#: ../src/fluidness.c:554 +#: ../src/fluidness.c:547 msgid "" " Congratulations!\n" " It seems to me that you are a professional.\n" @@ -1226,7 +1228,7 @@ " Ikasten edota hobetzen ondo pasatu duzu? Hala espero dut. Mila esker eta " "izan zoriontsu!\n" -#: ../src/fluidness.c:559 +#: ../src/fluidness.c:552 msgid "" " How can you type so fast?\n" " You have exceeded all my expectations.\n" @@ -1287,5 +1289,19 @@ msgid "Could not upload/download scores." msgstr "Ezin izan da lortutako emaitzarik kargatu/deskargatu" +#~ msgid "Klavaro" +#~ msgstr "Klavaro" + +#~ msgid "_Font" +#~ msgstr "Letra-_tipoa" + #~ msgid "Default" #~ msgstr "Lehenetsia" + +#~ msgid "" +#~ " Top of \"qwerty\". Now it's time to change to the Dvorak mode.\n" +#~ " Are you afraid of reaching 80 WPM?\n" +#~ msgstr "" +#~ " \"qwerty\" giltzadiko onenak. Orain, bada garaia Dvorak modura " +#~ "aldatzeko.\n" +#~ " Kezkatuta zaude 80 hitz minutuko mugarekin?\n" diff -Nru klavaro-1.9.9/po/fi.po klavaro-3.00/po/fi.po --- klavaro-1.9.9/po/fi.po 1970-01-01 00:00:00.000000000 +0000 +++ klavaro-3.00/po/fi.po 2014-01-13 23:25:50.000000000 +0000 @@ -0,0 +1,1154 @@ +# Klavaro - Translation to Finnish +# Copyright (C) Lasse Liehu, 2014 +# This file is distributed under the same license as the klavaro package. +# +# Lasse Liehu , 2014. +msgid "" +msgstr "" +"Project-Id-Version: klavaro 3.00-pre2\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2014-01-13 21:25-0200\n" +"PO-Revision-Date: 2014-01-10 15:32+0200\n" +"Last-Translator: Lasse Liehu \n" +"Language-Team: Finnish \n" +"Language: fi\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" +"X-Generator: Lokalize 1.5\n" + +# miksi puolilainausmerkit? +#: ../data/klavaro.glade.h:1 +msgid "About 'Klavaro'" +msgstr "Tietoja ”Klavarosta”" + +#: ../data/klavaro.glade.h:2 +msgid "Yet another touch typing tutor" +msgstr "Jälleen yksi konekirjoituksen ohjaaja" + +#: ../data/klavaro.glade.h:3 +msgid "Remember always: someone loves you!" +msgstr "Muista aina: joku pitää sinusta!" + +#: ../data/klavaro.glade.h:4 +msgid "Change language" +msgstr "Vaihda kieltä" + +#: ../data/klavaro.glade.h:5 +msgid "Attention!" +msgstr "Huomio!" + +#: ../data/klavaro.glade.h:6 +msgid "Do you confirm?" +msgstr "Vahvistatko?" + +#: ../data/klavaro.glade.h:7 +msgid "_No" +msgstr "_En" + +# vai vahvistan? +#: ../data/klavaro.glade.h:8 +msgid "_Yes" +msgstr "_Kyllä" + +#: ../data/klavaro.glade.h:9 +msgid "Help?" +msgstr "" + +# voiko button-sanan jättää pois? +#: ../data/klavaro.glade.h:10 +msgid "This is a tip. Now you press this button to return to the main menu." +msgstr "Tämä on vinkki. Palaa nyt päävalikkoon painamalla tästä." + +#: ../data/klavaro.glade.h:11 +msgid "B_ack to menu" +msgstr "_Takaisin valikkoon" + +#: ../data/klavaro.glade.h:12 +msgid "" +"The main menu of the application is very straightforward. Just select the " +"type of exercise you wish to take. Do not worry about clicking any button on " +"the screen. The buttons will never hurt you!" +msgstr "" +"Sovelluksen päävalikko on hyvin yksinkertainen. Valitse vain haluamasi " +"harjoitus. Älä epäröi minkään näytöllä näkyvän painikkeen painamista. " +"Painikkeet eivät koskaan satuta sinua!" + +#: ../data/klavaro.glade.h:13 +msgid "" +"Also the controls have tips which will appear if you hover over them with " +"your mouse. These tips can come in very handy. To see how these tips work, " +"position your mouse over the button below, and without clicking, wait for " +"the tip to appear..." +msgstr "" + +#: ../data/klavaro.glade.h:14 +msgid "Klavaro - Select file" +msgstr "Klavaro – Valitse tiedosto" + +#: ../data/klavaro.glade.h:15 +msgid "_Cancel" +msgstr "_Peru" + +#: ../data/klavaro.glade.h:16 +msgid "_Open" +msgstr "_Avaa" + +#: ../data/klavaro.glade.h:17 +msgid "Re_name:" +msgstr "_Muuta nimeä:" + +# kohteen? +#: ../data/klavaro.glade.h:18 +msgid "Rename the selected item." +msgstr "Muuta valitun kohteen nimeä." + +#: ../data/klavaro.glade.h:19 +msgid "" +"Read a text file and add a copy of it here. The file must be encoded in " +"UTF-8." +msgstr "" +"Lue tekstitiedosto ja lisää kopio siitä tähän. Tiedoston täytyy olla UTF-8-" +"koodattu." + +#: ../data/klavaro.glade.h:20 +msgid "_Open text file" +msgstr "_Avaa tekstitiedosto" + +#: ../data/klavaro.glade.h:21 +msgid "Paste text that was copied to the clipboard." +msgstr "Liitä leikepöydälle kopioitu teksti." + +#: ../data/klavaro.glade.h:22 +msgid "_Paste from clipboard" +msgstr "_Liitä leikepöydältä" + +# kohde? +#: ../data/klavaro.glade.h:23 +msgid "Remove the selected item." +msgstr "Poista valittu kohde." + +#: ../data/klavaro.glade.h:24 +msgid "_Remove copied file" +msgstr "_Poista kopioitu tiedosto" + +# kohde? +#: ../data/klavaro.glade.h:25 +msgid "Apply the selected item to create an exercise." +msgstr "Käytä annettua kohdetta harjoituksen luomisessa" + +#: ../data/klavaro.glade.h:26 +msgid "_Apply" +msgstr "_Käytä" + +#: ../data/klavaro.glade.h:27 +msgid "Close this window." +msgstr "Sulje tämä ikkuna." + +#: ../data/klavaro.glade.h:28 +msgid "_Close" +msgstr "_Sulje" + +#: ../data/klavaro.glade.h:29 +msgid "Country / Custom" +msgstr "Maa / oma" + +#: ../data/klavaro.glade.h:30 +msgid "Variant" +msgstr "Muunnelma" + +#: ../data/klavaro.glade.h:31 +msgid "Remove the selected custom layout." +msgstr "Poista valittu oma asettelu." + +#: ../data/klavaro.glade.h:32 +msgid "_Remove" +msgstr "_Poista" + +# tarkista +#: ../data/klavaro.glade.h:33 +msgid "" +"Toggles the shift effect on the keys. Alternates between the upper and lower " +"characters of the keys." +msgstr "" +"Näppäinten vaihtonäppäinvaikutus päälle/pois. Vaihtelee pien- ja " +"suuraakkosten välillä." + +#: ../data/klavaro.glade.h:34 +msgid "SPACE BAR" +msgstr "VÄLILYÖNTI" + +#: ../data/klavaro.glade.h:35 ../src/keyboard.c:1630 +msgid "thumbs" +msgstr "peukut" + +#: ../data/klavaro.glade.h:36 +msgid "Ctrl" +msgstr "Ctrl" + +# onko parasta jättää kääntämättä, koska näppäimistöissä lukee ”Caps Lock”? +#: ../data/klavaro.glade.h:37 +msgid "Caps" +msgstr "Caps" + +#: ../data/klavaro.glade.h:38 +msgid "S_ave as:" +msgstr "Tallenna _nimellä:" + +#: ../data/klavaro.glade.h:39 +msgid "Show previous screen." +msgstr "Näytä edellinen näyttö." + +#: ../data/klavaro.glade.h:40 +msgid "_Previous step" +msgstr "_Edellinen askel" + +#: ../data/klavaro.glade.h:41 +msgid "Show next screen." +msgstr "Näytä seuraava näyttö." + +#: ../data/klavaro.glade.h:42 +msgid "_Next step" +msgstr "_Seuraava askel" + +#: ../data/klavaro.glade.h:43 +msgid "Return without any modification." +msgstr "Palaa ilman muutoksia." + +#: ../data/klavaro.glade.h:44 +msgid "Save the current keyboard layout with the name specified above." +msgstr "Tallenna nykyinen näppäimistöasettelu yllä annetulla nimellä." + +#: ../data/klavaro.glade.h:45 +msgid "_Save and use" +msgstr "_Tallenna ja käytä" + +# selkeytä +#: ../data/klavaro.glade.h:46 +msgid "" +"If you like those beautiful hands, click here to close this window keeping " +"them." +msgstr "" +"Jos pidät noista kauniista käsistä, paina tästä sulkeaksesi tämä ikkuna " +"pitäen kädet silti näkyvissä." + +#: ../data/klavaro.glade.h:47 +msgid "_Keep hands" +msgstr "_Pidä kädet näkyvissä" + +#: ../data/klavaro.glade.h:48 +msgid "Klavaro - Main menu" +msgstr "Klavaro – Päävalikko" + +#: ../data/klavaro.glade.h:49 +msgid "Don't be shy about learning the basics!" +msgstr "Älä ujostele perusteiden oppimista!" + +#: ../data/klavaro.glade.h:50 +msgid "Learn how to type correctly" +msgstr "Opi kirjoittamaan oikein" + +#: ../data/klavaro.glade.h:51 +msgid "Initial training for your fingers." +msgstr "Sormiesi alustava valmennus." + +#: ../data/klavaro.glade.h:52 +msgid "First steps with initial training" +msgstr "Ensiaskeleet alustavassa valmennuksessa" + +#: ../data/klavaro.glade.h:53 +msgid "Memorizing the keyboard practicing random keys exercises." +msgstr "" +"Näppäimistön ulkoa opetteleminen tekemällä satunnaisia näppäinharjoituksia." + +#: ../data/klavaro.glade.h:54 +msgid "Practice with random keys" +msgstr "Harjoittelu satunnaisilla näppäimillä" + +#: ../data/klavaro.glade.h:55 +msgid "Accelerating the touches practicing random words exercises." +msgstr "Kosketuksen kiihdyttäminen tekemällä satunnaisia sanaharjoituksia." + +#: ../data/klavaro.glade.h:56 +msgid "Practice with random words" +msgstr "Harjoittelu satunnaisilla sanoilla" + +#: ../data/klavaro.glade.h:57 +msgid "Becoming proficient practicing complete paragraphs exercises." +msgstr "Päteväksi tuleminen tekemällä kokonaisia kappaleharjoituksia." + +#: ../data/klavaro.glade.h:58 +msgid "Practice with complete texts" +msgstr "Harjoittele kokonaisilla teksteillä" + +# informatiivisesti? kisa vai kilpailu? +#: ../data/klavaro.glade.h:59 +msgid "" +"Keyboard layout for modules 1 and 2. Also used informatively in the " +"fluidness contest." +msgstr "" +"Näppäimistöasettelu yksiköille 1 ja 2. Käytetään myös informatiivisesti " +"sujuvuuskisassa." + +#: ../data/klavaro.glade.h:60 +msgid "_Keyboard:" +msgstr "_Näppäimistö:" + +#: ../data/klavaro.glade.h:61 +msgid "Language for modules 3 and 4." +msgstr "Kieli yksiköille 3 ja 4." + +#: ../data/klavaro.glade.h:62 +msgid "_Language:" +msgstr "_Kieli:" + +# merkitys? +#: ../data/klavaro.glade.h:63 +msgid "Speech" +msgstr "Puhe" + +# kirjoita? +#: ../data/klavaro.glade.h:64 +msgid "Your language here." +msgstr "Kirjoita kielesi tähän." + +#: ../data/klavaro.glade.h:65 +msgid "Little tip about this program." +msgstr "" + +#: ../data/klavaro.glade.h:66 +msgid "_Help" +msgstr "O_hje" + +#: ../data/klavaro.glade.h:67 +msgid "General information about the program." +msgstr "Yleisiä tietoja ohjelmasta." + +#: ../data/klavaro.glade.h:68 +msgid "_About..." +msgstr "_Tietoja…" + +#: ../data/klavaro.glade.h:69 +msgid "Exit the application immediately." +msgstr "Lopeta sovellus heti." + +#: ../data/klavaro.glade.h:70 +msgid "Klavaro - Progress" +msgstr "Klavaro – Edistyminen" + +#: ../data/klavaro.glade.h:71 +msgid "_Lesson:" +msgstr "_Oppitunti:" + +# onko varmasti arvo? +#: ../data/klavaro.glade.h:72 +msgid "Value" +msgstr "Arvo" + +#: ../data/klavaro.glade.h:73 +msgid "Close this window, returning to the exercise." +msgstr "Sulje tämä ikkuna ja palaa harjoitukseen." + +#: ../data/klavaro.glade.h:74 +msgid "Clear all the progress data, for every module." +msgstr "Tyhjennä kaikki tiedot edistymisestä jokaisen yksikön osalta." + +#: ../data/klavaro.glade.h:75 +msgid "_Reset" +msgstr "_Nollaa" + +#: ../data/klavaro.glade.h:76 +msgid "Top 10" +msgstr "Kymmenen kärki" + +#: ../data/klavaro.glade.h:77 +msgid "Show extra information." +msgstr "" + +#: ../data/klavaro.glade.h:78 +msgid "Hide extra information." +msgstr "" + +#: ../data/klavaro.glade.h:79 +msgid "Publish to the web your local scores." +msgstr "Julkaise paikalliset pisteesi verkossa." + +#: ../data/klavaro.glade.h:80 +msgid "_Participate" +msgstr "_Osallistu" + +# ranking? pisteet? +#: ../data/klavaro.glade.h:81 +msgid "Download from the web the most up to date ranking." +msgstr "Lataa uusimmat pisteet verkosta." + +#: ../data/klavaro.glade.h:82 +msgid "_Update" +msgstr "_Päivitä" + +#: ../data/klavaro.glade.h:83 +msgid "Load other exercises/lessons" +msgstr "Lataa muita harjoituksia/oppitunteja" + +#: ../data/klavaro.glade.h:84 +msgid "_Other texts" +msgstr "_Muut tekstit" + +#: ../data/klavaro.glade.h:85 +msgid "Edit the character set to be used in this lesson." +msgstr "Muokkaa tällä oppitunnilla käytettävää merkistöä." + +#: ../data/klavaro.glade.h:86 +msgid "This is a specific exercise, adjusted to your error profile." +msgstr "Tämä on erityisharjoitus, joka on sovitettu virheprofiiliisi." + +#: ../data/klavaro.glade.h:87 +msgid "" +"Edit the character set to be used in lessons after 43: they are customizable!" +msgstr "" + +#: ../data/klavaro.glade.h:88 ../src/tutor.c:376 +msgid "Drag and drop text here to practice with it." +msgstr "Vedä ja pudota tekstiä tähän harjoitellaksesi sillä." + +#: ../data/klavaro.glade.h:89 +msgid "Press here to restart the exercise. Hotkey: [Ctrl-R]" +msgstr "Aloita harjoitus alusta painamalla tästä. Pikanäppäin: [Ctrl-R]" + +#: ../data/klavaro.glade.h:90 +msgid "Show the virtual keyboard and the relation between fingers and keys." +msgstr "Näytä virtuaalinäppäimistö sekä sormien ja näppäinten välinen suhde." + +#: ../data/klavaro.glade.h:91 +msgid "_Keyboard" +msgstr "_Näppäimistö" + +#: ../data/klavaro.glade.h:92 +msgid "Select the font to be used in the exercise window." +msgstr "Valitse harjoitusikkunan fontti." + +#: ../data/klavaro.glade.h:93 +msgid "Font definition" +msgstr "" + +#: ../data/klavaro.glade.h:94 +msgid "Keep this checked if you want to get those nice beeps." +msgstr "Pidä tämä valittuna, jos haluat kuulla mukavia piippauksia." + +#: ../data/klavaro.glade.h:95 +msgid "_Beep" +msgstr "_Piippaa" + +#: ../data/klavaro.glade.h:96 +msgid "Co_urse information" +msgstr "_Kurssin tiedot" + +#: ../data/klavaro.glade.h:97 +msgid "Charts showing the learning progress along the exercises." +msgstr "Kaaviot, jotka näyttävät harjoitustesi oppimistulokset." + +# vai tulokset? +#: ../data/klavaro.glade.h:98 +msgid "_Progress" +msgstr "_Edistyminen" + +#: ../data/klavaro.glade.h:99 +msgid "Return to the main menu." +msgstr "Palaa päävalikkoon." + +#: ../data/klavaro.glade.h:100 +msgid "Show local and external scores from other users." +msgstr "Näytä muiden käyttäjien paikalliset ja ulkoiset pisteet." + +#: ../data/klavaro.glade.h:101 +msgid "_Top 10" +msgstr "_Kymmenen kärki" + +#: ../data/klavaro.desktop.in.h:1 +msgid "A very flexible and efficient touch typing tutor." +msgstr "" + +#. Translators: these are keywords related to the program. CAI above means Computer Aided Instruction. Feel free to add and/or change the keywords in your language. +#: ../data/klavaro.desktop.in.h:3 +msgid "keyboard;typing;tutor;CAI" +msgstr "" + +#: ../src/main.c:242 +msgid "(Custom)" +msgstr "(Oma)" + +#: ../src/main.c:243 +msgid "(Edit custom)" +msgstr "(Muokkaa omaa)" + +#: ../src/main.c:244 +msgid "(Default)" +msgstr "(Oletus)" + +# monikkomuoto on jotenkin epäselvä +#: ../src/main.c:321 +#, c-format +msgid "Dictation mode (depends on this speech synthesizer: %s)" +msgid_plural "Dictation mode (depends on one of these speech synthesizers: %s)" +msgstr[0] "Sanelutila (riippuu tästä puhesyntetisaattorista: %s)" +msgstr[1] "" +"Sanelutila (riippuu yhdestä seuraavista puhesyntetisaattoreista: %s)" + +#: ../src/main.c:364 ../src/keyboard.c:1291 +msgid "Introduction" +msgstr "Johdatus" + +#: ../src/main.c:367 ../src/top10.c:109 +msgid "Basic course" +msgstr "Peruskurssi" + +#: ../src/main.c:370 ../src/top10.c:112 +msgid "Adaptability" +msgstr "" + +#: ../src/main.c:373 ../src/callbacks.c:1226 ../src/top10.c:89 +#: ../src/top10.c:115 +msgid "Speed" +msgstr "Nopeus" + +#: ../src/main.c:376 ../src/callbacks.c:1249 ../src/top10.c:91 +#: ../src/top10.c:118 +msgid "Fluidity" +msgstr "Sujuvuus" + +#: ../src/callbacks.c:407 ../src/tutor.c:515 +msgid "Keys:" +msgstr "Näppäimet:" + +#: ../src/callbacks.c:774 ../src/callbacks.c:790 +msgid "Connecting..." +msgstr "Yhdistetään…" + +# onko oikein? +#: ../src/callbacks.c:1061 +msgid "Overwrite user layout" +msgstr "Korvaa käyttäjän asettelu" + +# existent? nykyinen vai olemassa oleva? +#: ../src/callbacks.c:1063 +msgid "This will OVERWRITE an existent keyboard layout." +msgstr "Tämä KORVAA nykyisen näppäimistöasettelun." + +#: ../src/callbacks.c:1070 +msgid "Remove user layout" +msgstr "Poista käyttäjän asettelu" + +# existent? nykyinen vai olemassa oleva? +#: ../src/callbacks.c:1072 +msgid "This will REMOVE an existent keyboard layout." +msgstr "Tämä POISTAA nykyisen näppäimistöasettelun." + +#: ../src/callbacks.c:1079 +msgid "Reset progress data" +msgstr "Nollaa tiedot edistymisestä" + +#: ../src/callbacks.c:1080 +msgid "This will DELETE all the progress data shown in the charts." +msgstr "Tämä POISTAA kaikki kaavioissa näytetyt tiedot edistymisestä." + +#: ../src/callbacks.c:1223 ../src/top10.c:87 +msgid "Accuracy" +msgstr "Tarkkuus" + +#: ../src/callbacks.c:1226 ../src/tutor.c:1288 +msgid "(WPM)" +msgstr "" + +#: ../src/callbacks.c:1237 +msgid "Errors" +msgstr "" + +#: ../src/callbacks.c:1240 +msgid "Touch times (s)" +msgstr "" + +#: ../src/callbacks.c:1252 ../src/tutor.c:1315 ../src/top10.c:69 +msgid "Score" +msgstr "" + +#. Translators: your language code (first 2 letters of your po-file) +#: ../src/translation.c:485 ../src/tutor.c:1725 +msgid "en" +msgstr "fi" + +#: ../src/translation.c:572 +msgid "" +"The basic course focuses on having you read the characters presented to you " +"on screen and typing the corresponding keys. Remember to keep your hands " +"correctly oriented on the home row of the keyboard at all times (see " +"introduction on main menu)." +msgstr "" + +#: ../src/translation.c:576 +msgid "" +"The key set used in each series will be shown in the above message line. The " +"[Space], [Shift] and [Enter] keys may not show up there but are used very " +"often." +msgstr "" + +#: ../src/translation.c:579 +msgid "" +"The message line below follows and echoes your key presses. If required, it " +"changes and displays instructions for actions required from you." +msgstr "" + +#: ../src/translation.c:583 +msgid "" +"Here you may practice and improve your memorization of all keys. There will " +"be sentences presented with nonsense words which mix some numbers and " +"symbols." +msgstr "" + +#: ../src/translation.c:586 +msgid "" +"In order to keep the lesson contents language and keyboard independent, " +"accented letter combinations will probably not appear. For real word " +"sentences, please use the fourth option of the main menu (about fluidness)." +msgstr "" + +#: ../src/translation.c:590 +msgid "" +"After each exercise there will be a brief statistics panel reviewing your " +"performance along with some relevant comments." +msgstr "" + +#: ../src/translation.c:594 +msgid "" +"This exercise is very similar to the second one, for adaptability. The " +"difference is that here you'll type real words." +msgstr "" + +#: ../src/translation.c:597 +msgid "" +"The default language is the actual one of the interface. But you may select " +"any other texts with words you would like to use. Press the 'Other' option " +"above and add files containing those texts." +msgstr "" + +#: ../src/translation.c:601 +msgid "" +"With this exercise the focus is on speed. So, you are supposed to type " +"really fast and I will only flatter you when you deserve it!" +msgstr "" + +#: ../src/translation.c:605 +msgid "" +"We will now use complete sentences and paragraphs which make logical sense. " +"This may distract you while you type if you try to understand what you are " +"entering. The previous exercises were aimed at getting you to type without " +"interpreting and analyzing the content." +msgstr "" + +#: ../src/translation.c:609 +msgid "" +"We do not mean to imply that the typists must behave like a robot, without " +"understanding what they type. We do aim to develop the skill of typing, " +"making it an automatic reflex akin to the acts of walking, talking, etc. " +"After reaching this goal, the act of typing will become automatic and " +"require little concentration. Then you will be able to pay attention to the " +"real meaning of the text." +msgstr "" + +#: ../src/translation.c:613 +msgid "" +"These exercises are longer. Each exercise consists of three paragraphs and " +"the emphasis is placed on correctness and rhythm, with a minimum speed " +"requirement. Here you will be required to use the backspace key to correct " +"any mistakes. In other words, only input without error will be accepted." +msgstr "" + +#: ../src/keyboard.c:1094 +msgid "" +"Correct positioning of the hands and fingers is very important to efficient " +"typing. You will learn faster and type better if you follow the next " +"recommendations." +msgstr "" + +#: ../src/keyboard.c:1097 +msgid "" +"The index-finger tips rest over each of the two keys which have a small " +"raised mark, in the center of the keyboard." +msgstr "" + +#: ../src/keyboard.c:1100 +msgid "" +"These marks function as 'tactile hooks' for your fingers to remain at the " +"correct position. This way, with a little experience, you will not need to " +"look at the keyboard to see if your fingers are properly positioned." +msgstr "" + +#: ../src/keyboard.c:1104 +msgid "" +"The tips of the other fingers lie naturally beside the index ones, over the " +"keys on the same row of the keyboard." +msgstr "" + +#: ../src/keyboard.c:1107 +msgid "The outside edges of your thumbs rest over the space bar." +msgstr "" + +#: ../src/keyboard.c:1109 +msgid "" +"The part of the hands closest to the wrist (the base) rest over the table, " +"outside the keyboard. Without this kind of support the arms would quickly " +"tire." +msgstr "" + +#: ../src/keyboard.c:1112 +msgid "" +"This is referred to as the home position for the hands. From it the fingers " +"move all over the keyboard, reaching all the keys as naturally and quickly " +"as possible. To reach this goal one uses a specific relation between each " +"key and finger. This relation will be learned gradually as you complete the " +"basic course." +msgstr "" + +#: ../src/keyboard.c:1118 +msgid "" +"When learning the relation between fingers and keys, it is very important " +"that you only move the finger which must press the key and allow all other " +"fingers to remain in the home position." +msgstr "" + +#: ../src/keyboard.c:1122 +msgid "" +"After memorizing this relationship, you can relax the previous rule some, so " +"that you can attain greater speed while typing." +msgstr "" + +#: ../src/keyboard.c:1125 +msgid "" +"You should be prepared to start training with the basic course. It will take " +"effort and patience to be successful as a typist. We trust you have these " +"and look forward to your success!" +msgstr "" + +# step? onko vaihe? +#: ../src/keyboard.c:1136 +#, c-format +msgid "Step %i" +msgstr "Vaihe %i" + +# tarviiko muuttaa? +#: ../src/keyboard.c:1142 +msgid "To position the hands" +msgstr "Kädet paikoilleen" + +#: ../src/keyboard.c:1227 +msgid "Go ahead!" +msgstr "Anna mennä!" + +#: ../src/keyboard.c:1234 +msgid "Relation between fingers and keys" +msgstr "Sormien ja näppäinten välinen suhde" + +#: ../src/keyboard.c:1235 +msgid "Click on any key to see which finger you must use:" +msgstr "Paina mitä tahansa näppäintä nähdäksesi, mitä sormea tulee käyttää:" + +#: ../src/keyboard.c:1291 ../src/keyboard.c:1325 +msgid "Keyboard" +msgstr "Näppäimistö" + +#: ../src/keyboard.c:1372 +msgid "Create or modify a custom keyboard layout" +msgstr "Luo tai muokkaa omaa näppäimistöasettelua" + +#: ../src/keyboard.c:1618 ../src/keyboard.c:1642 +msgid "small finger" +msgstr "" + +#: ../src/keyboard.c:1621 ../src/keyboard.c:1639 +msgid "ring finger" +msgstr "" + +#: ../src/keyboard.c:1624 ../src/keyboard.c:1636 +msgid "middle finger" +msgstr "keskisormi" + +#: ../src/keyboard.c:1627 ../src/keyboard.c:1633 +msgid "index finger" +msgstr "etusormi" + +#: ../src/keyboard.c:1728 +msgid "Press and edit me" +msgstr "" + +#: ../src/tutor.c:300 +msgid "Lesson:" +msgstr "Oppitunti:" + +#: ../src/tutor.c:310 +msgid "Paragraphs:" +msgstr "" + +#: ../src/tutor.c:343 +msgid "Klavaro - Basic Course" +msgstr "" + +#: ../src/tutor.c:348 +msgid "Klavaro - Adaptability" +msgstr "" + +#: ../src/tutor.c:351 +msgid "" +"Adaptability exercises: automating the fingers responses, typing over all " +"the keyboard." +msgstr "" + +#: ../src/tutor.c:356 +msgid "Klavaro - Velocity" +msgstr "" + +#: ../src/tutor.c:357 +msgid "Velocity exercises: accelerate typing real words." +msgstr "" + +#: ../src/tutor.c:361 +msgid "Klavaro - Fluidness" +msgstr "" + +#: ../src/tutor.c:363 +msgid "Fluidness exercises: accuracy typing good sense paragraphs." +msgstr "" + +#: ../src/tutor.c:425 +msgid "End of exercise. Press [Enter] to start another." +msgstr "" + +#: ../src/tutor.c:453 +msgid "Learning the key positions." +msgstr "" + +#: ../src/tutor.c:456 +msgid "Press any key to start the exercise. " +msgstr "" + +#: ../src/tutor.c:567 ../src/tutor.c:570 +msgid "Start typing when you are ready. " +msgstr "" + +#: ../src/tutor.c:568 +msgid "Use backspace to correct errors." +msgstr "" + +#: ../src/tutor.c:1012 +#, c-format +msgid "" +"ps.: logging not performed for this session: the number of typed characters " +"(%i) must be greater than %i." +msgstr "" + +#: ../src/tutor.c:1154 +msgid "ps.: you have entered the Top 10 list, great!" +msgstr "" + +#: ../src/tutor.c:1166 +msgid "" +"ps.: the text you just typed doesn't seem to be similar to ordinary texts in " +"the language currently selected: we can't account for it in the 'Top 10' " +"contest." +msgstr "" + +#: ../src/tutor.c:1215 +msgid "STATISTICS" +msgstr "" + +#: ../src/tutor.c:1216 +msgid "Elapsed time:" +msgstr "" + +#: ../src/tutor.c:1217 +msgid "minute and" +msgid_plural "minutes and" +msgstr[0] "" +msgstr[1] "" + +#: ../src/tutor.c:1218 +msgid "second" +msgid_plural "seconds" +msgstr[0] "" +msgstr[1] "" + +#: ../src/tutor.c:1219 +msgid "Error ratio:" +msgstr "" + +#: ../src/tutor.c:1219 +msgid "Accuracy:" +msgstr "" + +#: ../src/tutor.c:1240 ../src/tutor.c:1265 ../src/tutor.c:1288 +#: ../src/tutor.c:1314 +msgid "Goal:" +msgstr "" + +#: ../src/tutor.c:1247 +msgid "Characters per second:" +msgstr "" + +#: ../src/tutor.c:1265 +msgid "(CPS)" +msgstr "" + +#: ../src/tutor.c:1270 +msgid "Words per minute:" +msgstr "" + +#: ../src/tutor.c:1295 +msgid "Fluidness:" +msgstr "" + +#: ../src/tutor.c:1322 +msgid "Comments:" +msgstr "" + +#: ../src/tutor.c:1804 +msgid "space" +msgstr "" + +#. Translators: the name of letter Y +#: ../src/tutor.c:1809 +msgid "wye" +msgstr "" + +#. Translators: the name of the Return key +#: ../src/tutor.c:1813 +msgid "enter" +msgstr "" + +#: ../src/tutor.c:1819 +msgid "apostrophe" +msgstr "" + +#. Translators: double quote symbol: " +#: ../src/tutor.c:1823 +msgid "quote" +msgstr "" + +#. Translators: ampersand symbol: & +#: ../src/tutor.c:1827 +msgid "ampersand" +msgstr "" + +#: ../src/plot.c:305 +msgid "Character" +msgstr "" + +#: ../src/plot.c:319 +msgid "Date & Time" +msgstr "" + +#: ../src/basic.c:326 +msgid "Positions of keys seems to be learned!" +msgstr "" + +#: ../src/basic.c:327 +msgid "" +" Congratulations!\n" +" You have accomplished the entire basic course.\n" +" Go to the next type of exercise: adaptability.\n" +" There you will practice mainly the accuracy.\n" +msgstr "" + +#: ../src/basic.c:333 +msgid "" +" All right, now you got it!\n" +" Go to the next lesson.\n" +msgstr "" + +#: ../src/adaptability.c:213 +#, c-format +msgid "" +" Your accuracy rate is below %.0f%%...\n" +" Could you please try again to improve it?\n" +msgstr "" + +#: ../src/adaptability.c:216 +#, c-format +msgid "" +" You are doing well. But...\n" +" Could you make the accuracy reach %.0f%%?\n" +msgstr "" + +#: ../src/adaptability.c:219 +#, c-format +msgid "" +" You are almost there, but your accuracy rate is still below %.0f%%.\n" +" Try a few more times, or maybe you're getting upset, so go to another kind " +"of exercise.\n" +msgstr "" + +#: ../src/adaptability.c:226 +#, c-format +msgid "" +" Very good!\n" +" You succeeded with an accuracy rate above %.0f%%.\n" +" Now it is time to increase your velocity.\n" +" Go to the 3rd exercise at the main menu.\n" +msgstr "" + +#: ../src/velocity.c:312 ../src/fluidness.c:435 +msgid "Pasted_or_dropped" +msgstr "" + +#: ../src/velocity.c:423 +msgid "" +" You are just beginning.\n" +" Be patient, try it again every day, rest and don't worry so much:\n" +" persistence and practice will improve your velocity.\n" +msgstr "" + +#: ../src/velocity.c:427 +#, c-format +msgid "" +" Still away from the highway. You can make better...\n" +" Try to reach at least %.0f WPM.\n" +msgstr "" + +#: ../src/velocity.c:430 +#, c-format +msgid "" +" You are doing well, but need to go faster.\n" +" And don't forget the accuracy. Try to get %.0f WPM.\n" +msgstr "" + +#: ../src/velocity.c:433 +#, c-format +msgid "" +" Fine. Now you need to start running.\n" +" Can you reach %.0f WPM?\n" +msgstr "" + +#: ../src/velocity.c:436 +#, c-format +msgid "" +" Very good. You are almost there.\n" +" Can you finally reach %.0f WPM?\n" +msgstr "" + +#: ../src/velocity.c:439 +msgid "" +" Excellent. For this course, that is enough.\n" +" Try now the fluidness exercises, OK?\n" +msgstr "" + +#: ../src/velocity.c:442 +#, c-format +msgid "" +" Fast! Are you a professional?\n" +" So, try to get %.0f WPM!\n" +msgstr "" + +#. Translators: Speed Racer is a reference to a Japanese anime franchise +#. about automobile racing, also known as Mach GoGoGo. +#: ../src/velocity.c:447 +#, c-format +msgid " Ranking good, Speed Racer! Are you afraid of reaching %.0f WPM?\n" +msgstr "" + +#. Translators: feel free to change the reference to that martial art, if you find another good analogy. +#: ../src/velocity.c:451 +#, c-format +msgid "" +" Kunf-fu mastering!\n" +" Can you fly at %.0f WPM?\n" +msgstr "" + +#. Translators: Dvorak here means that infamous ergonomic keyboard layout. +#: ../src/velocity.c:454 +msgid "" +" Dvorak master!\n" +" I have no words to express my admiration!\n" +msgstr "" + +#: ../src/fluidness.c:538 +#, c-format +msgid "" +" You type accurately but not so fast.\n" +" Can you reach %.0f WPM?\n" +msgstr "" + +#: ../src/fluidness.c:541 +#, c-format +msgid "" +" Your rhythm is not so constant. Calm down.\n" +" For now, try to make the fluidness greater than %i%%.\n" +msgstr "" + +#: ../src/fluidness.c:544 +#, c-format +msgid "" +" You are almost getting there. Type more fluently.\n" +" I want a fluidness greater than %.0f%%.\n" +msgstr "" + +#: ../src/fluidness.c:547 +msgid "" +" Congratulations!\n" +" It seems to me that you are a professional.\n" +" You don't need this program (me) anymore.\n" +" Hope you have enjoyed. Thanks and be happy!\n" +msgstr "" + +#: ../src/fluidness.c:552 +msgid "" +" How can you type so fast?\n" +" You have exceeded all my expectations.\n" +" Are you a machine? Could you teach me?\n" +" I can not help you anymore. Go to an expert!\n" +msgstr "" + +#: ../src/top10.c:67 +msgid "Name" +msgstr "" + +#: ../src/top10.c:93 +msgid "Chars" +msgstr "" + +#: ../src/top10.c:95 +msgid "When" +msgstr "" + +#: ../src/top10.c:124 +msgid "Local scores" +msgstr "" + +#: ../src/top10.c:125 +msgid "External scores" +msgstr "" + +#: ../src/top10.c:719 +msgid "Empty ranking. Please practice fluidness." +msgstr "" + +#: ../src/top10.c:816 +msgid "Not able to download files" +msgstr "" + +#: ../src/top10.c:816 ../src/top10.c:906 +msgid "not found" +msgstr "" + +#: ../src/top10.c:817 ../src/top10.c:907 +msgid "Are you sure you have it installed in your system?" +msgstr "" + +#: ../src/top10.c:861 +msgid "Could not download file from the host server." +msgstr "" + +#: ../src/top10.c:906 +msgid "Not able to upload files" +msgstr "" + +#: ../src/top10.c:987 +msgid "Could not upload/download scores." +msgstr "" diff -Nru klavaro-1.9.9/po/fr.po klavaro-3.00/po/fr.po --- klavaro-1.9.9/po/fr.po 2013-08-15 13:38:50.000000000 +0000 +++ klavaro-3.00/po/fr.po 2014-01-13 23:25:50.000000000 +0000 @@ -8,8 +8,8 @@ msgid "" msgstr "" "Project-Id-Version: klavaro-1.9.5-pre2\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2013-08-15 10:38-0300\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2014-01-13 21:25-0200\n" "PO-Revision-Date: 2013-05-02 19:24+0100\n" "Last-Translator: Thierry BENITA \n" "Language-Team: French \n" @@ -24,560 +24,565 @@ "X-Poedit-Basepath: klavaro/\n" "X-Poedit-SearchPath-0: .\n" -#: ../data/klavaro.desktop.in.h:1 ../data/klavaro.glade.h:59 -msgid "Yet another touch typing tutor" -msgstr "Un logiciel d'apprentissage de la dactylographie" - #: ../data/klavaro.glade.h:1 -msgid "Klavaro - Main menu" -msgstr "Klavaro - Menu principal" +msgid "About 'Klavaro'" +msgstr "À propos de « Klavaro »" #: ../data/klavaro.glade.h:2 -msgid "Don't be shy about learning the basics!" -msgstr "N'ayez pas honte d'apprendre les bases !" +msgid "Yet another touch typing tutor" +msgstr "Un logiciel d'apprentissage de la dactylographie" #: ../data/klavaro.glade.h:3 -msgid "Learn how to type correctly" -msgstr "Comment taper correctement" +msgid "Remember always: someone loves you!" +msgstr "Souvenez-vous toujours : quelqu'un vous aime !" #: ../data/klavaro.glade.h:4 -msgid "Initial training for your fingers." -msgstr "Premier entraînement pour vos doigts." +msgid "Change language" +msgstr "Changer la langue" #: ../data/klavaro.glade.h:5 -msgid "First steps with initial training" -msgstr "Première étape : entraînement initial" +msgid "Attention!" +msgstr "Attention !" #: ../data/klavaro.glade.h:6 -msgid "Memorizing the keyboard practicing random keys exercises." -msgstr "" -"Mémorisation du clavier grâce des exercices comportant des touches " -"aléatoires." +msgid "Do you confirm?" +msgstr "Êtes vous sûr ?" #: ../data/klavaro.glade.h:7 -msgid "Practice with random keys" -msgstr "Entraînement avec touches aléatoires" +msgid "_No" +msgstr "_Non" + +#: ../data/klavaro.glade.h:8 +msgid "_Yes" +msgstr "_Oui" -#. English typo: touchs -> touches #: ../data/klavaro.glade.h:9 -msgid "Accelerating the touches practicing random words exercises." -msgstr "" -"Accélération de la frappe par la pratique d'exercices comportant des mots " -"aléatoires." +msgid "Help?" +msgstr "Aide ?" #: ../data/klavaro.glade.h:10 -msgid "Practice with random words" -msgstr "Entraînement avec des mots aléatoires" +msgid "This is a tip. Now you press this button to return to the main menu." +msgstr "" +"Ceci est un conseil. Appuyez maintenant sur ce bouton pour revenir au menu " +"principal." #: ../data/klavaro.glade.h:11 -msgid "Becoming proficient practicing complete paragraphs exercises." -msgstr "Devenez expert avec des exercices sur des paragraphes complets." +msgid "B_ack to menu" +msgstr "R_etour au menu" #: ../data/klavaro.glade.h:12 -msgid "Practice with complete texts" -msgstr "Entraînement avec des textes complets" +msgid "" +"The main menu of the application is very straightforward. Just select the " +"type of exercise you wish to take. Do not worry about clicking any button on " +"the screen. The buttons will never hurt you!" +msgstr "" +"Le menu principal du logiciel est très simple. Sélectionnez simplement le " +"type d'exercice que vous souhaitez faire. N'ayez pas peur de cliquer sur les " +"boutons, ils ne vont pas vous faire de mal !" #: ../data/klavaro.glade.h:13 msgid "" -"Keyboard layout for modules 1 and 2. Also used informatively in the " -"fluidness contest." +"Also the controls have tips which will appear if you hover over them with " +"your mouse. These tips can come in very handy. To see how these tips work, " +"position your mouse over the button below, and without clicking, wait for " +"the tip to appear..." msgstr "" -"Présentation du Clavier pour les modules 1 et 2. Aussi utilisée à titre " -"d'information pour les concours de fluidité." +"Et aussi, chaque bouton comporte un texte d'aide complémentaire. Pour " +"l'afficher, mettez la souris au dessus d'un bouton sans cliquer et attendez " +"un peu..." #: ../data/klavaro.glade.h:14 -msgid "_Keyboard:" -msgstr "_Clavier:" +msgid "Klavaro - Select file" +msgstr "Klavaro - Choix d'un fichier" #: ../data/klavaro.glade.h:15 -msgid "Language for modules 3 and 4." -msgstr "Langue pour les modules 3 et 4." +msgid "_Cancel" +msgstr "_Annuler" #: ../data/klavaro.glade.h:16 -msgid "_Language:" -msgstr "_Langue:" +msgid "_Open" +msgstr "_Ouvrir" #: ../data/klavaro.glade.h:17 -msgid "Variant" -msgstr "Variante" +msgid "Re_name:" +msgstr "Renommer :" #: ../data/klavaro.glade.h:18 -msgid "Klavaro" -msgstr "Klavaro" +msgid "Rename the selected item." +msgstr "Renommer l'élément sélectionné." #: ../data/klavaro.glade.h:19 -msgid "Country / Custom" -msgstr "Pays / Personnalisé" +msgid "" +"Read a text file and add a copy of it here. The file must be encoded in " +"UTF-8." +msgstr "" +"Lire un fichier texte et insérer une copie ici. Le fichier doit être codifié " +"en UTF-8." #: ../data/klavaro.glade.h:20 -msgid "Your language here." -msgstr "Votre langue." +msgid "_Open text file" +msgstr "_Ouvrir le fichier de textes" #: ../data/klavaro.glade.h:21 -msgid "Speech" -msgstr "Dictée" +msgid "Paste text that was copied to the clipboard." +msgstr "Coller le texte qui a été copié dans le presse-papier." #: ../data/klavaro.glade.h:22 -msgid "Little tip about this program." -msgstr "Une petite astuce concernant ce logiciel." +msgid "_Paste from clipboard" +msgstr "_Coller depuis le presse-papier" #: ../data/klavaro.glade.h:23 -msgid "_Help" -msgstr "_Aide" +msgid "Remove the selected item." +msgstr "Supprimer l'élément sélectionné." #: ../data/klavaro.glade.h:24 -msgid "General information about the program." -msgstr "Informations générales concernant ce logiciel." +msgid "_Remove copied file" +msgstr "_Supprimer la copie du fichier" #: ../data/klavaro.glade.h:25 -msgid "_About..." -msgstr "_A propos..." +msgid "Apply the selected item to create an exercise." +msgstr "Appliquer l'élément sélectionné pour créer un exercice." #: ../data/klavaro.glade.h:26 -msgid "Exit the application immediately." -msgstr "Quitter l'application immédiatement. Raccourci: [Ctrl-Q]" +msgid "_Apply" +msgstr "_Appliquer" #: ../data/klavaro.glade.h:27 -msgid "_Close" -msgstr "_Fermer" +msgid "Close this window." +msgstr "Fermer cette fenêtre." #: ../data/klavaro.glade.h:28 -msgid "Load other exercises/lessons" -msgstr "Ouvrir d'autres fichiers d'exercices/leçons. Raccourci : [Ctrl-O]" +msgid "_Close" +msgstr "_Fermer" #: ../data/klavaro.glade.h:29 -msgid "_Other texts" -msgstr "_Autres textes" +msgid "Country / Custom" +msgstr "Pays / Personnalisé" #: ../data/klavaro.glade.h:30 -msgid "_Lesson:" -msgstr "_Leçon :" +msgid "Variant" +msgstr "Variante" #: ../data/klavaro.glade.h:31 -msgid "Edit the character set to be used in this lesson." -msgstr "Modifiez le jeu de caractères à employer dans cette leçon." +msgid "Remove the selected custom layout." +msgstr "Supprimer la disposition personnalisée sélectionnée." #: ../data/klavaro.glade.h:32 -msgid "Edit the character set to be used in lessons 44 through 50." -msgstr "Modifiez le jeu de caractères à employer dans les leçons 44 à 50." +msgid "_Remove" +msgstr "_Supprimer" #: ../data/klavaro.glade.h:33 -msgid "This is a specific exercise, adjusted to your error profile." -msgstr "" -"Ceci est un exercice spécifique, ajusté en fonction de votre profile " -"d'erreurs." +msgid "" +"Toggles the shift effect on the keys. Alternates between the upper and lower " +"characters of the keys." +msgstr "Bascule entre les majuscules et minuscules des touches." -#: ../data/klavaro.glade.h:34 ../src/tutor.c:252 -msgid "Drag and drop text here to practice with it." -msgstr "Glissez et déposez du texte ici pour vous entraîner à le taper." +#: ../data/klavaro.glade.h:34 +msgid "SPACE BAR" +msgstr "BARRE D'ESPACE" -#: ../data/klavaro.glade.h:35 -msgid "Press here to restart the exercise. Hotkey: [Ctrl R]" -msgstr "Appuyez ici pour redémarrer l'exercice. Raccourci : [Ctrl R]" +#: ../data/klavaro.glade.h:35 ../src/keyboard.c:1630 +msgid "thumbs" +msgstr "pouces" #: ../data/klavaro.glade.h:36 -msgid "Show the virtual keyboard and the relation between fingers and keys." -msgstr "" -"Affichage du clavier virtuel et de la relation entre les doigts et les " -"touches." +msgid "Ctrl" +msgstr "Ctrl" #: ../data/klavaro.glade.h:37 -msgid "_Keyboard" -msgstr "_Clavier" +msgid "Caps" +msgstr "Verr.Maj" #: ../data/klavaro.glade.h:38 -msgid "Select the font to be used in the exercise window." -msgstr "Sélectionnez la police à utiliser dans la fenêtre d'exercices." +msgid "S_ave as:" +msgstr "Enregistrer sous:" #: ../data/klavaro.glade.h:39 -msgid "_Font" -msgstr "_Police" +msgid "Show previous screen." +msgstr "Afficher l'écran précédent." #: ../data/klavaro.glade.h:40 -msgid "Keep this checked if you want to get those nice beeps." -msgstr "A garder sélectionné si vous voulez entendre ces jolis sons." +msgid "_Previous step" +msgstr "Étape _Précédente" #: ../data/klavaro.glade.h:41 -msgid "_Beep" -msgstr "_Bip" +msgid "Show next screen." +msgstr "Afficher l'écran suivant." #: ../data/klavaro.glade.h:42 -msgid "Co_urse information" -msgstr "Information sur le co_urs" +msgid "_Next step" +msgstr "Écran _Suivant" #: ../data/klavaro.glade.h:43 -msgid "Charts showing the learning progress along the exercises." -msgstr "Graphique présentant la progression tout au long des exercices." +msgid "Return without any modification." +msgstr "Retour sans appliquer de modification" #: ../data/klavaro.glade.h:44 -msgid "_Progress" -msgstr "_Progression" +msgid "Save the current keyboard layout with the name specified above." +msgstr "" +"Enregistrer la table de disposition du clavier en cours avec le nom indiqué " +"ci-dessus." #: ../data/klavaro.glade.h:45 -msgid "Show local and external scores from other users." -msgstr "Afficher les scores locaux et externes des autres utilisateurs." +msgid "_Save and use" +msgstr "Enregistrer et utiliser" #: ../data/klavaro.glade.h:46 -msgid "_Top 10" -msgstr "_Top 10" +msgid "" +"If you like those beautiful hands, click here to close this window keeping " +"them." +msgstr "" +"Si vous aimez ces jolies mains, cliquez ici pour fermer la fenêtre tout en " +"les conservant." #: ../data/klavaro.glade.h:47 -msgid "Return to the main menu." -msgstr "Retour au menu principal." +msgid "_Keep hands" +msgstr "_Garder les mains" #: ../data/klavaro.glade.h:48 -msgid "B_ack to menu" -msgstr "R_etour au menu" +msgid "Klavaro - Main menu" +msgstr "Klavaro - Menu principal" #: ../data/klavaro.glade.h:49 -msgid "Close this window." -msgstr "Fermer cette fenêtre." +msgid "Don't be shy about learning the basics!" +msgstr "N'ayez pas honte d'apprendre les bases !" #: ../data/klavaro.glade.h:50 -msgid "Font definition" -msgstr "Définition de la police" +msgid "Learn how to type correctly" +msgstr "Comment taper correctement" #: ../data/klavaro.glade.h:51 -msgid "Top 10" -msgstr "Top 10" +msgid "Initial training for your fingers." +msgstr "Premier entraînement pour vos doigts." #: ../data/klavaro.glade.h:52 -msgid "Show extra information" -msgstr "Afficher les informations supplémentaires" +msgid "First steps with initial training" +msgstr "Première étape : entraînement initial" #: ../data/klavaro.glade.h:53 -msgid "Hide extra information" -msgstr "Masquer les informations supplémentaires" +msgid "Memorizing the keyboard practicing random keys exercises." +msgstr "" +"Mémorisation du clavier grâce des exercices comportant des touches " +"aléatoires." #: ../data/klavaro.glade.h:54 -msgid "Publish to the web your local scores." -msgstr "Publier vos scores sur internet." +msgid "Practice with random keys" +msgstr "Entraînement avec touches aléatoires" #: ../data/klavaro.glade.h:55 -msgid "_Participate" -msgstr "_Participer" +msgid "Accelerating the touches practicing random words exercises." +msgstr "" +"Accélération de la frappe par la pratique d'exercices comportant des mots " +"aléatoires." #: ../data/klavaro.glade.h:56 -msgid "Download from the web the most up to date ranking." -msgstr "Téléchargez les classements les plus à jour depuis internet." +msgid "Practice with random words" +msgstr "Entraînement avec des mots aléatoires" #: ../data/klavaro.glade.h:57 -msgid "_Update" -msgstr "_Mettre à jour" +msgid "Becoming proficient practicing complete paragraphs exercises." +msgstr "Devenez expert avec des exercices sur des paragraphes complets." #: ../data/klavaro.glade.h:58 -msgid "About 'Klavaro'" -msgstr "À propos de « Klavaro »" +msgid "Practice with complete texts" +msgstr "Entraînement avec des textes complets" + +#: ../data/klavaro.glade.h:59 +msgid "" +"Keyboard layout for modules 1 and 2. Also used informatively in the " +"fluidness contest." +msgstr "" +"Présentation du Clavier pour les modules 1 et 2. Aussi utilisée à titre " +"d'information pour les concours de fluidité." #: ../data/klavaro.glade.h:60 -msgid "Remember always: someone loves you!" -msgstr "Souvenez-vous toujours : quelqu'un vous aime !" +msgid "_Keyboard:" +msgstr "_Clavier:" #: ../data/klavaro.glade.h:61 -msgid "Remove the selected custom layout." -msgstr "Supprimer la disposition personnalisée sélectionnée." +msgid "Language for modules 3 and 4." +msgstr "Langue pour les modules 3 et 4." #: ../data/klavaro.glade.h:62 -msgid "_Remove" -msgstr "_Supprimer" +msgid "_Language:" +msgstr "_Langue:" #: ../data/klavaro.glade.h:63 -msgid "" -"Toggles the shift effect on the keys. Alternates between the upper and lower " -"characters of the keys." -msgstr "Bascule entre les majuscules et minuscules des touches." +msgid "Speech" +msgstr "Dictée" #: ../data/klavaro.glade.h:64 -msgid "SPACE BAR" -msgstr "BARRE D'ESPACE" +msgid "Your language here." +msgstr "Votre langue." -#: ../data/klavaro.glade.h:65 ../src/keyboard.c:1630 -msgid "thumbs" -msgstr "pouces" +#: ../data/klavaro.glade.h:65 +msgid "Little tip about this program." +msgstr "Une petite astuce concernant ce logiciel." #: ../data/klavaro.glade.h:66 -msgid "Ctrl" -msgstr "Ctrl" +msgid "_Help" +msgstr "_Aide" #: ../data/klavaro.glade.h:67 -msgid "Caps" -msgstr "Verr.Maj" +msgid "General information about the program." +msgstr "Informations générales concernant ce logiciel." #: ../data/klavaro.glade.h:68 -msgid "S_ave as:" -msgstr "Enregistrer sous:" +msgid "_About..." +msgstr "_A propos..." #: ../data/klavaro.glade.h:69 -msgid "Show previous screen." -msgstr "Afficher l'écran précédent." +msgid "Exit the application immediately." +msgstr "Quitter l'application immédiatement. Raccourci: [Ctrl-Q]" #: ../data/klavaro.glade.h:70 -msgid "_Previous step" -msgstr "Étape _Précédente" +msgid "Klavaro - Progress" +msgstr "Klavaro - Progression" #: ../data/klavaro.glade.h:71 -msgid "Show next screen." -msgstr "Afficher l'écran suivant." +msgid "_Lesson:" +msgstr "_Leçon :" #: ../data/klavaro.glade.h:72 -msgid "_Next step" -msgstr "Écran _Suivant" +msgid "Value" +msgstr "Valeur" #: ../data/klavaro.glade.h:73 -msgid "Return without any modification." -msgstr "Retour sans appliquer de modification" +msgid "Close this window, returning to the exercise." +msgstr "Fermer cette fenêtre, retour à l'exercice." #: ../data/klavaro.glade.h:74 -msgid "_Cancel" -msgstr "_Annuler" +msgid "Clear all the progress data, for every module." +msgstr "Effacer les informations de progression, dans tous les modules." #: ../data/klavaro.glade.h:75 -msgid "Save the current keyboard layout with the name specified above." -msgstr "" -"Enregistrer la table de disposition du clavier en cours avec le nom indiqué " -"ci-dessus." +msgid "_Reset" +msgstr "_Réinitialiser !" #: ../data/klavaro.glade.h:76 -msgid "_Save and use" -msgstr "Enregistrer et utiliser" +msgid "Top 10" +msgstr "Top 10" #: ../data/klavaro.glade.h:77 -msgid "" -"If you like those beautiful hands, click here to close this window keeping " -"them." -msgstr "" -"Si vous aimez ces jolies mains, cliquez ici pour fermer la fenêtre tout en " -"les conservant." +#, fuzzy +msgid "Show extra information." +msgstr "Afficher les informations supplémentaires" #: ../data/klavaro.glade.h:78 -msgid "_Keep hands" -msgstr "_Garder les mains" +#, fuzzy +msgid "Hide extra information." +msgstr "Masquer les informations supplémentaires" #: ../data/klavaro.glade.h:79 -msgid "Change language" -msgstr "Changer la langue" +msgid "Publish to the web your local scores." +msgstr "Publier vos scores sur internet." #: ../data/klavaro.glade.h:80 -msgid "Attention!" -msgstr "Attention !" +msgid "_Participate" +msgstr "_Participer" #: ../data/klavaro.glade.h:81 -msgid "Do you confirm?" -msgstr "Êtes vous sûr ?" +msgid "Download from the web the most up to date ranking." +msgstr "Téléchargez les classements les plus à jour depuis internet." #: ../data/klavaro.glade.h:82 -msgid "_No" -msgstr "_Non" +msgid "_Update" +msgstr "_Mettre à jour" #: ../data/klavaro.glade.h:83 -msgid "_Yes" -msgstr "_Oui" +msgid "Load other exercises/lessons" +msgstr "Ouvrir d'autres fichiers d'exercices/leçons. Raccourci : [Ctrl-O]" #: ../data/klavaro.glade.h:84 -msgid "Re_name:" -msgstr "Renommer :" +msgid "_Other texts" +msgstr "_Autres textes" #: ../data/klavaro.glade.h:85 -msgid "Rename the selected item." -msgstr "Renommer l'élément sélectionné." +msgid "Edit the character set to be used in this lesson." +msgstr "Modifiez le jeu de caractères à employer dans cette leçon." #: ../data/klavaro.glade.h:86 -msgid "" -"Read a text file and add a copy of it here. The file must be encoded in " -"UTF-8." +msgid "This is a specific exercise, adjusted to your error profile." msgstr "" -"Lire un fichier texte et insérer une copie ici. Le fichier doit être codifié " -"en UTF-8." +"Ceci est un exercice spécifique, ajusté en fonction de votre profile " +"d'erreurs." #: ../data/klavaro.glade.h:87 -msgid "_Open text file" -msgstr "_Ouvrir le fichier de textes" +#, fuzzy +msgid "" +"Edit the character set to be used in lessons after 43: they are customizable!" +msgstr "Modifiez le jeu de caractères à employer dans les leçons 44 à 50." -#: ../data/klavaro.glade.h:88 -msgid "Paste text that was copied to the clipboard." -msgstr "Coller le texte qui a été copié dans le presse-papier." +#: ../data/klavaro.glade.h:88 ../src/tutor.c:376 +msgid "Drag and drop text here to practice with it." +msgstr "Glissez et déposez du texte ici pour vous entraîner à le taper." #: ../data/klavaro.glade.h:89 -msgid "_Paste from clipboard" -msgstr "_Coller depuis le presse-papier" +#, fuzzy +msgid "Press here to restart the exercise. Hotkey: [Ctrl-R]" +msgstr "Appuyez ici pour redémarrer l'exercice. Raccourci : [Ctrl R]" #: ../data/klavaro.glade.h:90 -msgid "Remove the selected item." -msgstr "Supprimer l'élément sélectionné." +msgid "Show the virtual keyboard and the relation between fingers and keys." +msgstr "" +"Affichage du clavier virtuel et de la relation entre les doigts et les " +"touches." #: ../data/klavaro.glade.h:91 -msgid "_Remove copied file" -msgstr "_Supprimer la copie du fichier" +msgid "_Keyboard" +msgstr "_Clavier" #: ../data/klavaro.glade.h:92 -msgid "Apply the selected item to create an exercise." -msgstr "Appliquer l'élément sélectionné pour créer un exercice." +msgid "Select the font to be used in the exercise window." +msgstr "Sélectionnez la police à utiliser dans la fenêtre d'exercices." #: ../data/klavaro.glade.h:93 -msgid "_Apply" -msgstr "_Appliquer" +msgid "Font definition" +msgstr "Définition de la police" #: ../data/klavaro.glade.h:94 -msgid "Klavaro - Progress" -msgstr "Klavaro - Progression" +msgid "Keep this checked if you want to get those nice beeps." +msgstr "A garder sélectionné si vous voulez entendre ces jolis sons." #: ../data/klavaro.glade.h:95 -msgid "Value" -msgstr "Valeur" +msgid "_Beep" +msgstr "_Bip" #: ../data/klavaro.glade.h:96 -msgid "Clear all the progress data, for every module." -msgstr "Effacer les informations de progression, dans tous les modules." +msgid "Co_urse information" +msgstr "Information sur le co_urs" #: ../data/klavaro.glade.h:97 -msgid "_Reset" -msgstr "_Réinitialiser !" +msgid "Charts showing the learning progress along the exercises." +msgstr "Graphique présentant la progression tout au long des exercices." #: ../data/klavaro.glade.h:98 -msgid "Close this window, returning to the exercise." -msgstr "Fermer cette fenêtre, retour à l'exercice." +msgid "_Progress" +msgstr "_Progression" #: ../data/klavaro.glade.h:99 -msgid "Klavaro - Select file" -msgstr "Klavaro - Choix d'un fichier" +msgid "Return to the main menu." +msgstr "Retour au menu principal." #: ../data/klavaro.glade.h:100 -msgid "_Open" -msgstr "_Ouvrir" +msgid "Show local and external scores from other users." +msgstr "Afficher les scores locaux et externes des autres utilisateurs." #: ../data/klavaro.glade.h:101 -msgid "Help?" -msgstr "Aide ?" - -#: ../data/klavaro.glade.h:102 -msgid "" -"The main menu of the application is very straightforward. Just select the " -"type of exercise you wish to take. Do not worry about clicking any button on " -"the screen. The buttons will never hurt you!" -msgstr "" -"Le menu principal du logiciel est très simple. Sélectionnez simplement le " -"type d'exercice que vous souhaitez faire. N'ayez pas peur de cliquer sur les " -"boutons, ils ne vont pas vous faire de mal !" +msgid "_Top 10" +msgstr "_Top 10" -#: ../data/klavaro.glade.h:103 -msgid "" -"Also the controls have tips which will appear if you hover over them with " -"your mouse. These tips can come in very handy. To see how these tips work, " -"position your mouse over the button below, and without clicking, wait for " -"the tip to appear..." -msgstr "" -"Et aussi, chaque bouton comporte un texte d'aide complémentaire. Pour " -"l'afficher, mettez la souris au dessus d'un bouton sans cliquer et attendez " -"un peu..." +#: ../data/klavaro.desktop.in.h:1 +#, fuzzy +msgid "A very flexible and efficient touch typing tutor." +msgstr "Un logiciel d'apprentissage de la dactylographie" -#: ../data/klavaro.glade.h:104 -msgid "This is a tip. Now you press this button to return to the main menu." -msgstr "" -"Ceci est un conseil. Appuyez maintenant sur ce bouton pour revenir au menu " -"principal." +#. Translators: these are keywords related to the program. CAI above means Computer Aided Instruction. Feel free to add and/or change the keywords in your language. +#: ../data/klavaro.desktop.in.h:3 +#, fuzzy +msgid "keyboard;typing;tutor;CAI" +msgstr "Clavier" -#: ../src/main.c:314 +#: ../src/main.c:242 msgid "(Custom)" msgstr "(Personnalisé)" -#: ../src/main.c:315 +#: ../src/main.c:243 msgid "(Edit custom)" msgstr "(Éditer les paramètres personnalisés)" -#: ../src/main.c:316 +#: ../src/main.c:244 msgid "(Default)" msgstr "(Par défaut)" -#: ../src/main.c:393 +#: ../src/main.c:321 #, c-format msgid "Dictation mode (depends on this speech synthesizer: %s)" msgid_plural "Dictation mode (depends on one of these speech synthesizers: %s)" msgstr[0] "Mode dictée (dépend du synthétiseur vocal : %s)" msgstr[1] "Mode dictée (dépend de l'un des synthétiseurs vocaux : %s)" -#. Set main labels (for translation) -#. -#: ../src/main.c:435 ../src/keyboard.c:1291 +#: ../src/main.c:364 ../src/keyboard.c:1291 msgid "Introduction" msgstr "Introduction" -#: ../src/main.c:438 ../src/top10.c:109 +#: ../src/main.c:367 ../src/top10.c:109 msgid "Basic course" msgstr "Cours de base" -#: ../src/main.c:441 ../src/top10.c:112 +#: ../src/main.c:370 ../src/top10.c:112 msgid "Adaptability" msgstr "Adaptabilité" -#: ../src/main.c:444 ../src/callbacks.c:1310 ../src/top10.c:89 +#: ../src/main.c:373 ../src/callbacks.c:1226 ../src/top10.c:89 #: ../src/top10.c:115 msgid "Speed" msgstr "Vitesse" -#: ../src/main.c:447 ../src/callbacks.c:1333 ../src/top10.c:91 +#: ../src/main.c:376 ../src/callbacks.c:1249 ../src/top10.c:91 #: ../src/top10.c:118 msgid "Fluidity" msgstr "Fluidité" -#: ../src/callbacks.c:468 ../src/tutor.c:391 +#: ../src/callbacks.c:407 ../src/tutor.c:515 msgid "Keys:" msgstr "Touches :" -#: ../src/callbacks.c:858 ../src/callbacks.c:874 +#: ../src/callbacks.c:774 ../src/callbacks.c:790 msgid "Connecting..." msgstr "Connexion en cours..." -#: ../src/callbacks.c:1145 +#: ../src/callbacks.c:1061 msgid "Overwrite user layout" msgstr "Écraser une table de paramétrage de clavier personnalisée" -#: ../src/callbacks.c:1147 +#: ../src/callbacks.c:1063 msgid "This will OVERWRITE an existent keyboard layout." msgstr "Ceci va ÉCRASER une table de paramétrage de clavier existante." -#: ../src/callbacks.c:1154 +#: ../src/callbacks.c:1070 msgid "Remove user layout" msgstr "Supprimer une table de paramétrage de clavier personnalisée" -#: ../src/callbacks.c:1156 +#: ../src/callbacks.c:1072 msgid "This will REMOVE an existent keyboard layout." msgstr "Ceci va SUPPRIMER une table de paramétrage de clavier existante." -#: ../src/callbacks.c:1163 +#: ../src/callbacks.c:1079 msgid "Reset progress data" msgstr "Effacer les données de progression" -#: ../src/callbacks.c:1164 +#: ../src/callbacks.c:1080 msgid "This will DELETE all the progress data shown in the charts." msgstr "" "Cela va EFFACER toutes les données de progression affichées dans les graphes." -#: ../src/callbacks.c:1307 ../src/top10.c:87 +#: ../src/callbacks.c:1223 ../src/top10.c:87 msgid "Accuracy" msgstr "Précision" -#: ../src/callbacks.c:1310 ../src/tutor.c:1160 +#: ../src/callbacks.c:1226 ../src/tutor.c:1288 msgid "(WPM)" msgstr "(MPM)" -#: ../src/callbacks.c:1321 +#: ../src/callbacks.c:1237 msgid "Errors" msgstr "Erreurs" -#: ../src/callbacks.c:1324 +#: ../src/callbacks.c:1240 msgid "Touch times (s)" msgstr "Durée(s) de dactylographie" -#: ../src/callbacks.c:1336 ../src/tutor.c:1187 ../src/top10.c:69 +#: ../src/callbacks.c:1252 ../src/tutor.c:1315 ../src/top10.c:69 msgid "Score" msgstr "Score" #. Translators: your language code (first 2 letters of your po-file) -#: ../src/translation.c:423 ../src/translation.c:489 ../src/tutor.c:1597 +#: ../src/translation.c:485 ../src/tutor.c:1725 msgid "en" msgstr "fr" -#: ../src/translation.c:576 +#: ../src/translation.c:572 msgid "" "The basic course focuses on having you read the characters presented to you " "on screen and typing the corresponding keys. Remember to keep your hands " @@ -589,7 +594,7 @@ "de la position initiale des doigts sur le clavier (voir l'introduction dans " "le menu principal)." -#: ../src/translation.c:580 +#: ../src/translation.c:576 msgid "" "The key set used in each series will be shown in the above message line. The " "[Space], [Shift] and [Enter] keys may not show up there but are used very " @@ -599,7 +604,7 @@ "touches [Espace], [Shift] et [Enter] n'y sont pas mentionnées car elles sont " "presque tout le temps utilisées." -#: ../src/translation.c:583 +#: ../src/translation.c:579 msgid "" "The message line below follows and echoes your key presses. If required, it " "changes and displays instructions for actions required from you." @@ -608,7 +613,7 @@ "vous pressez. Si nécessaire, ce texte changera et affichera de nouvelles " "instructions." -#: ../src/translation.c:587 +#: ../src/translation.c:583 msgid "" "Here you may practice and improve your memorization of all keys. There will " "be sentences presented with nonsense words which mix some numbers and " @@ -618,7 +623,7 @@ "touches. Les exercices comportent des mots qui n'ont pas de sens, en " "intégrant des chiffres et des symboles." -#: ../src/translation.c:590 +#: ../src/translation.c:586 msgid "" "In order to keep the lesson contents language and keyboard independent, " "accented letter combinations will probably not appear. For real word " @@ -629,7 +634,7 @@ "avec des phrases contenant de vrais mots, allez à la 4ème option du menu " "principal (à propos de la fluidité)." -#: ../src/translation.c:594 +#: ../src/translation.c:590 msgid "" "After each exercise there will be a brief statistics panel reviewing your " "performance along with some relevant comments." @@ -637,7 +642,7 @@ "À la fin de chaque exercice, vous verrez les statistiques de vos " "performances, avec quelques commentaires destinés à vous améliorer." -#: ../src/translation.c:598 +#: ../src/translation.c:594 msgid "" "This exercise is very similar to the second one, for adaptability. The " "difference is that here you'll type real words." @@ -645,7 +650,7 @@ "Cet exercice est similaire au deuxième qui traite de l'adaptabilité. La " "différence est qu'ici vous taperez des mots réels." -#: ../src/translation.c:601 +#: ../src/translation.c:597 msgid "" "The default language is the actual one of the interface. But you may select " "any other texts with words you would like to use. Press the 'Other' option " @@ -656,7 +661,7 @@ "utiliser. Cliquez sur l'option « Autres » (au-dessus) et ajoutez les " "fichiers qui contiennent ces textes." -#: ../src/translation.c:605 +#: ../src/translation.c:601 msgid "" "With this exercise the focus is on speed. So, you are supposed to type " "really fast and I will only flatter you when you deserve it!" @@ -664,7 +669,7 @@ "Dans cet exercice, l'accent est mis sur la rapidité. Donc, vous êtes sensé " "taper le plus rapidement possible ! Épatez-moi !" -#: ../src/translation.c:609 +#: ../src/translation.c:605 msgid "" "We will now use complete sentences and paragraphs which make logical sense. " "This may distract you while you type if you try to understand what you are " @@ -677,7 +682,7 @@ "vous ne devriez pas avoir de difficulté, car vous deviez écrire sans analyse " "ni interprétation du texte." -#: ../src/translation.c:613 +#: ../src/translation.c:609 msgid "" "We do not mean to imply that the typists must behave like a robot, without " "understanding what they type. We do aim to develop the skill of typing, " @@ -693,8 +698,7 @@ "sera plus un effort : vous pourrez donc vous concentrer sur la signification " "du texte." -#. English typo: minimun -> minimum -#: ../src/translation.c:618 +#: ../src/translation.c:613 msgid "" "These exercises are longer. Each exercise consists of three paragraphs and " "the emphasis is placed on correctness and rhythm, with a minimum speed " @@ -707,7 +711,6 @@ "éventuelles erreurs. En d'autres termes, seuls les textes tapés sans aucune " "erreur seront acceptés." -#. English typo: recomendations -> recommendations #: ../src/keyboard.c:1094 msgid "" "Correct positioning of the hands and fingers is very important to efficient " @@ -808,13 +811,11 @@ msgid "Step %i" msgstr "Étape %i" -#. Recommendations -#: ../src/keyboard.c:1140 +#: ../src/keyboard.c:1142 msgid "To position the hands" msgstr "Position des mains" -#. Final words -#: ../src/keyboard.c:1225 +#: ../src/keyboard.c:1227 msgid "Go ahead!" msgstr "C'est parti !" @@ -854,23 +855,23 @@ msgid "Press and edit me" msgstr "Pressez-moi pour m'éditer" -#: ../src/tutor.c:176 +#: ../src/tutor.c:300 msgid "Lesson:" msgstr "Leçon :" -#: ../src/tutor.c:186 +#: ../src/tutor.c:310 msgid "Paragraphs:" msgstr "Paragraphes:" -#: ../src/tutor.c:219 +#: ../src/tutor.c:343 msgid "Klavaro - Basic Course" msgstr "Klavaro - Cours de base" -#: ../src/tutor.c:224 +#: ../src/tutor.c:348 msgid "Klavaro - Adaptability" msgstr "Klavaro - Adaptabilité" -#: ../src/tutor.c:227 +#: ../src/tutor.c:351 msgid "" "Adaptability exercises: automating the fingers responses, typing over all " "the keyboard." @@ -878,45 +879,45 @@ "Exercices d'adaptation : automatisation de la réaction des doigts, " "utilisation de tout le clavier." -#: ../src/tutor.c:232 +#: ../src/tutor.c:356 msgid "Klavaro - Velocity" msgstr "Klavaro - Rapidité" -#: ../src/tutor.c:233 +#: ../src/tutor.c:357 msgid "Velocity exercises: accelerate typing real words." msgstr "Exercices de rapidité : accélération par l'écriture de vrais mots." -#: ../src/tutor.c:237 +#: ../src/tutor.c:361 msgid "Klavaro - Fluidness" msgstr "Klavaro - Fluidité" -#: ../src/tutor.c:239 +#: ../src/tutor.c:363 msgid "Fluidness exercises: accuracy typing good sense paragraphs." msgstr "" "Exercices de fluidité : précision par l'écriture de paragraphes ayant un " "sens." -#: ../src/tutor.c:301 +#: ../src/tutor.c:425 msgid "End of exercise. Press [Enter] to start another." msgstr " Fin de l'exercice. Appuyez sur [Entrée] pour en démarrer un autre." -#: ../src/tutor.c:329 +#: ../src/tutor.c:453 msgid "Learning the key positions." msgstr "Apprentissage de la position des touches." -#: ../src/tutor.c:332 +#: ../src/tutor.c:456 msgid "Press any key to start the exercise. " msgstr "Appuyez sur une touche pour démarrer l'exercice. " -#: ../src/tutor.c:440 ../src/tutor.c:443 +#: ../src/tutor.c:567 ../src/tutor.c:570 msgid "Start typing when you are ready. " msgstr "Commencez à taper dès vous êtes prêt. " -#: ../src/tutor.c:441 +#: ../src/tutor.c:568 msgid "Use backspace to correct errors." msgstr "Utilisez la touche d'effacement arrière pour corriger les erreurs." -#: ../src/tutor.c:885 +#: ../src/tutor.c:1012 #, c-format msgid "" "ps.: logging not performed for this session: the number of typed characters " @@ -925,11 +926,11 @@ "PS : aucun journal pour cette session : le nombre de caractères tapés (%i) " "doit être plus grand que %i." -#: ../src/tutor.c:1027 +#: ../src/tutor.c:1154 msgid "ps.: you have entered the Top 10 list, great!" msgstr "PS : vous êtes entré dans la liste du « Top 10 », bravo !" -#: ../src/tutor.c:1039 +#: ../src/tutor.c:1166 msgid "" "ps.: the text you just typed doesn't seem to be similar to ordinary texts in " "the language currently selected: we can't account for it in the 'Top 10' " @@ -939,91 +940,88 @@ "textes standards de la langue actuellement sélectionnée : nous ne pouvons " "pas le compter pour le concours du « Top 10 » ." -#. Begin the accuracy -#: ../src/tutor.c:1087 +#: ../src/tutor.c:1215 msgid "STATISTICS" msgstr "STATISTIQUES" -#: ../src/tutor.c:1088 +#: ../src/tutor.c:1216 msgid "Elapsed time:" msgstr "Temps écoulé :" -#: ../src/tutor.c:1089 +#: ../src/tutor.c:1217 msgid "minute and" msgid_plural "minutes and" msgstr[0] "minute et" msgstr[1] "minutes et" -#: ../src/tutor.c:1090 +#: ../src/tutor.c:1218 msgid "second" msgid_plural "seconds" msgstr[0] "seconde" msgstr[1] "secondes" -#: ../src/tutor.c:1091 +#: ../src/tutor.c:1219 msgid "Error ratio:" msgstr "Ratio d'erreurs :" -#: ../src/tutor.c:1091 +#: ../src/tutor.c:1219 msgid "Accuracy:" msgstr "Précision :" -#: ../src/tutor.c:1112 ../src/tutor.c:1137 ../src/tutor.c:1160 -#: ../src/tutor.c:1186 +#: ../src/tutor.c:1240 ../src/tutor.c:1265 ../src/tutor.c:1288 +#: ../src/tutor.c:1314 msgid "Goal:" msgstr "Objectif :" -#: ../src/tutor.c:1119 +#: ../src/tutor.c:1247 msgid "Characters per second:" msgstr "Caractères par seconde :" -#: ../src/tutor.c:1137 +#: ../src/tutor.c:1265 msgid "(CPS)" msgstr "(CPS)" -#: ../src/tutor.c:1142 +#: ../src/tutor.c:1270 msgid "Words per minute:" msgstr "Mots par minute :" -#: ../src/tutor.c:1167 +#: ../src/tutor.c:1295 msgid "Fluidness:" msgstr "Fluidité :" -#: ../src/tutor.c:1194 +#: ../src/tutor.c:1322 msgid "Comments:" msgstr "Commentaires :" -#: ../src/tutor.c:1676 +#: ../src/tutor.c:1804 msgid "space" msgstr "espace" #. Translators: the name of letter Y -#: ../src/tutor.c:1681 +#: ../src/tutor.c:1809 msgid "wye" msgstr "i grec" #. Translators: the name of the Return key -#: ../src/tutor.c:1685 +#: ../src/tutor.c:1813 msgid "enter" msgstr "entrée" -#: ../src/tutor.c:1691 +#: ../src/tutor.c:1819 msgid "apostrophe" msgstr "apostrophe" #. Translators: double quote symbol: " -#: ../src/tutor.c:1695 +#: ../src/tutor.c:1823 msgid "quote" msgstr "guillemet" #. Translators: ampersand symbol: & -#: ../src/tutor.c:1699 +#: ../src/tutor.c:1827 msgid "ampersand" msgstr "'et' d'imprimerie" -#. Error frequencies or touch times -#. -#: ../src/plot.c:308 +#: ../src/plot.c:305 msgid "Character" msgstr "Caractère" @@ -1031,11 +1029,11 @@ msgid "Date & Time" msgstr "Date et Heure" -#: ../src/basic.c:331 +#: ../src/basic.c:326 msgid "Positions of keys seems to be learned!" msgstr "La position des touches semble acquise !" -#: ../src/basic.c:332 +#: ../src/basic.c:327 msgid "" " Congratulations!\n" " You have accomplished the entire basic course.\n" @@ -1047,7 +1045,7 @@ " Allez au type d'exercice suivant : adaptabilité.\n" " Vous y travaillerez principalement la précision.\n" -#: ../src/basic.c:338 +#: ../src/basic.c:333 msgid "" " All right, now you got it!\n" " Go to the next lesson.\n" @@ -1055,35 +1053,37 @@ " Parfait, vous y êtes arrivé !\n" " Allez à la prochaine leçon.\n" -#: ../src/adaptability.c:217 +#: ../src/adaptability.c:213 +#, fuzzy, c-format msgid "" -" Your accuracy rate is below 90%...\n" +" Your accuracy rate is below %.0f%%...\n" " Could you please try again to improve it?\n" msgstr "" " Votre taux de précision est en-dessous de 90 %...\n" " Pouvez-vous essayer à nouveau de l'améliorer?\n" -#: ../src/adaptability.c:222 +#: ../src/adaptability.c:216 +#, fuzzy, c-format msgid "" " You are doing well. But...\n" -" Could you make the accuracy reach 95%?\n" +" Could you make the accuracy reach %.0f%%?\n" msgstr "" " Vous vous y prenez bien. Mais...\n" " Pouvez-vous atteindre une précision d'au moins 95% ?\n" -#: ../src/adaptability.c:225 -#, c-format +#: ../src/adaptability.c:219 +#, fuzzy, c-format msgid "" " You are almost there, but your accuracy rate is still below %.0f%%.\n" -" Try a few more times, or maybe you're getting upset, so go to other kind of " -"exercise.\n" +" Try a few more times, or maybe you're getting upset, so go to another kind " +"of exercise.\n" msgstr "" " Vous y êtes presque arrivé, mais votre précision est toujours inférieure à " "%.0f%%.\n" " Essayez encore plusieurs fois ou peut-être êtes-vous fatigué. Dans ce cas, " "essayez d'autres types d'exercices.\n" -#: ../src/adaptability.c:232 +#: ../src/adaptability.c:226 #, c-format msgid "" " Very good!\n" @@ -1096,11 +1096,11 @@ " Il est maintenant temps d'améliorer votre vélocité.\n" " Allez au troisième exercice à partir du menu principal.\n" -#: ../src/velocity.c:313 ../src/fluidness.c:435 +#: ../src/velocity.c:312 ../src/fluidness.c:435 msgid "Pasted_or_dropped" msgstr "Collé_ou_déposé" -#: ../src/velocity.c:432 +#: ../src/velocity.c:423 msgid "" " You are just beginning.\n" " Be patient, try it again every day, rest and don't worry so much:\n" @@ -1112,31 +1112,34 @@ "La persévérance et la pratique vont vous permettre d'améliorer votre vitesse " "de frappe.\n" -#: ../src/velocity.c:436 +#: ../src/velocity.c:427 +#, fuzzy, c-format msgid "" " Still away from the highway. You can make better...\n" -" Try at least 20 WPM.\n" +" Try to reach at least %.0f WPM.\n" msgstr "" " Vous êtes encore loin de l'autoroute. Vous pouvez faire mieux...\n" " Essayez d'atteindre au moins 20 MPM.\n" -#: ../src/velocity.c:439 +#: ../src/velocity.c:430 +#, fuzzy, c-format msgid "" " You are doing well, but need to go faster.\n" -" And don't forget the accuracy. Try to get 30 WPM.\n" +" And don't forget the accuracy. Try to get %.0f WPM.\n" msgstr "" " Vous vous y prenez bien, mais vous devez aller plus vite.\n" " Et n'oubliez pas la précision. Essayer d'atteindre 30 MPM.\n" -#: ../src/velocity.c:443 +#: ../src/velocity.c:433 +#, fuzzy, c-format msgid "" " Fine. Now you need to start running.\n" -" Can you reach 40 WPM?\n" +" Can you reach %.0f WPM?\n" msgstr "" " Bien. Maintenant vous pouvez essayer de courir.\n" " Pouvez vous atteindre 40 MPM ?\n" -#: ../src/velocity.c:446 +#: ../src/velocity.c:436 #, c-format msgid "" " Very good. You are almost there.\n" @@ -1145,7 +1148,7 @@ " Très bien. Vous avez presque réussi.\n" " Maintenant, pouvez-vous atteindre %.0f MPM ?\n" -#: ../src/velocity.c:451 +#: ../src/velocity.c:439 msgid "" " Excellent. For this course, that is enough.\n" " Try now the fluidness exercises, OK?\n" @@ -1153,31 +1156,34 @@ " Excellent. C'est suffisant pour ce cours.\n" " Essayez maintenant les exercices de fluidité, d'accord ?\n" -#: ../src/velocity.c:455 +#: ../src/velocity.c:442 +#, fuzzy, c-format msgid "" -" Fast! Are you training for a competition?\n" -" So, try to get 70 WPM!\n" +" Fast! Are you a professional?\n" +" So, try to get %.0f WPM!\n" msgstr "" " Très rapide ! Vous entraîneriez vous pour une compétition ?\n" " Alors, essayez d'atteindre 70 MPM !\n" -#: ../src/velocity.c:458 -msgid "" -" Top of \"qwerty\". Now it's time to change to the Dvorak mode.\n" -" Are you afraid of reaching 80 WPM?\n" +#. Translators: Speed Racer is a reference to a Japanese anime franchise +#. about automobile racing, also known as Mach GoGoGo. +#: ../src/velocity.c:447 +#, c-format +msgid " Ranking good, Speed Racer! Are you afraid of reaching %.0f WPM?\n" msgstr "" -" Le record du « qwerty ». Il est temps de passer au mode Dvorak.\n" -" Avez vous peur d'atteindre 80 MPM ?\n" -#: ../src/velocity.c:462 +#. Translators: feel free to change the reference to that martial art, if you find another good analogy. +#: ../src/velocity.c:451 +#, fuzzy, c-format msgid "" -" Dvorak mode dominated!\n" -" Can you fly at 90 WPM?\n" +" Kunf-fu mastering!\n" +" Can you fly at %.0f WPM?\n" msgstr "" " Vous avez dominé le mode Dvorak !\n" " Pouvez vous voler à 90 MPM ?\n" -#: ../src/velocity.c:466 +#. Translators: Dvorak here means that infamous ergonomic keyboard layout. +#: ../src/velocity.c:454 msgid "" " Dvorak master!\n" " I have no words to express my admiration!\n" @@ -1185,7 +1191,7 @@ " Le champion du Dvorak !\n" " Je n'ai pas de mots pour exprimer mon admiration !\n" -#: ../src/fluidness.c:545 +#: ../src/fluidness.c:538 #, c-format msgid "" " You type accurately but not so fast.\n" @@ -1194,7 +1200,7 @@ " Votre frappe est précise mais pas assez rapide.\n" " Pouvez vous atteindre %.0f MPM ?\n" -#: ../src/fluidness.c:548 +#: ../src/fluidness.c:541 #, c-format msgid "" " Your rhythm is not so constant. Calm down.\n" @@ -1203,7 +1209,7 @@ " Votre rythme n'est pas constant. Du calme.\n" " Essayez maintenant d'atteindre une fluidité de plus de %i%%.\n" -#: ../src/fluidness.c:551 +#: ../src/fluidness.c:544 #, c-format msgid "" " You are almost getting there. Type more fluently.\n" @@ -1212,7 +1218,7 @@ " Vous y êtes presque. Tapez avec plus de fluidité.\n" " Je voudrais une fluidité de %.0f%% ou plus.\n" -#: ../src/fluidness.c:554 +#: ../src/fluidness.c:547 msgid "" " Congratulations!\n" " It seems to me that you are a professional.\n" @@ -1224,7 +1230,7 @@ " Vous n'avez plus besoin de ce logiciel (moi).\n" " J'espère qu'il vous a plu ! Merci et bonne chance !\n" -#: ../src/fluidness.c:559 +#: ../src/fluidness.c:552 msgid "" " How can you type so fast?\n" " You have exceeded all my expectations.\n" @@ -1284,5 +1290,21 @@ msgid "Could not upload/download scores." msgstr "Impossible d'envoyer/télécharger les scores." +#~ msgid "" +#~ " Top of \"qwerty\". Now it's time to change to the Dvorak mode.\n" +#~ " Are you afraid of reaching 80 WPM?\n" +#~ msgstr "" +#~ " Le record du « qwerty ». Il est temps de passer au mode Dvorak.\n" +#~ " Avez vous peur d'atteindre 80 MPM ?\n" + +#~ msgid "Press here to restart the exercise. Hotkey: [Ctrl R]" +#~ msgstr "Appuyez ici pour redémarrer l'exercice. Raccourci : [Ctrl R]" + +#~ msgid "_Font" +#~ msgstr "_Police" + +#~ msgid "Klavaro" +#~ msgstr "Klavaro" + #~ msgid "Default" #~ msgstr "Par défaut" diff -Nru klavaro-1.9.9/po/gl.po klavaro-3.00/po/gl.po --- klavaro-1.9.9/po/gl.po 2013-08-15 13:38:50.000000000 +0000 +++ klavaro-3.00/po/gl.po 2014-01-13 23:25:51.000000000 +0000 @@ -6,8 +6,8 @@ msgid "" msgstr "" "Project-Id-Version: klavaro-1.9.5-pre2\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2013-08-15 10:38-0300\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2014-01-13 21:25-0200\n" "PO-Revision-Date: 2013-02-15 10:56+0100\n" "Last-Translator: Miguel Anxo Bouzada \n" "Language-Team: Proxecto Trasno proxecto@trasno.net\n" @@ -18,461 +18,468 @@ "Plural-Forms: nplurals=2; plural=(n != 1);\n" "X-Generator: Virtaal 0.7.0\n" -#: ../data/klavaro.desktop.in.h:1 ../data/klavaro.glade.h:59 -msgid "Yet another touch typing tutor" -msgstr "Simplemente un titor máis de mecanografía" - #: ../data/klavaro.glade.h:1 -msgid "Klavaro - Main menu" -msgstr "Klavaro - Menú principal" +msgid "About 'Klavaro'" +msgstr "Sobre o Klavaro" #: ../data/klavaro.glade.h:2 -msgid "Don't be shy about learning the basics!" -msgstr "Non teña vergoña en ter que aprender o básico!" +msgid "Yet another touch typing tutor" +msgstr "Simplemente un titor máis de mecanografía" #: ../data/klavaro.glade.h:3 -msgid "Learn how to type correctly" -msgstr "Aprenda a escribir correctamente" +msgid "Remember always: someone loves you!" +msgstr "Lembre sempre: Alguén o quere!" #: ../data/klavaro.glade.h:4 -msgid "Initial training for your fingers." -msgstr "Adestramento inicial para os dedos." +msgid "Change language" +msgstr "Cambiar o idioma" #: ../data/klavaro.glade.h:5 -msgid "First steps with initial training" -msgstr "Primeiros pasos do adestramento inicial" +msgid "Attention!" +msgstr "Atención!" #: ../data/klavaro.glade.h:6 -msgid "Memorizing the keyboard practicing random keys exercises." -msgstr "Memorice o teclado practicando coas teclas ao chou." +msgid "Do you confirm?" +msgstr "Confírmao?" #: ../data/klavaro.glade.h:7 -msgid "Practice with random keys" -msgstr "Practique con teclas ao chou" +msgid "_No" +msgstr "_Non" + +#: ../data/klavaro.glade.h:8 +msgid "_Yes" +msgstr "_Si" -#. English typo: touchs -> touches #: ../data/klavaro.glade.h:9 -msgid "Accelerating the touches practicing random words exercises." -msgstr "Acelere as súas pulsacións practicando con palabras ao chou." +msgid "Help?" +msgstr "Axuda?" #: ../data/klavaro.glade.h:10 -msgid "Practice with random words" -msgstr "Practique con palabras ao chou" +msgid "This is a tip. Now you press this button to return to the main menu." +msgstr "Isto é unha pista. Prema este botón para volver ao menú principal." #: ../data/klavaro.glade.h:11 -msgid "Becoming proficient practicing complete paragraphs exercises." -msgstr "Adquira destreza practicando con parágrafos completos." +msgid "B_ack to menu" +msgstr "_Volver ao menú" #: ../data/klavaro.glade.h:12 -msgid "Practice with complete texts" -msgstr "Practique con textos completos" +msgid "" +"The main menu of the application is very straightforward. Just select the " +"type of exercise you wish to take. Do not worry about clicking any button on " +"the screen. The buttons will never hurt you!" +msgstr "" +"O menú principal do aplicativo é moi sinxelo. Escolla o tipo de curso que " +"quere realizar. Non teña medo en premer calquera botón. Premer un botón non " +"lle fará dano!" #: ../data/klavaro.glade.h:13 msgid "" -"Keyboard layout for modules 1 and 2. Also used informatively in the " -"fluidness contest." +"Also the controls have tips which will appear if you hover over them with " +"your mouse. These tips can come in very handy. To see how these tips work, " +"position your mouse over the button below, and without clicking, wait for " +"the tip to appear..." msgstr "" -"Distribución do teclado para os cursos 1 e 2. Tamén se usa a título " -"informativo no curso de fluidez." +"Asemade, hai pistas que aparecerán se mantén o cursor sobre os botóns. Estas " +"pistas poden ser moi útiles. Para ver como funcionan, poña o cursor sobre o " +"botón de embaixo, sen premer, e agarde a que apareza a pista." #: ../data/klavaro.glade.h:14 -msgid "_Keyboard:" -msgstr "_Teclado:" +msgid "Klavaro - Select file" +msgstr "Klavaro - Escoller un ficheiro" #: ../data/klavaro.glade.h:15 -msgid "Language for modules 3 and 4." -msgstr "Idioma dos cursos 3 e 4." +msgid "_Cancel" +msgstr "_Cancelar" #: ../data/klavaro.glade.h:16 -msgid "_Language:" -msgstr "_Idioma:" +msgid "_Open" +msgstr "_Abrir" #: ../data/klavaro.glade.h:17 -msgid "Variant" -msgstr "Variante" +msgid "Re_name:" +msgstr "_Renomear:" #: ../data/klavaro.glade.h:18 -msgid "Klavaro" -msgstr "Klavaro" +msgid "Rename the selected item." +msgstr "Renomear o elemento seleccionado." #: ../data/klavaro.glade.h:19 -msgid "Country / Custom" -msgstr "País / Personalizado" +msgid "" +"Read a text file and add a copy of it here. The file must be encoded in " +"UTF-8." +msgstr "" +"Ler un ficheiro de texto e copialo aquí. O ficheiro debe estar codificado en " +"UTF-8." #: ../data/klavaro.glade.h:20 -msgid "Your language here." -msgstr "Escolla aquí o seu idioma." +msgid "_Open text file" +msgstr "_Abrir un ficheiro de texto" #: ../data/klavaro.glade.h:21 -msgid "Speech" -msgstr "Ditado" +msgid "Paste text that was copied to the clipboard." +msgstr "Pegar o texto copiado no portapapeis." #: ../data/klavaro.glade.h:22 -msgid "Little tip about this program." -msgstr "Algúns consellos sobre este programa." +msgid "_Paste from clipboard" +msgstr "_Pegar do portapapeis" #: ../data/klavaro.glade.h:23 -msgid "_Help" -msgstr "_Axuda" +msgid "Remove the selected item." +msgstr "Eliminar o elemento seleccionado." #: ../data/klavaro.glade.h:24 -msgid "General information about the program." -msgstr "Información xeral sobre o programa." +msgid "_Remove copied file" +msgstr "_Retirar o ficheiro copiado" #: ../data/klavaro.glade.h:25 -msgid "_About..." -msgstr "_Sobre..." +msgid "Apply the selected item to create an exercise." +msgstr "Aplicar o elemento seleccionado para crear un exercicio." #: ../data/klavaro.glade.h:26 -msgid "Exit the application immediately." -msgstr "Pechar o programa inmediatamente." +msgid "_Apply" +msgstr "_Aplicar" #: ../data/klavaro.glade.h:27 -msgid "_Close" -msgstr "_Pechar" +msgid "Close this window." +msgstr "Pechar esta xanela." #: ../data/klavaro.glade.h:28 -msgid "Load other exercises/lessons" -msgstr "Cargar outros exercicios ou leccións" +msgid "_Close" +msgstr "_Pechar" #: ../data/klavaro.glade.h:29 -msgid "_Other texts" -msgstr "_Outros textos" +msgid "Country / Custom" +msgstr "País / Personalizado" #: ../data/klavaro.glade.h:30 -msgid "_Lesson:" -msgstr "_Lección:" +msgid "Variant" +msgstr "Variante" #: ../data/klavaro.glade.h:31 -msgid "Edit the character set to be used in this lesson." -msgstr "Editar o xogo de caracteres a usar nesta lección." +msgid "Remove the selected custom layout." +msgstr "Eliminar esta distribución personalizada." #: ../data/klavaro.glade.h:32 -msgid "Edit the character set to be used in lessons 44 through 50." -msgstr "Editar o xogo de caracteres para usar nas leccións 44 a 50." +msgid "_Remove" +msgstr "_Retirar" #: ../data/klavaro.glade.h:33 -msgid "This is a specific exercise, adjusted to your error profile." -msgstr "Este é un exercicio específico, axustado ao seu perfil de erros." +msgid "" +"Toggles the shift effect on the keys. Alternates between the upper and lower " +"characters of the keys." +msgstr "Alternar entre maiúsculas e minúsculas." -#: ../data/klavaro.glade.h:34 ../src/tutor.c:252 -msgid "Drag and drop text here to practice with it." -msgstr "Arrastre un texto aquí para practicar con el." +#: ../data/klavaro.glade.h:34 +msgid "SPACE BAR" +msgstr "BARRA ESPAZADORA" -#: ../data/klavaro.glade.h:35 -msgid "Press here to restart the exercise. Hotkey: [Ctrl R]" -msgstr "Prema para volver comezar o exercicio. Atallo: [Ctrl+R]" +#: ../data/klavaro.glade.h:35 ../src/keyboard.c:1630 +msgid "thumbs" +msgstr "polgares" #: ../data/klavaro.glade.h:36 -msgid "Show the virtual keyboard and the relation between fingers and keys." -msgstr "Ver o teclado virtual e a relación entre dedos e teclas." +msgid "Ctrl" +msgstr "Ctrl" #: ../data/klavaro.glade.h:37 -msgid "_Keyboard" -msgstr "_Teclado" +msgid "Caps" +msgstr "Maiúsculas" #: ../data/klavaro.glade.h:38 -msgid "Select the font to be used in the exercise window." -msgstr "Escolla o tipo de letra a usar na xanela de exercicio." +msgid "S_ave as:" +msgstr "_Gardar como:" #: ../data/klavaro.glade.h:39 -msgid "_Font" -msgstr "_Tipo de letra" +msgid "Show previous screen." +msgstr "Amosar a pantalla anterior." #: ../data/klavaro.glade.h:40 -msgid "Keep this checked if you want to get those nice beeps." -msgstr "Manter isto activado se quere escoitar os bonitos pitidos." +msgid "_Previous step" +msgstr "_Paso anterior" #: ../data/klavaro.glade.h:41 -msgid "_Beep" -msgstr "_Pitido" +msgid "Show next screen." +msgstr "Amosar a pantalla seguinte." #: ../data/klavaro.glade.h:42 -msgid "Co_urse information" -msgstr "Información sobre o _curso" +msgid "_Next step" +msgstr "_Paso seguinte" #: ../data/klavaro.glade.h:43 -msgid "Charts showing the learning progress along the exercises." -msgstr "" -"Táboas con información sobre o progreso da súa aprendizaxe, ordenadas por " -"exercicios." +msgid "Return without any modification." +msgstr "Volver sen gardar ningún cambio." #: ../data/klavaro.glade.h:44 -msgid "_Progress" -msgstr "_Progreso" +msgid "Save the current keyboard layout with the name specified above." +msgstr "Gardar a distribución actual co nome especificado." #: ../data/klavaro.glade.h:45 -msgid "Show local and external scores from other users." -msgstr "Ver puntuacións locais e globais doutros usuarios." +msgid "_Save and use" +msgstr "_Gardar e usar" #: ../data/klavaro.glade.h:46 -msgid "_Top 10" -msgstr "_Os 10 mellores" +msgid "" +"If you like those beautiful hands, click here to close this window keeping " +"them." +msgstr "" +"Se lle gustan esas mans tan bonitas, prema aquí para pechar esta xanela " +"conservándoas." #: ../data/klavaro.glade.h:47 -msgid "Return to the main menu." -msgstr "Volver ao menú principal." +msgid "_Keep hands" +msgstr "_Manter as mans" #: ../data/klavaro.glade.h:48 -msgid "B_ack to menu" -msgstr "_Volver ao menú" +msgid "Klavaro - Main menu" +msgstr "Klavaro - Menú principal" #: ../data/klavaro.glade.h:49 -msgid "Close this window." -msgstr "Pechar esta xanela." +msgid "Don't be shy about learning the basics!" +msgstr "Non teña vergoña en ter que aprender o básico!" #: ../data/klavaro.glade.h:50 -msgid "Font definition" -msgstr "Definir o tipo de letra" +msgid "Learn how to type correctly" +msgstr "Aprenda a escribir correctamente" #: ../data/klavaro.glade.h:51 -msgid "Top 10" -msgstr "Os 10 mellores" +msgid "Initial training for your fingers." +msgstr "Adestramento inicial para os dedos." #: ../data/klavaro.glade.h:52 -msgid "Show extra information" -msgstr "Amosar a información adicional" +msgid "First steps with initial training" +msgstr "Primeiros pasos do adestramento inicial" #: ../data/klavaro.glade.h:53 -msgid "Hide extra information" -msgstr "Agochar a información adicional" +msgid "Memorizing the keyboard practicing random keys exercises." +msgstr "Memorice o teclado practicando coas teclas ao chou." #: ../data/klavaro.glade.h:54 -msgid "Publish to the web your local scores." -msgstr "Publicar as puntuacións locais na web." +msgid "Practice with random keys" +msgstr "Practique con teclas ao chou" #: ../data/klavaro.glade.h:55 -msgid "_Participate" -msgstr "_Participar" +msgid "Accelerating the touches practicing random words exercises." +msgstr "Acelere as súas pulsacións practicando con palabras ao chou." #: ../data/klavaro.glade.h:56 -msgid "Download from the web the most up to date ranking." -msgstr "Descargar da web as puntuacións actualizadas." +msgid "Practice with random words" +msgstr "Practique con palabras ao chou" #: ../data/klavaro.glade.h:57 -msgid "_Update" -msgstr "_Actualizar" +msgid "Becoming proficient practicing complete paragraphs exercises." +msgstr "Adquira destreza practicando con parágrafos completos." #: ../data/klavaro.glade.h:58 -msgid "About 'Klavaro'" -msgstr "Sobre o Klavaro" +msgid "Practice with complete texts" +msgstr "Practique con textos completos" + +#: ../data/klavaro.glade.h:59 +msgid "" +"Keyboard layout for modules 1 and 2. Also used informatively in the " +"fluidness contest." +msgstr "" +"Distribución do teclado para os cursos 1 e 2. Tamén se usa a título " +"informativo no curso de fluidez." #: ../data/klavaro.glade.h:60 -msgid "Remember always: someone loves you!" -msgstr "Lembre sempre: Alguén o quere!" +msgid "_Keyboard:" +msgstr "_Teclado:" #: ../data/klavaro.glade.h:61 -msgid "Remove the selected custom layout." -msgstr "Eliminar esta distribución personalizada." +msgid "Language for modules 3 and 4." +msgstr "Idioma dos cursos 3 e 4." #: ../data/klavaro.glade.h:62 -msgid "_Remove" -msgstr "_Retirar" +msgid "_Language:" +msgstr "_Idioma:" #: ../data/klavaro.glade.h:63 -msgid "" -"Toggles the shift effect on the keys. Alternates between the upper and lower " -"characters of the keys." -msgstr "Alternar entre maiúsculas e minúsculas." +msgid "Speech" +msgstr "Ditado" #: ../data/klavaro.glade.h:64 -msgid "SPACE BAR" -msgstr "BARRA ESPAZADORA" +msgid "Your language here." +msgstr "Escolla aquí o seu idioma." -#: ../data/klavaro.glade.h:65 ../src/keyboard.c:1630 -msgid "thumbs" -msgstr "polgares" +#: ../data/klavaro.glade.h:65 +msgid "Little tip about this program." +msgstr "Algúns consellos sobre este programa." #: ../data/klavaro.glade.h:66 -msgid "Ctrl" -msgstr "Ctrl" +msgid "_Help" +msgstr "_Axuda" #: ../data/klavaro.glade.h:67 -msgid "Caps" -msgstr "Maiúsculas" +msgid "General information about the program." +msgstr "Información xeral sobre o programa." #: ../data/klavaro.glade.h:68 -msgid "S_ave as:" -msgstr "_Gardar como:" +msgid "_About..." +msgstr "_Sobre..." #: ../data/klavaro.glade.h:69 -msgid "Show previous screen." -msgstr "Amosar a pantalla anterior." +msgid "Exit the application immediately." +msgstr "Pechar o programa inmediatamente." #: ../data/klavaro.glade.h:70 -msgid "_Previous step" -msgstr "_Paso anterior" +msgid "Klavaro - Progress" +msgstr "Klavaro - Progreso" #: ../data/klavaro.glade.h:71 -msgid "Show next screen." -msgstr "Amosar a pantalla seguinte." +msgid "_Lesson:" +msgstr "_Lección:" #: ../data/klavaro.glade.h:72 -msgid "_Next step" -msgstr "_Paso seguinte" +msgid "Value" +msgstr "Valor" #: ../data/klavaro.glade.h:73 -msgid "Return without any modification." -msgstr "Volver sen gardar ningún cambio." +msgid "Close this window, returning to the exercise." +msgstr "Pechar esta xanela e volver ao exercicio." #: ../data/klavaro.glade.h:74 -msgid "_Cancel" -msgstr "_Cancelar" +msgid "Clear all the progress data, for every module." +msgstr "Borrar todos os datos de progreso, para todos os módulos." #: ../data/klavaro.glade.h:75 -msgid "Save the current keyboard layout with the name specified above." -msgstr "Gardar a distribución actual co nome especificado." +msgid "_Reset" +msgstr "_Reiniciar" #: ../data/klavaro.glade.h:76 -msgid "_Save and use" -msgstr "_Gardar e usar" +msgid "Top 10" +msgstr "Os 10 mellores" #: ../data/klavaro.glade.h:77 -msgid "" -"If you like those beautiful hands, click here to close this window keeping " -"them." -msgstr "" -"Se lle gustan esas mans tan bonitas, prema aquí para pechar esta xanela " -"conservándoas." +#, fuzzy +msgid "Show extra information." +msgstr "Amosar a información adicional" #: ../data/klavaro.glade.h:78 -msgid "_Keep hands" -msgstr "_Manter as mans" +#, fuzzy +msgid "Hide extra information." +msgstr "Agochar a información adicional" #: ../data/klavaro.glade.h:79 -msgid "Change language" -msgstr "Cambiar o idioma" +msgid "Publish to the web your local scores." +msgstr "Publicar as puntuacións locais na web." #: ../data/klavaro.glade.h:80 -msgid "Attention!" -msgstr "Atención!" +msgid "_Participate" +msgstr "_Participar" #: ../data/klavaro.glade.h:81 -msgid "Do you confirm?" -msgstr "Confírmao?" +msgid "Download from the web the most up to date ranking." +msgstr "Descargar da web as puntuacións actualizadas." #: ../data/klavaro.glade.h:82 -msgid "_No" -msgstr "_Non" +msgid "_Update" +msgstr "_Actualizar" #: ../data/klavaro.glade.h:83 -msgid "_Yes" -msgstr "_Si" +msgid "Load other exercises/lessons" +msgstr "Cargar outros exercicios ou leccións" #: ../data/klavaro.glade.h:84 -msgid "Re_name:" -msgstr "_Renomear:" +msgid "_Other texts" +msgstr "_Outros textos" #: ../data/klavaro.glade.h:85 -msgid "Rename the selected item." -msgstr "Renomear o elemento seleccionado." +msgid "Edit the character set to be used in this lesson." +msgstr "Editar o xogo de caracteres a usar nesta lección." #: ../data/klavaro.glade.h:86 -msgid "" -"Read a text file and add a copy of it here. The file must be encoded in " -"UTF-8." -msgstr "" -"Ler un ficheiro de texto e copialo aquí. O ficheiro debe estar codificado en " -"UTF-8." +msgid "This is a specific exercise, adjusted to your error profile." +msgstr "Este é un exercicio específico, axustado ao seu perfil de erros." #: ../data/klavaro.glade.h:87 -msgid "_Open text file" -msgstr "_Abrir un ficheiro de texto" +#, fuzzy +msgid "" +"Edit the character set to be used in lessons after 43: they are customizable!" +msgstr "Editar o xogo de caracteres para usar nas leccións 44 a 50." -#: ../data/klavaro.glade.h:88 -msgid "Paste text that was copied to the clipboard." -msgstr "Pegar o texto copiado no portapapeis." +#: ../data/klavaro.glade.h:88 ../src/tutor.c:376 +msgid "Drag and drop text here to practice with it." +msgstr "Arrastre un texto aquí para practicar con el." #: ../data/klavaro.glade.h:89 -msgid "_Paste from clipboard" -msgstr "_Pegar do portapapeis" +#, fuzzy +msgid "Press here to restart the exercise. Hotkey: [Ctrl-R]" +msgstr "Prema para volver comezar o exercicio. Atallo: [Ctrl+R]" #: ../data/klavaro.glade.h:90 -msgid "Remove the selected item." -msgstr "Eliminar o elemento seleccionado." +msgid "Show the virtual keyboard and the relation between fingers and keys." +msgstr "Ver o teclado virtual e a relación entre dedos e teclas." #: ../data/klavaro.glade.h:91 -msgid "_Remove copied file" -msgstr "_Retirar o ficheiro copiado" +msgid "_Keyboard" +msgstr "_Teclado" #: ../data/klavaro.glade.h:92 -msgid "Apply the selected item to create an exercise." -msgstr "Aplicar o elemento seleccionado para crear un exercicio." +msgid "Select the font to be used in the exercise window." +msgstr "Escolla o tipo de letra a usar na xanela de exercicio." #: ../data/klavaro.glade.h:93 -msgid "_Apply" -msgstr "_Aplicar" +msgid "Font definition" +msgstr "Definir o tipo de letra" #: ../data/klavaro.glade.h:94 -msgid "Klavaro - Progress" -msgstr "Klavaro - Progreso" +msgid "Keep this checked if you want to get those nice beeps." +msgstr "Manter isto activado se quere escoitar os bonitos pitidos." #: ../data/klavaro.glade.h:95 -msgid "Value" -msgstr "Valor" +msgid "_Beep" +msgstr "_Pitido" #: ../data/klavaro.glade.h:96 -msgid "Clear all the progress data, for every module." -msgstr "Borrar todos os datos de progreso, para todos os módulos." +msgid "Co_urse information" +msgstr "Información sobre o _curso" #: ../data/klavaro.glade.h:97 -msgid "_Reset" -msgstr "_Reiniciar" +msgid "Charts showing the learning progress along the exercises." +msgstr "" +"Táboas con información sobre o progreso da súa aprendizaxe, ordenadas por " +"exercicios." #: ../data/klavaro.glade.h:98 -msgid "Close this window, returning to the exercise." -msgstr "Pechar esta xanela e volver ao exercicio." +msgid "_Progress" +msgstr "_Progreso" #: ../data/klavaro.glade.h:99 -msgid "Klavaro - Select file" -msgstr "Klavaro - Escoller un ficheiro" +msgid "Return to the main menu." +msgstr "Volver ao menú principal." #: ../data/klavaro.glade.h:100 -msgid "_Open" -msgstr "_Abrir" +msgid "Show local and external scores from other users." +msgstr "Ver puntuacións locais e globais doutros usuarios." #: ../data/klavaro.glade.h:101 -msgid "Help?" -msgstr "Axuda?" - -#: ../data/klavaro.glade.h:102 -msgid "" -"The main menu of the application is very straightforward. Just select the " -"type of exercise you wish to take. Do not worry about clicking any button on " -"the screen. The buttons will never hurt you!" -msgstr "" -"O menú principal do aplicativo é moi sinxelo. Escolla o tipo de curso que " -"quere realizar. Non teña medo en premer calquera botón. Premer un botón non " -"lle fará dano!" +msgid "_Top 10" +msgstr "_Os 10 mellores" -#: ../data/klavaro.glade.h:103 -msgid "" -"Also the controls have tips which will appear if you hover over them with " -"your mouse. These tips can come in very handy. To see how these tips work, " -"position your mouse over the button below, and without clicking, wait for " -"the tip to appear..." -msgstr "" -"Asemade, hai pistas que aparecerán se mantén o cursor sobre os botóns. Estas " -"pistas poden ser moi útiles. Para ver como funcionan, poña o cursor sobre o " -"botón de embaixo, sen premer, e agarde a que apareza a pista." +#: ../data/klavaro.desktop.in.h:1 +#, fuzzy +msgid "A very flexible and efficient touch typing tutor." +msgstr "Simplemente un titor máis de mecanografía" -#: ../data/klavaro.glade.h:104 -msgid "This is a tip. Now you press this button to return to the main menu." -msgstr "Isto é unha pista. Prema este botón para volver ao menú principal." +#. Translators: these are keywords related to the program. CAI above means Computer Aided Instruction. Feel free to add and/or change the keywords in your language. +#: ../data/klavaro.desktop.in.h:3 +#, fuzzy +msgid "keyboard;typing;tutor;CAI" +msgstr "Teclado" -#: ../src/main.c:314 +#: ../src/main.c:242 msgid "(Custom)" msgstr "(Personalizado)" -#: ../src/main.c:315 +#: ../src/main.c:243 msgid "(Edit custom)" msgstr "(Editar Personalizado)" -#: ../src/main.c:316 +#: ../src/main.c:244 msgid "(Default)" msgstr "(Predeterminado)" -#: ../src/main.c:393 +#: ../src/main.c:321 #, c-format msgid "Dictation mode (depends on this speech synthesizer: %s)" msgid_plural "Dictation mode (depends on one of these speech synthesizers: %s)" @@ -480,88 +487,86 @@ msgstr[1] "" "Modo de dictado (depende dun dos seguintes sintetizadores de voz: %s)" -#. Set main labels (for translation) -#. -#: ../src/main.c:435 ../src/keyboard.c:1291 +#: ../src/main.c:364 ../src/keyboard.c:1291 msgid "Introduction" msgstr "Introdución" -#: ../src/main.c:438 ../src/top10.c:109 +#: ../src/main.c:367 ../src/top10.c:109 msgid "Basic course" msgstr "Curso básico" -#: ../src/main.c:441 ../src/top10.c:112 +#: ../src/main.c:370 ../src/top10.c:112 msgid "Adaptability" msgstr "Adaptabilidade" -#: ../src/main.c:444 ../src/callbacks.c:1310 ../src/top10.c:89 +#: ../src/main.c:373 ../src/callbacks.c:1226 ../src/top10.c:89 #: ../src/top10.c:115 msgid "Speed" msgstr "Velocidade" -#: ../src/main.c:447 ../src/callbacks.c:1333 ../src/top10.c:91 +#: ../src/main.c:376 ../src/callbacks.c:1249 ../src/top10.c:91 #: ../src/top10.c:118 msgid "Fluidity" msgstr "Fluidez" -#: ../src/callbacks.c:468 ../src/tutor.c:391 +#: ../src/callbacks.c:407 ../src/tutor.c:515 msgid "Keys:" msgstr "Teclas:" -#: ../src/callbacks.c:858 ../src/callbacks.c:874 +#: ../src/callbacks.c:774 ../src/callbacks.c:790 msgid "Connecting..." msgstr "Conectando..." -#: ../src/callbacks.c:1145 +#: ../src/callbacks.c:1061 msgid "Overwrite user layout" msgstr "Sobrescribir a distribución de teclado" -#: ../src/callbacks.c:1147 +#: ../src/callbacks.c:1063 msgid "This will OVERWRITE an existent keyboard layout." msgstr "Isto SOBRESCRIBIRÁ unha distribución de teclado existente." -#: ../src/callbacks.c:1154 +#: ../src/callbacks.c:1070 msgid "Remove user layout" msgstr "Eliminar a distribución de teclado" -#: ../src/callbacks.c:1156 +#: ../src/callbacks.c:1072 msgid "This will REMOVE an existent keyboard layout." msgstr "Isto ELIMINARÁ unha distribución de teclado existente." -#: ../src/callbacks.c:1163 +#: ../src/callbacks.c:1079 msgid "Reset progress data" msgstr "Reiniciar os datos de progreso" -#: ../src/callbacks.c:1164 +#: ../src/callbacks.c:1080 msgid "This will DELETE all the progress data shown in the charts." msgstr "Isto ELIMINARÁ todos os datos de progreso amosados nas táboas." -#: ../src/callbacks.c:1307 ../src/top10.c:87 +#: ../src/callbacks.c:1223 ../src/top10.c:87 msgid "Accuracy" msgstr "Precisión" -#: ../src/callbacks.c:1310 ../src/tutor.c:1160 +#: ../src/callbacks.c:1226 ../src/tutor.c:1288 msgid "(WPM)" msgstr "(PPM)" -#: ../src/callbacks.c:1321 +#: ../src/callbacks.c:1237 msgid "Errors" msgstr "Erros" -#: ../src/callbacks.c:1324 +#: ../src/callbacks.c:1240 msgid "Touch times (s)" msgstr "Tempo de pulsación (s)" -#: ../src/callbacks.c:1336 ../src/tutor.c:1187 ../src/top10.c:69 +#: ../src/callbacks.c:1252 ../src/tutor.c:1315 ../src/top10.c:69 msgid "Score" msgstr "Puntuación" #. Translators: your language code (first 2 letters of your po-file) -#: ../src/translation.c:423 ../src/translation.c:489 ../src/tutor.c:1597 +#: ../src/translation.c:485 ../src/tutor.c:1725 msgid "en" msgstr "gl" -#: ../src/translation.c:576 +#: ../src/translation.c:572 msgid "" "The basic course focuses on having you read the characters presented to you " "on screen and typing the corresponding keys. Remember to keep your hands " @@ -572,7 +577,7 @@ "premer as teclas correspondentes. Lembre manter sempre as mans ben " "orientadas na fila guía (vexa como facelo na introdución do menú principal)." -#: ../src/translation.c:580 +#: ../src/translation.c:576 msgid "" "The key set used in each series will be shown in the above message line. The " "[Space], [Shift] and [Enter] keys may not show up there but are used very " @@ -582,13 +587,13 @@ "Pode que as teclas [Espazo], [Maiúsculas] e [Intro] non aparezan, pero " "úsanse de cotío." -#: ../src/translation.c:583 +#: ../src/translation.c:579 msgid "" "The message line below follows and echoes your key presses. If required, it " "changes and displays instructions for actions required from you." msgstr "O texto da liña inferior reproduce as teclas que vostede prema. " -#: ../src/translation.c:587 +#: ../src/translation.c:583 msgid "" "Here you may practice and improve your memorization of all keys. There will " "be sentences presented with nonsense words which mix some numbers and " @@ -597,7 +602,7 @@ "Aquí pode practicar e mellorar a súa memorización das teclas. Haberá frases " "formadas por palabras sen sentido, mesturadas con números e símbolos." -#: ../src/translation.c:590 +#: ../src/translation.c:586 msgid "" "In order to keep the lesson contents language and keyboard independent, " "accented letter combinations will probably not appear. For real word " @@ -607,7 +612,7 @@ "probábel que non aparezan combinacións de letras acentuadas. Para practicar " "con frases reais, use a cuarta opción do menú principal (fluidez)." -#: ../src/translation.c:594 +#: ../src/translation.c:590 msgid "" "After each exercise there will be a brief statistics panel reviewing your " "performance along with some relevant comments." @@ -615,7 +620,7 @@ "Tras cada exercicio aparecerá un sinxelo panel de estatísticas cunha análise " "do seu rendemento, xunto con algúns comentarios relevantes." -#: ../src/translation.c:598 +#: ../src/translation.c:594 msgid "" "This exercise is very similar to the second one, for adaptability. The " "difference is that here you'll type real words." @@ -623,7 +628,7 @@ "Este exercicio é similar ao segundo, adaptabilidade. A diferencia é que aquí " "practicará con palabras reais." -#: ../src/translation.c:601 +#: ../src/translation.c:597 msgid "" "The default language is the actual one of the interface. But you may select " "any other texts with words you would like to use. Press the 'Other' option " @@ -633,7 +638,7 @@ "outro texto que queira utilizar. Prema na opción «Outros textos» na parte " "superior da xanela, e engada o ficheiro que contén o texto." -#: ../src/translation.c:605 +#: ../src/translation.c:601 msgid "" "With this exercise the focus is on speed. So, you are supposed to type " "really fast and I will only flatter you when you deserve it!" @@ -641,7 +646,7 @@ "Este exercicio céntrase na velocidade. O seu obxectivo é escribir moi " "rápido, e só lle darei os parabéns se de verdade o merece!" -#: ../src/translation.c:609 +#: ../src/translation.c:605 msgid "" "We will now use complete sentences and paragraphs which make logical sense. " "This may distract you while you type if you try to understand what you are " @@ -652,7 +657,7 @@ "entender o texto, pode que se distraia. Os exercicios anteriores pretendían " "conseguir que se centrase en teclear, sen interpretar nin analizar o contido." -#: ../src/translation.c:613 +#: ../src/translation.c:609 msgid "" "We do not mean to imply that the typists must behave like a robot, without " "understanding what they type. We do aim to develop the skill of typing, " @@ -668,8 +673,7 @@ "requirirá concentración. Entón poderá centrarse no auténtico significado do " "texto." -#. English typo: minimun -> minimum -#: ../src/translation.c:618 +#: ../src/translation.c:613 msgid "" "These exercises are longer. Each exercise consists of three paragraphs and " "the emphasis is placed on correctness and rhythm, with a minimum speed " @@ -681,7 +685,6 @@ "mínimas. Pedireille que use a tecla de retroceso para corrixir os erros. " "Dito doutra maneira, só aceptarei textos correctos, sen ningún erro." -#. English typo: recomendations -> recommendations #: ../src/keyboard.c:1094 msgid "" "Correct positioning of the hands and fingers is very important to efficient " @@ -776,13 +779,11 @@ msgid "Step %i" msgstr "Paso %i" -#. Recommendations -#: ../src/keyboard.c:1140 +#: ../src/keyboard.c:1142 msgid "To position the hands" msgstr "Como poñer as mans" -#. Final words -#: ../src/keyboard.c:1225 +#: ../src/keyboard.c:1227 msgid "Go ahead!" msgstr "Adiante!" @@ -822,23 +823,23 @@ msgid "Press and edit me" msgstr "Prema e edíteme" -#: ../src/tutor.c:176 +#: ../src/tutor.c:300 msgid "Lesson:" msgstr "Lección:" -#: ../src/tutor.c:186 +#: ../src/tutor.c:310 msgid "Paragraphs:" msgstr "Parágrafos:" -#: ../src/tutor.c:219 +#: ../src/tutor.c:343 msgid "Klavaro - Basic Course" msgstr "Klavaro - Curso básico" -#: ../src/tutor.c:224 +#: ../src/tutor.c:348 msgid "Klavaro - Adaptability" msgstr "Klavaro - Adaptabilidade" -#: ../src/tutor.c:227 +#: ../src/tutor.c:351 msgid "" "Adaptability exercises: automating the fingers responses, typing over all " "the keyboard." @@ -846,44 +847,44 @@ "Exercicios de adaptabilidade: automatizar a resposta dos dedos usando todo o " "teclado." -#: ../src/tutor.c:232 +#: ../src/tutor.c:356 msgid "Klavaro - Velocity" msgstr "Klavaro - Velocidade" -#: ../src/tutor.c:233 +#: ../src/tutor.c:357 msgid "Velocity exercises: accelerate typing real words." msgstr "Exercicios de velocidade: acelerar a escritura de palabras reais." -#: ../src/tutor.c:237 +#: ../src/tutor.c:361 msgid "Klavaro - Fluidness" msgstr "Klavaro - Fluidez" -#: ../src/tutor.c:239 +#: ../src/tutor.c:363 msgid "Fluidness exercises: accuracy typing good sense paragraphs." msgstr "" "Exercicios de fluidez: adquirir precisión escribindo parágrafos con sentido." -#: ../src/tutor.c:301 +#: ../src/tutor.c:425 msgid "End of exercise. Press [Enter] to start another." msgstr "Fin do exercicio. Prema [Intro] para comezar outro." -#: ../src/tutor.c:329 +#: ../src/tutor.c:453 msgid "Learning the key positions." msgstr "Aprender a posición das teclas." -#: ../src/tutor.c:332 +#: ../src/tutor.c:456 msgid "Press any key to start the exercise. " msgstr "Prema calquera tecla para comezar o exercicio." -#: ../src/tutor.c:440 ../src/tutor.c:443 +#: ../src/tutor.c:567 ../src/tutor.c:570 msgid "Start typing when you are ready. " msgstr "Comece a escribir cando estea listo." -#: ../src/tutor.c:441 +#: ../src/tutor.c:568 msgid "Use backspace to correct errors." msgstr "Use a tecla de retroceso para corrixir os erros." -#: ../src/tutor.c:885 +#: ../src/tutor.c:1012 #, c-format msgid "" "ps.: logging not performed for this session: the number of typed characters " @@ -892,11 +893,11 @@ "P.D. Esta sesión non quedou rexistrada: o número de caracteres escritos (%i) " "debe ser maior que %i." -#: ../src/tutor.c:1027 +#: ../src/tutor.c:1154 msgid "ps.: you have entered the Top 10 list, great!" msgstr "P.D. Entrou na lista dos 10 mellores. Magnifico!" -#: ../src/tutor.c:1039 +#: ../src/tutor.c:1166 msgid "" "ps.: the text you just typed doesn't seem to be similar to ordinary texts in " "the language currently selected: we can't account for it in the 'Top 10' " @@ -905,91 +906,88 @@ "P.D. O texto que escribiu non se parece a outros textos comúns do idioma " "escollido. Non podemos incluílo nos 10 mellores." -#. Begin the accuracy -#: ../src/tutor.c:1087 +#: ../src/tutor.c:1215 msgid "STATISTICS" msgstr "ESTATÍSTICAS" -#: ../src/tutor.c:1088 +#: ../src/tutor.c:1216 msgid "Elapsed time:" msgstr "Tempo transcorrido:" -#: ../src/tutor.c:1089 +#: ../src/tutor.c:1217 msgid "minute and" msgid_plural "minutes and" msgstr[0] "minuto e" msgstr[1] "minutos e" -#: ../src/tutor.c:1090 +#: ../src/tutor.c:1218 msgid "second" msgid_plural "seconds" msgstr[0] "segundo" msgstr[1] "segundos" -#: ../src/tutor.c:1091 +#: ../src/tutor.c:1219 msgid "Error ratio:" msgstr "Proporción de erros:" -#: ../src/tutor.c:1091 +#: ../src/tutor.c:1219 msgid "Accuracy:" msgstr "Precisión:" -#: ../src/tutor.c:1112 ../src/tutor.c:1137 ../src/tutor.c:1160 -#: ../src/tutor.c:1186 +#: ../src/tutor.c:1240 ../src/tutor.c:1265 ../src/tutor.c:1288 +#: ../src/tutor.c:1314 msgid "Goal:" msgstr "Obxectivo:" -#: ../src/tutor.c:1119 +#: ../src/tutor.c:1247 msgid "Characters per second:" msgstr "Caracteres por segundo:" -#: ../src/tutor.c:1137 +#: ../src/tutor.c:1265 msgid "(CPS)" msgstr "(CPS)" -#: ../src/tutor.c:1142 +#: ../src/tutor.c:1270 msgid "Words per minute:" msgstr "Palabras por minuto:" -#: ../src/tutor.c:1167 +#: ../src/tutor.c:1295 msgid "Fluidness:" msgstr "Fluidez:" -#: ../src/tutor.c:1194 +#: ../src/tutor.c:1322 msgid "Comments:" msgstr "Comentarios:" -#: ../src/tutor.c:1676 +#: ../src/tutor.c:1804 msgid "space" msgstr "espazo" #. Translators: the name of letter Y -#: ../src/tutor.c:1681 +#: ../src/tutor.c:1809 msgid "wye" msgstr "y" #. Translators: the name of the Return key -#: ../src/tutor.c:1685 +#: ../src/tutor.c:1813 msgid "enter" msgstr "intro" -#: ../src/tutor.c:1691 +#: ../src/tutor.c:1819 msgid "apostrophe" msgstr "apóstrofo" #. Translators: double quote symbol: " -#: ../src/tutor.c:1695 +#: ../src/tutor.c:1823 msgid "quote" msgstr "comiñas" #. Translators: ampersand symbol: & -#: ../src/tutor.c:1699 +#: ../src/tutor.c:1827 msgid "ampersand" msgstr "et" -#. Error frequencies or touch times -#. -#: ../src/plot.c:308 +#: ../src/plot.c:305 msgid "Character" msgstr "Letra" @@ -997,11 +995,11 @@ msgid "Date & Time" msgstr "Data e hora" -#: ../src/basic.c:331 +#: ../src/basic.c:326 msgid "Positions of keys seems to be learned!" msgstr "Parece que xa aprendeu a posición das teclas!" -#: ../src/basic.c:332 +#: ../src/basic.c:327 msgid "" " Congratulations!\n" " You have accomplished the entire basic course.\n" @@ -1013,7 +1011,7 @@ " Vaia ao seguinte curso: adaptabilidade.\n" " Nel practicará sobre todo a precisión.\n" -#: ../src/basic.c:338 +#: ../src/basic.c:333 msgid "" " All right, now you got it!\n" " Go to the next lesson.\n" @@ -1021,33 +1019,35 @@ " Perfecto, conseguiuno!\n" " Vaia á seguinte lección.\n" -#: ../src/adaptability.c:217 +#: ../src/adaptability.c:213 +#, fuzzy, c-format msgid "" -" Your accuracy rate is below 90%...\n" +" Your accuracy rate is below %.0f%%...\n" " Could you please try again to improve it?\n" msgstr "" " A súa precisión está por debaixo do 90%...\n" " Pode intentar mellorala?\n" -#: ../src/adaptability.c:222 +#: ../src/adaptability.c:216 +#, fuzzy, c-format msgid "" " You are doing well. But...\n" -" Could you make the accuracy reach 95%?\n" +" Could you make the accuracy reach %.0f%%?\n" msgstr "" " Esta facéndoo moi ben. Pero...\n" " Pode chegar a unha precisión do 95%?\n" -#: ../src/adaptability.c:225 -#, c-format +#: ../src/adaptability.c:219 +#, fuzzy, c-format msgid "" " You are almost there, but your accuracy rate is still below %.0f%%.\n" -" Try a few more times, or maybe you're getting upset, so go to other kind of " -"exercise.\n" +" Try a few more times, or maybe you're getting upset, so go to another kind " +"of exercise.\n" msgstr "" " Case o ten, pero a súa precisión segue por debaixo do %.0f%%.\n" " Inténteo outra vez ou, se se está poñendo nervioso, cambie de exercicio.\n" -#: ../src/adaptability.c:232 +#: ../src/adaptability.c:226 #, c-format msgid "" " Very good!\n" @@ -1060,11 +1060,11 @@ " É hora de mellorar a súa velocidade.\n" " Escolla o terceiro curso no menú principal.\n" -#: ../src/velocity.c:313 ../src/fluidness.c:435 +#: ../src/velocity.c:312 ../src/fluidness.c:435 msgid "Pasted_or_dropped" msgstr "Pegado_ou_arrastrado" -#: ../src/velocity.c:432 +#: ../src/velocity.c:423 msgid "" " You are just beginning.\n" " Be patient, try it again every day, rest and don't worry so much:\n" @@ -1074,31 +1074,34 @@ " Sexa paciente, inténteo de novo todos os días, descanse e non se preocupe:\n" " a persistencia e a práctica mellorarán a súa velocidade.\n" -#: ../src/velocity.c:436 +#: ../src/velocity.c:427 +#, fuzzy, c-format msgid "" " Still away from the highway. You can make better...\n" -" Try at least 20 WPM.\n" +" Try to reach at least %.0f WPM.\n" msgstr "" " Aínda lle queda moito camiño por diante. Pode facelo mellor...\n" " Intente chegar polo menos ás 20 PPM.\n" -#: ../src/velocity.c:439 +#: ../src/velocity.c:430 +#, fuzzy, c-format msgid "" " You are doing well, but need to go faster.\n" -" And don't forget the accuracy. Try to get 30 WPM.\n" +" And don't forget the accuracy. Try to get %.0f WPM.\n" msgstr "" " Esta facéndoo ben, pero ten que ir máis rápido.\n" " E non esqueza a precisión. Intente chegar ás 30 PPM.\n" -#: ../src/velocity.c:443 +#: ../src/velocity.c:433 +#, fuzzy, c-format msgid "" " Fine. Now you need to start running.\n" -" Can you reach 40 WPM?\n" +" Can you reach %.0f WPM?\n" msgstr "" " Estupendo. Agora ten que comezar a correr.\n" " Pode chegar ás 40 PPM?\n" -#: ../src/velocity.c:446 +#: ../src/velocity.c:436 #, c-format msgid "" " Very good. You are almost there.\n" @@ -1107,7 +1110,7 @@ " Moi ben. Case o conseguiu.\n" " Pode chegar por fin ás %.0f PPM?\n" -#: ../src/velocity.c:451 +#: ../src/velocity.c:439 msgid "" " Excellent. For this course, that is enough.\n" " Try now the fluidness exercises, OK?\n" @@ -1115,31 +1118,34 @@ " Excelente. Pode dicir que completou este curso.\n" " Agora intente os exercicios de fluidez, de acordo?\n" -#: ../src/velocity.c:455 +#: ../src/velocity.c:442 +#, fuzzy, c-format msgid "" -" Fast! Are you training for a competition?\n" -" So, try to get 70 WPM!\n" +" Fast! Are you a professional?\n" +" So, try to get %.0f WPM!\n" msgstr "" " Qué velocidade! Está adestrando para unha competición?\n" " Intente chegar ás 70 PPM!\n" -#: ../src/velocity.c:458 -msgid "" -" Top of \"qwerty\". Now it's time to change to the Dvorak mode.\n" -" Are you afraid of reaching 80 WPM?\n" +#. Translators: Speed Racer is a reference to a Japanese anime franchise +#. about automobile racing, also known as Mach GoGoGo. +#: ../src/velocity.c:447 +#, c-format +msgid " Ranking good, Speed Racer! Are you afraid of reaching %.0f WPM?\n" msgstr "" -" Superou o modo QUERTY. É hora de intentalo co modo Dvorak.\n" -" Atrévese a chegar ás 80 PPM?\n" -#: ../src/velocity.c:462 +#. Translators: feel free to change the reference to that martial art, if you find another good analogy. +#: ../src/velocity.c:451 +#, fuzzy, c-format msgid "" -" Dvorak mode dominated!\n" -" Can you fly at 90 WPM?\n" +" Kunf-fu mastering!\n" +" Can you fly at %.0f WPM?\n" msgstr "" " Superou o modo Dvorak!\n" " Pode voar a 90 PPM?\n" -#: ../src/velocity.c:466 +#. Translators: Dvorak here means that infamous ergonomic keyboard layout. +#: ../src/velocity.c:454 msgid "" " Dvorak master!\n" " I have no words to express my admiration!\n" @@ -1147,7 +1153,7 @@ " É un mestre do Dvorak!\n" " Fáltanme palabras para expresar a miña admiración!\n" -#: ../src/fluidness.c:545 +#: ../src/fluidness.c:538 #, c-format msgid "" " You type accurately but not so fast.\n" @@ -1156,7 +1162,7 @@ " Escribe vostede con precisión, pero sen velocidade.\n" " Pode acadar as %.0f PPM?\n" -#: ../src/fluidness.c:548 +#: ../src/fluidness.c:541 #, c-format msgid "" " Your rhythm is not so constant. Calm down.\n" @@ -1165,7 +1171,7 @@ " Non leva un ritmo constante. Reláxese.\n" " Polo de agora, intente conseguir unha fluidez por enriba do %i%%.\n" -#: ../src/fluidness.c:551 +#: ../src/fluidness.c:544 #, c-format msgid "" " You are almost getting there. Type more fluently.\n" @@ -1174,7 +1180,7 @@ " Case o conseguiu. Escriba con máis fluidez.\n" " Quero unha fluidez por enriba do %.0f%%.\n" -#: ../src/fluidness.c:554 +#: ../src/fluidness.c:547 msgid "" " Congratulations!\n" " It seems to me that you are a professional.\n" @@ -1186,7 +1192,7 @@ " Xa non necesita máis este programa (ou sexa, a min).\n" " Agardo que o gozara. Grazas e sexa feliz!\n" -#: ../src/fluidness.c:559 +#: ../src/fluidness.c:552 msgid "" " How can you type so fast?\n" " You have exceeded all my expectations.\n" @@ -1246,6 +1252,22 @@ msgid "Could not upload/download scores." msgstr "Non foi posíbel enviar/descargar as puntuacións." +#~ msgid "" +#~ " Top of \"qwerty\". Now it's time to change to the Dvorak mode.\n" +#~ " Are you afraid of reaching 80 WPM?\n" +#~ msgstr "" +#~ " Superou o modo QUERTY. É hora de intentalo co modo Dvorak.\n" +#~ " Atrévese a chegar ás 80 PPM?\n" + +#~ msgid "Press here to restart the exercise. Hotkey: [Ctrl R]" +#~ msgstr "Prema para volver comezar o exercicio. Atallo: [Ctrl+R]" + +#~ msgid "_Font" +#~ msgstr "_Tipo de letra" + +#~ msgid "Klavaro" +#~ msgstr "Klavaro" + #~ msgid "Default" #~ msgstr "Predeterminado" diff -Nru klavaro-1.9.9/po/hu.po klavaro-3.00/po/hu.po --- klavaro-1.9.9/po/hu.po 2013-08-15 13:38:50.000000000 +0000 +++ klavaro-3.00/po/hu.po 2014-01-13 23:25:51.000000000 +0000 @@ -1,15 +1,15 @@ # Hungarian translation of klavaro -# Copyright (C) 2006, 2009, 2011, 2012 Free Software Foundation, Inc. +# Copyright (C) 2006, 2009, 2011, 2012, 2014 Free Software Foundation, Inc. # This file is distributed under the same license as the klavaro package. # # Gergely Máté <_gerymate_@gmail.com>, 2006, 2008. -# Gabor Kelemen , 2009, 2011, 2012. +# Gabor Kelemen , 2009, 2011, 2012, 2014. msgid "" msgstr "" -"Project-Id-Version: klavaro 1.9.4-pre2\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2013-08-15 10:38-0300\n" -"PO-Revision-Date: 2012-01-18 16:30+0100\n" +"Project-Id-Version: klavaro 3.00-pre2\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2014-01-13 21:25-0200\n" +"PO-Revision-Date: 2014-01-12 05:59+0100\n" "Last-Translator: Gabor Kelemen \n" "Language-Team: Hungarian \n" "Language: hu\n" @@ -17,552 +17,551 @@ "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -"X-Generator: KBabel 1.11.4\n" - -#: ../data/klavaro.desktop.in.h:1 ../data/klavaro.glade.h:59 -msgid "Yet another touch typing tutor" -msgstr "Ingyenes és szabad gépírásoktató program" +"X-Generator: Lokalize 1.4\n" #: ../data/klavaro.glade.h:1 -msgid "Klavaro - Main menu" -msgstr "Klavaro – Főmenü" +msgid "About 'Klavaro'" +msgstr "A Klavaro névjegye" #: ../data/klavaro.glade.h:2 -msgid "Don't be shy about learning the basics!" -msgstr "Ne szégyelld megtanulni az alapokat!" +msgid "Yet another touch typing tutor" +msgstr "Ingyenes és szabad gépírásoktató program" #: ../data/klavaro.glade.h:3 -msgid "Learn how to type correctly" -msgstr "Tanulj meg helyesen gépelni" +msgid "Remember always: someone loves you!" +msgstr "Mindig jusson eszedbe: valaki szeret téged!" #: ../data/klavaro.glade.h:4 -msgid "Initial training for your fingers." -msgstr "Alapozó ujjgyakorlatok." +msgid "Change language" +msgstr "Nyelv megváltoztatása" #: ../data/klavaro.glade.h:5 -msgid "First steps with initial training" -msgstr "Első, alapozó lépések" +msgid "Attention!" +msgstr "Figyelem!" #: ../data/klavaro.glade.h:6 -msgid "Memorizing the keyboard practicing random keys exercises." -msgstr "" -"A billentyűk helyének memorizálása véletlenszerű karakterek leütésével." +msgid "Do you confirm?" +msgstr "Folytatod?" #: ../data/klavaro.glade.h:7 -msgid "Practice with random keys" -msgstr "Gyakorlás véletlen billentyűkkel" +msgid "_No" +msgstr "_Nem" + +#: ../data/klavaro.glade.h:8 +msgid "_Yes" +msgstr "_Igen" -#. English typo: touchs -> touches #: ../data/klavaro.glade.h:9 -msgid "Accelerating the touches practicing random words exercises." -msgstr "Az írási sebesség növelése véletlenszerű szavak gépelésével." +msgid "Help?" +msgstr "Súgó" #: ../data/klavaro.glade.h:10 -msgid "Practice with random words" -msgstr "Gyakorlás véletlen szavakkal" +msgid "This is a tip. Now you press this button to return to the main menu." +msgstr "" +"Ez egy buboréksúgó. Nyomd meg ezt a gombot a visszatéréshez a főmenübe." #: ../data/klavaro.glade.h:11 -msgid "Becoming proficient practicing complete paragraphs exercises." -msgstr "Haladó gyakorlatok teljes bekezdések gépelésével." +msgid "B_ack to menu" +msgstr "_Vissza a menübe" #: ../data/klavaro.glade.h:12 -msgid "Practice with complete texts" -msgstr "Gyakorlás teljes szövegekkel" +msgid "" +"The main menu of the application is very straightforward. Just select the " +"type of exercise you wish to take. Do not worry about clicking any button on " +"the screen. The buttons will never hurt you!" +msgstr "" +"Az alkalmazás főmenüje nagyon egyszerű. Csak válaszd ki, milyen fajta " +"gyakorlatot csinálnál szívesen. Kattints bátran bármely gombra: nem fognak " +"bántani." #: ../data/klavaro.glade.h:13 msgid "" -"Keyboard layout for modules 1 and 2. Also used informatively in the " -"fluidness contest." +"Also the controls have tips which will appear if you hover over them with " +"your mouse. These tips can come in very handy. To see how these tips work, " +"position your mouse over the button below, and without clicking, wait for " +"the tip to appear..." msgstr "" -"Billentyűzetkiosztás az 1. és 2. modulhoz. A folyamatossági versenyben a " -"használata informatív." +"Ne feledd a vezérlőelemek fölött megjelenő buboréksúgókat. Néha hasznosak " +"tudnak lenni. Ennek bemutatásához vidd az egérmutatót a lenti gomb fölé, és " +"a gomb megnyomása nélkül várj egy kicsit a súgó felbukkanására..." #: ../data/klavaro.glade.h:14 -msgid "_Keyboard:" -msgstr "Bille_ntyűzet:" +msgid "Klavaro - Select file" +msgstr "Klavaro - válassz fájlt" #: ../data/klavaro.glade.h:15 -msgid "Language for modules 3 and 4." -msgstr "Nyelv a 3. és 4. modulhoz." +msgid "_Cancel" +msgstr "Mé_gse" #: ../data/klavaro.glade.h:16 -msgid "_Language:" -msgstr "Nye_lv:" +msgid "_Open" +msgstr "_Megnyitás" #: ../data/klavaro.glade.h:17 -msgid "Variant" -msgstr "Változat" +msgid "Re_name:" +msgstr "Át_nevezés:" #: ../data/klavaro.glade.h:18 -msgid "Klavaro" -msgstr "Klavaro" +msgid "Rename the selected item." +msgstr "A kiválasztott elem átnevezése." #: ../data/klavaro.glade.h:19 -msgid "Country / Custom" -msgstr "Ország/egyéni" +msgid "" +"Read a text file and add a copy of it here. The file must be encoded in " +"UTF-8." +msgstr "" +"Szöveges fájl beolvasása és másolat készítése. A fájlnak UTF-8 kódolásúnak " +"kell lennie." #: ../data/klavaro.glade.h:20 -msgid "Your language here." -msgstr "A nyelved." +msgid "_Open text file" +msgstr "Szö_vegfájl megnyitása" #: ../data/klavaro.glade.h:21 -msgid "Speech" -msgstr "Beszéd" +msgid "Paste text that was copied to the clipboard." +msgstr "A vágólapra másolt szöveg beillesztése." #: ../data/klavaro.glade.h:22 -msgid "Little tip about this program." -msgstr "Rövid információk a programról." +msgid "_Paste from clipboard" +msgstr "Beillesztés _vágólapról" #: ../data/klavaro.glade.h:23 -msgid "_Help" -msgstr "_Súgó" +msgid "Remove the selected item." +msgstr "A kiválasztott elem eltávolítása." #: ../data/klavaro.glade.h:24 -msgid "General information about the program." -msgstr "Általános információk a programról." +msgid "_Remove copied file" +msgstr "A _másolt fájl eltávolítása" #: ../data/klavaro.glade.h:25 -msgid "_About..." -msgstr "_Névjegy…" +msgid "Apply the selected item to create an exercise." +msgstr "A kiválasztott elemből gyakorlat készítése." #: ../data/klavaro.glade.h:26 -msgid "Exit the application immediately." -msgstr "Azonnali kilépés" +msgid "_Apply" +msgstr "_Alkalmaz" #: ../data/klavaro.glade.h:27 -msgid "_Close" -msgstr "_Bezárás" +msgid "Close this window." +msgstr "Ablak bezárása." #: ../data/klavaro.glade.h:28 -msgid "Load other exercises/lessons" -msgstr "Más gyakorlatok/leckék betöltése" +msgid "_Close" +msgstr "_Bezárás" #: ../data/klavaro.glade.h:29 -msgid "_Other texts" -msgstr "Más s_zövegek" +msgid "Country / Custom" +msgstr "Ország/egyéni" #: ../data/klavaro.glade.h:30 -msgid "_Lesson:" -msgstr "_Lecke:" +msgid "Variant" +msgstr "Változat" #: ../data/klavaro.glade.h:31 -msgid "Edit the character set to be used in this lesson." -msgstr "A leckében használandó karakterkészlet szerkesztése." +msgid "Remove the selected custom layout." +msgstr "A kiválasztott egyedi elrendezés eltávolítása." #: ../data/klavaro.glade.h:32 -msgid "Edit the character set to be used in lessons 44 through 50." -msgstr "A 44-50 leckékben használandó karakterkészlet szerkesztése." +msgid "_Remove" +msgstr "_Eltávolítás" #: ../data/klavaro.glade.h:33 -msgid "This is a specific exercise, adjusted to your error profile." -msgstr "Ez egy egyedi gyakorlat, a hibaprofilodhoz igazítva." +msgid "" +"Toggles the shift effect on the keys. Alternates between the upper and lower " +"characters of the keys." +msgstr "" +"A Shift mód átváltása. A billentyűzet alsó és felső karakterei között vált." -#: ../data/klavaro.glade.h:34 ../src/tutor.c:252 -msgid "Drag and drop text here to practice with it." -msgstr "Húzza ide a szöveget a gyakorlás megkezdéséhez vele." +#: ../data/klavaro.glade.h:34 +msgid "SPACE BAR" +msgstr "SZÓKÖZ" -#: ../data/klavaro.glade.h:35 -msgid "Press here to restart the exercise. Hotkey: [Ctrl R]" -msgstr "Kattints ide a gyakorlat újrakezdéséhez. Gyorsbillentyű: [Ctrl-R]" +#: ../data/klavaro.glade.h:35 ../src/keyboard.c:1630 +msgid "thumbs" +msgstr "hüvelykujjak" #: ../data/klavaro.glade.h:36 -msgid "Show the virtual keyboard and the relation between fingers and keys." -msgstr "A virtuális billentyűzet és a helyes ujjrend megjelenítése." +msgid "Ctrl" +msgstr "Ctrl" #: ../data/klavaro.glade.h:37 -msgid "_Keyboard" -msgstr "Bill_entyűzet" +msgid "Caps" +msgstr "Caps" #: ../data/klavaro.glade.h:38 -msgid "Select the font to be used in the exercise window." -msgstr "Válaszd ki a gyakorlatok során használt betűkészletet." +msgid "S_ave as:" +msgstr "Mentés _másként:" #: ../data/klavaro.glade.h:39 -msgid "_Font" -msgstr "_Betűkészlet" +msgid "Show previous screen." +msgstr "Előző képernyő megjelenítése" #: ../data/klavaro.glade.h:40 -msgid "Keep this checked if you want to get those nice beeps." -msgstr "Ezt bejelölve a program hangjelzéseket ad." +msgid "_Previous step" +msgstr "_Előző lépés" #: ../data/klavaro.glade.h:41 -msgid "_Beep" -msgstr "_Hangjelzés" +msgid "Show next screen." +msgstr "Következő képernyő megjelenítése" #: ../data/klavaro.glade.h:42 -msgid "Co_urse information" -msgstr "_Tanfolyam-információk" +msgid "_Next step" +msgstr "_Következő lépés" #: ../data/klavaro.glade.h:43 -msgid "Charts showing the learning progress along the exercises." -msgstr "A fejlődést mutató diagramok." +msgid "Return without any modification." +msgstr "Visszalépés a változtatások elvetésével." #: ../data/klavaro.glade.h:44 -msgid "_Progress" -msgstr "_Fejlődés" +msgid "Save the current keyboard layout with the name specified above." +msgstr "A jelenlegi billentyűzetkiosztás elmentése a fent megadott néven." #: ../data/klavaro.glade.h:45 -msgid "Show local and external scores from other users." -msgstr "Helyi és távoli felhasználók pontszámainak megjelenítése." +msgid "_Save and use" +msgstr "Mentés és _használat" #: ../data/klavaro.glade.h:46 -msgid "_Top 10" -msgstr "_Top 10" +msgid "" +"If you like those beautiful hands, click here to close this window keeping " +"them." +msgstr "" +"Ha szereted ezeket a gyönyörű kezeket, kattints ide az ablak bezárásához a " +"kezek megtartásával." #: ../data/klavaro.glade.h:47 -msgid "Return to the main menu." -msgstr "Visszatérés a főmenübe." +msgid "_Keep hands" +msgstr "Ke_zek megtartása" #: ../data/klavaro.glade.h:48 -msgid "B_ack to menu" -msgstr "_Vissza a menübe" +msgid "Klavaro - Main menu" +msgstr "Klavaro – Főmenü" #: ../data/klavaro.glade.h:49 -msgid "Close this window." -msgstr "Ablak bezárása." +msgid "Don't be shy about learning the basics!" +msgstr "Ne szégyelld megtanulni az alapokat!" #: ../data/klavaro.glade.h:50 -msgid "Font definition" -msgstr "Betűkészlet" +msgid "Learn how to type correctly" +msgstr "Tanulj meg helyesen gépelni" #: ../data/klavaro.glade.h:51 -msgid "Top 10" -msgstr "Top 10" +msgid "Initial training for your fingers." +msgstr "Alapozó ujjgyakorlatok." #: ../data/klavaro.glade.h:52 -msgid "Show extra information" -msgstr "További információk megjelenítése" +msgid "First steps with initial training" +msgstr "Első, alapozó lépések" #: ../data/klavaro.glade.h:53 -msgid "Hide extra information" -msgstr "További információk elrejtése" +msgid "Memorizing the keyboard practicing random keys exercises." +msgstr "" +"A billentyűk helyének memorizálása véletlenszerű karakterek leütésével." #: ../data/klavaro.glade.h:54 -msgid "Publish to the web your local scores." -msgstr "A helyi eredmények közzététele a weben." +msgid "Practice with random keys" +msgstr "Gyakorlás véletlen billentyűkkel" #: ../data/klavaro.glade.h:55 -msgid "_Participate" -msgstr "_Részvétel" +msgid "Accelerating the touches practicing random words exercises." +msgstr "Az írási sebesség növelése véletlenszerű szavak gépelésével." #: ../data/klavaro.glade.h:56 -msgid "Download from the web the most up to date ranking." -msgstr "A legfrissebb rangsorok letöltése a webről." +msgid "Practice with random words" +msgstr "Gyakorlás véletlen szavakkal" #: ../data/klavaro.glade.h:57 -msgid "_Update" -msgstr "_Frissítés" +msgid "Becoming proficient practicing complete paragraphs exercises." +msgstr "Haladó gyakorlatok teljes bekezdések gépelésével." #: ../data/klavaro.glade.h:58 -msgid "About 'Klavaro'" -msgstr "A Klavaro névjegye" +msgid "Practice with complete texts" +msgstr "Gyakorlás teljes szövegekkel" + +#: ../data/klavaro.glade.h:59 +msgid "" +"Keyboard layout for modules 1 and 2. Also used informatively in the " +"fluidness contest." +msgstr "" +"Billentyűzetkiosztás az 1. és 2. modulhoz. A folyamatossági versenyben a " +"használata informatív." #: ../data/klavaro.glade.h:60 -msgid "Remember always: someone loves you!" -msgstr "Mindig jusson eszedbe: valaki szeret téged!" +msgid "_Keyboard:" +msgstr "Bille_ntyűzet:" #: ../data/klavaro.glade.h:61 -msgid "Remove the selected custom layout." -msgstr "A kiválasztott egyedi elrendezés eltávolítása." +msgid "Language for modules 3 and 4." +msgstr "Nyelv a 3. és 4. modulhoz." #: ../data/klavaro.glade.h:62 -msgid "_Remove" -msgstr "_Eltávolítás" +msgid "_Language:" +msgstr "Nye_lv:" #: ../data/klavaro.glade.h:63 -msgid "" -"Toggles the shift effect on the keys. Alternates between the upper and lower " -"characters of the keys." -msgstr "" -"A Shift mód átváltása. A billentyűzet alsó és felső karakterei között vált." +msgid "Speech" +msgstr "Beszéd" #: ../data/klavaro.glade.h:64 -msgid "SPACE BAR" -msgstr "SZÓKÖZ" +msgid "Your language here." +msgstr "A nyelved." -#: ../data/klavaro.glade.h:65 ../src/keyboard.c:1630 -msgid "thumbs" -msgstr "hüvelykujjak" +#: ../data/klavaro.glade.h:65 +msgid "Little tip about this program." +msgstr "Rövid információk a programról." #: ../data/klavaro.glade.h:66 -msgid "Ctrl" -msgstr "Ctrl" +msgid "_Help" +msgstr "_Súgó" #: ../data/klavaro.glade.h:67 -msgid "Caps" -msgstr "Caps" +msgid "General information about the program." +msgstr "Általános információk a programról." #: ../data/klavaro.glade.h:68 -msgid "S_ave as:" -msgstr "Mentés _másként:" +msgid "_About..." +msgstr "_Névjegy…" #: ../data/klavaro.glade.h:69 -msgid "Show previous screen." -msgstr "Előző képernyő megjelenítése" +msgid "Exit the application immediately." +msgstr "Azonnali kilépés" #: ../data/klavaro.glade.h:70 -msgid "_Previous step" -msgstr "_Előző lépés" +msgid "Klavaro - Progress" +msgstr "Klavaro - Fejlődés" #: ../data/klavaro.glade.h:71 -msgid "Show next screen." -msgstr "Következő képernyő megjelenítése" +msgid "_Lesson:" +msgstr "_Lecke:" #: ../data/klavaro.glade.h:72 -msgid "_Next step" -msgstr "_Következő lépés" +msgid "Value" +msgstr "Érték" #: ../data/klavaro.glade.h:73 -msgid "Return without any modification." -msgstr "Visszalépés a változtatások elvetésével." +msgid "Close this window, returning to the exercise." +msgstr "Ablak bezárása, visszatérés a gyakorlathoz." #: ../data/klavaro.glade.h:74 -msgid "_Cancel" -msgstr "Mé_gse" +msgid "Clear all the progress data, for every module." +msgstr "Minden előrehaladási adat törlése az összes modulból." #: ../data/klavaro.glade.h:75 -msgid "Save the current keyboard layout with the name specified above." -msgstr "A jelenlegi billentyűzetkiosztás elmentése a fent megadott néven." +msgid "_Reset" +msgstr "_Visszaállítás" #: ../data/klavaro.glade.h:76 -msgid "_Save and use" -msgstr "Mentés és _használat" +msgid "Top 10" +msgstr "Top 10" #: ../data/klavaro.glade.h:77 -msgid "" -"If you like those beautiful hands, click here to close this window keeping " -"them." -msgstr "" -"Ha szereted ezeket a gyönyörű kezeket, kattints ide az ablak bezárásához a " -"kezek megtartásával." +msgid "Show extra information." +msgstr "További információk megjelenítése." #: ../data/klavaro.glade.h:78 -msgid "_Keep hands" -msgstr "Ke_zek megtartása" +msgid "Hide extra information." +msgstr "További információk elrejtése." #: ../data/klavaro.glade.h:79 -msgid "Change language" -msgstr "Nyelv megváltoztatása" +msgid "Publish to the web your local scores." +msgstr "A helyi eredmények közzététele a weben." #: ../data/klavaro.glade.h:80 -msgid "Attention!" -msgstr "Figyelem!" +msgid "_Participate" +msgstr "_Részvétel" #: ../data/klavaro.glade.h:81 -msgid "Do you confirm?" -msgstr "Folytatod?" +msgid "Download from the web the most up to date ranking." +msgstr "A legfrissebb rangsorok letöltése a webről." #: ../data/klavaro.glade.h:82 -msgid "_No" -msgstr "_Nem" +msgid "_Update" +msgstr "_Frissítés" #: ../data/klavaro.glade.h:83 -msgid "_Yes" -msgstr "_Igen" +msgid "Load other exercises/lessons" +msgstr "Más gyakorlatok/leckék betöltése" #: ../data/klavaro.glade.h:84 -msgid "Re_name:" -msgstr "Át_nevezés:" +msgid "_Other texts" +msgstr "Más s_zövegek" #: ../data/klavaro.glade.h:85 -msgid "Rename the selected item." -msgstr "A kiválasztott elem átnevezése." +msgid "Edit the character set to be used in this lesson." +msgstr "A leckében használandó karakterkészlet szerkesztése." #: ../data/klavaro.glade.h:86 -msgid "" -"Read a text file and add a copy of it here. The file must be encoded in " -"UTF-8." -msgstr "" -"Szöveges fájl beolvasása és másolat készítése. A fájlnak UTF-8 kódolásúnak " -"kell lennie." +msgid "This is a specific exercise, adjusted to your error profile." +msgstr "Ez egy egyedi gyakorlat, a hibaprofilodhoz igazítva." #: ../data/klavaro.glade.h:87 -msgid "_Open text file" -msgstr "Szö_vegfájl megnyitása" +msgid "" +"Edit the character set to be used in lessons after 43: they are customizable!" +msgstr "A 43. utáni leckékben használandó karakterkészlet szerkesztése." -#: ../data/klavaro.glade.h:88 -msgid "Paste text that was copied to the clipboard." -msgstr "A vágólapra másolt szöveg beillesztése." +#: ../data/klavaro.glade.h:88 ../src/tutor.c:376 +msgid "Drag and drop text here to practice with it." +msgstr "Húzza ide a szöveget a gyakorlás megkezdéséhez vele." #: ../data/klavaro.glade.h:89 -msgid "_Paste from clipboard" -msgstr "Beillesztés _vágólapról" +msgid "Press here to restart the exercise. Hotkey: [Ctrl-R]" +msgstr "Kattints ide a gyakorlat újrakezdéséhez. Gyorsbillentyű: [Ctrl-R]" #: ../data/klavaro.glade.h:90 -msgid "Remove the selected item." -msgstr "A kiválasztott elem eltávolítása." +msgid "Show the virtual keyboard and the relation between fingers and keys." +msgstr "A virtuális billentyűzet és a helyes ujjrend megjelenítése." #: ../data/klavaro.glade.h:91 -msgid "_Remove copied file" -msgstr "A _másolt fájl eltávolítása" +msgid "_Keyboard" +msgstr "Bill_entyűzet" #: ../data/klavaro.glade.h:92 -msgid "Apply the selected item to create an exercise." -msgstr "A kiválasztott elemből gyakorlat készítése." +msgid "Select the font to be used in the exercise window." +msgstr "Válaszd ki a gyakorlatok során használt betűkészletet." #: ../data/klavaro.glade.h:93 -msgid "_Apply" -msgstr "_Alkalmaz" +msgid "Font definition" +msgstr "Betűkészlet" #: ../data/klavaro.glade.h:94 -msgid "Klavaro - Progress" -msgstr "Klavaro - Fejlődés" +msgid "Keep this checked if you want to get those nice beeps." +msgstr "Ezt bejelölve a program hangjelzéseket ad." #: ../data/klavaro.glade.h:95 -msgid "Value" -msgstr "Érték" +msgid "_Beep" +msgstr "_Hangjelzés" #: ../data/klavaro.glade.h:96 -msgid "Clear all the progress data, for every module." -msgstr "Minden előrehaladási adat törlése az összes modulból." +msgid "Co_urse information" +msgstr "_Tanfolyam-információk" #: ../data/klavaro.glade.h:97 -msgid "_Reset" -msgstr "_Visszaállítás" +msgid "Charts showing the learning progress along the exercises." +msgstr "A fejlődést mutató diagramok." #: ../data/klavaro.glade.h:98 -msgid "Close this window, returning to the exercise." -msgstr "Ablak bezárása, visszatérés a gyakorlathoz." +msgid "_Progress" +msgstr "_Fejlődés" #: ../data/klavaro.glade.h:99 -msgid "Klavaro - Select file" -msgstr "Klavaro - válassz fájlt" +msgid "Return to the main menu." +msgstr "Visszatérés a főmenübe." #: ../data/klavaro.glade.h:100 -msgid "_Open" -msgstr "_Megnyitás" +msgid "Show local and external scores from other users." +msgstr "Helyi és távoli felhasználók pontszámainak megjelenítése." #: ../data/klavaro.glade.h:101 -msgid "Help?" -msgstr "Súgó" - -#: ../data/klavaro.glade.h:102 -msgid "" -"The main menu of the application is very straightforward. Just select the " -"type of exercise you wish to take. Do not worry about clicking any button on " -"the screen. The buttons will never hurt you!" -msgstr "" -"Az alkalmazás főmenüje nagyon egyszerű. Csak válaszd ki, milyen fajta " -"gyakorlatot csinálnál szívesen. Kattints bátran bármely gombra: nem fognak " -"bántani." - -#: ../data/klavaro.glade.h:103 -msgid "" -"Also the controls have tips which will appear if you hover over them with " -"your mouse. These tips can come in very handy. To see how these tips work, " -"position your mouse over the button below, and without clicking, wait for " -"the tip to appear..." -msgstr "" -"Ne feledd a vezérlőelemek fölött megjelenő buboréksúgókat. Néha hasznosak " -"tudnak lenni. Ennek bemutatásához vidd az egérmutatót a lenti gomb fölé, és " -"a gomb megnyomása nélkül várj egy kicsit a súgó felbukkanására..." +msgid "_Top 10" +msgstr "_Top 10" -#: ../data/klavaro.glade.h:104 -msgid "This is a tip. Now you press this button to return to the main menu." -msgstr "" -"Ez egy buboréksúgó. Nyomd meg ezt a gombot a visszatéréshez a főmenübe." +#: ../data/klavaro.desktop.in.h:1 +msgid "A very flexible and efficient touch typing tutor." +msgstr "Nagyon rugalmas és hatékony gépírásoktató program" + +#. Translators: these are keywords related to the program. CAI above means Computer Aided Instruction. Feel free to add and/or change the keywords in your language. +#: ../data/klavaro.desktop.in.h:3 +msgid "keyboard;typing;tutor;CAI" +msgstr "billentyűzet;gépelés;oktató;gépírás;CAI" -#: ../src/main.c:314 +#: ../src/main.c:242 msgid "(Custom)" msgstr "(Egyéni)" -#: ../src/main.c:315 +#: ../src/main.c:243 msgid "(Edit custom)" msgstr "(Egyéni szerkesztése)" -#: ../src/main.c:316 +#: ../src/main.c:244 msgid "(Default)" msgstr "(Alapértelmezett)" -#: ../src/main.c:393 +#: ../src/main.c:321 #, c-format msgid "Dictation mode (depends on this speech synthesizer: %s)" msgid_plural "Dictation mode (depends on one of these speech synthesizers: %s)" msgstr[0] "Diktálás mód (ettől a beszédszintetizátortól függ: %s)" msgstr[1] "Diktálás mód (ezektől a beszédszintetizátoroktól függ: %s)" -#. Set main labels (for translation) -#. -#: ../src/main.c:435 ../src/keyboard.c:1291 +#: ../src/main.c:364 ../src/keyboard.c:1291 msgid "Introduction" msgstr "Bevezetés" -#: ../src/main.c:438 ../src/top10.c:109 +#: ../src/main.c:367 ../src/top10.c:109 msgid "Basic course" msgstr "Kezdő tanfolyam" -#: ../src/main.c:441 ../src/top10.c:112 +#: ../src/main.c:370 ../src/top10.c:112 msgid "Adaptability" msgstr "Készségfejlesztés" -#: ../src/main.c:444 ../src/callbacks.c:1310 ../src/top10.c:89 +#: ../src/main.c:373 ../src/callbacks.c:1226 ../src/top10.c:89 #: ../src/top10.c:115 msgid "Speed" msgstr "Sebesség" -#: ../src/main.c:447 ../src/callbacks.c:1333 ../src/top10.c:91 +#: ../src/main.c:376 ../src/callbacks.c:1249 ../src/top10.c:91 #: ../src/top10.c:118 msgid "Fluidity" msgstr "Folytonosság" -#: ../src/callbacks.c:468 ../src/tutor.c:391 +#: ../src/callbacks.c:407 ../src/tutor.c:515 msgid "Keys:" msgstr "Billentyűk:" -#: ../src/callbacks.c:858 ../src/callbacks.c:874 +#: ../src/callbacks.c:774 ../src/callbacks.c:790 msgid "Connecting..." msgstr "Kapcsolódás…" -#: ../src/callbacks.c:1145 +#: ../src/callbacks.c:1061 msgid "Overwrite user layout" msgstr "Egyéni billentyűzetkiosztás felülírása" -#: ../src/callbacks.c:1147 +#: ../src/callbacks.c:1063 msgid "This will OVERWRITE an existent keyboard layout." msgstr "Ez FELÜLÍR egy meglévő billentyűzetkiosztást." -#: ../src/callbacks.c:1154 +#: ../src/callbacks.c:1070 msgid "Remove user layout" msgstr "Egyéni billentyűzetkiosztás eltávolítása" -#: ../src/callbacks.c:1156 +#: ../src/callbacks.c:1072 msgid "This will REMOVE an existent keyboard layout." msgstr "Ez ELTÁVOLÍT egy meglévő billentyűzetkiosztást." -#: ../src/callbacks.c:1163 +#: ../src/callbacks.c:1079 msgid "Reset progress data" msgstr "Előrehaladási adatok törlése" -#: ../src/callbacks.c:1164 +#: ../src/callbacks.c:1080 msgid "This will DELETE all the progress data shown in the charts." msgstr "Ez a grafikonokon megjelenő összes előrehaladási adatot TÖRLI." -#: ../src/callbacks.c:1307 ../src/top10.c:87 +#: ../src/callbacks.c:1223 ../src/top10.c:87 msgid "Accuracy" msgstr "Pontosság" -#: ../src/callbacks.c:1310 ../src/tutor.c:1160 +#: ../src/callbacks.c:1226 ../src/tutor.c:1288 msgid "(WPM)" msgstr "(SZPP)" -#: ../src/callbacks.c:1321 +#: ../src/callbacks.c:1237 msgid "Errors" msgstr "Hibák" -#: ../src/callbacks.c:1324 +#: ../src/callbacks.c:1240 msgid "Touch times (s)" msgstr "Leütések ideje (s)" -#: ../src/callbacks.c:1336 ../src/tutor.c:1187 ../src/top10.c:69 +#: ../src/callbacks.c:1252 ../src/tutor.c:1315 ../src/top10.c:69 msgid "Score" msgstr "Eredmény" #. Translators: your language code (first 2 letters of your po-file) -#: ../src/translation.c:423 ../src/translation.c:489 ../src/tutor.c:1597 +#: ../src/translation.c:485 ../src/tutor.c:1725 msgid "en" msgstr "hu" -#: ../src/translation.c:576 +#: ../src/translation.c:572 msgid "" "The basic course focuses on having you read the characters presented to you " "on screen and typing the corresponding keys. Remember to keep your hands " @@ -573,7 +572,7 @@ "üsd le a megfelelő billentyűt. Tartsd az ujjaid mindig a billentyűzet " "alapsorán (lásd a bevezetőt a főmenüben)." -#: ../src/translation.c:580 +#: ../src/translation.c:576 msgid "" "The key set used in each series will be shown in the above message line. The " "[Space], [Shift] and [Enter] keys may not show up there but are used very " @@ -583,7 +582,7 @@ "felsorolva. A [Szóköz], a [Shift] és az [Enter] billentyűk nem jelennek meg, " "ám azokat is gyakran használjuk." -#: ../src/translation.c:583 +#: ../src/translation.c:579 msgid "" "The message line below follows and echoes your key presses. If required, it " "changes and displays instructions for actions required from you." @@ -591,7 +590,7 @@ "A lenti üzenetsor követi és kiírja, amit gépelsz. Szükség esetén " "megváltozik, és tájékoztat az aktuális tennivalókról." -#: ../src/translation.c:587 +#: ../src/translation.c:583 msgid "" "Here you may practice and improve your memorization of all keys. There will " "be sentences presented with nonsense words which mix some numbers and " @@ -601,7 +600,7 @@ "elhelyezkedését. Értelmetlen szavakból, számokból és jelekből álló " "sorozatokat kell majd gépelned." -#: ../src/translation.c:590 +#: ../src/translation.c:586 msgid "" "In order to keep the lesson contents language and keyboard independent, " "accented letter combinations will probably not appear. For real word " @@ -612,7 +611,7 @@ "gyakorlásához válaszd a negyedik lehetőséget a főmenüben (a " "folyamatosságról)." -#: ../src/translation.c:594 +#: ../src/translation.c:590 msgid "" "After each exercise there will be a brief statistics panel reviewing your " "performance along with some relevant comments." @@ -620,7 +619,7 @@ "Minden gyakorlat végén láthatsz egy rövid statisztikát a teljesítményedről, " "néhány vonatkozó megjegyzéssel kiegészítve." -#: ../src/translation.c:598 +#: ../src/translation.c:594 msgid "" "This exercise is very similar to the second one, for adaptability. The " "difference is that here you'll type real words." @@ -628,7 +627,7 @@ "Ez a gyakorlat nagyon hasonlít a második, készségfejlesztő gyakorlathoz. A " "különbség, hogy itt értelmes szavakat fogsz gépelni." -#: ../src/translation.c:601 +#: ../src/translation.c:597 msgid "" "The default language is the actual one of the interface. But you may select " "any other texts with words you would like to use. Press the 'Other' option " @@ -638,7 +637,7 @@ "választhatsz más, gépelendő szavakat tartalmazó szövegeket is. Nyomd meg az " "„Egyéb” gombot, és válaszd ki a szövegeket tartalmazó fájlokat." -#: ../src/translation.c:605 +#: ../src/translation.c:601 msgid "" "With this exercise the focus is on speed. So, you are supposed to type " "really fast and I will only flatter you when you deserve it!" @@ -646,7 +645,7 @@ "Ebben a leckében a gyorsaságra koncentrálunk. Tehát igazán gyorsan kell " "gépelned, ha ki akarod érdemelni a dicséretet." -#: ../src/translation.c:609 +#: ../src/translation.c:605 msgid "" "We will now use complete sentences and paragraphs which make logical sense. " "This may distract you while you type if you try to understand what you are " @@ -657,7 +656,7 @@ "Ez elvonhatja a figyelmed, ha megpróbálod megérteni, amit írsz. A korábbi " "gyakorlatok célja a tartalom értelmezése és elemzése nélküli gépelése volt." -#: ../src/translation.c:613 +#: ../src/translation.c:609 msgid "" "We do not mean to imply that the typists must behave like a robot, without " "understanding what they type. We do aim to develop the skill of typing, " @@ -672,8 +671,7 @@ "célt elértük, a gépelés nem kerül majd különösebb erőfeszítésbe: ezután már " "a szöveg értelmére is lehet koncentrálni." -#. English typo: minimun -> minimum -#: ../src/translation.c:618 +#: ../src/translation.c:613 msgid "" "These exercises are longer. Each exercise consists of three paragraphs and " "the emphasis is placed on correctness and rhythm, with a minimum speed " @@ -685,7 +683,6 @@ "Ha hibázol, azt ki kell javítanod a Backspace billentyűvel. Más szóval, csak " "a hibátlan szöveg lesz elfogadva." -#. English typo: recomendations -> recommendations #: ../src/keyboard.c:1094 msgid "" "Correct positioning of the hands and fingers is very important to efficient " @@ -780,13 +777,11 @@ msgid "Step %i" msgstr "%i. lépés" -#. Recommendations -#: ../src/keyboard.c:1140 +#: ../src/keyboard.c:1142 msgid "To position the hands" msgstr "A kezek tartása" -#. Final words -#: ../src/keyboard.c:1225 +#: ../src/keyboard.c:1227 msgid "Go ahead!" msgstr "Kezdjük!" @@ -826,23 +821,23 @@ msgid "Press and edit me" msgstr "Nyomd meg a szerkesztéshez" -#: ../src/tutor.c:176 +#: ../src/tutor.c:300 msgid "Lesson:" msgstr "Lecke:" -#: ../src/tutor.c:186 +#: ../src/tutor.c:310 msgid "Paragraphs:" msgstr "Bekezdések:" -#: ../src/tutor.c:219 +#: ../src/tutor.c:343 msgid "Klavaro - Basic Course" msgstr "Klavaro – Kezdő tanfolyam" -#: ../src/tutor.c:224 +#: ../src/tutor.c:348 msgid "Klavaro - Adaptability" msgstr "Klavaro – Készségfejlesztés" -#: ../src/tutor.c:227 +#: ../src/tutor.c:351 msgid "" "Adaptability exercises: automating the fingers responses, typing over all " "the keyboard." @@ -850,44 +845,44 @@ "Készségfejlesztő gyakorlatok: az ujjak mozgásának rutinná tétele az összes " "billentyű használatával." -#: ../src/tutor.c:232 +#: ../src/tutor.c:356 msgid "Klavaro - Velocity" msgstr "Klavaro – Sebesség" -#: ../src/tutor.c:233 +#: ../src/tutor.c:357 msgid "Velocity exercises: accelerate typing real words." msgstr "" "Sebességfejlesztő gyakorlatok: a sebesség növelése teljes szavak gépelésével." -#: ../src/tutor.c:237 +#: ../src/tutor.c:361 msgid "Klavaro - Fluidness" msgstr "Klavaro – Folytonosság" -#: ../src/tutor.c:239 +#: ../src/tutor.c:363 msgid "Fluidness exercises: accuracy typing good sense paragraphs." msgstr "Folytonossági gyakorlatok: értelmes bekezdések pontos gépelése." -#: ../src/tutor.c:301 +#: ../src/tutor.c:425 msgid "End of exercise. Press [Enter] to start another." msgstr "Vége a gyakorlatnak. Új kezdéséhez nyomd meg az [Enter] billentyűt." -#: ../src/tutor.c:329 +#: ../src/tutor.c:453 msgid "Learning the key positions." msgstr "A billentyűk helyének megtanulása." -#: ../src/tutor.c:332 +#: ../src/tutor.c:456 msgid "Press any key to start the exercise. " msgstr "A gyakorlat elkezdéséhez nyomj meg egy billentyűt." -#: ../src/tutor.c:440 ../src/tutor.c:443 +#: ../src/tutor.c:567 ../src/tutor.c:570 msgid "Start typing when you are ready. " msgstr "Ha felkészültél, kezdj gépelni." -#: ../src/tutor.c:441 +#: ../src/tutor.c:568 msgid "Use backspace to correct errors." -msgstr "" +msgstr "A Backspace használatával javíthatók a hibák." -#: ../src/tutor.c:885 +#: ../src/tutor.c:1012 #, c-format msgid "" "ps.: logging not performed for this session: the number of typed characters " @@ -896,11 +891,11 @@ "U.i.: az eredmények nem lettek naplózva: a legépelt karakterek száma (%i) " "több kell legyen, mint %i." -#: ../src/tutor.c:1027 +#: ../src/tutor.c:1154 msgid "ps.: you have entered the Top 10 list, great!" msgstr "U.i.: felkerültél a Top 10 listára, remek!" -#: ../src/tutor.c:1039 +#: ../src/tutor.c:1166 msgid "" "ps.: the text you just typed doesn't seem to be similar to ordinary texts in " "the language currently selected: we can't account for it in the 'Top 10' " @@ -910,91 +905,88 @@ "nyelv szokványos szövegeihez: ezért nem lehet figyelembe venni a Top 10 " "versenyben." -#. Begin the accuracy -#: ../src/tutor.c:1087 +#: ../src/tutor.c:1215 msgid "STATISTICS" msgstr "STATISZTIKA" -#: ../src/tutor.c:1088 +#: ../src/tutor.c:1216 msgid "Elapsed time:" msgstr "Eltelt idő:" -#: ../src/tutor.c:1089 +#: ../src/tutor.c:1217 msgid "minute and" msgid_plural "minutes and" msgstr[0] "perc és" msgstr[1] "perc és" -#: ../src/tutor.c:1090 +#: ../src/tutor.c:1218 msgid "second" msgid_plural "seconds" msgstr[0] "másodperc" msgstr[1] "másodperc" -#: ../src/tutor.c:1091 +#: ../src/tutor.c:1219 msgid "Error ratio:" msgstr "Hibaarány:" -#: ../src/tutor.c:1091 +#: ../src/tutor.c:1219 msgid "Accuracy:" msgstr "Pontosság:" -#: ../src/tutor.c:1112 ../src/tutor.c:1137 ../src/tutor.c:1160 -#: ../src/tutor.c:1186 +#: ../src/tutor.c:1240 ../src/tutor.c:1265 ../src/tutor.c:1288 +#: ../src/tutor.c:1314 msgid "Goal:" msgstr "Cél:" -#: ../src/tutor.c:1119 +#: ../src/tutor.c:1247 msgid "Characters per second:" msgstr "Leütések száma másodpercenként:" -#: ../src/tutor.c:1137 +#: ../src/tutor.c:1265 msgid "(CPS)" msgstr "(LPM)" -#: ../src/tutor.c:1142 +#: ../src/tutor.c:1270 msgid "Words per minute:" msgstr "Szavak száma percenként:" -#: ../src/tutor.c:1167 +#: ../src/tutor.c:1295 msgid "Fluidness:" msgstr "Folytonosság:" -#: ../src/tutor.c:1194 +#: ../src/tutor.c:1322 msgid "Comments:" msgstr "Megjegyzések:" -#: ../src/tutor.c:1676 +#: ../src/tutor.c:1804 msgid "space" msgstr "szóköz" #. Translators: the name of letter Y -#: ../src/tutor.c:1681 +#: ../src/tutor.c:1809 msgid "wye" msgstr "ipszilon" #. Translators: the name of the Return key -#: ../src/tutor.c:1685 +#: ../src/tutor.c:1813 msgid "enter" msgstr "enter" -#: ../src/tutor.c:1691 +#: ../src/tutor.c:1819 msgid "apostrophe" msgstr "aposztróf" #. Translators: double quote symbol: " -#: ../src/tutor.c:1695 +#: ../src/tutor.c:1823 msgid "quote" msgstr "idézőjel" #. Translators: ampersand symbol: & -#: ../src/tutor.c:1699 +#: ../src/tutor.c:1827 msgid "ampersand" msgstr "és-jel" -#. Error frequencies or touch times -#. -#: ../src/plot.c:308 +#: ../src/plot.c:305 msgid "Character" msgstr "Karakter" @@ -1002,11 +994,11 @@ msgid "Date & Time" msgstr "Dátum és idő" -#: ../src/basic.c:331 +#: ../src/basic.c:326 msgid "Positions of keys seems to be learned!" msgstr "Úgy tűnik, megtanultad a billentyűk elhelyezkedését!" -#: ../src/basic.c:332 +#: ../src/basic.c:327 msgid "" " Congratulations!\n" " You have accomplished the entire basic course.\n" @@ -1018,7 +1010,7 @@ " Folytasd a készségfejlesztő gyakorlatokkal.\n" " Azzal leginkább a pontosságod fogod javítani.\n" -#: ../src/basic.c:338 +#: ../src/basic.c:333 msgid "" " All right, now you got it!\n" " Go to the next lesson.\n" @@ -1027,34 +1019,36 @@ " Folytasd a következő leckével.\n" # konyvjelzo -#: ../src/adaptability.c:217 +#: ../src/adaptability.c:213 +#, c-format msgid "" -" Your accuracy rate is below 90%...\n" +" Your accuracy rate is below %.0f%%...\n" " Could you please try again to improve it?\n" msgstr "" -" A pontosságod 90% alatt volt…\n" +" A pontosságod %.0f%% alatt volt…\n" " Megpróbálnád ismét, hogy jobban menjen?\n" -#: ../src/adaptability.c:222 +#: ../src/adaptability.c:216 +#, c-format msgid "" " You are doing well. But...\n" -" Could you make the accuracy reach 95%?\n" +" Could you make the accuracy reach %.0f%%?\n" msgstr "" " Jól csinálod. Csak…\n" -" El tudnád érni a 95%-os pontosságot?\n" +" El tudnád érni a %.0f%%-os pontosságot?\n" -#: ../src/adaptability.c:225 +#: ../src/adaptability.c:219 #, c-format msgid "" " You are almost there, but your accuracy rate is still below %.0f%%.\n" -" Try a few more times, or maybe you're getting upset, so go to other kind of " -"exercise.\n" +" Try a few more times, or maybe you're getting upset, so go to another kind " +"of exercise.\n" msgstr "" " Már majdnem kész vagy, de még mindig nem vagy %.0f%%-ban pontos.\n" -" Próbáld még párszor, vagy ha kezd bosszantani, csinálj inkább más " +" Próbáld még párszor, vagy ha kezd bosszantani, csinálj inkább más típusú " "gyakorlatokat.\n" -#: ../src/adaptability.c:232 +#: ../src/adaptability.c:226 #, c-format msgid "" " Very good!\n" @@ -1067,11 +1061,11 @@ " Itt az ideje a gépelési sebesség növelésének.\n" " Folytasd a főmenü harmadik tanfolyamával.\n" -#: ../src/velocity.c:313 ../src/fluidness.c:435 +#: ../src/velocity.c:312 ../src/fluidness.c:435 msgid "Pasted_or_dropped" msgstr "Beillesztve_vagy_áthúzva" -#: ../src/velocity.c:432 +#: ../src/velocity.c:423 msgid "" " You are just beginning.\n" " Be patient, try it again every day, rest and don't worry so much:\n" @@ -1081,31 +1075,34 @@ " Légy türelmes, próbáld minden nap újra, pihenj, és ne izgulj sokat:\n" " a kitartó gyakorlás gyorsít a tempódon.\n" -#: ../src/velocity.c:436 +#: ../src/velocity.c:427 +#, c-format msgid "" " Still away from the highway. You can make better...\n" -" Try at least 20 WPM.\n" +" Try to reach at least %.0f WPM.\n" msgstr "" " Messze vagy még a sztrádától. Ennél gyorsabban is megy neked!\n" -" Próbálj legalább 20 szót gépelni percenként.\n" +" Próbálj legalább %.0f szót gépelni percenként.\n" -#: ../src/velocity.c:439 +#: ../src/velocity.c:430 +#, c-format msgid "" " You are doing well, but need to go faster.\n" -" And don't forget the accuracy. Try to get 30 WPM.\n" +" And don't forget the accuracy. Try to get %.0f WPM.\n" msgstr "" " Jól csinálod, de gyorsabban kellene.\n" -" Ne feledd a pontosságot sem. Próbálj 30 szót gépelni percenként.\n" +" Ne feledd a pontosságot sem. Próbálj %.0f szót gépelni percenként.\n" -#: ../src/velocity.c:443 +#: ../src/velocity.c:433 +#, c-format msgid "" " Fine. Now you need to start running.\n" -" Can you reach 40 WPM?\n" +" Can you reach %.0f WPM?\n" msgstr "" " Remek. Most kezdhetsz száguldani.\n" -" Le tudsz gépelni 40 szót percenként?\n" +" Le tudsz gépelni %.0f szót percenként?\n" -#: ../src/velocity.c:446 +#: ../src/velocity.c:436 #, c-format msgid "" " Very good. You are almost there.\n" @@ -1114,7 +1111,7 @@ " Nagyon jó. Majdnem ott vagy.\n" " Tudsz már percenként %.0f szót gépelni?\n" -#: ../src/velocity.c:451 +#: ../src/velocity.c:439 msgid "" " Excellent. For this course, that is enough.\n" " Try now the fluidness exercises, OK?\n" @@ -1122,31 +1119,34 @@ " Kiváló. Ezzel a tanfolyammal kész vagy.\n" " Próbáld ki a folytonossági gyakorlatokat, rendben?\n" -#: ../src/velocity.c:455 +#: ../src/velocity.c:442 +#, c-format msgid "" -" Fast! Are you training for a competition?\n" -" So, try to get 70 WPM!\n" +" Fast! Are you a professional?\n" +" So, try to get %.0f WPM!\n" msgstr "" " Gyors! Versenyre készülsz?\n" -" Akkor próbálj 70 szót percenként!\n" +" Akkor próbálj %.0f szót percenként!\n" -#: ../src/velocity.c:458 -msgid "" -" Top of \"qwerty\". Now it's time to change to the Dvorak mode.\n" -" Are you afraid of reaching 80 WPM?\n" -msgstr "" -" Ez rekord a „qwerty” billentyűzeten. Itt az ideje Dvorak módra váltani.\n" -" Nem félsz, hogy eléred a percenként 80 szót?\n" +#. Translators: Speed Racer is a reference to a Japanese anime franchise +#. about automobile racing, also known as Mach GoGoGo. +#: ../src/velocity.c:447 +#, c-format +msgid " Ranking good, Speed Racer! Are you afraid of reaching %.0f WPM?\n" +msgstr " Jól állsz, bajnok! Nem félsz, hogy eléred a percenként %.0f szót?\n" -#: ../src/velocity.c:462 +#. Translators: feel free to change the reference to that martial art, if you find another good analogy. +#: ../src/velocity.c:451 +#, c-format msgid "" -" Dvorak mode dominated!\n" -" Can you fly at 90 WPM?\n" +" Kunf-fu mastering!\n" +" Can you fly at %.0f WPM?\n" msgstr "" -" A Dvorak mód elintézve!\n" -" Tudsz percenként 90 szóval haladni?\n" +" Mint a Forma-1!\n" +" Tudsz percenként %.0f szóval haladni?\n" -#: ../src/velocity.c:466 +#. Translators: Dvorak here means that infamous ergonomic keyboard layout. +#: ../src/velocity.c:454 msgid "" " Dvorak master!\n" " I have no words to express my admiration!\n" @@ -1154,7 +1154,7 @@ " Dvorak mester!\n" " Nincsenek megfelelő szavaim elismerésedre!\n" -#: ../src/fluidness.c:545 +#: ../src/fluidness.c:538 #, c-format msgid "" " You type accurately but not so fast.\n" @@ -1163,7 +1163,7 @@ " Pontosan gépelsz, de nem igazán gyorsan.\n" " Eléred a percenkénti %.0f szót?\n" -#: ../src/fluidness.c:548 +#: ../src/fluidness.c:541 #, c-format msgid "" " Your rhythm is not so constant. Calm down.\n" @@ -1172,7 +1172,7 @@ " Nem elég egyenletes a gépelésed ritmusa. Nyugodj meg!\n" " Próbálj %i%%-ban folytonosan gépelni.\n" -#: ../src/fluidness.c:551 +#: ../src/fluidness.c:544 #, c-format msgid "" " You are almost getting there. Type more fluently.\n" @@ -1181,7 +1181,7 @@ " Majdnem megvan. Gépelj egyenletesebb ütemben.\n" " Most legalább %.0f%%-ban folytonosan gépelj.\n" -#: ../src/fluidness.c:554 +#: ../src/fluidness.c:547 msgid "" " Congratulations!\n" " It seems to me that you are a professional.\n" @@ -1193,7 +1193,7 @@ " Már nincs szükséged erre a programra.\n" " Reméljük, élvezted. Köszönjük és minden jót!\n" -#: ../src/fluidness.c:559 +#: ../src/fluidness.c:552 msgid "" " How can you type so fast?\n" " You have exceeded all my expectations.\n" @@ -1253,5 +1253,18 @@ msgid "Could not upload/download scores." msgstr "A pontszámok feltöltése/letöltése sikertelen." +#~ msgid "Klavaro" +#~ msgstr "Klavaro" + +#~ msgid "_Font" +#~ msgstr "_Betűkészlet" + #~ msgid "Default" #~ msgstr "Alapértelmezett" + +#~ msgid "" +#~ " Top of \"qwerty\". Now it's time to change to the Dvorak mode.\n" +#~ " Are you afraid of reaching 80 WPM?\n" +#~ msgstr "" +#~ " Ez rekord a „qwerty” billentyűzeten. Itt az ideje Dvorak módra váltani.\n" +#~ " Nem félsz, hogy eléred a percenként 80 szót?\n" diff -Nru klavaro-1.9.9/po/it.po klavaro-3.00/po/it.po --- klavaro-1.9.9/po/it.po 2013-08-15 13:38:50.000000000 +0000 +++ klavaro-3.00/po/it.po 2014-01-13 23:25:51.000000000 +0000 @@ -6,8 +6,8 @@ msgid "" msgstr "" "Project-Id-Version: klavaro-1.9.0-pre1\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2013-08-15 10:38-0300\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2014-01-13 21:25-0200\n" "PO-Revision-Date: 2011-04-16 18:19+0200\n" "Last-Translator: Claudio Arseni \n" "Language-Team: Italian \n" @@ -17,467 +17,474 @@ "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: ../data/klavaro.desktop.in.h:1 ../data/klavaro.glade.h:59 -msgid "Yet another touch typing tutor" -msgstr "Un altro programma per imparare ad usare la tastiera" - #: ../data/klavaro.glade.h:1 -msgid "Klavaro - Main menu" -msgstr "Klavaro - menù principale" +msgid "About 'Klavaro'" +msgstr "Informazioni su Klavaro" #: ../data/klavaro.glade.h:2 -msgid "Don't be shy about learning the basics!" -msgstr "Nozioni di base da apprendere." +msgid "Yet another touch typing tutor" +msgstr "Un altro programma per imparare ad usare la tastiera" #: ../data/klavaro.glade.h:3 -msgid "Learn how to type correctly" -msgstr "Imparare a digitare correttamente" +msgid "Remember always: someone loves you!" +msgstr "Ricorda sempre: qualcuno ti ama!" #: ../data/klavaro.glade.h:4 -msgid "Initial training for your fingers." -msgstr "Allenamento iniziale per le dita." +msgid "Change language" +msgstr "Cambia lingua" #: ../data/klavaro.glade.h:5 -msgid "First steps with initial training" -msgstr "Primo passaggio con esercizi di base" +msgid "Attention!" +msgstr "Attenzione." #: ../data/klavaro.glade.h:6 -msgid "Memorizing the keyboard practicing random keys exercises." -msgstr "Memorizzazione della tastiera eseguendo esercizi con tasti casuali." +msgid "Do you confirm?" +msgstr "Confermare?" #: ../data/klavaro.glade.h:7 -msgid "Practice with random keys" -msgstr "Esercizi con tasti casuali" +msgid "_No" +msgstr "_No" + +#: ../data/klavaro.glade.h:8 +msgid "_Yes" +msgstr "_Sì" -#. English typo: touchs -> touches #: ../data/klavaro.glade.h:9 -msgid "Accelerating the touches practicing random words exercises." -msgstr "Velocizzare la digitazione con esercizi su parole casuali." +msgid "Help?" +msgstr "Aiuto?" #: ../data/klavaro.glade.h:10 -msgid "Practice with random words" -msgstr "Esercizi con parole casuali" +msgid "This is a tip. Now you press this button to return to the main menu." +msgstr "" +"Questo è un suggerimento. Premere questo pulsante per tornare al menù " +"principale." #: ../data/klavaro.glade.h:11 -msgid "Becoming proficient practicing complete paragraphs exercises." -msgstr "Migliorare le proprie capacità con esercizi su paragrafi completi." +msgid "B_ack to menu" +msgstr "Torn_a al menù" #: ../data/klavaro.glade.h:12 -msgid "Practice with complete texts" -msgstr "Esercizi con testi completi" +msgid "" +"The main menu of the application is very straightforward. Just select the " +"type of exercise you wish to take. Do not worry about clicking any button on " +"the screen. The buttons will never hurt you!" +msgstr "" +"Il menù principale dell'applicazione è molto semplice. Basta selezionare il " +"tipo di esercizio da eseguire. È possibile selezionare qualunque pulsante " +"presente sullo schermo senza problemi." #: ../data/klavaro.glade.h:13 msgid "" -"Keyboard layout for modules 1 and 2. Also used informatively in the " -"fluidness contest." +"Also the controls have tips which will appear if you hover over them with " +"your mouse. These tips can come in very handy. To see how these tips work, " +"position your mouse over the button below, and without clicking, wait for " +"the tip to appear..." msgstr "" -"Impostazione della tastiera per i moduli 1 e 2. Viene utilizzata anche nelle " -"gare di fluidità." +"Anche i controlli hanno dei suggerimenti che compaiono quando il mouse viene " +"posizionato su di essi. Questi suggerimenti possono essere molto utili. Per " +"vedere come funzionano i suggerimenti, posizionare il mouse sul pulsante qui " +"sotto e, senza fare clic su di esso, attendere che compaia il suggerimento..." #: ../data/klavaro.glade.h:14 -msgid "_Keyboard:" -msgstr "_Tastiera:" +msgid "Klavaro - Select file" +msgstr "Klavaro - selezione file" #: ../data/klavaro.glade.h:15 -msgid "Language for modules 3 and 4." -msgstr "Lingua per i moduli 3 e 4." +msgid "_Cancel" +msgstr "A_nnulla" #: ../data/klavaro.glade.h:16 -msgid "_Language:" -msgstr "_Lingua:" +msgid "_Open" +msgstr "_Apri" #: ../data/klavaro.glade.h:17 -msgid "Variant" -msgstr "Varianti" +msgid "Re_name:" +msgstr "Ri_nomina:" #: ../data/klavaro.glade.h:18 -msgid "Klavaro" -msgstr "Klavaro" +msgid "Rename the selected item." +msgstr "Rinomina l'oggetto selezionato." #: ../data/klavaro.glade.h:19 -msgid "Country / Custom" -msgstr "Scelta del paese o personalizzazione" +msgid "" +"Read a text file and add a copy of it here. The file must be encoded in " +"UTF-8." +msgstr "" +"Legge un file di testo inserendone qui una copia. Il file deve essere " +"codificato in UTF-8." #: ../data/klavaro.glade.h:20 -msgid "Your language here." -msgstr "Scelta della lingua." +msgid "_Open text file" +msgstr "_Apri file di testo" #: ../data/klavaro.glade.h:21 -msgid "Speech" -msgstr "Sintesi vocale" +msgid "Paste text that was copied to the clipboard." +msgstr "Incolla il testo che è stato copiato negli appunti." #: ../data/klavaro.glade.h:22 -msgid "Little tip about this program." -msgstr "Piccoli suggerimenti sul programma." +msgid "_Paste from clipboard" +msgstr "Incolla _dagli appunti" #: ../data/klavaro.glade.h:23 -msgid "_Help" -msgstr "A_iuto" +msgid "Remove the selected item." +msgstr "Rimuove l'oggetto selezionato." #: ../data/klavaro.glade.h:24 -msgid "General information about the program." -msgstr "Informazioni generali sul programma." +msgid "_Remove copied file" +msgstr "_Rimuovi il file copiato" #: ../data/klavaro.glade.h:25 -msgid "_About..." -msgstr "I_nformazioni..." +msgid "Apply the selected item to create an exercise." +msgstr "Utilizza l'oggetto selezionato per creare un esercizio." #: ../data/klavaro.glade.h:26 -msgid "Exit the application immediately." -msgstr "Chiude immediatamente l'applicazione." +msgid "_Apply" +msgstr "_Applica" #: ../data/klavaro.glade.h:27 -msgid "_Close" -msgstr "_Chiudi" +msgid "Close this window." +msgstr "Chiude questa finestra." #: ../data/klavaro.glade.h:28 -msgid "Load other exercises/lessons" -msgstr "Carica altri esercizi o lezioni" +msgid "_Close" +msgstr "_Chiudi" #: ../data/klavaro.glade.h:29 -msgid "_Other texts" -msgstr "A_ltri testi" +msgid "Country / Custom" +msgstr "Scelta del paese o personalizzazione" #: ../data/klavaro.glade.h:30 -msgid "_Lesson:" -msgstr "_Lezione:" +msgid "Variant" +msgstr "Varianti" #: ../data/klavaro.glade.h:31 -msgid "Edit the character set to be used in this lesson." -msgstr "Modifica il set di caratteri da utilizzare in questa lezione." +msgid "Remove the selected custom layout." +msgstr "Rimuove l'impostazione personalizzata selezionata." #: ../data/klavaro.glade.h:32 -msgid "Edit the character set to be used in lessons 44 through 50." -msgstr "" -"Modifica il set di caratteri da utilizzare dalla lezione 44 alla lezione 50." +msgid "_Remove" +msgstr "_Rimuovi" #: ../data/klavaro.glade.h:33 -msgid "This is a specific exercise, adjusted to your error profile." +msgid "" +"Toggles the shift effect on the keys. Alternates between the upper and lower " +"characters of the keys." msgstr "" -"Questo è un esercizio specifico, adattato al proprio profilo di errori." +"Attiva l'effetto maiuscolo sui tasti. Alterna tra il maiuscolo e il " +"minuscolo dei tasti." -#: ../data/klavaro.glade.h:34 ../src/tutor.c:252 -msgid "Drag and drop text here to practice with it." -msgstr "Trascinare qui il testo per iniziare l'esercizio." +#: ../data/klavaro.glade.h:34 +msgid "SPACE BAR" +msgstr "BARRA SPAZIATRICE" -#: ../data/klavaro.glade.h:35 -msgid "Press here to restart the exercise. Hotkey: [Ctrl R]" -msgstr "Premere qui per riavviare l'esercizio. Scorciatoia: [Ctrl R]" +#: ../data/klavaro.glade.h:35 ../src/keyboard.c:1630 +msgid "thumbs" +msgstr "pollici" #: ../data/klavaro.glade.h:36 -msgid "Show the virtual keyboard and the relation between fingers and keys." -msgstr "Mostra la tastiera virtuale e la relazione tra dita e tasti." +msgid "Ctrl" +msgstr "Ctrl" #: ../data/klavaro.glade.h:37 -msgid "_Keyboard" -msgstr "_Tastiera" +msgid "Caps" +msgstr "Maiusc" #: ../data/klavaro.glade.h:38 -msgid "Select the font to be used in the exercise window." -msgstr "Scelta del carattere da utilizzare nella finestra dell'esercizio." +msgid "S_ave as:" +msgstr "S_alva con nome:" #: ../data/klavaro.glade.h:39 -msgid "_Font" -msgstr "Ca_rattere" +msgid "Show previous screen." +msgstr "Mostra schermata precedente." #: ../data/klavaro.glade.h:40 -msgid "Keep this checked if you want to get those nice beeps." -msgstr "Selezionare questo pulsante per abilitare i suoni." +msgid "_Previous step" +msgstr "Passaggio _precedente" #: ../data/klavaro.glade.h:41 -msgid "_Beep" -msgstr "Suo_ni" +msgid "Show next screen." +msgstr "Mostra schermata successiva." #: ../data/klavaro.glade.h:42 -msgid "Co_urse information" -msgstr "Informazioni s_ul corso" +msgid "_Next step" +msgstr "Passaggio _successivo" #: ../data/klavaro.glade.h:43 -msgid "Charts showing the learning progress along the exercises." -msgstr "" -"Mostra i grafici con i progressi ottenuti nello svolgimento degli esercizi." +msgid "Return without any modification." +msgstr "Esce e annulla tutte le modifiche." #: ../data/klavaro.glade.h:44 -msgid "_Progress" -msgstr "_Progresso" +msgid "Save the current keyboard layout with the name specified above." +msgstr "Salva l'impostazione di tastiera attuale con il nome specificato." #: ../data/klavaro.glade.h:45 -msgid "Show local and external scores from other users." -msgstr "Mostra i punteggi esterni e locali di altri utenti." +msgid "_Save and use" +msgstr "_Salva e usa" #: ../data/klavaro.glade.h:46 -msgid "_Top 10" -msgstr "_Top 10" +msgid "" +"If you like those beautiful hands, click here to close this window keeping " +"them." +msgstr "" +"Per mantenere la visualizzazione delle mani, fare clic qui per chiudere " +"questa finestra e continuare a mostrarle." #: ../data/klavaro.glade.h:47 -msgid "Return to the main menu." -msgstr "Torna al menù principale." +msgid "_Keep hands" +msgstr "Visuali_zza mani" #: ../data/klavaro.glade.h:48 -msgid "B_ack to menu" -msgstr "Torn_a al menù" +msgid "Klavaro - Main menu" +msgstr "Klavaro - menù principale" #: ../data/klavaro.glade.h:49 -msgid "Close this window." -msgstr "Chiude questa finestra." +msgid "Don't be shy about learning the basics!" +msgstr "Nozioni di base da apprendere." #: ../data/klavaro.glade.h:50 -msgid "Font definition" -msgstr "Definizione del carattere" +msgid "Learn how to type correctly" +msgstr "Imparare a digitare correttamente" #: ../data/klavaro.glade.h:51 -msgid "Top 10" -msgstr "Top 10" +msgid "Initial training for your fingers." +msgstr "Allenamento iniziale per le dita." #: ../data/klavaro.glade.h:52 -msgid "Show extra information" -msgstr "Mostra informazioni aggiuntive" +msgid "First steps with initial training" +msgstr "Primo passaggio con esercizi di base" #: ../data/klavaro.glade.h:53 -msgid "Hide extra information" -msgstr "Nascondi informazioni aggiuntive" +msgid "Memorizing the keyboard practicing random keys exercises." +msgstr "Memorizzazione della tastiera eseguendo esercizi con tasti casuali." #: ../data/klavaro.glade.h:54 -msgid "Publish to the web your local scores." -msgstr "Pubblica su internet i propri punteggi locali." +msgid "Practice with random keys" +msgstr "Esercizi con tasti casuali" #: ../data/klavaro.glade.h:55 -msgid "_Participate" -msgstr "_Partecipa" +msgid "Accelerating the touches practicing random words exercises." +msgstr "Velocizzare la digitazione con esercizi su parole casuali." #: ../data/klavaro.glade.h:56 -msgid "Download from the web the most up to date ranking." -msgstr "Scarica da internet la classifica aggiornata." +msgid "Practice with random words" +msgstr "Esercizi con parole casuali" #: ../data/klavaro.glade.h:57 -msgid "_Update" -msgstr "A_ggiorna" +msgid "Becoming proficient practicing complete paragraphs exercises." +msgstr "Migliorare le proprie capacità con esercizi su paragrafi completi." #: ../data/klavaro.glade.h:58 -msgid "About 'Klavaro'" -msgstr "Informazioni su Klavaro" +msgid "Practice with complete texts" +msgstr "Esercizi con testi completi" + +#: ../data/klavaro.glade.h:59 +msgid "" +"Keyboard layout for modules 1 and 2. Also used informatively in the " +"fluidness contest." +msgstr "" +"Impostazione della tastiera per i moduli 1 e 2. Viene utilizzata anche nelle " +"gare di fluidità." #: ../data/klavaro.glade.h:60 -msgid "Remember always: someone loves you!" -msgstr "Ricorda sempre: qualcuno ti ama!" +msgid "_Keyboard:" +msgstr "_Tastiera:" #: ../data/klavaro.glade.h:61 -msgid "Remove the selected custom layout." -msgstr "Rimuove l'impostazione personalizzata selezionata." +msgid "Language for modules 3 and 4." +msgstr "Lingua per i moduli 3 e 4." #: ../data/klavaro.glade.h:62 -msgid "_Remove" -msgstr "_Rimuovi" +msgid "_Language:" +msgstr "_Lingua:" #: ../data/klavaro.glade.h:63 -msgid "" -"Toggles the shift effect on the keys. Alternates between the upper and lower " -"characters of the keys." -msgstr "" -"Attiva l'effetto maiuscolo sui tasti. Alterna tra il maiuscolo e il " -"minuscolo dei tasti." +msgid "Speech" +msgstr "Sintesi vocale" #: ../data/klavaro.glade.h:64 -msgid "SPACE BAR" -msgstr "BARRA SPAZIATRICE" +msgid "Your language here." +msgstr "Scelta della lingua." -#: ../data/klavaro.glade.h:65 ../src/keyboard.c:1630 -msgid "thumbs" -msgstr "pollici" +#: ../data/klavaro.glade.h:65 +msgid "Little tip about this program." +msgstr "Piccoli suggerimenti sul programma." #: ../data/klavaro.glade.h:66 -msgid "Ctrl" -msgstr "Ctrl" +msgid "_Help" +msgstr "A_iuto" #: ../data/klavaro.glade.h:67 -msgid "Caps" -msgstr "Maiusc" +msgid "General information about the program." +msgstr "Informazioni generali sul programma." #: ../data/klavaro.glade.h:68 -msgid "S_ave as:" -msgstr "S_alva con nome:" +msgid "_About..." +msgstr "I_nformazioni..." #: ../data/klavaro.glade.h:69 -msgid "Show previous screen." -msgstr "Mostra schermata precedente." +msgid "Exit the application immediately." +msgstr "Chiude immediatamente l'applicazione." #: ../data/klavaro.glade.h:70 -msgid "_Previous step" -msgstr "_Passaggio successivo" +msgid "Klavaro - Progress" +msgstr "Klavaro - progressi" #: ../data/klavaro.glade.h:71 -msgid "Show next screen." -msgstr "Mostra schermata successiva." +msgid "_Lesson:" +msgstr "_Lezione:" #: ../data/klavaro.glade.h:72 -msgid "_Next step" -msgstr "Passaggio precede_nte" +msgid "Value" +msgstr "Valore" #: ../data/klavaro.glade.h:73 -msgid "Return without any modification." -msgstr "Esce e annulla tutte le modifiche." +msgid "Close this window, returning to the exercise." +msgstr "Chiude questa finestra e ritorna all'esercizio." #: ../data/klavaro.glade.h:74 -msgid "_Cancel" -msgstr "A_nnulla" +msgid "Clear all the progress data, for every module." +msgstr "Rimuove tutti i dati sui progressi in ogni modulo." #: ../data/klavaro.glade.h:75 -msgid "Save the current keyboard layout with the name specified above." -msgstr "Salva l'impostazione di tastiera attuale con il nome specificato." +msgid "_Reset" +msgstr "Azze_ra" #: ../data/klavaro.glade.h:76 -msgid "_Save and use" -msgstr "_Salva e usa" +msgid "Top 10" +msgstr "Top 10" #: ../data/klavaro.glade.h:77 -msgid "" -"If you like those beautiful hands, click here to close this window keeping " -"them." -msgstr "" -"Per mantenere la visualizzazione delle mani, fare clic qui per chiudere " -"questa finestra e continuare a mostrarle." +#, fuzzy +msgid "Show extra information." +msgstr "Mostra informazioni aggiuntive" #: ../data/klavaro.glade.h:78 -msgid "_Keep hands" -msgstr "Visuali_zza mani" +#, fuzzy +msgid "Hide extra information." +msgstr "Nascondi informazioni aggiuntive" #: ../data/klavaro.glade.h:79 -msgid "Change language" -msgstr "Cambia lingua" +msgid "Publish to the web your local scores." +msgstr "Pubblica su internet i propri punteggi locali." #: ../data/klavaro.glade.h:80 -msgid "Attention!" -msgstr "Attenzione." +msgid "_Participate" +msgstr "_Partecipa" #: ../data/klavaro.glade.h:81 -msgid "Do you confirm?" -msgstr "Confermare?" +msgid "Download from the web the most up to date ranking." +msgstr "Scarica da internet la classifica aggiornata." #: ../data/klavaro.glade.h:82 -msgid "_No" -msgstr "_No" +msgid "_Update" +msgstr "A_ggiorna" #: ../data/klavaro.glade.h:83 -msgid "_Yes" -msgstr "_Sì" +msgid "Load other exercises/lessons" +msgstr "Carica altri esercizi o lezioni" #: ../data/klavaro.glade.h:84 -msgid "Re_name:" -msgstr "Ri_nomina:" +msgid "_Other texts" +msgstr "A_ltri testi" #: ../data/klavaro.glade.h:85 -msgid "Rename the selected item." -msgstr "Rinomina l'oggetto selezionato." +msgid "Edit the character set to be used in this lesson." +msgstr "Modifica il set di caratteri da utilizzare in questa lezione." #: ../data/klavaro.glade.h:86 -msgid "" -"Read a text file and add a copy of it here. The file must be encoded in " -"UTF-8." +msgid "This is a specific exercise, adjusted to your error profile." msgstr "" -"Legge un file di testo inserendone qui una copia. Il file deve essere " -"codificato in UTF-8." +"Questo è un esercizio specifico, adattato al proprio profilo di errori." #: ../data/klavaro.glade.h:87 -msgid "_Open text file" -msgstr "_Apri file di testo" +#, fuzzy +msgid "" +"Edit the character set to be used in lessons after 43: they are customizable!" +msgstr "" +"Modifica il set di caratteri da utilizzare dalla lezione 44 alla lezione 50." -#: ../data/klavaro.glade.h:88 -msgid "Paste text that was copied to the clipboard." -msgstr "Incolla il testo che è stato copiato negli appunti." +#: ../data/klavaro.glade.h:88 ../src/tutor.c:376 +msgid "Drag and drop text here to practice with it." +msgstr "Trascinare qui il testo per iniziare l'esercizio." #: ../data/klavaro.glade.h:89 -msgid "_Paste from clipboard" -msgstr "Incolla _dagli appunti" +#, fuzzy +msgid "Press here to restart the exercise. Hotkey: [Ctrl-R]" +msgstr "Premere qui per riavviare l'esercizio. Scorciatoia: [Ctrl R]" #: ../data/klavaro.glade.h:90 -msgid "Remove the selected item." -msgstr "Rimuove l'oggetto selezionato." +msgid "Show the virtual keyboard and the relation between fingers and keys." +msgstr "Mostra la tastiera virtuale e la relazione tra dita e tasti." #: ../data/klavaro.glade.h:91 -msgid "_Remove copied file" -msgstr "_Rimuovi il file copiato" +msgid "_Keyboard" +msgstr "_Tastiera" #: ../data/klavaro.glade.h:92 -msgid "Apply the selected item to create an exercise." -msgstr "Utilizza l'oggetto selezionato per creare un esercizio." +msgid "Select the font to be used in the exercise window." +msgstr "Scelta del carattere da utilizzare nella finestra dell'esercizio." #: ../data/klavaro.glade.h:93 -msgid "_Apply" -msgstr "_Applica" +msgid "Font definition" +msgstr "Definizione del carattere" #: ../data/klavaro.glade.h:94 -msgid "Klavaro - Progress" -msgstr "Klavaro - progressi" +msgid "Keep this checked if you want to get those nice beeps." +msgstr "Selezionare questo pulsante per abilitare i suoni." #: ../data/klavaro.glade.h:95 -msgid "Value" -msgstr "Valore" +msgid "_Beep" +msgstr "Suo_ni" #: ../data/klavaro.glade.h:96 -msgid "Clear all the progress data, for every module." -msgstr "Rimuove tutti i dati sui progressi in ogni modulo." +msgid "Co_urse information" +msgstr "Informazioni s_ul corso" #: ../data/klavaro.glade.h:97 -msgid "_Reset" -msgstr "Azze_ra" +msgid "Charts showing the learning progress along the exercises." +msgstr "" +"Mostra i grafici con i progressi ottenuti nello svolgimento degli esercizi." #: ../data/klavaro.glade.h:98 -msgid "Close this window, returning to the exercise." -msgstr "Chiude questa finestra e ritorna all'esercizio." +msgid "_Progress" +msgstr "_Progresso" #: ../data/klavaro.glade.h:99 -msgid "Klavaro - Select file" -msgstr "Klavaro - selezione file" +msgid "Return to the main menu." +msgstr "Torna al menù principale." #: ../data/klavaro.glade.h:100 -msgid "_Open" -msgstr "_Apri" +msgid "Show local and external scores from other users." +msgstr "Mostra i punteggi esterni e locali di altri utenti." #: ../data/klavaro.glade.h:101 -msgid "Help?" -msgstr "Aiuto?" - -#: ../data/klavaro.glade.h:102 -msgid "" -"The main menu of the application is very straightforward. Just select the " -"type of exercise you wish to take. Do not worry about clicking any button on " -"the screen. The buttons will never hurt you!" -msgstr "" -"Il menù principale dell'applicazione è molto semplice. Basta selezionare il " -"tipo di esercizio da eseguire. È possibile selezionare qualunque pulsante " -"presente sullo schermo senza problemi." +msgid "_Top 10" +msgstr "_Top 10" -#: ../data/klavaro.glade.h:103 -msgid "" -"Also the controls have tips which will appear if you hover over them with " -"your mouse. These tips can come in very handy. To see how these tips work, " -"position your mouse over the button below, and without clicking, wait for " -"the tip to appear..." -msgstr "" -"Anche i controlli hanno dei suggerimenti che compaiono quando il mouse viene " -"posizionato su di essi. Questi suggerimenti possono essere molto utili. Per " -"vedere come funzionano i suggerimenti, posizionare il mouse sul pulsante qui " -"sotto e, senza fare clic su di esso, attendere che compaia il suggerimento..." +#: ../data/klavaro.desktop.in.h:1 +#, fuzzy +msgid "A very flexible and efficient touch typing tutor." +msgstr "Un altro programma per imparare ad usare la tastiera" -#: ../data/klavaro.glade.h:104 -msgid "This is a tip. Now you press this button to return to the main menu." -msgstr "" -"Questo è un suggerimento. Premere questo pulsante per tornare al menù " -"principale." +#. Translators: these are keywords related to the program. CAI above means Computer Aided Instruction. Feel free to add and/or change the keywords in your language. +#: ../data/klavaro.desktop.in.h:3 +#, fuzzy +msgid "keyboard;typing;tutor;CAI" +msgstr "Tastiera" -#: ../src/main.c:314 +#: ../src/main.c:242 msgid "(Custom)" msgstr "(Personalizzata)" -#: ../src/main.c:315 +#: ../src/main.c:243 msgid "(Edit custom)" msgstr "(Modifica personalizzazione)" -#: ../src/main.c:316 +#: ../src/main.c:244 msgid "(Default)" msgstr "(Predefinita)" -#: ../src/main.c:393 +#: ../src/main.c:321 #, c-format msgid "Dictation mode (depends on this speech synthesizer: %s)" msgid_plural "Dictation mode (depends on one of these speech synthesizers: %s)" @@ -485,88 +492,86 @@ msgstr[1] "" "Modalità dettato (dipende da uno dei seguenti sintetizzatori vocali: %s)" -#. Set main labels (for translation) -#. -#: ../src/main.c:435 ../src/keyboard.c:1291 +#: ../src/main.c:364 ../src/keyboard.c:1291 msgid "Introduction" msgstr "Introduzione" -#: ../src/main.c:438 ../src/top10.c:109 +#: ../src/main.c:367 ../src/top10.c:109 msgid "Basic course" msgstr "Corso base" -#: ../src/main.c:441 ../src/top10.c:112 +#: ../src/main.c:370 ../src/top10.c:112 msgid "Adaptability" msgstr "Adattabilità" -#: ../src/main.c:444 ../src/callbacks.c:1310 ../src/top10.c:89 +#: ../src/main.c:373 ../src/callbacks.c:1226 ../src/top10.c:89 #: ../src/top10.c:115 msgid "Speed" msgstr "Velocità" -#: ../src/main.c:447 ../src/callbacks.c:1333 ../src/top10.c:91 +#: ../src/main.c:376 ../src/callbacks.c:1249 ../src/top10.c:91 #: ../src/top10.c:118 msgid "Fluidity" msgstr "Fluidità" -#: ../src/callbacks.c:468 ../src/tutor.c:391 +#: ../src/callbacks.c:407 ../src/tutor.c:515 msgid "Keys:" msgstr "Tasti:" -#: ../src/callbacks.c:858 ../src/callbacks.c:874 +#: ../src/callbacks.c:774 ../src/callbacks.c:790 msgid "Connecting..." msgstr "Connessione..." -#: ../src/callbacks.c:1145 +#: ../src/callbacks.c:1061 msgid "Overwrite user layout" msgstr "Sovrascrivere l'impostazione dell'utente" -#: ../src/callbacks.c:1147 +#: ../src/callbacks.c:1063 msgid "This will OVERWRITE an existent keyboard layout." msgstr "Questo sovrascriverà una impostazione di tastiera esistente." -#: ../src/callbacks.c:1154 +#: ../src/callbacks.c:1070 msgid "Remove user layout" msgstr "Rimuovere l'impostazione dell'utente" -#: ../src/callbacks.c:1156 +#: ../src/callbacks.c:1072 msgid "This will REMOVE an existent keyboard layout." msgstr "Questo rimuoverà una impostazione di tastiera esistente." -#: ../src/callbacks.c:1163 +#: ../src/callbacks.c:1079 msgid "Reset progress data" msgstr "Azzerare i dati dei progressi" -#: ../src/callbacks.c:1164 +#: ../src/callbacks.c:1080 msgid "This will DELETE all the progress data shown in the charts." msgstr "Questo cancellerà tutti i dati dei progressi mostrati nei grafici." -#: ../src/callbacks.c:1307 ../src/top10.c:87 +#: ../src/callbacks.c:1223 ../src/top10.c:87 msgid "Accuracy" msgstr "Precisione" -#: ../src/callbacks.c:1310 ../src/tutor.c:1160 +#: ../src/callbacks.c:1226 ../src/tutor.c:1288 msgid "(WPM)" msgstr "(PPM)" -#: ../src/callbacks.c:1321 +#: ../src/callbacks.c:1237 msgid "Errors" msgstr "Errori" -#: ../src/callbacks.c:1324 +#: ../src/callbacks.c:1240 msgid "Touch times (s)" msgstr "" -#: ../src/callbacks.c:1336 ../src/tutor.c:1187 ../src/top10.c:69 +#: ../src/callbacks.c:1252 ../src/tutor.c:1315 ../src/top10.c:69 msgid "Score" msgstr "Punteggio" #. Translators: your language code (first 2 letters of your po-file) -#: ../src/translation.c:423 ../src/translation.c:489 ../src/tutor.c:1597 +#: ../src/translation.c:485 ../src/tutor.c:1725 msgid "en" msgstr "it" -#: ../src/translation.c:576 +#: ../src/translation.c:572 msgid "" "The basic course focuses on having you read the characters presented to you " "on screen and typing the corresponding keys. Remember to keep your hands " @@ -578,7 +583,7 @@ "sempre le mani correttamente sulla riga principale della tastiera (vedere " "«Introduzione» dal menù principale)." -#: ../src/translation.c:580 +#: ../src/translation.c:576 msgid "" "The key set used in each series will be shown in the above message line. The " "[Space], [Shift] and [Enter] keys may not show up there but are used very " @@ -588,7 +593,7 @@ "casella di testo sopra. I tasti [Spazio], [Maiusc] e [Invio] potrebbero non " "essere visualizzati ma sono utilizzati molto spesso." -#: ../src/translation.c:583 +#: ../src/translation.c:579 msgid "" "The message line below follows and echoes your key presses. If required, it " "changes and displays instructions for actions required from you." @@ -597,7 +602,7 @@ "richiesto, cambia e mostra le istruzioni per le azioni che l'utente deve " "intraprendere." -#: ../src/translation.c:587 +#: ../src/translation.c:583 msgid "" "Here you may practice and improve your memorization of all keys. There will " "be sentences presented with nonsense words which mix some numbers and " @@ -606,7 +611,7 @@ "Qui è possibile esercitarsi e migliorare la memorizzazione di tutti i tasti. " "Saranno presenti frasi con parole senza senso mescolate a numeri e simboli." -#: ../src/translation.c:590 +#: ../src/translation.c:586 msgid "" "In order to keep the lesson contents language and keyboard independent, " "accented letter combinations will probably not appear. For real word " @@ -617,7 +622,7 @@ "visualizzate. Per frasi e parole reali, utilizzare la quarta opzione del " "menù principale (informazioni sulla fluidità)." -#: ../src/translation.c:594 +#: ../src/translation.c:590 msgid "" "After each exercise there will be a brief statistics panel reviewing your " "performance along with some relevant comments." @@ -625,7 +630,7 @@ "Dopo ogni esercizio verrà mostrato un pannello contenente le statistiche " "sulle prestazioni con alcuni importanti commenti." -#: ../src/translation.c:598 +#: ../src/translation.c:594 msgid "" "This exercise is very similar to the second one, for adaptability. The " "difference is that here you'll type real words." @@ -633,7 +638,7 @@ "Questo esercizio è molto simile al secondo, per adattabilità. La differenza " "è che qui vengono digitate parole reali." -#: ../src/translation.c:601 +#: ../src/translation.c:597 msgid "" "The default language is the actual one of the interface. But you may select " "any other texts with words you would like to use. Press the 'Other' option " @@ -644,7 +649,7 @@ "utilizzare. Selezionare \"Altri\" e aggiungere i file contenenti i testi " "scelti." -#: ../src/translation.c:605 +#: ../src/translation.c:601 msgid "" "With this exercise the focus is on speed. So, you are supposed to type " "really fast and I will only flatter you when you deserve it!" @@ -653,7 +658,7 @@ "una ottima velocità di digitazione che verrà positivamente valutata quando " "necessario." -#: ../src/translation.c:609 +#: ../src/translation.c:605 msgid "" "We will now use complete sentences and paragraphs which make logical sense. " "This may distract you while you type if you try to understand what you are " @@ -666,7 +671,7 @@ "precedenti avevano infatti lo scopo di insegnare come digitare senza " "interpretare e analizzare il contenuto." -#: ../src/translation.c:613 +#: ../src/translation.c:609 msgid "" "We do not mean to imply that the typists must behave like a robot, without " "understanding what they type. We do aim to develop the skill of typing, " @@ -683,8 +688,7 @@ "concentrazione. Solo allora sarà possibile prestare attenzione al vero " "significato del testo." -#. English typo: minimun -> minimum -#: ../src/translation.c:618 +#: ../src/translation.c:613 msgid "" "These exercises are longer. Each exercise consists of three paragraphs and " "the emphasis is placed on correctness and rhythm, with a minimum speed " @@ -697,7 +701,6 @@ "correggere gli errori. In altre parole solo il testo immesso senza errori " "verrà accettato." -#. English typo: recomendations -> recommendations #: ../src/keyboard.c:1094 msgid "" "Correct positioning of the hands and fingers is very important to efficient " @@ -797,13 +800,11 @@ msgid "Step %i" msgstr "Passaggio %i" -#. Recommendations -#: ../src/keyboard.c:1140 +#: ../src/keyboard.c:1142 msgid "To position the hands" msgstr "Posizionamento delle mani" -#. Final words -#: ../src/keyboard.c:1225 +#: ../src/keyboard.c:1227 msgid "Go ahead!" msgstr "Conclusione" @@ -843,23 +844,23 @@ msgid "Press and edit me" msgstr "Premere per modificare" -#: ../src/tutor.c:176 +#: ../src/tutor.c:300 msgid "Lesson:" msgstr "Lezione:" -#: ../src/tutor.c:186 +#: ../src/tutor.c:310 msgid "Paragraphs:" msgstr "Paragrafi:" -#: ../src/tutor.c:219 +#: ../src/tutor.c:343 msgid "Klavaro - Basic Course" msgstr "Klavaro - corso base" -#: ../src/tutor.c:224 +#: ../src/tutor.c:348 msgid "Klavaro - Adaptability" msgstr "Klavaro - adattabilità" -#: ../src/tutor.c:227 +#: ../src/tutor.c:351 msgid "" "Adaptability exercises: automating the fingers responses, typing over all " "the keyboard." @@ -867,44 +868,44 @@ "Esercizi di adattabilità: automatizzare la risposta delle dita, digitando su " "tutta la tastiera." -#: ../src/tutor.c:232 +#: ../src/tutor.c:356 msgid "Klavaro - Velocity" msgstr "Klavaro - velocità" -#: ../src/tutor.c:233 +#: ../src/tutor.c:357 msgid "Velocity exercises: accelerate typing real words." msgstr "Esercizi di velocità: aumentare la velocità nel digitare vere parole." -#: ../src/tutor.c:237 +#: ../src/tutor.c:361 msgid "Klavaro - Fluidness" msgstr "Klavaro - fluidità" -#: ../src/tutor.c:239 +#: ../src/tutor.c:363 msgid "Fluidness exercises: accuracy typing good sense paragraphs." msgstr "" "Esercizi di fluidità: digitare correttamente paragrafi di senso compiuto." -#: ../src/tutor.c:301 +#: ../src/tutor.c:425 msgid "End of exercise. Press [Enter] to start another." msgstr "Esercizio terminato. Premere [Invio] per iniziarne un altro." -#: ../src/tutor.c:329 +#: ../src/tutor.c:453 msgid "Learning the key positions." msgstr "Imparare la posizione dei tasti." -#: ../src/tutor.c:332 +#: ../src/tutor.c:456 msgid "Press any key to start the exercise. " msgstr "Premere un tasto qualunque per avviare l'esercizio. " -#: ../src/tutor.c:440 ../src/tutor.c:443 +#: ../src/tutor.c:567 ../src/tutor.c:570 msgid "Start typing when you are ready. " msgstr "Iniziare a digitare appena pronti. " -#: ../src/tutor.c:441 +#: ../src/tutor.c:568 msgid "Use backspace to correct errors." msgstr "" -#: ../src/tutor.c:885 +#: ../src/tutor.c:1012 #, c-format msgid "" "ps.: logging not performed for this session: the number of typed characters " @@ -913,11 +914,11 @@ "Registrazione non effettuata per questa sessione: il numero di caratteri " "digitati (%i) deve essere maggiore di %i." -#: ../src/tutor.c:1027 +#: ../src/tutor.c:1154 msgid "ps.: you have entered the Top 10 list, great!" msgstr "Ottimo, È stata raggiunta un posizione nella top 10." -#: ../src/tutor.c:1039 +#: ../src/tutor.c:1166 msgid "" "ps.: the text you just typed doesn't seem to be similar to ordinary texts in " "the language currently selected: we can't account for it in the 'Top 10' " @@ -926,91 +927,88 @@ "Il testo digitato non sembra essere simile a quello ordinario per la lingua " "selezionata: non verrà considerato per l'inserimento nella gara \"Top 10\"." -#. Begin the accuracy -#: ../src/tutor.c:1087 +#: ../src/tutor.c:1215 msgid "STATISTICS" msgstr "STATISTICHE" -#: ../src/tutor.c:1088 +#: ../src/tutor.c:1216 msgid "Elapsed time:" msgstr "Tempo impiegato:" -#: ../src/tutor.c:1089 +#: ../src/tutor.c:1217 msgid "minute and" msgid_plural "minutes and" msgstr[0] "minuto e" msgstr[1] "minuti e" -#: ../src/tutor.c:1090 +#: ../src/tutor.c:1218 msgid "second" msgid_plural "seconds" msgstr[0] "secondo" msgstr[1] "secondi" -#: ../src/tutor.c:1091 +#: ../src/tutor.c:1219 msgid "Error ratio:" msgstr "Rapporto errori:" -#: ../src/tutor.c:1091 +#: ../src/tutor.c:1219 msgid "Accuracy:" msgstr "Precisione:" -#: ../src/tutor.c:1112 ../src/tutor.c:1137 ../src/tutor.c:1160 -#: ../src/tutor.c:1186 +#: ../src/tutor.c:1240 ../src/tutor.c:1265 ../src/tutor.c:1288 +#: ../src/tutor.c:1314 msgid "Goal:" msgstr "Obiettivo:" -#: ../src/tutor.c:1119 +#: ../src/tutor.c:1247 msgid "Characters per second:" msgstr "Caratteri per secondo:" -#: ../src/tutor.c:1137 +#: ../src/tutor.c:1265 msgid "(CPS)" msgstr "(CPS)" -#: ../src/tutor.c:1142 +#: ../src/tutor.c:1270 msgid "Words per minute:" msgstr "Parole per minuto:" -#: ../src/tutor.c:1167 +#: ../src/tutor.c:1295 msgid "Fluidness:" msgstr "Fluidità:" -#: ../src/tutor.c:1194 +#: ../src/tutor.c:1322 msgid "Comments:" msgstr "Commenti:" -#: ../src/tutor.c:1676 +#: ../src/tutor.c:1804 msgid "space" msgstr "spazio" #. Translators: the name of letter Y -#: ../src/tutor.c:1681 +#: ../src/tutor.c:1809 msgid "wye" msgstr "ipsilon" #. Translators: the name of the Return key -#: ../src/tutor.c:1685 +#: ../src/tutor.c:1813 msgid "enter" msgstr "invio" -#: ../src/tutor.c:1691 +#: ../src/tutor.c:1819 msgid "apostrophe" msgstr "apostrofo" #. Translators: double quote symbol: " -#: ../src/tutor.c:1695 +#: ../src/tutor.c:1823 msgid "quote" msgstr "doppi apici" #. Translators: ampersand symbol: & -#: ../src/tutor.c:1699 +#: ../src/tutor.c:1827 msgid "ampersand" msgstr "\"e\" commerciale" -#. Error frequencies or touch times -#. -#: ../src/plot.c:308 +#: ../src/plot.c:305 msgid "Character" msgstr "" @@ -1018,11 +1016,11 @@ msgid "Date & Time" msgstr "Data e ora" -#: ../src/basic.c:331 +#: ../src/basic.c:326 msgid "Positions of keys seems to be learned!" msgstr "Sembra sia stata appresa la posizione dei tasti." -#: ../src/basic.c:332 +#: ../src/basic.c:327 msgid "" " Congratulations!\n" " You have accomplished the entire basic course.\n" @@ -1034,7 +1032,7 @@ " Passare al successivo esercizio: «adattabilità».\n" " Sarà possibile imparare principalmente la precisione.\n" -#: ../src/basic.c:338 +#: ../src/basic.c:333 msgid "" " All right, now you got it!\n" " Go to the next lesson.\n" @@ -1042,34 +1040,36 @@ " Perfetto, completato.\n" " Passare alla lezione successiva.\n" -#: ../src/adaptability.c:217 +#: ../src/adaptability.c:213 +#, fuzzy, c-format msgid "" -" Your accuracy rate is below 90%...\n" +" Your accuracy rate is below %.0f%%...\n" " Could you please try again to improve it?\n" msgstr "" " La valutazione della precisione è inferiore al 90%...\n" " Riprovare per migliorarla?\n" -#: ../src/adaptability.c:222 +#: ../src/adaptability.c:216 +#, fuzzy, c-format msgid "" " You are doing well. But...\n" -" Could you make the accuracy reach 95%?\n" +" Could you make the accuracy reach %.0f%%?\n" msgstr "" " Buon livello. Ma...\n" " È possibile che la precisione raggiunga il 95%?\n" -#: ../src/adaptability.c:225 -#, c-format +#: ../src/adaptability.c:219 +#, fuzzy, c-format msgid "" " You are almost there, but your accuracy rate is still below %.0f%%.\n" -" Try a few more times, or maybe you're getting upset, so go to other kind of " -"exercise.\n" +" Try a few more times, or maybe you're getting upset, so go to another kind " +"of exercise.\n" msgstr "" " Obiettivo quasi raggiunto, ma la precisione è ancora inferiore al %.0f%%.\n" " Provare ancora qualche volta, oppure provare con un differente tipo di " "esercizio.\n" -#: ../src/adaptability.c:232 +#: ../src/adaptability.c:226 #, c-format msgid "" " Very good!\n" @@ -1082,11 +1082,11 @@ " È ora necessario aumentare la velocità.\n" " Passare al terzo esercizio del menù principale.\n" -#: ../src/velocity.c:313 ../src/fluidness.c:435 +#: ../src/velocity.c:312 ../src/fluidness.c:435 msgid "Pasted_or_dropped" msgstr "Pasted_or_dropped" -#: ../src/velocity.c:432 +#: ../src/velocity.c:423 msgid "" " You are just beginning.\n" " Be patient, try it again every day, rest and don't worry so much:\n" @@ -1096,31 +1096,34 @@ " Bisogna essere pazienti e riprovare ogni giorno:\n" " la persistenza e la pratica miglioreranno la propria velocità.\n" -#: ../src/velocity.c:436 +#: ../src/velocity.c:427 +#, fuzzy, c-format msgid "" " Still away from the highway. You can make better...\n" -" Try at least 20 WPM.\n" +" Try to reach at least %.0f WPM.\n" msgstr "" " L'obiettivo è ancora lontano. È possibile fare di meglio...\n" " Provare a digitare almeno 20 parole per minuto.\n" -#: ../src/velocity.c:439 +#: ../src/velocity.c:430 +#, fuzzy, c-format msgid "" " You are doing well, but need to go faster.\n" -" And don't forget the accuracy. Try to get 30 WPM.\n" +" And don't forget the accuracy. Try to get %.0f WPM.\n" msgstr "" " Ci sono buoni risultati, ma è necessario essere più veloci.\n" " Senza dimenticare la precisione. Provare a digitare 30 parole per minuto.\n" -#: ../src/velocity.c:443 +#: ../src/velocity.c:433 +#, fuzzy, c-format msgid "" " Fine. Now you need to start running.\n" -" Can you reach 40 WPM?\n" +" Can you reach %.0f WPM?\n" msgstr "" " Ben fatto. Ora è necessario aumentare ancora la velocità.\n" " È possibile raggiungere le 40 parole per minuto?\n" -#: ../src/velocity.c:446 +#: ../src/velocity.c:436 #, c-format msgid "" " Very good. You are almost there.\n" @@ -1129,7 +1132,7 @@ " Molto bene. Il traguardo è vicino.\n" " Alla fine, è possibile raggiungere le %.0f parole per minuto?\n" -#: ../src/velocity.c:451 +#: ../src/velocity.c:439 msgid "" " Excellent. For this course, that is enough.\n" " Try now the fluidness exercises, OK?\n" @@ -1137,31 +1140,34 @@ " Eccellente. Per questo corso è tutto.\n" " Provare ora con gli esercizi di fluidità?\n" -#: ../src/velocity.c:455 +#: ../src/velocity.c:442 +#, fuzzy, c-format msgid "" -" Fast! Are you training for a competition?\n" -" So, try to get 70 WPM!\n" +" Fast! Are you a professional?\n" +" So, try to get %.0f WPM!\n" msgstr "" " Veloce.\n" " Provare ora ad ottenere 70 parole per minuto.\n" -#: ../src/velocity.c:458 -msgid "" -" Top of \"qwerty\". Now it's time to change to the Dvorak mode.\n" -" Are you afraid of reaching 80 WPM?\n" +#. Translators: Speed Racer is a reference to a Japanese anime franchise +#. about automobile racing, also known as Mach GoGoGo. +#: ../src/velocity.c:447 +#, c-format +msgid " Ranking good, Speed Racer! Are you afraid of reaching %.0f WPM?\n" msgstr "" -" Il top del \"qwerty\". Ora è tempo di passare alla modalità Dvorak.\n" -" Sarà possibile raggiungere le 80 parole per minuto?\n" -#: ../src/velocity.c:462 +#. Translators: feel free to change the reference to that martial art, if you find another good analogy. +#: ../src/velocity.c:451 +#, fuzzy, c-format msgid "" -" Dvorak mode dominated!\n" -" Can you fly at 90 WPM?\n" +" Kunf-fu mastering!\n" +" Can you fly at %.0f WPM?\n" msgstr "" " Modalità Dvorak dominata.\n" " Provare a raggiungere le 90 parole per minuto?\n" -#: ../src/velocity.c:466 +#. Translators: Dvorak here means that infamous ergonomic keyboard layout. +#: ../src/velocity.c:454 msgid "" " Dvorak master!\n" " I have no words to express my admiration!\n" @@ -1169,7 +1175,7 @@ " Ottima padronanza nella modalità Dvorak.\n" " Il risultato raggiunto è eccellente.\n" -#: ../src/fluidness.c:545 +#: ../src/fluidness.c:538 #, c-format msgid "" " You type accurately but not so fast.\n" @@ -1178,7 +1184,7 @@ " La digitazione è precisa ma non abbastanza veloce.\n" " È possibile raggiungere le %.0f parole per minuto?\n" -#: ../src/fluidness.c:548 +#: ../src/fluidness.c:541 #, c-format msgid "" " Your rhythm is not so constant. Calm down.\n" @@ -1188,7 +1194,7 @@ " Per il momento provare a raggiungere un livello di fluidità superiore a %i" "%%.\n" -#: ../src/fluidness.c:551 +#: ../src/fluidness.c:544 #, c-format msgid "" " You are almost getting there. Type more fluently.\n" @@ -1197,7 +1203,7 @@ " Obiettivo quasi raggiunto. Digitare in maniera più fluida.\n" " È necessario raggiungere una fluidità superiore al %.0f%%.\n" -#: ../src/fluidness.c:554 +#: ../src/fluidness.c:547 msgid "" " Congratulations!\n" " It seems to me that you are a professional.\n" @@ -1208,7 +1214,7 @@ " Sembra che sia stato raggiunto un livello professionale.\n" " Questo programma non è più necessario.\n" -#: ../src/fluidness.c:559 +#: ../src/fluidness.c:552 msgid "" " How can you type so fast?\n" " You have exceeded all my expectations.\n" @@ -1267,5 +1273,21 @@ msgid "Could not upload/download scores." msgstr "Impossibile caricare o scaricare i punteggi." +#~ msgid "" +#~ " Top of \"qwerty\". Now it's time to change to the Dvorak mode.\n" +#~ " Are you afraid of reaching 80 WPM?\n" +#~ msgstr "" +#~ " Il top del \"qwerty\". Ora è tempo di passare alla modalità Dvorak.\n" +#~ " Sarà possibile raggiungere le 80 parole per minuto?\n" + +#~ msgid "Press here to restart the exercise. Hotkey: [Ctrl R]" +#~ msgstr "Premere qui per riavviare l'esercizio. Scorciatoia: [Ctrl R]" + +#~ msgid "_Font" +#~ msgstr "Ca_rattere" + +#~ msgid "Klavaro" +#~ msgstr "Klavaro" + #~ msgid "Default" #~ msgstr "Predefinito" diff -Nru klavaro-1.9.9/po/kk.po klavaro-3.00/po/kk.po --- klavaro-1.9.9/po/kk.po 2013-08-15 13:38:50.000000000 +0000 +++ klavaro-3.00/po/kk.po 2014-01-13 23:25:51.000000000 +0000 @@ -1,562 +1,565 @@ # Klavaro translation to Kazakh. -# Copyright (C) 2010 Klavaro team +# Copyright (C) 2013 the Klavaro team. # This file is distributed under the same license as the klavaro package. +# # Myrza Taizhanov , 2009. -# Baurzhan Muftakhidinov , 2010. +# Baurzhan Muftakhidinov , 2010, 2013 msgid "" msgstr "" -"Project-Id-Version: klavaro 1.8.0-pre1\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2013-08-15 10:38-0300\n" -"PO-Revision-Date: 2011-01-25 15:10+0600\n" +"Project-Id-Version: klavaro 1.9.7\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2014-01-13 21:25-0200\n" +"PO-Revision-Date: 2013-12-20 08:38+0600\n" "Last-Translator: Baurzhan Muftakhidinov \n" -"Language-Team: Kazakh \n" +"Language-Team: Kazakh <(nothing)>\n" "Language: kk\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Poedit-Language: Kazakh\n" -"X-Poedit-Country: KAZAKHSTAN\n" "X-Poedit-SourceCharset: utf-8\n" -"Plural-Forms: nplurals=2; plural=n>1;\n" - -#: ../data/klavaro.desktop.in.h:1 ../data/klavaro.glade.h:59 -msgid "Yet another touch typing tutor" -msgstr "Тағы да бір теруді үйретуші" +"Plural-Forms: nplurals=1; plural=0;\n" +"X-Generator: Poedit 1.5.7\n" #: ../data/klavaro.glade.h:1 -msgid "Klavaro - Main menu" -msgstr "Klavaro - Басты мәзір" +msgid "About 'Klavaro'" +msgstr "'Klavaro' жөнінде" #: ../data/klavaro.glade.h:2 -msgid "Don't be shy about learning the basics!" -msgstr "Алғашқы оқуға ұялмаңыз!" +msgid "Yet another touch typing tutor" +msgstr "Тағы да бір теруді үйретуші" #: ../data/klavaro.glade.h:3 -msgid "Learn how to type correctly" -msgstr "Дұрыс теруге үйреніңіз" +msgid "Remember always: someone loves you!" +msgstr "Еске сақтаңыз: сізді де біреу сүйеді!" #: ../data/klavaro.glade.h:4 -msgid "Initial training for your fingers." -msgstr "Саусақтарыңызға бастапқы машықтану." +msgid "Change language" +msgstr "Тілді ауыстыру" #: ../data/klavaro.glade.h:5 -msgid "First steps with initial training" -msgstr "Бастапқы машықтанумен алғашқы қадамдар" +msgid "Attention!" +msgstr "Ескерту!" #: ../data/klavaro.glade.h:6 -msgid "Memorizing the keyboard practicing random keys exercises." -msgstr "Кездейсоқ жаттығулар көмегімен пернетақтаны есте сақтау." +msgid "Do you confirm?" +msgstr "Сіз сенімдісіз бе?" #: ../data/klavaro.glade.h:7 -msgid "Practice with random keys" -msgstr "Кездейсоқ пернелермен машықтану" +msgid "_No" +msgstr "Ж_оқ" + +#: ../data/klavaro.glade.h:8 +msgid "_Yes" +msgstr "_Ия" -#. English typo: touchs -> touches #: ../data/klavaro.glade.h:9 -msgid "Accelerating the touches practicing random words exercises." -msgstr "Кездейсоқ сөздік жаттығулар көмегімен теру машығын үдету." +msgid "Help?" +msgstr "Көмек?" #: ../data/klavaro.glade.h:10 -msgid "Practice with random words" -msgstr "Кездейсоқ сөздермен машықтану" +msgid "This is a tip. Now you press this button to return to the main menu." +msgstr "Бұл - кеңес. Енді бұл батырманы шертіп, басты мәзірге оралыңыз." #: ../data/klavaro.glade.h:11 -msgid "Becoming proficient practicing complete paragraphs exercises." -msgstr "Толық мәтіндер көмегімен тәжірибе жинау." +msgid "B_ack to menu" +msgstr "Мә_зірге оралу" #: ../data/klavaro.glade.h:12 -msgid "Practice with complete texts" -msgstr "Толық мәтіндермен машықтану" +msgid "" +"The main menu of the application is very straightforward. Just select the " +"type of exercise you wish to take. Do not worry about clicking any button on " +"the screen. The buttons will never hurt you!" +msgstr "" +"Бағдарламаның басты мәзірі сізбен дос. Тек қалаған жаттығуды таңданыз. Экран " +"бетіндегі кез-келген батырмаға басуға қобалжымаңыз. Батырма өткір пышақ емес!" #: ../data/klavaro.glade.h:13 msgid "" -"Keyboard layout for modules 1 and 2. Also used informatively in the " -"fluidness contest." +"Also the controls have tips which will appear if you hover over them with " +"your mouse. These tips can come in very handy. To see how these tips work, " +"position your mouse over the button below, and without clicking, wait for " +"the tip to appear..." msgstr "" -"1 мен 2 модульге пернетақта жаймасы. Сондай-ақ жаттықтыққа сайыста " -"қолданылады." +"Басқару батырмаларында да кеңестер бар, тышқанды апарғанда көрсетіледі. Бұл " +"кеңестердің әсері көп. Оны істе көру үшін, төмендегі батырмаға тышқанды " +"апарыңыз, шертпей-ақ үстіне орнатыңыз, және біраз күтіңіз..." #: ../data/klavaro.glade.h:14 -msgid "_Keyboard:" -msgstr "П_ернетақта:" +msgid "Klavaro - Select file" +msgstr "Klavaro - Файлды таңдау" #: ../data/klavaro.glade.h:15 -msgid "Language for modules 3 and 4." -msgstr "3 пен 4 модульдеріне тіл" +msgid "_Cancel" +msgstr "Б_ас тарту" #: ../data/klavaro.glade.h:16 -msgid "_Language:" -msgstr "Ті_л:" +msgid "_Open" +msgstr "А_шу" #: ../data/klavaro.glade.h:17 -msgid "Variant" -msgstr "Нұсқа" +msgid "Re_name:" +msgstr "Ат_ын ауыстыру:" #: ../data/klavaro.glade.h:18 -msgid "Klavaro" -msgstr "Klavaro" +msgid "Rename the selected item." +msgstr "Белгіленген бөлік атын ауыстыру." #: ../data/klavaro.glade.h:19 -msgid "Country / Custom" -msgstr "Ел / Таңдауыңызша" +msgid "" +"Read a text file and add a copy of it here. The file must be encoded in " +"UTF-8." +msgstr "Мәтіндік файлды оқу мен көшіру. Файл UTF-8 кодына сай болу керек." #: ../data/klavaro.glade.h:20 -msgid "Your language here." -msgstr "Сіздің тіліңіз осында." +msgid "_Open text file" +msgstr "Мәті_ндік файлды ашу" #: ../data/klavaro.glade.h:21 -#, fuzzy -msgid "Speech" -msgstr "Жылдамдық" +msgid "Paste text that was copied to the clipboard." +msgstr "Алмасу буферіндегі мәтінді кірістіру." #: ../data/klavaro.glade.h:22 -msgid "Little tip about this program." -msgstr "Бағдарлама жөнінде бір ауыз сөз." +msgid "_Paste from clipboard" +msgstr "Ал_масу буферінен кірістіру" #: ../data/klavaro.glade.h:23 -msgid "_Help" -msgstr "Кө_мек" +msgid "Remove the selected item." +msgstr "Белгіленген бөлікті өшіру." #: ../data/klavaro.glade.h:24 -msgid "General information about the program." -msgstr "Бағдарлама жөніңде жалпы ақпарат." +msgid "_Remove copied file" +msgstr "Кө_шірілген файлды өшіру" #: ../data/klavaro.glade.h:25 -msgid "_About..." -msgstr "Осы _туралы..." +msgid "Apply the selected item to create an exercise." +msgstr "Жаңа жаттығуды жасау үшін белгіленген бөлікті іске асыру." #: ../data/klavaro.glade.h:26 -msgid "Exit the application immediately." -msgstr "Қолданбадан қазір шығу." +msgid "_Apply" +msgstr "Іс_ке асыру" #: ../data/klavaro.glade.h:27 -msgid "_Close" -msgstr "_Жабу" +msgid "Close this window." +msgstr "Осы терезені жабу." #: ../data/klavaro.glade.h:28 -msgid "Load other exercises/lessons" -msgstr "Басқа жаттығулар/сабақтарды жүктеу" +msgid "_Close" +msgstr "_Жабу" #: ../data/klavaro.glade.h:29 -msgid "_Other texts" -msgstr "Ба_сқа да мәтіндер" +msgid "Country / Custom" +msgstr "Ел / Таңдауыңызша" #: ../data/klavaro.glade.h:30 -msgid "_Lesson:" -msgstr "Са_бақ:" +msgid "Variant" +msgstr "Нұсқа" #: ../data/klavaro.glade.h:31 -msgid "Edit the character set to be used in this lesson." -msgstr "Осы сабақта қолданылатын әріптер жиынын өзгерту." +msgid "Remove the selected custom layout." +msgstr "Тандалған перне жаймасын өшіру." #: ../data/klavaro.glade.h:32 -msgid "Edit the character set to be used in lessons 44 through 50." -msgstr "44-50 сабақтарда қолданылатын әріптер жиынын өзгерту." +msgid "_Remove" +msgstr "Ө_шіру" #: ../data/klavaro.glade.h:33 -msgid "This is a specific exercise, adjusted to your error profile." -msgstr "Бұл арнайы жаттығу, сіздің қателеріңізге бейімделген." +msgid "" +"Toggles the shift effect on the keys. Alternates between the upper and lower " +"characters of the keys." +msgstr "Батырмалар ауыстырғышы. Үлкен және кіші әріптерін теру айырмашылығы." -#: ../data/klavaro.glade.h:34 ../src/tutor.c:252 -msgid "Drag and drop text here to practice with it." -msgstr "Мәтінмен шынығу үшін оны осында ұстап тартып әкеліңіз." +#: ../data/klavaro.glade.h:34 +msgid "SPACE BAR" +msgstr "SPACE BAR" -#: ../data/klavaro.glade.h:35 -msgid "Press here to restart the exercise. Hotkey: [Ctrl R]" -msgstr "Жаттығуды қайта бастау үшін осында шертіңіз. ЫсПер:[Ctrl R]" +#: ../data/klavaro.glade.h:35 ../src/keyboard.c:1630 +msgid "thumbs" +msgstr "бас саусақтар" #: ../data/klavaro.glade.h:36 -msgid "Show the virtual keyboard and the relation between fingers and keys." -msgstr "Виртуалды пернетақтаны мен саусақ пен пернелер қатынасын көрсету." +msgid "Ctrl" +msgstr "Ctrl" #: ../data/klavaro.glade.h:37 -msgid "_Keyboard" -msgstr "Перн_етақта" +msgid "Caps" +msgstr "Caps" #: ../data/klavaro.glade.h:38 -msgid "Select the font to be used in the exercise window." -msgstr "Жаттығу терезесінде қолданылатын қаріпті таңдау." +msgid "S_ave as:" +msgstr "Қала_йша сақтау:" #: ../data/klavaro.glade.h:39 -msgid "_Font" -msgstr "Қарі_п" +msgid "Show previous screen." +msgstr "Алдыңғы экранды көрсету." #: ../data/klavaro.glade.h:40 -msgid "Keep this checked if you want to get those nice beeps." -msgstr "Жағымды дыбысты естуді қаласаңыз, осыны белгілеңіз." +msgid "_Previous step" +msgstr "_Алдыңғы қадам" #: ../data/klavaro.glade.h:41 -msgid "_Beep" -msgstr "Д_ыбыс" +msgid "Show next screen." +msgstr "Келесі экранды көрсету." #: ../data/klavaro.glade.h:42 -msgid "Co_urse information" -msgstr "Курс ақ_параты" +msgid "_Next step" +msgstr "_Келесі қадам" #: ../data/klavaro.glade.h:43 -msgid "Charts showing the learning progress along the exercises." -msgstr "Жаттығу бойынша үйрену үрдісін көрсететін сызба." +msgid "Return without any modification." +msgstr "Еш өзгерусіз шығу." #: ../data/klavaro.glade.h:44 -msgid "_Progress" -msgstr "Үрді_с" +msgid "Save the current keyboard layout with the name specified above." +msgstr "Пернетақта жаймасын жоғарыда аталған атпен сақтау." #: ../data/klavaro.glade.h:45 -msgid "Show local and external scores from other users." -msgstr "Басқа да пайдаланушылардың ішкі және сыртқы нәтижесін көрсету." +msgid "_Save and use" +msgstr "Сақ_тау мен қолдану" #: ../data/klavaro.glade.h:46 -msgid "_Top 10" -msgstr "Алға_шқы 10-дық" +msgid "" +"If you like those beautiful hands, click here to close this window keeping " +"them." +msgstr "Мына әдемі қолдарды экранда көргіңіз келсе, осыны белгілеңіз." #: ../data/klavaro.glade.h:47 -msgid "Return to the main menu." -msgstr "Басты мәзірге оралу." +msgid "_Keep hands" +msgstr "Қ_олдарды көрсету" #: ../data/klavaro.glade.h:48 -msgid "B_ack to menu" -msgstr "Мә_зірге оралу" +msgid "Klavaro - Main menu" +msgstr "Klavaro - Басты мәзір" #: ../data/klavaro.glade.h:49 -msgid "Close this window." -msgstr "Осы терезені жабу." +msgid "Don't be shy about learning the basics!" +msgstr "Алғашқы оқуға ұялмаңыз!" #: ../data/klavaro.glade.h:50 -msgid "Font definition" -msgstr "Қаріп сипаттамасы" +msgid "Learn how to type correctly" +msgstr "Дұрыс теруге үйреніңіз" #: ../data/klavaro.glade.h:51 -msgid "Top 10" -msgstr "Алғашқы 10-дық" +msgid "Initial training for your fingers." +msgstr "Саусақтарыңызға бастапқы машықтану." #: ../data/klavaro.glade.h:52 -msgid "Show extra information" -msgstr "Қосымша ақпаратты көрсету" +msgid "First steps with initial training" +msgstr "Бастапқы машықтанумен алғашқы қадамдар" #: ../data/klavaro.glade.h:53 -msgid "Hide extra information" -msgstr "Қосымша ақпаратты жасыру" +msgid "Memorizing the keyboard practicing random keys exercises." +msgstr "Кездейсоқ жаттығулар көмегімен пернетақтаны есте сақтау." #: ../data/klavaro.glade.h:54 -msgid "Publish to the web your local scores." -msgstr "Ішкі нәтижені сайтқа жариялау." +msgid "Practice with random keys" +msgstr "Кездейсоқ пернелермен машықтану" #: ../data/klavaro.glade.h:55 -msgid "_Participate" -msgstr "Қат_ысу" +msgid "Accelerating the touches practicing random words exercises." +msgstr "Кездейсоқ сөздік жаттығулар көмегімен теру машығын үдету." #: ../data/klavaro.glade.h:56 -msgid "Download from the web the most up to date ranking." -msgstr "Бірінші қатардағылар тізімін интернеттен алу." +msgid "Practice with random words" +msgstr "Кездейсоқ сөздермен машықтану" #: ../data/klavaro.glade.h:57 -msgid "_Update" -msgstr "Жаңар_ту" +msgid "Becoming proficient practicing complete paragraphs exercises." +msgstr "Толық мәтіндер көмегімен тәжірибе жинау." #: ../data/klavaro.glade.h:58 -msgid "About 'Klavaro'" -msgstr "'Klavaro' жөнінде" +msgid "Practice with complete texts" +msgstr "Толық мәтіндермен машықтану" + +#: ../data/klavaro.glade.h:59 +msgid "" +"Keyboard layout for modules 1 and 2. Also used informatively in the " +"fluidness contest." +msgstr "" +"1 мен 2 модульге пернетақта жаймасы. Сондай-ақ жаттықтыққа сайыста " +"қолданылады." #: ../data/klavaro.glade.h:60 -msgid "Remember always: someone loves you!" -msgstr "Еске сақтаңыз: сізді де біреу сүйеді!" +msgid "_Keyboard:" +msgstr "П_ернетақта:" #: ../data/klavaro.glade.h:61 -msgid "Remove the selected custom layout." -msgstr "Тандалған перне жаймасын өшіру." +msgid "Language for modules 3 and 4." +msgstr "3 пен 4 модульдеріне тіл" #: ../data/klavaro.glade.h:62 -msgid "_Remove" -msgstr "Ө_шіру" +msgid "_Language:" +msgstr "Ті_л:" #: ../data/klavaro.glade.h:63 -msgid "" -"Toggles the shift effect on the keys. Alternates between the upper and lower " -"characters of the keys." -msgstr "Батырмалар ауыстырғышы. Үлкен және кіші әріптерін теру айырмашылығы." +msgid "Speech" +msgstr "Сөйлеу" #: ../data/klavaro.glade.h:64 -msgid "SPACE BAR" -msgstr "SPACE BAR" +msgid "Your language here." +msgstr "Сіздің тіліңіз осында." -#: ../data/klavaro.glade.h:65 ../src/keyboard.c:1630 -msgid "thumbs" -msgstr "бас саусақтар" +#: ../data/klavaro.glade.h:65 +msgid "Little tip about this program." +msgstr "Бағдарлама жөнінде бір ауыз сөз." #: ../data/klavaro.glade.h:66 -msgid "Ctrl" -msgstr "Ctrl" +msgid "_Help" +msgstr "Кө_мек" #: ../data/klavaro.glade.h:67 -msgid "Caps" -msgstr "Caps" +msgid "General information about the program." +msgstr "Бағдарлама жөніңде жалпы ақпарат." #: ../data/klavaro.glade.h:68 -msgid "S_ave as:" -msgstr "Қала_йша сақтау:" +msgid "_About..." +msgstr "Осы _туралы..." #: ../data/klavaro.glade.h:69 -msgid "Show previous screen." -msgstr "Алдыңғы экранды көрсету." +msgid "Exit the application immediately." +msgstr "Қолданбадан қазір шығу." #: ../data/klavaro.glade.h:70 -msgid "_Previous step" -msgstr "_Алдыңғы қадам" +msgid "Klavaro - Progress" +msgstr "Klavaro - Прогресс" #: ../data/klavaro.glade.h:71 -msgid "Show next screen." -msgstr "Келесі экранды көрсету." +msgid "_Lesson:" +msgstr "Са_бақ:" #: ../data/klavaro.glade.h:72 -msgid "_Next step" -msgstr "_Келесі қадам" +msgid "Value" +msgstr "Мәні" #: ../data/klavaro.glade.h:73 -msgid "Return without any modification." -msgstr "Еш өзгерусіз шығу." +msgid "Close this window, returning to the exercise." +msgstr "Жаттығуға оралу үшін мына терезені жабу." #: ../data/klavaro.glade.h:74 -msgid "_Cancel" -msgstr "Б_ас тарту" +msgid "Clear all the progress data, for every module." +msgstr "Барлық үрдіс ақпаратын өшіру, әр модуль үшін." #: ../data/klavaro.glade.h:75 -msgid "Save the current keyboard layout with the name specified above." -msgstr "Пернетақта жаймасын жоғарыда аталған атпен сақтау." +msgid "_Reset" +msgstr "_Тастау" #: ../data/klavaro.glade.h:76 -msgid "_Save and use" -msgstr "Сақ_тау мен қолдану" +msgid "Top 10" +msgstr "Алғашқы 10-дық" #: ../data/klavaro.glade.h:77 -msgid "" -"If you like those beautiful hands, click here to close this window keeping " -"them." -msgstr "Мына әдемі қолдарды экранда көргіңіз келсе, осыны белгілеңіз." +#, fuzzy +msgid "Show extra information." +msgstr "Қосымша ақпаратты көрсету" #: ../data/klavaro.glade.h:78 -msgid "_Keep hands" -msgstr "Қ_олдарды көрсету" +#, fuzzy +msgid "Hide extra information." +msgstr "Қосымша ақпаратты жасыру" #: ../data/klavaro.glade.h:79 -msgid "Change language" -msgstr "Тілді ауыстыру" +msgid "Publish to the web your local scores." +msgstr "Ішкі нәтижені сайтқа жариялау." #: ../data/klavaro.glade.h:80 -msgid "Attention!" -msgstr "Ескерту!" +msgid "_Participate" +msgstr "Қат_ысу" #: ../data/klavaro.glade.h:81 -msgid "Do you confirm?" -msgstr "Сіз сенімдісіз бе?" +msgid "Download from the web the most up to date ranking." +msgstr "Бірінші қатардағылар тізімін интернеттен алу." #: ../data/klavaro.glade.h:82 -msgid "_No" -msgstr "Ж_оқ" +msgid "_Update" +msgstr "Жаңар_ту" #: ../data/klavaro.glade.h:83 -msgid "_Yes" -msgstr "_Ия" +msgid "Load other exercises/lessons" +msgstr "Басқа жаттығулар/сабақтарды жүктеу" #: ../data/klavaro.glade.h:84 -msgid "Re_name:" -msgstr "Ат_ын ауыстыру:" +msgid "_Other texts" +msgstr "Ба_сқа да мәтіндер" #: ../data/klavaro.glade.h:85 -msgid "Rename the selected item." -msgstr "Белгіленген бөлік атын ауыстыру." +msgid "Edit the character set to be used in this lesson." +msgstr "Осы сабақта қолданылатын әріптер жиынын өзгерту." #: ../data/klavaro.glade.h:86 -msgid "" -"Read a text file and add a copy of it here. The file must be encoded in " -"UTF-8." -msgstr "Мәтіндік файлды оқу мен көшіру. Файл UTF-8 кодына сай болу керек." +msgid "This is a specific exercise, adjusted to your error profile." +msgstr "Бұл арнайы жаттығу, сіздің қателеріңізге бейімделген." #: ../data/klavaro.glade.h:87 -msgid "_Open text file" -msgstr "Мәті_ндік файлды ашу" +#, fuzzy +msgid "" +"Edit the character set to be used in lessons after 43: they are customizable!" +msgstr "44-50 сабақтарда қолданылатын әріптер жиынын өзгерту." -#: ../data/klavaro.glade.h:88 -msgid "Paste text that was copied to the clipboard." -msgstr "Алмасу буферіндегі мәтінді кірістіру." +#: ../data/klavaro.glade.h:88 ../src/tutor.c:376 +msgid "Drag and drop text here to practice with it." +msgstr "Мәтінмен шынығу үшін оны осында ұстап тартып әкеліңіз." #: ../data/klavaro.glade.h:89 -msgid "_Paste from clipboard" -msgstr "Ал_масу буферінен кірістіру" +#, fuzzy +msgid "Press here to restart the exercise. Hotkey: [Ctrl-R]" +msgstr "Жаттығуды қайта бастау үшін осында шертіңіз. ЫсПер:[Ctrl R]" #: ../data/klavaro.glade.h:90 -msgid "Remove the selected item." -msgstr "Белгіленген бөлікті өшіру." +msgid "Show the virtual keyboard and the relation between fingers and keys." +msgstr "Виртуалды пернетақтаны мен саусақ пен пернелер қатынасын көрсету." #: ../data/klavaro.glade.h:91 -msgid "_Remove copied file" -msgstr "Кө_шірілген файлды өшіру" +msgid "_Keyboard" +msgstr "Перн_етақта" #: ../data/klavaro.glade.h:92 -msgid "Apply the selected item to create an exercise." -msgstr "Жаңа жаттығуды жасау үшін белгіленген бөлікті іске асыру." +msgid "Select the font to be used in the exercise window." +msgstr "Жаттығу терезесінде қолданылатын қаріпті таңдау." #: ../data/klavaro.glade.h:93 -msgid "_Apply" -msgstr "Іс_ке асыру" +msgid "Font definition" +msgstr "Қаріп сипаттамасы" #: ../data/klavaro.glade.h:94 -msgid "Klavaro - Progress" -msgstr "Klavaro - Үрдіс" +msgid "Keep this checked if you want to get those nice beeps." +msgstr "Жағымды дыбысты естуді қаласаңыз, осыны белгілеңіз." #: ../data/klavaro.glade.h:95 -msgid "Value" -msgstr "Мәні" +msgid "_Beep" +msgstr "Д_ыбыс" #: ../data/klavaro.glade.h:96 -msgid "Clear all the progress data, for every module." -msgstr "Барлық үрдіс ақпаратын өшіру, әр модуль үшін." +msgid "Co_urse information" +msgstr "Курс ақ_параты" #: ../data/klavaro.glade.h:97 -msgid "_Reset" -msgstr "_Тастау" +msgid "Charts showing the learning progress along the exercises." +msgstr "Жаттығу бойынша үйрену үрдісін көрсететін сызба." #: ../data/klavaro.glade.h:98 -msgid "Close this window, returning to the exercise." -msgstr "Жаттығуға оралу үшін мына терезені жабу." +msgid "_Progress" +msgstr "Үрді_с" #: ../data/klavaro.glade.h:99 -msgid "Klavaro - Select file" -msgstr "Klavaro - Файлды таңдау" +msgid "Return to the main menu." +msgstr "Басты мәзірге оралу." #: ../data/klavaro.glade.h:100 -msgid "_Open" -msgstr "А_шу" +msgid "Show local and external scores from other users." +msgstr "Басқа да пайдаланушылардың ішкі және сыртқы нәтижесін көрсету." #: ../data/klavaro.glade.h:101 -msgid "Help?" -msgstr "Көмек?" - -#: ../data/klavaro.glade.h:102 -msgid "" -"The main menu of the application is very straightforward. Just select the " -"type of exercise you wish to take. Do not worry about clicking any button on " -"the screen. The buttons will never hurt you!" -msgstr "" -"Бағдарламаның басты мәзірі сізбен дос. Тек қалаған жаттығуды таңданыз. Экран " -"бетіндегі кез-келген батырмаға басуға қобалжымаңыз. Батырма өткір пышақ емес!" +msgid "_Top 10" +msgstr "Алға_шқы 10-дық" -#: ../data/klavaro.glade.h:103 -msgid "" -"Also the controls have tips which will appear if you hover over them with " -"your mouse. These tips can come in very handy. To see how these tips work, " -"position your mouse over the button below, and without clicking, wait for " -"the tip to appear..." -msgstr "" -"Басқару батырмаларында да кеңестер бар, тышқанды апарғанда көрсетіледі. Бұл " -"кеңестердің әсері көп. Оны істе көру үшін, төмендегі батырмаға тышқанды " -"апарыңыз, шертпей-ақ үстіне орнатыңыз, және біраз күтіңіз..." +#: ../data/klavaro.desktop.in.h:1 +#, fuzzy +msgid "A very flexible and efficient touch typing tutor." +msgstr "Тағы да бір теруді үйретуші" -#: ../data/klavaro.glade.h:104 -msgid "This is a tip. Now you press this button to return to the main menu." -msgstr "Бұл - кеңес. Енді бұл батырманы шертіп, басты мәзірге оралыңыз." +#. Translators: these are keywords related to the program. CAI above means Computer Aided Instruction. Feel free to add and/or change the keywords in your language. +#: ../data/klavaro.desktop.in.h:3 +#, fuzzy +msgid "keyboard;typing;tutor;CAI" +msgstr "Пернетақта" -#: ../src/main.c:314 +#: ../src/main.c:242 msgid "(Custom)" msgstr "(Таңдауыңызша)" -#: ../src/main.c:315 +#: ../src/main.c:243 msgid "(Edit custom)" msgstr "(Таңдауыңызшаны түзету)" -#: ../src/main.c:316 +#: ../src/main.c:244 msgid "(Default)" msgstr "(Бастапқы)" -#: ../src/main.c:393 +#: ../src/main.c:321 #, c-format msgid "Dictation mode (depends on this speech synthesizer: %s)" msgid_plural "Dictation mode (depends on one of these speech synthesizers: %s)" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "Сөйлеу режимі (сөйлеу синтезаторына байланысты: %s)" -#. Set main labels (for translation) -#. -#: ../src/main.c:435 ../src/keyboard.c:1291 +#: ../src/main.c:364 ../src/keyboard.c:1291 msgid "Introduction" msgstr "Мазмұны" -#: ../src/main.c:438 ../src/top10.c:109 +#: ../src/main.c:367 ../src/top10.c:109 msgid "Basic course" msgstr "Бастапқы сабақ" -#: ../src/main.c:441 ../src/top10.c:112 +#: ../src/main.c:370 ../src/top10.c:112 msgid "Adaptability" msgstr "Бейімделу" -#: ../src/main.c:444 ../src/callbacks.c:1310 ../src/top10.c:89 +#: ../src/main.c:373 ../src/callbacks.c:1226 ../src/top10.c:89 #: ../src/top10.c:115 msgid "Speed" msgstr "Жылдамдық" -#: ../src/main.c:447 ../src/callbacks.c:1333 ../src/top10.c:91 +#: ../src/main.c:376 ../src/callbacks.c:1249 ../src/top10.c:91 #: ../src/top10.c:118 msgid "Fluidity" msgstr "Жаттықтық" -#: ../src/callbacks.c:468 ../src/tutor.c:391 +#: ../src/callbacks.c:407 ../src/tutor.c:515 msgid "Keys:" msgstr "Пернелер:" -#: ../src/callbacks.c:858 ../src/callbacks.c:874 +#: ../src/callbacks.c:774 ../src/callbacks.c:790 msgid "Connecting..." msgstr "Байланыс орнату..." -#: ../src/callbacks.c:1145 +#: ../src/callbacks.c:1061 msgid "Overwrite user layout" msgstr "Пайдаланушы жаймасын алмастыру" -#: ../src/callbacks.c:1147 +#: ../src/callbacks.c:1063 msgid "This will OVERWRITE an existent keyboard layout." msgstr "Бұл бар болып тұрған пернетақта жаймасын АЛМАСТЫРАДЫ." -#: ../src/callbacks.c:1154 +#: ../src/callbacks.c:1070 msgid "Remove user layout" msgstr "Пайдаланушы жаймасын өшіру" -#: ../src/callbacks.c:1156 +#: ../src/callbacks.c:1072 msgid "This will REMOVE an existent keyboard layout." msgstr "Бұл бар болып тұрған пернетақта жаймасын ӨШІРЕДІ." -#: ../src/callbacks.c:1163 +#: ../src/callbacks.c:1079 msgid "Reset progress data" msgstr "Үрдіс ақпаратын өшіру" -#: ../src/callbacks.c:1164 +#: ../src/callbacks.c:1080 msgid "This will DELETE all the progress data shown in the charts." msgstr "Бұл бар графиктердің барлық ақпаратын ӨШІРЕДІ." -#: ../src/callbacks.c:1307 ../src/top10.c:87 +#: ../src/callbacks.c:1223 ../src/top10.c:87 msgid "Accuracy" msgstr "Дәлдік" -#: ../src/callbacks.c:1310 ../src/tutor.c:1160 +#: ../src/callbacks.c:1226 ../src/tutor.c:1288 msgid "(WPM)" msgstr "(Сөз/мин)" -#: ../src/callbacks.c:1321 +#: ../src/callbacks.c:1237 msgid "Errors" msgstr "Қателер" -#: ../src/callbacks.c:1324 +#: ../src/callbacks.c:1240 msgid "Touch times (s)" -msgstr "" +msgstr "Тию саны" -#: ../src/callbacks.c:1336 ../src/tutor.c:1187 ../src/top10.c:69 +#: ../src/callbacks.c:1252 ../src/tutor.c:1315 ../src/top10.c:69 msgid "Score" msgstr "Нәтиже" #. Translators: your language code (first 2 letters of your po-file) -#: ../src/translation.c:423 ../src/translation.c:489 ../src/tutor.c:1597 +#: ../src/translation.c:485 ../src/tutor.c:1725 msgid "en" msgstr "kk" -#: ../src/translation.c:576 +#: ../src/translation.c:572 msgid "" "The basic course focuses on having you read the characters presented to you " "on screen and typing the corresponding keys. Remember to keep your hands " @@ -567,7 +570,7 @@ "үйрену үшін арналған. Есте сақтаңыз - әр уақытта қолдарыңызды сәйкес " "пернелерге дұрыс ұстаныз (басты мәзір мазмұнынан қара)." -#: ../src/translation.c:580 +#: ../src/translation.c:576 msgid "" "The key set used in each series will be shown in the above message line. The " "[Space], [Shift] and [Enter] keys may not show up there but are used very " @@ -577,7 +580,7 @@ "көрсетіледі. [Space], [Shift] және [Enter] пернелері көрсетілмесе де, олар " "өте жиі қолданылады." -#: ../src/translation.c:583 +#: ../src/translation.c:579 msgid "" "The message line below follows and echoes your key presses. If required, it " "changes and displays instructions for actions required from you." @@ -585,7 +588,7 @@ "Төмендегі хабарлау бөлігі терген перненің соңынан жүреді. Егер қажет болса, " "сізге қажетті өзгерістерді хабарлап, көрсетіп отырады." -#: ../src/translation.c:587 +#: ../src/translation.c:583 msgid "" "Here you may practice and improve your memorization of all keys. There will " "be sentences presented with nonsense words which mix some numbers and " @@ -594,7 +597,7 @@ "Мұнда барлық батырмамен машықтануға болады. Сан мен таңбалар араласқан " "кездейсоқ сөйлемдер де болады." -#: ../src/translation.c:590 +#: ../src/translation.c:586 msgid "" "In order to keep the lesson contents language and keyboard independent, " "accented letter combinations will probably not appear. For real word " @@ -604,7 +607,7 @@ "болатын әріптер жиындары кездеспеуі мүмкін. Нақты сөйлемдер үшін басты " "мәзірдегі төртінші бөлікті таңдауды өтінеміз (жаттықтық жөнінде)." -#: ../src/translation.c:594 +#: ../src/translation.c:590 msgid "" "After each exercise there will be a brief statistics panel reviewing your " "performance along with some relevant comments." @@ -612,7 +615,7 @@ "Әрбір жаттығудан кейін қосымша нұсқаулық пен сіз меңгерген қысқаша " "статистика көрсетіледі." -#: ../src/translation.c:598 +#: ../src/translation.c:594 msgid "" "This exercise is very similar to the second one, for adaptability. The " "difference is that here you'll type real words." @@ -620,7 +623,7 @@ "Бұл жаттығу үйренуде екіншіге ұқсас болып келеді. Айырмашылығы - бұл жерде " "сіз нақты сөздерді тересіз." -#: ../src/translation.c:601 +#: ../src/translation.c:597 msgid "" "The default language is the actual one of the interface. But you may select " "any other texts with words you would like to use. Press the 'Other' option " @@ -630,7 +633,7 @@ "мәтіндерді таңдауға болады. Жоғарыдағы 'Басқа' батырмасына шертіп, қажетті " "мәтіндік файлды қоса аласыз." -#: ../src/translation.c:605 +#: ../src/translation.c:601 msgid "" "With this exercise the focus is on speed. So, you are supposed to type " "really fast and I will only flatter you when you deserve it!" @@ -638,7 +641,7 @@ "Бұл жаттығу теру жылдамдығына арналған. Сонымен, сізге енді шынымен тез теру " "керек болады, оған жарасаңыз, мен сіз үшін қуанышты боламын!" -#: ../src/translation.c:609 +#: ../src/translation.c:605 msgid "" "We will now use complete sentences and paragraphs which make logical sense. " "This may distract you while you type if you try to understand what you are " @@ -650,7 +653,7 @@ "мүмкін. Алдыңғы сабақтың мақсаты сізге мәтінді түсінбей-ақ және ойланбай " "теру болған." -#: ../src/translation.c:613 +#: ../src/translation.c:609 msgid "" "We do not mean to imply that the typists must behave like a robot, without " "understanding what they type. We do aim to develop the skill of typing, " @@ -665,8 +668,7 @@ "автоматты болып, аз көңіл бөлуді сұрайды. Содан кейін ғана мәтіннің " "мазмұнына назар аудара аласыз." -#. English typo: minimun -> minimum -#: ../src/translation.c:618 +#: ../src/translation.c:613 msgid "" "These exercises are longer. Each exercise consists of three paragraphs and " "the emphasis is placed on correctness and rhythm, with a minimum speed " @@ -678,7 +680,6 @@ "батырмасымен қателерді түзеуге керек болады. Басқаша айтқанда, тек қатесіз " "енгізу есепке алынады." -#. English typo: recomendations -> recommendations #: ../src/keyboard.c:1094 msgid "" "Correct positioning of the hands and fingers is very important to efficient " @@ -770,13 +771,11 @@ msgid "Step %i" msgstr "Қадам № %i" -#. Recommendations -#: ../src/keyboard.c:1140 +#: ../src/keyboard.c:1142 msgid "To position the hands" msgstr "Қолдар орналасуы" -#. Final words -#: ../src/keyboard.c:1225 +#: ../src/keyboard.c:1227 msgid "Go ahead!" msgstr "Ақ жол!" @@ -816,23 +815,23 @@ msgid "Press and edit me" msgstr "Маған басып, өзгерт" -#: ../src/tutor.c:176 +#: ../src/tutor.c:300 msgid "Lesson:" msgstr "Сабақ:" -#: ../src/tutor.c:186 +#: ../src/tutor.c:310 msgid "Paragraphs:" msgstr "Параграфтар:" -#: ../src/tutor.c:219 +#: ../src/tutor.c:343 msgid "Klavaro - Basic Course" msgstr "Klavaro - Бастапқы сабақ" -#: ../src/tutor.c:224 +#: ../src/tutor.c:348 msgid "Klavaro - Adaptability" msgstr "Klavaro - Бейімделу" -#: ../src/tutor.c:227 +#: ../src/tutor.c:351 msgid "" "Adaptability exercises: automating the fingers responses, typing over all " "the keyboard." @@ -840,43 +839,43 @@ "Бейімделу жаттығулары: пернетақтаның барлық батырмасын баса саусақтарды " "қозғалтуға автоматтандыру." -#: ../src/tutor.c:232 +#: ../src/tutor.c:356 msgid "Klavaro - Velocity" msgstr "Klavaro - Жылдамдық" -#: ../src/tutor.c:233 +#: ../src/tutor.c:357 msgid "Velocity exercises: accelerate typing real words." msgstr "Жылдамдық жаттығулары: шын сөздерді теруді үдету." -#: ../src/tutor.c:237 +#: ../src/tutor.c:361 msgid "Klavaro - Fluidness" msgstr "Klavaro - Жаттықтық" -#: ../src/tutor.c:239 +#: ../src/tutor.c:363 msgid "Fluidness exercises: accuracy typing good sense paragraphs." msgstr "Жаттықтық жаттығулары: параграфтарды теру кезіндегі дәлдікке шынығу." -#: ../src/tutor.c:301 +#: ../src/tutor.c:425 msgid "End of exercise. Press [Enter] to start another." msgstr "Жаттығу соңы. Басқасын бастау үшін [Enter] басыңыз." -#: ../src/tutor.c:329 +#: ../src/tutor.c:453 msgid "Learning the key positions." msgstr "Пернелер орналасу орындарына үйрену." -#: ../src/tutor.c:332 +#: ../src/tutor.c:456 msgid "Press any key to start the exercise. " msgstr "Жаттығуды бастау үшін кез-келген пернені басыңыз." -#: ../src/tutor.c:440 ../src/tutor.c:443 +#: ../src/tutor.c:567 ../src/tutor.c:570 msgid "Start typing when you are ready. " msgstr "Дайын болғаннан кейін теруді бастаңыз." -#: ../src/tutor.c:441 +#: ../src/tutor.c:568 msgid "Use backspace to correct errors." -msgstr "" +msgstr "Қателерді түзету үшін backspace қолданыңыз." -#: ../src/tutor.c:885 +#: ../src/tutor.c:1012 #, c-format msgid "" "ps.: logging not performed for this session: the number of typed characters " @@ -885,116 +884,111 @@ "ps.: бұл сессияға қайта кіруге болмайды: (%i) терілген символдың саны %i " "мәнінен үлкен болу керек." -#: ../src/tutor.c:1027 +#: ../src/tutor.c:1154 msgid "ps.: you have entered the Top 10 list, great!" msgstr "ps.: Сіз Бірінші 10 қатарына ендіңіз, Бәрекелді!" -#: ../src/tutor.c:1039 +#: ../src/tutor.c:1166 msgid "" "ps.: the text you just typed doesn't seem to be similar to ordinary texts in " "the language currently selected: we can't account for it in the 'Top 10' " "contest." msgstr "" "ps.: жаңа ғана терілген мәтін берілген тілдегі шын мәтінге ұқсамайтын " -"секілді: біз 'Бірінші 10' қатарына кіре алмайсыз." +"секілді: біздің 'Бірінші 10' қатарына кіре алмайсыз." -#. Begin the accuracy -#: ../src/tutor.c:1087 +#: ../src/tutor.c:1215 msgid "STATISTICS" msgstr "СТАТИСТИКА" -#: ../src/tutor.c:1088 +#: ../src/tutor.c:1216 msgid "Elapsed time:" msgstr "Кеткен уақыт:" -#: ../src/tutor.c:1089 +#: ../src/tutor.c:1217 msgid "minute and" msgid_plural "minutes and" msgstr[0] "минут және" -msgstr[1] "Минут және" -#: ../src/tutor.c:1090 +#: ../src/tutor.c:1218 msgid "second" msgid_plural "seconds" msgstr[0] "секунд" -msgstr[1] "секунд" -#: ../src/tutor.c:1091 +#: ../src/tutor.c:1219 msgid "Error ratio:" msgstr "Қателер:" -#: ../src/tutor.c:1091 +#: ../src/tutor.c:1219 msgid "Accuracy:" -msgstr "Тиянақтық:" +msgstr "Тиянақтылық:" -#: ../src/tutor.c:1112 ../src/tutor.c:1137 ../src/tutor.c:1160 -#: ../src/tutor.c:1186 +#: ../src/tutor.c:1240 ../src/tutor.c:1265 ../src/tutor.c:1288 +#: ../src/tutor.c:1314 msgid "Goal:" msgstr "Мақсаты:" -#: ../src/tutor.c:1119 +#: ../src/tutor.c:1247 msgid "Characters per second:" msgstr "Секундына таңба:" -#: ../src/tutor.c:1137 +#: ../src/tutor.c:1265 msgid "(CPS)" msgstr "(Таңба/сек)" -#: ../src/tutor.c:1142 +#: ../src/tutor.c:1270 msgid "Words per minute:" msgstr "Минутына сөз:" -#: ../src/tutor.c:1167 +#: ../src/tutor.c:1295 msgid "Fluidness:" msgstr "Жаттықтылық:" -#: ../src/tutor.c:1194 +#: ../src/tutor.c:1322 msgid "Comments:" msgstr "Пікірлер:" -#: ../src/tutor.c:1676 +#: ../src/tutor.c:1804 msgid "space" -msgstr "" +msgstr "бос аралық" #. Translators: the name of letter Y -#: ../src/tutor.c:1681 +#: ../src/tutor.c:1809 msgid "wye" -msgstr "" +msgstr "игрек" #. Translators: the name of the Return key -#: ../src/tutor.c:1685 +#: ../src/tutor.c:1813 msgid "enter" -msgstr "" +msgstr "enter" -#: ../src/tutor.c:1691 +#: ../src/tutor.c:1819 msgid "apostrophe" -msgstr "" +msgstr "апостроф" #. Translators: double quote symbol: " -#: ../src/tutor.c:1695 +#: ../src/tutor.c:1823 msgid "quote" -msgstr "" +msgstr "тырнақша" #. Translators: ampersand symbol: & -#: ../src/tutor.c:1699 +#: ../src/tutor.c:1827 msgid "ampersand" -msgstr "" +msgstr "амперсанд" -#. Error frequencies or touch times -#. -#: ../src/plot.c:308 +#: ../src/plot.c:305 msgid "Character" -msgstr "" +msgstr "Таңба" #: ../src/plot.c:319 msgid "Date & Time" -msgstr "Күні мен Уақыты" +msgstr "Күні және уақыты" -#: ../src/basic.c:331 +#: ../src/basic.c:326 msgid "Positions of keys seems to be learned!" msgstr "Пернелер позициясын жаттауыңыз керек!" -#: ../src/basic.c:332 +#: ../src/basic.c:327 msgid "" " Congratulations!\n" " You have accomplished the entire basic course.\n" @@ -1006,7 +1000,7 @@ " Енді келесі бейімделу сабағына көшіңіз.\n" " Бұл сізге ұқыпты теруге үйретеді.\n" -#: ../src/basic.c:338 +#: ../src/basic.c:333 msgid "" " All right, now you got it!\n" " Go to the next lesson.\n" @@ -1014,33 +1008,35 @@ " Жақсы, сіз бұны соқтыңыз!\n" " Келесі сабаққа көшіңіз.\n" -#: ../src/adaptability.c:217 +#: ../src/adaptability.c:213 +#, fuzzy, c-format msgid "" -" Your accuracy rate is below 90%...\n" +" Your accuracy rate is below %.0f%%...\n" " Could you please try again to improve it?\n" msgstr "" " Сіздің ұқыптылық пайызыңыз 90%-дан төмен...\n" " Қайтадан тапсыра аласыз ба?\n" -#: ../src/adaptability.c:222 +#: ../src/adaptability.c:216 +#, fuzzy, c-format msgid "" " You are doing well. But...\n" -" Could you make the accuracy reach 95%?\n" +" Could you make the accuracy reach %.0f%%?\n" msgstr "" " Сіз жақсы жасайсыз. Бірақ...\n" " 95% ұқыптылыққа жасай аласыз ба?\n" -#: ../src/adaptability.c:225 -#, c-format +#: ../src/adaptability.c:219 +#, fuzzy, c-format msgid "" " You are almost there, but your accuracy rate is still below %.0f%%.\n" -" Try a few more times, or maybe you're getting upset, so go to other kind of " -"exercise.\n" +" Try a few more times, or maybe you're getting upset, so go to another kind " +"of exercise.\n" msgstr "" " Сіз мына жердесіз, бірақ ұқыптылығыңыз %.0f%% мәнінен аса алмай тұр.\n" " Тағы да бір рет теріп көріңіз немесе басқа жаттығуды алыңыз.\n" -#: ../src/adaptability.c:232 +#: ../src/adaptability.c:226 #, c-format msgid "" " Very good!\n" @@ -1053,11 +1049,11 @@ " Қазір жылдамдықты арттыру уақыты келді.\n" " Басты мәзірдегі үшінші жаттығуға көшіңіз.\n" -#: ../src/velocity.c:313 ../src/fluidness.c:435 +#: ../src/velocity.c:312 ../src/fluidness.c:435 msgid "Pasted_or_dropped" msgstr "Енгізілген не тасталған" -#: ../src/velocity.c:432 +#: ../src/velocity.c:423 msgid "" " You are just beginning.\n" " Be patient, try it again every day, rest and don't worry so much:\n" @@ -1067,31 +1063,34 @@ " Шыдамды бол, күнде қайталап отыр, қатты ашуланба:\n" " тұрақты қайталау сізді жылдамдыққа әкеледі.\n" -#: ../src/velocity.c:436 +#: ../src/velocity.c:427 +#, fuzzy, c-format msgid "" " Still away from the highway. You can make better...\n" -" Try at least 20 WPM.\n" +" Try to reach at least %.0f WPM.\n" msgstr "" " Жылдамдық жолына әлі түспегенсіз. Сіз мұнан да жақсы жасай аласыз...\n" " Ең болмағанда минутына 20 сөз теріп көріңіз.\n" -#: ../src/velocity.c:439 +#: ../src/velocity.c:430 +#, fuzzy, c-format msgid "" " You are doing well, but need to go faster.\n" -" And don't forget the accuracy. Try to get 30 WPM.\n" +" And don't forget the accuracy. Try to get %.0f WPM.\n" msgstr "" " Сіз жақсы тересіз, бірақ кішкене тездетсеңіз жақсы болатын еді.\n" " Және де ұқыптылықты ұмытпаңыз. Минутына 30 сөз теріп көріңіз.\n" -#: ../src/velocity.c:443 +#: ../src/velocity.c:433 +#, fuzzy, c-format msgid "" " Fine. Now you need to start running.\n" -" Can you reach 40 WPM?\n" +" Can you reach %.0f WPM?\n" msgstr "" " Жақсы. Сізге енді жылдамдық алу керек.\n" " Минутына 40 сөз теруге қалай қарайсыз?\n" -#: ../src/velocity.c:446 +#: ../src/velocity.c:436 #, c-format msgid "" " Very good. You are almost there.\n" @@ -1100,7 +1099,7 @@ " Өте тамаша. Сіз мына жерге жақынсыз.\n" " Енді минутына %.0f сөз теруге қалай қарайсыз?\n" -#: ../src/velocity.c:451 +#: ../src/velocity.c:439 msgid "" " Excellent. For this course, that is enough.\n" " Try now the fluidness exercises, OK?\n" @@ -1108,31 +1107,34 @@ " Пай-пай. Әзірше бұл жеткілікті.\n" " Жаттықтылыққа үйренеміз бе?\n" -#: ../src/velocity.c:455 +#: ../src/velocity.c:442 +#, fuzzy, c-format msgid "" -" Fast! Are you training for a competition?\n" -" So, try to get 70 WPM!\n" +" Fast! Are you a professional?\n" +" So, try to get %.0f WPM!\n" msgstr "" " Жылдам! Сіз жарысқа қатысқан жоқсыз бе?\n" " Ал, минутына 70 сөз деңгейінен асайық!\n" -#: ../src/velocity.c:458 -msgid "" -" Top of \"qwerty\". Now it's time to change to the Dvorak mode.\n" -" Are you afraid of reaching 80 WPM?\n" +#. Translators: Speed Racer is a reference to a Japanese anime franchise +#. about automobile racing, also known as Mach GoGoGo. +#: ../src/velocity.c:447 +#, c-format +msgid " Ranking good, Speed Racer! Are you afraid of reaching %.0f WPM?\n" msgstr "" -" Максималды \"qwerty\". Енді Дворакты таңдау уақыты келді.\n" -" Минутына 80 сөз теруге қорықпайсыз ба?\n" -#: ../src/velocity.c:462 +#. Translators: feel free to change the reference to that martial art, if you find another good analogy. +#: ../src/velocity.c:451 +#, fuzzy, c-format msgid "" -" Dvorak mode dominated!\n" -" Can you fly at 90 WPM?\n" +" Kunf-fu mastering!\n" +" Can you fly at %.0f WPM?\n" msgstr "" " Дворак жандырады!\n" " Минутына 90 сөзбен ұшамыз ба?\n" -#: ../src/velocity.c:466 +#. Translators: Dvorak here means that infamous ergonomic keyboard layout. +#: ../src/velocity.c:454 msgid "" " Dvorak master!\n" " I have no words to express my admiration!\n" @@ -1140,7 +1142,7 @@ " Дворак шеберісіз!\n" " Сізге айтар сөзім жоқ!\n" -#: ../src/fluidness.c:545 +#: ../src/fluidness.c:538 #, c-format msgid "" " You type accurately but not so fast.\n" @@ -1149,7 +1151,7 @@ " Сіз ұқыпты тергенімен, жылдамдығыңыз аз.\n" " Минутына %.0f сөзден аса аласыз ба?\n" -#: ../src/fluidness.c:548 +#: ../src/fluidness.c:541 #, c-format msgid "" " Your rhythm is not so constant. Calm down.\n" @@ -1158,7 +1160,7 @@ " Сіздің теру ритміңіз тұрақты емес.\n" " Қазірге %i%% жылдамдықтан асыңыз.\n" -#: ../src/fluidness.c:551 +#: ../src/fluidness.c:544 #, c-format msgid "" " You are almost getting there. Type more fluently.\n" @@ -1167,7 +1169,7 @@ " Сіз мына жерге жақынсыз. Тезірек теріңіз.\n" " Мен %.0f%% жылдамдығынан көп көргім келіп тұр.\n" -#: ../src/fluidness.c:554 +#: ../src/fluidness.c:547 msgid "" " Congratulations!\n" " It seems to me that you are a professional.\n" @@ -1179,7 +1181,7 @@ " Енді сізге мына бағдарламаның керегі жоқ.\n" " Сізге ұнады деп үміттенемін. Рахмет, және бақытты болыңыз!\n" -#: ../src/fluidness.c:559 +#: ../src/fluidness.c:552 msgid "" " How can you type so fast?\n" " You have exceeded all my expectations.\n" @@ -1239,23 +1241,24 @@ msgid "Could not upload/download scores." msgstr "Нәтижелерді жіберуге/жүктеуге мүмкін емес" -#~ msgid "Default" -#~ msgstr "Бастапқы" - -#, fuzzy -#~ msgid "A flexible touch typing tutor" -#~ msgstr "Тағы да бір теруді үйретуші" - #~ msgid "" -#~ "1\n" -#~ "2\n" -#~ "3\n" -#~ "4" +#~ " Top of \"qwerty\". Now it's time to change to the Dvorak mode.\n" +#~ " Are you afraid of reaching 80 WPM?\n" #~ msgstr "" -#~ "1\n" -#~ "2\n" -#~ "3\n" -#~ "4" +#~ " Максималды \"qwerty\". Енді Дворакты таңдау уақыты келді.\n" +#~ " Минутына 80 сөз теруге қорықпайсыз ба?\n" + +#~ msgid "Press here to restart the exercise. Hotkey: [Ctrl R]" +#~ msgstr "Жаттығуды қайта бастау үшін осында шертіңіз. ЫсПер:[Ctrl R]" + +#~ msgid "_Font" +#~ msgstr "Қарі_п" + +#~ msgid "Klavaro" +#~ msgstr "Klavaro" + +#~ msgid "Default" +#~ msgstr "Бастапқы" #~ msgid "No valid host" #~ msgstr "Дұрыс хост емес" diff -Nru klavaro-1.9.9/po/klavaro.pot klavaro-3.00/po/klavaro.pot --- klavaro-1.9.9/po/klavaro.pot 1970-01-01 00:00:00.000000000 +0000 +++ klavaro-3.00/po/klavaro.pot 2014-01-13 23:25:48.000000000 +0000 @@ -0,0 +1,1120 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER +# This file is distributed under the same license as the PACKAGE package. +# FIRST AUTHOR , YEAR. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: PACKAGE VERSION\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2014-01-13 21:25-0200\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language-Team: LANGUAGE \n" +"Language: \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=CHARSET\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=INTEGER; plural=EXPRESSION;\n" + +#: ../data/klavaro.glade.h:1 +msgid "About 'Klavaro'" +msgstr "" + +#: ../data/klavaro.glade.h:2 +msgid "Yet another touch typing tutor" +msgstr "" + +#: ../data/klavaro.glade.h:3 +msgid "Remember always: someone loves you!" +msgstr "" + +#: ../data/klavaro.glade.h:4 +msgid "Change language" +msgstr "" + +#: ../data/klavaro.glade.h:5 +msgid "Attention!" +msgstr "" + +#: ../data/klavaro.glade.h:6 +msgid "Do you confirm?" +msgstr "" + +#: ../data/klavaro.glade.h:7 +msgid "_No" +msgstr "" + +#: ../data/klavaro.glade.h:8 +msgid "_Yes" +msgstr "" + +#: ../data/klavaro.glade.h:9 +msgid "Help?" +msgstr "" + +#: ../data/klavaro.glade.h:10 +msgid "This is a tip. Now you press this button to return to the main menu." +msgstr "" + +#: ../data/klavaro.glade.h:11 +msgid "B_ack to menu" +msgstr "" + +#: ../data/klavaro.glade.h:12 +msgid "" +"The main menu of the application is very straightforward. Just select the " +"type of exercise you wish to take. Do not worry about clicking any button on " +"the screen. The buttons will never hurt you!" +msgstr "" + +#: ../data/klavaro.glade.h:13 +msgid "" +"Also the controls have tips which will appear if you hover over them with " +"your mouse. These tips can come in very handy. To see how these tips work, " +"position your mouse over the button below, and without clicking, wait for " +"the tip to appear..." +msgstr "" + +#: ../data/klavaro.glade.h:14 +msgid "Klavaro - Select file" +msgstr "" + +#: ../data/klavaro.glade.h:15 +msgid "_Cancel" +msgstr "" + +#: ../data/klavaro.glade.h:16 +msgid "_Open" +msgstr "" + +#: ../data/klavaro.glade.h:17 +msgid "Re_name:" +msgstr "" + +#: ../data/klavaro.glade.h:18 +msgid "Rename the selected item." +msgstr "" + +#: ../data/klavaro.glade.h:19 +msgid "" +"Read a text file and add a copy of it here. The file must be encoded in " +"UTF-8." +msgstr "" + +#: ../data/klavaro.glade.h:20 +msgid "_Open text file" +msgstr "" + +#: ../data/klavaro.glade.h:21 +msgid "Paste text that was copied to the clipboard." +msgstr "" + +#: ../data/klavaro.glade.h:22 +msgid "_Paste from clipboard" +msgstr "" + +#: ../data/klavaro.glade.h:23 +msgid "Remove the selected item." +msgstr "" + +#: ../data/klavaro.glade.h:24 +msgid "_Remove copied file" +msgstr "" + +#: ../data/klavaro.glade.h:25 +msgid "Apply the selected item to create an exercise." +msgstr "" + +#: ../data/klavaro.glade.h:26 +msgid "_Apply" +msgstr "" + +#: ../data/klavaro.glade.h:27 +msgid "Close this window." +msgstr "" + +#: ../data/klavaro.glade.h:28 +msgid "_Close" +msgstr "" + +#: ../data/klavaro.glade.h:29 +msgid "Country / Custom" +msgstr "" + +#: ../data/klavaro.glade.h:30 +msgid "Variant" +msgstr "" + +#: ../data/klavaro.glade.h:31 +msgid "Remove the selected custom layout." +msgstr "" + +#: ../data/klavaro.glade.h:32 +msgid "_Remove" +msgstr "" + +#: ../data/klavaro.glade.h:33 +msgid "" +"Toggles the shift effect on the keys. Alternates between the upper and lower " +"characters of the keys." +msgstr "" + +#: ../data/klavaro.glade.h:34 +msgid "SPACE BAR" +msgstr "" + +#: ../data/klavaro.glade.h:35 ../src/keyboard.c:1630 +msgid "thumbs" +msgstr "" + +#: ../data/klavaro.glade.h:36 +msgid "Ctrl" +msgstr "" + +#: ../data/klavaro.glade.h:37 +msgid "Caps" +msgstr "" + +#: ../data/klavaro.glade.h:38 +msgid "S_ave as:" +msgstr "" + +#: ../data/klavaro.glade.h:39 +msgid "Show previous screen." +msgstr "" + +#: ../data/klavaro.glade.h:40 +msgid "_Previous step" +msgstr "" + +#: ../data/klavaro.glade.h:41 +msgid "Show next screen." +msgstr "" + +#: ../data/klavaro.glade.h:42 +msgid "_Next step" +msgstr "" + +#: ../data/klavaro.glade.h:43 +msgid "Return without any modification." +msgstr "" + +#: ../data/klavaro.glade.h:44 +msgid "Save the current keyboard layout with the name specified above." +msgstr "" + +#: ../data/klavaro.glade.h:45 +msgid "_Save and use" +msgstr "" + +#: ../data/klavaro.glade.h:46 +msgid "" +"If you like those beautiful hands, click here to close this window keeping " +"them." +msgstr "" + +#: ../data/klavaro.glade.h:47 +msgid "_Keep hands" +msgstr "" + +#: ../data/klavaro.glade.h:48 +msgid "Klavaro - Main menu" +msgstr "" + +#: ../data/klavaro.glade.h:49 +msgid "Don't be shy about learning the basics!" +msgstr "" + +#: ../data/klavaro.glade.h:50 +msgid "Learn how to type correctly" +msgstr "" + +#: ../data/klavaro.glade.h:51 +msgid "Initial training for your fingers." +msgstr "" + +#: ../data/klavaro.glade.h:52 +msgid "First steps with initial training" +msgstr "" + +#: ../data/klavaro.glade.h:53 +msgid "Memorizing the keyboard practicing random keys exercises." +msgstr "" + +#: ../data/klavaro.glade.h:54 +msgid "Practice with random keys" +msgstr "" + +#: ../data/klavaro.glade.h:55 +msgid "Accelerating the touches practicing random words exercises." +msgstr "" + +#: ../data/klavaro.glade.h:56 +msgid "Practice with random words" +msgstr "" + +#: ../data/klavaro.glade.h:57 +msgid "Becoming proficient practicing complete paragraphs exercises." +msgstr "" + +#: ../data/klavaro.glade.h:58 +msgid "Practice with complete texts" +msgstr "" + +#: ../data/klavaro.glade.h:59 +msgid "" +"Keyboard layout for modules 1 and 2. Also used informatively in the " +"fluidness contest." +msgstr "" + +#: ../data/klavaro.glade.h:60 +msgid "_Keyboard:" +msgstr "" + +#: ../data/klavaro.glade.h:61 +msgid "Language for modules 3 and 4." +msgstr "" + +#: ../data/klavaro.glade.h:62 +msgid "_Language:" +msgstr "" + +#: ../data/klavaro.glade.h:63 +msgid "Speech" +msgstr "" + +#: ../data/klavaro.glade.h:64 +msgid "Your language here." +msgstr "" + +#: ../data/klavaro.glade.h:65 +msgid "Little tip about this program." +msgstr "" + +#: ../data/klavaro.glade.h:66 +msgid "_Help" +msgstr "" + +#: ../data/klavaro.glade.h:67 +msgid "General information about the program." +msgstr "" + +#: ../data/klavaro.glade.h:68 +msgid "_About..." +msgstr "" + +#: ../data/klavaro.glade.h:69 +msgid "Exit the application immediately." +msgstr "" + +#: ../data/klavaro.glade.h:70 +msgid "Klavaro - Progress" +msgstr "" + +#: ../data/klavaro.glade.h:71 +msgid "_Lesson:" +msgstr "" + +#: ../data/klavaro.glade.h:72 +msgid "Value" +msgstr "" + +#: ../data/klavaro.glade.h:73 +msgid "Close this window, returning to the exercise." +msgstr "" + +#: ../data/klavaro.glade.h:74 +msgid "Clear all the progress data, for every module." +msgstr "" + +#: ../data/klavaro.glade.h:75 +msgid "_Reset" +msgstr "" + +#: ../data/klavaro.glade.h:76 +msgid "Top 10" +msgstr "" + +#: ../data/klavaro.glade.h:77 +msgid "Show extra information." +msgstr "" + +#: ../data/klavaro.glade.h:78 +msgid "Hide extra information." +msgstr "" + +#: ../data/klavaro.glade.h:79 +msgid "Publish to the web your local scores." +msgstr "" + +#: ../data/klavaro.glade.h:80 +msgid "_Participate" +msgstr "" + +#: ../data/klavaro.glade.h:81 +msgid "Download from the web the most up to date ranking." +msgstr "" + +#: ../data/klavaro.glade.h:82 +msgid "_Update" +msgstr "" + +#: ../data/klavaro.glade.h:83 +msgid "Load other exercises/lessons" +msgstr "" + +#: ../data/klavaro.glade.h:84 +msgid "_Other texts" +msgstr "" + +#: ../data/klavaro.glade.h:85 +msgid "Edit the character set to be used in this lesson." +msgstr "" + +#: ../data/klavaro.glade.h:86 +msgid "This is a specific exercise, adjusted to your error profile." +msgstr "" + +#: ../data/klavaro.glade.h:87 +msgid "" +"Edit the character set to be used in lessons after 43: they are customizable!" +msgstr "" + +#: ../data/klavaro.glade.h:88 ../src/tutor.c:376 +msgid "Drag and drop text here to practice with it." +msgstr "" + +#: ../data/klavaro.glade.h:89 +msgid "Press here to restart the exercise. Hotkey: [Ctrl-R]" +msgstr "" + +#: ../data/klavaro.glade.h:90 +msgid "Show the virtual keyboard and the relation between fingers and keys." +msgstr "" + +#: ../data/klavaro.glade.h:91 +msgid "_Keyboard" +msgstr "" + +#: ../data/klavaro.glade.h:92 +msgid "Select the font to be used in the exercise window." +msgstr "" + +#: ../data/klavaro.glade.h:93 +msgid "Font definition" +msgstr "" + +#: ../data/klavaro.glade.h:94 +msgid "Keep this checked if you want to get those nice beeps." +msgstr "" + +#: ../data/klavaro.glade.h:95 +msgid "_Beep" +msgstr "" + +#: ../data/klavaro.glade.h:96 +msgid "Co_urse information" +msgstr "" + +#: ../data/klavaro.glade.h:97 +msgid "Charts showing the learning progress along the exercises." +msgstr "" + +#: ../data/klavaro.glade.h:98 +msgid "_Progress" +msgstr "" + +#: ../data/klavaro.glade.h:99 +msgid "Return to the main menu." +msgstr "" + +#: ../data/klavaro.glade.h:100 +msgid "Show local and external scores from other users." +msgstr "" + +#: ../data/klavaro.glade.h:101 +msgid "_Top 10" +msgstr "" + +#: ../data/klavaro.desktop.in.h:1 +msgid "A very flexible and efficient touch typing tutor." +msgstr "" + +#. Translators: these are keywords related to the program. CAI above means Computer Aided Instruction. Feel free to add and/or change the keywords in your language. +#: ../data/klavaro.desktop.in.h:3 +msgid "keyboard;typing;tutor;CAI" +msgstr "" + +#: ../src/main.c:242 +msgid "(Custom)" +msgstr "" + +#: ../src/main.c:243 +msgid "(Edit custom)" +msgstr "" + +#: ../src/main.c:244 +msgid "(Default)" +msgstr "" + +#: ../src/main.c:321 +#, c-format +msgid "Dictation mode (depends on this speech synthesizer: %s)" +msgid_plural "Dictation mode (depends on one of these speech synthesizers: %s)" +msgstr[0] "" +msgstr[1] "" + +#: ../src/main.c:364 ../src/keyboard.c:1291 +msgid "Introduction" +msgstr "" + +#: ../src/main.c:367 ../src/top10.c:109 +msgid "Basic course" +msgstr "" + +#: ../src/main.c:370 ../src/top10.c:112 +msgid "Adaptability" +msgstr "" + +#: ../src/main.c:373 ../src/callbacks.c:1226 ../src/top10.c:89 +#: ../src/top10.c:115 +msgid "Speed" +msgstr "" + +#: ../src/main.c:376 ../src/callbacks.c:1249 ../src/top10.c:91 +#: ../src/top10.c:118 +msgid "Fluidity" +msgstr "" + +#: ../src/callbacks.c:407 ../src/tutor.c:515 +msgid "Keys:" +msgstr "" + +#: ../src/callbacks.c:774 ../src/callbacks.c:790 +msgid "Connecting..." +msgstr "" + +#: ../src/callbacks.c:1061 +msgid "Overwrite user layout" +msgstr "" + +#: ../src/callbacks.c:1063 +msgid "This will OVERWRITE an existent keyboard layout." +msgstr "" + +#: ../src/callbacks.c:1070 +msgid "Remove user layout" +msgstr "" + +#: ../src/callbacks.c:1072 +msgid "This will REMOVE an existent keyboard layout." +msgstr "" + +#: ../src/callbacks.c:1079 +msgid "Reset progress data" +msgstr "" + +#: ../src/callbacks.c:1080 +msgid "This will DELETE all the progress data shown in the charts." +msgstr "" + +#: ../src/callbacks.c:1223 ../src/top10.c:87 +msgid "Accuracy" +msgstr "" + +#: ../src/callbacks.c:1226 ../src/tutor.c:1288 +msgid "(WPM)" +msgstr "" + +#: ../src/callbacks.c:1237 +msgid "Errors" +msgstr "" + +#: ../src/callbacks.c:1240 +msgid "Touch times (s)" +msgstr "" + +#: ../src/callbacks.c:1252 ../src/tutor.c:1315 ../src/top10.c:69 +msgid "Score" +msgstr "" + +#. Translators: your language code (first 2 letters of your po-file) +#: ../src/translation.c:485 ../src/tutor.c:1725 +msgid "en" +msgstr "" + +#: ../src/translation.c:572 +msgid "" +"The basic course focuses on having you read the characters presented to you " +"on screen and typing the corresponding keys. Remember to keep your hands " +"correctly oriented on the home row of the keyboard at all times (see " +"introduction on main menu)." +msgstr "" + +#: ../src/translation.c:576 +msgid "" +"The key set used in each series will be shown in the above message line. The " +"[Space], [Shift] and [Enter] keys may not show up there but are used very " +"often." +msgstr "" + +#: ../src/translation.c:579 +msgid "" +"The message line below follows and echoes your key presses. If required, it " +"changes and displays instructions for actions required from you." +msgstr "" + +#: ../src/translation.c:583 +msgid "" +"Here you may practice and improve your memorization of all keys. There will " +"be sentences presented with nonsense words which mix some numbers and " +"symbols." +msgstr "" + +#: ../src/translation.c:586 +msgid "" +"In order to keep the lesson contents language and keyboard independent, " +"accented letter combinations will probably not appear. For real word " +"sentences, please use the fourth option of the main menu (about fluidness)." +msgstr "" + +#: ../src/translation.c:590 +msgid "" +"After each exercise there will be a brief statistics panel reviewing your " +"performance along with some relevant comments." +msgstr "" + +#: ../src/translation.c:594 +msgid "" +"This exercise is very similar to the second one, for adaptability. The " +"difference is that here you'll type real words." +msgstr "" + +#: ../src/translation.c:597 +msgid "" +"The default language is the actual one of the interface. But you may select " +"any other texts with words you would like to use. Press the 'Other' option " +"above and add files containing those texts." +msgstr "" + +#: ../src/translation.c:601 +msgid "" +"With this exercise the focus is on speed. So, you are supposed to type " +"really fast and I will only flatter you when you deserve it!" +msgstr "" + +#: ../src/translation.c:605 +msgid "" +"We will now use complete sentences and paragraphs which make logical sense. " +"This may distract you while you type if you try to understand what you are " +"entering. The previous exercises were aimed at getting you to type without " +"interpreting and analyzing the content." +msgstr "" + +#: ../src/translation.c:609 +msgid "" +"We do not mean to imply that the typists must behave like a robot, without " +"understanding what they type. We do aim to develop the skill of typing, " +"making it an automatic reflex akin to the acts of walking, talking, etc. " +"After reaching this goal, the act of typing will become automatic and " +"require little concentration. Then you will be able to pay attention to the " +"real meaning of the text." +msgstr "" + +#: ../src/translation.c:613 +msgid "" +"These exercises are longer. Each exercise consists of three paragraphs and " +"the emphasis is placed on correctness and rhythm, with a minimum speed " +"requirement. Here you will be required to use the backspace key to correct " +"any mistakes. In other words, only input without error will be accepted." +msgstr "" + +#: ../src/keyboard.c:1094 +msgid "" +"Correct positioning of the hands and fingers is very important to efficient " +"typing. You will learn faster and type better if you follow the next " +"recommendations." +msgstr "" + +#: ../src/keyboard.c:1097 +msgid "" +"The index-finger tips rest over each of the two keys which have a small " +"raised mark, in the center of the keyboard." +msgstr "" + +#: ../src/keyboard.c:1100 +msgid "" +"These marks function as 'tactile hooks' for your fingers to remain at the " +"correct position. This way, with a little experience, you will not need to " +"look at the keyboard to see if your fingers are properly positioned." +msgstr "" + +#: ../src/keyboard.c:1104 +msgid "" +"The tips of the other fingers lie naturally beside the index ones, over the " +"keys on the same row of the keyboard." +msgstr "" + +#: ../src/keyboard.c:1107 +msgid "The outside edges of your thumbs rest over the space bar." +msgstr "" + +#: ../src/keyboard.c:1109 +msgid "" +"The part of the hands closest to the wrist (the base) rest over the table, " +"outside the keyboard. Without this kind of support the arms would quickly " +"tire." +msgstr "" + +#: ../src/keyboard.c:1112 +msgid "" +"This is referred to as the home position for the hands. From it the fingers " +"move all over the keyboard, reaching all the keys as naturally and quickly " +"as possible. To reach this goal one uses a specific relation between each " +"key and finger. This relation will be learned gradually as you complete the " +"basic course." +msgstr "" + +#: ../src/keyboard.c:1118 +msgid "" +"When learning the relation between fingers and keys, it is very important " +"that you only move the finger which must press the key and allow all other " +"fingers to remain in the home position." +msgstr "" + +#: ../src/keyboard.c:1122 +msgid "" +"After memorizing this relationship, you can relax the previous rule some, so " +"that you can attain greater speed while typing." +msgstr "" + +#: ../src/keyboard.c:1125 +msgid "" +"You should be prepared to start training with the basic course. It will take " +"effort and patience to be successful as a typist. We trust you have these " +"and look forward to your success!" +msgstr "" + +#: ../src/keyboard.c:1136 +#, c-format +msgid "Step %i" +msgstr "" + +#: ../src/keyboard.c:1142 +msgid "To position the hands" +msgstr "" + +#: ../src/keyboard.c:1227 +msgid "Go ahead!" +msgstr "" + +#: ../src/keyboard.c:1234 +msgid "Relation between fingers and keys" +msgstr "" + +#: ../src/keyboard.c:1235 +msgid "Click on any key to see which finger you must use:" +msgstr "" + +#: ../src/keyboard.c:1291 ../src/keyboard.c:1325 +msgid "Keyboard" +msgstr "" + +#: ../src/keyboard.c:1372 +msgid "Create or modify a custom keyboard layout" +msgstr "" + +#: ../src/keyboard.c:1618 ../src/keyboard.c:1642 +msgid "small finger" +msgstr "" + +#: ../src/keyboard.c:1621 ../src/keyboard.c:1639 +msgid "ring finger" +msgstr "" + +#: ../src/keyboard.c:1624 ../src/keyboard.c:1636 +msgid "middle finger" +msgstr "" + +#: ../src/keyboard.c:1627 ../src/keyboard.c:1633 +msgid "index finger" +msgstr "" + +#: ../src/keyboard.c:1728 +msgid "Press and edit me" +msgstr "" + +#: ../src/tutor.c:300 +msgid "Lesson:" +msgstr "" + +#: ../src/tutor.c:310 +msgid "Paragraphs:" +msgstr "" + +#: ../src/tutor.c:343 +msgid "Klavaro - Basic Course" +msgstr "" + +#: ../src/tutor.c:348 +msgid "Klavaro - Adaptability" +msgstr "" + +#: ../src/tutor.c:351 +msgid "" +"Adaptability exercises: automating the fingers responses, typing over all " +"the keyboard." +msgstr "" + +#: ../src/tutor.c:356 +msgid "Klavaro - Velocity" +msgstr "" + +#: ../src/tutor.c:357 +msgid "Velocity exercises: accelerate typing real words." +msgstr "" + +#: ../src/tutor.c:361 +msgid "Klavaro - Fluidness" +msgstr "" + +#: ../src/tutor.c:363 +msgid "Fluidness exercises: accuracy typing good sense paragraphs." +msgstr "" + +#: ../src/tutor.c:425 +msgid "End of exercise. Press [Enter] to start another." +msgstr "" + +#: ../src/tutor.c:453 +msgid "Learning the key positions." +msgstr "" + +#: ../src/tutor.c:456 +msgid "Press any key to start the exercise. " +msgstr "" + +#: ../src/tutor.c:567 ../src/tutor.c:570 +msgid "Start typing when you are ready. " +msgstr "" + +#: ../src/tutor.c:568 +msgid "Use backspace to correct errors." +msgstr "" + +#: ../src/tutor.c:1012 +#, c-format +msgid "" +"ps.: logging not performed for this session: the number of typed characters " +"(%i) must be greater than %i." +msgstr "" + +#: ../src/tutor.c:1154 +msgid "ps.: you have entered the Top 10 list, great!" +msgstr "" + +#: ../src/tutor.c:1166 +msgid "" +"ps.: the text you just typed doesn't seem to be similar to ordinary texts in " +"the language currently selected: we can't account for it in the 'Top 10' " +"contest." +msgstr "" + +#: ../src/tutor.c:1215 +msgid "STATISTICS" +msgstr "" + +#: ../src/tutor.c:1216 +msgid "Elapsed time:" +msgstr "" + +#: ../src/tutor.c:1217 +msgid "minute and" +msgid_plural "minutes and" +msgstr[0] "" +msgstr[1] "" + +#: ../src/tutor.c:1218 +msgid "second" +msgid_plural "seconds" +msgstr[0] "" +msgstr[1] "" + +#: ../src/tutor.c:1219 +msgid "Error ratio:" +msgstr "" + +#: ../src/tutor.c:1219 +msgid "Accuracy:" +msgstr "" + +#: ../src/tutor.c:1240 ../src/tutor.c:1265 ../src/tutor.c:1288 +#: ../src/tutor.c:1314 +msgid "Goal:" +msgstr "" + +#: ../src/tutor.c:1247 +msgid "Characters per second:" +msgstr "" + +#: ../src/tutor.c:1265 +msgid "(CPS)" +msgstr "" + +#: ../src/tutor.c:1270 +msgid "Words per minute:" +msgstr "" + +#: ../src/tutor.c:1295 +msgid "Fluidness:" +msgstr "" + +#: ../src/tutor.c:1322 +msgid "Comments:" +msgstr "" + +#: ../src/tutor.c:1804 +msgid "space" +msgstr "" + +#. Translators: the name of letter Y +#: ../src/tutor.c:1809 +msgid "wye" +msgstr "" + +#. Translators: the name of the Return key +#: ../src/tutor.c:1813 +msgid "enter" +msgstr "" + +#: ../src/tutor.c:1819 +msgid "apostrophe" +msgstr "" + +#. Translators: double quote symbol: " +#: ../src/tutor.c:1823 +msgid "quote" +msgstr "" + +#. Translators: ampersand symbol: & +#: ../src/tutor.c:1827 +msgid "ampersand" +msgstr "" + +#: ../src/plot.c:305 +msgid "Character" +msgstr "" + +#: ../src/plot.c:319 +msgid "Date & Time" +msgstr "" + +#: ../src/basic.c:326 +msgid "Positions of keys seems to be learned!" +msgstr "" + +#: ../src/basic.c:327 +msgid "" +" Congratulations!\n" +" You have accomplished the entire basic course.\n" +" Go to the next type of exercise: adaptability.\n" +" There you will practice mainly the accuracy.\n" +msgstr "" + +#: ../src/basic.c:333 +msgid "" +" All right, now you got it!\n" +" Go to the next lesson.\n" +msgstr "" + +#: ../src/adaptability.c:213 +#, c-format +msgid "" +" Your accuracy rate is below %.0f%%...\n" +" Could you please try again to improve it?\n" +msgstr "" + +#: ../src/adaptability.c:216 +#, c-format +msgid "" +" You are doing well. But...\n" +" Could you make the accuracy reach %.0f%%?\n" +msgstr "" + +#: ../src/adaptability.c:219 +#, c-format +msgid "" +" You are almost there, but your accuracy rate is still below %.0f%%.\n" +" Try a few more times, or maybe you're getting upset, so go to another kind " +"of exercise.\n" +msgstr "" + +#: ../src/adaptability.c:226 +#, c-format +msgid "" +" Very good!\n" +" You succeeded with an accuracy rate above %.0f%%.\n" +" Now it is time to increase your velocity.\n" +" Go to the 3rd exercise at the main menu.\n" +msgstr "" + +#: ../src/velocity.c:312 ../src/fluidness.c:435 +msgid "Pasted_or_dropped" +msgstr "" + +#: ../src/velocity.c:423 +msgid "" +" You are just beginning.\n" +" Be patient, try it again every day, rest and don't worry so much:\n" +" persistence and practice will improve your velocity.\n" +msgstr "" + +#: ../src/velocity.c:427 +#, c-format +msgid "" +" Still away from the highway. You can make better...\n" +" Try to reach at least %.0f WPM.\n" +msgstr "" + +#: ../src/velocity.c:430 +#, c-format +msgid "" +" You are doing well, but need to go faster.\n" +" And don't forget the accuracy. Try to get %.0f WPM.\n" +msgstr "" + +#: ../src/velocity.c:433 +#, c-format +msgid "" +" Fine. Now you need to start running.\n" +" Can you reach %.0f WPM?\n" +msgstr "" + +#: ../src/velocity.c:436 +#, c-format +msgid "" +" Very good. You are almost there.\n" +" Can you finally reach %.0f WPM?\n" +msgstr "" + +#: ../src/velocity.c:439 +msgid "" +" Excellent. For this course, that is enough.\n" +" Try now the fluidness exercises, OK?\n" +msgstr "" + +#: ../src/velocity.c:442 +#, c-format +msgid "" +" Fast! Are you a professional?\n" +" So, try to get %.0f WPM!\n" +msgstr "" + +#. Translators: Speed Racer is a reference to a Japanese anime franchise +#. about automobile racing, also known as Mach GoGoGo. +#: ../src/velocity.c:447 +#, c-format +msgid " Ranking good, Speed Racer! Are you afraid of reaching %.0f WPM?\n" +msgstr "" + +#. Translators: feel free to change the reference to that martial art, if you find another good analogy. +#: ../src/velocity.c:451 +#, c-format +msgid "" +" Kunf-fu mastering!\n" +" Can you fly at %.0f WPM?\n" +msgstr "" + +#. Translators: Dvorak here means that infamous ergonomic keyboard layout. +#: ../src/velocity.c:454 +msgid "" +" Dvorak master!\n" +" I have no words to express my admiration!\n" +msgstr "" + +#: ../src/fluidness.c:538 +#, c-format +msgid "" +" You type accurately but not so fast.\n" +" Can you reach %.0f WPM?\n" +msgstr "" + +#: ../src/fluidness.c:541 +#, c-format +msgid "" +" Your rhythm is not so constant. Calm down.\n" +" For now, try to make the fluidness greater than %i%%.\n" +msgstr "" + +#: ../src/fluidness.c:544 +#, c-format +msgid "" +" You are almost getting there. Type more fluently.\n" +" I want a fluidness greater than %.0f%%.\n" +msgstr "" + +#: ../src/fluidness.c:547 +msgid "" +" Congratulations!\n" +" It seems to me that you are a professional.\n" +" You don't need this program (me) anymore.\n" +" Hope you have enjoyed. Thanks and be happy!\n" +msgstr "" + +#: ../src/fluidness.c:552 +msgid "" +" How can you type so fast?\n" +" You have exceeded all my expectations.\n" +" Are you a machine? Could you teach me?\n" +" I can not help you anymore. Go to an expert!\n" +msgstr "" + +#: ../src/top10.c:67 +msgid "Name" +msgstr "" + +#: ../src/top10.c:93 +msgid "Chars" +msgstr "" + +#: ../src/top10.c:95 +msgid "When" +msgstr "" + +#: ../src/top10.c:124 +msgid "Local scores" +msgstr "" + +#: ../src/top10.c:125 +msgid "External scores" +msgstr "" + +#: ../src/top10.c:719 +msgid "Empty ranking. Please practice fluidness." +msgstr "" + +#: ../src/top10.c:816 +msgid "Not able to download files" +msgstr "" + +#: ../src/top10.c:816 ../src/top10.c:906 +msgid "not found" +msgstr "" + +#: ../src/top10.c:817 ../src/top10.c:907 +msgid "Are you sure you have it installed in your system?" +msgstr "" + +#: ../src/top10.c:861 +msgid "Could not download file from the host server." +msgstr "" + +#: ../src/top10.c:906 +msgid "Not able to upload files" +msgstr "" + +#: ../src/top10.c:987 +msgid "Could not upload/download scores." +msgstr "" diff -Nru klavaro-1.9.9/po/ky.po klavaro-3.00/po/ky.po --- klavaro-1.9.9/po/ky.po 2013-08-15 13:38:50.000000000 +0000 +++ klavaro-3.00/po/ky.po 2014-01-13 23:25:51.000000000 +0000 @@ -1,17 +1,17 @@ # Kirghiz translation of klavaro. # Copyright (C) 2012 THE klavaro'S COPYRIGHT HOLDER # This file is distributed under the same license as the klavaro package. -# Chingis Jumaliev , 2012. +# Chyngyz Dzhumaliev , 2012-2013. # msgid "" msgstr "" "Project-Id-Version: klavaro-1.9.7\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2013-08-15 10:38-0300\n" -"PO-Revision-Date: 2013-06-01 23:12+0600\n" -"Last-Translator: Chynggyz Jumaliev \n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2014-01-13 21:25-0200\n" +"PO-Revision-Date: 2013-11-21 07:38+0600\n" +"Last-Translator: Chyngyz Dzhumaliev \n" "Language-Team: Kirghiz \n" -"Language: ky_KG\n" +"Language: ky\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" @@ -19,545 +19,550 @@ "X-Poedit-SourceCharset: UTF-8\n" "X-Generator: Poedit 1.5.4\n" -#: ../data/klavaro.desktop.in.h:1 ../data/klavaro.glade.h:59 -msgid "Yet another touch typing tutor" -msgstr "Дагы бир баскычтоп машыктыргычы" - #: ../data/klavaro.glade.h:1 -msgid "Klavaro - Main menu" -msgstr "Klavaro - Башкы меню" +msgid "About 'Klavaro'" +msgstr "'Klavaro' жөнүндө" #: ../data/klavaro.glade.h:2 -msgid "Don't be shy about learning the basics!" -msgstr "Негиздерди үйрөнүү жөнүндө уялбаңыз!" +msgid "Yet another touch typing tutor" +msgstr "Дагы бир баскычтоп машыктыргычы" #: ../data/klavaro.glade.h:3 -msgid "Learn how to type correctly" -msgstr "Кантип туура тергенди үйрөнүңүз" +msgid "Remember always: someone loves you!" +msgstr "Эч качан унутпаңыз: бирөө сизди жакшы көрөт!" #: ../data/klavaro.glade.h:4 -msgid "Initial training for your fingers." -msgstr "Сиздин бармактарыңыз үчүн баштапкы окуу" +msgid "Change language" +msgstr "Тилди өзгөртүү" #: ../data/klavaro.glade.h:5 -msgid "First steps with initial training" -msgstr "Баштапкы окуунун биринчи кадамдары" +msgid "Attention!" +msgstr "Көңүл буруңуз!" #: ../data/klavaro.glade.h:6 -msgid "Memorizing the keyboard practicing random keys exercises." -msgstr "Кокустук баскычтар көнүгүүлөрүн аткарып клавиатураны эске тутуу" +msgid "Do you confirm?" +msgstr "Сиз аныктайсызбы?" #: ../data/klavaro.glade.h:7 -msgid "Practice with random keys" -msgstr "Кокустук баскычтар менен көнүгүңүз" +msgid "_No" +msgstr "_Жок" + +#: ../data/klavaro.glade.h:8 +msgid "_Yes" +msgstr "_Ооба" -#. English typo: touchs -> touches #: ../data/klavaro.glade.h:9 -msgid "Accelerating the touches practicing random words exercises." -msgstr "Кокустук сөздөрдүн көнүгүүлөрүн аткарып терүүнү ылдамдатуу." +msgid "Help?" +msgstr "Жардам?" #: ../data/klavaro.glade.h:10 -msgid "Practice with random words" -msgstr "Кокустук сөздөр менен көнүгүңүз" +msgid "This is a tip. Now you press this button to return to the main menu." +msgstr "" +"Бул калкуучу билдирме болот. Эми сиз башкы менюга кайтуу үчүн бул баскычты " +"басыңыз." #: ../data/klavaro.glade.h:11 -msgid "Becoming proficient practicing complete paragraphs exercises." -msgstr "Толук параграфтардын көнүгүүлөрүн аткарып чебер болуу" +msgid "B_ack to menu" +msgstr "Менюга к_айтуу" #: ../data/klavaro.glade.h:12 -msgid "Practice with complete texts" -msgstr "Толук тексттер менен көнүгүңүз" +msgid "" +"The main menu of the application is very straightforward. Just select the " +"type of exercise you wish to take. Do not worry about clicking any button on " +"the screen. The buttons will never hurt you!" +msgstr "" #: ../data/klavaro.glade.h:13 msgid "" -"Keyboard layout for modules 1 and 2. Also used informatively in the " -"fluidness contest." +"Also the controls have tips which will appear if you hover over them with " +"your mouse. These tips can come in very handy. To see how these tips work, " +"position your mouse over the button below, and without clicking, wait for " +"the tip to appear..." msgstr "" #: ../data/klavaro.glade.h:14 -msgid "_Keyboard:" -msgstr "_Баскычтобу:" +msgid "Klavaro - Select file" +msgstr "Klavaro - Файл тандоо" #: ../data/klavaro.glade.h:15 -msgid "Language for modules 3 and 4." -msgstr "3 жана 4 модуль үчүн тил." +msgid "_Cancel" +msgstr "_Айнуу" #: ../data/klavaro.glade.h:16 -msgid "_Language:" -msgstr "_Тили:" +msgid "_Open" +msgstr "_Ачуу" #: ../data/klavaro.glade.h:17 -msgid "Variant" -msgstr "Вариант" +msgid "Re_name:" +msgstr "Атын _өзгөртүү:" #: ../data/klavaro.glade.h:18 -msgid "Klavaro" -msgstr "Klavaro" +msgid "Rename the selected item." +msgstr "Тандалган элементтин атын өзгөртүү." #: ../data/klavaro.glade.h:19 -msgid "Country / Custom" -msgstr "Өлкө / Башка" +msgid "" +"Read a text file and add a copy of it here. The file must be encoded in " +"UTF-8." +msgstr "" +"Текст файлын окуп жана көчүрмөсүн бул жерге кошуу. Файл UTF-8 кодировкасында " +"болуш керек." #: ../data/klavaro.glade.h:20 -msgid "Your language here." -msgstr "Сиздин тилиңиз бул жерде" +msgid "_Open text file" +msgstr "_Текст файлын ачуу" #: ../data/klavaro.glade.h:21 -msgid "Speech" -msgstr "Сүйлөө" +msgid "Paste text that was copied to the clipboard." +msgstr "Алмашуу буферине көчүрүлгөн текстти коюу." #: ../data/klavaro.glade.h:22 -msgid "Little tip about this program." -msgstr "Бул программа жөнүндө кичинекей кеңеш" +msgid "_Paste from clipboard" +msgstr "_Алмашуу буферинен коюу" #: ../data/klavaro.glade.h:23 -msgid "_Help" -msgstr "_Жардам" +msgid "Remove the selected item." +msgstr "Тандалган элементти өчүрүү." #: ../data/klavaro.glade.h:24 -msgid "General information about the program." -msgstr "Программа жөнүндө жалпы маалымат" +msgid "_Remove copied file" +msgstr "_Көчүрүлгөн файлды өчүрүү" #: ../data/klavaro.glade.h:25 -msgid "_About..." -msgstr "_Программа жөнүндө..." +msgid "Apply the selected item to create an exercise." +msgstr "Тандалган элементтен көнүгүүнү жаратып колдонуу." #: ../data/klavaro.glade.h:26 -msgid "Exit the application immediately." -msgstr "Тиркемеден дароо чыгуу" +msgid "_Apply" +msgstr "_Колдонуу" #: ../data/klavaro.glade.h:27 -msgid "_Close" -msgstr "Жа_буу" +msgid "Close this window." +msgstr "Бул терезени жабуу" #: ../data/klavaro.glade.h:28 -msgid "Load other exercises/lessons" -msgstr "Башка көнүгүүлөрдү/сабактарды жүктөө" +msgid "_Close" +msgstr "Жа_буу" #: ../data/klavaro.glade.h:29 -msgid "_Other texts" -msgstr "_Башка тексттер" +msgid "Country / Custom" +msgstr "Өлкө / Башка" #: ../data/klavaro.glade.h:30 -msgid "_Lesson:" -msgstr "_Сабак:" +msgid "Variant" +msgstr "Вариант" #: ../data/klavaro.glade.h:31 -msgid "Edit the character set to be used in this lesson." -msgstr "Бул сабакта колдонулуучу символдордун топтомун ондоңуз." +msgid "Remove the selected custom layout." +msgstr "Тандалган жайылманы өчүрүү" #: ../data/klavaro.glade.h:32 -msgid "Edit the character set to be used in lessons 44 through 50." -msgstr "" -"44 баштап 50 чейинки сабактарында колдонулуучу символдордун топтомун ондоо." +msgid "_Remove" +msgstr "Ө_чүрүү" #: ../data/klavaro.glade.h:33 -msgid "This is a specific exercise, adjusted to your error profile." -msgstr "" +msgid "" +"Toggles the shift effect on the keys. Alternates between the upper and lower " +"characters of the keys." +msgstr "Shift клавишасы үстүңкү жана астыңкы символдордун ортосунан которот." -#: ../data/klavaro.glade.h:34 ../src/tutor.c:252 -msgid "Drag and drop text here to practice with it." -msgstr "Текст менен көнүгүш үчүн, аны бул жерге көчүрүңүз." +#: ../data/klavaro.glade.h:34 +msgid "SPACE BAR" +msgstr "БОШТУК" -#: ../data/klavaro.glade.h:35 -msgid "Press here to restart the exercise. Hotkey: [Ctrl R]" -msgstr "Көнүгүүнү кайта башташ үчүн бул жерди басыңыз. Ысык клавиша: [Ctrl R]" +#: ../data/klavaro.glade.h:35 ../src/keyboard.c:1630 +msgid "thumbs" +msgstr "баш бармак" #: ../data/klavaro.glade.h:36 -msgid "Show the virtual keyboard and the relation between fingers and keys." -msgstr "" -"Бармактар менен клавишалардын ортосундагы катышты виртуалдык клавиатура " -"менен көрсөтүү." +msgid "Ctrl" +msgstr "Ctrl" #: ../data/klavaro.glade.h:37 -msgid "_Keyboard" -msgstr "_Баскычтоп" +msgid "Caps" +msgstr "Caps" #: ../data/klavaro.glade.h:38 -msgid "Select the font to be used in the exercise window." -msgstr "Көнүгүүнүн терезесинде колдонулуучу шрифтти тандоо." +msgid "S_ave as:" +msgstr "Ат коюп с_актоо:" #: ../data/klavaro.glade.h:39 -msgid "_Font" -msgstr "_Арип" +msgid "Show previous screen." +msgstr "Мурунку экранды көрсөтүү" #: ../data/klavaro.glade.h:40 -msgid "Keep this checked if you want to get those nice beeps." -msgstr "" -"Эгер сиз ушу сонун сигналды уккуңуз келсе, муну басылган бойдон калтырыңыз." +msgid "_Previous step" +msgstr "_Мурунку кадам" #: ../data/klavaro.glade.h:41 -msgid "_Beep" -msgstr "_Сигнал" +msgid "Show next screen." +msgstr "Кийинки экранды көрсөтүү" #: ../data/klavaro.glade.h:42 -msgid "Co_urse information" -msgstr "Ку_рс жөнүндө маалымат" +msgid "_Next step" +msgstr "_Кийинки кадам" #: ../data/klavaro.glade.h:43 -msgid "Charts showing the learning progress along the exercises." -msgstr "Көнүгүүлөрдүн окуу жетишкендигин көрсөтүүчү графиктери." +msgid "Return without any modification." +msgstr "Эч нерсени өзгөртпөй кайтуу" #: ../data/klavaro.glade.h:44 -msgid "_Progress" -msgstr "_Жетишкендик" +msgid "Save the current keyboard layout with the name specified above." +msgstr "Кезектеги ариптакта жайылмасын жогоруда көрсөтүлгөн аты менен сактоо" #: ../data/klavaro.glade.h:45 -msgid "Show local and external scores from other users." -msgstr "Башка колдонуучулардын жердик жана тышкы упайларын көрсөтүү." +msgid "_Save and use" +msgstr "_Сактап анан колдонуу" #: ../data/klavaro.glade.h:46 -msgid "_Top 10" -msgstr "_Төбөл 10" +msgid "" +"If you like those beautiful hands, click here to close this window keeping " +"them." +msgstr "" +"Эгер сизге тиги кооз колдор жагып калса, анда аларды калтырып бул жерди " +"басып терезени жабыңыз." #: ../data/klavaro.glade.h:47 -msgid "Return to the main menu." -msgstr "Башкы менюга кайтуу" +msgid "_Keep hands" +msgstr "_Колдорду калтыруу" #: ../data/klavaro.glade.h:48 -msgid "B_ack to menu" -msgstr "Менюга к_айтуу" +msgid "Klavaro - Main menu" +msgstr "Klavaro - Башкы меню" #: ../data/klavaro.glade.h:49 -msgid "Close this window." -msgstr "Бул терезени жабуу" +msgid "Don't be shy about learning the basics!" +msgstr "Негиздерди үйрөнүү жөнүндө уялбаңыз!" #: ../data/klavaro.glade.h:50 -msgid "Font definition" -msgstr "Арипти аныктоо" +msgid "Learn how to type correctly" +msgstr "Кантип туура тергенди үйрөнүңүз" #: ../data/klavaro.glade.h:51 -msgid "Top 10" -msgstr "Төбөл 10" +msgid "Initial training for your fingers." +msgstr "Сиздин бармактарыңыз үчүн баштапкы окуу" #: ../data/klavaro.glade.h:52 -msgid "Show extra information" -msgstr "Кошумча маалыматты көрсөтүү" +msgid "First steps with initial training" +msgstr "Баштапкы окуунун биринчи кадамдары" #: ../data/klavaro.glade.h:53 -msgid "Hide extra information" -msgstr "Кошумча маалыматты жашыруу" +msgid "Memorizing the keyboard practicing random keys exercises." +msgstr "Туш келди баскычтар көнүгүүлөрүн аткарып ариптактаны эске тутуу" #: ../data/klavaro.glade.h:54 -msgid "Publish to the web your local scores." -msgstr "Сиздин жердик упайларыңызды желеге жарыялоо." +msgid "Practice with random keys" +msgstr "Кокустук баскычтар менен көнүгүңүз" #: ../data/klavaro.glade.h:55 -msgid "_Participate" -msgstr "_Катышуу" +msgid "Accelerating the touches practicing random words exercises." +msgstr "Кокустук сөздөрдүн көнүгүүлөрүн аткарып терүүнү ылдамдатуу." #: ../data/klavaro.glade.h:56 -msgid "Download from the web the most up to date ranking." -msgstr "Желеден эң акыркы жаңыртылган рейтингди жүктөп алуу." +msgid "Practice with random words" +msgstr "Кокустук сөздөр менен көнүгүңүз" #: ../data/klavaro.glade.h:57 -msgid "_Update" -msgstr "_Жаңылоо" +msgid "Becoming proficient practicing complete paragraphs exercises." +msgstr "Толук параграфтардын көнүгүүлөрүн аткарып чебер болуу" #: ../data/klavaro.glade.h:58 -msgid "About 'Klavaro'" -msgstr "'Klavaro' жөнүндө" +msgid "Practice with complete texts" +msgstr "Толук тексттер менен көнүгүңүз" + +#: ../data/klavaro.glade.h:59 +msgid "" +"Keyboard layout for modules 1 and 2. Also used informatively in the " +"fluidness contest." +msgstr "" #: ../data/klavaro.glade.h:60 -msgid "Remember always: someone loves you!" -msgstr "Эч качан унутпаңыз: бирөө сизди жакшы көрөт!" +msgid "_Keyboard:" +msgstr "_Ариптакта:" #: ../data/klavaro.glade.h:61 -msgid "Remove the selected custom layout." -msgstr "Тандалган жайылманы өчүрүү" +msgid "Language for modules 3 and 4." +msgstr "3 жана 4 модуль үчүн тил." #: ../data/klavaro.glade.h:62 -msgid "_Remove" -msgstr "Ө_чүрүү" +msgid "_Language:" +msgstr "_Тили:" #: ../data/klavaro.glade.h:63 -msgid "" -"Toggles the shift effect on the keys. Alternates between the upper and lower " -"characters of the keys." -msgstr "Shift клавишасы үстүңкү жана астыңкы символдордун ортосунан которот." +msgid "Speech" +msgstr "Сүйлөө" #: ../data/klavaro.glade.h:64 -msgid "SPACE BAR" -msgstr "БОШТУК" +msgid "Your language here." +msgstr "Сиздин тилиңиз бул жерде" -#: ../data/klavaro.glade.h:65 ../src/keyboard.c:1630 -msgid "thumbs" -msgstr "баш бармак" +#: ../data/klavaro.glade.h:65 +msgid "Little tip about this program." +msgstr "Бул программа жөнүндө кичинекей кеңеш" #: ../data/klavaro.glade.h:66 -msgid "Ctrl" -msgstr "Ctrl" +msgid "_Help" +msgstr "_Жардам" #: ../data/klavaro.glade.h:67 -msgid "Caps" -msgstr "Caps" +msgid "General information about the program." +msgstr "Программа жөнүндө жалпы маалымат" #: ../data/klavaro.glade.h:68 -msgid "S_ave as:" -msgstr "Ат коюп с_актоо:" +msgid "_About..." +msgstr "_Программа жөнүндө..." #: ../data/klavaro.glade.h:69 -msgid "Show previous screen." -msgstr "Мурунку экранды көрсөтүү" +msgid "Exit the application immediately." +msgstr "Тиркемеден токтоосуз чыгуу" #: ../data/klavaro.glade.h:70 -msgid "_Previous step" -msgstr "_Мурунку кадам" +msgid "Klavaro - Progress" +msgstr "Klavaro - Жетишкендик" #: ../data/klavaro.glade.h:71 -msgid "Show next screen." -msgstr "Кийинки экранды көрсөтүү" +msgid "_Lesson:" +msgstr "_Сабак:" #: ../data/klavaro.glade.h:72 -msgid "_Next step" -msgstr "_Кийинки кадам" +msgid "Value" +msgstr "Мааниси" #: ../data/klavaro.glade.h:73 -msgid "Return without any modification." -msgstr "Эч нерсени өзгөртпөй кайтуу" +msgid "Close this window, returning to the exercise." +msgstr "Терезени жабып көнүгүүгө кайтуу." #: ../data/klavaro.glade.h:74 -msgid "_Cancel" -msgstr "_Айнуу" +msgid "Clear all the progress data, for every module." +msgstr "Ар бир модуль үчүн бүт жетишкендик жөнүндө маалыматты тазалоо." #: ../data/klavaro.glade.h:75 -msgid "Save the current keyboard layout with the name specified above." -msgstr "Кезектеги баскычтоп жайылмасын жогоруда көрсөтүлгөн аты менен сактоо" +msgid "_Reset" +msgstr "_Түшүрүү" #: ../data/klavaro.glade.h:76 -msgid "_Save and use" -msgstr "_Сактап анан колдонуу" +msgid "Top 10" +msgstr "Төбөл 10" #: ../data/klavaro.glade.h:77 -msgid "" -"If you like those beautiful hands, click here to close this window keeping " -"them." -msgstr "" -"Эгер сизге тиги кооз колдор жагып калса, анда аларды калтырып бул жерди " -"басып терезени жабыңыз." +#, fuzzy +msgid "Show extra information." +msgstr "Кошумча маалыматты көрсөтүү" #: ../data/klavaro.glade.h:78 -msgid "_Keep hands" -msgstr "_Колдорду калтыруу" +#, fuzzy +msgid "Hide extra information." +msgstr "Кошумча маалыматты жашыруу" #: ../data/klavaro.glade.h:79 -msgid "Change language" -msgstr "Тилди өзгөртүү" +msgid "Publish to the web your local scores." +msgstr "Сиздин жердик упайларыңызды желеге жарыялоо." #: ../data/klavaro.glade.h:80 -msgid "Attention!" -msgstr "Көңүл буруңуз!" +msgid "_Participate" +msgstr "_Катышуу" #: ../data/klavaro.glade.h:81 -msgid "Do you confirm?" -msgstr "Сиз аныктайсызбы?" +msgid "Download from the web the most up to date ranking." +msgstr "Желеден эң акыркы жаңыртылган рейтингди жүктөп алуу." #: ../data/klavaro.glade.h:82 -msgid "_No" -msgstr "_Жок" +msgid "_Update" +msgstr "_Жаңылоо" #: ../data/klavaro.glade.h:83 -msgid "_Yes" -msgstr "_Ооба" +msgid "Load other exercises/lessons" +msgstr "Башка көнүгүүлөрдү/сабактарды жүктөө" #: ../data/klavaro.glade.h:84 -msgid "Re_name:" -msgstr "Атын _өзгөртүү:" +msgid "_Other texts" +msgstr "_Башка тексттер" #: ../data/klavaro.glade.h:85 -msgid "Rename the selected item." -msgstr "Тандалган элементтин атын өзгөртүү." +msgid "Edit the character set to be used in this lesson." +msgstr "Бул сабакта колдонулуучу символдордун топтомун ондоңуз." #: ../data/klavaro.glade.h:86 -msgid "" -"Read a text file and add a copy of it here. The file must be encoded in " -"UTF-8." +msgid "This is a specific exercise, adjusted to your error profile." msgstr "" -"Текст файлын окуп жана көчүрмөсүн бул жерге кошуу. Файл UTF-8 кодировкасында " -"болуш керек." #: ../data/klavaro.glade.h:87 -msgid "_Open text file" -msgstr "_Текст файлын ачуу" +#, fuzzy +msgid "" +"Edit the character set to be used in lessons after 43: they are customizable!" +msgstr "" +"44 баштап 50 чейинки сабактарында колдонулуучу символдордун топтомун ондоо." -#: ../data/klavaro.glade.h:88 -msgid "Paste text that was copied to the clipboard." -msgstr "Алмашуу буферине көчүрүлгөн текстти коюу." +#: ../data/klavaro.glade.h:88 ../src/tutor.c:376 +msgid "Drag and drop text here to practice with it." +msgstr "Текст менен көнүгүш үчүн, аны бул жерге көчүрүңүз." #: ../data/klavaro.glade.h:89 -msgid "_Paste from clipboard" -msgstr "_Алмашуу буферинен коюу" +#, fuzzy +msgid "Press here to restart the exercise. Hotkey: [Ctrl-R]" +msgstr "Көнүгүүнү кайта башташ үчүн бул жерди басыңыз. Ысык клавиша: [Ctrl R]" #: ../data/klavaro.glade.h:90 -msgid "Remove the selected item." -msgstr "Тандалган элементти өчүрүү." +msgid "Show the virtual keyboard and the relation between fingers and keys." +msgstr "" +"Манжалар менен баскычтардын ортосундагы мамилени виртуалдык ариптактадан " +"көрсөтүү." #: ../data/klavaro.glade.h:91 -msgid "_Remove copied file" -msgstr "_Көчүрүлгөн файлды өчүрүү" +msgid "_Keyboard" +msgstr "_Ариптакта" #: ../data/klavaro.glade.h:92 -msgid "Apply the selected item to create an exercise." -msgstr "Тандалган элементтен көнүгүүнү жаратып колдонуу." +msgid "Select the font to be used in the exercise window." +msgstr "Көнүгүүнүн терезесинде колдонулуучу шрифтти тандоо." #: ../data/klavaro.glade.h:93 -msgid "_Apply" -msgstr "_Колдонуу" +msgid "Font definition" +msgstr "Арипти аныктоо" #: ../data/klavaro.glade.h:94 -msgid "Klavaro - Progress" -msgstr "Klavaro - Жетишкендик" +msgid "Keep this checked if you want to get those nice beeps." +msgstr "" +"Эгер сиз ушу сонун сигналды уккуңуз келсе, муну басылган бойдон калтырыңыз." #: ../data/klavaro.glade.h:95 -msgid "Value" -msgstr "Мааниси" +msgid "_Beep" +msgstr "_Сигнал" #: ../data/klavaro.glade.h:96 -msgid "Clear all the progress data, for every module." -msgstr "Ар бир модуль үчүн бүт жетишкендик жөнүндө маалыматты тазалоо." +msgid "Co_urse information" +msgstr "Ку_рс жөнүндө маалымат" #: ../data/klavaro.glade.h:97 -msgid "_Reset" -msgstr "_Түшүрүү" +msgid "Charts showing the learning progress along the exercises." +msgstr "Көнүгүүлөрдүн окуу жетишкендигин көрсөтүүчү графиктери." #: ../data/klavaro.glade.h:98 -msgid "Close this window, returning to the exercise." -msgstr "Терезени жабып көнүгүүгө кайтуу." +msgid "_Progress" +msgstr "_Жетишкендик" #: ../data/klavaro.glade.h:99 -msgid "Klavaro - Select file" -msgstr "Klavaro - Файл тандоо" +msgid "Return to the main menu." +msgstr "Башкы менюга кайтуу" #: ../data/klavaro.glade.h:100 -msgid "_Open" -msgstr "_Ачуу" +msgid "Show local and external scores from other users." +msgstr "Башка колдонуучулардын жердик жана тышкы упайларын көрсөтүү." #: ../data/klavaro.glade.h:101 -msgid "Help?" -msgstr "Жардам?" - -#: ../data/klavaro.glade.h:102 -msgid "" -"The main menu of the application is very straightforward. Just select the " -"type of exercise you wish to take. Do not worry about clicking any button on " -"the screen. The buttons will never hurt you!" -msgstr "" +msgid "_Top 10" +msgstr "_Төбөл 10" -#: ../data/klavaro.glade.h:103 -msgid "" -"Also the controls have tips which will appear if you hover over them with " -"your mouse. These tips can come in very handy. To see how these tips work, " -"position your mouse over the button below, and without clicking, wait for " -"the tip to appear..." -msgstr "" +#: ../data/klavaro.desktop.in.h:1 +#, fuzzy +msgid "A very flexible and efficient touch typing tutor." +msgstr "Дагы бир баскычтоп машыктыргычы" -#: ../data/klavaro.glade.h:104 -msgid "This is a tip. Now you press this button to return to the main menu." -msgstr "" -"Бул калкуучу билдирме болот. Эми сиз башкы менюга кайтуу үчүн бул баскычты " -"басыңыз." +#. Translators: these are keywords related to the program. CAI above means Computer Aided Instruction. Feel free to add and/or change the keywords in your language. +#: ../data/klavaro.desktop.in.h:3 +#, fuzzy +msgid "keyboard;typing;tutor;CAI" +msgstr "Ариптакта" -#: ../src/main.c:314 +#: ../src/main.c:242 msgid "(Custom)" msgstr "(башка)" -#: ../src/main.c:315 +#: ../src/main.c:243 msgid "(Edit custom)" msgstr "(башканы оңдоо)" -#: ../src/main.c:316 +#: ../src/main.c:244 msgid "(Default)" -msgstr "(жарыяланбас)" +msgstr "(жарыяланбаган)" -#: ../src/main.c:393 +#: ../src/main.c:321 #, c-format msgid "Dictation mode (depends on this speech synthesizer: %s)" msgid_plural "Dictation mode (depends on one of these speech synthesizers: %s)" msgstr[0] "Жат жазуу режими (төмөнкү үн синтезаторунан көз каранды болот: %s)" -#. Set main labels (for translation) -#. -#: ../src/main.c:435 ../src/keyboard.c:1291 +#: ../src/main.c:364 ../src/keyboard.c:1291 msgid "Introduction" msgstr "Киришүү" -#: ../src/main.c:438 ../src/top10.c:109 +#: ../src/main.c:367 ../src/top10.c:109 msgid "Basic course" msgstr "Негизги курс" -#: ../src/main.c:441 ../src/top10.c:112 +#: ../src/main.c:370 ../src/top10.c:112 msgid "Adaptability" msgstr "Көнгүчтүк" -#: ../src/main.c:444 ../src/callbacks.c:1310 ../src/top10.c:89 +#: ../src/main.c:373 ../src/callbacks.c:1226 ../src/top10.c:89 #: ../src/top10.c:115 msgid "Speed" msgstr "Ылдамдык" -#: ../src/main.c:447 ../src/callbacks.c:1333 ../src/top10.c:91 +#: ../src/main.c:376 ../src/callbacks.c:1249 ../src/top10.c:91 #: ../src/top10.c:118 msgid "Fluidity" msgstr "Жай-салмактуулук" -#: ../src/callbacks.c:468 ../src/tutor.c:391 +#: ../src/callbacks.c:407 ../src/tutor.c:515 msgid "Keys:" msgstr "Баскычтары:" -#: ../src/callbacks.c:858 ../src/callbacks.c:874 +#: ../src/callbacks.c:774 ../src/callbacks.c:790 msgid "Connecting..." msgstr "Туташтырылууда..." -#: ../src/callbacks.c:1145 +#: ../src/callbacks.c:1061 msgid "Overwrite user layout" msgstr "Колдонуучу жайылматүрүн кайтадан жаздыруу" -#: ../src/callbacks.c:1147 +#: ../src/callbacks.c:1063 msgid "This will OVERWRITE an existent keyboard layout." -msgstr "Бул бар болгон клавиатуранын жайылматүрүн КАЙТАДАН ЖАЗДЫРАТ." +msgstr "Бул бар болгон ариптакта жайылмасынын ҮСТҮНӨН ЖАЗДЫРАТ." -#: ../src/callbacks.c:1154 +#: ../src/callbacks.c:1070 msgid "Remove user layout" msgstr "Колдонуучулук жайылмасын өчүрүү" -#: ../src/callbacks.c:1156 +#: ../src/callbacks.c:1072 msgid "This will REMOVE an existent keyboard layout." -msgstr "Бул бар болгон клавиатуранын жайылматүрүн ӨЧҮРӨТ." +msgstr "Бул бар болгон ариптакта жайылмасын ӨЧҮРӨТ." -#: ../src/callbacks.c:1163 +#: ../src/callbacks.c:1079 msgid "Reset progress data" msgstr "Жетишкендик жөнүндө маалыматтарды түшүрүү" -#: ../src/callbacks.c:1164 +#: ../src/callbacks.c:1080 msgid "This will DELETE all the progress data shown in the charts." msgstr "" "Графиктерде көрсөтүлгөн бүт жетишкендик жөнүндө маалыматтарды бул ӨЧҮРӨТ." -#: ../src/callbacks.c:1307 ../src/top10.c:87 +#: ../src/callbacks.c:1223 ../src/top10.c:87 msgid "Accuracy" msgstr "Тактык" -#: ../src/callbacks.c:1310 ../src/tutor.c:1160 +#: ../src/callbacks.c:1226 ../src/tutor.c:1288 msgid "(WPM)" msgstr "(МС)" -#: ../src/callbacks.c:1321 +#: ../src/callbacks.c:1237 msgid "Errors" msgstr "Каталар" -#: ../src/callbacks.c:1324 +#: ../src/callbacks.c:1240 msgid "Touch times (s)" msgstr "Терүү убагы (с)" -#: ../src/callbacks.c:1336 ../src/tutor.c:1187 ../src/top10.c:69 +#: ../src/callbacks.c:1252 ../src/tutor.c:1315 ../src/top10.c:69 msgid "Score" msgstr "Упай" #. Translators: your language code (first 2 letters of your po-file) -#: ../src/translation.c:423 ../src/translation.c:489 ../src/tutor.c:1597 +#: ../src/translation.c:485 ../src/tutor.c:1725 msgid "en" msgstr "ky" -#: ../src/translation.c:576 +#: ../src/translation.c:572 msgid "" "The basic course focuses on having you read the characters presented to you " "on screen and typing the corresponding keys. Remember to keep your hands " @@ -565,59 +570,59 @@ "introduction on main menu)." msgstr "" -#: ../src/translation.c:580 +#: ../src/translation.c:576 msgid "" "The key set used in each series will be shown in the above message line. The " "[Space], [Shift] and [Enter] keys may not show up there but are used very " "often." msgstr "" -#: ../src/translation.c:583 +#: ../src/translation.c:579 msgid "" "The message line below follows and echoes your key presses. If required, it " "changes and displays instructions for actions required from you." msgstr "" -#: ../src/translation.c:587 +#: ../src/translation.c:583 msgid "" "Here you may practice and improve your memorization of all keys. There will " "be sentences presented with nonsense words which mix some numbers and " "symbols." msgstr "" -#: ../src/translation.c:590 +#: ../src/translation.c:586 msgid "" "In order to keep the lesson contents language and keyboard independent, " "accented letter combinations will probably not appear. For real word " "sentences, please use the fourth option of the main menu (about fluidness)." msgstr "" -#: ../src/translation.c:594 +#: ../src/translation.c:590 msgid "" "After each exercise there will be a brief statistics panel reviewing your " "performance along with some relevant comments." msgstr "" -#: ../src/translation.c:598 +#: ../src/translation.c:594 msgid "" "This exercise is very similar to the second one, for adaptability. The " "difference is that here you'll type real words." msgstr "" -#: ../src/translation.c:601 +#: ../src/translation.c:597 msgid "" "The default language is the actual one of the interface. But you may select " "any other texts with words you would like to use. Press the 'Other' option " "above and add files containing those texts." msgstr "" -#: ../src/translation.c:605 +#: ../src/translation.c:601 msgid "" "With this exercise the focus is on speed. So, you are supposed to type " "really fast and I will only flatter you when you deserve it!" msgstr "" -#: ../src/translation.c:609 +#: ../src/translation.c:605 msgid "" "We will now use complete sentences and paragraphs which make logical sense. " "This may distract you while you type if you try to understand what you are " @@ -625,7 +630,7 @@ "interpreting and analyzing the content." msgstr "" -#: ../src/translation.c:613 +#: ../src/translation.c:609 msgid "" "We do not mean to imply that the typists must behave like a robot, without " "understanding what they type. We do aim to develop the skill of typing, " @@ -635,8 +640,7 @@ "real meaning of the text." msgstr "" -#. English typo: minimun -> minimum -#: ../src/translation.c:618 +#: ../src/translation.c:613 msgid "" "These exercises are longer. Each exercise consists of three paragraphs and " "the emphasis is placed on correctness and rhythm, with a minimum speed " @@ -644,7 +648,6 @@ "any mistakes. In other words, only input without error will be accepted." msgstr "" -#. English typo: recomendations -> recommendations #: ../src/keyboard.c:1094 msgid "" "Correct positioning of the hands and fingers is very important to efficient " @@ -719,13 +722,11 @@ msgid "Step %i" msgstr "%i кадам" -#. Recommendations -#: ../src/keyboard.c:1140 +#: ../src/keyboard.c:1142 msgid "To position the hands" msgstr "Колдорду жайлаштыруу" -#. Final words -#: ../src/keyboard.c:1225 +#: ../src/keyboard.c:1227 msgid "Go ahead!" msgstr "Алга!" @@ -741,11 +742,11 @@ #: ../src/keyboard.c:1291 ../src/keyboard.c:1325 msgid "Keyboard" -msgstr "Баскычтоп" +msgstr "Ариптакта" #: ../src/keyboard.c:1372 msgid "Create or modify a custom keyboard layout" -msgstr "Тапшырылма клавиатуранын жайылматүрүн жаратуу же өзгөртүү" +msgstr "Тапшырылма ариптакта жайылмасын жаратуу же өзгөртүү" #: ../src/keyboard.c:1618 ../src/keyboard.c:1642 msgid "small finger" @@ -767,165 +768,162 @@ msgid "Press and edit me" msgstr "Мени басып ондоңуз" -#: ../src/tutor.c:176 +#: ../src/tutor.c:300 msgid "Lesson:" msgstr "Сабак:" -#: ../src/tutor.c:186 +#: ../src/tutor.c:310 msgid "Paragraphs:" msgstr "Параграф:" -#: ../src/tutor.c:219 +#: ../src/tutor.c:343 msgid "Klavaro - Basic Course" msgstr "Klavaro - Негизги курс" -#: ../src/tutor.c:224 +#: ../src/tutor.c:348 msgid "Klavaro - Adaptability" msgstr "Klavaro - Көнгүчтүк" -#: ../src/tutor.c:227 +#: ../src/tutor.c:351 msgid "" "Adaptability exercises: automating the fingers responses, typing over all " "the keyboard." msgstr "" -#: ../src/tutor.c:232 +#: ../src/tutor.c:356 msgid "Klavaro - Velocity" msgstr "Klavaro - Ылдамдык" -#: ../src/tutor.c:233 +#: ../src/tutor.c:357 msgid "Velocity exercises: accelerate typing real words." msgstr "" -#: ../src/tutor.c:237 +#: ../src/tutor.c:361 msgid "Klavaro - Fluidness" msgstr "Klavaro - Жай-салмактуулук" -#: ../src/tutor.c:239 +#: ../src/tutor.c:363 msgid "Fluidness exercises: accuracy typing good sense paragraphs." msgstr "" -#: ../src/tutor.c:301 +#: ../src/tutor.c:425 msgid "End of exercise. Press [Enter] to start another." msgstr "" -#: ../src/tutor.c:329 +#: ../src/tutor.c:453 msgid "Learning the key positions." msgstr "Клавишанын орундарын үйрөнүү." -#: ../src/tutor.c:332 +#: ../src/tutor.c:456 msgid "Press any key to start the exercise. " msgstr "Көнүгүүнү башташ үчүн каалаган клавишаны басыңыз. " -#: ../src/tutor.c:440 ../src/tutor.c:443 +#: ../src/tutor.c:567 ../src/tutor.c:570 msgid "Start typing when you are ready. " msgstr "Сиз даяр болгондо терип баштаңыз. " -#: ../src/tutor.c:441 +#: ../src/tutor.c:568 msgid "Use backspace to correct errors." msgstr "Каталарды оңдоо үчүн backspace'ти колдонуңуз." -#: ../src/tutor.c:885 +#: ../src/tutor.c:1012 #, c-format msgid "" "ps.: logging not performed for this session: the number of typed characters " "(%i) must be greater than %i." msgstr "" -#: ../src/tutor.c:1027 +#: ../src/tutor.c:1154 msgid "ps.: you have entered the Top 10 list, great!" msgstr "" -#: ../src/tutor.c:1039 +#: ../src/tutor.c:1166 msgid "" "ps.: the text you just typed doesn't seem to be similar to ordinary texts in " "the language currently selected: we can't account for it in the 'Top 10' " "contest." msgstr "" -#. Begin the accuracy -#: ../src/tutor.c:1087 +#: ../src/tutor.c:1215 msgid "STATISTICS" msgstr "СТАТИСТИКА" -#: ../src/tutor.c:1088 +#: ../src/tutor.c:1216 msgid "Elapsed time:" msgstr "Коротулган убагы:" -#: ../src/tutor.c:1089 +#: ../src/tutor.c:1217 msgid "minute and" msgid_plural "minutes and" msgstr[0] "мүнөт жана" -#: ../src/tutor.c:1090 +#: ../src/tutor.c:1218 msgid "second" msgid_plural "seconds" msgstr[0] "секунда" -#: ../src/tutor.c:1091 +#: ../src/tutor.c:1219 msgid "Error ratio:" msgstr "Катанын коэффициенти:" -#: ../src/tutor.c:1091 +#: ../src/tutor.c:1219 msgid "Accuracy:" msgstr "Тактык:" -#: ../src/tutor.c:1112 ../src/tutor.c:1137 ../src/tutor.c:1160 -#: ../src/tutor.c:1186 +#: ../src/tutor.c:1240 ../src/tutor.c:1265 ../src/tutor.c:1288 +#: ../src/tutor.c:1314 msgid "Goal:" msgstr "Максат:" -#: ../src/tutor.c:1119 +#: ../src/tutor.c:1247 msgid "Characters per second:" msgstr "Секундасына символ:" -#: ../src/tutor.c:1137 +#: ../src/tutor.c:1265 msgid "(CPS)" msgstr "(СБ)" -#: ../src/tutor.c:1142 +#: ../src/tutor.c:1270 msgid "Words per minute:" msgstr "Сөз саны (м.):" -#: ../src/tutor.c:1167 +#: ../src/tutor.c:1295 msgid "Fluidness:" msgstr "Жай-салмактуулук:" -#: ../src/tutor.c:1194 +#: ../src/tutor.c:1322 msgid "Comments:" msgstr "Комментарийлер:" -#: ../src/tutor.c:1676 +#: ../src/tutor.c:1804 msgid "space" msgstr "боштук" #. Translators: the name of letter Y -#: ../src/tutor.c:1681 +#: ../src/tutor.c:1809 msgid "wye" msgstr "жылдызча" #. Translators: the name of the Return key -#: ../src/tutor.c:1685 +#: ../src/tutor.c:1813 msgid "enter" msgstr "киргизүү" -#: ../src/tutor.c:1691 +#: ../src/tutor.c:1819 msgid "apostrophe" msgstr "апостроф" #. Translators: double quote symbol: " -#: ../src/tutor.c:1695 +#: ../src/tutor.c:1823 msgid "quote" msgstr "тырмакча" #. Translators: ampersand symbol: & -#: ../src/tutor.c:1699 +#: ../src/tutor.c:1827 msgid "ampersand" msgstr "амперсанд" -#. Error frequencies or touch times -#. -#: ../src/plot.c:308 +#: ../src/plot.c:305 msgid "Character" msgstr "Символ" @@ -933,11 +931,11 @@ msgid "Date & Time" msgstr "Күн жана убакыт" -#: ../src/basic.c:331 +#: ../src/basic.c:326 msgid "Positions of keys seems to be learned!" msgstr "Клавишалардын орундары жатталгандай көрүнөт!" -#: ../src/basic.c:332 +#: ../src/basic.c:327 msgid "" " Congratulations!\n" " You have accomplished the entire basic course.\n" @@ -945,33 +943,35 @@ " There you will practice mainly the accuracy.\n" msgstr "" -#: ../src/basic.c:338 +#: ../src/basic.c:333 msgid "" " All right, now you got it!\n" " Go to the next lesson.\n" msgstr "" -#: ../src/adaptability.c:217 +#: ../src/adaptability.c:213 +#, c-format msgid "" -" Your accuracy rate is below 90%...\n" +" Your accuracy rate is below %.0f%%...\n" " Could you please try again to improve it?\n" msgstr "" -#: ../src/adaptability.c:222 +#: ../src/adaptability.c:216 +#, c-format msgid "" " You are doing well. But...\n" -" Could you make the accuracy reach 95%?\n" +" Could you make the accuracy reach %.0f%%?\n" msgstr "" -#: ../src/adaptability.c:225 +#: ../src/adaptability.c:219 #, c-format msgid "" " You are almost there, but your accuracy rate is still below %.0f%%.\n" -" Try a few more times, or maybe you're getting upset, so go to other kind of " -"exercise.\n" +" Try a few more times, or maybe you're getting upset, so go to another kind " +"of exercise.\n" msgstr "" -#: ../src/adaptability.c:232 +#: ../src/adaptability.c:226 #, c-format msgid "" " Very good!\n" @@ -980,94 +980,102 @@ " Go to the 3rd exercise at the main menu.\n" msgstr "" -#: ../src/velocity.c:313 ../src/fluidness.c:435 +#: ../src/velocity.c:312 ../src/fluidness.c:435 msgid "Pasted_or_dropped" msgstr "Коюлган_же_ташылган" -#: ../src/velocity.c:432 +#: ../src/velocity.c:423 msgid "" " You are just beginning.\n" " Be patient, try it again every day, rest and don't worry so much:\n" " persistence and practice will improve your velocity.\n" msgstr "" -#: ../src/velocity.c:436 +#: ../src/velocity.c:427 +#, c-format msgid "" " Still away from the highway. You can make better...\n" -" Try at least 20 WPM.\n" +" Try to reach at least %.0f WPM.\n" msgstr "" -#: ../src/velocity.c:439 +#: ../src/velocity.c:430 +#, c-format msgid "" " You are doing well, but need to go faster.\n" -" And don't forget the accuracy. Try to get 30 WPM.\n" +" And don't forget the accuracy. Try to get %.0f WPM.\n" msgstr "" -#: ../src/velocity.c:443 +#: ../src/velocity.c:433 +#, c-format msgid "" " Fine. Now you need to start running.\n" -" Can you reach 40 WPM?\n" +" Can you reach %.0f WPM?\n" msgstr "" -#: ../src/velocity.c:446 +#: ../src/velocity.c:436 #, c-format msgid "" " Very good. You are almost there.\n" " Can you finally reach %.0f WPM?\n" msgstr "" -#: ../src/velocity.c:451 +#: ../src/velocity.c:439 msgid "" " Excellent. For this course, that is enough.\n" " Try now the fluidness exercises, OK?\n" msgstr "" -#: ../src/velocity.c:455 +#: ../src/velocity.c:442 +#, c-format msgid "" -" Fast! Are you training for a competition?\n" -" So, try to get 70 WPM!\n" +" Fast! Are you a professional?\n" +" So, try to get %.0f WPM!\n" msgstr "" -#: ../src/velocity.c:458 -msgid "" -" Top of \"qwerty\". Now it's time to change to the Dvorak mode.\n" -" Are you afraid of reaching 80 WPM?\n" +#. Translators: Speed Racer is a reference to a Japanese anime franchise +#. about automobile racing, also known as Mach GoGoGo. +#: ../src/velocity.c:447 +#, c-format +msgid " Ranking good, Speed Racer! Are you afraid of reaching %.0f WPM?\n" msgstr "" -#: ../src/velocity.c:462 +#. Translators: feel free to change the reference to that martial art, if you find another good analogy. +#: ../src/velocity.c:451 +#, c-format msgid "" -" Dvorak mode dominated!\n" -" Can you fly at 90 WPM?\n" +" Kunf-fu mastering!\n" +" Can you fly at %.0f WPM?\n" msgstr "" -#: ../src/velocity.c:466 +#. Translators: Dvorak here means that infamous ergonomic keyboard layout. +#: ../src/velocity.c:454 msgid "" " Dvorak master!\n" " I have no words to express my admiration!\n" msgstr "" -#: ../src/fluidness.c:545 +#: ../src/fluidness.c:538 #, c-format msgid "" " You type accurately but not so fast.\n" " Can you reach %.0f WPM?\n" msgstr "" -#: ../src/fluidness.c:548 +#: ../src/fluidness.c:541 #, c-format msgid "" " Your rhythm is not so constant. Calm down.\n" " For now, try to make the fluidness greater than %i%%.\n" msgstr "" -#: ../src/fluidness.c:551 +#: ../src/fluidness.c:544 #, c-format msgid "" " You are almost getting there. Type more fluently.\n" " I want a fluidness greater than %.0f%%.\n" msgstr "" -#: ../src/fluidness.c:554 +#: ../src/fluidness.c:547 msgid "" " Congratulations!\n" " It seems to me that you are a professional.\n" @@ -1075,7 +1083,7 @@ " Hope you have enjoyed. Thanks and be happy!\n" msgstr "" -#: ../src/fluidness.c:559 +#: ../src/fluidness.c:552 msgid "" " How can you type so fast?\n" " You have exceeded all my expectations.\n" @@ -1131,5 +1139,15 @@ msgid "Could not upload/download scores." msgstr "Упайларды жүктөөгө/жүктөп алууга мүмкүн эмес." +#~ msgid "Press here to restart the exercise. Hotkey: [Ctrl R]" +#~ msgstr "" +#~ "Көнүгүүнү кайта башташ үчүн бул жерди басыңыз. Ысык клавиша: [Ctrl R]" + +#~ msgid "_Font" +#~ msgstr "_Арип" + +#~ msgid "Klavaro" +#~ msgstr "Klavaro" + #~ msgid "Default" -#~ msgstr "Жарыяланбасча" +#~ msgstr "Жарыяланбаган" diff -Nru klavaro-1.9.9/po/LINGUAS klavaro-3.00/po/LINGUAS --- klavaro-1.9.9/po/LINGUAS 1970-01-01 00:00:00.000000000 +0000 +++ klavaro-3.00/po/LINGUAS 2014-01-13 22:50:22.000000000 +0000 @@ -0,0 +1 @@ +ar bg bn cs da de en_GB el eo eu es fi fr gl hu it kk ky nb nl pl pt_BR ru sv te uk ur vi wo zh_CN diff -Nru klavaro-1.9.9/po/Makefile.in.in klavaro-3.00/po/Makefile.in.in --- klavaro-1.9.9/po/Makefile.in.in 2013-08-15 13:47:29.000000000 +0000 +++ klavaro-3.00/po/Makefile.in.in 2014-01-07 09:12:57.000000000 +0000 @@ -63,7 +63,7 @@ POFILES=$(shell LINGUAS="$(PO_LINGUAS)"; for lang in $$LINGUAS; do printf "$$lang.po "; done) DISTFILES = Makefile.in.in POTFILES.in $(POFILES) -EXTRA_DISTFILES = ChangeLog POTFILES.skip Makevars LINGUAS +EXTRA_DISTFILES = ChangeLog POTFILES.skip Makevars LINGUAS $(GETTEXT_PACKAGE).pot POTFILES = \ # This comment gets stripped out @@ -154,7 +154,7 @@ fi mostlyclean: - rm -f *.pox $(GETTEXT_PACKAGE).pot *.old.po cat-id-tbl.tmp + rm -f *.pox *.old.po cat-id-tbl.tmp rm -f .intltool-merge-cache clean: mostlyclean @@ -167,6 +167,7 @@ @echo "This command is intended for maintainers to use;" @echo "it deletes files that may require special tools to rebuild." rm -f Makefile.in.in + rm -f $(GETTEXT_PACKAGE).pot distdir = ../$(PACKAGE)-$(VERSION)/$(subdir) dist distdir: $(DISTFILES) diff -Nru klavaro-1.9.9/po/Makevars klavaro-3.00/po/Makevars --- klavaro-1.9.9/po/Makevars 2013-08-15 16:43:38.000000000 +0000 +++ klavaro-3.00/po/Makevars 2013-11-21 08:52:42.000000000 +0000 @@ -34,8 +34,20 @@ # It can be your email address, or a mailing list address where translators # can write to without being subscribed, or the URL of a web page through # which the translators can contact you. -MSGID_BUGS_ADDRESS = +MSGID_BUGS_ADDRESS = # This is the list of locale categories, beyond LC_MESSAGES, for which the # message catalogs shall be used. It is usually empty. EXTRA_LOCALE_CATEGORIES = + +# This tells whether the $(DOMAIN).pot file contains messages with an 'msgctxt' +# context. Possible values are "yes" and "no". Set this to yes if the +# package uses functions taking also a message context, like pgettext(), or +# if in $(XGETTEXT_OPTIONS) you define keywords with a context argument. +USE_MSGCTXT = no + +# These options get passed to msgmerge. +# Useful options are in particular: +# --previous to keep previous msgids of translated messages, +# --quiet to reduce the verbosity. +MSGMERGE_OPTIONS = diff -Nru klavaro-1.9.9/po/nb.po klavaro-3.00/po/nb.po --- klavaro-1.9.9/po/nb.po 2013-08-15 13:38:51.000000000 +0000 +++ klavaro-3.00/po/nb.po 2014-01-13 23:25:51.000000000 +0000 @@ -6,563 +6,568 @@ msgid "" msgstr "" "Project-Id-Version: klavaro-1.9.0-pre1\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2013-08-15 10:38-0300\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2014-01-13 21:25-0200\n" "PO-Revision-Date: 2011-03-26 13:19+0100\n" "Last-Translator: Axel Bojer \n" "Language-Team: Norwegian Bokmaal \n" -"Language: \n" +"Language: nb\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" "X-Generator: KBabel 1.11.4\n" -#: ../data/klavaro.desktop.in.h:1 ../data/klavaro.glade.h:59 -msgid "Yet another touch typing tutor" -msgstr "Enda et verktøy til å øve maskinskrivning" - #: ../data/klavaro.glade.h:1 -msgid "Klavaro - Main menu" -msgstr "Klavaro - hovedmeny" +msgid "About 'Klavaro'" +msgstr "Om «Klavaro»" #: ../data/klavaro.glade.h:2 -msgid "Don't be shy about learning the basics!" -msgstr "Ikke vær redd for å lære det grunnleggende!" +msgid "Yet another touch typing tutor" +msgstr "Enda et verktøy til å øve maskinskrivning" #: ../data/klavaro.glade.h:3 -msgid "Learn how to type correctly" -msgstr "Lær riktig maskinskrivning" +msgid "Remember always: someone loves you!" +msgstr "Husk alltid: Noen elsker deg!" #: ../data/klavaro.glade.h:4 -msgid "Initial training for your fingers." -msgstr "Startrening for fingrene" +msgid "Change language" +msgstr "Bytt språk" #: ../data/klavaro.glade.h:5 -msgid "First steps with initial training" -msgstr "De første trinnene med innledende øvelser" +msgid "Attention!" +msgstr "Klar!" #: ../data/klavaro.glade.h:6 -msgid "Memorizing the keyboard practicing random keys exercises." -msgstr "Lær tastaturet ved å øve på tilfeldige bokstavkombinasjoner" +msgid "Do you confirm?" +msgstr "Bekrefter du?" #: ../data/klavaro.glade.h:7 -msgid "Practice with random keys" -msgstr "Øvelse med tilfeldige bokstaver" +msgid "_No" +msgstr "_Nei" + +#: ../data/klavaro.glade.h:8 +msgid "_Yes" +msgstr "_Ja" -#. English typo: touchs -> touches #: ../data/klavaro.glade.h:9 -msgid "Accelerating the touches practicing random words exercises." -msgstr "Skriv raskere ved å trene på tilfeldige ord." +msgid "Help?" +msgstr "Hjelp?" #: ../data/klavaro.glade.h:10 -msgid "Practice with random words" -msgstr "Øvelse med tilfeldige ord" +msgid "This is a tip. Now you press this button to return to the main menu." +msgstr "" +"Dette er et tips. Trykk på denne knappen for å gå tilbake til hovedmenyen." #: ../data/klavaro.glade.h:11 -msgid "Becoming proficient practicing complete paragraphs exercises." -msgstr "Bli flinkere ved å øve på hele tekstavsnitt." +msgid "B_ack to menu" +msgstr "_Tilbake til menyen" #: ../data/klavaro.glade.h:12 -msgid "Practice with complete texts" -msgstr "Øvelse med hele tekster" +msgid "" +"The main menu of the application is very straightforward. Just select the " +"type of exercise you wish to take. Do not worry about clicking any button on " +"the screen. The buttons will never hurt you!" +msgstr "" +"Hovedmenyen i programmet er enkel. Velg den øvelsestypen du vil øve på. Ikke " +"vær redd for å trykke på noen av knappene på skjermen. Knappene vil aldri " +"skade deg!" #: ../data/klavaro.glade.h:13 msgid "" -"Keyboard layout for modules 1 and 2. Also used informatively in the " -"fluidness contest." +"Also the controls have tips which will appear if you hover over them with " +"your mouse. These tips can come in very handy. To see how these tips work, " +"position your mouse over the button below, and without clicking, wait for " +"the tip to appear..." msgstr "" -"Tastaturoppsett for modul 1 og 2. Brukes også som informasjon i konkurransen " -"for flytende skriving." +"Knappene har også tips som vises når du holder musepekeren over dem. Disse " +"tipsene kan være nyttige. For å se hvordan de virker, hold musepekeren over " +"knappen nedenfor, og vent, uten å klikke, til tipset vises." #: ../data/klavaro.glade.h:14 -msgid "_Keyboard:" -msgstr "_Tastatur:" +msgid "Klavaro - Select file" +msgstr "Klavaro – Velg fil" #: ../data/klavaro.glade.h:15 -msgid "Language for modules 3 and 4." -msgstr "Språk for modul 3 og 4." +msgid "_Cancel" +msgstr "_Avbryt" #: ../data/klavaro.glade.h:16 -msgid "_Language:" -msgstr "_Språk:" +msgid "_Open" +msgstr "_Åpne" #: ../data/klavaro.glade.h:17 -msgid "Variant" -msgstr "Variant" +msgid "Re_name:" +msgstr "_Endre navn:" #: ../data/klavaro.glade.h:18 -msgid "Klavaro" -msgstr "Om «Klavaro»" +msgid "Rename the selected item." +msgstr "Gi nytt navn til det valgte elementet." #: ../data/klavaro.glade.h:19 -msgid "Country / Custom" -msgstr "Land/tilpasset" +msgid "" +"Read a text file and add a copy of it here. The file must be encoded in " +"UTF-8." +msgstr "" +"Les en tekstfil og legg til en kopi av den her. Fila må være formatert som " +"UTF-8." #: ../data/klavaro.glade.h:20 -msgid "Your language here." -msgstr "Ditt språk her." +msgid "_Open text file" +msgstr "_Åpne en tekstfil" #: ../data/klavaro.glade.h:21 -#, fuzzy -msgid "Speech" -msgstr "Hastighet" +msgid "Paste text that was copied to the clipboard." +msgstr "Sett inn teksten som ble kopiert til utklippstavla." #: ../data/klavaro.glade.h:22 -msgid "Little tip about this program." -msgstr "Et lite tips om dette programmet." +msgid "_Paste from clipboard" +msgstr "_Lim inn fra utklipptavla" #: ../data/klavaro.glade.h:23 -msgid "_Help" -msgstr "_Hjelp" +msgid "Remove the selected item." +msgstr "Fjern det valgte elementet." #: ../data/klavaro.glade.h:24 -msgid "General information about the program." -msgstr "Generell informasjon om programmet." +msgid "_Remove copied file" +msgstr "_Fjern den kopierte fila" #: ../data/klavaro.glade.h:25 -msgid "_About..." -msgstr "_Om ..." +msgid "Apply the selected item to create an exercise." +msgstr "Bruk det valgte elementet for å lage en øvelse." #: ../data/klavaro.glade.h:26 -msgid "Exit the application immediately." -msgstr "Avslutt programmet nå straks." +msgid "_Apply" +msgstr "_Bruk" #: ../data/klavaro.glade.h:27 -msgid "_Close" -msgstr "_Lukk" +msgid "Close this window." +msgstr "Lukk dette vinduet." #: ../data/klavaro.glade.h:28 -msgid "Load other exercises/lessons" -msgstr "Hent andre øvelser/leksjoner" +msgid "_Close" +msgstr "_Lukk" #: ../data/klavaro.glade.h:29 -msgid "_Other texts" -msgstr "_Andre tekster" +msgid "Country / Custom" +msgstr "Land/tilpasset" #: ../data/klavaro.glade.h:30 -msgid "_Lesson:" -msgstr "_Leksjon:" +msgid "Variant" +msgstr "Variant" #: ../data/klavaro.glade.h:31 -msgid "Edit the character set to be used in this lesson." -msgstr "Rediger tegnsettet som skal brukes i denne leksjonen." +msgid "Remove the selected custom layout." +msgstr "Fjern det valgte brukeroppsettet" #: ../data/klavaro.glade.h:32 -msgid "Edit the character set to be used in lessons 44 through 50." -msgstr "Rediger tegnsettet som skal brukes i leksjon 44 til 50." +msgid "_Remove" +msgstr "_Fjern" #: ../data/klavaro.glade.h:33 -msgid "This is a specific exercise, adjusted to your error profile." -msgstr "Dette er en øvelse som er tilpasset din feilprofil." +msgid "" +"Toggles the shift effect on the keys. Alternates between the upper and lower " +"characters of the keys." +msgstr "" +"Bytter mellom ulike bytte-effekter på tastene. Bytter mellom de øvre og " +"nedre tegnene på tastene." -#: ../data/klavaro.glade.h:34 ../src/tutor.c:252 -msgid "Drag and drop text here to practice with it." -msgstr "Dra og slipp en tekst her for å øve deg på den." +#: ../data/klavaro.glade.h:34 +msgid "SPACE BAR" +msgstr "MELLOMROM" -#: ../data/klavaro.glade.h:35 -msgid "Press here to restart the exercise. Hotkey: [Ctrl R]" -msgstr "Trykk en tast for å starte øvelsen på nytt. Snarvei: [Ctrl R]" +#: ../data/klavaro.glade.h:35 ../src/keyboard.c:1630 +msgid "thumbs" +msgstr "tommelfingre" #: ../data/klavaro.glade.h:36 -msgid "Show the virtual keyboard and the relation between fingers and keys." -msgstr "Vis en tastaturoversikt og hvilke fingre som hører til hvilke taster." +msgid "Ctrl" +msgstr "Ctrl" #: ../data/klavaro.glade.h:37 -msgid "_Keyboard" -msgstr "_Tastatur" +msgid "Caps" +msgstr "Caps Lock" #: ../data/klavaro.glade.h:38 -msgid "Select the font to be used in the exercise window." -msgstr "Velg hvilken skrifttype du vil bruke i øvelsesvinduet." +msgid "S_ave as:" +msgstr "_Lagre som" #: ../data/klavaro.glade.h:39 -msgid "_Font" -msgstr "_Skrifttype" +msgid "Show previous screen." +msgstr "Vis forrige skjerm." #: ../data/klavaro.glade.h:40 -msgid "Keep this checked if you want to get those nice beeps." -msgstr "Behold krysset hvis du vil høre de vakre, små pipelydene." +msgid "_Previous step" +msgstr "_Forrige trinn" #: ../data/klavaro.glade.h:41 -msgid "_Beep" -msgstr "_Pip" +msgid "Show next screen." +msgstr "Vis neste skjerm." #: ../data/klavaro.glade.h:42 -msgid "Co_urse information" -msgstr "_Undervisningsinformasjon" +msgid "_Next step" +msgstr "_Neste trinn" #: ../data/klavaro.glade.h:43 -msgid "Charts showing the learning progress along the exercises." -msgstr "Grafer som viser læringsframgangen i øvelsene." +msgid "Return without any modification." +msgstr "Gå tilbake uten å endre noe." #: ../data/klavaro.glade.h:44 -msgid "_Progress" -msgstr "_Framgang" +msgid "Save the current keyboard layout with the name specified above." +msgstr "Lagre dette tastaturoppsettet med navnet ovenfor." #: ../data/klavaro.glade.h:45 -msgid "Show local and external scores from other users." -msgstr "Vis lokale og eksterne poeng fra andre brukere." +msgid "_Save and use" +msgstr "_Lagre og bruk" #: ../data/klavaro.glade.h:46 -msgid "_Top 10" -msgstr "_Ti på topp" +msgid "" +"If you like those beautiful hands, click here to close this window keeping " +"them." +msgstr "" +"Hvis du liker de vakre hendene, så klikk her for å lukke dette vinduet og " +"beholde dem." #: ../data/klavaro.glade.h:47 -msgid "Return to the main menu." -msgstr "Tilbake til hovedmenyen." +msgid "_Keep hands" +msgstr "_Behold hendene" #: ../data/klavaro.glade.h:48 -msgid "B_ack to menu" -msgstr "_Tilbake til menyen" +msgid "Klavaro - Main menu" +msgstr "Klavaro - hovedmeny" #: ../data/klavaro.glade.h:49 -msgid "Close this window." -msgstr "Lukk dette vinduet." +msgid "Don't be shy about learning the basics!" +msgstr "Ikke vær redd for å lære det grunnleggende!" #: ../data/klavaro.glade.h:50 -msgid "Font definition" -msgstr "Skrifttypevalg" +msgid "Learn how to type correctly" +msgstr "Lær riktig maskinskrivning" #: ../data/klavaro.glade.h:51 -msgid "Top 10" -msgstr "Ti på topp" +msgid "Initial training for your fingers." +msgstr "Startrening for fingrene" #: ../data/klavaro.glade.h:52 -msgid "Show extra information" -msgstr "Vis ekstrainformasjonen" +msgid "First steps with initial training" +msgstr "De første trinnene med innledende øvelser" #: ../data/klavaro.glade.h:53 -msgid "Hide extra information" -msgstr "Skjul ekstrainformasjonen" +msgid "Memorizing the keyboard practicing random keys exercises." +msgstr "Lær tastaturet ved å øve på tilfeldige bokstavkombinasjoner" #: ../data/klavaro.glade.h:54 -msgid "Publish to the web your local scores." -msgstr "Legg ut dine poeng på nettet." +msgid "Practice with random keys" +msgstr "Øvelse med tilfeldige bokstaver" #: ../data/klavaro.glade.h:55 -msgid "_Participate" -msgstr "_Delta" +msgid "Accelerating the touches practicing random words exercises." +msgstr "Skriv raskere ved å trene på tilfeldige ord." #: ../data/klavaro.glade.h:56 -msgid "Download from the web the most up to date ranking." -msgstr "Hent den oppdaterte rangeringen fra nettet." +msgid "Practice with random words" +msgstr "Øvelse med tilfeldige ord" #: ../data/klavaro.glade.h:57 -msgid "_Update" -msgstr "_Oppdater" +msgid "Becoming proficient practicing complete paragraphs exercises." +msgstr "Bli flinkere ved å øve på hele tekstavsnitt." #: ../data/klavaro.glade.h:58 -msgid "About 'Klavaro'" -msgstr "Om «Klavaro»" +msgid "Practice with complete texts" +msgstr "Øvelse med hele tekster" + +#: ../data/klavaro.glade.h:59 +msgid "" +"Keyboard layout for modules 1 and 2. Also used informatively in the " +"fluidness contest." +msgstr "" +"Tastaturoppsett for modul 1 og 2. Brukes også som informasjon i konkurransen " +"for flytende skriving." #: ../data/klavaro.glade.h:60 -msgid "Remember always: someone loves you!" -msgstr "Husk alltid: Noen elsker deg!" +msgid "_Keyboard:" +msgstr "_Tastatur:" #: ../data/klavaro.glade.h:61 -msgid "Remove the selected custom layout." -msgstr "Fjern det valgte brukeroppsettet" +msgid "Language for modules 3 and 4." +msgstr "Språk for modul 3 og 4." #: ../data/klavaro.glade.h:62 -msgid "_Remove" -msgstr "_Fjern" +msgid "_Language:" +msgstr "_Språk:" #: ../data/klavaro.glade.h:63 -msgid "" -"Toggles the shift effect on the keys. Alternates between the upper and lower " -"characters of the keys." -msgstr "" -"Bytter mellom ulike bytte-effekter på tastene. Bytter mellom de øvre og " -"nedre tegnene på tastene." +#, fuzzy +msgid "Speech" +msgstr "Hastighet" #: ../data/klavaro.glade.h:64 -msgid "SPACE BAR" -msgstr "MELLOMROM" +msgid "Your language here." +msgstr "Ditt språk her." -#: ../data/klavaro.glade.h:65 ../src/keyboard.c:1630 -msgid "thumbs" -msgstr "tommelfingre" +#: ../data/klavaro.glade.h:65 +msgid "Little tip about this program." +msgstr "Et lite tips om dette programmet." #: ../data/klavaro.glade.h:66 -msgid "Ctrl" -msgstr "Ctrl" +msgid "_Help" +msgstr "_Hjelp" #: ../data/klavaro.glade.h:67 -msgid "Caps" -msgstr "Caps Lock" +msgid "General information about the program." +msgstr "Generell informasjon om programmet." #: ../data/klavaro.glade.h:68 -msgid "S_ave as:" -msgstr "_Lagre som" +msgid "_About..." +msgstr "_Om ..." #: ../data/klavaro.glade.h:69 -msgid "Show previous screen." -msgstr "Vis forrige skjerm." +msgid "Exit the application immediately." +msgstr "Avslutt programmet nå straks." #: ../data/klavaro.glade.h:70 -msgid "_Previous step" -msgstr "_Forrige trinn" +msgid "Klavaro - Progress" +msgstr "Klavaro - Framgang" #: ../data/klavaro.glade.h:71 -msgid "Show next screen." -msgstr "Vis neste skjerm." +msgid "_Lesson:" +msgstr "_Leksjon:" #: ../data/klavaro.glade.h:72 -msgid "_Next step" -msgstr "_Neste trinn" +msgid "Value" +msgstr "Verdi" #: ../data/klavaro.glade.h:73 -msgid "Return without any modification." -msgstr "Gå tilbake uten å endre noe." +msgid "Close this window, returning to the exercise." +msgstr "Lukk dette vinduet og gå tilbake til øvelsen." #: ../data/klavaro.glade.h:74 -msgid "_Cancel" -msgstr "_Avbryt" +msgid "Clear all the progress data, for every module." +msgstr "Slett alle dataene om framgang, for alle modulene." #: ../data/klavaro.glade.h:75 -msgid "Save the current keyboard layout with the name specified above." -msgstr "Lagre dette tastaturoppsettet med navnet ovenfor." +msgid "_Reset" +msgstr "_Nullstill" #: ../data/klavaro.glade.h:76 -msgid "_Save and use" -msgstr "_Lagre og bruk" +msgid "Top 10" +msgstr "Ti på topp" #: ../data/klavaro.glade.h:77 -msgid "" -"If you like those beautiful hands, click here to close this window keeping " -"them." -msgstr "" -"Hvis du liker de vakre hendene, så klikk her for å lukke dette vinduet og " -"beholde dem." +#, fuzzy +msgid "Show extra information." +msgstr "Vis ekstrainformasjonen" #: ../data/klavaro.glade.h:78 -msgid "_Keep hands" -msgstr "_Behold hendene" +#, fuzzy +msgid "Hide extra information." +msgstr "Skjul ekstrainformasjonen" #: ../data/klavaro.glade.h:79 -msgid "Change language" -msgstr "Bytt språk" +msgid "Publish to the web your local scores." +msgstr "Legg ut dine poeng på nettet." #: ../data/klavaro.glade.h:80 -msgid "Attention!" -msgstr "Klar!" +msgid "_Participate" +msgstr "_Delta" #: ../data/klavaro.glade.h:81 -msgid "Do you confirm?" -msgstr "Bekrefter du?" +msgid "Download from the web the most up to date ranking." +msgstr "Hent den oppdaterte rangeringen fra nettet." #: ../data/klavaro.glade.h:82 -msgid "_No" -msgstr "_Nei" +msgid "_Update" +msgstr "_Oppdater" #: ../data/klavaro.glade.h:83 -msgid "_Yes" -msgstr "_Ja" +msgid "Load other exercises/lessons" +msgstr "Hent andre øvelser/leksjoner" #: ../data/klavaro.glade.h:84 -msgid "Re_name:" -msgstr "_Endre navn:" +msgid "_Other texts" +msgstr "_Andre tekster" #: ../data/klavaro.glade.h:85 -msgid "Rename the selected item." -msgstr "Gi nytt navn til det valgte elementet." +msgid "Edit the character set to be used in this lesson." +msgstr "Rediger tegnsettet som skal brukes i denne leksjonen." #: ../data/klavaro.glade.h:86 -msgid "" -"Read a text file and add a copy of it here. The file must be encoded in " -"UTF-8." -msgstr "" -"Les en tekstfil og legg til en kopi av den her. Fila må være formatert som " -"UTF-8." +msgid "This is a specific exercise, adjusted to your error profile." +msgstr "Dette er en øvelse som er tilpasset din feilprofil." #: ../data/klavaro.glade.h:87 -msgid "_Open text file" -msgstr "_Åpne en tekstfil" +#, fuzzy +msgid "" +"Edit the character set to be used in lessons after 43: they are customizable!" +msgstr "Rediger tegnsettet som skal brukes i leksjon 44 til 50." -#: ../data/klavaro.glade.h:88 -msgid "Paste text that was copied to the clipboard." -msgstr "Sett inn teksten som ble kopiert til utklippstavla." +#: ../data/klavaro.glade.h:88 ../src/tutor.c:376 +msgid "Drag and drop text here to practice with it." +msgstr "Dra og slipp en tekst her for å øve deg på den." #: ../data/klavaro.glade.h:89 -msgid "_Paste from clipboard" -msgstr "_Lim inn fra utklipptavla" +#, fuzzy +msgid "Press here to restart the exercise. Hotkey: [Ctrl-R]" +msgstr "Trykk en tast for å starte øvelsen på nytt. Snarvei: [Ctrl R]" #: ../data/klavaro.glade.h:90 -msgid "Remove the selected item." -msgstr "Fjern det valgte elementet." +msgid "Show the virtual keyboard and the relation between fingers and keys." +msgstr "Vis en tastaturoversikt og hvilke fingre som hører til hvilke taster." #: ../data/klavaro.glade.h:91 -msgid "_Remove copied file" -msgstr "_Fjern den kopierte fila" +msgid "_Keyboard" +msgstr "_Tastatur" #: ../data/klavaro.glade.h:92 -msgid "Apply the selected item to create an exercise." -msgstr "Bruk det valgte elementet for å lage en øvelse." +msgid "Select the font to be used in the exercise window." +msgstr "Velg hvilken skrifttype du vil bruke i øvelsesvinduet." #: ../data/klavaro.glade.h:93 -msgid "_Apply" -msgstr "_Bruk" +msgid "Font definition" +msgstr "Skrifttypevalg" #: ../data/klavaro.glade.h:94 -msgid "Klavaro - Progress" -msgstr "Klavaro - Framgang" +msgid "Keep this checked if you want to get those nice beeps." +msgstr "Behold krysset hvis du vil høre de vakre, små pipelydene." #: ../data/klavaro.glade.h:95 -msgid "Value" -msgstr "Verdi" +msgid "_Beep" +msgstr "_Pip" #: ../data/klavaro.glade.h:96 -msgid "Clear all the progress data, for every module." -msgstr "Slett alle dataene om framgang, for alle modulene." +msgid "Co_urse information" +msgstr "_Undervisningsinformasjon" #: ../data/klavaro.glade.h:97 -msgid "_Reset" -msgstr "_Nullstill" +msgid "Charts showing the learning progress along the exercises." +msgstr "Grafer som viser læringsframgangen i øvelsene." #: ../data/klavaro.glade.h:98 -msgid "Close this window, returning to the exercise." -msgstr "Lukk dette vinduet og gå tilbake til øvelsen." +msgid "_Progress" +msgstr "_Framgang" #: ../data/klavaro.glade.h:99 -msgid "Klavaro - Select file" -msgstr "Klavaro – Velg fil" +msgid "Return to the main menu." +msgstr "Tilbake til hovedmenyen." #: ../data/klavaro.glade.h:100 -msgid "_Open" -msgstr "_Åpne" +msgid "Show local and external scores from other users." +msgstr "Vis lokale og eksterne poeng fra andre brukere." #: ../data/klavaro.glade.h:101 -msgid "Help?" -msgstr "Hjelp?" - -#: ../data/klavaro.glade.h:102 -msgid "" -"The main menu of the application is very straightforward. Just select the " -"type of exercise you wish to take. Do not worry about clicking any button on " -"the screen. The buttons will never hurt you!" -msgstr "" -"Hovedmenyen i programmet er enkel. Velg den øvelsestypen du vil øve på. Ikke " -"vær redd for å trykke på noen av knappene på skjermen. Knappene vil aldri " -"skade deg!" +msgid "_Top 10" +msgstr "_Ti på topp" -#: ../data/klavaro.glade.h:103 -msgid "" -"Also the controls have tips which will appear if you hover over them with " -"your mouse. These tips can come in very handy. To see how these tips work, " -"position your mouse over the button below, and without clicking, wait for " -"the tip to appear..." -msgstr "" -"Knappene har også tips som vises når du holder musepekeren over dem. Disse " -"tipsene kan være nyttige. For å se hvordan de virker, hold musepekeren over " -"knappen nedenfor, og vent, uten å klikke, til tipset vises." +#: ../data/klavaro.desktop.in.h:1 +#, fuzzy +msgid "A very flexible and efficient touch typing tutor." +msgstr "Enda et verktøy til å øve maskinskrivning" -#: ../data/klavaro.glade.h:104 -msgid "This is a tip. Now you press this button to return to the main menu." -msgstr "" -"Dette er et tips. Trykk på denne knappen for å gå tilbake til hovedmenyen." +#. Translators: these are keywords related to the program. CAI above means Computer Aided Instruction. Feel free to add and/or change the keywords in your language. +#: ../data/klavaro.desktop.in.h:3 +#, fuzzy +msgid "keyboard;typing;tutor;CAI" +msgstr "Tastatur" -#: ../src/main.c:314 +#: ../src/main.c:242 msgid "(Custom)" msgstr "(Selvvalgt)" -#: ../src/main.c:315 +#: ../src/main.c:243 msgid "(Edit custom)" msgstr "(Rediger selvvalgt)" -#: ../src/main.c:316 +#: ../src/main.c:244 msgid "(Default)" msgstr "(Standard)" -#: ../src/main.c:393 +#: ../src/main.c:321 #, c-format msgid "Dictation mode (depends on this speech synthesizer: %s)" msgid_plural "Dictation mode (depends on one of these speech synthesizers: %s)" msgstr[0] "Diktatmodus (avhengig av denne talesyntesen: %s)" msgstr[1] "Diktatmodus (avhengig av en av disse talesyntesene: %s)" -#. Set main labels (for translation) -#. -#: ../src/main.c:435 ../src/keyboard.c:1291 +#: ../src/main.c:364 ../src/keyboard.c:1291 msgid "Introduction" msgstr "Introduksjon" -#: ../src/main.c:438 ../src/top10.c:109 +#: ../src/main.c:367 ../src/top10.c:109 msgid "Basic course" msgstr "Grunnøvelse" -#: ../src/main.c:441 ../src/top10.c:112 +#: ../src/main.c:370 ../src/top10.c:112 msgid "Adaptability" msgstr "Tilpasningsevne" -#: ../src/main.c:444 ../src/callbacks.c:1310 ../src/top10.c:89 +#: ../src/main.c:373 ../src/callbacks.c:1226 ../src/top10.c:89 #: ../src/top10.c:115 msgid "Speed" msgstr "Hastighet" -#: ../src/main.c:447 ../src/callbacks.c:1333 ../src/top10.c:91 +#: ../src/main.c:376 ../src/callbacks.c:1249 ../src/top10.c:91 #: ../src/top10.c:118 msgid "Fluidity" msgstr "Flyt" -#: ../src/callbacks.c:468 ../src/tutor.c:391 +#: ../src/callbacks.c:407 ../src/tutor.c:515 msgid "Keys:" msgstr "Taster:" -#: ../src/callbacks.c:858 ../src/callbacks.c:874 +#: ../src/callbacks.c:774 ../src/callbacks.c:790 msgid "Connecting..." msgstr "Kobler til ..." -#: ../src/callbacks.c:1145 +#: ../src/callbacks.c:1061 msgid "Overwrite user layout" msgstr "Skriv over brukeroppsettet" -#: ../src/callbacks.c:1147 +#: ../src/callbacks.c:1063 msgid "This will OVERWRITE an existent keyboard layout." msgstr "Dette vil SKRIVE OVER et eksisterende brukeroppsett." -#: ../src/callbacks.c:1154 +#: ../src/callbacks.c:1070 msgid "Remove user layout" msgstr "Fjern brukeroppsett" -#: ../src/callbacks.c:1156 +#: ../src/callbacks.c:1072 msgid "This will REMOVE an existent keyboard layout." msgstr "Dette vil FJERNE et eksisterende tastaturoppsett." -#: ../src/callbacks.c:1163 +#: ../src/callbacks.c:1079 msgid "Reset progress data" msgstr "Nullstil dataene for framgang" -#: ../src/callbacks.c:1164 +#: ../src/callbacks.c:1080 msgid "This will DELETE all the progress data shown in the charts." msgstr "Dette vil SLETTE alle de dataene for framgang som vises i diagrammene." -#: ../src/callbacks.c:1307 ../src/top10.c:87 +#: ../src/callbacks.c:1223 ../src/top10.c:87 msgid "Accuracy" msgstr "Presisjon" -#: ../src/callbacks.c:1310 ../src/tutor.c:1160 +#: ../src/callbacks.c:1226 ../src/tutor.c:1288 msgid "(WPM)" msgstr "(OPM)" -#: ../src/callbacks.c:1321 +#: ../src/callbacks.c:1237 msgid "Errors" msgstr "Feil" -#: ../src/callbacks.c:1324 +#: ../src/callbacks.c:1240 msgid "Touch times (s)" msgstr "" -#: ../src/callbacks.c:1336 ../src/tutor.c:1187 ../src/top10.c:69 +#: ../src/callbacks.c:1252 ../src/tutor.c:1315 ../src/top10.c:69 msgid "Score" msgstr "Poeng" #. Translators: your language code (first 2 letters of your po-file) -#: ../src/translation.c:423 ../src/translation.c:489 ../src/tutor.c:1597 +#: ../src/translation.c:485 ../src/tutor.c:1725 msgid "en" msgstr "nb" -#: ../src/translation.c:576 +#: ../src/translation.c:572 msgid "" "The basic course focuses on having you read the characters presented to you " "on screen and typing the corresponding keys. Remember to keep your hands " @@ -574,7 +579,7 @@ "hendene rett plassert på ledetastene på tastaturet (se introduksjonen i " "hovedmenyen)." -#: ../src/translation.c:580 +#: ../src/translation.c:576 msgid "" "The key set used in each series will be shown in the above message line. The " "[Space], [Shift] and [Enter] keys may not show up there but are used very " @@ -584,7 +589,7 @@ "ovenfor. Tastene [Mellomrom], [Shift] og [Return] blir kanskje ikke vist, " "men brukes ganske ofte." -#: ../src/translation.c:583 +#: ../src/translation.c:579 msgid "" "The message line below follows and echoes your key presses. If required, it " "changes and displays instructions for actions required from you." @@ -592,7 +597,7 @@ "Meldingslinja nedenfor følger og gjentar dine inntastinger. Hvis det trengs, " "så endrer den seg og viser instruksjoner for de handlingene du skal utføre." -#: ../src/translation.c:587 +#: ../src/translation.c:583 msgid "" "Here you may practice and improve your memorization of all keys. There will " "be sentences presented with nonsense words which mix some numbers and " @@ -602,7 +607,7 @@ "på tastaturet. Du vil få se setninger med meningsløse ord som også " "inneholder tall og symboler." -#: ../src/translation.c:590 +#: ../src/translation.c:586 msgid "" "In order to keep the lesson contents language and keyboard independent, " "accented letter combinations will probably not appear. For real word " @@ -613,7 +618,7 @@ "med aksenttegn. For å øve med ordentlige ord og setninger, se de andre " "valgene i hovedmenyen (om flyt)." -#: ../src/translation.c:594 +#: ../src/translation.c:590 msgid "" "After each exercise there will be a brief statistics panel reviewing your " "performance along with some relevant comments." @@ -621,7 +626,7 @@ "Etter hver øvelse vil du få en kort statistikk over din framgang, sammen med " "noen passende kommentarer." -#: ../src/translation.c:598 +#: ../src/translation.c:594 msgid "" "This exercise is very similar to the second one, for adaptability. The " "difference is that here you'll type real words." @@ -629,7 +634,7 @@ "Denne øvelsen er veldig lik nummer to, for tilpasningsevne. Forskellen er at " "du her skriver ordentlige ord." -#: ../src/translation.c:601 +#: ../src/translation.c:597 msgid "" "The default language is the actual one of the interface. But you may select " "any other texts with words you would like to use. Press the 'Other' option " @@ -639,7 +644,7 @@ "du også velge en hvilken som helst annen tekst med ord om du vil. Trykk på " "«Andre tekster» ovenfor og legg til filer med den teksten du vil øve på." -#: ../src/translation.c:605 +#: ../src/translation.c:601 msgid "" "With this exercise the focus is on speed. So, you are supposed to type " "really fast and I will only flatter you when you deserve it!" @@ -647,7 +652,7 @@ "I denne øvelsen fokuseres det på hastighet. Så det forventes at du taster " "virkelig raskt og du vil få ros når du fortjener det!" -#: ../src/translation.c:609 +#: ../src/translation.c:605 msgid "" "We will now use complete sentences and paragraphs which make logical sense. " "This may distract you while you type if you try to understand what you are " @@ -659,7 +664,7 @@ "tidligere øvelsene hadde som mål å få deg til å skrive uten å fortolke og " "analysere innholdet." -#: ../src/translation.c:613 +#: ../src/translation.c:609 msgid "" "We do not mean to imply that the typists must behave like a robot, without " "understanding what they type. We do aim to develop the skill of typing, " @@ -674,8 +679,7 @@ "måler er nådd, vil det å skrive bli automatisk og ikke kreve særlig stor " "konsentrasjon. Da kan du rette oppmerksomheten mot tekstinnholdet." -#. English typo: minimun -> minimum -#: ../src/translation.c:618 +#: ../src/translation.c:613 msgid "" "These exercises are longer. Each exercise consists of three paragraphs and " "the emphasis is placed on correctness and rhythm, with a minimum speed " @@ -687,7 +691,6 @@ "vil du måtte bruke rettetasten for å slette feil. Med andre ord: Bare " "inndata uten feil blir godkjent." -#. English typo: recomendations -> recommendations #: ../src/keyboard.c:1094 msgid "" "Correct positioning of the hands and fingers is very important to efficient " @@ -784,13 +787,11 @@ msgid "Step %i" msgstr "Trinn %i" -#. Recommendations -#: ../src/keyboard.c:1140 +#: ../src/keyboard.c:1142 msgid "To position the hands" msgstr "Plasseringen av hendene" -#. Final words -#: ../src/keyboard.c:1225 +#: ../src/keyboard.c:1227 msgid "Go ahead!" msgstr "Bare gå i gang!" @@ -831,23 +832,23 @@ msgid "Press and edit me" msgstr "Trykk og rediger meg" -#: ../src/tutor.c:176 +#: ../src/tutor.c:300 msgid "Lesson:" msgstr "Leksjon:" -#: ../src/tutor.c:186 +#: ../src/tutor.c:310 msgid "Paragraphs:" msgstr "Tekstavsnitt:" -#: ../src/tutor.c:219 +#: ../src/tutor.c:343 msgid "Klavaro - Basic Course" msgstr "Klavaro – Grunnleggende øvelse" -#: ../src/tutor.c:224 +#: ../src/tutor.c:348 msgid "Klavaro - Adaptability" msgstr "Klavaro – Tilpasningsevne" -#: ../src/tutor.c:227 +#: ../src/tutor.c:351 msgid "" "Adaptability exercises: automating the fingers responses, typing over all " "the keyboard." @@ -855,44 +856,44 @@ "Oppøve tilpasningsevnen: Automatisk respons fra fingrene, inntasting på hele " "tastaturet." -#: ../src/tutor.c:232 +#: ../src/tutor.c:356 msgid "Klavaro - Velocity" msgstr "Klavaro – Hastighet" -#: ../src/tutor.c:233 +#: ../src/tutor.c:357 msgid "Velocity exercises: accelerate typing real words." msgstr "Hastighetsøvelser: Øk hastigheten mens du skriver ordentlige ord." -#: ../src/tutor.c:237 +#: ../src/tutor.c:361 msgid "Klavaro - Fluidness" msgstr "Klavaro – Flyt" -#: ../src/tutor.c:239 +#: ../src/tutor.c:363 msgid "Fluidness exercises: accuracy typing good sense paragraphs." msgstr "" "Øvelser for å skrive flytende: Presisjon ved å skrive inn hele tekstavsnitt." -#: ../src/tutor.c:301 +#: ../src/tutor.c:425 msgid "End of exercise. Press [Enter] to start another." msgstr "Øvelsen er slutt. Trykk [Return] for å starte en annen øvelse." -#: ../src/tutor.c:329 +#: ../src/tutor.c:453 msgid "Learning the key positions." msgstr "Lær plasseringen av tastene." -#: ../src/tutor.c:332 +#: ../src/tutor.c:456 msgid "Press any key to start the exercise. " msgstr "Trykk en tast for å starte øvelsen." -#: ../src/tutor.c:440 ../src/tutor.c:443 +#: ../src/tutor.c:567 ../src/tutor.c:570 msgid "Start typing when you are ready. " msgstr "Start å skrive når du er klar." -#: ../src/tutor.c:441 +#: ../src/tutor.c:568 msgid "Use backspace to correct errors." msgstr "" -#: ../src/tutor.c:885 +#: ../src/tutor.c:1012 #, c-format msgid "" "ps.: logging not performed for this session: the number of typed characters " @@ -901,11 +902,11 @@ "PS: Denne øvelsen logges ikke: Antall inntastede tegn (%i) skal være større " "enn %i." -#: ../src/tutor.c:1027 +#: ../src/tutor.c:1154 msgid "ps.: you have entered the Top 10 list, great!" msgstr "PS: Du er havnet på listen over de ti beste, glimrende!" -#: ../src/tutor.c:1039 +#: ../src/tutor.c:1166 msgid "" "ps.: the text you just typed doesn't seem to be similar to ordinary texts in " "the language currently selected: we can't account for it in the 'Top 10' " @@ -914,92 +915,89 @@ "PS: Teksten, du nettopp har tastet inn, ligner ikke tilsvarende tekster på " "det valgte språket: Vi kan ikke bruke denne i ti på topp-konkurransen ." -#. Begin the accuracy -#: ../src/tutor.c:1087 +#: ../src/tutor.c:1215 msgid "STATISTICS" msgstr "STATISTIKK" -#: ../src/tutor.c:1088 +#: ../src/tutor.c:1216 msgid "Elapsed time:" msgstr "Tid som har gått:" -#: ../src/tutor.c:1089 +#: ../src/tutor.c:1217 msgid "minute and" msgid_plural "minutes and" msgstr[0] "minutt og" msgstr[1] "minutter og" -#: ../src/tutor.c:1090 +#: ../src/tutor.c:1218 msgid "second" msgid_plural "seconds" msgstr[0] "sekund" msgstr[1] "sekunder" -#: ../src/tutor.c:1091 +#: ../src/tutor.c:1219 msgid "Error ratio:" msgstr "Feilnivå:" -#: ../src/tutor.c:1091 +#: ../src/tutor.c:1219 msgid "Accuracy:" msgstr "Presisjon:" -#: ../src/tutor.c:1112 ../src/tutor.c:1137 ../src/tutor.c:1160 -#: ../src/tutor.c:1186 +#: ../src/tutor.c:1240 ../src/tutor.c:1265 ../src/tutor.c:1288 +#: ../src/tutor.c:1314 msgid "Goal:" msgstr "Mål:" -#: ../src/tutor.c:1119 +#: ../src/tutor.c:1247 msgid "Characters per second:" msgstr "Tegn per sekund:" -#: ../src/tutor.c:1137 +#: ../src/tutor.c:1265 msgid "(CPS)" msgstr "(TPS)" -#: ../src/tutor.c:1142 +#: ../src/tutor.c:1270 msgid "Words per minute:" msgstr "Ord per minutt:" -#: ../src/tutor.c:1167 +#: ../src/tutor.c:1295 msgid "Fluidness:" msgstr "Flyt:" -#: ../src/tutor.c:1194 +#: ../src/tutor.c:1322 msgid "Comments:" msgstr "Bemerkninger:" -#: ../src/tutor.c:1676 +#: ../src/tutor.c:1804 msgid "space" msgstr "mellomrom" #. Translators: the name of letter Y -#: ../src/tutor.c:1681 +#: ../src/tutor.c:1809 #, fuzzy msgid "wye" msgstr "y" #. Translators: the name of the Return key -#: ../src/tutor.c:1685 +#: ../src/tutor.c:1813 msgid "enter" msgstr "enter" -#: ../src/tutor.c:1691 +#: ../src/tutor.c:1819 msgid "apostrophe" msgstr "apostrof" #. Translators: double quote symbol: " -#: ../src/tutor.c:1695 +#: ../src/tutor.c:1823 msgid "quote" msgstr "hermetegn" #. Translators: ampersand symbol: & -#: ../src/tutor.c:1699 +#: ../src/tutor.c:1827 msgid "ampersand" msgstr "og-tegn" -#. Error frequencies or touch times -#. -#: ../src/plot.c:308 +#: ../src/plot.c:305 msgid "Character" msgstr "" @@ -1007,11 +1005,11 @@ msgid "Date & Time" msgstr "Dato og tid" -#: ../src/basic.c:331 +#: ../src/basic.c:326 msgid "Positions of keys seems to be learned!" msgstr "Det ser ut til at du har lært plasseringen av tastene!" -#: ../src/basic.c:332 +#: ../src/basic.c:327 msgid "" " Congratulations!\n" " You have accomplished the entire basic course.\n" @@ -1023,7 +1021,7 @@ " Gå til den neste øvelsestypen: Tilpasningsevne.\n" " Der vil du i hovedsak trene på å skrive riktig.\n" -#: ../src/basic.c:338 +#: ../src/basic.c:333 msgid "" " All right, now you got it!\n" " Go to the next lesson.\n" @@ -1031,34 +1029,36 @@ " Nå har du det!\n" " Gå til den neste leksjonen.\n" -#: ../src/adaptability.c:217 +#: ../src/adaptability.c:213 +#, fuzzy, c-format msgid "" -" Your accuracy rate is below 90%...\n" +" Your accuracy rate is below %.0f%%...\n" " Could you please try again to improve it?\n" msgstr "" " Du skriver under 90 % rett ...\n" " Kunne du prøve å forbedre dette?\n" -#: ../src/adaptability.c:222 +#: ../src/adaptability.c:216 +#, fuzzy, c-format msgid "" " You are doing well. But...\n" -" Could you make the accuracy reach 95%?\n" +" Could you make the accuracy reach %.0f%%?\n" msgstr "" " Du klarer deg godt. Men ...\n" " Kan du klare minst 95 % rett?\n" -#: ../src/adaptability.c:225 -#, c-format +#: ../src/adaptability.c:219 +#, fuzzy, c-format msgid "" " You are almost there, but your accuracy rate is still below %.0f%%.\n" -" Try a few more times, or maybe you're getting upset, so go to other kind of " -"exercise.\n" +" Try a few more times, or maybe you're getting upset, so go to another kind " +"of exercise.\n" msgstr "" " Du klarer det nesten, men du skriver stadig mindre enn %.0f%% rett.\n" " Prøv et par ganger til, eller hvis du er litt urolig, så prøv med en annen " "øvelse.\n" -#: ../src/adaptability.c:232 +#: ../src/adaptability.c:226 #, c-format msgid "" " Very good!\n" @@ -1071,11 +1071,11 @@ " Nå er det på tide å øke hastigheten.\n" " Gå til den tredje øvelsen i hovedmenyen.\n" -#: ../src/velocity.c:313 ../src/fluidness.c:435 +#: ../src/velocity.c:312 ../src/fluidness.c:435 msgid "Pasted_or_dropped" msgstr "Limt_inn_eller_sluppet" -#: ../src/velocity.c:432 +#: ../src/velocity.c:423 msgid "" " You are just beginning.\n" " Be patient, try it again every day, rest and don't worry so much:\n" @@ -1085,31 +1085,34 @@ " Vær tålmodig, prøv hver dag, hvil og bekymre deg ikke så mye:\n" " iherdighet og øvelse vil gi økt hastighet.\n" -#: ../src/velocity.c:436 +#: ../src/velocity.c:427 +#, fuzzy, c-format msgid "" " Still away from the highway. You can make better...\n" -" Try at least 20 WPM.\n" +" Try to reach at least %.0f WPM.\n" msgstr "" " Stadig langt fra hovedveien. Du kan gjøre det bedre ...\n" " Prøv i det minste å oppnå 20 ord per minutt (OPM).\n" -#: ../src/velocity.c:439 +#: ../src/velocity.c:430 +#, fuzzy, c-format msgid "" " You are doing well, but need to go faster.\n" -" And don't forget the accuracy. Try to get 30 WPM.\n" +" And don't forget the accuracy. Try to get %.0f WPM.\n" msgstr "" " Du gjør det bra, men det må gå raskere.\n" " Og glem ikke presisjonen. Prøv å oppnå 30 ord per minutt (OPM).\n" -#: ../src/velocity.c:443 +#: ../src/velocity.c:433 +#, fuzzy, c-format msgid "" " Fine. Now you need to start running.\n" -" Can you reach 40 WPM?\n" +" Can you reach %.0f WPM?\n" msgstr "" " Fint. Nå må du få opp hastigheten.\n" " Kan du oppnå 40 ord per minutt (OPM)?\n" -#: ../src/velocity.c:446 +#: ../src/velocity.c:436 #, c-format msgid "" " Very good. You are almost there.\n" @@ -1118,7 +1121,7 @@ " Riktig bra. Du har nesten klart det.\n" " Kan du nå oppnå %.0f ord per minutt (OPM)?\n" -#: ../src/velocity.c:451 +#: ../src/velocity.c:439 msgid "" " Excellent. For this course, that is enough.\n" " Try now the fluidness exercises, OK?\n" @@ -1126,31 +1129,34 @@ " Glimrende. Til dette kurset er dette nok.\n" " Prøv nå med øvelser som øker skriveflyten, ok?\n" -#: ../src/velocity.c:455 +#: ../src/velocity.c:442 +#, fuzzy, c-format msgid "" -" Fast! Are you training for a competition?\n" -" So, try to get 70 WPM!\n" +" Fast! Are you a professional?\n" +" So, try to get %.0f WPM!\n" msgstr "" " Raskt! Trener du til en konkurranse?\n" " Prøv nå å oppnå 70 ord per minutt (OPM)!\n" -#: ../src/velocity.c:458 -msgid "" -" Top of \"qwerty\". Now it's time to change to the Dvorak mode.\n" -" Are you afraid of reaching 80 WPM?\n" +#. Translators: Speed Racer is a reference to a Japanese anime franchise +#. about automobile racing, also known as Mach GoGoGo. +#: ../src/velocity.c:447 +#, c-format +msgid " Ranking good, Speed Racer! Are you afraid of reaching %.0f WPM?\n" msgstr "" -" Toppen av «qwerty». Nå er det på tide å skifte til Dvorak-oppsettet.\n" -" Er du redd for å oppnå 80 ord per minutt (OPM)?\n" -#: ../src/velocity.c:462 +#. Translators: feel free to change the reference to that martial art, if you find another good analogy. +#: ../src/velocity.c:451 +#, fuzzy, c-format msgid "" -" Dvorak mode dominated!\n" -" Can you fly at 90 WPM?\n" +" Kunf-fu mastering!\n" +" Can you fly at %.0f WPM?\n" msgstr "" " Dvoraktilstanden er oppnådd!\n" " Kan du fly av sted med 90 ord per minutt (OPM)?\n" -#: ../src/velocity.c:466 +#. Translators: Dvorak here means that infamous ergonomic keyboard layout. +#: ../src/velocity.c:454 msgid "" " Dvorak master!\n" " I have no words to express my admiration!\n" @@ -1158,7 +1164,7 @@ " Dvorakmester!\n" " Ingen ord kan uttrykke min beundring!\n" -#: ../src/fluidness.c:545 +#: ../src/fluidness.c:538 #, c-format msgid "" " You type accurately but not so fast.\n" @@ -1167,7 +1173,7 @@ " Du skriver nøyaktig, men ikke så raskt.\n" " Kan du oppnå %.0f ord per minutt (OPM)?\n" -#: ../src/fluidness.c:548 +#: ../src/fluidness.c:541 #, c-format msgid "" " Your rhythm is not so constant. Calm down.\n" @@ -1176,7 +1182,7 @@ " Rytmen din er ikke konstant. Ta det rolig.\n" " Prøv å gjøre flyten større enn %i%%.\n" -#: ../src/fluidness.c:551 +#: ../src/fluidness.c:544 #, c-format msgid "" " You are almost getting there. Type more fluently.\n" @@ -1185,7 +1191,7 @@ " Du har nesten klart det. Skriv enda mer flytende.\n" " Jeg ser gjerne en flyt på mer enn %.0f%%.\n" -#: ../src/fluidness.c:554 +#: ../src/fluidness.c:547 msgid "" " Congratulations!\n" " It seems to me that you are a professional.\n" @@ -1197,7 +1203,7 @@ " Du har ikke lenger bruk for dette programmet.\n" " Håper du har hatt det gøy. Takk, og hygg deg!\n" -#: ../src/fluidness.c:559 +#: ../src/fluidness.c:552 msgid "" " How can you type so fast?\n" " You have exceeded all my expectations.\n" @@ -1257,5 +1263,21 @@ msgid "Could not upload/download scores." msgstr "Kunne ikke overføre/hente poeng," +#~ msgid "" +#~ " Top of \"qwerty\". Now it's time to change to the Dvorak mode.\n" +#~ " Are you afraid of reaching 80 WPM?\n" +#~ msgstr "" +#~ " Toppen av «qwerty». Nå er det på tide å skifte til Dvorak-oppsettet.\n" +#~ " Er du redd for å oppnå 80 ord per minutt (OPM)?\n" + +#~ msgid "Press here to restart the exercise. Hotkey: [Ctrl R]" +#~ msgstr "Trykk en tast for å starte øvelsen på nytt. Snarvei: [Ctrl R]" + +#~ msgid "_Font" +#~ msgstr "_Skrifttype" + +#~ msgid "Klavaro" +#~ msgstr "Om «Klavaro»" + #~ msgid "Default" #~ msgstr "Standard" diff -Nru klavaro-1.9.9/po/nl.po klavaro-3.00/po/nl.po --- klavaro-1.9.9/po/nl.po 2013-08-15 13:38:51.000000000 +0000 +++ klavaro-3.00/po/nl.po 2014-01-13 23:25:52.000000000 +0000 @@ -1,17 +1,17 @@ # Dutch translations for klavaro. -# Copyright (C) 2012 Free Software Foundation, Inc. +# Copyright (C) 2014 Free Software Foundation, Inc. # This file is distributed under the same license as the klavaro package. # -# "Durstig nach einem Bio-Radler, donnerten sie alle die Treppe hinunter." +# "Niet te verwarren met lekkernij." # # Dieter Vanderfaeillie , 2009. -# Benno Schulenberg , 2011, 2012. +# Benno Schulenberg , 2011, 2012, 2014. msgid "" msgstr "" -"Project-Id-Version: klavaro 1.9.5-pre2\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2013-08-15 10:38-0300\n" -"PO-Revision-Date: 2012-06-05 15:42+0200\n" +"Project-Id-Version: klavaro 3.00-pre2\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2014-01-13 21:25-0200\n" +"PO-Revision-Date: 2014-01-10 17:48+0100\n" "Last-Translator: Benno Schulenberg \n" "Language-Team: Dutch \n" "Language: nl\n" @@ -21,465 +21,468 @@ "Plural-Forms: nplurals=2; plural=(n!=1);\n" "X-Generator: Lokalize 1.0\n" -#: ../data/klavaro.desktop.in.h:1 ../data/klavaro.glade.h:59 -msgid "Yet another touch typing tutor" -msgstr "voor het leren van blind typen" - #: ../data/klavaro.glade.h:1 -msgid "Klavaro - Main menu" -msgstr "Klavaro - Hoofdmenu" +msgid "About 'Klavaro'" +msgstr "Over 'Klavaro'" #: ../data/klavaro.glade.h:2 -msgid "Don't be shy about learning the basics!" -msgstr "Wees niet te verlegen om de basisvaardigheden te leren!" +msgid "Yet another touch typing tutor" +msgstr "voor het leren van blind typen" #: ../data/klavaro.glade.h:3 -msgid "Learn how to type correctly" -msgstr "Leer de juiste manier van typen" +msgid "Remember always: someone loves you!" +msgstr "En vergeet niet: iemand houdt van je!" #: ../data/klavaro.glade.h:4 -msgid "Initial training for your fingers." -msgstr "Eerste training voor je vingers." +msgid "Change language" +msgstr "Taal wijzigen" #: ../data/klavaro.glade.h:5 -msgid "First steps with initial training" -msgstr "Eerste stappen van de training" +msgid "Attention!" +msgstr "Waarschuwing!" #: ../data/klavaro.glade.h:6 -msgid "Memorizing the keyboard practicing random keys exercises." -msgstr "Je het toetsenbord inprenten door te oefenen met willekeurige toetsen." +msgid "Do you confirm?" +msgstr "Weet je het zeker?" #: ../data/klavaro.glade.h:7 -msgid "Practice with random keys" -msgstr "Oefen met willekeurige toetsen" +msgid "_No" +msgstr "_Nee" + +#: ../data/klavaro.glade.h:8 +msgid "_Yes" +msgstr "_Ja" -#. English typo: touchs -> touches #: ../data/klavaro.glade.h:9 -msgid "Accelerating the touches practicing random words exercises." -msgstr "Je snelheid verhogen door te oefenen met willekeurige woorden." +msgid "Help?" +msgstr "Hulp?" #: ../data/klavaro.glade.h:10 -msgid "Practice with random words" -msgstr "Oefen met willekeurige woorden" +msgid "This is a tip. Now you press this button to return to the main menu." +msgstr "" +"Dit is een tip. Je kunt nu op deze knop klikken om terug te keren naar het " +"hoofdmenu." #: ../data/klavaro.glade.h:11 -msgid "Becoming proficient practicing complete paragraphs exercises." -msgstr "Bekwaam worden door te oefenen met volledige alinea's." +msgid "B_ack to menu" +msgstr "Terug naar _menu" #: ../data/klavaro.glade.h:12 -msgid "Practice with complete texts" -msgstr "Oefen met complete teksten" +msgid "" +"The main menu of the application is very straightforward. Just select the " +"type of exercise you wish to take. Do not worry about clicking any button on " +"the screen. The buttons will never hurt you!" +msgstr "" +"Het hoofdmenu van het programma is vrij eenvoudig: kies het soort oefening " +"dat je wilt doen. Wees niet bang om op een knop op het scherm te klikken. Ze " +"zullen niet bijten!" #: ../data/klavaro.glade.h:13 msgid "" -"Keyboard layout for modules 1 and 2. Also used informatively in the " -"fluidness contest." +"Also the controls have tips which will appear if you hover over them with " +"your mouse. These tips can come in very handy. To see how these tips work, " +"position your mouse over the button below, and without clicking, wait for " +"the tip to appear..." msgstr "" -"Toetsenbordindeling voor modules 1 en 2; wordt ook informatief gebruikt in " -"de vloeiendtypenwedstrijd." +"Elke knop toont een toelichting als je de muisaanwijzer erboven houdt. Deze " +"toelichtingen kunnen van pas komen. Om te zien hoe ze werken, plaats je nu " +"de muisaanwijzer boven de knop hieronder, zonder te klikken -- wacht tot de " +"tip verschijnt..." #: ../data/klavaro.glade.h:14 -msgid "_Keyboard:" -msgstr "Toetsen_bord:" +msgid "Klavaro - Select file" +msgstr "Klavaro - Kies bestand" #: ../data/klavaro.glade.h:15 -msgid "Language for modules 3 and 4." -msgstr "Taal voor modules 3 en 4." +msgid "_Cancel" +msgstr "_Annuleren" #: ../data/klavaro.glade.h:16 -msgid "_Language:" -msgstr "_Taal:" +msgid "_Open" +msgstr "_Openen" #: ../data/klavaro.glade.h:17 -msgid "Variant" -msgstr "Kies hier je toetsenbordvariant" +msgid "Re_name:" +msgstr "_Hernoemen:" #: ../data/klavaro.glade.h:18 -msgid "Klavaro" -msgstr "'Klavaro'" +msgid "Rename the selected item." +msgstr "Het geselecteerde item hernoemen." #: ../data/klavaro.glade.h:19 -msgid "Country / Custom" -msgstr "Kies hier je toetsenbordindeling." +msgid "" +"Read a text file and add a copy of it here. The file must be encoded in " +"UTF-8." +msgstr "" +"Een tekstbestand inlezen en een kopie ervan hier invoegen. Het bestand moet " +"gecodeerd zijn in UTF-8." #: ../data/klavaro.glade.h:20 -msgid "Your language here." -msgstr "Kies hier je taal." +msgid "_Open text file" +msgstr "Tekstbestand _openen" #: ../data/klavaro.glade.h:21 -msgid "Speech" -msgstr "Spraak" +msgid "Paste text that was copied to the clipboard." +msgstr "Tekst vanaf het klembord plakken." #: ../data/klavaro.glade.h:22 -msgid "Little tip about this program." -msgstr "Kleine toelichting bij dit programma." +msgid "_Paste from clipboard" +msgstr "_Plakken vanaf klembord" #: ../data/klavaro.glade.h:23 -msgid "_Help" -msgstr "_Hulp" +msgid "Remove the selected item." +msgstr "Het geselecteerde item verwijderen." #: ../data/klavaro.glade.h:24 -msgid "General information about the program." -msgstr "Algemene informatie over het programma." +msgid "_Remove copied file" +msgstr "Gekopieerd bestand _verwijderen" #: ../data/klavaro.glade.h:25 -msgid "_About..." -msgstr "_Info..." +msgid "Apply the selected item to create an exercise." +msgstr "Het geselecteerde item toepassen om een oefening aan te maken." #: ../data/klavaro.glade.h:26 -msgid "Exit the application immediately." -msgstr "Het programma onmiddellijk afsluiten." +msgid "_Apply" +msgstr "_Toepassen" #: ../data/klavaro.glade.h:27 -msgid "_Close" -msgstr "Sl_uiten" +msgid "Close this window." +msgstr "Dit venster sluiten." #: ../data/klavaro.glade.h:28 -msgid "Load other exercises/lessons" -msgstr "Andere oefeningen/lessen openen." +msgid "_Close" +msgstr "Sl_uiten" #: ../data/klavaro.glade.h:29 -msgid "_Other texts" -msgstr "_Andere teksten" +msgid "Country / Custom" +msgstr "Kies hier je toetsenbordindeling." #: ../data/klavaro.glade.h:30 -msgid "_Lesson:" -msgstr "_Les:" +msgid "Variant" +msgstr "Kies hier je toetsenbordvariant" #: ../data/klavaro.glade.h:31 -msgid "Edit the character set to be used in this lesson." -msgstr "De tekenset wijzigen die in deze les gebruikt wordt." +msgid "Remove the selected custom layout." +msgstr "De geselecteerde aangepaste indeling verwijderen." #: ../data/klavaro.glade.h:32 -msgid "Edit the character set to be used in lessons 44 through 50." -msgstr "De tekenset wijzigen die in lessen 44 tot 50 gebruikt wordt." +msgid "_Remove" +msgstr "_Verwijderen" #: ../data/klavaro.glade.h:33 -msgid "This is a specific exercise, adjusted to your error profile." -msgstr "Dit is een speciale oefening, aangepast aan jouw foutenprofiel." +msgid "" +"Toggles the shift effect on the keys. Alternates between the upper and lower " +"characters of the keys." +msgstr "" +"Schakelt Shift aan of uit; wisselt tussen de bovenste en onderste tekens van " +"de toetsen." -#: ../data/klavaro.glade.h:34 ../src/tutor.c:252 -msgid "Drag and drop text here to practice with it." -msgstr "Sleep een tekst hierheen om ermee te oefenen." +#: ../data/klavaro.glade.h:34 +msgid "SPACE BAR" +msgstr "SPATIEBALK" -#: ../data/klavaro.glade.h:35 -msgid "Press here to restart the exercise. Hotkey: [Ctrl R]" -msgstr "Klik hier om de oefening te herstarten." +#: ../data/klavaro.glade.h:35 ../src/keyboard.c:1630 +msgid "thumbs" +msgstr "duimen" #: ../data/klavaro.glade.h:36 -msgid "Show the virtual keyboard and the relation between fingers and keys." -msgstr "" -"Een schematisch toetsenbord tonen met de relatie tussen vingers en toetsen." +msgid "Ctrl" +msgstr "Ctrl" #: ../data/klavaro.glade.h:37 -msgid "_Keyboard" -msgstr "_Toetsenbord" +msgid "Caps" +msgstr "Capslock" #: ../data/klavaro.glade.h:38 -msgid "Select the font to be used in the exercise window." -msgstr "Het lettertype kiezen dat gebruikt wordt in het oefeningenscherm." +msgid "S_ave as:" +msgstr "Opslaan _als:" #: ../data/klavaro.glade.h:39 -msgid "_Font" -msgstr "_Lettertype" +msgid "Show previous screen." +msgstr "Vorig scherm tonen." #: ../data/klavaro.glade.h:40 -msgid "Keep this checked if you want to get those nice beeps." -msgstr "Houd deze ingeschakeld als je die piepjes wenst." +msgid "_Previous step" +msgstr "_Vorige stap" #: ../data/klavaro.glade.h:41 -msgid "_Beep" -msgstr "_Piepjes" +msgid "Show next screen." +msgstr "Volgend scherm tonen." #: ../data/klavaro.glade.h:42 -msgid "Co_urse information" -msgstr "Les_informatie" +msgid "_Next step" +msgstr "V_olgende stap" #: ../data/klavaro.glade.h:43 -msgid "Charts showing the learning progress along the exercises." -msgstr "Grafieken die de leercurve tonen." +msgid "Return without any modification." +msgstr "Terug zonder aanpassingen." #: ../data/klavaro.glade.h:44 -msgid "_Progress" -msgstr "_Voortgang" +msgid "Save the current keyboard layout with the name specified above." +msgstr "Deze toetsenbordindeling opslaan onder de bovenstaande naam." #: ../data/klavaro.glade.h:45 -msgid "Show local and external scores from other users." -msgstr "Lokale en externe scores van andere gebruikers tonen." +msgid "_Save and use" +msgstr "_Opslaan en gebruiken" #: ../data/klavaro.glade.h:46 -msgid "_Top 10" -msgstr "_Top 10" +msgid "" +"If you like those beautiful hands, click here to close this window keeping " +"them." +msgstr "" +"Als je die mooie handen graag ziet, klik dan hier om dit venster te sluiten " +"en ze te behouden." #: ../data/klavaro.glade.h:47 -msgid "Return to the main menu." -msgstr "Terug naar het hoofdmenu." +msgid "_Keep hands" +msgstr "_Handen behouden" #: ../data/klavaro.glade.h:48 -msgid "B_ack to menu" -msgstr "Terug naar _menu" +msgid "Klavaro - Main menu" +msgstr "Klavaro - Hoofdmenu" #: ../data/klavaro.glade.h:49 -msgid "Close this window." -msgstr "Dit venster sluiten." +msgid "Don't be shy about learning the basics!" +msgstr "Wees niet te verlegen om de basisvaardigheden te leren!" #: ../data/klavaro.glade.h:50 -msgid "Font definition" -msgstr "Lettertypedefinitie" +msgid "Learn how to type correctly" +msgstr "Leer de juiste manier van typen" #: ../data/klavaro.glade.h:51 -msgid "Top 10" -msgstr "Top 10" +msgid "Initial training for your fingers." +msgstr "Eerste training voor je vingers." #: ../data/klavaro.glade.h:52 -msgid "Show extra information" -msgstr "Extra informatie tonen" +msgid "First steps with initial training" +msgstr "Eerste stappen van de training" #: ../data/klavaro.glade.h:53 -msgid "Hide extra information" -msgstr "Extra informatie verbergen" +msgid "Memorizing the keyboard practicing random keys exercises." +msgstr "Je het toetsenbord inprenten door te oefenen met willekeurige toetsen." #: ../data/klavaro.glade.h:54 -msgid "Publish to the web your local scores." -msgstr "Jouw lokale scores op het web publiceren." +msgid "Practice with random keys" +msgstr "Oefen met willekeurige toetsen" #: ../data/klavaro.glade.h:55 -msgid "_Participate" -msgstr "_Deelnemen" +msgid "Accelerating the touches practicing random words exercises." +msgstr "Je snelheid verhogen door te oefenen met willekeurige woorden." #: ../data/klavaro.glade.h:56 -msgid "Download from the web the most up to date ranking." -msgstr "De laatste rangorde van het web downloaden." +msgid "Practice with random words" +msgstr "Oefen met willekeurige woorden" #: ../data/klavaro.glade.h:57 -msgid "_Update" -msgstr "_Verversen" +msgid "Becoming proficient practicing complete paragraphs exercises." +msgstr "Bekwaam worden door te oefenen met volledige alinea's." #: ../data/klavaro.glade.h:58 -msgid "About 'Klavaro'" -msgstr "Over 'Klavaro'" +msgid "Practice with complete texts" +msgstr "Oefen met complete teksten" + +#: ../data/klavaro.glade.h:59 +msgid "" +"Keyboard layout for modules 1 and 2. Also used informatively in the " +"fluidness contest." +msgstr "" +"Toetsenbordindeling voor modules 1 en 2; wordt ook informatief gebruikt in " +"de vloeiendtypenwedstrijd." #: ../data/klavaro.glade.h:60 -msgid "Remember always: someone loves you!" -msgstr "En vergeet niet: iemand houdt van je!" +msgid "_Keyboard:" +msgstr "Toetsen_bord:" #: ../data/klavaro.glade.h:61 -msgid "Remove the selected custom layout." -msgstr "De geselecteerde aangepaste indeling verwijderen." +msgid "Language for modules 3 and 4." +msgstr "Taal voor modules 3 en 4." #: ../data/klavaro.glade.h:62 -msgid "_Remove" -msgstr "_Verwijderen" +msgid "_Language:" +msgstr "_Taal:" #: ../data/klavaro.glade.h:63 -msgid "" -"Toggles the shift effect on the keys. Alternates between the upper and lower " -"characters of the keys." -msgstr "" -"Schakelt Shift aan of uit; wisselt tussen de bovenste en onderste tekens van " -"de toetsen." +msgid "Speech" +msgstr "Spraak" #: ../data/klavaro.glade.h:64 -msgid "SPACE BAR" -msgstr "SPATIEBALK" +msgid "Your language here." +msgstr "Kies hier je taal." -#: ../data/klavaro.glade.h:65 ../src/keyboard.c:1630 -msgid "thumbs" -msgstr "duimen" +#: ../data/klavaro.glade.h:65 +msgid "Little tip about this program." +msgstr "Kleine toelichting bij dit programma." #: ../data/klavaro.glade.h:66 -msgid "Ctrl" -msgstr "Ctrl" +msgid "_Help" +msgstr "_Hulp" #: ../data/klavaro.glade.h:67 -msgid "Caps" -msgstr "Capslock" +msgid "General information about the program." +msgstr "Algemene informatie over het programma." #: ../data/klavaro.glade.h:68 -msgid "S_ave as:" -msgstr "Opslaan _als:" +msgid "_About..." +msgstr "_Info..." #: ../data/klavaro.glade.h:69 -msgid "Show previous screen." -msgstr "Vorig scherm tonen." +msgid "Exit the application immediately." +msgstr "Het programma onmiddellijk afsluiten." #: ../data/klavaro.glade.h:70 -msgid "_Previous step" -msgstr "_Vorige stap" +msgid "Klavaro - Progress" +msgstr "Klavaro - Voortgang" #: ../data/klavaro.glade.h:71 -msgid "Show next screen." -msgstr "Volgend scherm tonen." +msgid "_Lesson:" +msgstr "_Les:" #: ../data/klavaro.glade.h:72 -msgid "_Next step" -msgstr "V_olgende stap" +msgid "Value" +msgstr "Waarde" #: ../data/klavaro.glade.h:73 -msgid "Return without any modification." -msgstr "Terug zonder aanpassingen." +msgid "Close this window, returning to the exercise." +msgstr "Dit venster sluiten; teruggaan naar de oefening." #: ../data/klavaro.glade.h:74 -msgid "_Cancel" -msgstr "_Annuleren" +msgid "Clear all the progress data, for every module." +msgstr "Alle voortgangsgegevens wissen, voor elke module!" #: ../data/klavaro.glade.h:75 -msgid "Save the current keyboard layout with the name specified above." -msgstr "Deze toetsenbordindeling opslaan onder de bovenstaande naam." +msgid "_Reset" +msgstr "_Wissen" #: ../data/klavaro.glade.h:76 -msgid "_Save and use" -msgstr "_Opslaan en gebruiken" +msgid "Top 10" +msgstr "Top 10" #: ../data/klavaro.glade.h:77 -msgid "" -"If you like those beautiful hands, click here to close this window keeping " -"them." -msgstr "" -"Als je die mooie handen graag ziet, klik dan hier om dit venster te sluiten " -"en ze te behouden." +msgid "Show extra information." +msgstr "Extra informatie tonen." #: ../data/klavaro.glade.h:78 -msgid "_Keep hands" -msgstr "_Handen behouden" +msgid "Hide extra information." +msgstr "Extra informatie verbergen." #: ../data/klavaro.glade.h:79 -msgid "Change language" -msgstr "Taal wijzigen" +msgid "Publish to the web your local scores." +msgstr "Jouw lokale scores op het web publiceren." #: ../data/klavaro.glade.h:80 -msgid "Attention!" -msgstr "Waarschuwing!" +msgid "_Participate" +msgstr "_Deelnemen" #: ../data/klavaro.glade.h:81 -msgid "Do you confirm?" -msgstr "Weet je het zeker?" +msgid "Download from the web the most up to date ranking." +msgstr "De laatste rangorde van het web downloaden." #: ../data/klavaro.glade.h:82 -msgid "_No" -msgstr "_Nee" +msgid "_Update" +msgstr "_Verversen" #: ../data/klavaro.glade.h:83 -msgid "_Yes" -msgstr "_Ja" +msgid "Load other exercises/lessons" +msgstr "Andere oefeningen/lessen openen." #: ../data/klavaro.glade.h:84 -msgid "Re_name:" -msgstr "_Hernoemen:" +msgid "_Other texts" +msgstr "_Andere teksten" #: ../data/klavaro.glade.h:85 -msgid "Rename the selected item." -msgstr "Het geselecteerde item hernoemen." +msgid "Edit the character set to be used in this lesson." +msgstr "De tekenset wijzigen die in deze les gebruikt wordt." #: ../data/klavaro.glade.h:86 -msgid "" -"Read a text file and add a copy of it here. The file must be encoded in " -"UTF-8." -msgstr "" -"Een tekstbestand inlezen en een kopie ervan hier invoegen. Het bestand moet " -"gecodeerd zijn in UTF-8." +msgid "This is a specific exercise, adjusted to your error profile." +msgstr "Dit is een speciale oefening, aangepast aan jouw foutenprofiel." #: ../data/klavaro.glade.h:87 -msgid "_Open text file" -msgstr "Tekstbestand _openen" +msgid "" +"Edit the character set to be used in lessons after 43: they are customizable!" +msgstr "" +"De tekenset wijzigen die in de lessen na les 43 gebruikt wordt: die zijn te " +"veranderen!" -#: ../data/klavaro.glade.h:88 -msgid "Paste text that was copied to the clipboard." -msgstr "Tekst vanaf het klembord plakken." +#: ../data/klavaro.glade.h:88 ../src/tutor.c:376 +msgid "Drag and drop text here to practice with it." +msgstr "Sleep een tekst hierheen om ermee te oefenen." #: ../data/klavaro.glade.h:89 -msgid "_Paste from clipboard" -msgstr "_Plakken vanaf klembord" +msgid "Press here to restart the exercise. Hotkey: [Ctrl-R]" +msgstr "Klik hier om de oefening te herstarten. Sneltoets: [Ctrl-R]" #: ../data/klavaro.glade.h:90 -msgid "Remove the selected item." -msgstr "Het geselecteerde item verwijderen." +msgid "Show the virtual keyboard and the relation between fingers and keys." +msgstr "" +"Een schematisch toetsenbord tonen met de relatie tussen vingers en toetsen." #: ../data/klavaro.glade.h:91 -msgid "_Remove copied file" -msgstr "Gekopieerd bestand _verwijderen" +msgid "_Keyboard" +msgstr "_Toetsenbord" #: ../data/klavaro.glade.h:92 -msgid "Apply the selected item to create an exercise." -msgstr "Het geselecteerde item toepassen om een oefening aan te maken." +msgid "Select the font to be used in the exercise window." +msgstr "Het lettertype kiezen dat gebruikt wordt in het oefeningenscherm." #: ../data/klavaro.glade.h:93 -msgid "_Apply" -msgstr "_Toepassen" +msgid "Font definition" +msgstr "Lettertypedefinitie" #: ../data/klavaro.glade.h:94 -msgid "Klavaro - Progress" -msgstr "Klavaro - Voortgang" +msgid "Keep this checked if you want to get those nice beeps." +msgstr "Houd deze ingeschakeld als je die piepjes wenst." #: ../data/klavaro.glade.h:95 -msgid "Value" -msgstr "Waarde" +msgid "_Beep" +msgstr "_Piepjes" #: ../data/klavaro.glade.h:96 -msgid "Clear all the progress data, for every module." -msgstr "Alle voortgangsgegevens wissen, voor elke module!" +msgid "Co_urse information" +msgstr "Les_informatie" #: ../data/klavaro.glade.h:97 -msgid "_Reset" -msgstr "_Wissen" +msgid "Charts showing the learning progress along the exercises." +msgstr "Grafieken die de leercurve tonen." #: ../data/klavaro.glade.h:98 -msgid "Close this window, returning to the exercise." -msgstr "Dit venster sluiten; teruggaan naar de oefening." +msgid "_Progress" +msgstr "_Voortgang" #: ../data/klavaro.glade.h:99 -msgid "Klavaro - Select file" -msgstr "Klavaro - Kies bestand" +msgid "Return to the main menu." +msgstr "Terug naar het hoofdmenu." #: ../data/klavaro.glade.h:100 -msgid "_Open" -msgstr "_Openen" +msgid "Show local and external scores from other users." +msgstr "Lokale en externe scores van andere gebruikers tonen." #: ../data/klavaro.glade.h:101 -msgid "Help?" -msgstr "Hulp?" - -#: ../data/klavaro.glade.h:102 -msgid "" -"The main menu of the application is very straightforward. Just select the " -"type of exercise you wish to take. Do not worry about clicking any button on " -"the screen. The buttons will never hurt you!" -msgstr "" -"Het hoofdmenu van het programma is vrij eenvoudig: kies het soort oefening " -"dat je wilt doen. Wees niet bang om op een knop op het scherm te klikken. Ze " -"zullen niet bijten!" - -#: ../data/klavaro.glade.h:103 -msgid "" -"Also the controls have tips which will appear if you hover over them with " -"your mouse. These tips can come in very handy. To see how these tips work, " -"position your mouse over the button below, and without clicking, wait for " -"the tip to appear..." -msgstr "" -"Elke knop toont een toelichting als je de muisaanwijzer erboven houdt. Deze " -"toelichtingen kunnen van pas komen. Om te zien hoe ze werken, plaats je nu " -"de muisaanwijzer boven de knop hieronder, zonder te klikken -- wacht tot de " -"tip verschijnt..." +msgid "_Top 10" +msgstr "_Top 10" -#: ../data/klavaro.glade.h:104 -msgid "This is a tip. Now you press this button to return to the main menu." -msgstr "" -"Dit is een tip. Je kunt nu op deze knop klikken om terug te keren naar het " -"hoofdmenu." +#: ../data/klavaro.desktop.in.h:1 +msgid "A very flexible and efficient touch typing tutor." +msgstr "Een zeer flexibel en efficiënt typelesprogramma." + +#. Translators: these are keywords related to the program. CAI above means Computer Aided Instruction. Feel free to add and/or change the keywords in your language. +#: ../data/klavaro.desktop.in.h:3 +msgid "keyboard;typing;tutor;CAI" +msgstr "toetsenbord;typen;blindtypen;typeles;lesprogramma;CAI" -#: ../src/main.c:314 +#: ../src/main.c:242 msgid "(Custom)" msgstr "(aangepast)" -#: ../src/main.c:315 +#: ../src/main.c:243 msgid "(Edit custom)" msgstr "(Aanpassen)" -#: ../src/main.c:316 +#: ../src/main.c:244 msgid "(Default)" msgstr "(standaard)" -#: ../src/main.c:393 +#: ../src/main.c:321 #, c-format msgid "Dictation mode (depends on this speech synthesizer: %s)" msgid_plural "Dictation mode (depends on one of these speech synthesizers: %s)" @@ -487,90 +490,88 @@ msgstr[1] "" "Dicteermodus (maakt gebruik van één van deze spraaksynthesizers: %s)" -#. Set main labels (for translation) -#. -#: ../src/main.c:435 ../src/keyboard.c:1291 +#: ../src/main.c:364 ../src/keyboard.c:1291 msgid "Introduction" msgstr "Inleiding" -#: ../src/main.c:438 ../src/top10.c:109 +#: ../src/main.c:367 ../src/top10.c:109 msgid "Basic course" msgstr "Basiscursus" -#: ../src/main.c:441 ../src/top10.c:112 +#: ../src/main.c:370 ../src/top10.c:112 msgid "Adaptability" msgstr "Flexibiliteit" -#: ../src/main.c:444 ../src/callbacks.c:1310 ../src/top10.c:89 +#: ../src/main.c:373 ../src/callbacks.c:1226 ../src/top10.c:89 #: ../src/top10.c:115 msgid "Speed" msgstr "Snelheid" -#: ../src/main.c:447 ../src/callbacks.c:1333 ../src/top10.c:91 +#: ../src/main.c:376 ../src/callbacks.c:1249 ../src/top10.c:91 #: ../src/top10.c:118 msgid "Fluidity" msgstr "Vloeiendheid" -#: ../src/callbacks.c:468 ../src/tutor.c:391 +#: ../src/callbacks.c:407 ../src/tutor.c:515 msgid "Keys:" msgstr "Toetsen:" -#: ../src/callbacks.c:858 ../src/callbacks.c:874 +#: ../src/callbacks.c:774 ../src/callbacks.c:790 msgid "Connecting..." msgstr "Verbinden..." -#: ../src/callbacks.c:1145 +#: ../src/callbacks.c:1061 msgid "Overwrite user layout" msgstr "Zelfgemaakte indeling overschrijven" -#: ../src/callbacks.c:1147 +#: ../src/callbacks.c:1063 msgid "This will OVERWRITE an existent keyboard layout." msgstr "Dit zal een bestaande toetsenbordindeling OVERSCHRIJVEN." -#: ../src/callbacks.c:1154 +#: ../src/callbacks.c:1070 msgid "Remove user layout" msgstr "Zelfgemaakte indeling verwijderen" -#: ../src/callbacks.c:1156 +#: ../src/callbacks.c:1072 msgid "This will REMOVE an existent keyboard layout." msgstr "Dit zal een bestaande toetsenbordindeling VERWIJDEREN." -#: ../src/callbacks.c:1163 +#: ../src/callbacks.c:1079 msgid "Reset progress data" msgstr "Voortgangsgegevens wissen" -#: ../src/callbacks.c:1164 +#: ../src/callbacks.c:1080 msgid "This will DELETE all the progress data shown in the charts." msgstr "" "Dit zal alle voortgangsgegevens die in grafieken worden weergegeven " "VERWIJDEREN." -#: ../src/callbacks.c:1307 ../src/top10.c:87 +#: ../src/callbacks.c:1223 ../src/top10.c:87 msgid "Accuracy" msgstr "Nauwkeurigheid" -#: ../src/callbacks.c:1310 ../src/tutor.c:1160 +#: ../src/callbacks.c:1226 ../src/tutor.c:1288 msgid "(WPM)" msgstr "(WPM)" -#: ../src/callbacks.c:1321 +#: ../src/callbacks.c:1237 msgid "Errors" msgstr "Fouten" -#: ../src/callbacks.c:1324 +#: ../src/callbacks.c:1240 msgid "Touch times (s)" msgstr "Aanslagtijden (s)" -#: ../src/callbacks.c:1336 ../src/tutor.c:1187 ../src/top10.c:69 +#: ../src/callbacks.c:1252 ../src/tutor.c:1315 ../src/top10.c:69 msgid "Score" msgstr "Score" #. Translators: your language code (first 2 letters of your po-file) -#: ../src/translation.c:423 ../src/translation.c:489 ../src/tutor.c:1597 +#: ../src/translation.c:485 ../src/tutor.c:1725 msgid "en" msgstr "nl" -#: ../src/translation.c:576 +#: ../src/translation.c:572 msgid "" "The basic course focuses on having you read the characters presented to you " "on screen and typing the corresponding keys. Remember to keep your hands " @@ -582,7 +583,7 @@ "je handen op de basisrij van het toetsenbord te houden (zie de Inleiding in " "het hoofdmenu)." -#: ../src/translation.c:580 +#: ../src/translation.c:576 msgid "" "The key set used in each series will be shown in the above message line. The " "[Space], [Shift] and [Enter] keys may not show up there but are used very " @@ -592,7 +593,7 @@ "getoond. Het kan zijn dat de [Spatie]-, [Shift]- en [Enter]-toetsen daar " "niet verschijnen maar toch vaak gebruikt worden." -#: ../src/translation.c:583 +#: ../src/translation.c:579 msgid "" "The message line below follows and echoes your key presses. If required, it " "changes and displays instructions for actions required from you." @@ -600,17 +601,17 @@ "De berichtenregel onderaan geeft de toetsen weer die je indrukte. Indien " "nodig toont het instructies voor vereiste acties." -#: ../src/translation.c:587 +#: ../src/translation.c:583 msgid "" "Here you may practice and improve your memorization of all keys. There will " "be sentences presented with nonsense words which mix some numbers and " "symbols." msgstr "" "Hier kun je oefenen en je inprenting van de toetsen verbeteren. Er zullen " -"zinnen worden getoond met niet-bestaande woorden en enkele cijfers en " +"zinnen worden getoond met niet-bestaande woorden plus enkele cijfers en " "symbolen." -#: ../src/translation.c:590 +#: ../src/translation.c:586 msgid "" "In order to keep the lesson contents language and keyboard independent, " "accented letter combinations will probably not appear. For real word " @@ -620,7 +621,7 @@ "met accenten waarschijnlijk niet verschijnen. Gebruik voor echte zinnen de " "vierde optie van het hoofdmenu (Vloeiendheid)." -#: ../src/translation.c:594 +#: ../src/translation.c:590 msgid "" "After each exercise there will be a brief statistics panel reviewing your " "performance along with some relevant comments." @@ -628,7 +629,7 @@ "Na elke oefening zal een kort statistisch overzicht van je prestaties " "getoond worden, samen met enkele relevante commentaren." -#: ../src/translation.c:598 +#: ../src/translation.c:594 msgid "" "This exercise is very similar to the second one, for adaptability. The " "difference is that here you'll type real words." @@ -636,7 +637,7 @@ "Deze oefening is vergelijkbaar met de tweede (Flexibiliteit). Het verschil " "is dat je hier bestaande woorden zult typen." -#: ../src/translation.c:601 +#: ../src/translation.c:597 msgid "" "The default language is the actual one of the interface. But you may select " "any other texts with words you would like to use. Press the 'Other' option " @@ -646,7 +647,7 @@ "selecteren met woorden die je graag zou oefenen. Klik op de keuze 'Overig' " "bovenaan om bestanden toe te voegen die de gewenste tekst bevatten." -#: ../src/translation.c:605 +#: ../src/translation.c:601 msgid "" "With this exercise the focus is on speed. So, you are supposed to type " "really fast and I will only flatter you when you deserve it!" @@ -654,7 +655,7 @@ "Bij deze oefening ligt de nadruk op snelheid. Het is dus de bedoeling om zo " "snel mogelijk te typen; ik zal je enkel vleien wanneer je het verdient!" -#: ../src/translation.c:609 +#: ../src/translation.c:605 msgid "" "We will now use complete sentences and paragraphs which make logical sense. " "This may distract you while you type if you try to understand what you are " @@ -666,7 +667,7 @@ "begrijpen wat je typt. De voorgaande oefeningen waren erop gericht om je te " "leren typen zonder de inhoud te analyseren en te interpreteren." -#: ../src/translation.c:613 +#: ../src/translation.c:609 msgid "" "We do not mean to imply that the typists must behave like a robot, without " "understanding what they type. We do aim to develop the skill of typing, " @@ -682,8 +683,7 @@ "doel zal de vaardigheid van het typen automatisch worden en weinig aandacht " "vereisen. Dan zul je aandacht kunnen besteden aan de betekenis van de tekst." -#. English typo: minimun -> minimum -#: ../src/translation.c:618 +#: ../src/translation.c:613 msgid "" "These exercises are longer. Each exercise consists of three paragraphs and " "the emphasis is placed on correctness and rhythm, with a minimum speed " @@ -695,7 +695,6 @@ "zul je de [Backspace]-toets moeten gebruiken om fouten te corrigeren. Met " "andere woorden: alleen foutloze inhoud wordt geaccepteerd." -#. English typo: recomendations -> recommendations #: ../src/keyboard.c:1094 msgid "" "Correct positioning of the hands and fingers is very important to efficient " @@ -704,7 +703,7 @@ msgstr "" "Het correct positioneren van je handen en vingers is zeer belangrijk om " "efficiënt te kunnen typen. Je zult het sneller leren en beter typen als je " -"de deze aanbevelingen opvolgt." +"deze aanbevelingen opvolgt." #: ../src/keyboard.c:1097 msgid "" @@ -793,13 +792,11 @@ msgid "Step %i" msgstr "Stap %i" -#. Recommendations -#: ../src/keyboard.c:1140 +#: ../src/keyboard.c:1142 msgid "To position the hands" msgstr "Om je handen te positioneren" -#. Final words -#: ../src/keyboard.c:1225 +#: ../src/keyboard.c:1227 msgid "Go ahead!" msgstr "Voorwaarts!" @@ -839,23 +836,23 @@ msgid "Press and edit me" msgstr "Druk en bewerk me" -#: ../src/tutor.c:176 +#: ../src/tutor.c:300 msgid "Lesson:" msgstr "Les:" -#: ../src/tutor.c:186 +#: ../src/tutor.c:310 msgid "Paragraphs:" msgstr "Alinea's:" -#: ../src/tutor.c:219 +#: ../src/tutor.c:343 msgid "Klavaro - Basic Course" msgstr "Klavaro - Basiscursus" -#: ../src/tutor.c:224 +#: ../src/tutor.c:348 msgid "Klavaro - Adaptability" msgstr "Klavaro - Flexibiliteit" -#: ../src/tutor.c:227 +#: ../src/tutor.c:351 msgid "" "Adaptability exercises: automating the fingers responses, typing over all " "the keyboard." @@ -863,43 +860,43 @@ "Flexibiliteitsoefeningen: de vingeracties automatiseren, alle toetsen " "gebruikend." -#: ../src/tutor.c:232 +#: ../src/tutor.c:356 msgid "Klavaro - Velocity" msgstr "Klavaro - Snelheid" -#: ../src/tutor.c:233 +#: ../src/tutor.c:357 msgid "Velocity exercises: accelerate typing real words." msgstr "Snelheidsoefeningen: het typen van woorden versnellen." -#: ../src/tutor.c:237 +#: ../src/tutor.c:361 msgid "Klavaro - Fluidness" msgstr "Klavaro - Vloeiendheid" -#: ../src/tutor.c:239 +#: ../src/tutor.c:363 msgid "Fluidness exercises: accuracy typing good sense paragraphs." msgstr "Vloeiendheidsoefeningen: het nauwkeurig typen van zinnige alinea's." -#: ../src/tutor.c:301 +#: ../src/tutor.c:425 msgid "End of exercise. Press [Enter] to start another." msgstr "Einde van de oefening. Druk op [Enter] om een nieuwe les te starten." -#: ../src/tutor.c:329 +#: ../src/tutor.c:453 msgid "Learning the key positions." msgstr "Het leren van de toetsposities." -#: ../src/tutor.c:332 +#: ../src/tutor.c:456 msgid "Press any key to start the exercise. " msgstr "Druk op een toets om de oefening te starten. " -#: ../src/tutor.c:440 ../src/tutor.c:443 +#: ../src/tutor.c:567 ../src/tutor.c:570 msgid "Start typing when you are ready. " msgstr "Start met typen wanneer je er klaar voor bent. " -#: ../src/tutor.c:441 +#: ../src/tutor.c:568 msgid "Use backspace to correct errors." msgstr "Gebruik [Backspace] om fouten te corrigeren." -#: ../src/tutor.c:885 +#: ../src/tutor.c:1012 #, c-format msgid "" "ps.: logging not performed for this session: the number of typed characters " @@ -908,11 +905,11 @@ "PS: er worden geen log-bestanden bijgehouden voor deze sessie: het totaal " "aantal ingetikte tekens (%i) moet groter zijn dan %i." -#: ../src/tutor.c:1027 +#: ../src/tutor.c:1154 msgid "ps.: you have entered the Top 10 list, great!" msgstr "PS: je hebt de top 10 bereikt, geweldig!" -#: ../src/tutor.c:1039 +#: ../src/tutor.c:1166 msgid "" "ps.: the text you just typed doesn't seem to be similar to ordinary texts in " "the language currently selected: we can't account for it in the 'Top 10' " @@ -922,91 +919,88 @@ "nu geselecteerd is: we kunnen het niet in rekening brengen voor de 'Top 10'-" "wedstrijd." -#. Begin the accuracy -#: ../src/tutor.c:1087 +#: ../src/tutor.c:1215 msgid "STATISTICS" msgstr "STATISTIEKEN" -#: ../src/tutor.c:1088 +#: ../src/tutor.c:1216 msgid "Elapsed time:" msgstr "Verstreken tijd:" -#: ../src/tutor.c:1089 +#: ../src/tutor.c:1217 msgid "minute and" msgid_plural "minutes and" msgstr[0] "minuut en" msgstr[1] "minuten en" -#: ../src/tutor.c:1090 +#: ../src/tutor.c:1218 msgid "second" msgid_plural "seconds" msgstr[0] "seconde" msgstr[1] "seconden" -#: ../src/tutor.c:1091 +#: ../src/tutor.c:1219 msgid "Error ratio:" msgstr "Foutenverhouding:" -#: ../src/tutor.c:1091 +#: ../src/tutor.c:1219 msgid "Accuracy:" msgstr "Nauwkeurigheid:" -#: ../src/tutor.c:1112 ../src/tutor.c:1137 ../src/tutor.c:1160 -#: ../src/tutor.c:1186 +#: ../src/tutor.c:1240 ../src/tutor.c:1265 ../src/tutor.c:1288 +#: ../src/tutor.c:1314 msgid "Goal:" msgstr "Doel:" -#: ../src/tutor.c:1119 +#: ../src/tutor.c:1247 msgid "Characters per second:" msgstr "Aanslagen per seconde:" -#: ../src/tutor.c:1137 +#: ../src/tutor.c:1265 msgid "(CPS)" msgstr "(TPS)" -#: ../src/tutor.c:1142 +#: ../src/tutor.c:1270 msgid "Words per minute:" msgstr "Woorden per minuut:" -#: ../src/tutor.c:1167 +#: ../src/tutor.c:1295 msgid "Fluidness:" msgstr "Vloeiendheid:" -#: ../src/tutor.c:1194 +#: ../src/tutor.c:1322 msgid "Comments:" msgstr "Commentaar:" -#: ../src/tutor.c:1676 +#: ../src/tutor.c:1804 msgid "space" msgstr "spatie" #. Translators: the name of letter Y -#: ../src/tutor.c:1681 +#: ../src/tutor.c:1809 msgid "wye" msgstr "i-grec" #. Translators: the name of the Return key -#: ../src/tutor.c:1685 +#: ../src/tutor.c:1813 msgid "enter" msgstr "Enter" -#: ../src/tutor.c:1691 +#: ../src/tutor.c:1819 msgid "apostrophe" msgstr "apostrof" #. Translators: double quote symbol: " -#: ../src/tutor.c:1695 +#: ../src/tutor.c:1823 msgid "quote" msgstr "dubbel aanhalingsteken" #. Translators: ampersand symbol: & -#: ../src/tutor.c:1699 +#: ../src/tutor.c:1827 msgid "ampersand" msgstr "ampersand" -#. Error frequencies or touch times -#. -#: ../src/plot.c:308 +#: ../src/plot.c:305 msgid "Character" msgstr "Teken" @@ -1014,11 +1008,11 @@ msgid "Date & Time" msgstr "Datum en tijd" -#: ../src/basic.c:331 +#: ../src/basic.c:326 msgid "Positions of keys seems to be learned!" msgstr "Het ziet er naar uit dat de posities van de toetsen geleerd zijn!" -#: ../src/basic.c:332 +#: ../src/basic.c:327 msgid "" " Congratulations!\n" " You have accomplished the entire basic course.\n" @@ -1030,7 +1024,7 @@ " Ga naar het volgende soort oefening: flexibiliteit.\n" " Daar zul je voornamelijk oefenen op nauwkeurigheid.\n" -#: ../src/basic.c:338 +#: ../src/basic.c:333 msgid "" " All right, now you got it!\n" " Go to the next lesson.\n" @@ -1038,34 +1032,36 @@ " Goed zo, je begrijpt het!\n" " Ga naar de volgende les.\n" -#: ../src/adaptability.c:217 +#: ../src/adaptability.c:213 +#, c-format msgid "" -" Your accuracy rate is below 90%...\n" +" Your accuracy rate is below %.0f%%...\n" " Could you please try again to improve it?\n" msgstr "" -" Je nauwkeurigheid is minder dan 90%...\n" +" Je nauwkeurigheid is minder dan %.0f%%...\n" " Wil je het opnieuw proberen om het te verbeteren?\n" -#: ../src/adaptability.c:222 +#: ../src/adaptability.c:216 +#, c-format msgid "" " You are doing well. But...\n" -" Could you make the accuracy reach 95%?\n" +" Could you make the accuracy reach %.0f%%?\n" msgstr "" " Je doet het goed. Maar...\n" -" Kun je je nauwkeurigheid op zijn minst 95% krijgen?\n" +" Kun je je nauwkeurigheid op zijn minst %.0f%% krijgen?\n" -#: ../src/adaptability.c:225 +#: ../src/adaptability.c:219 #, c-format msgid "" " You are almost there, but your accuracy rate is still below %.0f%%.\n" -" Try a few more times, or maybe you're getting upset, so go to other kind of " -"exercise.\n" +" Try a few more times, or maybe you're getting upset, so go to another kind " +"of exercise.\n" msgstr "" " Je bent er bijna, maar je nauwkeurigheid is nog steeds onder de %.0f%%.\n" " Probeer het nog een paar keer opnieuw, of ga naar een ander soort oefening " -"als je er genoeg van hebt. \n" +"als je er genoeg van hebt.\n" -#: ../src/adaptability.c:232 +#: ../src/adaptability.c:226 #, c-format msgid "" " Very good!\n" @@ -1078,11 +1074,11 @@ " Nu is het tijd om je snelheid te verbeteren.\n" " Ga naar de derde oefening in het hoofdmenu.\n" -#: ../src/velocity.c:313 ../src/fluidness.c:435 +#: ../src/velocity.c:312 ../src/fluidness.c:435 msgid "Pasted_or_dropped" msgstr "Geplakt_of_neergezet" -#: ../src/velocity.c:432 +#: ../src/velocity.c:423 msgid "" " You are just beginning.\n" " Be patient, try it again every day, rest and don't worry so much:\n" @@ -1092,31 +1088,35 @@ " Heb geduld, probeer het elke dag opnieuw, rust uit en pieker niet:\n" " doorzetting en oefening zullen je snelheid verbeteren.\n" -#: ../src/velocity.c:436 +# XXX can DO better +#: ../src/velocity.c:427 +#, c-format msgid "" " Still away from the highway. You can make better...\n" -" Try at least 20 WPM.\n" +" Try to reach at least %.0f WPM.\n" msgstr "" " Je bent nog ver weg van de snelweg. Je kunt beter...\n" -" Probeer ten minste 20 WPM te halen.\n" +" Probeer ten minste %.0f WPM te halen.\n" -#: ../src/velocity.c:439 +#: ../src/velocity.c:430 +#, c-format msgid "" " You are doing well, but need to go faster.\n" -" And don't forget the accuracy. Try to get 30 WPM.\n" +" And don't forget the accuracy. Try to get %.0f WPM.\n" msgstr "" " Je doet het goed, maar je moet sneller gaan.\n" -" En verlies de nauwkeurigheid niet uit het oog. Ga voor de 30 WPM.\n" +" En verlies de nauwkeurigheid niet uit het oog. Ga voor de %.0f WPM.\n" -#: ../src/velocity.c:443 +#: ../src/velocity.c:433 +#, c-format msgid "" " Fine. Now you need to start running.\n" -" Can you reach 40 WPM?\n" +" Can you reach %.0f WPM?\n" msgstr "" " Je kunt nu beginnen met rennen.\n" -" Kun je de 40 WPM halen?\n" +" Kun je de %.0f WPM halen?\n" -#: ../src/velocity.c:446 +#: ../src/velocity.c:436 #, c-format msgid "" " Very good. You are almost there.\n" @@ -1125,7 +1125,7 @@ " Heel goed. Je bent er bijna.\n" " Kun je eindelijk de %.0f WPM halen?\n" -#: ../src/velocity.c:451 +#: ../src/velocity.c:439 msgid "" " Excellent. For this course, that is enough.\n" " Try now the fluidness exercises, OK?\n" @@ -1133,40 +1133,44 @@ " Uitstekend. Voor deze cursus is dit genoeg.\n" " Probeer nu de oefeningen op vloeiendheid, OK?\n" -#: ../src/velocity.c:455 +#: ../src/velocity.c:442 +#, c-format msgid "" -" Fast! Are you training for a competition?\n" -" So, try to get 70 WPM!\n" +" Fast! Are you a professional?\n" +" So, try to get %.0f WPM!\n" msgstr "" " Snel! Train je voor een wedstrijd?\n" -" Zo ja, probeer de 70 WPM te halen!\n" +" Zo ja, probeer de %.0f WPM te halen!\n" -#: ../src/velocity.c:458 -msgid "" -" Top of \"qwerty\". Now it's time to change to the Dvorak mode.\n" -" Are you afraid of reaching 80 WPM?\n" +#. Translators: Speed Racer is a reference to a Japanese anime franchise +#. about automobile racing, also known as Mach GoGoGo. +#: ../src/velocity.c:447 +#, c-format +msgid " Ranking good, Speed Racer! Are you afraid of reaching %.0f WPM?\n" msgstr "" -" De top van \"qwerty\". Nu is het tijd om om te schakelen naar de Dvorak-" -"modus.\n" -" Ben je bang om de 80 WPM te halen?\n" +" Je scoort goed, racemonster! En... ben je bang om de %.0f WPM te halen?\n" -#: ../src/velocity.c:462 +# XXX ouch: Kung-fu +#. Translators: feel free to change the reference to that martial art, if you find another good analogy. +#: ../src/velocity.c:451 +#, c-format msgid "" -" Dvorak mode dominated!\n" -" Can you fly at 90 WPM?\n" +" Kunf-fu mastering!\n" +" Can you fly at %.0f WPM?\n" msgstr "" -" Dvorak-modus gedomineerd!\n" -" Kun je vliegen met 90 WPM?\n" +" Je hebt het onder de knie!\n" +" Kun je ook vliegen met %.0f WPM?\n" -#: ../src/velocity.c:466 +#. Translators: Dvorak here means that infamous ergonomic keyboard layout. +#: ../src/velocity.c:454 msgid "" " Dvorak master!\n" " I have no words to express my admiration!\n" msgstr "" -" Dvorak meester!\n" +" Dvorak-meester!\n" " Ik heb geen woorden om mijn bewondering te uiten!\n" -#: ../src/fluidness.c:545 +#: ../src/fluidness.c:538 #, c-format msgid "" " You type accurately but not so fast.\n" @@ -1175,7 +1179,7 @@ " Je typt nauwkeurig maar niet snel.\n" " Kun je de %.0f WPM halen?\n" -#: ../src/fluidness.c:548 +#: ../src/fluidness.c:541 #, c-format msgid "" " Your rhythm is not so constant. Calm down.\n" @@ -1184,7 +1188,7 @@ " Je typt niet met een constante snelheid. Kalmeer.\n" " Probeer je vloeiendheid boven de %i%% te krijgen.\n" -#: ../src/fluidness.c:551 +#: ../src/fluidness.c:544 #, c-format msgid "" " You are almost getting there. Type more fluently.\n" @@ -1193,7 +1197,7 @@ " Je bent er bijna. Typ vloeiender.\n" " Ik wil een vloeiendheid die hoger is dan %.0f%%.\n" -#: ../src/fluidness.c:554 +#: ../src/fluidness.c:547 msgid "" " Congratulations!\n" " It seems to me that you are a professional.\n" @@ -1205,7 +1209,7 @@ " Je hebt dit programma (mij) niet meer nodig.\n" " Ik hoop dat je er van genoten hebt. Bedankt en wees blij!\n" -#: ../src/fluidness.c:559 +#: ../src/fluidness.c:552 msgid "" " How can you type so fast?\n" " You have exceeded all my expectations.\n" @@ -1265,6 +1269,20 @@ msgid "Could not upload/download scores." msgstr "Kan de lokale scores niet uploaden/downloaden." +#~ msgid "" +#~ " Top of \"qwerty\". Now it's time to change to the Dvorak mode.\n" +#~ " Are you afraid of reaching 80 WPM?\n" +#~ msgstr "" +#~ " De top van \"qwerty\". Nu is het tijd om om te schakelen naar de Dvorak-" +#~ "modus.\n" +#~ " Ben je bang om de 80 WPM te halen?\n" + +#~ msgid "Klavaro" +#~ msgstr "'Klavaro'" + +#~ msgid "_Font" +#~ msgstr "_Lettertype" + #~ msgid "Default" #~ msgstr "Standaard" @@ -1304,9 +1322,6 @@ #~ msgid "Choose or edit the keyboard layout used by you." #~ msgstr "Kies of verander de gekozen toetsenbordindeling." -#~ msgid "Define" -#~ msgstr "Bepaal" - #~ msgid "Choose the language of this interface and of the whole course." #~ msgstr "Kies de taal van deze interface en van de gehele cursus." @@ -1371,9 +1386,6 @@ #~ msgid "( layout saved as \".tmp\" )" #~ msgstr "( indeling is opgeslagen als \".tmp\" )" -#~ msgid "+" -#~ msgstr "+" - #~ msgid "Close this window and return to the lesson. Hotkey: [Esc]" #~ msgstr "Sluit dit venster en ga terug naar de les. Sneltoets: [Esc]" diff -Nru klavaro-1.9.9/po/pl.po klavaro-3.00/po/pl.po --- klavaro-1.9.9/po/pl.po 2013-08-15 13:38:51.000000000 +0000 +++ klavaro-3.00/po/pl.po 2014-01-13 23:25:52.000000000 +0000 @@ -6,8 +6,8 @@ msgid "" msgstr "" "Project-Id-Version: klavaro 1.7.1\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2013-08-15 10:38-0300\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2014-01-13 21:25-0200\n" "PO-Revision-Date: 2011-01-09 22:58+0100\n" "Last-Translator: Tomasz Wojtyś \n" "Language-Team: Polish \n" @@ -18,460 +18,467 @@ "Plural-Forms: nplurals=3; plural=(n==1 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 " "|| n%100>=20) ? 1 : 2);\n" -#: ../data/klavaro.desktop.in.h:1 ../data/klavaro.glade.h:59 -msgid "Yet another touch typing tutor" -msgstr "Jeszcze jeden samouczek szybkiego pisania" - #: ../data/klavaro.glade.h:1 -msgid "Klavaro - Main menu" -msgstr "Klavaro - Menu główne" +msgid "About 'Klavaro'" +msgstr "O 'Klavaro'" #: ../data/klavaro.glade.h:2 -msgid "Don't be shy about learning the basics!" -msgstr "Nie wstydź się zaczynać od podstaw!" +msgid "Yet another touch typing tutor" +msgstr "Jeszcze jeden samouczek szybkiego pisania" #: ../data/klavaro.glade.h:3 -msgid "Learn how to type correctly" -msgstr "Jak poprawnie pisać" +msgid "Remember always: someone loves you!" +msgstr "Zawsze pamiętaj: ktoś Cię kocha!" #: ../data/klavaro.glade.h:4 -msgid "Initial training for your fingers." -msgstr "Wstępny trening palców." +msgid "Change language" +msgstr "Zmień język" #: ../data/klavaro.glade.h:5 -msgid "First steps with initial training" -msgstr "Pierwsze kroki ćwiczenia wstępnego" +msgid "Attention!" +msgstr "Uwaga!" #: ../data/klavaro.glade.h:6 -msgid "Memorizing the keyboard practicing random keys exercises." -msgstr "Przyswajanie klawiatury - ćwiczenia z losowymi znakami." +msgid "Do you confirm?" +msgstr "Potwierdzasz zmiany?" #: ../data/klavaro.glade.h:7 -msgid "Practice with random keys" -msgstr "Ćwiczenia z losowymi klawiszami" +msgid "_No" +msgstr "Nie" + +#: ../data/klavaro.glade.h:8 +msgid "_Yes" +msgstr "Tak" -#. English typo: touchs -> touches #: ../data/klavaro.glade.h:9 -#, fuzzy -msgid "Accelerating the touches practicing random words exercises." -msgstr "Przyspieszanie pisania - ćwiczenia z losowymi słowami." +msgid "Help?" +msgstr "Pomóc?" #: ../data/klavaro.glade.h:10 -msgid "Practice with random words" -msgstr "Ćwiczenia z losowymi słowami" +msgid "This is a tip. Now you press this button to return to the main menu." +msgstr "To jest wskazówka. Naciskając ten przycisk wrócisz do menu głównego." #: ../data/klavaro.glade.h:11 -msgid "Becoming proficient practicing complete paragraphs exercises." -msgstr "Osiąganie biegłości - ćwiczenia z pełnymi akapitami." +msgid "B_ack to menu" +msgstr "Powrót do menu" #: ../data/klavaro.glade.h:12 -msgid "Practice with complete texts" -msgstr "Ćwiczenia z pełnymi tekstami" +msgid "" +"The main menu of the application is very straightforward. Just select the " +"type of exercise you wish to take. Do not worry about clicking any button on " +"the screen. The buttons will never hurt you!" +msgstr "" +"To jest główne menu programu - jest ono bardzo proste. Należy jedynie wybrać " +"rodzaj ćwiczeń, które zamierza się wykonywać. Nie bój się klikać w " +"jakikolwiek przycisk - nic złego się nie stanie!" #: ../data/klavaro.glade.h:13 msgid "" -"Keyboard layout for modules 1 and 2. Also used informatively in the " -"fluidness contest." +"Also the controls have tips which will appear if you hover over them with " +"your mouse. These tips can come in very handy. To see how these tips work, " +"position your mouse over the button below, and without clicking, wait for " +"the tip to appear..." msgstr "" -"Układ klawiatury modułów 1 i 2. Używany również informacyjnie w teście " -"płynności." +"Nie zapominaj też o wskazówkach pojawiających się przy każdej opcji. Czasami " +"mogą być użyteczne. Aby zobaczyć jedną z nich, naprowadź kursor na przycisk " +"poniżej i, bez klikania, odczekaj chwilę..." #: ../data/klavaro.glade.h:14 -msgid "_Keyboard:" -msgstr "Klawiatura" +msgid "Klavaro - Select file" +msgstr "Klavaro - Wybór pliku" #: ../data/klavaro.glade.h:15 -msgid "Language for modules 3 and 4." -msgstr "Język modułów 3 i 4" +msgid "_Cancel" +msgstr "Anuluj" #: ../data/klavaro.glade.h:16 -msgid "_Language:" -msgstr "Język" +msgid "_Open" +msgstr "Otwórz" #: ../data/klavaro.glade.h:17 -msgid "Variant" -msgstr "Wariant" +msgid "Re_name:" +msgstr "Zmień nazwę:" #: ../data/klavaro.glade.h:18 -msgid "Klavaro" -msgstr "Klavaro" +msgid "Rename the selected item." +msgstr "Zmień nazwę zaznaczonej pozycji" #: ../data/klavaro.glade.h:19 -msgid "Country / Custom" -msgstr "Kraj / Własna" +msgid "" +"Read a text file and add a copy of it here. The file must be encoded in " +"UTF-8." +msgstr "" +"Otwórz plik tekstowy i wklej jego zawartość. Plik musi być kodowany w UTF-8." #: ../data/klavaro.glade.h:20 -msgid "Your language here." -msgstr "Wybierz swój język." +msgid "_Open text file" +msgstr "Otwórz plik tekstowy" #: ../data/klavaro.glade.h:21 -#, fuzzy -msgid "Speech" -msgstr "Szybkość" +msgid "Paste text that was copied to the clipboard." +msgstr "Wklej tekst ze schowka" #: ../data/klavaro.glade.h:22 -msgid "Little tip about this program." -msgstr "Drobna wskazówka o tym programie" +msgid "_Paste from clipboard" +msgstr "Wklej ze schowka" #: ../data/klavaro.glade.h:23 -msgid "_Help" -msgstr "Pomoc" +msgid "Remove the selected item." +msgstr "Usuń zaznaczoną pozycję" #: ../data/klavaro.glade.h:24 -msgid "General information about the program." -msgstr "Informacje o programie" +msgid "_Remove copied file" +msgstr "Usuń skopiowany plik" #: ../data/klavaro.glade.h:25 -msgid "_About..." -msgstr "O programie..." +msgid "Apply the selected item to create an exercise." +msgstr "Zastosuj zaznaczoną pozycję do utworzenia ćwiczenia" #: ../data/klavaro.glade.h:26 -msgid "Exit the application immediately." -msgstr "Kończy działanie programu" +msgid "_Apply" +msgstr "Zastosuj" #: ../data/klavaro.glade.h:27 -msgid "_Close" -msgstr "Zamknij" +msgid "Close this window." +msgstr "Zamknij to okno." #: ../data/klavaro.glade.h:28 -msgid "Load other exercises/lessons" -msgstr "Otwórz inne ćwiczenia/lekcje" +msgid "_Close" +msgstr "Zamknij" #: ../data/klavaro.glade.h:29 -msgid "_Other texts" -msgstr "Inne teksty" +msgid "Country / Custom" +msgstr "Kraj / Własna" #: ../data/klavaro.glade.h:30 -msgid "_Lesson:" -msgstr "Lekcja:" +msgid "Variant" +msgstr "Wariant" #: ../data/klavaro.glade.h:31 -msgid "Edit the character set to be used in this lesson." -msgstr "Edytuj zestaw znaków używany w tej lekcji." +msgid "Remove the selected custom layout." +msgstr "Usuń zaznaczoną pozycję z listy" #: ../data/klavaro.glade.h:32 -msgid "Edit the character set to be used in lessons 44 through 50." -msgstr "Edytuj zestaw znaków używany w lekcjach od 44 do 50." +msgid "_Remove" +msgstr "Usuń" #: ../data/klavaro.glade.h:33 -msgid "This is a specific exercise, adjusted to your error profile." -msgstr "To jest zadanie specjalne, dostosowane do twojego profilu błędów." +msgid "" +"Toggles the shift effect on the keys. Alternates between the upper and lower " +"characters of the keys." +msgstr "" +"Odpowiednik wciśniętego shift. Przełącza między górnymi i dolnymi znakami." -#: ../data/klavaro.glade.h:34 ../src/tutor.c:252 -msgid "Drag and drop text here to practice with it." -msgstr "Przeciągnij i upuść tutaj tekst, aby z nim ćwiczyć." +#: ../data/klavaro.glade.h:34 +msgid "SPACE BAR" +msgstr "SPACJA" -#: ../data/klavaro.glade.h:35 -msgid "Press here to restart the exercise. Hotkey: [Ctrl R]" -msgstr "Kliknij tu aby powtórzyć ćwiczenie. Skrót: [Ctrl R]" +#: ../data/klavaro.glade.h:35 ../src/keyboard.c:1630 +msgid "thumbs" +msgstr "kciuki" #: ../data/klavaro.glade.h:36 -msgid "Show the virtual keyboard and the relation between fingers and keys." -msgstr "Pokazuje wirtualną klawiaturę i powiązania klawiszy z palcami." +msgid "Ctrl" +msgstr "Ctrl" #: ../data/klavaro.glade.h:37 -msgid "_Keyboard" -msgstr "Klawiatura" +msgid "Caps" +msgstr "Caps" #: ../data/klavaro.glade.h:38 -msgid "Select the font to be used in the exercise window." -msgstr "Wybierz czcionkę używaną w oknie ćwiczeń." +msgid "S_ave as:" +msgstr "Zapisz jako:" #: ../data/klavaro.glade.h:39 -msgid "_Font" -msgstr "Czcionka" +msgid "Show previous screen." +msgstr "Pokaż poprzedni obraz" #: ../data/klavaro.glade.h:40 -msgid "Keep this checked if you want to get those nice beeps." -msgstr "Jeśli lubisz dźwięki z głośniczka, zostaw tu ptaszek." +msgid "_Previous step" +msgstr "Poprzedni krok" #: ../data/klavaro.glade.h:41 -msgid "_Beep" -msgstr "Dźwięk" +msgid "Show next screen." +msgstr "Pokaż następny obraz" #: ../data/klavaro.glade.h:42 -msgid "Co_urse information" -msgstr "Informacja o kursie" +msgid "_Next step" +msgstr "Następny krok" #: ../data/klavaro.glade.h:43 -msgid "Charts showing the learning progress along the exercises." -msgstr "Wykresy pokazujące postępy w nauce." +msgid "Return without any modification." +msgstr "Wyjdź bez wprowadzania zmian." #: ../data/klavaro.glade.h:44 -msgid "_Progress" -msgstr "Postęp" +msgid "Save the current keyboard layout with the name specified above." +msgstr "Zapisz bieżący układ klawiszy z podaną nazwą." #: ../data/klavaro.glade.h:45 -msgid "Show local and external scores from other users." -msgstr "Pokazuj lokalne i zewnętrzne wyniki innych użytkowników." +msgid "_Save and use" +msgstr "Zapisz i użyj" #: ../data/klavaro.glade.h:46 -msgid "_Top 10" -msgstr "Najlepsza 10" +msgid "" +"If you like those beautiful hands, click here to close this window keeping " +"them." +msgstr "" +"Jeśli chcesz oglądać te piękne ręce, kliknij tu przed zamknięciem tego okna." #: ../data/klavaro.glade.h:47 -msgid "Return to the main menu." -msgstr "Powrót do głównego menu." +msgid "_Keep hands" +msgstr "Pokazuj ręce" #: ../data/klavaro.glade.h:48 -msgid "B_ack to menu" -msgstr "Powrót do menu" +msgid "Klavaro - Main menu" +msgstr "Klavaro - Menu główne" #: ../data/klavaro.glade.h:49 -msgid "Close this window." -msgstr "Zamknij to okno." +msgid "Don't be shy about learning the basics!" +msgstr "Nie wstydź się zaczynać od podstaw!" #: ../data/klavaro.glade.h:50 -msgid "Font definition" -msgstr "Określenie czcionki" +msgid "Learn how to type correctly" +msgstr "Jak poprawnie pisać" #: ../data/klavaro.glade.h:51 -msgid "Top 10" -msgstr "Najlepsza 10" +msgid "Initial training for your fingers." +msgstr "Wstępny trening palców." #: ../data/klavaro.glade.h:52 -msgid "Show extra information" -msgstr "Pokazuj dodatkowe informacje" +msgid "First steps with initial training" +msgstr "Pierwsze kroki ćwiczenia wstępnego" #: ../data/klavaro.glade.h:53 -msgid "Hide extra information" -msgstr "Ukryj dodatkowe informacje" +msgid "Memorizing the keyboard practicing random keys exercises." +msgstr "Przyswajanie klawiatury - ćwiczenia z losowymi znakami." #: ../data/klavaro.glade.h:54 -msgid "Publish to the web your local scores." -msgstr "Opublikuj swoje lokalne wyniki w sieci." +msgid "Practice with random keys" +msgstr "Ćwiczenia z losowymi klawiszami" #: ../data/klavaro.glade.h:55 -msgid "_Participate" -msgstr "Uczestnictwo" +#, fuzzy +msgid "Accelerating the touches practicing random words exercises." +msgstr "Przyspieszanie pisania - ćwiczenia z losowymi słowami." #: ../data/klavaro.glade.h:56 -msgid "Download from the web the most up to date ranking." -msgstr "Pobierz aktualny ranking z sieci." +msgid "Practice with random words" +msgstr "Ćwiczenia z losowymi słowami" #: ../data/klavaro.glade.h:57 -msgid "_Update" -msgstr "Odśwież" +msgid "Becoming proficient practicing complete paragraphs exercises." +msgstr "Osiąganie biegłości - ćwiczenia z pełnymi akapitami." #: ../data/klavaro.glade.h:58 -msgid "About 'Klavaro'" -msgstr "O 'Klavaro'" +msgid "Practice with complete texts" +msgstr "Ćwiczenia z pełnymi tekstami" + +#: ../data/klavaro.glade.h:59 +msgid "" +"Keyboard layout for modules 1 and 2. Also used informatively in the " +"fluidness contest." +msgstr "" +"Układ klawiatury modułów 1 i 2. Używany również informacyjnie w teście " +"płynności." #: ../data/klavaro.glade.h:60 -msgid "Remember always: someone loves you!" -msgstr "Zawsze pamiętaj: ktoś Cię kocha!" +msgid "_Keyboard:" +msgstr "Klawiatura" #: ../data/klavaro.glade.h:61 -msgid "Remove the selected custom layout." -msgstr "Usuń zaznaczoną pozycję z listy" +msgid "Language for modules 3 and 4." +msgstr "Język modułów 3 i 4" #: ../data/klavaro.glade.h:62 -msgid "_Remove" -msgstr "Usuń" +msgid "_Language:" +msgstr "Język" #: ../data/klavaro.glade.h:63 -msgid "" -"Toggles the shift effect on the keys. Alternates between the upper and lower " -"characters of the keys." -msgstr "" -"Odpowiednik wciśniętego shift. Przełącza między górnymi i dolnymi znakami." +#, fuzzy +msgid "Speech" +msgstr "Szybkość" #: ../data/klavaro.glade.h:64 -msgid "SPACE BAR" -msgstr "SPACJA" +msgid "Your language here." +msgstr "Wybierz swój język." -#: ../data/klavaro.glade.h:65 ../src/keyboard.c:1630 -msgid "thumbs" -msgstr "kciuki" +#: ../data/klavaro.glade.h:65 +msgid "Little tip about this program." +msgstr "Drobna wskazówka o tym programie" #: ../data/klavaro.glade.h:66 -msgid "Ctrl" -msgstr "Ctrl" +msgid "_Help" +msgstr "Pomoc" #: ../data/klavaro.glade.h:67 -msgid "Caps" -msgstr "Caps" +msgid "General information about the program." +msgstr "Informacje o programie" #: ../data/klavaro.glade.h:68 -msgid "S_ave as:" -msgstr "Zapisz jako:" +msgid "_About..." +msgstr "O programie..." #: ../data/klavaro.glade.h:69 -msgid "Show previous screen." -msgstr "Pokaż poprzedni obraz" +msgid "Exit the application immediately." +msgstr "Kończy działanie programu" #: ../data/klavaro.glade.h:70 -msgid "_Previous step" -msgstr "Poprzedni krok" +msgid "Klavaro - Progress" +msgstr "Klavaro - Postęp" #: ../data/klavaro.glade.h:71 -msgid "Show next screen." -msgstr "Pokaż następny obraz" +msgid "_Lesson:" +msgstr "Lekcja:" #: ../data/klavaro.glade.h:72 -msgid "_Next step" -msgstr "Następny krok" +msgid "Value" +msgstr "Wartość" #: ../data/klavaro.glade.h:73 -msgid "Return without any modification." -msgstr "Wyjdź bez wprowadzania zmian." +msgid "Close this window, returning to the exercise." +msgstr "Zamknij to okno i powróć do ćwiczenia." #: ../data/klavaro.glade.h:74 -msgid "_Cancel" -msgstr "Anuluj" +msgid "Clear all the progress data, for every module." +msgstr "Usuń wszystkie informacje o postępach w każdym module" #: ../data/klavaro.glade.h:75 -msgid "Save the current keyboard layout with the name specified above." -msgstr "Zapisz bieżący układ klawiszy z podaną nazwą." +msgid "_Reset" +msgstr "Od początku!" #: ../data/klavaro.glade.h:76 -msgid "_Save and use" -msgstr "Zapisz i użyj" +msgid "Top 10" +msgstr "Najlepsza 10" #: ../data/klavaro.glade.h:77 -msgid "" -"If you like those beautiful hands, click here to close this window keeping " -"them." -msgstr "" -"Jeśli chcesz oglądać te piękne ręce, kliknij tu przed zamknięciem tego okna." +#, fuzzy +msgid "Show extra information." +msgstr "Pokazuj dodatkowe informacje" #: ../data/klavaro.glade.h:78 -msgid "_Keep hands" -msgstr "Pokazuj ręce" +#, fuzzy +msgid "Hide extra information." +msgstr "Ukryj dodatkowe informacje" #: ../data/klavaro.glade.h:79 -msgid "Change language" -msgstr "Zmień język" +msgid "Publish to the web your local scores." +msgstr "Opublikuj swoje lokalne wyniki w sieci." #: ../data/klavaro.glade.h:80 -msgid "Attention!" -msgstr "Uwaga!" +msgid "_Participate" +msgstr "Uczestnictwo" #: ../data/klavaro.glade.h:81 -msgid "Do you confirm?" -msgstr "Potwierdzasz zmiany?" +msgid "Download from the web the most up to date ranking." +msgstr "Pobierz aktualny ranking z sieci." #: ../data/klavaro.glade.h:82 -msgid "_No" -msgstr "Nie" +msgid "_Update" +msgstr "Odśwież" #: ../data/klavaro.glade.h:83 -msgid "_Yes" -msgstr "Tak" +msgid "Load other exercises/lessons" +msgstr "Otwórz inne ćwiczenia/lekcje" #: ../data/klavaro.glade.h:84 -msgid "Re_name:" -msgstr "Zmień nazwę:" +msgid "_Other texts" +msgstr "Inne teksty" #: ../data/klavaro.glade.h:85 -msgid "Rename the selected item." -msgstr "Zmień nazwę zaznaczonej pozycji" +msgid "Edit the character set to be used in this lesson." +msgstr "Edytuj zestaw znaków używany w tej lekcji." #: ../data/klavaro.glade.h:86 -msgid "" -"Read a text file and add a copy of it here. The file must be encoded in " -"UTF-8." -msgstr "" -"Otwórz plik tekstowy i wklej jego zawartość. Plik musi być kodowany w UTF-8." +msgid "This is a specific exercise, adjusted to your error profile." +msgstr "To jest zadanie specjalne, dostosowane do twojego profilu błędów." #: ../data/klavaro.glade.h:87 -msgid "_Open text file" -msgstr "Otwórz plik tekstowy" +#, fuzzy +msgid "" +"Edit the character set to be used in lessons after 43: they are customizable!" +msgstr "Edytuj zestaw znaków używany w lekcjach od 44 do 50." -#: ../data/klavaro.glade.h:88 -msgid "Paste text that was copied to the clipboard." -msgstr "Wklej tekst ze schowka" +#: ../data/klavaro.glade.h:88 ../src/tutor.c:376 +msgid "Drag and drop text here to practice with it." +msgstr "Przeciągnij i upuść tutaj tekst, aby z nim ćwiczyć." #: ../data/klavaro.glade.h:89 -msgid "_Paste from clipboard" -msgstr "Wklej ze schowka" +#, fuzzy +msgid "Press here to restart the exercise. Hotkey: [Ctrl-R]" +msgstr "Kliknij tu aby powtórzyć ćwiczenie. Skrót: [Ctrl R]" #: ../data/klavaro.glade.h:90 -msgid "Remove the selected item." -msgstr "Usuń zaznaczoną pozycję" +msgid "Show the virtual keyboard and the relation between fingers and keys." +msgstr "Pokazuje wirtualną klawiaturę i powiązania klawiszy z palcami." #: ../data/klavaro.glade.h:91 -msgid "_Remove copied file" -msgstr "Usuń skopiowany plik" +msgid "_Keyboard" +msgstr "Klawiatura" #: ../data/klavaro.glade.h:92 -msgid "Apply the selected item to create an exercise." -msgstr "Zastosuj zaznaczoną pozycję do utworzenia ćwiczenia" +msgid "Select the font to be used in the exercise window." +msgstr "Wybierz czcionkę używaną w oknie ćwiczeń." #: ../data/klavaro.glade.h:93 -msgid "_Apply" -msgstr "Zastosuj" +msgid "Font definition" +msgstr "Określenie czcionki" #: ../data/klavaro.glade.h:94 -msgid "Klavaro - Progress" -msgstr "Klavaro - Postęp" +msgid "Keep this checked if you want to get those nice beeps." +msgstr "Jeśli lubisz dźwięki z głośniczka, zostaw tu ptaszek." #: ../data/klavaro.glade.h:95 -msgid "Value" -msgstr "Wartość" +msgid "_Beep" +msgstr "Dźwięk" #: ../data/klavaro.glade.h:96 -msgid "Clear all the progress data, for every module." -msgstr "Usuń wszystkie informacje o postępach w każdym module" +msgid "Co_urse information" +msgstr "Informacja o kursie" #: ../data/klavaro.glade.h:97 -msgid "_Reset" -msgstr "Od początku!" +msgid "Charts showing the learning progress along the exercises." +msgstr "Wykresy pokazujące postępy w nauce." #: ../data/klavaro.glade.h:98 -msgid "Close this window, returning to the exercise." -msgstr "Zamknij to okno i powróć do ćwiczenia." +msgid "_Progress" +msgstr "Postęp" #: ../data/klavaro.glade.h:99 -msgid "Klavaro - Select file" -msgstr "Klavaro - Wybór pliku" +msgid "Return to the main menu." +msgstr "Powrót do głównego menu." #: ../data/klavaro.glade.h:100 -msgid "_Open" -msgstr "Otwórz" +msgid "Show local and external scores from other users." +msgstr "Pokazuj lokalne i zewnętrzne wyniki innych użytkowników." #: ../data/klavaro.glade.h:101 -msgid "Help?" -msgstr "Pomóc?" - -#: ../data/klavaro.glade.h:102 -msgid "" -"The main menu of the application is very straightforward. Just select the " -"type of exercise you wish to take. Do not worry about clicking any button on " -"the screen. The buttons will never hurt you!" -msgstr "" -"To jest główne menu programu - jest ono bardzo proste. Należy jedynie wybrać " -"rodzaj ćwiczeń, które zamierza się wykonywać. Nie bój się klikać w " -"jakikolwiek przycisk - nic złego się nie stanie!" +msgid "_Top 10" +msgstr "Najlepsza 10" -#: ../data/klavaro.glade.h:103 -msgid "" -"Also the controls have tips which will appear if you hover over them with " -"your mouse. These tips can come in very handy. To see how these tips work, " -"position your mouse over the button below, and without clicking, wait for " -"the tip to appear..." -msgstr "" -"Nie zapominaj też o wskazówkach pojawiających się przy każdej opcji. Czasami " -"mogą być użyteczne. Aby zobaczyć jedną z nich, naprowadź kursor na przycisk " -"poniżej i, bez klikania, odczekaj chwilę..." +#: ../data/klavaro.desktop.in.h:1 +#, fuzzy +msgid "A very flexible and efficient touch typing tutor." +msgstr "Jeszcze jeden samouczek szybkiego pisania" -#: ../data/klavaro.glade.h:104 -msgid "This is a tip. Now you press this button to return to the main menu." -msgstr "To jest wskazówka. Naciskając ten przycisk wrócisz do menu głównego." +#. Translators: these are keywords related to the program. CAI above means Computer Aided Instruction. Feel free to add and/or change the keywords in your language. +#: ../data/klavaro.desktop.in.h:3 +#, fuzzy +msgid "keyboard;typing;tutor;CAI" +msgstr "Klawiatura" -#: ../src/main.c:314 +#: ../src/main.c:242 msgid "(Custom)" msgstr "(własny)" -#: ../src/main.c:315 +#: ../src/main.c:243 msgid "(Edit custom)" msgstr "(Edytuj własny)" -#: ../src/main.c:316 +#: ../src/main.c:244 msgid "(Default)" msgstr "Domyślny" -#: ../src/main.c:393 +#: ../src/main.c:321 #, c-format msgid "Dictation mode (depends on this speech synthesizer: %s)" msgid_plural "Dictation mode (depends on one of these speech synthesizers: %s)" @@ -479,88 +486,86 @@ msgstr[1] "" msgstr[2] "" -#. Set main labels (for translation) -#. -#: ../src/main.c:435 ../src/keyboard.c:1291 +#: ../src/main.c:364 ../src/keyboard.c:1291 msgid "Introduction" msgstr "Wstęp" -#: ../src/main.c:438 ../src/top10.c:109 +#: ../src/main.c:367 ../src/top10.c:109 msgid "Basic course" msgstr "Kurs podstawowy" -#: ../src/main.c:441 ../src/top10.c:112 +#: ../src/main.c:370 ../src/top10.c:112 msgid "Adaptability" msgstr "Adaptacja" -#: ../src/main.c:444 ../src/callbacks.c:1310 ../src/top10.c:89 +#: ../src/main.c:373 ../src/callbacks.c:1226 ../src/top10.c:89 #: ../src/top10.c:115 msgid "Speed" msgstr "Szybkość" -#: ../src/main.c:447 ../src/callbacks.c:1333 ../src/top10.c:91 +#: ../src/main.c:376 ../src/callbacks.c:1249 ../src/top10.c:91 #: ../src/top10.c:118 msgid "Fluidity" msgstr "Płynność" -#: ../src/callbacks.c:468 ../src/tutor.c:391 +#: ../src/callbacks.c:407 ../src/tutor.c:515 msgid "Keys:" msgstr "Klawisze:" -#: ../src/callbacks.c:858 ../src/callbacks.c:874 +#: ../src/callbacks.c:774 ../src/callbacks.c:790 msgid "Connecting..." msgstr "Łączenie..." -#: ../src/callbacks.c:1145 +#: ../src/callbacks.c:1061 msgid "Overwrite user layout" msgstr "Nadpisz układ użytkownika" -#: ../src/callbacks.c:1147 +#: ../src/callbacks.c:1063 msgid "This will OVERWRITE an existent keyboard layout." msgstr "To NADPISZE istniejący układ klawiszy." -#: ../src/callbacks.c:1154 +#: ../src/callbacks.c:1070 msgid "Remove user layout" msgstr "Usuń układ użytkownika" -#: ../src/callbacks.c:1156 +#: ../src/callbacks.c:1072 msgid "This will REMOVE an existent keyboard layout." msgstr "To USUNIE istniejący układ klawiszy" -#: ../src/callbacks.c:1163 +#: ../src/callbacks.c:1079 msgid "Reset progress data" msgstr "Usuń dane o postępach" -#: ../src/callbacks.c:1164 +#: ../src/callbacks.c:1080 msgid "This will DELETE all the progress data shown in the charts." msgstr "To USUNIE wszystkie informacje o postępach pokazywane na wykresach" -#: ../src/callbacks.c:1307 ../src/top10.c:87 +#: ../src/callbacks.c:1223 ../src/top10.c:87 msgid "Accuracy" msgstr "Dokładność" -#: ../src/callbacks.c:1310 ../src/tutor.c:1160 +#: ../src/callbacks.c:1226 ../src/tutor.c:1288 msgid "(WPM)" msgstr "(SNM)" -#: ../src/callbacks.c:1321 +#: ../src/callbacks.c:1237 msgid "Errors" msgstr "Błędy" -#: ../src/callbacks.c:1324 +#: ../src/callbacks.c:1240 msgid "Touch times (s)" msgstr "" -#: ../src/callbacks.c:1336 ../src/tutor.c:1187 ../src/top10.c:69 +#: ../src/callbacks.c:1252 ../src/tutor.c:1315 ../src/top10.c:69 msgid "Score" msgstr "Wynik" #. Translators: your language code (first 2 letters of your po-file) -#: ../src/translation.c:423 ../src/translation.c:489 ../src/tutor.c:1597 +#: ../src/translation.c:485 ../src/tutor.c:1725 msgid "en" msgstr "pl" -#: ../src/translation.c:576 +#: ../src/translation.c:572 msgid "" "The basic course focuses on having you read the characters presented to you " "on screen and typing the corresponding keys. Remember to keep your hands " @@ -571,7 +576,7 @@ "odpowiadające im klawisze. Pamiętaj o właściwej pozycji palców w układzie " "podstawowym ( zobacz wstęp w menu głównym )." -#: ../src/translation.c:580 +#: ../src/translation.c:576 msgid "" "The key set used in each series will be shown in the above message line. The " "[Space], [Shift] and [Enter] keys may not show up there but are used very " @@ -581,7 +586,7 @@ "[Spacja], [Shift] i [Enter] mogą nie być wymienione, choć będą często " "potrzebne." -#: ../src/translation.c:583 +#: ../src/translation.c:579 msgid "" "The message line below follows and echoes your key presses. If required, it " "changes and displays instructions for actions required from you." @@ -589,7 +594,7 @@ "W lini tekstowej na dole wypisywane są wybierane przez Ciebie znaki. Czasami " "pojawią się tam instrukcje dotyczące obsługi programu." -#: ../src/translation.c:587 +#: ../src/translation.c:583 msgid "" "Here you may practice and improve your memorization of all keys. There will " "be sentences presented with nonsense words which mix some numbers and " @@ -599,7 +604,7 @@ "Zobaczysz zdania ułożone z bezsensownych słów, z wtrąconymi cyframi i " "symbolami typu znaki interpunkcyjne itp." -#: ../src/translation.c:590 +#: ../src/translation.c:586 msgid "" "In order to keep the lesson contents language and keyboard independent, " "accented letter combinations will probably not appear. For real word " @@ -609,7 +614,7 @@ "niezależność ćwiczenia od języka i układu klawiszy. Aby poćwiczyć wpisywanie " "prawdziwych słów, użyj czwartej opcji menu głównego (płynność)." -#: ../src/translation.c:594 +#: ../src/translation.c:590 msgid "" "After each exercise there will be a brief statistics panel reviewing your " "performance along with some relevant comments." @@ -617,7 +622,7 @@ "Na końcu każdego ćwiczenia pokazane są krótkie statystyki pokazujące, jak " "sobie radziłeś oraz pewne istotne uwagi." -#: ../src/translation.c:598 +#: ../src/translation.c:594 msgid "" "This exercise is very similar to the second one, for adaptability. The " "difference is that here you'll type real words." @@ -625,7 +630,7 @@ "To ćwiczenie jest bardzo podobne do drugiego, czyli adaptacji. Jedyna " "różnica polega na tym, że będziesz wpisywał prawdziwe, istniejące słowa." -#: ../src/translation.c:601 +#: ../src/translation.c:597 msgid "" "The default language is the actual one of the interface. But you may select " "any other texts with words you would like to use. Press the 'Other' option " @@ -635,7 +640,7 @@ "dowolnie wybrane pliki. Wciśnij przycisk 'Inne' powyżej i dodaj pliki, z " "których mają być brane nowe słowa." -#: ../src/translation.c:605 +#: ../src/translation.c:601 msgid "" "With this exercise the focus is on speed. So, you are supposed to type " "really fast and I will only flatter you when you deserve it!" @@ -643,7 +648,7 @@ "W tym ćwiczeniu przyglądamy się twojej szybkości. Dlatego musisz pisać " "naprawdę szybko i wtedy być może udzielę ci pochwały." -#: ../src/translation.c:609 +#: ../src/translation.c:605 msgid "" "We will now use complete sentences and paragraphs which make logical sense. " "This may distract you while you type if you try to understand what you are " @@ -656,7 +661,7 @@ "problemów, ponieważ jesteś przyzwyczajony do pisania bez koncentrowania się " "na treści." -#: ../src/translation.c:613 +#: ../src/translation.c:609 msgid "" "We do not mean to imply that the typists must behave like a robot, without " "understanding what they type. We do aim to develop the skill of typing, " @@ -671,8 +676,7 @@ "tego celu pisanie nie będzie wymagało specjalnego wysiłku - wtedy można " "zacząć zwracać uwagę na treść." -#. English typo: minimun -> minimum -#: ../src/translation.c:618 +#: ../src/translation.c:613 #, fuzzy msgid "" "These exercises are longer. Each exercise consists of three paragraphs and " @@ -686,7 +690,6 @@ "błędów. Innymi słowy, jedynie bezbłędnie napisany tekst zostanie " "zaakceptowany." -#. English typo: recomendations -> recommendations #: ../src/keyboard.c:1094 #, fuzzy msgid "" @@ -785,13 +788,11 @@ msgid "Step %i" msgstr "Krok %i" -#. Recommendations -#: ../src/keyboard.c:1140 +#: ../src/keyboard.c:1142 msgid "To position the hands" msgstr "Ułożenie rąk" -#. Final words -#: ../src/keyboard.c:1225 +#: ../src/keyboard.c:1227 msgid "Go ahead!" msgstr "Idź dalej!" @@ -831,23 +832,23 @@ msgid "Press and edit me" msgstr "Naciśnij dowolny klawisz" -#: ../src/tutor.c:176 +#: ../src/tutor.c:300 msgid "Lesson:" msgstr "Lekcja:" -#: ../src/tutor.c:186 +#: ../src/tutor.c:310 msgid "Paragraphs:" msgstr "Akapitów:" -#: ../src/tutor.c:219 +#: ../src/tutor.c:343 msgid "Klavaro - Basic Course" msgstr "Klavaro - Kurs Podstawowy" -#: ../src/tutor.c:224 +#: ../src/tutor.c:348 msgid "Klavaro - Adaptability" msgstr "Klavaro - Adaptacja" -#: ../src/tutor.c:227 +#: ../src/tutor.c:351 msgid "" "Adaptability exercises: automating the fingers responses, typing over all " "the keyboard." @@ -855,43 +856,43 @@ "Ćwiczenia przystosowujące: zautomatyzowanie reakcji palców, opanowanie całej " "klawiatury." -#: ../src/tutor.c:232 +#: ../src/tutor.c:356 msgid "Klavaro - Velocity" msgstr "Klavaro - Szybkość" -#: ../src/tutor.c:233 +#: ../src/tutor.c:357 msgid "Velocity exercises: accelerate typing real words." msgstr "Ćwiczenia szybkości: przyspieszanie pisania rzeczywistych słów." -#: ../src/tutor.c:237 +#: ../src/tutor.c:361 msgid "Klavaro - Fluidness" msgstr "Klavaro - Płynność" -#: ../src/tutor.c:239 +#: ../src/tutor.c:363 msgid "Fluidness exercises: accuracy typing good sense paragraphs." msgstr "Ćwiczenia płynności: dokładne wpisywanie sensownych akapitów." -#: ../src/tutor.c:301 +#: ../src/tutor.c:425 msgid "End of exercise. Press [Enter] to start another." msgstr "Koniec ćwiczenia. [Enter] przenosi do następnego." -#: ../src/tutor.c:329 +#: ../src/tutor.c:453 msgid "Learning the key positions." msgstr "Uczenie się położenia klawiszy." -#: ../src/tutor.c:332 +#: ../src/tutor.c:456 msgid "Press any key to start the exercise. " msgstr "Naciśnij dowolny klawisz, aby rozpocząć ćwiczenie. " -#: ../src/tutor.c:440 ../src/tutor.c:443 +#: ../src/tutor.c:567 ../src/tutor.c:570 msgid "Start typing when you are ready. " msgstr "Kiedy będziesz gotów, zacznij pisać. " -#: ../src/tutor.c:441 +#: ../src/tutor.c:568 msgid "Use backspace to correct errors." msgstr "" -#: ../src/tutor.c:885 +#: ../src/tutor.c:1012 #, c-format msgid "" "ps.: logging not performed for this session: the number of typed characters " @@ -900,11 +901,11 @@ "ps: w tej sesji nie jest wykonywane logowanie: liczba wpisanych znaków (%i) " "musi być większa niż %i." -#: ../src/tutor.c:1027 +#: ../src/tutor.c:1154 msgid "ps.: you have entered the Top 10 list, great!" msgstr "ps.: jesteś na liście dziesięciu najlepszych, gratulacje!" -#: ../src/tutor.c:1039 +#: ../src/tutor.c:1166 msgid "" "ps.: the text you just typed doesn't seem to be similar to ordinary texts in " "the language currently selected: we can't account for it in the 'Top 10' " @@ -913,93 +914,90 @@ "ps: napisany tekst nie wygląda na zwykły tekst wybranego aktualnie języka: " "nie można zaliczyć go do listy \"nalepsze 10\"." -#. Begin the accuracy -#: ../src/tutor.c:1087 +#: ../src/tutor.c:1215 msgid "STATISTICS" msgstr "STATYSTYKI" -#: ../src/tutor.c:1088 +#: ../src/tutor.c:1216 msgid "Elapsed time:" msgstr "Czas trwania:" -#: ../src/tutor.c:1089 +#: ../src/tutor.c:1217 msgid "minute and" msgid_plural "minutes and" msgstr[0] "minuta i" msgstr[1] "minuty i" msgstr[2] "minut i" -#: ../src/tutor.c:1090 +#: ../src/tutor.c:1218 msgid "second" msgid_plural "seconds" msgstr[0] "sekunda" msgstr[1] "sekundy" msgstr[2] "sekund" -#: ../src/tutor.c:1091 +#: ../src/tutor.c:1219 msgid "Error ratio:" msgstr "Współczynnik błędów:" -#: ../src/tutor.c:1091 +#: ../src/tutor.c:1219 msgid "Accuracy:" msgstr "Dokładność:" -#: ../src/tutor.c:1112 ../src/tutor.c:1137 ../src/tutor.c:1160 -#: ../src/tutor.c:1186 +#: ../src/tutor.c:1240 ../src/tutor.c:1265 ../src/tutor.c:1288 +#: ../src/tutor.c:1314 msgid "Goal:" msgstr "Cel:" -#: ../src/tutor.c:1119 +#: ../src/tutor.c:1247 msgid "Characters per second:" msgstr "Znaków na sekundę:" -#: ../src/tutor.c:1137 +#: ../src/tutor.c:1265 msgid "(CPS)" msgstr "(ZNS)" -#: ../src/tutor.c:1142 +#: ../src/tutor.c:1270 msgid "Words per minute:" msgstr "Słów na minutę:" -#: ../src/tutor.c:1167 +#: ../src/tutor.c:1295 msgid "Fluidness:" msgstr "Płynność:" -#: ../src/tutor.c:1194 +#: ../src/tutor.c:1322 msgid "Comments:" msgstr "Uwagi:" -#: ../src/tutor.c:1676 +#: ../src/tutor.c:1804 msgid "space" msgstr "" #. Translators: the name of letter Y -#: ../src/tutor.c:1681 +#: ../src/tutor.c:1809 msgid "wye" msgstr "" #. Translators: the name of the Return key -#: ../src/tutor.c:1685 +#: ../src/tutor.c:1813 msgid "enter" msgstr "" -#: ../src/tutor.c:1691 +#: ../src/tutor.c:1819 msgid "apostrophe" msgstr "" #. Translators: double quote symbol: " -#: ../src/tutor.c:1695 +#: ../src/tutor.c:1823 msgid "quote" msgstr "" #. Translators: ampersand symbol: & -#: ../src/tutor.c:1699 +#: ../src/tutor.c:1827 msgid "ampersand" msgstr "" -#. Error frequencies or touch times -#. -#: ../src/plot.c:308 +#: ../src/plot.c:305 msgid "Character" msgstr "" @@ -1007,11 +1005,11 @@ msgid "Date & Time" msgstr "Data i czas" -#: ../src/basic.c:331 +#: ../src/basic.c:326 msgid "Positions of keys seems to be learned!" msgstr "Położenie klawiszy wygląda na opanowane!" -#: ../src/basic.c:332 +#: ../src/basic.c:327 msgid "" " Congratulations!\n" " You have accomplished the entire basic course.\n" @@ -1022,7 +1020,7 @@ " Pora przejść do następnego typu ćwiczeń: adaptacja.\n" " Tam będzie ćwiczona głównie dokładność.\n" -#: ../src/basic.c:338 +#: ../src/basic.c:333 msgid "" " All right, now you got it!\n" " Go to the next lesson.\n" @@ -1030,34 +1028,36 @@ " Dobrze, chyba załapałeś!\n" " Przejdź do następnej lekcji.\n" -#: ../src/adaptability.c:217 +#: ../src/adaptability.c:213 +#, fuzzy, c-format msgid "" -" Your accuracy rate is below 90%...\n" +" Your accuracy rate is below %.0f%%...\n" " Could you please try again to improve it?\n" msgstr "" "Twój poziom dokładności jest poniżej 90%...\n" "Spróbujesz jeszcze raz żeby go polepszyć?\n" -#: ../src/adaptability.c:222 +#: ../src/adaptability.c:216 +#, fuzzy, c-format msgid "" " You are doing well. But...\n" -" Could you make the accuracy reach 95%?\n" +" Could you make the accuracy reach %.0f%%?\n" msgstr "" " Idzie Ci nieźle, ale...\n" " Czy jesteś w stanie osiągnąć dokładność co najmniej 95%?\n" -#: ../src/adaptability.c:225 -#, c-format +#: ../src/adaptability.c:219 +#, fuzzy, c-format msgid "" " You are almost there, but your accuracy rate is still below %.0f%%.\n" -" Try a few more times, or maybe you're getting upset, so go to other kind of " -"exercise.\n" +" Try a few more times, or maybe you're getting upset, so go to another kind " +"of exercise.\n" msgstr "" " Jesteś blisko celu, ale dokładność jest ciągle poniżej %.0f%%.\n" " Spróbuj jeszcze kilka razy, a może masz już dość, jeśli tak to przejdź do " "innego ćwiczenia.\n" -#: ../src/adaptability.c:232 +#: ../src/adaptability.c:226 #, c-format msgid "" " Very good!\n" @@ -1070,12 +1070,12 @@ " Czas teraz popracować nad szybkością.\n" " Przejdź do trzeciego ćwiczenia w menu głównym\n" -#: ../src/velocity.c:313 ../src/fluidness.c:435 +#: ../src/velocity.c:312 ../src/fluidness.c:435 #, fuzzy msgid "Pasted_or_dropped" msgstr "Pasted_or_dropped" -#: ../src/velocity.c:432 +#: ../src/velocity.c:423 msgid "" " You are just beginning.\n" " Be patient, try it again every day, rest and don't worry so much:\n" @@ -1086,32 +1086,35 @@ "wiele:\n" "wytrwałość i praktyka zwiększą twoją prędkość.\n" -#: ../src/velocity.c:436 +#: ../src/velocity.c:427 +#, fuzzy, c-format msgid "" " Still away from the highway. You can make better...\n" -" Try at least 20 WPM.\n" +" Try to reach at least %.0f WPM.\n" msgstr "" " Ciągle daleko od ekspresu. Stać Cię na więcej... Spróbuj osiągnąć " "przynajmniej 20 SNM.\n" -#: ../src/velocity.c:439 +#: ../src/velocity.c:430 +#, fuzzy, c-format msgid "" " You are doing well, but need to go faster.\n" -" And don't forget the accuracy. Try to get 30 WPM.\n" +" And don't forget the accuracy. Try to get %.0f WPM.\n" msgstr "" " Idzie Ci nieźle, ale spróbuj pisać szybciej.\n" " Nie zapomnij jednak o dokładności. Spróbuj\n" " przyspieszyć do 30 SNM.\n" -#: ../src/velocity.c:443 +#: ../src/velocity.c:433 +#, fuzzy, c-format msgid "" " Fine. Now you need to start running.\n" -" Can you reach 40 WPM?\n" +" Can you reach %.0f WPM?\n" msgstr "" " Dobrze. Czas włączyć turbo.\n" " Czy potrafisz osiągnąć 40 SNM?\n" -#: ../src/velocity.c:446 +#: ../src/velocity.c:436 #, c-format msgid "" " Very good. You are almost there.\n" @@ -1120,7 +1123,7 @@ " Bardzo dobrze. Niewiele ci brakuje.\n" " Czy możesz w końcu dojść do %.0f SNM?\n" -#: ../src/velocity.c:451 +#: ../src/velocity.c:439 msgid "" " Excellent. For this course, that is enough.\n" " Try now the fluidness exercises, OK?\n" @@ -1128,31 +1131,34 @@ " Świetnie. Jak na ten kurs to wystarczy.\n" " Teraz spróbuj ćwiczeń z płynności, OK?\n" -#: ../src/velocity.c:455 +#: ../src/velocity.c:442 +#, fuzzy, c-format msgid "" -" Fast! Are you training for a competition?\n" -" So, try to get 70 WPM!\n" +" Fast! Are you a professional?\n" +" So, try to get %.0f WPM!\n" msgstr "" " Szybko! Przygotowujesz się do zawodów?\n" " W takim razie spróbuj osiągnąć 70SNM!\n" -#: ../src/velocity.c:458 -msgid "" -" Top of \"qwerty\". Now it's time to change to the Dvorak mode.\n" -" Are you afraid of reaching 80 WPM?\n" +#. Translators: Speed Racer is a reference to a Japanese anime franchise +#. about automobile racing, also known as Mach GoGoGo. +#: ../src/velocity.c:447 +#, c-format +msgid " Ranking good, Speed Racer! Are you afraid of reaching %.0f WPM?\n" msgstr "" -" Elita \"qwerty\". Czas teraz przejść na tryb Dvorak.\n" -" Bałbyś się o palce, gdybyś pisał 80 SNM?\n" -#: ../src/velocity.c:462 +#. Translators: feel free to change the reference to that martial art, if you find another good analogy. +#: ../src/velocity.c:451 +#, fuzzy, c-format msgid "" -" Dvorak mode dominated!\n" -" Can you fly at 90 WPM?\n" +" Kunf-fu mastering!\n" +" Can you fly at %.0f WPM?\n" msgstr "" " Tryb Dvorak podbity!\n" " Czy potrafisz pruć z prędkością 90 SNM?\n" -#: ../src/velocity.c:466 +#. Translators: Dvorak here means that infamous ergonomic keyboard layout. +#: ../src/velocity.c:454 msgid "" " Dvorak master!\n" " I have no words to express my admiration!\n" @@ -1160,7 +1166,7 @@ " Mistrz Dvoraka!\n" " Brak mi słów, aby wyrazić mój podziw!\n" -#: ../src/fluidness.c:545 +#: ../src/fluidness.c:538 #, c-format msgid "" " You type accurately but not so fast.\n" @@ -1169,7 +1175,7 @@ " Umiesz pisać dokładnie, ale nie szybko.\n" " Czy potrafisz osiągnąć %.0f SNM?\n" -#: ../src/fluidness.c:548 +#: ../src/fluidness.c:541 #, c-format msgid "" " Your rhythm is not so constant. Calm down.\n" @@ -1178,7 +1184,7 @@ " Twój rytm jest niejednostajny. Odpręż się.\n" "Na razie spróbuj osiągnąć płynność większą niż %i%%.\n" -#: ../src/fluidness.c:551 +#: ../src/fluidness.c:544 #, c-format msgid "" " You are almost getting there. Type more fluently.\n" @@ -1187,7 +1193,7 @@ " Prawie Ci się udało. Pisz płynniej.\n" "Wymagana jest płynność większa niż %.0f%%.\n" -#: ../src/fluidness.c:554 +#: ../src/fluidness.c:547 msgid "" " Congratulations!\n" " It seems to me that you are a professional.\n" @@ -1198,7 +1204,7 @@ " Nie potrzebujesz więcej tego programu.\n" " Dobrze się bawiłeś? Dzięki i powodzenia!\n" -#: ../src/fluidness.c:559 +#: ../src/fluidness.c:552 msgid "" " How can you type so fast?\n" " You have exceeded all my expectations.\n" @@ -1264,14 +1270,26 @@ msgid "Could not upload/download scores." msgstr "Nie można wysłać/pobrać wyników." +#~ msgid "" +#~ " Top of \"qwerty\". Now it's time to change to the Dvorak mode.\n" +#~ " Are you afraid of reaching 80 WPM?\n" +#~ msgstr "" +#~ " Elita \"qwerty\". Czas teraz przejść na tryb Dvorak.\n" +#~ " Bałbyś się o palce, gdybyś pisał 80 SNM?\n" + +#~ msgid "Press here to restart the exercise. Hotkey: [Ctrl R]" +#~ msgstr "Kliknij tu aby powtórzyć ćwiczenie. Skrót: [Ctrl R]" + +#~ msgid "_Font" +#~ msgstr "Czcionka" + +#~ msgid "Klavaro" +#~ msgstr "Klavaro" + #~ msgid "Default" #~ msgstr "Domyślny" #, fuzzy -#~ msgid "A flexible touch typing tutor" -#~ msgstr "Jeszcze jeden samouczek szybkiego pisania" - -#, fuzzy #~ msgid "About..." #~ msgstr "O programie..." diff -Nru klavaro-1.9.9/po/POTFILES.in klavaro-3.00/po/POTFILES.in --- klavaro-1.9.9/po/POTFILES.in 2013-07-24 18:39:00.000000000 +0000 +++ klavaro-3.00/po/POTFILES.in 2014-01-05 14:03:38.000000000 +0000 @@ -1,7 +1,7 @@ # List of source files containing translatable strings. -data/klavaro.desktop.in data/klavaro.glade +data/klavaro.desktop.in src/main.c src/callbacks.c src/translation.c diff -Nru klavaro-1.9.9/po/POTFILES.skip klavaro-3.00/po/POTFILES.skip --- klavaro-1.9.9/po/POTFILES.skip 2013-07-24 18:39:00.000000000 +0000 +++ klavaro-3.00/po/POTFILES.skip 1970-01-01 00:00:00.000000000 +0000 @@ -1,3 +0,0 @@ -# List of source files containing translatable strings. - -data/klavaro.ui diff -Nru klavaro-1.9.9/po/pt_BR.po klavaro-3.00/po/pt_BR.po --- klavaro-1.9.9/po/pt_BR.po 2013-08-15 13:38:51.000000000 +0000 +++ klavaro-3.00/po/pt_BR.po 2014-01-13 23:25:52.000000000 +0000 @@ -1,14 +1,14 @@ # Brazilian Portuguese translation of klavaro. # This file is distributed under the same license as the klavaro package. -# Copyright (C) 2008, 2009, 2010, 2011, 2012 Free Software Foundation, Inc. -# Felipe Castro , 2008, 2009, 2010, 2011, 2012. +# Copyright (C) 2008, 2009, 2010, 2011, 2012, 2014 Free Software Foundation, Inc. +# Felipe Castro , 2008, 2009, 2010, 2011, 2012, 2014. # msgid "" msgstr "" -"Project-Id-Version: klavaro-1.9.5-pre2\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2013-08-15 10:38-0300\n" -"PO-Revision-Date: 2012-06-03 11:46-0300\n" +"Project-Id-Version: klavaro-3.00-pre2\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2014-01-13 21:25-0200\n" +"PO-Revision-Date: 2014-01-09 20:43-0300\n" "Last-Translator: Felipe Castro \n" "Language-Team: Brazilian Portuguese \n" @@ -17,555 +17,556 @@ "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n > 1);\n" -"X-Poedit-Country: BRAZIL\n" - -#: ../data/klavaro.desktop.in.h:1 ../data/klavaro.glade.h:59 -msgid "Yet another touch typing tutor" -msgstr "Tutorial para digitação gratuito" +"X-Generator: Poedit 1.5.4\n" #: ../data/klavaro.glade.h:1 -msgid "Klavaro - Main menu" -msgstr "Klavaro - Menu principal" +msgid "About 'Klavaro'" +msgstr "Sobre o 'Klavaro'" #: ../data/klavaro.glade.h:2 -msgid "Don't be shy about learning the basics!" -msgstr "Não seja tímido(a) em aprender sobre o básico!" +msgid "Yet another touch typing tutor" +msgstr "Mais um tutorial para digitação" #: ../data/klavaro.glade.h:3 -msgid "Learn how to type correctly" -msgstr "Aprenda a digitar corretamente" +msgid "Remember always: someone loves you!" +msgstr "Lembre-se sempre: alguém ama você!" #: ../data/klavaro.glade.h:4 -msgid "Initial training for your fingers." -msgstr "Treino inicial para seus dedos." +msgid "Change language" +msgstr "Trocar o idioma" #: ../data/klavaro.glade.h:5 -msgid "First steps with initial training" -msgstr "Primeiros passos com treinamento inicial" +msgid "Attention!" +msgstr "Atenção!" #: ../data/klavaro.glade.h:6 -msgid "Memorizing the keyboard practicing random keys exercises." -msgstr "Memorizando o teclado ao praticar exercícios com teclas aleatórias." +msgid "Do you confirm?" +msgstr "Você confirma?" #: ../data/klavaro.glade.h:7 -msgid "Practice with random keys" -msgstr "Pratique com teclas aleatórias" +msgid "_No" +msgstr "_Não" + +#: ../data/klavaro.glade.h:8 +msgid "_Yes" +msgstr "_Sim" -#. English typo: touchs -> touches #: ../data/klavaro.glade.h:9 -msgid "Accelerating the touches practicing random words exercises." -msgstr "Acelerando os toques ao praticar exercícios com palavras aleatórias." +msgid "Help?" +msgstr "Ajuda?" #: ../data/klavaro.glade.h:10 -msgid "Practice with random words" -msgstr "Pratique com palavras aleatórias" +msgid "This is a tip. Now you press this button to return to the main menu." +msgstr "" +"Isto é uma dica. Agora pressione este botão para retornar ao menu principal." #: ../data/klavaro.glade.h:11 -msgid "Becoming proficient practicing complete paragraphs exercises." -msgstr "" -"Tornando-se proficiente ao praticar exercícios com parágrafos completos." +msgid "B_ack to menu" +msgstr "_Voltar ao menu" #: ../data/klavaro.glade.h:12 -msgid "Practice with complete texts" -msgstr "Pratique com textos completos" +msgid "" +"The main menu of the application is very straightforward. Just select the " +"type of exercise you wish to take. Do not worry about clicking any button on " +"the screen. The buttons will never hurt you!" +msgstr "" +"O menu principal do aplicativo é muito direto. Basta selecionar que tipo de " +"exercício você quer praticar. Não tenha medo de clicar em qualquer botão: " +"eles nunca machucarão você!" #: ../data/klavaro.glade.h:13 msgid "" -"Keyboard layout for modules 1 and 2. Also used informatively in the " -"fluidness contest." +"Also the controls have tips which will appear if you hover over them with " +"your mouse. These tips can come in very handy. To see how these tips work, " +"position your mouse over the button below, and without clicking, wait for " +"the tip to appear..." msgstr "" -"Arranjo de teclado para os módulos 1 e 2. Também é usado informativamente na " -"competição de fluidez." +"E também não se esqueça de esperar que apareçam dicas sobre cada controle. " +"Algumas vezes elas podem ser muito úteis. Para ver como estas dicas " +"funcionam, leve o ponteiro sobre o botão abaixo e, sem clicar, espere um " +"pouquinho..." #: ../data/klavaro.glade.h:14 -msgid "_Keyboard:" -msgstr "_Teclado:" +msgid "Klavaro - Select file" +msgstr "Klavaro - Selecionar arquivo" #: ../data/klavaro.glade.h:15 -msgid "Language for modules 3 and 4." -msgstr "Idioma para os módulos 3 e 4." +msgid "_Cancel" +msgstr "_Cancelar" #: ../data/klavaro.glade.h:16 -msgid "_Language:" -msgstr "_Idioma:" +msgid "_Open" +msgstr "_Abrir" #: ../data/klavaro.glade.h:17 -msgid "Variant" -msgstr "Variante" +msgid "Re_name:" +msgstr "Re_nomear:" #: ../data/klavaro.glade.h:18 -msgid "Klavaro" -msgstr "Klavaro" +msgid "Rename the selected item." +msgstr "Renomear o item selecionado." #: ../data/klavaro.glade.h:19 -msgid "Country / Custom" -msgstr "País / Personalização" +msgid "" +"Read a text file and add a copy of it here. The file must be encoded in " +"UTF-8." +msgstr "" +"Ler um arquivo de texto e adicionar uma cópia dele aqui. O arquivo deve " +"estar codificado em UTF-8." #: ../data/klavaro.glade.h:20 -msgid "Your language here." -msgstr "Sua língua é aqui." +msgid "_Open text file" +msgstr "_Abrir arquivo texto" #: ../data/klavaro.glade.h:21 -msgid "Speech" -msgstr "Fala" +msgid "Paste text that was copied to the clipboard." +msgstr "Colar texto que esteja copiado na área de transferência." #: ../data/klavaro.glade.h:22 -msgid "Little tip about this program." -msgstr "Pequena dica sobre este programa." +msgid "_Paste from clipboard" +msgstr "_Colar da área de transferência" #: ../data/klavaro.glade.h:23 -msgid "_Help" -msgstr "_Ajuda" +msgid "Remove the selected item." +msgstr "Remover o item selecionado." #: ../data/klavaro.glade.h:24 -msgid "General information about the program." -msgstr "Informação genérica sobre o programa." +msgid "_Remove copied file" +msgstr "_Remover arquivo copiado" #: ../data/klavaro.glade.h:25 -msgid "_About..." -msgstr "_Sobre..." +msgid "Apply the selected item to create an exercise." +msgstr "Aplicar o item selecionado para criar um exercício." #: ../data/klavaro.glade.h:26 -msgid "Exit the application immediately." -msgstr "Sair do aplicativo imediatamente." +msgid "_Apply" +msgstr "_Aplicar" #: ../data/klavaro.glade.h:27 -msgid "_Close" -msgstr "_Fechar" +msgid "Close this window." +msgstr "Fechar esta janela." #: ../data/klavaro.glade.h:28 -msgid "Load other exercises/lessons" -msgstr "Carregar outros exercícios/lições." +msgid "_Close" +msgstr "_Fechar" #: ../data/klavaro.glade.h:29 -msgid "_Other texts" -msgstr "_Outros textos" +msgid "Country / Custom" +msgstr "País / Personalização" #: ../data/klavaro.glade.h:30 -msgid "_Lesson:" -msgstr "_Lição:" +msgid "Variant" +msgstr "Variante" #: ../data/klavaro.glade.h:31 -msgid "Edit the character set to be used in this lesson." -msgstr "Editar o conjunto de caracteres a serem usados nesta lição." +msgid "Remove the selected custom layout." +msgstr "Remover o arranjo pessoal selecionado." #: ../data/klavaro.glade.h:32 -msgid "Edit the character set to be used in lessons 44 through 50." -msgstr "Editar o conjunto de caracteres a serem usados nas lições de 44 a 50." +msgid "_Remove" +msgstr "_Remover" #: ../data/klavaro.glade.h:33 -msgid "This is a specific exercise, adjusted to your error profile." -msgstr "Este é um exercício específico, ajustado ao seu perfil de erros." +msgid "" +"Toggles the shift effect on the keys. Alternates between the upper and lower " +"characters of the keys." +msgstr "" +"Aplica o efeito de elevação sobre as teclas. Alterna entre os caracteres " +"superior e inferior delas." -#: ../data/klavaro.glade.h:34 ../src/tutor.c:252 -msgid "Drag and drop text here to practice with it." -msgstr "Arraste e solte texto aqui para praticar com ele." +#: ../data/klavaro.glade.h:34 +msgid "SPACE BAR" +msgstr "BARRA DE ESPAÇOS" -#: ../data/klavaro.glade.h:35 -msgid "Press here to restart the exercise. Hotkey: [Ctrl R]" -msgstr "Pressione aqui para recomeçar o exercício. Atalho: [Ctrl-R]" +#: ../data/klavaro.glade.h:35 ../src/keyboard.c:1630 +msgid "thumbs" +msgstr "polegares" #: ../data/klavaro.glade.h:36 -msgid "Show the virtual keyboard and the relation between fingers and keys." -msgstr "Mostrar o teclado virtual e a relação entre dedos e teclas." +msgid "Ctrl" +msgstr "Ctrl" #: ../data/klavaro.glade.h:37 -msgid "_Keyboard" -msgstr "_Teclado" +msgid "Caps" +msgstr "Caps" #: ../data/klavaro.glade.h:38 -msgid "Select the font to be used in the exercise window." -msgstr "Selecionar a fonte a ser usada na janela de exercícios." +msgid "S_ave as:" +msgstr "S_alvar como:" #: ../data/klavaro.glade.h:39 -msgid "_Font" -msgstr "Fo_nte" +msgid "Show previous screen." +msgstr "Mostrar a tela anterior." #: ../data/klavaro.glade.h:40 -msgid "Keep this checked if you want to get those nice beeps." -msgstr "Mantenha isto aqui ativado se quiser ouvir aqueles bipes legais." +msgid "_Previous step" +msgstr "Passo _anterior" #: ../data/klavaro.glade.h:41 -msgid "_Beep" -msgstr "_Bipe" +msgid "Show next screen." +msgstr "Mostrar a próxima tela." #: ../data/klavaro.glade.h:42 -msgid "Co_urse information" -msgstr "Informação sobre o c_urso" +msgid "_Next step" +msgstr "Passo _seguinte" #: ../data/klavaro.glade.h:43 -msgid "Charts showing the learning progress along the exercises." -msgstr "" -"Gráficos a mostrar o progresso no aprendizado, ao longo dos exercícios." +msgid "Return without any modification." +msgstr "Retornar sem qualquer modificação." #: ../data/klavaro.glade.h:44 -msgid "_Progress" -msgstr "_Progresso" +msgid "Save the current keyboard layout with the name specified above." +msgstr "Salvar o arranjo de teclado atual com o nome especificado acima." #: ../data/klavaro.glade.h:45 -msgid "Show local and external scores from other users." -msgstr "Mostrar pontuação local e externa de outros usuários." +msgid "_Save and use" +msgstr "_Salvar e usar" #: ../data/klavaro.glade.h:46 -msgid "_Top 10" -msgstr "Os 10 _Mais" +msgid "" +"If you like those beautiful hands, click here to close this window keeping " +"them." +msgstr "" +"Se você gostou daquelas mãozinhas simpáticas, clique aqui para mantê-las, " +"fechando esta janela." #: ../data/klavaro.glade.h:47 -msgid "Return to the main menu." -msgstr "Retornar ao menu principal." +msgid "_Keep hands" +msgstr "_Manter mãozinhas" #: ../data/klavaro.glade.h:48 -msgid "B_ack to menu" -msgstr "_Voltar ao menu" +msgid "Klavaro - Main menu" +msgstr "Klavaro - Menu principal" #: ../data/klavaro.glade.h:49 -msgid "Close this window." -msgstr "Fechar esta janela." +msgid "Don't be shy about learning the basics!" +msgstr "Não seja tímido(a) em aprender sobre o básico!" #: ../data/klavaro.glade.h:50 -msgid "Font definition" -msgstr "Definição da fonte" +msgid "Learn how to type correctly" +msgstr "Aprenda a digitar corretamente" #: ../data/klavaro.glade.h:51 -msgid "Top 10" -msgstr "Os 10 Mais" +msgid "Initial training for your fingers." +msgstr "Treino inicial para seus dedos." #: ../data/klavaro.glade.h:52 -msgid "Show extra information" -msgstr "Mostrar informação extra" +msgid "First steps with initial training" +msgstr "Primeiros passos com treinamento inicial" #: ../data/klavaro.glade.h:53 -msgid "Hide extra information" -msgstr "Esconder informação extra" +msgid "Memorizing the keyboard practicing random keys exercises." +msgstr "Memorizando o teclado ao praticar exercícios com teclas aleatórias." #: ../data/klavaro.glade.h:54 -msgid "Publish to the web your local scores." -msgstr "Publicar na internete sua pontuação local." +msgid "Practice with random keys" +msgstr "Pratique com teclas aleatórias" #: ../data/klavaro.glade.h:55 -msgid "_Participate" -msgstr "_Participar" +msgid "Accelerating the touches practicing random words exercises." +msgstr "Acelerando os toques ao praticar exercícios com palavras aleatórias." #: ../data/klavaro.glade.h:56 -msgid "Download from the web the most up to date ranking." -msgstr "Baixar da internete a classificação mais atual." +msgid "Practice with random words" +msgstr "Pratique com palavras aleatórias" #: ../data/klavaro.glade.h:57 -msgid "_Update" -msgstr "_Atualizar" +msgid "Becoming proficient practicing complete paragraphs exercises." +msgstr "" +"Tornando-se proficiente ao praticar exercícios com parágrafos completos." #: ../data/klavaro.glade.h:58 -msgid "About 'Klavaro'" -msgstr "Sobre 'Klavaro'" +msgid "Practice with complete texts" +msgstr "Pratique com textos completos" + +#: ../data/klavaro.glade.h:59 +msgid "" +"Keyboard layout for modules 1 and 2. Also used informatively in the " +"fluidness contest." +msgstr "" +"Arranjo de teclado para os módulos 1 e 2. Também é usado informativamente na " +"competição de fluidez." #: ../data/klavaro.glade.h:60 -msgid "Remember always: someone loves you!" -msgstr "Lembre-se sempre: alguém ama você!" +msgid "_Keyboard:" +msgstr "_Teclado:" #: ../data/klavaro.glade.h:61 -msgid "Remove the selected custom layout." -msgstr "Remover o arranjo pessoal selecionado." +msgid "Language for modules 3 and 4." +msgstr "Idioma para os módulos 3 e 4." #: ../data/klavaro.glade.h:62 -msgid "_Remove" -msgstr "_Remover" +msgid "_Language:" +msgstr "_Idioma:" #: ../data/klavaro.glade.h:63 -msgid "" -"Toggles the shift effect on the keys. Alternates between the upper and lower " -"characters of the keys." -msgstr "" -"Aplica o efeito de elevação sobre as teclas. Alterna entre os caracteres " -"superior e inferior delas." +msgid "Speech" +msgstr "Fala" #: ../data/klavaro.glade.h:64 -msgid "SPACE BAR" -msgstr "BARRA DE ESPAÇOS" +msgid "Your language here." +msgstr "Sua língua é aqui." -#: ../data/klavaro.glade.h:65 ../src/keyboard.c:1630 -msgid "thumbs" -msgstr "polegares" +#: ../data/klavaro.glade.h:65 +msgid "Little tip about this program." +msgstr "Pequena dica sobre este programa." #: ../data/klavaro.glade.h:66 -msgid "Ctrl" -msgstr "Ctrl" +msgid "_Help" +msgstr "_Ajuda" #: ../data/klavaro.glade.h:67 -msgid "Caps" -msgstr "Caps" +msgid "General information about the program." +msgstr "Informação genérica sobre o programa." #: ../data/klavaro.glade.h:68 -msgid "S_ave as:" -msgstr "S_alvar como:" +msgid "_About..." +msgstr "_Sobre..." #: ../data/klavaro.glade.h:69 -msgid "Show previous screen." -msgstr "Mostrar a tela anterior." +msgid "Exit the application immediately." +msgstr "Sair do aplicativo imediatamente." #: ../data/klavaro.glade.h:70 -msgid "_Previous step" -msgstr "Passo _anterior" +msgid "Klavaro - Progress" +msgstr "Klavaro - Progresso" #: ../data/klavaro.glade.h:71 -msgid "Show next screen." -msgstr "Mostrar a próxima tela." +msgid "_Lesson:" +msgstr "_Lição:" #: ../data/klavaro.glade.h:72 -msgid "_Next step" -msgstr "Passo _seguinte" +msgid "Value" +msgstr "Valor" #: ../data/klavaro.glade.h:73 -msgid "Return without any modification." -msgstr "Retornar sem qualquer modificação." +msgid "Close this window, returning to the exercise." +msgstr "Fechar esta janela, retornando para o exercício." #: ../data/klavaro.glade.h:74 -msgid "_Cancel" -msgstr "_Cancelar" +msgid "Clear all the progress data, for every module." +msgstr "Limpar todos os dados sobre progresso, de todos os módulos." #: ../data/klavaro.glade.h:75 -msgid "Save the current keyboard layout with the name specified above." -msgstr "Salvar o arranjo de teclado atual com o nome especificado acima." +msgid "_Reset" +msgstr "_Zerar" #: ../data/klavaro.glade.h:76 -msgid "_Save and use" -msgstr "_Salvar e usar" +msgid "Top 10" +msgstr "Os 10 Mais" #: ../data/klavaro.glade.h:77 -msgid "" -"If you like those beautiful hands, click here to close this window keeping " -"them." -msgstr "" -"Se você gostou daquelas mãozinhas simpáticas, clique aqui para mantê-las, " -"fechando esta janela." +msgid "Show extra information." +msgstr "Mostrar informação extra." #: ../data/klavaro.glade.h:78 -msgid "_Keep hands" -msgstr "_Manter mãozinhas" +msgid "Hide extra information." +msgstr "Esconder informação extra." #: ../data/klavaro.glade.h:79 -msgid "Change language" -msgstr "Trocar o idioma" +msgid "Publish to the web your local scores." +msgstr "Publicar na internete sua pontuação local." #: ../data/klavaro.glade.h:80 -msgid "Attention!" -msgstr "Atenção!" +msgid "_Participate" +msgstr "_Participar" #: ../data/klavaro.glade.h:81 -msgid "Do you confirm?" -msgstr "Você confirma?" +msgid "Download from the web the most up to date ranking." +msgstr "Baixar da internete a classificação mais atual." #: ../data/klavaro.glade.h:82 -msgid "_No" -msgstr "_Não" +msgid "_Update" +msgstr "_Atualizar" #: ../data/klavaro.glade.h:83 -msgid "_Yes" -msgstr "_Sim" +msgid "Load other exercises/lessons" +msgstr "Carregar outros exercícios/lições." #: ../data/klavaro.glade.h:84 -msgid "Re_name:" -msgstr "Re_nomear:" +msgid "_Other texts" +msgstr "_Outros textos" #: ../data/klavaro.glade.h:85 -msgid "Rename the selected item." -msgstr "Renomear o item selecionado." +msgid "Edit the character set to be used in this lesson." +msgstr "Editar o conjunto de caracteres a serem usados nesta lição." #: ../data/klavaro.glade.h:86 -msgid "" -"Read a text file and add a copy of it here. The file must be encoded in " -"UTF-8." -msgstr "" -"Ler um arquivo de texto e adicionar uma cópia dele aqui. O arquivo deve " -"estar codificado em UTF-8." +msgid "This is a specific exercise, adjusted to your error profile." +msgstr "Este é um exercício específico, ajustado ao seu perfil de erros." #: ../data/klavaro.glade.h:87 -msgid "_Open text file" -msgstr "_Abrir arquivo texto" +msgid "" +"Edit the character set to be used in lessons after 43: they are customizable!" +msgstr "" +"Editar o conjunto de caracteres a ser usado nas lições depois da 43: elas " +"são personalizáveis!" -#: ../data/klavaro.glade.h:88 -msgid "Paste text that was copied to the clipboard." -msgstr "Colar texto que esteja copiado na área de transferência." +#: ../data/klavaro.glade.h:88 ../src/tutor.c:376 +msgid "Drag and drop text here to practice with it." +msgstr "Arraste e solte texto aqui para praticar com ele." #: ../data/klavaro.glade.h:89 -msgid "_Paste from clipboard" -msgstr "_Colar da área de transferência" +msgid "Press here to restart the exercise. Hotkey: [Ctrl-R]" +msgstr "Pressione aqui para recomeçar o exercício. Atalho: [Ctrl-R]" #: ../data/klavaro.glade.h:90 -msgid "Remove the selected item." -msgstr "Remover o item selecionado." +msgid "Show the virtual keyboard and the relation between fingers and keys." +msgstr "Mostrar o teclado virtual e a relação entre dedos e teclas." #: ../data/klavaro.glade.h:91 -msgid "_Remove copied file" -msgstr "_Remover arquivo copiado" +msgid "_Keyboard" +msgstr "_Teclado" #: ../data/klavaro.glade.h:92 -msgid "Apply the selected item to create an exercise." -msgstr "Aplicar o item selecionado para criar um exercício." +msgid "Select the font to be used in the exercise window." +msgstr "Selecionar a fonte a ser usada na janela de exercícios." #: ../data/klavaro.glade.h:93 -msgid "_Apply" -msgstr "_Aplicar" +msgid "Font definition" +msgstr "Definição da fonte" #: ../data/klavaro.glade.h:94 -msgid "Klavaro - Progress" -msgstr "Klavaro - Progresso" +msgid "Keep this checked if you want to get those nice beeps." +msgstr "Mantenha isto aqui ativado se quiser ouvir aqueles bipes legais." #: ../data/klavaro.glade.h:95 -msgid "Value" -msgstr "Valor" +msgid "_Beep" +msgstr "_Bipe" #: ../data/klavaro.glade.h:96 -msgid "Clear all the progress data, for every module." -msgstr "Limpar todos os dados sobre progresso, de todos os módulos." +msgid "Co_urse information" +msgstr "Informação sobre o c_urso" #: ../data/klavaro.glade.h:97 -msgid "_Reset" -msgstr "_Zerar" +msgid "Charts showing the learning progress along the exercises." +msgstr "" +"Gráficos a mostrar o progresso no aprendizado, ao longo dos exercícios." #: ../data/klavaro.glade.h:98 -msgid "Close this window, returning to the exercise." -msgstr "Fechar esta janela, retornando para o exercício." +msgid "_Progress" +msgstr "_Progresso" #: ../data/klavaro.glade.h:99 -msgid "Klavaro - Select file" -msgstr "Klavaro - Selecionar arquivo" +msgid "Return to the main menu." +msgstr "Retornar ao menu principal." #: ../data/klavaro.glade.h:100 -msgid "_Open" -msgstr "_Abrir" +msgid "Show local and external scores from other users." +msgstr "Mostrar pontuação local e externa de outros usuários." #: ../data/klavaro.glade.h:101 -msgid "Help?" -msgstr "Ajuda?" - -#: ../data/klavaro.glade.h:102 -msgid "" -"The main menu of the application is very straightforward. Just select the " -"type of exercise you wish to take. Do not worry about clicking any button on " -"the screen. The buttons will never hurt you!" -msgstr "" -"O menu principal do aplicativo é muito direto. Basta selecionar que tipo de " -"exercício você quer praticar. Não tenha medo de clicar em qualquer botão: " -"eles nunca machucarão você!" - -#: ../data/klavaro.glade.h:103 -msgid "" -"Also the controls have tips which will appear if you hover over them with " -"your mouse. These tips can come in very handy. To see how these tips work, " -"position your mouse over the button below, and without clicking, wait for " -"the tip to appear..." -msgstr "" -"E também não se esqueça de esperar que apareçam dicas sobre cada controle. " -"Algumas vezes elas podem ser muito úteis. Para ver como estas dicas " -"funcionam, leve o ponteiro sobre o botão abaixo e, sem clicar, espere um " -"pouquinho..." +msgid "_Top 10" +msgstr "Os 10 _Mais" -#: ../data/klavaro.glade.h:104 -msgid "This is a tip. Now you press this button to return to the main menu." -msgstr "" -"Isto é uma dica. Agora pressione este botão para retornar ao menu principal." +#: ../data/klavaro.desktop.in.h:1 +msgid "A very flexible and efficient touch typing tutor." +msgstr "Tutorial para digitação muito flexível e eficiente." + +#. Translators: these are keywords related to the program. CAI above means Computer Aided Instruction. Feel free to add and/or change the keywords in your language. +#: ../data/klavaro.desktop.in.h:3 +msgid "keyboard;typing;tutor;CAI" +msgstr "teclado;digitação;tutorial;CAI;aprendizado" -#: ../src/main.c:314 +#: ../src/main.c:242 msgid "(Custom)" msgstr "(Personalização)" -#: ../src/main.c:315 +#: ../src/main.c:243 msgid "(Edit custom)" msgstr "(Editar personalização)" -#: ../src/main.c:316 +#: ../src/main.c:244 msgid "(Default)" msgstr "(Padrão)" -#: ../src/main.c:393 +#: ../src/main.c:321 #, c-format msgid "Dictation mode (depends on this speech synthesizer: %s)" msgid_plural "Dictation mode (depends on one of these speech synthesizers: %s)" msgstr[0] "Regime de ditado (depende deste sintetizador de fala: %s)" msgstr[1] "Regime de ditado (depende de um destes sintetizadores de fala: %s)" -#. Set main labels (for translation) -#. -#: ../src/main.c:435 ../src/keyboard.c:1291 +#: ../src/main.c:364 ../src/keyboard.c:1291 msgid "Introduction" msgstr "Introdução" -#: ../src/main.c:438 ../src/top10.c:109 +#: ../src/main.c:367 ../src/top10.c:109 msgid "Basic course" msgstr "Curso básico" -#: ../src/main.c:441 ../src/top10.c:112 +#: ../src/main.c:370 ../src/top10.c:112 msgid "Adaptability" msgstr "Adaptabilidade" -#: ../src/main.c:444 ../src/callbacks.c:1310 ../src/top10.c:89 +#: ../src/main.c:373 ../src/callbacks.c:1226 ../src/top10.c:89 #: ../src/top10.c:115 msgid "Speed" msgstr "Rapidez" -#: ../src/main.c:447 ../src/callbacks.c:1333 ../src/top10.c:91 +#: ../src/main.c:376 ../src/callbacks.c:1249 ../src/top10.c:91 #: ../src/top10.c:118 msgid "Fluidity" msgstr "Fluidez" -#: ../src/callbacks.c:468 ../src/tutor.c:391 +#: ../src/callbacks.c:407 ../src/tutor.c:515 msgid "Keys:" msgstr "Teclas:" -#: ../src/callbacks.c:858 ../src/callbacks.c:874 +#: ../src/callbacks.c:774 ../src/callbacks.c:790 msgid "Connecting..." msgstr "Conectando..." -#: ../src/callbacks.c:1145 +#: ../src/callbacks.c:1061 msgid "Overwrite user layout" msgstr "Sobreescrever o arranjo do usuário" -#: ../src/callbacks.c:1147 +#: ../src/callbacks.c:1063 msgid "This will OVERWRITE an existent keyboard layout." msgstr "Atenção! Isso irá SOBREESCREVER um arranjo de teclado existente." -#: ../src/callbacks.c:1154 +#: ../src/callbacks.c:1070 msgid "Remove user layout" msgstr "Remover arranjo do usuário" -#: ../src/callbacks.c:1156 +#: ../src/callbacks.c:1072 msgid "This will REMOVE an existent keyboard layout." msgstr "Isso irá REMOVER um arranjo de teclado existente." -#: ../src/callbacks.c:1163 +#: ../src/callbacks.c:1079 msgid "Reset progress data" msgstr "Zerar dados de progresso" -#: ../src/callbacks.c:1164 +#: ../src/callbacks.c:1080 msgid "This will DELETE all the progress data shown in the charts." msgstr "Isto irá APAGAR todos os dados de progresso dos gráficos." -#: ../src/callbacks.c:1307 ../src/top10.c:87 +#: ../src/callbacks.c:1223 ../src/top10.c:87 msgid "Accuracy" msgstr "Exatidão" -#: ../src/callbacks.c:1310 ../src/tutor.c:1160 +#: ../src/callbacks.c:1226 ../src/tutor.c:1288 msgid "(WPM)" msgstr "(PPM)" -#: ../src/callbacks.c:1321 +#: ../src/callbacks.c:1237 msgid "Errors" msgstr "Erros" -#: ../src/callbacks.c:1324 +#: ../src/callbacks.c:1240 msgid "Touch times (s)" msgstr "Tempos de toque (s)" -#: ../src/callbacks.c:1336 ../src/tutor.c:1187 ../src/top10.c:69 +#: ../src/callbacks.c:1252 ../src/tutor.c:1315 ../src/top10.c:69 msgid "Score" msgstr "Pontuação" #. Translators: your language code (first 2 letters of your po-file) -#: ../src/translation.c:423 ../src/translation.c:489 ../src/tutor.c:1597 +#: ../src/translation.c:485 ../src/tutor.c:1725 msgid "en" msgstr "pt" -#: ../src/translation.c:576 +#: ../src/translation.c:572 msgid "" "The basic course focuses on having you read the characters presented to you " "on screen and typing the corresponding keys. Remember to keep your hands " @@ -576,7 +577,7 @@ "então pressionar as teclas correspondentes. Lembre-se da correta colocação " "dos dedos na posição de descanso sobre o teclado." -#: ../src/translation.c:580 +#: ../src/translation.c:576 msgid "" "The key set used in each series will be shown in the above message line. The " "[Space], [Shift] and [Enter] keys may not show up there but are used very " @@ -586,7 +587,7 @@ "acima. Algumas teclas, espaço, elevação ('Shift') e retorno ('Enter'), podem " "não aparecer lá, mas sabe-se que elas são usadas frequentemente." -#: ../src/translation.c:583 +#: ../src/translation.c:579 msgid "" "The message line below follows and echoes your key presses. If required, it " "changes and displays instructions for actions required from you." @@ -594,7 +595,7 @@ "A linha de mensagens abaixo copia e ecoa seus toques. Se necessário, ela " "mudará e dará alguma instrução sobre uma ação requerida de você." -#: ../src/translation.c:587 +#: ../src/translation.c:583 msgid "" "Here you may practice and improve your memorization of all keys. There will " "be sentences presented with nonsense words which mix some numbers and " @@ -604,7 +605,7 @@ "teclas. Serão apresentadas frases com palavras sem nenhum sentido, " "misturando um pouco de números e símbolos." -#: ../src/translation.c:590 +#: ../src/translation.c:586 msgid "" "In order to keep the lesson contents language and keyboard independent, " "accented letter combinations will probably not appear. For real word " @@ -614,7 +615,7 @@ "em relação ao idioma e ao arranjo do teclado. Para treinar frases com " "palavras reais, use a 4ª opção do menu principal (sobre fluidez)." -#: ../src/translation.c:594 +#: ../src/translation.c:590 msgid "" "After each exercise there will be a brief statistics panel reviewing your " "performance along with some relevant comments." @@ -622,7 +623,7 @@ "Ao final de cada exercício é mostrada uma pequena estatística sobre seu " "desempenho, junto com alguns comentários relevantes." -#: ../src/translation.c:598 +#: ../src/translation.c:594 msgid "" "This exercise is very similar to the second one, for adaptability. The " "difference is that here you'll type real words." @@ -630,7 +631,7 @@ "Este exercício é muito parecido com o segundo, para adaptabilidade. A " "diferença é: aqui você digitará palavras reais da sua própria língua. " -#: ../src/translation.c:601 +#: ../src/translation.c:597 msgid "" "The default language is the actual one of the interface. But you may select " "any other texts with words you would like to use. Press the 'Other' option " @@ -640,7 +641,7 @@ "pode selecionar quaisquer outros textos com palavras que gostaria de usar. " "Pressione a opção 'Outros' acima e adicione arquivos contendo esses textos." -#: ../src/translation.c:605 +#: ../src/translation.c:601 msgid "" "With this exercise the focus is on speed. So, you are supposed to type " "really fast and I will only flatter you when you deserve it!" @@ -648,7 +649,7 @@ "Neste exercício eu estarei de olho na velocidade. Então, você terá que " "digitar realmente rápido. Só vou elogiar se for com sinceridade." -#: ../src/translation.c:609 +#: ../src/translation.c:605 msgid "" "We will now use complete sentences and paragraphs which make logical sense. " "This may distract you while you type if you try to understand what you are " @@ -661,7 +662,7 @@ "anteriores, supõe-se que não terá dificuldades quanto a isto, pois deve ter " "se acostumado a digitar sem interpretar e analisar." -#: ../src/translation.c:613 +#: ../src/translation.c:609 msgid "" "We do not mean to imply that the typists must behave like a robot, without " "understanding what they type. We do aim to develop the skill of typing, " @@ -677,8 +678,7 @@ "implicará mais em preocupação nenhuma: toda a sua atenção poderá se voltar " "ao significado do texto mesmo." -#. English typo: minimun -> minimum -#: ../src/translation.c:618 +#: ../src/translation.c:613 msgid "" "These exercises are longer. Each exercise consists of three paragraphs and " "the emphasis is placed on correctness and rhythm, with a minimum speed " @@ -691,7 +691,6 @@ "corrigir os erros cometidos. Ou seja, só serão aceitos textos digitados sem " "nenhum erro." -#. English typo: recomendations -> recommendations #: ../src/keyboard.c:1094 msgid "" "Correct positioning of the hands and fingers is very important to efficient " @@ -793,13 +792,11 @@ msgid "Step %i" msgstr "Passo %i" -#. Recommendations -#: ../src/keyboard.c:1140 +#: ../src/keyboard.c:1142 msgid "To position the hands" msgstr "Para posicionar as mãos" -#. Final words -#: ../src/keyboard.c:1225 +#: ../src/keyboard.c:1227 msgid "Go ahead!" msgstr "Vai em frente!" @@ -839,23 +836,23 @@ msgid "Press and edit me" msgstr "Pressione-me e edite" -#: ../src/tutor.c:176 +#: ../src/tutor.c:300 msgid "Lesson:" msgstr "Lição:" -#: ../src/tutor.c:186 +#: ../src/tutor.c:310 msgid "Paragraphs:" msgstr "Parágrafos:" -#: ../src/tutor.c:219 +#: ../src/tutor.c:343 msgid "Klavaro - Basic Course" msgstr "Klavaro - Curso Básico" -#: ../src/tutor.c:224 +#: ../src/tutor.c:348 msgid "Klavaro - Adaptability" msgstr "Klavaro - Adaptabilidade" -#: ../src/tutor.c:227 +#: ../src/tutor.c:351 msgid "" "Adaptability exercises: automating the fingers responses, typing over all " "the keyboard." @@ -863,44 +860,44 @@ "Exercícios do adaptabilidade: exercitando a resposta dos dedos ao digitar " "sobre todo o teclado." -#: ../src/tutor.c:232 +#: ../src/tutor.c:356 msgid "Klavaro - Velocity" msgstr "Klavaro - Velocidade" -#: ../src/tutor.c:233 +#: ../src/tutor.c:357 msgid "Velocity exercises: accelerate typing real words." msgstr "Exercícios de velocidade: acelere a digitação de palavras reais." -#: ../src/tutor.c:237 +#: ../src/tutor.c:361 msgid "Klavaro - Fluidness" msgstr "Klavaro - Fluidez" -#: ../src/tutor.c:239 +#: ../src/tutor.c:363 msgid "Fluidness exercises: accuracy typing good sense paragraphs." msgstr "" "Exercícios de fluidez: exatidão digitando parágrafos que fazem sentido." -#: ../src/tutor.c:301 +#: ../src/tutor.c:425 msgid "End of exercise. Press [Enter] to start another." msgstr "Fim do exercício. Pressione [Enter] para começar outro." -#: ../src/tutor.c:329 +#: ../src/tutor.c:453 msgid "Learning the key positions." msgstr "Aprendendo a posição das teclas." -#: ../src/tutor.c:332 +#: ../src/tutor.c:456 msgid "Press any key to start the exercise. " msgstr "Pressione qualquer tecla para começar o exercício. " -#: ../src/tutor.c:440 ../src/tutor.c:443 +#: ../src/tutor.c:567 ../src/tutor.c:570 msgid "Start typing when you are ready. " msgstr "Comece a digitar quando estiver pronto." -#: ../src/tutor.c:441 +#: ../src/tutor.c:568 msgid "Use backspace to correct errors." msgstr "Use a tecla de retrocesso para corrigir erros." -#: ../src/tutor.c:885 +#: ../src/tutor.c:1012 #, c-format msgid "" "ps.: logging not performed for this session: the number of typed characters " @@ -909,104 +906,102 @@ "obs.: essa sessão não foi registrada: o número de caracteres digitados (%i) " "deveria ser maior que %i." -#: ../src/tutor.c:1027 +#: ../src/tutor.c:1154 msgid "ps.: you have entered the Top 10 list, great!" msgstr "obs.: você foi classificado entre os 10 mais, parabéns!" -#: ../src/tutor.c:1039 +#: ../src/tutor.c:1166 msgid "" "ps.: the text you just typed doesn't seem to be similar to ordinary texts in " "the language currently selected: we can't account for it in the 'Top 10' " "contest." msgstr "" "obs.: o texto que você acabou de digitar não parece similar a textos comuns " -"em português: não podemos incluir essa sessão na competição dos \"10 Mais\"." +"do idioma selecionado atualmente: não podemos incluir essa sessão na " +"competição dos \"10 Mais\"." -#. Begin the accuracy -#: ../src/tutor.c:1087 +#: ../src/tutor.c:1215 msgid "STATISTICS" msgstr "ESTATÍSTICAS" -#: ../src/tutor.c:1088 +#: ../src/tutor.c:1216 msgid "Elapsed time:" msgstr "Tempo decorrido:" -#: ../src/tutor.c:1089 +#: ../src/tutor.c:1217 msgid "minute and" msgid_plural "minutes and" msgstr[0] "minuto e" msgstr[1] "minutos e" -#: ../src/tutor.c:1090 +#: ../src/tutor.c:1218 msgid "second" msgid_plural "seconds" msgstr[0] "segundo" msgstr[1] "segundos" -#: ../src/tutor.c:1091 +#: ../src/tutor.c:1219 msgid "Error ratio:" msgstr "Taxa de erros:" -#: ../src/tutor.c:1091 +#: ../src/tutor.c:1219 msgid "Accuracy:" msgstr "Exatidão:" -#: ../src/tutor.c:1112 ../src/tutor.c:1137 ../src/tutor.c:1160 -#: ../src/tutor.c:1186 +#: ../src/tutor.c:1240 ../src/tutor.c:1265 ../src/tutor.c:1288 +#: ../src/tutor.c:1314 msgid "Goal:" msgstr "Meta:" -#: ../src/tutor.c:1119 +#: ../src/tutor.c:1247 msgid "Characters per second:" msgstr "Caracteres por segundo:" -#: ../src/tutor.c:1137 +#: ../src/tutor.c:1265 msgid "(CPS)" msgstr "(CPS)" -#: ../src/tutor.c:1142 +#: ../src/tutor.c:1270 msgid "Words per minute:" msgstr "Palavras por minuto:" -#: ../src/tutor.c:1167 +#: ../src/tutor.c:1295 msgid "Fluidness:" msgstr "Fluidez:" -#: ../src/tutor.c:1194 +#: ../src/tutor.c:1322 msgid "Comments:" msgstr "Comentários:" -#: ../src/tutor.c:1676 +#: ../src/tutor.c:1804 msgid "space" msgstr "espaço" #. Translators: the name of letter Y -#: ../src/tutor.c:1681 +#: ../src/tutor.c:1809 msgid "wye" msgstr "ípsilon" #. Translators: the name of the Return key -#: ../src/tutor.c:1685 +#: ../src/tutor.c:1813 msgid "enter" msgstr "enter" -#: ../src/tutor.c:1691 +#: ../src/tutor.c:1819 msgid "apostrophe" msgstr "apóstrofo" #. Translators: double quote symbol: " -#: ../src/tutor.c:1695 +#: ../src/tutor.c:1823 msgid "quote" msgstr "aspas" #. Translators: ampersand symbol: & -#: ../src/tutor.c:1699 +#: ../src/tutor.c:1827 msgid "ampersand" msgstr "ampersande" -#. Error frequencies or touch times -#. -#: ../src/plot.c:308 +#: ../src/plot.c:305 msgid "Character" msgstr "Caractere" @@ -1014,11 +1009,11 @@ msgid "Date & Time" msgstr "Data & Hora" -#: ../src/basic.c:331 +#: ../src/basic.c:326 msgid "Positions of keys seems to be learned!" msgstr "Parece que a posição das teclas foi aprendida!" -#: ../src/basic.c:332 +#: ../src/basic.c:327 msgid "" " Congratulations!\n" " You have accomplished the entire basic course.\n" @@ -1030,7 +1025,7 @@ " Vá para o próximo tipo de exercício: adaptabilidade.\n" " Lá você vai praticar principalmente a exatidão.\n" -#: ../src/basic.c:338 +#: ../src/basic.c:333 msgid "" " All right, now you got it!\n" " Go to the next lesson.\n" @@ -1038,34 +1033,36 @@ " Tudo bem, agora você conseguiu!\n" " Passe para a próxima lição.\n" -#: ../src/adaptability.c:217 +#: ../src/adaptability.c:213 +#, c-format msgid "" -" Your accuracy rate is below 90%...\n" +" Your accuracy rate is below %.0f%%...\n" " Could you please try again to improve it?\n" msgstr "" -" Sua taxa de acertos está abaixo de 90%...\n" +" Sua taxa de acertos está abaixo de %.0f%%...\n" " Você poderia novamente tentar melhorá-la?\n" -#: ../src/adaptability.c:222 +#: ../src/adaptability.c:216 +#, c-format msgid "" " You are doing well. But...\n" -" Could you make the accuracy reach 95%?\n" +" Could you make the accuracy reach %.0f%%?\n" msgstr "" " Você está indo bem. Mas... \n" -" Poderia fazer a exatidão alcançar 95 %?\n" +" Poderia fazer a exatidão alcançar %.0f%%?\n" -#: ../src/adaptability.c:225 +#: ../src/adaptability.c:219 #, c-format msgid "" " You are almost there, but your accuracy rate is still below %.0f%%.\n" -" Try a few more times, or maybe you're getting upset, so go to other kind of " -"exercise.\n" +" Try a few more times, or maybe you're getting upset, so go to another kind " +"of exercise.\n" msgstr "" " Você está quase lá, mas sua taxa de acertos ainda está abaixo de %.0f%%.\n" " Tente algumas vezes mais, ou talvez você esteja se cansando: neste caso, vá " -"para outro tipo de exercício.\n" +"para algum outro tipo de exercício.\n" -#: ../src/adaptability.c:232 +#: ../src/adaptability.c:226 #, c-format msgid "" " Very good!\n" @@ -1078,11 +1075,11 @@ " Agora é hora de aumentar sua velocidade.\n" " Vá para o 3º exercício no menu principal.\n" -#: ../src/velocity.c:313 ../src/fluidness.c:435 +#: ../src/velocity.c:312 ../src/fluidness.c:435 msgid "Pasted_or_dropped" msgstr "Colado_ou_arrastado" -#: ../src/velocity.c:432 +#: ../src/velocity.c:423 msgid "" " You are just beginning.\n" " Be patient, try it again every day, rest and don't worry so much:\n" @@ -1092,31 +1089,34 @@ " Tenha paciência, tente de novo todo dia, descanse e não se preocupe muito:\n" " persistência e prática farão sua velocidade aumentar.\n" -#: ../src/velocity.c:436 +#: ../src/velocity.c:427 +#, c-format msgid "" " Still away from the highway. You can make better...\n" -" Try at least 20 WPM.\n" +" Try to reach at least %.0f WPM.\n" msgstr "" -" Ainda longe da estrada. Você pode fazer melhor...\n" -" Tente ao menos 20 PPM.\n" +" Ainda longe da rodovia. Você pode fazer melhor...\n" +" Tente ao menos %.0f PPM.\n" -#: ../src/velocity.c:439 +#: ../src/velocity.c:430 +#, c-format msgid "" " You are doing well, but need to go faster.\n" -" And don't forget the accuracy. Try to get 30 WPM.\n" +" And don't forget the accuracy. Try to get %.0f WPM.\n" msgstr "" " Você está se saindo bem, mas precisa ir mais rápido.\n" -" E não se esqueça da exatidão. Tente obter 30 PPM.\n" +" E não se esqueça da exatidão. Tente obter %.0f PPM.\n" -#: ../src/velocity.c:443 +#: ../src/velocity.c:433 +#, c-format msgid "" " Fine. Now you need to start running.\n" -" Can you reach 40 WPM?\n" +" Can you reach %.0f WPM?\n" msgstr "" -" Bem. Agora você precisa começar a correr.\n" -" Você pode alcançar 40 PPM?\n" +" Bom. Agora você precisa começar a correr.\n" +" Você pode alcançar %.0f PPM?\n" -#: ../src/velocity.c:446 +#: ../src/velocity.c:436 #, c-format msgid "" " Very good. You are almost there.\n" @@ -1125,7 +1125,7 @@ " Muito bom. Você está quase lá.\n" " Será que pode alcançar finalmente os %.0f PPM?\n" -#: ../src/velocity.c:451 +#: ../src/velocity.c:439 msgid "" " Excellent. For this course, that is enough.\n" " Try now the fluidness exercises, OK?\n" @@ -1133,39 +1133,43 @@ " Excelente. Para este curso, já está bom.\n" " Tente agora os exercícios de fluidez, certo?\n" -#: ../src/velocity.c:455 +#: ../src/velocity.c:442 +#, c-format msgid "" -" Fast! Are you training for a competition?\n" -" So, try to get 70 WPM!\n" +" Fast! Are you a professional?\n" +" So, try to get %.0f WPM!\n" msgstr "" -" Que rápido! Você está treinando para uma competição?\n" -" Então, tente chegar aos 70 PPM!\n" +" Que rápido! Você é profissional?\n" +" Então, tente chegar aos %.0f PPM!\n" -#: ../src/velocity.c:458 -msgid "" -" Top of \"qwerty\". Now it's time to change to the Dvorak mode.\n" -" Are you afraid of reaching 80 WPM?\n" +#. Translators: Speed Racer is a reference to a Japanese anime franchise +#. about automobile racing, also known as Mach GoGoGo. +#: ../src/velocity.c:447 +#, c-format +msgid " Ranking good, Speed Racer! Are you afraid of reaching %.0f WPM?\n" msgstr "" -" Ápice do \"qwerty\". Agora é hora de mudar para o modo Dvorak.\n" -" Você tem medo de alcançar 80 PPM?\n" +"Boa classificação, Speed Racer! Você não teria medo de atingir %.0f PPM?\n" -#: ../src/velocity.c:462 +#. Translators: feel free to change the reference to that martial art, if you find another good analogy. +#: ../src/velocity.c:451 +#, c-format msgid "" -" Dvorak mode dominated!\n" -" Can you fly at 90 WPM?\n" +" Kunf-fu mastering!\n" +" Can you fly at %.0f WPM?\n" msgstr "" -" Dvorak está dominado!\n" -" Você pode voar a 90 PPM?\n" +" Mestre do Kung-Fu!\n" +" Você poderia voar a %.0f PPM?\n" -#: ../src/velocity.c:466 +#. Translators: Dvorak here means that infamous ergonomic keyboard layout. +#: ../src/velocity.c:454 msgid "" " Dvorak master!\n" " I have no words to express my admiration!\n" msgstr "" -" Mestre no Dvorak!\n" +" Mestre do teclado Dvorak!\n" " Eu não tenho palavras para expressar minha admiração!\n" -#: ../src/fluidness.c:545 +#: ../src/fluidness.c:538 #, c-format msgid "" " You type accurately but not so fast.\n" @@ -1174,7 +1178,7 @@ " Você digita bem, mas não tão rápido.\n" " Você pode alcançar %.0f PPM?\n" -#: ../src/fluidness.c:548 +#: ../src/fluidness.c:541 #, c-format msgid "" " Your rhythm is not so constant. Calm down.\n" @@ -1183,7 +1187,7 @@ " Seu ritmo não está muito constante. Vá com calma.\n" " Por hora, tente fazer a fluidez ficar maior que %i%%.\n" -#: ../src/fluidness.c:551 +#: ../src/fluidness.c:544 #, c-format msgid "" " You are almost getting there. Type more fluently.\n" @@ -1192,7 +1196,7 @@ " Você está quase chegando lá. Digite com mais fluidez.\n" " Eu quero uma fluidez maior que %.0f%%.\n" -#: ../src/fluidness.c:554 +#: ../src/fluidness.c:547 msgid "" " Congratulations!\n" " It seems to me that you are a professional.\n" @@ -1204,7 +1208,7 @@ " Você não precisa mais deste programa (de mim).\n" " Espero que tenha gostado. Obrigado e seja feliz!\n" -#: ../src/fluidness.c:559 +#: ../src/fluidness.c:552 msgid "" " How can you type so fast?\n" " You have exceeded all my expectations.\n" @@ -1264,6 +1268,22 @@ msgid "Could not upload/download scores." msgstr "Não foi possível enviar/baixar a pontuação." +#~ msgid "Press here to restart the exercise. Hotkey: [Ctrl R]" +#~ msgstr "Pressione aqui para recomeçar o exercício. Atalho: [Ctrl-R]" + +#~ msgid "" +#~ " Top of \"qwerty\". Now it's time to change to the Dvorak mode.\n" +#~ " Are you afraid of reaching 80 WPM?\n" +#~ msgstr "" +#~ " Ápice do \"qwerty\". Agora é hora de mudar para o modo Dvorak.\n" +#~ " Você tem medo de alcançar 80 PPM?\n" + +#~ msgid "Klavaro" +#~ msgstr "Klavaro" + +#~ msgid "_Font" +#~ msgstr "Fo_nte" + #~ msgid "Default" #~ msgstr "Padrão" diff -Nru klavaro-1.9.9/po/ru.po klavaro-3.00/po/ru.po --- klavaro-1.9.9/po/ru.po 2013-08-15 13:38:51.000000000 +0000 +++ klavaro-3.00/po/ru.po 2014-01-13 23:25:52.000000000 +0000 @@ -7,475 +7,482 @@ msgid "" msgstr "" "Project-Id-Version: klavaro 1.9.5-pre2\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2013-08-15 10:38-0300\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2014-01-13 21:25-0200\n" "PO-Revision-Date: 2012-11-12 22:13+0300\n" "Last-Translator: Pavel Maryanov \n" "Language-Team: Russian \n" -"Language: \n" +"Language: ru\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n" "%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n" -#: ../data/klavaro.desktop.in.h:1 ../data/klavaro.glade.h:59 -msgid "Yet another touch typing tutor" -msgstr "Ещё один клавиатурный тренажёр" - #: ../data/klavaro.glade.h:1 -msgid "Klavaro - Main menu" -msgstr "Klavaro: главное меню" +msgid "About 'Klavaro'" +msgstr "О программе Klavaro" #: ../data/klavaro.glade.h:2 -msgid "Don't be shy about learning the basics!" -msgstr "Не бойтесь начать обучение «с нуля»" +msgid "Yet another touch typing tutor" +msgstr "Ещё один клавиатурный тренажёр" #: ../data/klavaro.glade.h:3 -msgid "Learn how to type correctly" -msgstr "Научитесь печатать правильно" +msgid "Remember always: someone loves you!" +msgstr "Помните: вас кто-то любит" #: ../data/klavaro.glade.h:4 -msgid "Initial training for your fingers." -msgstr "Начальная тренировка для пальцев" +msgid "Change language" +msgstr "Сменить язык" #: ../data/klavaro.glade.h:5 -msgid "First steps with initial training" -msgstr "Первый шаг — начальная тренировка" +msgid "Attention!" +msgstr "Внимание!" #: ../data/klavaro.glade.h:6 -msgid "Memorizing the keyboard practicing random keys exercises." -msgstr "Запоминайте клавиатуру, выполняя упражнения со случайными клавишами" +msgid "Do you confirm?" +msgstr "Продолжить?" #: ../data/klavaro.glade.h:7 -msgid "Practice with random keys" -msgstr "Практика со случайными клавишами" +msgid "_No" +msgstr "_Нет" + +#: ../data/klavaro.glade.h:8 +msgid "_Yes" +msgstr "_Да" -#. English typo: touchs -> touches #: ../data/klavaro.glade.h:9 -msgid "Accelerating the touches practicing random words exercises." -msgstr "Наращивайте скорость, практикуясь в наборе случайных слов" +msgid "Help?" +msgstr "Справка" #: ../data/klavaro.glade.h:10 -msgid "Practice with random words" -msgstr "Практика со случайными словами" +msgid "This is a tip. Now you press this button to return to the main menu." +msgstr "" +"Это всплывающая подсказка. Теперь нажмите эту клавишу для возврата в главное " +"меню." #: ../data/klavaro.glade.h:11 -msgid "Becoming proficient practicing complete paragraphs exercises." -msgstr "Повышайте мастерство, практикуясь в наборе целых абзацев" +msgid "B_ack to menu" +msgstr "_Главное меню" #: ../data/klavaro.glade.h:12 -msgid "Practice with complete texts" -msgstr "Практика с объёмными текстами" +msgid "" +"The main menu of the application is very straightforward. Just select the " +"type of exercise you wish to take. Do not worry about clicking any button on " +"the screen. The buttons will never hurt you!" +msgstr "" +"Главное меню приложения очень простое. Просто выберите в нём нужный тип " +"упражнения. Не бойтесь нажимать кнопки — ничего страшного не произойдёт." #: ../data/klavaro.glade.h:13 msgid "" -"Keyboard layout for modules 1 and 2. Also used informatively in the " -"fluidness contest." +"Also the controls have tips which will appear if you hover over them with " +"your mouse. These tips can come in very handy. To see how these tips work, " +"position your mouse over the button below, and without clicking, wait for " +"the tip to appear..." msgstr "" -"Раскладка клавиатуры для модулей 1 и 2. Используется также в обучении " -"плавности набора." +"У многих элементов управления есть всплывающие подсказки, которые могут " +"пригодиться на начальном этапе. Чтобы увидеть, как работает эта функция, " +"наведите курсор мыши на кнопку ниже и не нажимайте её, пока не появится " +"сообщение..." #: ../data/klavaro.glade.h:14 -msgid "_Keyboard:" -msgstr "_Клавиатура:" +msgid "Klavaro - Select file" +msgstr "Klavaro: выбор файла" #: ../data/klavaro.glade.h:15 -msgid "Language for modules 3 and 4." -msgstr "Язык для модулей 3 и 4" +msgid "_Cancel" +msgstr "_Отменить" #: ../data/klavaro.glade.h:16 -msgid "_Language:" -msgstr "_Язык:" +msgid "_Open" +msgstr "_Открыть" #: ../data/klavaro.glade.h:17 -msgid "Variant" -msgstr "Вариант" +msgid "Re_name:" +msgstr "_Переименовать:" #: ../data/klavaro.glade.h:18 -msgid "Klavaro" -msgstr "Klavaro" +msgid "Rename the selected item." +msgstr "Переименовать выбранный элемент" #: ../data/klavaro.glade.h:19 -msgid "Country / Custom" -msgstr "Выберите свою страну" +msgid "" +"Read a text file and add a copy of it here. The file must be encoded in " +"UTF-8." +msgstr "" +"Прочитать текст из файла и поместить копию сюда. Файл должен быть в " +"кодировке UTF-8." #: ../data/klavaro.glade.h:20 -msgid "Your language here." -msgstr "Выберите свой язык" +msgid "_Open text file" +msgstr "_Открыть текстовый файл" #: ../data/klavaro.glade.h:21 -msgid "Speech" -msgstr "Речь" +msgid "Paste text that was copied to the clipboard." +msgstr "Вставить текст, скопированный в буфер обмена" #: ../data/klavaro.glade.h:22 -msgid "Little tip about this program." -msgstr "Небольшой совет по использованию программы" +msgid "_Paste from clipboard" +msgstr "_Вставить из буфера обмена" #: ../data/klavaro.glade.h:23 -msgid "_Help" -msgstr "_Справка" +msgid "Remove the selected item." +msgstr "Удалить выделенный элемент" #: ../data/klavaro.glade.h:24 -msgid "General information about the program." -msgstr "Общие сведения об этой программе" +msgid "_Remove copied file" +msgstr "_Удалить скопированный файл" #: ../data/klavaro.glade.h:25 -msgid "_About..." -msgstr "О прогр_амме..." +msgid "Apply the selected item to create an exercise." +msgstr "Создать упражнение на основе выбранного элемента" #: ../data/klavaro.glade.h:26 -msgid "Exit the application immediately." -msgstr "Закрыть приложение" +msgid "_Apply" +msgstr "_Применить" #: ../data/klavaro.glade.h:27 -msgid "_Close" -msgstr "_Закрыть" +msgid "Close this window." +msgstr "Закрыть это окно" #: ../data/klavaro.glade.h:28 -msgid "Load other exercises/lessons" -msgstr "Загрузить другой курс/упражнение" +msgid "_Close" +msgstr "_Закрыть" #: ../data/klavaro.glade.h:29 -msgid "_Other texts" -msgstr "_Другой текст" +msgid "Country / Custom" +msgstr "Выберите свою страну" #: ../data/klavaro.glade.h:30 -msgid "_Lesson:" -msgstr "_Урок:" +msgid "Variant" +msgstr "Вариант" #: ../data/klavaro.glade.h:31 -msgid "Edit the character set to be used in this lesson." -msgstr "Редактировать набор символов для использования в этом уроке" +msgid "Remove the selected custom layout." +msgstr "Удалить выбранную раскладку" #: ../data/klavaro.glade.h:32 -msgid "Edit the character set to be used in lessons 44 through 50." -msgstr "Редактировать набор символов для использования в уроках с 44 по 50" +msgid "_Remove" +msgstr "_Удалить" #: ../data/klavaro.glade.h:33 -msgid "This is a specific exercise, adjusted to your error profile." -msgstr "Это специальное упражнение, основанное на вашем профиле ошибок" +msgid "" +"Toggles the shift effect on the keys. Alternates between the upper and lower " +"characters of the keys." +msgstr "" +"Нажатие клавиши [SHIFT] переключает ввод между верхними и нижними символами " +"клавиш" -#: ../data/klavaro.glade.h:34 ../src/tutor.c:252 -msgid "Drag and drop text here to practice with it." -msgstr "Перетащите сюда текст, чтобы попрактиковаться с ним" +#: ../data/klavaro.glade.h:34 +msgid "SPACE BAR" +msgstr "[ПРОБЕЛ]" -#: ../data/klavaro.glade.h:35 -msgid "Press here to restart the exercise. Hotkey: [Ctrl R]" -msgstr "Нажмите здесь для перезапуска упражнения. Быстрый вызов: [CTRL+R]" +#: ../data/klavaro.glade.h:35 ../src/keyboard.c:1630 +msgid "thumbs" +msgstr "большие пальцы" #: ../data/klavaro.glade.h:36 -msgid "Show the virtual keyboard and the relation between fingers and keys." -msgstr "Показать виртуальную клавиатуру и связь пальцев и клавиш" +msgid "Ctrl" +msgstr "[CTRL]" #: ../data/klavaro.glade.h:37 -msgid "_Keyboard" -msgstr "_Клавиатура" +msgid "Caps" +msgstr "[CAPS]" #: ../data/klavaro.glade.h:38 -msgid "Select the font to be used in the exercise window." -msgstr "Выбор шрифта для упражнения" +msgid "S_ave as:" +msgstr "Сохранить _как:" #: ../data/klavaro.glade.h:39 -msgid "_Font" -msgstr "_Шрифт" +msgid "Show previous screen." +msgstr "Предыдущий шаг" #: ../data/klavaro.glade.h:40 -msgid "Keep this checked if you want to get those nice beeps." -msgstr "Если эта кнопка не нажата, звуки будут отключены" +msgid "_Previous step" +msgstr "_Назад" #: ../data/klavaro.glade.h:41 -msgid "_Beep" -msgstr "_Сигнал" +msgid "Show next screen." +msgstr "Следующий шаг" #: ../data/klavaro.glade.h:42 -msgid "Co_urse information" -msgstr "Сведения о к_урсе" +msgid "_Next step" +msgstr "_Вперёд" #: ../data/klavaro.glade.h:43 -msgid "Charts showing the learning progress along the exercises." -msgstr "Диаграммы со статистикой обучения в упражнениях" +msgid "Return without any modification." +msgstr "Закрыть без изменений" #: ../data/klavaro.glade.h:44 -msgid "_Progress" -msgstr "_Статистика" +msgid "Save the current keyboard layout with the name specified above." +msgstr "Сохранить текущую раскладку под ранее заданным именем" #: ../data/klavaro.glade.h:45 -msgid "Show local and external scores from other users." -msgstr "Показать локальные и внешние очки других пользователей" +msgid "_Save and use" +msgstr "_Сохранить и использовать" #: ../data/klavaro.glade.h:46 -msgid "_Top 10" -msgstr "_Десятка лучших" +msgid "" +"If you like those beautiful hands, click here to close this window keeping " +"them." +msgstr "" +"Если вам понравились эти руки, нажмите эту кнопку, чтобы закрыть окно и " +"оставить руки" #: ../data/klavaro.glade.h:47 -msgid "Return to the main menu." -msgstr "Возврат в главное меню" +msgid "_Keep hands" +msgstr "_Оставить руки" #: ../data/klavaro.glade.h:48 -msgid "B_ack to menu" -msgstr "_Главное меню" +msgid "Klavaro - Main menu" +msgstr "Klavaro: главное меню" #: ../data/klavaro.glade.h:49 -msgid "Close this window." -msgstr "Закрыть это окно" +msgid "Don't be shy about learning the basics!" +msgstr "Не бойтесь начать обучение «с нуля»" #: ../data/klavaro.glade.h:50 -msgid "Font definition" -msgstr "Выбор шрифта" +msgid "Learn how to type correctly" +msgstr "Научитесь печатать правильно" #: ../data/klavaro.glade.h:51 -msgid "Top 10" -msgstr "Десятка лучших" +msgid "Initial training for your fingers." +msgstr "Начальная тренировка для пальцев" #: ../data/klavaro.glade.h:52 -msgid "Show extra information" -msgstr "Показать доп. сведения" +msgid "First steps with initial training" +msgstr "Первый шаг — начальная тренировка" #: ../data/klavaro.glade.h:53 -msgid "Hide extra information" -msgstr "Скрыть доп. сведения" +msgid "Memorizing the keyboard practicing random keys exercises." +msgstr "Запоминайте клавиатуру, выполняя упражнения со случайными клавишами" #: ../data/klavaro.glade.h:54 -msgid "Publish to the web your local scores." -msgstr "Опубликовать свой результат в Интернете" +msgid "Practice with random keys" +msgstr "Практика со случайными клавишами" #: ../data/klavaro.glade.h:55 -msgid "_Participate" -msgstr "_Участвовать" +msgid "Accelerating the touches practicing random words exercises." +msgstr "Наращивайте скорость, практикуясь в наборе случайных слов" #: ../data/klavaro.glade.h:56 -msgid "Download from the web the most up to date ranking." -msgstr "Загрузить из Интернета обновлённые данные" +msgid "Practice with random words" +msgstr "Практика со случайными словами" #: ../data/klavaro.glade.h:57 -msgid "_Update" -msgstr "_Обновить" +msgid "Becoming proficient practicing complete paragraphs exercises." +msgstr "Повышайте мастерство, практикуясь в наборе целых абзацев" #: ../data/klavaro.glade.h:58 -msgid "About 'Klavaro'" -msgstr "О программе Klavaro" +msgid "Practice with complete texts" +msgstr "Практика с объёмными текстами" + +#: ../data/klavaro.glade.h:59 +msgid "" +"Keyboard layout for modules 1 and 2. Also used informatively in the " +"fluidness contest." +msgstr "" +"Раскладка клавиатуры для модулей 1 и 2. Используется также в обучении " +"плавности набора." #: ../data/klavaro.glade.h:60 -msgid "Remember always: someone loves you!" -msgstr "Помните: вас кто-то любит" +msgid "_Keyboard:" +msgstr "_Клавиатура:" #: ../data/klavaro.glade.h:61 -msgid "Remove the selected custom layout." -msgstr "Удалить выбранную раскладку" +msgid "Language for modules 3 and 4." +msgstr "Язык для модулей 3 и 4" #: ../data/klavaro.glade.h:62 -msgid "_Remove" -msgstr "_Удалить" +msgid "_Language:" +msgstr "_Язык:" #: ../data/klavaro.glade.h:63 -msgid "" -"Toggles the shift effect on the keys. Alternates between the upper and lower " -"characters of the keys." -msgstr "" -"Нажатие клавиши [SHIFT] переключает ввод между верхними и нижними символами " -"клавиш" +msgid "Speech" +msgstr "Речь" #: ../data/klavaro.glade.h:64 -msgid "SPACE BAR" -msgstr "[ПРОБЕЛ]" +msgid "Your language here." +msgstr "Выберите свой язык" -#: ../data/klavaro.glade.h:65 ../src/keyboard.c:1630 -msgid "thumbs" -msgstr "большие пальцы" +#: ../data/klavaro.glade.h:65 +msgid "Little tip about this program." +msgstr "Небольшой совет по использованию программы" #: ../data/klavaro.glade.h:66 -msgid "Ctrl" -msgstr "[CTRL]" +msgid "_Help" +msgstr "_Справка" #: ../data/klavaro.glade.h:67 -msgid "Caps" -msgstr "[CAPS]" +msgid "General information about the program." +msgstr "Общие сведения об этой программе" #: ../data/klavaro.glade.h:68 -msgid "S_ave as:" -msgstr "Сохранить _как:" +msgid "_About..." +msgstr "О прогр_амме..." #: ../data/klavaro.glade.h:69 -msgid "Show previous screen." -msgstr "Предыдущий шаг" +msgid "Exit the application immediately." +msgstr "Закрыть приложение" #: ../data/klavaro.glade.h:70 -msgid "_Previous step" -msgstr "_Назад" +msgid "Klavaro - Progress" +msgstr "Klavaro: статистика" #: ../data/klavaro.glade.h:71 -msgid "Show next screen." -msgstr "Следующий шаг" +msgid "_Lesson:" +msgstr "_Урок:" #: ../data/klavaro.glade.h:72 -msgid "_Next step" -msgstr "_Вперёд" +msgid "Value" +msgstr "Значение" #: ../data/klavaro.glade.h:73 -msgid "Return without any modification." -msgstr "Закрыть без изменений" +msgid "Close this window, returning to the exercise." +msgstr "Закрыть окно и вернуться к упражнению" #: ../data/klavaro.glade.h:74 -msgid "_Cancel" -msgstr "_Отменить" +msgid "Clear all the progress data, for every module." +msgstr "Очистить данные для всех модулей" #: ../data/klavaro.glade.h:75 -msgid "Save the current keyboard layout with the name specified above." -msgstr "Сохранить текущую раскладку под ранее заданным именем" +msgid "_Reset" +msgstr "_Сбросить" #: ../data/klavaro.glade.h:76 -msgid "_Save and use" -msgstr "_Сохранить и использовать" +msgid "Top 10" +msgstr "Десятка лучших" #: ../data/klavaro.glade.h:77 -msgid "" -"If you like those beautiful hands, click here to close this window keeping " -"them." -msgstr "" -"Если вам понравились эти руки, нажмите эту кнопку, чтобы закрыть окно и " -"оставить руки" +#, fuzzy +msgid "Show extra information." +msgstr "Показать доп. сведения" #: ../data/klavaro.glade.h:78 -msgid "_Keep hands" -msgstr "_Оставить руки" +#, fuzzy +msgid "Hide extra information." +msgstr "Скрыть доп. сведения" #: ../data/klavaro.glade.h:79 -msgid "Change language" -msgstr "Сменить язык" +msgid "Publish to the web your local scores." +msgstr "Опубликовать свой результат в Интернете" #: ../data/klavaro.glade.h:80 -msgid "Attention!" -msgstr "Внимание!" +msgid "_Participate" +msgstr "_Участвовать" #: ../data/klavaro.glade.h:81 -msgid "Do you confirm?" -msgstr "Продолжить?" +msgid "Download from the web the most up to date ranking." +msgstr "Загрузить из Интернета обновлённые данные" #: ../data/klavaro.glade.h:82 -msgid "_No" -msgstr "_Нет" +msgid "_Update" +msgstr "_Обновить" #: ../data/klavaro.glade.h:83 -msgid "_Yes" -msgstr "_Да" +msgid "Load other exercises/lessons" +msgstr "Загрузить другой курс/упражнение" #: ../data/klavaro.glade.h:84 -msgid "Re_name:" -msgstr "_Переименовать:" +msgid "_Other texts" +msgstr "_Другой текст" #: ../data/klavaro.glade.h:85 -msgid "Rename the selected item." -msgstr "Переименовать выбранный элемент" +msgid "Edit the character set to be used in this lesson." +msgstr "Редактировать набор символов для использования в этом уроке" #: ../data/klavaro.glade.h:86 -msgid "" -"Read a text file and add a copy of it here. The file must be encoded in " -"UTF-8." -msgstr "" -"Прочитать текст из файла и поместить копию сюда. Файл должен быть в " -"кодировке UTF-8." +msgid "This is a specific exercise, adjusted to your error profile." +msgstr "Это специальное упражнение, основанное на вашем профиле ошибок" #: ../data/klavaro.glade.h:87 -msgid "_Open text file" -msgstr "_Открыть текстовый файл" +#, fuzzy +msgid "" +"Edit the character set to be used in lessons after 43: they are customizable!" +msgstr "Редактировать набор символов для использования в уроках с 44 по 50" -#: ../data/klavaro.glade.h:88 -msgid "Paste text that was copied to the clipboard." -msgstr "Вставить текст, скопированный в буфер обмена" +#: ../data/klavaro.glade.h:88 ../src/tutor.c:376 +msgid "Drag and drop text here to practice with it." +msgstr "Перетащите сюда текст, чтобы попрактиковаться с ним" #: ../data/klavaro.glade.h:89 -msgid "_Paste from clipboard" -msgstr "_Вставить из буфера обмена" +#, fuzzy +msgid "Press here to restart the exercise. Hotkey: [Ctrl-R]" +msgstr "Нажмите здесь для перезапуска упражнения. Быстрый вызов: [CTRL+R]" #: ../data/klavaro.glade.h:90 -msgid "Remove the selected item." -msgstr "Удалить выделенный элемент" +msgid "Show the virtual keyboard and the relation between fingers and keys." +msgstr "Показать виртуальную клавиатуру и связь пальцев и клавиш" #: ../data/klavaro.glade.h:91 -msgid "_Remove copied file" -msgstr "_Удалить скопированный файл" +msgid "_Keyboard" +msgstr "_Клавиатура" #: ../data/klavaro.glade.h:92 -msgid "Apply the selected item to create an exercise." -msgstr "Создать упражнение на основе выбранного элемента" +msgid "Select the font to be used in the exercise window." +msgstr "Выбор шрифта для упражнения" #: ../data/klavaro.glade.h:93 -msgid "_Apply" -msgstr "_Применить" +msgid "Font definition" +msgstr "Выбор шрифта" #: ../data/klavaro.glade.h:94 -msgid "Klavaro - Progress" -msgstr "Klavaro: статистика" +msgid "Keep this checked if you want to get those nice beeps." +msgstr "Если эта кнопка не нажата, звуки будут отключены" #: ../data/klavaro.glade.h:95 -msgid "Value" -msgstr "Значение" +msgid "_Beep" +msgstr "_Сигнал" #: ../data/klavaro.glade.h:96 -msgid "Clear all the progress data, for every module." -msgstr "Очистить данные для всех модулей" +msgid "Co_urse information" +msgstr "Сведения о к_урсе" #: ../data/klavaro.glade.h:97 -msgid "_Reset" -msgstr "_Сбросить" +msgid "Charts showing the learning progress along the exercises." +msgstr "Диаграммы со статистикой обучения в упражнениях" #: ../data/klavaro.glade.h:98 -msgid "Close this window, returning to the exercise." -msgstr "Закрыть окно и вернуться к упражнению" +msgid "_Progress" +msgstr "_Статистика" #: ../data/klavaro.glade.h:99 -msgid "Klavaro - Select file" -msgstr "Klavaro: выбор файла" +msgid "Return to the main menu." +msgstr "Возврат в главное меню" #: ../data/klavaro.glade.h:100 -msgid "_Open" -msgstr "_Открыть" +msgid "Show local and external scores from other users." +msgstr "Показать локальные и внешние очки других пользователей" #: ../data/klavaro.glade.h:101 -msgid "Help?" -msgstr "Справка" - -#: ../data/klavaro.glade.h:102 -msgid "" -"The main menu of the application is very straightforward. Just select the " -"type of exercise you wish to take. Do not worry about clicking any button on " -"the screen. The buttons will never hurt you!" -msgstr "" -"Главное меню приложения очень простое. Просто выберите в нём нужный тип " -"упражнения. Не бойтесь нажимать кнопки — ничего страшного не произойдёт." +msgid "_Top 10" +msgstr "_Десятка лучших" -#: ../data/klavaro.glade.h:103 -msgid "" -"Also the controls have tips which will appear if you hover over them with " -"your mouse. These tips can come in very handy. To see how these tips work, " -"position your mouse over the button below, and without clicking, wait for " -"the tip to appear..." -msgstr "" -"У многих элементов управления есть всплывающие подсказки, которые могут " -"пригодиться на начальном этапе. Чтобы увидеть, как работает эта функция, " -"наведите курсор мыши на кнопку ниже и не нажимайте её, пока не появится " -"сообщение..." +#: ../data/klavaro.desktop.in.h:1 +#, fuzzy +msgid "A very flexible and efficient touch typing tutor." +msgstr "Ещё один клавиатурный тренажёр" -#: ../data/klavaro.glade.h:104 -msgid "This is a tip. Now you press this button to return to the main menu." -msgstr "" -"Это всплывающая подсказка. Теперь нажмите эту клавишу для возврата в главное " -"меню." +#. Translators: these are keywords related to the program. CAI above means Computer Aided Instruction. Feel free to add and/or change the keywords in your language. +#: ../data/klavaro.desktop.in.h:3 +#, fuzzy +msgid "keyboard;typing;tutor;CAI" +msgstr "Клавиатура" -#: ../src/main.c:314 +#: ../src/main.c:242 msgid "(Custom)" msgstr "(другая)" -#: ../src/main.c:315 +#: ../src/main.c:243 msgid "(Edit custom)" msgstr "(изменить другую)" -#: ../src/main.c:316 +#: ../src/main.c:244 msgid "(Default)" msgstr "(по умолчанию)" -#: ../src/main.c:393 +#: ../src/main.c:321 #, c-format msgid "Dictation mode (depends on this speech synthesizer: %s)" msgid_plural "Dictation mode (depends on one of these speech synthesizers: %s)" @@ -483,88 +490,86 @@ msgstr[1] "Режим диктовки (зависит от этих синтезаторов речи: %s)" msgstr[2] "Режим диктовки (зависит от этих синтезаторов речи: %s)" -#. Set main labels (for translation) -#. -#: ../src/main.c:435 ../src/keyboard.c:1291 +#: ../src/main.c:364 ../src/keyboard.c:1291 msgid "Introduction" msgstr "Введение" -#: ../src/main.c:438 ../src/top10.c:109 +#: ../src/main.c:367 ../src/top10.c:109 msgid "Basic course" msgstr "Начальный курс" -#: ../src/main.c:441 ../src/top10.c:112 +#: ../src/main.c:370 ../src/top10.c:112 msgid "Adaptability" msgstr "Адаптивность" -#: ../src/main.c:444 ../src/callbacks.c:1310 ../src/top10.c:89 +#: ../src/main.c:373 ../src/callbacks.c:1226 ../src/top10.c:89 #: ../src/top10.c:115 msgid "Speed" msgstr "Скорость" -#: ../src/main.c:447 ../src/callbacks.c:1333 ../src/top10.c:91 +#: ../src/main.c:376 ../src/callbacks.c:1249 ../src/top10.c:91 #: ../src/top10.c:118 msgid "Fluidity" msgstr "Плавность" -#: ../src/callbacks.c:468 ../src/tutor.c:391 +#: ../src/callbacks.c:407 ../src/tutor.c:515 msgid "Keys:" msgstr "Клавиши:" -#: ../src/callbacks.c:858 ../src/callbacks.c:874 +#: ../src/callbacks.c:774 ../src/callbacks.c:790 msgid "Connecting..." msgstr "Подключение..." -#: ../src/callbacks.c:1145 +#: ../src/callbacks.c:1061 msgid "Overwrite user layout" msgstr "Перезаписать раскладку пользователя" -#: ../src/callbacks.c:1147 +#: ../src/callbacks.c:1063 msgid "This will OVERWRITE an existent keyboard layout." msgstr "При этом существующая раскладка будет ПЕРЕЗАПИСАНА" -#: ../src/callbacks.c:1154 +#: ../src/callbacks.c:1070 msgid "Remove user layout" msgstr "Удалить раскладку пользователя" -#: ../src/callbacks.c:1156 +#: ../src/callbacks.c:1072 msgid "This will REMOVE an existent keyboard layout." msgstr "При этом существующая раскладка будет УДАЛЕНА" -#: ../src/callbacks.c:1163 +#: ../src/callbacks.c:1079 msgid "Reset progress data" msgstr "Сброс данных статистики" -#: ../src/callbacks.c:1164 +#: ../src/callbacks.c:1080 msgid "This will DELETE all the progress data shown in the charts." msgstr "При этом все данные, показанные на диаграммах, будут УНИЧТОЖЕНЫ" -#: ../src/callbacks.c:1307 ../src/top10.c:87 +#: ../src/callbacks.c:1223 ../src/top10.c:87 msgid "Accuracy" msgstr "Точность" -#: ../src/callbacks.c:1310 ../src/tutor.c:1160 +#: ../src/callbacks.c:1226 ../src/tutor.c:1288 msgid "(WPM)" msgstr "(слов/мин)" -#: ../src/callbacks.c:1321 +#: ../src/callbacks.c:1237 msgid "Errors" msgstr "Ошибки" -#: ../src/callbacks.c:1324 +#: ../src/callbacks.c:1240 msgid "Touch times (s)" msgstr "Время нажатия" -#: ../src/callbacks.c:1336 ../src/tutor.c:1187 ../src/top10.c:69 +#: ../src/callbacks.c:1252 ../src/tutor.c:1315 ../src/top10.c:69 msgid "Score" msgstr "Очки" #. Translators: your language code (first 2 letters of your po-file) -#: ../src/translation.c:423 ../src/translation.c:489 ../src/tutor.c:1597 +#: ../src/translation.c:485 ../src/tutor.c:1725 msgid "en" msgstr "ru" -#: ../src/translation.c:576 +#: ../src/translation.c:572 msgid "" "The basic course focuses on having you read the characters presented to you " "on screen and typing the corresponding keys. Remember to keep your hands " @@ -575,7 +580,7 @@ "нажмать соответствующие клавиши. Не забывайте правильно держать руки на " "внутреннем ряду клавиатуры (см. введение в главном меню)." -#: ../src/translation.c:580 +#: ../src/translation.c:576 msgid "" "The key set used in each series will be shown in the above message line. The " "[Space], [Shift] and [Enter] keys may not show up there but are used very " @@ -585,7 +590,7 @@ "сеансе. Клавиши [ПРОБЕЛ], [SHIFT] и [ВВОД] могут не отображаться в этой " "строке, поскольку они используются очень часто." -#: ../src/translation.c:583 +#: ../src/translation.c:579 msgid "" "The message line below follows and echoes your key presses. If required, it " "changes and displays instructions for actions required from you." @@ -594,7 +599,7 @@ "строки будет изменяться, показывая инструкции, которых вам следует " "придерживаться." -#: ../src/translation.c:587 +#: ../src/translation.c:583 msgid "" "Here you may practice and improve your memorization of all keys. There will " "be sentences presented with nonsense words which mix some numbers and " @@ -604,7 +609,7 @@ "клавиш. В упражнении будут представлены предложения из бессмысленных слов, " "представляющих собой смесь из букв и цифр." -#: ../src/translation.c:590 +#: ../src/translation.c:586 msgid "" "In order to keep the lesson contents language and keyboard independent, " "accented letter combinations will probably not appear. For real word " @@ -615,7 +620,7 @@ "предложений из реальных слов используйте четвертый пункт главного меню " "(плавность)." -#: ../src/translation.c:594 +#: ../src/translation.c:590 msgid "" "After each exercise there will be a brief statistics panel reviewing your " "performance along with some relevant comments." @@ -623,7 +628,7 @@ "В конце каждого упражнения будет показана краткая статистика относительно " "вашей производительности с соответствующими комментариями." -#: ../src/translation.c:598 +#: ../src/translation.c:594 msgid "" "This exercise is very similar to the second one, for adaptability. The " "difference is that here you'll type real words." @@ -631,7 +636,7 @@ "Это упражнение очень похоже на второе (адаптация). Разница заключается в " "том, что здесь вы будете набирать реальные слова." -#: ../src/translation.c:601 +#: ../src/translation.c:597 msgid "" "The default language is the actual one of the interface. But you may select " "any other texts with words you would like to use. Press the 'Other' option " @@ -641,7 +646,7 @@ "другой текст с интересующими вас словами. Нажмите кнопку «Другой текст» " "вверху и добавьте файлы с нужным текстом." -#: ../src/translation.c:605 +#: ../src/translation.c:601 msgid "" "With this exercise the focus is on speed. So, you are supposed to type " "really fast and I will only flatter you when you deserve it!" @@ -649,7 +654,7 @@ "В этом упражнении упор делается на скорость. Поэтому, чтобы заслужить " "похвалу, текст нужно набирать как можно быстрее." -#: ../src/translation.c:609 +#: ../src/translation.c:605 msgid "" "We will now use complete sentences and paragraphs which make logical sense. " "This may distract you while you type if you try to understand what you are " @@ -661,7 +666,7 @@ "отвлекать вас во время набора. В предыдущих упражнениях упор делался на " "набор текста без интерпретации и анализа его содержания." -#: ../src/translation.c:613 +#: ../src/translation.c:609 msgid "" "We do not mean to imply that the typists must behave like a robot, without " "understanding what they type. We do aim to develop the skill of typing, " @@ -677,8 +682,7 @@ "минимальной концентрацией. Тогда вы сможете обратить внимание на реальный " "смысл текста." -#. English typo: minimun -> minimum -#: ../src/translation.c:618 +#: ../src/translation.c:613 msgid "" "These exercises are longer. Each exercise consists of three paragraphs and " "the emphasis is placed on correctness and rhythm, with a minimum speed " @@ -690,7 +694,6 @@ "скорости. Здесь необходимо будет исправлять ошибки с помощью клавиши " "[BACKSPACE]. Иными словами, засчитываться будет только текст без ошибок." -#. English typo: recomendations -> recommendations #: ../src/keyboard.c:1094 msgid "" "Correct positioning of the hands and fingers is very important to efficient " @@ -785,13 +788,11 @@ msgid "Step %i" msgstr "Шаг %i" -#. Recommendations -#: ../src/keyboard.c:1140 +#: ../src/keyboard.c:1142 msgid "To position the hands" msgstr "Положение рук" -#. Final words -#: ../src/keyboard.c:1225 +#: ../src/keyboard.c:1227 msgid "Go ahead!" msgstr "Переходите к следующему упражнению" @@ -831,23 +832,23 @@ msgid "Press and edit me" msgstr "Нажми и отредактируй меня" -#: ../src/tutor.c:176 +#: ../src/tutor.c:300 msgid "Lesson:" msgstr "Урок:" -#: ../src/tutor.c:186 +#: ../src/tutor.c:310 msgid "Paragraphs:" msgstr "Абзацы:" -#: ../src/tutor.c:219 +#: ../src/tutor.c:343 msgid "Klavaro - Basic Course" msgstr "Klavaro: начальный курс" -#: ../src/tutor.c:224 +#: ../src/tutor.c:348 msgid "Klavaro - Adaptability" msgstr "Klavaro: адаптивность" -#: ../src/tutor.c:227 +#: ../src/tutor.c:351 msgid "" "Adaptability exercises: automating the fingers responses, typing over all " "the keyboard." @@ -855,45 +856,45 @@ "Упражнения на адаптивность: автоматизация работы пальцев путём набора по " "всей клавиатуре" -#: ../src/tutor.c:232 +#: ../src/tutor.c:356 msgid "Klavaro - Velocity" msgstr "Klavaro: скорость" -#: ../src/tutor.c:233 +#: ../src/tutor.c:357 msgid "Velocity exercises: accelerate typing real words." msgstr "Упражнения на скорость: повышение скорости набора реальных слов" -#: ../src/tutor.c:237 +#: ../src/tutor.c:361 msgid "Klavaro - Fluidness" msgstr "Klavaro: плавность" -#: ../src/tutor.c:239 +#: ../src/tutor.c:363 msgid "Fluidness exercises: accuracy typing good sense paragraphs." msgstr "Упражнения на плавность: повышение точности набора целых абзацев" -#: ../src/tutor.c:301 +#: ../src/tutor.c:425 msgid "End of exercise. Press [Enter] to start another." msgstr "" "Конец упражнения. Нажмите клавишу [ВВОД] для перехода к следующему " "упражнению." -#: ../src/tutor.c:329 +#: ../src/tutor.c:453 msgid "Learning the key positions." msgstr "Изучение размещения клавиш" -#: ../src/tutor.c:332 +#: ../src/tutor.c:456 msgid "Press any key to start the exercise. " msgstr "Нажмите любую клавишу для запуска упражнения" -#: ../src/tutor.c:440 ../src/tutor.c:443 +#: ../src/tutor.c:567 ../src/tutor.c:570 msgid "Start typing when you are ready. " msgstr "Начинайте печатать, когда будете готовы" -#: ../src/tutor.c:441 +#: ../src/tutor.c:568 msgid "Use backspace to correct errors." msgstr "Используйте [BACKSPACE] для коррекции ошибок." -#: ../src/tutor.c:885 +#: ../src/tutor.c:1012 #, c-format msgid "" "ps.: logging not performed for this session: the number of typed characters " @@ -902,11 +903,11 @@ "Для этого урока статистика не записывается: количество набранных символов " "(%i) должно быть больше %i." -#: ../src/tutor.c:1027 +#: ../src/tutor.c:1154 msgid "ps.: you have entered the Top 10 list, great!" msgstr "Вы попали в десятку лучших!" -#: ../src/tutor.c:1039 +#: ../src/tutor.c:1166 msgid "" "ps.: the text you just typed doesn't seem to be similar to ordinary texts in " "the language currently selected: we can't account for it in the 'Top 10' " @@ -915,93 +916,90 @@ "Набранный вами текст не был похож на обычный текст для выбранного языка: он " "не подходит для участия в соревновании." -#. Begin the accuracy -#: ../src/tutor.c:1087 +#: ../src/tutor.c:1215 msgid "STATISTICS" msgstr "СТАТИСТИКА" -#: ../src/tutor.c:1088 +#: ../src/tutor.c:1216 msgid "Elapsed time:" msgstr "Затраченное время:" -#: ../src/tutor.c:1089 +#: ../src/tutor.c:1217 msgid "minute and" msgid_plural "minutes and" msgstr[0] "минута и" msgstr[1] "минуты и" msgstr[2] "минут и" -#: ../src/tutor.c:1090 +#: ../src/tutor.c:1218 msgid "second" msgid_plural "seconds" msgstr[0] "секунда" msgstr[1] "секунды" msgstr[2] "секунд" -#: ../src/tutor.c:1091 +#: ../src/tutor.c:1219 msgid "Error ratio:" msgstr "Процент ошибок:" -#: ../src/tutor.c:1091 +#: ../src/tutor.c:1219 msgid "Accuracy:" msgstr "Точность:" -#: ../src/tutor.c:1112 ../src/tutor.c:1137 ../src/tutor.c:1160 -#: ../src/tutor.c:1186 +#: ../src/tutor.c:1240 ../src/tutor.c:1265 ../src/tutor.c:1288 +#: ../src/tutor.c:1314 msgid "Goal:" msgstr "Цель:" -#: ../src/tutor.c:1119 +#: ../src/tutor.c:1247 msgid "Characters per second:" msgstr "Знаков в секунду:" -#: ../src/tutor.c:1137 +#: ../src/tutor.c:1265 msgid "(CPS)" msgstr "(знак/с)" -#: ../src/tutor.c:1142 +#: ../src/tutor.c:1270 msgid "Words per minute:" msgstr "Слов в минуту:" -#: ../src/tutor.c:1167 +#: ../src/tutor.c:1295 msgid "Fluidness:" msgstr "Плавность:" -#: ../src/tutor.c:1194 +#: ../src/tutor.c:1322 msgid "Comments:" msgstr "Примечания:" -#: ../src/tutor.c:1676 +#: ../src/tutor.c:1804 msgid "space" msgstr "пробел" #. Translators: the name of letter Y -#: ../src/tutor.c:1681 +#: ../src/tutor.c:1809 msgid "wye" msgstr "звездочка" #. Translators: the name of the Return key -#: ../src/tutor.c:1685 +#: ../src/tutor.c:1813 msgid "enter" msgstr "ввод" -#: ../src/tutor.c:1691 +#: ../src/tutor.c:1819 msgid "apostrophe" msgstr "апостроф" #. Translators: double quote symbol: " -#: ../src/tutor.c:1695 +#: ../src/tutor.c:1823 msgid "quote" msgstr "кавычки" #. Translators: ampersand symbol: & -#: ../src/tutor.c:1699 +#: ../src/tutor.c:1827 msgid "ampersand" msgstr "амперсанд" -#. Error frequencies or touch times -#. -#: ../src/plot.c:308 +#: ../src/plot.c:305 msgid "Character" msgstr "Символ" @@ -1009,11 +1007,11 @@ msgid "Date & Time" msgstr "Дата и время" -#: ../src/basic.c:331 +#: ../src/basic.c:326 msgid "Positions of keys seems to be learned!" msgstr "Необходимо выучить расположение клавиш." -#: ../src/basic.c:332 +#: ../src/basic.c:327 msgid "" " Congratulations!\n" " You have accomplished the entire basic course.\n" @@ -1025,7 +1023,7 @@ " Переходите к следующему упражнению — на адаптивность.\n" " В нём вы научитесь набирать более точно.\n" -#: ../src/basic.c:338 +#: ../src/basic.c:333 msgid "" " All right, now you got it!\n" " Go to the next lesson.\n" @@ -1033,34 +1031,36 @@ " Итак, вы справились с заданием\n" " Переходите к следующему уроку.\n" -#: ../src/adaptability.c:217 +#: ../src/adaptability.c:213 +#, fuzzy, c-format msgid "" -" Your accuracy rate is below 90%...\n" +" Your accuracy rate is below %.0f%%...\n" " Could you please try again to improve it?\n" msgstr "" " Ваш уровень точности ниже 90%...\n" " Не хотите попробовать снова и улучшить его?\n" -#: ../src/adaptability.c:222 +#: ../src/adaptability.c:216 +#, fuzzy, c-format msgid "" " You are doing well. But...\n" -" Could you make the accuracy reach 95%?\n" +" Could you make the accuracy reach %.0f%%?\n" msgstr "" " Вы всё делаете хорошо. Но...\n" " Попробуете повысить точность до 95%?\n" -#: ../src/adaptability.c:225 -#, c-format +#: ../src/adaptability.c:219 +#, fuzzy, c-format msgid "" " You are almost there, but your accuracy rate is still below %.0f%%.\n" -" Try a few more times, or maybe you're getting upset, so go to other kind of " -"exercise.\n" +" Try a few more times, or maybe you're getting upset, so go to another kind " +"of exercise.\n" msgstr "" " Вы почти справились, но ваша точность всё ещё ниже %.0f%%.\n" " Попробуйте ещё раз или, если вы нервничаете, переходите к следующему " "упражнению.\n" -#: ../src/adaptability.c:232 +#: ../src/adaptability.c:226 #, c-format msgid "" " Very good!\n" @@ -1073,11 +1073,11 @@ " Теперь пора повышать скорость набора.\n" " Переходите к третьему упражнению в главном меню\n" -#: ../src/velocity.c:313 ../src/fluidness.c:435 +#: ../src/velocity.c:312 ../src/fluidness.c:435 msgid "Pasted_or_dropped" msgstr "Вставленный или перетащенный" -#: ../src/velocity.c:432 +#: ../src/velocity.c:423 msgid "" " You are just beginning.\n" " Be patient, try it again every day, rest and don't worry so much:\n" @@ -1088,32 +1088,35 @@ "волнуйтесь:\n" " терпение и труд всё перетрут.\n" -#: ../src/velocity.c:436 +#: ../src/velocity.c:427 +#, fuzzy, c-format msgid "" " Still away from the highway. You can make better...\n" -" Try at least 20 WPM.\n" +" Try to reach at least %.0f WPM.\n" msgstr "" " Не стоит так торопиться. Вы способны на большее...\n" " Придерживайтесь скорости в 20 слов в минуту.\n" -#: ../src/velocity.c:439 +#: ../src/velocity.c:430 +#, fuzzy, c-format msgid "" " You are doing well, but need to go faster.\n" -" And don't forget the accuracy. Try to get 30 WPM.\n" +" And don't forget the accuracy. Try to get %.0f WPM.\n" msgstr "" " Вы всё делаете хорошо, но надо бы чуть быстрее.\n" " Однако не забывайте о точности.\n" " Попробуйте достичь скорости в 30 слов в минуту.\n" -#: ../src/velocity.c:443 +#: ../src/velocity.c:433 +#, fuzzy, c-format msgid "" " Fine. Now you need to start running.\n" -" Can you reach 40 WPM?\n" +" Can you reach %.0f WPM?\n" msgstr "" " Прекрасно. Наконец-то вы зашевелились.\n" " Как насчёт 40 слов в минуту?\n" -#: ../src/velocity.c:446 +#: ../src/velocity.c:436 #, c-format msgid "" " Very good. You are almost there.\n" @@ -1122,7 +1125,7 @@ " Очень хорошо. Вы почти у цели.\n" " Может всё-таки поднапряжётесь и достигнете %.0f слов в минуту?\n" -#: ../src/velocity.c:451 +#: ../src/velocity.c:439 msgid "" " Excellent. For this course, that is enough.\n" " Try now the fluidness exercises, OK?\n" @@ -1130,31 +1133,34 @@ " Великолепно. Для этого курса этого достаточно.\n" " Теперь пора переходить к упражнениям на плавность.\n" -#: ../src/velocity.c:455 +#: ../src/velocity.c:442 +#, fuzzy, c-format msgid "" -" Fast! Are you training for a competition?\n" -" So, try to get 70 WPM!\n" +" Fast! Are you a professional?\n" +" So, try to get %.0f WPM!\n" msgstr "" " А вы шустрец! Куда-то спешите?\n" " Тогда разгоняйтесь до 70 слов в минуту!\n" -#: ../src/velocity.c:458 -msgid "" -" Top of \"qwerty\". Now it's time to change to the Dvorak mode.\n" -" Are you afraid of reaching 80 WPM?\n" +#. Translators: Speed Racer is a reference to a Japanese anime franchise +#. about automobile racing, also known as Mach GoGoGo. +#: ../src/velocity.c:447 +#, c-format +msgid " Ranking good, Speed Racer! Are you afraid of reaching %.0f WPM?\n" msgstr "" -" Это предел для «qwerty». Пора переходить в режим Дворак.\n" -" Разгонитесь до 80 слов в минуту?\n" -#: ../src/velocity.c:462 +#. Translators: feel free to change the reference to that martial art, if you find another good analogy. +#: ../src/velocity.c:451 +#, fuzzy, c-format msgid "" -" Dvorak mode dominated!\n" -" Can you fly at 90 WPM?\n" +" Kunf-fu mastering!\n" +" Can you fly at %.0f WPM?\n" msgstr "" " Режим Дворак оправдал себя!\n" " Пора взлетать до 90 слов в минуту\n" -#: ../src/velocity.c:466 +#. Translators: Dvorak here means that infamous ergonomic keyboard layout. +#: ../src/velocity.c:454 msgid "" " Dvorak master!\n" " I have no words to express my admiration!\n" @@ -1162,7 +1168,7 @@ " Вы гуру режима Дворак!\n" " Вам нет равных!\n" -#: ../src/fluidness.c:545 +#: ../src/fluidness.c:538 #, c-format msgid "" " You type accurately but not so fast.\n" @@ -1171,7 +1177,7 @@ " Вы набираете без ошибок, но довольно медленно.\n" " Сможете достичь скорости в %.0f слов в минуту?\n" -#: ../src/fluidness.c:548 +#: ../src/fluidness.c:541 #, c-format msgid "" " Your rhythm is not so constant. Calm down.\n" @@ -1180,7 +1186,7 @@ " Ритм не должен изменяться. Успокойтесь.\n" " Теперь попробуйте увеличить плавность более %i%%.\n" -#: ../src/fluidness.c:551 +#: ../src/fluidness.c:544 #, c-format msgid "" " You are almost getting there. Type more fluently.\n" @@ -1189,7 +1195,7 @@ " Вы почти достигли цели. Печатайте ещё плавнее. \n" " Ваша цель — повысить плавность выше %.0f%%.\n" -#: ../src/fluidness.c:554 +#: ../src/fluidness.c:547 msgid "" " Congratulations!\n" " It seems to me that you are a professional.\n" @@ -1201,7 +1207,7 @@ " Эта программа вам больше не нужна.\n" " Надеемся, вам понравилось обучение. Спасибо за внимание.\n" -#: ../src/fluidness.c:559 +#: ../src/fluidness.c:552 msgid "" " How can you type so fast?\n" " You have exceeded all my expectations.\n" @@ -1261,6 +1267,22 @@ msgid "Could not upload/download scores." msgstr "Не удаётся отправить/загрузить очки" +#~ msgid "" +#~ " Top of \"qwerty\". Now it's time to change to the Dvorak mode.\n" +#~ " Are you afraid of reaching 80 WPM?\n" +#~ msgstr "" +#~ " Это предел для «qwerty». Пора переходить в режим Дворак.\n" +#~ " Разгонитесь до 80 слов в минуту?\n" + +#~ msgid "Press here to restart the exercise. Hotkey: [Ctrl R]" +#~ msgstr "Нажмите здесь для перезапуска упражнения. Быстрый вызов: [CTRL+R]" + +#~ msgid "_Font" +#~ msgstr "_Шрифт" + +#~ msgid "Klavaro" +#~ msgstr "Klavaro" + #~ msgid "Default" #~ msgstr "По умолчанию" diff -Nru klavaro-1.9.9/po/sv.po klavaro-3.00/po/sv.po --- klavaro-1.9.9/po/sv.po 2013-08-15 13:38:51.000000000 +0000 +++ klavaro-3.00/po/sv.po 2014-01-13 23:25:52.000000000 +0000 @@ -5,605 +5,606 @@ msgid "" msgstr "" "Project-Id-Version: \n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2013-08-15 10:38-0300\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2014-01-13 21:25-0200\n" "PO-Revision-Date: 2008-05-20 20:35+0100\n" "Last-Translator: Nils Pettersson \n" "Language-Team: SWEDISH \n" -"Language: \n" +"Language: sv\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=utf-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=n != 1;\n" -#: ../data/klavaro.desktop.in.h:1 ../data/klavaro.glade.h:59 -msgid "Yet another touch typing tutor" -msgstr "Ännu en tangentbords tränare" - #: ../data/klavaro.glade.h:1 -msgid "Klavaro - Main menu" -msgstr "Klavaro - Huvudmeny" +msgid "About 'Klavaro'" +msgstr "Om 'Klavaro'" #: ../data/klavaro.glade.h:2 -msgid "Don't be shy about learning the basics!" -msgstr "Var inte blyg för att lära grunderna!" +msgid "Yet another touch typing tutor" +msgstr "Ännu en tangentbords tränare" #: ../data/klavaro.glade.h:3 -#, fuzzy -msgid "Learn how to type correctly" -msgstr "hur man skriver korrekt" +msgid "Remember always: someone loves you!" +msgstr "Minns alltid: någon älskar dig!" #: ../data/klavaro.glade.h:4 -msgid "Initial training for your fingers." -msgstr "Start träning för dina fingrar." +msgid "Change language" +msgstr "Byt språk" #: ../data/klavaro.glade.h:5 -#, fuzzy -msgid "First steps with initial training" -msgstr "start träning" +msgid "Attention!" +msgstr "Observera!" #: ../data/klavaro.glade.h:6 -msgid "Memorizing the keyboard practicing random keys exercises." -msgstr "Memorera tangentbordsträningens slumpmässiga tangenter övningar" +msgid "Do you confirm?" +msgstr "Bekräftar du?" #: ../data/klavaro.glade.h:7 #, fuzzy -msgid "Practice with random keys" -msgstr "kompletta texter" +msgid "_No" +msgstr "Nej" -#. English typo: touchs -> touches -#: ../data/klavaro.glade.h:9 +#: ../data/klavaro.glade.h:8 #, fuzzy -msgid "Accelerating the touches practicing random words exercises." -msgstr "Öka hastigheten för övningar med slumpmässiga ord." +msgid "_Yes" +msgstr "Ja" + +#: ../data/klavaro.glade.h:9 +msgid "Help?" +msgstr "Hjälp?" #: ../data/klavaro.glade.h:10 -#, fuzzy -msgid "Practice with random words" -msgstr "kompletta texter" +msgid "This is a tip. Now you press this button to return to the main menu." +msgstr "" +"Detta är ett tips. Tryck nu på denna knapp för att återgå till huvudmenyen." #: ../data/klavaro.glade.h:11 -msgid "Becoming proficient practicing complete paragraphs exercises." -msgstr "Bli kunnig genom träning på kompletta stycken." +msgid "B_ack to menu" +msgstr "" #: ../data/klavaro.glade.h:12 #, fuzzy -msgid "Practice with complete texts" -msgstr "kompletta texter" +msgid "" +"The main menu of the application is very straightforward. Just select the " +"type of exercise you wish to take. Do not worry about clicking any button on " +"the screen. The buttons will never hurt you!" +msgstr "" +"Det är huvudmenyn i programmet och den är väldigt enkel. Bara välj vilken " +"övning du vill göra. Var inte rädd för att klicka på någon knapp: De kommer " +"aldrig att skada dig!" #: ../data/klavaro.glade.h:13 msgid "" -"Keyboard layout for modules 1 and 2. Also used informatively in the " -"fluidness contest." +"Also the controls have tips which will appear if you hover over them with " +"your mouse. These tips can come in very handy. To see how these tips work, " +"position your mouse over the button below, and without clicking, wait for " +"the tip to appear..." msgstr "" +"Glöm inte bort att vänta på tipsen som visas över varje kontroll. Ibland kan " +"de vara användbara. För att se hur tipsen fungerar svävar du med muspekaren " +"över ett menyval, en knapp eller en textruta och väntar en liten stund (utan " +"att klicka)..." #: ../data/klavaro.glade.h:14 -#, fuzzy -msgid "_Keyboard:" -msgstr "Tangentbord" +msgid "Klavaro - Select file" +msgstr "Klavaro - Välj fil" #: ../data/klavaro.glade.h:15 -msgid "Language for modules 3 and 4." -msgstr "" +#, fuzzy +msgid "_Cancel" +msgstr "Avbryt" #: ../data/klavaro.glade.h:16 -#, fuzzy -msgid "_Language:" -msgstr "Språk" +msgid "_Open" +msgstr "" #: ../data/klavaro.glade.h:17 -msgid "Variant" -msgstr "" +#, fuzzy +msgid "Re_name:" +msgstr "Ta bort" #: ../data/klavaro.glade.h:18 #, fuzzy -msgid "Klavaro" -msgstr "'Klavaro'" +msgid "Rename the selected item." +msgstr "Ta bort valet från listan ovan." #: ../data/klavaro.glade.h:19 -msgid "Country / Custom" -msgstr "" +msgid "" +"Read a text file and add a copy of it here. The file must be encoded in " +"UTF-8." +msgstr "Läs en textfil och lägg en kopia här. Filen måste vara i format UTF-8." #: ../data/klavaro.glade.h:20 -msgid "Your language here." +msgid "_Open text file" msgstr "" #: ../data/klavaro.glade.h:21 -msgid "Speech" -msgstr "" +#, fuzzy +msgid "Paste text that was copied to the clipboard." +msgstr "Klistra in text som kopierats till urklipp. Snabbval: [Ctrl-V]" #: ../data/klavaro.glade.h:22 -msgid "Little tip about this program." -msgstr "Litet tips om detta program" +msgid "_Paste from clipboard" +msgstr "" #: ../data/klavaro.glade.h:23 #, fuzzy -msgid "_Help" -msgstr "Hjälp" +msgid "Remove the selected item." +msgstr "Ta bort valet från listan ovan." #: ../data/klavaro.glade.h:24 #, fuzzy -msgid "General information about the program." -msgstr "Litet tips om detta program" +msgid "_Remove copied file" +msgstr "Ta bort vald" #: ../data/klavaro.glade.h:25 -#, fuzzy -msgid "_About..." -msgstr "Om..." +msgid "Apply the selected item to create an exercise." +msgstr "Tillämpa valet för att skapa en övning." #: ../data/klavaro.glade.h:26 -#, fuzzy -msgid "Exit the application immediately." -msgstr "Avsluta programmet omedelbart. Snabbval: [Ctrl-Q]" +msgid "_Apply" +msgstr "" #: ../data/klavaro.glade.h:27 #, fuzzy -msgid "_Close" -msgstr "Stäng" +msgid "Close this window." +msgstr "Stäng detta fönster och återgå till lektionen. Snabbval: [Esc]" #: ../data/klavaro.glade.h:28 #, fuzzy -msgid "Load other exercises/lessons" -msgstr "Öppna andra övningar/lektioner. Snabbval: [Ctrl-O]" +msgid "_Close" +msgstr "Stäng" #: ../data/klavaro.glade.h:29 -#, fuzzy -msgid "_Other texts" -msgstr "kompletta texter" +msgid "Country / Custom" +msgstr "" #: ../data/klavaro.glade.h:30 -#, fuzzy -msgid "_Lesson:" -msgstr "Lektion:" +msgid "Variant" +msgstr "" #: ../data/klavaro.glade.h:31 -msgid "Edit the character set to be used in this lesson." -msgstr "Ändra teckenuppsättningen som skall användas i denna lektion." +#, fuzzy +msgid "Remove the selected custom layout." +msgstr "Ta bort valet från listan ovan." #: ../data/klavaro.glade.h:32 #, fuzzy -msgid "Edit the character set to be used in lessons 44 through 50." -msgstr "Ändra teckenuppsättningen som skall användas i denna lektion." +msgid "_Remove" +msgstr "Ta bort" #: ../data/klavaro.glade.h:33 -msgid "This is a specific exercise, adjusted to your error profile." +msgid "" +"Toggles the shift effect on the keys. Alternates between the upper and lower " +"characters of the keys." msgstr "" +"Växlar SHIFT påverkan på tangenterna. Alternerar mellan övre och undre " +"tecken på tangenterna." -#: ../data/klavaro.glade.h:34 ../src/tutor.c:252 -msgid "Drag and drop text here to practice with it." -msgstr "Dra och släpp text här för att öva på den." +#: ../data/klavaro.glade.h:34 +msgid "SPACE BAR" +msgstr "MELLANSLAG" -#: ../data/klavaro.glade.h:35 -msgid "Press here to restart the exercise. Hotkey: [Ctrl R]" -msgstr "Tryck här för att starta om övningarna. Snabbval: [Ctrl R]" +#: ../data/klavaro.glade.h:35 ../src/keyboard.c:1630 +msgid "thumbs" +msgstr "tummar" #: ../data/klavaro.glade.h:36 -msgid "Show the virtual keyboard and the relation between fingers and keys." -msgstr "" -"Visa det virtuella tangentbordet och relationen mellan fingrar och tangenter." +msgid "Ctrl" +msgstr "Ctrl" #: ../data/klavaro.glade.h:37 -#, fuzzy -msgid "_Keyboard" -msgstr "Tangentbord" +msgid "Caps" +msgstr "Caps" #: ../data/klavaro.glade.h:38 -msgid "Select the font to be used in the exercise window." -msgstr "Välj typsnitt att använda i övningsfönstret." +#, fuzzy +msgid "S_ave as:" +msgstr "Spara" #: ../data/klavaro.glade.h:39 -msgid "_Font" +msgid "Show previous screen." msgstr "" #: ../data/klavaro.glade.h:40 -#, fuzzy -msgid "Keep this checked if you want to get those nice beeps." +msgid "_Previous step" msgstr "" -"Bibehåll denna ikryssad om du vill höra dessa vackra pip. Snabbval: [Ctrl S]" #: ../data/klavaro.glade.h:41 -#, fuzzy -msgid "_Beep" -msgstr "Hjälp" +msgid "Show next screen." +msgstr "" #: ../data/klavaro.glade.h:42 -msgid "Co_urse information" +msgid "_Next step" msgstr "" #: ../data/klavaro.glade.h:43 -msgid "Charts showing the learning progress along the exercises." -msgstr "Diagram som visar utbildningsframsteg vid sidan av övningarna." +#, fuzzy +msgid "Return without any modification." +msgstr "Återgå utan några ändringar. Snabbval: [Esc]" #: ../data/klavaro.glade.h:44 -#, fuzzy -msgid "_Progress" -msgstr "Framsteg" +msgid "Save the current keyboard layout with the name specified above." +msgstr "Spara nuvarande tangentbords layout med namnet specificerat ovan." #: ../data/klavaro.glade.h:45 -msgid "Show local and external scores from other users." -msgstr "" +#, fuzzy +msgid "_Save and use" +msgstr "Spara" #: ../data/klavaro.glade.h:46 -msgid "_Top 10" +#, fuzzy +msgid "" +"If you like those beautiful hands, click here to close this window keeping " +"them." msgstr "" +"Om du tycker om dessa vackra händer vid sidan, klicka här innan du stänger " +"detta fönster." #: ../data/klavaro.glade.h:47 #, fuzzy -msgid "Return to the main menu." -msgstr "Återgå till huvudmenyn. Snabbval: [Ctrl-Q]" +msgid "_Keep hands" +msgstr "Håll händerna" #: ../data/klavaro.glade.h:48 -msgid "B_ack to menu" -msgstr "" +msgid "Klavaro - Main menu" +msgstr "Klavaro - Huvudmeny" #: ../data/klavaro.glade.h:49 -#, fuzzy -msgid "Close this window." -msgstr "Stäng detta fönster och återgå till lektionen. Snabbval: [Esc]" +msgid "Don't be shy about learning the basics!" +msgstr "Var inte blyg för att lära grunderna!" #: ../data/klavaro.glade.h:50 -msgid "Font definition" -msgstr "Typsnitts definition" +#, fuzzy +msgid "Learn how to type correctly" +msgstr "hur man skriver korrekt" #: ../data/klavaro.glade.h:51 -msgid "Top 10" -msgstr "" +msgid "Initial training for your fingers." +msgstr "Start träning för dina fingrar." #: ../data/klavaro.glade.h:52 -msgid "Show extra information" -msgstr "" +#, fuzzy +msgid "First steps with initial training" +msgstr "start träning" #: ../data/klavaro.glade.h:53 -msgid "Hide extra information" -msgstr "" +msgid "Memorizing the keyboard practicing random keys exercises." +msgstr "Memorera tangentbordsträningens slumpmässiga tangenter övningar" #: ../data/klavaro.glade.h:54 -msgid "Publish to the web your local scores." -msgstr "" +#, fuzzy +msgid "Practice with random keys" +msgstr "kompletta texter" #: ../data/klavaro.glade.h:55 -msgid "_Participate" -msgstr "" +#, fuzzy +msgid "Accelerating the touches practicing random words exercises." +msgstr "Öka hastigheten för övningar med slumpmässiga ord." #: ../data/klavaro.glade.h:56 -msgid "Download from the web the most up to date ranking." -msgstr "" +#, fuzzy +msgid "Practice with random words" +msgstr "kompletta texter" #: ../data/klavaro.glade.h:57 -#, fuzzy -msgid "_Update" -msgstr "Uppdatera" +msgid "Becoming proficient practicing complete paragraphs exercises." +msgstr "Bli kunnig genom träning på kompletta stycken." #: ../data/klavaro.glade.h:58 -msgid "About 'Klavaro'" -msgstr "Om 'Klavaro'" +#, fuzzy +msgid "Practice with complete texts" +msgstr "kompletta texter" + +#: ../data/klavaro.glade.h:59 +msgid "" +"Keyboard layout for modules 1 and 2. Also used informatively in the " +"fluidness contest." +msgstr "" #: ../data/klavaro.glade.h:60 -msgid "Remember always: someone loves you!" -msgstr "Minns alltid: någon älskar dig!" +#, fuzzy +msgid "_Keyboard:" +msgstr "Tangentbord" #: ../data/klavaro.glade.h:61 -#, fuzzy -msgid "Remove the selected custom layout." -msgstr "Ta bort valet från listan ovan." +msgid "Language for modules 3 and 4." +msgstr "" #: ../data/klavaro.glade.h:62 #, fuzzy -msgid "_Remove" -msgstr "Ta bort" +msgid "_Language:" +msgstr "Språk" #: ../data/klavaro.glade.h:63 -msgid "" -"Toggles the shift effect on the keys. Alternates between the upper and lower " -"characters of the keys." +msgid "Speech" msgstr "" -"Växlar SHIFT påverkan på tangenterna. Alternerar mellan övre och undre " -"tecken på tangenterna." #: ../data/klavaro.glade.h:64 -msgid "SPACE BAR" -msgstr "MELLANSLAG" +msgid "Your language here." +msgstr "" -#: ../data/klavaro.glade.h:65 ../src/keyboard.c:1630 -msgid "thumbs" -msgstr "tummar" +#: ../data/klavaro.glade.h:65 +msgid "Little tip about this program." +msgstr "Litet tips om detta program" #: ../data/klavaro.glade.h:66 -msgid "Ctrl" -msgstr "Ctrl" +#, fuzzy +msgid "_Help" +msgstr "Hjälp" #: ../data/klavaro.glade.h:67 -msgid "Caps" -msgstr "Caps" +#, fuzzy +msgid "General information about the program." +msgstr "Litet tips om detta program" #: ../data/klavaro.glade.h:68 #, fuzzy -msgid "S_ave as:" -msgstr "Spara" +msgid "_About..." +msgstr "Om..." #: ../data/klavaro.glade.h:69 -msgid "Show previous screen." -msgstr "" +#, fuzzy +msgid "Exit the application immediately." +msgstr "Avsluta programmet omedelbart. Snabbval: [Ctrl-Q]" #: ../data/klavaro.glade.h:70 -msgid "_Previous step" -msgstr "" +msgid "Klavaro - Progress" +msgstr "Klavaro - Framsteg" #: ../data/klavaro.glade.h:71 -msgid "Show next screen." -msgstr "" +#, fuzzy +msgid "_Lesson:" +msgstr "Lektion:" #: ../data/klavaro.glade.h:72 -msgid "_Next step" +msgid "Value" msgstr "" #: ../data/klavaro.glade.h:73 #, fuzzy -msgid "Return without any modification." -msgstr "Återgå utan några ändringar. Snabbval: [Esc]" +msgid "Close this window, returning to the exercise." +msgstr "Stäng detta fönster, återgå till övningarna. Snabbval: [Esc]" #: ../data/klavaro.glade.h:74 -#, fuzzy -msgid "_Cancel" -msgstr "Avbryt" +msgid "Clear all the progress data, for every module." +msgstr "" #: ../data/klavaro.glade.h:75 -msgid "Save the current keyboard layout with the name specified above." -msgstr "Spara nuvarande tangentbords layout med namnet specificerat ovan." +#, fuzzy +msgid "_Reset" +msgstr "Återställ!" #: ../data/klavaro.glade.h:76 -#, fuzzy -msgid "_Save and use" -msgstr "Spara" +msgid "Top 10" +msgstr "" #: ../data/klavaro.glade.h:77 -#, fuzzy -msgid "" -"If you like those beautiful hands, click here to close this window keeping " -"them." +msgid "Show extra information." msgstr "" -"Om du tycker om dessa vackra händer vid sidan, klicka här innan du stänger " -"detta fönster." #: ../data/klavaro.glade.h:78 -#, fuzzy -msgid "_Keep hands" -msgstr "Håll händerna" +msgid "Hide extra information." +msgstr "" #: ../data/klavaro.glade.h:79 -msgid "Change language" -msgstr "Byt språk" +msgid "Publish to the web your local scores." +msgstr "" #: ../data/klavaro.glade.h:80 -msgid "Attention!" -msgstr "Observera!" +msgid "_Participate" +msgstr "" #: ../data/klavaro.glade.h:81 -msgid "Do you confirm?" -msgstr "Bekräftar du?" +msgid "Download from the web the most up to date ranking." +msgstr "" #: ../data/klavaro.glade.h:82 #, fuzzy -msgid "_No" -msgstr "Nej" +msgid "_Update" +msgstr "Uppdatera" #: ../data/klavaro.glade.h:83 #, fuzzy -msgid "_Yes" -msgstr "Ja" +msgid "Load other exercises/lessons" +msgstr "Öppna andra övningar/lektioner. Snabbval: [Ctrl-O]" #: ../data/klavaro.glade.h:84 #, fuzzy -msgid "Re_name:" -msgstr "Ta bort" +msgid "_Other texts" +msgstr "kompletta texter" #: ../data/klavaro.glade.h:85 -#, fuzzy -msgid "Rename the selected item." -msgstr "Ta bort valet från listan ovan." +msgid "Edit the character set to be used in this lesson." +msgstr "Ändra teckenuppsättningen som skall användas i denna lektion." #: ../data/klavaro.glade.h:86 -msgid "" -"Read a text file and add a copy of it here. The file must be encoded in " -"UTF-8." -msgstr "Läs en textfil och lägg en kopia här. Filen måste vara i format UTF-8." - -#: ../data/klavaro.glade.h:87 -msgid "_Open text file" +msgid "This is a specific exercise, adjusted to your error profile." msgstr "" -#: ../data/klavaro.glade.h:88 +#: ../data/klavaro.glade.h:87 #, fuzzy -msgid "Paste text that was copied to the clipboard." -msgstr "Klistra in text som kopierats till urklipp. Snabbval: [Ctrl-V]" +msgid "" +"Edit the character set to be used in lessons after 43: they are customizable!" +msgstr "Ändra teckenuppsättningen som skall användas i denna lektion." + +#: ../data/klavaro.glade.h:88 ../src/tutor.c:376 +msgid "Drag and drop text here to practice with it." +msgstr "Dra och släpp text här för att öva på den." #: ../data/klavaro.glade.h:89 -msgid "_Paste from clipboard" -msgstr "" +#, fuzzy +msgid "Press here to restart the exercise. Hotkey: [Ctrl-R]" +msgstr "Tryck här för att starta om övningarna. Snabbval: [Ctrl R]" #: ../data/klavaro.glade.h:90 -#, fuzzy -msgid "Remove the selected item." -msgstr "Ta bort valet från listan ovan." +msgid "Show the virtual keyboard and the relation between fingers and keys." +msgstr "" +"Visa det virtuella tangentbordet och relationen mellan fingrar och tangenter." #: ../data/klavaro.glade.h:91 #, fuzzy -msgid "_Remove copied file" -msgstr "Ta bort vald" +msgid "_Keyboard" +msgstr "Tangentbord" #: ../data/klavaro.glade.h:92 -msgid "Apply the selected item to create an exercise." -msgstr "Tillämpa valet för att skapa en övning." +msgid "Select the font to be used in the exercise window." +msgstr "Välj typsnitt att använda i övningsfönstret." #: ../data/klavaro.glade.h:93 -msgid "_Apply" -msgstr "" +msgid "Font definition" +msgstr "Typsnitts definition" #: ../data/klavaro.glade.h:94 -msgid "Klavaro - Progress" -msgstr "Klavaro - Framsteg" +#, fuzzy +msgid "Keep this checked if you want to get those nice beeps." +msgstr "" +"Bibehåll denna ikryssad om du vill höra dessa vackra pip. Snabbval: [Ctrl S]" #: ../data/klavaro.glade.h:95 -msgid "Value" -msgstr "" +#, fuzzy +msgid "_Beep" +msgstr "Hjälp" #: ../data/klavaro.glade.h:96 -msgid "Clear all the progress data, for every module." +msgid "Co_urse information" msgstr "" #: ../data/klavaro.glade.h:97 -#, fuzzy -msgid "_Reset" -msgstr "Återställ!" +msgid "Charts showing the learning progress along the exercises." +msgstr "Diagram som visar utbildningsframsteg vid sidan av övningarna." #: ../data/klavaro.glade.h:98 #, fuzzy -msgid "Close this window, returning to the exercise." -msgstr "Stäng detta fönster, återgå till övningarna. Snabbval: [Esc]" +msgid "_Progress" +msgstr "Framsteg" #: ../data/klavaro.glade.h:99 -msgid "Klavaro - Select file" -msgstr "Klavaro - Välj fil" +#, fuzzy +msgid "Return to the main menu." +msgstr "Återgå till huvudmenyn. Snabbval: [Ctrl-Q]" #: ../data/klavaro.glade.h:100 -msgid "_Open" +msgid "Show local and external scores from other users." msgstr "" #: ../data/klavaro.glade.h:101 -msgid "Help?" -msgstr "Hjälp?" - -#: ../data/klavaro.glade.h:102 -#, fuzzy -msgid "" -"The main menu of the application is very straightforward. Just select the " -"type of exercise you wish to take. Do not worry about clicking any button on " -"the screen. The buttons will never hurt you!" +msgid "_Top 10" msgstr "" -"Det är huvudmenyn i programmet och den är väldigt enkel. Bara välj vilken " -"övning du vill göra. Var inte rädd för att klicka på någon knapp: De kommer " -"aldrig att skada dig!" -#: ../data/klavaro.glade.h:103 -msgid "" -"Also the controls have tips which will appear if you hover over them with " -"your mouse. These tips can come in very handy. To see how these tips work, " -"position your mouse over the button below, and without clicking, wait for " -"the tip to appear..." -msgstr "" -"Glöm inte bort att vänta på tipsen som visas över varje kontroll. Ibland kan " -"de vara användbara. För att se hur tipsen fungerar svävar du med muspekaren " -"över ett menyval, en knapp eller en textruta och väntar en liten stund (utan " -"att klicka)..." +#: ../data/klavaro.desktop.in.h:1 +#, fuzzy +msgid "A very flexible and efficient touch typing tutor." +msgstr "Ännu en tangentbords tränare" -#: ../data/klavaro.glade.h:104 -msgid "This is a tip. Now you press this button to return to the main menu." -msgstr "" -"Detta är ett tips. Tryck nu på denna knapp för att återgå till huvudmenyen." +#. Translators: these are keywords related to the program. CAI above means Computer Aided Instruction. Feel free to add and/or change the keywords in your language. +#: ../data/klavaro.desktop.in.h:3 +#, fuzzy +msgid "keyboard;typing;tutor;CAI" +msgstr "Tangentbord" -#: ../src/main.c:314 +#: ../src/main.c:242 msgid "(Custom)" msgstr "" -#: ../src/main.c:315 +#: ../src/main.c:243 msgid "(Edit custom)" msgstr "" -#: ../src/main.c:316 +#: ../src/main.c:244 #, fuzzy msgid "(Default)" msgstr "Grundinställning" -#: ../src/main.c:393 +#: ../src/main.c:321 #, c-format msgid "Dictation mode (depends on this speech synthesizer: %s)" msgid_plural "Dictation mode (depends on one of these speech synthesizers: %s)" msgstr[0] "" msgstr[1] "" -#. Set main labels (for translation) -#. -#: ../src/main.c:435 ../src/keyboard.c:1291 +#: ../src/main.c:364 ../src/keyboard.c:1291 msgid "Introduction" msgstr "Introduktion" -#: ../src/main.c:438 ../src/top10.c:109 +#: ../src/main.c:367 ../src/top10.c:109 msgid "Basic course" msgstr "Grundkurs" -#: ../src/main.c:441 ../src/top10.c:112 +#: ../src/main.c:370 ../src/top10.c:112 msgid "Adaptability" msgstr "Anpassning" -#: ../src/main.c:444 ../src/callbacks.c:1310 ../src/top10.c:89 +#: ../src/main.c:373 ../src/callbacks.c:1226 ../src/top10.c:89 #: ../src/top10.c:115 msgid "Speed" msgstr "" -#: ../src/main.c:447 ../src/callbacks.c:1333 ../src/top10.c:91 +#: ../src/main.c:376 ../src/callbacks.c:1249 ../src/top10.c:91 #: ../src/top10.c:118 msgid "Fluidity" msgstr "" -#: ../src/callbacks.c:468 ../src/tutor.c:391 +#: ../src/callbacks.c:407 ../src/tutor.c:515 #, fuzzy msgid "Keys:" msgstr "Tangenter: %s" -#: ../src/callbacks.c:858 ../src/callbacks.c:874 +#: ../src/callbacks.c:774 ../src/callbacks.c:790 msgid "Connecting..." msgstr "" -#: ../src/callbacks.c:1145 +#: ../src/callbacks.c:1061 msgid "Overwrite user layout" msgstr "Skriv över användarlayout" -#: ../src/callbacks.c:1147 +#: ../src/callbacks.c:1063 msgid "This will OVERWRITE an existent keyboard layout." msgstr "Detta kommer att SKRIVA ÖVER en existerande tangentbords layout." -#: ../src/callbacks.c:1154 +#: ../src/callbacks.c:1070 msgid "Remove user layout" msgstr "Ta bort användarlayout" -#: ../src/callbacks.c:1156 +#: ../src/callbacks.c:1072 msgid "This will REMOVE an existent keyboard layout." msgstr "Detta kommer att TA BORT en existerande tangentbords layout." -#: ../src/callbacks.c:1163 +#: ../src/callbacks.c:1079 msgid "Reset progress data" msgstr "" -#: ../src/callbacks.c:1164 +#: ../src/callbacks.c:1080 msgid "This will DELETE all the progress data shown in the charts." msgstr "" -#: ../src/callbacks.c:1307 ../src/top10.c:87 +#: ../src/callbacks.c:1223 ../src/top10.c:87 msgid "Accuracy" msgstr "Noggrannhet" -#: ../src/callbacks.c:1310 ../src/tutor.c:1160 +#: ../src/callbacks.c:1226 ../src/tutor.c:1288 msgid "(WPM)" msgstr "(WPM)" -#: ../src/callbacks.c:1321 +#: ../src/callbacks.c:1237 msgid "Errors" msgstr "" -#: ../src/callbacks.c:1324 +#: ../src/callbacks.c:1240 msgid "Touch times (s)" msgstr "" -#: ../src/callbacks.c:1336 ../src/tutor.c:1187 ../src/top10.c:69 +#: ../src/callbacks.c:1252 ../src/tutor.c:1315 ../src/top10.c:69 msgid "Score" msgstr "" #. Translators: your language code (first 2 letters of your po-file) -#: ../src/translation.c:423 ../src/translation.c:489 ../src/tutor.c:1597 +#: ../src/translation.c:485 ../src/tutor.c:1725 msgid "en" msgstr "sv" -#: ../src/translation.c:576 +#: ../src/translation.c:572 msgid "" "The basic course focuses on having you read the characters presented to you " "on screen and typing the corresponding keys. Remember to keep your hands " @@ -614,7 +615,7 @@ "ner motsvarande tangent. Kom ihåg den korrekta placeringen av fingrarna i " "startpositionen på tangentbordet (se vidare introduktionen på huvudmenyn)." -#: ../src/translation.c:580 +#: ../src/translation.c:576 msgid "" "The key set used in each series will be shown in the above message line. The " "[Space], [Shift] and [Enter] keys may not show up there but are used very " @@ -624,7 +625,7 @@ "meddelanderaden. [MELLANSLAG], [SKIFT] och [ENTER] tangenterna kanske inte " "visas där men man vet att de används väldigt ofta." -#: ../src/translation.c:583 +#: ../src/translation.c:579 msgid "" "The message line below follows and echoes your key presses. If required, it " "changes and displays instructions for actions required from you." @@ -633,7 +634,7 @@ "krävs kommer raden att ändras och ge instruktioner om en åtgärd som krävs av " "dig." -#: ../src/translation.c:587 +#: ../src/translation.c:583 msgid "" "Here you may practice and improve your memorization of all keys. There will " "be sentences presented with nonsense words which mix some numbers and " @@ -643,7 +644,7 @@ "presenterad meningar med meningslösa ord och en blandning av siffror och " "symboler." -#: ../src/translation.c:590 +#: ../src/translation.c:586 msgid "" "In order to keep the lesson contents language and keyboard independent, " "accented letter combinations will probably not appear. For real word " @@ -653,7 +654,7 @@ "av språk och tangentbordslayout. För att träna meningar med verkliga ord " "skall du använda det fjärde valet från huvudmenyn (dvs. Flytande)." -#: ../src/translation.c:594 +#: ../src/translation.c:590 msgid "" "After each exercise there will be a brief statistics panel reviewing your " "performance along with some relevant comments." @@ -661,7 +662,7 @@ "Vid slutet av varje övning visas en liten ruta med statistik över din " "prestation samt relevanta kommentarer." -#: ../src/translation.c:598 +#: ../src/translation.c:594 msgid "" "This exercise is very similar to the second one, for adaptability. The " "difference is that here you'll type real words." @@ -669,7 +670,7 @@ "Den här övningen liknar väldigt mycket den andra, för anpassning. Skillnaden " "är: här kommer du att skriva med verkliga ord från ditt språk." -#: ../src/translation.c:601 +#: ../src/translation.c:597 msgid "" "The default language is the actual one of the interface. But you may select " "any other texts with words you would like to use. Press the 'Other' option " @@ -680,7 +681,7 @@ "använda. Tryck på 'Annat' valet ovan och lägg till filer som innehåller " "sådana texter." -#: ../src/translation.c:605 +#: ../src/translation.c:601 msgid "" "With this exercise the focus is on speed. So, you are supposed to type " "really fast and I will only flatter you when you deserve it!" @@ -688,7 +689,7 @@ "Med den här övningen så har jag ögonen på hastigheten. Jaha, du förmodas " "skriva riktigt snabbt och jag kommer att smickra helt uppriktigt." -#: ../src/translation.c:609 +#: ../src/translation.c:605 msgid "" "We will now use complete sentences and paragraphs which make logical sense. " "This may distract you while you type if you try to understand what you are " @@ -701,7 +702,7 @@ "övningarna förmodas du inte ha några svårigheter med det eftersom du måste " "skriva utan att tolka och analysera." -#: ../src/translation.c:613 +#: ../src/translation.c:609 msgid "" "We do not mean to imply that the typists must behave like a robot, without " "understanding what they type. We do aim to develop the skill of typing, " @@ -717,8 +718,7 @@ "längre. Då kommer du att bli i stånd till att visa uppmärksamhet på den " "verkliga meningen i texten." -#. English typo: minimun -> minimum -#: ../src/translation.c:618 +#: ../src/translation.c:613 #, fuzzy msgid "" "These exercises are longer. Each exercise consists of three paragraphs and " @@ -732,7 +732,6 @@ "eventuella misstag. Med andra ord, endast texter som skrivits in utan fel " "kommer att bli accepterade." -#. English typo: recomendations -> recommendations #: ../src/keyboard.c:1094 #, fuzzy msgid "" @@ -833,14 +832,12 @@ msgid "Step %i" msgstr "" -#. Recommendations -#: ../src/keyboard.c:1140 +#: ../src/keyboard.c:1142 #, fuzzy msgid "To position the hands" msgstr "För att placera händerna:" -#. Final words -#: ../src/keyboard.c:1225 +#: ../src/keyboard.c:1227 msgid "Go ahead!" msgstr "" @@ -887,23 +884,23 @@ msgid "Press and edit me" msgstr "Tryck en tangent" -#: ../src/tutor.c:176 +#: ../src/tutor.c:300 msgid "Lesson:" msgstr "Lektion:" -#: ../src/tutor.c:186 +#: ../src/tutor.c:310 msgid "Paragraphs:" msgstr "Stycken:" -#: ../src/tutor.c:219 +#: ../src/tutor.c:343 msgid "Klavaro - Basic Course" msgstr "Klavaro - Grundkurs" -#: ../src/tutor.c:224 +#: ../src/tutor.c:348 msgid "Klavaro - Adaptability" msgstr "Klavaro - Anpassning" -#: ../src/tutor.c:227 +#: ../src/tutor.c:351 msgid "" "Adaptability exercises: automating the fingers responses, typing over all " "the keyboard." @@ -911,146 +908,143 @@ "Anpassnings övningar: Automatisera fingerspetskänslan, skriv över hela " "tangentbordet." -#: ../src/tutor.c:232 +#: ../src/tutor.c:356 msgid "Klavaro - Velocity" msgstr "Klavaro - Hastighet" -#: ../src/tutor.c:233 +#: ../src/tutor.c:357 msgid "Velocity exercises: accelerate typing real words." msgstr "Hastighetsövningar: Öka hastigheten i att skriva hela ord." -#: ../src/tutor.c:237 +#: ../src/tutor.c:361 msgid "Klavaro - Fluidness" msgstr "Klavaro - Fluiditet" -#: ../src/tutor.c:239 +#: ../src/tutor.c:363 msgid "Fluidness exercises: accuracy typing good sense paragraphs." msgstr "Fluiditets övningar: Skriva förnuftiga hela stycken." -#: ../src/tutor.c:301 +#: ../src/tutor.c:425 #, fuzzy msgid "End of exercise. Press [Enter] to start another." msgstr "<<== Slut på övningen. Tryck [Enter] för att starta en ny. ==>> " -#: ../src/tutor.c:329 +#: ../src/tutor.c:453 msgid "Learning the key positions." msgstr "Inlärning av tangenternas placeringar." -#: ../src/tutor.c:332 +#: ../src/tutor.c:456 msgid "Press any key to start the exercise. " msgstr "Tryck någon tangent för att starta övningen. " -#: ../src/tutor.c:440 ../src/tutor.c:443 +#: ../src/tutor.c:567 ../src/tutor.c:570 msgid "Start typing when you are ready. " msgstr "Börja skriv när du är klar. " -#: ../src/tutor.c:441 +#: ../src/tutor.c:568 msgid "Use backspace to correct errors." msgstr "" -#: ../src/tutor.c:885 +#: ../src/tutor.c:1012 #, c-format msgid "" "ps.: logging not performed for this session: the number of typed characters " "(%i) must be greater than %i." msgstr "" -#: ../src/tutor.c:1027 +#: ../src/tutor.c:1154 msgid "ps.: you have entered the Top 10 list, great!" msgstr "" -#: ../src/tutor.c:1039 +#: ../src/tutor.c:1166 msgid "" "ps.: the text you just typed doesn't seem to be similar to ordinary texts in " "the language currently selected: we can't account for it in the 'Top 10' " "contest." msgstr "" -#. Begin the accuracy -#: ../src/tutor.c:1087 +#: ../src/tutor.c:1215 msgid "STATISTICS" msgstr "STATISTIK" -#: ../src/tutor.c:1088 +#: ../src/tutor.c:1216 msgid "Elapsed time:" msgstr "Förfluten tid:" -#: ../src/tutor.c:1089 +#: ../src/tutor.c:1217 msgid "minute and" msgid_plural "minutes and" msgstr[0] "minut och" msgstr[1] "minuter och" -#: ../src/tutor.c:1090 +#: ../src/tutor.c:1218 msgid "second" msgid_plural "seconds" msgstr[0] "sekund" msgstr[1] "sekunder" -#: ../src/tutor.c:1091 +#: ../src/tutor.c:1219 msgid "Error ratio:" msgstr "" -#: ../src/tutor.c:1091 +#: ../src/tutor.c:1219 msgid "Accuracy:" msgstr "Noggranhet:" -#: ../src/tutor.c:1112 ../src/tutor.c:1137 ../src/tutor.c:1160 -#: ../src/tutor.c:1186 +#: ../src/tutor.c:1240 ../src/tutor.c:1265 ../src/tutor.c:1288 +#: ../src/tutor.c:1314 msgid "Goal:" msgstr "Mål:" -#: ../src/tutor.c:1119 +#: ../src/tutor.c:1247 msgid "Characters per second:" msgstr "Tecken per sekund:" -#: ../src/tutor.c:1137 +#: ../src/tutor.c:1265 msgid "(CPS)" msgstr "(CPS)" -#: ../src/tutor.c:1142 +#: ../src/tutor.c:1270 msgid "Words per minute:" msgstr "Ord per minut:" -#: ../src/tutor.c:1167 +#: ../src/tutor.c:1295 msgid "Fluidness:" msgstr "Fluiditet:" -#: ../src/tutor.c:1194 +#: ../src/tutor.c:1322 msgid "Comments:" msgstr "Kommentarer:" -#: ../src/tutor.c:1676 +#: ../src/tutor.c:1804 msgid "space" msgstr "" #. Translators: the name of letter Y -#: ../src/tutor.c:1681 +#: ../src/tutor.c:1809 msgid "wye" msgstr "" #. Translators: the name of the Return key -#: ../src/tutor.c:1685 +#: ../src/tutor.c:1813 msgid "enter" msgstr "" -#: ../src/tutor.c:1691 +#: ../src/tutor.c:1819 msgid "apostrophe" msgstr "" #. Translators: double quote symbol: " -#: ../src/tutor.c:1695 +#: ../src/tutor.c:1823 msgid "quote" msgstr "" #. Translators: ampersand symbol: & -#: ../src/tutor.c:1699 +#: ../src/tutor.c:1827 msgid "ampersand" msgstr "" -#. Error frequencies or touch times -#. -#: ../src/plot.c:308 +#: ../src/plot.c:305 msgid "Character" msgstr "" @@ -1058,11 +1052,11 @@ msgid "Date & Time" msgstr "" -#: ../src/basic.c:331 +#: ../src/basic.c:326 msgid "Positions of keys seems to be learned!" msgstr "Tangenternas placering verkar vara inlärd!" -#: ../src/basic.c:332 +#: ../src/basic.c:327 msgid "" " Congratulations!\n" " You have accomplished the entire basic course.\n" @@ -1074,7 +1068,7 @@ " Fortsätt med nästa typ av övning: anpassning.\n" " Där kommer du att huvudsakligen öva noggrannhet.\n" -#: ../src/basic.c:338 +#: ../src/basic.c:333 msgid "" " All right, now you got it!\n" " Go to the next lesson.\n" @@ -1082,32 +1076,33 @@ " Helt riktigt, du har greppat!\n" " Fortsätt med nästa lektion.\n" -#: ../src/adaptability.c:217 +#: ../src/adaptability.c:213 +#, c-format msgid "" -" Your accuracy rate is below 90%...\n" +" Your accuracy rate is below %.0f%%...\n" " Could you please try again to improve it?\n" msgstr "" -#: ../src/adaptability.c:222 -#, fuzzy +#: ../src/adaptability.c:216 +#, fuzzy, c-format msgid "" " You are doing well. But...\n" -" Could you make the accuracy reach 95%?\n" +" Could you make the accuracy reach %.0f%%?\n" msgstr "" " Det går bra för dig. Men...\n" " Kan du försöka uppnå en noggrannhet på minst 95 %?\n" -#: ../src/adaptability.c:225 +#: ../src/adaptability.c:219 #, fuzzy, c-format msgid "" " You are almost there, but your accuracy rate is still below %.0f%%.\n" -" Try a few more times, or maybe you're getting upset, so go to other kind of " -"exercise.\n" +" Try a few more times, or maybe you're getting upset, so go to another kind " +"of exercise.\n" msgstr "" " Du är nästan där, men din noggrannhet är fortfarande under 98 %.\n" " Försök ytterligare några gånger så att jag kan utvärdera din hastighet.\n" -#: ../src/adaptability.c:232 +#: ../src/adaptability.c:226 #, fuzzy, c-format msgid "" " Very good!\n" @@ -1120,42 +1115,45 @@ " Nu är det dags att öka din hastighet.\n" " Gå till den 3:e övningen på huvudmenyn.\n" -#: ../src/velocity.c:313 ../src/fluidness.c:435 +#: ../src/velocity.c:312 ../src/fluidness.c:435 msgid "Pasted_or_dropped" msgstr "Inklistrad_eller_släppt" -#: ../src/velocity.c:432 +#: ../src/velocity.c:423 msgid "" " You are just beginning.\n" " Be patient, try it again every day, rest and don't worry so much:\n" " persistence and practice will improve your velocity.\n" msgstr "" -#: ../src/velocity.c:436 +#: ../src/velocity.c:427 +#, fuzzy, c-format msgid "" " Still away from the highway. You can make better...\n" -" Try at least 20 WPM.\n" +" Try to reach at least %.0f WPM.\n" msgstr "" " Fortfarande vid sidan av de stora vägarna. Du kan bättre än så...\n" " Försök nå åtminstone 20 WPM.\n" -#: ../src/velocity.c:439 +#: ../src/velocity.c:430 +#, fuzzy, c-format msgid "" " You are doing well, but need to go faster.\n" -" And don't forget the accuracy. Try to get 30 WPM.\n" +" And don't forget the accuracy. Try to get %.0f WPM.\n" msgstr "" " Det går bra för dig men du behöver bli snabbare.\n" " Glöm inte bort noggrannheten. Försök att nå 30 WPM.\n" -#: ../src/velocity.c:443 +#: ../src/velocity.c:433 +#, fuzzy, c-format msgid "" " Fine. Now you need to start running.\n" -" Can you reach 40 WPM?\n" +" Can you reach %.0f WPM?\n" msgstr "" " Fint. Nu skall du försöka springa.\n" " Kan du försöka nå 40 WPM?\n" -#: ../src/velocity.c:446 +#: ../src/velocity.c:436 #, fuzzy, c-format msgid "" " Very good. You are almost there.\n" @@ -1164,7 +1162,7 @@ " Mycket bra. Du är nästan där.\n" " Kan du till slut nå 50 WPM?\n" -#: ../src/velocity.c:451 +#: ../src/velocity.c:439 msgid "" " Excellent. For this course, that is enough.\n" " Try now the fluidness exercises, OK?\n" @@ -1172,31 +1170,34 @@ " Excellent. Tillräckligt för den här kursen.\n" " Försök nu fluiditets övningarna, OK?\n" -#: ../src/velocity.c:455 +#: ../src/velocity.c:442 +#, fuzzy, c-format msgid "" -" Fast! Are you training for a competition?\n" -" So, try to get 70 WPM!\n" +" Fast! Are you a professional?\n" +" So, try to get %.0f WPM!\n" msgstr "" " Snabbt! Tränar du för en tävling?\n" " Så, försök att nå 70 WPM!\n" -#: ../src/velocity.c:458 -msgid "" -" Top of \"qwerty\". Now it's time to change to the Dvorak mode.\n" -" Are you afraid of reaching 80 WPM?\n" +#. Translators: Speed Racer is a reference to a Japanese anime franchise +#. about automobile racing, also known as Mach GoGoGo. +#: ../src/velocity.c:447 +#, c-format +msgid " Ranking good, Speed Racer! Are you afraid of reaching %.0f WPM?\n" msgstr "" -" Toppen på \"qwerty\". Nu är det dags att byta till Dvorak moden.\n" -" Är du rädd för att nå 80 WPM?\n" -#: ../src/velocity.c:462 +#. Translators: feel free to change the reference to that martial art, if you find another good analogy. +#: ../src/velocity.c:451 +#, fuzzy, c-format msgid "" -" Dvorak mode dominated!\n" -" Can you fly at 90 WPM?\n" +" Kunf-fu mastering!\n" +" Can you fly at %.0f WPM?\n" msgstr "" " Dvorak moden avklarad!\n" " Kan du flyga på 90 WPM?\n" -#: ../src/velocity.c:466 +#. Translators: Dvorak here means that infamous ergonomic keyboard layout. +#: ../src/velocity.c:454 msgid "" " Dvorak master!\n" " I have no words to express my admiration!\n" @@ -1204,7 +1205,7 @@ " Dvorak mästare!\n" " Jag har inte ord för min beundran!\n" -#: ../src/fluidness.c:545 +#: ../src/fluidness.c:538 #, fuzzy, c-format msgid "" " You type accurately but not so fast.\n" @@ -1213,7 +1214,7 @@ " Du skriver noggrant men inte snabbt.\n" " Kan du nå 50 WPM?\n" -#: ../src/fluidness.c:548 +#: ../src/fluidness.c:541 #, fuzzy, c-format msgid "" " Your rhythm is not so constant. Calm down.\n" @@ -1222,7 +1223,7 @@ " Din rytm är inte så konstant. Ta det lugnt.\n" " Försök nu att nå en fluiditet större än 70%.\n" -#: ../src/fluidness.c:551 +#: ../src/fluidness.c:544 #, fuzzy, c-format msgid "" " You are almost getting there. Type more fluently.\n" @@ -1231,7 +1232,7 @@ " Du har nästan nått fram. Skriv mera flytande.\n" " Jag vill ha en fluditet större än 80%.\n" -#: ../src/fluidness.c:554 +#: ../src/fluidness.c:547 msgid "" " Congratulations!\n" " It seems to me that you are a professional.\n" @@ -1243,7 +1244,7 @@ " Du behöver inte detta program (mig) längre.\n" " Hoppas du har haft trevligt. Tack och var glad!\n" -#: ../src/fluidness.c:559 +#: ../src/fluidness.c:552 msgid "" " How can you type so fast?\n" " You have exceeded all my expectations.\n" @@ -1304,12 +1305,22 @@ msgid "Could not upload/download scores." msgstr "" -#~ msgid "Default" -#~ msgstr "Grundinställning" +#~ msgid "" +#~ " Top of \"qwerty\". Now it's time to change to the Dvorak mode.\n" +#~ " Are you afraid of reaching 80 WPM?\n" +#~ msgstr "" +#~ " Toppen på \"qwerty\". Nu är det dags att byta till Dvorak moden.\n" +#~ " Är du rädd för att nå 80 WPM?\n" + +#~ msgid "Press here to restart the exercise. Hotkey: [Ctrl R]" +#~ msgstr "Tryck här för att starta om övningarna. Snabbval: [Ctrl R]" #, fuzzy -#~ msgid "A flexible touch typing tutor" -#~ msgstr "Ännu en tangentbords tränare" +#~ msgid "Klavaro" +#~ msgstr "'Klavaro'" + +#~ msgid "Default" +#~ msgstr "Grundinställning" #, fuzzy #~ msgid "About..." diff -Nru klavaro-1.9.9/po/te.po klavaro-3.00/po/te.po --- klavaro-1.9.9/po/te.po 2013-08-15 13:38:51.000000000 +0000 +++ klavaro-3.00/po/te.po 2014-01-13 23:25:52.000000000 +0000 @@ -6,12 +6,12 @@ msgid "" msgstr "" "Project-Id-Version: klavaro 1.9.5-pre2\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2013-08-15 10:38-0300\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2014-01-13 21:25-0200\n" "PO-Revision-Date: 2012-07-09 10:05+0530\n" "Last-Translator: Arjuna Rao Chavala \n" "Language-Team: Telugu \n" -"Language: \n" +"Language: te\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" @@ -20,594 +20,595 @@ "X-Poedit-Country: INDIA\n" "X-Poedit-SourceCharset: utf-8\n" -#: ../data/klavaro.desktop.in.h:1 ../data/klavaro.glade.h:59 -msgid "Yet another touch typing tutor" -msgstr "" - #: ../data/klavaro.glade.h:1 -msgid "Klavaro - Main menu" -msgstr "క్లావరో - ప్రధాన మెనూ" +#, fuzzy +msgid "About 'Klavaro'" +msgstr "అంజుత గురించి" #: ../data/klavaro.glade.h:2 -msgid "Don't be shy about learning the basics!" +msgid "Yet another touch typing tutor" msgstr "" #: ../data/klavaro.glade.h:3 -msgid "Learn how to type correctly" +msgid "Remember always: someone loves you!" msgstr "" #: ../data/klavaro.glade.h:4 -msgid "Initial training for your fingers." -msgstr "" +#, fuzzy +msgid "Change language" +msgstr "భాష అభికర్త" #: ../data/klavaro.glade.h:5 -msgid "First steps with initial training" +msgid "Attention!" msgstr "" #: ../data/klavaro.glade.h:6 -msgid "Memorizing the keyboard practicing random keys exercises." -msgstr "" +#, fuzzy +msgid "Do you confirm?" +msgstr "కింది సమాచారాన్ని నిర్థారించండి:" #: ../data/klavaro.glade.h:7 -msgid "Practice with random keys" -msgstr "" +#, fuzzy +msgid "_No" +msgstr "కాదు (&N)" + +#: ../data/klavaro.glade.h:8 +#, fuzzy +msgid "_Yes" +msgstr "అవును" -#. English typo: touchs -> touches #: ../data/klavaro.glade.h:9 -msgid "Accelerating the touches practicing random words exercises." -msgstr "" +#, fuzzy +msgid "Help?" +msgstr "సహాయం" #: ../data/klavaro.glade.h:10 -msgid "Practice with random words" +msgid "This is a tip. Now you press this button to return to the main menu." msgstr "" #: ../data/klavaro.glade.h:11 -msgid "Becoming proficient practicing complete paragraphs exercises." -msgstr "" +#, fuzzy +msgid "B_ack to menu" +msgstr "డీవీడీ మెనూకు వెళ్ళు" #: ../data/klavaro.glade.h:12 -msgid "Practice with complete texts" +msgid "" +"The main menu of the application is very straightforward. Just select the " +"type of exercise you wish to take. Do not worry about clicking any button on " +"the screen. The buttons will never hurt you!" msgstr "" #: ../data/klavaro.glade.h:13 msgid "" -"Keyboard layout for modules 1 and 2. Also used informatively in the " -"fluidness contest." +"Also the controls have tips which will appear if you hover over them with " +"your mouse. These tips can come in very handy. To see how these tips work, " +"position your mouse over the button below, and without clicking, wait for " +"the tip to appear..." msgstr "" #: ../data/klavaro.glade.h:14 -msgid "_Keyboard:" -msgstr "కీబోర్డ్‍ :" +#, fuzzy +msgid "Klavaro - Select file" +msgstr "ఒక చిత్రం ఫైల్ను ఎంచుకోండి" #: ../data/klavaro.glade.h:15 #, fuzzy -msgid "Language for modules 3 and 4." -msgstr "మెనూలు మరియు విండోల కొరకు భాష:" +msgid "_Cancel" +msgstr "రద్దుచేయి (&C)" #: ../data/klavaro.glade.h:16 -msgid "_Language:" -msgstr "భాష(_L)" +#, fuzzy +msgid "_Open" +msgstr "తెరువుము (_O)" #: ../data/klavaro.glade.h:17 -msgid "Variant" -msgstr "" +#, fuzzy +msgid "Re_name:" +msgstr "రచయిత పేరు" #: ../data/klavaro.glade.h:18 -msgid "Klavaro" -msgstr "క్లావరో" +#, fuzzy +msgid "Rename the selected item." +msgstr "ఎంచుకున్న అంశాన్ని తొలగించు" #: ../data/klavaro.glade.h:19 -#, fuzzy -msgid "Country / Custom" -msgstr "అనురూపిత ఇష్టాంశాలు (&B)" +msgid "" +"Read a text file and add a copy of it here. The file must be encoded in " +"UTF-8." +msgstr "" #: ../data/klavaro.glade.h:20 #, fuzzy -msgid "Your language here." -msgstr "మాధ్యమాన్ని ఇక్కడ వదులు" +msgid "_Open text file" +msgstr "ఇటీవలి ఫైళ్ను తెరవండి" #: ../data/klavaro.glade.h:21 -msgid "Speech" -msgstr "శబ్దం" +msgid "Paste text that was copied to the clipboard." +msgstr "" #: ../data/klavaro.glade.h:22 -msgid "Little tip about this program." -msgstr "" +#, fuzzy +msgid "_Paste from clipboard" +msgstr "క్లిప్‌బోర్డు నుండి స్థానాన్ని తెరువు (&L)" #: ../data/klavaro.glade.h:23 -msgid "_Help" -msgstr "సహాయం(_H)" +#, fuzzy +msgid "Remove the selected item." +msgstr "ఎంచుకున్న అంశాన్ని తొలగించు" #: ../data/klavaro.glade.h:24 -msgid "General information about the program." -msgstr "" +#, fuzzy +msgid "_Remove copied file" +msgstr "ఫైలు/డైరెక్టరీ తొలగించు" #: ../data/klavaro.glade.h:25 -msgid "_About..." -msgstr "గురించి(_A)" +msgid "Apply the selected item to create an exercise." +msgstr "" #: ../data/klavaro.glade.h:26 #, fuzzy -msgid "Exit the application immediately." -msgstr "ఈ కార్యక్షేత్రం గురించి" +msgid "_Apply" +msgstr "అనువర్తించు (&A)" #: ../data/klavaro.glade.h:27 -msgid "_Close" -msgstr "మూసివేయి" +#, fuzzy +msgid "Close this window." +msgstr "_ఈ గవాక్షం మూసివేయు" #: ../data/klavaro.glade.h:28 -msgid "Load other exercises/lessons" -msgstr "" +msgid "_Close" +msgstr "మూసివేయి" #: ../data/klavaro.glade.h:29 #, fuzzy -msgid "_Other texts" -msgstr "ఇతర కూర్పుల:" +msgid "Country / Custom" +msgstr "అనురూపిత ఇష్టాంశాలు (&B)" #: ../data/klavaro.glade.h:30 -msgid "_Lesson:" +msgid "Variant" msgstr "" #: ../data/klavaro.glade.h:31 -msgid "Edit the character set to be used in this lesson." -msgstr "" +#, fuzzy +msgid "Remove the selected custom layout." +msgstr "ఎంచుకున్న అంశాన్ని తొలగించు" #: ../data/klavaro.glade.h:32 -msgid "Edit the character set to be used in lessons 44 through 50." -msgstr "" +#, fuzzy +msgid "_Remove" +msgstr "తీసివేయి (_R)" #: ../data/klavaro.glade.h:33 -msgid "This is a specific exercise, adjusted to your error profile." +msgid "" +"Toggles the shift effect on the keys. Alternates between the upper and lower " +"characters of the keys." msgstr "" -#: ../data/klavaro.glade.h:34 ../src/tutor.c:252 -msgid "Drag and drop text here to practice with it." -msgstr "" +#: ../data/klavaro.glade.h:34 +#, fuzzy +msgid "SPACE BAR" +msgstr "స్థితి పట్టీ" -#: ../data/klavaro.glade.h:35 -msgid "Press here to restart the exercise. Hotkey: [Ctrl R]" +#: ../data/klavaro.glade.h:35 ../src/keyboard.c:1630 +msgid "thumbs" msgstr "" #: ../data/klavaro.glade.h:36 -msgid "Show the virtual keyboard and the relation between fingers and keys." -msgstr "" +#, fuzzy +msgid "Ctrl" +msgstr "Ctrl-C" #: ../data/klavaro.glade.h:37 -#, fuzzy -msgid "_Keyboard" -msgstr "ఇంగ్లీష్/కీబోర్డ్‍" +msgid "Caps" +msgstr "" #: ../data/klavaro.glade.h:38 -msgid "Select the font to be used in the exercise window." -msgstr "" +#, fuzzy +msgid "S_ave as:" +msgstr "ఇలా భద్రపరుచు...(&S)" #: ../data/klavaro.glade.h:39 #, fuzzy -msgid "_Font" -msgstr "అక్షరశైలి" +msgid "Show previous screen." +msgstr "స్ప్లాష్ తెర చూపవద్దు" #: ../data/klavaro.glade.h:40 -msgid "Keep this checked if you want to get those nice beeps." -msgstr "" +#, fuzzy +msgid "_Previous step" +msgstr "ఒక అడుగు మీదకు" #: ../data/klavaro.glade.h:41 -msgid "_Beep" -msgstr "" +#, fuzzy +msgid "Show next screen." +msgstr "స్ప్లాష్ తెర చూపవద్దు" #: ../data/klavaro.glade.h:42 #, fuzzy -msgid "Co_urse information" -msgstr "లైసెన్స్ సమాచారాన్ని జోడించు:" +msgid "_Next step" +msgstr "ఒక అడుగు మీదకు" #: ../data/klavaro.glade.h:43 -msgid "Charts showing the learning progress along the exercises." -msgstr "" +#, fuzzy +msgid "Return without any modification." +msgstr "డీవీడీ మెనూకు వెళ్ళు" #: ../data/klavaro.glade.h:44 -#, fuzzy -msgid "_Progress" -msgstr "పురోగమనం" +msgid "Save the current keyboard layout with the name specified above." +msgstr "" #: ../data/klavaro.glade.h:45 -msgid "Show local and external scores from other users." -msgstr "" +#, fuzzy +msgid "_Save and use" +msgstr "భద్రపరచి కొనసాగు" #: ../data/klavaro.glade.h:46 -#, fuzzy -msgid "_Top 10" -msgstr "10 MHz" +msgid "" +"If you like those beautiful hands, click here to close this window keeping " +"them." +msgstr "" #: ../data/klavaro.glade.h:47 #, fuzzy -msgid "Return to the main menu." -msgstr "డీవీడీ మెనూకు వెళ్ళు" +msgid "_Keep hands" +msgstr "లక్ష్య మార్గం ఉంచండి:" #: ../data/klavaro.glade.h:48 -#, fuzzy -msgid "B_ack to menu" -msgstr "డీవీడీ మెనూకు వెళ్ళు" +msgid "Klavaro - Main menu" +msgstr "క్లావరో - ప్రధాన మెనూ" #: ../data/klavaro.glade.h:49 -#, fuzzy -msgid "Close this window." -msgstr "_ఈ గవాక్షం మూసివేయు" +msgid "Don't be shy about learning the basics!" +msgstr "" #: ../data/klavaro.glade.h:50 -#, fuzzy -msgid "Font definition" -msgstr "ఫాంటు రంగు" +msgid "Learn how to type correctly" +msgstr "" #: ../data/klavaro.glade.h:51 -#, fuzzy -msgid "Top 10" -msgstr "10 MHz" +msgid "Initial training for your fingers." +msgstr "" #: ../data/klavaro.glade.h:52 -#, fuzzy -msgid "Show extra information" -msgstr "లైసెన్స్ సమాచారాన్ని జోడించు:" +msgid "First steps with initial training" +msgstr "" #: ../data/klavaro.glade.h:53 -#, fuzzy -msgid "Hide extra information" -msgstr "లైసెన్స్ సమాచారాన్ని జోడించు:" +msgid "Memorizing the keyboard practicing random keys exercises." +msgstr "" #: ../data/klavaro.glade.h:54 -msgid "Publish to the web your local scores." +msgid "Practice with random keys" msgstr "" #: ../data/klavaro.glade.h:55 -msgid "_Participate" +msgid "Accelerating the touches practicing random words exercises." msgstr "" #: ../data/klavaro.glade.h:56 -msgid "Download from the web the most up to date ranking." +msgid "Practice with random words" msgstr "" #: ../data/klavaro.glade.h:57 -#, fuzzy -msgid "_Update" -msgstr "నవీకరించు (_U)" +msgid "Becoming proficient practicing complete paragraphs exercises." +msgstr "" #: ../data/klavaro.glade.h:58 -#, fuzzy -msgid "About 'Klavaro'" -msgstr "అంజుత గురించి" +msgid "Practice with complete texts" +msgstr "" -#: ../data/klavaro.glade.h:60 -msgid "Remember always: someone loves you!" +#: ../data/klavaro.glade.h:59 +msgid "" +"Keyboard layout for modules 1 and 2. Also used informatively in the " +"fluidness contest." msgstr "" +#: ../data/klavaro.glade.h:60 +msgid "_Keyboard:" +msgstr "కీబోర్డ్‍ :" + #: ../data/klavaro.glade.h:61 -msgid "Remove the selected custom layout." -msgstr "" +#, fuzzy +msgid "Language for modules 3 and 4." +msgstr "మెనూలు మరియు విండోల కొరకు భాష:" #: ../data/klavaro.glade.h:62 -#, fuzzy -msgid "_Remove" -msgstr "తీసివేయి (_R)" +msgid "_Language:" +msgstr "భాష(_L)" #: ../data/klavaro.glade.h:63 -msgid "" -"Toggles the shift effect on the keys. Alternates between the upper and lower " -"characters of the keys." -msgstr "" +msgid "Speech" +msgstr "శబ్దం" #: ../data/klavaro.glade.h:64 #, fuzzy -msgid "SPACE BAR" -msgstr "స్థితి పట్టీ" +msgid "Your language here." +msgstr "మాధ్యమాన్ని ఇక్కడ వదులు" -#: ../data/klavaro.glade.h:65 ../src/keyboard.c:1630 -msgid "thumbs" +#: ../data/klavaro.glade.h:65 +msgid "Little tip about this program." msgstr "" #: ../data/klavaro.glade.h:66 -#, fuzzy -msgid "Ctrl" -msgstr "Ctrl-C" +msgid "_Help" +msgstr "సహాయం(_H)" #: ../data/klavaro.glade.h:67 -msgid "Caps" +msgid "General information about the program." msgstr "" #: ../data/klavaro.glade.h:68 -#, fuzzy -msgid "S_ave as:" -msgstr "ఇలా భద్రపరుచు...(&S)" +msgid "_About..." +msgstr "గురించి(_A)" #: ../data/klavaro.glade.h:69 #, fuzzy -msgid "Show previous screen." -msgstr "స్ప్లాష్ తెర చూపవద్దు" +msgid "Exit the application immediately." +msgstr "ఈ కార్యక్షేత్రం గురించి" #: ../data/klavaro.glade.h:70 #, fuzzy -msgid "_Previous step" -msgstr "ఒక అడుగు మీదకు" +msgid "Klavaro - Progress" +msgstr "పురోగమన నిర్థేశి" #: ../data/klavaro.glade.h:71 -#, fuzzy -msgid "Show next screen." -msgstr "స్ప్లాష్ తెర చూపవద్దు" +msgid "_Lesson:" +msgstr "" #: ../data/klavaro.glade.h:72 #, fuzzy -msgid "_Next step" -msgstr "ఒక అడుగు మీదకు" +msgid "Value" +msgstr "విలువ" #: ../data/klavaro.glade.h:73 -msgid "Return without any modification." +msgid "Close this window, returning to the exercise." msgstr "" #: ../data/klavaro.glade.h:74 -#, fuzzy -msgid "_Cancel" -msgstr "రద్దుచేయి (&C)" +msgid "Clear all the progress data, for every module." +msgstr "" #: ../data/klavaro.glade.h:75 -msgid "Save the current keyboard layout with the name specified above." -msgstr "" +#, fuzzy +msgid "_Reset" +msgstr "మళ్ళీ అమర్చు" #: ../data/klavaro.glade.h:76 #, fuzzy -msgid "_Save and use" -msgstr "భద్రపరచి కొనసాగు" +msgid "Top 10" +msgstr "10 MHz" #: ../data/klavaro.glade.h:77 -msgid "" -"If you like those beautiful hands, click here to close this window keeping " -"them." -msgstr "" +#, fuzzy +msgid "Show extra information." +msgstr "లైసెన్స్ సమాచారాన్ని జోడించు:" #: ../data/klavaro.glade.h:78 #, fuzzy -msgid "_Keep hands" -msgstr "లక్ష్య మార్గం ఉంచండి:" +msgid "Hide extra information." +msgstr "లైసెన్స్ సమాచారాన్ని జోడించు:" #: ../data/klavaro.glade.h:79 -#, fuzzy -msgid "Change language" -msgstr "భాష అభికర్త" +msgid "Publish to the web your local scores." +msgstr "" #: ../data/klavaro.glade.h:80 -msgid "Attention!" +msgid "_Participate" msgstr "" #: ../data/klavaro.glade.h:81 -#, fuzzy -msgid "Do you confirm?" -msgstr "కింది సమాచారాన్ని నిర్థారించండి:" +msgid "Download from the web the most up to date ranking." +msgstr "" #: ../data/klavaro.glade.h:82 #, fuzzy -msgid "_No" -msgstr "కాదు (&N)" +msgid "_Update" +msgstr "నవీకరించు (_U)" #: ../data/klavaro.glade.h:83 -#, fuzzy -msgid "_Yes" -msgstr "అవును" +msgid "Load other exercises/lessons" +msgstr "" #: ../data/klavaro.glade.h:84 #, fuzzy -msgid "Re_name:" -msgstr "రచయిత పేరు" +msgid "_Other texts" +msgstr "ఇతర కూర్పుల:" #: ../data/klavaro.glade.h:85 -#, fuzzy -msgid "Rename the selected item." -msgstr "ఎంచుకున్న అంశాన్ని తొలగించు" +msgid "Edit the character set to be used in this lesson." +msgstr "" #: ../data/klavaro.glade.h:86 -msgid "" -"Read a text file and add a copy of it here. The file must be encoded in " -"UTF-8." +msgid "This is a specific exercise, adjusted to your error profile." msgstr "" #: ../data/klavaro.glade.h:87 -#, fuzzy -msgid "_Open text file" -msgstr "ఇటీవలి ఫైళ్ను తెరవండి" +msgid "" +"Edit the character set to be used in lessons after 43: they are customizable!" +msgstr "" -#: ../data/klavaro.glade.h:88 -msgid "Paste text that was copied to the clipboard." +#: ../data/klavaro.glade.h:88 ../src/tutor.c:376 +msgid "Drag and drop text here to practice with it." msgstr "" #: ../data/klavaro.glade.h:89 -#, fuzzy -msgid "_Paste from clipboard" -msgstr "క్లిప్‌బోర్డు నుండి స్థానాన్ని తెరువు (&L)" +msgid "Press here to restart the exercise. Hotkey: [Ctrl-R]" +msgstr "" #: ../data/klavaro.glade.h:90 -#, fuzzy -msgid "Remove the selected item." -msgstr "ఎంచుకున్న అంశాన్ని తొలగించు" +msgid "Show the virtual keyboard and the relation between fingers and keys." +msgstr "" #: ../data/klavaro.glade.h:91 #, fuzzy -msgid "_Remove copied file" -msgstr "ఫైలు/డైరెక్టరీ తొలగించు" +msgid "_Keyboard" +msgstr "ఇంగ్లీష్/కీబోర్డ్‍" #: ../data/klavaro.glade.h:92 -msgid "Apply the selected item to create an exercise." +msgid "Select the font to be used in the exercise window." msgstr "" #: ../data/klavaro.glade.h:93 #, fuzzy -msgid "_Apply" -msgstr "అనువర్తించు (&A)" +msgid "Font definition" +msgstr "ఫాంటు రంగు" #: ../data/klavaro.glade.h:94 -#, fuzzy -msgid "Klavaro - Progress" -msgstr "పురోగమన నిర్థేశి" +msgid "Keep this checked if you want to get those nice beeps." +msgstr "" #: ../data/klavaro.glade.h:95 -#, fuzzy -msgid "Value" -msgstr "విలువ" +msgid "_Beep" +msgstr "" #: ../data/klavaro.glade.h:96 -msgid "Clear all the progress data, for every module." -msgstr "" +#, fuzzy +msgid "Co_urse information" +msgstr "లైసెన్స్ సమాచారాన్ని జోడించు:" #: ../data/klavaro.glade.h:97 -#, fuzzy -msgid "_Reset" -msgstr "మళ్ళీ అమర్చు" +msgid "Charts showing the learning progress along the exercises." +msgstr "" #: ../data/klavaro.glade.h:98 -msgid "Close this window, returning to the exercise." -msgstr "" +#, fuzzy +msgid "_Progress" +msgstr "పురోగమనం" #: ../data/klavaro.glade.h:99 #, fuzzy -msgid "Klavaro - Select file" -msgstr "ఒక చిత్రం ఫైల్ను ఎంచుకోండి" +msgid "Return to the main menu." +msgstr "డీవీడీ మెనూకు వెళ్ళు" #: ../data/klavaro.glade.h:100 -#, fuzzy -msgid "_Open" -msgstr "తెరువుము (_O)" +msgid "Show local and external scores from other users." +msgstr "" #: ../data/klavaro.glade.h:101 #, fuzzy -msgid "Help?" -msgstr "సహాయం" - -#: ../data/klavaro.glade.h:102 -msgid "" -"The main menu of the application is very straightforward. Just select the " -"type of exercise you wish to take. Do not worry about clicking any button on " -"the screen. The buttons will never hurt you!" -msgstr "" +msgid "_Top 10" +msgstr "10 MHz" -#: ../data/klavaro.glade.h:103 -msgid "" -"Also the controls have tips which will appear if you hover over them with " -"your mouse. These tips can come in very handy. To see how these tips work, " -"position your mouse over the button below, and without clicking, wait for " -"the tip to appear..." +#: ../data/klavaro.desktop.in.h:1 +msgid "A very flexible and efficient touch typing tutor." msgstr "" -#: ../data/klavaro.glade.h:104 -msgid "This is a tip. Now you press this button to return to the main menu." -msgstr "" +#. Translators: these are keywords related to the program. CAI above means Computer Aided Instruction. Feel free to add and/or change the keywords in your language. +#: ../data/klavaro.desktop.in.h:3 +#, fuzzy +msgid "keyboard;typing;tutor;CAI" +msgstr "ఇంగ్లీష్/కీబోర్డ్‍" -#: ../src/main.c:314 +#: ../src/main.c:242 #, fuzzy msgid "(Custom)" msgstr "మలచిన" -#: ../src/main.c:315 +#: ../src/main.c:243 #, fuzzy msgid "(Edit custom)" msgstr "అనురూపిత ఇష్టాంశాలు (&B)" -#: ../src/main.c:316 +#: ../src/main.c:244 #, fuzzy msgid "(Default)" msgstr "అప్రమేయం" -#: ../src/main.c:393 +#: ../src/main.c:321 #, c-format msgid "Dictation mode (depends on this speech synthesizer: %s)" msgid_plural "Dictation mode (depends on one of these speech synthesizers: %s)" msgstr[0] "" msgstr[1] "" -#. Set main labels (for translation) -#. -#: ../src/main.c:435 ../src/keyboard.c:1291 +#: ../src/main.c:364 ../src/keyboard.c:1291 #, fuzzy msgid "Introduction" msgstr "ప్రవేశ పుట" -#: ../src/main.c:438 ../src/top10.c:109 +#: ../src/main.c:367 ../src/top10.c:109 #, fuzzy msgid "Basic course" msgstr "ప్రాథమిక సమాచారం" -#: ../src/main.c:441 ../src/top10.c:112 +#: ../src/main.c:370 ../src/top10.c:112 msgid "Adaptability" msgstr "" -#: ../src/main.c:444 ../src/callbacks.c:1310 ../src/top10.c:89 +#: ../src/main.c:373 ../src/callbacks.c:1226 ../src/top10.c:89 #: ../src/top10.c:115 #, fuzzy msgid "Speed" msgstr "బంతి వేగం" -#: ../src/main.c:447 ../src/callbacks.c:1333 ../src/top10.c:91 +#: ../src/main.c:376 ../src/callbacks.c:1249 ../src/top10.c:91 #: ../src/top10.c:118 msgid "Fluidity" msgstr "" -#: ../src/callbacks.c:468 ../src/tutor.c:391 +#: ../src/callbacks.c:407 ../src/tutor.c:515 #, fuzzy msgid "Keys:" msgstr "ఎంపికచేసిన కీలు(_K):" -#: ../src/callbacks.c:858 ../src/callbacks.c:874 +#: ../src/callbacks.c:774 ../src/callbacks.c:790 msgid "Connecting..." msgstr "" -#: ../src/callbacks.c:1145 +#: ../src/callbacks.c:1061 #, fuzzy msgid "Overwrite user layout" msgstr "(_L)డాక్ నమూనా లాక్ చేస్తారు" -#: ../src/callbacks.c:1147 +#: ../src/callbacks.c:1063 msgid "This will OVERWRITE an existent keyboard layout." msgstr "" -#: ../src/callbacks.c:1154 +#: ../src/callbacks.c:1070 #, fuzzy msgid "Remove user layout" msgstr "(_L)డాక్ నమూనా లాక్ చేస్తారు" -#: ../src/callbacks.c:1156 +#: ../src/callbacks.c:1072 msgid "This will REMOVE an existent keyboard layout." msgstr "" -#: ../src/callbacks.c:1163 +#: ../src/callbacks.c:1079 #, fuzzy msgid "Reset progress data" msgstr "డేటా పొందడాన్ని జోడించు" -#: ../src/callbacks.c:1164 +#: ../src/callbacks.c:1080 msgid "This will DELETE all the progress data shown in the charts." msgstr "" -#: ../src/callbacks.c:1307 ../src/top10.c:87 +#: ../src/callbacks.c:1223 ../src/top10.c:87 msgid "Accuracy" msgstr "" -#: ../src/callbacks.c:1310 ../src/tutor.c:1160 +#: ../src/callbacks.c:1226 ../src/tutor.c:1288 msgid "(WPM)" msgstr "" -#: ../src/callbacks.c:1321 +#: ../src/callbacks.c:1237 #, fuzzy msgid "Errors" msgstr "దోషాలు" -#: ../src/callbacks.c:1324 +#: ../src/callbacks.c:1240 msgid "Touch times (s)" msgstr "" -#: ../src/callbacks.c:1336 ../src/tutor.c:1187 ../src/top10.c:69 +#: ../src/callbacks.c:1252 ../src/tutor.c:1315 ../src/top10.c:69 #, fuzzy msgid "Score" msgstr "స్కోరు" #. Translators: your language code (first 2 letters of your po-file) -#: ../src/translation.c:423 ../src/translation.c:489 ../src/tutor.c:1597 +#: ../src/translation.c:485 ../src/tutor.c:1725 msgid "en" msgstr "" -#: ../src/translation.c:576 +#: ../src/translation.c:572 msgid "" "The basic course focuses on having you read the characters presented to you " "on screen and typing the corresponding keys. Remember to keep your hands " @@ -615,59 +616,59 @@ "introduction on main menu)." msgstr "" -#: ../src/translation.c:580 +#: ../src/translation.c:576 msgid "" "The key set used in each series will be shown in the above message line. The " "[Space], [Shift] and [Enter] keys may not show up there but are used very " "often." msgstr "" -#: ../src/translation.c:583 +#: ../src/translation.c:579 msgid "" "The message line below follows and echoes your key presses. If required, it " "changes and displays instructions for actions required from you." msgstr "" -#: ../src/translation.c:587 +#: ../src/translation.c:583 msgid "" "Here you may practice and improve your memorization of all keys. There will " "be sentences presented with nonsense words which mix some numbers and " "symbols." msgstr "" -#: ../src/translation.c:590 +#: ../src/translation.c:586 msgid "" "In order to keep the lesson contents language and keyboard independent, " "accented letter combinations will probably not appear. For real word " "sentences, please use the fourth option of the main menu (about fluidness)." msgstr "" -#: ../src/translation.c:594 +#: ../src/translation.c:590 msgid "" "After each exercise there will be a brief statistics panel reviewing your " "performance along with some relevant comments." msgstr "" -#: ../src/translation.c:598 +#: ../src/translation.c:594 msgid "" "This exercise is very similar to the second one, for adaptability. The " "difference is that here you'll type real words." msgstr "" -#: ../src/translation.c:601 +#: ../src/translation.c:597 msgid "" "The default language is the actual one of the interface. But you may select " "any other texts with words you would like to use. Press the 'Other' option " "above and add files containing those texts." msgstr "" -#: ../src/translation.c:605 +#: ../src/translation.c:601 msgid "" "With this exercise the focus is on speed. So, you are supposed to type " "really fast and I will only flatter you when you deserve it!" msgstr "" -#: ../src/translation.c:609 +#: ../src/translation.c:605 msgid "" "We will now use complete sentences and paragraphs which make logical sense. " "This may distract you while you type if you try to understand what you are " @@ -675,7 +676,7 @@ "interpreting and analyzing the content." msgstr "" -#: ../src/translation.c:613 +#: ../src/translation.c:609 msgid "" "We do not mean to imply that the typists must behave like a robot, without " "understanding what they type. We do aim to develop the skill of typing, " @@ -685,8 +686,7 @@ "real meaning of the text." msgstr "" -#. English typo: minimun -> minimum -#: ../src/translation.c:618 +#: ../src/translation.c:613 msgid "" "These exercises are longer. Each exercise consists of three paragraphs and " "the emphasis is placed on correctness and rhythm, with a minimum speed " @@ -694,7 +694,6 @@ "any mistakes. In other words, only input without error will be accepted." msgstr "" -#. English typo: recomendations -> recommendations #: ../src/keyboard.c:1094 msgid "" "Correct positioning of the hands and fingers is very important to efficient " @@ -766,14 +765,12 @@ msgid "Step %i" msgstr "ఒక అడుగు మీదకు" -#. Recommendations -#: ../src/keyboard.c:1140 +#: ../src/keyboard.c:1142 #, fuzzy msgid "To position the hands" msgstr "బలవంతపు ఉపశీర్షిక స్థానం" -#. Final words -#: ../src/keyboard.c:1225 +#: ../src/keyboard.c:1227 #, fuzzy msgid "Go ahead!" msgstr "వెళ్ళండి" @@ -818,178 +815,175 @@ msgid "Press and edit me" msgstr "" -#: ../src/tutor.c:176 +#: ../src/tutor.c:300 msgid "Lesson:" msgstr "" -#: ../src/tutor.c:186 +#: ../src/tutor.c:310 msgid "Paragraphs:" msgstr "" -#: ../src/tutor.c:219 +#: ../src/tutor.c:343 #, fuzzy msgid "Klavaro - Basic Course" msgstr "ప్రాథమిక ఆటో టూల్స్ ప్లగ్ఇన్ నిర్మించడానికి" -#: ../src/tutor.c:224 +#: ../src/tutor.c:348 msgid "Klavaro - Adaptability" msgstr "" -#: ../src/tutor.c:227 +#: ../src/tutor.c:351 msgid "" "Adaptability exercises: automating the fingers responses, typing over all " "the keyboard." msgstr "" -#: ../src/tutor.c:232 +#: ../src/tutor.c:356 msgid "Klavaro - Velocity" msgstr "" -#: ../src/tutor.c:233 +#: ../src/tutor.c:357 msgid "Velocity exercises: accelerate typing real words." msgstr "" -#: ../src/tutor.c:237 +#: ../src/tutor.c:361 msgid "Klavaro - Fluidness" msgstr "" -#: ../src/tutor.c:239 +#: ../src/tutor.c:363 msgid "Fluidness exercises: accuracy typing good sense paragraphs." msgstr "" -#: ../src/tutor.c:301 +#: ../src/tutor.c:425 msgid "End of exercise. Press [Enter] to start another." msgstr "" -#: ../src/tutor.c:329 +#: ../src/tutor.c:453 #, fuzzy msgid "Learning the key positions." msgstr "ట్రిగ్గర్-కీ ఉపయోగించి ఒక స్నిప్పెట్ను ప్రవేశింపజేయుము" -#: ../src/tutor.c:332 +#: ../src/tutor.c:456 msgid "Press any key to start the exercise. " msgstr "" -#: ../src/tutor.c:440 ../src/tutor.c:443 +#: ../src/tutor.c:567 ../src/tutor.c:570 msgid "Start typing when you are ready. " msgstr "" -#: ../src/tutor.c:441 +#: ../src/tutor.c:568 msgid "Use backspace to correct errors." msgstr "" -#: ../src/tutor.c:885 +#: ../src/tutor.c:1012 #, c-format msgid "" "ps.: logging not performed for this session: the number of typed characters " "(%i) must be greater than %i." msgstr "" -#: ../src/tutor.c:1027 +#: ../src/tutor.c:1154 msgid "ps.: you have entered the Top 10 list, great!" msgstr "" -#: ../src/tutor.c:1039 +#: ../src/tutor.c:1166 msgid "" "ps.: the text you just typed doesn't seem to be similar to ordinary texts in " "the language currently selected: we can't account for it in the 'Top 10' " "contest." msgstr "" -#. Begin the accuracy -#: ../src/tutor.c:1087 +#: ../src/tutor.c:1215 #, fuzzy msgid "STATISTICS" msgstr "గణాంకాలు" -#: ../src/tutor.c:1088 +#: ../src/tutor.c:1216 #, fuzzy msgid "Elapsed time:" msgstr "మిగిలిన సమయం" -#: ../src/tutor.c:1089 +#: ../src/tutor.c:1217 msgid "minute and" msgid_plural "minutes and" msgstr[0] " నిముషము మరియు" msgstr[1] " నిముషాలు మరియు" -#: ../src/tutor.c:1090 +#: ../src/tutor.c:1218 #, fuzzy msgid "second" msgid_plural "seconds" msgstr[0] "రెండవ మార్గం:" msgstr[1] "" -#: ../src/tutor.c:1091 +#: ../src/tutor.c:1219 #, fuzzy msgid "Error ratio:" msgstr "రూప నిష్పత్తి (&A)" -#: ../src/tutor.c:1091 +#: ../src/tutor.c:1219 msgid "Accuracy:" msgstr "" -#: ../src/tutor.c:1112 ../src/tutor.c:1137 ../src/tutor.c:1160 -#: ../src/tutor.c:1186 +#: ../src/tutor.c:1240 ../src/tutor.c:1265 ../src/tutor.c:1288 +#: ../src/tutor.c:1314 msgid "Goal:" msgstr "" -#: ../src/tutor.c:1119 +#: ../src/tutor.c:1247 #, fuzzy msgid "Characters per second:" msgstr "సెకనుకు చట్రాలు" -#: ../src/tutor.c:1137 +#: ../src/tutor.c:1265 msgid "(CPS)" msgstr "" -#: ../src/tutor.c:1142 +#: ../src/tutor.c:1270 #, fuzzy msgid "Words per minute:" msgstr "బిట్స్ పర్ సాంపిల్" -#: ../src/tutor.c:1167 +#: ../src/tutor.c:1295 msgid "Fluidness:" msgstr "" -#: ../src/tutor.c:1194 +#: ../src/tutor.c:1322 #, fuzzy msgid "Comments:" msgstr "వ్యాఖ్యలు" -#: ../src/tutor.c:1676 +#: ../src/tutor.c:1804 #, fuzzy msgid "space" msgstr "(_W)ఖాళీ" #. Translators: the name of letter Y -#: ../src/tutor.c:1681 +#: ../src/tutor.c:1809 msgid "wye" msgstr "" #. Translators: the name of the Return key -#: ../src/tutor.c:1685 +#: ../src/tutor.c:1813 #, fuzzy msgid "enter" msgstr "ఒక URL ను ఎంటర్ చెయ్యండి" -#: ../src/tutor.c:1691 +#: ../src/tutor.c:1819 msgid "apostrophe" msgstr "" #. Translators: double quote symbol: " -#: ../src/tutor.c:1695 +#: ../src/tutor.c:1823 msgid "quote" msgstr "" #. Translators: ampersand symbol: & -#: ../src/tutor.c:1699 +#: ../src/tutor.c:1827 msgid "ampersand" msgstr "" -#. Error frequencies or touch times -#. -#: ../src/plot.c:308 +#: ../src/plot.c:305 #, fuzzy msgid "Character" msgstr "అక్షరము" @@ -999,11 +993,11 @@ msgid "Date & Time" msgstr "రచయిత/తేది-సమయం" -#: ../src/basic.c:331 +#: ../src/basic.c:326 msgid "Positions of keys seems to be learned!" msgstr "" -#: ../src/basic.c:332 +#: ../src/basic.c:327 msgid "" " Congratulations!\n" " You have accomplished the entire basic course.\n" @@ -1011,33 +1005,35 @@ " There you will practice mainly the accuracy.\n" msgstr "" -#: ../src/basic.c:338 +#: ../src/basic.c:333 msgid "" " All right, now you got it!\n" " Go to the next lesson.\n" msgstr "" -#: ../src/adaptability.c:217 +#: ../src/adaptability.c:213 +#, c-format msgid "" -" Your accuracy rate is below 90%...\n" +" Your accuracy rate is below %.0f%%...\n" " Could you please try again to improve it?\n" msgstr "" -#: ../src/adaptability.c:222 +#: ../src/adaptability.c:216 +#, c-format msgid "" " You are doing well. But...\n" -" Could you make the accuracy reach 95%?\n" +" Could you make the accuracy reach %.0f%%?\n" msgstr "" -#: ../src/adaptability.c:225 +#: ../src/adaptability.c:219 #, c-format msgid "" " You are almost there, but your accuracy rate is still below %.0f%%.\n" -" Try a few more times, or maybe you're getting upset, so go to other kind of " -"exercise.\n" +" Try a few more times, or maybe you're getting upset, so go to another kind " +"of exercise.\n" msgstr "" -#: ../src/adaptability.c:232 +#: ../src/adaptability.c:226 #, c-format msgid "" " Very good!\n" @@ -1046,95 +1042,103 @@ " Go to the 3rd exercise at the main menu.\n" msgstr "" -#: ../src/velocity.c:313 ../src/fluidness.c:435 +#: ../src/velocity.c:312 ../src/fluidness.c:435 #, fuzzy msgid "Pasted_or_dropped" msgstr "<సంచయం కొరకు వొక లక్ష్యం యెంపికచేయి>" -#: ../src/velocity.c:432 +#: ../src/velocity.c:423 msgid "" " You are just beginning.\n" " Be patient, try it again every day, rest and don't worry so much:\n" " persistence and practice will improve your velocity.\n" msgstr "" -#: ../src/velocity.c:436 +#: ../src/velocity.c:427 +#, c-format msgid "" " Still away from the highway. You can make better...\n" -" Try at least 20 WPM.\n" +" Try to reach at least %.0f WPM.\n" msgstr "" -#: ../src/velocity.c:439 +#: ../src/velocity.c:430 +#, c-format msgid "" " You are doing well, but need to go faster.\n" -" And don't forget the accuracy. Try to get 30 WPM.\n" +" And don't forget the accuracy. Try to get %.0f WPM.\n" msgstr "" -#: ../src/velocity.c:443 +#: ../src/velocity.c:433 +#, c-format msgid "" " Fine. Now you need to start running.\n" -" Can you reach 40 WPM?\n" +" Can you reach %.0f WPM?\n" msgstr "" -#: ../src/velocity.c:446 +#: ../src/velocity.c:436 #, c-format msgid "" " Very good. You are almost there.\n" " Can you finally reach %.0f WPM?\n" msgstr "" -#: ../src/velocity.c:451 +#: ../src/velocity.c:439 msgid "" " Excellent. For this course, that is enough.\n" " Try now the fluidness exercises, OK?\n" msgstr "" -#: ../src/velocity.c:455 +#: ../src/velocity.c:442 +#, c-format msgid "" -" Fast! Are you training for a competition?\n" -" So, try to get 70 WPM!\n" +" Fast! Are you a professional?\n" +" So, try to get %.0f WPM!\n" msgstr "" -#: ../src/velocity.c:458 -msgid "" -" Top of \"qwerty\". Now it's time to change to the Dvorak mode.\n" -" Are you afraid of reaching 80 WPM?\n" +#. Translators: Speed Racer is a reference to a Japanese anime franchise +#. about automobile racing, also known as Mach GoGoGo. +#: ../src/velocity.c:447 +#, c-format +msgid " Ranking good, Speed Racer! Are you afraid of reaching %.0f WPM?\n" msgstr "" -#: ../src/velocity.c:462 +#. Translators: feel free to change the reference to that martial art, if you find another good analogy. +#: ../src/velocity.c:451 +#, c-format msgid "" -" Dvorak mode dominated!\n" -" Can you fly at 90 WPM?\n" +" Kunf-fu mastering!\n" +" Can you fly at %.0f WPM?\n" msgstr "" -#: ../src/velocity.c:466 +#. Translators: Dvorak here means that infamous ergonomic keyboard layout. +#: ../src/velocity.c:454 msgid "" " Dvorak master!\n" " I have no words to express my admiration!\n" msgstr "" -#: ../src/fluidness.c:545 +#: ../src/fluidness.c:538 #, c-format msgid "" " You type accurately but not so fast.\n" " Can you reach %.0f WPM?\n" msgstr "" -#: ../src/fluidness.c:548 +#: ../src/fluidness.c:541 #, c-format msgid "" " Your rhythm is not so constant. Calm down.\n" " For now, try to make the fluidness greater than %i%%.\n" msgstr "" -#: ../src/fluidness.c:551 +#: ../src/fluidness.c:544 #, c-format msgid "" " You are almost getting there. Type more fluently.\n" " I want a fluidness greater than %.0f%%.\n" msgstr "" -#: ../src/fluidness.c:554 +#: ../src/fluidness.c:547 msgid "" " Congratulations!\n" " It seems to me that you are a professional.\n" @@ -1142,7 +1146,7 @@ " Hope you have enjoyed. Thanks and be happy!\n" msgstr "" -#: ../src/fluidness.c:559 +#: ../src/fluidness.c:552 msgid "" " How can you type so fast?\n" " You have exceeded all my expectations.\n" @@ -1203,5 +1207,12 @@ msgstr "" #, fuzzy +#~ msgid "_Font" +#~ msgstr "అక్షరశైలి" + +#~ msgid "Klavaro" +#~ msgstr "క్లావరో" + +#, fuzzy #~ msgid "Default" #~ msgstr "అప్రమేయం" diff -Nru klavaro-1.9.9/po/uk.po klavaro-3.00/po/uk.po --- klavaro-1.9.9/po/uk.po 2013-08-15 13:38:51.000000000 +0000 +++ klavaro-3.00/po/uk.po 2014-01-13 23:25:53.000000000 +0000 @@ -2,13 +2,13 @@ # Copyright © 2010 # This file is distributed under the same license as the klavaro package. # -# Yuri Chornoivan , 2010, 2011, 2012. +# Yuri Chornoivan , 2010, 2011, 2012, 2014. msgid "" msgstr "" -"Project-Id-Version: klavaro 1.9.5-pre2\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2013-08-15 10:38-0300\n" -"PO-Revision-Date: 2012-06-03 18:19+0300\n" +"Project-Id-Version: klavaro 3.00-pre2\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2014-01-13 21:25-0200\n" +"PO-Revision-Date: 2014-01-10 08:42+0200\n" "Last-Translator: Yuri Chornoivan \n" "Language-Team: Ukrainian \n" "Language: uk\n" @@ -19,472 +19,476 @@ "%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;\n" "X-Generator: Lokalize 1.5\n" -#: ../data/klavaro.desktop.in.h:1 ../data/klavaro.glade.h:59 -msgid "Yet another touch typing tutor" -msgstr "Ще одна програма для навчання набору наосліп" - #: ../data/klavaro.glade.h:1 -msgid "Klavaro - Main menu" -msgstr "Klavaro — головне меню" +msgid "About 'Klavaro'" +msgstr "Про «Klavaro»" #: ../data/klavaro.glade.h:2 -msgid "Don't be shy about learning the basics!" -msgstr "Не соромтеся почати з основ!" +msgid "Yet another touch typing tutor" +msgstr "Ще одна програма для навчання набору наосліп" #: ../data/klavaro.glade.h:3 -msgid "Learn how to type correctly" -msgstr "Навчіться друкувати правильно" +msgid "Remember always: someone loves you!" +msgstr "Завжди пам’ятайте: хтось вас любить!" #: ../data/klavaro.glade.h:4 -msgid "Initial training for your fingers." -msgstr "Початкове тренування для ваших пальців." +msgid "Change language" +msgstr "Змінити мову" #: ../data/klavaro.glade.h:5 -msgid "First steps with initial training" -msgstr "Перші кроки з початковим тренуванням" +msgid "Attention!" +msgstr "Увага!" #: ../data/klavaro.glade.h:6 -msgid "Memorizing the keyboard practicing random keys exercises." -msgstr "" -"Запам’ятовування розташування клавіш за допомогою вправ з натискання " -"випадкових послідовностей клавіш." +msgid "Do you confirm?" +msgstr "Підтверджуєте?" #: ../data/klavaro.glade.h:7 -msgid "Practice with random keys" -msgstr "Вправа з випадковими клавішами" +msgid "_No" +msgstr "_Ні" + +#: ../data/klavaro.glade.h:8 +msgid "_Yes" +msgstr "_Так" -#. English typo: touchs -> touches #: ../data/klavaro.glade.h:9 -msgid "Accelerating the touches practicing random words exercises." -msgstr "" -"Прискорення натискання клавіш за допомогою вправ з введення випадкових " -"послідовностей слів." +msgid "Help?" +msgstr "Допомогти?" #: ../data/klavaro.glade.h:10 -msgid "Practice with random words" -msgstr "Вправа з випадковими словами" +msgid "This is a tip. Now you press this button to return to the main menu." +msgstr "" +"Це підказка. Тепер натисніть кнопку, щоб повернутися до основного меню." #: ../data/klavaro.glade.h:11 -msgid "Becoming proficient practicing complete paragraphs exercises." -msgstr "" -"Набуття професійних навичок за допомогою вправ з введення цілих абзаців " -"тексту." +msgid "B_ack to menu" +msgstr "_Назад до меню" #: ../data/klavaro.glade.h:12 -msgid "Practice with complete texts" -msgstr "Вправа з повноцінними текстами" +msgid "" +"The main menu of the application is very straightforward. Just select the " +"type of exercise you wish to take. Do not worry about clicking any button on " +"the screen. The buttons will never hurt you!" +msgstr "" +"Пункти основного меню програми прості і зрозумілі. Просто виберіть тип " +"вправи, який вам потрібен. Не бійтеся натискати будь-які з кнопок у вікні. " +"Їх натискання цілком безпечне!" #: ../data/klavaro.glade.h:13 msgid "" -"Keyboard layout for modules 1 and 2. Also used informatively in the " -"fluidness contest." +"Also the controls have tips which will appear if you hover over them with " +"your mouse. These tips can come in very handy. To see how these tips work, " +"position your mouse over the button below, and without clicking, wait for " +"the tip to appear..." msgstr "" -"Розкладка клавіатури для модулів 1 і 2. Використовується також для вправ з " -"перемиканням." +"Крім того, для елементів керування буде показано панелі підказок, якщо ви " +"наведете на них вказівник миші. Ці підказки можуть бути дуже корисними. Щоб " +"познайомитися зі способом роботи підказок, наведіть вказівник на розташовану " +"нижче кнопку і без натискання кнопок миші зачекайте, доки буде показано " +"підказку…" #: ../data/klavaro.glade.h:14 -msgid "_Keyboard:" -msgstr "_Клавіатура:" +msgid "Klavaro - Select file" +msgstr "Klavaro — вибір файла" #: ../data/klavaro.glade.h:15 -msgid "Language for modules 3 and 4." -msgstr "Мова для модулів 3 і 4." +msgid "_Cancel" +msgstr "_Скасувати" #: ../data/klavaro.glade.h:16 -msgid "_Language:" -msgstr "_Мова:" +msgid "_Open" +msgstr "_Відкрити" #: ../data/klavaro.glade.h:17 -msgid "Variant" -msgstr "Варіант" +msgid "Re_name:" +msgstr "Пере_йменувати:" #: ../data/klavaro.glade.h:18 -msgid "Klavaro" -msgstr "Klavaro" +msgid "Rename the selected item." +msgstr "Перейменувати позначений пункт." #: ../data/klavaro.glade.h:19 -msgid "Country / Custom" -msgstr "Країна/Нетипова" +msgid "" +"Read a text file and add a copy of it here. The file must be encoded in " +"UTF-8." +msgstr "" +"Прочитати текстовий файл і додати його копію сюди. Кодуванням символів файла " +"має бути UTF-8." #: ../data/klavaro.glade.h:20 -msgid "Your language here." -msgstr "Вкажіть тут вашу мову." +msgid "_Open text file" +msgstr "_Відкрити текстовий файл" #: ../data/klavaro.glade.h:21 -msgid "Speech" -msgstr "Диктування" +msgid "Paste text that was copied to the clipboard." +msgstr "" +"Вставити фрагмент тексту, який було скопійовано до буфера обміну даними." #: ../data/klavaro.glade.h:22 -msgid "Little tip about this program." -msgstr "Невеличка підказка щодо цієї програми." +msgid "_Paste from clipboard" +msgstr "Вс_тавити з буфера" #: ../data/klavaro.glade.h:23 -msgid "_Help" -msgstr "_Довідка" +msgid "Remove the selected item." +msgstr "Вилучити позначений пункт." #: ../data/klavaro.glade.h:24 -msgid "General information about the program." -msgstr "Загальні відомості щодо програми." +msgid "_Remove copied file" +msgstr "Ви_лучити скопійований файл" #: ../data/klavaro.glade.h:25 -msgid "_About..." -msgstr "_Про програму…" +msgid "Apply the selected item to create an exercise." +msgstr "Застосувати вибраний пункт для створення вправи." #: ../data/klavaro.glade.h:26 -msgid "Exit the application immediately." -msgstr "Негайно завершити роботу програми." +msgid "_Apply" +msgstr "_Застосувати" #: ../data/klavaro.glade.h:27 -msgid "_Close" -msgstr "_Закрити" +msgid "Close this window." +msgstr "Закрити це вікно." #: ../data/klavaro.glade.h:28 -msgid "Load other exercises/lessons" -msgstr "Завантажити інші вправи або уроки" +msgid "_Close" +msgstr "_Закрити" #: ../data/klavaro.glade.h:29 -msgid "_Other texts" -msgstr "_Інші тексти" +msgid "Country / Custom" +msgstr "Країна/Нетипова" #: ../data/klavaro.glade.h:30 -msgid "_Lesson:" -msgstr "_Урок:" +msgid "Variant" +msgstr "Варіант" #: ../data/klavaro.glade.h:31 -msgid "Edit the character set to be used in this lesson." -msgstr "Змініть набір символів, який буде використано для цього уроку." +msgid "Remove the selected custom layout." +msgstr "Вилучити позначену нетипову розкладку." #: ../data/klavaro.glade.h:32 -msgid "Edit the character set to be used in lessons 44 through 50." -msgstr "Змініть набір символів, який буде використано для уроків від 44 до 50." +msgid "_Remove" +msgstr "В_илучити" #: ../data/klavaro.glade.h:33 -msgid "This is a specific exercise, adjusted to your error profile." -msgstr "Це особлива вправа, яку побудовано на основі аналізу ваших помилок." - -#: ../data/klavaro.glade.h:34 ../src/tutor.c:252 -msgid "Drag and drop text here to practice with it." +msgid "" +"Toggles the shift effect on the keys. Alternates between the upper and lower " +"characters of the keys." msgstr "" -"Перетягніть і скиньте сюди фрагмент тексту, щоб вправлятися з цим фрагментом." +"Вмикає або вимикає використання Shift для клавіш. Змінює призначення клавіш " +"з введення малих літер на введення великих, і навпаки." -#: ../data/klavaro.glade.h:35 -msgid "Press here to restart the exercise. Hotkey: [Ctrl R]" -msgstr "Натисніть тут, щоб почати вправу з початку. Скорочення: Ctrl+R" +#: ../data/klavaro.glade.h:34 +msgid "SPACE BAR" +msgstr "Пробіл" + +#: ../data/klavaro.glade.h:35 ../src/keyboard.c:1630 +msgid "thumbs" +msgstr "великі пальці" #: ../data/klavaro.glade.h:36 -msgid "Show the virtual keyboard and the relation between fingers and keys." -msgstr "Показати віртуальну клавіатуру і зв’язок між пальцями і клавішами." +msgid "Ctrl" +msgstr "Ctrl" #: ../data/klavaro.glade.h:37 -msgid "_Keyboard" -msgstr "_Клавіатура" +msgid "Caps" +msgstr "Caps" #: ../data/klavaro.glade.h:38 -msgid "Select the font to be used in the exercise window." -msgstr "Виберіть шрифт, який буде використано у вікні вправ." +msgid "S_ave as:" +msgstr "Зберегти _як:" #: ../data/klavaro.glade.h:39 -msgid "_Font" -msgstr "_Шрифт" +msgid "Show previous screen." +msgstr "Показати попередню сторінку." #: ../data/klavaro.glade.h:40 -msgid "Keep this checked if you want to get those nice beeps." -msgstr "Не знімайте позначки, якщо ви бажаєте чути ці чудові гудки." +msgid "_Previous step" +msgstr "_Попередній крок" #: ../data/klavaro.glade.h:41 -msgid "_Beep" -msgstr "_Гудки" +msgid "Show next screen." +msgstr "Показати наступну сторінку." #: ../data/klavaro.glade.h:42 -msgid "Co_urse information" -msgstr "Відомості щодо _уроків" +msgid "_Next step" +msgstr "_Наступний крок" #: ../data/klavaro.glade.h:43 -msgid "Charts showing the learning progress along the exercises." -msgstr "Діаграми поступу навчального процесу за вправами." +msgid "Return without any modification." +msgstr "Повернутися без внесення змін." #: ../data/klavaro.glade.h:44 -msgid "_Progress" -msgstr "_Поступ" +msgid "Save the current keyboard layout with the name specified above." +msgstr "Зберегти поточну розкладку клавіатури з вказаною вище назвою." #: ../data/klavaro.glade.h:45 -msgid "Show local and external scores from other users." -msgstr "Показати локальні та загальні результати інших користувачів." +msgid "_Save and use" +msgstr "_Зберегти і використати" #: ../data/klavaro.glade.h:46 -msgid "_Top 10" -msgstr "_Найкраща десятка" +msgid "" +"If you like those beautiful hands, click here to close this window keeping " +"them." +msgstr "" +"Якщо вам потрібні ці чудові ручки, натисніть тут і закрийте це вікно, " +"зберігши показ ручок." #: ../data/klavaro.glade.h:47 -msgid "Return to the main menu." -msgstr "Повернутися до основного меню." +msgid "_Keep hands" +msgstr "_Показувати руки" #: ../data/klavaro.glade.h:48 -msgid "B_ack to menu" -msgstr "_Назад до меню" +msgid "Klavaro - Main menu" +msgstr "Klavaro — головне меню" #: ../data/klavaro.glade.h:49 -msgid "Close this window." -msgstr "Закрити це вікно." +msgid "Don't be shy about learning the basics!" +msgstr "Не соромтеся почати з основ!" #: ../data/klavaro.glade.h:50 -msgid "Font definition" -msgstr "Визначення шрифту" +msgid "Learn how to type correctly" +msgstr "Навчіться друкувати правильно" #: ../data/klavaro.glade.h:51 -msgid "Top 10" -msgstr "Найкраща десятка" +msgid "Initial training for your fingers." +msgstr "Початкове тренування для ваших пальців." #: ../data/klavaro.glade.h:52 -msgid "Show extra information" -msgstr "Показати додаткові відомості" +msgid "First steps with initial training" +msgstr "Перші кроки з початковим тренуванням" #: ../data/klavaro.glade.h:53 -msgid "Hide extra information" -msgstr "Приховати додаткові відомості" +msgid "Memorizing the keyboard practicing random keys exercises." +msgstr "" +"Запам’ятовування розташування клавіш за допомогою вправ з натискання " +"випадкових послідовностей клавіш." #: ../data/klavaro.glade.h:54 -msgid "Publish to the web your local scores." -msgstr "Оприлюднити у інтернеті ваші локальні результати." +msgid "Practice with random keys" +msgstr "Вправа з випадковими клавішами" #: ../data/klavaro.glade.h:55 -msgid "_Participate" -msgstr "В_зяти участь" +msgid "Accelerating the touches practicing random words exercises." +msgstr "" +"Прискорення натискання клавіш за допомогою вправ з введення випадкових " +"послідовностей слів." #: ../data/klavaro.glade.h:56 -msgid "Download from the web the most up to date ranking." -msgstr "Звантажити з інтернету найсвіжіші результати." +msgid "Practice with random words" +msgstr "Вправа з випадковими словами" #: ../data/klavaro.glade.h:57 -msgid "_Update" -msgstr "_Оновити" +msgid "Becoming proficient practicing complete paragraphs exercises." +msgstr "" +"Набуття професійних навичок за допомогою вправ з введення цілих абзаців " +"тексту." #: ../data/klavaro.glade.h:58 -msgid "About 'Klavaro'" -msgstr "Про «Klavaro»" +msgid "Practice with complete texts" +msgstr "Вправа з повноцінними текстами" + +#: ../data/klavaro.glade.h:59 +msgid "" +"Keyboard layout for modules 1 and 2. Also used informatively in the " +"fluidness contest." +msgstr "" +"Розкладка клавіатури для модулів 1 і 2. Використовується також для вправ з " +"перемиканням." #: ../data/klavaro.glade.h:60 -msgid "Remember always: someone loves you!" -msgstr "Завжди пам’ятайте: хтось вас любить!" +msgid "_Keyboard:" +msgstr "_Клавіатура:" #: ../data/klavaro.glade.h:61 -msgid "Remove the selected custom layout." -msgstr "Вилучити позначену нетипову розкладку." +msgid "Language for modules 3 and 4." +msgstr "Мова для модулів 3 і 4." #: ../data/klavaro.glade.h:62 -msgid "_Remove" -msgstr "В_илучити" +msgid "_Language:" +msgstr "_Мова:" #: ../data/klavaro.glade.h:63 -msgid "" -"Toggles the shift effect on the keys. Alternates between the upper and lower " -"characters of the keys." -msgstr "" -"Вмикає або вимикає використання Shift для клавіш. Змінює призначення клавіш " -"з введення малих літер на введення великих, і навпаки." +msgid "Speech" +msgstr "Диктування" #: ../data/klavaro.glade.h:64 -msgid "SPACE BAR" -msgstr "Пробіл" +msgid "Your language here." +msgstr "Вкажіть тут вашу мову." -#: ../data/klavaro.glade.h:65 ../src/keyboard.c:1630 -msgid "thumbs" -msgstr "великі пальці" +#: ../data/klavaro.glade.h:65 +msgid "Little tip about this program." +msgstr "Невеличка підказка щодо цієї програми." #: ../data/klavaro.glade.h:66 -msgid "Ctrl" -msgstr "Ctrl" +msgid "_Help" +msgstr "_Довідка" #: ../data/klavaro.glade.h:67 -msgid "Caps" -msgstr "Caps" +msgid "General information about the program." +msgstr "Загальні відомості щодо програми." #: ../data/klavaro.glade.h:68 -msgid "S_ave as:" -msgstr "Зберегти _як:" +msgid "_About..." +msgstr "_Про програму…" #: ../data/klavaro.glade.h:69 -msgid "Show previous screen." -msgstr "Показати попередню сторінку." +msgid "Exit the application immediately." +msgstr "Негайно завершити роботу програми." #: ../data/klavaro.glade.h:70 -msgid "_Previous step" -msgstr "_Попередній крок" +msgid "Klavaro - Progress" +msgstr "Klavaro — поступ" #: ../data/klavaro.glade.h:71 -msgid "Show next screen." -msgstr "Показати наступну сторінку." +msgid "_Lesson:" +msgstr "_Урок:" #: ../data/klavaro.glade.h:72 -msgid "_Next step" -msgstr "_Наступний крок" +msgid "Value" +msgstr "Значення" #: ../data/klavaro.glade.h:73 -msgid "Return without any modification." -msgstr "Повернутися без внесення змін." +msgid "Close this window, returning to the exercise." +msgstr "Закрити це вікно, повернутися до вправи." #: ../data/klavaro.glade.h:74 -msgid "_Cancel" -msgstr "_Скасувати" +msgid "Clear all the progress data, for every module." +msgstr "Вилучити всі дані щодо поступу для всіх модулів." #: ../data/klavaro.glade.h:75 -msgid "Save the current keyboard layout with the name specified above." -msgstr "Зберегти поточну розкладку клавіатури з вказаною вище назвою." +msgid "_Reset" +msgstr "Від_новити" #: ../data/klavaro.glade.h:76 -msgid "_Save and use" -msgstr "_Зберегти і використати" +msgid "Top 10" +msgstr "Найкраща десятка" #: ../data/klavaro.glade.h:77 -msgid "" -"If you like those beautiful hands, click here to close this window keeping " -"them." -msgstr "" -"Якщо вам потрібні ці чудові ручки, натисніть тут і закрийте це вікно, " -"зберігши показ ручок." +msgid "Show extra information." +msgstr "Показати додаткові відомості." #: ../data/klavaro.glade.h:78 -msgid "_Keep hands" -msgstr "_Показувати руки" +msgid "Hide extra information." +msgstr "Приховати додаткові відомості." #: ../data/klavaro.glade.h:79 -msgid "Change language" -msgstr "Змінити мову" +msgid "Publish to the web your local scores." +msgstr "Оприлюднити у інтернеті ваші локальні результати." #: ../data/klavaro.glade.h:80 -msgid "Attention!" -msgstr "Увага!" +msgid "_Participate" +msgstr "В_зяти участь" #: ../data/klavaro.glade.h:81 -msgid "Do you confirm?" -msgstr "Підтверджуєте?" +msgid "Download from the web the most up to date ranking." +msgstr "Звантажити з інтернету найсвіжіші результати." #: ../data/klavaro.glade.h:82 -msgid "_No" -msgstr "_Ні" +msgid "_Update" +msgstr "_Оновити" #: ../data/klavaro.glade.h:83 -msgid "_Yes" -msgstr "_Так" +msgid "Load other exercises/lessons" +msgstr "Завантажити інші вправи або уроки" #: ../data/klavaro.glade.h:84 -msgid "Re_name:" -msgstr "Пере_йменувати:" +msgid "_Other texts" +msgstr "_Інші тексти" #: ../data/klavaro.glade.h:85 -msgid "Rename the selected item." -msgstr "Перейменувати позначений пункт." +msgid "Edit the character set to be used in this lesson." +msgstr "Змініть набір символів, який буде використано для цього уроку." #: ../data/klavaro.glade.h:86 -msgid "" -"Read a text file and add a copy of it here. The file must be encoded in " -"UTF-8." -msgstr "" -"Прочитати текстовий файл і додати його копію сюди. Кодуванням символів файла " -"має бути UTF-8." +msgid "This is a specific exercise, adjusted to your error profile." +msgstr "Це особлива вправа, яку побудовано на основі аналізу ваших помилок." #: ../data/klavaro.glade.h:87 -msgid "_Open text file" -msgstr "_Відкрити текстовий файл" +msgid "" +"Edit the character set to be used in lessons after 43: they are customizable!" +msgstr "" +"Змініть набір символів, який буде використано для уроків після 43: набір " +"символів можна налаштувати." -#: ../data/klavaro.glade.h:88 -msgid "Paste text that was copied to the clipboard." +#: ../data/klavaro.glade.h:88 ../src/tutor.c:376 +msgid "Drag and drop text here to practice with it." msgstr "" -"Вставити фрагмент тексту, який було скопійовано до буфера обміну даними." +"Перетягніть і скиньте сюди фрагмент тексту, щоб вправлятися з цим фрагментом." #: ../data/klavaro.glade.h:89 -msgid "_Paste from clipboard" -msgstr "Вс_тавити з буфера" +msgid "Press here to restart the exercise. Hotkey: [Ctrl-R]" +msgstr "Натисніть тут, щоб почати вправу з початку. Скорочення: Ctrl+R" #: ../data/klavaro.glade.h:90 -msgid "Remove the selected item." -msgstr "Вилучити позначений пункт." +msgid "Show the virtual keyboard and the relation between fingers and keys." +msgstr "Показати віртуальну клавіатуру і зв’язок між пальцями і клавішами." #: ../data/klavaro.glade.h:91 -msgid "_Remove copied file" -msgstr "Ви_лучити скопійований файл" +msgid "_Keyboard" +msgstr "_Клавіатура" #: ../data/klavaro.glade.h:92 -msgid "Apply the selected item to create an exercise." -msgstr "Застосувати вибраний пункт для створення вправи." +msgid "Select the font to be used in the exercise window." +msgstr "Виберіть шрифт, який буде використано у вікні вправ." #: ../data/klavaro.glade.h:93 -msgid "_Apply" -msgstr "_Застосувати" +msgid "Font definition" +msgstr "Визначення шрифту" #: ../data/klavaro.glade.h:94 -msgid "Klavaro - Progress" -msgstr "Klavaro — поступ" +msgid "Keep this checked if you want to get those nice beeps." +msgstr "Не знімайте позначки, якщо ви бажаєте чути ці чудові гудки." #: ../data/klavaro.glade.h:95 -msgid "Value" -msgstr "Значення" +msgid "_Beep" +msgstr "_Гудки" #: ../data/klavaro.glade.h:96 -msgid "Clear all the progress data, for every module." -msgstr "Вилучити всі дані щодо поступу для всіх модулів." +msgid "Co_urse information" +msgstr "Відомості щодо _уроків" #: ../data/klavaro.glade.h:97 -msgid "_Reset" -msgstr "Від_новити" +msgid "Charts showing the learning progress along the exercises." +msgstr "Діаграми поступу навчального процесу за вправами." #: ../data/klavaro.glade.h:98 -msgid "Close this window, returning to the exercise." -msgstr "Закрити це вікно, повернутися до вправи." +msgid "_Progress" +msgstr "_Поступ" #: ../data/klavaro.glade.h:99 -msgid "Klavaro - Select file" -msgstr "Klavaro — вибір файла" +msgid "Return to the main menu." +msgstr "Повернутися до основного меню." #: ../data/klavaro.glade.h:100 -msgid "_Open" -msgstr "_Відкрити" +msgid "Show local and external scores from other users." +msgstr "Показати локальні та загальні результати інших користувачів." #: ../data/klavaro.glade.h:101 -msgid "Help?" -msgstr "Допомогти?" - -#: ../data/klavaro.glade.h:102 -msgid "" -"The main menu of the application is very straightforward. Just select the " -"type of exercise you wish to take. Do not worry about clicking any button on " -"the screen. The buttons will never hurt you!" -msgstr "" -"Пункти основного меню програми прості і зрозумілі. Просто виберіть тип " -"вправи, який вам потрібен. Не бійтеся натискати будь-які з кнопок у вікні. " -"Їх натискання цілком безпечне!" +msgid "_Top 10" +msgstr "_Найкраща десятка" -#: ../data/klavaro.glade.h:103 -msgid "" -"Also the controls have tips which will appear if you hover over them with " -"your mouse. These tips can come in very handy. To see how these tips work, " -"position your mouse over the button below, and without clicking, wait for " -"the tip to appear..." -msgstr "" -"Крім того, для елементів керування буде показано панелі підказок, якщо ви " -"наведете на них вказівник миші. Ці підказки можуть бути дуже корисними. Щоб " -"познайомитися зі способом роботи підказок, наведіть вказівник на розташовану " -"нижче кнопку і без натискання кнопок миші зачекайте, доки буде показано " -"підказку…" +#: ../data/klavaro.desktop.in.h:1 +msgid "A very flexible and efficient touch typing tutor." +msgstr "Дуже гнучка та ефективна програма для навчання набору наосліп" -#: ../data/klavaro.glade.h:104 -msgid "This is a tip. Now you press this button to return to the main menu." +#. Translators: these are keywords related to the program. CAI above means Computer Aided Instruction. Feel free to add and/or change the keywords in your language. +#: ../data/klavaro.desktop.in.h:3 +msgid "keyboard;typing;tutor;CAI" msgstr "" -"Це підказка. Тепер натисніть кнопку, щоб повернутися до основного меню." +"клавіатура;друк;швидкісний;набір;навчання;уроки;keyboard;typing;tutor;CAI" -#: ../src/main.c:314 +#: ../src/main.c:242 msgid "(Custom)" msgstr "(Нетиповий)" -#: ../src/main.c:315 +#: ../src/main.c:243 msgid "(Edit custom)" msgstr "(Редагувати нетиповий)" -#: ../src/main.c:316 +#: ../src/main.c:244 msgid "(Default)" msgstr "(Типовий)" -#: ../src/main.c:393 +#: ../src/main.c:321 #, c-format msgid "Dictation mode (depends on this speech synthesizer: %s)" msgid_plural "Dictation mode (depends on one of these speech synthesizers: %s)" @@ -493,91 +497,89 @@ msgstr[2] "Режим диктанту (залежить від таких систем синтезу мовлення: %s)" msgstr[3] "Режим диктанту (залежить від такої системи синтезу мовлення: %s)" -#. Set main labels (for translation) -#. -#: ../src/main.c:435 ../src/keyboard.c:1291 +#: ../src/main.c:364 ../src/keyboard.c:1291 msgid "Introduction" msgstr "Вступ" -#: ../src/main.c:438 ../src/top10.c:109 +#: ../src/main.c:367 ../src/top10.c:109 msgid "Basic course" msgstr "Основний курс" -#: ../src/main.c:441 ../src/top10.c:112 +#: ../src/main.c:370 ../src/top10.c:112 msgid "Adaptability" msgstr "Пристосування" -#: ../src/main.c:444 ../src/callbacks.c:1310 ../src/top10.c:89 +#: ../src/main.c:373 ../src/callbacks.c:1226 ../src/top10.c:89 #: ../src/top10.c:115 msgid "Speed" msgstr "Швидкість" -#: ../src/main.c:447 ../src/callbacks.c:1333 ../src/top10.c:91 +#: ../src/main.c:376 ../src/callbacks.c:1249 ../src/top10.c:91 #: ../src/top10.c:118 msgid "Fluidity" msgstr "Плавність" -#: ../src/callbacks.c:468 ../src/tutor.c:391 +#: ../src/callbacks.c:407 ../src/tutor.c:515 msgid "Keys:" msgstr "Клавіші:" -#: ../src/callbacks.c:858 ../src/callbacks.c:874 +#: ../src/callbacks.c:774 ../src/callbacks.c:790 msgid "Connecting..." msgstr "З'єднання…" -#: ../src/callbacks.c:1145 +#: ../src/callbacks.c:1061 msgid "Overwrite user layout" msgstr "Перезаписати розкладку користувача" -#: ../src/callbacks.c:1147 +#: ../src/callbacks.c:1063 msgid "This will OVERWRITE an existent keyboard layout." msgstr "" "У результаті виконання цієї дії буде перезаписано існуючу розкладку " "клавіатури." -#: ../src/callbacks.c:1154 +#: ../src/callbacks.c:1070 msgid "Remove user layout" msgstr "Вилучення розкладки користувача" -#: ../src/callbacks.c:1156 +#: ../src/callbacks.c:1072 msgid "This will REMOVE an existent keyboard layout." msgstr "" "У результаті виконання цієї дії буде вилучено існуючу розкладку клавіатури." -#: ../src/callbacks.c:1163 +#: ../src/callbacks.c:1079 msgid "Reset progress data" msgstr "Вилучення даних щодо поступу" -#: ../src/callbacks.c:1164 +#: ../src/callbacks.c:1080 msgid "This will DELETE all the progress data shown in the charts." msgstr "Буде вилучено всі дані щодо поступу, показані на діаграмах." -#: ../src/callbacks.c:1307 ../src/top10.c:87 +#: ../src/callbacks.c:1223 ../src/top10.c:87 msgid "Accuracy" msgstr "Точність" -#: ../src/callbacks.c:1310 ../src/tutor.c:1160 +#: ../src/callbacks.c:1226 ../src/tutor.c:1288 msgid "(WPM)" msgstr "(сл./хв.)" -#: ../src/callbacks.c:1321 +#: ../src/callbacks.c:1237 msgid "Errors" msgstr "Помилки" -#: ../src/callbacks.c:1324 +#: ../src/callbacks.c:1240 msgid "Touch times (s)" msgstr "Тривалість натискання (у с)" -#: ../src/callbacks.c:1336 ../src/tutor.c:1187 ../src/top10.c:69 +#: ../src/callbacks.c:1252 ../src/tutor.c:1315 ../src/top10.c:69 msgid "Score" msgstr "Результат" #. Translators: your language code (first 2 letters of your po-file) -#: ../src/translation.c:423 ../src/translation.c:489 ../src/tutor.c:1597 +#: ../src/translation.c:485 ../src/tutor.c:1725 msgid "en" msgstr "uk" -#: ../src/translation.c:576 +#: ../src/translation.c:572 msgid "" "The basic course focuses on having you read the characters presented to you " "on screen and typing the corresponding keys. Remember to keep your hands " @@ -588,7 +590,7 @@ "натисканню відповідних клавіш. Не забувайте, що руки слід весь час тримати " "відповідно (див. вступ у основному меню)." -#: ../src/translation.c:580 +#: ../src/translation.c:576 msgid "" "The key set used in each series will be shown in the above message line. The " "[Space], [Shift] and [Enter] keys may not show up there but are used very " @@ -598,7 +600,7 @@ "повідомлень. Клавіші «Пробіл», «Shift» та «Enter» не буде показано, але їх " "доведеться використовувати доволі часто." -#: ../src/translation.c:583 +#: ../src/translation.c:579 msgid "" "The message line below follows and echoes your key presses. If required, it " "changes and displays instructions for actions required from you." @@ -607,7 +609,7 @@ "клавіші. Якщо потрібно, дані у рядку буде замінено на настанови щодо дії, " "якої від вас вимагає програма." -#: ../src/translation.c:587 +#: ../src/translation.c:583 msgid "" "Here you may practice and improve your memorization of all keys. There will " "be sentences presented with nonsense words which mix some numbers and " @@ -617,7 +619,7 @@ "запам’ятовування клавіш. Тут буде показано речення з беззмістовних слів, " "перемішаних з цифрами та символами пунктуації." -#: ../src/translation.c:590 +#: ../src/translation.c:586 msgid "" "In order to keep the lesson contents language and keyboard independent, " "accented letter combinations will probably not appear. For real word " @@ -628,7 +630,7 @@ "тексти з такими літерами, будь ласка, скористайтеся четвертим пунктом у " "головному меню («Плавність»)." -#: ../src/translation.c:594 +#: ../src/translation.c:590 msgid "" "After each exercise there will be a brief statistics panel reviewing your " "performance along with some relevant comments." @@ -637,7 +639,7 @@ "статистичними даними щодо темпу введення тексту та ознайомить вас з " "відповідними коментарями." -#: ../src/translation.c:598 +#: ../src/translation.c:594 msgid "" "This exercise is very similar to the second one, for adaptability. The " "difference is that here you'll type real words." @@ -645,7 +647,7 @@ "Ця вправа дуже подібна до другої («Пристосування»). Відмінність полягає лише " "у тому, що у цій вправі використано справжні слова." -#: ../src/translation.c:601 +#: ../src/translation.c:597 msgid "" "The default language is the actual one of the interface. But you may select " "any other texts with words you would like to use. Press the 'Other' option " @@ -655,7 +657,7 @@ "вибрати будь-який інший текст зі словами, на яких ви хочете потренуватися. " "Натисніть кнопку «Інше», розташовану вище і додайте файли з вашими текстами." -#: ../src/translation.c:605 +#: ../src/translation.c:601 msgid "" "With this exercise the focus is on speed. So, you are supposed to type " "really fast and I will only flatter you when you deserve it!" @@ -663,7 +665,7 @@ "Метою цієї вправи є підвищення швидкості друку. Отже, щоб програма належно " "оцінила ваші здібності, вам слід друкувати дуже швидко!" -#: ../src/translation.c:609 +#: ../src/translation.c:605 msgid "" "We will now use complete sentences and paragraphs which make logical sense. " "This may distract you while you type if you try to understand what you are " @@ -675,7 +677,7 @@ "вас від друку. Метою попередніх вправ було навчання друку без розуміння і " "аналізу тексту, який ви вводите." -#: ../src/translation.c:613 +#: ../src/translation.c:609 msgid "" "We do not mean to imply that the typists must behave like a robot, without " "understanding what they type. We do aim to develop the skill of typing, " @@ -690,8 +692,7 @@ "досягнуто, дія з друку стає автоматичною і не вимагає зайвої концентрації, " "отже ви зможете приділити більше уваги змісту тексту, який ви вводите." -#. English typo: minimun -> minimum -#: ../src/translation.c:618 +#: ../src/translation.c:613 msgid "" "These exercises are longer. Each exercise consists of three paragraphs and " "the emphasis is placed on correctness and rhythm, with a minimum speed " @@ -704,7 +705,6 @@ "виправленням можливих помилок. Іншими словами, прийнятним буде лише текст, у " "якому немає друкарських помилок." -#. English typo: recomendations -> recommendations #: ../src/keyboard.c:1094 msgid "" "Correct positioning of the hands and fingers is very important to efficient " @@ -802,13 +802,11 @@ msgid "Step %i" msgstr "Крок %i" -#. Recommendations -#: ../src/keyboard.c:1140 +#: ../src/keyboard.c:1142 msgid "To position the hands" msgstr "Розташування рук" -#. Final words -#: ../src/keyboard.c:1225 +#: ../src/keyboard.c:1227 msgid "Go ahead!" msgstr "Поїхали!" @@ -849,23 +847,23 @@ msgid "Press and edit me" msgstr "Натисніть і змініть" -#: ../src/tutor.c:176 +#: ../src/tutor.c:300 msgid "Lesson:" msgstr "Урок:" -#: ../src/tutor.c:186 +#: ../src/tutor.c:310 msgid "Paragraphs:" msgstr "Абзаци:" -#: ../src/tutor.c:219 +#: ../src/tutor.c:343 msgid "Klavaro - Basic Course" msgstr "Klavaro — основний курс" -#: ../src/tutor.c:224 +#: ../src/tutor.c:348 msgid "Klavaro - Adaptability" msgstr "Klavaro — пристосування" -#: ../src/tutor.c:227 +#: ../src/tutor.c:351 msgid "" "Adaptability exercises: automating the fingers responses, typing over all " "the keyboard." @@ -873,43 +871,43 @@ "Вправи з пристосування рук: автоматичне визначення пальців під час друку на " "всій поверхні клавіатури." -#: ../src/tutor.c:232 +#: ../src/tutor.c:356 msgid "Klavaro - Velocity" msgstr "Klavaro — швидкість" -#: ../src/tutor.c:233 +#: ../src/tutor.c:357 msgid "Velocity exercises: accelerate typing real words." msgstr "Вправи на швидкість: збільшіть швидкість друку справжніх слів." -#: ../src/tutor.c:237 +#: ../src/tutor.c:361 msgid "Klavaro - Fluidness" msgstr "Klavaro — плавність" -#: ../src/tutor.c:239 +#: ../src/tutor.c:363 msgid "Fluidness exercises: accuracy typing good sense paragraphs." msgstr "Вправи з плавності друку: точне введення змістовних абзаців тексту." -#: ../src/tutor.c:301 +#: ../src/tutor.c:425 msgid "End of exercise. Press [Enter] to start another." msgstr "Вправу завершено. Натисніть Enter, щоб розпочати нову." -#: ../src/tutor.c:329 +#: ../src/tutor.c:453 msgid "Learning the key positions." msgstr "Вивчення розташування клавіш." -#: ../src/tutor.c:332 +#: ../src/tutor.c:456 msgid "Press any key to start the exercise. " msgstr "Натисніть будь-яку клавішу, щоб розпочати вправу. " -#: ../src/tutor.c:440 ../src/tutor.c:443 +#: ../src/tutor.c:567 ../src/tutor.c:570 msgid "Start typing when you are ready. " msgstr "Почніть вводити символи, щойно будете готові. " -#: ../src/tutor.c:441 +#: ../src/tutor.c:568 msgid "Use backspace to correct errors." msgstr "Натисніть Backspace, щоб виправити помилки." -#: ../src/tutor.c:885 +#: ../src/tutor.c:1012 #, c-format msgid "" "ps.: logging not performed for this session: the number of typed characters " @@ -918,11 +916,11 @@ "P.S. Під час цього сеансу записів додано не було: кількість введених " "символів (%i) має перевищувати %i." -#: ../src/tutor.c:1027 +#: ../src/tutor.c:1154 msgid "ps.: you have entered the Top 10 list, great!" msgstr "P.S. Ви увійшли до найкращої десятки, поздоровляємо!" -#: ../src/tutor.c:1039 +#: ../src/tutor.c:1166 msgid "" "ps.: the text you just typed doesn't seem to be similar to ordinary texts in " "the language currently selected: we can't account for it in the 'Top 10' " @@ -931,16 +929,15 @@ "P.S. Текст, який ви щойно вводили не є типовим текстом для поточної вибраної " "мови: ми не можемо зарахувати ваш результат у змаганні «Найкраща десятка»." -#. Begin the accuracy -#: ../src/tutor.c:1087 +#: ../src/tutor.c:1215 msgid "STATISTICS" msgstr "Статистика" -#: ../src/tutor.c:1088 +#: ../src/tutor.c:1216 msgid "Elapsed time:" msgstr "Витрачено часу:" -#: ../src/tutor.c:1089 +#: ../src/tutor.c:1217 msgid "minute and" msgid_plural "minutes and" msgstr[0] "хвилина і" @@ -948,7 +945,7 @@ msgstr[2] "хвилин і" msgstr[3] "хвилина і" -#: ../src/tutor.c:1090 +#: ../src/tutor.c:1218 msgid "second" msgid_plural "seconds" msgstr[0] "секунда" @@ -956,70 +953,68 @@ msgstr[2] "секунд" msgstr[3] "секунда" -#: ../src/tutor.c:1091 +#: ../src/tutor.c:1219 msgid "Error ratio:" msgstr "Частка помилок:" -#: ../src/tutor.c:1091 +#: ../src/tutor.c:1219 msgid "Accuracy:" msgstr "Точність:" -#: ../src/tutor.c:1112 ../src/tutor.c:1137 ../src/tutor.c:1160 -#: ../src/tutor.c:1186 +#: ../src/tutor.c:1240 ../src/tutor.c:1265 ../src/tutor.c:1288 +#: ../src/tutor.c:1314 msgid "Goal:" msgstr "Мета:" -#: ../src/tutor.c:1119 +#: ../src/tutor.c:1247 msgid "Characters per second:" msgstr "Символів на секунду:" -#: ../src/tutor.c:1137 +#: ../src/tutor.c:1265 msgid "(CPS)" msgstr "(симв./сек.)" -#: ../src/tutor.c:1142 +#: ../src/tutor.c:1270 msgid "Words per minute:" msgstr "Слів на хвилину:" -#: ../src/tutor.c:1167 +#: ../src/tutor.c:1295 msgid "Fluidness:" msgstr "Плавність:" -#: ../src/tutor.c:1194 +#: ../src/tutor.c:1322 msgid "Comments:" msgstr "Коментарі:" -#: ../src/tutor.c:1676 +#: ../src/tutor.c:1804 msgid "space" msgstr "пробіл" #. Translators: the name of letter Y -#: ../src/tutor.c:1681 +#: ../src/tutor.c:1809 msgid "wye" msgstr "ігрек" #. Translators: the name of the Return key -#: ../src/tutor.c:1685 +#: ../src/tutor.c:1813 msgid "enter" msgstr "enter" -#: ../src/tutor.c:1691 +#: ../src/tutor.c:1819 msgid "apostrophe" msgstr "апостроф" #. Translators: double quote symbol: " -#: ../src/tutor.c:1695 +#: ../src/tutor.c:1823 msgid "quote" msgstr "лапки" #. Translators: ampersand symbol: & -#: ../src/tutor.c:1699 +#: ../src/tutor.c:1827 msgid "ampersand" msgstr "амперсанд" -#. Error frequencies or touch times -#. -#: ../src/plot.c:308 +#: ../src/plot.c:305 msgid "Character" msgstr "Символ" @@ -1027,11 +1022,11 @@ msgid "Date & Time" msgstr "Дата і час" -#: ../src/basic.c:331 +#: ../src/basic.c:326 msgid "Positions of keys seems to be learned!" msgstr "Здається, розташування клавіш вивчено!" -#: ../src/basic.c:332 +#: ../src/basic.c:327 msgid "" " Congratulations!\n" " You have accomplished the entire basic course.\n" @@ -1043,7 +1038,7 @@ " Почніть вправу на наступному рівні: Пристосування.\n" " Тепер вам слід досягти точності у друці.\n" -#: ../src/basic.c:338 +#: ../src/basic.c:333 msgid "" " All right, now you got it!\n" " Go to the next lesson.\n" @@ -1051,35 +1046,37 @@ " Чудово, тепер ви це можете!\n" " Перейдіть до наступного уроку.\n" -#: ../src/adaptability.c:217 +#: ../src/adaptability.c:213 +#, c-format msgid "" -" Your accuracy rate is below 90%...\n" +" Your accuracy rate is below %.0f%%...\n" " Could you please try again to improve it?\n" msgstr "" -" Рівень вашої точності є нижчим за 90%…\n" +" Рівень вашої точності є нижчим за %.0f%%…\n" " Будь ласка, повторіть спробу, щоб покращити його?\n" -#: ../src/adaptability.c:222 +#: ../src/adaptability.c:216 +#, c-format msgid "" " You are doing well. But...\n" -" Could you make the accuracy reach 95%?\n" +" Could you make the accuracy reach %.0f%%?\n" msgstr "" " Непогано, але…\n" -" Можливо, вам вдасться підвищити рівень точності до 95%?\n" +" Можливо, вам вдасться підвищити рівень точності до %.0f%%?\n" -#: ../src/adaptability.c:225 +#: ../src/adaptability.c:219 #, c-format msgid "" " You are almost there, but your accuracy rate is still below %.0f%%.\n" -" Try a few more times, or maybe you're getting upset, so go to other kind of " -"exercise.\n" +" Try a few more times, or maybe you're getting upset, so go to another kind " +"of exercise.\n" msgstr "" " У вас майже вийшло, але рівень точності все ще залишається нижчим за %.0f" "%%.\n" " Спробуйте ще декілька разів. Якщо у вас не вийде, спробуйте перейти до " "інших типів вправ.\n" -#: ../src/adaptability.c:232 +#: ../src/adaptability.c:226 #, c-format msgid "" " Very good!\n" @@ -1092,11 +1089,11 @@ " Час покращити вашу швидкість друку.\n" " Перейдіть до третього типу вправ за допомогою основного меню.\n" -#: ../src/velocity.c:313 ../src/fluidness.c:435 +#: ../src/velocity.c:312 ../src/fluidness.c:435 msgid "Pasted_or_dropped" msgstr "Вставлено_або_скинуто" -#: ../src/velocity.c:432 +#: ../src/velocity.c:423 msgid "" " You are just beginning.\n" " Be patient, try it again every day, rest and don't worry so much:\n" @@ -1107,32 +1104,35 @@ "переймайтеся:\n" " наполегливість і постійні вправи поступово збільшать вашу швидкість.\n" -#: ../src/velocity.c:436 +#: ../src/velocity.c:427 +#, c-format msgid "" " Still away from the highway. You can make better...\n" -" Try at least 20 WPM.\n" +" Try to reach at least %.0f WPM.\n" msgstr "" " До ідеалу все ще далеко. Ви можете друкувати набагато краще…\n" -" Спробуйте досягти результату у принаймні 20 слів на хвилину.\n" +" Спробуйте досягти результату у принаймні %.0f слів на хвилину.\n" -#: ../src/velocity.c:439 +#: ../src/velocity.c:430 +#, c-format msgid "" " You are doing well, but need to go faster.\n" -" And don't forget the accuracy. Try to get 30 WPM.\n" +" And don't forget the accuracy. Try to get %.0f WPM.\n" msgstr "" " Непогано, але можна і краще.\n" -" Не забувайте про точність. Спробуйте досягти результату у 30 слів на " +" Не забувайте про точність. Спробуйте досягти результату у %.0f слів на " "хвилину.\n" -#: ../src/velocity.c:443 +#: ../src/velocity.c:433 +#, c-format msgid "" " Fine. Now you need to start running.\n" -" Can you reach 40 WPM?\n" +" Can you reach %.0f WPM?\n" msgstr "" " Добре. А тепер ще швидше!\n" -" Можете набирати зі швидкістю у 40 слів на хвилину?\n" +" Можете набирати зі швидкістю у %.0f слів на хвилину?\n" -#: ../src/velocity.c:446 +#: ../src/velocity.c:436 #, c-format msgid "" " Very good. You are almost there.\n" @@ -1141,7 +1141,7 @@ " Дуже добре. Майже ідеально.\n" " Чи не могли б ви пришвидшитися до %.0f слів на хвилину?\n" -#: ../src/velocity.c:451 +#: ../src/velocity.c:439 msgid "" " Excellent. For this course, that is enough.\n" " Try now the fluidness exercises, OK?\n" @@ -1149,31 +1149,36 @@ " Чудово. Для цього курсу мабуть досить.\n" " Перейдемо до вправи «Плавність», гаразд?\n" -#: ../src/velocity.c:455 +#: ../src/velocity.c:442 +#, c-format msgid "" -" Fast! Are you training for a competition?\n" -" So, try to get 70 WPM!\n" +" Fast! Are you a professional?\n" +" So, try to get %.0f WPM!\n" msgstr "" " Швидко! Тренуєтеся до участі у змаганнях?\n" -" Гаразд, спробуйте досягти результату у 70 слів на хвилину!\n" +" Гаразд, спробуйте досягти результату у %.0f слів на хвилину!\n" -#: ../src/velocity.c:458 -msgid "" -" Top of \"qwerty\". Now it's time to change to the Dvorak mode.\n" -" Are you afraid of reaching 80 WPM?\n" +#. Translators: Speed Racer is a reference to a Japanese anime franchise +#. about automobile racing, also known as Mach GoGoGo. +#: ../src/velocity.c:447 +#, c-format +msgid " Ranking good, Speed Racer! Are you afraid of reaching %.0f WPM?\n" msgstr "" -" Максимум для розкладки «qwerty». Час перейти до режиму розкладки Дворака.\n" -" Не страшно буде набирати зі швидкістю у 80 слів на хвилину?\n" +" Непогано, Швидкі Пальці! Не злякаєтеся набирати зі швидкістю %.0f слів на " +"хвилину?\n" -#: ../src/velocity.c:462 +#. Translators: feel free to change the reference to that martial art, if you find another good analogy. +#: ../src/velocity.c:451 +#, c-format msgid "" -" Dvorak mode dominated!\n" -" Can you fly at 90 WPM?\n" +" Kunf-fu mastering!\n" +" Can you fly at %.0f WPM?\n" msgstr "" -" Режим Дворака підкорено!\n" -" Можете пришвидшитися до 90 слів на хвилину?\n" +" Чудова майстерність!\n" +" Можете пришвидшитися до %.0f слів на хвилину?\n" -#: ../src/velocity.c:466 +#. Translators: Dvorak here means that infamous ergonomic keyboard layout. +#: ../src/velocity.c:454 msgid "" " Dvorak master!\n" " I have no words to express my admiration!\n" @@ -1181,7 +1186,7 @@ " Майстер Дворака!\n" " Не можуть навіть висловити свого захоплення Вами!\n" -#: ../src/fluidness.c:545 +#: ../src/fluidness.c:538 #, c-format msgid "" " You type accurately but not so fast.\n" @@ -1190,7 +1195,7 @@ " Ви друкуєте точно, але не дуже швидко.\n" " Можете досягти швидкості у %.0f слів на хвилину?\n" -#: ../src/fluidness.c:548 +#: ../src/fluidness.c:541 #, c-format msgid "" " Your rhythm is not so constant. Calm down.\n" @@ -1199,7 +1204,7 @@ " Ви збиваєтеся з ритму. Заспокойтеся.\n" " Зараз нашою метою є досягти значення плавності, більшого за %i%%.\n" -#: ../src/fluidness.c:551 +#: ../src/fluidness.c:544 #, c-format msgid "" " You are almost getting there. Type more fluently.\n" @@ -1208,7 +1213,7 @@ " Ви майже досягли мети. Спробуйте друкувати вільніше.\n" " Нам потрібне значення плавності, більше за %.0f%%.\n" -#: ../src/fluidness.c:554 +#: ../src/fluidness.c:547 msgid "" " Congratulations!\n" " It seems to me that you are a professional.\n" @@ -1220,7 +1225,7 @@ " Ця програма вам більше не потрібна.\n" " Сподіваємося програма вам сподобалася. Дякуємо і бажаємо успіхів!\n" -#: ../src/fluidness.c:559 +#: ../src/fluidness.c:552 msgid "" " How can you type so fast?\n" " You have exceeded all my expectations.\n" @@ -1280,5 +1285,22 @@ msgid "Could not upload/download scores." msgstr "Не вдалося вивантажити або звантажити результати." +#~ msgid "Press here to restart the exercise. Hotkey: [Ctrl R]" +#~ msgstr "Натисніть тут, щоб почати вправу з початку. Скорочення: Ctrl+R" + +#~ msgid "" +#~ " Top of \"qwerty\". Now it's time to change to the Dvorak mode.\n" +#~ " Are you afraid of reaching 80 WPM?\n" +#~ msgstr "" +#~ " Максимум для розкладки «qwerty». Час перейти до режиму розкладки " +#~ "Дворака.\n" +#~ " Не страшно буде набирати зі швидкістю у 80 слів на хвилину?\n" + +#~ msgid "Klavaro" +#~ msgstr "Klavaro" + +#~ msgid "_Font" +#~ msgstr "_Шрифт" + #~ msgid "Default" #~ msgstr "Типовий" diff -Nru klavaro-1.9.9/po/ur.po klavaro-3.00/po/ur.po --- klavaro-1.9.9/po/ur.po 2013-08-15 13:38:52.000000000 +0000 +++ klavaro-3.00/po/ur.po 2014-01-13 23:25:53.000000000 +0000 @@ -9,8 +9,8 @@ msgid "" msgstr "" "Project-Id-Version: klavaro 1.9.0-pre1\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2013-08-15 10:38-0300\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2014-01-13 21:25-0200\n" "PO-Revision-Date: 2011-04-24 19:21-0500\n" "Last-Translator: Jess Jessbody \n" "Language-Team: Urdu \n" @@ -21,551 +21,556 @@ "Plural-Forms: nplurals=2; plural=(n != 1);\n" "X-Generator: KBabel 1.11.4\n" -#: ../data/klavaro.desktop.in.h:1 ../data/klavaro.glade.h:59 -msgid "Yet another touch typing tutor" -msgstr "ایک اور لمسی ٹائپنگ اتالیق" - #: ../data/klavaro.glade.h:1 -msgid "Klavaro - Main menu" -msgstr "کلاوارو - لائحہ اول" +msgid "About 'Klavaro'" +msgstr "بارے 'کلاوارو'" #: ../data/klavaro.glade.h:2 -msgid "Don't be shy about learning the basics!" -msgstr "اساسیات سیکھنے میں شرماؤ مت!" +msgid "Yet another touch typing tutor" +msgstr "ایک اور لمسی ٹائپنگ اتالیق" #: ../data/klavaro.glade.h:3 -msgid "Learn how to type correctly" -msgstr "صحیح ٹائپ کس طرح کریں" +msgid "Remember always: someone loves you!" +msgstr "ہمیشہ یاد رکھو: کوئی تمہیں چاہتا ہے!" #: ../data/klavaro.glade.h:4 -msgid "Initial training for your fingers." -msgstr "آپ کی انگلیوں کے لیے آغازی تربیت۔" +msgid "Change language" +msgstr "زبان تبدیل" #: ../data/klavaro.glade.h:5 -msgid "First steps with initial training" -msgstr "آغازی تربیت کے پہلے اقدام" +msgid "Attention!" +msgstr "توجہ!" #: ../data/klavaro.glade.h:6 -msgid "Memorizing the keyboard practicing random keys exercises." -msgstr "تصادفی کلید مشق سے کلیدی‌تختہ کی یاداشت۔" +msgid "Do you confirm?" +msgstr "کیا آپ توثیق کرتے ہو؟" #: ../data/klavaro.glade.h:7 -msgid "Practice with random keys" -msgstr "تصادفی کلیدوں سے مشق" +msgid "_No" +msgstr "_ناں" + +#: ../data/klavaro.glade.h:8 +msgid "_Yes" +msgstr "_ہاں" -#. English typo: touchs -> touches #: ../data/klavaro.glade.h:9 -msgid "Accelerating the touches practicing random words exercises." -msgstr "مشقِ تصادفی الفاظ سے اسراعِ لمس۔" +msgid "Help?" +msgstr "مدد؟" #: ../data/klavaro.glade.h:10 -msgid "Practice with random words" -msgstr "تصادفی الفاظ سے مشق" +msgid "This is a tip. Now you press this button to return to the main menu." +msgstr "یہ ٹوٹکا ہے۔ اب یہ زِرَیہ (بٹن) دبا کر آپ لائحہ اول کی طرف واپس ہو جاؤ۔" #: ../data/klavaro.glade.h:11 -msgid "Becoming proficient practicing complete paragraphs exercises." -msgstr "مکمل شذرہ (پیراگراف) مشق سے استعداد بڑھاؤ۔" +msgid "B_ack to menu" +msgstr "لائحہ کو واپسی" #: ../data/klavaro.glade.h:12 -msgid "Practice with complete texts" -msgstr "مکمل عبارتیں سے مشق" +msgid "" +"The main menu of the application is very straightforward. Just select the " +"type of exercise you wish to take. Do not worry about clicking any button on " +"the screen. The buttons will never hurt you!" +msgstr "" +"اس اطلاقیہ کا لائحۂ اول بالکل سیدھا ہے۔ بس جس طرح کی مشق لینا چاہو، اس کا " +"انتخاب کرو۔ تظاہرہ پرکسی زریہ کو کلک کرنے سے نہ ہچکچاؤ ۔ زریہ کبھی تمہیں " +"نقصان نہیں پہنچائے گا!" #: ../data/klavaro.glade.h:13 msgid "" -"Keyboard layout for modules 1 and 2. Also used informatively in the " -"fluidness contest." +"Also the controls have tips which will appear if you hover over them with " +"your mouse. These tips can come in very handy. To see how these tips work, " +"position your mouse over the button below, and without clicking, wait for " +"the tip to appear..." msgstr "" -"مطبقیہ 1 اور 2 کے لیے کلیدی تختہ خاکے۔ نیز سیال پن مقابلہ میں اطلاعاتی " -"استعمال ہوتے ہیں۔" +"نیز تظابیط (کنٹرول) کے ٹوٹکے ہیں جو فارہ (ماؤس) کو ان پر منڈالنے سے ظاہر " +"ہوتے ہیں۔ یہ ٹوتکے بہت کام آ سکتے ہیں۔ یہ جاننے کے لیے کہ یہ ٹوٹکے کس طرح " +"کام کرتے ہیں، فارہ کو نیچے زریہ پر قائم کرو اور بغیر کلک کیے ٹوٹکے کے ظاہر " +"ہونے کا انتظار کرو_" #: ../data/klavaro.glade.h:14 -msgid "_Keyboard:" -msgstr "_کلیدی تختہ:" +msgid "Klavaro - Select file" +msgstr "کلاوارو - مِلف (فائل) منتخب" #: ../data/klavaro.glade.h:15 -msgid "Language for modules 3 and 4." -msgstr "مطبقیہ 3 اور 4 کے لے زبان۔" +msgid "_Cancel" +msgstr "_منسوخ" #: ../data/klavaro.glade.h:16 -msgid "_Language:" -msgstr "_زبان:" +msgid "_Open" +msgstr "_کھولو" #: ../data/klavaro.glade.h:17 -msgid "Variant" -msgstr "متغیرا" +msgid "Re_name:" +msgstr "باز_نام کرو:" #: ../data/klavaro.glade.h:18 -msgid "Klavaro" -msgstr "کلاوارو" +msgid "Rename the selected item." +msgstr "منتخب شدہ مفردہ کو باز نام کرو۔" #: ../data/klavaro.glade.h:19 -msgid "Country / Custom" -msgstr "ملک / رواج" +msgid "" +"Read a text file and add a copy of it here. The file must be encoded in " +"UTF-8." +msgstr "" +"ٹیکسٹ ملف (فائل) پڑھو اور یہاں اس کی نقل جمع کرو۔ ملف کی تشفیر UTF-8 میں " +"ہونا چاہیے۔" #: ../data/klavaro.glade.h:20 -msgid "Your language here." -msgstr "یہاں تمہاری زبان۔" +msgid "_Open text file" +msgstr "_متن مِلف (فائل) کھولو" #: ../data/klavaro.glade.h:21 -msgid "Speech" -msgstr "کلام" +msgid "Paste text that was copied to the clipboard." +msgstr "جو عبارت تختہ تراشہ پر نقل کی گئ تھی، وہ چسپاں کرو۔" #: ../data/klavaro.glade.h:22 -msgid "Little tip about this program." -msgstr "اس پروگرام بارے چھوٹا سا ٹوٹکا۔" +msgid "_Paste from clipboard" +msgstr "_تختہ تراشہ سے چسپاں کرو" #: ../data/klavaro.glade.h:23 -msgid "_Help" -msgstr "_مدد" +msgid "Remove the selected item." +msgstr "منتخب شدہ مفردہ کو ہٹاؤ۔" #: ../data/klavaro.glade.h:24 -msgid "General information about the program." -msgstr "اس پروگرام بارے جامع اطلاع۔" +msgid "_Remove copied file" +msgstr "_نقل شدہ مِلف (فائل) ہٹاؤ" #: ../data/klavaro.glade.h:25 -msgid "_About..." -msgstr "_بارے-" +msgid "Apply the selected item to create an exercise." +msgstr "مشق کی تخلیق کے لیے منتخب مفردہ کا اطلاق کرو۔" #: ../data/klavaro.glade.h:26 -msgid "Exit the application immediately." -msgstr "اطلاقیہ سے فوراً خروج کرو۔" +msgid "_Apply" +msgstr "_اطلاق" #: ../data/klavaro.glade.h:27 -msgid "_Close" -msgstr "_بند" +msgid "Close this window." +msgstr "یہ کھڑکی بند کرو۔" #: ../data/klavaro.glade.h:28 -msgid "Load other exercises/lessons" -msgstr "دوسرے مشقیں/اسباق اثقال کرو" +msgid "_Close" +msgstr "_بند" #: ../data/klavaro.glade.h:29 -msgid "_Other texts" -msgstr "_دوسری عبارتیں" +msgid "Country / Custom" +msgstr "ملک / رواج" #: ../data/klavaro.glade.h:30 -msgid "_Lesson:" -msgstr "_سبق:" +msgid "Variant" +msgstr "متغیرا" #: ../data/klavaro.glade.h:31 -msgid "Edit the character set to be used in this lesson." -msgstr "اس سبق میں استعمال ہونے والے مجموعہ حروف کی تدوین کرو۔" +msgid "Remove the selected custom layout." +msgstr "منتخب شدہ من پسند خاکہ ہٹاؤ۔" #: ../data/klavaro.glade.h:32 -msgid "Edit the character set to be used in lessons 44 through 50." -msgstr "اسباق 44 سے 50 میں استعمال ہونے والے مجموعہ حروف کی تدوین کرو۔" +msgid "_Remove" +msgstr "_ہٹاؤ" #: ../data/klavaro.glade.h:33 -msgid "This is a specific exercise, adjusted to your error profile." -msgstr "یہ مخصوص مشق ہے، تمہاری شرحِ اغلاط نمایہ کے موافق۔" +msgid "" +"Toggles the shift effect on the keys. Alternates between the upper and lower " +"characters of the keys." +msgstr "" +"کلیدوں پر شِفٹ (shift) کے اثر کی تدویم کرتا ہے۔ اونچے اور نچلے حروف کی کلیدوں " +"کے درمیان ادلی بدلی کرتا ہے۔" -#: ../data/klavaro.glade.h:34 ../src/tutor.c:252 -msgid "Drag and drop text here to practice with it." -msgstr "عبارت کی مشق کے لیے عبارت کو یہاں کھینچ اور گِراؤ ۔" +#: ../data/klavaro.glade.h:34 +msgid "SPACE BAR" +msgstr "نوارِ فضا (اسپیس بار)" -#: ../data/klavaro.glade.h:35 -msgid "Press here to restart the exercise. Hotkey: [Ctrl R]" -msgstr "مشق کی شروعِ نو کے لیے یہاں دباؤ۔ گرم کلید: [Ctrl R]" +#: ../data/klavaro.glade.h:35 ../src/keyboard.c:1630 +msgid "thumbs" +msgstr "انگوٹھے" #: ../data/klavaro.glade.h:36 -msgid "Show the virtual keyboard and the relation between fingers and keys." -msgstr "مجازی کلیدی‌تختہ دکھاؤ، اور اُنگلیوں اور کلیدوں کے درمیان نسب۔" +#, fuzzy +msgid "Ctrl" +msgstr "Ctrl" #: ../data/klavaro.glade.h:37 -msgid "_Keyboard" -msgstr "_کلیدی تختہ" +msgid "Caps" +msgstr "Caps" #: ../data/klavaro.glade.h:38 -msgid "Select the font to be used in the exercise window." -msgstr "مشق کھڑکی میں استعمال ہونے والا فونٹ منتخب کرو۔" +msgid "S_ave as:" +msgstr "_محفوظ بطور :" #: ../data/klavaro.glade.h:39 -msgid "_Font" -msgstr "_فونٹ" +msgid "Show previous screen." +msgstr "پچھلا تظاہرہ دکھاؤ۔" #: ../data/klavaro.glade.h:40 -msgid "Keep this checked if you want to get those nice beeps." -msgstr "اس کو نشان زدہ رکھو، اگر آپ وہ اچھی ٹوں ٹوں سننا چاہتے ہو۔" +msgid "_Previous step" +msgstr "_پچھلا قدم" #: ../data/klavaro.glade.h:41 -msgid "_Beep" -msgstr "_ٹوں ٹوں" +msgid "Show next screen." +msgstr "اگلا تظاہرہ دکھاؤ۔" #: ../data/klavaro.glade.h:42 -msgid "Co_urse information" -msgstr "نصابی اطلاع" +msgid "_Next step" +msgstr "_اگلا قدم" #: ../data/klavaro.glade.h:43 -msgid "Charts showing the learning progress along the exercises." -msgstr "مشقوں کے ساتھ سیکھنے کی پیش رفت دکھاتے ہوئے چارٹ۔" +msgid "Return without any modification." +msgstr "بغیر کسی تبدیلی کے واپسی۔" #: ../data/klavaro.glade.h:44 -msgid "_Progress" -msgstr "_پیش رفت" +msgid "Save the current keyboard layout with the name specified above." +msgstr "موجودہ کلیدی تختہ خاکہ کو اُوپر مخصوص کردہ نام سے محفوظ کرو۔" #: ../data/klavaro.glade.h:45 -msgid "Show local and external scores from other users." -msgstr "مقامی اور بیرونی دوسرے صارفین کے اسکور دکھاؤ۔" +msgid "_Save and use" +msgstr "_محفوظ اور استعمال" #: ../data/klavaro.glade.h:46 -msgid "_Top 10" -msgstr "_بالا 10" +msgid "" +"If you like those beautiful hands, click here to close this window keeping " +"them." +msgstr "" +"اگر آپ کو یہ خوبصورت ہاتھ یہاں پسند ہیں، تو کھڑکی بند کرنے سے پہلے یہاں کلک " +"کرو۔" #: ../data/klavaro.glade.h:47 -msgid "Return to the main menu." -msgstr "لائحۂ اول کی طرف واپسی۔" +msgid "_Keep hands" +msgstr "_ہاتھ رکھو" #: ../data/klavaro.glade.h:48 -msgid "B_ack to menu" -msgstr "لائحہ کو واپسی" +msgid "Klavaro - Main menu" +msgstr "کلاوارو - لائحہ اول" #: ../data/klavaro.glade.h:49 -msgid "Close this window." -msgstr "یہ کھڑکی بند کرو۔" +msgid "Don't be shy about learning the basics!" +msgstr "اساسیات سیکھنے میں شرماؤ مت!" #: ../data/klavaro.glade.h:50 -msgid "Font definition" -msgstr "فونٹ تعریف" +msgid "Learn how to type correctly" +msgstr "صحیح ٹائپ کس طرح کریں" #: ../data/klavaro.glade.h:51 -msgid "Top 10" -msgstr "بالا 10" +msgid "Initial training for your fingers." +msgstr "آپ کی انگلیوں کے لیے آغازی تربیت۔" #: ../data/klavaro.glade.h:52 -msgid "Show extra information" -msgstr "اضافی اطلاعات دکھاؤ" +msgid "First steps with initial training" +msgstr "آغازی تربیت کے پہلے اقدام" #: ../data/klavaro.glade.h:53 -msgid "Hide extra information" -msgstr "اضافی اطلاعات چھپاؤ" +msgid "Memorizing the keyboard practicing random keys exercises." +msgstr "تصادفی کلید مشق سے کلیدی‌تختہ کی یاداشت۔" #: ../data/klavaro.glade.h:54 -msgid "Publish to the web your local scores." -msgstr "اپنے مقامی اسکور ویب پر طبع کرو۔" +msgid "Practice with random keys" +msgstr "تصادفی کلیدوں سے مشق" #: ../data/klavaro.glade.h:55 -msgid "_Participate" -msgstr "_شمولیت" +msgid "Accelerating the touches practicing random words exercises." +msgstr "مشقِ تصادفی الفاظ سے اسراعِ لمس۔" #: ../data/klavaro.glade.h:56 -msgid "Download from the web the most up to date ranking." -msgstr "ویب سے تابہ امروز ترین رتبہ زیر اثقال کرو" +msgid "Practice with random words" +msgstr "تصادفی الفاظ سے مشق" #: ../data/klavaro.glade.h:57 -msgid "_Update" -msgstr "_تجدید" +msgid "Becoming proficient practicing complete paragraphs exercises." +msgstr "مکمل شذرہ (پیراگراف) مشق سے استعداد بڑھاؤ۔" #: ../data/klavaro.glade.h:58 -msgid "About 'Klavaro'" -msgstr "بارے 'کلاوارو'" +msgid "Practice with complete texts" +msgstr "مکمل عبارتیں سے مشق" + +#: ../data/klavaro.glade.h:59 +msgid "" +"Keyboard layout for modules 1 and 2. Also used informatively in the " +"fluidness contest." +msgstr "" +"مطبقیہ 1 اور 2 کے لیے کلیدی تختہ خاکے۔ نیز سیال پن مقابلہ میں اطلاعاتی " +"استعمال ہوتے ہیں۔" #: ../data/klavaro.glade.h:60 -msgid "Remember always: someone loves you!" -msgstr "ہمیشہ یاد رکھو: کوئی تمہیں چاہتا ہے!" +msgid "_Keyboard:" +msgstr "_کلیدی تختہ:" #: ../data/klavaro.glade.h:61 -msgid "Remove the selected custom layout." -msgstr "منتخب شدہ من پسند خاکہ ہٹاؤ۔" +msgid "Language for modules 3 and 4." +msgstr "مطبقیہ 3 اور 4 کے لے زبان۔" #: ../data/klavaro.glade.h:62 -msgid "_Remove" -msgstr "_ہٹاؤ" +msgid "_Language:" +msgstr "_زبان:" #: ../data/klavaro.glade.h:63 -msgid "" -"Toggles the shift effect on the keys. Alternates between the upper and lower " -"characters of the keys." -msgstr "" -"کلیدوں پر شِفٹ (shift) کے اثر کی تدویم کرتا ہے۔ اونچے اور نچلے حروف کی کلیدوں " -"کے درمیان ادلی بدلی کرتا ہے۔" +msgid "Speech" +msgstr "کلام" #: ../data/klavaro.glade.h:64 -msgid "SPACE BAR" -msgstr "نوارِ فضا (اسپیس بار)" +msgid "Your language here." +msgstr "یہاں تمہاری زبان۔" -#: ../data/klavaro.glade.h:65 ../src/keyboard.c:1630 -msgid "thumbs" -msgstr "انگوٹھے" +#: ../data/klavaro.glade.h:65 +msgid "Little tip about this program." +msgstr "اس پروگرام بارے چھوٹا سا ٹوٹکا۔" #: ../data/klavaro.glade.h:66 -#, fuzzy -msgid "Ctrl" -msgstr "Ctrl" +msgid "_Help" +msgstr "_مدد" #: ../data/klavaro.glade.h:67 -msgid "Caps" -msgstr "Caps" +msgid "General information about the program." +msgstr "اس پروگرام بارے جامع اطلاع۔" #: ../data/klavaro.glade.h:68 -msgid "S_ave as:" -msgstr "_محفوظ بطور :" +msgid "_About..." +msgstr "_بارے-" #: ../data/klavaro.glade.h:69 -msgid "Show previous screen." -msgstr "پچھلا تظاہرہ دکھاؤ۔" +msgid "Exit the application immediately." +msgstr "اطلاقیہ سے فوراً خروج کرو۔" #: ../data/klavaro.glade.h:70 -msgid "_Previous step" -msgstr "_پچھلا قدم" +msgid "Klavaro - Progress" +msgstr "کلاوارو - پیش‌رفت" #: ../data/klavaro.glade.h:71 -msgid "Show next screen." -msgstr "اگلا تظاہرہ دکھاؤ۔" +msgid "_Lesson:" +msgstr "_سبق:" #: ../data/klavaro.glade.h:72 -msgid "_Next step" -msgstr "_اگلا قدم" +msgid "Value" +msgstr "قدر" #: ../data/klavaro.glade.h:73 -msgid "Return without any modification." -msgstr "بغیر کسی تبدیلی کے واپسی۔" +msgid "Close this window, returning to the exercise." +msgstr "کھڑکی بند کرو، اور مشق کی طرف واپسی۔" #: ../data/klavaro.glade.h:74 -msgid "_Cancel" -msgstr "_منسوخ" +msgid "Clear all the progress data, for every module." +msgstr "ہر مِطبقیہ کا تمام پیشرفت معطیات صاف کرو۔" #: ../data/klavaro.glade.h:75 -msgid "Save the current keyboard layout with the name specified above." -msgstr "موجودہ کلیدی تختہ خاکہ کو اُوپر مخصوص کردہ نام سے محفوظ کرو۔" +msgid "_Reset" +msgstr "_طاقمِ‌نو!" #: ../data/klavaro.glade.h:76 -msgid "_Save and use" -msgstr "_محفوظ اور استعمال" +msgid "Top 10" +msgstr "بالا 10" #: ../data/klavaro.glade.h:77 -msgid "" -"If you like those beautiful hands, click here to close this window keeping " -"them." -msgstr "" -"اگر آپ کو یہ خوبصورت ہاتھ یہاں پسند ہیں، تو کھڑکی بند کرنے سے پہلے یہاں کلک " -"کرو۔" +#, fuzzy +msgid "Show extra information." +msgstr "اضافی اطلاعات دکھاؤ" #: ../data/klavaro.glade.h:78 -msgid "_Keep hands" -msgstr "_ہاتھ رکھو" +#, fuzzy +msgid "Hide extra information." +msgstr "اضافی اطلاعات چھپاؤ" #: ../data/klavaro.glade.h:79 -msgid "Change language" -msgstr "زبان تبدیل" +msgid "Publish to the web your local scores." +msgstr "اپنے مقامی اسکور ویب پر طبع کرو۔" #: ../data/klavaro.glade.h:80 -msgid "Attention!" -msgstr "توجہ!" +msgid "_Participate" +msgstr "_شمولیت" #: ../data/klavaro.glade.h:81 -msgid "Do you confirm?" -msgstr "کیا آپ توثیق کرتے ہو؟" +msgid "Download from the web the most up to date ranking." +msgstr "ویب سے تابہ امروز ترین رتبہ زیر اثقال کرو" #: ../data/klavaro.glade.h:82 -msgid "_No" -msgstr "_ناں" +msgid "_Update" +msgstr "_تجدید" #: ../data/klavaro.glade.h:83 -msgid "_Yes" -msgstr "_ہاں" +msgid "Load other exercises/lessons" +msgstr "دوسرے مشقیں/اسباق اثقال کرو" #: ../data/klavaro.glade.h:84 -msgid "Re_name:" -msgstr "باز_نام کرو:" +msgid "_Other texts" +msgstr "_دوسری عبارتیں" #: ../data/klavaro.glade.h:85 -msgid "Rename the selected item." -msgstr "منتخب شدہ مفردہ کو باز نام کرو۔" +msgid "Edit the character set to be used in this lesson." +msgstr "اس سبق میں استعمال ہونے والے مجموعہ حروف کی تدوین کرو۔" #: ../data/klavaro.glade.h:86 -msgid "" -"Read a text file and add a copy of it here. The file must be encoded in " -"UTF-8." -msgstr "" -"ٹیکسٹ ملف (فائل) پڑھو اور یہاں اس کی نقل جمع کرو۔ ملف کی تشفیر UTF-8 میں " -"ہونا چاہیے۔" +msgid "This is a specific exercise, adjusted to your error profile." +msgstr "یہ مخصوص مشق ہے، تمہاری شرحِ اغلاط نمایہ کے موافق۔" #: ../data/klavaro.glade.h:87 -msgid "_Open text file" -msgstr "_متن مِلف (فائل) کھولو" +#, fuzzy +msgid "" +"Edit the character set to be used in lessons after 43: they are customizable!" +msgstr "اسباق 44 سے 50 میں استعمال ہونے والے مجموعہ حروف کی تدوین کرو۔" -#: ../data/klavaro.glade.h:88 -msgid "Paste text that was copied to the clipboard." -msgstr "جو عبارت تختہ تراشہ پر نقل کی گئ تھی، وہ چسپاں کرو۔" +#: ../data/klavaro.glade.h:88 ../src/tutor.c:376 +msgid "Drag and drop text here to practice with it." +msgstr "عبارت کی مشق کے لیے عبارت کو یہاں کھینچ اور گِراؤ ۔" #: ../data/klavaro.glade.h:89 -msgid "_Paste from clipboard" -msgstr "_تختہ تراشہ سے چسپاں کرو" +#, fuzzy +msgid "Press here to restart the exercise. Hotkey: [Ctrl-R]" +msgstr "مشق کی شروعِ نو کے لیے یہاں دباؤ۔ گرم کلید: [Ctrl R]" #: ../data/klavaro.glade.h:90 -msgid "Remove the selected item." -msgstr "منتخب شدہ مفردہ کو ہٹاؤ۔" +msgid "Show the virtual keyboard and the relation between fingers and keys." +msgstr "مجازی کلیدی‌تختہ دکھاؤ، اور اُنگلیوں اور کلیدوں کے درمیان نسب۔" #: ../data/klavaro.glade.h:91 -msgid "_Remove copied file" -msgstr "_نقل شدہ مِلف (فائل) ہٹاؤ" +msgid "_Keyboard" +msgstr "_کلیدی تختہ" #: ../data/klavaro.glade.h:92 -msgid "Apply the selected item to create an exercise." -msgstr "مشق کی تخلیق کے لیے منتخب مفردہ کا اطلاق کرو۔" +msgid "Select the font to be used in the exercise window." +msgstr "مشق کھڑکی میں استعمال ہونے والا فونٹ منتخب کرو۔" #: ../data/klavaro.glade.h:93 -msgid "_Apply" -msgstr "_اطلاق" +msgid "Font definition" +msgstr "فونٹ تعریف" #: ../data/klavaro.glade.h:94 -msgid "Klavaro - Progress" -msgstr "کلاوارو - پیش‌رفت" +msgid "Keep this checked if you want to get those nice beeps." +msgstr "اس کو نشان زدہ رکھو، اگر آپ وہ اچھی ٹوں ٹوں سننا چاہتے ہو۔" #: ../data/klavaro.glade.h:95 -msgid "Value" -msgstr "قدر" +msgid "_Beep" +msgstr "_ٹوں ٹوں" #: ../data/klavaro.glade.h:96 -msgid "Clear all the progress data, for every module." -msgstr "ہر مِطبقیہ کا تمام پیشرفت معطیات صاف کرو۔" +msgid "Co_urse information" +msgstr "نصابی اطلاع" #: ../data/klavaro.glade.h:97 -msgid "_Reset" -msgstr "_طاقمِ‌نو!" +msgid "Charts showing the learning progress along the exercises." +msgstr "مشقوں کے ساتھ سیکھنے کی پیش رفت دکھاتے ہوئے چارٹ۔" #: ../data/klavaro.glade.h:98 -msgid "Close this window, returning to the exercise." -msgstr "کھڑکی بند کرو، اور مشق کی طرف واپسی۔" +msgid "_Progress" +msgstr "_پیش رفت" #: ../data/klavaro.glade.h:99 -msgid "Klavaro - Select file" -msgstr "کلاوارو - مِلف (فائل) منتخب" +msgid "Return to the main menu." +msgstr "لائحۂ اول کی طرف واپسی۔" #: ../data/klavaro.glade.h:100 -msgid "_Open" -msgstr "_کھولو" +msgid "Show local and external scores from other users." +msgstr "مقامی اور بیرونی دوسرے صارفین کے اسکور دکھاؤ۔" #: ../data/klavaro.glade.h:101 -msgid "Help?" -msgstr "مدد؟" - -#: ../data/klavaro.glade.h:102 -msgid "" -"The main menu of the application is very straightforward. Just select the " -"type of exercise you wish to take. Do not worry about clicking any button on " -"the screen. The buttons will never hurt you!" -msgstr "" -"اس اطلاقیہ کا لائحۂ اول بالکل سیدھا ہے۔ بس جس طرح کی مشق لینا چاہو، اس کا " -"انتخاب کرو۔ تظاہرہ پرکسی زریہ کو کلک کرنے سے نہ ہچکچاؤ ۔ زریہ کبھی تمہیں " -"نقصان نہیں پہنچائے گا!" +msgid "_Top 10" +msgstr "_بالا 10" -#: ../data/klavaro.glade.h:103 -msgid "" -"Also the controls have tips which will appear if you hover over them with " -"your mouse. These tips can come in very handy. To see how these tips work, " -"position your mouse over the button below, and without clicking, wait for " -"the tip to appear..." -msgstr "" -"نیز تظابیط (کنٹرول) کے ٹوٹکے ہیں جو فارہ (ماؤس) کو ان پر منڈالنے سے ظاہر " -"ہوتے ہیں۔ یہ ٹوتکے بہت کام آ سکتے ہیں۔ یہ جاننے کے لیے کہ یہ ٹوٹکے کس طرح " -"کام کرتے ہیں، فارہ کو نیچے زریہ پر قائم کرو اور بغیر کلک کیے ٹوٹکے کے ظاہر " -"ہونے کا انتظار کرو_" +#: ../data/klavaro.desktop.in.h:1 +#, fuzzy +msgid "A very flexible and efficient touch typing tutor." +msgstr "ایک اور لمسی ٹائپنگ اتالیق" -#: ../data/klavaro.glade.h:104 -msgid "This is a tip. Now you press this button to return to the main menu." -msgstr "یہ ٹوٹکا ہے۔ اب یہ زِرَیہ (بٹن) دبا کر آپ لائحہ اول کی طرف واپس ہو جاؤ۔" +#. Translators: these are keywords related to the program. CAI above means Computer Aided Instruction. Feel free to add and/or change the keywords in your language. +#: ../data/klavaro.desktop.in.h:3 +#, fuzzy +msgid "keyboard;typing;tutor;CAI" +msgstr "کلیدی تختہ" -#: ../src/main.c:314 +#: ../src/main.c:242 msgid "(Custom)" msgstr "(من پسند)" -#: ../src/main.c:315 +#: ../src/main.c:243 msgid "(Edit custom)" msgstr "(من پسند کی تدوین)" -#: ../src/main.c:316 +#: ../src/main.c:244 msgid "(Default)" msgstr "(معین)" -#: ../src/main.c:393 +#: ../src/main.c:321 #, c-format msgid "Dictation mode (depends on this speech synthesizer: %s)" msgid_plural "Dictation mode (depends on one of these speech synthesizers: %s)" msgstr[0] "املا اسلوب (تالیف کندہ کلام پر منحصر ہے: %s)" msgstr[1] "املا اسلوب (ان تالیف کندہ کلام میں سے ایک پر منحصر ہے: %s)" -#. Set main labels (for translation) -#. -#: ../src/main.c:435 ../src/keyboard.c:1291 +#: ../src/main.c:364 ../src/keyboard.c:1291 msgid "Introduction" msgstr "تعارف" -#: ../src/main.c:438 ../src/top10.c:109 +#: ../src/main.c:367 ../src/top10.c:109 msgid "Basic course" msgstr "اساسی نصاب" -#: ../src/main.c:441 ../src/top10.c:112 +#: ../src/main.c:370 ../src/top10.c:112 msgid "Adaptability" msgstr "ملائمیت" -#: ../src/main.c:444 ../src/callbacks.c:1310 ../src/top10.c:89 +#: ../src/main.c:373 ../src/callbacks.c:1226 ../src/top10.c:89 #: ../src/top10.c:115 msgid "Speed" msgstr "رفتار" -#: ../src/main.c:447 ../src/callbacks.c:1333 ../src/top10.c:91 +#: ../src/main.c:376 ../src/callbacks.c:1249 ../src/top10.c:91 #: ../src/top10.c:118 msgid "Fluidity" msgstr "اسیال پن" -#: ../src/callbacks.c:468 ../src/tutor.c:391 +#: ../src/callbacks.c:407 ../src/tutor.c:515 msgid "Keys:" msgstr "کلیدیں: " -#: ../src/callbacks.c:858 ../src/callbacks.c:874 +#: ../src/callbacks.c:774 ../src/callbacks.c:790 msgid "Connecting..." msgstr "واصلت_" -#: ../src/callbacks.c:1145 +#: ../src/callbacks.c:1061 msgid "Overwrite user layout" msgstr "صارفی خاکہ (کو مٹا کر اس کے) اُوپر-لکھو" -#: ../src/callbacks.c:1147 +#: ../src/callbacks.c:1063 msgid "This will OVERWRITE an existent keyboard layout." msgstr "یہ موجود کلیدی تختہ مٹا کر اوپر-لکھ دے گا۔" -#: ../src/callbacks.c:1154 +#: ../src/callbacks.c:1070 msgid "Remove user layout" msgstr "صارفی خاکہ ہٹاؤ" -#: ../src/callbacks.c:1156 +#: ../src/callbacks.c:1072 msgid "This will REMOVE an existent keyboard layout." msgstr "یہ موجود کلیدی تختہ خاکہ کو ہٹا دے گا۔" -#: ../src/callbacks.c:1163 +#: ../src/callbacks.c:1079 msgid "Reset progress data" msgstr "پیش رفت معطیات کی طاقمِ نو" -#: ../src/callbacks.c:1164 +#: ../src/callbacks.c:1080 msgid "This will DELETE all the progress data shown in the charts." msgstr "یہ چارٹ میں دکھایا تمام پیش رفت معطیات حذف کر دے گا۔" -#: ../src/callbacks.c:1307 ../src/top10.c:87 +#: ../src/callbacks.c:1223 ../src/top10.c:87 msgid "Accuracy" msgstr "درستی" -#: ../src/callbacks.c:1310 ../src/tutor.c:1160 +#: ../src/callbacks.c:1226 ../src/tutor.c:1288 msgid "(WPM)" msgstr "(WPM)" -#: ../src/callbacks.c:1321 +#: ../src/callbacks.c:1237 msgid "Errors" msgstr "غلطیاں" -#: ../src/callbacks.c:1324 +#: ../src/callbacks.c:1240 msgid "Touch times (s)" msgstr "" -#: ../src/callbacks.c:1336 ../src/tutor.c:1187 ../src/top10.c:69 +#: ../src/callbacks.c:1252 ../src/tutor.c:1315 ../src/top10.c:69 msgid "Score" msgstr "اسکور" #. Translators: your language code (first 2 letters of your po-file) -#: ../src/translation.c:423 ../src/translation.c:489 ../src/tutor.c:1597 +#: ../src/translation.c:485 ../src/tutor.c:1725 msgid "en" msgstr "ur" -#: ../src/translation.c:576 +#: ../src/translation.c:572 msgid "" "The basic course focuses on having you read the characters presented to you " "on screen and typing the corresponding keys. Remember to keep your hands " @@ -576,7 +581,7 @@ "ٹائپ کرنے پر مرکوز ہے۔ اپنے ہاتھ تمام وقت صحیح سمت میں کلیدی تختہ کی گھر " "قطار پر رکھنا یاد رہے (لائحہ اول پر تعارف دیکھو)۔" -#: ../src/translation.c:580 +#: ../src/translation.c:576 msgid "" "The key set used in each series will be shown in the above message line. The " "[Space], [Shift] and [Enter] keys may not show up there but are used very " @@ -586,7 +591,7 @@ "سکتا ہے کہ [فضاء (اسپیس)]، [شفٹ]، اور [داخل (اینٹر)] کلیدیں نظر نہ آئیں مگر " "اکثر اسعمال ہوتی ہیں۔" -#: ../src/translation.c:583 +#: ../src/translation.c:579 msgid "" "The message line below follows and echoes your key presses. If required, it " "changes and displays instructions for actions required from you." @@ -594,7 +599,7 @@ "نیچے دیا پیغام تمہاری دبائی گئی کلید کی تقلید اور بازگشت کرتا ہے۔ بضرورت، یہ " "تبدیل ہو گا اور تمہارے سے طلب افعال بارے ہدایات دکھائے گا۔" -#: ../src/translation.c:587 +#: ../src/translation.c:583 msgid "" "Here you may practice and improve your memorization of all keys. There will " "be sentences presented with nonsense words which mix some numbers and " @@ -603,7 +608,7 @@ "یہاں تم اپنی کلیدوں کی یاداشت کی مشق اور بہتری کر سکتے ہو۔ لغو الفاظ پر " "مشتمل فقرے پیش کیے جائینگے جن میں کچھ عدد اور علامتوں کی آمیزش ہو گی۔" -#: ../src/translation.c:590 +#: ../src/translation.c:586 msgid "" "In order to keep the lesson contents language and keyboard independent, " "accented letter combinations will probably not appear. For real word " @@ -613,7 +618,7 @@ "حروفی تولیف غالباً ظاہر نہیں ہونگے۔ حقیقی دنیا کے فقروں کے لیے براہ کرم لائحہ " "اول پر چوتھا اختیار استعمال کرو (بارے سیال پن)" -#: ../src/translation.c:594 +#: ../src/translation.c:590 msgid "" "After each exercise there will be a brief statistics panel reviewing your " "performance along with some relevant comments." @@ -621,7 +626,7 @@ "ہر مشق کے بعد ایک مختصر لوحِ احصاء جس میں تمہاری کارکردگی پر نظر ثانی اور " "ساتھ کچھ متعلقہ تبصرہ ہو گا۔" -#: ../src/translation.c:598 +#: ../src/translation.c:594 msgid "" "This exercise is very similar to the second one, for adaptability. The " "difference is that here you'll type real words." @@ -629,7 +634,7 @@ "یہ مشق دوسری سے بہت مشابہ ہے، ملائمیت والی۔ فرق یہ ہے کہ یہاں تم حقیقی الفاظ " "ٹائپ کرو گے۔" -#: ../src/translation.c:601 +#: ../src/translation.c:597 msgid "" "The default language is the actual one of the interface. But you may select " "any other texts with words you would like to use. Press the 'Other' option " @@ -639,7 +644,7 @@ "سکتے ہو جس کے الفاظ تم استعمال کرنا چاہو ۔ اوپر 'دوسرا' اختیار دباؤ اور اُن " "عبارتوں والی مِلفوں (فائل) کو جمع کرو۔" -#: ../src/translation.c:605 +#: ../src/translation.c:601 msgid "" "With this exercise the focus is on speed. So, you are supposed to type " "really fast and I will only flatter you when you deserve it!" @@ -647,7 +652,7 @@ "اس مشق میں زور رفتار پر ہے، اسلئے، تم کو حقیقاً تیز ٹائپ کرنا چاہیے اور میں " "اسی وقت مدح کرونگی جب تم اس کے مستحق ہو گے!" -#: ../src/translation.c:609 +#: ../src/translation.c:605 msgid "" "We will now use complete sentences and paragraphs which make logical sense. " "This may distract you while you type if you try to understand what you are " @@ -659,7 +664,7 @@ "پڑ جاؤ۔ پچھلی مشق کا مقصد تمہیں بغیر متن کی تفسیر اور تحلیل کے ٹائپ کروانا " "تھا۔" -#: ../src/translation.c:613 +#: ../src/translation.c:609 msgid "" "We do not mean to imply that the typists must behave like a robot, without " "understanding what they type. We do aim to develop the skill of typing, " @@ -674,8 +679,7 @@ "منزل پا لینے کے بعد ٹائپنگ کا عمل خودکار ہو جائے گا جس کے لیے بہت کم ارتکاز " "کی ضرورت ہو گی۔ اس کے بعد تم متن کے حقیقی معنی کی طرف توجہ دے سکو گے۔" -#. English typo: minimun -> minimum -#: ../src/translation.c:618 +#: ../src/translation.c:613 msgid "" "These exercises are longer. Each exercise consists of three paragraphs and " "the emphasis is placed on correctness and rhythm, with a minimum speed " @@ -687,7 +691,6 @@ "استعمال سے کوئی غلطی کو درست کرنا ہو گا۔ دوسرے الفاظ میں صرف غلطی کے بغیر " "ادخال قبول کیا جائے گا۔" -#. English typo: recomendations -> recommendations #: ../src/keyboard.c:1094 msgid "" "Correct positioning of the hands and fingers is very important to efficient " @@ -781,13 +784,11 @@ msgid "Step %i" msgstr "قدم %i" -#. Recommendations -#: ../src/keyboard.c:1140 +#: ../src/keyboard.c:1142 msgid "To position the hands" msgstr "ہاتھوں کو مقام پر رکھنے کے لیے" -#. Final words -#: ../src/keyboard.c:1225 +#: ../src/keyboard.c:1227 msgid "Go ahead!" msgstr "آگے بڑھو!" @@ -829,66 +830,66 @@ msgid "Press and edit me" msgstr "کوئ کلید دباؤ اور میری تدوین کرو" -#: ../src/tutor.c:176 +#: ../src/tutor.c:300 msgid "Lesson:" msgstr "سبق:" -#: ../src/tutor.c:186 +#: ../src/tutor.c:310 msgid "Paragraphs:" msgstr "شذرے:" -#: ../src/tutor.c:219 +#: ../src/tutor.c:343 msgid "Klavaro - Basic Course" msgstr "کلاوارو - اساسی نصاب" -#: ../src/tutor.c:224 +#: ../src/tutor.c:348 msgid "Klavaro - Adaptability" msgstr "کلاوارو - ملائمیت" -#: ../src/tutor.c:227 +#: ../src/tutor.c:351 msgid "" "Adaptability exercises: automating the fingers responses, typing over all " "the keyboard." msgstr "" "ملائمیت مشقیں: اُنگلیوں کے ردعمل کی خودکار ی، تمام کلیدی تختہ پر ٹائپنگ۔" -#: ../src/tutor.c:232 +#: ../src/tutor.c:356 msgid "Klavaro - Velocity" msgstr "کلاوارو - سمتار (رفتار)" -#: ../src/tutor.c:233 +#: ../src/tutor.c:357 msgid "Velocity exercises: accelerate typing real words." msgstr "رفتار مشقیں: حقیقی الفاظ ٹائپنگ کرتے اسراع" -#: ../src/tutor.c:237 +#: ../src/tutor.c:361 msgid "Klavaro - Fluidness" msgstr "کلاوارو ۔ سیال‌پن" -#: ../src/tutor.c:239 +#: ../src/tutor.c:363 msgid "Fluidness exercises: accuracy typing good sense paragraphs." msgstr "سیال پن مشقیں: صحیح فہم شذرہ کی درست ٹائپنگ۔" -#: ../src/tutor.c:301 +#: ../src/tutor.c:425 msgid "End of exercise. Press [Enter] to start another." msgstr "مشق کا اختتام۔ دوسری کے آغاز کے لیے [Enter] دباؤ۔" -#: ../src/tutor.c:329 +#: ../src/tutor.c:453 msgid "Learning the key positions." msgstr "کلیدوں کے مقام سیکھنا۔" -#: ../src/tutor.c:332 +#: ../src/tutor.c:456 msgid "Press any key to start the exercise. " msgstr "مشق کے آغاز کے لیے کوئ کلید دباؤ۔ " -#: ../src/tutor.c:440 ../src/tutor.c:443 +#: ../src/tutor.c:567 ../src/tutor.c:570 msgid "Start typing when you are ready. " msgstr "جب تم تیار ہو، ٹائپنگ کا آغاز کر دو۔ " -#: ../src/tutor.c:441 +#: ../src/tutor.c:568 msgid "Use backspace to correct errors." msgstr "" -#: ../src/tutor.c:885 +#: ../src/tutor.c:1012 #, c-format msgid "" "ps.: logging not performed for this session: the number of typed characters " @@ -897,11 +898,11 @@ "پیغام: اس اجلاس کی نوشتہ گیری نہیں انجام دی گئ: ٹائپ کیے گئے حروف کی تعداد " "(%i) زیادہ ہونا چاہیے (%i) سے۔" -#: ../src/tutor.c:1027 +#: ../src/tutor.c:1154 msgid "ps.: you have entered the Top 10 list, great!" msgstr "پیغام: آپ بالا 10 فہرست میں داخل ہو گئے ہو، زبردست!" -#: ../src/tutor.c:1039 +#: ../src/tutor.c:1166 msgid "" "ps.: the text you just typed doesn't seem to be similar to ordinary texts in " "the language currently selected: we can't account for it in the 'Top 10' " @@ -910,96 +911,93 @@ "پیغام: جو عبارت آپ نے ٹائپ کی وہ منتخب شدہ زبان کی عام عبارتوں سے مماثلت " "نہیں رکھتی: ہم اس کا بلا 10 مقابلہ میں شمار نہیں کر سکتے۔" -#. Begin the accuracy -#: ../src/tutor.c:1087 +#: ../src/tutor.c:1215 msgid "STATISTICS" msgstr "احصاء" -#: ../src/tutor.c:1088 +#: ../src/tutor.c:1216 msgid "Elapsed time:" msgstr "گزرا وقت:" -#: ../src/tutor.c:1089 +#: ../src/tutor.c:1217 msgid "minute and" msgid_plural "minutes and" msgstr[0] "دقیقہ اور" msgstr[1] "دقیقے اور" -#: ../src/tutor.c:1090 +#: ../src/tutor.c:1218 msgid "second" msgid_plural "seconds" msgstr[0] "ثانیہ" msgstr[1] "ثانیے" -#: ../src/tutor.c:1091 +#: ../src/tutor.c:1219 msgid "Error ratio:" msgstr "شرحِ اغلاط:" -#: ../src/tutor.c:1091 +#: ../src/tutor.c:1219 msgid "Accuracy:" msgstr "درستگی:" -#: ../src/tutor.c:1112 ../src/tutor.c:1137 ../src/tutor.c:1160 -#: ../src/tutor.c:1186 +#: ../src/tutor.c:1240 ../src/tutor.c:1265 ../src/tutor.c:1288 +#: ../src/tutor.c:1314 msgid "Goal:" msgstr "منزل:" -#: ../src/tutor.c:1119 +#: ../src/tutor.c:1247 msgid "Characters per second:" msgstr "حروف فی ثانیہ:" -#: ../src/tutor.c:1137 +#: ../src/tutor.c:1265 msgid "(CPS)" msgstr "(CPS)" -#: ../src/tutor.c:1142 +#: ../src/tutor.c:1270 msgid "Words per minute:" msgstr "الفاظ فی دقیقہ:" -#: ../src/tutor.c:1167 +#: ../src/tutor.c:1295 msgid "Fluidness:" msgstr "سیال‌پن:" -#: ../src/tutor.c:1194 +#: ../src/tutor.c:1322 msgid "Comments:" msgstr "تبصرے:" -#: ../src/tutor.c:1676 +#: ../src/tutor.c:1804 msgid "space" msgstr "فضاء (اسپیس)" #. Translators: the name of letter Y -#: ../src/tutor.c:1681 +#: ../src/tutor.c:1809 #, fuzzy msgid "wye" msgstr "wye" #. Translators: the name of the Return key -#: ../src/tutor.c:1685 +#: ../src/tutor.c:1813 #, fuzzy msgid "enter" msgstr "اندراج" -#: ../src/tutor.c:1691 +#: ../src/tutor.c:1819 #, fuzzy msgid "apostrophe" msgstr "apostrophe" #. Translators: double quote symbol: " -#: ../src/tutor.c:1695 +#: ../src/tutor.c:1823 #, fuzzy msgid "quote" msgstr "قول" #. Translators: ampersand symbol: & -#: ../src/tutor.c:1699 +#: ../src/tutor.c:1827 #, fuzzy msgid "ampersand" msgstr "ampersand" -#. Error frequencies or touch times -#. -#: ../src/plot.c:308 +#: ../src/plot.c:305 msgid "Character" msgstr "" @@ -1007,11 +1005,11 @@ msgid "Date & Time" msgstr "تاریخ اور وقت" -#: ../src/basic.c:331 +#: ../src/basic.c:326 msgid "Positions of keys seems to be learned!" msgstr "لگتا ہے کہ کلیدوں کے مقام سیکھ لیے ہیں!" -#: ../src/basic.c:332 +#: ../src/basic.c:327 msgid "" " Congratulations!\n" " You have accomplished the entire basic course.\n" @@ -1023,7 +1021,7 @@ " اگلی قِسم کی مشق پر جاؤ: ملائمیت۔\n" " وہاں آپ اولین درستگی کی مشق کرو گے۔\n" -#: ../src/basic.c:338 +#: ../src/basic.c:333 msgid "" " All right, now you got it!\n" " Go to the next lesson.\n" @@ -1031,34 +1029,36 @@ " سب اچھا، اب آپ کو پتہ چل گیا!\n" " اگلے سبق پر جاؤ۔\n" -#: ../src/adaptability.c:217 +#: ../src/adaptability.c:213 +#, fuzzy, c-format msgid "" -" Your accuracy rate is below 90%...\n" +" Your accuracy rate is below %.0f%%...\n" " Could you please try again to improve it?\n" msgstr "" "آپ کی شرحِ درستگی 90% سے کم ہے...\n" "کیا براہِ کرم آپ دوبارہ کوشش کر کے اسے بہتر بنا سکتے ہو؟\n" -#: ../src/adaptability.c:222 +#: ../src/adaptability.c:216 +#, fuzzy, c-format msgid "" " You are doing well. But...\n" -" Could you make the accuracy reach 95%?\n" +" Could you make the accuracy reach %.0f%%?\n" msgstr "" " آپ بہتر کر رہے ہو۔ مگر...\n" " کیا آپ درستگی کو 95% تک پہنچا سکتے ہو؟\n" -#: ../src/adaptability.c:225 -#, c-format +#: ../src/adaptability.c:219 +#, fuzzy, c-format msgid "" " You are almost there, but your accuracy rate is still below %.0f%%.\n" -" Try a few more times, or maybe you're getting upset, so go to other kind of " -"exercise.\n" +" Try a few more times, or maybe you're getting upset, so go to another kind " +"of exercise.\n" msgstr "" "آ پ تقریباً اُدھر پہنچ گئے ہو، مگر درستگی کی شرح اب بھی %.0f%% سے کم ہے۔\n" "کچھ بار مزید کوشش کرو، یا ممکن ہے کہ آپ پریشان ہو رہے ہو، اسلئے دوسری قسم " "کی مشق پر چلے جاؤ۔\n" -#: ../src/adaptability.c:232 +#: ../src/adaptability.c:226 #, c-format msgid "" " Very good!\n" @@ -1071,11 +1071,11 @@ " اب اپنی رفتار بڑھانے کا وقت ہے۔\n" " لائحۂ اول پر 3ویں مشق پر جاو۔\n" -#: ../src/velocity.c:313 ../src/fluidness.c:435 +#: ../src/velocity.c:312 ../src/fluidness.c:435 msgid "Pasted_or_dropped" msgstr "چسپاں_یا_گِرایا" -#: ../src/velocity.c:432 +#: ../src/velocity.c:423 msgid "" " You are just beginning.\n" " Be patient, try it again every day, rest and don't worry so much:\n" @@ -1085,31 +1085,34 @@ "صبر کرو، ہر روز دوبارہ کوشش کرو، آرام کرو اور اتنی فکر مت کرو:\n" "استقامت اور مشق سے آپ کی رفتار بہتر ہوتی جائے گی۔\n" -#: ../src/velocity.c:436 +#: ../src/velocity.c:427 +#, fuzzy, c-format msgid "" " Still away from the highway. You can make better...\n" -" Try at least 20 WPM.\n" +" Try to reach at least %.0f WPM.\n" msgstr "" " شاہراہ سے اب بھی دور۔ آپ بہتر کر سکتے ہو...\n" " کم از کم 20 الفاظ فی دقیقہ (WPS) کی کوشش کرو۔\n" -#: ../src/velocity.c:439 +#: ../src/velocity.c:430 +#, fuzzy, c-format msgid "" " You are doing well, but need to go faster.\n" -" And don't forget the accuracy. Try to get 30 WPM.\n" +" And don't forget the accuracy. Try to get %.0f WPM.\n" msgstr "" " آپ بہتر کر رہے ہو، مگر تیز جانے کی ضرورت ہے۔\n" " اور درستگی کو مت بھولنا۔ 30 الفاظ فی دقیقہ (WPS) کی کوشش کرو۔\n" -#: ../src/velocity.c:443 +#: ../src/velocity.c:433 +#, fuzzy, c-format msgid "" " Fine. Now you need to start running.\n" -" Can you reach 40 WPM?\n" +" Can you reach %.0f WPM?\n" msgstr "" " اچھا۔ اب آپ کو دوڑنے کی ضرورت ہے۔\n" " کیا آپ 40 الفاظ فی دقیقہ (WPS) تک پہنچ سکتے ہو؟\n" -#: ../src/velocity.c:446 +#: ../src/velocity.c:436 #, c-format msgid "" " Very good. You are almost there.\n" @@ -1118,7 +1121,7 @@ " بہت خوب۔ آپ تقریباً وہاں پہنچ گئے۔\n" " کیا آپ بالآخر %.0f الفاظ فی دقیقہ (WPM) تک پہنچ سکتے ہو؟\n" -#: ../src/velocity.c:451 +#: ../src/velocity.c:439 msgid "" " Excellent. For this course, that is enough.\n" " Try now the fluidness exercises, OK?\n" @@ -1126,31 +1129,34 @@ " شاندار۔ اس نصاب کے لیے، یہ کافی ہے۔\n" " اب سیال پن کی مشقیں کرو، ٹھیک؟\n" -#: ../src/velocity.c:455 +#: ../src/velocity.c:442 +#, fuzzy, c-format msgid "" -" Fast! Are you training for a competition?\n" -" So, try to get 70 WPM!\n" +" Fast! Are you a professional?\n" +" So, try to get %.0f WPM!\n" msgstr "" " تیز! کیا آپ مقابلہ کے لیے تربیت کر رہے ہو؟\n" " تو، 70 الفاظ فی دقیقہ (WPM) تک جانے کی کوشش کرو۔\n" -#: ../src/velocity.c:458 -msgid "" -" Top of \"qwerty\". Now it's time to change to the Dvorak mode.\n" -" Are you afraid of reaching 80 WPM?\n" +#. Translators: Speed Racer is a reference to a Japanese anime franchise +#. about automobile racing, also known as Mach GoGoGo. +#: ../src/velocity.c:447 +#, c-format +msgid " Ranking good, Speed Racer! Are you afraid of reaching %.0f WPM?\n" msgstr "" -" بالا \"qwerty\" کا۔ اب وقت ہے ڈوارک اسلوب کا۔\n" -" کیا آپ کو 80 WPM پہنچنے سے ڈر لگتا ہے۔\n" -#: ../src/velocity.c:462 +#. Translators: feel free to change the reference to that martial art, if you find another good analogy. +#: ../src/velocity.c:451 +#, fuzzy, c-format msgid "" -" Dvorak mode dominated!\n" -" Can you fly at 90 WPM?\n" +" Kunf-fu mastering!\n" +" Can you fly at %.0f WPM?\n" msgstr "" " ڈوارک اسلوب پر غلبہ!\n" " کیا آپ 90 WPM پر اُڑ سکتے ہو؟\n" -#: ../src/velocity.c:466 +#. Translators: Dvorak here means that infamous ergonomic keyboard layout. +#: ../src/velocity.c:454 msgid "" " Dvorak master!\n" " I have no words to express my admiration!\n" @@ -1158,7 +1164,7 @@ " ڈوارک آقا!\n" " میرے پاس تحسین کے اظہار کے لیے الفاظ نہیں!\n" -#: ../src/fluidness.c:545 +#: ../src/fluidness.c:538 #, c-format msgid "" " You type accurately but not so fast.\n" @@ -1167,7 +1173,7 @@ " آپ درست ٹائپ کرتے ہو، مگر تیز نہیں۔\n" " کیا آپ %.0f الفاظ فی دقیقہ (WPM) تک پہنچ سکتے ہو؟\n" -#: ../src/fluidness.c:548 +#: ../src/fluidness.c:541 #, c-format msgid "" " Your rhythm is not so constant. Calm down.\n" @@ -1176,7 +1182,7 @@ " آپ کا آہنگ کچھ اتنا دائم نہیں ہے۔ قَرار پاؤ۔\n" " اب کے لیے، سیال‌پن کو %i%%.سے اوپر لے جانے کی کوشش کرو۔\n" -#: ../src/fluidness.c:551 +#: ../src/fluidness.c:544 #, c-format msgid "" " You are almost getting there. Type more fluently.\n" @@ -1185,7 +1191,7 @@ "آپ وہاں پہنچ رہے ہو۔ زیادہ روانی سے ٹائپ کرو۔\n" "مجھے %.0f%%. سے زیادہ سیال پین چاہیے \n" -#: ../src/fluidness.c:554 +#: ../src/fluidness.c:547 msgid "" " Congratulations!\n" " It seems to me that you are a professional.\n" @@ -1197,7 +1203,7 @@ "تم کو اس پروگرام (میری) مزید ضرورت نہیں۔\n" "امید ہے کہ تم لطف اندوز ہوئے۔ شکریہ اور خوش رہو!\n" -#: ../src/fluidness.c:559 +#: ../src/fluidness.c:552 msgid "" " How can you type so fast?\n" " You have exceeded all my expectations.\n" @@ -1257,5 +1263,21 @@ msgid "Could not upload/download scores." msgstr "سکور زِیر/زَبر اثقال نہیں کر سکی۔" +#~ msgid "" +#~ " Top of \"qwerty\". Now it's time to change to the Dvorak mode.\n" +#~ " Are you afraid of reaching 80 WPM?\n" +#~ msgstr "" +#~ " بالا \"qwerty\" کا۔ اب وقت ہے ڈوارک اسلوب کا۔\n" +#~ " کیا آپ کو 80 WPM پہنچنے سے ڈر لگتا ہے۔\n" + +#~ msgid "Press here to restart the exercise. Hotkey: [Ctrl R]" +#~ msgstr "مشق کی شروعِ نو کے لیے یہاں دباؤ۔ گرم کلید: [Ctrl R]" + +#~ msgid "_Font" +#~ msgstr "_فونٹ" + +#~ msgid "Klavaro" +#~ msgstr "کلاوارو" + #~ msgid "Default" #~ msgstr "معین" diff -Nru klavaro-1.9.9/po/vi.po klavaro-3.00/po/vi.po --- klavaro-1.9.9/po/vi.po 2013-08-15 13:38:52.000000000 +0000 +++ klavaro-3.00/po/vi.po 2014-01-13 23:25:53.000000000 +0000 @@ -1,564 +1,571 @@ -# Klavaro translation for Vietnamese -# Copyright (C) 2005-2013 Felipe Castro at http://klavaro.sourceforge.net/ +# Klavaro translation for Vietnamese. +# Bản dịch tiếng việt dành cho gói klavaro. +# Copyright (C) 2005-2014 Felipe Castro at http://klavaro.sourceforge.net/ # This file is distributed under the same license as the klavaro package. -# Trần Ngọc Quân , 2008-2013. +# Trần Ngọc Quân , 2008-2014. # msgid "" msgstr "" -"Project-Id-Version: klavaro-1.9.7\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2013-08-15 10:38-0300\n" -"PO-Revision-Date: 2013-05-04 08:19+0700\n" +"Project-Id-Version: klavaro 3.00-pre2\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2014-01-13 21:25-0200\n" +"PO-Revision-Date: 2014-01-10 07:44+0700\n" "Last-Translator: Trần Ngọc Quân \n" "Language-Team: Vietnamese \n" "Language: vi\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=1; plural=0;\n" "X-Poedit-SourceCharset: UTF-8\n" -"Plural-Forms: nplurals=2; plural=1;\n" "X-Generator: Poedit 1.5.5\n" -#: ../data/klavaro.desktop.in.h:1 ../data/klavaro.glade.h:59 -msgid "Yet another touch typing tutor" -msgstr "Đây là một chương trình học gõ bàn phím máy tính khác dành cho bạn" - #: ../data/klavaro.glade.h:1 -msgid "Klavaro - Main menu" -msgstr "Klavaro - Trình đơn chính" +msgid "About 'Klavaro'" +msgstr "Giới thiệu về “Klavaro”" #: ../data/klavaro.glade.h:2 -msgid "Don't be shy about learning the basics!" -msgstr "Không nên trốn tránh việc học các bài học cơ bản!" +msgid "Yet another touch typing tutor" +msgstr "Đây là một chương trình học gõ bàn phím máy tính khác dành cho bạn" #: ../data/klavaro.glade.h:3 -msgid "Learn how to type correctly" -msgstr "Học cách gõ bàn phím đúng phương pháp" +msgid "Remember always: someone loves you!" +msgstr "Luôn nhớ rằng: có người yêu quí bạn!" #: ../data/klavaro.glade.h:4 -msgid "Initial training for your fingers." -msgstr "Bắt đầu luyện tập các ngón tay của bạn." +msgid "Change language" +msgstr "Thay đổi ngôn ngữ" #: ../data/klavaro.glade.h:5 -msgid "First steps with initial training" -msgstr "Bước đầu tiên với việc khởi tạo tiến trình luyện tập" +msgid "Attention!" +msgstr "Chú ý!" #: ../data/klavaro.glade.h:6 -msgid "Memorizing the keyboard practicing random keys exercises." -msgstr "Học thuộc bàn phím bằng cách luyện tập với phím ngẫu nhiên." +msgid "Do you confirm?" +msgstr "Bạn có thực sự muốn làm thế không?" #: ../data/klavaro.glade.h:7 -msgid "Practice with random keys" -msgstr "Luyện tập với phím ngẫu nhiên" +msgid "_No" +msgstr "Khô_ng" + +#: ../data/klavaro.glade.h:8 +msgid "_Yes" +msgstr "_Có" -#. English typo: touchs -> touches #: ../data/klavaro.glade.h:9 -msgid "Accelerating the touches practicing random words exercises." -msgstr "Gia tăng tốc độ gõ bằng cách luyện với những từ ngẫu nhiên." +msgid "Help?" +msgstr "Trợ giúp?" #: ../data/klavaro.glade.h:10 -msgid "Practice with random words" -msgstr "Luyện với những từ ngẫu nhiên." +msgid "This is a tip. Now you press this button to return to the main menu." +msgstr "Đây là mẹo nhỏ. Bây giờ bạn nhấn nút này để quay lại trình đơn chính." #: ../data/klavaro.glade.h:11 -msgid "Becoming proficient practicing complete paragraphs exercises." -msgstr "Để thành thạo cần hoàn thành các bài luyện tập gõ các đoạn văn." +msgid "B_ack to menu" +msgstr "Qu_ay lại trình đơn" #: ../data/klavaro.glade.h:12 -msgid "Practice with complete texts" -msgstr "Luyện tập với một đoạn văn thật" +msgid "" +"The main menu of the application is very straightforward. Just select the " +"type of exercise you wish to take. Do not worry about clicking any button on " +"the screen. The buttons will never hurt you!" +msgstr "" +"Trình đơn chính của chương trình rất dễ dùng. Chỉ việc chọn kiểu bài học " +"mình muốn. Không cần phải lo lắng về việc bấm chuột vào bất kỳ nút nào trên " +"màn hình. Chúng chẳng làm hỏng gì cả đâu!" #: ../data/klavaro.glade.h:13 msgid "" -"Keyboard layout for modules 1 and 2. Also used informatively in the " -"fluidness contest." -msgstr "Bố trí bàn phím cho mô đun 1 và 2. Cũng dùng trong bài thi gõ tự do." +"Also the controls have tips which will appear if you hover over them with " +"your mouse. These tips can come in very handy. To see how these tips work, " +"position your mouse over the button below, and without clicking, wait for " +"the tip to appear..." +msgstr "" +"Các điều khiển cũng có các hướng dẫn hiện ra nếu bạn di chuyển con chuột qua " +"chúng. Chúng là cần thiết. Để biết chúng làm việc như thế nào, di chuyển con " +"trỏ chuột qua nút ở phía dưới nhưng đừng bấm chuột, chờ nó xuất hiện..." #: ../data/klavaro.glade.h:14 -msgid "_Keyboard:" -msgstr "_Bàn phím:" +msgid "Klavaro - Select file" +msgstr "Klavaro - Chọn tập tin" #: ../data/klavaro.glade.h:15 -msgid "Language for modules 3 and 4." -msgstr "Ngôn ngữ cho mô đun 3 và 4." +msgid "_Cancel" +msgstr "_Hủy bỏ" #: ../data/klavaro.glade.h:16 -msgid "_Language:" -msgstr "_Ngôn ngữ:" +msgid "_Open" +msgstr "_Mở" #: ../data/klavaro.glade.h:17 -msgid "Variant" -msgstr "Biến thể" +msgid "Re_name:" +msgstr "Đổi tê_n:" #: ../data/klavaro.glade.h:18 -msgid "Klavaro" -msgstr "Klavaro" +msgid "Rename the selected item." +msgstr "Đổi tên mục đã được chọn." #: ../data/klavaro.glade.h:19 -msgid "Country / Custom" -msgstr "Quốc gia/ Thói quen" +msgid "" +"Read a text file and add a copy of it here. The file must be encoded in " +"UTF-8." +msgstr "" +"Đọc tập tin văn bản và thêm bản sao của nó vào đây. Tập tin phải sử dụng " +"bảng mã UTF-8." #: ../data/klavaro.glade.h:20 -msgid "Your language here." -msgstr "Ngôn ngữ của bạn ở đây." +msgid "_Open text file" +msgstr "_Mở tập tin văn bản" #: ../data/klavaro.glade.h:21 -msgid "Speech" -msgstr "Phát âm" +msgid "Paste text that was copied to the clipboard." +msgstr "Dán chữ mà bạn đã sao chép trong clipboard." #: ../data/klavaro.glade.h:22 -msgid "Little tip about this program." -msgstr "Mẹo nhỏ khi sử dụng chương trình này." +msgid "_Paste from clipboard" +msgstr "_Dán từ clipboard" #: ../data/klavaro.glade.h:23 -msgid "_Help" -msgstr "_Trợ giúp" +msgid "Remove the selected item." +msgstr "Gỡ bỏ mục đã được chọn." #: ../data/klavaro.glade.h:24 -msgid "General information about the program." -msgstr "Giới thiệu một số thông tin về chương trình." +msgid "_Remove copied file" +msgstr "_Xóa bỏ tập tin đã sao chép" #: ../data/klavaro.glade.h:25 -msgid "_About..." -msgstr "_Giới thiệu..." +msgid "Apply the selected item to create an exercise." +msgstr "Áp dụng một mục đã chọn để tạo ra một bài luyện tập mới." #: ../data/klavaro.glade.h:26 -msgid "Exit the application immediately." -msgstr "Thoát khỏi ứng dụng ngay lập tức." +msgid "_Apply" +msgstr "Á_p dụng" #: ../data/klavaro.glade.h:27 -msgid "_Close" -msgstr "Đón_g" +msgid "Close this window." +msgstr "Đóng cửa sổ ảnh này lại." #: ../data/klavaro.glade.h:28 -msgid "Load other exercises/lessons" -msgstr "Tải bài tập/bài học khác" +msgid "_Close" +msgstr "Đón_g" #: ../data/klavaro.glade.h:29 -msgid "_Other texts" -msgstr "Văn bản _khác" +msgid "Country / Custom" +msgstr "Quốc gia/ Thói quen" #: ../data/klavaro.glade.h:30 -msgid "_Lesson:" -msgstr "_Bài học:" +msgid "Variant" +msgstr "Biến thể" #: ../data/klavaro.glade.h:31 -msgid "Edit the character set to be used in this lesson." -msgstr "Hiệu chỉnh bộ ký tự sử dụng trong bài học này." +msgid "Remove the selected custom layout." +msgstr "Gỡ bỏ giao diện được chọn." #: ../data/klavaro.glade.h:32 -msgid "Edit the character set to be used in lessons 44 through 50." -msgstr "Hiệu chỉnh bộ ký tự sử dụng trong bài học từ 44 đến 50." +msgid "_Remove" +msgstr "_Xóa bỏ" #: ../data/klavaro.glade.h:33 -msgid "This is a specific exercise, adjusted to your error profile." -msgstr "Đây là bài tập đặc thù, hãy chỉnh sửa thông tin cá nhân bị lỗi." +msgid "" +"Toggles the shift effect on the keys. Alternates between the upper and lower " +"characters of the keys." +msgstr "" +"Bật/tắt hiệu ứng phím shift trên các phím. Để chuyển đổi giữa gõ chữ hoa và " +"chữ thường." -#: ../data/klavaro.glade.h:34 ../src/tutor.c:252 -msgid "Drag and drop text here to practice with it." -msgstr "Kéo và thả đoạn văn vào đây để luyện tập với nó." +#: ../data/klavaro.glade.h:34 +msgid "SPACE BAR" +msgstr "PHÍM CÁCH" -#: ../data/klavaro.glade.h:35 -msgid "Press here to restart the exercise. Hotkey: [Ctrl R]" -msgstr "Bấm vào đây để đặt lại bài tập. Phím nóng: [Ctrl R]" +#: ../data/klavaro.glade.h:35 ../src/keyboard.c:1630 +msgid "thumbs" +msgstr "ngón tay cái" #: ../data/klavaro.glade.h:36 -msgid "Show the virtual keyboard and the relation between fingers and keys." -msgstr "Hiển thị bàn phím ảo và sự liên hệ giữa các ngón tay và phím." +msgid "Ctrl" +msgstr "Ctrl" #: ../data/klavaro.glade.h:37 -msgid "_Keyboard" -msgstr "_Bàn phím" +msgid "Caps" +msgstr "Phím Caps" #: ../data/klavaro.glade.h:38 -msgid "Select the font to be used in the exercise window." -msgstr "Chọn phông chữ sử dụng trong cửa sổ bài tập." +msgid "S_ave as:" +msgstr "_Ghi lại bằng tên mới:" #: ../data/klavaro.glade.h:39 -msgid "_Font" -msgstr "_Font" +msgid "Show previous screen." +msgstr "Hiển thị màn hình kế trước." #: ../data/klavaro.glade.h:40 -msgid "Keep this checked if you want to get those nice beeps." -msgstr "Giữ dấu kiểm này được đánh nếu bạn muốn có tiếng bíp hay." +msgid "_Previous step" +msgstr "Bước t_rước" #: ../data/klavaro.glade.h:41 -msgid "_Beep" -msgstr "Tiếng _bíp." +msgid "Show next screen." +msgstr "Hiển thị màn hình kế tiếp." #: ../data/klavaro.glade.h:42 -msgid "Co_urse information" -msgstr "Thông tin về _khóa học" +msgid "_Next step" +msgstr "_Bước tiếp" #: ../data/klavaro.glade.h:43 -msgid "Charts showing the learning progress along the exercises." -msgstr "" -"Biểu đồ biểu thị cho bạn sự tiến triển việc học trong suốt bài luyện tập." +msgid "Return without any modification." +msgstr "Quay lại mà không thay đổi gì." #: ../data/klavaro.glade.h:44 -msgid "_Progress" -msgstr "_Tiến trình" +msgid "Save the current keyboard layout with the name specified above." +msgstr "Lưu lại giao diện bàn phím hiện hành với tên được chỉ ra ở phía trên." #: ../data/klavaro.glade.h:45 -msgid "Show local and external scores from other users." -msgstr "Xem điểm nội bộ và trên mạng từ những người dùng khác." +msgid "_Save and use" +msgstr "_Lưu lại và dùng" #: ../data/klavaro.glade.h:46 -msgid "_Top 10" -msgstr "_Top 10" +msgid "" +"If you like those beautiful hands, click here to close this window keeping " +"them." +msgstr "" +"Nếu bạn thích các hình đôi bàn tay bên cạnh, bấm vào đây để đóng cửa sổ này " +"và giữ chúng lại." #: ../data/klavaro.glade.h:47 -msgid "Return to the main menu." -msgstr "Quay lại trình đơn chính." +msgid "_Keep hands" +msgstr "_Hiện bàn tay" #: ../data/klavaro.glade.h:48 -msgid "B_ack to menu" -msgstr "Qu_ay lại trình đơn" +msgid "Klavaro - Main menu" +msgstr "Klavaro - Trình đơn chính" #: ../data/klavaro.glade.h:49 -msgid "Close this window." -msgstr "Đóng cửa sổ ảnh này lại." +msgid "Don't be shy about learning the basics!" +msgstr "Không nên trốn tránh việc học các bài học cơ bản!" #: ../data/klavaro.glade.h:50 -msgid "Font definition" -msgstr "Xác định phông chữ" +msgid "Learn how to type correctly" +msgstr "Học cách gõ bàn phím đúng phương pháp" #: ../data/klavaro.glade.h:51 -msgid "Top 10" -msgstr "Top 10" +msgid "Initial training for your fingers." +msgstr "Bắt đầu luyện tập các ngón tay của bạn." #: ../data/klavaro.glade.h:52 -msgid "Show extra information" -msgstr "Hiển thị thông tin phụ" +msgid "First steps with initial training" +msgstr "Bước đầu tiên với việc khởi tạo tiến trình luyện tập" #: ../data/klavaro.glade.h:53 -msgid "Hide extra information" -msgstr "Ẩn thông tin mở rộng" +msgid "Memorizing the keyboard practicing random keys exercises." +msgstr "Học thuộc bàn phím bằng cách luyện tập với phím ngẫu nhiên." #: ../data/klavaro.glade.h:54 -msgid "Publish to the web your local scores." -msgstr "Xuất bản thông tin tới trang mạng điểm của bạn." +msgid "Practice with random keys" +msgstr "Luyện tập với phím ngẫu nhiên" #: ../data/klavaro.glade.h:55 -msgid "_Participate" -msgstr "_Tham gia" +msgid "Accelerating the touches practicing random words exercises." +msgstr "Gia tăng tốc độ gõ bằng cách luyện với những từ ngẫu nhiên." #: ../data/klavaro.glade.h:56 -msgid "Download from the web the most up to date ranking." -msgstr "Tải về từ trang web xếp hạng mới nhất." +msgid "Practice with random words" +msgstr "Luyện với những từ ngẫu nhiên." #: ../data/klavaro.glade.h:57 -msgid "_Update" -msgstr "_Cập nhật" +msgid "Becoming proficient practicing complete paragraphs exercises." +msgstr "Để thành thạo cần hoàn thành các bài luyện tập gõ các đoạn văn." #: ../data/klavaro.glade.h:58 -msgid "About 'Klavaro'" -msgstr "Giới thiệu về 'Klavaro'" +msgid "Practice with complete texts" +msgstr "Luyện tập với một đoạn văn thật" + +#: ../data/klavaro.glade.h:59 +msgid "" +"Keyboard layout for modules 1 and 2. Also used informatively in the " +"fluidness contest." +msgstr "Bố trí bàn phím cho mô đun 1 và 2. Cũng dùng trong bài thi gõ tự do." #: ../data/klavaro.glade.h:60 -msgid "Remember always: someone loves you!" -msgstr "Luôn nhớ rằng: có người yêu quí bạn!" +msgid "_Keyboard:" +msgstr "_Bàn phím:" #: ../data/klavaro.glade.h:61 -msgid "Remove the selected custom layout." -msgstr "Gỡ bỏ giao diện được chọn." +msgid "Language for modules 3 and 4." +msgstr "Ngôn ngữ cho mô đun 3 và 4." #: ../data/klavaro.glade.h:62 -msgid "_Remove" -msgstr "_Xóa bỏ" +msgid "_Language:" +msgstr "_Ngôn ngữ:" #: ../data/klavaro.glade.h:63 -msgid "" -"Toggles the shift effect on the keys. Alternates between the upper and lower " -"characters of the keys." -msgstr "Nhấn thả phím shift. Chuyển đổi giữa gõ chữ hoa và chữ thường." +msgid "Speech" +msgstr "Phát âm" #: ../data/klavaro.glade.h:64 -msgid "SPACE BAR" -msgstr "PHÍM CÁCH" +msgid "Your language here." +msgstr "Ngôn ngữ của bạn ở đây." -#: ../data/klavaro.glade.h:65 ../src/keyboard.c:1630 -msgid "thumbs" -msgstr "ngón tay cái" +#: ../data/klavaro.glade.h:65 +msgid "Little tip about this program." +msgstr "Mẹo nhỏ khi sử dụng chương trình này." #: ../data/klavaro.glade.h:66 -msgid "Ctrl" -msgstr "Ctrl" +msgid "_Help" +msgstr "_Trợ giúp" #: ../data/klavaro.glade.h:67 -msgid "Caps" -msgstr "Phím Caps" +msgid "General information about the program." +msgstr "Giới thiệu một số thông tin về chương trình." #: ../data/klavaro.glade.h:68 -msgid "S_ave as:" -msgstr "_Ghi lại bằng tên mới:" +msgid "_About..." +msgstr "_Giới thiệu..." #: ../data/klavaro.glade.h:69 -msgid "Show previous screen." -msgstr "Hiển thị màn hình trước." +msgid "Exit the application immediately." +msgstr "Thoát khỏi ứng dụng ngay lập tức." #: ../data/klavaro.glade.h:70 -msgid "_Previous step" -msgstr "Kết quả t_rước" +msgid "Klavaro - Progress" +msgstr "Klavaro - Tiến triển" #: ../data/klavaro.glade.h:71 -msgid "Show next screen." -msgstr "Hiển thị màn hình tiếp." +msgid "_Lesson:" +msgstr "_Bài học:" #: ../data/klavaro.glade.h:72 -msgid "_Next step" -msgstr "Tì_m tiếp" +msgid "Value" +msgstr "Giá trị" #: ../data/klavaro.glade.h:73 -msgid "Return without any modification." -msgstr "Quay lại mà không thay đổi gì." +msgid "Close this window, returning to the exercise." +msgstr "Đóng cửa sổ này, quay lại phần luyện tập." #: ../data/klavaro.glade.h:74 -msgid "_Cancel" -msgstr "_Hủy bỏ" +msgid "Clear all the progress data, for every module." +msgstr "Xóa dữ liệu lưu tiến trình, cho tất cả các mô đun." #: ../data/klavaro.glade.h:75 -msgid "Save the current keyboard layout with the name specified above." -msgstr "Lưu lại giao diện bàn phím hiện hành với tên được chỉ ra ở phía trên." +msgid "_Reset" +msgstr "Đặt _lại" #: ../data/klavaro.glade.h:76 -msgid "_Save and use" -msgstr "_Lưu lại và sử dụng" +msgid "Top 10" +msgstr "Top 10" #: ../data/klavaro.glade.h:77 -msgid "" -"If you like those beautiful hands, click here to close this window keeping " -"them." -msgstr "" -"Nếu bạn thích các hình đôi bàn tay bên cạnh, bấm vào đây để đóng cửa sổ này " -"và giữ chúng lại." +msgid "Show extra information." +msgstr "Hiển thị thông tin phụ." #: ../data/klavaro.glade.h:78 -msgid "_Keep hands" -msgstr "_Hiện bàn tay" +msgid "Hide extra information." +msgstr "Ẩn thông tin phụ." #: ../data/klavaro.glade.h:79 -msgid "Change language" -msgstr "Thay đổi ngôn ngữ" +msgid "Publish to the web your local scores." +msgstr "Xuất bản thông tin tới trang mạng điểm của bạn." #: ../data/klavaro.glade.h:80 -msgid "Attention!" -msgstr "Chú ý!" +msgid "_Participate" +msgstr "_Tham gia" #: ../data/klavaro.glade.h:81 -msgid "Do you confirm?" -msgstr "Bạn có khẳng định không?" +msgid "Download from the web the most up to date ranking." +msgstr "Tải về từ trang web xếp hạng mới nhất." #: ../data/klavaro.glade.h:82 -msgid "_No" -msgstr "Khô_ng" +msgid "_Update" +msgstr "_Cập nhật" #: ../data/klavaro.glade.h:83 -msgid "_Yes" -msgstr "Đồn_g ý" +msgid "Load other exercises/lessons" +msgstr "Tải bài tập hoặc bài học khác" #: ../data/klavaro.glade.h:84 -msgid "Re_name:" -msgstr "Đổi tê_n:" +msgid "_Other texts" +msgstr "Văn bản _khác" #: ../data/klavaro.glade.h:85 -msgid "Rename the selected item." -msgstr "Đổi tên mục đã được chọn." +msgid "Edit the character set to be used in this lesson." +msgstr "Hiệu chỉnh bộ ký tự sử dụng trong bài học này." #: ../data/klavaro.glade.h:86 -msgid "" -"Read a text file and add a copy of it here. The file must be encoded in " -"UTF-8." -msgstr "" -"Đọc tập tin văn bản và thêm bản sao của nó vào đây. Tập tin phải sử dụng " -"bảng mã UTF-8." +msgid "This is a specific exercise, adjusted to your error profile." +msgstr "Đây là bài tập đặc thù, hãy chỉnh sửa thông tin cá nhân bị lỗi." #: ../data/klavaro.glade.h:87 -msgid "_Open text file" -msgstr "_Mở tập tin văn bản" +msgid "" +"Edit the character set to be used in lessons after 43: they are customizable!" +msgstr "" +"Chỉnh sửa bộ ký tự sử dụng trong các bài học sau bài 43: chúng là những bài " +"học tùy chỉnh!" -#: ../data/klavaro.glade.h:88 -msgid "Paste text that was copied to the clipboard." -msgstr "Dán chữ mà bạn đã sao chép trong clipboard." +#: ../data/klavaro.glade.h:88 ../src/tutor.c:376 +msgid "Drag and drop text here to practice with it." +msgstr "Kéo và thả đoạn văn vào đây để luyện tập với nó." #: ../data/klavaro.glade.h:89 -msgid "_Paste from clipboard" -msgstr "_Dán từ clipboard" +msgid "Press here to restart the exercise. Hotkey: [Ctrl-R]" +msgstr "Bấm vào đây để đặt lại bài tập. Phím nóng: [Ctrl-R]" #: ../data/klavaro.glade.h:90 -msgid "Remove the selected item." -msgstr "Gỡ bỏ mục đã được chọn." +msgid "Show the virtual keyboard and the relation between fingers and keys." +msgstr "Hiển thị bàn phím ảo và sự liên hệ giữa các ngón tay và phím." #: ../data/klavaro.glade.h:91 -msgid "_Remove copied file" -msgstr "_Xóa bỏ tập tin đã sao chép" +msgid "_Keyboard" +msgstr "_Bàn phím" #: ../data/klavaro.glade.h:92 -msgid "Apply the selected item to create an exercise." -msgstr "Áp dụng một mục đã chọn để tạo ra một bài luyện tập mới." +msgid "Select the font to be used in the exercise window." +msgstr "Chọn phông chữ sử dụng trong cửa sổ bài tập." #: ../data/klavaro.glade.h:93 -msgid "_Apply" -msgstr "Á_p dụng" +msgid "Font definition" +msgstr "Chọn phông chữ" #: ../data/klavaro.glade.h:94 -msgid "Klavaro - Progress" -msgstr "Klavaro - Sự tiến triển" +msgid "Keep this checked if you want to get those nice beeps." +msgstr "Giữ dấu kiểm này được đánh nếu bạn muốn có tiếng bíp hay." #: ../data/klavaro.glade.h:95 -msgid "Value" -msgstr "Giá trị" +msgid "_Beep" +msgstr "Tiếng _bíp." #: ../data/klavaro.glade.h:96 -msgid "Clear all the progress data, for every module." -msgstr "Xóa dữ liệu lưu tiến trình, cho tất cả các mô đun." +msgid "Co_urse information" +msgstr "Thông tin về _khóa học" #: ../data/klavaro.glade.h:97 -msgid "_Reset" -msgstr "Đặt _lại" +msgid "Charts showing the learning progress along the exercises." +msgstr "" +"Biểu đồ biểu thị cho bạn sự tiến triển việc học trong suốt bài luyện tập." #: ../data/klavaro.glade.h:98 -msgid "Close this window, returning to the exercise." -msgstr "Đóng cửa sổ này, quay lại phần luyện tập." +msgid "_Progress" +msgstr "_Tiến triển" #: ../data/klavaro.glade.h:99 -msgid "Klavaro - Select file" -msgstr "Klavaro - Chọn tập tin" +msgid "Return to the main menu." +msgstr "Quay lại trình đơn chính." #: ../data/klavaro.glade.h:100 -msgid "_Open" -msgstr "_Mở" +msgid "Show local and external scores from other users." +msgstr "Xem điểm nội bộ và trên mạng từ những người dùng khác." #: ../data/klavaro.glade.h:101 -msgid "Help?" -msgstr "Trợ giúp?" +msgid "_Top 10" +msgstr "_Top 10" -#: ../data/klavaro.glade.h:102 -msgid "" -"The main menu of the application is very straightforward. Just select the " -"type of exercise you wish to take. Do not worry about clicking any button on " -"the screen. The buttons will never hurt you!" +#: ../data/klavaro.desktop.in.h:1 +msgid "A very flexible and efficient touch typing tutor." msgstr "" -"Trình đơn chính của chương trình rất dễ dùng. Chỉ việc chọn kiểu bài học " -"mình muốn. Không cần phải lo lắng về việc bấm chuột vào bất kỳ nút nào trên " -"màn hình. Chúng chẳng làm hỏng gì cả đâu!" +"Đây là một chương trình dạy cách gõ bàn phím máy tính rất mềm dẻo và hiệu " +"quả." -#: ../data/klavaro.glade.h:103 -msgid "" -"Also the controls have tips which will appear if you hover over them with " -"your mouse. These tips can come in very handy. To see how these tips work, " -"position your mouse over the button below, and without clicking, wait for " -"the tip to appear..." +#. Translators: these are keywords related to the program. CAI above means Computer Aided Instruction. Feel free to add and/or change the keywords in your language. +#: ../data/klavaro.desktop.in.h:3 +msgid "keyboard;typing;tutor;CAI" msgstr "" -"Các điều khiển cũng có các hướng dẫn hiện ra nếu bạn di chuyển con chuột qua " -"chúng. Chúng là cần thiết. Để biết chúng làm việc như thế nào, di chuyển con " -"trỏ chuột qua nút ở phía dưới nhưng đừng bấm chuột, chờ nó xuất hiện..." - -#: ../data/klavaro.glade.h:104 -msgid "This is a tip. Now you press this button to return to the main menu." -msgstr "Đây là mẹo nhỏ. Bây giờ bạn nhấn nút này để quay lại trình đơn chính." +"bàn phím;bàn;phím;ban phim;ban;phim;luyện gõ;luyện;luyen;gõ;go;dạy;keyboard;" +"typing;tutorial;CAI;" -#: ../src/main.c:314 +#: ../src/main.c:242 msgid "(Custom)" msgstr "(Tùy chỉnh)" -#: ../src/main.c:315 +#: ../src/main.c:243 msgid "(Edit custom)" msgstr "(Chỉnh sửa tùy chỉnh)" -#: ../src/main.c:316 +#: ../src/main.c:244 msgid "(Default)" msgstr "(Mặc định)" -#: ../src/main.c:393 +#: ../src/main.c:321 #, c-format msgid "Dictation mode (depends on this speech synthesizer: %s)" msgid_plural "Dictation mode (depends on one of these speech synthesizers: %s)" msgstr[0] "Chế độ đọc chính tả (phụ thuộc vào bộ máy đọc: %s)" -msgstr[1] "Chế độ đọc chính tả (phụ thuộc vào bộ máy đọc: %s)" -#. Set main labels (for translation) -#. -#: ../src/main.c:435 ../src/keyboard.c:1291 +#: ../src/main.c:364 ../src/keyboard.c:1291 msgid "Introduction" msgstr "Phần giới thiệu" -#: ../src/main.c:438 ../src/top10.c:109 +#: ../src/main.c:367 ../src/top10.c:109 msgid "Basic course" msgstr "Phần học cơ bản" -#: ../src/main.c:441 ../src/top10.c:112 +#: ../src/main.c:370 ../src/top10.c:112 msgid "Adaptability" msgstr "Mô phỏng đoạn văn" -#: ../src/main.c:444 ../src/callbacks.c:1310 ../src/top10.c:89 +#: ../src/main.c:373 ../src/callbacks.c:1226 ../src/top10.c:89 #: ../src/top10.c:115 msgid "Speed" msgstr "Tốc độ" -#: ../src/main.c:447 ../src/callbacks.c:1333 ../src/top10.c:91 +#: ../src/main.c:376 ../src/callbacks.c:1249 ../src/top10.c:91 #: ../src/top10.c:118 msgid "Fluidity" msgstr "Trôi chảy" -#: ../src/callbacks.c:468 ../src/tutor.c:391 +#: ../src/callbacks.c:407 ../src/tutor.c:515 msgid "Keys:" msgstr "Phím:" -#: ../src/callbacks.c:858 ../src/callbacks.c:874 +#: ../src/callbacks.c:774 ../src/callbacks.c:790 msgid "Connecting..." msgstr "Đang kết nối..." -#: ../src/callbacks.c:1145 +#: ../src/callbacks.c:1061 msgid "Overwrite user layout" msgstr "Ghi đè giao diện người dùng" -#: ../src/callbacks.c:1147 +#: ../src/callbacks.c:1063 msgid "This will OVERWRITE an existent keyboard layout." msgstr "Điều này sẽ GHI ĐÈ lên một giao diện bàn phím có sẵn." -#: ../src/callbacks.c:1154 +#: ../src/callbacks.c:1070 msgid "Remove user layout" msgstr "Gỡ bỏ giao diện người dùng" -#: ../src/callbacks.c:1156 +#: ../src/callbacks.c:1072 msgid "This will REMOVE an existent keyboard layout." msgstr "Việc làm này sẽ XÓA BỎ giao diện bàn phím có sẵn." -#: ../src/callbacks.c:1163 +#: ../src/callbacks.c:1079 msgid "Reset progress data" msgstr "Đặt lại dữ liệu lưu tiến trình" -#: ../src/callbacks.c:1164 +#: ../src/callbacks.c:1080 msgid "This will DELETE all the progress data shown in the charts." msgstr "Việc làm này sẽ XÓA tất cả dữ liệu được hiển thị đồ thị." -#: ../src/callbacks.c:1307 ../src/top10.c:87 +#: ../src/callbacks.c:1223 ../src/top10.c:87 msgid "Accuracy" msgstr "Độ chính xác" -#: ../src/callbacks.c:1310 ../src/tutor.c:1160 +#: ../src/callbacks.c:1226 ../src/tutor.c:1288 msgid "(WPM)" msgstr "(WPM từ trên phút)" -#: ../src/callbacks.c:1321 +#: ../src/callbacks.c:1237 msgid "Errors" msgstr "Lỗi" -#: ../src/callbacks.c:1324 +#: ../src/callbacks.c:1240 msgid "Touch times (s)" -msgstr "Thời gian gõ (s)" +msgstr "Thời gian gõ (giây)" -#: ../src/callbacks.c:1336 ../src/tutor.c:1187 ../src/top10.c:69 +#: ../src/callbacks.c:1252 ../src/tutor.c:1315 ../src/top10.c:69 msgid "Score" msgstr "Điểm số" #. Translators: your language code (first 2 letters of your po-file) -#: ../src/translation.c:423 ../src/translation.c:489 ../src/tutor.c:1597 +#: ../src/translation.c:485 ../src/tutor.c:1725 msgid "en" msgstr "vi" -#: ../src/translation.c:576 +#: ../src/translation.c:572 msgid "" "The basic course focuses on having you read the characters presented to you " "on screen and typing the corresponding keys. Remember to keep your hands " @@ -569,7 +576,7 @@ "và nhấn vào phím tương ứng. Nhớ giữ bàn tay đúng hướng trên các phím đặt tay " "ban đầu vào mọi lúc (xem phần hướng dẫn trên trình đơn chính)." -#: ../src/translation.c:580 +#: ../src/translation.c:576 msgid "" "The key set used in each series will be shown in the above message line. The " "[Space], [Shift] and [Enter] keys may not show up there but are used very " @@ -579,7 +586,7 @@ "dưới. Các phím [Space], [Shift] và [Enter] không hiện ra ở đó nhưng được sử " "dụng rất thường xuyên." -#: ../src/translation.c:583 +#: ../src/translation.c:579 msgid "" "The message line below follows and echoes your key presses. If required, it " "changes and displays instructions for actions required from you." @@ -587,7 +594,7 @@ "Dòng thông điệp theo sau ở phía dưới và lặp lại phím bạn bấm. Khi cần thiết, " "chúng thay đổi và đưa ra yêu cầu cho bạn." -#: ../src/translation.c:587 +#: ../src/translation.c:583 msgid "" "Here you may practice and improve your memorization of all keys. There will " "be sentences presented with nonsense words which mix some numbers and " @@ -597,7 +604,7 @@ "đây có các câu với các từ không có nghĩa trộn lẫn với các số và ký tự đặc " "biệt." -#: ../src/translation.c:590 +#: ../src/translation.c:586 msgid "" "In order to keep the lesson contents language and keyboard independent, " "accented letter combinations will probably not appear. For real word " @@ -607,7 +614,7 @@ "của dấu chữ sẽ không hiện ra. Với các từ thật, hãy chọn tùy chọn thứ tư " "trong trình đơn chính (giới thiệu về gõ trôi chảy)." -#: ../src/translation.c:594 +#: ../src/translation.c:590 msgid "" "After each exercise there will be a brief statistics panel reviewing your " "performance along with some relevant comments." @@ -615,7 +622,7 @@ "Sau mỗi bài luyện ở đây sẽ là cửa sổ hiển thị tóm tắt hiệu năng thi hành của " "bạn và có thêm vài chú thích nhỏ nữa." -#: ../src/translation.c:598 +#: ../src/translation.c:594 msgid "" "This exercise is very similar to the second one, for adaptability. The " "difference is that here you'll type real words." @@ -623,17 +630,17 @@ "Bài học này rất giống bài thứ hai, về sự mô phỏng đoạn văn. Sự khác biệt ở " "đây là bạn sẽ gõ những từ có nghĩa thật." -#: ../src/translation.c:601 +#: ../src/translation.c:597 msgid "" "The default language is the actual one of the interface. But you may select " "any other texts with words you would like to use. Press the 'Other' option " "above and add files containing those texts." msgstr "" "Ngôn ngữ mặc định là cái dùng trong giao diện thực tế. Nhưng bạn có thể chọn " -"một đoạn văn bản khác với mà bạn muốn sử dụng. Nhấn chuột vào tùy chọn 'Cái " -"khác' ở trên và thêm tập tin chứa văn bản vào." +"một đoạn văn bản khác với mà bạn muốn sử dụng. Nhấn chuột vào tùy chọn “Văn " +"bản khác” ở trên và thêm tập tin chứa văn bản vào." -#: ../src/translation.c:605 +#: ../src/translation.c:601 msgid "" "With this exercise the focus is on speed. So, you are supposed to type " "really fast and I will only flatter you when you deserve it!" @@ -641,19 +648,19 @@ "Bài học này hướng tới luyện tốc độ. Do đó, bạn được giúp để có thể gõ thực " "sự nhanh và tôi sẽ chỉ thỏa mãn khi mà bạn có thể làm được như thế!" -#: ../src/translation.c:609 +#: ../src/translation.c:605 msgid "" "We will now use complete sentences and paragraphs which make logical sense. " "This may distract you while you type if you try to understand what you are " "entering. The previous exercises were aimed at getting you to type without " "interpreting and analyzing the content." msgstr "" -"Chúng ta bây giờ đã hoàn thành các câu, và đoạn văn đã làm nên tư duy lô " +"Chúng ta bây giờ đã hoàn thành các câu, và đoạn văn đã làm nên tư duy lô-" "gíc. Điều này có thể làm bạn bối rối trong khi gõ nếu bạn muốn hiểu mình " "đang gõ cái gì. Bài học tiếp theo có mục đích nhắm vào là giúp bạn gõ mà " "không cần dịch hay phân tích nội dung." -#: ../src/translation.c:613 +#: ../src/translation.c:609 msgid "" "We do not mean to imply that the typists must behave like a robot, without " "understanding what they type. We do aim to develop the skill of typing, " @@ -669,8 +676,7 @@ "động không cần sự tập trung cao độ nữa. Sau đó bạn sẽ có thể hướng sự chú ý " "tới các đoạn văn có nghĩa." -#. English typo: minimun -> minimum -#: ../src/translation.c:618 +#: ../src/translation.c:613 msgid "" "These exercises are longer. Each exercise consists of three paragraphs and " "the emphasis is placed on correctness and rhythm, with a minimum speed " @@ -679,10 +685,9 @@ msgstr "" "Bài luyện này dài hơn. Mỗi bài gồm có ba đoạn văn và trọng tâm là sự chính " "xác và nhịp gõ không yêu cầu phải gõ nhanh. Tại đây bạn sẽ được yêu cầu sử " -"dụng phím xóa lùi backspace để sửa lỗi gõ sai. Hay nói cách khác, chỉ khi " -"nhập vào đúng mà không có lỗi nào mới được chấp nhận." +"dụng phím xóa lùi backspace để sửa những chữ gõ sai. Hay nói cách khác, chỉ " +"khi nhập vào đúng mà không có lỗi nào mới được chấp nhận." -#. English typo: recomendations -> recommendations #: ../src/keyboard.c:1094 msgid "" "Correct positioning of the hands and fingers is very important to efficient " @@ -706,7 +711,7 @@ "correct position. This way, with a little experience, you will not need to " "look at the keyboard to see if your fingers are properly positioned." msgstr "" -"Những mấu nhỏ đó đóng vai trò như là một 'lỗ xúc giác' giúp ngón tay bạn sờ " +"Những mấu nhỏ đó đóng vai trò như là một “lỗ xúc giác” giúp ngón tay bạn sờ " "thấy để đặt đúng vị trí. Bằng cách này chỉ với một chút ít kinh nghiệm, bạn " "sẽ không cần nhìn vào bàn phím vẫn đặt được ngón tay vào vị trí đúng." @@ -778,13 +783,11 @@ msgid "Step %i" msgstr "Bước %i" -#. Recommendations -#: ../src/keyboard.c:1140 +#: ../src/keyboard.c:1142 msgid "To position the hands" msgstr "Vị trí của của đôi bàn tay" -#. Final words -#: ../src/keyboard.c:1225 +#: ../src/keyboard.c:1227 msgid "Go ahead!" msgstr "Học bài tiếp theo!" @@ -802,7 +805,7 @@ #: ../src/keyboard.c:1372 msgid "Create or modify a custom keyboard layout" -msgstr "Tạo hay sửa giao diện bàn phím" +msgstr "Tạo hay sửa bố cục bàn phím" #: ../src/keyboard.c:1618 ../src/keyboard.c:1642 msgid "small finger" @@ -824,23 +827,23 @@ msgid "Press and edit me" msgstr "Bấm vào và sửa chữa" -#: ../src/tutor.c:176 +#: ../src/tutor.c:300 msgid "Lesson:" msgstr "Bài học:" -#: ../src/tutor.c:186 +#: ../src/tutor.c:310 msgid "Paragraphs:" msgstr "Đoạn văn:" -#: ../src/tutor.c:219 +#: ../src/tutor.c:343 msgid "Klavaro - Basic Course" msgstr "Klavaro - Phần học cơ bản" -#: ../src/tutor.c:224 +#: ../src/tutor.c:348 msgid "Klavaro - Adaptability" msgstr "Klavaro - Bài luyện khả năng thích ứng" -#: ../src/tutor.c:227 +#: ../src/tutor.c:351 msgid "" "Adaptability exercises: automating the fingers responses, typing over all " "the keyboard." @@ -848,44 +851,44 @@ "Bài luyện khả năng thích ứng: luyện phản xạ của các ngón tay, gõ trên tất cả " "các kiểu bàn phím." -#: ../src/tutor.c:232 +#: ../src/tutor.c:356 msgid "Klavaro - Velocity" msgstr "Klavaro - Tốc độ" -#: ../src/tutor.c:233 +#: ../src/tutor.c:357 msgid "Velocity exercises: accelerate typing real words." msgstr "Bài luyện tốc độ: tăng tốc độ bằng việc gõ các từ thật." -#: ../src/tutor.c:237 +#: ../src/tutor.c:361 msgid "Klavaro - Fluidness" msgstr "Klavaro - Luyện gõ trôi chảy" -#: ../src/tutor.c:239 +#: ../src/tutor.c:363 msgid "Fluidness exercises: accuracy typing good sense paragraphs." msgstr "" "Bài tập gõ trôi chảy: tập gõ phím chính xác với các đoạn văn hay và có nghĩa." -#: ../src/tutor.c:301 +#: ../src/tutor.c:425 msgid "End of exercise. Press [Enter] to start another." msgstr "Đã hết bài luyện. Nhấn [Enter] để bắt đầu bài khác." -#: ../src/tutor.c:329 +#: ../src/tutor.c:453 msgid "Learning the key positions." msgstr "Học vị trí các phím." -#: ../src/tutor.c:332 +#: ../src/tutor.c:456 msgid "Press any key to start the exercise. " msgstr "Bấm bất kỳ phím nào để bắt đầu luyện tập. " -#: ../src/tutor.c:440 ../src/tutor.c:443 +#: ../src/tutor.c:567 ../src/tutor.c:570 msgid "Start typing when you are ready. " msgstr "Bắt đầu gõ khi bạn đã sẵn sàng. " -#: ../src/tutor.c:441 +#: ../src/tutor.c:568 msgid "Use backspace to correct errors." msgstr "Sử dụng phím xóa lùi (backspace) để sửa chỗ sai." -#: ../src/tutor.c:885 +#: ../src/tutor.c:1012 #, c-format msgid "" "ps.: logging not performed for this session: the number of typed characters " @@ -894,104 +897,99 @@ "ps.: sự đăng nhập đã không được thi hành cho phiên làm việc này: số của kiểu " "ký tự (%i) phải lớn hơn %i." -#: ../src/tutor.c:1027 +#: ../src/tutor.c:1154 msgid "ps.: you have entered the Top 10 list, great!" -msgstr "ps.: bạn đã lọt vào danh sách Top 10 , rất cừ!" +msgstr "ps.: bạn đã lọt vào danh sách Top 10, rất cừ!" -#: ../src/tutor.c:1039 +#: ../src/tutor.c:1166 msgid "" "ps.: the text you just typed doesn't seem to be similar to ordinary texts in " "the language currently selected: we can't account for it in the 'Top 10' " "contest." msgstr "" "ps.: đoạn văn bạn vừa gõ có vẻ không giống với đoạn văn gốc của ngôn ngữ " -"hiện đang chọn: chúng tôi không thể khai báo nó vào cuộc thi 'Top 10'." +"hiện đang chọn: chúng tôi không thể khai báo nó vào cuộc thi “Top 10”." -#. Begin the accuracy -#: ../src/tutor.c:1087 +#: ../src/tutor.c:1215 msgid "STATISTICS" msgstr "THỐNG KÊ" -#: ../src/tutor.c:1088 +#: ../src/tutor.c:1216 msgid "Elapsed time:" msgstr "Thời gian đã trôi qua:" -#: ../src/tutor.c:1089 +#: ../src/tutor.c:1217 msgid "minute and" msgid_plural "minutes and" msgstr[0] "phút và" -msgstr[1] "phút và" -#: ../src/tutor.c:1090 +#: ../src/tutor.c:1218 msgid "second" msgid_plural "seconds" msgstr[0] "giây" -msgstr[1] "giây" -#: ../src/tutor.c:1091 +#: ../src/tutor.c:1219 msgid "Error ratio:" msgstr "Tỉ lệ lỗi:" -#: ../src/tutor.c:1091 +#: ../src/tutor.c:1219 msgid "Accuracy:" msgstr "Độ chính xác:" -#: ../src/tutor.c:1112 ../src/tutor.c:1137 ../src/tutor.c:1160 -#: ../src/tutor.c:1186 +#: ../src/tutor.c:1240 ../src/tutor.c:1265 ../src/tutor.c:1288 +#: ../src/tutor.c:1314 msgid "Goal:" msgstr "Điểm:" -#: ../src/tutor.c:1119 +#: ../src/tutor.c:1247 msgid "Characters per second:" msgstr "Số ký tự trên một giây:" -#: ../src/tutor.c:1137 +#: ../src/tutor.c:1265 msgid "(CPS)" msgstr "(CPS)" -#: ../src/tutor.c:1142 +#: ../src/tutor.c:1270 msgid "Words per minute:" msgstr "Số từ trên một phút:" -#: ../src/tutor.c:1167 +#: ../src/tutor.c:1295 msgid "Fluidness:" msgstr "Trôi chảy:" -#: ../src/tutor.c:1194 +#: ../src/tutor.c:1322 msgid "Comments:" msgstr "Ghi chú:" -#: ../src/tutor.c:1676 +#: ../src/tutor.c:1804 msgid "space" msgstr "dấu cách" #. Translators: the name of letter Y -#: ../src/tutor.c:1681 +#: ../src/tutor.c:1809 msgid "wye" msgstr "chữ Y" #. Translators: the name of the Return key -#: ../src/tutor.c:1685 +#: ../src/tutor.c:1813 msgid "enter" -msgstr "vào" +msgstr "enter" -#: ../src/tutor.c:1691 +#: ../src/tutor.c:1819 msgid "apostrophe" -msgstr "dấu lược" +msgstr "dấu nháy đơn" #. Translators: double quote symbol: " -#: ../src/tutor.c:1695 +#: ../src/tutor.c:1823 msgid "quote" msgstr "dấu ngoặc kép" #. Translators: ampersand symbol: & -#: ../src/tutor.c:1699 +#: ../src/tutor.c:1827 msgid "ampersand" msgstr "ký hiệu &" -#. Error frequencies or touch times -#. -#: ../src/plot.c:308 +#: ../src/plot.c:305 msgid "Character" msgstr "Ký tự" @@ -999,11 +997,11 @@ msgid "Date & Time" msgstr "Ngày tháng & Thời gian" -#: ../src/basic.c:331 +#: ../src/basic.c:326 msgid "Positions of keys seems to be learned!" msgstr "Những phím này hình như đã học rồi!" -#: ../src/basic.c:332 +#: ../src/basic.c:327 msgid "" " Congratulations!\n" " You have accomplished the entire basic course.\n" @@ -1011,11 +1009,11 @@ " There you will practice mainly the accuracy.\n" msgstr "" " Xin chúc mừng!\n" -"Bạn đã hoàn thành các bài cơ bản.\n" -"Chuyển sang dạng luyện tập: khả năng thích ứng.\n" -"Tại đây bạn sẽ rèn luyện kỹ năng gõ chính xác.\n" +" Bạn đã hoàn thành các bài cơ bản.\n" +" Chuyển sang dạng luyện tập: khả năng thích ứng.\n" +" Tại đây bạn sẽ rèn luyện kỹ năng gõ chính xác.\n" -#: ../src/basic.c:338 +#: ../src/basic.c:333 msgid "" " All right, now you got it!\n" " Go to the next lesson.\n" @@ -1023,34 +1021,36 @@ " Bạn đã làm được rồi!\n" " Tiến tới bài kế tiếp.\n" -#: ../src/adaptability.c:217 +#: ../src/adaptability.c:213 +#, c-format msgid "" -" Your accuracy rate is below 90%...\n" +" Your accuracy rate is below %.0f%%...\n" " Could you please try again to improve it?\n" msgstr "" -" Tỷ lệ gõ chính xác của bạn dưới 90%...\n" -" Xin hãy cố gắng thử lại để phát triển thêm\n" +" Tỷ lệ gõ chính xác của bạn dưới %.0f%%...\n" +" Xin hãy cố gắng thử lại để nâng cao tốc độ!\n" -#: ../src/adaptability.c:222 +#: ../src/adaptability.c:216 +#, c-format msgid "" " You are doing well. But...\n" -" Could you make the accuracy reach 95%?\n" +" Could you make the accuracy reach %.0f%%?\n" msgstr "" " Bạn làm rất tốt. Nhưng...\n" -" Bạn có thể gõ chính xác trong tầm ít nhất 95 %?\n" +" Bạn có thể gõ chính xác trong tầm ít nhất %.0f%%?\n" -#: ../src/adaptability.c:225 +#: ../src/adaptability.c:219 #, c-format msgid "" " You are almost there, but your accuracy rate is still below %.0f%%.\n" -" Try a few more times, or maybe you're getting upset, so go to other kind of " -"exercise.\n" +" Try a few more times, or maybe you're getting upset, so go to another kind " +"of exercise.\n" msgstr "" " Bạn đã gần hoàn thành, nhưng độ chính xác thì vẫn dưới %.0f%%.\n" -" Hãy thử thêm vài lần nữa, hay có thể bạn đang lúng túng, do đó hãy chọn một " +" Hãy thử thêm vài lần nữa hoặc có thể bạn đang lúng túng, do đó hãy chọn một " "dạng bài tập khác.\n" -#: ../src/adaptability.c:232 +#: ../src/adaptability.c:226 #, c-format msgid "" " Very good!\n" @@ -1063,11 +1063,11 @@ " Bây giờ là lúc bạn gia tăng tốc độ.\n" " Chọn bài tập thứ 3 trong trình đơn chính.\n" -#: ../src/velocity.c:313 ../src/fluidness.c:435 +#: ../src/velocity.c:312 ../src/fluidness.c:435 msgid "Pasted_or_dropped" msgstr "Dán_hay_thả" -#: ../src/velocity.c:432 +#: ../src/velocity.c:423 msgid "" " You are just beginning.\n" " Be patient, try it again every day, rest and don't worry so much:\n" @@ -1078,31 +1078,34 @@ "lắng quá:\n" " Bền chí và rèn luyện sẽ nâng cao tốc độ của bạn.\n" -#: ../src/velocity.c:436 +#: ../src/velocity.c:427 +#, c-format msgid "" " Still away from the highway. You can make better...\n" -" Try at least 20 WPM.\n" +" Try to reach at least %.0f WPM.\n" msgstr "" " Vẫn còn cách xa với việc gõ tốc độ cao. Bạn có thể làm tốt hơn thế...\n" -" Cố gắng ít nhất phải đạt 20 WPM.\n" +" Cố gắng ít nhất phải đạt tốc độ %.0f WPM.\n" -#: ../src/velocity.c:439 +#: ../src/velocity.c:430 +#, c-format msgid "" " You are doing well, but need to go faster.\n" -" And don't forget the accuracy. Try to get 30 WPM.\n" +" And don't forget the accuracy. Try to get %.0f WPM.\n" msgstr "" " Bạn làm tốt đấy, nhưng cần phải nhanh hơn.\n" -" Và đừng quên sự chính xác. Cố gắng đạt được 30 WPM.\n" +" Và đừng quên gõ chính xác. Cố gắng đạt được %.0f WPM.\n" -#: ../src/velocity.c:443 +#: ../src/velocity.c:433 +#, c-format msgid "" " Fine. Now you need to start running.\n" -" Can you reach 40 WPM?\n" +" Can you reach %.0f WPM?\n" msgstr "" " Tốt. Bây giờ bạn cần phải bắt đầu.\n" -" Bạn có thể đạt tới tầm 40 WPM?\n" +" Bạn có thể đạt tới tầm %.0f WPM?\n" -#: ../src/velocity.c:446 +#: ../src/velocity.c:436 #, c-format msgid "" " Very good. You are almost there.\n" @@ -1111,7 +1114,7 @@ " Rất tốt. Bạn đã gần như đã học hết.\n" " Bạn có thể đạt tới %.0f WPM không?\n" -#: ../src/velocity.c:451 +#: ../src/velocity.c:439 msgid "" " Excellent. For this course, that is enough.\n" " Try now the fluidness exercises, OK?\n" @@ -1119,32 +1122,34 @@ " Xuất sắc. Đối với khóa học này, thế là đủ.\n" " Thử học bài luyện gõ trôi chảy, đồng ý chứ?\n" -#: ../src/velocity.c:455 +#: ../src/velocity.c:442 +#, c-format msgid "" -" Fast! Are you training for a competition?\n" -" So, try to get 70 WPM!\n" +" Fast! Are you a professional?\n" +" So, try to get %.0f WPM!\n" msgstr "" -" Nhanh thật! Bạn luyện để thi đấu phải không?\n" -" Vậy hãy cố gắng đạt mức 70 WPM!\n" +" Nhanh thật! Bạn là chuyên gia à?\n" +" Vậy hãy cố gắng đạt mức %.0f WPM!\n" -#: ../src/velocity.c:458 -msgid "" -" Top of \"qwerty\". Now it's time to change to the Dvorak mode.\n" -" Are you afraid of reaching 80 WPM?\n" -msgstr "" -" 10 người giỏi nhất \"qwerty\". Giờ là lúc chuyển sang kiểu bàn phím " -"Dvorak.\n" -" Bạn có tin là có thể gõ với tốc độ 80 WPM?\n" +#. Translators: Speed Racer is a reference to a Japanese anime franchise +#. about automobile racing, also known as Mach GoGoGo. +#: ../src/velocity.c:447 +#, c-format +msgid " Ranking good, Speed Racer! Are you afraid of reaching %.0f WPM?\n" +msgstr " Xếp hạng tốt đấy, Tay đua tốc độ! Bạn có ngại tốc độ %.0f WPM?\n" -#: ../src/velocity.c:462 +#. Translators: feel free to change the reference to that martial art, if you find another good analogy. +#: ../src/velocity.c:451 +#, c-format msgid "" -" Dvorak mode dominated!\n" -" Can you fly at 90 WPM?\n" +" Kunf-fu mastering!\n" +" Can you fly at %.0f WPM?\n" msgstr "" -" Dùng kiểu bàn phím Dvorak sẽ tốt hơn!\n" -" Bạn có thể đạt 90 WPM?\n" +" Kunf-fu siêu hạng!\n" +" Bạn có thể đạt %.0f WPM?\n" -#: ../src/velocity.c:466 +#. Translators: Dvorak here means that infamous ergonomic keyboard layout. +#: ../src/velocity.c:454 msgid "" " Dvorak master!\n" " I have no words to express my admiration!\n" @@ -1152,7 +1157,7 @@ " Đúng là một tay đánh máy kiểu Dvorak chuyên nghiệp!\n" " Không còn từ gì để bày tỏ sự khâm phục với bạn!\n" -#: ../src/fluidness.c:545 +#: ../src/fluidness.c:538 #, c-format msgid "" " You type accurately but not so fast.\n" @@ -1161,7 +1166,7 @@ " Bạn gõ chính xác nhưng không nhanh.\n" " Bạn có thể gõ trong tầm %.0f WPM không?\n" -#: ../src/fluidness.c:548 +#: ../src/fluidness.c:541 #, c-format msgid "" " Your rhythm is not so constant. Calm down.\n" @@ -1170,7 +1175,7 @@ " Nhịp gõ của bạn không cố định. Hãy bình tĩnh.\n" " Bây giờ, thử làm cho độ trôi chảy đạt hơn %i%%.\n" -#: ../src/fluidness.c:551 +#: ../src/fluidness.c:544 #, c-format msgid "" " You are almost getting there. Type more fluently.\n" @@ -1179,7 +1184,7 @@ " Bạn đã làm phần lớn ở đây. Đã gõ trôi chảy hơn.\n" " Tôi muốn mức trôi chảy phải đạt hơn %.0f%%.\n" -#: ../src/fluidness.c:554 +#: ../src/fluidness.c:547 msgid "" " Congratulations!\n" " It seems to me that you are a professional.\n" @@ -1191,7 +1196,7 @@ " Bạn không cần chương trình này (tôi) nữa.\n" " Hi vọng bạn thấy thích thú. Cảm ơn và chúc vui vẻ!\n" -#: ../src/fluidness.c:559 +#: ../src/fluidness.c:552 msgid "" " How can you type so fast?\n" " You have exceeded all my expectations.\n" @@ -1201,7 +1206,8 @@ " Bạn làm thế nào mà gõ nhanh vậy?\n" " Bạn vượt quá sự mong đợi của tôi.\n" " Bạn là một cái máy? Có thể dạy tôi không?\n" -" Tôi không thể giúp bạn thêm gì nữa. Trở thành một chuyên gia!\n" +" Tôi không thể giúp bạn thêm gì nữa.\n" +" Bạn là một chuyên gia!\n" #: ../src/top10.c:67 msgid "Name" @@ -1209,7 +1215,7 @@ #: ../src/top10.c:93 msgid "Chars" -msgstr "Độ rộng (ký tự)" +msgstr "Ký tự" #: ../src/top10.c:95 msgid "When" @@ -1221,7 +1227,7 @@ #: ../src/top10.c:125 msgid "External scores" -msgstr "Điểm ngoại" +msgstr "Điểm bên ngoài" #: ../src/top10.c:719 msgid "Empty ranking. Please practice fluidness." @@ -1251,5 +1257,22 @@ msgid "Could not upload/download scores." msgstr "Không thể tải lên/xuống bảng điểm." +#~ msgid "Press here to restart the exercise. Hotkey: [Ctrl R]" +#~ msgstr "Bấm vào đây để đặt lại bài tập. Phím nóng: [Ctrl R]" + +#~ msgid "" +#~ " Top of \"qwerty\". Now it's time to change to the Dvorak mode.\n" +#~ " Are you afraid of reaching 80 WPM?\n" +#~ msgstr "" +#~ " 10 người giỏi nhất \"qwerty\". Giờ là lúc chuyển sang kiểu bàn phím " +#~ "Dvorak.\n" +#~ " Bạn có tin là mình có thể gõ với tốc độ 80 từ một phút?\n" + +#~ msgid "Klavaro" +#~ msgstr "Klavaro" + +#~ msgid "_Font" +#~ msgstr "_Font" + #~ msgid "Default" #~ msgstr "Mặc định" diff -Nru klavaro-1.9.9/po/wo.po klavaro-3.00/po/wo.po --- klavaro-1.9.9/po/wo.po 2013-08-15 13:38:52.000000000 +0000 +++ klavaro-3.00/po/wo.po 2014-01-13 23:25:53.000000000 +0000 @@ -6,560 +6,565 @@ msgid "" msgstr "" "Project-Id-Version: klavaro 1.9.4\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2013-08-15 10:38-0300\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2014-01-13 21:25-0200\n" "PO-Revision-Date: 2012-MO-DA HO:MI+ZONE\n" "Last-Translator: Dominique Rochefort \n" "Language-Team: Wolof \n" -"Language: \n" +"Language: wo\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n!=1);\n" "X-Generator: Translate Toolkit 1.9.0\n" -#: ../data/klavaro.desktop.in.h:1 ../data/klavaro.glade.h:59 -msgid "Yet another touch typing tutor" -msgstr "xeltéefub njàngum daktilo" - #: ../data/klavaro.glade.h:1 -msgid "Klavaro - Main menu" -msgstr "Klavaro - Njël lu mag" +msgid "About 'Klavaro'" +msgstr "Ci mbiri \"Klavaro\"" #: ../data/klavaro.glade.h:2 -msgid "Don't be shy about learning the basics!" -msgstr "Bu leen am xel ñaar ci jàng cosaan yi" +msgid "Yet another touch typing tutor" +msgstr "xeltéefub njàngum daktilo" #: ../data/klavaro.glade.h:3 -msgid "Learn how to type correctly" -msgstr "Nan la ñuy tàppee mu aw yoon" +msgid "Remember always: someone loves you!" +msgstr "Fàttaliku-léen bés bu nekk ne am na ku leen bëgg!" #: ../data/klavaro.glade.h:4 -msgid "Initial training for your fingers." -msgstr "Tàggatum baaraam gi jëkk." +msgid "Change language" +msgstr "Soppi lammiñ" #: ../data/klavaro.glade.h:5 -msgid "First steps with initial training" -msgstr "Jéego bi jëkk: tàggatum ndoorte" +msgid "Attention!" +msgstr "Moytul!" #: ../data/klavaro.glade.h:6 -msgid "Memorizing the keyboard practicing random keys exercises." -msgstr "Mokkal arafukaay gi wéeru ci ndimbalu butoŋ bu mu mën di doon." +msgid "Do you confirm?" +msgstr "Ndax woor na la?" #: ../data/klavaro.glade.h:7 -msgid "Practice with random keys" -msgstr "Tàggat ak ay butoŋ yu mu mën di doon" +msgid "_No" +msgstr "Déedéed" + +#: ../data/klavaro.glade.h:8 +msgid "_Yes" +msgstr "Waaw" -#. English typo: touchs -> touches #: ../data/klavaro.glade.h:9 -msgid "Accelerating the touches practicing random words exercises." -msgstr "" -"Gaawalug mbind mi ak ay jéemantu yu sukkandiku ci baat yu mu mën di nekk" +msgid "Help?" +msgstr "Ndimbal?" #: ../data/klavaro.glade.h:10 -msgid "Practice with random words" -msgstr "Tàggat ak ay baat yu mu mën di doon" +msgid "This is a tip. Now you press this button to return to the main menu." +msgstr "Lii ab xelal la. Bës leen ci butoŋ bi ngir dellusi ci njël lu mag li. " #: ../data/klavaro.glade.h:11 -msgid "Becoming proficient practicing complete paragraphs exercises." -msgstr " Nekksiléen ku xaran ak jéemantu yi sukkandiku ci xise yu mët sëkk,." +msgid "B_ack to menu" +msgstr "Dellusi ci njël li" #: ../data/klavaro.glade.h:12 -msgid "Practice with complete texts" -msgstr "Tàggat ak ay mbind yu mët sëkk" +msgid "" +"The main menu of the application is very straightforward. Just select the " +"type of exercise you wish to take. Do not worry about clicking any button on " +"the screen. The buttons will never hurt you!" +msgstr "" +"Jël lu mag li ñeel xeltéef bi lu yomb la. Fal leen rekk xeetu jéemantu bi " +"ngeen fas yéenée def. Buléen ragal a cuq butoŋ yi, duñu leen ngaañ" #: ../data/klavaro.glade.h:13 msgid "" -"Keyboard layout for modules 1 and 2. Also used informatively in the " -"fluidness contest." +"Also the controls have tips which will appear if you hover over them with " +"your mouse. These tips can come in very handy. To see how these tips work, " +"position your mouse over the button below, and without clicking, wait for " +"the tip to appear..." msgstr "" -"Xamle arafukaay ci modil 1 ak 2. Ba tey itam moom lañuy jëfandikoo ci saaru " -"rattaxal yi." +"Te itam, butoŋ bu nekk dafa am waxtaanu ndimbal mu koy mottali. Ngir wone " +"ko, tegal jinax ji ci kow butoŋ bi bañ a cuq te xaar tuuti..." #: ../data/klavaro.glade.h:14 -msgid "_Keyboard:" -msgstr "Arafukaay" +msgid "Klavaro - Select file" +msgstr "Klavaro - Tànnum dencukaay" #: ../data/klavaro.glade.h:15 -msgid "Language for modules 3 and 4." -msgstr "Lammiñ ngir sumb 3 ak 4" +msgid "_Cancel" +msgstr "Neenal" #: ../data/klavaro.glade.h:16 -msgid "_Language:" -msgstr "Làmmiñ" +msgid "_Open" +msgstr "Ubbi" #: ../data/klavaro.glade.h:17 -msgid "Variant" -msgstr "Xeet" +msgid "Re_name:" +msgstr "Sàkkalaat tur:" #: ../data/klavaro.glade.h:18 -msgid "Klavaro" -msgstr "Klavaro" +msgid "Rename the selected item." +msgstr "Sàkkalaat tur mbir mi faluwoon" #: ../data/klavaro.glade.h:19 -msgid "Country / Custom" -msgstr "Réew / solal" +msgid "" +"Read a text file and add a copy of it here. The file must be encoded in " +"UTF-8." +msgstr "" +"Njàng ab dencukaayu mbind te roof fii ab duppit. Dencukaay bi dafa war a " +"nekk lu nu fas ci UTF-8" #: ../data/klavaro.glade.h:20 -msgid "Your language here." -msgstr "Sa lammiñ." +msgid "_Open text file" +msgstr "Ubbi dencukaayu mbind yi" #: ../data/klavaro.glade.h:21 -msgid "Speech" -msgstr "Fitté" +msgid "Paste text that was copied to the clipboard." +msgstr "Taf mbind wi ñu duppiwoon ci dencandikaay bi." #: ../data/klavaro.glade.h:22 -msgid "Little tip about this program." -msgstr "Pexe su ndaw ngir porogaraam bii." +msgid "_Paste from clipboard" +msgstr "Taf bu dale ca dencandikaay ba" #: ../data/klavaro.glade.h:23 -msgid "_Help" -msgstr "Ndimbal" +msgid "Remove the selected item." +msgstr "Màbb mbir mi falu." #: ../data/klavaro.glade.h:24 -msgid "General information about the program." -msgstr "Xibaar yu ëmb lépp te aju ci xeltéef gii." +msgid "_Remove copied file" +msgstr "_Màbb duppi dencukaay bi" #: ../data/klavaro.glade.h:25 -msgid "_About..." -msgstr "Ci mbiri..." +msgid "Apply the selected item to create an exercise." +msgstr "Jëfe mbir mi falu ngir sos ab jéemantu" #: ../data/klavaro.glade.h:26 -msgid "Exit the application immediately." -msgstr "Génnal leegi ci jefekaay bii: Gàttal : [Ctrl-Q]" +msgid "_Apply" +msgstr "Jëfe" #: ../data/klavaro.glade.h:27 -msgid "_Close" -msgstr "Tëj" +msgid "Close this window." +msgstr "Tëj palanteer bii." #: ../data/klavaro.glade.h:28 -msgid "Load other exercises/lessons" -msgstr "Ubbi yeneeni jéemantu/saar/ Gàttal : [Ctrl-O]" +msgid "_Close" +msgstr "Tëj" #: ../data/klavaro.glade.h:29 -msgid "_Other texts" -msgstr "Yeneeni mbind" +msgid "Country / Custom" +msgstr "Réew / solal" #: ../data/klavaro.glade.h:30 -msgid "_Lesson:" -msgstr "Saar" +msgid "Variant" +msgstr "Xeet" #: ../data/klavaro.glade.h:31 -msgid "Edit the character set to be used in this lesson." -msgstr "Soppiléen njabootu araf yi ñu war a jëfandikoo ci saar wii." +msgid "Remove the selected custom layout." +msgstr "Màbb tëralinu solal wi nu faloon" #: ../data/klavaro.glade.h:32 -msgid "Edit the character set to be used in lessons 44 through 50." -msgstr "Soppiléen njabootu araf yi ñu war a jëfandikoo ci saar 44 ba 50." +msgid "_Remove" +msgstr "_Màbb" #: ../data/klavaro.glade.h:33 -msgid "This is a specific exercise, adjusted to your error profile." -msgstr "" -"Lii jéemantu bu beru la, dañu koo méngaleek njuumte yi ngay faral di def." +msgid "" +"Toggles the shift effect on the keys. Alternates between the upper and lower " +"characters of the keys." +msgstr "Jaabante diggante arafu mage yi ak yu ndaw yi ci butoŋ yi" -#: ../data/klavaro.glade.h:34 ../src/tutor.c:252 -msgid "Drag and drop text here to practice with it." -msgstr "Diriléen te teg mbind wi fii ngir tàggat sa bopp ci tàppe." +#: ../data/klavaro.glade.h:34 +msgid "SPACE BAR" +msgstr "Bànqaasu teqale" -#: ../data/klavaro.glade.h:35 -msgid "Press here to restart the exercise. Hotkey: [Ctrl R]" -msgstr "Bësal fii ngir tàmbaliwaat jéemantu bi. Gàttal : [Ctrl R]" +#: ../data/klavaro.glade.h:35 ../src/keyboard.c:1630 +msgid "thumbs" +msgstr "Puus" #: ../data/klavaro.glade.h:36 -msgid "Show the virtual keyboard and the relation between fingers and keys." -msgstr "Wonem arafukaay bi ñu nataal ak ni baaraam yeek butoŋ yi ànde" +msgid "Ctrl" +msgstr "Ctrl" #: ../data/klavaro.glade.h:37 -msgid "_Keyboard" -msgstr "Arafukaay" +msgid "Caps" +msgstr "Xomb. Rajj" #: ../data/klavaro.glade.h:38 -msgid "Select the font to be used in the exercise window." -msgstr "" -" Fal-léen njabootu araf yi ngéen di jëfandikoo ci palanteeru jéemantu yii" +msgid "S_ave as:" +msgstr "aar ci" #: ../data/klavaro.glade.h:39 -msgid "_Font" -msgstr "Araf" +msgid "Show previous screen." +msgstr "Wone seetukaay bi jiitu" #: ../data/klavaro.glade.h:40 -msgid "Keep this checked if you want to get those nice beeps." -msgstr "Danu koo war a bàyyi cig pal su ngeen bëgge dégg dégtu yu neex yii." +msgid "_Previous step" +msgstr "Tollu tollu bi jiitu" #: ../data/klavaro.glade.h:41 -msgid "_Beep" -msgstr "Bip " +msgid "Show next screen." +msgstr "Wone seetukaay bi ci topp" #: ../data/klavaro.glade.h:42 -msgid "Co_urse information" -msgstr "Xibaar ci saar wi" +msgid "_Next step" +msgstr "Bi ci topp" #: ../data/klavaro.glade.h:43 -msgid "Charts showing the learning progress along the exercises." -msgstr "Nataal wuy wone ni nuy jëme kanam ci saa su nuy jéemantu." +msgid "Return without any modification." +msgstr "Dellusi te bañ a jefe benn coppite" #: ../data/klavaro.glade.h:44 -msgid "_Progress" -msgstr "_Jéego yi" +msgid "Save the current keyboard layout with the name specified above." +msgstr "Aar tabalu arafukaay bi ñu tollu ak tur wi ñu wone ci kow." #: ../data/klavaro.glade.h:45 -msgid "Show local and external scores from other users." -msgstr "Wone manoore biir ak biti yu yeneeni jëfandikookat." +msgid "_Save and use" +msgstr "Aar te jëfandikoo" #: ../data/klavaro.glade.h:46 -msgid "_Top 10" -msgstr "_Top 10" +msgid "" +"If you like those beautiful hands, click here to close this window keeping " +"them." +msgstr "" +"Su ngéen soppee loxo yu jekk yii, cuq leen fii ngir tëj palanteer bi te " +"dencaale leen." #: ../data/klavaro.glade.h:47 -msgid "Return to the main menu." -msgstr "Dellusi ci jël lu mag li" +msgid "_Keep hands" +msgstr "Denc loxo yi" #: ../data/klavaro.glade.h:48 -msgid "B_ack to menu" -msgstr "Dellusi ci njël li" +msgid "Klavaro - Main menu" +msgstr "Klavaro - Njël lu mag" #: ../data/klavaro.glade.h:49 -msgid "Close this window." -msgstr "Tëj palanteer bii." +msgid "Don't be shy about learning the basics!" +msgstr "Bu leen am xel ñaar ci jàng cosaan yi" #: ../data/klavaro.glade.h:50 -msgid "Font definition" -msgstr "Tànnum njabootu araf" +msgid "Learn how to type correctly" +msgstr "Nan la ñuy tàppee mu aw yoon" #: ../data/klavaro.glade.h:51 -msgid "Top 10" -msgstr "Top 10" +msgid "Initial training for your fingers." +msgstr "Tàggatum baaraam gi jëkk." #: ../data/klavaro.glade.h:52 -msgid "Show extra information" -msgstr "Wone xibaar yi yokku" +msgid "First steps with initial training" +msgstr "Jéego bi jëkk: tàggatum ndoorte" #: ../data/klavaro.glade.h:53 -msgid "Hide extra information" -msgstr "Nëbb xibaar yi yokku" +msgid "Memorizing the keyboard practicing random keys exercises." +msgstr "Mokkal arafukaay gi wéeru ci ndimbalu butoŋ bu mu mën di doon." #: ../data/klavaro.glade.h:54 -msgid "Publish to the web your local scores." -msgstr "Yéene say manoore ci internet" +msgid "Practice with random keys" +msgstr "Tàggat ak ay butoŋ yu mu mën di doon" #: ../data/klavaro.glade.h:55 -msgid "_Participate" -msgstr "Bokk" +msgid "Accelerating the touches practicing random words exercises." +msgstr "" +"Gaawalug mbind mi ak ay jéemantu yu sukkandiku ci baat yu mu mën di nekk" #: ../data/klavaro.glade.h:56 -msgid "Download from the web the most up to date ranking." -msgstr "Yebléen ci internet ndenc yi gën a ànd ak jamono." +msgid "Practice with random words" +msgstr "Tàggat ak ay baat yu mu mën di doon" #: ../data/klavaro.glade.h:57 -msgid "_Update" -msgstr "_Yeesal" +msgid "Becoming proficient practicing complete paragraphs exercises." +msgstr " Nekksiléen ku xaran ak jéemantu yi sukkandiku ci xise yu mët sëkk,." #: ../data/klavaro.glade.h:58 -msgid "About 'Klavaro'" -msgstr "Ci mbiri \"Klavaro\"" +msgid "Practice with complete texts" +msgstr "Tàggat ak ay mbind yu mët sëkk" + +#: ../data/klavaro.glade.h:59 +msgid "" +"Keyboard layout for modules 1 and 2. Also used informatively in the " +"fluidness contest." +msgstr "" +"Xamle arafukaay ci modil 1 ak 2. Ba tey itam moom lañuy jëfandikoo ci saaru " +"rattaxal yi." #: ../data/klavaro.glade.h:60 -msgid "Remember always: someone loves you!" -msgstr "Fàttaliku-léen bés bu nekk ne am na ku leen bëgg!" +msgid "_Keyboard:" +msgstr "Arafukaay" #: ../data/klavaro.glade.h:61 -msgid "Remove the selected custom layout." -msgstr "Màbb tëralinu solal wi nu faloon" +msgid "Language for modules 3 and 4." +msgstr "Lammiñ ngir sumb 3 ak 4" #: ../data/klavaro.glade.h:62 -msgid "_Remove" -msgstr "_Màbb" +msgid "_Language:" +msgstr "Làmmiñ" #: ../data/klavaro.glade.h:63 -msgid "" -"Toggles the shift effect on the keys. Alternates between the upper and lower " -"characters of the keys." -msgstr "Jaabante diggante arafu mage yi ak yu ndaw yi ci butoŋ yi" +msgid "Speech" +msgstr "Fitté" #: ../data/klavaro.glade.h:64 -msgid "SPACE BAR" -msgstr "Bànqaasu teqale" +msgid "Your language here." +msgstr "Sa lammiñ." -#: ../data/klavaro.glade.h:65 ../src/keyboard.c:1630 -msgid "thumbs" -msgstr "Puus" +#: ../data/klavaro.glade.h:65 +msgid "Little tip about this program." +msgstr "Pexe su ndaw ngir porogaraam bii." #: ../data/klavaro.glade.h:66 -msgid "Ctrl" -msgstr "Ctrl" +msgid "_Help" +msgstr "Ndimbal" #: ../data/klavaro.glade.h:67 -msgid "Caps" -msgstr "Xomb. Rajj" +msgid "General information about the program." +msgstr "Xibaar yu ëmb lépp te aju ci xeltéef gii." #: ../data/klavaro.glade.h:68 -msgid "S_ave as:" -msgstr "aar ci" +msgid "_About..." +msgstr "Ci mbiri..." #: ../data/klavaro.glade.h:69 -msgid "Show previous screen." -msgstr "Wone seetukaay bi jiitu" +msgid "Exit the application immediately." +msgstr "Génnal leegi ci jefekaay bii: Gàttal : [Ctrl-Q]" #: ../data/klavaro.glade.h:70 -msgid "_Previous step" -msgstr "Tollu tollu bi jiitu" +msgid "Klavaro - Progress" +msgstr "Klavaro - Jéego yi" #: ../data/klavaro.glade.h:71 -msgid "Show next screen." -msgstr "Wone seetukaay bi ci topp" +msgid "_Lesson:" +msgstr "Saar" #: ../data/klavaro.glade.h:72 -msgid "_Next step" -msgstr "Bi ci topp" +msgid "Value" +msgstr "Dayo" #: ../data/klavaro.glade.h:73 -msgid "Return without any modification." -msgstr "Dellusi te bañ a jefe benn coppite" +msgid "Close this window, returning to the exercise." +msgstr "Tëj palanteer bii, dellusi ci jéemantu bi." #: ../data/klavaro.glade.h:74 -msgid "_Cancel" -msgstr "Neenal" +msgid "Clear all the progress data, for every module." +msgstr "Far xibaar yi aju ci fi nu tollu, ci modil yépp." #: ../data/klavaro.glade.h:75 -msgid "Save the current keyboard layout with the name specified above." -msgstr "Aar tabalu arafukaay bi ñu tollu ak tur wi ñu wone ci kow." +msgid "_Reset" +msgstr "_Suqaliwaat" #: ../data/klavaro.glade.h:76 -msgid "_Save and use" -msgstr "Aar te jëfandikoo" +msgid "Top 10" +msgstr "Top 10" #: ../data/klavaro.glade.h:77 -msgid "" -"If you like those beautiful hands, click here to close this window keeping " -"them." -msgstr "" -"Su ngéen soppee loxo yu jekk yii, cuq leen fii ngir tëj palanteer bi te " -"dencaale leen." +#, fuzzy +msgid "Show extra information." +msgstr "Wone xibaar yi yokku" #: ../data/klavaro.glade.h:78 -msgid "_Keep hands" -msgstr "Denc loxo yi" +#, fuzzy +msgid "Hide extra information." +msgstr "Nëbb xibaar yi yokku" #: ../data/klavaro.glade.h:79 -msgid "Change language" -msgstr "Soppi lammiñ" +msgid "Publish to the web your local scores." +msgstr "Yéene say manoore ci internet" #: ../data/klavaro.glade.h:80 -msgid "Attention!" -msgstr "Moytul!" +msgid "_Participate" +msgstr "Bokk" #: ../data/klavaro.glade.h:81 -msgid "Do you confirm?" -msgstr "Ndax woor na la?" +msgid "Download from the web the most up to date ranking." +msgstr "Yebléen ci internet ndenc yi gën a ànd ak jamono." #: ../data/klavaro.glade.h:82 -msgid "_No" -msgstr "Déedéed" +msgid "_Update" +msgstr "_Yeesal" #: ../data/klavaro.glade.h:83 -msgid "_Yes" -msgstr "Waaw" +msgid "Load other exercises/lessons" +msgstr "Ubbi yeneeni jéemantu/saar/ Gàttal : [Ctrl-O]" #: ../data/klavaro.glade.h:84 -msgid "Re_name:" -msgstr "Sàkkalaat tur:" +msgid "_Other texts" +msgstr "Yeneeni mbind" #: ../data/klavaro.glade.h:85 -msgid "Rename the selected item." -msgstr "Sàkkalaat tur mbir mi faluwoon" +msgid "Edit the character set to be used in this lesson." +msgstr "Soppiléen njabootu araf yi ñu war a jëfandikoo ci saar wii." #: ../data/klavaro.glade.h:86 -msgid "" -"Read a text file and add a copy of it here. The file must be encoded in " -"UTF-8." +msgid "This is a specific exercise, adjusted to your error profile." msgstr "" -"Njàng ab dencukaayu mbind te roof fii ab duppit. Dencukaay bi dafa war a " -"nekk lu nu fas ci UTF-8" +"Lii jéemantu bu beru la, dañu koo méngaleek njuumte yi ngay faral di def." #: ../data/klavaro.glade.h:87 -msgid "_Open text file" -msgstr "Ubbi dencukaayu mbind yi" +#, fuzzy +msgid "" +"Edit the character set to be used in lessons after 43: they are customizable!" +msgstr "Soppiléen njabootu araf yi ñu war a jëfandikoo ci saar 44 ba 50." -#: ../data/klavaro.glade.h:88 -msgid "Paste text that was copied to the clipboard." -msgstr "Taf mbind wi ñu duppiwoon ci dencandikaay bi." +#: ../data/klavaro.glade.h:88 ../src/tutor.c:376 +msgid "Drag and drop text here to practice with it." +msgstr "Diriléen te teg mbind wi fii ngir tàggat sa bopp ci tàppe." #: ../data/klavaro.glade.h:89 -msgid "_Paste from clipboard" -msgstr "Taf bu dale ca dencandikaay ba" +#, fuzzy +msgid "Press here to restart the exercise. Hotkey: [Ctrl-R]" +msgstr "Bësal fii ngir tàmbaliwaat jéemantu bi. Gàttal : [Ctrl R]" #: ../data/klavaro.glade.h:90 -msgid "Remove the selected item." -msgstr "Màbb mbir mi falu." +msgid "Show the virtual keyboard and the relation between fingers and keys." +msgstr "Wonem arafukaay bi ñu nataal ak ni baaraam yeek butoŋ yi ànde" #: ../data/klavaro.glade.h:91 -msgid "_Remove copied file" -msgstr "_Màbb duppi dencukaay bi" +msgid "_Keyboard" +msgstr "Arafukaay" #: ../data/klavaro.glade.h:92 -msgid "Apply the selected item to create an exercise." -msgstr "Jëfe mbir mi falu ngir sos ab jéemantu" +msgid "Select the font to be used in the exercise window." +msgstr "" +" Fal-léen njabootu araf yi ngéen di jëfandikoo ci palanteeru jéemantu yii" #: ../data/klavaro.glade.h:93 -msgid "_Apply" -msgstr "Jëfe" +msgid "Font definition" +msgstr "Tànnum njabootu araf" #: ../data/klavaro.glade.h:94 -msgid "Klavaro - Progress" -msgstr "Klavaro - Jéego yi" +msgid "Keep this checked if you want to get those nice beeps." +msgstr "Danu koo war a bàyyi cig pal su ngeen bëgge dégg dégtu yu neex yii." #: ../data/klavaro.glade.h:95 -msgid "Value" -msgstr "Dayo" +msgid "_Beep" +msgstr "Bip " #: ../data/klavaro.glade.h:96 -msgid "Clear all the progress data, for every module." -msgstr "Far xibaar yi aju ci fi nu tollu, ci modil yépp." +msgid "Co_urse information" +msgstr "Xibaar ci saar wi" #: ../data/klavaro.glade.h:97 -msgid "_Reset" -msgstr "_Suqaliwaat" +msgid "Charts showing the learning progress along the exercises." +msgstr "Nataal wuy wone ni nuy jëme kanam ci saa su nuy jéemantu." #: ../data/klavaro.glade.h:98 -msgid "Close this window, returning to the exercise." -msgstr "Tëj palanteer bii, dellusi ci jéemantu bi." +msgid "_Progress" +msgstr "_Jéego yi" #: ../data/klavaro.glade.h:99 -msgid "Klavaro - Select file" -msgstr "Klavaro - Tànnum dencukaay" +msgid "Return to the main menu." +msgstr "Dellusi ci jël lu mag li" #: ../data/klavaro.glade.h:100 -msgid "_Open" -msgstr "Ubbi" +msgid "Show local and external scores from other users." +msgstr "Wone manoore biir ak biti yu yeneeni jëfandikookat." #: ../data/klavaro.glade.h:101 -msgid "Help?" -msgstr "Ndimbal?" - -#: ../data/klavaro.glade.h:102 -msgid "" -"The main menu of the application is very straightforward. Just select the " -"type of exercise you wish to take. Do not worry about clicking any button on " -"the screen. The buttons will never hurt you!" -msgstr "" -"Jël lu mag li ñeel xeltéef bi lu yomb la. Fal leen rekk xeetu jéemantu bi " -"ngeen fas yéenée def. Buléen ragal a cuq butoŋ yi, duñu leen ngaañ" +msgid "_Top 10" +msgstr "_Top 10" -#: ../data/klavaro.glade.h:103 -msgid "" -"Also the controls have tips which will appear if you hover over them with " -"your mouse. These tips can come in very handy. To see how these tips work, " -"position your mouse over the button below, and without clicking, wait for " -"the tip to appear..." -msgstr "" -"Te itam, butoŋ bu nekk dafa am waxtaanu ndimbal mu koy mottali. Ngir wone " -"ko, tegal jinax ji ci kow butoŋ bi bañ a cuq te xaar tuuti..." +#: ../data/klavaro.desktop.in.h:1 +#, fuzzy +msgid "A very flexible and efficient touch typing tutor." +msgstr "xeltéefub njàngum daktilo" -#: ../data/klavaro.glade.h:104 -msgid "This is a tip. Now you press this button to return to the main menu." -msgstr "Lii ab xelal la. Bës leen ci butoŋ bi ngir dellusi ci njël lu mag li. " +#. Translators: these are keywords related to the program. CAI above means Computer Aided Instruction. Feel free to add and/or change the keywords in your language. +#: ../data/klavaro.desktop.in.h:3 +#, fuzzy +msgid "keyboard;typing;tutor;CAI" +msgstr "Arafukaay " -#: ../src/main.c:314 +#: ../src/main.c:242 msgid "(Custom)" msgstr "(solal)" -#: ../src/main.c:315 +#: ../src/main.c:243 msgid "(Edit custom)" msgstr "(Jagal jëmmalin yu ñu solal)" -#: ../src/main.c:316 +#: ../src/main.c:244 msgid "(Default)" msgstr "(Ñakk ndigal)" -#: ../src/main.c:393 +#: ../src/main.c:321 #, c-format msgid "Dictation mode (depends on this speech synthesizer: %s)" msgid_plural "Dictation mode (depends on one of these speech synthesizers: %s)" msgstr[0] "Anamu fitté (aju ci dëxëñukaayu wax : %s)" msgstr[1] "Anamu fitté (aju ci dëxëñukaayu wax ji : %s)" -#. Set main labels (for translation) -#. -#: ../src/main.c:435 ../src/keyboard.c:1291 +#: ../src/main.c:364 ../src/keyboard.c:1291 msgid "Introduction" msgstr "Ubbite" -#: ../src/main.c:438 ../src/top10.c:109 +#: ../src/main.c:367 ../src/top10.c:109 msgid "Basic course" msgstr "Saari cosaan" -#: ../src/main.c:441 ../src/top10.c:112 +#: ../src/main.c:370 ../src/top10.c:112 msgid "Adaptability" msgstr "Mën a ànd" -#: ../src/main.c:444 ../src/callbacks.c:1310 ../src/top10.c:89 +#: ../src/main.c:373 ../src/callbacks.c:1226 ../src/top10.c:89 #: ../src/top10.c:115 msgid "Speed" msgstr "Gaawaay" -#: ../src/main.c:447 ../src/callbacks.c:1333 ../src/top10.c:91 +#: ../src/main.c:376 ../src/callbacks.c:1249 ../src/top10.c:91 #: ../src/top10.c:118 msgid "Fluidity" msgstr "Rataxaay" -#: ../src/callbacks.c:468 ../src/tutor.c:391 +#: ../src/callbacks.c:407 ../src/tutor.c:515 msgid "Keys:" msgstr "Butoŋ yi:" -#: ../src/callbacks.c:858 ../src/callbacks.c:874 +#: ../src/callbacks.c:774 ../src/callbacks.c:790 msgid "Connecting..." msgstr "Jokkoo baa ngi ci yoon..." -#: ../src/callbacks.c:1145 +#: ../src/callbacks.c:1061 msgid "Overwrite user layout" msgstr "Nappaaje benn taabalu arafukaay gu ñu solal" -#: ../src/callbacks.c:1147 +#: ../src/callbacks.c:1063 msgid "This will OVERWRITE an existent keyboard layout." msgstr "Lii dafay nappaaje benn taabalu arafukaay bu jotoon a am ba noppi" -#: ../src/callbacks.c:1154 +#: ../src/callbacks.c:1070 msgid "Remove user layout" msgstr "Màbb ab taabalu arafukaay gu ñu solal" -#: ../src/callbacks.c:1156 +#: ../src/callbacks.c:1072 msgid "This will REMOVE an existent keyboard layout." msgstr "Lii nii dafay màbb ab taabalu arafukaay bu jotoon a am" -#: ../src/callbacks.c:1163 +#: ../src/callbacks.c:1079 msgid "Reset progress data" msgstr "far rootaani yokkute" -#: ../src/callbacks.c:1164 +#: ../src/callbacks.c:1080 msgid "This will DELETE all the progress data shown in the charts." msgstr "Lii nii dafay far rootaani yokkute yépp yi ñu wone ci xise yi." -#: ../src/callbacks.c:1307 ../src/top10.c:87 +#: ../src/callbacks.c:1223 ../src/top10.c:87 msgid "Accuracy" msgstr "Jubaay" -#: ../src/callbacks.c:1310 ../src/tutor.c:1160 +#: ../src/callbacks.c:1226 ../src/tutor.c:1288 msgid "(WPM)" msgstr "MPM" -#: ../src/callbacks.c:1321 +#: ../src/callbacks.c:1237 msgid "Errors" msgstr "Njuumte yi" -#: ../src/callbacks.c:1324 +#: ../src/callbacks.c:1240 msgid "Touch times (s)" msgstr "" -#: ../src/callbacks.c:1336 ../src/tutor.c:1187 ../src/top10.c:69 +#: ../src/callbacks.c:1252 ../src/tutor.c:1315 ../src/top10.c:69 msgid "Score" msgstr "Manoore" #. Translators: your language code (first 2 letters of your po-file) -#: ../src/translation.c:423 ../src/translation.c:489 ../src/tutor.c:1597 +#: ../src/translation.c:485 ../src/tutor.c:1725 msgid "en" msgstr "wo" -#: ../src/translation.c:576 +#: ../src/translation.c:572 msgid "" "The basic course focuses on having you read the characters presented to you " "on screen and typing the corresponding keys. Remember to keep your hands " @@ -570,7 +575,7 @@ "palanteer bi, te bës butoŋ yi ñu méngool. Fàttalikuléen taxawaayi baaraam yi " "ci arafukaay gi ( yëral ubbite gi ci jël lu mag li)." -#: ../src/translation.c:580 +#: ../src/translation.c:576 msgid "" "The key set used in each series will be shown in the above message line. The " "[Space], [Shift] and [Enter] keys may not show up there but are used very " @@ -580,7 +585,7 @@ "buton (Espace), (Shift) ak (Enter) defuñu leen ci ndaxte dañu leen di " "jëfandikoo saa su nekk." -#: ../src/translation.c:583 +#: ../src/translation.c:579 msgid "" "The message line below follows and echoes your key presses. If required, it " "changes and displays instructions for actions required from you." @@ -588,7 +593,7 @@ "Sàppe bi ci topp day wone xeetu araf yi méngook butoŋ yi ngeen di bës. Su ko " "soxlaa, mbind mi dafay soppeeku su ko defee mu wone ndigal yu bees." -#: ../src/translation.c:587 +#: ../src/translation.c:583 msgid "" "Here you may practice and improve your memorization of all keys. There will " "be sentences presented with nonsense words which mix some numbers and " @@ -598,7 +603,7 @@ "sukkandiku ci ay baat yu amul tekki, dañu jaxase ay araf, ay lim aki " "jëmm(symbol)" -#: ../src/translation.c:590 +#: ../src/translation.c:586 msgid "" "In order to keep the lesson contents language and keyboard independent, " "accented letter combinations will probably not appear. For real word " @@ -607,7 +612,7 @@ " Ngir sukkandi ci kàddu ëmb baat dëgg ba tàggatu, demléen ca ñeenteelu " "tànneef gi ci jël lu mag li ( ci wàllu rattaxal)" -#: ../src/translation.c:594 +#: ../src/translation.c:590 msgid "" "After each exercise there will be a brief statistics panel reviewing your " "performance along with some relevant comments." @@ -615,7 +620,7 @@ "Di ngéen gis ci njeextel jéemantu bu nekk seeni manoore, ak ay benn benni " "gis gis ngir jëmale léen kanam." -#: ../src/translation.c:598 +#: ../src/translation.c:594 msgid "" "This exercise is very similar to the second one, for adaptability. The " "difference is that here you'll type real words." @@ -623,7 +628,7 @@ "Bii jéemantu dafay nirook ñaareel biy wax lu jëm mën a soppiku. Wuutu gi : " "fii da ngéen fiy tàppe ay baat dëggantaan ci seenug làmmiñ " -#: ../src/translation.c:601 +#: ../src/translation.c:597 msgid "" "The default language is the actual one of the interface. But you may select " "any other texts with words you would like to use. Press the 'Other' option " @@ -633,7 +638,7 @@ "a tànn yeneen mbind ak ay baat yu ngeen bëgg a jëfandikoo. Cuq leen ci " "tànneef \"Yeneen\" (ci kow) te yokk ci dencukaay yi ëmb waxtaan yi." -#: ../src/translation.c:605 +#: ../src/translation.c:601 msgid "" "With this exercise the focus is on speed. So, you are supposed to type " "really fast and I will only flatter you when you deserve it!" @@ -641,7 +646,7 @@ "Li ñu gën a soxal ci jéemantu jii mooy gaawaay. Koon, dangeen war a tàppe nu " "mu gën a gaawe! Jommal leen ma!" -#: ../src/translation.c:609 +#: ../src/translation.c:605 msgid "" "We will now use complete sentences and paragraphs which make logical sense. " "This may distract you while you type if you try to understand what you are " @@ -653,7 +658,7 @@ "def ngéen jéemantu yi jiitu ni mu ware, waru léen a am jafe-jafe, ndaxte war " "ngéen a bind te du ngeen am benn gis-gis cimbind mi wi." -#: ../src/translation.c:613 +#: ../src/translation.c:609 msgid "" "We do not mean to imply that the typists must behave like a robot, without " "understanding what they type. We do aim to develop the skill of typing, " @@ -668,8 +673,7 @@ "dootul nekk coono: kon léegi, mën ngéen a def seen xelaat yépp ci maanaa " "mbind wi." -#. English typo: minimun -> minimum -#: ../src/translation.c:618 +#: ../src/translation.c:613 msgid "" "These exercises are longer. Each exercise consists of three paragraphs and " "the emphasis is placed on correctness and rhythm, with a minimum speed " @@ -681,7 +685,6 @@ "wara jëfandikoo caabi far ngir defar yenn njumte yi. Mën nañu wax ni mbind " "yi ñu tappe te amul njumte rekk lañuy nangu." -#. English typo: recomendations -> recommendations #: ../src/keyboard.c:1094 msgid "" "Correct positioning of the hands and fingers is very important to efficient " @@ -779,13 +782,11 @@ msgid "Step %i" msgstr "Tollu tollu %i" -#. Recommendations -#: ../src/keyboard.c:1140 +#: ../src/keyboard.c:1142 msgid "To position the hands" msgstr "Tegléen seeni loxo fi war" -#. Final words -#: ../src/keyboard.c:1225 +#: ../src/keyboard.c:1227 msgid "Go ahead!" msgstr "Dem na de! Ayca!" @@ -825,66 +826,66 @@ msgid "Press and edit me" msgstr "Bësléen ma ngir jagal ma" -#: ../src/tutor.c:176 +#: ../src/tutor.c:300 msgid "Lesson:" msgstr "Saar" -#: ../src/tutor.c:186 +#: ../src/tutor.c:310 msgid "Paragraphs:" msgstr "Xise" -#: ../src/tutor.c:219 +#: ../src/tutor.c:343 msgid "Klavaro - Basic Course" msgstr "Klavaro - Saaru ndorte" -#: ../src/tutor.c:224 +#: ../src/tutor.c:348 msgid "Klavaro - Adaptability" msgstr "klavaro - Dëppale" -#: ../src/tutor.c:227 +#: ../src/tutor.c:351 msgid "" "Adaptability exercises: automating the fingers responses, typing over all " "the keyboard." msgstr "" "Jéemantu dëppaloo: baaraam yiy dem na mu ware, jëfandikoo arafukaay bi yépp." -#: ../src/tutor.c:232 +#: ../src/tutor.c:356 msgid "Klavaro - Velocity" msgstr "Klavaro - Gaawaay" -#: ../src/tutor.c:233 +#: ../src/tutor.c:357 msgid "Velocity exercises: accelerate typing real words." msgstr "Jéemantu gu ñeel gaawaay ; gaawal ci kow mbindum baat dëggantaan" -#: ../src/tutor.c:237 +#: ../src/tutor.c:361 msgid "Klavaro - Fluidness" msgstr "Klavaro - Rataxaay" -#: ../src/tutor.c:239 +#: ../src/tutor.c:363 msgid "Fluidness exercises: accuracy typing good sense paragraphs." msgstr "Jéemantu rattaxaay : Tappe bu jub ak mbindum xise bu am maanaa." -#: ../src/tutor.c:301 +#: ../src/tutor.c:425 msgid "End of exercise. Press [Enter] to start another." msgstr "Njeextel jéemantu. Bësal ci [Entrée-Duggal] ngir tàmbali beneen." -#: ../src/tutor.c:329 +#: ../src/tutor.c:453 msgid "Learning the key positions." msgstr "Njàngum féetéwaayu (palaasu) butoŋ yi" -#: ../src/tutor.c:332 +#: ../src/tutor.c:456 msgid "Press any key to start the exercise. " msgstr "Bësal ci benn butoŋ ngir tàmbali jéemantu bi." -#: ../src/tutor.c:440 ../src/tutor.c:443 +#: ../src/tutor.c:567 ../src/tutor.c:570 msgid "Start typing when you are ready. " msgstr "Tàmbalil tàppe su fekkee ne pare nga (njekk nga)." -#: ../src/tutor.c:441 +#: ../src/tutor.c:568 msgid "Use backspace to correct errors." msgstr "" -#: ../src/tutor.c:885 +#: ../src/tutor.c:1012 #, c-format msgid "" "ps.: logging not performed for this session: the number of typed characters " @@ -893,11 +894,11 @@ "PS: amul benni xibaarukaay bu ñeel njàng mii : limu araf yi u tàppe (%i) " "dafa war a gën a bari %i. " -#: ../src/tutor.c:1027 +#: ../src/tutor.c:1154 msgid "ps.: you have entered the Top 10 list, great!" msgstr "PS: dugg nga ci lim\"Top10), waaw góor!" -#: ../src/tutor.c:1039 +#: ../src/tutor.c:1166 msgid "" "ps.: the text you just typed doesn't seem to be similar to ordinary texts in " "the language currently selected: we can't account for it in the 'Top 10' " @@ -906,91 +907,88 @@ "PS: Mbind mi nga dugal dafa mel ni bokkul ak mbind yu niróo yi ci làkk wi ñu " "fal : mëneesul koo boole ci raw gaddu\"Top 10\"" -#. Begin the accuracy -#: ../src/tutor.c:1087 +#: ../src/tutor.c:1215 msgid "STATISTICS" msgstr "LIM YI" -#: ../src/tutor.c:1088 +#: ../src/tutor.c:1216 msgid "Elapsed time:" msgstr "Diir bi jàll" -#: ../src/tutor.c:1089 +#: ../src/tutor.c:1217 msgid "minute and" msgid_plural "minutes and" msgstr[0] "simili ak" msgstr[1] "Simili ak" -#: ../src/tutor.c:1090 +#: ../src/tutor.c:1218 msgid "second" msgid_plural "seconds" msgstr[0] "saa" msgstr[1] "Saa" -#: ../src/tutor.c:1091 +#: ../src/tutor.c:1219 msgid "Error ratio:" msgstr "Ni njuumte yi tollu: " -#: ../src/tutor.c:1091 +#: ../src/tutor.c:1219 msgid "Accuracy:" msgstr "Jubaay:" -#: ../src/tutor.c:1112 ../src/tutor.c:1137 ../src/tutor.c:1160 -#: ../src/tutor.c:1186 +#: ../src/tutor.c:1240 ../src/tutor.c:1265 ../src/tutor.c:1288 +#: ../src/tutor.c:1314 msgid "Goal:" msgstr "Jëmu:" -#: ../src/tutor.c:1119 +#: ../src/tutor.c:1247 msgid "Characters per second:" msgstr "Araf ci sa" -#: ../src/tutor.c:1137 +#: ../src/tutor.c:1265 msgid "(CPS)" msgstr "(CPS)" -#: ../src/tutor.c:1142 +#: ../src/tutor.c:1270 msgid "Words per minute:" msgstr "Baat ci simili" -#: ../src/tutor.c:1167 +#: ../src/tutor.c:1295 msgid "Fluidness:" msgstr "Rattaxaay" -#: ../src/tutor.c:1194 +#: ../src/tutor.c:1322 msgid "Comments:" msgstr "Gis-gis" -#: ../src/tutor.c:1676 +#: ../src/tutor.c:1804 msgid "space" msgstr "diggante" #. Translators: the name of letter Y -#: ../src/tutor.c:1681 +#: ../src/tutor.c:1809 msgid "wye" msgstr "Biddiw" #. Translators: the name of the Return key -#: ../src/tutor.c:1685 +#: ../src/tutor.c:1813 msgid "enter" msgstr "dugal" -#: ../src/tutor.c:1691 +#: ../src/tutor.c:1819 msgid "apostrophe" msgstr "cofu" #. Translators: double quote symbol: " -#: ../src/tutor.c:1695 +#: ../src/tutor.c:1823 msgid "quote" msgstr "këmbu cofu" #. Translators: ampersand symbol: & -#: ../src/tutor.c:1699 +#: ../src/tutor.c:1827 msgid "ampersand" msgstr "'ak' móoluwaay" -#. Error frequencies or touch times -#. -#: ../src/plot.c:308 +#: ../src/plot.c:305 msgid "Character" msgstr "" @@ -998,11 +996,11 @@ msgid "Date & Time" msgstr "Bés ak waxtu" -#: ../src/basic.c:331 +#: ../src/basic.c:326 msgid "Positions of keys seems to be learned!" msgstr "Palaasu butoŋ yi mel na ni mokk na!" -#: ../src/basic.c:332 +#: ../src/basic.c:327 msgid "" " Congratulations!\n" " You have accomplished the entire basic course.\n" @@ -1014,7 +1012,7 @@ " Demléen ci xeeti jéemantu yii: dëppale, \n" " Da ngéen di gën a def ay jéemantu yu ñeel jubaay, \n" -#: ../src/basic.c:338 +#: ../src/basic.c:333 msgid "" " All right, now you got it!\n" " Go to the next lesson.\n" @@ -1022,34 +1020,36 @@ "Baax na, sottal ngéen ko!\n" " Jàll-léen ci saar wi ci topp. \n" -#: ../src/adaptability.c:217 +#: ../src/adaptability.c:213 +#, fuzzy, c-format msgid "" -" Your accuracy rate is below 90%...\n" +" Your accuracy rate is below %.0f%%...\n" " Could you please try again to improve it?\n" msgstr "" "Seen tolluwaay ci mbind mu jub ëppul 90%...\n" "Ndax mën ngéen a dooraat ngir yokk ko?\n" -#: ../src/adaptability.c:222 +#: ../src/adaptability.c:216 +#, fuzzy, c-format msgid "" " You are doing well. But...\n" -" Could you make the accuracy reach 95%?\n" +" Could you make the accuracy reach %.0f%%?\n" msgstr "" "Ni ngéen di defe baax na. Waaye...\n" " jéemléen a yegg ci mbindin mu jub gën gaa néew 95%. \n" -#: ../src/adaptability.c:225 -#, c-format +#: ../src/adaptability.c:219 +#, fuzzy, c-format msgid "" " You are almost there, but your accuracy rate is still below %.0f%%.\n" -" Try a few more times, or maybe you're getting upset, so go to other kind of " -"exercise.\n" +" Try a few more times, or maybe you're getting upset, so go to another kind " +"of exercise.\n" msgstr "" "Daanaka yegsi ngéen ci, waaye seen mokkal mbind mu jub a ngi ba tey ci lu " "yées %.0f%%\n" "Jéemaatléen\n" -#: ../src/adaptability.c:232 +#: ../src/adaptability.c:226 #, c-format msgid "" " Very good!\n" @@ -1062,11 +1062,11 @@ " Léegi, dafa jot ngéen yokk seen gaawaay.\n" " Demléen ci ñetteelu jéemantu bi te tàmbalee ca jël lu mag la.\n" -#: ../src/velocity.c:313 ../src/fluidness.c:435 +#: ../src/velocity.c:312 ../src/fluidness.c:435 msgid "Pasted_or_dropped" msgstr "taf mbaa teg" -#: ../src/velocity.c:432 +#: ../src/velocity.c:423 msgid "" " You are just beginning.\n" " Be patient, try it again every day, rest and don't worry so much:\n" @@ -1076,31 +1076,34 @@ "Bu léen yàkkamti, jéemaatléen bés bu nekk, buléen faale:\n" "Yàgg ceeg sax ci dina tax ngeen gën a yokk seen gaawaay. \n" -#: ../src/velocity.c:436 +#: ../src/velocity.c:427 +#, fuzzy, c-format msgid "" " Still away from the highway. You can make better...\n" -" Try at least 20 WPM.\n" +" Try to reach at least %.0f WPM.\n" msgstr "" "Ba tey sori ngéen xàll wu mag wi. War ngéen a mën lu gën a baax lii.../" "nJéemleena jot lu gën ga neew 20 MPM.\n" -#: ../src/velocity.c:439 +#: ../src/velocity.c:430 +#, fuzzy, c-format msgid "" " You are doing well, but need to go faster.\n" -" And don't forget the accuracy. Try to get 30 WPM.\n" +" And don't forget the accuracy. Try to get %.0f WPM.\n" msgstr "" "Yéen a ngi koy doxal bu baax, waaye na gën a gaaw. \n" "Te buléen fàtte jubaay bi. jéemléen a yegg ba 30 baat ci simili bu nekk,\n" -#: ../src/velocity.c:443 +#: ../src/velocity.c:433 +#, fuzzy, c-format msgid "" " Fine. Now you need to start running.\n" -" Can you reach 40 WPM?\n" +" Can you reach %.0f WPM?\n" msgstr "" "Baax na. Léegi, mën ngéen a jéem a daw.\n" "Ndax di ngéen mën a dem ba 40 baat ci similili?\n" -#: ../src/velocity.c:446 +#: ../src/velocity.c:436 #, c-format msgid "" " Very good. You are almost there.\n" @@ -1109,7 +1112,7 @@ "Baax na lool. Jàpp ngéen ko daanaka.\n" "Léegi, mën ngéen a yegg ci..%.0f...simili?\n" -#: ../src/velocity.c:451 +#: ../src/velocity.c:439 msgid "" " Excellent. For this course, that is enough.\n" " Try now the fluidness exercises, OK?\n" @@ -1117,31 +1120,34 @@ " Dox na. Doy na nii ci saar wii.\n" " Jéemantu ngéen léegi ci rattaxaay gi, baax na?\n" -#: ../src/velocity.c:455 +#: ../src/velocity.c:442 +#, fuzzy, c-format msgid "" -" Fast! Are you training for a competition?\n" -" So, try to get 70 WPM!\n" +" Fast! Are you a professional?\n" +" So, try to get %.0f WPM!\n" msgstr "" "Gaaw na lool. Ndax di gnéen tàggatu ngir jongante.Su fekkee loolu la " "jéemleen agg 70 MPM !\n" -#: ../src/velocity.c:458 -msgid "" -" Top of \"qwerty\". Now it's time to change to the Dvorak mode.\n" -" Are you afraid of reaching 80 WPM?\n" +#. Translators: Speed Racer is a reference to a Japanese anime franchise +#. about automobile racing, also known as Mach GoGoGo. +#: ../src/velocity.c:447 +#, c-format +msgid " Ranking good, Speed Racer! Are you afraid of reaching %.0f WPM?\n" msgstr "" -"Fi manoore mën a yem ci \"qwerty\". Jot na ñu jàmm ci nekkinu \"Dvorak. /" -"nNdax dangéen ragal a yegg ci 80 baat ci simili bu nekk?\n" -#: ../src/velocity.c:462 +#. Translators: feel free to change the reference to that martial art, if you find another good analogy. +#: ../src/velocity.c:451 +#, fuzzy, c-format msgid "" -" Dvorak mode dominated!\n" -" Can you fly at 90 WPM?\n" +" Kunf-fu mastering!\n" +" Can you fly at %.0f WPM?\n" msgstr "" "Noot ngéen nekkinu Dvorak!\n" "Ndax mën ngéen a naaw ba 90 baat ci simili bu nekk?\n" -#: ../src/velocity.c:466 +#. Translators: Dvorak here means that infamous ergonomic keyboard layout. +#: ../src/velocity.c:454 msgid "" " Dvorak master!\n" " I have no words to express my admiration!\n" @@ -1149,7 +1155,7 @@ "Ub nga làmbu Dvorak! \n" "Xamu ma naka laay waxe sama cofeel! \n" -#: ../src/fluidness.c:545 +#: ../src/fluidness.c:538 #, c-format msgid "" " You type accurately but not so fast.\n" @@ -1158,7 +1164,7 @@ "Sa tàppe jub na waaye gaawul.\n" "Ndax mën ngéen a yegg ci..%.0f...simili?\n" -#: ../src/fluidness.c:548 +#: ../src/fluidness.c:541 #, c-format msgid "" " Your rhythm is not so constant. Calm down.\n" @@ -1167,7 +1173,7 @@ "Seen doxin dees na. Dalal.\n" " Léegi, jéemléen a yegg ci wàllu rattaxaay ci lu weesu ..%i%%.\n" -#: ../src/fluidness.c:551 +#: ../src/fluidness.c:544 #, c-format msgid "" " You are almost getting there. Type more fluently.\n" @@ -1176,7 +1182,7 @@ "Daanaka yeggsi nga ci. Ni ngéen di tàppee na gën a yomb./Damaa bëggoon a am " "rattaxaay bu toll ci ..%.0f%% mbaa lu ko ëpp/ \n" -#: ../src/fluidness.c:554 +#: ../src/fluidness.c:547 msgid "" " Congratulations!\n" " It seems to me that you are a professional.\n" @@ -1187,7 +1193,7 @@ "Dangaa mel ni li sa liggéey la!Soxlaatu léen porogaraam bii!/nYaakaar naa ne " "neex na la! Jërëjëf jàmm ak xéewal!\n" -#: ../src/fluidness.c:559 +#: ../src/fluidness.c:552 msgid "" " How can you type so fast?\n" " You have exceeded all my expectations.\n" @@ -1247,5 +1253,21 @@ msgid "Could not upload/download scores." msgstr "Mënuñu yónnee/yeb ay manoore." +#~ msgid "" +#~ " Top of \"qwerty\". Now it's time to change to the Dvorak mode.\n" +#~ " Are you afraid of reaching 80 WPM?\n" +#~ msgstr "" +#~ "Fi manoore mën a yem ci \"qwerty\". Jot na ñu jàmm ci nekkinu \"Dvorak. /" +#~ "nNdax dangéen ragal a yegg ci 80 baat ci simili bu nekk?\n" + +#~ msgid "Press here to restart the exercise. Hotkey: [Ctrl R]" +#~ msgstr "Bësal fii ngir tàmbaliwaat jéemantu bi. Gàttal : [Ctrl R]" + +#~ msgid "_Font" +#~ msgstr "Araf" + +#~ msgid "Klavaro" +#~ msgstr "Klavaro" + #~ msgid "Default" #~ msgstr "Ñakk ndigël" diff -Nru klavaro-1.9.9/po/zh_CN.po klavaro-3.00/po/zh_CN.po --- klavaro-1.9.9/po/zh_CN.po 2013-08-15 13:38:52.000000000 +0000 +++ klavaro-3.00/po/zh_CN.po 2014-01-13 23:25:53.000000000 +0000 @@ -6,8 +6,8 @@ msgid "" msgstr "" "Project-Id-Version: klavaro 1.9.0-pre1\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2013-08-15 10:38-0300\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2014-01-13 21:25-0200\n" "PO-Revision-Date: 2011-03-31 14:17+0800\n" "Last-Translator: Yuwei Yu \n" "Language-Team: Chinese (simplified) \n" @@ -17,540 +17,545 @@ "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n!=1);\n" -#: ../data/klavaro.desktop.in.h:1 ../data/klavaro.glade.h:59 -msgid "Yet another touch typing tutor" -msgstr "就是另一个盲打训练的家庭教师" - #: ../data/klavaro.glade.h:1 -msgid "Klavaro - Main menu" -msgstr "Klavaro - 主菜单" +msgid "About 'Klavaro'" +msgstr "关于“Klavaro”" #: ../data/klavaro.glade.h:2 -msgid "Don't be shy about learning the basics!" -msgstr "不要羞于学习基础的东西!" +msgid "Yet another touch typing tutor" +msgstr "就是另一个盲打训练的家庭教师" #: ../data/klavaro.glade.h:3 -msgid "Learn how to type correctly" -msgstr "学习如何正确地打字" +msgid "Remember always: someone loves you!" +msgstr "永远记住: 有些人是爱你的!" #: ../data/klavaro.glade.h:4 -msgid "Initial training for your fingers." -msgstr "对手指的初步训练。" +msgid "Change language" +msgstr "改变语言" #: ../data/klavaro.glade.h:5 -msgid "First steps with initial training" -msgstr "开始训练的最初几步" +msgid "Attention!" +msgstr "注意!" #: ../data/klavaro.glade.h:6 -msgid "Memorizing the keyboard practicing random keys exercises." -msgstr "用随机的按键训练记忆键盘。" +msgid "Do you confirm?" +msgstr "你确定?" #: ../data/klavaro.glade.h:7 -msgid "Practice with random keys" -msgstr "用随机的按键训练" +msgid "_No" +msgstr "否(_N)" + +#: ../data/klavaro.glade.h:8 +msgid "_Yes" +msgstr "是(_Y)" -#. English typo: touchs -> touches #: ../data/klavaro.glade.h:9 -msgid "Accelerating the touches practicing random words exercises." -msgstr "用随机词来加速盲打。" +msgid "Help?" +msgstr "帮助?" #: ../data/klavaro.glade.h:10 -msgid "Practice with random words" -msgstr "用随机的词训练" +msgid "This is a tip. Now you press this button to return to the main menu." +msgstr " 这是一个提示。现在你按下这个按钮以回到主菜单。" #: ../data/klavaro.glade.h:11 -msgid "Becoming proficient practicing complete paragraphs exercises." -msgstr "用完整的段落训练以达到专家水平。" +msgid "B_ack to menu" +msgstr "回到菜单" #: ../data/klavaro.glade.h:12 -msgid "Practice with complete texts" -msgstr "用完整的文字练习" +msgid "" +"The main menu of the application is very straightforward. Just select the " +"type of exercise you wish to take. Do not worry about clicking any button on " +"the screen. The buttons will never hurt you!" +msgstr "" +" 这个程序的主菜单非常直观。直接选择你想做的练习。不要担心点击屏幕上的任何" +"一个按钮。这些按钮永远不会伤害你!" #: ../data/klavaro.glade.h:13 msgid "" -"Keyboard layout for modules 1 and 2. Also used informatively in the " -"fluidness contest." -msgstr "用于模块1和2的键盘布局。也用于提供流畅比赛中的相应信息。" +"Also the controls have tips which will appear if you hover over them with " +"your mouse. These tips can come in very handy. To see how these tips work, " +"position your mouse over the button below, and without clicking, wait for " +"the tip to appear..." +msgstr "" +" 同时这些控件会显示一些提示,只要你把鼠标停留在它们上面。这些提示会非常方" +"便。想看看这些提示怎么工作,把你的鼠标放在这些按钮上面,但不要点击,等一下这" +"些提示出现..." #: ../data/klavaro.glade.h:14 -msgid "_Keyboard:" -msgstr "键盘(_K):" +msgid "Klavaro - Select file" +msgstr "Klavaro - 选择文件" #: ../data/klavaro.glade.h:15 -msgid "Language for modules 3 and 4." -msgstr "用于模块3和4的语言。" +msgid "_Cancel" +msgstr "取消(_C)" #: ../data/klavaro.glade.h:16 -msgid "_Language:" -msgstr "语言(_L):" +msgid "_Open" +msgstr "打开(_O)" #: ../data/klavaro.glade.h:17 -msgid "Variant" -msgstr "布局变体" +msgid "Re_name:" +msgstr "重命名(_n):" #: ../data/klavaro.glade.h:18 -msgid "Klavaro" -msgstr "Klavaro" +msgid "Rename the selected item." +msgstr "重命名选定项。" #: ../data/klavaro.glade.h:19 -msgid "Country / Custom" -msgstr "国家/定制" +msgid "" +"Read a text file and add a copy of it here. The file must be encoded in " +"UTF-8." +msgstr "读取一个本文文件并添加它的一个拷贝到这里。文件必须以UTF-8编码。" #: ../data/klavaro.glade.h:20 -msgid "Your language here." -msgstr "你所用的语言。" +msgid "_Open text file" +msgstr "打开文本文件(_O)" #: ../data/klavaro.glade.h:21 -msgid "Speech" -msgstr "语音" +msgid "Paste text that was copied to the clipboard." +msgstr "从粘贴板拷贝已经复制的文本" #: ../data/klavaro.glade.h:22 -msgid "Little tip about this program." -msgstr "关于程序的小贴士。" +msgid "_Paste from clipboard" +msgstr "从粘贴板粘贴(_P)" #: ../data/klavaro.glade.h:23 -msgid "_Help" -msgstr "帮助(_H)" +msgid "Remove the selected item." +msgstr "移除选择的项目。" #: ../data/klavaro.glade.h:24 -msgid "General information about the program." -msgstr "关于程序的一般信息。" +msgid "_Remove copied file" +msgstr "移除复制的文件(_R)" #: ../data/klavaro.glade.h:25 -msgid "_About..." -msgstr "关于(_A)..." +msgid "Apply the selected item to create an exercise." +msgstr "应用选择的项目来生成一个练习。" #: ../data/klavaro.glade.h:26 -msgid "Exit the application immediately." -msgstr "马上结束程序。" +msgid "_Apply" +msgstr "应用(_A)" #: ../data/klavaro.glade.h:27 -msgid "_Close" -msgstr "关闭(_C)" +msgid "Close this window." +msgstr "关闭本窗口。" #: ../data/klavaro.glade.h:28 -msgid "Load other exercises/lessons" -msgstr "加载其他练习/课程" +msgid "_Close" +msgstr "关闭(_C)" #: ../data/klavaro.glade.h:29 -msgid "_Other texts" -msgstr "其它文字" +msgid "Country / Custom" +msgstr "国家/定制" #: ../data/klavaro.glade.h:30 -msgid "_Lesson:" -msgstr "课程(_L):" +msgid "Variant" +msgstr "布局变体" #: ../data/klavaro.glade.h:31 -msgid "Edit the character set to be used in this lesson." -msgstr "编辑本课中使用的字母集。" +msgid "Remove the selected custom layout." +msgstr "移除选择的定制布局。" #: ../data/klavaro.glade.h:32 -msgid "Edit the character set to be used in lessons 44 through 50." -msgstr "编辑从44课到50课使用的字母集。" +msgid "_Remove" +msgstr "移除(_R)" #: ../data/klavaro.glade.h:33 -msgid "This is a specific exercise, adjusted to your error profile." -msgstr "这是一个专门的练习,根据你的错误资料而调整。" +msgid "" +"Toggles the shift effect on the keys. Alternates between the upper and lower " +"characters of the keys." +msgstr "切换“Shift”效果,在按键的上、下两行的字母间切换。" -#: ../data/klavaro.glade.h:34 ../src/tutor.c:252 -msgid "Drag and drop text here to practice with it." -msgstr "把文字拖放到这里来练习。" +#: ../data/klavaro.glade.h:34 +msgid "SPACE BAR" +msgstr "空格键" -#: ../data/klavaro.glade.h:35 -msgid "Press here to restart the exercise. Hotkey: [Ctrl R]" -msgstr "点击这里而重新开始练习。热键: [Ctrl R]" +#: ../data/klavaro.glade.h:35 ../src/keyboard.c:1630 +msgid "thumbs" +msgstr "拇指" #: ../data/klavaro.glade.h:36 -msgid "Show the virtual keyboard and the relation between fingers and keys." -msgstr "显示虚拟键盘以及手指和按键的关系。" +msgid "Ctrl" +msgstr "Ctrl键" #: ../data/klavaro.glade.h:37 -msgid "_Keyboard" -msgstr "键盘(_K)" +msgid "Caps" +msgstr "大写锁定键(Caps)" #: ../data/klavaro.glade.h:38 -msgid "Select the font to be used in the exercise window." -msgstr "选择练习窗口中使用的字体。" +msgid "S_ave as:" +msgstr "另存为(_a):" #: ../data/klavaro.glade.h:39 -msgid "_Font" -msgstr "字体(_F)" +msgid "Show previous screen." +msgstr "显示上一屏。" #: ../data/klavaro.glade.h:40 -msgid "Keep this checked if you want to get those nice beeps." -msgstr "如果你想获得好的报错声就选择这个。" +msgid "_Previous step" +msgstr "上一步(_P)" #: ../data/klavaro.glade.h:41 -msgid "_Beep" -msgstr "报错(_B)" +msgid "Show next screen." +msgstr "显示下一屏。" #: ../data/klavaro.glade.h:42 -msgid "Co_urse information" -msgstr "课程信息(_u)" +msgid "_Next step" +msgstr "下一步(_N)" #: ../data/klavaro.glade.h:43 -msgid "Charts showing the learning progress along the exercises." -msgstr "展示学习进展的图表。" +msgid "Return without any modification." +msgstr "放弃所有修改而返回。" #: ../data/klavaro.glade.h:44 -msgid "_Progress" -msgstr "进展(_P)" +msgid "Save the current keyboard layout with the name specified above." +msgstr "以上面指定的名称保存当前的键盘布局。" #: ../data/klavaro.glade.h:45 -msgid "Show local and external scores from other users." -msgstr "显示本地和外部其他用户的分数。" +msgid "_Save and use" +msgstr "保存并使用(_S)" #: ../data/klavaro.glade.h:46 -msgid "_Top 10" -msgstr "冠军榜(_T)" +msgid "" +"If you like those beautiful hands, click here to close this window keeping " +"them." +msgstr "如果你喜欢这些漂亮的手,点击这里关闭当前窗口但继续显示它们。" #: ../data/klavaro.glade.h:47 -msgid "Return to the main menu." -msgstr "回到主菜单。" +msgid "_Keep hands" +msgstr "显示指法(_K)" #: ../data/klavaro.glade.h:48 -msgid "B_ack to menu" -msgstr "回到菜单" +msgid "Klavaro - Main menu" +msgstr "Klavaro - 主菜单" #: ../data/klavaro.glade.h:49 -msgid "Close this window." -msgstr "关闭本窗口。" +msgid "Don't be shy about learning the basics!" +msgstr "不要羞于学习基础的东西!" #: ../data/klavaro.glade.h:50 -msgid "Font definition" -msgstr "字体定义" +msgid "Learn how to type correctly" +msgstr "学习如何正确地打字" #: ../data/klavaro.glade.h:51 -msgid "Top 10" -msgstr "冠军榜" +msgid "Initial training for your fingers." +msgstr "对手指的初步训练。" #: ../data/klavaro.glade.h:52 -msgid "Show extra information" -msgstr "显示额外信息" +msgid "First steps with initial training" +msgstr "开始训练的最初几步" #: ../data/klavaro.glade.h:53 -msgid "Hide extra information" -msgstr "隐藏额外信息" +msgid "Memorizing the keyboard practicing random keys exercises." +msgstr "用随机的按键训练记忆键盘。" #: ../data/klavaro.glade.h:54 -msgid "Publish to the web your local scores." -msgstr "把你的本地分数发布到网络上。" +msgid "Practice with random keys" +msgstr "用随机的按键训练" #: ../data/klavaro.glade.h:55 -msgid "_Participate" -msgstr "参与(_P)" +msgid "Accelerating the touches practicing random words exercises." +msgstr "用随机词来加速盲打。" #: ../data/klavaro.glade.h:56 -msgid "Download from the web the most up to date ranking." -msgstr "从网络上下载最新的排名。" +msgid "Practice with random words" +msgstr "用随机的词训练" #: ../data/klavaro.glade.h:57 -msgid "_Update" -msgstr "更新(_U)" +msgid "Becoming proficient practicing complete paragraphs exercises." +msgstr "用完整的段落训练以达到专家水平。" #: ../data/klavaro.glade.h:58 -msgid "About 'Klavaro'" -msgstr "关于“Klavaro”" +msgid "Practice with complete texts" +msgstr "用完整的文字练习" + +#: ../data/klavaro.glade.h:59 +msgid "" +"Keyboard layout for modules 1 and 2. Also used informatively in the " +"fluidness contest." +msgstr "用于模块1和2的键盘布局。也用于提供流畅比赛中的相应信息。" #: ../data/klavaro.glade.h:60 -msgid "Remember always: someone loves you!" -msgstr "永远记住: 有些人是爱你的!" +msgid "_Keyboard:" +msgstr "键盘(_K):" #: ../data/klavaro.glade.h:61 -msgid "Remove the selected custom layout." -msgstr "移除选择的定制布局。" +msgid "Language for modules 3 and 4." +msgstr "用于模块3和4的语言。" #: ../data/klavaro.glade.h:62 -msgid "_Remove" -msgstr "移除(_R)" +msgid "_Language:" +msgstr "语言(_L):" #: ../data/klavaro.glade.h:63 -msgid "" -"Toggles the shift effect on the keys. Alternates between the upper and lower " -"characters of the keys." -msgstr "切换“Shift”效果,在按键的上、下两行的字母间切换。" +msgid "Speech" +msgstr "语音" #: ../data/klavaro.glade.h:64 -msgid "SPACE BAR" -msgstr "空格键" +msgid "Your language here." +msgstr "你所用的语言。" -#: ../data/klavaro.glade.h:65 ../src/keyboard.c:1630 -msgid "thumbs" -msgstr "拇指" +#: ../data/klavaro.glade.h:65 +msgid "Little tip about this program." +msgstr "关于程序的小贴士。" #: ../data/klavaro.glade.h:66 -msgid "Ctrl" -msgstr "Ctrl键" +msgid "_Help" +msgstr "帮助(_H)" #: ../data/klavaro.glade.h:67 -msgid "Caps" -msgstr "大写锁定键(Caps)" +msgid "General information about the program." +msgstr "关于程序的一般信息。" #: ../data/klavaro.glade.h:68 -msgid "S_ave as:" -msgstr "另存为(_a):" +msgid "_About..." +msgstr "关于(_A)..." #: ../data/klavaro.glade.h:69 -msgid "Show previous screen." -msgstr "显示上一屏。" +msgid "Exit the application immediately." +msgstr "马上结束程序。" #: ../data/klavaro.glade.h:70 -msgid "_Previous step" -msgstr "上一步(_P)" +msgid "Klavaro - Progress" +msgstr "Klavaro - 进展" #: ../data/klavaro.glade.h:71 -msgid "Show next screen." -msgstr "显示下一屏。" +msgid "_Lesson:" +msgstr "课程(_L):" #: ../data/klavaro.glade.h:72 -msgid "_Next step" -msgstr "下一步(_N)" +msgid "Value" +msgstr "值" #: ../data/klavaro.glade.h:73 -msgid "Return without any modification." -msgstr "放弃所有修改而返回。" +msgid "Close this window, returning to the exercise." +msgstr "关闭这个窗口,回到练习中。" #: ../data/klavaro.glade.h:74 -msgid "_Cancel" -msgstr "取消(_C)" +msgid "Clear all the progress data, for every module." +msgstr "清除所有练习数据,所有模块的。" #: ../data/klavaro.glade.h:75 -msgid "Save the current keyboard layout with the name specified above." -msgstr "以上面指定的名称保存当前的键盘布局。" +msgid "_Reset" +msgstr "重置(_R)" #: ../data/klavaro.glade.h:76 -msgid "_Save and use" -msgstr "保存并使用(_S)" +msgid "Top 10" +msgstr "冠军榜" #: ../data/klavaro.glade.h:77 -msgid "" -"If you like those beautiful hands, click here to close this window keeping " -"them." -msgstr "如果你喜欢这些漂亮的手,点击这里关闭当前窗口但继续显示它们。" +#, fuzzy +msgid "Show extra information." +msgstr "显示额外信息" #: ../data/klavaro.glade.h:78 -msgid "_Keep hands" -msgstr "显示指法(_K)" +#, fuzzy +msgid "Hide extra information." +msgstr "隐藏额外信息" #: ../data/klavaro.glade.h:79 -msgid "Change language" -msgstr "改变语言" +msgid "Publish to the web your local scores." +msgstr "把你的本地分数发布到网络上。" #: ../data/klavaro.glade.h:80 -msgid "Attention!" -msgstr "注意!" +msgid "_Participate" +msgstr "参与(_P)" #: ../data/klavaro.glade.h:81 -msgid "Do you confirm?" -msgstr "你确定?" +msgid "Download from the web the most up to date ranking." +msgstr "从网络上下载最新的排名。" #: ../data/klavaro.glade.h:82 -msgid "_No" -msgstr "否(_N)" +msgid "_Update" +msgstr "更新(_U)" #: ../data/klavaro.glade.h:83 -msgid "_Yes" -msgstr "是(_Y)" +msgid "Load other exercises/lessons" +msgstr "加载其他练习/课程" #: ../data/klavaro.glade.h:84 -msgid "Re_name:" -msgstr "重命名(_n):" +msgid "_Other texts" +msgstr "其它文字" #: ../data/klavaro.glade.h:85 -msgid "Rename the selected item." -msgstr "重命名选定项。" +msgid "Edit the character set to be used in this lesson." +msgstr "编辑本课中使用的字母集。" #: ../data/klavaro.glade.h:86 -msgid "" -"Read a text file and add a copy of it here. The file must be encoded in " -"UTF-8." -msgstr "读取一个本文文件并添加它的一个拷贝到这里。文件必须以UTF-8编码。" +msgid "This is a specific exercise, adjusted to your error profile." +msgstr "这是一个专门的练习,根据你的错误资料而调整。" #: ../data/klavaro.glade.h:87 -msgid "_Open text file" -msgstr "打开文本文件(_O)" +#, fuzzy +msgid "" +"Edit the character set to be used in lessons after 43: they are customizable!" +msgstr "编辑从44课到50课使用的字母集。" -#: ../data/klavaro.glade.h:88 -msgid "Paste text that was copied to the clipboard." -msgstr "从粘贴板拷贝已经复制的文本" +#: ../data/klavaro.glade.h:88 ../src/tutor.c:376 +msgid "Drag and drop text here to practice with it." +msgstr "把文字拖放到这里来练习。" #: ../data/klavaro.glade.h:89 -msgid "_Paste from clipboard" -msgstr "从粘贴板粘贴(_P)" +#, fuzzy +msgid "Press here to restart the exercise. Hotkey: [Ctrl-R]" +msgstr "点击这里而重新开始练习。热键: [Ctrl R]" #: ../data/klavaro.glade.h:90 -msgid "Remove the selected item." -msgstr "移除选择的项目。" +msgid "Show the virtual keyboard and the relation between fingers and keys." +msgstr "显示虚拟键盘以及手指和按键的关系。" #: ../data/klavaro.glade.h:91 -msgid "_Remove copied file" -msgstr "移除复制的文件(_R)" +msgid "_Keyboard" +msgstr "键盘(_K)" #: ../data/klavaro.glade.h:92 -msgid "Apply the selected item to create an exercise." -msgstr "应用选择的项目来生成一个练习。" +msgid "Select the font to be used in the exercise window." +msgstr "选择练习窗口中使用的字体。" #: ../data/klavaro.glade.h:93 -msgid "_Apply" -msgstr "应用(_A)" +msgid "Font definition" +msgstr "字体定义" #: ../data/klavaro.glade.h:94 -msgid "Klavaro - Progress" -msgstr "Klavaro - 进展" +msgid "Keep this checked if you want to get those nice beeps." +msgstr "如果你想获得好的报错声就选择这个。" #: ../data/klavaro.glade.h:95 -msgid "Value" -msgstr "值" +msgid "_Beep" +msgstr "报错(_B)" #: ../data/klavaro.glade.h:96 -msgid "Clear all the progress data, for every module." -msgstr "清除所有练习数据,所有模块的。" +msgid "Co_urse information" +msgstr "课程信息(_u)" #: ../data/klavaro.glade.h:97 -msgid "_Reset" -msgstr "重置(_R)" +msgid "Charts showing the learning progress along the exercises." +msgstr "展示学习进展的图表。" #: ../data/klavaro.glade.h:98 -msgid "Close this window, returning to the exercise." -msgstr "关闭这个窗口,回到练习中。" +msgid "_Progress" +msgstr "进展(_P)" #: ../data/klavaro.glade.h:99 -msgid "Klavaro - Select file" -msgstr "Klavaro - 选择文件" +msgid "Return to the main menu." +msgstr "回到主菜单。" #: ../data/klavaro.glade.h:100 -msgid "_Open" -msgstr "打开(_O)" +msgid "Show local and external scores from other users." +msgstr "显示本地和外部其他用户的分数。" #: ../data/klavaro.glade.h:101 -msgid "Help?" -msgstr "帮助?" - -#: ../data/klavaro.glade.h:102 -msgid "" -"The main menu of the application is very straightforward. Just select the " -"type of exercise you wish to take. Do not worry about clicking any button on " -"the screen. The buttons will never hurt you!" -msgstr "" -" 这个程序的主菜单非常直观。直接选择你想做的练习。不要担心点击屏幕上的任何" -"一个按钮。这些按钮永远不会伤害你!" +msgid "_Top 10" +msgstr "冠军榜(_T)" -#: ../data/klavaro.glade.h:103 -msgid "" -"Also the controls have tips which will appear if you hover over them with " -"your mouse. These tips can come in very handy. To see how these tips work, " -"position your mouse over the button below, and without clicking, wait for " -"the tip to appear..." -msgstr "" -" 同时这些控件会显示一些提示,只要你把鼠标停留在它们上面。这些提示会非常方" -"便。想看看这些提示怎么工作,把你的鼠标放在这些按钮上面,但不要点击,等一下这" -"些提示出现..." +#: ../data/klavaro.desktop.in.h:1 +#, fuzzy +msgid "A very flexible and efficient touch typing tutor." +msgstr "就是另一个盲打训练的家庭教师" -#: ../data/klavaro.glade.h:104 -msgid "This is a tip. Now you press this button to return to the main menu." -msgstr " 这是一个提示。现在你按下这个按钮以回到主菜单。" +#. Translators: these are keywords related to the program. CAI above means Computer Aided Instruction. Feel free to add and/or change the keywords in your language. +#: ../data/klavaro.desktop.in.h:3 +#, fuzzy +msgid "keyboard;typing;tutor;CAI" +msgstr "键盘" -#: ../src/main.c:314 +#: ../src/main.c:242 msgid "(Custom)" msgstr "(定制)" -#: ../src/main.c:315 +#: ../src/main.c:243 msgid "(Edit custom)" msgstr "(编辑定制)" -#: ../src/main.c:316 +#: ../src/main.c:244 msgid "(Default)" msgstr "(默认)" -#: ../src/main.c:393 +#: ../src/main.c:321 #, c-format msgid "Dictation mode (depends on this speech synthesizer: %s)" msgid_plural "Dictation mode (depends on one of these speech synthesizers: %s)" msgstr[0] "语音模式(取决于这个语音合成器: %s)" msgstr[1] "语音模式(取决于这些语音合成器: %s)" -#. Set main labels (for translation) -#. -#: ../src/main.c:435 ../src/keyboard.c:1291 +#: ../src/main.c:364 ../src/keyboard.c:1291 msgid "Introduction" msgstr "介绍" -#: ../src/main.c:438 ../src/top10.c:109 +#: ../src/main.c:367 ../src/top10.c:109 msgid "Basic course" msgstr "基础课程" -#: ../src/main.c:441 ../src/top10.c:112 +#: ../src/main.c:370 ../src/top10.c:112 msgid "Adaptability" msgstr "适应性" -#: ../src/main.c:444 ../src/callbacks.c:1310 ../src/top10.c:89 +#: ../src/main.c:373 ../src/callbacks.c:1226 ../src/top10.c:89 #: ../src/top10.c:115 msgid "Speed" msgstr "速度" -#: ../src/main.c:447 ../src/callbacks.c:1333 ../src/top10.c:91 +#: ../src/main.c:376 ../src/callbacks.c:1249 ../src/top10.c:91 #: ../src/top10.c:118 msgid "Fluidity" msgstr "流畅性" -#: ../src/callbacks.c:468 ../src/tutor.c:391 +#: ../src/callbacks.c:407 ../src/tutor.c:515 msgid "Keys:" msgstr "按键:" -#: ../src/callbacks.c:858 ../src/callbacks.c:874 +#: ../src/callbacks.c:774 ../src/callbacks.c:790 msgid "Connecting..." msgstr "连接..." -#: ../src/callbacks.c:1145 +#: ../src/callbacks.c:1061 msgid "Overwrite user layout" msgstr "覆盖用户布局" -#: ../src/callbacks.c:1147 +#: ../src/callbacks.c:1063 msgid "This will OVERWRITE an existent keyboard layout." msgstr "这将 覆盖 一个已有的键盘布局。" -#: ../src/callbacks.c:1154 +#: ../src/callbacks.c:1070 msgid "Remove user layout" msgstr "移除用户布局" -#: ../src/callbacks.c:1156 +#: ../src/callbacks.c:1072 msgid "This will REMOVE an existent keyboard layout." msgstr "这将移除一个已有的键盘布局。" -#: ../src/callbacks.c:1163 +#: ../src/callbacks.c:1079 msgid "Reset progress data" msgstr "重置进展数据" -#: ../src/callbacks.c:1164 +#: ../src/callbacks.c:1080 msgid "This will DELETE all the progress data shown in the charts." msgstr "这将会 删除 所有显示在图表的进展数据。" -#: ../src/callbacks.c:1307 ../src/top10.c:87 +#: ../src/callbacks.c:1223 ../src/top10.c:87 msgid "Accuracy" msgstr "精度" -#: ../src/callbacks.c:1310 ../src/tutor.c:1160 +#: ../src/callbacks.c:1226 ../src/tutor.c:1288 msgid "(WPM)" msgstr "(词每分钟)" -#: ../src/callbacks.c:1321 +#: ../src/callbacks.c:1237 msgid "Errors" msgstr "错误" -#: ../src/callbacks.c:1324 +#: ../src/callbacks.c:1240 msgid "Touch times (s)" msgstr "" -#: ../src/callbacks.c:1336 ../src/tutor.c:1187 ../src/top10.c:69 +#: ../src/callbacks.c:1252 ../src/tutor.c:1315 ../src/top10.c:69 msgid "Score" msgstr "得分" #. Translators: your language code (first 2 letters of your po-file) -#: ../src/translation.c:423 ../src/translation.c:489 ../src/tutor.c:1597 +#: ../src/translation.c:485 ../src/tutor.c:1725 msgid "en" msgstr "en" -#: ../src/translation.c:576 +#: ../src/translation.c:572 msgid "" "The basic course focuses on having you read the characters presented to you " "on screen and typing the corresponding keys. Remember to keep your hands " @@ -560,7 +565,7 @@ " 基础课程专注于使你根据显示在屏幕上的字母按下相应的按键。记住要保持你的手" "总是正确地放在键盘的本行上(见主菜单中的介绍)。" -#: ../src/translation.c:580 +#: ../src/translation.c:576 msgid "" "The key set used in each series will be shown in the above message line. The " "[Space], [Shift] and [Enter] keys may not show up there but are used very " @@ -569,7 +574,7 @@ " 每个系列使用的按键会在上方的消息行中显示。[空格]、[Shift]和[回车]键可能不" "会显示,但它们很常用。" -#: ../src/translation.c:583 +#: ../src/translation.c:579 msgid "" "The message line below follows and echoes your key presses. If required, it " "changes and displays instructions for actions required from you." @@ -577,7 +582,7 @@ " 下方的消息行跟随并显示你按下的键。需要的时候,它会改变为显示你需要采取的" "下一步行动。" -#: ../src/translation.c:587 +#: ../src/translation.c:583 msgid "" "Here you may practice and improve your memorization of all keys. There will " "be sentences presented with nonsense words which mix some numbers and " @@ -586,7 +591,7 @@ " 这里你将练习并改进你对所有键位的记忆,通过一些由没有意义的词组成的,并混" "杂着数字和符号的句子。" -#: ../src/translation.c:590 +#: ../src/translation.c:586 msgid "" "In order to keep the lesson contents language and keyboard independent, " "accented letter combinations will probably not appear. For real word " @@ -595,13 +600,13 @@ " 为了保持课程内容独立于语言和键盘,带有音调的字母组合可能不会出现。练习由" "真实词语组成的句子,请使用主菜单中的第四个练习(关于流畅性的)。" -#: ../src/translation.c:594 +#: ../src/translation.c:590 msgid "" "After each exercise there will be a brief statistics panel reviewing your " "performance along with some relevant comments." msgstr " 在每个练习后会有一个简要的统计检查你的表现并提供相应的建议。" -#: ../src/translation.c:598 +#: ../src/translation.c:594 msgid "" "This exercise is very similar to the second one, for adaptability. The " "difference is that here you'll type real words." @@ -609,7 +614,7 @@ " 这个练习和第二个练习(关于适应性的)非常相似。不同的是,这里你会输入真正的" "单词。" -#: ../src/translation.c:601 +#: ../src/translation.c:597 msgid "" "The default language is the actual one of the interface. But you may select " "any other texts with words you would like to use. Press the 'Other' option " @@ -618,7 +623,7 @@ " 默认语言是界面的语言。但你可以选择你喜欢的含有其他字词的文本。按下上方" "的'其它'按钮并添加包含这些文本的文件。" -#: ../src/translation.c:605 +#: ../src/translation.c:601 msgid "" "With this exercise the focus is on speed. So, you are supposed to type " "really fast and I will only flatter you when you deserve it!" @@ -626,7 +631,7 @@ " 这个练习专注于速度。所以,你将被假定为打得非常快,而我也只会在你足够好时" "才会夸你!" -#: ../src/translation.c:609 +#: ../src/translation.c:605 msgid "" "We will now use complete sentences and paragraphs which make logical sense. " "This may distract you while you type if you try to understand what you are " @@ -637,7 +642,7 @@ "可能会分散你的注意力。之前的练习目标是使你在不需要理解和分析内容的情况下学会" "打字。" -#: ../src/translation.c:613 +#: ../src/translation.c:609 msgid "" "We do not mean to imply that the typists must behave like a robot, without " "understanding what they type. We do aim to develop the skill of typing, " @@ -651,8 +656,7 @@ "就会自然而然且不需要什么注意力。这时,你就可以轻松把注意力放到文字的意思上" "了。" -#. English typo: minimun -> minimum -#: ../src/translation.c:618 +#: ../src/translation.c:613 msgid "" "These exercises are longer. Each exercise consists of three paragraphs and " "the emphasis is placed on correctness and rhythm, with a minimum speed " @@ -663,7 +667,6 @@ "放在了正确率和节奏上。这里,要求你使用退格键(Backspace)去修正错误。也就是说," "只有完全正确的输入才会被接受。" -#. English typo: recomendations -> recommendations #: ../src/keyboard.c:1094 msgid "" "Correct positioning of the hands and fingers is very important to efficient " @@ -750,13 +753,11 @@ msgid "Step %i" msgstr "步骤 %i" -#. Recommendations -#: ../src/keyboard.c:1140 +#: ../src/keyboard.c:1142 msgid "To position the hands" msgstr "手的放法" -#. Final words -#: ../src/keyboard.c:1225 +#: ../src/keyboard.c:1227 msgid "Go ahead!" msgstr "开始吧!" @@ -796,76 +797,76 @@ msgid "Press and edit me" msgstr "按下并编辑我" -#: ../src/tutor.c:176 +#: ../src/tutor.c:300 msgid "Lesson:" msgstr "课程:" -#: ../src/tutor.c:186 +#: ../src/tutor.c:310 msgid "Paragraphs:" msgstr "段落:" -#: ../src/tutor.c:219 +#: ../src/tutor.c:343 msgid "Klavaro - Basic Course" msgstr "Klavaro - 基础课程" -#: ../src/tutor.c:224 +#: ../src/tutor.c:348 msgid "Klavaro - Adaptability" msgstr "Klavaro - 适应性" -#: ../src/tutor.c:227 +#: ../src/tutor.c:351 msgid "" "Adaptability exercises: automating the fingers responses, typing over all " "the keyboard." msgstr "适应性练习:使手指的反应自动化,在整个键盘上打字。" -#: ../src/tutor.c:232 +#: ../src/tutor.c:356 msgid "Klavaro - Velocity" msgstr "Klavaro - 速度" -#: ../src/tutor.c:233 +#: ../src/tutor.c:357 msgid "Velocity exercises: accelerate typing real words." msgstr "速度练习:提高真实词语的打字速度。" -#: ../src/tutor.c:237 +#: ../src/tutor.c:361 msgid "Klavaro - Fluidness" msgstr "Klavaro - 流畅性" -#: ../src/tutor.c:239 +#: ../src/tutor.c:363 msgid "Fluidness exercises: accuracy typing good sense paragraphs." msgstr "流畅性练习:精确地打有意义的段落。" -#: ../src/tutor.c:301 +#: ../src/tutor.c:425 msgid "End of exercise. Press [Enter] to start another." msgstr "练习结束,请按[回车]开始另一个。" -#: ../src/tutor.c:329 +#: ../src/tutor.c:453 msgid "Learning the key positions." msgstr "学习键位。" -#: ../src/tutor.c:332 +#: ../src/tutor.c:456 msgid "Press any key to start the exercise. " msgstr "按任意键开始练习。" -#: ../src/tutor.c:440 ../src/tutor.c:443 +#: ../src/tutor.c:567 ../src/tutor.c:570 msgid "Start typing when you are ready. " msgstr "当你准备好时就开始打字。" -#: ../src/tutor.c:441 +#: ../src/tutor.c:568 msgid "Use backspace to correct errors." msgstr "" -#: ../src/tutor.c:885 +#: ../src/tutor.c:1012 #, c-format msgid "" "ps.: logging not performed for this session: the number of typed characters " "(%i) must be greater than %i." msgstr " 注意:当前的练习并没有被记录下来:打的字符数(%i)必须大于%i。" -#: ../src/tutor.c:1027 +#: ../src/tutor.c:1154 msgid "ps.: you have entered the Top 10 list, great!" msgstr " 注意:你进入了冠军榜了,太棒了!" -#: ../src/tutor.c:1039 +#: ../src/tutor.c:1166 msgid "" "ps.: the text you just typed doesn't seem to be similar to ordinary texts in " "the language currently selected: we can't account for it in the 'Top 10' " @@ -873,91 +874,88 @@ msgstr "" " 注意:你刚刚打的好像和你当前选择的语言不同:我们不能将它记入冠军榜中。" -#. Begin the accuracy -#: ../src/tutor.c:1087 +#: ../src/tutor.c:1215 msgid "STATISTICS" msgstr "统计" -#: ../src/tutor.c:1088 +#: ../src/tutor.c:1216 msgid "Elapsed time:" msgstr "使用时间:" -#: ../src/tutor.c:1089 +#: ../src/tutor.c:1217 msgid "minute and" msgid_plural "minutes and" msgstr[0] "分钟和" msgstr[1] "分钟和" -#: ../src/tutor.c:1090 +#: ../src/tutor.c:1218 msgid "second" msgid_plural "seconds" msgstr[0] "秒" msgstr[1] "秒" -#: ../src/tutor.c:1091 +#: ../src/tutor.c:1219 msgid "Error ratio:" msgstr "错误率:" -#: ../src/tutor.c:1091 +#: ../src/tutor.c:1219 msgid "Accuracy:" msgstr "准确率:" -#: ../src/tutor.c:1112 ../src/tutor.c:1137 ../src/tutor.c:1160 -#: ../src/tutor.c:1186 +#: ../src/tutor.c:1240 ../src/tutor.c:1265 ../src/tutor.c:1288 +#: ../src/tutor.c:1314 msgid "Goal:" msgstr "目标:" -#: ../src/tutor.c:1119 +#: ../src/tutor.c:1247 msgid "Characters per second:" msgstr "字符数每秒:" -#: ../src/tutor.c:1137 +#: ../src/tutor.c:1265 msgid "(CPS)" msgstr "(字每秒)" -#: ../src/tutor.c:1142 +#: ../src/tutor.c:1270 msgid "Words per minute:" msgstr "词每分钟:" -#: ../src/tutor.c:1167 +#: ../src/tutor.c:1295 msgid "Fluidness:" msgstr "流畅性:" -#: ../src/tutor.c:1194 +#: ../src/tutor.c:1322 msgid "Comments:" msgstr "评价:" -#: ../src/tutor.c:1676 +#: ../src/tutor.c:1804 msgid "space" msgstr "空格" #. Translators: the name of letter Y -#: ../src/tutor.c:1681 +#: ../src/tutor.c:1809 msgid "wye" msgstr "Y" #. Translators: the name of the Return key -#: ../src/tutor.c:1685 +#: ../src/tutor.c:1813 msgid "enter" msgstr "回车" -#: ../src/tutor.c:1691 +#: ../src/tutor.c:1819 msgid "apostrophe" msgstr "单引号" #. Translators: double quote symbol: " -#: ../src/tutor.c:1695 +#: ../src/tutor.c:1823 msgid "quote" msgstr "双引号" #. Translators: ampersand symbol: & -#: ../src/tutor.c:1699 +#: ../src/tutor.c:1827 msgid "ampersand" msgstr "&" -#. Error frequencies or touch times -#. -#: ../src/plot.c:308 +#: ../src/plot.c:305 msgid "Character" msgstr "" @@ -965,11 +963,11 @@ msgid "Date & Time" msgstr "日期和时间" -#: ../src/basic.c:331 +#: ../src/basic.c:326 msgid "Positions of keys seems to be learned!" msgstr "看起来你已经学会了键位!" -#: ../src/basic.c:332 +#: ../src/basic.c:327 msgid "" " Congratulations!\n" " You have accomplished the entire basic course.\n" @@ -981,7 +979,7 @@ " 进到下一个类型的练习:适应性。\n" " 那里,你将会主要练习精确性。\n" -#: ../src/basic.c:338 +#: ../src/basic.c:333 msgid "" " All right, now you got it!\n" " Go to the next lesson.\n" @@ -989,33 +987,35 @@ " 好的,你学会了!\n" " 进到下一课。\n" -#: ../src/adaptability.c:217 +#: ../src/adaptability.c:213 +#, fuzzy, c-format msgid "" -" Your accuracy rate is below 90%...\n" +" Your accuracy rate is below %.0f%%...\n" " Could you please try again to improve it?\n" msgstr "" " 你的准确率低于90%...\n" " 你能再试一次来提高它吗?\n" -#: ../src/adaptability.c:222 +#: ../src/adaptability.c:216 +#, fuzzy, c-format msgid "" " You are doing well. But...\n" -" Could you make the accuracy reach 95%?\n" +" Could you make the accuracy reach %.0f%%?\n" msgstr "" " 你做得很好,但是...\n" " 你能使准确率达到95%吗?\n" -#: ../src/adaptability.c:225 -#, c-format +#: ../src/adaptability.c:219 +#, fuzzy, c-format msgid "" " You are almost there, but your accuracy rate is still below %.0f%%.\n" -" Try a few more times, or maybe you're getting upset, so go to other kind of " -"exercise.\n" +" Try a few more times, or maybe you're getting upset, so go to another kind " +"of exercise.\n" msgstr "" " 你就要成功了,但你的准确率还是低于 %.0f%%.\n" " 再多试几次,或许你生气了,那就到其它类型的练习吧。\n" -#: ../src/adaptability.c:232 +#: ../src/adaptability.c:226 #, c-format msgid "" " Very good!\n" @@ -1028,11 +1028,11 @@ " 现在是时候提高你的速度了。\n" " 进到主菜单中的第三个练习。\n" -#: ../src/velocity.c:313 ../src/fluidness.c:435 +#: ../src/velocity.c:312 ../src/fluidness.c:435 msgid "Pasted_or_dropped" msgstr "粘贴或拖放的" -#: ../src/velocity.c:432 +#: ../src/velocity.c:423 msgid "" " You are just beginning.\n" " Be patient, try it again every day, rest and don't worry so much:\n" @@ -1042,31 +1042,34 @@ " 请耐心,每天试一试,休息且不要太在意:\n" " 坚持和练习将会提高你的速度。\n" -#: ../src/velocity.c:436 +#: ../src/velocity.c:427 +#, fuzzy, c-format msgid "" " Still away from the highway. You can make better...\n" -" Try at least 20 WPM.\n" +" Try to reach at least %.0f WPM.\n" msgstr "" " 依然远离高速公路。你可以做得更好...\n" " 试着达到至少20个词每分钟。\n" -#: ../src/velocity.c:439 +#: ../src/velocity.c:430 +#, fuzzy, c-format msgid "" " You are doing well, but need to go faster.\n" -" And don't forget the accuracy. Try to get 30 WPM.\n" +" And don't forget the accuracy. Try to get %.0f WPM.\n" msgstr "" " 你做得很好,但需要更快一些。\n" " 同时不要忘了准确率。试着达到30个词每分钟。\n" -#: ../src/velocity.c:443 +#: ../src/velocity.c:433 +#, fuzzy, c-format msgid "" " Fine. Now you need to start running.\n" -" Can you reach 40 WPM?\n" +" Can you reach %.0f WPM?\n" msgstr "" " 很好。现在你需要开始跑起来了。\n" " 你能达到40个词每分钟吗?\n" -#: ../src/velocity.c:446 +#: ../src/velocity.c:436 #, c-format msgid "" " Very good. You are almost there.\n" @@ -1075,7 +1078,7 @@ " 非常好。你几乎成功了。\n" " 你能最后达到%.0f个词每分钟吗?\n" -#: ../src/velocity.c:451 +#: ../src/velocity.c:439 msgid "" " Excellent. For this course, that is enough.\n" " Try now the fluidness exercises, OK?\n" @@ -1083,31 +1086,34 @@ " 太棒了。对于这个课程,这足够了。\n" " 现在试一下流畅性练习好吗?\n" -#: ../src/velocity.c:455 +#: ../src/velocity.c:442 +#, fuzzy, c-format msgid "" -" Fast! Are you training for a competition?\n" -" So, try to get 70 WPM!\n" +" Fast! Are you a professional?\n" +" So, try to get %.0f WPM!\n" msgstr "" " 真快!你是在准备打字比赛吗?\n" " 那就试快达到70个词每分钟!\n" -#: ../src/velocity.c:458 -msgid "" -" Top of \"qwerty\". Now it's time to change to the Dvorak mode.\n" -" Are you afraid of reaching 80 WPM?\n" +#. Translators: Speed Racer is a reference to a Japanese anime franchise +#. about automobile racing, also known as Mach GoGoGo. +#: ../src/velocity.c:447 +#, c-format +msgid " Ranking good, Speed Racer! Are you afraid of reaching %.0f WPM?\n" msgstr "" -" “qwerty”的极限了。现在是时候换到 Dvorak 模式了。\n" -" 你害怕达到80个词每分钟吗?\n" -#: ../src/velocity.c:462 +#. Translators: feel free to change the reference to that martial art, if you find another good analogy. +#: ../src/velocity.c:451 +#, fuzzy, c-format msgid "" -" Dvorak mode dominated!\n" -" Can you fly at 90 WPM?\n" +" Kunf-fu mastering!\n" +" Can you fly at %.0f WPM?\n" msgstr "" " Dvorak 模式主宰!\n" " 你能飞到90个词每分钟吗?\n" -#: ../src/velocity.c:466 +#. Translators: Dvorak here means that infamous ergonomic keyboard layout. +#: ../src/velocity.c:454 msgid "" " Dvorak master!\n" " I have no words to express my admiration!\n" @@ -1115,7 +1121,7 @@ " Dvorak 专家!\n" " 我已经找不到词来表达我的敬仰之情了!\n" -#: ../src/fluidness.c:545 +#: ../src/fluidness.c:538 #, c-format msgid "" " You type accurately but not so fast.\n" @@ -1124,7 +1130,7 @@ " 你打得很精确,但不是那么快。\n" " 你能达到%.0f个词每分钟吗?\n" -#: ../src/fluidness.c:548 +#: ../src/fluidness.c:541 #, c-format msgid "" " Your rhythm is not so constant. Calm down.\n" @@ -1133,7 +1139,7 @@ " 你的节奏不是那么固定。冷静。\n" " 从现在开始,试着使流畅性超过%i%%。\n" -#: ../src/fluidness.c:551 +#: ../src/fluidness.c:544 #, c-format msgid "" " You are almost getting there. Type more fluently.\n" @@ -1142,7 +1148,7 @@ " 你几乎成功了。打得更流畅一些。\n" " 我想要流畅性大于%.0f%%。\n" -#: ../src/fluidness.c:554 +#: ../src/fluidness.c:547 msgid "" " Congratulations!\n" " It seems to me that you are a professional.\n" @@ -1154,7 +1160,7 @@ " 你不再需要这个程序了。\n" " 希望你享受了它。谢谢,祝你快乐!\n" -#: ../src/fluidness.c:559 +#: ../src/fluidness.c:552 msgid "" " How can you type so fast?\n" " You have exceeded all my expectations.\n" @@ -1214,5 +1220,21 @@ msgid "Could not upload/download scores." msgstr "无法上传/下载分数。" +#~ msgid "" +#~ " Top of \"qwerty\". Now it's time to change to the Dvorak mode.\n" +#~ " Are you afraid of reaching 80 WPM?\n" +#~ msgstr "" +#~ " “qwerty”的极限了。现在是时候换到 Dvorak 模式了。\n" +#~ " 你害怕达到80个词每分钟吗?\n" + +#~ msgid "Press here to restart the exercise. Hotkey: [Ctrl R]" +#~ msgstr "点击这里而重新开始练习。热键: [Ctrl R]" + +#~ msgid "_Font" +#~ msgstr "字体(_F)" + +#~ msgid "Klavaro" +#~ msgstr "Klavaro" + #~ msgid "Default" #~ msgstr "默认" diff -Nru klavaro-1.9.9/README klavaro-3.00/README --- klavaro-1.9.9/README 2013-08-15 13:11:41.000000000 +0000 +++ klavaro-3.00/README 2014-01-08 16:56:30.000000000 +0000 @@ -4,12 +4,12 @@ If you have to compile, please read the INSTALL file. And also, specific libs you have to install (on Debian): -- libgtk2.0-dev - libgtkdatabox-0.9.1-1-dev +- libgtk3.0-dev See also the web site: http://klavaro.sourceforge.net + - COLORS Some colors may be configured through the file preferences.ini @@ -27,6 +27,9 @@ char_retouched_fg=#bbbbaa cursor_blink_bg=#ff88ff +The preferences.ini file holds all the default key/value pairs, since the first time when + the application is run. But they are never overwritten after that, so direct edition should + be done by the user to change the colors. Here is the complete list of keywords to set colors: @@ -68,3 +71,19 @@ key_7 key_8 key_9 + + +- GOALS + +And also, the goals for touch typing skill may be configured in preferences.ini file. They give the + limits for each tutor module, so the user is told when he/she should go to the next level. They also + appear as horizontal lines in the progress charts. +The default key/value pairs used in the application show up after the first time one runs and close + it gracefully, take a look at your preferences.ini file. + +- LEVELS + +These are similar to the goals above, but they are used only to distinguish the comments done by the + tutor after each practicing session, along all the modules. With them, the program knows how the user + is doing with his training, and then suggests more directions to take. As with GOALS, see your + preferences.ini file, after launching and using the application for at least one time. diff -Nru klavaro-1.9.9/src/adaptability.c klavaro-3.00/src/adaptability.c --- klavaro-1.9.9/src/adaptability.c 2013-07-24 18:38:45.000000000 +0000 +++ klavaro-3.00/src/adaptability.c 2014-01-08 12:57:37.000000000 +0000 @@ -131,8 +131,12 @@ { /* Symbol */ word[i] = symbols[rand () % slen]; - if (rand () % 12) - { /* end of word: space after symbol */ + if (word[i] == L'\\' && i > 0) + word[i] = L'-'; + if (word[i] == L'´' && i > 0) + word[i] = L'`'; + if (rand () % 5 || word[i] == L'-' || word[i] == L'\\') + { /* space after symbol ==> end of word (most often) */ word[i + 1] = L'\0'; return; } @@ -203,37 +207,27 @@ /* * Comments */ - if (accuracy < 50) - { - /* - tmp_str = g_strdup (_ - (" Your error rate is too high.\n" - " Maybe you are not ready to practice this exercise.\n" - " Did you accomplish most of the basic course lessons?\n")); - */ + if (accuracy < tutor_goal_level(0)) tmp_str = g_strdup (":-(\n"); - } - else if (accuracy < 90) - tmp_str = g_strdup (_(" Your accuracy rate is below 90%...\n" - " Could you please try again to improve it?\n")); - else if (accuracy < 95) - tmp_str = - g_strdup (_ - (" You are doing well. But...\n" - " Could you make the accuracy reach 95%?\n")); + else if (accuracy < tutor_goal_level(1)) + tmp_str = g_strdup_printf (_(" Your accuracy rate is below %.0f%%...\n" + " Could you please try again to improve it?\n"), tutor_goal_level(1)); + else if (accuracy < tutor_goal_level(2)) + tmp_str = g_strdup_printf (_(" You are doing well. But...\n" + " Could you make the accuracy reach %.0f%%?\n"), tutor_goal_level(2)); else if (accuracy < tutor_goal_accuracy ()) tmp_str = g_strdup_printf (_(" You are almost there," " but your accuracy rate is still below %.0f%%.\n" " Try a few more times," - " or maybe you're getting upset, so go to other kind of exercise.\n"), - tutor_goal_accuracy ()); + " or maybe you're getting upset, so go to another kind of exercise.\n"), + tutor_goal_accuracy ()); else { tmp_str = g_strdup_printf (_(" Very good!\n" - " You succeeded with an accuracy rate above %.0f%%.\n" - " Now it is time to increase your velocity.\n" - " Go to the 3rd exercise at the main menu.\n"), - tutor_goal_accuracy ()); + " You succeeded with an accuracy rate above %.0f%%.\n" + " Now it is time to increase your velocity.\n" + " Go to the 3rd exercise at the main menu.\n"), + tutor_goal_accuracy ()); accur_terror_reset (); /* diff -Nru klavaro-1.9.9/src/basic.c klavaro-3.00/src/basic.c --- klavaro-1.9.9/src/basic.c 2013-07-24 18:38:45.000000000 +0000 +++ klavaro-3.00/src/basic.c 2014-01-07 23:05:58.000000000 +0000 @@ -314,11 +314,6 @@ * Comments */ if (accuracy < tutor_goal_accuracy ()) - /* - tmp_str = g_strdup_printf (_(" You did not succeed.\n" - " The accuracy must be above %.0f%%.\n" - " Try again!\n"), tutor_goal_accuracy ()); - */ tmp_str = g_strdup (":-(\n"); else { diff -Nru klavaro-1.9.9/src/callbacks.c klavaro-3.00/src/callbacks.c --- klavaro-1.9.9/src/callbacks.c 2013-07-24 18:38:45.000000000 +0000 +++ klavaro-3.00/src/callbacks.c 2014-01-08 17:50:37.000000000 +0000 @@ -18,8 +18,8 @@ #include #include #include +#include -#include "gtkdatabox.h" #include "auxiliar.h" #include "main.h" #include "translation.h" @@ -126,7 +126,7 @@ if (callbacks_shield) return; - tmp = gtk_combo_box_get_active_text (cmb); + tmp = gtk_combo_box_text_get_active_text (GTK_COMBO_BOX_TEXT (cmb)); trans_change_language (tmp); g_free (tmp); @@ -161,7 +161,7 @@ if (callbacks_shield) return; - tmp = gtk_combo_box_get_active_text (cmb); + tmp = gtk_combo_box_text_get_active_text (GTK_COMBO_BOX_TEXT (cmb)); if (g_str_equal (tmp, KEYB_EDIT)) keyb_mode_edit (); else @@ -179,7 +179,7 @@ } G_MODULE_EXPORT void -on_window_main_destroy (GtkObject *obj, gpointer data) +on_window_main_destroy (GtkWidget *obj, gpointer data) { if (callbacks_shield) return; @@ -202,6 +202,28 @@ /********************************************************************** * 3 - Tutor window **********************************************************************/ +#define CB_COLOR_TAG(TAG, FGCOLOR, BGCOLOR) \ + if (main_preferences_exist ("colors", TAG "_fg"))\ + color_fg = main_preferences_get_string ("colors", TAG "_fg");\ + else\ + {\ + color_fg = g_strdup (FGCOLOR);\ + main_preferences_set_string ("colors", TAG "_fg", color_fg);\ + }\ + if (main_preferences_exist ("colors", TAG "_bg"))\ + color_bg = main_preferences_get_string ("colors", TAG "_bg");\ + else\ + {\ + color_bg = g_strdup (BGCOLOR);\ + main_preferences_set_string ("colors", TAG "_bg", color_bg);\ + }\ + gtk_text_buffer_create_tag (buf, TAG,\ + "foreground", color_fg,\ + "background", color_bg,\ + "underline", PANGO_UNDERLINE_NONE, NULL);\ + g_free (color_bg);\ + g_free (color_fg); + G_MODULE_EXPORT void on_text_tutor_realize (GtkWidget * widget, gpointer user_data) { @@ -216,9 +238,11 @@ GtkWidget *wg; GtkTextBuffer *buf; PangoFontDescription *font_desc; - GdkColor color; + GdkRGBA color; + + buf = gtk_text_view_get_buffer (GTK_TEXT_VIEW (widget)); - /* Set main color for tutor text (char_untouched) + /* Set main color for tutor text (char_untouched & CIA) */ if (main_preferences_exist ("colors", "char_untouched_bg")) color_main_bg = main_preferences_get_string ("colors", "char_untouched_bg"); @@ -228,11 +252,10 @@ color_main_fg = main_preferences_get_string ("colors", "char_untouched_fg"); else color_main_fg = g_strdup (TUTOR_BLACK); + /* * Colors of text on the tutor window (note: ordering here matters, the first tag created is in the bottom!) */ - buf = gtk_text_view_get_buffer (GTK_TEXT_VIEW (widget)); - gtk_text_buffer_create_tag (buf, "char_keep_wrap", "background", color_main_bg, "foreground", color_main_fg, @@ -243,90 +266,12 @@ "foreground", color_main_fg, "underline", PANGO_UNDERLINE_NONE, NULL); - gtk_text_buffer_create_tag (buf, "char_untouched", - "background", color_main_bg, - "foreground", color_main_fg, - "underline", PANGO_UNDERLINE_NONE, NULL); - - /* char_wrong */ - if (main_preferences_exist ("colors", "char_wrong_bg")) - color_bg = main_preferences_get_string ("colors", "char_wrong_bg"); - else - color_bg = g_strdup (TUTOR_RED_LITE); - if (main_preferences_exist ("colors", "char_wrong_fg")) - color_fg = main_preferences_get_string ("colors", "char_wrong_fg"); - else - color_fg = g_strdup (TUTOR_RED); - gtk_text_buffer_create_tag (buf, "char_wrong", - "background", color_bg, - "foreground", color_fg, - "underline", PANGO_UNDERLINE_NONE, NULL); - g_free (color_bg); - g_free (color_fg); - - /* char_correct */ - if (main_preferences_exist ("colors", "char_correct_bg")) - color_bg = main_preferences_get_string ("colors", "char_correct_bg"); - else - color_bg = g_strdup (TUTOR_CREAM); - if (main_preferences_exist ("colors", "char_correct_fg")) - color_fg = main_preferences_get_string ("colors", "char_correct_fg"); - else - color_fg = g_strdup (TUTOR_GREEN); - gtk_text_buffer_create_tag (buf, "char_correct", - "background", color_bg, - "foreground", color_fg, - "underline", PANGO_UNDERLINE_NONE, NULL); - g_free (color_bg); - g_free (color_fg); - - /* char_retouched */ - if (main_preferences_exist ("colors", "char_retouched_bg")) - color_bg = main_preferences_get_string ("colors", "char_retouched_bg"); - else - color_bg = g_strdup (TUTOR_GRAY); - if (main_preferences_exist ("colors", "char_retouched_fg")) - color_fg = main_preferences_get_string ("colors", "char_retouched_fg"); - else - color_fg = g_strdup (TUTOR_BROWN); - gtk_text_buffer_create_tag (buf, "char_retouched", - "background", color_bg, - "foreground", color_fg, - "underline", PANGO_UNDERLINE_NONE, NULL); - g_free (color_bg); - g_free (color_fg); - - /* cursor_blink */ - if (main_preferences_exist ("colors", "cursor_blink_bg")) - color_bg = main_preferences_get_string ("colors", "cursor_blink_bg"); - else - color_bg = g_strdup (TUTOR_YELLOW); - if (main_preferences_exist ("colors", "cursor_blink_fg")) - color_fg = main_preferences_get_string ("colors", "cursor_blink_fg"); - else - color_fg = g_strdup (TUTOR_BLACK); - gtk_text_buffer_create_tag (buf, "cursor_blink", - "background", color_bg, - "foreground", color_fg, - "underline", PANGO_UNDERLINE_NONE, NULL); - g_free (color_bg); - g_free (color_fg); - - /* text_intro */ - if (main_preferences_exist ("colors", "text_intro_bg")) - color_bg = main_preferences_get_string ("colors", "text_intro_bg"); - else - color_bg = g_strdup (TUTOR_WHITE); - if (main_preferences_exist ("colors", "text_intro_fg")) - color_fg = main_preferences_get_string ("colors", "text_intro_fg"); - else - color_fg = g_strdup (TUTOR_BLACK); - gtk_text_buffer_create_tag (buf, "text_intro", - "background", color_bg, - "foreground", color_fg, - "underline", PANGO_UNDERLINE_NONE, NULL); - g_free (color_bg); - g_free (color_fg); + CB_COLOR_TAG ("char_untouched", TUTOR_BLACK, TUTOR_CREAM); + CB_COLOR_TAG ("char_wrong", TUTOR_RED, TUTOR_RED_LITE); + CB_COLOR_TAG ("char_correct", TUTOR_GREEN, TUTOR_CREAM); + CB_COLOR_TAG ("char_retouched", TUTOR_BROWN, TUTOR_GRAY); + CB_COLOR_TAG ("cursor_blink", TUTOR_BLACK, TUTOR_YELLOW); + CB_COLOR_TAG ("text_intro", TUTOR_BLACK, TUTOR_WHITE); /* Tutor font */ tmp_font = main_preferences_get_string ("tutor", "lesson_font"); @@ -336,6 +281,7 @@ main_preferences_set_string ("tutor", "lesson_font", tmp_font); } gtk_text_buffer_create_tag (buf, "lesson_font", "font", tmp_font, NULL); + gtk_font_button_set_font_name (GTK_FONT_BUTTON (get_wg ("fontbutton_tutor")), tmp_font); /* Change default font throughout the widget */ font_desc = pango_font_description_from_string (tmp_font); @@ -344,12 +290,12 @@ pango_font_description_free (font_desc); /* Change default background color throughout the widget */ - gdk_color_parse (color_main_bg, &color); - gtk_widget_modify_base (widget, GTK_STATE_INSENSITIVE, &color); + gdk_rgba_parse (&color, color_main_bg); + gtk_widget_override_background_color (widget, GTK_STATE_FLAG_INSENSITIVE, &color); /* Change default text color throughout the widget */ - gdk_color_parse (color_main_fg, &color); - gtk_widget_modify_text (widget, GTK_STATE_INSENSITIVE, &color); + gdk_rgba_parse (&color, color_main_fg); + gtk_widget_override_color (widget, GTK_STATE_FLAG_INSENSITIVE, &color); /* Turns on/off the beeps according to last time */ @@ -361,18 +307,11 @@ gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (wg), beep); main_preferences_set_boolean ("tutor", "tutor_beep", beep); - /* Workaround to extend the editable lessons, from 50 to 60, - * avoiding to change the translatable message in the tooltip. - */ - tmp = gtk_widget_get_tooltip_text (get_wg ("togglebutton_edit_basic_lesson")); - search = g_strstr_len (tmp, -1, "50"); - if (search) - search[0] = '6'; - gtk_widget_set_tooltip_text (get_wg ("togglebutton_edit_basic_lesson"), tmp); - g_free (tmp); g_free (color_main_bg); g_free (color_main_fg); + + tutor_init_goals (); } static void @@ -461,7 +400,7 @@ tmp_name = g_ucs4_to_utf8 (basic_get_char_set (), -1, NULL, NULL, NULL); gtk_entry_set_text (GTK_ENTRY (wg), g_strstrip (tmp_name)); - gtk_entry_set_position (GTK_ENTRY (wg), -1); + gtk_editable_set_position (GTK_EDITABLE (wg), -1); g_free (tmp_name); gtk_widget_set_sensitive (get_wg ("spinbutton_lesson"), FALSE); @@ -527,26 +466,13 @@ G_MODULE_EXPORT void on_button_tutor_show_keyb_clicked (GtkButton * button, gpointer user_data) { - if (GTK_WIDGET_VISIBLE (get_wg ("window_hints"))) + if (gtk_widget_get_visible (get_wg ("window_hints"))) window_save ("hints"); keyb_mode_hint (); } G_MODULE_EXPORT void -on_button_tutor_font_clicked (gpointer user_data) -{ - GtkWidget *wg; - gchar *font; - - wg = get_wg ("fontselectiondialog_tutor"); - font = main_preferences_get_string ("tutor", "lesson_font"); - gtk_font_selection_dialog_set_font_name (GTK_FONT_SELECTION_DIALOG (wg), font); - gtk_widget_show (wg); - g_free (font); -} - -G_MODULE_EXPORT void -on_fontselectiondialog_tutor_response (GtkDialog * dialog, gint response_id, gpointer user_data) +on_fontbutton_tutor_font_set (GtkFontButton * fbut, gpointer user_data) { GtkWidget *wg; GtkTextBuffer *buf; @@ -555,18 +481,12 @@ GtkTextIter end; gchar *tmp_font; - if (response_id == GTK_RESPONSE_CANCEL) - tmp_font = main_preferences_get_string ("tutor", "lesson_font"); - else - tmp_font = - g_strdup (gtk_font_selection_dialog_get_font_name - (GTK_FONT_SELECTION_DIALOG (dialog))); - + tmp_font = g_strdup (gtk_font_button_get_font_name (fbut)); if (tmp_font == NULL) tmp_font = g_strdup (LESSON_FONT); - - if (response_id == GTK_RESPONSE_OK) - main_preferences_set_string ("tutor", "lesson_font", tmp_font); + if (strlen (tmp_font) == 0) + tmp_font = g_strdup (LESSON_FONT); + main_preferences_set_string ("tutor", "lesson_font", tmp_font); wg = get_wg ("text_tutor"); buf = gtk_text_view_get_buffer (GTK_TEXT_VIEW (wg)); @@ -578,9 +498,6 @@ gtk_text_buffer_apply_tag_by_name (buf, "lesson_font", &start, &end); g_free (tmp_font); - - if (response_id != GTK_RESPONSE_APPLY) - gtk_widget_hide (get_wg ("fontselectiondialog_tutor")); } G_MODULE_EXPORT void @@ -609,23 +526,22 @@ on_button_tutor_back_clicked (GtkButton *button, gpointer user_data) { window_save ("tutor"); - if (GTK_WIDGET_VISIBLE (get_wg ("window_hints"))) + if (gtk_widget_get_visible (get_wg ("window_hints"))) window_save ("hints"); - if (GTK_WIDGET_VISIBLE (get_wg ("window_top10"))) + if (gtk_widget_get_visible (get_wg ("window_top10"))) window_save ("top10"); - if (GTK_WIDGET_VISIBLE (get_wg ("window_stat"))) + if (gtk_widget_get_visible (get_wg ("window_stat"))) window_save ("stat"); gtk_widget_hide (get_wg ("window_tutor")); gtk_widget_hide (get_wg ("window_hints")); gtk_widget_hide (get_wg ("window_top10")); gtk_widget_hide (get_wg ("window_stat")); gtk_widget_hide (get_wg ("filechooser_tutor")); - gtk_widget_hide (get_wg ("fontselectiondialog_tutor")); gtk_widget_show (get_wg ("window_main")); } G_MODULE_EXPORT void -on_window_tutor_destroy (GtkObject * object, gpointer user_data) +on_window_tutor_destroy (GtkWidget * object, gpointer user_data) { if (callbacks_shield) return; @@ -799,7 +715,7 @@ if (callbacks_shield) return; - tmp = gtk_combo_box_get_active_text (cmb); + tmp = gtk_combo_box_text_get_active_text (GTK_COMBO_BOX_TEXT (cmb)); trans_change_language (tmp); g_free (tmp); @@ -915,7 +831,7 @@ return; keyb_set_combo_kbd_variant ("combobox_keyboard_country", "combobox_keyboard_variant"); - tmp = gtk_combo_box_get_active_text (cmb); + tmp = gtk_combo_box_text_get_active_text (GTK_COMBO_BOX_TEXT (cmb)); if (g_str_equal (tmp, KEYB_CUSTOM) && gtk_combo_box_get_active ( GTK_COMBO_BOX (get_wg ("combobox_keyboard_variant")) ) > -1 ) { @@ -936,7 +852,7 @@ keyb_update_from_variant ("combobox_keyboard_country", "combobox_keyboard_variant"); - tmp = gtk_combo_box_get_active_text (GTK_COMBO_BOX (get_wg ("combobox_keyboard_country"))); + tmp = gtk_combo_box_text_get_active_text (GTK_COMBO_BOX_TEXT (get_wg ("combobox_keyboard_country"))); if (g_str_equal (tmp, KEYB_CUSTOM) && gtk_combo_box_get_active (cmb) > -1 ) @@ -981,7 +897,7 @@ keyb_set_name (tmp); g_free (tmp); - gtk_label_set (GTK_LABEL (get_wg ("label_confirm_action")), "OVERWRITE"); + gtk_label_set_text (GTK_LABEL (get_wg ("label_confirm_action")), "OVERWRITE"); if (g_file_test (tmp_path, G_FILE_TEST_IS_REGULAR)) gtk_widget_show (get_wg ("dialog_confirm")); else @@ -1011,8 +927,8 @@ G_MODULE_EXPORT void on_button_keyboard_hands_clicked (GtkButton *but, gpointer user_data) { - if (GTK_WIDGET_VISIBLE (get_wg ("window_tutor"))) - if (GTK_WIDGET_VISIBLE (get_wg ("hbox_keyboard_hints"))) + if (gtk_widget_get_visible (get_wg ("window_tutor"))) + if (gtk_widget_get_visible (get_wg ("hbox_keyboard_hints"))) { gtk_widget_show (get_wg ("window_hints")); hints_update_from_char (cursor_get_char ()); @@ -1049,7 +965,7 @@ keyb_update_virtual_layout (); keyb_edit_none (); - if (GTK_WIDGET_VISIBLE (get_wg ("hbox_keyboard_hints"))) + if (gtk_widget_get_visible (get_wg ("hbox_keyboard_hints"))) hints_update_from_button (GTK_BUTTON (togglebutton)); } @@ -1065,7 +981,7 @@ keyb_update_virtual_layout (); keyb_edit_none (); - if (GTK_WIDGET_VISIBLE (get_wg ("hbox_keyboard_hints"))) + if (gtk_widget_get_visible (get_wg ("hbox_keyboard_hints"))) hints_update_from_button (GTK_BUTTON (togglebutton)); } @@ -1093,7 +1009,7 @@ if (callbacks_shield) return; - if ( GTK_WIDGET_VISIBLE (get_wg ("hbox_keyboard_hints")) ) + if ( gtk_widget_get_visible (get_wg ("hbox_keyboard_hints")) ) hints_update_from_button (GTK_BUTTON (wg)); else keyb_edit_button (GTK_BUTTON (wg)); @@ -1105,7 +1021,7 @@ if (callbacks_shield) return; - if ( GTK_WIDGET_VISIBLE (get_wg ("hbox_keyboard_hints")) ) + if ( gtk_widget_get_visible (get_wg ("hbox_keyboard_hints")) ) hints_update_from_button (button); else keyb_edit_button (button); @@ -1303,12 +1219,12 @@ callbacks_shield_set (TRUE); for (i = 0; i < 4; i++) - gtk_combo_box_remove_text (GTK_COMBO_BOX (get_wg ("combobox_stat_type")), 0); + gtk_combo_box_text_remove (GTK_COMBO_BOX_TEXT (get_wg ("combobox_stat_type")), 0); tmp = g_strdup_printf ("%s (%%)", _("Accuracy")); - gtk_combo_box_insert_text (GTK_COMBO_BOX (get_wg ("combobox_stat_type")), 0, tmp); + gtk_combo_box_text_insert_text (GTK_COMBO_BOX_TEXT (get_wg ("combobox_stat_type")), 0, tmp); g_free (tmp); tmp = g_strdup_printf ("%s %s", _("Speed"), _("(WPM)")); - gtk_combo_box_insert_text (GTK_COMBO_BOX (get_wg ("combobox_stat_type")), 1, tmp); + gtk_combo_box_text_insert_text (GTK_COMBO_BOX_TEXT (get_wg ("combobox_stat_type")), 1, tmp); g_free (tmp); switch (gtk_combo_box_get_active (cmb)) @@ -1319,10 +1235,10 @@ case 1: win_title = g_strdup_printf ("%s (%s)", stat_title, keyb_mode_get_name ()); tmp = g_strdup_printf ("%s", _("Errors")); - gtk_combo_box_insert_text (GTK_COMBO_BOX (get_wg ("combobox_stat_type")), 2, tmp); + gtk_combo_box_text_insert_text (GTK_COMBO_BOX_TEXT (get_wg ("combobox_stat_type")), 2, tmp); g_free (tmp); tmp = g_strdup_printf ("%s", _("Touch times (s)")); - gtk_combo_box_insert_text (GTK_COMBO_BOX (get_wg ("combobox_stat_type")), 3, tmp); + gtk_combo_box_text_insert_text (GTK_COMBO_BOX_TEXT (get_wg ("combobox_stat_type")), 3, tmp); g_free (tmp); break; case 2: @@ -1331,10 +1247,10 @@ case 3: win_title = g_strdup_printf ("%s (%s)", stat_title, trans_get_current_language ()); tmp = g_strdup_printf ("%s (%%)", _("Fluidity")); - gtk_combo_box_insert_text (GTK_COMBO_BOX (get_wg ("combobox_stat_type")), 2, tmp); + gtk_combo_box_text_insert_text (GTK_COMBO_BOX_TEXT (get_wg ("combobox_stat_type")), 2, tmp); g_free (tmp); tmp = g_strdup_printf ("%s (0-10)", _("Score")); - gtk_combo_box_insert_text (GTK_COMBO_BOX (get_wg ("combobox_stat_type")), 3, tmp); + gtk_combo_box_text_insert_text (GTK_COMBO_BOX_TEXT (get_wg ("combobox_stat_type")), 3, tmp); g_free (tmp); break; default: diff -Nru klavaro-1.9.9/src/callbacks.h klavaro-3.00/src/callbacks.h --- klavaro-1.9.9/src/callbacks.h 2013-07-24 18:38:45.000000000 +0000 +++ klavaro-3.00/src/callbacks.h 2013-09-22 13:29:39.000000000 +0000 @@ -10,7 +10,7 @@ /* along with this program. If not, see . */ /*****************************************************************************/ -#include "gtkdatabox.h" +#include #define TEXTMAXLEN 8000 diff -Nru klavaro-1.9.9/src/cursor.c klavaro-3.00/src/cursor.c --- klavaro-1.9.9/src/cursor.c 2013-07-24 18:38:45.000000000 +0000 +++ klavaro-3.00/src/cursor.c 2014-01-04 16:04:07.000000000 +0000 @@ -166,7 +166,7 @@ if (cursor.blink == FALSE) return FALSE; - if (! GTK_WIDGET_VISIBLE (get_wg ("window_tutor"))) + if (! gtk_widget_get_visible (get_wg ("window_tutor"))) { cursor.blink = FALSE; return FALSE; @@ -191,7 +191,7 @@ if (cursor.blink == FALSE) return FALSE; - if (! GTK_WIDGET_VISIBLE (get_wg ("window_tutor"))) + if (! gtk_widget_get_visible (get_wg ("window_tutor"))) { cursor.blink = FALSE; return FALSE; diff -Nru klavaro-1.9.9/src/fluidness.c klavaro-3.00/src/fluidness.c --- klavaro-1.9.9/src/fluidness.c 2013-08-15 17:40:11.000000000 +0000 +++ klavaro-3.00/src/fluidness.c 2014-01-09 12:40:23.000000000 +0000 @@ -522,7 +522,6 @@ * Put on the screen the final comments */ #define FLUID_1 60 -#define FLUID_2 (tutor_goal_fluidity ()) void fluid_comment (gdouble accuracy, gdouble velocity, gdouble fluidness) { @@ -534,23 +533,17 @@ * Comments */ if (accuracy < tutor_goal_accuracy ()) - { - /* - tmp_str = g_strdup_printf (_(" Your accuracy rate is not good enough.\n" - " I want it greater than %.0f%%.\n"), tutor_goal_accuracy ()); - */ tmp_str = g_strdup (":-(\n"); - } else if (velocity < tutor_goal_speed ()) tmp_str = g_strdup_printf (_(" You type accurately but not so fast.\n" " Can you reach %.0f WPM?\n"), tutor_goal_speed ()); - else if (fluidness < FLUID_1) + else if (fluidness < tutor_goal_level (0)) tmp_str = g_strdup_printf (_(" Your rhythm is not so constant. Calm down.\n" - " For now, try to make the fluidness greater than %i%%.\n"), FLUID_1); - else if (fluidness < FLUID_2) + " For now, try to make the fluidness greater than %i%%.\n"), (gint) tutor_goal_level(0)); + else if (fluidness < tutor_goal_fluidity ()) tmp_str = g_strdup_printf (_(" You are almost getting there. Type more fluently.\n" - " I want a fluidness greater than %.0f%%.\n"), FLUID_2); - else if (velocity < 90) + " I want a fluidness greater than %.0f%%.\n"), tutor_goal_fluidity ()); + else if (velocity < tutor_goal_level (1)) tmp_str = g_strdup (_(" Congratulations!\n" " It seems to me that you are a professional.\n" " You don't need this program (me) anymore.\n" diff -Nru klavaro-1.9.9/src/keyboard.c klavaro-3.00/src/keyboard.c --- klavaro-1.9.9/src/keyboard.c 2013-07-24 18:38:45.000000000 +0000 +++ klavaro-3.00/src/keyboard.c 2014-01-07 00:56:18.000000000 +0000 @@ -206,7 +206,7 @@ gint i, j; gchar *hlp; GtkFixed *fix; - GdkColor color; + GdkRGBA color; /* Set color of space key */ @@ -214,8 +214,8 @@ hlp = main_preferences_get_string ("colors", "key_5"); else hlp = g_strdup (KEYB_PURPLE); - gdk_color_parse (hlp, &color); - gtk_widget_modify_bg (get_wg ("but_space"), GTK_STATE_NORMAL, &color); + gdk_rgba_parse (&color, hlp); + gtk_widget_override_background_color (get_wg ("but_space"), GTK_STATE_FLAG_NORMAL, &color); g_free (hlp); /* Set text color of keys @@ -224,7 +224,7 @@ hlp = main_preferences_get_string ("colors", "key_fg"); else hlp = g_strdup (KEYB_BLACK); - gdk_color_parse (hlp, &color); + gdk_rgba_parse (&color, hlp); g_free (hlp); /* Create and position buttons and labels @@ -242,8 +242,8 @@ g_signal_connect_after ((gpointer) keyb.but[i][j], "grab-focus", G_CALLBACK (on_virtual_key_grab_focus), NULL); keyb.lab[i][j] = gtk_label_new ("0"); - gtk_widget_modify_fg (keyb.lab[i][j], GTK_STATE_NORMAL, &color); - gtk_widget_modify_fg (keyb.lab[i][j], GTK_STATE_PRELIGHT, &color); + gtk_widget_override_color (keyb.lab[i][j], GTK_STATE_FLAG_NORMAL, &color); + gtk_widget_override_color (keyb.lab[i][j], GTK_STATE_FLAG_PRELIGHT, &color); gtk_container_add (GTK_CONTAINER (keyb.but[i][j]), keyb.lab[i][j]); if (i > 0) @@ -269,10 +269,11 @@ */ keyb.entry = gtk_entry_new (); gtk_fixed_put (fix, keyb.entry, 2, 2); - gtk_widget_set_size_request (keyb.entry, 28, 28); + gtk_entry_set_width_chars (GTK_ENTRY (keyb.entry), 1); gtk_entry_set_max_length (GTK_ENTRY (keyb.entry), 1); gtk_entry_set_alignment (GTK_ENTRY (keyb.entry), 0.5); - g_object_set (GTK_OBJECT (keyb.entry), "shadow-type", GTK_SHADOW_NONE, NULL); + gtk_widget_set_size_request (keyb.entry, 28, 28); + g_object_set (G_OBJECT (keyb.entry), "shadow-type", GTK_SHADOW_NONE, NULL); g_signal_connect_after ((gpointer) keyb.entry, "changed", G_CALLBACK (on_virtual_key_changed), NULL); } @@ -569,9 +570,9 @@ callbacks_shield_set (TRUE); cmb = GTK_COMBO_BOX (get_wg ("combobox_keyboard_variant")); - aux = gtk_combo_box_get_active_text (cmb); + aux = gtk_combo_box_text_get_active_text (GTK_COMBO_BOX_TEXT (cmb)); active = gtk_combo_box_get_active (cmb); - gtk_combo_box_remove_text (cmb, active); + gtk_combo_box_text_remove (GTK_COMBO_BOX_TEXT (cmb), active); tmp_name = g_strconcat (main_path_user (), G_DIR_SEPARATOR_S, aux, ".kbd", NULL); g_unlink (tmp_name); @@ -767,12 +768,12 @@ GtkComboBox *cmb; cmb = GTK_COMBO_BOX (get_wg (cmb_country)); - country = gtk_combo_box_get_active_text (cmb); + country = gtk_combo_box_text_get_active_text (GTK_COMBO_BOX_TEXT (cmb)); if (country == NULL) return; cmb = GTK_COMBO_BOX (get_wg (cmb_variant)); - variant = gtk_combo_box_get_active_text (cmb); + variant = gtk_combo_box_text_get_active_text (GTK_COMBO_BOX_TEXT (cmb)); if (variant == NULL) { g_free (country); @@ -844,11 +845,11 @@ valid = gtk_tree_model_iter_next (tmd, &iter); } for (i = 0; i < n; i++) - gtk_combo_box_remove_text (cmb, 0); + gtk_combo_box_text_remove (GTK_COMBO_BOX_TEXT (cmb), 0); /* Get the selected country text */ - country_txt = gtk_combo_box_get_active_text (GTK_COMBO_BOX (get_wg (cmb_country))); + country_txt = gtk_combo_box_text_get_active_text (GTK_COMBO_BOX_TEXT (get_wg (cmb_country))); if (country_txt == NULL) { g_warning ("Country combo not set, so nothing done with variant combo."); @@ -866,7 +867,7 @@ { if (g_str_equal (layouts.orig[i].country, country_txt)) { - gtk_combo_box_append_text (cmb, layouts.orig[i].variant); + gtk_combo_box_text_append_text (GTK_COMBO_BOX_TEXT (cmb), layouts.orig[i].variant); n++; } } @@ -877,7 +878,7 @@ gchar *variant; gtk_combo_box_set_active (cmb, i); - variant = gtk_combo_box_get_active_text (cmb); + variant = gtk_combo_box_text_get_active_text (GTK_COMBO_BOX_TEXT (cmb)); if (g_str_equal (variant, current)) { g_free (variant); @@ -908,12 +909,12 @@ n = 0; if (g_str_equal (cmb_variant, "combobox_kbd_variant")) { - gtk_combo_box_append_text (cmb, KEYB_EDIT); + gtk_combo_box_text_append_text (GTK_COMBO_BOX_TEXT (cmb), KEYB_EDIT); n++; } for (i = 0; i < layouts.n_cust; i++) { - gtk_combo_box_append_text (cmb, layouts.cust[i].name); + gtk_combo_box_text_append_text (GTK_COMBO_BOX_TEXT (cmb), layouts.cust[i].name); n++; } @@ -922,7 +923,7 @@ gchar *variant; gtk_combo_box_set_active (cmb, i); - variant = gtk_combo_box_get_active_text (cmb); + variant = gtk_combo_box_text_get_active_text (GTK_COMBO_BOX_TEXT (cmb)); if (g_str_equal (variant, keyb.name)) { g_free (variant); @@ -935,7 +936,7 @@ { if (n > 1) gtk_combo_box_set_active (cmb, 1); - else if (! GTK_WIDGET_VISIBLE (get_wg ("window_keyboard"))) + else if (! gtk_widget_get_visible (get_wg ("window_keyboard"))) { gtk_combo_box_set_active (cmb, 0); keyb_mode_edit (); @@ -981,7 +982,7 @@ keyb_set_keyboard_layouts (); // if already initialized, this sets only the custom layouts cmb = GTK_COMBO_BOX (get_wg (cmb_country)); - gtk_combo_box_remove_text (cmb, 0); + gtk_combo_box_text_remove (GTK_COMBO_BOX_TEXT (cmb), 0); keyb.cmb_n = 0; for (i = 0; i < layouts.n_orig; i++) { @@ -994,11 +995,11 @@ } if (j < 0) { - gtk_combo_box_append_text (cmb, layouts.orig[i].country); + gtk_combo_box_text_append_text (GTK_COMBO_BOX_TEXT (cmb), layouts.orig[i].country); keyb.cmb_n++; } } - gtk_combo_box_prepend_text (cmb, KEYB_CUSTOM); + gtk_combo_box_text_prepend_text (GTK_COMBO_BOX_TEXT (cmb), KEYB_CUSTOM); keyb.cmb_n++; keyb_update_combos (cmb_country, cmb_variant); @@ -1031,7 +1032,7 @@ { gtk_combo_box_set_active (cmb, i); - country = gtk_combo_box_get_active_text (cmb); + country = gtk_combo_box_text_get_active_text (GTK_COMBO_BOX_TEXT (cmb)); current = keyb_get_country (keyb.name); if (g_str_equal (country, current)) { @@ -1090,7 +1091,6 @@ if (intro01 == NULL) { - /* English typo: recomendations -> recommendations */ intro01 = g_strdup (_("Correct positioning of the hands and fingers is very important to efficient typing. " "You will learn faster and type better if you follow the next recommendations.")); intro02 = g_strdup (_( @@ -1136,10 +1136,10 @@ intro00 = g_strdup_printf (_("Step %i"), step); switch (step) { - case 0: /* Recommendations */ - gtk_label_set_text (tit, _("To position the hands")); + case 0: /* Recommendations */ gtk_label_set_text (tx1, intro01); gtk_label_set_text (tx2, ""); + gtk_label_set_text (tit, _("To position the hands")); gtk_text_buffer_set_text (buffer, intro01, -1); gtk_widget_grab_focus (get_wg ("button_keyboard_next")); keyb_set_sensitive (TRUE); @@ -1222,9 +1222,9 @@ hints_demo_fingers (1000/5); break; case 6: /* Final words */ - gtk_label_set_text (tit, _("Go ahead!")); gtk_label_set_text (tx1, intro10); gtk_label_set_text (tx2, ""); + gtk_label_set_text (tit, _("Go ahead!")); gtk_text_buffer_set_text (buffer, intro10, -1); gtk_widget_grab_focus (get_wg ("button_keyboard_close")); keyb_set_sensitive (TRUE); @@ -1241,7 +1241,7 @@ /* Blind people want no fancy autonomous buttons jumping around */ wg = get_wg ("checkbutton_speech"); - if (GTK_WIDGET_VISIBLE (wg) && gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (wg))) + if (gtk_widget_get_visible (wg) && gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (wg))) hints_demo_fingers (0); if (step == 0) @@ -1270,8 +1270,8 @@ if (kbname != NULL) g_free (kbname); - country = gtk_combo_box_get_active_text (GTK_COMBO_BOX (get_wg ("combobox_kbd_country"))); - variant = gtk_combo_box_get_active_text (GTK_COMBO_BOX (get_wg ("combobox_kbd_variant"))); + country = gtk_combo_box_text_get_active_text (GTK_COMBO_BOX_TEXT (get_wg ("combobox_kbd_country"))); + variant = gtk_combo_box_text_get_active_text (GTK_COMBO_BOX_TEXT (get_wg ("combobox_kbd_variant"))); kbname = g_strdup_printf ("%s - %s", country, variant); g_free (country); g_free (variant); @@ -1498,7 +1498,7 @@ keyb.pos.i = 0; gtk_widget_hide (keyb.entry); - if (GTK_WIDGET_SENSITIVE (keyb.but[keyb.pos.i][keyb.pos.j])) + if (gtk_widget_get_sensitive (keyb.but[keyb.pos.i][keyb.pos.j])) { gtk_widget_grab_focus (keyb.but[keyb.pos.i][keyb.pos.j]); return TRUE; @@ -1739,7 +1739,7 @@ for (j = 0; j < j_max; j++) { tmp = hints_string_from_charcode (hints[i][j]); - if (! GTK_WIDGET_VISIBLE (get_wg ("hbox_keyboard_hints"))) + if (! gtk_widget_get_visible (get_wg ("hbox_keyboard_hints"))) gtk_widget_set_tooltip_text (keyb.but[i][j], editme); else gtk_widget_set_tooltip_text (keyb.but[i][j], tmp); @@ -1753,7 +1753,7 @@ { gint i, j; gint j_max; - GdkColor color; + GdkRGBA color; if (hints_is_initialized == FALSE) { @@ -1766,8 +1766,8 @@ j_max = KEY_LINE_LEN - (i == 0 ? 1 : (i == 1 ? 2 : 3)); for (j = 0; j < j_max; j++) { - gdk_color_parse (hints_color_from_charcode (hints[i][j]), &color); - gtk_widget_modify_bg (keyb.but[i][j], GTK_STATE_NORMAL, &color); + gdk_rgba_parse (&color, hints_color_from_charcode (hints[i][j])); + gtk_widget_override_background_color (keyb.but[i][j], GTK_STATE_FLAG_NORMAL, &color); } } } @@ -1812,7 +1812,7 @@ gchar file_name[32]; gint i, j; - if (! GTK_WIDGET_VISIBLE (get_wg ("window_hints"))) + if (! gtk_widget_get_visible (get_wg ("window_hints"))) return; strcpy (file_name, "hands_0.png"); diff -Nru klavaro-1.9.9/src/main.c klavaro-3.00/src/main.c --- klavaro-1.9.9/src/main.c 2013-07-24 18:38:45.000000000 +0000 +++ klavaro-3.00/src/main.c 2014-01-09 12:37:47.000000000 +0000 @@ -163,28 +163,6 @@ /* * End of interface, start of private functions */ -static void -main_stats_relocate (gchar * fname) -{ - gchar *old; - gchar *new; - - g_assert (fname); - old = g_build_filename (main_path_user (), fname, NULL); - if (!g_file_test (old, G_FILE_TEST_IS_REGULAR)) - { - g_free (old); - return; - } - new = g_build_filename (main_path_stats (), fname, NULL); - if (g_rename (old, new) != 0) - g_print ("Failed to relocate stats file.\n\tCheck your old file: %s\n\tNew location to be used:%s\n", - old, new); - else - g_print ("File relocated.\n\tFrom: %s\n\tTo: %s\n", old, new); - g_free (old); - g_free (new); -} /********************************************************************** * Initialize the value of the global variables @@ -193,13 +171,7 @@ main_initialize_global_variables () { gchar *tmp; - gchar *path_score_old; - gchar *fname; - gint chr; FILE *fh; - FILE *fh_from; - FILE *fh_to; - GDir *kscdir; /* Set the home user dir */ @@ -210,7 +182,7 @@ g_error ("Sorry, not able to create the user config dir: %s", path.user); } - /* Set the home user stats dir (update to new local/share dir) + /* Set the home user stats dir (~/.local/share dir) */ if (UNIX_OK) path.stats = g_build_filename (g_get_user_data_dir (), "klavaro", NULL); @@ -219,12 +191,6 @@ if (!g_file_test (path.stats, G_FILE_TEST_IS_DIR)) { g_mkdir_with_parents (path.stats, DIR_PERM); - main_stats_relocate ("stat_basic.txt"); - main_stats_relocate ("stat_adapt.txt"); - main_stats_relocate ("stat_velo.txt"); - main_stats_relocate ("stat_fluid.txt"); - main_stats_relocate ("scores_fluid.txt"); - main_stats_relocate ("deviation_fluid.txt"); } /* Get a valid data path. @@ -247,50 +213,12 @@ g_free (tmp); /* Get a valid scoring path. - * Updating from /var/games/klavaro to $XDG_USER_DATA_DIR/klavaro/ksc */ - if (UNIX_OK) - path_score_old = g_strdup ("/var/games/klavaro"); - else - path_score_old = g_build_filename ((g_get_system_data_dirs ())[0], PACKAGE, NULL); path.score = g_build_filename (path.stats, "ksc", NULL); if (!g_file_test (path.score, G_FILE_TEST_IS_DIR)) { g_mkdir_with_parents (path.score, DIR_PERM); - kscdir = g_dir_open (path_score_old, 0, NULL); - if (kscdir) - { - while ((fname = (gchar *) g_dir_read_name (kscdir))) - { - if (!g_str_has_suffix (fname, ".ksc")) - continue; - - tmp = g_build_filename (path_score_old, fname, NULL); - fh_from = g_fopen (tmp, "rb"); - g_free (tmp); - if (!fh_from) - continue; - - tmp = g_build_filename (path.score, fname, NULL); - fh_to = g_fopen (tmp, "wb"); - g_free (tmp); - if (!fh_to) - { - fclose (fh_from); - continue; - } - - // Copy from to - while ((chr = getc (fh_from)) != EOF) - putc (chr, fh_to); - - fclose (fh_from); - fclose (fh_to); - } - g_dir_close (kscdir); - } } - //g_message (path.score); /* Retrieve initial or saved preferences */ @@ -328,13 +256,13 @@ it = ls; do { - if (GTK_OBJECT_TYPE (it->data) == GTK_TYPE_LABEL) + if (G_OBJECT_TYPE (it->data) == GTK_TYPE_LABEL) { lb = (gchar *) gtk_label_get_label (GTK_LABEL (it->data)); if (lb[0] != '\0') gtk_label_set_text_with_mnemonic (GTK_LABEL (it->data), _(lb)); } - else if (GTK_OBJECT_TYPE (it->data) == GTK_TYPE_ENTRY) + else if (G_OBJECT_TYPE (it->data) == GTK_TYPE_ENTRY) { lb = gtk_entry_get_icon_tooltip_text (GTK_ENTRY (it->data), GTK_ENTRY_ICON_SECONDARY); if (lb) @@ -343,7 +271,7 @@ gtk_entry_set_icon_tooltip_text (GTK_ENTRY (it->data), GTK_ENTRY_ICON_SECONDARY, _(lb)); } } - else if (GTK_OBJECT_TYPE (it->data) == GTK_TYPE_WINDOW) + else if (G_OBJECT_TYPE (it->data) == GTK_TYPE_WINDOW) gtk_window_set_title (GTK_WINDOW (it->data), _(gtk_window_get_title (GTK_WINDOW (it->data)))); if (GTK_IS_WIDGET (it->data)) @@ -432,6 +360,7 @@ /* Set main labels (for translation) */ + tmp = NULL; tmp = g_strdup_printf ("0 - %s", _("Introduction")); gtk_label_set_text (GTK_LABEL (get_wg ("label_main_intro")), tmp); g_free (tmp); @@ -533,7 +462,7 @@ gui = gtk_builder_new (); gtk_builder_set_translation_domain (gui, NULL); - tmp = g_build_filename (main_path_data (), "klavaro.ui", NULL); + tmp = g_build_filename (main_path_data (), "klavaro.glade", NULL); if (g_file_test (tmp, G_FILE_TEST_IS_REGULAR)) success = gtk_builder_add_from_file (gui, tmp, NULL); else diff -Nru klavaro-1.9.9/src/Makefile.am klavaro-3.00/src/Makefile.am --- klavaro-1.9.9/src/Makefile.am 2013-07-24 18:38:45.000000000 +0000 +++ klavaro-3.00/src/Makefile.am 2014-01-04 18:39:20.000000000 +0000 @@ -18,12 +18,18 @@ accuracy.c accuracy.h \ top10.c top10.h -AM_CPPFLAGS = @PACKAGE_CFLAGS@ \ - -DPACKAGE_DATA_DIR=\""$(datadir)"\" \ - -DPACKAGE_LOCALE_DIR=\""$(prefix)/$(DATADIRNAME)/locale"\" +AM_CPPFLAGS = @GTK_CFLAGS@ \ + -DPACKAGE_DATA_DIR=\""$(datadir)"\" \ + -DPACKAGE_LOCALE_DIR=\""$(prefix)/$(DATADIRNAME)/locale"\" -klavaro_LDADD = @PACKAGE_LIBS@ -lgmodule-2.0 -AM_CFLAGS = -Wall +AM_CFLAGS = -Wextra \ + -I$(top_srcdir)/gtkdatabox + +AM_LDFLAGS = -static + +klavaro_LDADD = @GTK_LIBS@ \ + -lgmodule-2.0 \ + $(top_srcdir)/gtkdatabox/libgtkdatabox.la if IS_POSIX AM_CFLAGS += -export-dynamic diff -Nru klavaro-1.9.9/src/Makefile.in klavaro-3.00/src/Makefile.in --- klavaro-1.9.9/src/Makefile.in 2013-08-15 13:46:56.000000000 +0000 +++ klavaro-3.00/src/Makefile.in 2014-01-21 23:25:39.000000000 +0000 @@ -1,4 +1,4 @@ -# Makefile.in generated by automake 1.13.3 from Makefile.am. +# Makefile.in generated by automake 1.14.1 from Makefile.am. # @configure_input@ # Copyright (C) 1994-2013 Free Software Foundation, Inc. @@ -86,7 +86,14 @@ DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am \ $(top_srcdir)/mkinstalldirs $(top_srcdir)/depcomp ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 -am__aclocal_m4_deps = $(top_srcdir)/configure.ac +am__aclocal_m4_deps = $(top_srcdir)/m4/gettext.m4 \ + $(top_srcdir)/m4/iconv.m4 $(top_srcdir)/m4/intltool.m4 \ + $(top_srcdir)/m4/lib-ld.m4 $(top_srcdir)/m4/lib-link.m4 \ + $(top_srcdir)/m4/lib-prefix.m4 $(top_srcdir)/m4/libtool.m4 \ + $(top_srcdir)/m4/ltoptions.m4 $(top_srcdir)/m4/ltsugar.m4 \ + $(top_srcdir)/m4/ltversion.m4 $(top_srcdir)/m4/lt~obsolete.m4 \ + $(top_srcdir)/m4/nls.m4 $(top_srcdir)/m4/po.m4 \ + $(top_srcdir)/m4/progtest.m4 $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs @@ -102,7 +109,12 @@ fluidness.$(OBJEXT) accuracy.$(OBJEXT) top10.$(OBJEXT) klavaro_OBJECTS = $(am_klavaro_OBJECTS) am__DEPENDENCIES_1 = -klavaro_DEPENDENCIES = $(am__DEPENDENCIES_1) +klavaro_DEPENDENCIES = $(top_srcdir)/gtkdatabox/libgtkdatabox.la \ + $(am__DEPENDENCIES_1) +AM_V_lt = $(am__v_lt_@AM_V@) +am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@) +am__v_lt_0 = --silent +am__v_lt_1 = AM_V_P = $(am__v_P_@AM_V@) am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) am__v_P_0 = false @@ -121,12 +133,18 @@ am__mv = mv -f COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \ $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) +LTCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ + $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) \ + $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \ + $(AM_CFLAGS) $(CFLAGS) AM_V_CC = $(am__v_CC_@AM_V@) am__v_CC_ = $(am__v_CC_@AM_DEFAULT_V@) am__v_CC_0 = @echo " CC " $@; am__v_CC_1 = CCLD = $(CC) -LINK = $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) $(LDFLAGS) -o $@ +LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ + $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ + $(AM_LDFLAGS) $(LDFLAGS) -o $@ AM_V_CCLD = $(am__v_CCLD_@AM_V@) am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@) am__v_CCLD_0 = @echo " CCLD " $@; @@ -162,10 +180,13 @@ ALL_LINGUAS = @ALL_LINGUAS@ AMTAR = @AMTAR@ AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ +AR = @AR@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ +CAIRO_CFLAGS = @CAIRO_CFLAGS@ +CAIRO_LIBS = @CAIRO_LIBS@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ @@ -175,17 +196,22 @@ DATADIRNAME = @DATADIRNAME@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ +DLLTOOL = @DLLTOOL@ +DSYMUTIL = @DSYMUTIL@ +DUMPBIN = @DUMPBIN@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EXEEXT = @EXEEXT@ +FGREP = @FGREP@ GETTEXT_MACRO_VERSION = @GETTEXT_MACRO_VERSION@ GETTEXT_PACKAGE = @GETTEXT_PACKAGE@ GMSGFMT = @GMSGFMT@ GMSGFMT_015 = @GMSGFMT_015@ GREP = @GREP@ -GTKBLDRCONV = @GTKBLDRCONV@ +GTK_CFLAGS = @GTK_CFLAGS@ +GTK_LIBS = @GTK_LIBS@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ @@ -201,35 +227,46 @@ INTLTOOL__v_MERGE_ = @INTLTOOL__v_MERGE_@ INTLTOOL__v_MERGE_0 = @INTLTOOL__v_MERGE_0@ INTL_MACOSX_LIBS = @INTL_MACOSX_LIBS@ +LD = @LD@ LDFLAGS = @LDFLAGS@ LIBICONV = @LIBICONV@ LIBINTL = @LIBINTL@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ +LIBTOOL = @LIBTOOL@ +LIPO = @LIPO@ +LN_S = @LN_S@ LTLIBICONV = @LTLIBICONV@ LTLIBINTL = @LTLIBINTL@ LTLIBOBJS = @LTLIBOBJS@ MAKEINFO = @MAKEINFO@ +MANIFEST_TOOL = @MANIFEST_TOOL@ MKDIR_P = @MKDIR_P@ MSGFMT = @MSGFMT@ MSGFMT_015 = @MSGFMT_015@ MSGMERGE = @MSGMERGE@ +NM = @NM@ +NMEDIT = @NMEDIT@ +OBJDUMP = @OBJDUMP@ OBJEXT = @OBJEXT@ +OTOOL = @OTOOL@ +OTOOL64 = @OTOOL64@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ -PACKAGE_CFLAGS = @PACKAGE_CFLAGS@ -PACKAGE_LIBS = @PACKAGE_LIBS@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ +PANGO_CFLAGS = @PANGO_CFLAGS@ +PANGO_LIBS = @PANGO_LIBS@ PATH_SEPARATOR = @PATH_SEPARATOR@ PKG_CONFIG = @PKG_CONFIG@ PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@ PKG_CONFIG_PATH = @PKG_CONFIG_PATH@ POSUB = @POSUB@ POW_LIB = @POW_LIB@ +RANLIB = @RANLIB@ SED = @SED@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ @@ -243,7 +280,9 @@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ +ac_ct_AR = @ac_ct_AR@ ac_ct_CC = @ac_ct_CC@ +ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ @@ -307,16 +346,19 @@ accuracy.c accuracy.h \ top10.c top10.h -AM_CPPFLAGS = @PACKAGE_CFLAGS@ \ - -DPACKAGE_DATA_DIR=\""$(datadir)"\" \ - -DPACKAGE_LOCALE_DIR=\""$(prefix)/$(DATADIRNAME)/locale"\" - -klavaro_LDADD = @PACKAGE_LIBS@ -lgmodule-2.0 $(am__append_2) -AM_CFLAGS = -Wall $(am__append_1) $(am__append_3) +AM_CPPFLAGS = @GTK_CFLAGS@ \ + -DPACKAGE_DATA_DIR=\""$(datadir)"\" \ + -DPACKAGE_LOCALE_DIR=\""$(prefix)/$(DATADIRNAME)/locale"\" + +AM_CFLAGS = -Wextra -I$(top_srcdir)/gtkdatabox $(am__append_1) \ + $(am__append_3) +AM_LDFLAGS = -static +klavaro_LDADD = @GTK_LIBS@ -lgmodule-2.0 \ + $(top_srcdir)/gtkdatabox/libgtkdatabox.la $(am__append_2) all: all-am .SUFFIXES: -.SUFFIXES: .c .o .obj +.SUFFIXES: .c .lo .o .obj $(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ @@ -357,6 +399,7 @@ for p in $$list; do echo "$$p $$p"; done | \ sed 's/$(EXEEXT)$$//' | \ while read p p1; do if test -f $$p \ + || test -f $$p1 \ ; then echo "$$p"; echo "$$p"; else :; fi; \ done | \ sed -e 'p;s,.*/,,;n;h' \ @@ -371,8 +414,8 @@ while read type dir files; do \ if test "$$dir" = .; then dir=; else dir=/$$dir; fi; \ test -z "$$files" || { \ - echo " $(INSTALL_PROGRAM_ENV) $(INSTALL_PROGRAM) $$files '$(DESTDIR)$(bindir)$$dir'"; \ - $(INSTALL_PROGRAM_ENV) $(INSTALL_PROGRAM) $$files "$(DESTDIR)$(bindir)$$dir" || exit $$?; \ + echo " $(INSTALL_PROGRAM_ENV) $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL_PROGRAM) $$files '$(DESTDIR)$(bindir)$$dir'"; \ + $(INSTALL_PROGRAM_ENV) $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL_PROGRAM) $$files "$(DESTDIR)$(bindir)$$dir" || exit $$?; \ } \ ; done @@ -388,7 +431,13 @@ cd "$(DESTDIR)$(bindir)" && rm -f $$files clean-binPROGRAMS: - -test -z "$(bin_PROGRAMS)" || rm -f $(bin_PROGRAMS) + @list='$(bin_PROGRAMS)'; test -n "$$list" || exit 0; \ + echo " rm -f" $$list; \ + rm -f $$list || exit $$?; \ + test -n "$(EXEEXT)" || exit 0; \ + list=`for p in $$list; do echo "$$p"; done | sed 's/$(EXEEXT)$$//'`; \ + echo " rm -f" $$list; \ + rm -f $$list klavaro$(EXEEXT): $(klavaro_OBJECTS) $(klavaro_DEPENDENCIES) $(EXTRA_klavaro_DEPENDENCIES) @rm -f klavaro$(EXEEXT) @@ -420,14 +469,27 @@ @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(COMPILE) -c $< +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(COMPILE) -c -o $@ $< .c.obj: @am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'` @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(COMPILE) -c `$(CYGPATH_W) '$<'` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(COMPILE) -c -o $@ `$(CYGPATH_W) '$<'` + +.c.lo: +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LTCOMPILE) -c -o $@ $< + +mostlyclean-libtool: + -rm -f *.lo + +clean-libtool: + -rm -rf .libs _libs ID: $(am__tagged_files) $(am__define_uniq_tagged_files); mkid -fID $$unique @@ -550,7 +612,7 @@ @echo "it deletes files that may require special tools to rebuild." clean: clean-am -clean-am: clean-binPROGRAMS clean-generic mostlyclean-am +clean-am: clean-binPROGRAMS clean-generic clean-libtool mostlyclean-am distclean: distclean-am -rm -rf ./$(DEPDIR) @@ -605,7 +667,8 @@ mostlyclean: mostlyclean-am -mostlyclean-am: mostlyclean-compile mostlyclean-generic +mostlyclean-am: mostlyclean-compile mostlyclean-generic \ + mostlyclean-libtool pdf: pdf-am @@ -620,18 +683,18 @@ .MAKE: install-am install-strip .PHONY: CTAGS GTAGS TAGS all all-am check check-am clean \ - clean-binPROGRAMS clean-generic cscopelist-am ctags ctags-am \ - distclean distclean-compile distclean-generic distclean-tags \ - distdir dvi dvi-am html html-am info info-am install \ - install-am install-binPROGRAMS install-data install-data-am \ - install-dvi install-dvi-am install-exec install-exec-am \ - install-html install-html-am install-info install-info-am \ - install-man install-pdf install-pdf-am install-ps \ - install-ps-am install-strip installcheck installcheck-am \ - installdirs maintainer-clean maintainer-clean-generic \ - mostlyclean mostlyclean-compile mostlyclean-generic pdf pdf-am \ - ps ps-am tags tags-am uninstall uninstall-am \ - uninstall-binPROGRAMS + clean-binPROGRAMS clean-generic clean-libtool cscopelist-am \ + ctags ctags-am distclean distclean-compile distclean-generic \ + distclean-libtool distclean-tags distdir dvi dvi-am html \ + html-am info info-am install install-am install-binPROGRAMS \ + install-data install-data-am install-dvi install-dvi-am \ + install-exec install-exec-am install-html install-html-am \ + install-info install-info-am install-man install-pdf \ + install-pdf-am install-ps install-ps-am install-strip \ + installcheck installcheck-am installdirs maintainer-clean \ + maintainer-clean-generic mostlyclean mostlyclean-compile \ + mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \ + tags tags-am uninstall uninstall-am uninstall-binPROGRAMS # Tell versions [3.59,3.63) of GNU make to not export all variables. diff -Nru klavaro-1.9.9/src/plot.c klavaro-3.00/src/plot.c --- klavaro-1.9.9/src/plot.c 2013-07-24 18:38:45.000000000 +0000 +++ klavaro-3.00/src/plot.c 2014-01-07 00:49:20.000000000 +0000 @@ -124,8 +124,8 @@ plot_error_frequencies () { gint i; - GdkColor color; - GdkColor color_black; + GdkRGBA color; + GdkRGBA color_black; GtkDatabox *box; box = GTK_DATABOX (plot.databox); @@ -154,11 +154,11 @@ /* White background */ - gdk_color_parse ("#ffffff", &color); - gtk_widget_modify_bg (plot.databox, GTK_STATE_NORMAL, &color); + gdk_rgba_parse (&color, "#ffffff"); + gtk_widget_override_background_color (plot.databox, GTK_STATE_FLAG_NORMAL, &color); - gdk_color_parse ("#000000", &color_black); - gdk_color_parse (PLOT_GREEN_2, &color); + gdk_rgba_parse (&color_black, "#000000"); + gdk_rgba_parse (&color, PLOT_GREEN_2); /* Point limits */ plot.limits = gtk_databox_points_new (2, plot.lim.x, plot.lim.y, &color_black, 1); @@ -189,8 +189,8 @@ plot_touch_times () { gint i; - GdkColor color; - GdkColor color_black; + GdkRGBA color; + GdkRGBA color_black; GtkDatabox *box; box = GTK_DATABOX (plot.databox); @@ -219,11 +219,11 @@ /* White background */ - gdk_color_parse ("#ffffff", &color); - gtk_widget_modify_bg (plot.databox, GTK_STATE_NORMAL, &color); + gdk_rgba_parse (&color, "#ffffff"); + gtk_widget_override_background_color (plot.databox, GTK_STATE_FLAG_NORMAL, &color); - gdk_color_parse ("#000000", &color_black); - gdk_color_parse (PLOT_PURPLE, &color); + gdk_rgba_parse (&color_black, "#000000"); + gdk_rgba_parse (&color, PLOT_PURPLE); /* Point limits */ plot.limits = gtk_databox_points_new (2, plot.lim.x, plot.lim.y, &color_black, 1); @@ -290,8 +290,8 @@ gchar *tmp_locale; gchar tmp_str[2000]; FILE *fh; - GdkColor color, color2, color3; - GdkColor color_black; + GdkRGBA color, color2, color3; + GdkRGBA color_black; GtkDatabox *box; box = GTK_DATABOX (plot.databox); @@ -302,10 +302,10 @@ gtk_widget_hide (plot.table); plot_type = field; + gtk_widget_set_tooltip_text (get_wg ("entry_stat_x"), _("Character")); /* Error frequencies or touch times */ - gtk_widget_set_tooltip_text (get_wg ("entry_stat_x"), _("Character")); if (field == 6) { plot_error_frequencies (); @@ -498,14 +498,14 @@ if (i == 0) { g_message ("no valid data to plot."); - gdk_color_parse ("#ccccce", &color); - gtk_widget_modify_bg (plot.databox, GTK_STATE_NORMAL, &color); + gdk_rgba_parse (&color, "#ccccce"); + gtk_widget_override_background_color (plot.databox, GTK_STATE_FLAG_NORMAL, &color); return; } else { - gdk_color_parse ("#ffffff", &color); - gtk_widget_modify_bg (plot.databox, GTK_STATE_NORMAL, &color); + gdk_rgba_parse (&color, "#ffffff"); + gtk_widget_override_background_color (plot.databox, GTK_STATE_FLAG_NORMAL, &color); } n_points = i; @@ -518,35 +518,35 @@ plot.lim.y[0] = 0; plot.lim.y[1] = 100; - gdk_color_parse ("#000000", &color_black); + gdk_rgba_parse (&color_black, "#000000"); switch (field) { case 1: plot.lim.y[0] = 60; plot.goal.y[0] = tutor_goal_accuracy (); - gdk_color_parse (PLOT_GREEN, &color); - gdk_color_parse (PLOT_GREEN_2, &color2); - gdk_color_parse (PLOT_GREEN_3, &color3); + gdk_rgba_parse (&color, PLOT_GREEN); + gdk_rgba_parse (&color2, PLOT_GREEN_2); + gdk_rgba_parse (&color3, PLOT_GREEN_3); break; case 2: plot.lim.y[1] = 120; plot.goal.y[0] = tutor_goal_speed (); - gdk_color_parse (PLOT_RED, &color); - gdk_color_parse (PLOT_RED_2, &color2); - gdk_color_parse (PLOT_RED_3, &color3); + gdk_rgba_parse (&color, PLOT_RED); + gdk_rgba_parse (&color2, PLOT_RED_2); + gdk_rgba_parse (&color3, PLOT_RED_3); break; case 3: plot.goal.y[0] = tutor_goal_fluidity (); - gdk_color_parse (PLOT_BLUE, &color); - gdk_color_parse (PLOT_BLUE_2, &color2); - gdk_color_parse (PLOT_BLUE_3, &color3); + gdk_rgba_parse (&color, PLOT_BLUE); + gdk_rgba_parse (&color2, PLOT_BLUE_2); + gdk_rgba_parse (&color3, PLOT_BLUE_3); break; case 4: plot.lim.y[1] = 10; plot.goal.y[0] = -1; - gdk_color_parse (PLOT_ORANGE, &color); - gdk_color_parse (PLOT_ORANGE_2, &color2); - gdk_color_parse (PLOT_ORANGE_3, &color3); + gdk_rgba_parse (&color, PLOT_ORANGE); + gdk_rgba_parse (&color2, PLOT_ORANGE_2); + gdk_rgba_parse (&color3, PLOT_ORANGE_3); } plot.goal.y[1] = plot.goal.y[0]; @@ -580,12 +580,12 @@ gtk_databox_graph_add (box, plot.line_outter); /* Goal limit */ - gdk_color_parse ("#999999", &color3); + gdk_rgba_parse (&color3, "#999999"); plot.line_goal = gtk_databox_lines_new (2, plot.goal.x, plot.goal.y, &color3, 1); gtk_databox_graph_add (box, plot.line_goal); /* Grid */ - gdk_color_parse ("#dddddd", &color); + gdk_rgba_parse (&color, "#dddddd"); if (field == 1) plot.grid = gtk_databox_grid_new (3, 3, &color, 1); else if (field == 2) @@ -607,11 +607,12 @@ gchar *xstr; gchar *ystr; GtkDatabox *box; - gint width = 600; + gint width; box = GTK_DATABOX (plot.databox); - gdk_drawable_get_size (GDK_DRAWABLE (gtk_databox_get_backing_pixmap (box)), &width, NULL); + gtk_window_get_size (get_win ("window_stat"), &width, NULL); + width -= 22; n = rintf (x / width * (DATA_POINTS + 2)) - 1; // Round integer from float if (n == n_prev) diff -Nru klavaro-1.9.9/src/top10.c klavaro-3.00/src/top10.c --- klavaro-1.9.9/src/top10.c 2013-07-24 18:38:45.000000000 +0000 +++ klavaro-3.00/src/top10.c 2014-01-04 16:58:41.000000000 +0000 @@ -105,24 +105,24 @@ */ cmb = GTK_COMBO_BOX (get_wg ("combobox_stat_module")); for (i = 0; i < 4; i++) - gtk_combo_box_remove_text (cmb, 0); + gtk_combo_box_text_remove (GTK_COMBO_BOX_TEXT (cmb), 0); str = g_strdup_printf ("1 - %s", _("Basic course")); - gtk_combo_box_append_text (cmb, str); + gtk_combo_box_text_append_text (GTK_COMBO_BOX_TEXT (cmb), str); g_free (str); str = g_strdup_printf ("2 - %s", _("Adaptability")); - gtk_combo_box_append_text (cmb, str); + gtk_combo_box_text_append_text (GTK_COMBO_BOX_TEXT (cmb), str); g_free (str); str = g_strdup_printf ("3 - %s", _("Speed")); - gtk_combo_box_append_text (cmb, str); + gtk_combo_box_text_append_text (GTK_COMBO_BOX_TEXT (cmb), str); g_free (str); str = g_strdup_printf ("4 - %s", _("Fluidity")); - gtk_combo_box_append_text (cmb, str); + gtk_combo_box_text_append_text (GTK_COMBO_BOX_TEXT (cmb), str); g_free (str); // Fix missing translation bug cmb = GTK_COMBO_BOX (get_wg ("combobox_top10")); - gtk_combo_box_remove_text (cmb, 0); - gtk_combo_box_append_text (cmb, _("Local scores")); - gtk_combo_box_append_text (cmb, _("External scores")); + gtk_combo_box_text_remove (GTK_COMBO_BOX_TEXT (cmb), 0); + gtk_combo_box_text_append_text (GTK_COMBO_BOX_TEXT (cmb), _("Local scores")); + gtk_combo_box_text_append_text (GTK_COMBO_BOX_TEXT (cmb), _("External scores")); } void diff -Nru klavaro-1.9.9/src/translation.c klavaro-3.00/src/translation.c --- klavaro-1.9.9/src/translation.c 2013-07-24 18:38:45.000000000 +0000 +++ klavaro-3.00/src/translation.c 2014-01-13 23:09:57.000000000 +0000 @@ -50,17 +50,20 @@ {"bg","България"}, {"br","Brasil"}, {"ca","Canada"}, + {"ch","Schweiz / Suisse"}, + {"cn","中华人民共和国"}, {"cz","Česká republika"}, - {"dk","Danmark"}, + {"dk","Danmark"}, /* 10 */ {"de","Deutschland"}, {"eo","Esperantujo"}, {"es","España"}, {"eu","Euskal Herria"}, + {"fi","Suomi"}, {"fr","France"}, {"gr","Ελλάδα"}, {"il","ישראל"}, {"hu","Magyarország"}, - {"it","Italia"}, + {"it","Italia"}, /* 20 */ {"jp","日本 (Nippon)"}, {"kk","Қазақстан"}, {"no","Norge"}, @@ -70,12 +73,9 @@ {"ru","Россия"}, {"se","Sverige"}, {"tr","Türkiye"}, - {"ua","Україна"}, + {"ua","Україна"}, /* 30 */ {"uk","United Kingdom"}, {"us","USA"}, - {"cn","中华人民共和国"}, - {"ch","Schweiz / Suisse"}, - {"",""}, {"",""}, {"",""}, {"",""}, @@ -348,9 +348,8 @@ if (lang_ok == FALSE) { g_free (tmp_code); - //tmp_code = g_strdup ("eo"); tmp_code = g_strdup ("C"); - g_message ("as your prefered locales aren't available, " + g_message ("as your preferred locale isn't available, " "we are using this neutral one: \"%s\"", tmp_code); } @@ -379,17 +378,19 @@ cmb = GTK_COMBO_BOX (get_wg ("combobox_language")); tmp_code = main_preferences_get_string ("interface", "language"); - if (tmp_code == NULL) + if (tmp_code == NULL || g_str_equal ("en_US", tmp_code)) { - g_message ("NULL language code detected. So, using \"C\"."); + g_message ("Using \"C\" as language code."); main_preferences_set_string ("interface", "language", "C"); + if (tmp_code) + g_free (tmp_code); tmp_code = g_strdup ("C"); } - gtk_combo_box_remove_text (cmb, 0); + gtk_combo_box_text_remove (GTK_COMBO_BOX_TEXT (cmb), 0); for (i = 0, i_env = -1; i < lang_num; i++) { langcode = g_strdup_printf ("%s (%s)", lang[i].name, lang[i].code); - gtk_combo_box_append_text (cmb, langcode); + gtk_combo_box_text_append_text (GTK_COMBO_BOX_TEXT (cmb), langcode); if (g_str_equal (lang[i].code, tmp_code)) i_env = i; else if (g_str_has_prefix (tmp_code, lang[i].code)) @@ -415,12 +416,7 @@ } recur = FALSE; - if (tmp_code[0] == 'C') - { - g_free (tmp_code); - tmp_code = g_strdup ("en"); - } - if (tmp_code[0] == _("en")[0] && tmp_code[1] == _("en")[1]) + if (g_str_has_prefix (tmp_code, "en") || g_str_equal (tmp_code, "C")) gtk_widget_show (get_wg ("checkbutton_speech")); else gtk_widget_hide (get_wg ("checkbutton_speech")); @@ -614,7 +610,6 @@ "We do aim to develop the skill of typing, making it an automatic reflex akin to the acts of walking, talking, etc. " "After reaching this goal, the act of typing will become automatic and require little concentration. " "Then you will be able to pay attention to the real meaning of the text."); - /* English typo: minimun -> minimum */ gchar *fluid3 = _("These exercises are longer. Each exercise consists of three paragraphs and " "the emphasis is placed on correctness and rhythm, with a minimum speed requirement. " "Here you will be required to use the backspace key to correct any mistakes. " diff -Nru klavaro-1.9.9/src/translation.h klavaro-3.00/src/translation.h --- klavaro-1.9.9/src/translation.h 2013-08-15 16:57:47.000000000 +0000 +++ klavaro-3.00/src/translation.h 2014-01-13 23:06:06.000000000 +0000 @@ -46,6 +46,7 @@ "Polski (pl) [qwerty_pl_us]\n" \ "Português (pt_BR) [qwerty_br_abnt2]\n" \ "Русский (ru) [jtsuken_ru]\n" \ +"Suomen kieli (fi) [querty_se]\n"\ "Svenska (sv) [qwerty_se]\n" \ "తెలుగు (te) [qwerty_us]\n" \ "Українська (uk) [jtsuken_ua]\n" \ diff -Nru klavaro-1.9.9/src/tutor.c klavaro-3.00/src/tutor.c --- klavaro-1.9.9/src/tutor.c 2013-07-24 18:38:45.000000000 +0000 +++ klavaro-3.00/src/tutor.c 2014-01-08 17:49:12.000000000 +0000 @@ -53,6 +53,44 @@ gint correcting; } tutor; +struct +{ + struct + { + double accuracy; + double speed; + } basic; + struct + { + double accuracy; + double speed; + double accuracy_learning; + double accuracy_improving; + double accuracy_reaching; + } adapt; + struct + { + double accuracy; + double speed; + double speed_crawling; + double speed_stepping; + double speed_walking; + double speed_jogging; + double speed_running; + double speed_professional; + double speed_racer; + double speed_flying; + } velo; + struct + { + double accuracy; + double speed; + double fluidity; + double fluidity_stumbling; + double speed_flying; + } fluid; +} goal; + extern gchar *OTHER_DEFAULT; /******************************************************************************* @@ -98,15 +136,89 @@ tutor.tmr = g_timer_new (); } +#define GOAL_GSET(MODULE, GOAL, DEFAULT_VAL) \ + if (main_preferences_exist ("goals", #MODULE "_" #GOAL))\ + goal.MODULE.GOAL = (gdouble) main_preferences_get_int ("goals", #MODULE "_" #GOAL);\ + else\ + {\ + goal.MODULE.GOAL = DEFAULT_VAL;\ + main_preferences_set_int ("goals", #MODULE "_" #GOAL, DEFAULT_VAL);\ + } +#define LEVEL_GSET(MODULE, GOAL, DEFAULT_VAL) \ + if (main_preferences_exist ("levels", #MODULE "_" #GOAL))\ + goal.MODULE.GOAL = (gdouble) main_preferences_get_int ("levels", #MODULE "_" #GOAL);\ + else\ + {\ + goal.MODULE.GOAL = DEFAULT_VAL;\ + main_preferences_set_int ("levels", #MODULE "_" #GOAL, DEFAULT_VAL);\ + } +void +tutor_init_goals () +{ + GOAL_GSET (basic, accuracy, 95); + GOAL_GSET (basic, speed, 10); + GOAL_GSET (adapt, accuracy, 98); + GOAL_GSET (adapt, speed, 10); + GOAL_GSET (velo, accuracy, 95); + GOAL_GSET (velo, speed, 50); + GOAL_GSET (fluid, accuracy, 97); + GOAL_GSET (fluid, speed, 50); + GOAL_GSET (fluid, fluidity, 70); + + LEVEL_GSET (adapt, accuracy_learning, 50); + LEVEL_GSET (adapt, accuracy_improving, 90); + LEVEL_GSET (adapt, accuracy_reaching, 95); + + LEVEL_GSET (velo, speed_crawling, 10); + LEVEL_GSET (velo, speed_stepping, 20); + LEVEL_GSET (velo, speed_walking, 30); + LEVEL_GSET (velo, speed_jogging, 40); + LEVEL_GSET (velo, speed_running, 60); + LEVEL_GSET (velo, speed_professional, 70); + LEVEL_GSET (velo, speed_racer, 80); + LEVEL_GSET (velo, speed_flying, 90); + + LEVEL_GSET (fluid, fluidity_stumbling, 60); + LEVEL_GSET (fluid, speed_flying, 90); + + /* + g_printf ("basic accur: %.0f\n", goal.basic.accuracy); + g_printf ("basic speed: %.0f\n", goal.basic.speed); + g_printf ("adapt accur: %.0f\n", goal.adapt.accuracy); + g_printf ("adapt speed: %.0f\n", goal.adapt.speed); + g_printf ("velo accur: %.0f\n", goal.velo.accuracy); + g_printf ("velo speed: %.0f\n", goal.velo.speed); + g_printf ("fluid accur: %.0f\n", goal.fluid.accuracy); + g_printf ("fluid speed: %.0f\n", goal.fluid.speed); + g_printf ("fluid fluidity: %.0f\n", goal.fluid.fluidity); + + g_printf ("adapt learning: %.0f\n", goal.adapt.accuracy_learning); + g_printf ("adapt improving: %.0f\n", goal.adapt.accuracy_improving); + g_printf ("adapt reaching: %.0f\n", goal.adapt.accuracy_reaching); + + g_printf ("velo crawling: %.0f\n", goal.velo.speed_crawling); + g_printf ("velo stepping: %.0f\n", goal.velo.speed_stepping); + g_printf ("velo walking: %.0f\n", goal.velo.speed_walking); + g_printf ("velo jogging: %.0f\n", goal.velo.speed_jogging); + g_printf ("velo running: %.0f\n", goal.velo.speed_running); + g_printf ("velo professional: %.0f\n", goal.velo.speed_professional); + g_printf ("velo racer: %.0f\n", goal.velo.speed_racer); + g_printf ("velo flying: %.0f\n", goal.velo.speed_flying); + + g_printf ("fluid stumbling: %.0f\n", goal.fluid.fluidity_stumbling); + g_printf ("fluid flying: %.0f\n", goal.fluid.speed_flying); + */ +} + gdouble tutor_goal_accuracy () { switch (tutor.type) { - case TT_BASIC: return 95.0; - case TT_ADAPT: return 98.0; - case TT_VELO: return 95.0; - case TT_FLUID: return 97.0; + case TT_BASIC: return goal.basic.accuracy; + case TT_ADAPT: return goal.adapt.accuracy; + case TT_VELO: return goal.velo.accuracy; + case TT_FLUID: return goal.fluid.accuracy; } return -1.0; } @@ -116,10 +228,10 @@ { switch (tutor.type) { - case TT_BASIC: return 10.0; - case TT_ADAPT: return 10.0; - case TT_VELO: return 50.0; - case TT_FLUID: return 50.0; + case TT_BASIC: return goal.basic.speed; + case TT_ADAPT: return goal.adapt.speed; + case TT_VELO: return goal.velo.speed; + case TT_FLUID: return goal.fluid.speed; } return -1.0; } @@ -132,11 +244,23 @@ case TT_BASIC: case TT_ADAPT: case TT_VELO: return 0.0; - case TT_FLUID: return 70.0; + case TT_FLUID: return goal.fluid.fluidity; } return -1.0; } +gdouble +tutor_goal_level (guint n) +{ + switch (tutor.type) + { + case TT_ADAPT: if (n > 2) return -1.0; return (&goal.adapt.accuracy_learning) [n]; + case TT_VELO: if (n > 7) return -2.0; return (&goal.velo.speed_crawling) [n]; + case TT_FLUID: if (n > 1) return -3.0; return (&goal.fluid.fluidity_stumbling) [n]; + } + return -4.0; +} + /********************************************************************** * Initialize the course */ @@ -309,7 +433,7 @@ gchar *tmp_name; gchar *text; gchar *color_bg; - GdkColor color; + GdkRGBA color; GtkWidget *wg; GtkLabel *wg_label; GtkTextView *wg_text; @@ -347,8 +471,8 @@ color_bg = main_preferences_get_string ("colors", "text_intro_bg"); else color_bg = g_strdup (TUTOR_WHITE); - gdk_color_parse (color_bg, &color); - gtk_widget_modify_base (get_wg ("text_tutor"), GTK_STATE_INSENSITIVE, &color); + gdk_rgba_parse (&color, color_bg); + gtk_widget_override_background_color (get_wg ("text_tutor"), GTK_STATE_FLAG_INSENSITIVE, &color); g_free (color_bg); wg = get_wg ("scrolledwindow_tutor_main"); @@ -366,7 +490,7 @@ gchar *tmp_name; gchar *text; gchar *color_bg; - GdkColor color; + GdkRGBA color; GtkWidget *wg; GtkTextBuffer *buf; GtkTextIter start; @@ -418,13 +542,16 @@ color_bg = main_preferences_get_string ("colors", "char_untouched_bg"); else color_bg = g_strdup (TUTOR_CREAM); - gdk_color_parse (color_bg, &color); - gtk_widget_modify_base (get_wg ("text_tutor"), GTK_STATE_INSENSITIVE, &color); + gdk_rgba_parse (&color, color_bg); + gtk_widget_override_background_color (get_wg ("text_tutor"), GTK_STATE_FLAG_INSENSITIVE, &color); g_free (color_bg); gtk_text_buffer_get_bounds (buf, &start, &end); gtk_text_iter_backward_char (&end); gtk_text_buffer_apply_tag_by_name (buf, "lesson_font", &start, &end); + + /* Trying to minimize automatic wrapping because of cursor blinking: + */ end = start; while (gtk_text_iter_forward_word_end (&end)) { @@ -1083,7 +1210,8 @@ wg = get_wg ("text_tutor"); buf = gtk_text_view_get_buffer (GTK_TEXT_VIEW (wg)); - // Begin the accuracy + /* Begin the accuracy */ + ; tmp_str = g_strconcat ("\n", _("STATISTICS"), "\n", _("Elapsed time:"), " %i ", dngettext (PACKAGE, "minute and", "minutes and", minutes), @@ -1094,7 +1222,7 @@ g_free (tmp_str); gtk_text_buffer_insert_at_cursor (buf, tmp_str2, strlen (tmp_str2)); - // Paint the accuracy + /* Paint the accuracy */ g_free (tmp_str2); tmp_str2 = g_strdup_printf ("%.1f%%", accuracy); gtk_text_buffer_insert_at_cursor (buf, tmp_str2, strlen (tmp_str2)); @@ -1568,7 +1696,7 @@ GtkWidget *wg; wg = get_wg ("togglebutton_tutor_beep"); - if ((GTK_TOGGLE_BUTTON (wg))->active) + if (gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (wg))) gdk_beep (); } @@ -1588,7 +1716,7 @@ if (espeak_OK == FALSE) return; - if (!GTK_WIDGET_VISIBLE (wg) ) + if (!gtk_widget_get_visible (wg) ) return; if (!gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (wg)) ) return; diff -Nru klavaro-1.9.9/src/tutor.h klavaro-3.00/src/tutor.h --- klavaro-1.9.9/src/tutor.h 2013-08-15 17:41:40.000000000 +0000 +++ klavaro-3.00/src/tutor.h 2014-01-08 12:47:42.000000000 +0000 @@ -24,7 +24,7 @@ # define TUTOR_BLACK "#000000" # define TUTOR_GRAY "#dddddd" # define TUTOR_GRAY_LITE "#eeece8" -# define TUTOR_CREAM "#f0f2ca" /* "#faf8f8" before */ +# define TUTOR_CREAM "#f8f4f2" /* "#f0f2ca" <== "#faf8f8" before */ # define TUTOR_WHITE "#fffefe" typedef enum @@ -71,12 +71,16 @@ void tutor_init_timers (void); +void tutor_init_goals (void); + gdouble tutor_goal_accuracy (void); gdouble tutor_goal_speed (void); gdouble tutor_goal_fluidity (void); +gdouble tutor_goal_level (guint n); + /* * Auxiliar functions */ diff -Nru klavaro-1.9.9/src/velocity.c klavaro-3.00/src/velocity.c --- klavaro-1.9.9/src/velocity.c 2013-08-15 17:39:47.000000000 +0000 +++ klavaro-3.00/src/velocity.c 2014-01-09 13:05:51.000000000 +0000 @@ -418,51 +418,40 @@ * Comments */ if (accuracy < tutor_goal_accuracy ()) - { - /* - tmp_str = g_strdup_printf (_(" Your accuracy rate is not good enough.\n" - " I only can rely on you if it is greater than %.0f%%.\n" - " Please calm down and try it again.\n"), tutor_goal_accuracy ()); - */ tmp_str = g_strdup (":-(\n"); - } - else if (velocity < 10) - tmp_str = - g_strdup (_(" You are just beginning.\n" + else if (velocity < tutor_goal_level(0)) + tmp_str = g_strdup (_(" You are just beginning.\n" " Be patient, try it again every day, rest and don't worry so much:\n" " persistence and practice will improve your velocity.\n")); - else if (velocity < 20) - tmp_str = g_strdup (_(" Still away from the highway. You can make better...\n" - " Try at least 20 WPM.\n")); - else if (velocity < 30) - tmp_str = g_strdup (_(" You are doing well, but need to go faster.\n" - " And don't forget the accuracy. Try to get 30 WPM.\n")); - else if (velocity < 40) - tmp_str = - g_strdup (_(" Fine. Now you need to start running.\n" - " Can you reach 40 WPM?\n")); + else if (velocity < tutor_goal_level(1)) + tmp_str = g_strdup_printf (_(" Still away from the highway. You can make better...\n" + " Try to reach at least %.0f WPM.\n"), tutor_goal_level(1)); + else if (velocity < tutor_goal_level(2)) + tmp_str = g_strdup_printf (_(" You are doing well, but need to go faster.\n" + " And don't forget the accuracy. Try to get %.0f WPM.\n"), tutor_goal_level(2)); + else if (velocity < tutor_goal_level(3)) + tmp_str = g_strdup_printf (_(" Fine. Now you need to start running.\n" + " Can you reach %.0f WPM?\n"), tutor_goal_level(3)); else if (velocity < tutor_goal_speed ()) tmp_str = g_strdup_printf (_(" Very good. You are almost there.\n " - "Can you finally reach %.0f WPM?\n"), - tutor_goal_speed ()); - else if (velocity < 60) - tmp_str = - g_strdup (_(" Excellent. For this course, that is enough.\n" - " Try now the fluidness exercises, OK?\n")); - else if (velocity < 70) - tmp_str = - g_strdup (_(" Fast! Are you training for a competition?\n" - " So, try to get 70 WPM!\n")); - else if (velocity < 80) - tmp_str = g_strdup (_(" Top of \"qwerty\"." - " Now it's time to change to the Dvorak mode.\n" - " Are you afraid of reaching 80 WPM?\n")); - else if (velocity < 90) - tmp_str = g_strdup (_(" Dvorak mode dominated!\n Can you fly at 90 WPM?\n")); + "Can you finally reach %.0f WPM?\n"), tutor_goal_speed ()); + else if (velocity < tutor_goal_level(4)) + tmp_str = g_strdup (_(" Excellent. For this course, that is enough.\n" + " Try now the fluidness exercises, OK?\n")); + else if (velocity < tutor_goal_level(5)) + tmp_str = g_strdup_printf (_(" Fast! Are you a professional?\n" + " So, try to get %.0f WPM!\n"), tutor_goal_level(5)); + else if (velocity < tutor_goal_level(6)) + /* Translators: Speed Racer is a reference to a Japanese anime franchise + about automobile racing, also known as Mach GoGoGo. */ + tmp_str = g_strdup_printf (_(" Ranking good, Speed Racer!" + " Are you afraid of reaching %.0f WPM?\n"), tutor_goal_level(6)); + else if (velocity < tutor_goal_level(7)) + /* Translators: feel free to change the reference to that martial art, if you find another good analogy. */ + tmp_str = g_strdup_printf (_(" Kunf-fu mastering!\n Can you fly at %.0f WPM?\n"), tutor_goal_level(7)); else - tmp_str = - g_strdup (_ - (" Dvorak master!\n" + /* Translators: Dvorak here means that infamous ergonomic keyboard layout. */ + tmp_str = g_strdup (_(" Dvorak master!\n" " I have no words to express my admiration!\n")); wg = get_wg ("text_tutor"); diff -Nru klavaro-1.9.9/TODO klavaro-3.00/TODO --- klavaro-1.9.9/TODO 2013-08-01 13:27:47.000000000 +0000 +++ klavaro-3.00/TODO 2014-01-21 23:41:20.000000000 +0000 @@ -1,15 +1,18 @@ -_______________________________________________________________ -Simple list of things that could be done in future (long term) releases: +_______________________________________________________________________ +Simple list of things that could be done in future releases: -- Possibility to change the goals for accuracy, speed, fluidness, at least from the preferences file. -- Collect wrong words (or slow typed ones), and create special exercises with them (velocity module). -- Allow the user to set his full name, which will appear in the web, at Top 10 (or Top 200). -- Print report after completion of a fluidity session. -- Local network support for local scores (libavahi?); zeroconf allows sharing ranking data among users connected to the same network. +- Add Finnish .paragraphs and .words +- "make better" --> "do better" +- "Kunf-Fu" --> "Kung-fu" +- "mastering" --> "mastery" __________________________________ And suggestions that won't be done: +- Local network support for local scores (libavahi?); zeroconf allows sharing ranking data among users connected to the same network. (too complicated, volunteers, please). +- Collect wrong words (or slow typed ones), and create special exercises with them in the velocity module. (too much effort, don't think it is worth). +- Print report after completion of a fluidity session. (printscreen should be enough) +- Allow the user to delete his full name from the web, at Top 10 (or Top 200). No way to make this secure, the user should ask the maintainer to do that. - Get rid of the main menu window, moving all actions there to the tutor window (no reason to change the "game" style of the application). - Add some kind of lessons for the numeric pad (the user may create custom lessons for this). - Support for AltGr symbols (also here, the user may create custom lessons).