diff -Nru gcalctool-5.24.1/ChangeLog gcalctool-5.24.2/ChangeLog --- gcalctool-5.24.1/ChangeLog 2008-10-20 00:16:51.000000000 +0200 +++ gcalctool-5.24.2/ChangeLog 2008-11-24 23:42:16.000000000 +0100 @@ -7,6 +7,31 @@ gcalctool change history. ========================= +2008-11-25 Robert Ancell + + * README: + NEWS: + configure.in: + Released a gcalctool v5.24.2 tarball. + +2008-11-23 Robert Ancell + + * Remember setting to ignore change mode warning between instances + (Robert Ancell, Bug #556407) + * Removed double conversion in boolean and 32 bit and 16 bit mask operations so + they can handle larger numbers (Robert Ancell, Bug #509988) + * Re-enable trigonometric types which have been disabled since 2.24.0 + (Robert Ancell, Bug #559575) + +2008-11-06 Robert Ancell + + * gcalctool/get.c: Read configuration from /apps/gcalctool not /apps/(appname) as + the application name is different when symlinked (Matt Keenan, Bug #559260). + +2008-11-02 Robert Ancell + + * Open help with gtk_show_uri() (Thomas Andersen, Bug #556207). + 2008-10-20 Robert Ancell * README: diff -Nru gcalctool-5.24.1/configure gcalctool-5.24.2/configure --- gcalctool-5.24.1/configure 2008-10-20 00:24:03.000000000 +0200 +++ gcalctool-5.24.2/configure 2008-11-24 23:43:03.000000000 +0100 @@ -2327,7 +2327,7 @@ # Define the identity of the package. PACKAGE=gcalctool - VERSION=5.24.1 + VERSION=5.24.2 cat >>confdefs.h <<_ACEOF @@ -6660,7 +6660,7 @@ -pkg_modules="gtk+-2.0 >= 2.11.6 gobject-2.0 gdk-x11-2.0 glib-2.0 atk gdk-pixbuf-2.0 libglade-2.0" +pkg_modules="gtk+-2.0 >= 2.14.0 gobject-2.0 gdk-x11-2.0 glib-2.0 atk gdk-pixbuf-2.0 libglade-2.0" pkg_failed=no { echo "$as_me:$LINENO: checking for PACKAGE" >&5 diff -Nru gcalctool-5.24.1/configure.in gcalctool-5.24.2/configure.in --- gcalctool-5.24.1/configure.in 2008-10-20 00:16:58.000000000 +0200 +++ gcalctool-5.24.2/configure.in 2008-11-24 23:42:16.000000000 +0100 @@ -1,7 +1,7 @@ Process this file with autoconf to produce a configure script. AC_INIT(configure.in) -AM_INIT_AUTOMAKE(gcalctool, 5.24.1) +AM_INIT_AUTOMAKE(gcalctool, 5.24.2) AC_CONFIG_MACRO_DIR([m4]) AM_CONFIG_HEADER(config.h) AM_MAINTAINER_MODE @@ -18,7 +18,7 @@ AC_SUBST(ATK_CFLAGS) AC_SUBST(ATK_LIBS) -pkg_modules="gtk+-2.0 >= 2.11.6 gobject-2.0 gdk-x11-2.0 glib-2.0 atk gdk-pixbuf-2.0 libglade-2.0" +pkg_modules="gtk+-2.0 >= 2.14.0 gobject-2.0 gdk-x11-2.0 glib-2.0 atk gdk-pixbuf-2.0 libglade-2.0" PKG_CHECK_MODULES(PACKAGE, [$pkg_modules]) AC_SUBST(PACKAGE_CFLAGS) AC_SUBST(PACKAGE_LIBS) diff -Nru gcalctool-5.24.1/debian/changelog gcalctool-5.24.2/debian/changelog --- gcalctool-5.24.1/debian/changelog 2008-11-27 22:19:22.000000000 +0100 +++ gcalctool-5.24.2/debian/changelog 2008-11-27 22:19:22.000000000 +0100 @@ -1,3 +1,19 @@ +gcalctool (5.24.2-0ubuntu1) intrepid-proposed; urgency=low + + * New upstream version (LP: #302915). + - Remember setting to ignore change mode warning between instance + (LP: #281541). + - Removed double conversion in boolean and 32 bit and 16 bit to handle + larger numbers (LP: #181763). + - Update on the build-depends from the 2.11.6 to 2.14.0 + + Update of debian/configure.in and debian/configure to reflect that. + + Update of debian/patches/01_lpi.patch since it patches + debian/configure.in. + + Update of debian/patches/02_autoconf.patch since it patches + debian/configure. + + -- Christophe Sauthier Thu, 27 Nov 2008 20:46:19 +0100 + gcalctool (5.24.1-0ubuntu1) intrepid; urgency=low * New upstream version (LP: #286320) diff -Nru gcalctool-5.24.1/debian/control gcalctool-5.24.2/debian/control --- gcalctool-5.24.1/debian/control 2008-11-27 22:19:22.000000000 +0100 +++ gcalctool-5.24.2/debian/control 2008-11-27 22:19:22.000000000 +0100 @@ -4,7 +4,7 @@ XSBC-Original-Maintainer: Sebastien Bacher Maintainer: Ubuntu Desktop Team Uploaders: Debian GNOME Maintainers , Sebastian Dröge -Build-Depends: cdbs, debhelper (>= 5), libgtk2.0-dev (>= 2.11.6), libgconf2-dev (>=2.6.1-2), scrollkeeper, gnome-pkg-tools (>= 0.10), libxml-parser-perl, flex, bison, gnome-doc-utils (>= 0.3.2), liblaunchpad-integration-dev, libglade2-dev +Build-Depends: cdbs, debhelper (>= 5), libgtk2.0-dev (>= 2.14.0), libgconf2-dev (>=2.6.1-2), scrollkeeper, gnome-pkg-tools (>= 0.10), libxml-parser-perl, flex, bison, gnome-doc-utils (>= 0.3.2), liblaunchpad-integration-dev, libglade2-dev Standards-Version: 3.7.3 Package: gcalctool diff -Nru gcalctool-5.24.1/debian/control.in gcalctool-5.24.2/debian/control.in --- gcalctool-5.24.1/debian/control.in 2008-11-27 22:19:22.000000000 +0100 +++ gcalctool-5.24.2/debian/control.in 2008-11-27 22:19:22.000000000 +0100 @@ -4,7 +4,7 @@ XSBC-Original-Maintainer: Sebastien Bacher Maintainer: Ubuntu Desktop Team Uploaders: @GNOME_TEAM@ -Build-Depends: cdbs, debhelper (>= 5), libgtk2.0-dev (>= 2.11.6), libgconf2-dev (>=2.6.1-2), scrollkeeper, gnome-pkg-tools (>= 0.10), libxml-parser-perl, flex, bison, gnome-doc-utils (>= 0.3.2), liblaunchpad-integration-dev, libglade2-dev +Build-Depends: cdbs, debhelper (>= 5), libgtk2.0-dev (>= 2.14.0), libgconf2-dev (>=2.6.1-2), scrollkeeper, gnome-pkg-tools (>= 0.10), libxml-parser-perl, flex, bison, gnome-doc-utils (>= 0.3.2), liblaunchpad-integration-dev, libglade2-dev Standards-Version: 3.7.3 Package: gcalctool diff -Nru gcalctool-5.24.1/debian/patches/01_lpi.patch gcalctool-5.24.2/debian/patches/01_lpi.patch --- gcalctool-5.24.1/debian/patches/01_lpi.patch 2008-11-27 22:19:22.000000000 +0100 +++ gcalctool-5.24.2/debian/patches/01_lpi.patch 2008-11-27 22:19:22.000000000 +0100 @@ -5,8 +5,8 @@ AC_SUBST(ATK_CFLAGS) AC_SUBST(ATK_LIBS) --pkg_modules="gtk+-2.0 >= 2.11.6 gobject-2.0 gdk-x11-2.0 glib-2.0 atk gdk-pixbuf-2.0 libglade-2.0" -+pkg_modules="gtk+-2.0 >= 2.11.6 gobject-2.0 gdk-x11-2.0 glib-2.0 atk gdk-pixbuf-2.0 libglade-2.0 launchpad-integration" +-pkg_modules="gtk+-2.0 >= 2.14.0 gobject-2.0 gdk-x11-2.0 glib-2.0 atk gdk-pixbuf-2.0 libglade-2.0" ++pkg_modules="gtk+-2.0 >= 2.14.0 gobject-2.0 gdk-x11-2.0 glib-2.0 atk gdk-pixbuf-2.0 libglade-2.0 launchpad-integration" PKG_CHECK_MODULES(PACKAGE, [$pkg_modules]) AC_SUBST(PACKAGE_CFLAGS) AC_SUBST(PACKAGE_LIBS) diff -Nru gcalctool-5.24.1/debian/patches/02_autoconf.patch gcalctool-5.24.2/debian/patches/02_autoconf.patch --- gcalctool-5.24.1/debian/patches/02_autoconf.patch 2008-11-27 22:19:22.000000000 +0100 +++ gcalctool-5.24.2/debian/patches/02_autoconf.patch 2008-11-27 22:19:22.000000000 +0100 @@ -5,8 +5,8 @@ --pkg_modules="gtk+-2.0 >= 2.11.6 gobject-2.0 gdk-x11-2.0 glib-2.0 atk gdk-pixbuf-2.0 libglade-2.0" -+pkg_modules="gtk+-2.0 >= 2.11.6 gobject-2.0 gdk-x11-2.0 glib-2.0 atk gdk-pixbuf-2.0 libglade-2.0 launchpad-integration" +-pkg_modules="gtk+-2.0 >= 2.14.0 gobject-2.0 gdk-x11-2.0 glib-2.0 atk gdk-pixbuf-2.0 libglade-2.0" ++pkg_modules="gtk+-2.0 >= 2.14.0 gobject-2.0 gdk-x11-2.0 glib-2.0 atk gdk-pixbuf-2.0 libglade-2.0 launchpad-integration" pkg_failed=no { echo "$as_me:$LINENO: checking for PACKAGE" >&5 diff -Nru gcalctool-5.24.1/gcalctool/functions.c gcalctool-5.24.2/gcalctool/functions.c --- gcalctool-5.24.1/gcalctool/functions.c 2008-10-11 05:29:36.000000000 +0200 +++ gcalctool-5.24.2/gcalctool/functions.c 2008-11-24 23:42:14.000000000 +0100 @@ -44,6 +44,14 @@ } +void +do_trigtype(enum trig_type t) /* Change the current trigonometric type. */ +{ + v->ttype = t; + set_resource(R_TRIG, Rtstr[(int) v->ttype]); +} + + static void do_accuracy(int value) /* Set display accuracy. */ { diff -Nru gcalctool-5.24.1/gcalctool/functions.h gcalctool-5.24.2/gcalctool/functions.h --- gcalctool-5.24.1/gcalctool/functions.h 2008-10-11 05:29:37.000000000 +0200 +++ gcalctool-5.24.2/gcalctool/functions.h 2008-11-24 23:42:14.000000000 +0100 @@ -23,6 +23,9 @@ #ifndef FUNCTIONS_H #define FUNCTIONS_H +#include "calctool.h" +void do_trigtype(enum trig_type t); + void do_expression(int function, int arg, int cursor); #endif /*FUNCTIONS_H*/ diff -Nru gcalctool-5.24.1/gcalctool/get.c gcalctool-5.24.2/gcalctool/get.c --- gcalctool-5.24.1/gcalctool/get.c 2008-10-11 05:29:37.000000000 +0200 +++ gcalctool-5.24.2/gcalctool/get.c 2008-11-24 23:42:14.000000000 +0100 @@ -52,7 +52,7 @@ get_resource(char *key) { char key_name[MAXLINE]; - SNPRINTF(key_name, MAXLINE, "/apps/%s/%s", v->appname, key); + SNPRINTF(key_name, MAXLINE, "/apps/gcalctool/%s", key); return(gconf_client_get_string(client, key_name, NULL)); } @@ -61,7 +61,7 @@ set_resource(char *key, char *value) { char key_name[MAXLINE]; - SNPRINTF(key_name, MAXLINE, "/apps/%s/%s", v->appname, key); + SNPRINTF(key_name, MAXLINE, "/apps/gcalctool/%s", key); gconf_client_set_string(client, key_name, value, NULL); } @@ -239,6 +239,8 @@ if (get_int_resource(R_ACCURACY, &intval)) { v->accuracy = intval; if (v->accuracy < 0 || v->accuracy > MAXACC) { + /* Translators: A log message displayed when an invalid accuracy + is read from the configuration */ FPRINTF(stderr, _("%s: accuracy should be in the range 0-%d\n"), v->progname, MAXACC); v->accuracy = 9; @@ -260,6 +262,8 @@ } if (i == MAXBASES) { + /* Translators: A log message displayed when an invalid + base is read from the configuration */ FPRINTF(stderr, _("%s: base should be 2, 8, 10 or 16\n"), v->progname); } else { @@ -275,6 +279,8 @@ } if (i == MAXDISPMODES) { + /* Translators: A log message displayed when an invalid + display mode is read from the configuration */ FPRINTF(stderr, _("%s: invalid display mode [%s]\n"), v->progname, str); } else { @@ -290,6 +296,8 @@ } if (i == MAXMODES) { + /* Translators: This message is a log message displayed when + an invalid mode is read from the configuration */ FPRINTF(stderr, _("%s: invalid mode [%s]\n"), v->progname, str); } else { v->modetype = (enum mode_type) i; @@ -304,6 +312,8 @@ } if (i == MAXTRIGMODES) { + /* Translators: This message is a log message displayed when + an invalid trigonometric mode is read from the configuration */ FPRINTF(stderr, _("%s: invalid trigonometric mode [%s]\n"), v->progname, str); } else { @@ -323,10 +333,7 @@ void resources_init() /* Load gconf configuration database for gcalctool. */ { - char str[MAXLINE]; - assert(client == NULL); - SNPRINTF(str, MAXLINE, "/apps/%s", v->appname); client = gconf_client_get_default(); - gconf_client_add_dir(client, str, GCONF_CLIENT_PRELOAD_NONE, NULL); + gconf_client_add_dir(client, "/apps/gcalctool", GCONF_CLIENT_PRELOAD_NONE, NULL); } diff -Nru gcalctool-5.24.1/gcalctool/get.h gcalctool-5.24.2/gcalctool/get.h --- gcalctool-5.24.1/gcalctool/get.h 2008-10-11 05:29:37.000000000 +0200 +++ gcalctool-5.24.2/gcalctool/get.h 2008-11-24 23:42:14.000000000 +0100 @@ -35,6 +35,7 @@ #define R_BITCALC "bitcalculating" #define R_XPOS "xposition" #define R_YPOS "yposition" +#define R_CHMODE "warn_change_mode" extern char *Rbstr[]; /* Base mode X resource strings. */ extern char *Rdstr[]; /* Display mode X resource strings. */ diff -Nru gcalctool-5.24.1/gcalctool/gtk.c gcalctool-5.24.2/gcalctool/gtk.c --- gcalctool-5.24.1/gcalctool/gtk.c 2008-10-11 05:48:10.000000000 +0200 +++ gcalctool-5.24.2/gcalctool/gtk.c 2008-11-24 23:42:14.000000000 +0100 @@ -1239,50 +1239,26 @@ static void help_display(void) { + GdkScreen *screen; GError *error = NULL; - char *command; - const char *lang; - char *uri = NULL; - GdkScreen *gscreen; - int i; - - const char * const * langs = g_get_language_names (); - - for (i = 0; langs[i]; i++) { - lang = langs[i]; - if (strchr (lang, '.')) { - continue; - } - - uri = g_build_filename(PACKAGE_DATA_DIR, - "/gnome/help/gcalctool/", - lang, - "/gcalctool.xml", - NULL); - - if (g_file_test (uri, G_FILE_TEST_EXISTS)) { - break; - } - } - - command = g_strconcat ("gnome-open ghelp://", uri, NULL); - gscreen = gdk_screen_get_default(); - gdk_spawn_command_line_on_screen (gscreen, command, &error); - if (error) { + + screen = gtk_widget_get_screen (GTK_WIDGET (X->kframe)); + gtk_show_uri (screen, "ghelp:gcalctool", gtk_get_current_event_time (), &error); + + if (error != NULL) + { GtkWidget *d; + d = gtk_message_dialog_new (GTK_WINDOW (X->kframe), + GTK_DIALOG_MODAL | GTK_DIALOG_DESTROY_WITH_PARENT, + GTK_MESSAGE_ERROR, GTK_BUTTONS_CLOSE, + "%s", "Unable to open help file"); + gtk_message_dialog_format_secondary_text (GTK_MESSAGE_DIALOG (d), + "%s", error->message); + g_signal_connect (d, "response", G_CALLBACK (gtk_widget_destroy), NULL); + gtk_window_present (GTK_WINDOW (d)); - d = gtk_message_dialog_new(NULL, - GTK_DIALOG_MODAL | GTK_DIALOG_DESTROY_WITH_PARENT, - GTK_MESSAGE_ERROR, GTK_BUTTONS_OK, - error->message); - gtk_dialog_run(GTK_DIALOG(d)); - gtk_widget_destroy(d); - g_error_free(error); - error = NULL; + g_error_free (error); } - - g_free (command); - g_free (uri); } @@ -1601,9 +1577,8 @@ gtk_widget_show_all(dialog); response = gtk_dialog_run(GTK_DIALOG(dialog)); - // FIXME: Save this in GConf - X->warn_change_mode = !gtk_toggle_button_get_active( - GTK_TOGGLE_BUTTON(request_check)); + X->warn_change_mode = !gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(request_check)); + set_boolean_resource(R_CHMODE, X->warn_change_mode); gtk_widget_destroy(dialog); @@ -1808,6 +1783,16 @@ /*ARGSUSED*/ void +trig_cb(GtkWidget *widget) +{ + if (gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(widget))) + do_trigtype((enum trig_type) g_object_get_data(G_OBJECT(widget), + "trig_mode")); +} + + +/*ARGSUSED*/ +void inv_cb(GtkWidget *widget) { ui_update_trig_mode(); @@ -2401,6 +2386,7 @@ CONNECT_SIGNAL(menu_item_select_cb); CONNECT_SIGNAL(menu_item_deselect_cb); CONNECT_SIGNAL(mode_radio_cb); + CONNECT_SIGNAL(trig_cb); CONNECT_SIGNAL(inv_cb); CONNECT_SIGNAL(hyp_cb); CONNECT_SIGNAL(base_cb); @@ -2736,6 +2722,9 @@ read_cfdefs(); + if(!get_boolean_resource(R_CHMODE, &X->warn_change_mode)) + X->warn_change_mode = TRUE; + /* Create main gcalctool window. */ create_kframe(); @@ -2782,8 +2771,6 @@ void ui_start(void) { - X->warn_change_mode = TRUE; // FIXME: Load from GConf - ui_set_base(v->base); ui_set_trigonometric_mode(v->ttype); ui_set_numeric_mode(v->dtype); diff -Nru gcalctool-5.24.1/gcalctool/mpmath.c gcalctool-5.24.2/gcalctool/mpmath.c --- gcalctool-5.24.1/gcalctool/mpmath.c 2008-10-11 05:29:37.000000000 +0200 +++ gcalctool-5.24.2/gcalctool/mpmath.c 2008-11-24 23:42:14.000000000 +0100 @@ -14,8 +14,7 @@ * 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. - */ + * 02111-1307, USA. */ #include #include @@ -31,87 +30,95 @@ 2.582249878e+120 /* Hexadecimal. */ }; -BOOLEAN -ibool(double x) -{ - BOOLEAN p = (BOOLEAN) x; - return(p); +static int hex_to_int(char digit) +{ + if (digit >= '0' && digit <= '9') + return digit - '0'; + if (digit >= 'A' && digit <= 'F') + return digit - 'A' + 10; + if (digit >= 'a' && digit <= 'f') + return digit - 'a' + 10; + return 0; } -double -setbool(BOOLEAN p) +static void +calc_bitwise(const int s1[MP_SIZE], const int s2[MP_SIZE], int (*bitwise_operator)(int, int), int t[MP_SIZE]) { - BOOLEAN q; - double val; - - q = p & 0x80000000; - p &= 0x7fffffff; - val = p; - if (q) { - val += 2147483648.0; + char text1[MAX_DIGITS], text2[MAX_DIGITS], text_out[MAX_DIGITS]; + int offset1, offset2, offset_out; + + make_fixed(text1, MAX_DIGITS, s1, HEX, MAX_DIGITS); + make_fixed(text2, MAX_DIGITS, s2, HEX, MAX_DIGITS); + offset1 = strlen(text1) - 1; + offset2 = strlen(text2) - 1; + offset_out = offset1 > offset2 ? offset1 : offset2; + + /* Be at least 32 bits wide so inverse operations make sense */ + if (offset_out < 7) + offset_out = 7; + + /* Perform bitwise operator on each character from right to left */ + for (text_out[offset_out+1] = '\0'; offset_out >= 0; offset_out--) { + int v1 = 0, v2 = 0; + + if (offset1 >= 0) { + v1 = hex_to_int(text1[offset1]); + offset1--; + } + if (offset2 >= 0) { + v2 = hex_to_int(text2[offset2]); + offset2--; + } + text_out[offset_out] = digits[bitwise_operator(v1, v2)]; } - - return(val); + + MPstr_to_num(text_out, HEX, t); } +static int calc_bitwise_and(int v1, int v2) { return v1 & v2; } +static int calc_bitwise_or(int v1, int v2) { return v1 | v2; } +static int calc_bitwise_xor(int v1, int v2) { return v1 ^ v2; } +static int calc_bitwise_xnor(int v1, int v2) { return v1 ^ v2 ^ 0xF; } +static int calc_bitwise_not(int v1, int dummy) { return v1 ^ 0xF; } + + void calc_and(const int s1[MP_SIZE], const int s2[MP_SIZE], int t[MP_SIZE]) { - double dres, dval; - - dres = mp_cast_to_double(s1); - dval = mp_cast_to_double(s2); - dres = setbool(ibool(dres) & ibool(dval)); - mp_set_from_double(dres, t); + calc_bitwise(s1, s2, calc_bitwise_and, t); } void calc_or(const int s1[MP_SIZE], const int s2[MP_SIZE], int t[MP_SIZE]) { - double dres, dval; - - dres = mp_cast_to_double(s1); - dval = mp_cast_to_double(s2); - dres = setbool(ibool(dres) | ibool(dval)); - mp_set_from_double(dres, t); + calc_bitwise(s1, s2, calc_bitwise_or, t); } void calc_xor(const int s1[MP_SIZE], const int s2[MP_SIZE], int t[MP_SIZE]) { - double dres, dval; - - dres = mp_cast_to_double(s1); - dval = mp_cast_to_double(s2); - dres = setbool(ibool(dres) ^ ibool(dval)); - mp_set_from_double(dres, t); + calc_bitwise(s1, s2, calc_bitwise_xor, t); } void calc_xnor(const int s1[MP_SIZE], const int s2[MP_SIZE], int t[MP_SIZE]) { - double dres, dval; - - dres = mp_cast_to_double(s1); - dval = mp_cast_to_double(s2); - dres = setbool(~ibool(dres) ^ ibool(dval)); - mp_set_from_double(dres, t); + calc_bitwise(s1, s2, calc_bitwise_xnor, t); } void calc_not(const int s1[MP_SIZE], int t[MP_SIZE]) { - double dval = mp_cast_to_double(s1); - - dval = setbool(~ibool(dval)); - mp_set_from_double(dval, t); + int dummy[MP_SIZE]; + mp_set_from_integer(0, dummy); + calc_bitwise(s1, dummy, calc_bitwise_not, t); } @@ -125,18 +132,28 @@ void calc_u32(const int s1[MP_SIZE], int t1[MP_SIZE]) { - double dval = mp_cast_to_double(s1); - dval = setbool(ibool(dval)); - mp_set_from_double(dval, t1); + char text[MAX_DIGITS]; + size_t len, offset; + + /* Convert to a hexadecimal string and use last 8 characters */ + make_fixed(text, MAX_DIGITS, s1, HEX, MAX_DIGITS); + len = strlen(text); + offset = len > 8 ? len - 8: 0; + MPstr_to_num(text + offset, HEX, t1); } void calc_u16(const int s1[MP_SIZE], int t1[MP_SIZE]) { - double dval = mp_cast_to_double(s1); - dval = setbool(ibool(dval) & 0xffff); - mp_set_from_double(dval, t1); + char text[MAX_DIGITS]; + size_t len, offset; + + /* Convert to a hexadecimal string and use last 4 characters */ + make_fixed(text, MAX_DIGITS, s1, HEX, MAX_DIGITS); + len = strlen(text); + offset = len > 4 ? len - 4: 0; + MPstr_to_num(text + offset, HEX, t1); } @@ -201,8 +218,8 @@ int calc_modulus(int op1[MP_SIZE], - int op2[MP_SIZE], - int result[MP_SIZE]) + int op2[MP_SIZE], + int result[MP_SIZE]) { int MP1[MP_SIZE], MP2[MP_SIZE]; @@ -217,8 +234,8 @@ mp_set_from_integer(0, MP1); if ((mp_is_less_than(op2, MP1) - && mp_is_greater_than(result, MP1)) || - mp_is_less_than(result, MP1)) { + && mp_is_greater_than(result, MP1)) || + mp_is_less_than(result, MP1)) { mp_add(result, op2, result); } @@ -673,34 +690,13 @@ void calc_shift(int s[MP_SIZE], int t[MP_SIZE], int times) { - /* Implementation derived from old code. - * Using BOOLEAN is strange at least. Assumed that - * boolean means BINARY representation - */ - - BOOLEAN temp; - double dval = mp_cast_to_double(s); - temp = ibool(dval); - - /* There is a reason to do shift like this. Reason is that - * processors define shift only in a certain range. i386 uses only 5 - * bits to describe shiftable amount. So, shift 32 times gives original - * number. That can cause very strange results (and bugs). - */ - - if (times > 0) - { - while (times--) { - temp = temp << 1; - } - } else { - while (times++) { - temp = temp >> 1; - } + if (times >= 0) + mpmuli(s, times*2, t); + else { + int temp[MP_SIZE]; + mpdivi(s, -times*2, temp); + mpcmim(temp, t); } - - dval = setbool(temp); - mp_set_from_double(dval, t); } @@ -811,7 +807,7 @@ */ void -make_fixed(char *target, int target_len, int *MPnumber, int base, int cmax, int toclear) +make_fixed(char *target, int target_len, const int *MPnumber, int base, int cmax) { char half[MAXLINE], *optr; int MP1base[MP_SIZE], MP1[MP_SIZE], MP2[MP_SIZE], MPval[MP_SIZE]; @@ -883,7 +879,7 @@ /* Convert engineering or scientific number in the given base. */ void -make_eng_sci(char *target, int target_len, int *MPnumber, int base) +make_eng_sci(char *target, int target_len, const int *MPnumber, int base) { char half[MAXLINE], fixed[MAX_DIGITS], *optr; int MP1[MP_SIZE], MPatmp[MP_SIZE], MPval[MP_SIZE]; @@ -938,7 +934,7 @@ } } - make_fixed(fixed, MAX_DIGITS, MPmant, base, MAX_DIGITS-6, TRUE); + make_fixed(fixed, MAX_DIGITS, MPmant, base, MAX_DIGITS-6); len = strlen(fixed); for (i = 0; i < len; i++) { *optr++ = fixed[i]; @@ -979,7 +975,7 @@ /* Convert MP number to character string in the given base. */ void -make_number(char *target, int target_len, int *MPnumber, int base, int ignoreError) +make_number(char *target, int target_len, const int *MPnumber, int base, int ignoreError) { double val; @@ -1003,7 +999,7 @@ (v->dtype == FIX && val != 0.0 && (val > max_fix[base]))) { make_eng_sci(target, target_len, MPnumber, base); } else { - make_fixed(target, target_len, MPnumber, base, MAX_DIGITS, TRUE); + make_fixed(target, target_len, MPnumber, base, MAX_DIGITS); } } diff -Nru gcalctool-5.24.1/gcalctool/mpmath.h gcalctool-5.24.2/gcalctool/mpmath.h --- gcalctool-5.24.1/gcalctool/mpmath.h 2008-10-11 05:29:37.000000000 +0200 +++ gcalctool-5.24.2/gcalctool/mpmath.h 2008-11-24 23:42:14.000000000 +0100 @@ -25,16 +25,9 @@ #include "mp.h" #include "calctool.h" -typedef unsigned long BOOLEAN; - -/* function parameters: t=target, s=source) */ - -BOOLEAN ibool(double x); -double setbool(BOOLEAN p); - /* Trigonometric functions types */ -enum trigfunc_type { sin_t, cos_t, tan_t, sinh_t, cosh_t, tanh_t, - asin_t, acos_t, atan_t, asinh_t, acosh_t, atanh_t }; +enum trigfunc_type { sin_t, cos_t, tan_t, sinh_t, cosh_t, tanh_t, + asin_t, acos_t, atan_t, asinh_t, acosh_t, atanh_t }; int calc_trigfunc(enum trigfunc_type type, int s1[MP_SIZE], int t1[MP_SIZE]); @@ -80,7 +73,7 @@ // FIXME: These should be merged together void MPstr_to_num(const char *, enum base_type, int *); void mp_set_from_string(const char *number, int t[MP_SIZE]); -void make_fixed(char *, int, int *, int, int, int); -void make_number(char *, int, int *, int, int); +void make_fixed(char *, int, const int *, int, int); +void make_number(char *, int, const int *, int, int); #endif /*MPMATH_H*/ diff -Nru gcalctool-5.24.1/gcalctool/unittest.c gcalctool-5.24.2/gcalctool/unittest.c --- gcalctool-5.24.1/gcalctool/unittest.c 2008-10-11 05:29:37.000000000 +0200 +++ gcalctool-5.24.2/gcalctool/unittest.c 2008-11-24 23:42:14.000000000 +0100 @@ -44,7 +44,7 @@ return; } - make_fixed(result_str, MAXLINE, result, DEC, 10, FALSE); + make_fixed(result_str, MAXLINE, result, DEC, 100); if(strcmp(result_str, expected) != 0) printf("FAIL: '%s' -> '%s', expected '%s'\n", expression, result_str, expected); else @@ -101,7 +101,7 @@ test("(-10)^2", "100", 0); test("Sqrt(4)", "2", 0); - test("Sqrt(2)", "1.4142135", 0); + test("Sqrt(2)", "1.414213562", 0); test("Int(3.2)", "3", 0); test("Frac(3.2)", "0.2", 0); diff -Nru gcalctool-5.24.1/intltool-extract.in gcalctool-5.24.2/intltool-extract.in --- gcalctool-5.24.1/intltool-extract.in 2008-10-20 00:23:53.000000000 +0200 +++ gcalctool-5.24.2/intltool-extract.in 2008-11-24 23:42:52.000000000 +0100 @@ -1,875 +0,0 @@ -#!@INTLTOOL_PERL@ -w -# -*- Mode: perl; indent-tabs-mode: nil; c-basic-offset: 4 -*- - -# -# The Intltool Message Extractor -# -# Copyright (C) 2000-2001, 2003 Free Software Foundation. -# -# Intltool 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. -# -# Intltool is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -# General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with this program; if not, write to the Free Software -# Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. -# -# 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. -# -# Authors: Kenneth Christiansen -# Darin Adler -# - -## Release information -my $PROGRAM = "intltool-extract"; -my $PACKAGE = "intltool"; -my $VERSION = "0.37.1"; - -## Loaded modules -use strict; -use File::Basename; -use Getopt::Long; - -## Scalars used by the option stuff -my $TYPE_ARG = "0"; -my $LOCAL_ARG = "0"; -my $HELP_ARG = "0"; -my $VERSION_ARG = "0"; -my $UPDATE_ARG = "0"; -my $QUIET_ARG = "0"; -my $SRCDIR_ARG = "."; - -my $FILE; -my $OUTFILE; - -my $gettext_type = ""; -my $input; -my %messages = (); -my %loc = (); -my %count = (); -my %comments = (); -my $strcount = 0; - -my $XMLCOMMENT = ""; - -## Use this instead of \w for XML files to handle more possible characters. -my $w = "[-A-Za-z0-9._:]"; - -## Always print first -$| = 1; - -## Handle options -GetOptions ( - "type=s" => \$TYPE_ARG, - "local|l" => \$LOCAL_ARG, - "help|h" => \$HELP_ARG, - "version|v" => \$VERSION_ARG, - "update" => \$UPDATE_ARG, - "quiet|q" => \$QUIET_ARG, - "srcdir=s" => \$SRCDIR_ARG, - ) or &error; - -&split_on_argument; - - -## Check for options. -## This section will check for the different options. - -sub split_on_argument { - - if ($VERSION_ARG) { - &version; - - } elsif ($HELP_ARG) { - &help; - - } elsif ($LOCAL_ARG) { - &place_local; - &extract; - - } elsif ($UPDATE_ARG) { - &place_normal; - &extract; - - } elsif (@ARGV > 0) { - &place_normal; - &message; - &extract; - - } else { - &help; - - } -} - -sub place_normal { - $FILE = $ARGV[0]; - $OUTFILE = "$FILE.h"; - - my $dirname = dirname ($OUTFILE); - if (! -d "$dirname" && $dirname ne "") { - system ("mkdir -p $dirname"); - } -} - -sub place_local { - $FILE = $ARGV[0]; - $OUTFILE = fileparse($FILE, ()); - if (!-e "tmp/") { - system("mkdir tmp/"); - } - $OUTFILE = "./tmp/$OUTFILE.h" -} - -sub determine_type { - if ($TYPE_ARG =~ /^gettext\/(.*)/) { - $gettext_type=$1 - } -} - -## Sub for printing release information -sub version{ - print <<_EOF_; -${PROGRAM} (${PACKAGE}) $VERSION -Copyright (C) 2000, 2003 Free Software Foundation, Inc. -Written by Kenneth Christiansen, 2000. - -This is free software; see the source for copying conditions. There is NO -warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. -_EOF_ - exit; -} - -## Sub for printing usage information -sub help { - print <<_EOF_; -Usage: ${PROGRAM} [OPTION]... [FILENAME] -Generates a header file from an XML source file. - -It grabs all strings between <_translatable_node> and its end tag in -XML files. Read manpage (man ${PROGRAM}) for more info. - - --type=TYPE Specify the file type of FILENAME. Currently supports: - "gettext/glade", "gettext/ini", "gettext/keys" - "gettext/rfc822deb", "gettext/schemas", - "gettext/scheme", "gettext/xml", "gettext/quoted", - "gettext/quotedxml" - -l, --local Writes output into current working directory - (conflicts with --update) - --update Writes output into the same directory the source file - reside (conflicts with --local) - --srcdir Root of the source tree - -v, --version Output version information and exit - -h, --help Display this help and exit - -q, --quiet Quiet mode - -Report bugs to http://bugzilla.gnome.org/ (product name "$PACKAGE") -or send email to . -_EOF_ - exit; -} - -## Sub for printing error messages -sub error{ - print STDERR "Try `${PROGRAM} --help' for more information.\n"; - exit; -} - -sub message { - print "Generating C format header file for translation.\n" unless $QUIET_ARG; -} - -sub extract { - &determine_type; - - &convert; - - open OUT, ">$OUTFILE"; - binmode (OUT) if $^O eq 'MSWin32'; - &msg_write; - close OUT; - - print "Wrote $OUTFILE\n" unless $QUIET_ARG; -} - -sub convert { - - ## Reading the file - { - local (*IN); - local $/; #slurp mode - open (IN, "<$SRCDIR_ARG/$FILE") || die "can't open $SRCDIR_ARG/$FILE: $!"; - $input = ; - } - - &type_ini if $gettext_type eq "ini"; - &type_keys if $gettext_type eq "keys"; - &type_xml if $gettext_type eq "xml"; - &type_glade if $gettext_type eq "glade"; - &type_scheme if $gettext_type eq "scheme"; - &type_schemas if $gettext_type eq "schemas"; - &type_rfc822deb if $gettext_type eq "rfc822deb"; - &type_quoted if $gettext_type eq "quoted"; - &type_quotedxml if $gettext_type eq "quotedxml"; -} - -sub entity_decode_minimal -{ - local ($_) = @_; - - s/'/'/g; # ' - s/"/"/g; # " - s/&/&/g; - - return $_; -} - -sub entity_decode -{ - local ($_) = @_; - - s/'/'/g; # ' - s/"/"/g; # " - s/<//g; - s/&/&/g; - - return $_; -} - -sub escape_char -{ - return '\"' if $_ eq '"'; - return '\n' if $_ eq "\n"; - return '\\\\' if $_ eq '\\'; - - return $_; -} - -sub escape -{ - my ($string) = @_; - return join "", map &escape_char, split //, $string; -} - -sub type_ini { - ### For generic translatable desktop files ### - while ($input =~ /^(#(.+)\n)?^_.*=(.*)$/mg) { - if (defined($2)) { - $comments{$3} = $2; - } - $messages{$3} = []; - } -} - -sub type_keys { - ### For generic translatable mime/keys files ### - while ($input =~ /^\s*_\w+=(.*)$/mg) { - $messages{$1} = []; - } -} - -sub type_xml { - ### For generic translatable XML files ### - my $tree = readXml($input); - parseTree(0, $tree); -} - -sub print_var { - my $var = shift; - my $vartype = ref $var; - - if ($vartype =~ /ARRAY/) { - my @arr = @{$var}; - print "[ "; - foreach my $el (@arr) { - print_var($el); - print ", "; - } - print "] "; - } elsif ($vartype =~ /HASH/) { - my %hash = %{$var}; - print "{ "; - foreach my $key (keys %hash) { - print "$key => "; - print_var($hash{$key}); - print ", "; - } - print "} "; - } else { - print $var; - } -} - -# Same syntax as getAttributeString in intltool-merge.in.in, similar logic (look for ## differences comment) -sub getAttributeString -{ - my $sub = shift; - my $do_translate = shift || 1; - my $language = shift || ""; - my $translate = shift; - my $result = ""; - foreach my $e (reverse(sort(keys %{ $sub }))) { - my $key = $e; - my $string = $sub->{$e}; - my $quote = '"'; - - $string =~ s/^[\s]+//; - $string =~ s/[\s]+$//; - - if ($string =~ /^'.*'$/) - { - $quote = "'"; - } - $string =~ s/^['"]//g; - $string =~ s/['"]$//g; - - ## differences from intltool-merge.in.in - if ($key =~ /^_/) { - $comments{entity_decode($string)} = $XMLCOMMENT if $XMLCOMMENT; - $messages{entity_decode($string)} = []; - $$translate = 2; - } - ## differences end here from intltool-merge.in.in - $result .= " $key=$quote$string$quote"; - } - return $result; -} - -# Verbatim copy from intltool-merge.in.in -sub getXMLstring -{ - my $ref = shift; - my $spacepreserve = shift || 0; - my @list = @{ $ref }; - my $result = ""; - - my $count = scalar(@list); - my $attrs = $list[0]; - my $index = 1; - - $spacepreserve = 1 if ((exists $attrs->{"xml:space"}) && ($attrs->{"xml:space"} =~ /^["']?preserve["']?$/)); - $spacepreserve = 0 if ((exists $attrs->{"xml:space"}) && ($attrs->{"xml:space"} =~ /^["']?default["']?$/)); - - while ($index < $count) { - my $type = $list[$index]; - my $content = $list[$index+1]; - if (! $type ) { - # We've got CDATA - if ($content) { - # lets strip the whitespace here, and *ONLY* here - $content =~ s/\s+/ /gs if (!$spacepreserve); - $result .= $content; - } - } elsif ( "$type" ne "1" ) { - # We've got another element - $result .= "<$type"; - $result .= getAttributeString(@{$content}[0], 0); # no nested translatable elements - if ($content) { - my $subresult = getXMLstring($content, $spacepreserve); - if ($subresult) { - $result .= ">".$subresult . ""; - } else { - $result .= "/>"; - } - } else { - $result .= "/>"; - } - } - $index += 2; - } - return $result; -} - -# Verbatim copy from intltool-merge.in.in, except for MULTIPLE_OUTPUT handling removed -# Translate list of nodes if necessary -sub translate_subnodes -{ - my $fh = shift; - my $content = shift; - my $language = shift || ""; - my $singlelang = shift || 0; - my $spacepreserve = shift || 0; - - my @nodes = @{ $content }; - - my $count = scalar(@nodes); - my $index = 0; - while ($index < $count) { - my $type = $nodes[$index]; - my $rest = $nodes[$index+1]; - traverse($fh, $type, $rest, $language, $spacepreserve); - $index += 2; - } -} - -# Based on traverse() in intltool-merge.in.in -sub traverse -{ - my $fh = shift; # unused, to allow us to sync code between -merge and -extract - my $nodename = shift; - my $content = shift; - my $language = shift || ""; - my $spacepreserve = shift || 0; - - if ($nodename && "$nodename" eq "1") { - $XMLCOMMENT = $content; - } elsif ($nodename) { - # element - my @all = @{ $content }; - my $attrs = shift @all; - my $translate = 0; - my $outattr = getAttributeString($attrs, 1, $language, \$translate); - - if ($nodename =~ /^_/) { - $translate = 1; - $nodename =~ s/^_//; - } - my $lookup = ''; - - $spacepreserve = 0 if ((exists $attrs->{"xml:space"}) && ($attrs->{"xml:space"} =~ /^["']?default["']?$/)); - $spacepreserve = 1 if ((exists $attrs->{"xml:space"}) && ($attrs->{"xml:space"} =~ /^["']?preserve["']?$/)); - - if ($translate) { - $lookup = getXMLstring($content, $spacepreserve); - if (!$spacepreserve) { - $lookup =~ s/^\s+//s; - $lookup =~ s/\s+$//s; - } - - if ($lookup && $translate != 2) { - $comments{$lookup} = $XMLCOMMENT if $XMLCOMMENT; - $messages{$lookup} = []; - } elsif ($translate == 2) { - translate_subnodes($fh, \@all, $language, 1, $spacepreserve); - } - } else { - $XMLCOMMENT = ""; - my $count = scalar(@all); - if ($count > 0) { - my $index = 0; - while ($index < $count) { - my $type = $all[$index]; - my $rest = $all[$index+1]; - traverse($fh, $type, $rest, $language, $spacepreserve); - $index += 2; - } - } - } - $XMLCOMMENT = ""; - } -} - - -# Verbatim copy from intltool-merge.in.in, $fh for compatibility -sub parseTree -{ - my $fh = shift; - my $ref = shift; - my $language = shift || ""; - - my $name = shift @{ $ref }; - my $cont = shift @{ $ref }; - - while (!$name || "$name" eq "1") { - $name = shift @{ $ref }; - $cont = shift @{ $ref }; - } - - my $spacepreserve = 0; - my $attrs = @{$cont}[0]; - $spacepreserve = 1 if ((exists $attrs->{"xml:space"}) && ($attrs->{"xml:space"} =~ /^["']?preserve["']?$/)); - - traverse($fh, $name, $cont, $language, $spacepreserve); -} - -# Verbatim copy from intltool-merge.in.in -sub intltool_tree_comment -{ - my $expat = shift; - my $data = $expat->original_string(); - my $clist = $expat->{Curlist}; - my $pos = $#$clist; - - $data =~ s/^$//s; - push @$clist, 1 => $data; -} - -# Verbatim copy from intltool-merge.in.in -sub intltool_tree_cdatastart -{ - my $expat = shift; - my $clist = $expat->{Curlist}; - my $pos = $#$clist; - - push @$clist, 0 => $expat->original_string(); -} - -# Verbatim copy from intltool-merge.in.in -sub intltool_tree_cdataend -{ - my $expat = shift; - my $clist = $expat->{Curlist}; - my $pos = $#$clist; - - $clist->[$pos] .= $expat->original_string(); -} - -# Verbatim copy from intltool-merge.in.in -sub intltool_tree_char -{ - my $expat = shift; - my $text = shift; - my $clist = $expat->{Curlist}; - my $pos = $#$clist; - - # Use original_string so that we retain escaped entities - # in CDATA sections. - # - if ($pos > 0 and $clist->[$pos - 1] eq '0') { - $clist->[$pos] .= $expat->original_string(); - } else { - push @$clist, 0 => $expat->original_string(); - } -} - -# Verbatim copy from intltool-merge.in.in -sub intltool_tree_start -{ - my $expat = shift; - my $tag = shift; - my @origlist = (); - - # Use original_string so that we retain escaped entities - # in attribute values. We must convert the string to an - # @origlist array to conform to the structure of the Tree - # Style. - # - my @original_array = split /\x/, $expat->original_string(); - my $source = $expat->original_string(); - - # Remove leading tag. - # - $source =~ s|^\s*<\s*(\S+)||s; - - # Grab attribute key/value pairs and push onto @origlist array. - # - while ($source) - { - if ($source =~ /^\s*([\w:-]+)\s*[=]\s*["]/) - { - $source =~ s|^\s*([\w:-]+)\s*[=]\s*["]([^"]*)["]||s; - push @origlist, $1; - push @origlist, '"' . $2 . '"'; - } - elsif ($source =~ /^\s*([\w:-]+)\s*[=]\s*[']/) - { - $source =~ s|^\s*([\w:-]+)\s*[=]\s*[']([^']*)[']||s; - push @origlist, $1; - push @origlist, "'" . $2 . "'"; - } - else - { - last; - } - } - - my $ol = [ { @origlist } ]; - - push @{ $expat->{Lists} }, $expat->{Curlist}; - push @{ $expat->{Curlist} }, $tag => $ol; - $expat->{Curlist} = $ol; -} - -# Copied from intltool-merge.in.in and added comment handler. -sub readXml -{ - my $xmldoc = shift || return; - my $ret = eval 'require XML::Parser'; - if(!$ret) { - die "You must have XML::Parser installed to run $0\n\n"; - } - my $xp = new XML::Parser(Style => 'Tree'); - $xp->setHandlers(Char => \&intltool_tree_char); - $xp->setHandlers(Start => \&intltool_tree_start); - $xp->setHandlers(CdataStart => \&intltool_tree_cdatastart); - $xp->setHandlers(CdataEnd => \&intltool_tree_cdataend); - - ## differences from intltool-merge.in.in - $xp->setHandlers(Comment => \&intltool_tree_comment); - ## differences end here from intltool-merge.in.in - - my $tree = $xp->parse($xmldoc); - #print_var($tree); - -# Hello thereHowdydo -# would be: -# [foo, [{}, 1, "comment", head, [{id => "a"}, 0, "Hello ", em, [{}, 0, "there"]], bar, -# [{}, 0, "Howdy", ref, [{}]], 0, "do" ] ] - - return $tree; -} - -sub type_schemas { - ### For schemas XML files ### - - # FIXME: We should handle escaped < (less than) - while ($input =~ / - \s* - (\s*(?:\s*)?(.*?)\s*<\/default>\s*)? - (\s*(?:\s*)?(.*?)\s*<\/short>\s*)? - (\s*(?:\s*)?(.*?)\s*<\/long>\s*)? - <\/locale> - /sgx) { - my @totranslate = ($3,$6,$9); - my @eachcomment = ($2,$5,$8); - foreach (@totranslate) { - my $currentcomment = shift @eachcomment; - next if !$_; - s/\s+/ /g; - $messages{entity_decode_minimal($_)} = []; - $comments{entity_decode_minimal($_)} = $currentcomment if (defined($currentcomment)); - } - } -} - -sub type_rfc822deb { - ### For rfc822-style Debian configuration files ### - - my $lineno = 1; - my $type = ''; - while ($input =~ /\G(.*?)(^|\n)(_+)([^:]+):[ \t]*(.*?)(?=\n\S|$)/sg) - { - my ($pre, $newline, $underscore, $tag, $text) = ($1, $2, $3, $4, $5); - while ($pre =~ m/\n/g) - { - $lineno ++; - } - $lineno += length($newline); - my @str_list = rfc822deb_split(length($underscore), $text); - for my $str (@str_list) - { - $strcount++; - $messages{$str} = []; - $loc{$str} = $lineno; - $count{$str} = $strcount; - my $usercomment = ''; - while($pre =~ s/(^|\n)#([^\n]*)$//s) - { - $usercomment = "\n" . $2 . $usercomment; - } - $comments{$str} = $tag . $usercomment; - } - $lineno += ($text =~ s/\n//g); - } -} - -sub rfc822deb_split { - # Debian defines a special way to deal with rfc822-style files: - # when a value contain newlines, it consists of - # 1. a short form (first line) - # 2. a long description, all lines begin with a space, - # and paragraphs are separated by a single dot on a line - # This routine returns an array of all paragraphs, and reformat - # them. - # When first argument is 2, the string is a comma separated list of - # values. - my $type = shift; - my $text = shift; - $text =~ s/^[ \t]//mg; - return (split(/, */, $text, 0)) if $type ne 1; - return ($text) if $text !~ /\n/; - - $text =~ s/([^\n]*)\n//; - my @list = ($1); - my $str = ''; - for my $line (split (/\n/, $text)) - { - chomp $line; - if ($line =~ /^\.\s*$/) - { - # New paragraph - $str =~ s/\s*$//; - push(@list, $str); - $str = ''; - } - elsif ($line =~ /^\s/) - { - # Line which must not be reformatted - $str .= "\n" if length ($str) && $str !~ /\n$/; - $line =~ s/\s+$//; - $str .= $line."\n"; - } - else - { - # Continuation line, remove newline - $str .= " " if length ($str) && $str !~ /\n$/; - $str .= $line; - } - } - $str =~ s/\s*$//; - push(@list, $str) if length ($str); - return @list; -} - -sub type_quoted { - while ($input =~ /\"(([^\"]|\\\")*[^\\\"])\"/g) { - my $message = $1; - my $before = $`; - $message =~ s/\\\"/\"/g; - $before =~ s/[^\n]//g; - $messages{$message} = []; - $loc{$message} = length ($before) + 2; - } -} - -sub type_quotedxml { - while ($input =~ /\"(([^\"]|\\\")*[^\\\"])\"/g) { - my $message = $1; - my $before = $`; - $message =~ s/\\\"/\"/g; - $message = entity_decode($message); - $before =~ s/[^\n]//g; - $messages{$message} = []; - $loc{$message} = length ($before) + 2; - } -} - -sub type_glade { - ### For translatable Glade XML files ### - - my $tags = "label|title|text|format|copyright|comments|preview_text|tooltip|message"; - - while ($input =~ /<($tags)>([^<]+)<\/($tags)>/sg) { - # Glade sometimes uses tags that normally mark translatable things for - # little bits of non-translatable content. We work around this by not - # translating strings that only includes something like label4 or window1. - $messages{entity_decode($2)} = [] unless $2 =~ /^(window|label|dialog)[0-9]+$/; - } - - while ($input =~ /(..[^<]*)<\/items>/sg) { - for my $item (split (/\n/, $1)) { - $messages{entity_decode($item)} = []; - } - } - - ## handle new glade files - while ($input =~ /<(property|atkproperty|col)\s+[^>]*translatable\s*=\s*"yes"(?:\s+[^>]*comments\s*=\s*"([^"]*)")?[^>]*>([^<]+)<\/\1>/sg) { - $messages{entity_decode($3)} = [] unless $3 =~ /^(window|label)[0-9]+$/; - if (defined($2) and !($3 =~ /^(window|label)[0-9]+$/)) { - $comments{entity_decode($3)} = entity_decode($2) ; - } - } - while ($input =~ /]*)"\s+description="([^>]+)"\/>/sg) { - $messages{entity_decode_minimal($2)} = []; - } -} - -sub type_scheme { - my ($line, $i, $state, $str, $trcomment, $char); - for $line (split(/\n/, $input)) { - $i = 0; - $state = 0; # 0 - nothing, 1 - string, 2 - translatable string - while ($i < length($line)) { - if (substr($line,$i,1) eq "\"") { - if ($state == 2) { - $comments{$str} = $trcomment if ($trcomment); - $messages{$str} = []; - $str = ''; - $state = 0; $trcomment = ""; - } elsif ($state == 1) { - $str = ''; - $state = 0; $trcomment = ""; - } else { - $state = 1; - $str = ''; - if ($i>0 && substr($line,$i-1,1) eq '_') { - $state = 2; - } - } - } elsif (!$state) { - if (substr($line,$i,1) eq ";") { - $trcomment = substr($line,$i+1); - $trcomment =~ s/^;*\s*//; - $i = length($line); - } elsif ($trcomment && substr($line,$i,1) !~ /\s|\(|\)|_/) { - $trcomment = ""; - } - } else { - if (substr($line,$i,1) eq "\\") { - $char = substr($line,$i+1,1); - if ($char ne "\"" && $char ne "\\") { - $str = $str . "\\"; - } - $i++; - } - $str = $str . substr($line,$i,1); - } - $i++; - } - } -} - -sub msg_write { - my @msgids; - if (%count) - { - @msgids = sort { $count{$a} <=> $count{$b} } keys %count; - } - else - { - @msgids = sort keys %messages; - } - for my $message (@msgids) - { - my $offsetlines = 1; - $offsetlines++ if $message =~ /%/; - if (defined ($comments{$message})) - { - while ($comments{$message} =~ m/\n/g) - { - $offsetlines++; - } - } - print OUT "# ".($loc{$message} - $offsetlines). " \"$FILE\"\n" - if defined $loc{$message}; - print OUT "/* ".$comments{$message}." */\n" - if defined $comments{$message}; - print OUT "/* xgettext:no-c-format */\n" if $message =~ /%/; - - my @lines = split (/\n/, $message, -1); - for (my $n = 0; $n < @lines; $n++) - { - if ($n == 0) - { - print OUT "char *s = N_(\""; - } - else - { - print OUT " \""; - } - - print OUT escape($lines[$n]); - - if ($n < @lines - 1) - { - print OUT "\\n\"\n"; - } - else - { - print OUT "\");\n"; - } - } - } -} - diff -Nru gcalctool-5.24.1/intltool-merge.in gcalctool-5.24.2/intltool-merge.in --- gcalctool-5.24.1/intltool-merge.in 2008-10-20 00:23:53.000000000 +0200 +++ gcalctool-5.24.2/intltool-merge.in 2008-11-24 23:42:52.000000000 +0100 @@ -1,1506 +0,0 @@ -#!@INTLTOOL_PERL@ -w -# -*- Mode: perl; indent-tabs-mode: nil; c-basic-offset: 4 -*- - -# -# The Intltool Message Merger -# -# Copyright (C) 2000, 2003 Free Software Foundation. -# Copyright (C) 2000, 2001 Eazel, Inc -# -# Intltool is free software; you can redistribute it and/or -# modify it under the terms of the GNU General Public License -# version 2 published by the Free Software Foundation. -# -# Intltool is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -# General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with this program; if not, write to the Free Software -# Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. -# -# 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. -# -# Authors: Maciej Stachowiak -# Kenneth Christiansen -# Darin Adler -# -# Proper XML UTF-8'ification written by Cyrille Chepelov -# - -## Release information -my $PROGRAM = "intltool-merge"; -my $PACKAGE = "intltool"; -my $VERSION = "0.37.1"; - -## Loaded modules -use strict; -use Getopt::Long; -use Text::Wrap; -use File::Basename; - -my $must_end_tag = -1; -my $last_depth = -1; -my $translation_depth = -1; -my @tag_stack = (); -my @entered_tag = (); -my @translation_strings = (); -my $leading_space = ""; - -## Scalars used by the option stuff -my $HELP_ARG = 0; -my $VERSION_ARG = 0; -my $BA_STYLE_ARG = 0; -my $XML_STYLE_ARG = 0; -my $KEYS_STYLE_ARG = 0; -my $DESKTOP_STYLE_ARG = 0; -my $SCHEMAS_STYLE_ARG = 0; -my $RFC822DEB_STYLE_ARG = 0; -my $QUOTED_STYLE_ARG = 0; -my $QUOTEDXML_STYLE_ARG = 0; -my $QUIET_ARG = 0; -my $PASS_THROUGH_ARG = 0; -my $UTF8_ARG = 0; -my $MULTIPLE_OUTPUT = 0; -my $cache_file; - -## Handle options -GetOptions -( - "help" => \$HELP_ARG, - "version" => \$VERSION_ARG, - "quiet|q" => \$QUIET_ARG, - "oaf-style|o" => \$BA_STYLE_ARG, ## for compatibility - "ba-style|b" => \$BA_STYLE_ARG, - "xml-style|x" => \$XML_STYLE_ARG, - "keys-style|k" => \$KEYS_STYLE_ARG, - "desktop-style|d" => \$DESKTOP_STYLE_ARG, - "schemas-style|s" => \$SCHEMAS_STYLE_ARG, - "rfc822deb-style|r" => \$RFC822DEB_STYLE_ARG, - "quoted-style" => \$QUOTED_STYLE_ARG, - "quotedxml-style" => \$QUOTEDXML_STYLE_ARG, - "pass-through|p" => \$PASS_THROUGH_ARG, - "utf8|u" => \$UTF8_ARG, - "multiple-output|m" => \$MULTIPLE_OUTPUT, - "cache|c=s" => \$cache_file - ) or &error; - -my $PO_DIR; -my $FILE; -my $OUTFILE; - -my %po_files_by_lang = (); -my %translations = (); -my $iconv = $ENV{"ICONV"} || "iconv"; -my $devnull = ($^O eq 'MSWin32' ? 'NUL:' : '/dev/null'); - -sub isProgramInPath -{ - my ($file) = @_; - # If either a file exists, or when run it returns 0 exit status - return 1 if ((-x $file) or (system("$file -l >$devnull") == 0)); - return 0; -} - -if (! isProgramInPath ("$iconv")) -{ - print STDERR " *** iconv is not found on this system!\n". - " *** Without it, intltool-merge can not convert encodings.\n"; - exit; -} - -# Use this instead of \w for XML files to handle more possible characters. -my $w = "[-A-Za-z0-9._:]"; - -# XML quoted string contents -my $q = "[^\\\"]*"; - -## Check for options. - -if ($VERSION_ARG) -{ - &print_version; -} -elsif ($HELP_ARG) -{ - &print_help; -} -elsif ($BA_STYLE_ARG && @ARGV > 2) -{ - &utf8_sanity_check; - &preparation; - &print_message; - &ba_merge_translations; - &finalize; -} -elsif ($XML_STYLE_ARG && @ARGV > 2) -{ - &utf8_sanity_check; - &preparation; - &print_message; - &xml_merge_output; - &finalize; -} -elsif ($KEYS_STYLE_ARG && @ARGV > 2) -{ - &utf8_sanity_check; - &preparation; - &print_message; - &keys_merge_translations; - &finalize; -} -elsif ($DESKTOP_STYLE_ARG && @ARGV > 2) -{ - &utf8_sanity_check; - &preparation; - &print_message; - &desktop_merge_translations; - &finalize; -} -elsif ($SCHEMAS_STYLE_ARG && @ARGV > 2) -{ - &utf8_sanity_check; - &preparation; - &print_message; - &schemas_merge_translations; - &finalize; -} -elsif ($RFC822DEB_STYLE_ARG && @ARGV > 2) -{ - &preparation; - &print_message; - &rfc822deb_merge_translations; - &finalize; -} -elsif (($QUOTED_STYLE_ARG || $QUOTEDXML_STYLE_ARG) && @ARGV > 2) -{ - &utf8_sanity_check; - &preparation; - &print_message; - "ed_merge_translations($QUOTEDXML_STYLE_ARG); - &finalize; -} -else -{ - &print_help; -} - -exit; - -## Sub for printing release information -sub print_version -{ - print <<_EOF_; -${PROGRAM} (${PACKAGE}) ${VERSION} -Written by Maciej Stachowiak, Darin Adler and Kenneth Christiansen. - -Copyright (C) 2000-2003 Free Software Foundation, Inc. -Copyright (C) 2000-2001 Eazel, 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. -_EOF_ - exit; -} - -## Sub for printing usage information -sub print_help -{ - print <<_EOF_; -Usage: ${PROGRAM} [OPTION]... PO_DIRECTORY FILENAME OUTPUT_FILE -Generates an output file that includes some localized attributes from an -untranslated source file. - -Mandatory options: (exactly one must be specified) - -b, --ba-style includes translations in the bonobo-activation style - -d, --desktop-style includes translations in the desktop style - -k, --keys-style includes translations in the keys style - -s, --schemas-style includes translations in the schemas style - -r, --rfc822deb-style includes translations in the RFC822 style - --quoted-style includes translations in the quoted string style - --quotedxml-style includes translations in the quoted xml string style - -x, --xml-style includes translations in the standard xml style - -Other options: - -u, --utf8 convert all strings to UTF-8 before merging - (default for everything except RFC822 style) - -p, --pass-through deprecated, does nothing and issues a warning - -m, --multiple-output output one localized file per locale, instead of - a single file containing all localized elements - -c, --cache=FILE specify cache file name - (usually \$top_builddir/po/.intltool-merge-cache) - -q, --quiet suppress most messages - --help display this help and exit - --version output version information and exit - -Report bugs to http://bugzilla.gnome.org/ (product name "$PACKAGE") -or send email to . -_EOF_ - exit; -} - - -## Sub for printing error messages -sub print_error -{ - print STDERR "Try `${PROGRAM} --help' for more information.\n"; - exit; -} - - -sub print_message -{ - print "Merging translations into $OUTFILE.\n" unless $QUIET_ARG; -} - - -sub preparation -{ - $PO_DIR = $ARGV[0]; - $FILE = $ARGV[1]; - $OUTFILE = $ARGV[2]; - - &gather_po_files; - &get_translation_database; -} - -# General-purpose code for looking up translations in .po files - -sub po_file2lang -{ - my ($tmp) = @_; - $tmp =~ s/^.*\/(.*)\.po$/$1/; - return $tmp; -} - -sub gather_po_files -{ - if (my $linguas = $ENV{"LINGUAS"}) - { - for my $lang (split / /, $linguas) { - my $po_file = $PO_DIR . "/" . $lang . ".po"; - if (-e $po_file) { - $po_files_by_lang{$lang} = $po_file; - } - } - } - else - { - if (open LINGUAS_FILE, "$PO_DIR/LINGUAS") - { - while () - { - next if /^#/; - - for my $lang (split) - { - chomp ($lang); - my $po_file = $PO_DIR . "/" . $lang . ".po"; - if (-e $po_file) { - $po_files_by_lang{$lang} = $po_file; - } - } - } - - close LINGUAS_FILE; - } - else - { - for my $po_file (glob "$PO_DIR/*.po") { - $po_files_by_lang{po_file2lang($po_file)} = $po_file; - } - } - } -} - -sub get_local_charset -{ - my ($encoding) = @_; - my $alias_file = $ENV{"G_CHARSET_ALIAS"} || "@INTLTOOL_LIBDIR@/charset.alias"; - - # seek character encoding aliases in charset.alias (glib) - - if (open CHARSET_ALIAS, $alias_file) - { - while () - { - next if /^\#/; - return $1 if (/^\s*([-._a-zA-Z0-9]+)\s+$encoding\b/i) - } - - close CHARSET_ALIAS; - } - - # if not found, return input string - - return $encoding; -} - -sub get_po_encoding -{ - my ($in_po_file) = @_; - my $encoding = ""; - - open IN_PO_FILE, $in_po_file or die; - while () - { - ## example: "Content-Type: text/plain; charset=ISO-8859-1\n" - if (/Content-Type\:.*charset=([-a-zA-Z0-9]+)\\n/) - { - $encoding = $1; - last; - } - } - close IN_PO_FILE; - - if (!$encoding) - { - print STDERR "Warning: no encoding found in $in_po_file. Assuming ISO-8859-1\n" unless $QUIET_ARG; - $encoding = "ISO-8859-1"; - } - - system ("$iconv -f $encoding -t UTF-8 <$devnull 2>$devnull"); - if ($?) { - $encoding = get_local_charset($encoding); - } - - return $encoding -} - -sub utf8_sanity_check -{ - print STDERR "Warning: option --pass-through has been removed.\n" if $PASS_THROUGH_ARG; - $UTF8_ARG = 1; -} - -sub get_translation_database -{ - if ($cache_file) { - &get_cached_translation_database; - } else { - &create_translation_database; - } -} - -sub get_newest_po_age -{ - my $newest_age; - - foreach my $file (values %po_files_by_lang) - { - my $file_age = -M $file; - $newest_age = $file_age if !$newest_age || $file_age < $newest_age; - } - - $newest_age = 0 if !$newest_age; - - return $newest_age; -} - -sub create_cache -{ - print "Generating and caching the translation database\n" unless $QUIET_ARG; - - &create_translation_database; - - open CACHE, ">$cache_file" || die; - print CACHE join "\x01", %translations; - close CACHE; -} - -sub load_cache -{ - print "Found cached translation database\n" unless $QUIET_ARG; - - my $contents; - open CACHE, "<$cache_file" || die; - { - local $/; - $contents = ; - } - close CACHE; - %translations = split "\x01", $contents; -} - -sub get_cached_translation_database -{ - my $cache_file_age = -M $cache_file; - if (defined $cache_file_age) - { - if ($cache_file_age <= &get_newest_po_age) - { - &load_cache; - return; - } - print "Found too-old cached translation database\n" unless $QUIET_ARG; - } - - &create_cache; -} - -sub create_translation_database -{ - for my $lang (keys %po_files_by_lang) - { - my $po_file = $po_files_by_lang{$lang}; - - if ($UTF8_ARG) - { - my $encoding = get_po_encoding ($po_file); - - if (lc $encoding eq "utf-8") - { - open PO_FILE, "<$po_file"; - } - else - { - print "NOTICE: $po_file is not in UTF-8 but $encoding, converting...\n" unless $QUIET_ARG;; - - open PO_FILE, "$iconv -f $encoding -t UTF-8 $po_file|"; - } - } - else - { - open PO_FILE, "<$po_file"; - } - - my $nextfuzzy = 0; - my $inmsgid = 0; - my $inmsgstr = 0; - my $msgid = ""; - my $msgstr = ""; - - while () - { - $nextfuzzy = 1 if /^#, fuzzy/; - - if (/^msgid "((\\.|[^\\]+)*)"/ ) - { - $translations{$lang, $msgid} = $msgstr if $inmsgstr && $msgid && $msgstr; - $msgid = ""; - $msgstr = ""; - - if ($nextfuzzy) { - $inmsgid = 0; - } else { - $msgid = unescape_po_string($1); - $inmsgid = 1; - } - $inmsgstr = 0; - $nextfuzzy = 0; - } - - if (/^msgstr "((\\.|[^\\]+)*)"/) - { - $msgstr = unescape_po_string($1); - $inmsgstr = 1; - $inmsgid = 0; - } - - if (/^"((\\.|[^\\]+)*)"/) - { - $msgid .= unescape_po_string($1) if $inmsgid; - $msgstr .= unescape_po_string($1) if $inmsgstr; - } - } - $translations{$lang, $msgid} = $msgstr if $inmsgstr && $msgid && $msgstr; - } -} - -sub finalize -{ -} - -sub unescape_one_sequence -{ - my ($sequence) = @_; - - return "\\" if $sequence eq "\\\\"; - return "\"" if $sequence eq "\\\""; - return "\n" if $sequence eq "\\n"; - return "\r" if $sequence eq "\\r"; - return "\t" if $sequence eq "\\t"; - return "\b" if $sequence eq "\\b"; - return "\f" if $sequence eq "\\f"; - return "\a" if $sequence eq "\\a"; - return chr(11) if $sequence eq "\\v"; # vertical tab, see ascii(7) - - return chr(hex($1)) if ($sequence =~ /\\x([0-9a-fA-F]{2})/); - return chr(oct($1)) if ($sequence =~ /\\([0-7]{3})/); - - # FIXME: Is \0 supported as well? Kenneth and Rodney don't want it, see bug #48489 - - return $sequence; -} - -sub unescape_po_string -{ - my ($string) = @_; - - $string =~ s/(\\x[0-9a-fA-F]{2}|\\[0-7]{3}|\\.)/unescape_one_sequence($1)/eg; - - return $string; -} - -sub entity_decode -{ - local ($_) = @_; - - s/'/'/g; # ' - s/"/"/g; # " - s/<//g; - s/&/&/g; - - return $_; -} - -# entity_encode: (string) -# -# Encode the given string to XML format (encode '<' etc). - -sub entity_encode -{ - my ($pre_encoded) = @_; - - my @list_of_chars = unpack ('C*', $pre_encoded); - - # with UTF-8 we only encode minimalistic - return join ('', map (&entity_encode_int_minimalist, @list_of_chars)); -} - -sub entity_encode_int_minimalist -{ - return """ if $_ == 34; - return "&" if $_ == 38; - return "'" if $_ == 39; - return "<" if $_ == 60; - return ">" if $_ == 62; - return chr $_; -} - -sub entity_encoded_translation -{ - my ($lang, $string) = @_; - - my $translation = $translations{$lang, $string}; - return $string if !$translation; - return entity_encode ($translation); -} - -## XML (bonobo-activation specific) merge code - -sub ba_merge_translations -{ - my $source; - - { - local $/; # slurp mode - open INPUT, "<$FILE" or die "can't open $FILE: $!"; - $source = ; - close INPUT; - } - - open OUTPUT, ">$OUTFILE" or die "can't open $OUTFILE: $!"; - # Binmode so that selftest works ok if using a native Win32 Perl... - binmode (OUTPUT) if $^O eq 'MSWin32'; - - while ($source =~ s|^(.*?)([ \t]*<\s*$w+\s+($w+\s*=\s*"$q"\s*)+/?>)([ \t]*\n)?||s) - { - print OUTPUT $1; - - my $node = $2 . "\n"; - - my @strings = (); - $_ = $node; - while (s/(\s)_($w+\s*=\s*"($q)")/$1$2/s) { - push @strings, entity_decode($3); - } - print OUTPUT; - - my %langs; - for my $string (@strings) - { - for my $lang (keys %po_files_by_lang) - { - $langs{$lang} = 1 if $translations{$lang, $string}; - } - } - - for my $lang (sort keys %langs) - { - $_ = $node; - s/(\sname\s*=\s*)"($q)"/$1"$2-$lang"/s; - s/(\s)_($w+\s*=\s*")($q)"/$1 . $2 . entity_encoded_translation($lang, $3) . '"'/seg; - print OUTPUT; - } - } - - print OUTPUT $source; - - close OUTPUT; -} - - -## XML (non-bonobo-activation) merge code - - -# Process tag attributes -# Only parameter is a HASH containing attributes -> values mapping -sub getAttributeString -{ - my $sub = shift; - my $do_translate = shift || 0; - my $language = shift || ""; - my $result = ""; - my $translate = shift; - foreach my $e (reverse(sort(keys %{ $sub }))) { - my $key = $e; - my $string = $sub->{$e}; - my $quote = '"'; - - $string =~ s/^[\s]+//; - $string =~ s/[\s]+$//; - - if ($string =~ /^'.*'$/) - { - $quote = "'"; - } - $string =~ s/^['"]//g; - $string =~ s/['"]$//g; - - if ($do_translate && $key =~ /^_/) { - $key =~ s|^_||g; - if ($language) { - # Handle translation - my $decode_string = entity_decode($string); - my $translation = $translations{$language, $decode_string}; - if ($translation) { - $translation = entity_encode($translation); - $string = $translation; - } - $$translate = 2; - } else { - $$translate = 2 if ($translate && (!$$translate)); # watch not to "overwrite" $translate - } - } - - $result .= " $key=$quote$string$quote"; - } - return $result; -} - -# Returns a translatable string from XML node, it works on contents of every node in XML::Parser tree -sub getXMLstring -{ - my $ref = shift; - my $spacepreserve = shift || 0; - my @list = @{ $ref }; - my $result = ""; - - my $count = scalar(@list); - my $attrs = $list[0]; - my $index = 1; - - $spacepreserve = 1 if ((exists $attrs->{"xml:space"}) && ($attrs->{"xml:space"} =~ /^["']?preserve["']?$/)); - $spacepreserve = 0 if ((exists $attrs->{"xml:space"}) && ($attrs->{"xml:space"} =~ /^["']?default["']?$/)); - - while ($index < $count) { - my $type = $list[$index]; - my $content = $list[$index+1]; - if (! $type ) { - # We've got CDATA - if ($content) { - # lets strip the whitespace here, and *ONLY* here - $content =~ s/\s+/ /gs if (!$spacepreserve); - $result .= $content; - } - } elsif ( "$type" ne "1" ) { - # We've got another element - $result .= "<$type"; - $result .= getAttributeString(@{$content}[0], 0); # no nested translatable elements - if ($content) { - my $subresult = getXMLstring($content, $spacepreserve); - if ($subresult) { - $result .= ">".$subresult . ""; - } else { - $result .= "/>"; - } - } else { - $result .= "/>"; - } - } - $index += 2; - } - return $result; -} - -# Translate list of nodes if necessary -sub translate_subnodes -{ - my $fh = shift; - my $content = shift; - my $language = shift || ""; - my $singlelang = shift || 0; - my $spacepreserve = shift || 0; - - my @nodes = @{ $content }; - - my $count = scalar(@nodes); - my $index = 0; - while ($index < $count) { - my $type = $nodes[$index]; - my $rest = $nodes[$index+1]; - if ($singlelang) { - my $oldMO = $MULTIPLE_OUTPUT; - $MULTIPLE_OUTPUT = 1; - traverse($fh, $type, $rest, $language, $spacepreserve); - $MULTIPLE_OUTPUT = $oldMO; - } else { - traverse($fh, $type, $rest, $language, $spacepreserve); - } - $index += 2; - } -} - -sub isWellFormedXmlFragment -{ - my $ret = eval 'require XML::Parser'; - if(!$ret) { - die "You must have XML::Parser installed to run $0\n\n"; - } - - my $fragment = shift; - return 0 if (!$fragment); - - $fragment = "$fragment"; - my $xp = new XML::Parser(Style => 'Tree'); - my $tree = 0; - eval { $tree = $xp->parse($fragment); }; - return $tree; -} - -sub traverse -{ - my $fh = shift; - my $nodename = shift; - my $content = shift; - my $language = shift || ""; - my $spacepreserve = shift || 0; - - if (!$nodename) { - if ($content =~ /^[\s]*$/) { - $leading_space .= $content; - } - print $fh $content; - } else { - # element - my @all = @{ $content }; - my $attrs = shift @all; - my $translate = 0; - my $outattr = getAttributeString($attrs, 1, $language, \$translate); - - if ($nodename =~ /^_/) { - $translate = 1; - $nodename =~ s/^_//; - } - my $lookup = ''; - - $spacepreserve = 0 if ((exists $attrs->{"xml:space"}) && ($attrs->{"xml:space"} =~ /^["']?default["']?$/)); - $spacepreserve = 1 if ((exists $attrs->{"xml:space"}) && ($attrs->{"xml:space"} =~ /^["']?preserve["']?$/)); - - print $fh "<$nodename", $outattr; - if ($translate) { - $lookup = getXMLstring($content, $spacepreserve); - if (!$spacepreserve) { - $lookup =~ s/^\s+//s; - $lookup =~ s/\s+$//s; - } - - if ($lookup || $translate == 2) { - my $translation = $translations{$language, $lookup} if isWellFormedXmlFragment($translations{$language, $lookup}); - if ($MULTIPLE_OUTPUT && ($translation || $translate == 2)) { - $translation = $lookup if (!$translation); - print $fh " xml:lang=\"", $language, "\"" if $language; - print $fh ">"; - if ($translate == 2) { - translate_subnodes($fh, \@all, $language, 1, $spacepreserve); - } else { - print $fh $translation; - } - print $fh ""; - - return; # this means there will be no same translation with xml:lang="$language"... - # if we want them both, just remove this "return" - } else { - print $fh ">"; - if ($translate == 2) { - translate_subnodes($fh, \@all, $language, 1, $spacepreserve); - } else { - print $fh $lookup; - } - print $fh ""; - } - } else { - print $fh "/>"; - } - - for my $lang (sort keys %po_files_by_lang) { - if ($MULTIPLE_OUTPUT && $lang ne "$language") { - next; - } - if ($lang) { - # Handle translation - # - my $translate = 0; - my $localattrs = getAttributeString($attrs, 1, $lang, \$translate); - my $translation = $translations{$lang, $lookup} if isWellFormedXmlFragment($translations{$lang, $lookup}); - if ($translate && !$translation) { - $translation = $lookup; - } - - if ($translation || $translate) { - print $fh "\n"; - $leading_space =~ s/.*\n//g; - print $fh $leading_space; - print $fh "<", $nodename, " xml:lang=\"", $lang, "\"", $localattrs, ">"; - if ($translate == 2) { - translate_subnodes($fh, \@all, $lang, 1, $spacepreserve); - } else { - print $fh $translation; - } - print $fh ""; - } - } - } - - } else { - my $count = scalar(@all); - if ($count > 0) { - print $fh ">"; - my $index = 0; - while ($index < $count) { - my $type = $all[$index]; - my $rest = $all[$index+1]; - traverse($fh, $type, $rest, $language, $spacepreserve); - $index += 2; - } - print $fh ""; - } else { - print $fh "/>"; - } - } - } -} - -sub intltool_tree_comment -{ - my $expat = shift; - my $data = shift; - my $clist = $expat->{Curlist}; - my $pos = $#$clist; - - push @$clist, 1 => $data; -} - -sub intltool_tree_cdatastart -{ - my $expat = shift; - my $clist = $expat->{Curlist}; - my $pos = $#$clist; - - push @$clist, 0 => $expat->original_string(); -} - -sub intltool_tree_cdataend -{ - my $expat = shift; - my $clist = $expat->{Curlist}; - my $pos = $#$clist; - - $clist->[$pos] .= $expat->original_string(); -} - -sub intltool_tree_char -{ - my $expat = shift; - my $text = shift; - my $clist = $expat->{Curlist}; - my $pos = $#$clist; - - # Use original_string so that we retain escaped entities - # in CDATA sections. - # - if ($pos > 0 and $clist->[$pos - 1] eq '0') { - $clist->[$pos] .= $expat->original_string(); - } else { - push @$clist, 0 => $expat->original_string(); - } -} - -sub intltool_tree_start -{ - my $expat = shift; - my $tag = shift; - my @origlist = (); - - # Use original_string so that we retain escaped entities - # in attribute values. We must convert the string to an - # @origlist array to conform to the structure of the Tree - # Style. - # - my @original_array = split /\x/, $expat->original_string(); - my $source = $expat->original_string(); - - # Remove leading tag. - # - $source =~ s|^\s*<\s*(\S+)||s; - - # Grab attribute key/value pairs and push onto @origlist array. - # - while ($source) - { - if ($source =~ /^\s*([\w:-]+)\s*[=]\s*["]/) - { - $source =~ s|^\s*([\w:-]+)\s*[=]\s*["]([^"]*)["]||s; - push @origlist, $1; - push @origlist, '"' . $2 . '"'; - } - elsif ($source =~ /^\s*([\w:-]+)\s*[=]\s*[']/) - { - $source =~ s|^\s*([\w:-]+)\s*[=]\s*[']([^']*)[']||s; - push @origlist, $1; - push @origlist, "'" . $2 . "'"; - } - else - { - last; - } - } - - my $ol = [ { @origlist } ]; - - push @{ $expat->{Lists} }, $expat->{Curlist}; - push @{ $expat->{Curlist} }, $tag => $ol; - $expat->{Curlist} = $ol; -} - -sub readXml -{ - my $filename = shift || return; - if(!-f $filename) { - die "ERROR Cannot find filename: $filename\n"; - } - - my $ret = eval 'require XML::Parser'; - if(!$ret) { - die "You must have XML::Parser installed to run $0\n\n"; - } - my $xp = new XML::Parser(Style => 'Tree'); - $xp->setHandlers(Char => \&intltool_tree_char); - $xp->setHandlers(Start => \&intltool_tree_start); - $xp->setHandlers(CdataStart => \&intltool_tree_cdatastart); - $xp->setHandlers(CdataEnd => \&intltool_tree_cdataend); - my $tree = $xp->parsefile($filename); - -# Hello thereHowdydo -# would be: -# [foo, [{}, head, [{id => "a"}, 0, "Hello ", em, [{}, 0, "there"]], bar, [{}, -# 0, "Howdy", ref, [{}]], 0, "do" ] ] - - return $tree; -} - -sub print_header -{ - my $infile = shift; - my $fh = shift; - my $source; - - if(!-f $infile) { - die "ERROR Cannot find filename: $infile\n"; - } - - print $fh qq{\n}; - { - local $/; - open DOCINPUT, "<${FILE}" or die; - $source = ; - close DOCINPUT; - } - if ($source =~ /()/s) - { - print $fh "$1\n"; - } - elsif ($source =~ /(]*>)/s) - { - print $fh "$1\n"; - } -} - -sub parseTree -{ - my $fh = shift; - my $ref = shift; - my $language = shift || ""; - - my $name = shift @{ $ref }; - my $cont = shift @{ $ref }; - - while (!$name || "$name" eq "1") { - $name = shift @{ $ref }; - $cont = shift @{ $ref }; - } - - my $spacepreserve = 0; - my $attrs = @{$cont}[0]; - $spacepreserve = 1 if ((exists $attrs->{"xml:space"}) && ($attrs->{"xml:space"} =~ /^["']?preserve["']?$/)); - - traverse($fh, $name, $cont, $language, $spacepreserve); -} - -sub xml_merge_output -{ - my $source; - - if ($MULTIPLE_OUTPUT) { - for my $lang (sort keys %po_files_by_lang) { - if ( ! -d $lang ) { - mkdir $lang or -d $lang or die "Cannot create subdirectory $lang: $!\n"; - } - open OUTPUT, ">$lang/$OUTFILE" or die "Cannot open $lang/$OUTFILE: $!\n"; - binmode (OUTPUT) if $^O eq 'MSWin32'; - my $tree = readXml($FILE); - print_header($FILE, \*OUTPUT); - parseTree(\*OUTPUT, $tree, $lang); - close OUTPUT; - print "CREATED $lang/$OUTFILE\n" unless $QUIET_ARG; - } - if ( ! -d "C" ) { - mkdir "C" or -d "C" or die "Cannot create subdirectory C: $!\n"; - } - open OUTPUT, ">C/$OUTFILE" or die "Cannot open C/$OUTFILE: $!\n"; - binmode (OUTPUT) if $^O eq 'MSWin32'; - my $tree = readXml($FILE); - print_header($FILE, \*OUTPUT); - parseTree(\*OUTPUT, $tree); - close OUTPUT; - print "CREATED C/$OUTFILE\n" unless $QUIET_ARG; - } else { - open OUTPUT, ">$OUTFILE" or die "Cannot open $OUTFILE: $!\n"; - binmode (OUTPUT) if $^O eq 'MSWin32'; - my $tree = readXml($FILE); - print_header($FILE, \*OUTPUT); - parseTree(\*OUTPUT, $tree); - close OUTPUT; - print "CREATED $OUTFILE\n" unless $QUIET_ARG; - } -} - -sub keys_merge_translation -{ - my ($lang) = @_; - - if ( ! -d $lang && $MULTIPLE_OUTPUT) - { - mkdir $lang or -d $lang or die "Cannot create subdirectory $lang: $!\n"; - } - - open INPUT, "<${FILE}" or die "Cannot open ${FILE}: $!\n"; - open OUTPUT, ">$lang/$OUTFILE" or die "Cannot open $lang/$OUTFILE: $!\n"; - binmode (OUTPUT) if $^O eq 'MSWin32'; - - while () - { - if (s/^(\s*)_(\w+=(.*))/$1$2/) - { - my $string = $3; - - if (!$MULTIPLE_OUTPUT) - { - print OUTPUT; - - my $non_translated_line = $_; - - for my $lang (sort keys %po_files_by_lang) - { - my $translation = $translations{$lang, $string}; - next if !$translation; - - $_ = $non_translated_line; - s/(\w+)=.*/[$lang]$1=$translation/; - print OUTPUT; - } - } - else - { - my $non_translated_line = $_; - my $translation = $translations{$lang, $string}; - $translation = $string if !$translation; - - $_ = $non_translated_line; - s/(\w+)=.*/$1=$translation/; - print OUTPUT; - } - } - else - { - print OUTPUT; - } - } - - close OUTPUT; - close INPUT; - - print "CREATED $lang/$OUTFILE\n" unless $QUIET_ARG; -} - -sub keys_merge_translations -{ - if ($MULTIPLE_OUTPUT) - { - for my $lang (sort keys %po_files_by_lang) - { - keys_merge_translation ($lang); - } - keys_merge_translation ("C"); - } - else - { - keys_merge_translation ("."); - } -} - -sub desktop_merge_translations -{ - open INPUT, "<${FILE}" or die; - open OUTPUT, ">${OUTFILE}" or die; - binmode (OUTPUT) if $^O eq 'MSWin32'; - - while () - { - if (s/^(\s*)_(\w+=(.*))/$1$2/) - { - my $string = $3; - - print OUTPUT; - - my $non_translated_line = $_; - - for my $lang (sort keys %po_files_by_lang) - { - my $translation = $translations{$lang, $string}; - next if !$translation; - - $_ = $non_translated_line; - s/(\w+)=.*/${1}[$lang]=$translation/; - print OUTPUT; - } - } - else - { - print OUTPUT; - } - } - - close OUTPUT; - close INPUT; -} - -sub schemas_merge_translations -{ - my $source; - - { - local $/; # slurp mode - open INPUT, "<$FILE" or die "can't open $FILE: $!"; - $source = ; - close INPUT; - } - - open OUTPUT, ">$OUTFILE" or die; - binmode (OUTPUT) if $^O eq 'MSWin32'; - - # FIXME: support attribute translations - - # Empty nodes never need translation, so unmark all of them. - # For example, <_foo/> is just replaced by . - $source =~ s|<\s*_($w+)\s*/>|<$1/>|g; - - while ($source =~ s/ - (.*?) - (\s+)((\s*) - (\s*(?:\s*)?(.*?)\s*<\/default>)?(\s*) - (\s*(?:\s*)?(.*?)\s*<\/short>)?(\s*) - (\s*(?:\s*)?(.*?)\s*<\/long>)?(\s*) - <\/locale>) - //sx) - { - print OUTPUT $1; - - my $locale_start_spaces = $2 ? $2 : ''; - my $default_spaces = $4 ? $4 : ''; - my $short_spaces = $7 ? $7 : ''; - my $long_spaces = $10 ? $10 : ''; - my $locale_end_spaces = $13 ? $13 : ''; - my $c_default_block = $3 ? $3 : ''; - my $default_string = $6 ? $6 : ''; - my $short_string = $9 ? $9 : ''; - my $long_string = $12 ? $12 : ''; - - print OUTPUT "$locale_start_spaces$c_default_block"; - - $default_string =~ s/\s+/ /g; - $default_string = entity_decode($default_string); - $short_string =~ s/\s+/ /g; - $short_string = entity_decode($short_string); - $long_string =~ s/\s+/ /g; - $long_string = entity_decode($long_string); - - for my $lang (sort keys %po_files_by_lang) - { - my $default_translation = $translations{$lang, $default_string}; - my $short_translation = $translations{$lang, $short_string}; - my $long_translation = $translations{$lang, $long_string}; - - next if (!$default_translation && !$short_translation && - !$long_translation); - - print OUTPUT "\n$locale_start_spaces"; - - print OUTPUT "$default_spaces"; - - if ($default_translation) - { - $default_translation = entity_encode($default_translation); - print OUTPUT "$default_translation"; - } - - print OUTPUT "$short_spaces"; - - if ($short_translation) - { - $short_translation = entity_encode($short_translation); - print OUTPUT "$short_translation"; - } - - print OUTPUT "$long_spaces"; - - if ($long_translation) - { - $long_translation = entity_encode($long_translation); - print OUTPUT "$long_translation"; - } - - print OUTPUT "$locale_end_spaces"; - } - } - - print OUTPUT $source; - - close OUTPUT; -} - -sub rfc822deb_merge_translations -{ - my %encodings = (); - for my $lang (keys %po_files_by_lang) { - $encodings{$lang} = ($UTF8_ARG ? 'UTF-8' : get_po_encoding($po_files_by_lang{$lang})); - } - - my $source; - - $Text::Wrap::huge = 'overflow'; - $Text::Wrap::break = qr/\n|\s(?=\S)/; - - { - local $/; # slurp mode - open INPUT, "<$FILE" or die "can't open $FILE: $!"; - $source = ; - close INPUT; - } - - open OUTPUT, ">${OUTFILE}" or die; - binmode (OUTPUT) if $^O eq 'MSWin32'; - - while ($source =~ /(^|\n+)(_*)([^:\s]+)(:[ \t]*)(.*?)(?=\n[\S\n]|$)/sg) - { - my $sep = $1; - my $non_translated_line = $3.$4; - my $string = $5; - my $underscore = length($2); - next if $underscore eq 0 && $non_translated_line =~ /^#/; - # Remove [] dummy strings - my $stripped = $string; - $stripped =~ s/\[\s[^\[\]]*\],/,/g if $underscore eq 2; - $stripped =~ s/\[\s[^\[\]]*\]$//; - $non_translated_line .= $stripped; - - print OUTPUT $sep.$non_translated_line; - - if ($underscore) - { - my @str_list = rfc822deb_split($underscore, $string); - - for my $lang (sort keys %po_files_by_lang) - { - my $is_translated = 1; - my $str_translated = ''; - my $first = 1; - - for my $str (@str_list) - { - my $translation = $translations{$lang, $str}; - - if (!$translation) - { - $is_translated = 0; - last; - } - - # $translation may also contain [] dummy - # strings, mostly to indicate an empty string - $translation =~ s/\[\s[^\[\]]*\]$//; - - if ($first) - { - if ($underscore eq 2) - { - $str_translated .= $translation; - } - else - { - $str_translated .= - Text::Tabs::expand($translation) . - "\n"; - } - } - else - { - if ($underscore eq 2) - { - $str_translated .= ', ' . $translation; - } - else - { - $str_translated .= Text::Tabs::expand( - Text::Wrap::wrap(' ', ' ', $translation)) . - "\n .\n"; - } - } - $first = 0; - - # To fix some problems with Text::Wrap::wrap - $str_translated =~ s/(\n )+\n/\n .\n/g; - } - next unless $is_translated; - - $str_translated =~ s/\n \.\n$//; - $str_translated =~ s/\s+$//; - - $_ = $non_translated_line; - s/^(\w+):\s*.*/$sep${1}-$lang.$encodings{$lang}: $str_translated/s; - print OUTPUT; - } - } - } - print OUTPUT "\n"; - - close OUTPUT; - close INPUT; -} - -sub rfc822deb_split -{ - # Debian defines a special way to deal with rfc822-style files: - # when a value contain newlines, it consists of - # 1. a short form (first line) - # 2. a long description, all lines begin with a space, - # and paragraphs are separated by a single dot on a line - # This routine returns an array of all paragraphs, and reformat - # them. - # When first argument is 2, the string is a comma separated list of - # values. - my $type = shift; - my $text = shift; - $text =~ s/^[ \t]//mg; - return (split(/, */, $text, 0)) if $type ne 1; - return ($text) if $text !~ /\n/; - - $text =~ s/([^\n]*)\n//; - my @list = ($1); - my $str = ''; - - for my $line (split (/\n/, $text)) - { - chomp $line; - if ($line =~ /^\.\s*$/) - { - # New paragraph - $str =~ s/\s*$//; - push(@list, $str); - $str = ''; - } - elsif ($line =~ /^\s/) - { - # Line which must not be reformatted - $str .= "\n" if length ($str) && $str !~ /\n$/; - $line =~ s/\s+$//; - $str .= $line."\n"; - } - else - { - # Continuation line, remove newline - $str .= " " if length ($str) && $str !~ /\n$/; - $str .= $line; - } - } - - $str =~ s/\s*$//; - push(@list, $str) if length ($str); - - return @list; -} - -sub quoted_translation -{ - my ($xml_mode, $lang, $string) = @_; - - $string = entity_decode($string) if $xml_mode; - $string =~ s/\\\"/\"/g; - - my $translation = $translations{$lang, $string}; - $translation = $string if !$translation; - $translation = entity_encode($translation) if $xml_mode; - $translation =~ s/\"/\\\"/g; - return $translation -} - -sub quoted_merge_translations -{ - my ($xml_mode) = @_; - - if (!$MULTIPLE_OUTPUT) { - print "Quoted only supports Multiple Output.\n"; - exit(1); - } - - for my $lang (sort keys %po_files_by_lang) { - if ( ! -d $lang ) { - mkdir $lang or -d $lang or die "Cannot create subdirectory $lang: $!\n"; - } - open INPUT, "<${FILE}" or die; - open OUTPUT, ">$lang/$OUTFILE" or die "Cannot open $lang/$OUTFILE: $!\n"; - binmode (OUTPUT) if $^O eq 'MSWin32'; - while () - { - s/\"(([^\"]|\\\")*[^\\\"])\"/"\"" . "ed_translation($xml_mode, $lang, $1) . "\""/ge; - print OUTPUT; - } - close OUTPUT; - close INPUT; - } -} diff -Nru gcalctool-5.24.1/intltool-update.in gcalctool-5.24.2/intltool-update.in --- gcalctool-5.24.1/intltool-update.in 2008-10-20 00:23:53.000000000 +0200 +++ gcalctool-5.24.2/intltool-update.in 2008-11-24 23:42:52.000000000 +0100 @@ -1,1166 +0,0 @@ -#!@INTLTOOL_PERL@ -w -# -*- Mode: perl; indent-tabs-mode: nil; c-basic-offset: 4 -*- - -# -# The Intltool Message Updater -# -# Copyright (C) 2000-2003 Free Software Foundation. -# -# Intltool is free software; you can redistribute it and/or -# modify it under the terms of the GNU General Public License -# version 2 published by the Free Software Foundation. -# -# Intltool is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -# General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with this program; if not, write to the Free Software -# Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. -# -# 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. -# -# Authors: Kenneth Christiansen -# Maciej Stachowiak -# Darin Adler - -## Release information -my $PROGRAM = "intltool-update"; -my $VERSION = "0.37.1"; -my $PACKAGE = "intltool"; - -## Loaded modules -use strict; -use Getopt::Long; -use Cwd; -use File::Copy; -use File::Find; - -## Scalars used by the option stuff -my $HELP_ARG = 0; -my $VERSION_ARG = 0; -my $DIST_ARG = 0; -my $POT_ARG = 0; -my $HEADERS_ARG = 0; -my $MAINTAIN_ARG = 0; -my $REPORT_ARG = 0; -my $VERBOSE = 0; -my $GETTEXT_PACKAGE = ""; -my $OUTPUT_FILE = ""; - -my @languages; -my %varhash = (); -my %po_files_by_lang = (); - -# Regular expressions to categorize file types. -# FIXME: Please check if the following is correct - -my $xml_support = -"xml(?:\\.in)*|". # http://www.w3.org/XML/ (Note: .in is not required) -"ui|". # Bonobo specific - User Interface desc. files -"lang|". # ? -"glade2?(?:\\.in)*|". # Glade specific - User Interface desc. files (Note: .in is not required) -"scm(?:\\.in)*|". # ? (Note: .in is not required) -"oaf(?:\\.in)+|". # DEPRECATED: Replaces by Bonobo .server files -"etspec|". # ? -"server(?:\\.in)+|". # Bonobo specific -"sheet(?:\\.in)+|". # ? -"schemas(?:\\.in)+|". # GConf specific -"pong(?:\\.in)+|". # DEPRECATED: PONG is not used [by GNOME] any longer. -"kbd(?:\\.in)+|". # GOK specific. -"policy(?:\\.in)+"; # PolicyKit files - -my $ini_support = -"icon(?:\\.in)+|". # http://www.freedesktop.org/Standards/icon-theme-spec -"desktop(?:\\.in)+|". # http://www.freedesktop.org/Standards/menu-spec -"caves(?:\\.in)+|". # GNOME Games specific -"directory(?:\\.in)+|". # http://www.freedesktop.org/Standards/menu-spec -"soundlist(?:\\.in)+|". # GNOME specific -"keys(?:\\.in)+|". # GNOME Mime database specific -"theme(?:\\.in)+|". # http://www.freedesktop.org/Standards/icon-theme-spec -"service(?:\\.in)+"; # DBus specific - -my $buildin_gettext_support = -"c|y|cs|cc|cpp|c\\+\\+|h|hh|gob|py"; - -## Always flush buffer when printing -$| = 1; - -## Sometimes the source tree will be rooted somewhere else. -my $SRCDIR = $ENV{"srcdir"} || "."; -my $POTFILES_in; - -$POTFILES_in = "<$SRCDIR/POTFILES.in"; - -my $devnull = ($^O eq 'MSWin32' ? 'NUL:' : '/dev/null'); - -## Handle options -GetOptions -( - "help" => \$HELP_ARG, - "version" => \$VERSION_ARG, - "dist|d" => \$DIST_ARG, - "pot|p" => \$POT_ARG, - "headers|s" => \$HEADERS_ARG, - "maintain|m" => \$MAINTAIN_ARG, - "report|r" => \$REPORT_ARG, - "verbose|x" => \$VERBOSE, - "gettext-package|g=s" => \$GETTEXT_PACKAGE, - "output-file|o=s" => \$OUTPUT_FILE, - ) or &Console_WriteError_InvalidOption; - -&Console_Write_IntltoolHelp if $HELP_ARG; -&Console_Write_IntltoolVersion if $VERSION_ARG; - -my $arg_count = ($DIST_ARG > 0) - + ($POT_ARG > 0) - + ($HEADERS_ARG > 0) - + ($MAINTAIN_ARG > 0) - + ($REPORT_ARG > 0); - -&Console_Write_IntltoolHelp if $arg_count > 1; - -my $PKGNAME = FindPackageName (); - -# --version and --help don't require a module name -my $MODULE = $GETTEXT_PACKAGE || $PKGNAME || "unknown"; - -if ($POT_ARG) -{ - &GenerateHeaders; - &GeneratePOTemplate; -} -elsif ($HEADERS_ARG) -{ - &GenerateHeaders; -} -elsif ($MAINTAIN_ARG) -{ - &FindLeftoutFiles; -} -elsif ($REPORT_ARG) -{ - &GenerateHeaders; - &GeneratePOTemplate; - &Console_Write_CoverageReport; -} -elsif ((defined $ARGV[0]) && $ARGV[0] =~ /^[a-z]/) -{ - my $lang = $ARGV[0]; - - ## Report error if the language file supplied - ## to the command line is non-existent - &Console_WriteError_NotExisting("$SRCDIR/$lang.po") - if ! -s "$SRCDIR/$lang.po"; - - if (!$DIST_ARG) - { - print "Working, please wait..." if $VERBOSE; - &GenerateHeaders; - &GeneratePOTemplate; - } - &POFile_Update ($lang, $OUTPUT_FILE); - &Console_Write_TranslationStatus ($lang, $OUTPUT_FILE); -} -else -{ - &Console_Write_IntltoolHelp; -} - -exit; - -######### - -sub Console_Write_IntltoolVersion -{ - print <<_EOF_; -${PROGRAM} (${PACKAGE}) $VERSION -Written by Kenneth Christiansen, Maciej Stachowiak, and Darin Adler. - -Copyright (C) 2000-2003 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. -_EOF_ - exit; -} - -sub Console_Write_IntltoolHelp -{ - print <<_EOF_; -Usage: ${PROGRAM} [OPTION]... LANGCODE -Updates PO template files and merge them with the translations. - -Mode of operation (only one is allowed): - -p, --pot generate the PO template only - -s, --headers generate the header files in POTFILES.in - -m, --maintain search for left out files from POTFILES.in - -r, --report display a status report for the module - -d, --dist merge LANGCODE.po with existing PO template - -Extra options: - -g, --gettext-package=NAME override PO template name, useful with --pot - -o, --output-file=FILE write merged translation to FILE - -x, --verbose display lots of feedback - --help display this help and exit - --version output version information and exit - -Examples of use: -${PROGRAM} --pot just create a new PO template -${PROGRAM} xy create new PO template and merge xy.po with it - -Report bugs to http://bugzilla.gnome.org/ (product name "$PACKAGE") -or send email to . -_EOF_ - exit; -} - -sub echo_n -{ - my $str = shift; - my $ret = `echo "$str"`; - - $ret =~ s/\n$//; # do we need the "s" flag? - - return $ret; -} - -sub POFile_DetermineType ($) -{ - my $type = $_; - my $gettext_type; - - my $xml_regex = "(?:" . $xml_support . ")"; - my $ini_regex = "(?:" . $ini_support . ")"; - my $buildin_regex = "(?:" . $buildin_gettext_support . ")"; - - if ($type =~ /\[type: gettext\/([^\]].*)]/) - { - $gettext_type=$1; - } - elsif ($type =~ /schemas(\.in)+$/) - { - $gettext_type="schemas"; - } - elsif ($type =~ /glade2?(\.in)*$/) - { - $gettext_type="glade"; - } - elsif ($type =~ /scm(\.in)*$/) - { - $gettext_type="scheme"; - } - elsif ($type =~ /keys(\.in)+$/) - { - $gettext_type="keys"; - } - - # bucket types - - elsif ($type =~ /$xml_regex$/) - { - $gettext_type="xml"; - } - elsif ($type =~ /$ini_regex$/) - { - $gettext_type="ini"; - } - elsif ($type =~ /$buildin_regex$/) - { - $gettext_type="buildin"; - } - else - { - $gettext_type="unknown"; - } - - return "gettext\/$gettext_type"; -} - -sub TextFile_DetermineEncoding ($) -{ - my $gettext_code="ASCII"; # All files are ASCII by default - my $filetype=`file $_ | cut -d ' ' -f 2`; - - if ($? eq "0") - { - if ($filetype =~ /^(ISO|UTF)/) - { - chomp ($gettext_code = $filetype); - } - elsif ($filetype =~ /^XML/) - { - $gettext_code="UTF-8"; # We asume that .glade and other .xml files are UTF-8 - } - } - - return $gettext_code; -} - -sub isNotValidMissing -{ - my ($file) = @_; - - return if $file =~ /^\{arch\}\/.*$/; - return if $file =~ /^$varhash{"PACKAGE"}-$varhash{"VERSION"}\/.*$/; -} - -sub FindLeftoutFiles -{ - my (@buf_i18n_plain, - @buf_i18n_xml, - @buf_i18n_xml_unmarked, - @buf_i18n_ini, - @buf_potfiles, - @buf_potfiles_ignore, - @buf_allfiles, - @buf_allfiles_sorted, - @buf_potfiles_sorted, - @buf_potfiles_ignore_sorted - ); - - ## Search and find all translatable files - find sub { - push @buf_i18n_plain, "$File::Find::name" if /\.($buildin_gettext_support)$/; - push @buf_i18n_xml, "$File::Find::name" if /\.($xml_support)$/; - push @buf_i18n_ini, "$File::Find::name" if /\.($ini_support)$/; - push @buf_i18n_xml_unmarked, "$File::Find::name" if /\.(schemas(\.in)+)$/; - }, ".."; - find sub { - push @buf_i18n_plain, "$File::Find::name" if /\.($buildin_gettext_support)$/; - push @buf_i18n_xml, "$File::Find::name" if /\.($xml_support)$/; - push @buf_i18n_ini, "$File::Find::name" if /\.($ini_support)$/; - push @buf_i18n_xml_unmarked, "$File::Find::name" if /\.(schemas(\.in)+)$/; - }, "$SRCDIR/.." if "$SRCDIR" ne "."; - - open POTFILES, $POTFILES_in or die "$PROGRAM: there's no POTFILES.in!\n"; - @buf_potfiles = grep !/^(#|\s*$)/, ; - close POTFILES; - - foreach (@buf_potfiles) { - s/^\[.*]\s*//; - } - - print "Searching for missing translatable files...\n" if $VERBOSE; - - ## Check if we should ignore some found files, when - ## comparing with POTFILES.in - foreach my $ignore ("POTFILES.skip", "POTFILES.ignore") - { - (-s "$SRCDIR/$ignore") or next; - - if ("$ignore" eq "POTFILES.ignore") - { - print "The usage of POTFILES.ignore is deprecated. Please consider moving the\n". - "content of this file to POTFILES.skip.\n"; - } - - print "Found $ignore: Ignoring files...\n" if $VERBOSE; - open FILE, "<$SRCDIR/$ignore" or die "ERROR: Failed to open $SRCDIR/$ignore!\n"; - - while () - { - push @buf_potfiles_ignore, $_ unless /^(#|\s*$)/; - } - close FILE; - - @buf_potfiles_ignore_sorted = sort (@buf_potfiles_ignore); - } - - foreach my $file (@buf_i18n_plain) - { - my $in_comment = 0; - my $in_macro = 0; - - open FILE, "<$file"; - while () - { - # Handle continued multi-line comment. - if ($in_comment) - { - next unless s-.*\*/--; - $in_comment = 0; - } - - # Handle continued macro. - if ($in_macro) - { - $in_macro = 0 unless /\\$/; - next; - } - - # Handle start of macro (or any preprocessor directive). - if (/^\s*\#/) - { - $in_macro = 1 if /^([^\\]|\\.)*\\$/; - next; - } - - # Handle comments and quoted text. - while (m-(/\*|//|\'|\")-) # \' and \" keep emacs perl mode happy - { - my $match = $1; - if ($match eq "/*") - { - if (!s-/\*.*?\*/--) - { - s-/\*.*--; - $in_comment = 1; - } - } - elsif ($match eq "//") - { - s-//.*--; - } - else # ' or " - { - if (!s-$match([^\\]|\\.)*?$match-QUOTEDTEXT-) - { - warn "mismatched quotes at line $. in $file\n"; - s-$match.*--; - } - } - } - - if (/\w\.GetString *\(QUOTEDTEXT/) - { - if (defined isNotValidMissing (unpack("x3 A*", $file))) { - ## Remove the first 3 chars and add newline - push @buf_allfiles, unpack("x3 A*", $file) . "\n"; - } - last; - } - - ## C_ N_ Q_ and _ are the macros defined in gi8n.h - if (/[CNQ]?_ *\(QUOTEDTEXT/) - { - if (defined isNotValidMissing (unpack("x3 A*", $file))) { - ## Remove the first 3 chars and add newline - push @buf_allfiles, unpack("x3 A*", $file) . "\n"; - } - last; - } - } - close FILE; - } - - foreach my $file (@buf_i18n_xml) - { - open FILE, "<$file"; - - while () - { - # FIXME: share the pattern matching code with intltool-extract - if (/\s_[-A-Za-z0-9._:]+\s*=\s*\"([^"]+)\"/ || /<_[^>]+>/ || /translatable=\"yes\"/) - { - if (defined isNotValidMissing (unpack("x3 A*", $file))) { - push @buf_allfiles, unpack("x3 A*", $file) . "\n"; - } - last; - } - } - close FILE; - } - - foreach my $file (@buf_i18n_ini) - { - open FILE, "<$file"; - while () - { - if (/_(.*)=/) - { - if (defined isNotValidMissing (unpack("x3 A*", $file))) { - push @buf_allfiles, unpack("x3 A*", $file) . "\n"; - } - last; - } - } - close FILE; - } - - foreach my $file (@buf_i18n_xml_unmarked) - { - if (defined isNotValidMissing (unpack("x3 A*", $file))) { - push @buf_allfiles, unpack("x3 A*", $file) . "\n"; - } - } - - - @buf_allfiles_sorted = sort (@buf_allfiles); - @buf_potfiles_sorted = sort (@buf_potfiles); - - my %in2; - foreach (@buf_potfiles_sorted) - { - s#^$SRCDIR/../##; - s#^$SRCDIR/##; - $in2{$_} = 1; - } - - foreach (@buf_potfiles_ignore_sorted) - { - s#^$SRCDIR/../##; - s#^$SRCDIR/##; - $in2{$_} = 1; - } - - my @result; - - foreach (@buf_allfiles_sorted) - { - my $dummy = $_; - my $srcdir = $SRCDIR; - - $srcdir =~ s#^../##; - $dummy =~ s#^$srcdir/../##; - $dummy =~ s#^$srcdir/##; - $dummy =~ s#_build/##; - if (!exists($in2{$dummy})) - { - push @result, $dummy - } - } - - my @buf_potfiles_notexist; - - foreach (@buf_potfiles_sorted) - { - chomp (my $dummy = $_); - if ("$dummy" ne "" and !(-f "$SRCDIR/../$dummy" or -f "../$dummy")) - { - push @buf_potfiles_notexist, $_; - } - } - - ## Save file with information about the files missing - ## if any, and give information about this procedure. - if (@result + @buf_potfiles_notexist > 0) - { - if (@result) - { - print "\n" if $VERBOSE; - unlink "missing"; - open OUT, ">missing"; - print OUT @result; - close OUT; - warn "\e[1mThe following files contain translations and are currently not in use. Please\e[0m\n". - "\e[1mconsider adding these to the POTFILES.in file, located in the po/ directory.\e[0m\n\n"; - print STDERR @result, "\n"; - warn "If some of these files are left out on purpose then please add them to\n". - "POTFILES.skip instead of POTFILES.in. A file \e[1m'missing'\e[0m containing this list\n". - "of left out files has been written in the current directory.\n"; - } - if (@buf_potfiles_notexist) - { - unlink "notexist"; - open OUT, ">notexist"; - print OUT @buf_potfiles_notexist; - close OUT; - warn "\n" if ($VERBOSE or @result); - warn "\e[1mThe following files do not exist anymore:\e[0m\n\n"; - warn @buf_potfiles_notexist, "\n"; - warn "Please remove them from POTFILES.in. A file \e[1m'notexist'\e[0m\n". - "containing this list of absent files has been written in the current directory.\n"; - } - } - - ## If there is nothing to complain about, notify the user - else { - print "\nAll files containing translations are present in POTFILES.in.\n" if $VERBOSE; - } -} - -sub Console_WriteError_InvalidOption -{ - ## Handle invalid arguments - print STDERR "Try `${PROGRAM} --help' for more information.\n"; - exit 1; -} - -sub isProgramInPath -{ - my ($file) = @_; - # If either a file exists, or when run it returns 0 exit status - return 1 if ((-x $file) or (system("$file --version >$devnull") == 0)); - return 0; -} - -sub isGNUGettextTool -{ - my ($file) = @_; - # Check that we are using GNU gettext tools - if (isProgramInPath ($file)) - { - my $version = `$file --version`; - return 1 if ($version =~ m/.*\(GNU .*\).*/); - } - return 0; -} - -sub GenerateHeaders -{ - my $EXTRACT = $ENV{"INTLTOOL_EXTRACT"} || "intltool-extract"; - - ## Generate the .h header files, so we can allow glade and - ## xml translation support - if (! isProgramInPath ("$EXTRACT")) - { - print STDERR "\n *** The intltool-extract script wasn't found!" - ."\n *** Without it, intltool-update can not generate files.\n"; - exit; - } - else - { - open (FILE, $POTFILES_in) or die "$PROGRAM: POTFILES.in not found.\n"; - - while () - { - chomp; - next if /^\[\s*encoding/; - - ## Find xml files in POTFILES.in and generate the - ## files with help from the extract script - - my $gettext_type= &POFile_DetermineType ($1); - - if (/\.($xml_support|$ini_support)$/ || /^\[/) - { - s/^\[[^\[].*]\s*//; - - my $filename = "../$_"; - - if ($VERBOSE) - { - system ($EXTRACT, "--update", "--srcdir=$SRCDIR", - "--type=$gettext_type", $filename); - } - else - { - system ($EXTRACT, "--update", "--type=$gettext_type", - "--srcdir=$SRCDIR", "--quiet", $filename); - } - } - } - close FILE; - } -} - -# -# Generate .pot file from POTFILES.in -# -sub GeneratePOTemplate -{ - my $XGETTEXT = $ENV{"XGETTEXT"} || "xgettext"; - my $XGETTEXT_ARGS = $ENV{"XGETTEXT_ARGS"} || ''; - chomp $XGETTEXT; - - if (! isGNUGettextTool ("$XGETTEXT")) - { - print STDERR " *** GNU xgettext is not found on this system!\n". - " *** Without it, intltool-update can not extract strings.\n"; - exit; - } - - print "Building $MODULE.pot...\n" if $VERBOSE; - - open INFILE, $POTFILES_in; - unlink "POTFILES.in.temp"; - open OUTFILE, ">POTFILES.in.temp" or die("Cannot open POTFILES.in.temp for writing"); - - my $gettext_support_nonascii = 0; - - # checks for GNU gettext >= 0.12 - my $dummy = `$XGETTEXT --version --from-code=UTF-8 >$devnull 2>$devnull`; - if ($? == 0) - { - $gettext_support_nonascii = 1; - } - else - { - # urge everybody to upgrade gettext - print STDERR "WARNING: This version of gettext does not support extracting non-ASCII\n". - " strings. That means you should install a version of gettext\n". - " that supports non-ASCII strings (such as GNU gettext >= 0.12),\n". - " or have to let non-ASCII strings untranslated. (If there is any)\n"; - } - - my $encoding = "ASCII"; - my $forced_gettext_code; - my @temp_headers; - my $encoding_problem_is_reported = 0; - - while () - { - next if (/^#/ or /^\s*$/); - - chomp; - - my $gettext_code; - - if (/^\[\s*encoding:\s*(.*)\s*\]/) - { - $forced_gettext_code=$1; - } - elsif (/\.($xml_support|$ini_support)$/ || /^\[/) - { - s/^\[.*]\s*//; - print OUTFILE "../$_.h\n"; - push @temp_headers, "../$_.h"; - $gettext_code = &TextFile_DetermineEncoding ("../$_.h") if ($gettext_support_nonascii and not defined $forced_gettext_code); - } - else - { - print OUTFILE "$SRCDIR/../$_\n"; - $gettext_code = &TextFile_DetermineEncoding ("$SRCDIR/../$_") if ($gettext_support_nonascii and not defined $forced_gettext_code); - } - - next if (! $gettext_support_nonascii); - - if (defined $forced_gettext_code) - { - $encoding=$forced_gettext_code; - } - elsif (defined $gettext_code and "$encoding" ne "$gettext_code") - { - if ($encoding eq "ASCII") - { - $encoding=$gettext_code; - } - elsif ($gettext_code ne "ASCII") - { - # Only report once because the message is quite long - if (! $encoding_problem_is_reported) - { - print STDERR "WARNING: You should use the same file encoding for all your project files,\n". - " but $PROGRAM thinks that most of the source files are in\n". - " $encoding encoding, while \"$_\" is (likely) in\n". - " $gettext_code encoding. If you are sure that all translatable strings\n". - " are in same encoding (say UTF-8), please \e[1m*prepend*\e[0m the following\n". - " line to POTFILES.in:\n\n". - " [encoding: UTF-8]\n\n". - " and make sure that configure.in/ac checks for $PACKAGE >= 0.27 .\n". - "(such warning message will only be reported once.)\n"; - $encoding_problem_is_reported = 1; - } - } - } - } - - close OUTFILE; - close INFILE; - - unlink "$MODULE.pot"; - my @xgettext_argument=("$XGETTEXT", - "--add-comments", - "--directory\=.", - "--default-domain\=$MODULE", - "--flag\=g_strdup_printf:1:c-format", - "--flag\=g_string_printf:2:c-format", - "--flag\=g_string_append_printf:2:c-format", - "--flag\=g_error_new:3:c-format", - "--flag\=g_set_error:4:c-format", - "--flag\=g_markup_printf_escaped:1:c-format", - "--flag\=g_log:3:c-format", - "--flag\=g_print:1:c-format", - "--flag\=g_printerr:1:c-format", - "--flag\=g_printf:1:c-format", - "--flag\=g_fprintf:2:c-format", - "--flag\=g_sprintf:2:c-format", - "--flag\=g_snprintf:3:c-format", - "--flag\=g_scanner_error:2:c-format", - "--flag\=g_scanner_warn:2:c-format", - "--output\=$MODULE\.pot", - "--files-from\=\.\/POTFILES\.in\.temp"); - my $XGETTEXT_KEYWORDS = &FindPOTKeywords; - push @xgettext_argument, $XGETTEXT_KEYWORDS; - my $MSGID_BUGS_ADDRESS = &FindMakevarsBugAddress; - push @xgettext_argument, "--msgid-bugs-address\=\"$MSGID_BUGS_ADDRESS\"" if $MSGID_BUGS_ADDRESS; - push @xgettext_argument, "--from-code\=$encoding" if ($gettext_support_nonascii); - push @xgettext_argument, $XGETTEXT_ARGS if $XGETTEXT_ARGS; - my $xgettext_command = join ' ', @xgettext_argument; - - # intercept xgettext error message - print "Running $xgettext_command\n" if $VERBOSE; - my $xgettext_error_msg = `$xgettext_command 2>\&1`; - my $command_failed = $?; - - unlink "POTFILES.in.temp"; - - print "Removing generated header (.h) files..." if $VERBOSE; - unlink foreach (@temp_headers); - print "done.\n" if $VERBOSE; - - if (! $command_failed) - { - if (! -e "$MODULE.pot") - { - print "None of the files in POTFILES.in contain strings marked for translation.\n" if $VERBOSE; - } - else - { - print "Wrote $MODULE.pot\n" if $VERBOSE; - } - } - else - { - if ($xgettext_error_msg =~ /--from-code/) - { - # replace non-ASCII error message with a more useful one. - print STDERR "ERROR: xgettext failed to generate PO template file because there is non-ASCII\n". - " string marked for translation. Please make sure that all strings marked\n". - " for translation are in uniform encoding (say UTF-8), then \e[1m*prepend*\e[0m the\n". - " following line to POTFILES.in and rerun $PROGRAM:\n\n". - " [encoding: UTF-8]\n\n"; - } - else - { - print STDERR "$xgettext_error_msg"; - if (-e "$MODULE.pot") - { - # is this possible? - print STDERR "ERROR: xgettext failed but still managed to generate PO template file.\n". - " Please consult error message above if there is any.\n"; - } - else - { - print STDERR "ERROR: xgettext failed to generate PO template file. Please consult\n". - " error message above if there is any.\n"; - } - } - exit (1); - } -} - -sub POFile_Update -{ - -f "$MODULE.pot" or die "$PROGRAM: $MODULE.pot does not exist.\n"; - - my $MSGMERGE = $ENV{"MSGMERGE"} || "msgmerge"; - my ($lang, $outfile) = @_; - - if (! isGNUGettextTool ("$MSGMERGE")) - { - print STDERR " *** GNU msgmerge is not found on this system!\n". - " *** Without it, intltool-update can not extract strings.\n"; - exit; - } - - print "Merging $SRCDIR/$lang.po with $MODULE.pot..." if $VERBOSE; - - my $infile = "$SRCDIR/$lang.po"; - $outfile = "$SRCDIR/$lang.po" if ($outfile eq ""); - - # I think msgmerge won't overwrite old file if merge is not successful - system ("$MSGMERGE", "-o", $outfile, $infile, "$MODULE.pot"); -} - -sub Console_WriteError_NotExisting -{ - my ($file) = @_; - - ## Report error if supplied language file is non-existing - print STDERR "$PROGRAM: $file does not exist!\n"; - print STDERR "Try '$PROGRAM --help' for more information.\n"; - exit; -} - -sub GatherPOFiles -{ - my @po_files = glob ("./*.po"); - - @languages = map (&POFile_GetLanguage, @po_files); - - foreach my $lang (@languages) - { - $po_files_by_lang{$lang} = shift (@po_files); - } -} - -sub POFile_GetLanguage ($) -{ - s/^(.*\/)?(.+)\.po$/$2/; - return $_; -} - -sub Console_Write_TranslationStatus -{ - my ($lang, $output_file) = @_; - my $MSGFMT = $ENV{"MSGFMT"} || "msgfmt"; - - if (! isGNUGettextTool ("$MSGFMT")) - { - print STDERR " *** GNU msgfmt is not found on this system!\n". - " *** Without it, intltool-update can not extract strings.\n"; - exit; - } - - $output_file = "$SRCDIR/$lang.po" if ($output_file eq ""); - - system ("$MSGFMT", "-o", "$devnull", "--verbose", $output_file); -} - -sub Console_Write_CoverageReport -{ - my $MSGFMT = $ENV{"MSGFMT"} || "msgfmt"; - - if (! isGNUGettextTool ("$MSGFMT")) - { - print STDERR " *** GNU msgfmt is not found on this system!\n". - " *** Without it, intltool-update can not extract strings.\n"; - exit; - } - - &GatherPOFiles; - - foreach my $lang (@languages) - { - print STDERR "$lang: "; - &POFile_Update ($lang, ""); - } - - print STDERR "\n\n * Current translation support in $MODULE \n\n"; - - foreach my $lang (@languages) - { - print STDERR "$lang: "; - system ("$MSGFMT", "-o", "$devnull", "--verbose", "$SRCDIR/$lang.po"); - } -} - -sub SubstituteVariable -{ - my ($str) = @_; - - # always need to rewind file whenever it has been accessed - seek (CONF, 0, 0); - - # cache each variable. varhash is global to we can add - # variables elsewhere. - while () - { - if (/^(\w+)=(.*)$/) - { - ($varhash{$1} = $2) =~ s/^["'](.*)["']$/$1/; - } - } - - if ($str =~ /^(.*)\${?([A-Z_]+)}?(.*)$/) - { - my $rest = $3; - my $untouched = $1; - my $sub = ""; - # Ignore recursive definitions of variables - $sub = $varhash{$2} if defined $varhash{$2} and $varhash{$2} !~ /\${?$2}?/; - - return SubstituteVariable ("$untouched$sub$rest"); - } - - # We're using Perl backticks ` and "echo -n" here in order to - # expand any shell escapes (such as backticks themselves) in every variable - return echo_n ($str); -} - -sub CONF_Handle_Open -{ - my $base_dirname = getcwd(); - $base_dirname =~ s@.*/@@; - - my ($conf_in, $src_dir); - - if ($base_dirname =~ /^po(-.+)?$/) - { - if (-f "Makevars") - { - my $makefile_source; - - local (*IN); - open (IN, ") - { - if (/^top_builddir[ \t]*=/) - { - $src_dir = $_; - $src_dir =~ s/^top_builddir[ \t]*=[ \t]*([^ \t\n\r]*)/$1/; - - chomp $src_dir; - if (-f "$src_dir" . "/configure.ac") { - $conf_in = "$src_dir" . "/configure.ac" . "\n"; - } else { - $conf_in = "$src_dir" . "/configure.in" . "\n"; - } - last; - } - } - close IN; - - $conf_in || die "Cannot find top_builddir in Makevars."; - } - elsif (-f "$SRCDIR/../configure.ac") - { - $conf_in = "$SRCDIR/../configure.ac"; - } - elsif (-f "$SRCDIR/../configure.in") - { - $conf_in = "$SRCDIR/../configure.in"; - } - else - { - my $makefile_source; - - local (*IN); - open (IN, ") - { - if (/^top_srcdir[ \t]*=/) - { - $src_dir = $_; - $src_dir =~ s/^top_srcdir[ \t]*=[ \t]*([^ \t\n\r]*)/$1/; - - chomp $src_dir; - $conf_in = "$src_dir" . "/configure.in" . "\n"; - - last; - } - } - close IN; - - $conf_in || die "Cannot find top_srcdir in Makefile."; - } - - open (CONF, "<$conf_in"); - } - else - { - print STDERR "$PROGRAM: Unable to proceed.\n" . - "Make sure to run this script inside the po directory.\n"; - exit; - } -} - -sub FindPackageName -{ - my $version; - my $domain = &FindMakevarsDomain; - my $name = $domain || "untitled"; - - &CONF_Handle_Open; - - my $conf_source; { - local (*IN); - open (IN, "<&CONF") || return $name; - seek (IN, 0, 0); - local $/; # slurp mode - $conf_source = ; - close IN; - } - - # priority for getting package name: - # 1. GETTEXT_PACKAGE - # 2. first argument of AC_INIT (with >= 2 arguments) - # 3. first argument of AM_INIT_AUTOMAKE (with >= 2 argument) - - # /^AM_INIT_AUTOMAKE\([\s\[]*([^,\)\s\]]+)/m - # the \s makes this not work, why? - if ($conf_source =~ /^AM_INIT_AUTOMAKE\(([^,\)]+),([^,\)]+)/m) - { - ($name, $version) = ($1, $2); - $name =~ s/[\[\]\s]//g; - $version =~ s/[\[\]\s]//g; - $varhash{"PACKAGE_NAME"} = $name if (not $name =~ /\${?AC_PACKAGE_NAME}?/); - $varhash{"PACKAGE"} = $name if (not $name =~ /\${?PACKAGE}?/); - $varhash{"PACKAGE_VERSION"} = $version if (not $name =~ /\${?AC_PACKAGE_VERSION}?/); - $varhash{"VERSION"} = $version if (not $name =~ /\${?VERSION}?/); - } - - if ($conf_source =~ /^AC_INIT\(([^,\)]+),([^,\)]+)/m) - { - ($name, $version) = ($1, $2); - $name =~ s/[\[\]\s]//g; - $version =~ s/[\[\]\s]//g; - $varhash{"PACKAGE_NAME"} = $name if (not $name =~ /\${?AC_PACKAGE_NAME}?/); - $varhash{"PACKAGE"} = $name if (not $name =~ /\${?PACKAGE}?/); - $varhash{"PACKAGE_VERSION"} = $version if (not $name =~ /\${?AC_PACKAGE_VERSION}?/); - $varhash{"VERSION"} = $version if (not $name =~ /\${?VERSION}?/); - } - - # \s makes this not work, why? - $name = $1 if $conf_source =~ /^GETTEXT_PACKAGE=\[?([^\n\]]+)/m; - - # m4 macros AC_PACKAGE_NAME, AC_PACKAGE_VERSION etc. have same value - # as corresponding $PACKAGE_NAME, $PACKAGE_VERSION etc. shell variables. - $name =~ s/\bAC_PACKAGE_/\$PACKAGE_/g; - - $name = $domain if $domain; - - $name = SubstituteVariable ($name); - $name =~ s/^["'](.*)["']$/$1/; - - return $name if $name; -} - - -sub FindPOTKeywords -{ - - my $keywords = "--keyword\=\_ --keyword\=N\_ --keyword\=U\_ --keyword\=Q\_"; - my $varname = "XGETTEXT_OPTIONS"; - my $make_source; { - local (*IN); - open (IN, "; - close IN; - } - - # unwrap lines split with a trailing \ - $make_source =~ s/\\ $ \n/ /mxg; - $keywords = $1 if $make_source =~ /^$varname[ ]*=\[?([^\n\]]+)/m; - - return $keywords; -} - -sub FindMakevarsDomain -{ - - my $domain = ""; - my $makevars_source; { - local (*IN); - open (IN, "; - close IN; - } - - $domain = $1 if $makevars_source =~ /^DOMAIN[ ]*=\[?([^\n\]\$]+)/m; - $domain =~ s/^\s+//; - $domain =~ s/\s+$//; - - return $domain; -} - -sub FindMakevarsBugAddress -{ - - my $address = ""; - my $makevars_source; { - local (*IN); - open (IN, "; - close IN; - } - - $address = $1 if $makevars_source =~ /^MSGID_BUGS_ADDRESS[ ]*=\[?([^\n\]\$]+)/m; - $address =~ s/^\s+//; - $address =~ s/\s+$//; - - return $address; -} diff -Nru gcalctool-5.24.1/NEWS gcalctool-5.24.2/NEWS --- gcalctool-5.24.1/NEWS 2008-10-20 00:21:43.000000000 +0200 +++ gcalctool-5.24.2/NEWS 2008-11-24 23:42:17.000000000 +0100 @@ -4,6 +4,22 @@ * All Rights Reserved. */ +Overview of changes in gcalctool 5.24.2 + + * Re-enable trigonometric types which have been disabled since 2.24.0 (Robert Ancell, Bug #559575) + + * Remember setting to ignore change mode warning between instances (Robert Ancell, Bug #556407) + + * Always read configuration from /apps/gcalctool not /apps/(appname) as + the application name is different when symlinked (Matt Keenan, Bug #559260). + + * Open help with gtk_show_uri() (Thomas Andersen, Bug #556207). + + * Removed double conversion in boolean and 32 bit and 16 bit mask operations so + they can handle larger numbers (Robert Ancell, Bug #509988) + + * Updated translations: et (Ivar Smolin), pt_BR (Leonardo Ferreira Fontenelle), uk (Maxim Dziumanenko). + Overview of changes in gcalctool 5.24.1 * Fixed GtkSpinButton warning (Robin Sonefors, Bug #553965) diff -Nru gcalctool-5.24.1/po/ChangeLog gcalctool-5.24.2/po/ChangeLog --- gcalctool-5.24.1/po/ChangeLog 2008-10-20 00:13:28.000000000 +0200 +++ gcalctool-5.24.2/po/ChangeLog 2008-11-24 23:42:16.000000000 +0100 @@ -1,3 +1,17 @@ +2008-10-30 Maxim Dziumanenko + + * uk.po: Update Ukrainian translation. + +2008-10-26 Leonardo Ferreira Fontenelle + + * pt_BR.po: Fixed Brazilian Portuguese translation of "future value" and + "present value" to match the label of common calculators in Brazil; and + two other minor fixes. + +2008-10-24 Priit Laes + + * et.po: Translation updated by Ivar Smolin + 2008-10-19 Djihed Afifi * ar.po: Updated Arabic Translation by Anas Afif Emad. diff -Nru gcalctool-5.24.1/po/et.po gcalctool-5.24.2/po/et.po --- gcalctool-5.24.1/po/et.po 2008-10-11 05:29:40.000000000 +0200 +++ gcalctool-5.24.2/po/et.po 2008-11-24 23:42:16.000000000 +0100 @@ -9,9 +9,9 @@ # msgid "" msgstr "" -"Project-Id-Version: Gcalctool HEAD\n" +"Project-Id-Version: Gcalctool 2.24\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2008-08-04 07:53+0000\n" +"POT-Creation-Date: 2008-09-29 09:27+0000\n" "PO-Revision-Date: 2008-08-27 12:15+0300\n" "Last-Translator: Ivar Smolin \n" "Language-Team: Estonian \n" @@ -20,52 +20,39 @@ "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: ../gcalctool/calctool.c:472 msgid "Kilometer-to-mile conversion factor" msgstr "Kilomeeterist miiliks teisendamise tegur" -#: ../gcalctool/calctool.c:474 msgid "square root of 2" msgstr "ruutjuur kahest" -#: ../gcalctool/calctool.c:475 msgid "Euler's Number (e)" msgstr "Euleri arv (e)" -#: ../gcalctool/calctool.c:476 msgid "pi" msgstr "pii" -#: ../gcalctool/calctool.c:477 msgid "Centimeter-to-inch conversion factor" msgstr "Sentimeetrist tolliks teisendamise tegur" -#: ../gcalctool/calctool.c:479 msgid "degrees in a radian" msgstr "kraadid radiaanides" -#: ../gcalctool/calctool.c:480 msgid "2 ^ 20" msgstr "2 ^ 20" -#: ../gcalctool/calctool.c:481 msgid "Gram-to-ounce conversion factor" msgstr "Grammist untsiks teisendamise tegur" -#: ../gcalctool/calctool.c:483 msgid "Kilojoule-to-British-thermal-unit conversion factor" msgstr "Kilodžaulist Briti soojusühikuks teisendamise tegur" -#: ../gcalctool/calctool.c:486 msgid "Cubic-centimeter-to-cubic-inch conversion factor" msgstr "Kuupsentimeetrist kuuptolliks teisendamise tegur" #. THIS ROUTINE IS CALLED WHEN AN ERROR CONDITION IS ENCOUNTERED, AND #. * AFTER A MESSAGE HAS BEEN WRITTEN TO STDERR. #. -#: ../gcalctool/calctool.c:497 ../gcalctool/mp.c:1814 -#: ../gcalctool/mpmath.c:347 ../gcalctool/mpmath.c:384 -#: ../gcalctool/mpmath.c:432 ../gcalctool/mpmath.c:998 msgid "Error" msgstr "Viga" @@ -74,7 +61,6 @@ #. * the second is an error message (see the last parameter in the #. * getparam() call in the get_options() routine below. #. -#: ../gcalctool/calctool.c:514 #, c-format msgid "%s: %s as next argument.\n" msgstr "%s: %s järgmise argumendina.\n" @@ -83,7 +69,6 @@ #. * are passed to it: the first is the gcalctool program name and #. * the second is the program version number. #. -#: ../gcalctool/calctool.c:527 #, c-format msgid "" "%s version %s\n" @@ -92,134 +77,104 @@ "%s versioon %s\n" "\n" -#: ../gcalctool/calctool.c:528 #, c-format msgid "Usage: %s: [-E] [-u] [-a accuracy] " msgstr "Kasutamine: %s: [-E] [-u] [-a täpsus] " -#: ../gcalctool/calctool.c:529 msgid "\t\t [-?] [-v] [-h]\n" msgstr "\t\t [-?] [-v] [-h]\n" -#: ../gcalctool/calctool.c:550 msgid "-a needs accuracy value" msgstr "-a vajab täpsuse väärtust" -#: ../gcalctool/calctool.c:554 ../gcalctool/get.c:242 #, c-format msgid "%s: accuracy should be in the range 0-%d\n" msgstr "%s: täpsus peab olema vahemikus 0-%d\n" -#: ../gcalctool/display.c:322 msgid "No undo history" msgstr "Tühistamiste ajalugu puudub" -#: ../gcalctool/display.c:336 msgid "No redo steps" msgstr "Puuduvad taastamise sammud" -#: ../gcalctool/functions.c:135 msgid "Malformed function" msgstr "Vigane funktsioon" -#: ../gcalctool/functions.c:145 msgid "No sane value to do bitwise shift" msgstr "Bitinihke tegemiseks pole mõistlikku väärtust" -#: ../gcalctool/functions.c:178 ../gcalctool/functions.c:227 msgid "No sane value to convert" msgstr "Teisendamiseks pole mõistlikku väärtust" -#: ../gcalctool/functions.c:202 ../gcalctool/functions.c:244 msgid "No sane value to store" msgstr "Salvestamiseks pole mõistlikku väärtust" -#: ../gcalctool/functions.c:401 msgid "Invalid number for the current base" msgstr "Vigane number selle süsteemi jaoks" -#: ../gcalctool/functions.c:405 msgid "Too long number" msgstr "Liiga pikk arv" -#: ../gcalctool/functions.c:409 msgid "Invalid bitwise operation parameter(s)" msgstr "Bitikaupa tehtel on vigane parameeter (parameetrid)" -#: ../gcalctool/functions.c:413 msgid "Invalid modulus operation parameter(s)" msgstr "Vigane jagamistehte parameeter (või parameetrid)" -#: ../gcalctool/functions.c:417 msgid "Math operation error" msgstr "Viga tehtel" -#: ../gcalctool/functions.c:421 msgid "Malformed expression" msgstr "Vigane avaldis" -#: ../gcalctool/get.c:263 #, c-format msgid "%s: base should be 2, 8, 10 or 16\n" msgstr "%s: numbrisüsteemi põhi peab olema 2, 8, 10 või 16\n" -#: ../gcalctool/get.c:278 #, c-format msgid "%s: invalid display mode [%s]\n" msgstr "%s: vigane kuvarežiim [%s]\n" -#: ../gcalctool/get.c:293 #, c-format msgid "%s: invalid mode [%s]\n" msgstr "%s: vigane režiim [%s]\n" -#: ../gcalctool/get.c:307 #, c-format msgid "%s: invalid trigonometric mode [%s]\n" msgstr "%s: vigane trigonomeetriline režiim [%s]\n" -#: ../gcalctool/gtk.c:54 ../gcalctool.desktop.in.h:1 msgid "Calculator" msgstr "Kalkulaator" -#: ../gcalctool/gtk.c:54 msgid "Calculator - Advanced" msgstr "Kalkulaator - Laiendatud" -#: ../gcalctool/gtk.c:54 msgid "Calculator - Financial" msgstr "Kalkulaator - Rahandus" -#: ../gcalctool/gtk.c:55 msgid "Calculator - Scientific" msgstr "Kalkulaator - Teaduslik" -#: ../gcalctool/gtk.c:60 #, c-format msgid "Calculator [%s]" msgstr "Kalkulaator [%s]" -#: ../gcalctool/gtk.c:60 #, c-format msgid "Calculator [%s] - Advanced" msgstr "Kalkulaator [%s] - Laiendatud" -#: ../gcalctool/gtk.c:60 #, c-format msgid "Calculator [%s] - Financial" msgstr "Kalkulaator [%s] - Rahandus" -#: ../gcalctool/gtk.c:61 #, c-format msgid "Calculator [%s] - Scientific" msgstr "Kalkulaator [%s] - Teaduslik" -#: ../gcalctool/gtk.c:495 ../glade/gcalctool.glade.h:385 #, no-c-format msgid "_Other (%d) ..." msgstr "_Muud (%d) ..." -#: ../gcalctool/gtk.c:499 #, c-format msgid "Set accuracy from 0 to %d numeric place." msgid_plural "Set accuracy from 0 to %d numeric places." @@ -227,7 +182,6 @@ msgstr[1] "Täpsuse seadmine 0-st kuni %d. komakohani." #. Translators: This refers to the current accuracy setting -#: ../gcalctool/gtk.c:505 #, c-format msgid "Currently set to %d place." msgid_plural "Currently set to %d places." @@ -235,53 +189,41 @@ msgstr[1] "Hetkel on määratud %d kohta." #. Factorial -#: ../gcalctool/gtk.c:537 ../glade/gcalctool.glade.h:313 msgid "Sin" msgstr "Sin" -#: ../gcalctool/gtk.c:537 msgid "Sinh" msgstr "Sinh" -#: ../gcalctool/gtk.c:538 msgid "Sin-1" msgstr "Sin-1" -#: ../gcalctool/gtk.c:539 msgid "Sinh-1" msgstr "Sinh-1" #. Factorial -#: ../gcalctool/gtk.c:541 ../glade/gcalctool.glade.h:139 msgid "Cos" msgstr "Cos" -#: ../gcalctool/gtk.c:541 msgid "Cosh" msgstr "Cosh" -#: ../gcalctool/gtk.c:542 msgid "Cos-1" msgstr "Cos-1" -#: ../gcalctool/gtk.c:543 msgid "Cosh-1" msgstr "Cosh-1" #. Factorial -#: ../gcalctool/gtk.c:545 ../glade/gcalctool.glade.h:338 msgid "Tan" msgstr "Tan" -#: ../gcalctool/gtk.c:545 msgid "Tanh" msgstr "Tanh" -#: ../gcalctool/gtk.c:546 msgid "Tan-1" msgstr "Tan-1" -#: ../gcalctool/gtk.c:547 msgid "Tanh-1" msgstr "Tanh-1" @@ -294,17 +236,14 @@ #. * (a one becomes a zero and a zero becomes a one), causing the #. * displayed integer value to be adjusted accordingly. #. -#: ../gcalctool/gtk.c:643 msgid "Bit editor activated. Click on bit values to toggle them." msgstr "Bitiredaktor on aktiveeritud. Biti väärtuse muutmiseks klõpsa bitil." -#: ../gcalctool/gtk.c:1069 msgid "translator-credits" msgstr "" "Priit Laes , 2004.\n" "Ivar Smolin , 2005-2008." -#: ../gcalctool/gtk.c:1072 msgid "" "Gcalctool is free software; you can redistribute it and/or modify\n" "it under the terms of the GNU General Public License as published by\n" @@ -316,7 +255,6 @@ "Vaba Tarkvara Fondi poolt avaldatud; kas Litsentsi versioon number 2\n" "või (vastavalt Teie valikule) ükskõik milline hilisem versioon.\n" -#: ../gcalctool/gtk.c:1076 msgid "" "Gcalctool is distributed in the hope that it will be useful,\n" "but WITHOUT ANY WARRANTY; without even the implied warranty of\n" @@ -328,7 +266,6 @@ "GARANTIITAvõi SOBIVUSELE TEATUD KINDLAKS EESMÄRGIKS.\n" "Üksikasjade suhtes vaata GNU Üldist Avalikku Litsentsi.\n" -#: ../gcalctool/gtk.c:1080 msgid "" "You should have received a copy of the GNU General Public License\n" "along with Gcalctool; if not, write to the Free Software Foundation, Inc.,\n" @@ -338,31 +275,24 @@ "Gcalctool'ga, kui ei, siis võtke ühendust Free Software Foundation'iga,\n" "51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA\n" -#: ../gcalctool/gtk.c:1091 msgid "Gcalctool" msgstr "Gcalctool" -#: ../gcalctool/gtk.c:1093 msgid "© 1986-2008 The Gcalctool authors" msgstr "© 1986-2008 Gcalctool'i autorid" -#: ../gcalctool/gtk.c:1095 msgid "Calculator with financial and scientific modes." msgstr "Kalkulaator koos finants- ja teadusarvutuste toega." -#: ../gcalctool/gtk.c:1380 ../glade/gcalctool.glade.h:118 msgid "C" msgstr "C" -#: ../gcalctool/gtk.c:1398 ../glade/gcalctool.glade.h:169 msgid "F" msgstr "F" -#: ../gcalctool/gtk.c:1579 msgid "Changing Modes Clears Calculation" msgstr "Režiimimuutus nullib arvutused" -#: ../gcalctool/gtk.c:1582 msgid "" "When you change modes, the current calculation will be cleared, and the base " "will be reset to decimal." @@ -370,29 +300,23 @@ "Režiimi muutmise tagajärjel nullitakse praegused arvutused ja numbrisüsteem " "seatakse kümnendsüsteemiks." -#: ../gcalctool/gtk.c:1586 msgid "_Do not warn me again" msgstr "_Hoiatust rohkem mitte kuvada" -#: ../gcalctool/gtk.c:1591 msgid "C_hange Mode" msgstr "_Muuda režiimi" #. translators: R is the short form of register used inter alia #. in popup menus -#: ../gcalctool/gtk.c:1707 msgid "R" msgstr "R" -#: ../gcalctool/gtk.c:2127 msgid "Paste" msgstr "Aseta" -#: ../gcalctool/gtk.c:2381 msgid "Error loading user interface" msgstr "Viga kasutajaliidese laadimisel" -#: ../gcalctool/gtk.c:2383 #, c-format msgid "" "The user interface file %s is missing or unable to be loaded. Please check " @@ -401,223 +325,174 @@ "Kasutajaliidese fail %s on puudu või pole seda võimalik laadida. Palun " "kontrolli programmi paigaldust." -#: ../gcalctool/gtk.c:2607 ../gcalctool/gtk.c:2625 msgid "No." msgstr "Nr." -#: ../gcalctool/gtk.c:2609 ../gcalctool/gtk.c:2627 msgid "Value" msgstr "Väärtus" -#: ../gcalctool/gtk.c:2611 ../gcalctool/gtk.c:2629 msgid "Description" msgstr "Kirjeldus" #. Set default accuracy menu item -#: ../gcalctool/gtk.c:2766 ../glade/gcalctool.glade.h:268 #, no-c-format msgid "Reset to _Default (%d)" msgstr "Määra _vaikimisi (%d)" -#: ../gcalctool/mp.c:3152 msgid "Negative X and non-integer Y not supported" msgstr "Negatiivne X ja mittetäisarvuline Y pole toetatud" -#: ../gcalctool/mpmath.c:255 msgid "Error, cannot calculate cosine" msgstr "Viga, koosiinust ei saa arvutada" -#: ../gcalctool.desktop.in.h:2 msgid "Perform arithmetic, scientific or financial calculations" msgstr "Aritmeetilised, teaduslikud ja finantsarvutused" #. This is a percentage sign -#: ../glade/gcalctool.glade.h:3 #, no-c-format msgid "%" msgstr "%" #. 16 bit unsigned integer -#: ../glade/gcalctool.glade.h:5 msgid "&16" msgstr "&16" #. 32 bit unsigned integer -#: ../glade/gcalctool.glade.h:7 msgid "&32" msgstr "&32" #. Left bracket -#: ../glade/gcalctool.glade.h:9 msgid "(" msgstr "(" #. Right bracket -#: ../glade/gcalctool.glade.h:11 msgid ")" msgstr ")" -#: ../glade/gcalctool.glade.h:12 msgid "+" msgstr "+" #. Numeric point -#: ../glade/gcalctool.glade.h:14 msgid "." msgstr "." #. Numeric 0 -#: ../glade/gcalctool.glade.h:16 msgid "0" msgstr "0" #. Numeric 1 -#: ../glade/gcalctool.glade.h:18 msgid "1" msgstr "1" -#: ../glade/gcalctool.glade.h:19 msgid "1/x" msgstr "1/x" -#: ../glade/gcalctool.glade.h:20 msgid "1/x" msgstr "1/x" -#: ../glade/gcalctool.glade.h:21 msgid "10 places" msgstr "10 kohta" -#: ../glade/gcalctool.glade.h:22 msgid "10 to the power of displayed value [}]" msgstr "10 astendamine kuvatava väärtusega [}]" -#: ../glade/gcalctool.glade.h:23 msgid "10 to the x" msgstr "10 astmele x" #. 10 to thepower of x. Note that this label uses mark up and the "x" is a superscript character. See: http://en.wikipedia.org/wiki/Superscript for more details on superscripts. -#: ../glade/gcalctool.glade.h:25 msgid "10x" msgstr "10x" -#: ../glade/gcalctool.glade.h:26 msgid "10x" msgstr "10x" -#: ../glade/gcalctool.glade.h:27 msgid "11 places" msgstr "11 kohta" -#: ../glade/gcalctool.glade.h:28 msgid "12 places" msgstr "12 kohta" -#: ../glade/gcalctool.glade.h:29 msgid "13 places" msgstr "13 kohta" -#: ../glade/gcalctool.glade.h:30 msgid "14 places" msgstr "14 kohta" -#: ../glade/gcalctool.glade.h:31 msgid "15" msgstr "15" -#: ../glade/gcalctool.glade.h:32 msgid "15 places" msgstr "15 kohta" -#: ../glade/gcalctool.glade.h:33 msgid "16 bit unsigned integer" msgstr "16-bitine märgita täisarv" -#: ../glade/gcalctool.glade.h:34 msgid "16-bit unsigned integer value of display (])" msgstr "Kuvatava väärtuse 16-bitine täisarvuline märgita väärtus (])" #. Numeric 2 -#: ../glade/gcalctool.glade.h:36 msgid "2" msgstr "2" #. Numeric 3 -#: ../glade/gcalctool.glade.h:38 msgid "3" msgstr "3" -#: ../glade/gcalctool.glade.h:39 msgid "31" msgstr "31" -#: ../glade/gcalctool.glade.h:40 msgid "32" msgstr "32" -#: ../glade/gcalctool.glade.h:41 msgid "32-bit unsigned integer value of display ([)" msgstr "Kuvatava väärtuse 32-bitine täisarvuline märgita väärtus (])" #. Numeric 4 -#: ../glade/gcalctool.glade.h:43 msgid "4" msgstr "4" -#: ../glade/gcalctool.glade.h:44 msgid "47" msgstr "47" #. Numeric 5 -#: ../glade/gcalctool.glade.h:46 msgid "5" msgstr "5" #. Numeric 6 -#: ../glade/gcalctool.glade.h:48 msgid "6" msgstr "6" -#: ../glade/gcalctool.glade.h:49 msgid "63" msgstr "63" #. Numeric 7 -#: ../glade/gcalctool.glade.h:51 msgid "7" msgstr "7" #. Numeric 8 -#: ../glade/gcalctool.glade.h:53 msgid "8" msgstr "8" #. Numeric 9 -#: ../glade/gcalctool.glade.h:55 msgid "9" msgstr "9" #. Shift left -#: ../glade/gcalctool.glade.h:57 msgid "<" msgstr "<" #. Factorial -#: ../glade/gcalctool.glade.h:59 msgid "x!" msgstr "x!" #. x squared. Note that this label uses mark up and the "x" is a superscript character. See: http://en.wikipedia.org/wiki/Superscript for more details on superscripts. -#: ../glade/gcalctool.glade.h:61 msgid "x2" msgstr "x2" #. X to the power of y. Note that this label uses mark up and the "y" is a superscript character. See: http://en.wikipedia.org/wiki/Superscript for more details on superscripts. -#: ../glade/gcalctool.glade.h:63 msgid "xy" msgstr "xy" -#: ../glade/gcalctool.glade.h:64 msgid "" "Note: All constant values are specified in the decimal " "numeric base." @@ -626,634 +501,485 @@ "kümnendsüsteemis." #. "R0" is the abbreviation for "Register 0", used in the memory register dialog -#: ../glade/gcalctool.glade.h:66 msgid "R0" msgstr "R0" #. "R1" is the abbreviation for "Register 1", used in the memory register dialog -#: ../glade/gcalctool.glade.h:68 msgid "R1" msgstr "R1" #. "R2" is the abbreviation for "Register 2", used in the memory register dialog -#: ../glade/gcalctool.glade.h:70 msgid "R2" msgstr "R2" #. "R3" is the abbreviation for "Register 3", used in the memory register dialog -#: ../glade/gcalctool.glade.h:72 msgid "R3" msgstr "R3" #. "R4" is the abbreviation for "Register 4", used in the memory register dialog -#: ../glade/gcalctool.glade.h:74 msgid "R4" msgstr "R4" #. "R5" is the abbreviation for "Register 5", used in the memory register dialog -#: ../glade/gcalctool.glade.h:76 msgid "R5" msgstr "R5" #. "R6" is the abbreviation for "Register 6", used in the memory register dialog -#: ../glade/gcalctool.glade.h:78 msgid "R6" msgstr "R6" #. "R7" is the abbreviation for "Register 7", used in the memory register dialog -#: ../glade/gcalctool.glade.h:80 msgid "R7" msgstr "R7" #. "R8" is the abbreviation for "Register 8", used in the memory register dialog -#: ../glade/gcalctool.glade.h:82 msgid "R8" msgstr "R8" #. "R9" is the abbreviation for "Register 9", used in the memory register dialog -#: ../glade/gcalctool.glade.h:84 msgid "R9" msgstr "R9" #. This is the calculate result button (=) -#: ../glade/gcalctool.glade.h:86 msgid "=" msgstr "=" #. Shift right -#: ../glade/gcalctool.glade.h:88 msgid ">" msgstr ">" -#: ../glade/gcalctool.glade.h:89 msgid "A" msgstr "A" -#: ../glade/gcalctool.glade.h:90 msgid "AND" msgstr "AND" #. Abs is short for Absolute -#: ../glade/gcalctool.glade.h:92 msgid "Abs" msgstr "Abs" -#: ../glade/gcalctool.glade.h:93 msgid "Absolute value" msgstr "Absoluutväärtus" -#: ../glade/gcalctool.glade.h:94 msgid "Absolute value [u]" msgstr "Absoluutväärtus [u]" #. Accuracy -#: ../glade/gcalctool.glade.h:96 msgid "Acc" msgstr "Täp" -#: ../glade/gcalctool.glade.h:97 msgid "Accuracy" msgstr "Täpsus" -#: ../glade/gcalctool.glade.h:98 msgid "Add" msgstr "Liitmine" -#: ../glade/gcalctool.glade.h:99 msgid "Add [+]" msgstr "Liitmine [+]" -#: ../glade/gcalctool.glade.h:100 msgid "Advanced" msgstr "Laiendatud" -#: ../glade/gcalctool.glade.h:101 msgid "B" msgstr "B" -#: ../glade/gcalctool.glade.h:102 msgid "Backspace" msgstr "Backspace" -#: ../glade/gcalctool.glade.h:103 msgid "Base 10 log [G]" msgstr "Kümnendlogaritm [G]" -#: ../glade/gcalctool.glade.h:104 msgid "Base 2 log [H]" msgstr "Logaritm alusel 2 [H]" -#: ../glade/gcalctool.glade.h:105 msgid "Basic" msgstr "Tavaline" -#: ../glade/gcalctool.glade.h:106 msgid "Bitwise AND" msgstr "Bitikaupa JA-tehe (AND)" -#: ../glade/gcalctool.glade.h:107 msgid "Bitwise AND [&]" msgstr "Bitikaupa JA-tehe (AND) [&]" -#: ../glade/gcalctool.glade.h:108 msgid "Bitwise NOT" msgstr "Bitikaupa EI-tehe (NOT)" -#: ../glade/gcalctool.glade.h:109 msgid "Bitwise NOT [~]" msgstr "Bitikaupa EI-tehe (NOT) [~]" -#: ../glade/gcalctool.glade.h:110 msgid "Bitwise OR" msgstr "Bitikaupa VÕI-tehe (OR)" -#: ../glade/gcalctool.glade.h:111 msgid "Bitwise OR [|]" msgstr "Bitikaupa VÕI-tehe (OR) [|]" -#: ../glade/gcalctool.glade.h:112 msgid "Bitwise XNOR" msgstr "Bitikaupa välistav VÕI-EI-tehe (XOR)" -#: ../glade/gcalctool.glade.h:113 msgid "Bitwise XNOR [n]" msgstr "Bitikaupa välistav VÕI-EI-tehe (XOR) [n]" -#: ../glade/gcalctool.glade.h:114 msgid "Bitwise XOR" msgstr "Bitikaupa välistav VÕI-tehe (XOR)" -#: ../glade/gcalctool.glade.h:115 msgid "Bitwise XOR [x]" msgstr "Bitikaupa välistav VÕI-tehe (XOR) [x]" #. Bksp is short for Backspace -#: ../glade/gcalctool.glade.h:117 msgid "Bksp" msgstr "Tagasi" -#: ../glade/gcalctool.glade.h:119 msgid "CE" msgstr "Kustuta" -#: ../glade/gcalctool.glade.h:120 msgid "Calculate result" msgstr "Tulemuse arvutamine" -#: ../glade/gcalctool.glade.h:121 msgid "Calculate result [=]" msgstr "Tulemuse arvutamine [=]" -#: ../glade/gcalctool.glade.h:122 msgid "Ch_aracter:" msgstr "Sü_mbol:" -#: ../glade/gcalctool.glade.h:123 msgid "Change Sign [C]" msgstr "Märgi muutmine [C]" -#: ../glade/gcalctool.glade.h:124 msgid "Change sign" msgstr "Märgi muutmine" -#: ../glade/gcalctool.glade.h:125 msgid "Clear" msgstr "Nulli" -#: ../glade/gcalctool.glade.h:126 msgid "Clear displayed value [Escape]" msgstr "Kuvatava väärtuse kustutamine [Escape]" -#: ../glade/gcalctool.glade.h:127 msgid "Clear displayed value and any partial calculation [Shift Delete]" msgstr "Kuvatava väärtuse ja poolelioleva arvutuse kustutamine [Shift-Delete]" -#: ../glade/gcalctool.glade.h:128 msgid "Clear entry" msgstr "Nulli väärtus" -#: ../glade/gcalctool.glade.h:129 msgid "Click a _value or description to edit it:" msgstr "_Redigeerimiseks klõpsa väärtusel või kirjeldusel:" #. Clr is short for Clear -#: ../glade/gcalctool.glade.h:131 msgid "Clr" msgstr "Puhasta" -#: ../glade/gcalctool.glade.h:132 msgid "Compounding term" msgstr "Liitintress" -#: ../glade/gcalctool.glade.h:133 msgid "Compounding term [m]" msgstr "Liitintress [m]" -#: ../glade/gcalctool.glade.h:134 msgid "Con" msgstr "Kon" -#: ../glade/gcalctool.glade.h:135 msgid "Constants" msgstr "Konstandid" -#: ../glade/gcalctool.glade.h:136 msgid "Constants [#]" msgstr "Konstandid [#]" -#: ../glade/gcalctool.glade.h:137 msgid "Copy selection" msgstr "Valiku kopeerimine" -#: ../glade/gcalctool.glade.h:140 msgid "Cosine [J]" msgstr "Koosinus [J]" #. Calculates the number of compounding periods necessary to increase an investment of present value pv to a future value of fv, at a fixed interest rate of int per compounding period. #. See also: #. http://en.wikipedia.org/wiki/Compound_interest -#: ../glade/gcalctool.glade.h:144 msgid "Ctrm" msgstr "Li" -#: ../glade/gcalctool.glade.h:145 msgid "D" msgstr "D" #. Calculates the depreciation allowance on an asset for a specified period of time, using the double-declining balance method. See also: #. http://en.wikipedia.org/wiki/Depreciation -#: ../glade/gcalctool.glade.h:148 msgid "Ddb" msgstr "" -#: ../glade/gcalctool.glade.h:149 msgid "De_grees" msgstr "_Kraadid" -#: ../glade/gcalctool.glade.h:150 msgid "Divide" msgstr "Jagamine" -#: ../glade/gcalctool.glade.h:151 msgid "Divide [/]" msgstr "Jagamine [/]" -#: ../glade/gcalctool.glade.h:152 msgid "Double-declining depreciation" msgstr "" -#: ../glade/gcalctool.glade.h:153 msgid "Double-declining depreciation [D]" msgstr "" -#: ../glade/gcalctool.glade.h:154 msgid "E" msgstr "E" -#: ../glade/gcalctool.glade.h:155 msgid "E to the x" msgstr "E astmel x" -#: ../glade/gcalctool.glade.h:156 msgid "E_ng" msgstr "_Ins" -#: ../glade/gcalctool.glade.h:157 msgid "Edit Constants" msgstr "Konstantide redigeerimine" -#: ../glade/gcalctool.glade.h:158 msgid "Edit Constants..." msgstr "Konstantide redigeerimine..." -#: ../glade/gcalctool.glade.h:159 msgid "Edit Functions" msgstr "Funktsioonide redigeerimine" -#: ../glade/gcalctool.glade.h:160 msgid "Edit Functions..." msgstr "Funktsioonide redigeerimine..." -#: ../glade/gcalctool.glade.h:161 msgid "End group of calculations [)]" msgstr "Arvutusgrupi lõpetamine [)]" -#: ../glade/gcalctool.glade.h:162 msgid "Enter an exponential number [E]" msgstr "Eksponentarvu sisestamine [E]" #. Exchange with register -#: ../glade/gcalctool.glade.h:164 msgid "Exch" msgstr "Vah" -#: ../glade/gcalctool.glade.h:165 msgid "Exchange displayed value with memory register [X]" msgstr "Kuvatava väärtuse ümbervahetamine mäluregistri väärtusega [X]" -#: ../glade/gcalctool.glade.h:166 msgid "Exchange with register" msgstr "Mäluregistri väärtuse ümbervahetamine" #. Exponential -#: ../glade/gcalctool.glade.h:168 msgid "Exp" msgstr "Eksp" -#: ../glade/gcalctool.glade.h:170 msgid "Factorial" msgstr "Faktoriaal" -#: ../glade/gcalctool.glade.h:171 msgid "Factorial of displayed value [!]" msgstr "Kuvatava väärtuse faktoriaal [!]" -#: ../glade/gcalctool.glade.h:172 msgid "Financial" msgstr "Rahandus" #. Fractional portion -#: ../glade/gcalctool.glade.h:174 msgid "Frac" msgstr "Murd" -#: ../glade/gcalctool.glade.h:175 msgid "Fractional portion" msgstr "Murdosa" -#: ../glade/gcalctool.glade.h:176 msgid "Fractional portion of displayed value [:]" msgstr "Kuvatava väärtuse murdosa [:]" -#: ../glade/gcalctool.glade.h:177 msgid "Fun" msgstr "Fun" -#: ../glade/gcalctool.glade.h:178 msgid "Future value" msgstr "Tulevikuväärtus" -#: ../glade/gcalctool.glade.h:179 msgid "Future value [v]" msgstr "Tulevikuväärtus [v]" #. Calculates the future value of an investment based on a series of equal payments, each of amount pmt, at a periodic interest rate of int, over the number of payment periods in the term. See also: #. http://en.wikipedia.org/wiki/Future_value -#: ../glade/gcalctool.glade.h:182 msgid "Fv" msgstr "Tv" -#: ../glade/gcalctool.glade.h:183 msgid "Gr_adians" msgstr "Goo_nid" -#: ../glade/gcalctool.glade.h:184 msgid "H_yp" msgstr "Hü_p" -#: ../glade/gcalctool.glade.h:185 msgid "He_x" msgstr "1_6" -#: ../glade/gcalctool.glade.h:186 msgid "Hexadecimal digit A" msgstr "Kuueteistkümnendsüsteemi number A" -#: ../glade/gcalctool.glade.h:187 msgid "Hexadecimal digit A [a]" msgstr "Kuueteistkümnendsüsteemi number A [a]" -#: ../glade/gcalctool.glade.h:188 msgid "Hexadecimal digit B" msgstr "Kuueteistkümnendsüsteemi number B" -#: ../glade/gcalctool.glade.h:189 msgid "Hexadecimal digit B [b]" msgstr "Kuueteistkümnendsüsteemi number B [b]" -#: ../glade/gcalctool.glade.h:190 msgid "Hexadecimal digit C" msgstr "Kuueteistkümnendsüsteemi number C" -#: ../glade/gcalctool.glade.h:191 msgid "Hexadecimal digit C [c]" msgstr "Kuueteistkümnendsüsteemi number C [c]" -#: ../glade/gcalctool.glade.h:192 msgid "Hexadecimal digit D" msgstr "Kuueteistkümnendsüsteemi number D" -#: ../glade/gcalctool.glade.h:193 msgid "Hexadecimal digit D [d]" msgstr "Kuueteistkümnendsüsteemi number D [d]" -#: ../glade/gcalctool.glade.h:194 msgid "Hexadecimal digit E" msgstr "Kuueteistkümnendsüsteemi number E" -#: ../glade/gcalctool.glade.h:195 msgid "Hexadecimal digit E [e]" msgstr "Kuueteistkümnendsüsteemi number E [e]" -#: ../glade/gcalctool.glade.h:196 msgid "Hexadecimal digit F" msgstr "Kuueteistkümnendsüsteemi number F" -#: ../glade/gcalctool.glade.h:197 msgid "Hexadecimal digit F [f]" msgstr "Kuueteistkümnendsüsteemi number F [f]" -#: ../glade/gcalctool.glade.h:198 msgid "Insert ASCII Value" msgstr "ASCII väärtuse sisestamine" -#: ../glade/gcalctool.glade.h:199 msgid "Insert ASCII value" msgstr "ASCII väärtuse sisestamine" #. Integer portion -#: ../glade/gcalctool.glade.h:201 msgid "Int" msgstr "Täis" -#: ../glade/gcalctool.glade.h:202 msgid "Integer portion" msgstr "Täisosa" -#: ../glade/gcalctool.glade.h:203 msgid "Integer portion of displayed value [i]" msgstr "Kuvatava väärtuse täisosa [i]" -#: ../glade/gcalctool.glade.h:204 msgid "Left bracket" msgstr "Vasakpoolne sulg" #. Natural logarithm -#: ../glade/gcalctool.glade.h:206 msgid "Ln" msgstr "Ln" #. Factorial -#: ../glade/gcalctool.glade.h:208 msgid "Log10" msgstr "Log10" #. Factorial -#: ../glade/gcalctool.glade.h:210 msgid "Log2" msgstr "Log2" -#: ../glade/gcalctool.glade.h:211 msgid "Memory Registers" msgstr "Mäluregistrid" -#: ../glade/gcalctool.glade.h:212 msgid "Mod" msgstr "Jääk" -#: ../glade/gcalctool.glade.h:213 msgid "Modulus Division [M]" msgstr "Jagamise jääk [M]" -#: ../glade/gcalctool.glade.h:214 msgid "Multiply" msgstr "Korrutamine" -#: ../glade/gcalctool.glade.h:215 msgid "Multiply [*]" msgstr "Korrutamine [*]" -#: ../glade/gcalctool.glade.h:216 msgid "NOT" msgstr "NOT" -#: ../glade/gcalctool.glade.h:217 msgid "Natural log [N]" msgstr "Naturaallogaritm [N]" -#: ../glade/gcalctool.glade.h:218 msgid "Numeric 0" msgstr "Number 0" -#: ../glade/gcalctool.glade.h:219 msgid "Numeric 1" msgstr "Number 1" -#: ../glade/gcalctool.glade.h:220 msgid "Numeric 2" msgstr "Number 2" -#: ../glade/gcalctool.glade.h:221 msgid "Numeric 3" msgstr "Number 3" -#: ../glade/gcalctool.glade.h:222 msgid "Numeric 4" msgstr "Number 4" -#: ../glade/gcalctool.glade.h:223 msgid "Numeric 5" msgstr "Number 5" -#: ../glade/gcalctool.glade.h:224 msgid "Numeric 6" msgstr "Number 6" -#: ../glade/gcalctool.glade.h:225 msgid "Numeric 7" msgstr "Number 7" -#: ../glade/gcalctool.glade.h:226 msgid "Numeric 8" msgstr "Number 8" -#: ../glade/gcalctool.glade.h:227 msgid "Numeric 9" msgstr "Number 9" -#: ../glade/gcalctool.glade.h:228 msgid "Numeric point" msgstr "Komakoht" -#: ../glade/gcalctool.glade.h:229 msgid "OR" msgstr "OR" -#: ../glade/gcalctool.glade.h:230 msgid "Paste selection" msgstr "Valiku asetamine" -#: ../glade/gcalctool.glade.h:231 msgid "Payment period" msgstr "Makseperiood" -#: ../glade/gcalctool.glade.h:232 msgid "Payment period [t]" msgstr "Makseperiood [t]" -#: ../glade/gcalctool.glade.h:233 msgid "Percentage" msgstr "Protsent" -#: ../glade/gcalctool.glade.h:235 #, no-c-format msgid "Percentage [%]" msgstr "Protsent [%]" -#: ../glade/gcalctool.glade.h:236 msgid "Periodic interest rate" msgstr "Perioodiline intressimäär" -#: ../glade/gcalctool.glade.h:237 msgid "Periodic interest rate [T]" msgstr "Perioodiline intressimäär [T]" -#: ../glade/gcalctool.glade.h:238 msgid "Periodic payment" msgstr "Perioodiline makse" -#: ../glade/gcalctool.glade.h:239 msgid "Periodic payment [P]" msgstr "Perioodiline makse [P]" #. Calculates the amount of the periodic payment of a loan, where payments are made at the end of each payment period. See also: #. http://en.wikipedia.org/wiki/Amortization_schedule -#: ../glade/gcalctool.glade.h:242 msgid "Pmt" msgstr "Makse" -#: ../glade/gcalctool.glade.h:243 msgid "Present value" msgstr "Nüüdisväärtus" -#: ../glade/gcalctool.glade.h:244 msgid "Present value [p]" msgstr "Nüüdisväärtus [p]" #. Calculates the present value of an investment based on a series of equal payments, each of amount pmt, discounted at a periodic interest rate of int, over the number of payment periods in the term. See also: #. http://en.wikipedia.org/wiki/Present_value -#: ../glade/gcalctool.glade.h:247 msgid "Pv" msgstr "Nv" -#: ../glade/gcalctool.glade.h:248 msgid "Quit the calculator" msgstr "Kalkulaatori väljalülitamine" -#: ../glade/gcalctool.glade.h:249 msgid "Raise displayed value to the power of y [^]" msgstr "Kuvatava väärtuse suurendamine y astme võrra [^]" #. Random number -#: ../glade/gcalctool.glade.h:251 msgid "Rand" msgstr "Suva" -#: ../glade/gcalctool.glade.h:252 msgid "Random number" msgstr "Juhuslik arv" -#: ../glade/gcalctool.glade.h:253 msgid "Random number in the range 0.0 to 1.0 [?]" msgstr "Juhuslik arv vahemikus 0.0 kuni 1.0 [?]" @@ -1263,564 +989,437 @@ #. #. #. -#: ../glade/gcalctool.glade.h:260 msgid "Rate" msgstr "Intress" #. Retrieve from register -#: ../glade/gcalctool.glade.h:262 msgid "Rcl" msgstr "Võta" -#: ../glade/gcalctool.glade.h:263 msgid "Reciprocal" msgstr "Pöördväärtus" -#: ../glade/gcalctool.glade.h:264 msgid "Reciprocal [r]" msgstr "Pöördväärtus [r]" -#: ../glade/gcalctool.glade.h:265 msgid "Redo" msgstr "Taastamine" -#: ../glade/gcalctool.glade.h:266 msgid "Remove rightmost character from displayed value [Backspace]" msgstr "Kuvatavalt väärtuselt parempoolse sümboli eemaldamine [Backspace]" -#: ../glade/gcalctool.glade.h:269 msgid "Result Region" msgstr "" -#: ../glade/gcalctool.glade.h:270 msgid "Retrieve from register" msgstr "Väärtuse võtmine mäluregistrist" -#: ../glade/gcalctool.glade.h:271 msgid "Retrieve memory register to display [R]" msgstr "Kuvatava väärtuse võtmine mäluregistrist [R]" -#: ../glade/gcalctool.glade.h:272 msgid "Right bracket" msgstr "Parempoolne sulg" -#: ../glade/gcalctool.glade.h:273 msgid "Scientific" msgstr "Teaduslik" -#: ../glade/gcalctool.glade.h:274 msgid "Set Precision" msgstr "Täpsuse seadmine" -#: ../glade/gcalctool.glade.h:275 msgid "Set accuracy from 0 to 9 numeric places [A]" msgstr "Täpsuse seadmine 0-st kuni 9. komakohani [A]" -#: ../glade/gcalctool.glade.h:276 msgid "Set display type to engineering format" msgstr "Kuva seadmine inseneriarvutuste jaoks" -#: ../glade/gcalctool.glade.h:277 msgid "Set display type to fixed-point format" msgstr "" -#: ../glade/gcalctool.glade.h:278 msgid "Set display type to scientific format" msgstr "Kuva seadmine teaduslike arvutuste jaoks" -#: ../glade/gcalctool.glade.h:279 msgid "Set hyperbolic option for trigonometric functions" msgstr "" -#: ../glade/gcalctool.glade.h:280 msgid "Set inverse option for trigonometric functions" msgstr "Trigonomeetrilistele funktsioonidele pööratud režiimi määramine" -#: ../glade/gcalctool.glade.h:281 msgid "Set numeric base to binary (base 2)" msgstr "Numbrisüsteemi seadmine kahendsüsteemiks (põhi: 2)" -#: ../glade/gcalctool.glade.h:282 msgid "Set numeric base to decimal (base 10)" msgstr "Numbrisüsteemi seadmine kümnendsüsteemiks (põhi: 10)" -#: ../glade/gcalctool.glade.h:283 msgid "Set numeric base to hexadecimal (base 16)" msgstr "Numbrisüsteemi seadmine kuueteistkümnendsüsteemiks (põhi: 16)" -#: ../glade/gcalctool.glade.h:284 msgid "Set numeric base to octal (base 8)" msgstr "Numbrisüsteemi seadmine kaheksandsüsteemiks (põhi: 8)" -#: ../glade/gcalctool.glade.h:285 msgid "Set trigonometric type to degrees" msgstr "Trigonomeetrilise tüübi määramine kraadideks" -#: ../glade/gcalctool.glade.h:286 msgid "Set trigonometric type to gradians" msgstr "Trigonomeetrilise tüübi määramine goonideks" -#: ../glade/gcalctool.glade.h:287 msgid "Set trigonometric type to radians" msgstr "Trigonomeetrilise tüübi määramine radiaanideks" -#: ../glade/gcalctool.glade.h:288 msgid "Shift displayed value 1-15 places to the left [<]" msgstr "Väärtuse nihutamine 1-15 kohta vasakule [<]" -#: ../glade/gcalctool.glade.h:289 msgid "Shift displayed value 1-15 places to the right [>]" msgstr "Väärtuse nihutamine 1-15 kohta paremale [>]" -#: ../glade/gcalctool.glade.h:290 msgid "Shift left" msgstr "Nihutamine vasakule" -#: ../glade/gcalctool.glade.h:291 msgid "Shift right" msgstr "Nihutamine paremale" #. When the bit editor is visible, there will be two rows of ones #. and zeroes shown. When the number being displayed in #. in the calculator is an integer value, these ones and zeroes will be sensitive, and they will correspond to the value of each of the bits in the displayed integer number. By clicking on any of the labels for these ones and zeroes, their value can be toggled (a one becomes a zero and a zero becomes a one), causing the displayed integer value to be adjusted accordingly. -#: ../glade/gcalctool.glade.h:295 msgid "Show Bit Editor" msgstr "Bitiredaktori näitamine" #. When the bit editor is visible, there will be two rows of ones #. and zeroes shown. When the number being displayed in #. in the calculator is an integer value, these ones and zeroes will be sensitive, and they will correspond to the value of each of the bits in the displayed integer number. By clicking on any of the labels for these ones and zeroes, their value can be toggled (a one becomes a zero and a zero becomes a one), causing the displayed integer value to be adjusted accordingly. -#: ../glade/gcalctool.glade.h:299 msgid "Show Bit _Editor" msgstr "Näita _bitiredaktorit" -#: ../glade/gcalctool.glade.h:300 msgid "Show T_housands Separator" msgstr "Näita tu_handike eraldajat" -#: ../glade/gcalctool.glade.h:301 msgid "Show _Trailing Zeroes" msgstr "Näita lõpusolevaid _nulle" #. When the bit editor is visible, there will be two rows of ones #. and zeroes shown. When the number being displayed in #. in the calculator is an integer value, these ones and zeroes will be sensitive, and they will correspond to the value of each of the bits in the displayed integer number. By clicking on any of the labels for these ones and zeroes, their value can be toggled (a one becomes a zero and a zero becomes a one), causing the displayed integer value to be adjusted accordingly. -#: ../glade/gcalctool.glade.h:305 msgid "Show bit editor" msgstr "Bitiredaktori näitamine" -#: ../glade/gcalctool.glade.h:306 msgid "Show help contents" msgstr "Abiteabe näitamine" -#: ../glade/gcalctool.glade.h:307 msgid "Show memory registers" msgstr "Mäluregistrite näitamine" -#: ../glade/gcalctool.glade.h:308 msgid "Show the About Gcalctool dialog" msgstr "Gcalctool'i lähema teabe dialoogi kuvamine" -#: ../glade/gcalctool.glade.h:309 msgid "Show thousands separator" msgstr "Tuhandike eraldaja näitamine" -#: ../glade/gcalctool.glade.h:310 msgid "Show trailing zeroes" msgstr "Lõpusolevate nullide näitamine" -#: ../glade/gcalctool.glade.h:311 msgid "Significant _places:" msgstr "_Tüvekohti:" -#: ../glade/gcalctool.glade.h:314 msgid "Sine [K]" msgstr "Siinus [K]" #. Calculates the straight-line depreciation of an asset for one period. The depreciable cost is cost - salvage. The straight-line method of depreciation divides the depreciable cost evenly over the useful life of an asset. The useful life is the number of periods, typically years, over which an asset is depreciated. See also: #. http://en.wikipedia.org/wiki/Depreciation -#: ../glade/gcalctool.glade.h:317 msgid "Sln" msgstr "La" -#: ../glade/gcalctool.glade.h:318 msgid "Square" msgstr "Astendamine - ruut" -#: ../glade/gcalctool.glade.h:319 msgid "Square [@]" msgstr "Astendamine - ruut [@]" -#: ../glade/gcalctool.glade.h:320 msgid "Square root" msgstr "Ruutjuur" -#: ../glade/gcalctool.glade.h:321 msgid "Square root [s]" msgstr "Ruutjuur [s]" -#: ../glade/gcalctool.glade.h:322 msgid "Start group of calculations [(]" msgstr "Arvutusgrupi alustamine [(]" #. Store to register -#: ../glade/gcalctool.glade.h:324 msgid "Sto" msgstr "Salv" -#: ../glade/gcalctool.glade.h:325 msgid "Store displayed value in memory register [S]" msgstr "Kuvatava väärtuse salvestamine mäluregistrisse [S]" -#: ../glade/gcalctool.glade.h:326 msgid "Store to register" msgstr "Registrisse salvestamine" -#: ../glade/gcalctool.glade.h:327 msgid "Straight-line depreciation" msgstr "Lineaarne amortisatsioon" -#: ../glade/gcalctool.glade.h:328 msgid "Straight-line depreciation [l]" msgstr "Lineaarne amortisatsioon [l]" -#: ../glade/gcalctool.glade.h:329 msgid "Subtract" msgstr "Lahutamine" -#: ../glade/gcalctool.glade.h:330 msgid "Subtract [-]" msgstr "Lahutamine [-]" -#: ../glade/gcalctool.glade.h:331 msgid "Sum-of-the years'-digits depreciation" msgstr "" -#: ../glade/gcalctool.glade.h:332 msgid "Sum-of-the years'-digits depreciation [y]" msgstr "" #. Calculates the depreciation allowance on an asset for a specified period of time, using the Sum-Of-The-Years'-Digits method. This method of depreciation accelerates the rate of depreciation, so that more depreciation expense occurs in earlier periods than in later ones. #. The depreciable cost is cost - salvage. The useful life is the number of periods, typically years, over which an asset is depreciated. See also: #. http://en.wikipedia.org/wiki/Depreciation -#: ../glade/gcalctool.glade.h:336 msgid "Syd" msgstr "" -#: ../glade/gcalctool.glade.h:339 msgid "Tangent [L]" msgstr "Tangens [L]" -#: ../glade/gcalctool.glade.h:340 msgid "Ten to the x" msgstr "Kümme astmel x" #. Calculates the number of payment periods that are necessary during the term of an ordinary annuity, to accumulate a future value of fv, at a periodic interest rate of int. Each payment is equal to amount pmt. See also: #. http://en.wikipedia.org/wiki/Annuity_(finance_theory) -#: ../glade/gcalctool.glade.h:343 msgid "Term" msgstr "Mp" -#: ../glade/gcalctool.glade.h:344 msgid "Undo" msgstr "Tühistamine" -#: ../glade/gcalctool.glade.h:345 msgid "User-defined functions" msgstr "Kasutaja poolt kirjeldatud funktsioonid" -#: ../glade/gcalctool.glade.h:346 msgid "User-defined functions [F]" msgstr "Kasutaja poolt kirjeldatud funktsioonid [F]" -#: ../glade/gcalctool.glade.h:347 msgid "X to the y" msgstr "X astmel y" -#: ../glade/gcalctool.glade.h:348 msgid "XNOR" msgstr "XNOR" -#: ../glade/gcalctool.glade.h:349 msgid "XOR" msgstr "XOR" -#: ../glade/gcalctool.glade.h:350 msgid "_0 significant places" msgstr "_0 tüvekohta" -#: ../glade/gcalctool.glade.h:351 msgid "_1 place" msgstr "_1 koht" -#: ../glade/gcalctool.glade.h:352 msgid "_1 significant place" msgstr "_1 tüvekoht" -#: ../glade/gcalctool.glade.h:353 msgid "_2 places" msgstr "_2 kohta" -#: ../glade/gcalctool.glade.h:354 msgid "_2 significant places" msgstr "_2 tüvekohta" -#: ../glade/gcalctool.glade.h:355 msgid "_3 places" msgstr "_3 kohta" -#: ../glade/gcalctool.glade.h:356 msgid "_3 significant places" msgstr "_3 tüvekohta" -#: ../glade/gcalctool.glade.h:357 msgid "_4 places" msgstr "_4 kohta" -#: ../glade/gcalctool.glade.h:358 msgid "_4 significant places" msgstr "_4 tüvekohta" -#: ../glade/gcalctool.glade.h:359 msgid "_5 places" msgstr "_5 kohta" -#: ../glade/gcalctool.glade.h:360 msgid "_5 significant places" msgstr "_5 tüvekohta" -#: ../glade/gcalctool.glade.h:361 msgid "_6 places" msgstr "_6 kohta" -#: ../glade/gcalctool.glade.h:362 msgid "_6 significant places" msgstr "_6 tüvekohta" -#: ../glade/gcalctool.glade.h:363 msgid "_7 places" msgstr "_7 kohta" -#: ../glade/gcalctool.glade.h:364 msgid "_7 significant places" msgstr "_7 tüvekohta" -#: ../glade/gcalctool.glade.h:365 msgid "_8 places" msgstr "_8 kohta" -#: ../glade/gcalctool.glade.h:366 msgid "_8 significant places" msgstr "_8 tüvekohta" -#: ../glade/gcalctool.glade.h:367 msgid "_9 places" msgstr "_9 kohta" -#: ../glade/gcalctool.glade.h:368 msgid "_9 significant places" msgstr "_9 tüvekohta" -#: ../glade/gcalctool.glade.h:369 msgid "_Advanced" msgstr "_Laiendatud" -#: ../glade/gcalctool.glade.h:370 msgid "_Basic" msgstr "_Tavaline" -#: ../glade/gcalctool.glade.h:371 msgid "_Bin" msgstr "_2" -#: ../glade/gcalctool.glade.h:372 msgid "_Calculator" msgstr "_Arvuti" -#: ../glade/gcalctool.glade.h:373 msgid "_Contents" msgstr "_Sisukord" -#: ../glade/gcalctool.glade.h:374 msgid "_Dec" msgstr "_10" -#: ../glade/gcalctool.glade.h:375 msgid "_Edit" msgstr "_Redaktor" -#: ../glade/gcalctool.glade.h:376 msgid "_Financial" msgstr "_Rahandus" -#: ../glade/gcalctool.glade.h:377 msgid "_Fix" msgstr "" -#: ../glade/gcalctool.glade.h:378 msgid "_Help" msgstr "A_bi" -#: ../glade/gcalctool.glade.h:379 msgid "_Insert" msgstr "_Sisesta" -#: ../glade/gcalctool.glade.h:380 msgid "_Insert ASCII value..." msgstr "_Sisesta ASCII väärtus..." -#: ../glade/gcalctool.glade.h:381 msgid "_Inv" msgstr "" -#: ../glade/gcalctool.glade.h:382 msgid "_Memory Registers" msgstr "_Mäluregistrid" -#: ../glade/gcalctool.glade.h:383 msgid "_Oct" msgstr "_8" -#: ../glade/gcalctool.glade.h:386 msgid "_Radians" msgstr "_Radiaanid" -#: ../glade/gcalctool.glade.h:387 msgid "_Redo" msgstr "T_aasta" -#: ../glade/gcalctool.glade.h:388 msgid "_Sci" msgstr "_Tead" -#: ../glade/gcalctool.glade.h:389 msgid "_Scientific" msgstr "T_eaduslik" -#: ../glade/gcalctool.glade.h:390 msgid "_Set" msgstr "_Säti" -#: ../glade/gcalctool.glade.h:391 msgid "_Undo" msgstr "_Tühista" -#: ../glade/gcalctool.glade.h:392 msgid "_View" msgstr "_Vaade" -#: ../glade/gcalctool.glade.h:393 msgid "e to the power of displayed value [{]" msgstr "e astendamine kuvatava väärtusega [{]" #. E to the power of x. Note that this label uses mark up and the "x" is a superscript character. See: http://en.wikipedia.org/wiki/Superscript for more details on superscripts. -#: ../glade/gcalctool.glade.h:395 msgid "ex" msgstr "ex" -#: ../glade/gcalctool.glade.h:396 msgid "ex" msgstr "ex" #. This is accessible name for memory register 0. It is spoken #. by screen readers such as Orca, to help people who are #. blind or have low vision. -#: ../glade/gcalctool.glade.h:400 msgid "register 0" msgstr "register 0" #. This is accessible name for memory register 1. It is spoken #. by screen readers such as Orca, to help people who are #. blind or have low vision. -#: ../glade/gcalctool.glade.h:404 msgid "register 1" msgstr "register 1" #. This is accessible name for memory register 2. It is spoken #. by screen readers such as Orca, to help people who are #. blind or have low vision. -#: ../glade/gcalctool.glade.h:408 msgid "register 2" msgstr "register 2" #. This is accessible name for memory register 3. It is spoken #. by screen readers such as Orca, to help people who are #. blind or have low vision. -#: ../glade/gcalctool.glade.h:412 msgid "register 3" msgstr "register 3" #. This is accessible name for memory register 4. It is spoken #. by screen readers such as Orca, to help people who are #. blind or have low vision. -#: ../glade/gcalctool.glade.h:416 msgid "register 4" msgstr "register 4" #. This is accessible name for memory register 5. It is spoken #. by screen readers such as Orca, to help people who are #. blind or have low vision. -#: ../glade/gcalctool.glade.h:420 msgid "register 5" msgstr "register 5" #. This is accessible name for memory register 6. It is spoken #. by screen readers such as Orca, to help people who are #. blind or have low vision. -#: ../glade/gcalctool.glade.h:424 msgid "register 6" msgstr "register 6" #. This is accessible name for memory register 7. It is spoken #. by screen readers such as Orca, to help people who are #. blind or have low vision. -#: ../glade/gcalctool.glade.h:428 msgid "register 7" msgstr "register 7" #. This is accessible name for memory register 8. It is spoken #. by screen readers such as Orca, to help people who are #. blind or have low vision. -#: ../glade/gcalctool.glade.h:432 msgid "register 8" msgstr "register 8" #. This is accessible name for memory register 9. It is spoken #. by screen readers such as Orca, to help people who are #. blind or have low vision. -#: ../glade/gcalctool.glade.h:436 msgid "register 9" msgstr "register 9" -#: ../glade/gcalctool.glade.h:437 msgid "x2" msgstr "x2" -#: ../glade/gcalctool.glade.h:438 msgid "xy" msgstr "xy" #. This is a plus-minus sign (+/-) -#: ../glade/gcalctool.glade.h:440 msgid "±" msgstr "±" #. This is a multiplication sign (*) -#: ../glade/gcalctool.glade.h:442 msgid "×" msgstr "·" #. this is a division sign (÷) -#: ../glade/gcalctool.glade.h:444 msgid "÷" msgstr ":" #. This is a minus sign (-) -#: ../glade/gcalctool.glade.h:446 msgid "−" msgstr "−" #. This is a square root sign -#: ../glade/gcalctool.glade.h:448 msgid "√" msgstr "√" diff -Nru gcalctool-5.24.1/po/pt_BR.po gcalctool-5.24.2/po/pt_BR.po --- gcalctool-5.24.1/po/pt_BR.po 2008-10-11 05:29:39.000000000 +0200 +++ gcalctool-5.24.2/po/pt_BR.po 2008-11-24 23:42:16.000000000 +0100 @@ -14,9 +14,9 @@ msgstr "" "Project-Id-Version: gcalctool\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2008-09-30 23:07-0400\n" +"POT-Creation-Date: 2008-10-01 03:10+0000\n" "PO-Revision-Date: 2008-09-28 08:28-0300\n" -"Last-Translator: Vladimir Melo \n" +"Last-Translator: Leonardo Ferreira Fontenelle \n" "Language-Team: Brazilian Portuguese \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -358,7 +358,7 @@ #: ../gcalctool/gtk.c:1106 msgid "© 1986-2008 The Gcalctool authors" -msgstr "© 1987-2008 Autores do Gcalctool" +msgstr "© 1986-2008 Autores do Gcalctool" #: ../gcalctool/gtk.c:1108 msgid "Calculator with financial and scientific modes." @@ -716,7 +716,7 @@ #: ../glade/gcalctool.glade.h:93 msgid "Absolute value" -msgstr "Valor absoluto " +msgstr "Valor absoluto" #: ../glade/gcalctool.glade.h:94 msgid "Absolute value [u]" @@ -1013,11 +1013,12 @@ msgid "Future value [v]" msgstr "Valor futuro [v]" +# Parece que as calculadoras mais comuns no Brasil trazem essa tecla como FV #. Calculates the future value of an investment based on a series of equal payments, each of amount pmt, at a periodic interest rate of int, over the number of payment periods in the term. See also: #. http://en.wikipedia.org/wiki/Future_value #: ../glade/gcalctool.glade.h:182 msgid "Fv" -msgstr "VF" +msgstr "FV" #: ../glade/gcalctool.glade.h:183 msgid "Gr_adians" @@ -1246,11 +1247,12 @@ msgid "Present value [p]" msgstr "Valor presente [p]" +# Parece que as calculadoras mais comuns no Brasil trazem essa tecla como PV #. Calculates the present value of an investment based on a series of equal payments, each of amount pmt, discounted at a periodic interest rate of int, over the number of payment periods in the term. See also: #. http://en.wikipedia.org/wiki/Present_value #: ../glade/gcalctool.glade.h:247 msgid "Pv" -msgstr "Pv" +msgstr "PV" #: ../glade/gcalctool.glade.h:248 msgid "Quit the calculator" diff -Nru gcalctool-5.24.1/po/uk.po gcalctool-5.24.2/po/uk.po --- gcalctool-5.24.1/po/uk.po 2008-10-11 05:29:39.000000000 +0200 +++ gcalctool-5.24.2/po/uk.po 2008-11-24 23:42:16.000000000 +0100 @@ -8,7 +8,7 @@ msgstr "" "Project-Id-Version: gcalctool\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2008-03-09 15:35+0200\n" +"POT-Creation-Date: 2008-10-30 11:33+0000\n" "PO-Revision-Date: 2007-09-11 14:34+0300\n" "Last-Translator: Maxim Dziumanenko \n" "Language-Team: Ukrainian \n" @@ -18,52 +18,52 @@ "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" -#: ../gcalctool/calctool.c:566 +#: ../gcalctool/calctool.c:492 msgid "Kilometer-to-mile conversion factor" msgstr "Коефіцієнт перетворення кілометрів у милі" -#: ../gcalctool/calctool.c:568 +#: ../gcalctool/calctool.c:494 msgid "square root of 2" msgstr "квадратний корінь від 2" -#: ../gcalctool/calctool.c:569 +#: ../gcalctool/calctool.c:495 msgid "Euler's Number (e)" msgstr "Число Єйлера (e)" -#: ../gcalctool/calctool.c:570 +#: ../gcalctool/calctool.c:496 msgid "pi" msgstr "Пі" -#: ../gcalctool/calctool.c:571 +#: ../gcalctool/calctool.c:497 msgid "Centimeter-to-inch conversion factor" msgstr "Коефіцієнт перетворення сантиметрів у дюйми" -#: ../gcalctool/calctool.c:573 +#: ../gcalctool/calctool.c:499 msgid "degrees in a radian" msgstr "градусів у радіані" -#: ../gcalctool/calctool.c:574 +#: ../gcalctool/calctool.c:500 msgid "2 ^ 20" msgstr "2 ^ 20" -#: ../gcalctool/calctool.c:575 +#: ../gcalctool/calctool.c:501 msgid "Gram-to-ounce conversion factor" msgstr "Коефіцієнт перетворення граму в унцію" -#: ../gcalctool/calctool.c:577 +#: ../gcalctool/calctool.c:503 msgid "Kilojoule-to-British-thermal-unit conversion factor" msgstr "Коефіцієнт перетворення кілоджоулів у британські термічні одиниці" -#: ../gcalctool/calctool.c:580 +#: ../gcalctool/calctool.c:506 msgid "Cubic-centimeter-to-cubic-inch conversion factor" msgstr "Коефіцієнт перетворення куб. сантиметрів у куб. дюйми" #. THIS ROUTINE IS CALLED WHEN AN ERROR CONDITION IS ENCOUNTERED, AND #. * AFTER A MESSAGE HAS BEEN WRITTEN TO STDERR. #. -#: ../gcalctool/calctool.c:591 ../gcalctool/display.c:262 -#: ../gcalctool/mp.c:1981 ../gcalctool/mpmath.c:372 ../gcalctool/mpmath.c:411 -#: ../gcalctool/mpmath.c:466 +#: ../gcalctool/calctool.c:517 ../gcalctool/mp.c:1633 +#: ../gcalctool/mpmath.c:347 ../gcalctool/mpmath.c:384 +#: ../gcalctool/mpmath.c:432 ../gcalctool/mpmath.c:998 msgid "Error" msgstr "Помилка" @@ -72,7 +72,7 @@ #. * the second is an error message (see the last parameter in the #. * getparam() call in the get_options() routine below. #. -#: ../gcalctool/calctool.c:608 +#: ../gcalctool/calctool.c:534 #, c-format msgid "%s: %s as next argument.\n" msgstr "%s: %s як наступний аргумент.\n" @@ -81,7 +81,7 @@ #. * are passed to it: the first is the gcalctool program name and #. * the second is the program version number. #. -#: ../gcalctool/calctool.c:621 +#: ../gcalctool/calctool.c:547 #, c-format msgid "" "%s version %s\n" @@ -90,109 +90,92 @@ "%s версії %s\n" "\n" -#: ../gcalctool/calctool.c:622 +#: ../gcalctool/calctool.c:548 #, c-format -msgid "Usage: %s: [-D] [-E] [-a accuracy] " -msgstr "Використання: %s: [-D] [-E] [-a точність] " +msgid "Usage: %s: [-E] [-u] [-a accuracy] " +msgstr "Використання: %s: [-E] [-u] [-a точність] " -#: ../gcalctool/calctool.c:623 +#: ../gcalctool/calctool.c:549 msgid "\t\t [-?] [-v] [-h]\n" msgstr "\t\t [-?] [-v] [-h]\n" -#: ../gcalctool/calctool.c:648 +#: ../gcalctool/calctool.c:570 msgid "-a needs accuracy value" msgstr "-a потребує вказування значення точності" -#: ../gcalctool/calctool.c:652 ../gcalctool/get.c:237 +#: ../gcalctool/calctool.c:574 ../gcalctool/get.c:242 #, c-format msgid "%s: accuracy should be in the range 0-%d\n" msgstr "%s: точність повинна бути у межах 0-%d\n" -#: ../gcalctool/functions.c:189 +#: ../gcalctool/display.c:374 msgid "No undo history" msgstr "Історія дій відсутня" -#: ../gcalctool/functions.c:221 +#: ../gcalctool/display.c:388 msgid "No redo steps" msgstr "Немає кроків для повтору" -#: ../gcalctool/functions.c:577 +#: ../gcalctool/functions.c:77 +msgid "Malformed function" +msgstr "Неправильна функція" + +#: ../gcalctool/functions.c:87 +msgid "No sane value to do bitwise shift" +msgstr "Немає нормального значення для двійкового зсуву" + +#: ../gcalctool/functions.c:109 ../gcalctool/functions.c:160 +msgid "No sane value to convert" +msgstr "Немає нормального значення для перетворення" + +#: ../gcalctool/functions.c:134 ../gcalctool/functions.c:178 +msgid "No sane value to store" +msgstr "Немає нормального значення для зберігання" + +#: ../gcalctool/functions.c:311 msgid "Invalid number for the current base" msgstr "Неправильне число для поточної системи числення" -#: ../gcalctool/functions.c:581 +#: ../gcalctool/functions.c:315 msgid "Too long number" msgstr "Надто велике число" -#: ../gcalctool/functions.c:585 +#: ../gcalctool/functions.c:319 msgid "Invalid bitwise operation parameter(s)" msgstr "Неправильний параметр з двома операндами" -#: ../gcalctool/functions.c:589 +#: ../gcalctool/functions.c:323 msgid "Invalid modulus operation parameter(s)" msgstr "Неправильний параметр для модуля числа" -#: ../gcalctool/functions.c:593 +#: ../gcalctool/functions.c:327 msgid "Math operation error" msgstr "Помилка математичної операції" -#: ../gcalctool/functions.c:597 +#: ../gcalctool/functions.c:331 msgid "Malformed expression" msgstr "Неправильний вираз" -#: ../gcalctool/functions.c:696 -msgid "Error, operands must be integers" -msgstr "Помилка, операнди мають бути цілими числами" - -#: ../gcalctool/functions.c:923 ../gcalctool/functions.c:1278 -msgid "No sane value to convert" -msgstr "Немає нормального значення для перетворення" - -#: ../gcalctool/functions.c:1023 ../gcalctool/functions.c:1351 -msgid "No sane value to store" -msgstr "Немає нормального значення для зберігання" - -#: ../gcalctool/functions.c:1144 -msgid "Malformed function" -msgstr "Неправильна функція" - -#: ../gcalctool/functions.c:1306 -msgid "Cleared display, prefix without an operator is not allowed" -msgstr "Дисплей очищений, префікс без оператора не допускається" - -#: ../gcalctool/functions.c:1327 -msgid "Malformed parenthesis expression" -msgstr "Неправильний вираз з дужками" - -#: ../gcalctool/functions.c:1503 -msgid "No sane value to do bitwise shift" -msgstr "Немає нормального значення для двійкового зсуву" - -#: ../gcalctool/get.c:258 +#: ../gcalctool/get.c:263 #, c-format msgid "%s: base should be 2, 8, 10 or 16\n" msgstr "%s: база повинна бути 2, 8, 10 або 16\n" -#: ../gcalctool/get.c:273 +#: ../gcalctool/get.c:278 #, c-format msgid "%s: invalid display mode [%s]\n" msgstr "%s: неправильний режим відображення [%s]\n" -#: ../gcalctool/get.c:288 +#: ../gcalctool/get.c:293 #, c-format msgid "%s: invalid mode [%s]\n" msgstr "%s: неправильний режим [%s]\n" -#: ../gcalctool/get.c:302 +#: ../gcalctool/get.c:307 #, c-format msgid "%s: invalid trigonometric mode [%s]\n" msgstr "%s: неправильний тригонометричний режим [%s]\n" -#: ../gcalctool/get.c:320 -#, c-format -msgid "%s: invalid syntax mode [%s]\n" -msgstr "%s: неправильний синтаксичний режим [%s]\n" - #: ../gcalctool/gtk.c:55 ../gcalctool.desktop.in.h:1 msgid "Calculator" msgstr "Калькулятор" @@ -229,84 +212,76 @@ msgid "Calculator [%s] - Scientific" msgstr "Калькулятор [%s] - Науковий" -#: ../gcalctool/gtk.c:510 -msgid "Activated no operator precedence mode" -msgstr "Активовано режим без старшинства операторів" - -#: ../gcalctool/gtk.c:513 -msgid "Activated expression mode with operator precedence" -msgstr "Активовано режим зі старшинством операторів" - -#: ../gcalctool/gtk.c:542 ../glade/gcalctool.glade.h:389 +#: ../gcalctool/gtk.c:494 ../glade/gcalctool.glade.h:385 #, no-c-format msgid "_Other (%d) ..." msgstr "_Інша (%d) ..." -#: ../gcalctool/gtk.c:546 +#: ../gcalctool/gtk.c:498 #, c-format -msgid "Set accuracy from 0 to %d numeric places." +msgid "Set accuracy from 0 to %d numeric place." msgid_plural "Set accuracy from 0 to %d numeric places." -msgstr[0] "Встановити точність від 0 до %d числової позиції" -msgstr[1] "Встановити точність від 0 до %d числових позицій" -msgstr[2] "Встановити точність від 0 до %d числових позицій" +msgstr[0] "Встановити точність від 0 до %d числової позиції." +msgstr[1] "Встановити точність від 0 до %d числових позицій." +msgstr[2] "Встановити точність від 0 до %d числових позицій." -#. Translator: This refers to the current accuracy setting -#: ../gcalctool/gtk.c:552 +#. Translators: This refers to the current accuracy setting +#: ../gcalctool/gtk.c:504 #, c-format -msgid "Currently set to %d places." +msgid "Currently set to %d place." msgid_plural "Currently set to %d places." msgstr[0] "Наразі встановлено у %d позицію." msgstr[1] "Наразі встановлено у %d позиції." msgstr[2] "Наразі встановлено у %d позицій." #. Factorial -#: ../gcalctool/gtk.c:584 ../glade/gcalctool.glade.h:314 +#: ../gcalctool/gtk.c:537 ../glade/gcalctool.glade.h:313 msgid "Sin" msgstr "Sin" -#: ../gcalctool/gtk.c:584 +#: ../gcalctool/gtk.c:537 msgid "Sinh" msgstr "Sinh" -#: ../gcalctool/gtk.c:585 +#: ../gcalctool/gtk.c:538 msgid "Sin-1" msgstr "Sin-1" -#: ../gcalctool/gtk.c:586 +#: ../gcalctool/gtk.c:539 msgid "Sinh-1" msgstr "Sinh-1" #. Factorial -#: ../gcalctool/gtk.c:588 ../glade/gcalctool.glade.h:140 +#: ../gcalctool/gtk.c:541 ../glade/gcalctool.glade.h:139 msgid "Cos" msgstr "Cos" -#: ../gcalctool/gtk.c:588 +#: ../gcalctool/gtk.c:541 msgid "Cosh" msgstr "Cosh" -#: ../gcalctool/gtk.c:589 +#: ../gcalctool/gtk.c:542 msgid "Cos-1" msgstr "Cos-1" -#: ../gcalctool/gtk.c:590 +#: ../gcalctool/gtk.c:543 msgid "Cosh-1" msgstr "Cosh-1" #. Factorial -#: ../gcalctool/gtk.c:592 ../glade/gcalctool.glade.h:339 +#: ../gcalctool/gtk.c:545 ../glade/gcalctool.glade.h:338 msgid "Tan" msgstr "Tan" -#: ../gcalctool/gtk.c:592 +#: ../gcalctool/gtk.c:545 msgid "Tanh" msgstr "Tanh" -#: ../gcalctool/gtk.c:593 +#: ../gcalctool/gtk.c:546 msgid "Tan-1" msgstr "Tan-1" -#: ../gcalctool/gtk.c:594 +#: ../gcalctool/gtk.c:547 msgid "Tanh-1" msgstr "Tanh-1" @@ -319,15 +294,16 @@ #. * (a one becomes a zero and a zero becomes a one), causing the #. * displayed integer value to be adjusted accordingly. #. -#: ../gcalctool/gtk.c:690 +#: ../gcalctool/gtk.c:645 msgid "Bit editor activated. Click on bit values to toggle them." -msgstr "Активовано редактор бітів. Для зміни значень клацайте на значеннях бітів." +msgstr "" +"Активовано редактор бітів. Для зміни значень клацайте на значеннях бітів." -#: ../gcalctool/gtk.c:1151 +#: ../gcalctool/gtk.c:1076 msgid "translator-credits" msgstr "Максим Дзюманенко " -#: ../gcalctool/gtk.c:1154 +#: ../gcalctool/gtk.c:1079 msgid "" "Gcalctool is free software; you can redistribute it and/or modify\n" "it under the terms of the GNU General Public License as published by\n" @@ -338,7 +314,7 @@ "розповсюджувати його та/або змінювати на умовах Універсальної\n" "публічної ліцензії GNU версії 2 або будь-якій більш старшій версії.\n" -#: ../gcalctool/gtk.c:1158 +#: ../gcalctool/gtk.c:1083 msgid "" "Gcalctool is distributed in the hope that it will be useful,\n" "but WITHOUT ANY WARRANTY; without even the implied warranty of\n" @@ -351,7 +327,7 @@ "ПЕВНОЇ МЕТИ. Для отримання додаткових відомостей зверніться до Універсальної " "Публічної Ліцензії GNU.\n" -#: ../gcalctool/gtk.c:1162 +#: ../gcalctool/gtk.c:1087 msgid "" "You should have received a copy of the GNU General Public License\n" "along with Gcalctool; if not, write to the Free Software Foundation, Inc.,\n" @@ -361,31 +337,31 @@ "якщо це не так, напишіть у Free Software Foundation, Inc.,\n" " 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.\n" -#: ../gcalctool/gtk.c:1173 +#: ../gcalctool/gtk.c:1098 msgid "Gcalctool" msgstr "Калькулятор" -#: ../gcalctool/gtk.c:1175 +#: ../gcalctool/gtk.c:1100 msgid "© 1986-2008 The Gcalctool authors" msgstr "© 1986-2008 Автори Gcalctool" -#: ../gcalctool/gtk.c:1177 +#: ../gcalctool/gtk.c:1102 msgid "Calculator with financial and scientific modes." msgstr "Калькулятор з фінансовими і науковими функціями" -#: ../gcalctool/gtk.c:1479 ../glade/gcalctool.glade.h:119 +#: ../gcalctool/gtk.c:1375 ../glade/gcalctool.glade.h:118 msgid "C" msgstr "C" -#: ../gcalctool/gtk.c:1497 ../glade/gcalctool.glade.h:170 +#: ../gcalctool/gtk.c:1393 ../glade/gcalctool.glade.h:169 msgid "F" msgstr "F" -#: ../gcalctool/gtk.c:1671 +#: ../gcalctool/gtk.c:1574 msgid "Changing Modes Clears Calculation" msgstr "Зміна режиму роботи призводить до очищення розрахунків" -#: ../gcalctool/gtk.c:1674 +#: ../gcalctool/gtk.c:1577 msgid "" "When you change modes, the current calculation will be cleared, and the base " "will be reset to decimal." @@ -393,62 +369,60 @@ "При зміні режиму, поточні розрахунки очищаються, та встановлюється десяткова " "система числення." -#: ../gcalctool/gtk.c:1678 +#: ../gcalctool/gtk.c:1581 msgid "_Do not warn me again" msgstr "_Не попереджувати надалі." -#: ../gcalctool/gtk.c:1683 +#: ../gcalctool/gtk.c:1586 msgid "C_hange Mode" msgstr "З_мінити режим" #. translators: R is the short form of register used inter alia #. in popup menus -#: ../gcalctool/gtk.c:1820 +#: ../gcalctool/gtk.c:1700 msgid "R" msgstr "R" -#: ../gcalctool/gtk.c:2186 -msgid "Clipboard contained malformed calculation" -msgstr "Буфер обміну містить некоректний результат обчислень" - -#: ../gcalctool/gtk.c:2258 +#: ../gcalctool/gtk.c:2129 msgid "Paste" msgstr "Вставити" -#: ../gcalctool/gtk.c:2531 +#: ../gcalctool/gtk.c:2383 msgid "Error loading user interface" msgstr "Помилка при завантаженні інтерфейсу користувача" -#: ../gcalctool/gtk.c:2533 + +#: ../gcalctool/gtk.c:2385 #, c-format msgid "" "The user interface file %s is missing or unable to be loaded. Please check " "your installation." msgstr "" -"Файл інтерфейсу користувача %s відсутній чи його неможливо завантажити. Перевірте ваше встановлення." +"Файл інтерфейсу користувача %s відсутній чи його неможливо завантажити. " +"Перевірте ваше встановлення." -#: ../gcalctool/gtk.c:2761 ../gcalctool/gtk.c:2779 +#: ../gcalctool/gtk.c:2609 ../gcalctool/gtk.c:2627 msgid "No." msgstr "№" -#: ../gcalctool/gtk.c:2763 ../gcalctool/gtk.c:2781 +#: ../gcalctool/gtk.c:2611 ../gcalctool/gtk.c:2629 msgid "Value" msgstr "Значення" -#: ../gcalctool/gtk.c:2765 ../gcalctool/gtk.c:2783 +#: ../gcalctool/gtk.c:2613 ../gcalctool/gtk.c:2631 msgid "Description" msgstr "Опис" #. Set default accuracy menu item -#: ../gcalctool/gtk.c:2921 ../glade/gcalctool.glade.h:269 +#: ../gcalctool/gtk.c:2777 ../glade/gcalctool.glade.h:268 #, no-c-format msgid "Reset to _Default (%d)" msgstr "Скинути на _типову (%d)" -#: ../gcalctool/mp.c:3364 +#: ../gcalctool/mp.c:2894 msgid "Negative X and non-integer Y not supported" msgstr "Від'ємні X з не цілими Y не підтримуються" -#: ../gcalctool/mpmath.c:273 +#: ../gcalctool/mpmath.c:255 msgid "Error, cannot calculate cosine" msgstr "Помилка, не вдається обчислити косинус" @@ -647,7 +621,8 @@ "Note: All constant values are specified in the decimal " "numeric base." msgstr "" -"Примітка: Всі значення констант вказуються у десятковій системі числення." +"Примітка: Всі значення констант вказуються у десятковій " +"системі числення." #. "R0" is the abbreviation for "Register 0", used in the memory register dialog #: ../glade/gcalctool.glade.h:66 @@ -717,571 +692,569 @@ msgid "AND" msgstr "AND" -#: ../glade/gcalctool.glade.h:91 -msgid "A_rithmetic Precedence" -msgstr "Використовувати _арифметичну точність" - #. Abs is short for Absolute -#: ../glade/gcalctool.glade.h:93 +#: ../glade/gcalctool.glade.h:92 msgid "Abs" msgstr "|x|" -#: ../glade/gcalctool.glade.h:94 +#: ../glade/gcalctool.glade.h:93 msgid "Absolute value" msgstr "Абсолютне значення" -#: ../glade/gcalctool.glade.h:95 +#: ../glade/gcalctool.glade.h:94 msgid "Absolute value [u]" msgstr "Абсолютне значення [u]" #. Accuracy -#: ../glade/gcalctool.glade.h:97 +#: ../glade/gcalctool.glade.h:96 msgid "Acc" msgstr "Точн" -#: ../glade/gcalctool.glade.h:98 +#: ../glade/gcalctool.glade.h:97 msgid "Accuracy" msgstr "Точність" -#: ../glade/gcalctool.glade.h:99 +#: ../glade/gcalctool.glade.h:98 msgid "Add" msgstr "Додати" -#: ../glade/gcalctool.glade.h:100 +#: ../glade/gcalctool.glade.h:99 msgid "Add [+]" msgstr "Додати [+]" -#: ../glade/gcalctool.glade.h:101 +#: ../glade/gcalctool.glade.h:100 msgid "Advanced" msgstr "Розширений" -#: ../glade/gcalctool.glade.h:102 +#: ../glade/gcalctool.glade.h:101 msgid "B" msgstr "B" -#: ../glade/gcalctool.glade.h:103 +#: ../glade/gcalctool.glade.h:102 msgid "Backspace" msgstr "Повернутись" -#: ../glade/gcalctool.glade.h:104 +#: ../glade/gcalctool.glade.h:103 msgid "Base 10 log [G]" msgstr "Десятковий логарифм [G]" -#: ../glade/gcalctool.glade.h:105 +#: ../glade/gcalctool.glade.h:104 msgid "Base 2 log [H]" msgstr "Двійковий логарифм [H]" -#: ../glade/gcalctool.glade.h:106 +#: ../glade/gcalctool.glade.h:105 msgid "Basic" msgstr "Простий" -#: ../glade/gcalctool.glade.h:107 +#: ../glade/gcalctool.glade.h:106 msgid "Bitwise AND" msgstr "Побітне AND" -#: ../glade/gcalctool.glade.h:108 +#: ../glade/gcalctool.glade.h:107 msgid "Bitwise AND [&]" msgstr "Побітне AND [&]" -#: ../glade/gcalctool.glade.h:109 +#: ../glade/gcalctool.glade.h:108 msgid "Bitwise NOT" msgstr "Побітне NOT" -#: ../glade/gcalctool.glade.h:110 +#: ../glade/gcalctool.glade.h:109 msgid "Bitwise NOT [~]" msgstr "Побітне NOT [~]" -#: ../glade/gcalctool.glade.h:111 +#: ../glade/gcalctool.glade.h:110 msgid "Bitwise OR" msgstr "Побітне OR" -#: ../glade/gcalctool.glade.h:112 +#: ../glade/gcalctool.glade.h:111 msgid "Bitwise OR [|]" msgstr "Бітова операція OR [|]" -#: ../glade/gcalctool.glade.h:113 +#: ../glade/gcalctool.glade.h:112 msgid "Bitwise XNOR" msgstr "Побітне XNOR" -#: ../glade/gcalctool.glade.h:114 +#: ../glade/gcalctool.glade.h:113 msgid "Bitwise XNOR [n]" msgstr "Побітне XNOR [n]" -#: ../glade/gcalctool.glade.h:115 +#: ../glade/gcalctool.glade.h:114 msgid "Bitwise XOR" msgstr "Побітне XOR" -#: ../glade/gcalctool.glade.h:116 +#: ../glade/gcalctool.glade.h:115 msgid "Bitwise XOR [x]" msgstr "Бітова операція XOR [x]" #. Bksp is short for Backspace -#: ../glade/gcalctool.glade.h:118 +#: ../glade/gcalctool.glade.h:117 msgid "Bksp" msgstr "Видл" -#: ../glade/gcalctool.glade.h:120 +#: ../glade/gcalctool.glade.h:119 msgid "CE" msgstr "Очщ" -#: ../glade/gcalctool.glade.h:121 +#: ../glade/gcalctool.glade.h:120 msgid "Calculate result" msgstr "Обчислити результат" -#: ../glade/gcalctool.glade.h:122 +#: ../glade/gcalctool.glade.h:121 msgid "Calculate result [=]" msgstr "Обчислити результат [=]" -#: ../glade/gcalctool.glade.h:123 +#: ../glade/gcalctool.glade.h:122 msgid "Ch_aracter:" msgstr "_Символ:" -#: ../glade/gcalctool.glade.h:124 +#: ../glade/gcalctool.glade.h:123 msgid "Change Sign [C]" msgstr "Змінити знак [C]" -#: ../glade/gcalctool.glade.h:125 +#: ../glade/gcalctool.glade.h:124 msgid "Change sign" msgstr "Змінити знак" -#: ../glade/gcalctool.glade.h:126 +#: ../glade/gcalctool.glade.h:125 msgid "Clear" msgstr "Очистити" -#: ../glade/gcalctool.glade.h:127 +#: ../glade/gcalctool.glade.h:126 msgid "Clear displayed value [Escape]" msgstr "Очищає відображуване значення [Escape]" -#: ../glade/gcalctool.glade.h:128 +#: ../glade/gcalctool.glade.h:127 msgid "Clear displayed value and any partial calculation [Shift Delete]" -msgstr "Очищає відображуване значення та будь-які частково виконані операції [Shift Delete]" +msgstr "" +"Очищає відображуване значення та будь-які частково виконані операції [Shift " +"Delete]" -#: ../glade/gcalctool.glade.h:129 +#: ../glade/gcalctool.glade.h:128 msgid "Clear entry" msgstr "Очистити елемент" -#: ../glade/gcalctool.glade.h:130 +#: ../glade/gcalctool.glade.h:129 msgid "Click a _value or description to edit it:" msgstr "Щоб відредагувати, натисніть на полі _значення або опису:" #. Clr is short for Clear -#: ../glade/gcalctool.glade.h:132 +#: ../glade/gcalctool.glade.h:131 msgid "Clr" msgstr "Скас" -#: ../glade/gcalctool.glade.h:133 +#: ../glade/gcalctool.glade.h:132 msgid "Compounding term" msgstr "Термін складного відсотка" -#: ../glade/gcalctool.glade.h:134 +#: ../glade/gcalctool.glade.h:133 msgid "Compounding term [m]" msgstr "Термін складного відсотка [m]" -#: ../glade/gcalctool.glade.h:135 +#: ../glade/gcalctool.glade.h:134 msgid "Con" msgstr "Кнст" -#: ../glade/gcalctool.glade.h:136 +#: ../glade/gcalctool.glade.h:135 msgid "Constants" msgstr "Константи" -#: ../glade/gcalctool.glade.h:137 +#: ../glade/gcalctool.glade.h:136 msgid "Constants [#]" msgstr "Константи [#]" -#: ../glade/gcalctool.glade.h:138 +#: ../glade/gcalctool.glade.h:137 msgid "Copy selection" msgstr "Копіювати виділене" -#: ../glade/gcalctool.glade.h:141 +#: ../glade/gcalctool.glade.h:140 msgid "Cosine [J]" msgstr "Косинус [J]" #. Calculates the number of compounding periods necessary to increase an investment of present value pv to a future value of fv, at a fixed interest rate of int per compounding period. #. See also: #. http://en.wikipedia.org/wiki/Compound_interest -#: ../glade/gcalctool.glade.h:145 +#: ../glade/gcalctool.glade.h:144 msgid "Ctrm" msgstr "Тсв" -#: ../glade/gcalctool.glade.h:146 +#: ../glade/gcalctool.glade.h:145 msgid "D" msgstr "D" #. Calculates the depreciation allowance on an asset for a specified period of time, using the double-declining balance method. See also: #. http://en.wikipedia.org/wiki/Depreciation -#: ../glade/gcalctool.glade.h:149 +#: ../glade/gcalctool.glade.h:148 msgid "Ddb" msgstr "Пна" -#: ../glade/gcalctool.glade.h:150 +#: ../glade/gcalctool.glade.h:149 msgid "De_grees" msgstr "_Градуси" -#: ../glade/gcalctool.glade.h:151 +#: ../glade/gcalctool.glade.h:150 msgid "Divide" msgstr "Поділити" -#: ../glade/gcalctool.glade.h:152 +#: ../glade/gcalctool.glade.h:151 msgid "Divide [/]" msgstr "Поділити [/]" -#: ../glade/gcalctool.glade.h:153 +#: ../glade/gcalctool.glade.h:152 msgid "Double-declining depreciation" msgstr "Подвійне нарахування амортизації" -#: ../glade/gcalctool.glade.h:154 +#: ../glade/gcalctool.glade.h:153 msgid "Double-declining depreciation [D]" msgstr "Подвійне нарахування амортизації [D]" -#: ../glade/gcalctool.glade.h:155 +#: ../glade/gcalctool.glade.h:154 msgid "E" msgstr "E" -#: ../glade/gcalctool.glade.h:156 +#: ../glade/gcalctool.glade.h:155 msgid "E to the x" msgstr "E у степені x" -#: ../glade/gcalctool.glade.h:157 +#: ../glade/gcalctool.glade.h:156 msgid "E_ng" msgstr "Ін_ж" -#: ../glade/gcalctool.glade.h:158 +#: ../glade/gcalctool.glade.h:157 msgid "Edit Constants" msgstr "Редагування констант" -#: ../glade/gcalctool.glade.h:159 +#: ../glade/gcalctool.glade.h:158 msgid "Edit Constants..." msgstr "Редагувати константи..." -#: ../glade/gcalctool.glade.h:160 +#: ../glade/gcalctool.glade.h:159 msgid "Edit Functions" msgstr "Редагування функцій" -#: ../glade/gcalctool.glade.h:161 +#: ../glade/gcalctool.glade.h:160 msgid "Edit Functions..." msgstr "Редагувати функції..." -#: ../glade/gcalctool.glade.h:162 +#: ../glade/gcalctool.glade.h:161 msgid "End group of calculations [)]" msgstr "Кінець групи обчислень [)]" -#: ../glade/gcalctool.glade.h:163 +#: ../glade/gcalctool.glade.h:162 msgid "Enter an exponential number [E]" msgstr "Ввести експоненціальне число [E]" #. Exchange with register -#: ../glade/gcalctool.glade.h:165 +#: ../glade/gcalctool.glade.h:164 msgid "Exch" msgstr "Обм" -#: ../glade/gcalctool.glade.h:166 +#: ../glade/gcalctool.glade.h:165 msgid "Exchange displayed value with memory register [X]" msgstr "Обміняти значення індикатора зі значенням у пам'яті [X]" -#: ../glade/gcalctool.glade.h:167 +#: ../glade/gcalctool.glade.h:166 msgid "Exchange with register" msgstr "Обміняти значення з регістром" #. Exponential -#: ../glade/gcalctool.glade.h:169 +#: ../glade/gcalctool.glade.h:168 msgid "Exp" msgstr "Exp" -#: ../glade/gcalctool.glade.h:171 +#: ../glade/gcalctool.glade.h:170 msgid "Factorial" msgstr "Факторіал" -#: ../glade/gcalctool.glade.h:172 +#: ../glade/gcalctool.glade.h:171 msgid "Factorial of displayed value [!]" msgstr "Факторіал показаного числа [!]" -#: ../glade/gcalctool.glade.h:173 +#: ../glade/gcalctool.glade.h:172 msgid "Financial" msgstr "Фінансовий" #. Fractional portion -#: ../glade/gcalctool.glade.h:175 +#: ../glade/gcalctool.glade.h:174 msgid "Frac" msgstr "Дроб" -#: ../glade/gcalctool.glade.h:176 +#: ../glade/gcalctool.glade.h:175 msgid "Fractional portion" msgstr "Дробова частина" -#: ../glade/gcalctool.glade.h:177 +#: ../glade/gcalctool.glade.h:176 msgid "Fractional portion of displayed value [:]" msgstr "Дробова частина значення індикатора [:]" -#: ../glade/gcalctool.glade.h:178 +#: ../glade/gcalctool.glade.h:177 msgid "Fun" msgstr "Фнк" -#: ../glade/gcalctool.glade.h:179 +#: ../glade/gcalctool.glade.h:178 msgid "Future value" msgstr "Майбутня сума" -#: ../glade/gcalctool.glade.h:180 +#: ../glade/gcalctool.glade.h:179 msgid "Future value [v]" msgstr "Майбутня сума [v]" #. Calculates the future value of an investment based on a series of equal payments, each of amount pmt, at a periodic interest rate of int, over the number of payment periods in the term. See also: #. http://en.wikipedia.org/wiki/Future_value -#: ../glade/gcalctool.glade.h:183 +#: ../glade/gcalctool.glade.h:182 msgid "Fv" msgstr "Мсум" -#: ../glade/gcalctool.glade.h:184 +#: ../glade/gcalctool.glade.h:183 msgid "Gr_adians" msgstr "Гр_ади" -#: ../glade/gcalctool.glade.h:185 +#: ../glade/gcalctool.glade.h:184 msgid "H_yp" msgstr "Гі_прб" -#: ../glade/gcalctool.glade.h:186 +#: ../glade/gcalctool.glade.h:185 msgid "He_x" msgstr "_Шістн" -#: ../glade/gcalctool.glade.h:187 +#: ../glade/gcalctool.glade.h:186 msgid "Hexadecimal digit A" msgstr "Шістнадцяткова цифра A" -#: ../glade/gcalctool.glade.h:188 +#: ../glade/gcalctool.glade.h:187 msgid "Hexadecimal digit A [a]" msgstr "Шістнадцяткова цифра A [a]" -#: ../glade/gcalctool.glade.h:189 +#: ../glade/gcalctool.glade.h:188 msgid "Hexadecimal digit B" msgstr "Шістнадцяткова цифра B" -#: ../glade/gcalctool.glade.h:190 +#: ../glade/gcalctool.glade.h:189 msgid "Hexadecimal digit B [b]" msgstr "Шістнадцяткова цифра B [b]" -#: ../glade/gcalctool.glade.h:191 +#: ../glade/gcalctool.glade.h:190 msgid "Hexadecimal digit C" msgstr "Шістнадцяткова цифра C" -#: ../glade/gcalctool.glade.h:192 +#: ../glade/gcalctool.glade.h:191 msgid "Hexadecimal digit C [c]" msgstr "Шістнадцяткова цифра C [c]" -#: ../glade/gcalctool.glade.h:193 +#: ../glade/gcalctool.glade.h:192 msgid "Hexadecimal digit D" msgstr "Шістнадцяткова цифра D" -#: ../glade/gcalctool.glade.h:194 +#: ../glade/gcalctool.glade.h:193 msgid "Hexadecimal digit D [d]" msgstr "Шістнадцяткова цифра D [d]" -#: ../glade/gcalctool.glade.h:195 +#: ../glade/gcalctool.glade.h:194 msgid "Hexadecimal digit E" msgstr "Шістнадцяткова цифра E" -#: ../glade/gcalctool.glade.h:196 +#: ../glade/gcalctool.glade.h:195 msgid "Hexadecimal digit E [e]" msgstr "Шістнадцяткова цифра E [e]" -#: ../glade/gcalctool.glade.h:197 +#: ../glade/gcalctool.glade.h:196 msgid "Hexadecimal digit F" msgstr "Шістнадцяткова цифра F" -#: ../glade/gcalctool.glade.h:198 +#: ../glade/gcalctool.glade.h:197 msgid "Hexadecimal digit F [f]" msgstr "Шістнадцяткова цифра F [f]" -#: ../glade/gcalctool.glade.h:199 +#: ../glade/gcalctool.glade.h:198 msgid "Insert ASCII Value" msgstr "Вставлення значення коду ASCII" -#: ../glade/gcalctool.glade.h:200 +#: ../glade/gcalctool.glade.h:199 msgid "Insert ASCII value" msgstr "Вставка значення коду ASCII" #. Integer portion -#: ../glade/gcalctool.glade.h:202 +#: ../glade/gcalctool.glade.h:201 msgid "Int" msgstr "Ціл" -#: ../glade/gcalctool.glade.h:203 +#: ../glade/gcalctool.glade.h:202 msgid "Integer portion" msgstr "Ціла частина" -#: ../glade/gcalctool.glade.h:204 +#: ../glade/gcalctool.glade.h:203 msgid "Integer portion of displayed value [i]" msgstr "Ціла частина значення індикатора [i]" -#: ../glade/gcalctool.glade.h:205 +#: ../glade/gcalctool.glade.h:204 msgid "Left bracket" msgstr "Ліва дужка" #. Natural logarithm -#: ../glade/gcalctool.glade.h:207 +#: ../glade/gcalctool.glade.h:206 msgid "Ln" msgstr "Ln" #. Factorial -#: ../glade/gcalctool.glade.h:209 +#: ../glade/gcalctool.glade.h:208 msgid "Log10" msgstr "Log10" #. Factorial -#: ../glade/gcalctool.glade.h:211 +#: ../glade/gcalctool.glade.h:210 msgid "Log2" msgstr "Log2" -#: ../glade/gcalctool.glade.h:212 +#: ../glade/gcalctool.glade.h:211 msgid "Memory Registers" msgstr "Регістри пам'яті" -#: ../glade/gcalctool.glade.h:213 +#: ../glade/gcalctool.glade.h:212 msgid "Mod" msgstr "Mod" -#: ../glade/gcalctool.glade.h:214 +#: ../glade/gcalctool.glade.h:213 msgid "Modulus Division [M]" msgstr "Залишок від цілочислового ділення [M]" -#: ../glade/gcalctool.glade.h:215 +#: ../glade/gcalctool.glade.h:214 msgid "Multiply" msgstr "Помножити" -#: ../glade/gcalctool.glade.h:216 +#: ../glade/gcalctool.glade.h:215 msgid "Multiply [*]" msgstr "Помножити [*]" -#: ../glade/gcalctool.glade.h:217 +#: ../glade/gcalctool.glade.h:216 msgid "NOT" msgstr "NOT" -#: ../glade/gcalctool.glade.h:218 +#: ../glade/gcalctool.glade.h:217 msgid "Natural log [N]" msgstr "Натуральний логарифм [N]" -#: ../glade/gcalctool.glade.h:219 +#: ../glade/gcalctool.glade.h:218 msgid "Numeric 0" msgstr "Цифра 0" -#: ../glade/gcalctool.glade.h:220 +#: ../glade/gcalctool.glade.h:219 msgid "Numeric 1" msgstr "Цифра 1" -#: ../glade/gcalctool.glade.h:221 +#: ../glade/gcalctool.glade.h:220 msgid "Numeric 2" msgstr "Цифра 2" -#: ../glade/gcalctool.glade.h:222 +#: ../glade/gcalctool.glade.h:221 msgid "Numeric 3" msgstr "Цифра 3" -#: ../glade/gcalctool.glade.h:223 +#: ../glade/gcalctool.glade.h:222 msgid "Numeric 4" msgstr "Цифра 4" -#: ../glade/gcalctool.glade.h:224 +#: ../glade/gcalctool.glade.h:223 msgid "Numeric 5" msgstr "Цифра 5" -#: ../glade/gcalctool.glade.h:225 +#: ../glade/gcalctool.glade.h:224 msgid "Numeric 6" msgstr "Цифра 6" -#: ../glade/gcalctool.glade.h:226 +#: ../glade/gcalctool.glade.h:225 msgid "Numeric 7" msgstr "Цифра 7" -#: ../glade/gcalctool.glade.h:227 +#: ../glade/gcalctool.glade.h:226 msgid "Numeric 8" msgstr "Цифра 8" -#: ../glade/gcalctool.glade.h:228 +#: ../glade/gcalctool.glade.h:227 msgid "Numeric 9" msgstr "Цифра 9" -#: ../glade/gcalctool.glade.h:229 +#: ../glade/gcalctool.glade.h:228 msgid "Numeric point" msgstr "Числова кома" -#: ../glade/gcalctool.glade.h:230 +#: ../glade/gcalctool.glade.h:229 msgid "OR" msgstr "OR" -#: ../glade/gcalctool.glade.h:231 +#: ../glade/gcalctool.glade.h:230 msgid "Paste selection" msgstr "Вставити виділене" -#: ../glade/gcalctool.glade.h:232 +#: ../glade/gcalctool.glade.h:231 msgid "Payment period" msgstr "Термін оплати" -#: ../glade/gcalctool.glade.h:233 +#: ../glade/gcalctool.glade.h:232 msgid "Payment period [t]" msgstr "Термін оплати [t]" -#: ../glade/gcalctool.glade.h:234 +#: ../glade/gcalctool.glade.h:233 msgid "Percentage" msgstr "Відсоток" -#: ../glade/gcalctool.glade.h:236 +#: ../glade/gcalctool.glade.h:235 #, no-c-format msgid "Percentage [%]" msgstr "Відсоток [%]" -#: ../glade/gcalctool.glade.h:237 +#: ../glade/gcalctool.glade.h:236 msgid "Periodic interest rate" msgstr "Ставка відсотка за період" -#: ../glade/gcalctool.glade.h:238 +#: ../glade/gcalctool.glade.h:237 msgid "Periodic interest rate [T]" msgstr "Ставка відсотка за період [T]" -#: ../glade/gcalctool.glade.h:239 +#: ../glade/gcalctool.glade.h:238 msgid "Periodic payment" msgstr "Регулярні платежі" -#: ../glade/gcalctool.glade.h:240 +#: ../glade/gcalctool.glade.h:239 msgid "Periodic payment [P]" msgstr "Регулярні платежі [P]" #. Calculates the amount of the periodic payment of a loan, where payments are made at the end of each payment period. See also: #. http://en.wikipedia.org/wiki/Amortization_schedule -#: ../glade/gcalctool.glade.h:243 +#: ../glade/gcalctool.glade.h:242 msgid "Pmt" msgstr "Рег.пл" -#: ../glade/gcalctool.glade.h:244 +#: ../glade/gcalctool.glade.h:243 msgid "Present value" msgstr "Поточна вартість " -#: ../glade/gcalctool.glade.h:245 +#: ../glade/gcalctool.glade.h:244 msgid "Present value [p]" msgstr "Поточна вартість [p]" #. Calculates the present value of an investment based on a series of equal payments, each of amount pmt, discounted at a periodic interest rate of int, over the number of payment periods in the term. See also: #. http://en.wikipedia.org/wiki/Present_value -#: ../glade/gcalctool.glade.h:248 +#: ../glade/gcalctool.glade.h:247 msgid "Pv" msgstr "Пот.варт" -#: ../glade/gcalctool.glade.h:249 +#: ../glade/gcalctool.glade.h:248 msgid "Quit the calculator" msgstr "Вийти з калькулятора" -#: ../glade/gcalctool.glade.h:250 +#: ../glade/gcalctool.glade.h:249 msgid "Raise displayed value to the power of y [^]" msgstr "Підносить відображуване значення у степінь y [^]" #. Random number -#: ../glade/gcalctool.glade.h:252 +#: ../glade/gcalctool.glade.h:251 msgid "Rand" msgstr "Впдк" -#: ../glade/gcalctool.glade.h:253 +#: ../glade/gcalctool.glade.h:252 msgid "Random number" msgstr "Випадкове число" -#: ../glade/gcalctool.glade.h:254 +#: ../glade/gcalctool.glade.h:253 msgid "Random number in the range 0.0 to 1.0 [?]" msgstr "Випадкове число в діапазоні від 0.0 до 1.0 [?]" @@ -1291,578 +1264,597 @@ #. #. #. -#: ../glade/gcalctool.glade.h:261 +#: ../glade/gcalctool.glade.h:260 msgid "Rate" msgstr "Ставк" #. Retrieve from register -#: ../glade/gcalctool.glade.h:263 +#: ../glade/gcalctool.glade.h:262 msgid "Rcl" msgstr "Викл" -#: ../glade/gcalctool.glade.h:264 +#: ../glade/gcalctool.glade.h:263 msgid "Reciprocal" msgstr "Обернена величина" -#: ../glade/gcalctool.glade.h:265 +#: ../glade/gcalctool.glade.h:264 msgid "Reciprocal [r]" msgstr "Обернена величина [r]" -#: ../glade/gcalctool.glade.h:266 +#: ../glade/gcalctool.glade.h:265 msgid "Redo" msgstr "Повторити операцію" -#: ../glade/gcalctool.glade.h:267 +#: ../glade/gcalctool.glade.h:266 msgid "Remove rightmost character from displayed value [Backspace]" msgstr "Видаляє символ праворуч у відображуваному значенні [Backspace]" -#: ../glade/gcalctool.glade.h:270 +#: ../glade/gcalctool.glade.h:269 msgid "Result Region" msgstr "Область результату" -#: ../glade/gcalctool.glade.h:271 +#: ../glade/gcalctool.glade.h:270 msgid "Retrieve from register" msgstr "Викликати значення з пам'яті на індикатор" -#: ../glade/gcalctool.glade.h:272 +#: ../glade/gcalctool.glade.h:271 msgid "Retrieve memory register to display [R]" msgstr "Викликати значення з пам'яті на індикатор" -#: ../glade/gcalctool.glade.h:273 +#: ../glade/gcalctool.glade.h:272 msgid "Right bracket" msgstr "Права дужка" -#: ../glade/gcalctool.glade.h:274 +#: ../glade/gcalctool.glade.h:273 msgid "Scientific" msgstr "Науковий" -#: ../glade/gcalctool.glade.h:275 +#: ../glade/gcalctool.glade.h:274 msgid "Set Precision" msgstr "Встановити точність" -#: ../glade/gcalctool.glade.h:276 +#: ../glade/gcalctool.glade.h:275 msgid "Set accuracy from 0 to 9 numeric places [A]" msgstr "Встановити точність від 0 до 9 числових позицій [A]" -#: ../glade/gcalctool.glade.h:277 +#: ../glade/gcalctool.glade.h:276 msgid "Set display type to engineering format" msgstr "Встановлює інженерний тип відображення" -#: ../glade/gcalctool.glade.h:278 +#: ../glade/gcalctool.glade.h:277 msgid "Set display type to fixed-point format" msgstr "Встановлює тип відображення з фіксованою комою" -#: ../glade/gcalctool.glade.h:279 +#: ../glade/gcalctool.glade.h:278 msgid "Set display type to scientific format" msgstr "Встановлює науковий тип відображення" -#: ../glade/gcalctool.glade.h:280 +#: ../glade/gcalctool.glade.h:279 msgid "Set hyperbolic option for trigonometric functions" msgstr "Вибрати гіперболічні варіанти тригонометричних функцій" -#: ../glade/gcalctool.glade.h:281 +#: ../glade/gcalctool.glade.h:280 msgid "Set inverse option for trigonometric functions" msgstr "Вибрати інверсні варіанти тригонометричних функцій" -#: ../glade/gcalctool.glade.h:282 +#: ../glade/gcalctool.glade.h:281 msgid "Set numeric base to binary (base 2)" msgstr "Встановлює двійкову базу числа (база 2)" -#: ../glade/gcalctool.glade.h:283 +#: ../glade/gcalctool.glade.h:282 msgid "Set numeric base to decimal (base 10)" msgstr "Встановлює десяткову базу числа (база 10)" -#: ../glade/gcalctool.glade.h:284 +#: ../glade/gcalctool.glade.h:283 msgid "Set numeric base to hexadecimal (base 16)" msgstr "Встановлює шістнадцяткову базу числа (база 16)" -#: ../glade/gcalctool.glade.h:285 +#: ../glade/gcalctool.glade.h:284 msgid "Set numeric base to octal (base 8)" msgstr "Встановлює вісімкову базу числа (база 8)" -#: ../glade/gcalctool.glade.h:286 +#: ../glade/gcalctool.glade.h:285 msgid "Set trigonometric type to degrees" msgstr "Встановлює режим тригонометричних функцій у градуси" -#: ../glade/gcalctool.glade.h:287 +#: ../glade/gcalctool.glade.h:286 msgid "Set trigonometric type to gradians" msgstr "Встановлює режим тригонометричних функцій у гради" -#: ../glade/gcalctool.glade.h:288 +#: ../glade/gcalctool.glade.h:287 msgid "Set trigonometric type to radians" msgstr "Встановлює режим тригонометричних функцій у радіани" -#: ../glade/gcalctool.glade.h:289 +#: ../glade/gcalctool.glade.h:288 msgid "Shift displayed value 1-15 places to the left [<]" msgstr "Здвинути значення на 1-15 позицій ліворуч [<]" -#: ../glade/gcalctool.glade.h:290 +#: ../glade/gcalctool.glade.h:289 msgid "Shift displayed value 1-15 places to the right [>]" msgstr "Здвинути значення на 1-15 позицій праворуч [>]" -#: ../glade/gcalctool.glade.h:291 +#: ../glade/gcalctool.glade.h:290 msgid "Shift left" msgstr "Здвинути ліворуч" -#: ../glade/gcalctool.glade.h:292 +#: ../glade/gcalctool.glade.h:291 msgid "Shift right" msgstr "Здвинути праворуч" #. When the bit editor is visible, there will be two rows of ones #. and zeroes shown. When the number being displayed in #. in the calculator is an integer value, these ones and zeroes will be sensitive, and they will correspond to the value of each of the bits in the displayed integer number. By clicking on any of the labels for these ones and zeroes, their value can be toggled (a one becomes a zero and a zero becomes a one), causing the displayed integer value to be adjusted accordingly. -#: ../glade/gcalctool.glade.h:296 +#: ../glade/gcalctool.glade.h:295 msgid "Show Bit Editor" msgstr "Показати редактор бітів" #. When the bit editor is visible, there will be two rows of ones #. and zeroes shown. When the number being displayed in #. in the calculator is an integer value, these ones and zeroes will be sensitive, and they will correspond to the value of each of the bits in the displayed integer number. By clicking on any of the labels for these ones and zeroes, their value can be toggled (a one becomes a zero and a zero becomes a one), causing the displayed integer value to be adjusted accordingly. -#: ../glade/gcalctool.glade.h:300 +#: ../glade/gcalctool.glade.h:299 msgid "Show Bit _Editor" msgstr "Показати _редактор бітів" -#: ../glade/gcalctool.glade.h:301 +#: ../glade/gcalctool.glade.h:300 msgid "Show T_housands Separator" msgstr "Показувати розділювач _тисячних" -#: ../glade/gcalctool.glade.h:302 +#: ../glade/gcalctool.glade.h:301 msgid "Show _Trailing Zeroes" msgstr "Показувати _завершальні нулі" #. When the bit editor is visible, there will be two rows of ones #. and zeroes shown. When the number being displayed in #. in the calculator is an integer value, these ones and zeroes will be sensitive, and they will correspond to the value of each of the bits in the displayed integer number. By clicking on any of the labels for these ones and zeroes, their value can be toggled (a one becomes a zero and a zero becomes a one), causing the displayed integer value to be adjusted accordingly. -#: ../glade/gcalctool.glade.h:306 +#: ../glade/gcalctool.glade.h:305 msgid "Show bit editor" msgstr "Показати редактор бітів" -#: ../glade/gcalctool.glade.h:307 +#: ../glade/gcalctool.glade.h:306 msgid "Show help contents" msgstr "Показати зміст довідки" -#: ../glade/gcalctool.glade.h:308 +#: ../glade/gcalctool.glade.h:307 msgid "Show memory registers" msgstr "Показувати регістри пам'яті" -#: ../glade/gcalctool.glade.h:309 +#: ../glade/gcalctool.glade.h:308 msgid "Show the About Gcalctool dialog" msgstr "Показати діалог \"Про програму Gcalctool\"" -#: ../glade/gcalctool.glade.h:310 +#: ../glade/gcalctool.glade.h:309 msgid "Show thousands separator" msgstr "Показувати розділювач тисячних" -#: ../glade/gcalctool.glade.h:311 +#: ../glade/gcalctool.glade.h:310 msgid "Show trailing zeroes" msgstr "Показувати завершальні нулі" -#: ../glade/gcalctool.glade.h:312 +#: ../glade/gcalctool.glade.h:311 msgid "Significant _places:" msgstr "Значущі _цифри:" -#: ../glade/gcalctool.glade.h:315 +#: ../glade/gcalctool.glade.h:314 msgid "Sine [K]" msgstr "Синус [K]" #. Calculates the straight-line depreciation of an asset for one period. The depreciable cost is cost - salvage. The straight-line method of depreciation divides the depreciable cost evenly over the useful life of an asset. The useful life is the number of periods, typically years, over which an asset is depreciated. See also: #. http://en.wikipedia.org/wiki/Depreciation -#: ../glade/gcalctool.glade.h:318 +#: ../glade/gcalctool.glade.h:317 msgid "Sln" msgstr "Рна" -#: ../glade/gcalctool.glade.h:319 +#: ../glade/gcalctool.glade.h:318 msgid "Square" msgstr "Квадрат" -#: ../glade/gcalctool.glade.h:320 +#: ../glade/gcalctool.glade.h:319 msgid "Square [@]" msgstr "Квадрат [@]" -#: ../glade/gcalctool.glade.h:321 +#: ../glade/gcalctool.glade.h:320 msgid "Square root" msgstr "Квадратний корінь" -#: ../glade/gcalctool.glade.h:322 +#: ../glade/gcalctool.glade.h:321 msgid "Square root [s]" msgstr "Квадратний корінь [s]" -#: ../glade/gcalctool.glade.h:323 +#: ../glade/gcalctool.glade.h:322 msgid "Start group of calculations [(]" msgstr "Початок групи обчислень [(]" #. Store to register -#: ../glade/gcalctool.glade.h:325 +#: ../glade/gcalctool.glade.h:324 msgid "Sto" msgstr "Зап" -#: ../glade/gcalctool.glade.h:326 +#: ../glade/gcalctool.glade.h:325 msgid "Store displayed value in memory register [S]" msgstr "Запам'ятати значення індикатора у пам'яті [S]" -#: ../glade/gcalctool.glade.h:327 +#: ../glade/gcalctool.glade.h:326 msgid "Store to register" msgstr "Регістри пам'яті" -#: ../glade/gcalctool.glade.h:328 +#: ../glade/gcalctool.glade.h:327 msgid "Straight-line depreciation" msgstr "Рівномірне нарахування амортизації" -#: ../glade/gcalctool.glade.h:329 +#: ../glade/gcalctool.glade.h:328 msgid "Straight-line depreciation [l]" msgstr "Рівномірне нарахування амортизації [l]" -#: ../glade/gcalctool.glade.h:330 +#: ../glade/gcalctool.glade.h:329 msgid "Subtract" msgstr "Відняти" -#: ../glade/gcalctool.glade.h:331 +#: ../glade/gcalctool.glade.h:330 msgid "Subtract [-]" msgstr "Відняти [-]" -#: ../glade/gcalctool.glade.h:332 +#: ../glade/gcalctool.glade.h:331 msgid "Sum-of-the years'-digits depreciation" msgstr "Амортизація за сумою років" -#: ../glade/gcalctool.glade.h:333 +#: ../glade/gcalctool.glade.h:332 msgid "Sum-of-the years'-digits depreciation [y]" msgstr "Амортизація за сумою років [y]" #. Calculates the depreciation allowance on an asset for a specified period of time, using the Sum-Of-The-Years'-Digits method. This method of depreciation accelerates the rate of depreciation, so that more depreciation expense occurs in earlier periods than in later ones. #. The depreciable cost is cost - salvage. The useful life is the number of periods, typically years, over which an asset is depreciated. See also: #. http://en.wikipedia.org/wiki/Depreciation -#: ../glade/gcalctool.glade.h:337 +#: ../glade/gcalctool.glade.h:336 msgid "Syd" msgstr "Ам.сум.рок" -#: ../glade/gcalctool.glade.h:340 +#: ../glade/gcalctool.glade.h:339 msgid "Tangent [L]" msgstr "Тангенс [L]" -#: ../glade/gcalctool.glade.h:341 +#: ../glade/gcalctool.glade.h:340 msgid "Ten to the x" msgstr "Десять у степені x" #. Calculates the number of payment periods that are necessary during the term of an ordinary annuity, to accumulate a future value of fv, at a periodic interest rate of int. Each payment is equal to amount pmt. See also: #. http://en.wikipedia.org/wiki/Annuity_(finance_theory) -#: ../glade/gcalctool.glade.h:344 +#: ../glade/gcalctool.glade.h:343 msgid "Term" msgstr "Т.опл" -#: ../glade/gcalctool.glade.h:345 +#: ../glade/gcalctool.glade.h:344 msgid "Undo" msgstr "Вернути операцію" -#: ../glade/gcalctool.glade.h:346 -msgid "Use Arithmetic Precedence" -msgstr "Використовувати арифметичну точність" - -#: ../glade/gcalctool.glade.h:347 -msgid "Use Left-right Precedence" -msgstr "Старшинство операцій с_права-наліво" - -#: ../glade/gcalctool.glade.h:348 +#: ../glade/gcalctool.glade.h:345 msgid "User-defined functions" msgstr "Функції визначені користувачем" -#: ../glade/gcalctool.glade.h:349 +#: ../glade/gcalctool.glade.h:346 msgid "User-defined functions [F]" msgstr "Функції визначені користувачем [F]" -#: ../glade/gcalctool.glade.h:350 +#: ../glade/gcalctool.glade.h:347 msgid "X to the y" msgstr "X в степені y" -#: ../glade/gcalctool.glade.h:351 +#: ../glade/gcalctool.glade.h:348 msgid "XNOR" msgstr "XNOR" -#: ../glade/gcalctool.glade.h:352 +#: ../glade/gcalctool.glade.h:349 msgid "XOR" msgstr "XOR" -#: ../glade/gcalctool.glade.h:353 +#: ../glade/gcalctool.glade.h:350 msgid "_0 significant places" msgstr "_0 значущих позицій" -#: ../glade/gcalctool.glade.h:354 +#: ../glade/gcalctool.glade.h:351 msgid "_1 place" msgstr "_1 позицію" -#: ../glade/gcalctool.glade.h:355 +#: ../glade/gcalctool.glade.h:352 msgid "_1 significant place" msgstr "_1 значуща позиція" -#: ../glade/gcalctool.glade.h:356 +#: ../glade/gcalctool.glade.h:353 msgid "_2 places" msgstr "_2 позиції" -#: ../glade/gcalctool.glade.h:357 +#: ../glade/gcalctool.glade.h:354 msgid "_2 significant places" msgstr "_2 значущі позиції" -#: ../glade/gcalctool.glade.h:358 +#: ../glade/gcalctool.glade.h:355 msgid "_3 places" msgstr "_3 позиції" -#: ../glade/gcalctool.glade.h:359 +#: ../glade/gcalctool.glade.h:356 msgid "_3 significant places" msgstr "_3 значущі позиції" -#: ../glade/gcalctool.glade.h:360 +#: ../glade/gcalctool.glade.h:357 msgid "_4 places" msgstr "_4 позиції" -#: ../glade/gcalctool.glade.h:361 +#: ../glade/gcalctool.glade.h:358 msgid "_4 significant places" msgstr "_4 значущі позиції" -#: ../glade/gcalctool.glade.h:362 +#: ../glade/gcalctool.glade.h:359 msgid "_5 places" msgstr "_5 позицій" -#: ../glade/gcalctool.glade.h:363 +#: ../glade/gcalctool.glade.h:360 msgid "_5 significant places" msgstr "_5 значущих позицій" -#: ../glade/gcalctool.glade.h:364 +#: ../glade/gcalctool.glade.h:361 msgid "_6 places" msgstr "_6 позицій" -#: ../glade/gcalctool.glade.h:365 +#: ../glade/gcalctool.glade.h:362 msgid "_6 significant places" msgstr "_6 значущих позицій" -#: ../glade/gcalctool.glade.h:366 +#: ../glade/gcalctool.glade.h:363 msgid "_7 places" msgstr "_7 позицій" -#: ../glade/gcalctool.glade.h:367 +#: ../glade/gcalctool.glade.h:364 msgid "_7 significant places" msgstr "_7 значущих позицій" -#: ../glade/gcalctool.glade.h:368 +#: ../glade/gcalctool.glade.h:365 msgid "_8 places" msgstr "_8 позицій" -#: ../glade/gcalctool.glade.h:369 +#: ../glade/gcalctool.glade.h:366 msgid "_8 significant places" msgstr "_8 значущих позицій" -#: ../glade/gcalctool.glade.h:370 +#: ../glade/gcalctool.glade.h:367 msgid "_9 places" msgstr "_9 позицій" -#: ../glade/gcalctool.glade.h:371 +#: ../glade/gcalctool.glade.h:368 msgid "_9 significant places" msgstr "_9 значущих позицій" -#: ../glade/gcalctool.glade.h:372 +#: ../glade/gcalctool.glade.h:369 msgid "_Advanced" msgstr "_Розширений" -#: ../glade/gcalctool.glade.h:373 +#: ../glade/gcalctool.glade.h:370 msgid "_Basic" msgstr "_Простий" -#: ../glade/gcalctool.glade.h:374 +#: ../glade/gcalctool.glade.h:371 msgid "_Bin" msgstr "Дві_йк" -#: ../glade/gcalctool.glade.h:375 +#: ../glade/gcalctool.glade.h:372 msgid "_Calculator" msgstr "_Калькулятор" -#: ../glade/gcalctool.glade.h:376 +#: ../glade/gcalctool.glade.h:373 msgid "_Contents" msgstr "_Зміст" -#: ../glade/gcalctool.glade.h:377 +#: ../glade/gcalctool.glade.h:374 msgid "_Dec" msgstr "Де_сятк" -#: ../glade/gcalctool.glade.h:378 +#: ../glade/gcalctool.glade.h:375 msgid "_Edit" msgstr "_Правка" -#: ../glade/gcalctool.glade.h:379 +#: ../glade/gcalctool.glade.h:376 msgid "_Financial" msgstr "_Фінансовий" -#: ../glade/gcalctool.glade.h:380 +#: ../glade/gcalctool.glade.h:377 msgid "_Fix" msgstr "_Фікс" -#: ../glade/gcalctool.glade.h:381 +#: ../glade/gcalctool.glade.h:378 msgid "_Help" msgstr "_Довідка" -#: ../glade/gcalctool.glade.h:382 +#: ../glade/gcalctool.glade.h:379 msgid "_Insert" msgstr "_Вставити" -#: ../glade/gcalctool.glade.h:383 +#: ../glade/gcalctool.glade.h:380 msgid "_Insert ASCII value..." msgstr "_Вставити значення коду ASCII..." -#: ../glade/gcalctool.glade.h:384 +#: ../glade/gcalctool.glade.h:381 msgid "_Inv" msgstr "_Інв" -#: ../glade/gcalctool.glade.h:385 -msgid "_Left-to-right Precedence" -msgstr "Старшинство операцій з_ліва-направо" - -#: ../glade/gcalctool.glade.h:386 +#: ../glade/gcalctool.glade.h:382 msgid "_Memory Registers" msgstr "_Регістри пам'яті" -#: ../glade/gcalctool.glade.h:387 +#: ../glade/gcalctool.glade.h:383 msgid "_Oct" msgstr "_Вісімк" -#: ../glade/gcalctool.glade.h:390 +#: ../glade/gcalctool.glade.h:386 msgid "_Radians" msgstr "_Радіани" -#: ../glade/gcalctool.glade.h:391 +#: ../glade/gcalctool.glade.h:387 msgid "_Redo" msgstr "Пов_торити" -#: ../glade/gcalctool.glade.h:392 +#: ../glade/gcalctool.glade.h:388 msgid "_Sci" msgstr "_Наук" -#: ../glade/gcalctool.glade.h:393 +#: ../glade/gcalctool.glade.h:389 msgid "_Scientific" msgstr "_Науковий" -#: ../glade/gcalctool.glade.h:394 +#: ../glade/gcalctool.glade.h:390 msgid "_Set" msgstr "_Встановити" -#: ../glade/gcalctool.glade.h:395 +#: ../glade/gcalctool.glade.h:391 msgid "_Undo" msgstr "В_ернути" -#: ../glade/gcalctool.glade.h:396 +#: ../glade/gcalctool.glade.h:392 msgid "_View" msgstr "_Вигляд" -#: ../glade/gcalctool.glade.h:397 +#: ../glade/gcalctool.glade.h:393 msgid "e to the power of displayed value [{]" msgstr "e в степені показаного числа [{]" #. E to the power of x. Note that this label uses mark up and the "x" is a superscript character. See: http://en.wikipedia.org/wiki/Superscript for more details on superscripts. -#: ../glade/gcalctool.glade.h:399 +#: ../glade/gcalctool.glade.h:395 msgid "ex" msgstr "ex" -#: ../glade/gcalctool.glade.h:400 +#: ../glade/gcalctool.glade.h:396 msgid "ex" msgstr "ex" #. This is accessible name for memory register 0. It is spoken #. by screen readers such as Orca, to help people who are #. blind or have low vision. -#: ../glade/gcalctool.glade.h:404 +#: ../glade/gcalctool.glade.h:400 msgid "register 0" msgstr "регістр 0" #. This is accessible name for memory register 1. It is spoken #. by screen readers such as Orca, to help people who are #. blind or have low vision. -#: ../glade/gcalctool.glade.h:408 +#: ../glade/gcalctool.glade.h:404 msgid "register 1" msgstr "регістр 1" #. This is accessible name for memory register 2. It is spoken #. by screen readers such as Orca, to help people who are #. blind or have low vision. -#: ../glade/gcalctool.glade.h:412 +#: ../glade/gcalctool.glade.h:408 msgid "register 2" msgstr "регістр 2" #. This is accessible name for memory register 3. It is spoken #. by screen readers such as Orca, to help people who are #. blind or have low vision. -#: ../glade/gcalctool.glade.h:416 +#: ../glade/gcalctool.glade.h:412 msgid "register 3" msgstr "регістр 4" #. This is accessible name for memory register 4. It is spoken #. by screen readers such as Orca, to help people who are #. blind or have low vision. -#: ../glade/gcalctool.glade.h:420 +#: ../glade/gcalctool.glade.h:416 msgid "register 4" msgstr "регістр 4" #. This is accessible name for memory register 5. It is spoken #. by screen readers such as Orca, to help people who are #. blind or have low vision. -#: ../glade/gcalctool.glade.h:424 +#: ../glade/gcalctool.glade.h:420 msgid "register 5" msgstr "регістр 5" #. This is accessible name for memory register 6. It is spoken #. by screen readers such as Orca, to help people who are #. blind or have low vision. -#: ../glade/gcalctool.glade.h:428 +#: ../glade/gcalctool.glade.h:424 msgid "register 6" msgstr "регістр 6" #. This is accessible name for memory register 7. It is spoken #. by screen readers such as Orca, to help people who are #. blind or have low vision. -#: ../glade/gcalctool.glade.h:432 +#: ../glade/gcalctool.glade.h:428 msgid "register 7" msgstr "регістр 7" #. This is accessible name for memory register 8. It is spoken #. by screen readers such as Orca, to help people who are #. blind or have low vision. -#: ../glade/gcalctool.glade.h:436 +#: ../glade/gcalctool.glade.h:432 msgid "register 8" msgstr "регістр 8" #. This is accessible name for memory register 9. It is spoken #. by screen readers such as Orca, to help people who are #. blind or have low vision. -#: ../glade/gcalctool.glade.h:440 +#: ../glade/gcalctool.glade.h:436 msgid "register 9" msgstr "регістр 9" -#: ../glade/gcalctool.glade.h:441 +#: ../glade/gcalctool.glade.h:437 msgid "x2" msgstr "x2" -#: ../glade/gcalctool.glade.h:442 +#: ../glade/gcalctool.glade.h:438 msgid "xy" msgstr "xy" #. This is a plus-minus sign (+/-) -#: ../glade/gcalctool.glade.h:444 +#: ../glade/gcalctool.glade.h:440 msgid "±" msgstr "±" #. This is a multiplication sign (*) -#: ../glade/gcalctool.glade.h:446 +#: ../glade/gcalctool.glade.h:442 msgid "×" msgstr "×" #. this is a division sign (÷) -#: ../glade/gcalctool.glade.h:448 +#: ../glade/gcalctool.glade.h:444 msgid "÷" msgstr "÷" #. This is a minus sign (-) -#: ../glade/gcalctool.glade.h:450 +#: ../glade/gcalctool.glade.h:446 msgid "−" msgstr "−" #. This is a square root sign -#: ../glade/gcalctool.glade.h:452 +#: ../glade/gcalctool.glade.h:448 msgid "√" msgstr "√" +#~ msgid "Error, operands must be integers" +#~ msgstr "Помилка, операнди мають бути цілими числами" + +#~ msgid "Cleared display, prefix without an operator is not allowed" +#~ msgstr "Дисплей очищений, префікс без оператора не допускається" + +#~ msgid "Malformed parenthesis expression" +#~ msgstr "Неправильний вираз з дужками" + +#~ msgid "%s: invalid syntax mode [%s]\n" +#~ msgstr "%s: неправильний синтаксичний режим [%s]\n" + +#~ msgid "Activated no operator precedence mode" +#~ msgstr "Активовано режим без старшинства операторів" + +#~ msgid "Activated expression mode with operator precedence" +#~ msgstr "Активовано режим зі старшинством операторів" + +#~ msgid "Clipboard contained malformed calculation" +#~ msgstr "Буфер обміну містить некоректний результат обчислень" + +#~ msgid "A_rithmetic Precedence" +#~ msgstr "Використовувати _арифметичну точність" + +#~ msgid "Use Arithmetic Precedence" +#~ msgstr "Використовувати арифметичну точність" + +#~ msgid "Use Left-right Precedence" +#~ msgstr "Старшинство операцій с_права-наліво" +#~ msgid "_Left-to-right Precedence" +#~ msgstr "Старшинство операцій з_ліва-направо" diff -Nru gcalctool-5.24.1/README gcalctool-5.24.2/README --- gcalctool-5.24.1/README 2008-10-20 00:22:00.000000000 +0200 +++ gcalctool-5.24.2/README 2008-11-24 23:42:17.000000000 +0100 @@ -17,7 +17,7 @@ 1. Introduction. ---------------- -This is v5.24.1 of gcalctool, the calculator application that was previously +This is v5.24.2 of gcalctool, the calculator application that was previously in the OpenWindows Deskset of the Solaris 8 operating system. Sun Microsystems Inc. have kindly given me permission to release it.