Merge branch 'master' into output fc11-i386-build61 fc11-x64-build58 lenny-x64-build82 sid-i386-build128
authorJohn Darrington <john@darrington.wattle.id.au>
Fri, 18 Dec 2009 19:34:12 +0000 (20:34 +0100)
committerJohn Darrington <john@darrington.wattle.id.au>
Fri, 18 Dec 2009 19:34:12 +0000 (20:34 +0100)
Conflicts:

NEWS
configure.ac
src/output/charts/dummy-chart.c

79 files changed:
NEWS
README.Git
configure.ac
doc/dev/system-file-format.texi
glade/automake.mk
glade/psppire.xml
glade/var-view.c [new file with mode: 0644]
perl-module/PSPP.xs
perl-module/lib/PSPP.pm
po/automake.mk
po/ca.po [new file with mode: 0644]
po/nl.po
src/data/make-file.c
src/data/sys-file-reader.c
src/language/stats/correlations.c
src/language/stats/roc.c
src/language/stats/t-test.q
src/math/automake.mk
src/math/correlation.c [new file with mode: 0644]
src/math/correlation.h [new file with mode: 0644]
src/ui/gui/about.c
src/ui/gui/automake.mk
src/ui/gui/compute-dialog.c
src/ui/gui/correlation-dialog.c [new file with mode: 0644]
src/ui/gui/correlation-dialog.h [new file with mode: 0644]
src/ui/gui/correlation.ui [new file with mode: 0644]
src/ui/gui/crosstabs-dialog.c
src/ui/gui/crosstabs.ui
src/ui/gui/customentry.c
src/ui/gui/data-editor.glade
src/ui/gui/descriptives-dialog.c
src/ui/gui/descriptives.ui
src/ui/gui/dialog-common.c
src/ui/gui/dialog-common.h
src/ui/gui/dict-display.c
src/ui/gui/dict-display.h
src/ui/gui/examine-dialog.c
src/ui/gui/examine.ui
src/ui/gui/find-dialog.c
src/ui/gui/find.ui
src/ui/gui/frequencies-dialog.c
src/ui/gui/frequencies.ui
src/ui/gui/oneway-anova-dialog.c
src/ui/gui/oneway.ui
src/ui/gui/psppire-buttonbox.c
src/ui/gui/psppire-data-window.c
src/ui/gui/psppire-dict.c
src/ui/gui/psppire-dictview.c
src/ui/gui/psppire-select-dest.c [new file with mode: 0644]
src/ui/gui/psppire-select-dest.h [new file with mode: 0644]
src/ui/gui/psppire-selector.c
src/ui/gui/psppire-selector.h
src/ui/gui/psppire-var-view.c [new file with mode: 0644]
src/ui/gui/psppire-var-view.h [new file with mode: 0644]
src/ui/gui/psppire.c
src/ui/gui/psppire.ui
src/ui/gui/rank-dialog.c
src/ui/gui/rank.ui
src/ui/gui/recode-dialog.c
src/ui/gui/recode.ui
src/ui/gui/regression-dialog.c
src/ui/gui/regression.ui
src/ui/gui/reliability-dialog.c
src/ui/gui/reliability.ui
src/ui/gui/roc-dialog.c [new file with mode: 0644]
src/ui/gui/roc-dialog.h [new file with mode: 0644]
src/ui/gui/roc.ui [new file with mode: 0644]
src/ui/gui/select-cases-dialog.c
src/ui/gui/sort-cases-dialog.c
src/ui/gui/sort.ui [new file with mode: 0644]
src/ui/gui/split-file-dialog.c
src/ui/gui/t-test-independent-samples-dialog.c
src/ui/gui/t-test-one-sample.c
src/ui/gui/t-test-paired-samples.c
src/ui/gui/t-test.ui
src/ui/gui/transpose-dialog.c
src/ui/gui/variable-info-dialog.c
src/ui/gui/weight-cases-dialog.c
src/ui/gui/widgets.c

diff --git a/NEWS b/NEWS
index 24f1d4a80cce1218ebbb91c2785bd6cdc79f0aea..ab21afde986538b1ac362b74cedc3191f243112f 100644 (file)
--- a/NEWS
+++ b/NEWS
@@ -63,8 +63,7 @@ Changes from 0.6.2-pre6 to 0.7.0:
 
   * A tutorial chapter has been added to the user manual.
 
-
-Changes from 0.6.1 to 0.6.2-pre6:
+Changes from 0.6.1 to 0.6.2
 
   * New translations:
 
@@ -86,6 +85,8 @@ Changes from 0.6.1 to 0.6.2-pre6:
 
   * Build fixes and changes:
 
+    - Fix build with GTK+ 2.17.4 and later.
+
     - Make running "make" after running "configure" with different
       settings reliably rebuild version.c.
 
@@ -109,6 +110,9 @@ Changes from 0.6.1 to 0.6.2-pre6:
 
     - Fix writing corrupted .sav files on Windows.
 
+    - Fix writing variable labels longer than 252 bytes to save files.
+      Thanks to Robert Westlund for reporting this bug.
+
     - Fix writing corrupted .por files (bug #26034).
 
     - Fix reading .por files whose initial lines are not padded out
index 753423e3e98bd4a1f816309f637f51826d0bb7a1..7d3652939e9df5ea4941f26b716be01f98827288 100644 (file)
@@ -34,11 +34,12 @@ This version of PSPP should work with the Gnulib commit shown below.
 Gnulib does not maintain a stable API or ABI, so it is possible that
 PSPP will not work with older or newer versions of Gnulib.
 
-    commit e21985ad14508137d75b0dccf064adfc4e5888c6
-    Author: Bruno Haible <bruno@clisp.org>
-    Date:   Mon Sep 28 23:25:49 2009 +0200
+    commit 0883405cc751858a633bebc56acb75381a6e50c8
+    Author: Eric Blake <ebb9@byu.net>
+    Date:   Wed Nov 18 06:59:44 2009 -0700
+
+        utimens: fix regression on Solaris
 
-       Avoid identifier clash with POSIX function 'remove' defined as a macro.
 
 To clone Gnulib into a directory named "gnulib" using Git, and then
 check out this particular commit, run these commands:
index 499128b3c5e524aa46f2abb650cf5c43f4b642f4..1dc8e55896a723ffe50322b9beec0353eda0a116 100644 (file)
@@ -40,6 +40,7 @@ fi
 dnl Checks for libraries.
 AC_SYS_LARGEFILE
 AC_SEARCH_LIBS([sin], [m])
+AC_SEARCH_LIBS([dcgettext], [intl])
 PSPP_LC_PAPER
 
 
index a404d0d6ce3961eed3ca1ec134a2ff9f6140adac..c1d1e42129a02c5e7fb7dfbf9f6daa528c2550dc 100644 (file)
@@ -1093,6 +1093,9 @@ value @var{code} - @var{bias}, where
 variable @code{bias} from the file header.  For example,
 code 105 with bias 100.0 (the normal value) indicates a numeric variable
 of value 5.
+One file has been seen written by SPSS 14 that contained such a code
+in a @emph{string} field with the value 0 (after the bias is
+subtracted) as a way of encoding null bytes.
 
 @item 252
 End of file.  This code may or may not appear at the end of the data
index 8e51e1f720244b9e96c4eca5233f5aadf29f11a1..1f0bf0ba1922303faf17e3b9bc6c28b65c3b82d2 100644 (file)
@@ -15,6 +15,7 @@ libglade_psppire_la_SOURCES = \
        glade/selector.c \
        glade/acr.c \
        glade/dictview.c \
+       glade/var-view.c \
        src/ui/gui/psppire-conf.c \
        src/ui/gui/psppire-acr.c \
        src/ui/gui/psppire-buttonbox.c \
@@ -23,7 +24,9 @@ libglade_psppire_la_SOURCES = \
        src/ui/gui/psppire-dialog.c \
        src/ui/gui/psppire-keypad.c \
        src/ui/gui/psppire-dictview.c \
-       src/ui/gui/psppire-selector.c
+       src/ui/gui/psppire-selector.c \
+       src/ui/gui/psppire-select-dest.c \
+       src/ui/gui/psppire-var-view.c
 
 dist_catalog_DATA = \
        glade/psppire.xml
index 50a0366186ea4da876516362fec16840196e5e63..db8956b70ac7880d179d1a706911c69c6552938b 100644 (file)
          </displayable-values>
        </property>
 
-
-       <property id="visible" ignore="True" default="True" />
+       <property id="source-widget"     ignore="True" />
+       <property id="dest-widget"       ignore="True" />
+       <property id="visible"           ignore="True" default="True" />
+       <property id="primary"           default="False" />
      </properties>
 
     </glade-widget-class>
       <property id="child"                disabled="True" />
       <property id="homogeneous"          disabled="True" />
       <property id="visible" ignore="True" default="True" />
+      <property id="model"                visible="False"  query="False" />
+    </properties>
+
+    </glade-widget-class>
+
+
+    <glade-widget-class name="PsppireVarView" generic-name="psppire-var-view" title="Variable Treeview">
+
+      <post-create-function>glade_psppire_var_view_post_create</post-create-function>
+      <get-children-function>glade_psppire_var_view_get_children</get-children-function>
+      <get-internal-child-function>glade_psppire_var_view_get_internal_child</get-internal-child-function>
+
+
+    <properties>
+      <property id="child"                disabled="True" />
+      <property id="homogeneous"          disabled="True" />
+      <property id="visible" ignore="True" default="True" />
+      <property id="model"                visible="False"  query="False" disabled="True" />
+      <property id="n-cols"    ignore="True" />
+
     </properties>
 
     </glade-widget-class>
 
 
   </glade-widget-classes>
+
  
 
  <glade-widget-group name="psppire" title="Psppire">
   <glade-widget-class-ref name="PsppireHButtonBox"/>
   <glade-widget-class-ref name="PsppireVButtonBox"/>
   <glade-widget-class-ref name="PsppireDictView"/>
+  <glade-widget-class-ref name="PsppireVarView"/>
   <glade-widget-class-ref name="PsppireSelector"/>
   <glade-widget-class-ref name="PsppireKeypad"/>
   <glade-widget-class-ref name="PsppireAcr"/>
diff --git a/glade/var-view.c b/glade/var-view.c
new file mode 100644 (file)
index 0000000..7eb6c62
--- /dev/null
@@ -0,0 +1,83 @@
+#include <config.h>
+
+#include <glib.h>
+#include <gtk/gtk.h>
+#include "psppire-var-view.h"
+
+#include <gladeui/glade.h>
+
+
+/* Dummy function to keep the linker happy.
+   Glade never actually needs to use this return value.
+ */
+GType
+psppire_var_ptr_get_type (void)
+{
+  return 0;
+}
+
+void
+glade_psppire_var_view_post_create (GladeWidgetAdaptor *adaptor,
+                                   GObject            *object,
+                                   GladeCreateReason   reason)
+{
+  GladeWidget *widget ;
+
+  PsppireVarView *var_view = PSPPIRE_VAR_VIEW (object);
+
+  g_return_if_fail (PSPPIRE_IS_VAR_VIEW (var_view));
+
+  widget = glade_widget_get_from_gobject (GTK_WIDGET (var_view));
+  if (!widget)
+    return;
+
+  if (reason == GLADE_CREATE_USER)
+    {
+      /* HIG complient border-width defaults on var_views */
+      glade_widget_property_set (widget, "border-width", 5);
+    }
+}
+
+
+GtkWidget *
+glade_psppire_var_view_get_internal_child (GladeWidgetAdaptor  *adaptor,
+                                        PsppireVarView       *var_view,
+                                        const gchar         *name)
+{
+#if DEBUGGING
+  g_print ("%s\n", __FUNCTION__);
+#endif
+  return GTK_WIDGET (var_view);
+}
+
+
+
+void
+glade_psppire_var_view_set_property (GladeWidgetAdaptor *adaptor,
+                                    GObject            *object,
+                                    const gchar        *id,
+                                    const GValue       *value)
+{
+#if DEBUGGING
+  g_print ("%s(%p) Type=\"%s\" Id=\"%s\"\n", __FUNCTION__, object,
+          G_OBJECT_TYPE_NAME( object ),
+          id);
+#endif
+
+  GWA_GET_CLASS (GTK_TYPE_WINDOW)->set_property (adaptor, object,
+                                                id, value);
+}
+
+
+GList *
+glade_psppire_var_view_get_children (GladeWidgetAdaptor  *adaptor,
+                                    PsppireVarView  *dv)
+{
+  GList *list = NULL;
+
+  g_return_val_if_fail (PSPPIRE_IS_VAR_VIEW (dv), NULL);
+
+  list = glade_util_container_get_all_children (GTK_CONTAINER (dv));
+
+  return list;
+}
index 77a720caabf69cc17a172ab2c0b1233b7baa9987..fef855106de4347ba324e59434e2e4dd94941b54 100644 (file)
@@ -584,6 +584,7 @@ CODE:
  struct file_handle *fh =
   fh_create_file (NULL, name, fh_default_properties () );
  struct sysfile_info *sfi = xmalloc (sizeof (*sfi));
+ dict_set_encoding (dict, "UTF-8");
  sfi->writer = sfm_open_writer (fh, dict, opts);
  sfi->dict = dict;
  sfi->opened = true;
index c6b059826f0c870b5082634a4351f9dd7b833dc1..fd2f5a5f5d579ae20f933248af74088524d15c43 100644 (file)
@@ -197,7 +197,7 @@ package PSPP::Var;
 =head3 new ($dict, $name, %input_fmt)
 
 Creates and returns a new variable in the dictionary C<dict>.  The 
-new variable will have the name C<name>.
+new variable will have the name C<name>.  C<name> must be a valid UTF8 string.
 The input format is set by the C<input_fmt> parameter 
 (See L</PSPP::Fmt>).
 By default, the write and print formats are the same as the input format.
@@ -226,7 +226,7 @@ sub new
 
 =head3 set_label ($label)
 
-Sets the variable label to C<label>.
+Sets the variable label to C<label>, which must be a valid UTF8 string.
 
 
 =cut
@@ -322,6 +322,7 @@ Removes all value labels from the variable.
 =head3 add_value_label ($key, $label)
 
 Adds the value label C<label> to the variable for the value C<key>.
+C<label> must be a valid UTF8 string.
 On error the subroutine returns zero.
 
 =head3 add_value_labels (@array)
@@ -348,7 +349,7 @@ sub add_value_labels
 
 =pod
 
-=head3 set_value_labels ($key, $value)
+=head3 set_value_labels ($key, $label)
 
 C<Set_value_labels> is identical to calling L</clear_value_labels>
 followed by L</add_value_labels>.
@@ -414,6 +415,7 @@ On error, undef is returned.
 Appends a case to the system file.
 C<Case> is an array of scalars, each of which are the values of 
 the variables in the dictionary corresponding to the system file.
+If the case contains strings, then the strings must be UTF8 encoded.
 The special value C<PSPP::SYSMIS> may be used to indicate that a value
 is system missing.
 If the array contains less elements than variables in the dictionary,
@@ -522,7 +524,7 @@ values retrieved from a reader.
 
 Returns a scalar containing a string representing C<value> formatted according 
 to the print format of C<variable>.
-In the most common ussage,  C<value> should be a value of C<variable>.
+In the most common usage,  C<value> should be a value of C<variable>.
 
 
 =head3 PSPP::value_is_missing ($value, $variable)
index 0b18ef80298d4cba7eeafa5b0413ba06c4840dd4..ab26aaca1180165706ad360ce572764344c68bed 100644 (file)
@@ -4,7 +4,7 @@ XGETTEXT=xgettext
 MSGMERGE=msgmerge
 MSGFMT=msgfmt
 
-POFILES=po/en_GB.po po/nl.po po/pt_BR.po
+POFILES=po/ca.po po/en_GB.po po/nl.po po/pt_BR.po
 
 POTFILE=po/$(DOMAIN).pot
 
diff --git a/po/ca.po b/po/ca.po
new file mode 100644 (file)
index 0000000..b63ced0
--- /dev/null
+++ b/po/ca.po
@@ -0,0 +1,6756 @@
+# Catalan messages for PSPS
+# Copyright (C) 2009 Free Software Foundation, Inc.
+# This file is distributed under the same licence as the pspp package.
+# Francisco J. Miguel Quesada <Miguel.Quesada@uab.cat>, 2009.
+# Palmira Payá Sanchez, 2009.
+# Javier Gómez Serrano, 2009.
+msgid ""
+msgstr ""
+"Project-Id-Version: pspp-0.7.2-pre1\n"
+"Report-Msgid-Bugs-To: pspp-dev@gnu.org\n"
+"POT-Creation-Date: 2009-09-08 21:57-0700\n"
+"PO-Revision-Date: 2009-12-18 14:50+0100\n"
+"Last-Translator: Francesc Josep Miguel Quesada <Miguel.Quesada@uab.cat>\n"
+"Language-Team: Catalan <ca@dodds.net>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=2; plural=(n != 1);\n"
+
+#: src/ui/gui/psppire-buttonbox.c:143
+msgid "Buttons"
+msgstr "Botons"
+
+#: src/ui/gui/psppire-buttonbox.c:144
+msgid "The mask that decides what buttons appear in the button box"
+msgstr "La màscara que decideix quins botons apareixen a la caixa de botons"
+
+#: src/ui/gui/psppire-buttonbox.c:273 src/ui/gui/psppire-buttonbox.c:435
+msgid "Continue"
+msgstr "Continuar"
+
+#: src/ui/gui/psppire-buttonbox.c:433
+msgid "OK"
+msgstr "OK"
+
+#: src/ui/gui/psppire-buttonbox.c:434
+msgid "Go To"
+msgstr "Anar a"
+
+#: src/ui/gui/psppire-buttonbox.c:436
+msgid "Cancel"
+msgstr "Cancel·lar"
+
+#: src/ui/gui/psppire-buttonbox.c:437
+msgid "Help"
+msgstr "Ajuda"
+
+#: src/ui/gui/psppire-buttonbox.c:438
+msgid "Reset"
+msgstr "Reiniciar"
+
+#: src/ui/gui/psppire-buttonbox.c:439
+msgid "Paste"
+msgstr "Enganxa"
+
+#: src/ui/gui/psppire-dictview.c:207
+msgid "The dictionary to be displayed by this widget"
+msgstr "El diccionari que es mostrarà amb aquest widget"
+
+#: src/ui/gui/psppire-dictview.c:214
+msgid "A predicate function"
+msgstr "Una funció de predicat"
+
+#: src/ui/gui/psppire-dictview.c:221
+msgid "How many things can be selected"
+msgstr "Quantes coses es poden seleccionar"
+
+#: src/ui/gui/psppire-dictview.c:491 src/language/dictionary/split-file.c:84
+#: src/language/dictionary/sys-file-info.c:169
+#: src/language/dictionary/sys-file-info.c:393
+#: src/language/dictionary/sys-file-info.c:725
+#: src/language/stats/descriptives.c:885
+#: src/language/data-io/data-parser.c:650
+#: src/language/data-io/data-parser.c:691 src/language/data-io/print.c:404
+msgid "Variable"
+msgstr "Variable"
+
+#: src/ui/gui/psppire-dictview.c:528
+msgid "Prefer variable labels"
+msgstr "Prefereixo les etiquetes de variable"
+
+#: src/data/any-reader.c:57
+#, c-format
+msgid "An error occurred while opening \"%s\": %s."
+msgstr "S'ha produït un error en obrir \"%s\": %s."
+
+#: src/data/any-reader.c:93
+#, c-format
+msgid "\"%s\" is not a system or portable file."
+msgstr "\"%s\" no és un arxiu del sistema o portàtil."
+
+#: src/data/any-reader.c:99 src/data/any-writer.c:63
+msgid "The inline file is not allowed here."
+msgstr "L'arxiu en línia no està permès aquí."
+
+#: src/data/calendar.c:81
+#, c-format
+msgid "Month %d is not in acceptable range of 0 to 13."
+msgstr "El mes %d no està a l'interval acceptable de 0 a 13."
+
+#: src/data/calendar.c:89
+#, c-format
+msgid "Day %d is not in acceptable range of 0 to 31."
+msgstr "El dia %d no hi és a l'interval acceptable de 0 a 31."
+
+#: src/data/calendar.c:96
+#, c-format
+msgid "Date %04d-%d-%d is before the earliest acceptable date of 1582-10-15."
+msgstr "La data %04d-%d-%d és anterior de la data acceptada més antiga, 1582-10-15."
+
+#: src/data/casereader-filter.c:221
+msgid "At least one case in the data read had a weight value that was user-missing, system-missing, zero, or negative.  These case(s) were ignored."
+msgstr "Almenys un cas a la lectura de dades tenia un valor de ponderació que és perdut d'usuari, de sistema, zero o negatiu. Aquest(s) cas(os) van ser ignorat(s)."
+
+#: src/data/data-in.c:274 src/data/data-in.c:464
+msgid "Field contents are not numeric."
+msgstr "El contingut del camp no és numèric."
+
+#: src/data/data-in.c:276 src/data/data-in.c:466
+msgid "Number followed by garbage."
+msgstr "Nombre seguit per escombraria."
+
+#: src/data/data-in.c:287
+msgid "Invalid numeric syntax."
+msgstr "Sintaxi numèrica no vàlida."
+
+#: src/data/data-in.c:296 src/data/data-in.c:479
+msgid "Too-large number set to system-missing."
+msgstr "Nombre massa gran definit com a perdut del sistema."
+
+#: src/data/data-in.c:301 src/data/data-in.c:484
+msgid "Too-small number set to zero."
+msgstr "Nombre massa petit definit com a zero. "
+
+#: src/data/data-in.c:327
+msgid "All characters in field must be digits."
+msgstr "Tots els caràcters del camp han de ser dígits."
+
+#: src/data/data-in.c:350
+msgid "Unrecognized character in field."
+msgstr "Caràcter no reconegut en el camp."
+
+#: src/data/data-in.c:374 src/data/data-in.c:650
+msgid "Field must have even length."
+msgstr "Camp ha de tenir l'amplada divisible per 2 (parell)."
+
+#: src/data/data-in.c:379 src/data/data-in.c:661
+msgid "Field must contain only hex digits."
+msgstr "Camp ha de contenir només dígits hexadecimals."
+
+#: src/data/data-in.c:700 src/data/data-in.c:747
+msgid "Syntax error in date field."
+msgstr "Error sintàctic en el camp de dades."
+
+#: src/data/data-in.c:716
+#, c-format
+msgid "Day (%ld) must be between 1 and 31."
+msgstr "Dia (%ld) ha de ser entre 1 i 31."
+
+#: src/data/data-in.c:763
+msgid "Delimiter expected between fields in date."
+msgstr "A la data s'espera un delimitador entre els camps."
+
+#: src/data/data-in.c:837
+msgid "Unrecognized month format.  Months may be specified as Arabic or Roman numerals or as at least 3 letters of their English names."
+msgstr "Format de mes no reconegut. Els mesos poden ser especificats com a números Aràbics o Romans, o com a mínim 3 lletres dels seus noms en Anglès."
+
+#: src/data/data-in.c:864
+#, c-format
+msgid "Year (%ld) must be between 1582 and 19999."
+msgstr "Any (%ld) ha de ser entre 1582 i 19999."
+
+#: src/data/data-in.c:876
+#, c-format
+msgid "Trailing garbage \"%.*s\" following date."
+msgstr "Escombraria  \"%.*s\" darrera de la data."
+
+#: src/data/data-in.c:892
+msgid "Julian day must have exactly three digits."
+msgstr "Dia Julià ha de tenir exactament tres dígits."
+
+#: src/data/data-in.c:897
+#, c-format
+msgid "Julian day (%ld) must be between 1 and 366."
+msgstr "Dia Julià (%ld) ha de ser entre 1 i 366."
+
+#: src/data/data-in.c:921
+#, c-format
+msgid "Quarter (%ld) must be between 1 and 4."
+msgstr "Trimestre (%ld) ha de ser entre 1 i 4."
+
+#: src/data/data-in.c:941
+#, c-format
+msgid "Week (%ld) must be between 1 and 53."
+msgstr "Setmana (%ld) ha de ser entre 1 i 53."
+
+#: src/data/data-in.c:954
+msgid "Delimiter expected between fields in time."
+msgstr "Delimitador esperat entre camps de temps."
+
+#: src/data/data-in.c:974
+#, c-format
+msgid "Minute (%ld) must be between 0 and 59."
+msgstr "Minut (%ld) ha de ser entre 0 i 59."
+
+#: src/data/data-in.c:1014
+msgid "Unrecognized weekday name.  At least the first two letters of an English weekday name must be specified."
+msgstr "Dia de la setmana no reconegut. Al menys s'han d'especificar les dues primeres lletres del nom en anglès."
+
+#: src/data/data-in.c:1152
+#, c-format
+msgid "`%c' expected in date field."
+msgstr "S'espera `%c' en un camp de dades."
+
+#: src/data/data-in.c:1193
+#, c-format
+msgid "column %d"
+msgstr "columna %d"
+
+#: src/data/data-in.c:1195
+#, c-format
+msgid "columns %d-%d"
+msgstr "columnes %d-%d"
+
+#: src/data/data-in.c:1199
+#, c-format
+msgid "%s field) "
+msgstr "%s camp)"
+
+#: src/data/data-out.c:481
+#, c-format
+msgid "Weekday number %f is not between 1 and 7."
+msgstr "Nombre de dia de la setmana%f no està entre 1 i 7."
+
+#: src/data/data-out.c:502
+#, c-format
+msgid "Month number %f is not between 1 and 12."
+msgstr "Nombre de mes %f no està entre 1 i 12."
+
+#: src/data/dict-class.c:52
+msgid "ordinary"
+msgstr "ordinàri/a"
+
+#: src/data/dict-class.c:54
+msgid "system"
+msgstr "sistema"
+
+#: src/data/dict-class.c:56
+msgid "scratch"
+msgstr "zero"
+
+#: src/data/dictionary.c:940
+msgid "At least one case in the data file had a weight value that was user-missing, system-missing, zero, or negative.  These case(s) were ignored."
+msgstr "Almenys un cas a l'arxiu de dades tenia un valor de ponderació que és perdut d'usuari, de sistema, zero o negatiu. Aquest(s) cas(os) van ser ignorat(s)."
+
+#: src/data/dictionary.c:1263
+#, c-format
+msgid "Truncating document line to %d bytes."
+msgstr "Línia de document tallada a  %d bytes."
+
+#: src/data/file-handle-def.c:462
+#, c-format
+msgid "Can't read from %s as a %s because it is already being read as a %s."
+msgstr "No es pot llegir de %s com una %s perquè ja està sent llegit com una %s."
+
+#: src/data/file-handle-def.c:466
+#, c-format
+msgid "Can't write to %s as a %s because it is already being written as a %s."
+msgstr "No es pot escriure en %s com un %s perquè ja està escrit com un %s."
+
+#: src/data/file-handle-def.c:473
+#, c-format
+msgid "Can't re-open %s as a %s."
+msgstr "No es pot tornar a obrir %s com a %s."
+
+#: src/data/file-name.c:131
+#, c-format
+msgid "searching for \"%s\" in path \"%s\""
+msgstr "cercant \"%s\" dins la carpeta \"%s\""
+
+#: src/data/file-name.c:146
+#, c-format
+msgid "...found \"%s\""
+msgstr "...\"%s\" trobat"
+
+#: src/data/file-name.c:153
+msgid "...not found"
+msgstr "...no es troba"
+
+#: src/data/file-name.c:243
+#, c-format
+msgid "Not opening pipe file `%s' because SAFER option set."
+msgstr "No obrir l'arxiu de transferència '%s' perquè l'opció SAFER està activada."
+
+#: src/data/format.c:235
+msgid "Input format"
+msgstr "Format d'entrada"
+
+#: src/data/format.c:235
+msgid "Output format"
+msgstr "Format de sortida"
+
+#: src/data/format.c:244
+#, c-format
+msgid "Format %s may not be used for input."
+msgstr "Format %s no pot ser utilitzat com entrada."
+
+#: src/data/format.c:251
+#, c-format
+msgid "%s specifies width %d, but %s requires an even width."
+msgstr "%s especifica amplada %d, però %s requereix una amplada parell."
+
+#: src/data/format.c:260
+#, c-format
+msgid "%s %s specifies width %d, but %s requires a width between %d and %d."
+msgstr "%s %s especifica amplada %d, però %s requereix una amplada entre %d i %d."
+
+#: src/data/format.c:269
+#, c-format
+msgid "%s %s specifies %d decimal place, but %s does not allow any decimals."
+msgid_plural "%s %s specifies %d decimal places, but %s does not allow any decimals."
+msgstr[0] "%s %s especifica %d lloc decimal, però %s no en permet cap."
+msgstr[1] "%s %s especifica %d llocs decimals, però %s no en permet cap."
+
+#: src/data/format.c:280
+#, c-format
+msgid "%s %s specifies %d decimal place, but the given width allows at most %d decimals."
+msgid_plural "%s %s specifies %d decimal places, but the given width allows at most %d decimals."
+msgstr[0] "%s %s especifica %d lloc decimal, però l'amplada donada permet com a molt %d decimals."
+msgstr[1] "%s %s especifica %d llocs decimals, però l'amplada donada permet com a molt %d decimals."
+
+#: src/data/format.c:287
+#, c-format
+msgid "%s %s specifies %d decimal place, but the given width does not allow for any decimals."
+msgid_plural "%s %s specifies %d decimal places, but the given width does not allow for any decimals."
+msgstr[0] "%s %s especifica %d lloc decimal, però l'amplada donada no en permet cap."
+msgstr[1] "%s %s especifica %d llocs decimals, però l'amplada donada no en permet cap."
+
+#: src/data/format.c:326
+#, c-format
+msgid "%s variables are not compatible with %s format %s."
+msgstr "Les variables %s no són compatibles amb %s format %s."
+
+#: src/data/format.c:327 src/data/sys-file-reader.c:734
+#: src/ui/gui/psppire-var-store.c:628 src/ui/gui/psppire.glade:2009
+#: src/ui/gui/var-sheet-dialogs.glade:139
+msgid "String"
+msgstr "Cadena"
+
+#: src/data/format.c:327 src/data/sys-file-reader.c:734
+#: src/ui/gui/psppire-var-store.c:621 src/ui/gui/psppire.glade:2084
+#: src/ui/gui/var-sheet-dialogs.glade:28
+msgid "Numeric"
+msgstr "Numèric"
+
+#: src/data/format.c:328 src/data/sys-file-reader.c:1299
+#: src/data/sys-file-reader.c:1301 src/language/xforms/recode.c:493
+#: src/language/xforms/recode.c:494 src/language/xforms/recode.c:506
+#: src/language/xforms/recode.c:507
+#: src/language/dictionary/apply-dictionary.c:78
+#: src/language/dictionary/apply-dictionary.c:79
+msgid "numeric"
+msgstr "numèric"
+
+#: src/data/format.c:328 src/data/sys-file-reader.c:1299
+#: src/data/sys-file-reader.c:1301 src/language/xforms/recode.c:493
+#: src/language/xforms/recode.c:494 src/language/xforms/recode.c:506
+#: src/language/xforms/recode.c:507
+#: src/language/dictionary/apply-dictionary.c:78
+#: src/language/dictionary/apply-dictionary.c:79
+msgid "string"
+msgstr "cadena"
+
+#: src/data/format.c:346
+#, c-format
+msgid "String variable with width %d is not compatible with format %s."
+msgstr "Variable de cadena amb amplada %d no és compatible amb el format %s."
+
+#: src/data/gnumeric-reader.c:36
+msgid "Support for Gnumeric files was not compiled into this installation of PSPP"
+msgstr "Suport per a arxius Gnumeric no va ser compilat en aquesta instal·lació de PSPP"
+
+#: src/data/gnumeric-reader.c:368
+#, c-format
+msgid "Error opening \"%s\" for reading as a Gnumeric file: %s."
+msgstr "Error en obrir \"%s\" per a la lectura com un arxiu Gnumeric: %s."
+
+#: src/data/gnumeric-reader.c:388
+#, c-format
+msgid "Invalid cell range \"%s\""
+msgstr "Interval de cel·la \"%s\" invàlid"
+
+#: src/data/gnumeric-reader.c:520 src/data/psql-reader.c:187
+#, c-format
+msgid "Cannot create variable name from %s"
+msgstr "No es pot crear el nom de la variable des de %s"
+
+#: src/data/gnumeric-reader.c:532
+#, c-format
+msgid "Selected sheet or range of spreadsheet \"%s\" is empty."
+msgstr "El full o l'interval de fulls de càlcul seleccionats \"%s\" és buit."
+
+#: src/data/make-file.c:64
+#, c-format
+msgid "%s: Creating temporary file: %s."
+msgstr "%s: Creant arxiu temporal: %s"
+
+#: src/data/make-file.c:106
+#, c-format
+msgid "%s: Creating file: %s."
+msgstr "%s: Creant arxiu: %s"
+
+#: src/data/make-file.c:144
+#, c-format
+msgid "Opening %s for writing: %s."
+msgstr "Obrint %s per a escriure: %s."
+
+#: src/data/make-file.c:153
+#, c-format
+msgid "Opening stream for %s: %s."
+msgstr "Obrint flux per a %s: %s."
+
+#: src/data/make-file.c:182
+#, c-format
+msgid "Creating temporary file to replace %s: %s."
+msgstr "Creant arxiu temporal per a substituir %s: %s."
+
+#: src/data/make-file.c:193
+#, c-format
+msgid "Creating temporary file %s: %s."
+msgstr "Creant arxiu temporal %s: %s."
+
+#: src/data/make-file.c:205
+#, c-format
+msgid "Opening stream for temporary file %s: %s."
+msgstr "Obrint flux per a l'arxiu temporal %s: %s."
+
+#: src/data/make-file.c:246
+#, c-format
+msgid "Replacing %s by %s: %s."
+msgstr "Substituint %s per %s: %s."
+
+#: src/data/make-file.c:274
+#, c-format
+msgid "Removing %s: %s."
+msgstr "Eliminant %s: %s."
+
+#: src/data/por-file-reader.c:99
+#, c-format
+msgid "portable file %s corrupt at offset 0x%lx: "
+msgstr "arxiu portàtil %s corromput a la posició 0x%lx: "
+
+#: src/data/por-file-reader.c:128
+#, c-format
+msgid "reading portable file %s at offset 0x%lx: "
+msgstr "llegint l'arxiu portàtil %s en la posició 0x%lx: "
+
+#: src/data/por-file-reader.c:156
+#, c-format
+msgid "Error closing portable file \"%s\": %s."
+msgstr "Error en tancar l'arxiu portàtil \"%s\": %s."
+
+#: src/data/por-file-reader.c:208
+msgid "unexpected end of file"
+msgstr "fi d'arxiu inesperat"
+
+#. TRANSLATORS: this fragment will be interpolated into
+#. messages in fh_lock() that identify types of files.
+#: src/data/por-file-reader.c:267 src/data/por-file-writer.c:149
+msgid "portable file"
+msgstr "arxiu portàtil"
+
+#: src/data/por-file-reader.c:275
+#, c-format
+msgid "An error occurred while opening \"%s\" for reading as a portable file: %s."
+msgstr "Error en obrir \"%s\" per a la lectura com a arxiu portàtil: %s."
+
+#: src/data/por-file-reader.c:296
+msgid "Data record expected."
+msgstr "Registre de dades esperat."
+
+#: src/data/por-file-reader.c:378
+msgid "Number expected."
+msgstr "Nombre esperat."
+
+#: src/data/por-file-reader.c:406
+msgid "Missing numeric terminator."
+msgstr "Manca de terminació numèrica."
+
+#: src/data/por-file-reader.c:429
+msgid "Invalid integer."
+msgstr "Nombre enter invàlid."
+
+#: src/data/por-file-reader.c:440 src/data/por-file-reader.c:460
+#, c-format
+msgid "Bad string length %d."
+msgstr "Longitud de cadena %d invàlida."
+
+#: src/data/por-file-reader.c:523
+#, c-format
+msgid "%s: Not a portable file."
+msgstr "%s: No és un arxiu portàtil."
+
+#: src/data/por-file-reader.c:540
+#, c-format
+msgid "Unrecognized version code `%c'."
+msgstr "Codi de versió `%c' no reconegut."
+
+#: src/data/por-file-reader.c:549
+#, c-format
+msgid "Bad date string length %zu."
+msgstr "Longitud de cadena de dades %zu invàlida."
+
+#: src/data/por-file-reader.c:551
+#, c-format
+msgid "Bad time string length %zu."
+msgstr "Longitud de cadena de temps %zu invàlida."
+
+#: src/data/por-file-reader.c:593
+#, c-format
+msgid "%s: Bad format specifier byte (%d).  Variable will be assigned a default format."
+msgstr "%s: Byte especificador de format invàlid (%d). S'assignarà el format predeterminat a la variable."
+
+#: src/data/por-file-reader.c:614
+#, c-format
+msgid "Numeric variable %s has invalid format specifier %s."
+msgstr "La variable numèrica %s té una especificació de format invàlida %s."
+
+#: src/data/por-file-reader.c:618
+#, c-format
+msgid "String variable %s with width %d has invalid format specifier %s."
+msgstr "La variable en cadena %s amb longitud %d té una especificació de format invàlida %s."
+
+#: src/data/por-file-reader.c:642
+msgid "Expected variable count record."
+msgstr "Registre de recompte de variables esperat."
+
+#: src/data/por-file-reader.c:646
+#, c-format
+msgid "Invalid number of variables %d."
+msgstr "Número invàlid de variables: %d."
+
+#: src/data/por-file-reader.c:655
+#, c-format
+msgid "Weight variable name (%s) truncated."
+msgstr "Nom de la variable ponderada (%s) truncat."
+
+#: src/data/por-file-reader.c:670
+msgid "Expected variable record."
+msgstr "Registre de variable esperat."
+
+#: src/data/por-file-reader.c:674
+#, c-format
+msgid "Invalid variable width %d."
+msgstr "Amplada de la variable invàlida %d."
+
+#: src/data/por-file-reader.c:681
+#, c-format
+msgid "Invalid variable name `%s' in position %d."
+msgstr "Nom de la variable invàlid `%s' en la posició %d."
+
+#: src/data/por-file-reader.c:685 src/data/sys-file-reader.c:592
+#, c-format
+msgid "Bad width %d for variable %s."
+msgstr "Amplada %d incorrecte per a la variable %s."
+
+#: src/data/por-file-reader.c:700
+#, c-format
+msgid "Duplicate variable name %s in position %d."
+msgstr "Nom de la variable %s duplicat en la posició %d."
+
+#: src/data/por-file-reader.c:701
+#, c-format
+msgid "Duplicate variable name %s in position %d renamed to %s."
+msgstr "Nom de la variable %s duplicat en la posició %d s'ha reanomenat a %s."
+
+#: src/data/por-file-reader.c:750
+#, c-format
+msgid "Weighting variable %s not present in dictionary."
+msgstr "La variable de ponderació %s no està al diccionari."
+
+#: src/data/por-file-reader.c:794
+#, c-format
+msgid "Unknown variable %s while parsing value labels."
+msgstr "Variable %s desconeguda mentre s'analitzaven les etiquetes de valor."
+
+#: src/data/por-file-reader.c:797
+#, c-format
+msgid "Cannot assign value labels to %s and %s, which have different variable types."
+msgstr "No es pot assignar etiquetes de valor a %s i %s, que tenen diferent tipus de variables."
+
+#: src/data/por-file-writer.c:141
+#, c-format
+msgid "Invalid decimal digits count %d.  Treating as %d."
+msgstr "Recompte de dígits decimals %d invàlid. Es tractarà com a %d."
+
+#: src/data/por-file-writer.c:161
+#, c-format
+msgid "Error opening \"%s\" for writing as a portable file: %s."
+msgstr "Error al obrir \"%s\" per a escriure com a arxiu  portàtil: %s."
+
+#: src/data/por-file-writer.c:506
+#, c-format
+msgid "An I/O error occurred writing portable file \"%s\"."
+msgstr "Error I/O en escriure l'arxiu portàtil \"%s\"."
+
+#: src/data/psql-reader.c:46
+msgid "Support for reading postgres databases was not compiled into this installation of PSPP"
+msgstr "El suport per a la lectura de les bases de dades postgres no va ser compilat en aquesta instal·lació de PSPP"
+
+#: src/data/psql-reader.c:242
+msgid "Memory error whilst opening psql source"
+msgstr "Error de memòria al obrir la font psql"
+
+#: src/data/psql-reader.c:248
+#, c-format
+msgid "Error opening psql source: %s."
+msgstr "Error obrint la font psql: %s."
+
+#: src/data/psql-reader.c:263
+#, c-format
+msgid "Postgres server is version %s. Reading from versions earlier than 8.0 is not supported."
+msgstr "La versió del servidor Postgres és la %s. No es possible la lectura des de versions anteriors a la 8.0."
+
+#: src/data/psql-reader.c:283
+msgid "Connection is unencrypted, but unencrypted connections have not been permitted."
+msgstr "La connexió no està xifrada, però les connexions sense xifrar no estan permeses."
+
+#: src/data/psql-reader.c:322 src/data/psql-reader.c:347
+#: src/data/psql-reader.c:357
+#, c-format
+msgid "Error from psql source: %s."
+msgstr "Error des de la font psql: %s."
+
+#: src/data/psql-reader.c:452
+#, c-format
+msgid "Unsupported OID %d.  SYSMIS values will be inserted."
+msgstr "OID %d no admès. Valors SYSMIS seran inserits."
+
+#: src/data/scratch-reader.c:54
+#, c-format
+msgid "Scratch file handle %s has not yet been written, using SAVE or another procedure, so it cannot yet be used for reading."
+msgstr "El manipulador de l'arxius de treball %s encara no s'ha escrit, utilitzant SAVE o altre procediment, de manera que encara no es pot llegir."
+
+#. TRANSLATORS: this fragment will be interpolated into
+#. messages in fh_lock() that identify types of files.
+#: src/data/scratch-writer.c:66 src/language/data-io/file-handle.q:181
+msgid "scratch file"
+msgstr "arxiu de treball"
+
+#: src/data/settings.c:686
+#, c-format
+msgid "%s: Custom currency string `%s' does not contain exactly three periods or commas (or it contains both)."
+msgstr "%s: Cadena de moneda personalitzada '%s' no conté exactament tres punts o comes (o els conté ambdós)."
+
+#: src/data/short-names.c:66
+msgid "Variable suffix too large."
+msgstr "Sufix de la variable massa gran."
+
+#: src/data/sys-file-reader.c:213
+#, c-format
+msgid "Recoded variable name duplicates an existing `%s' within system file."
+msgstr "El nom de la variable recodificada duplica `%s' existent dins de l'arxiu de sistema."
+
+#. TRANSLATORS: this fragment will be interpolated into
+#. messages in fh_lock() that identify types of files.
+#: src/data/sys-file-reader.c:276 src/data/sys-file-writer.c:203
+msgid "system file"
+msgstr "arxiu de sistema"
+
+#: src/data/sys-file-reader.c:283
+#, c-format
+msgid "Error opening \"%s\" for reading as a system file: %s."
+msgstr "Error al obrir \"%s\" per a la lectura com arxiu de sistema: %s."
+
+#: src/data/sys-file-reader.c:322 tests/dissect-sysfile.c:136
+msgid "Misplaced type 4 record."
+msgstr "Registre de tipus 4 fora de lloc."
+
+#: src/data/sys-file-reader.c:333 tests/dissect-sysfile.c:147
+#, c-format
+msgid "Unrecognized record type %d."
+msgstr "Tipus de registre %d no reconegut."
+
+#: src/data/sys-file-reader.c:374
+#, c-format
+msgid "File header claims %d variable positions but %d were read from file."
+msgstr "Capçalera de l'arxiu requereix %d posicions de variable, però s'han llegit %d des de l'arxiu."
+
+#: src/data/sys-file-reader.c:414
+#, c-format
+msgid "Error closing system file \"%s\": %s."
+msgstr "Error al tancar l'arxiu de sistema \"%s\": %s."
+
+#: src/data/sys-file-reader.c:479 src/data/sys-file-reader.c:489
+#: tests/dissect-sysfile.c:181 tests/dissect-sysfile.c:191
+msgid "This is not an SPSS system file."
+msgstr "Això no és un arxiu de sistema de SPSS."
+
+#: src/data/sys-file-reader.c:511 tests/dissect-sysfile.c:204
+msgid "Compression bias is not the usual value of 100, or system file uses unrecognized floating-point format."
+msgstr "El biaix de compressió no és el valor habitual de 100, o l'arxiu de sistema utilitza un format de punt flotant no reconegut."
+
+#: src/data/sys-file-reader.c:588
+#, c-format
+msgid "Invalid variable name `%s'."
+msgstr "Nom de variable '%s' no vàlid."
+
+#: src/data/sys-file-reader.c:596
+#, c-format
+msgid "Duplicate variable name `%s' within system file."
+msgstr "Nom de variable '%s' duplicat dins de l'arxiu de sistema."
+
+#: src/data/sys-file-reader.c:604 tests/dissect-sysfile.c:328
+msgid "Variable label indicator field is not 0 or 1."
+msgstr "Camp indicador d'etiqueta de variable no és 0 o 1."
+
+#: src/data/sys-file-reader.c:612 tests/dissect-sysfile.c:337
+#, c-format
+msgid "Variable %s has label of invalid length %zu."
+msgstr "Variable %s té una etiqueta de longitud no vàlida %zu."
+
+#: src/data/sys-file-reader.c:631 tests/dissect-sysfile.c:355
+msgid "Numeric missing value indicator field is not -3, -2, 0, 1, 2, or 3."
+msgstr "Camp d'indicador de valors perduts numèrics  no és -3, -2, 0, 1, 2 o 3."
+
+#: src/data/sys-file-reader.c:649 tests/dissect-sysfile.c:370
+msgid "String missing value indicator field is not 0, 1, 2, or 3."
+msgstr "Camp d'indicador de valors perduts de cadena no és 0, 1, 2 o 3."
+
+#: src/data/sys-file-reader.c:681
+msgid "Missing string continuation record."
+msgstr "Manca de registre de continuació de cadena."
+
+#: src/data/sys-file-reader.c:715
+#, c-format
+msgid "Unknown variable format %<PRIu8>."
+msgstr "Format de variable %<PRIu8> desconegut."
+
+#: src/data/sys-file-reader.c:733
+#, c-format
+msgid "%s variable %s has invalid %s format %s."
+msgstr "%s variable %s amb un format %s no vàlid %s."
+
+#: src/data/sys-file-reader.c:736
+msgid "print"
+msgstr "imprimir"
+
+#: src/data/sys-file-reader.c:736
+msgid "write"
+msgstr "escriure"
+
+#: src/data/sys-file-reader.c:740
+msgid "Suppressing further invalid format warnings."
+msgstr "Es desactiven les alertes posteriors de format no vàlid."
+
+#: src/data/sys-file-reader.c:758
+msgid "Weighting variable must be numeric."
+msgstr "Variable de ponderació ha de ser numèrica."
+
+#: src/data/sys-file-reader.c:772
+msgid "Multiple type 6 (document) records."
+msgstr "Múltiples registres de tipus 6 (document)."
+
+#: src/data/sys-file-reader.c:776
+#, c-format
+msgid "Number of document lines (%d) must be greater than 0."
+msgstr "Nombre de línies de document (%d) ha de ser major que 0."
+
+#: src/data/sys-file-reader.c:784
+msgid "Document line contains null byte."
+msgstr "Una línia del document conté un byte nul."
+
+#: src/data/sys-file-reader.c:874
+#, c-format
+msgid "Unrecognized record type 7, subtype %d.  Please send a copy of this file, and the syntax which created it to %s"
+msgstr "Registre de tipus 7, subtipus %d , no reconegut. Si us plau envieu una còpia d'aquest arxiu, així com de la sintaxi que el va crear a %s"
+
+#: src/data/sys-file-reader.c:901 tests/dissect-sysfile.c:550
+#, c-format
+msgid "Bad size (%zu) or count (%zu) field on record type 7, subtype 3."
+msgstr "Camp de longitud (%zu) o quantitat (%zu) invàlids en el registre tipus 7, subtipus 3."
+
+#: src/data/sys-file-reader.c:921
+#, c-format
+msgid "Floating-point representation indicated by system file (%d) differs from expected (%d)."
+msgstr "Representació del punt flotant indicat per l'arxiu de sistema (%d) difereix de l'esperat (%d)."
+
+#: src/data/sys-file-reader.c:934
+msgid "little-endian"
+msgstr "little-endian"
+
+#: src/data/sys-file-reader.c:934
+msgid "big-endian"
+msgstr "big-endian"
+
+#: src/data/sys-file-reader.c:935
+#, c-format
+msgid "Integer format indicated by system file (%s) differs from expected (%s)."
+msgstr "Format enter indicat per l'arxiu de sistema  (%s) difereix de l'esperat (%s)."
+
+#: src/data/sys-file-reader.c:992 tests/dissect-sysfile.c:581
+#, c-format
+msgid "Bad size (%zu) or count (%zu) on extension 4."
+msgstr "Longitud (%zu) o quantitat (%zu) de l'extensió 4 no vàlid."
+
+#: src/data/sys-file-reader.c:996 src/data/sys-file-reader.c:1000
+#: src/data/sys-file-reader.c:1004 tests/dissect-sysfile.c:586
+#: tests/dissect-sysfile.c:591 tests/dissect-sysfile.c:596
+#, c-format
+msgid "File specifies unexpected value %g as %s."
+msgstr "L'arxiu especifica un valor inesperat %g com a %s."
+
+#: src/data/sys-file-reader.c:1021 tests/dissect-sysfile.c:611
+#, c-format
+msgid "Bad size %zu on extension 11."
+msgstr "Longitud no vàlid %zu en l'extensió 11."
+
+#: src/data/sys-file-reader.c:1033 tests/dissect-sysfile.c:623
+#, c-format
+msgid "Extension 11 has bad count %zu (for %zu variables)."
+msgstr "Extensió 11 té un recompte invàlid %zu (per a %zu variables)."
+
+#: src/data/sys-file-reader.c:1054
+#, c-format
+msgid "Invalid variable display parameters for variable %zu (%s).  Default parameters substituted."
+msgstr "Paràmetres de visualització de variable no vàlids per a la variable %zu (%s). Substitució pels paràmetres per defecte."
+
+#: src/data/sys-file-reader.c:1098
+#, c-format
+msgid "Long variable mapping from %s to invalid variable name `%s'."
+msgstr "Identificació de variable llarga des de %s cap a un nom de variable invàlid  '%s'."
+
+#: src/data/sys-file-reader.c:1108
+#, c-format
+msgid "Duplicate long variable name `%s' within system file."
+msgstr "Nom de la variable llarga '%s' duplicat dins de l'arxiu de sistema."
+
+#: src/data/sys-file-reader.c:1161
+#, c-format
+msgid "%s listed as string of invalid length %s in very length string record."
+msgstr "%s figura com a cadena de longitud no vàlida %s en un registre de cadena molt llarg."
+
+#: src/data/sys-file-reader.c:1171
+#, c-format
+msgid "%s listed in very long string record with width %s, which requires only one segment."
+msgstr "%s figura en el registre de cadena molt llarga amb longitud %s, que requereix només un segment."
+
+#: src/data/sys-file-reader.c:1177
+#, c-format
+msgid "Very long string %s overflows dictionary."
+msgstr "Cadena molt llarga %s desborda el diccionari."
+
+#: src/data/sys-file-reader.c:1191
+#, c-format
+msgid "Very long string with width %ld has segment %d of width %d (expected %d)"
+msgstr "Cadena molt llarga amb una longitud de %ld té un segment %d de longitud %d (s'espera %d)"
+
+#: src/data/sys-file-reader.c:1237
+#, c-format
+msgid "Invalid number of labels: %d.  Ignoring labels."
+msgstr "Nombre d'etiquetes invàlid: %d. Ignorant etiquetes."
+
+#: src/data/sys-file-reader.c:1268 tests/dissect-sysfile.c:426
+msgid "Variable index record (type 4) does not immediately follow value label record (type 3) as it should."
+msgstr "Registre d'índex de variable (tipus 4) no és seguit immediatament pel registre d'etiquetes de valors (tipus 3) com hauria."
+
+#: src/data/sys-file-reader.c:1275
+#, c-format
+msgid "Number of variables associated with a value label (%d) is not between 1 and the number of variables (%zu)."
+msgstr "Nombre de variables associades amb una etiqueta de valors (%d) no està entre 1 i el nombre de variables (%zu)."
+
+#: src/data/sys-file-reader.c:1286
+#, c-format
+msgid "Value labels may not be added to long string variables (e.g. %s) using records types 3 and 4."
+msgstr "No es pot afegir etiquetes dels valors a les variables de cadena llarga (e.g. %s) utilitzant els tipus de registres 3 i 4."
+
+#: src/data/sys-file-reader.c:1295
+#, c-format
+msgid "Variables associated with value label are not all of identical type.  Variable %s is %s, but variable %s is %s."
+msgstr "Les variables associades amb etiqueta de valors no són totes del mateix tipus.  La variable %s és %s, però la variable %s és %s."
+
+#: src/data/sys-file-reader.c:1329
+#, c-format
+msgid "Duplicate value label for %g on %s."
+msgstr "Etiqueta de valors duplicats per %g en %s."
+
+#: src/data/sys-file-reader.c:1332 src/data/sys-file-reader.c:1513
+#, c-format
+msgid "Duplicate value label for \"%.*s\" on %s."
+msgstr "Etiqueta de valor duplicat per a \"%.*s\" a %s."
+
+#: src/data/sys-file-reader.c:1370
+#, c-format
+msgid "Error parsing attribute value %s[%d]"
+msgstr "Error en analitzar el valor de l'atribut %s[%d]"
+
+#: src/data/sys-file-reader.c:1384
+#, c-format
+msgid "Attribute value %s[%d] is not quoted: %s"
+msgstr "El valor de l'atribut %s[%d] no esta entre cometes: %s"
+
+#: src/data/sys-file-reader.c:1447 tests/dissect-sysfile.c:762
+#, c-format
+msgid "Variable name length in long string value label record (%d) exceeds %d-byte limit."
+msgstr "La longitud del nom de la variable al registre de l'etiqueta del valor de cadena llarga (%d) supera el límit %d-byte."
+
+#: src/data/sys-file-reader.c:1457
+#, c-format
+msgid "Ignoring long string value record for unknown variable %s."
+msgstr "Ignorant el registre del valor de cadena llarga per a la variable desconeguda %s."
+
+#: src/data/sys-file-reader.c:1464
+#, c-format
+msgid "Ignoring long string value record for numeric variable %s."
+msgstr "Ignorant el registre del valor de cadena llarga per a la variable numèrica %s."
+
+#: src/data/sys-file-reader.c:1471
+#, c-format
+msgid "Ignoring long string value record for variable %s because the record's width (%d) does not match the variable's width (%d)"
+msgstr "Ignorant el registre del valor de cadena llarga %s ja que l'amplada del registre (%d) no coincideix amb l'amplada de la variable (%d)"
+
+#: src/data/sys-file-reader.c:1493
+#, c-format
+msgid "Ignoring long string value %zu for variable %s, with width %d, that has bad value width %zu."
+msgstr "Ignorant el valor de cadena llarga %zu per a la variable %s, d'amplada %d, que té una amplada de valor incorrecta %zu."
+
+#: src/data/sys-file-reader.c:1608
+msgid "File ends in partial case."
+msgstr "L'arxiu acaba en un cas parcial."
+
+#: src/data/sys-file-reader.c:1616
+#, c-format
+msgid "Error reading case from file %s."
+msgstr "Error llegint un cas de l'arxiu %s."
+
+#: src/data/sys-file-reader.c:1713 src/data/sys-file-reader.c:1749
+msgid "Compressed data is corrupt."
+msgstr "Les dades comprimides estan malmeses."
+
+#: src/data/sys-file-reader.c:1836
+#, c-format
+msgid "Variable index %d not in valid range 1...%d."
+msgstr "Índex de la variable %d no en l'interval vàlid de 1...%d."
+
+#: src/data/sys-file-reader.c:1841
+#, c-format
+msgid "Variable index %d refers to long string continuation."
+msgstr "Índex de la variable %d es refereix a una continuació de cadena llarga."
+
+#: src/data/sys-file-reader.c:1909
+#, c-format
+msgid "Suppressed %d additional related warnings."
+msgstr "Suprimides %d advertències addicionals."
+
+#: src/data/sys-file-reader.c:1950
+#, c-format
+msgid "Variable map refers to unknown variable %s."
+msgstr "Mapa de la variable es refereix a una variable desconeguda %s."
+
+#: src/data/sys-file-reader.c:2058 tests/dissect-sysfile.c:959
+#, c-format
+msgid "System error: %s."
+msgstr "Error de sistema: %s."
+
+#: src/data/sys-file-reader.c:2060 tests/dissect-sysfile.c:961
+msgid "Unexpected end of file."
+msgstr "Final d'arxiu inesperat."
+
+#: src/data/sys-file-writer.c:176
+#, c-format
+msgid "Unknown system file version %d. Treating as version %d."
+msgstr "Versió d'arxiu de sistema %d desconeguda. Es tractarà com a versió %d."
+
+#: src/data/sys-file-writer.c:215
+#, c-format
+msgid "Error opening \"%s\" for writing as a system file: %s."
+msgstr "Error en obrir \"%s\" per gravar com arxiu de sistema: %s."
+
+#: src/data/sys-file-writer.c:923
+#, c-format
+msgid "An I/O error occurred writing system file \"%s\"."
+msgstr "S'ha produït un error de E/S al desar l'arxiu de sistema \"%s\"."
+
+#: src/data/variable.c:242
+#, c-format
+msgid "Character `%c' (in %s) may not appear as the first character in a variable name."
+msgstr "Caràcter '%c' (em %s) no pot aparèixer com el primer caràcter en un nom de variable."
+
+#: src/data/variable.c:254
+#, c-format
+msgid "Character `%c' (in %s) may not appear in a variable name."
+msgstr "Caràcter '%c' (em %s) no pot aparèixer en un nom de variable."
+
+#: src/data/variable.c:282
+msgid "Variable name cannot be empty string."
+msgstr "El nom de la variable no pot ser una cadena buida. "
+
+#: src/data/variable.c:288
+#, c-format
+msgid "Variable name %s exceeds %d-character limit."
+msgstr "El nom de la variable %s supera el límit de %d caràcters."
+
+#: src/data/variable.c:296
+#, c-format
+msgid "`%s' may not be used as a variable name because it is a reserved word."
+msgstr "'%s' no pot ser utilitzat com a nom de variable perquè es una paraula reservada."
+
+#: src/language/syntax-file.c:88
+#, c-format
+msgid "opening \"%s\" as syntax file"
+msgstr "obrint \"%s\" com a arxiu de sintaxi"
+
+#: src/language/syntax-file.c:93
+#, c-format
+msgid "Opening `%s': %s."
+msgstr "Obrint `%s': %s."
+
+#: src/language/syntax-file.c:107
+#, c-format
+msgid "Reading `%s': %s."
+msgstr "Llegint `%s': %s."
+
+#: src/language/syntax-file.c:127
+#, c-format
+msgid "Closing `%s': %s."
+msgstr "Tancant `%s': %s."
+
+#: src/language/command.c:208 src/language/expressions/parse.c:1267
+#, c-format
+msgid "%s is not yet implemented."
+msgstr "%s encara no està implementat."
+
+#: src/language/command.c:214
+#, c-format
+msgid "%s may be used only in testing mode."
+msgstr "%s només pot ser utilitzat en el mode de prova."
+
+#: src/language/command.c:220
+#, c-format
+msgid "%s may be used only in enhanced syntax mode."
+msgstr "%s només pot ser utilitzat en el mode de sintaxi ampliat."
+
+#: src/language/command.c:248
+msgid "Error encountered while ERROR=STOP is effective."
+msgstr "Detectat un error mentre està actiu ERROR=STOP."
+
+#: src/language/command.c:489
+msgid "expecting command name"
+msgstr "esperant nom de comando"
+
+#: src/language/command.c:503
+#, c-format
+msgid "Unknown command %s."
+msgstr "Comando %s desconegut."
+
+#: src/language/command.c:628
+#, c-format
+msgid "%s is allowed only before the active file has been defined."
+msgstr "%s només es permet abans que l'arxiu actiu s'ha definit."
+
+#: src/language/command.c:632
+#, c-format
+msgid "%s is allowed only after the active file has been defined."
+msgstr "%s només es permet després que l'arxiu actiu s'ha definit."
+
+#: src/language/command.c:636
+#, c-format
+msgid "%s is allowed only inside INPUT PROGRAM."
+msgstr "%s només es permet dins de INPUT PROGRAM."
+
+#: src/language/command.c:640
+#, c-format
+msgid "%s is allowed only inside FILE TYPE."
+msgstr "%s només es permet dins de FILE TYPE."
+
+#: src/language/command.c:647
+#, c-format
+msgid "%s is allowed only before the active file has been defined or inside INPUT PROGRAM."
+msgstr "%s només es permet abans que l'arxiu actiu s'ha definit o dins de INPUT PROGRAM."
+
+#: src/language/command.c:651
+#, c-format
+msgid "%s is allowed only before the active file has been defined or inside FILE TYPE."
+msgstr "%s només es permet abans que l'arxiu actiu s'ha definit o dins de FILE TYPE."
+
+#: src/language/command.c:655
+#, c-format
+msgid "%s is allowed only after the active file has been defined or inside INPUT PROGRAM."
+msgstr "%s només es permet després que l'arxiu actiu s'ha definit, o dins de INPUT PROGRAM."
+
+#: src/language/command.c:659
+#, c-format
+msgid "%s is allowed only after the active file has been defined or inside FILE TYPE."
+msgstr "%s només es permet després que l'arxiu actiu s'ha definit, o dins de FILE TYPE."
+
+#: src/language/command.c:663
+#, c-format
+msgid "%s is allowed only inside INPUT PROGRAM or inside FILE TYPE."
+msgstr "%s només es permet dins de INPUT PROGRAM o FILE TYPE."
+
+#: src/language/command.c:669
+#, c-format
+msgid "%s is allowed only after the active file has been defined, inside INPUT PROGRAM, or inside FILE TYPE."
+msgstr "%s només es permet després que l'arxiu actiu s'ha definit, dins de INPUT PROGRAM, o FILE TYPE."
+
+#: src/language/command.c:674
+#, c-format
+msgid "%s is allowed only before the active file has been defined, inside INPUT PROGRAM, or inside FILE TYPE."
+msgstr "%s només es permet abans que l'arxiu actiu s'ha definit, dins de INPUT PROGRAM, o FILE TYPE."
+
+#: src/language/command.c:692
+#, c-format
+msgid "%s is not allowed inside INPUT PROGRAM."
+msgstr "%s no es permet dins de INPUT PROGRAM."
+
+#: src/language/command.c:694
+#, c-format
+msgid "%s is not allowed inside FILE TYPE."
+msgstr "%s no es permet dins de FILE TYPE."
+
+#: src/language/command.c:773 src/language/command.c:881
+#: src/language/utilities/permissions.c:98
+msgid "This command not allowed when the SAFER option is set."
+msgstr "Aquesta ordre no està permesa quan l'opció SAFER està activa."
+
+#: src/language/command.c:785
+#, c-format
+msgid "Error removing `%s': %s."
+msgstr "Error d'eliminació de '%s' : %s."
+
+#: src/language/command.c:835
+#, c-format
+msgid "Couldn't fork: %s."
+msgstr "Impossible crear forquilla: %s."
+
+#: src/language/command.c:850
+msgid "Interactive shell not supported on this platform."
+msgstr "Interpret d'ordres interactiu no disponible per a aquesta plataforma."
+
+#: src/language/command.c:862
+msgid "Command shell not supported on this platform."
+msgstr "Intèrpret d'ordres no disponible per aquesta plataforma."
+
+#: src/language/command.c:868
+#, c-format
+msgid "Error executing command: %s."
+msgstr "Error d'execució del comandament: %s."
+
+#: src/language/lexer/lexer.c:283
+#, c-format
+msgid "%s does not form a valid number."
+msgstr "%s no constitueix un número vàlid."
+
+#: src/language/lexer/lexer.c:389
+#, c-format
+msgid "Bad character in input: `%s'."
+msgstr "Caràcter erroni a l'entrada: `%s'."
+
+#: src/language/lexer/lexer.c:426
+#, c-format
+msgid "Subcommand %s may only be specified once."
+msgstr "Subcomando %s només es pot especificar un cop."
+
+#: src/language/lexer/lexer.c:434
+#, c-format
+msgid "missing required subcommand %s"
+msgstr "subordre requerida %s absent"
+
+#: src/language/lexer/lexer.c:463
+#, c-format
+msgid "Syntax error %s at %s."
+msgstr "Error de sintaxi %s a %s."
+
+#: src/language/lexer/lexer.c:466
+#, c-format
+msgid "Syntax error at %s."
+msgstr "Error de sintaxi a %s."
+
+#: src/language/lexer/lexer.c:478 src/language/xforms/select-if.c:60
+#: src/language/stats/autorecode.c:154 src/language/data-io/print-space.c:73
+msgid "expecting end of command"
+msgstr "s'espera el final de l'ordre"
+
+#: src/language/lexer/lexer.c:600 src/language/lexer/lexer.c:617
+#, c-format
+msgid "expecting `%s'"
+msgstr "esperant '%s'"
+
+#: src/language/lexer/lexer.c:631
+msgid "expecting string"
+msgstr "esperant cadena"
+
+#: src/language/lexer/lexer.c:645
+msgid "expecting integer"
+msgstr "esperant sencer"
+
+#: src/language/lexer/lexer.c:658
+msgid "expecting number"
+msgstr "esperant número"
+
+#: src/language/lexer/lexer.c:670
+msgid "expecting identifier"
+msgstr "esperant identificador"
+
+#: src/language/lexer/lexer.c:1064
+msgid "binary"
+msgstr "binari"
+
+#: src/language/lexer/lexer.c:1069
+msgid "octal"
+msgstr "octal"
+
+#: src/language/lexer/lexer.c:1074
+msgid "hex"
+msgstr "hexadecimal"
+
+#: src/language/lexer/lexer.c:1084
+#, c-format
+msgid "String of %s digits has %zu characters, which is not a multiple of %d."
+msgstr "La cadena de %s dígits té %zu caràcters, que no és un múltiple de %d."
+
+#: src/language/lexer/lexer.c:1113
+#, c-format
+msgid "`%c' is not a valid %s digit."
+msgstr "'%c' no és un dígit %s vàlid."
+
+#: src/language/lexer/lexer.c:1147
+msgid "Unterminated string constant."
+msgstr "Constant de cadena inacabada."
+
+#: src/language/lexer/lexer.c:1201
+msgid "Unexpected end of file in string concatenation."
+msgstr "Final d'arxiu inesperat a la concatenació de cadenes."
+
+#: src/language/lexer/lexer.c:1209
+msgid "String expected following `+'."
+msgstr "S'espera una cadena seguida de `+'."
+
+#: src/language/lexer/lexer.c:1222
+#, c-format
+msgid "String exceeds 255 characters in length (%zu characters)."
+msgstr "La cadena supera els 255 caràcters de longitud (%zu caràcters)."
+
+#: src/language/lexer/format-parser.c:88
+msgid "expecting valid format specifier"
+msgstr "esperant especificador de format vàlid"
+
+#: src/language/lexer/format-parser.c:107
+#: src/language/lexer/format-parser.c:126
+#: src/language/data-io/placement-parser.c:226
+#, c-format
+msgid "Unknown format type \"%s\"."
+msgstr "Tipus de format \"%s\" desconegut."
+
+#: src/language/lexer/format-parser.c:121
+msgid "expecting format type"
+msgstr "esperant el tipus de format"
+
+#: src/language/lexer/value-parser.c:60
+#, c-format
+msgid "Low end of range (%g) is below high end (%g).  The range will be treated as reversed."
+msgstr "El límit inferior de l'interval (%g) està per sota del límit superior (%g).  L' interval serà invertit."
+
+#: src/language/lexer/value-parser.c:68
+#, c-format
+msgid "Ends of range are equal (%g)."
+msgstr "Els límits de l'interval són iguals (%g)."
+
+#: src/language/lexer/value-parser.c:76
+msgid "LO or LOWEST must be part of a range."
+msgstr "LO o LOWEST han de ser part de l'interval."
+
+#: src/language/lexer/value-parser.c:109
+msgid "System-missing value is not valid here."
+msgstr "Valor perdut del sistema no és vàlid aquí."
+
+#: src/language/lexer/value-parser.c:117
+msgid "expecting number or data string"
+msgstr "esperant nombre o cadena de dades"
+
+#: src/language/lexer/variable-parser.c:63
+msgid "expecting variable name"
+msgstr "esperant nom de la variable"
+
+#: src/language/lexer/variable-parser.c:73
+#, c-format
+msgid "%s is not a variable name."
+msgstr "%s no és un nom de variable."
+
+#: src/language/lexer/variable-parser.c:176
+#, c-format
+msgid "%s is not a numeric variable.  It will not be included in the variable list."
+msgstr "%s no és una variable numèrica. No serà inclosa a la llista de variables."
+
+#: src/language/lexer/variable-parser.c:179
+#, c-format
+msgid "%s is not a string variable.  It will not be included in the variable list."
+msgstr "%s no és una variable de cadena. No serà inclosa a la llista de variables."
+
+#: src/language/lexer/variable-parser.c:183
+#, c-format
+msgid "Scratch variables (such as %s) are not allowed here."
+msgstr "Les variables de treball  (com ara %s) no estan permeses aquí."
+
+#: src/language/lexer/variable-parser.c:187
+#, c-format
+msgid "%s and %s are not the same type.  All variables in this variable list must be of the same type.  %s will be omitted from the list."
+msgstr "%s i %s no són del mateix tipus. Totes les variables d'aquesta llista han de ser del mateix tipus. %s serà omesa de la llista."
+
+#: src/language/lexer/variable-parser.c:193
+#, c-format
+msgid "%s and %s are string variables with different widths.  All variables in this variable list must have the same width.  %s will be omitted from the list."
+msgstr "%s i %s són variables de cadena amb tamanys diferents. Totes les variables d'aquesta llista han de tenir la mateixa amplada. %s serà omesa de la llista."
+
+#: src/language/lexer/variable-parser.c:198
+#, c-format
+msgid "Variable %s appears twice in variable list."
+msgstr "La variable %s apareix dues vegades en la llista de variables."
+
+#: src/language/lexer/variable-parser.c:311
+#, c-format
+msgid "%s TO %s is not valid syntax since %s precedes %s in the dictionary."
+msgstr "%s TO %s no és una sintaxi vàlida atès que %s precedeix %s en el diccionari."
+
+#: src/language/lexer/variable-parser.c:319
+#, c-format
+msgid "When using the TO keyword to specify several variables, both variables must be from the same variable dictionaries, of either ordinary, scratch, or system variables.  %s is a %s variable, whereas %s is %s."
+msgstr "Quan s'utilitza la paraula clau TO per especificar diverses variables, ambdues han de ser del mateix diccionari de variables, ja siguin ordinals, scratch, o variables de sistema. %s és una variable %s, atès que %s és %s."
+
+#: src/language/lexer/variable-parser.c:393
+msgid "incorrect use of TO convention"
+msgstr "ús incorrecte de la convenció TO"
+
+#: src/language/lexer/variable-parser.c:436
+msgid "Scratch variables not allowed here."
+msgstr "Les variables de treball no estan permès aquí."
+
+#: src/language/lexer/variable-parser.c:458
+msgid "Prefixes don't match in use of TO convention."
+msgstr "Els prefixos no coincideixen en l'ús de la convenció TO."
+
+#: src/language/lexer/variable-parser.c:463
+msgid "Bad bounds in use of TO convention."
+msgstr "Límits incorrectes en l'ús de la convenció TO."
+
+#: src/language/xforms/compute.c:149 src/language/xforms/compute.c:203
+#, c-format
+msgid "When executing COMPUTE: SYSMIS is not a valid value as an index into vector %s."
+msgstr "Quan s'executa COMPUTE: SYSMIS no és un valor vàlid com a índex en el vector %s."
+
+#: src/language/xforms/compute.c:153 src/language/xforms/compute.c:210
+#, c-format
+msgid "When executing COMPUTE: %g is not a valid value as an index into vector %s."
+msgstr "Quan s'executa COMPUTE: %g no és un valor vàlid com a índex en el vector %s."
+
+#: src/language/xforms/compute.c:353
+#, c-format
+msgid "There is no vector named %s."
+msgstr "No hi ha cap vector anomenat %s."
+
+#: src/language/xforms/count.c:123
+msgid "Destination cannot be a string variable."
+msgstr "El destí no pot ser una variable de cadena."
+
+#: src/language/xforms/sample.c:76
+msgid "The sampling factor must be between 0 and 1 exclusive."
+msgstr "El factor de mostratge ha d'estar exclusivament entre 0 i 1."
+
+#: src/language/xforms/sample.c:96
+#, c-format
+msgid "Cannot sample %d observations from a population of %d."
+msgstr "No es pot fer una mostra de %d observacions d'una població de %d."
+
+#: src/language/xforms/recode.c:248
+msgid "Inconsistent target variable types.  Target variables must be all numeric or all string."
+msgstr "Tipus inconsistent de variables objectiu.  Les variables objectiu han de ser totes, o bé de cadena o bé numèriques."
+
+#: src/language/xforms/recode.c:269
+msgid "CONVERT requires string input values and numeric output values."
+msgstr "CONVERT requereix valors d'entrada de cadena i valors de sortida numèrics. "
+
+#: src/language/xforms/recode.c:324
+msgid "THRU is not allowed with string variables."
+msgstr "THRU no es permet amb variables de cadena."
+
+#: src/language/xforms/recode.c:403
+msgid "expecting output value"
+msgstr "esperant el valor de sortida"
+
+#: src/language/xforms/recode.c:460
+#, c-format
+msgid "%zu variable(s) cannot be recoded into %zu variable(s).  Specify the same number of variables as source and target variables."
+msgstr "%zu variable(s) no poden ser recodificades a %zu variable(s).  Especifiqueu el mateix nombre de variables com a origen i destinació."
+
+#: src/language/xforms/recode.c:475
+#, c-format
+msgid "There is no variable named %s.  (All string variables specified on INTO must already exist.  Use the STRING command to create a string variable.)"
+msgstr "No existeix cap variable anomenada %s. (Totes les variables de cadena especificades a INTO ja han d'existir.  Utilitzeu el comandament STRING per crear una variable de cadena.)"
+
+#: src/language/xforms/recode.c:491
+#, c-format
+msgid "INTO is required with %s input values and %s output values."
+msgstr "INTO és necessari amb %s valors d'entrada i %s valors de sortida."
+
+#: src/language/xforms/recode.c:504
+#, c-format
+msgid "Type mismatch.  Cannot store %s data in %s variable %s."
+msgstr "Desajust de tipus.  No es pot emmagatzemar %s dades a %s variable %s."
+
+#: src/language/xforms/select-if.c:100
+msgid "Syntax error expecting OFF or BY.  Turning off case filtering."
+msgstr "Error de sintaxi esperant OFF o BY. Desactivant el filtratge de casos."
+
+#: src/language/xforms/select-if.c:115
+msgid "The filter variable must be numeric."
+msgstr "La variable de filtre ha de ser numèrica."
+
+#: src/language/xforms/select-if.c:121
+msgid "The filter variable may not be scratch."
+msgstr "La variable de filtre no pot ser zero."
+
+#: src/language/control/control-stack.c:27
+#, c-format
+msgid "%s without %s."
+msgstr "%s sense %s."
+
+#: src/language/control/control-stack.c:55
+#, c-format
+msgid "This command must appear inside %s...%s, without intermediate %s...%s."
+msgstr "Aquesta ordre ha d'aparèixer dins de %s...%s, sense intermediaris %s...%s."
+
+#: src/language/control/control-stack.c:72
+#, c-format
+msgid "This command cannot appear outside %s...%s."
+msgstr "Aquest comandament no pot aparèixer fora de %s...%s."
+
+#: src/language/control/do-if.c:177
+msgid "This command may not follow ELSE in DO IF...END IF."
+msgstr "Aquest comandament no pot seguir ELSE en DO IF...END IF."
+
+#: src/language/control/loop.c:214
+msgid "Only one index clause may be specified."
+msgstr "Només pot ser especificada una clàusula d'índex."
+
+#: src/language/control/temporary.c:46
+msgid "This command may only appear once between procedures and procedure-like commands."
+msgstr "Aquesta ordre només pot aparèixer una vegada entre les ordres de procediments i quasi-procediments."
+
+#: src/language/control/repeat.c:171
+#, c-format
+msgid "Dummy variable name \"%s\" hides dictionary variable \"%s\"."
+msgstr "El nom de la variable fictícia \"%s\" oculta la variable de diccionari \"%s\"."
+
+#: src/language/control/repeat.c:176
+#, c-format
+msgid "Dummy variable name \"%s\" is given twice."
+msgstr "El nom de la variable fictícia \"%s\" es dóna dues vegades."
+
+#: src/language/control/repeat.c:222
+#, c-format
+msgid "Dummy variable \"%.*s\" had %d substitutions, so \"%.*s\" must also, but %d were specified."
+msgstr "Una variable fictícia \"%.*s\" en te %d substitucions, de manera que \"%.*s\" també n'hauria de tenir-les, però es van especificar %d."
+
+#: src/language/control/repeat.c:334
+msgid "DO REPEAT may not nest in compatibility mode."
+msgstr "DO REPEAT no pot usar-se recursivament en mode de comptabilitat."
+
+#: src/language/control/repeat.c:436
+msgid "Ranges may only have integer bounds"
+msgstr "Els intervals només poden tenir límits sencers."
+
+#: src/language/control/repeat.c:445
+#, c-format
+msgid "%g TO %g is an invalid range."
+msgstr "%g TO %g és un interval invalid."
+
+#: src/language/control/repeat.c:480
+msgid "String expected."
+msgstr "Cadena esperada."
+
+#: src/language/control/repeat.c:499
+msgid "No matching DO REPEAT."
+msgstr "DO REPEAT no coincideix."
+
+#: src/language/dictionary/attributes.c:108
+msgid "Attribute array index must be between 1 and 65535."
+msgstr "L'índex de la taula d'atributs ha d'estar entre 1 i 65535."
+
+#: src/language/dictionary/attributes.c:189
+msgid "expecting ATTRIBUTE= or DELETE="
+msgstr "esperant ATTRIBUTE= o DELETE="
+
+#: src/language/dictionary/apply-dictionary.c:75
+#, c-format
+msgid "Variable %s is %s in target file, but %s in source file."
+msgstr "La variable %s és %s en l'arxiu de destinació, però %s en l'arxiu d'origen."
+
+#: src/language/dictionary/apply-dictionary.c:115
+msgid "No matching variables found between the source and target files."
+msgstr "No s'han trobat coincidències de variables entre els arxius d'origen i de destinació."
+
+#: src/language/dictionary/delete-variables.c:40
+msgid "DELETE VARIABLES may not be used after TEMPORARY.  Temporary transformations will be made permanent."
+msgstr "DELETE VARIABLES no pot ser utilitzat després de TEMPORARY. Les transformacions temporals seran permanents."
+
+#: src/language/dictionary/delete-variables.c:48
+msgid "DELETE VARIABLES may not be used to delete all variables from the active file dictionary.  Use NEW FILE instead."
+msgstr "DELETE VARIABLES no pot ser utilitzar per esborrar totes les variables de l'arxiu de diccionari actiu. Utilitzar NEW FILE en el seu lloc."
+
+#: src/language/dictionary/formats.c:90
+msgid "`(' expected after variable list."
+msgstr "`(' esperat després de la llista de variables."
+
+#: src/language/dictionary/formats.c:100 src/language/dictionary/numeric.c:74
+msgid "`)' expected after output format."
+msgstr "`)' esperat després del format de resultats."
+
+#: src/language/dictionary/missing-values.c:56
+#: src/language/stats/aggregate.c:458
+msgid "expecting `('"
+msgstr "esperant `('"
+
+#: src/language/dictionary/missing-values.c:72
+#, c-format
+msgid "Cannot mix numeric variables (e.g. %s) and string variables (e.g. %s) within a single list."
+msgstr "No es poden barrejar les variables numèriques (e.g. %s) i les variables de cadena (e.g. %s) dins d'una llista única."
+
+#: src/language/dictionary/missing-values.c:116
+#, c-format
+msgid "Truncating missing value to maximum acceptable length (%d bytes)."
+msgstr "Truncant el valor perdut a la longitud màxima acceptable (%d bytes)."
+
+#: src/language/dictionary/missing-values.c:138
+#, c-format
+msgid "Missing values provided are too long to assign to variable of width %d."
+msgstr "Els valors perduts donats són massa llargs per assignar a la variable d'amplada %d."
+
+#: src/language/dictionary/modify-variables.c:92
+msgid "MODIFY VARS may not be used after TEMPORARY.  Temporary transformations will be made permanent."
+msgstr "MODIFY VARS no pot ser utilitzar després de TEMPORARY. Les transformacions temporals seran permanents."
+
+#: src/language/dictionary/modify-variables.c:114
+msgid "REORDER subcommand may be given at most once."
+msgstr "El subcomando REORDER pot ser emès més d'un cop."
+
+#: src/language/dictionary/modify-variables.c:137
+msgid "Cannot specify ALL after specifying a set of variables."
+msgstr "No es pot especificar ALL després de l'especificació d'un conjunt de variables."
+
+#: src/language/dictionary/modify-variables.c:147
+msgid "`(' expected on REORDER subcommand."
+msgstr "`(' esperat en el subcomando REORDER."
+
+#: src/language/dictionary/modify-variables.c:159
+msgid "`)' expected following variable names on REORDER subcommand."
+msgstr "`)' s'esperava seguit dels noms de la variable en el subcomando REORDER."
+
+#: src/language/dictionary/modify-variables.c:177
+msgid "RENAME subcommand may be given at most once."
+msgstr "El subcomando RENAME pot ser utilitzat només una vegada."
+
+#: src/language/dictionary/modify-variables.c:190
+msgid "`(' expected on RENAME subcommand."
+msgstr "`(' esperat al subcomando RENAME."
+
+#: src/language/dictionary/modify-variables.c:199
+msgid "`=' expected between lists of new and old variable names on RENAME subcommand."
+msgstr "`=' esperat entre les llistes de noms de variables noves i velles en el subcomando RENAME."
+
+#: src/language/dictionary/modify-variables.c:208
+#: src/language/dictionary/rename-variables.c:76
+#, c-format
+msgid "Differing number of variables in old name list (%zu) and in new name list (%zu)."
+msgstr "Diferent nombre de variables en la llista de noms antiga (%zu) i en la llista de noms nova (%zu)."
+
+#: src/language/dictionary/modify-variables.c:219
+msgid "`)' expected after variable lists on RENAME subcommand."
+msgstr "`)' esperat després de les llistes de variables en el subcomando RENAME."
+
+#: src/language/dictionary/modify-variables.c:233
+msgid "KEEP subcommand may be given at most once.  It may not be given in conjunction with the DROP subcommand."
+msgstr "El subcomando KEEP pot ser emès més d'una vegada. Pot ser que no sigui facilitada en relació amb el subcomando DROP."
+
+#: src/language/dictionary/modify-variables.c:276
+msgid "DROP subcommand may be given at most once.  It may not be given in conjunction with the KEEP subcommand."
+msgstr "El subcomando DROP pot ser utilitzat només una vegada. No pot ser utilitzat conjuntament amb el subcomando KEEP."
+
+#: src/language/dictionary/modify-variables.c:302
+#, c-format
+msgid "Unrecognized subcommand name `%s'."
+msgstr "Nom del subcomando no reconegut '%s'."
+
+#: src/language/dictionary/modify-variables.c:304
+msgid "Subcommand name expected."
+msgstr "Nom del subcomando esperat."
+
+#: src/language/dictionary/modify-variables.c:312
+msgid "`/' or `.' expected."
+msgstr "'/' o '.' esperat."
+
+#: src/language/dictionary/numeric.c:67
+#, c-format
+msgid "Format type %s may not be used with a numeric variable."
+msgstr "Tipus de format %s no pot ser utilitzat amb una variable numèrica."
+
+#: src/language/dictionary/numeric.c:86 src/language/dictionary/numeric.c:155
+#, c-format
+msgid "There is already a variable named %s."
+msgstr "Ja existeix una variable amb el nom %s."
+
+#: src/language/dictionary/numeric.c:140
+#, c-format
+msgid "Format type %s may not be used with a string variable."
+msgstr "Tipus de format %s no pot ser utilitzat amb una variable de cadena. "
+
+#: src/language/dictionary/rename-variables.c:49
+msgid "RENAME VARS may not be used after TEMPORARY.  Temporary transformations will be made permanent."
+msgstr "RENAME VARS no pot ser utilitzat després de TEMPORARY.  Les transformacions temporals seran permanents."
+
+#: src/language/dictionary/rename-variables.c:59
+msgid "`(' expected."
+msgstr "'(' esperat."
+
+#: src/language/dictionary/rename-variables.c:67
+msgid "`=' expected between lists of new and old variable names."
+msgstr "`=' esperat entre llistes de nous i antics noms de la variable."
+
+#: src/language/dictionary/rename-variables.c:87
+msgid "`)' expected after variable names."
+msgstr "`)' esperat després dels noms de variables."
+
+#: src/language/dictionary/rename-variables.c:97
+#, c-format
+msgid "Renaming would duplicate variable name %s."
+msgstr "Canviar el nom duplicaria el nom de la variable %s."
+
+#: src/language/dictionary/split-file.c:85
+#: src/language/dictionary/sys-file-info.c:486
+#: src/language/dictionary/sys-file-info.c:641
+#: src/language/stats/crosstabs.q:1235 src/language/stats/crosstabs.q:1262
+#: src/language/stats/crosstabs.q:1286 src/language/stats/crosstabs.q:1311
+#: src/language/stats/examine.q:1959 src/language/stats/frequencies.q:1051
+#: src/language/stats/frequencies.q:1176 src/language/stats/reliability.q:582
+#: src/language/stats/reliability.q:593
+msgid "Value"
+msgstr "Valor"
+
+#: src/language/dictionary/split-file.c:86
+#: src/language/dictionary/sys-file-info.c:397
+#: src/language/dictionary/sys-file-info.c:642
+#: src/ui/gui/psppire-var-sheet.c:537 src/ui/gui/psppire-var-store.c:836
+#: src/ui/gui/crosstabs.glade:275 src/ui/gui/psppire.glade:1974
+msgid "Label"
+msgstr "Etiqueta"
+
+#: src/language/dictionary/sys-file-info.c:113
+msgid "File:"
+msgstr "Arxiu:"
+
+#: src/language/dictionary/sys-file-info.c:115 src/ui/gui/psppire.glade:1913
+#: src/ui/gui/recode.glade:841
+msgid "Label:"
+msgstr "Etiqueta:"
+
+#: src/language/dictionary/sys-file-info.c:119
+msgid "No label."
+msgstr "Sense etiqueta."
+
+#: src/language/dictionary/sys-file-info.c:122
+msgid "Created:"
+msgstr "Creat:"
+
+#: src/language/dictionary/sys-file-info.c:125
+msgid "Integer Format:"
+msgstr "Format Sencer:"
+
+#: src/language/dictionary/sys-file-info.c:127
+msgid "Big Endian."
+msgstr "Big Endian."
+
+#: src/language/dictionary/sys-file-info.c:128
+msgid "Little Endian."
+msgstr "Little Endian."
+
+#: src/language/dictionary/sys-file-info.c:129
+#: src/language/dictionary/sys-file-info.c:137
+msgid "Unknown."
+msgstr "Desconegut."
+
+#: src/language/dictionary/sys-file-info.c:130
+msgid "Real Format:"
+msgstr "Format Real:"
+
+#: src/language/dictionary/sys-file-info.c:132
+msgid "IEEE 754 LE."
+msgstr "IEEE 754 LE."
+
+#: src/language/dictionary/sys-file-info.c:133
+msgid "IEEE 754 BE."
+msgstr "IEE 754 BE."
+
+#: src/language/dictionary/sys-file-info.c:134
+msgid "VAX D."
+msgstr "VAX D."
+
+#: src/language/dictionary/sys-file-info.c:135
+msgid "VAX G."
+msgstr "VAX G."
+
+#: src/language/dictionary/sys-file-info.c:136
+msgid "IBM 390 Hex Long."
+msgstr "IBM 390 Hex Long."
+
+#: src/language/dictionary/sys-file-info.c:138
+#: src/ui/gui/descriptives-dialog.glade:79 src/ui/gui/recode.glade:940
+msgid "Variables:"
+msgstr "Variables:"
+
+#: src/language/dictionary/sys-file-info.c:140
+msgid "Cases:"
+msgstr "Casos:"
+
+#: src/language/dictionary/sys-file-info.c:142
+#: src/language/dictionary/sys-file-info.c:160
+msgid "Unknown"
+msgstr "Desconegut"
+
+#: src/language/dictionary/sys-file-info.c:144
+msgid "Type:"
+msgstr "Tipus:"
+
+#: src/language/dictionary/sys-file-info.c:145
+msgid "System File."
+msgstr "Arxiu de Sistema."
+
+#: src/language/dictionary/sys-file-info.c:146
+msgid "Weight:"
+msgstr "Pes:"
+
+#: src/language/dictionary/sys-file-info.c:151
+msgid "Not weighted."
+msgstr "No ponderat."
+
+#: src/language/dictionary/sys-file-info.c:153
+msgid "Mode:"
+msgstr "Mode:"
+
+#: src/language/dictionary/sys-file-info.c:155
+#, c-format
+msgid "Compression %s."
+msgstr "Compressió %s."
+
+#: src/language/dictionary/sys-file-info.c:155
+msgid "on"
+msgstr "activat"
+
+#: src/language/dictionary/sys-file-info.c:155
+msgid "off"
+msgstr "desactivat"
+
+#: src/language/dictionary/sys-file-info.c:158
+msgid "Charset:"
+msgstr "Conjunt de caràcters:"
+
+#: src/language/dictionary/sys-file-info.c:170
+#: src/language/dictionary/sys-file-info.c:397
+msgid "Description"
+msgstr "Descripció"
+
+#: src/language/dictionary/sys-file-info.c:171
+#: src/language/dictionary/sys-file-info.c:399
+#: src/language/dictionary/sys-file-info.c:724
+msgid "Position"
+msgstr "Posició"
+
+#: src/language/dictionary/sys-file-info.c:220
+msgid "The active file does not have a file label."
+msgstr "L'arxiu actiu no té etiqueta d'arxiu."
+
+#: src/language/dictionary/sys-file-info.c:223
+msgid "File label:"
+msgstr "Etiqueta d'arxiu:"
+
+#: src/language/dictionary/sys-file-info.c:298
+msgid "No variables to display."
+msgstr "Cap variable per mostrar."
+
+#: src/language/dictionary/sys-file-info.c:313
+msgid "Macros not supported."
+msgstr "Macros no disponibles."
+
+#: src/language/dictionary/sys-file-info.c:323
+msgid "The active file dictionary does not contain any documents."
+msgstr "El diccionari de l'arxiu actiu no conté cap document. "
+
+#: src/language/dictionary/sys-file-info.c:331
+msgid "Documents in the active file:"
+msgstr "Documents a l'arxiu actiu:"
+
+#: src/language/dictionary/sys-file-info.c:485
+msgid "Attribute"
+msgstr "Atribut"
+
+#: src/language/dictionary/sys-file-info.c:543
+#, c-format
+msgid "Format: %s"
+msgstr "Format: %s"
+
+#: src/language/dictionary/sys-file-info.c:550
+#, c-format
+msgid "Print Format: %s"
+msgstr "Format d'Impressió: %s"
+
+#: src/language/dictionary/sys-file-info.c:554
+#, c-format
+msgid "Write Format: %s"
+msgstr "Format d'Escriptura: %s"
+
+#: src/language/dictionary/sys-file-info.c:567
+#, c-format
+msgid "Measure: %s"
+msgstr "Mesura: %s"
+
+#: src/language/dictionary/sys-file-info.c:568
+#: src/ui/gui/psppire-var-sheet.c:111
+msgid "Nominal"
+msgstr "Nominal"
+
+#: src/language/dictionary/sys-file-info.c:569
+#: src/ui/gui/psppire-var-sheet.c:112
+msgid "Ordinal"
+msgstr "Ordinal"
+
+#: src/language/dictionary/sys-file-info.c:570
+#: src/ui/gui/psppire-var-sheet.c:113
+msgid "Scale"
+msgstr "Escala"
+
+#: src/language/dictionary/sys-file-info.c:573
+#, c-format
+msgid "Display Alignment: %s"
+msgstr "Alineació de la mostra: %s"
+
+#: src/language/dictionary/sys-file-info.c:574
+#: src/ui/gui/psppire-var-sheet.c:104
+msgid "Left"
+msgstr "Esquerra"
+
+#: src/language/dictionary/sys-file-info.c:575
+#: src/ui/gui/psppire-var-sheet.c:106
+msgid "Center"
+msgstr "Centre"
+
+#: src/language/dictionary/sys-file-info.c:576
+#: src/ui/gui/psppire-var-sheet.c:105
+msgid "Right"
+msgstr "Dreta"
+
+#: src/language/dictionary/sys-file-info.c:579
+#, c-format
+msgid "Display Width: %d"
+msgstr "Amplada de la mostra: %d"
+
+#: src/language/dictionary/sys-file-info.c:593
+msgid "Missing Values: "
+msgstr "Valors perduts:"
+
+#: src/language/dictionary/sys-file-info.c:702
+msgid "No vectors defined."
+msgstr "Vectors no definits."
+
+#: src/language/dictionary/sys-file-info.c:723
+msgid "Vector"
+msgstr "Vector"
+
+#: src/language/dictionary/sys-file-info.c:726
+msgid "Print Format"
+msgstr "Format d'Impressió"
+
+#: src/language/dictionary/value-labels.c:150
+msgid "Truncating value label to 60 characters."
+msgstr "Truncant etiqueta de valor a 60 caràcters."
+
+#: src/language/dictionary/variable-label.c:51
+msgid "String expected for variable label."
+msgstr "S'espera una cadena com a etiqueta de variable."
+
+#: src/language/dictionary/variable-label.c:59
+msgid "Truncating variable label to 255 characters."
+msgstr "Truncant la etiqueta de variable a 255 caràcters."
+
+#: src/language/dictionary/vector.c:64
+#, c-format
+msgid "A vector named %s already exists."
+msgstr "Un vector anomenat %s ja existeix."
+
+#: src/language/dictionary/vector.c:72
+#, c-format
+msgid "Vector name %s is given twice."
+msgstr "El nom del vector %s es dóna dues vegades."
+
+#: src/language/dictionary/vector.c:96
+msgid "A slash must separate each vector specification in VECTOR's long form."
+msgstr "Una barra ha de separar cada especificació de vector en la forma llarga de VECTOR."
+
+#: src/language/dictionary/vector.c:129
+msgid "Vectors must have at least one element."
+msgstr "Els vectors han de tenir almenys un element."
+
+#: src/language/dictionary/vector.c:150
+msgid "expecting vector length"
+msgstr "esperant longitud del vector"
+
+#: src/language/dictionary/vector.c:166
+#, c-format
+msgid "%s is too long for a variable name."
+msgstr "%s és massa llarg per un nom de variable."
+
+#: src/language/dictionary/vector.c:171
+#, c-format
+msgid "%s is an existing variable name."
+msgstr "%s és un nom de variable existent."
+
+#: src/language/dictionary/variable-display.c:120
+msgid "Variable display width must be a positive integer."
+msgstr "La amplada de la mostra de la variable ha de ser un enter positiu."
+
+#: src/language/dictionary/weight.c:49
+msgid "The weighting variable must be numeric."
+msgstr "La variable de ponderació ha de ser numèrica."
+
+#: src/language/dictionary/weight.c:54
+msgid "The weighting variable may not be scratch."
+msgstr "La variable de ponderació no pot ser zero."
+
+#: src/language/tests/float-format.c:124
+#, c-format
+msgid "%zu-byte string needed but %zu-byte string supplied."
+msgstr "Es necessita cadena de %zu-byte però s'han subministrat de %zu-byte."
+
+#: src/language/tests/float-format.c:136
+msgid "Hexadecimal floating constant too long."
+msgstr "Constant hexadecimal flotant massa llarga."
+
+#: src/language/tests/float-format.c:201
+#, c-format
+msgid "%s conversion of %s from %s to %s should have produced %s but actually produced %s."
+msgstr "conversió %s de %s desde %s a %s s'hauria d'haver produït %s però actualment ha produït %s."
+
+#: src/language/tests/float-format.c:247
+msgid "Too many values in single command."
+msgstr "Massa valors en el comandament únic."
+
+#: src/language/tests/moments-test.c:47
+msgid "expecting weight value"
+msgstr "esperant el valor de ponderació"
+
+#: src/language/utilities/cd.c:41
+#, c-format
+msgid "Cannot change directory to %s:  %s "
+msgstr "No es pot canviar el directori per %s: %s"
+
+#: src/language/utilities/date.c:32
+msgid "Only USE ALL is currently implemented."
+msgstr "Només USE ALL s'està aplicant actualment."
+
+#: src/language/utilities/title.c:68
+#, c-format
+msgid "%s: `.' expected after string."
+msgstr "%s: `.' esperat després de la cadena."
+
+#: src/language/utilities/title.c:108
+#, c-format
+msgid "   (Entered %s)"
+msgstr "   (Introduït %s)"
+
+#: src/language/utilities/include.c:92
+msgid "Expecting BATCH or INTERACTIVE after SYNTAX."
+msgstr "Esperant BATCH o INTERACTIVE després de SYNTAX."
+
+#: src/language/utilities/include.c:109
+msgid "Expecting YES or NO after CD."
+msgstr "Esperant YES o NO després del CD."
+
+#: src/language/utilities/include.c:126
+msgid "Expecting CONTINUE or STOP after ERROR."
+msgstr "Esperant CONTINUE o bé STOP després de l'ERROR."
+
+#: src/language/utilities/include.c:133
+#, c-format
+msgid "Unexpected token: `%s'."
+msgstr "Testimoni inesperat: `%s'."
+
+#: src/language/utilities/include.c:178
+msgid "expecting file name"
+msgstr "esperant nom d'arxiu"
+
+#: src/language/utilities/include.c:190
+#, c-format
+msgid "Can't find `%s' in include file search path."
+msgstr "No es pot trobar `%s' en la ruta de cerca de l'arxiu d'inclusió."
+
+#: src/language/utilities/include.c:198
+#, c-format
+msgid "Unable to open `%s': %s."
+msgstr "No es pot obrir `%s': %s."
+
+#: src/language/utilities/permissions.c:73
+#, c-format
+msgid "Expecting %s or %s."
+msgstr "Esperant %s o bé %s."
+
+#: src/language/utilities/permissions.c:106
+#, c-format
+msgid "Cannot stat %s: %s"
+msgstr "No es pot dir que %s: %s"
+
+#: src/language/utilities/permissions.c:119
+#, c-format
+msgid "Cannot change mode of %s: %s"
+msgstr "No es pot canviar el mode ed %s: %s"
+
+#: src/language/stats/aggregate.c:219
+msgid "while expecting COLUMNWISE"
+msgstr "mentrestant esperant COLUMNWISE"
+
+#: src/language/stats/aggregate.c:247
+msgid "expecting BREAK"
+msgstr "esperant BREAK"
+
+#: src/language/stats/aggregate.c:252
+msgid "When PRESORTED is specified, specifying sorting directions with (A) or (D) has no effect.  Output data will be sorted the same way as the input data."
+msgstr "Quan s'especifica PRESORTED, donar directives d'ordenació amb  (A) o (D) no té efecte. Les dades de sortida seran ordenades de la mateixa manera que les d'entrada."
+
+#: src/language/stats/aggregate.c:423
+msgid "expecting aggregation function"
+msgstr "esperant un funció agregadora"
+
+#: src/language/stats/aggregate.c:441
+#, c-format
+msgid "Unknown aggregation function %s."
+msgstr "Funció desconeguda %s."
+
+#: src/language/stats/aggregate.c:497
+#, c-format
+msgid "Missing argument %zu to %s."
+msgstr "Argument perdut %zu per a %s."
+
+#: src/language/stats/aggregate.c:506
+#, c-format
+msgid "Arguments to %s must be of same type as source variables."
+msgstr "Els arguments per a %s han de ser del mateix tipus que les variables d'origen."
+
+#: src/language/stats/aggregate.c:516 src/language/expressions/parse.c:885
+msgid "expecting `)'"
+msgstr "esperant `)'"
+
+#: src/language/stats/aggregate.c:528
+#, c-format
+msgid "Number of source variables (%zu) does not match number of target variables (%zu)."
+msgstr "Nombre de variables d'origen (%zu) no coincideix amb el nombre de variables de destinació (%zu)."
+
+#: src/language/stats/aggregate.c:544
+#, c-format
+msgid "The value arguments passed to the %s function are out-of-order.  They will be treated as if they had been specified in the correct order."
+msgstr "El valor dels arguments passats a la funció %s estan fora d'ordre. Seran tractats com si haguessin estat especificats en l'ordre correcte."
+
+#: src/language/stats/aggregate.c:614
+#, c-format
+msgid "Variable name %s is not unique within the aggregate file dictionary, which contains the aggregate variables and the break variables."
+msgstr "El nom de variable %s no és únic dins l'arxiu de diccionari agregat, que conté les variables agregades i les variables de tall."
+
+#: src/language/stats/autorecode.c:136
+#, c-format
+msgid "Source variable count (%zu) does not match target variable count (%zu)."
+msgstr "El recompte de la variable d'origen (%zu) no coincideix amb el recompte de la variable de destí (%zu)."
+
+#: src/language/stats/autorecode.c:164
+#, c-format
+msgid "Target variable %s duplicates existing variable %s."
+msgstr "Variable de destí %s duplica una variable existent %s."
+
+#: src/language/stats/autorecode.c:171
+#, c-format
+msgid "Duplicate variable name %s among target variables."
+msgstr "Duplicar el nom de la variable %s entre les variables de destí."
+
+#: src/language/stats/binomial.c:141
+#, c-format
+msgid "Variable %s is not dichotomous"
+msgstr "La variable %s no és dicotòmica"
+
+#: src/language/stats/binomial.c:194
+msgid "Binomial Test"
+msgstr "Prova Binomial"
+
+#: src/language/stats/binomial.c:224
+msgid "Group1"
+msgstr "Grup 1"
+
+#: src/language/stats/binomial.c:225
+msgid "Group2"
+msgstr "Grup 2"
+
+#: src/language/stats/binomial.c:226 src/language/stats/chisquare.c:202
+#: src/language/stats/chisquare.c:262 src/language/stats/sign.c:94
+#: src/language/stats/wilcoxon.c:262 src/ui/gui/crosstabs-dialog.c:59
+#: src/language/stats/crosstabs.q:845 src/language/stats/crosstabs.q:1172
+#: src/language/stats/crosstabs.q:1596 src/language/stats/examine.q:1216
+#: src/language/stats/frequencies.q:1128 src/language/stats/oneway.q:305
+#: src/language/stats/oneway.q:476 src/language/stats/regression.q:309
+#: src/language/stats/reliability.q:718
+msgid "Total"
+msgstr "Total"
+
+#: src/language/stats/binomial.c:259 src/language/stats/chisquare.c:225
+#: src/language/stats/crosstabs.q:1260 src/language/stats/crosstabs.q:1308
+msgid "Category"
+msgstr "Categoria"
+
+#: src/language/stats/binomial.c:260 src/language/stats/npar-summary.c:123
+#: src/language/stats/sign.c:74 src/language/stats/wilcoxon.c:245
+#: src/language/stats/crosstabs.q:852 src/language/stats/examine.q:1289
+#: src/language/stats/frequencies.q:1399 src/language/stats/oneway.q:389
+#: src/language/stats/reliability.q:721 src/language/stats/t-test.q:506
+#: src/language/stats/t-test.q:526 src/language/stats/t-test.q:626
+#: src/language/stats/t-test.q:1105
+msgid "N"
+msgstr "N"
+
+#: src/language/stats/binomial.c:261
+msgid "Observed Prop."
+msgstr "Prop. Observat"
+
+#: src/language/stats/binomial.c:262
+msgid "Test Prop."
+msgstr "Test Prop."
+
+#: src/language/stats/binomial.c:265
+#, c-format
+msgid "Exact Sig. (%d-tailed)"
+msgstr "Sig. Exact.(%d-tailed)"
+
+#: src/language/stats/chisquare.c:172
+#, c-format
+msgid "CHISQUARE test specified %d expected values, but %d distinct values were encountered in variable %s."
+msgstr "Prova CHISQUARE especifica %d valors esperats, però %d diferents valors es van trobar a la variable %s."
+
+#: src/language/stats/chisquare.c:186 src/language/stats/chisquare.c:226
+msgid "Observed N"
+msgstr "N observat"
+
+#: src/language/stats/chisquare.c:187 src/language/stats/chisquare.c:227
+msgid "Expected N"
+msgstr "N esperat"
+
+#: src/language/stats/chisquare.c:188 src/language/stats/chisquare.c:228
+#: src/ui/gui/crosstabs-dialog.c:61 src/language/stats/regression.q:308
+msgid "Residual"
+msgstr "Residual"
+
+#: src/language/stats/chisquare.c:221 src/language/stats/sign.c:62
+msgid "Frequencies"
+msgstr "Freqüències"
+
+#: src/language/stats/chisquare.c:276 src/language/stats/sign.c:115
+#: src/language/stats/wilcoxon.c:313
+msgid "Test Statistics"
+msgstr "Proves Estad."
+
+#: src/language/stats/chisquare.c:290
+msgid "Chi-Square"
+msgstr "Chi-quadrat"
+
+#: src/language/stats/chisquare.c:291 src/language/stats/crosstabs.q:1236
+#: src/language/stats/oneway.q:278 src/language/stats/oneway.q:691
+#: src/language/stats/regression.q:302 src/language/stats/t-test.q:753
+#: src/language/stats/t-test.q:924 src/language/stats/t-test.q:1011
+msgid "df"
+msgstr "df"
+
+#: src/language/stats/chisquare.c:292
+msgid "Asymp. Sig."
+msgstr "Sig. Asimpt."
+
+#: src/language/stats/descriptives.c:102 src/language/stats/npar-summary.c:126
+#: src/ui/gui/descriptives-dialog.c:39 src/ui/gui/frequencies-dialog.c:40
+#: src/language/stats/examine.q:1559 src/language/stats/frequencies.q:123
+#: src/language/stats/oneway.q:390 src/language/stats/t-test.q:507
+#: src/language/stats/t-test.q:527 src/language/stats/t-test.q:625
+#: src/language/stats/t-test.q:918
+msgid "Mean"
+msgstr "Mitjana"
+
+#: src/language/stats/descriptives.c:103
+msgid "S E Mean"
+msgstr "Mitj. E.E."
+
+#: src/language/stats/descriptives.c:104 src/language/stats/frequencies.q:127
+msgid "Std Dev"
+msgstr "Desv.Std."
+
+#: src/language/stats/descriptives.c:105 src/ui/gui/descriptives-dialog.c:46
+#: src/ui/gui/frequencies-dialog.c:45 src/language/stats/examine.q:1589
+#: src/language/stats/frequencies.q:128
+msgid "Variance"
+msgstr "Variància"
+
+#: src/language/stats/descriptives.c:106 src/ui/gui/descriptives-dialog.c:47
+#: src/ui/gui/frequencies-dialog.c:50 src/language/stats/examine.q:1625
+#: src/language/stats/frequencies.q:129
+msgid "Kurtosis"
+msgstr "Curtosi"
+
+#: src/language/stats/descriptives.c:107
+msgid "S E Kurt"
+msgstr "Curt.E.E."
+
+#: src/language/stats/descriptives.c:108 src/ui/gui/descriptives-dialog.c:48
+#: src/ui/gui/frequencies-dialog.c:46 src/language/stats/examine.q:1620
+#: src/language/stats/frequencies.q:131
+msgid "Skewness"
+msgstr "Asimetria"
+
+#: src/language/stats/descriptives.c:109
+msgid "S E Skew"
+msgstr "Asim.E.E."
+
+#: src/language/stats/descriptives.c:110 src/ui/gui/descriptives-dialog.c:43
+#: src/ui/gui/frequencies-dialog.c:48 src/language/stats/examine.q:1609
+#: src/language/stats/frequencies.q:133
+msgid "Range"
+msgstr "Interval"
+
+#: src/language/stats/descriptives.c:111 src/language/stats/npar-summary.c:132
+#: src/ui/gui/descriptives-dialog.c:41 src/ui/gui/frequencies-dialog.c:42
+#: src/language/stats/examine.q:1599 src/language/stats/frequencies.q:134
+#: src/language/stats/oneway.q:404
+msgid "Minimum"
+msgstr "Mínim"
+
+#: src/language/stats/descriptives.c:112 src/language/stats/npar-summary.c:135
+#: src/ui/gui/descriptives-dialog.c:42 src/ui/gui/frequencies-dialog.c:43
+#: src/language/stats/examine.q:1604 src/language/stats/frequencies.q:135
+#: src/language/stats/oneway.q:405
+msgid "Maximum"
+msgstr "Màxim"
+
+#: src/language/stats/descriptives.c:113 src/ui/gui/descriptives-dialog.c:44
+#: src/ui/gui/frequencies-dialog.c:53 src/language/stats/frequencies.q:136
+msgid "Sum"
+msgstr "Suma"
+
+#: src/language/stats/descriptives.c:344
+#, c-format
+msgid "Z-score variable name %s would be a duplicate variable name."
+msgstr "el mom de variable Z %s seria un nom de variable duplicat."
+
+#: src/language/stats/descriptives.c:362 src/language/data-io/list.q:157
+msgid "No variables specified."
+msgstr "Variables no especificades."
+
+#: src/language/stats/descriptives.c:451
+msgid "expecting statistic name: reverting to default"
+msgstr "esperant nom de l'estadístic: torna a aplicar el defecte"
+
+#: src/language/stats/descriptives.c:524
+msgid "Ran out of generic names for Z-score variables.  There are only 126 generic names: ZSC001-ZSC0999, STDZ01-STDZ09, ZZZZ01-ZZZZ09, ZQZQ01-ZQZQ09."
+msgstr "S'han esgotat els noms genèrics per les variables Z.  Només hi ha 126 noms genèrics: ZSC001-ZSC0999, STDZ01-STDZ09, ZZZZ01-ZZZZ09, ZQZQ01-ZQZQ09."
+
+#: src/language/stats/descriptives.c:556
+msgid "Mapping of variables to corresponding Z-scores."
+msgstr "Convertint variables a les puntuacions-Z corresponents."
+
+#: src/language/stats/descriptives.c:561
+msgid "Source"
+msgstr "Font"
+
+#: src/language/stats/descriptives.c:562
+msgid "Target"
+msgstr "Destí"
+
+#: src/language/stats/descriptives.c:673
+#, c-format
+msgid "Z-score of %s"
+msgstr "puntuació-Z de %s"
+
+#: src/language/stats/descriptives.c:888
+msgid "Valid N"
+msgstr "N vàlids"
+
+#: src/language/stats/descriptives.c:889
+msgid "Missing N"
+msgstr "Perduts N"
+
+#: src/language/stats/descriptives.c:917
+#, c-format
+msgid "Valid cases = %g; cases with missing value(s) = %g."
+msgstr "Casos vàlids = %g; casos amb valor(s) perdut(s) = %g."
+
+#: src/language/stats/sort-cases.c:64
+msgid "Buffer limit must be at least 2."
+msgstr "El límit de la memòria intermitja ha de ser almenys de 2."
+
+#: src/language/stats/sort-criteria.c:74
+msgid "`A' or `D' expected inside parentheses."
+msgstr "S'espera `A' or `D' dins del parèntesis."
+
+#: src/language/stats/sort-criteria.c:79
+msgid "`)' expected."
+msgstr "`)' esperat."
+
+#: src/language/stats/sort-criteria.c:92
+#, c-format
+msgid "Variable %s specified twice in sort criteria."
+msgstr "La variable %s s'especifica dues vegades als criteris d'ordenació."
+
+#: src/language/stats/flip.c:98
+msgid "FLIP ignores TEMPORARY.  Temporary transformations will be made permanent."
+msgstr "FLIP ignora TEMPORARY.  Les transformacions temporals seran permanents."
+
+#: src/language/stats/flip.c:150
+msgid "Could not create temporary file for FLIP."
+msgstr "No s'ha pogut crear l'arxiu temporal per a FLIP."
+
+#: src/language/stats/flip.c:327
+#, c-format
+msgid "Error rewinding FLIP file: %s."
+msgstr "Error reconstruint l'arxiu FLIP: %s."
+
+#: src/language/stats/flip.c:334
+msgid "Error creating FLIP source file."
+msgstr "Error en crear l'arxiu d'origen FLIP."
+
+#: src/language/stats/flip.c:347
+#, c-format
+msgid "Error reading FLIP file: %s."
+msgstr "Error de lectura de l'arxiu FLIP: %s."
+
+#: src/language/stats/flip.c:349
+msgid "Unexpected end of file reading FLIP file."
+msgstr "Final inesperat de la lectura d'arxiu FLIP."
+
+#: src/language/stats/flip.c:365
+#, c-format
+msgid "Error seeking FLIP source file: %s."
+msgstr "Error en cercar l'arxiu font FLIP: %s."
+
+#: src/language/stats/flip.c:373
+#, c-format
+msgid "Error writing FLIP source file: %s."
+msgstr "Error d'escriptura de l'arxiu font FLIP: %s."
+
+#: src/language/stats/flip.c:384
+#, c-format
+msgid "Error closing FLIP source file: %s."
+msgstr "Error de tancament de l'arxiu de font FLIP: %s."
+
+#: src/language/stats/flip.c:392
+#, c-format
+msgid "Error rewinding FLIP source file: %s."
+msgstr "Error reconstruint d'arxiu font FLIP: %s."
+
+#: src/language/stats/flip.c:426
+#, c-format
+msgid "Error reading FLIP temporary file: %s."
+msgstr "Error de lectura de l'arxiu temporal FLIP: %s."
+
+#: src/language/stats/flip.c:429
+msgid "Unexpected end of file reading FLIP temporary file."
+msgstr "Final inesperat de la lectura d'arxiu temporal FLIP."
+
+#: src/language/stats/npar-summary.c:109
+msgid "Descriptive Statistics"
+msgstr "Estadístiques Descriptives"
+
+#: src/language/stats/npar-summary.c:129 src/language/stats/examine.q:1594
+#: src/language/stats/oneway.q:391 src/language/stats/t-test.q:508
+#: src/language/stats/t-test.q:528 src/language/stats/t-test.q:627
+#: src/language/stats/t-test.q:919
+msgid "Std. Deviation"
+msgstr "Desviació Est."
+
+#: src/language/stats/npar-summary.c:142 src/ui/gui/examine.glade:333
+#: src/language/stats/examine.q:2117 src/language/stats/examine.q:2134
+#: src/language/stats/frequencies.q:1410
+msgid "Percentiles"
+msgstr "Percentils"
+
+#: src/language/stats/npar-summary.c:146
+msgid "25th"
+msgstr "25è"
+
+#: src/language/stats/npar-summary.c:149
+msgid "50th (Median)"
+msgstr "50è (Mediana)"
+
+#: src/language/stats/npar-summary.c:152
+msgid "75th"
+msgstr "75è"
+
+#: src/language/stats/roc.c:938
+msgid "Area Under the Curve"
+msgstr "Àrea Sota la Corba"
+
+#: src/language/stats/roc.c:940
+#, c-format
+msgid "Area Under the Curve (%s)"
+msgstr "Àrea Sota la Corba (%s)"
+
+#: src/language/stats/roc.c:946
+msgid "Area"
+msgstr "Àrea"
+
+#: src/language/stats/roc.c:959 src/language/stats/examine.q:1756
+#: src/language/stats/oneway.q:392 src/language/stats/oneway.q:689
+#: src/language/stats/regression.q:203
+msgid "Std. Error"
+msgstr "Error Est."
+
+#: src/language/stats/roc.c:960
+msgid "Asymptotic Sig."
+msgstr "Signif. Asimpt."
+
+#: src/language/stats/roc.c:962 src/language/stats/examine.q:1570
+#: src/language/stats/oneway.q:401
+msgid "Lower Bound"
+msgstr "Límit Inferior"
+
+#: src/language/stats/roc.c:963 src/language/stats/examine.q:1575
+#: src/language/stats/oneway.q:402
+msgid "Upper Bound"
+msgstr "Límit Superior"
+
+#: src/language/stats/roc.c:967
+#, c-format
+msgid "Asymp. %g%% Confidence Interval"
+msgstr " Interval de Confiança Asimp. %g%%"
+
+#: src/language/stats/roc.c:973
+msgid "Variable under test"
+msgstr "Variable sota prova"
+
+#: src/language/stats/roc.c:1032
+msgid "Case Summary"
+msgstr "Resum del Cas"
+
+#: src/language/stats/roc.c:1054
+msgid "Unweighted"
+msgstr "No ponderat"
+
+#: src/language/stats/roc.c:1055
+msgid "Weighted"
+msgstr "Ponderat"
+
+#: src/language/stats/roc.c:1059
+msgid "Valid N (listwise)"
+msgstr "N Valid (listwise)"
+
+#: src/language/stats/roc.c:1062
+msgid "Positive"
+msgstr "Positiu"
+
+#: src/language/stats/roc.c:1063
+msgid "Negative"
+msgstr "Negatiu"
+
+#: src/language/stats/roc.c:1091
+msgid "Coordinates of the Curve"
+msgstr "Coordenades de la Corba"
+
+#: src/language/stats/roc.c:1093
+#, c-format
+msgid "Coordinates of the Curve (%s)"
+msgstr "Coordenades de la Corba (%s)"
+
+#: src/language/stats/roc.c:1103
+msgid "Test variable"
+msgstr "Variable de prova"
+
+#: src/language/stats/roc.c:1105
+msgid "Positive if greater than or equal to"
+msgstr "Positiu si és major o igual a"
+
+#: src/language/stats/roc.c:1106 src/language/stats/roc.c:1171
+msgid "Sensitivity"
+msgstr "Sensibilitat"
+
+#: src/language/stats/roc.c:1107 src/language/stats/roc.c:1170
+msgid "1 - Specificity"
+msgstr "1 - Especificitat"
+
+#: src/language/stats/roc.c:1169
+msgid "ROC Curve"
+msgstr "Corba ROC"
+
+#: src/language/stats/sign.c:91
+msgid "Negative Differences"
+msgstr "Diferències Negatives"
+
+#: src/language/stats/sign.c:92
+msgid "Positive Differences"
+msgstr "Diferències Positives"
+
+#: src/language/stats/sign.c:93 src/language/stats/wilcoxon.c:261
+msgid "Ties"
+msgstr "Lligams"
+
+#: src/language/stats/sign.c:134 src/language/stats/wilcoxon.c:331
+msgid "Exact Sig. (2-tailed)"
+msgstr "Sig. Exacta (2-cues)"
+
+#: src/language/stats/sign.c:137 src/language/stats/wilcoxon.c:332
+msgid "Exact Sig. (1-tailed)"
+msgstr "Sig. Exacta (1-cua)"
+
+#: src/language/stats/sign.c:140 src/language/stats/wilcoxon.c:335
+msgid "Point Probability"
+msgstr "Punt de Probabilitat"
+
+#: src/language/stats/wilcoxon.c:232
+msgid "Ranks"
+msgstr "Rangs"
+
+#: src/language/stats/wilcoxon.c:246
+msgid "Mean Rank"
+msgstr "Rang mitjà"
+
+#: src/language/stats/wilcoxon.c:247
+msgid "Sum of Ranks"
+msgstr "Suma de Rangs"
+
+#: src/language/stats/wilcoxon.c:259
+msgid "Negative Ranks"
+msgstr "Rangs Negatius"
+
+#: src/language/stats/wilcoxon.c:260
+msgid "Positive Ranks"
+msgstr "Rangs Positius"
+
+#: src/language/stats/wilcoxon.c:326
+msgid "Z"
+msgstr "Z"
+
+#: src/language/stats/wilcoxon.c:327
+msgid "Asymp. Sig. (2-tailed)"
+msgstr "Sig. Asimp. (2-cues)"
+
+#: src/language/data-io/combine-files.c:210
+msgid "Cannot specify the active file since no active file has been defined."
+msgstr "No es pot especificar el fitxer actiu ja que cap fitxer actiu ha estat definit."
+
+#: src/language/data-io/combine-files.c:216
+msgid "This command may not be used after TEMPORARY when the active file is an input source.  Temporary transformations will be made permanent."
+msgstr "Aquest comando no pot ser utilitzat després de TEMPORARY quan l'arxiu actiu és una font d'entrada.  Les transformacions temporals seran permanents."
+
+#: src/language/data-io/combine-files.c:250
+msgid "Multiple IN subcommands for a single FILE or TABLE."
+msgstr "Múltiples subcomandos IN  per a un únic FILE o TABLE."
+
+#: src/language/data-io/combine-files.c:302
+#, c-format
+msgid "File %s lacks BY variable %s."
+msgstr "L'arxiu %s no té variable BY %s."
+
+#: src/language/data-io/combine-files.c:305
+#, c-format
+msgid "Active file lacks BY variable %s."
+msgstr "Arxiu actiu no té BY variable %s."
+
+#: src/language/data-io/combine-files.c:376
+msgid "The BY subcommand is required."
+msgstr "Es necessita el subcomando BY."
+
+#: src/language/data-io/combine-files.c:381
+msgid "BY is required when TABLE is specified."
+msgstr "BY és necessari quan TABLE és especificat."
+
+#: src/language/data-io/combine-files.c:386
+msgid "BY is required when SORT is specified."
+msgstr "BY és necessari quan SORT s'especifica."
+
+#: src/language/data-io/combine-files.c:513
+msgid "Combining files with incompatible encodings. String data may not be represented correctly."
+msgstr "Combinant arxius amb codificacions incompatibles. Les dades de la cadena no podran estar representades correctament."
+
+#: src/language/data-io/combine-files.c:545
+#, c-format
+msgid "Variable %s in file %s has different type or width from the same variable in earlier file."
+msgstr "La variable %s a l'arxiu %s és de tipus o amplada diferent respecte de la mateixa variable en l'arxiu anterior. "
+
+#: src/language/data-io/combine-files.c:551
+#, c-format
+msgid "In file %s, %s is numeric."
+msgstr "A l'arxiu %s, %s és numèric."
+
+#: src/language/data-io/combine-files.c:554
+#, c-format
+msgid "In file %s, %s is a string variable with width %d."
+msgstr "A l'arxiu %s, %s és una variable de cadena amb una amplada de %d."
+
+#: src/language/data-io/combine-files.c:559
+#, c-format
+msgid "In an earlier file, %s was numeric."
+msgstr "En un arxiu anterior, %s era numèric."
+
+#: src/language/data-io/combine-files.c:562
+#, c-format
+msgid "In an earlier file, %s was a string variable with width %d."
+msgstr "En un arxiu anterior, %s era una variable cadena amb una amplada de %d."
+
+#: src/language/data-io/combine-files.c:601
+#, c-format
+msgid "Variable name %s specified on %s subcommand duplicates an existing variable name."
+msgstr "Nom de la variable %s especificat al subcomando %s duplica el nom de la variable existent."
+
+#: src/language/data-io/combine-files.c:762
+#, c-format
+msgid "Encountered %zu sets of duplicate cases in the master file."
+msgstr "Trobats %zu conjunts de casos duplicats a l'arxiu principal."
+
+#: src/language/data-io/data-list.c:137
+msgid "The END subcommand may only be used within INPUT PROGRAM."
+msgstr "El subcomando END només pot ser utilitzat dins de INPUT PROGRAM."
+
+#: src/language/data-io/data-list.c:143
+msgid "The END subcommand may only be specified once."
+msgstr "El subcomando END només pot ser especificat una vegada."
+
+#: src/language/data-io/data-list.c:181
+msgid "Only one of FIXED, FREE, or LIST may be specified."
+msgstr "Només un de FIXED, FREE, o LIST pot ser especificat."
+
+#: src/language/data-io/data-list.c:243
+msgid "Encoding should not be specified for inline data. It will be ignored."
+msgstr "La codificació no ha de ser especificada per les dades en línia. Serà ignorada."
+
+#: src/language/data-io/data-list.c:254
+msgid "The END subcommand may be used only with DATA LIST FIXED."
+msgstr "El subcomando END només potser utilitzat amb DATA LIST FIXED."
+
+#: src/language/data-io/data-list.c:269
+msgid "At least one variable must be specified."
+msgstr "Al menys una variable ha de ser especificada."
+
+#: src/language/data-io/data-list.c:368 src/language/data-io/data-list.c:457
+#: src/language/data-io/get-data.c:530
+#, c-format
+msgid "%s is a duplicate variable name."
+msgstr "%s és un nom de variable duplicat."
+
+#: src/language/data-io/data-list.c:375
+#, c-format
+msgid "There is already a variable %s of a different type."
+msgstr "Ja existeix una variable %s de diferent tipus."
+
+#: src/language/data-io/data-list.c:382
+#, c-format
+msgid "There is already a string variable %s of a different width."
+msgstr "Ja existeix una cadena de la variable %s d'amplada diferent."
+
+#: src/language/data-io/data-list.c:390
+#, c-format
+msgid "Cannot place variable %s on record %d when RECORDS=%d is specified."
+msgstr "No es pot posar la variable %s en el registre %d quan RECORDS=%d està especificat."
+
+#: src/language/data-io/data-parser.c:460
+#: src/language/data-io/data-parser.c:469
+msgid "Quoted string extends beyond end of line."
+msgstr "La cadena entre cometes s'estén més enllà del final de línia."
+
+#: src/language/data-io/data-parser.c:525
+#, c-format
+msgid "Partial case of %d of %d records discarded."
+msgstr "Casos parcials de %d de %d registres descartats."
+
+#: src/language/data-io/data-parser.c:572
+#, c-format
+msgid "Partial case discarded.  The first variable missing was %s."
+msgstr "Cas parcial descartat.  La primera variable que faltava era %s."
+
+#: src/language/data-io/data-parser.c:610
+#, c-format
+msgid "Missing value(s) for all variables from %s onward.  These will be filled with the system-missing value or blanks, as appropriate."
+msgstr "Valor(s) perdut(s) per a totes les variables des de %st.  Aquests s'omplen amb el valor perdut del sistema o espais en blanc, segons correspongui."
+
+#: src/language/data-io/data-parser.c:630
+msgid "Record ends in data not part of any field."
+msgstr "El registre termina amb dades que no formen part de cap camp."
+
+#: src/language/data-io/data-parser.c:651 src/language/data-io/print.c:405
+msgid "Record"
+msgstr "Registre"
+
+#: src/language/data-io/data-parser.c:652 src/language/data-io/print.c:406
+#: src/ui/gui/psppire-var-sheet.c:540 src/ui/gui/psppire-var-store.c:839
+#: src/ui/gui/crosstabs.glade:92
+msgid "Columns"
+msgstr "Columnes"
+
+#: src/language/data-io/data-parser.c:653
+#: src/language/data-io/data-parser.c:692 src/language/data-io/print.c:407
+msgid "Format"
+msgstr "Format"
+
+#: src/language/data-io/data-parser.c:672
+#, c-format
+msgid "Reading %d record from %s."
+msgid_plural "Reading %d records from %s."
+msgstr[0] "Llegint %d registre de %s."
+msgstr[1] "Llegint %d registres de %s."
+
+#: src/language/data-io/data-parser.c:708
+#, c-format
+msgid "Reading free-form data from %s."
+msgstr "Llegint dades amb format lliure de %s."
+
+#. TRANSLATORS: this fragment will be interpolated into
+#. messages in fh_lock() that identify types of files.
+#: src/language/data-io/data-reader.c:122
+#: src/language/data-io/data-writer.c:58
+msgid "data file"
+msgstr "arxiu de dades"
+
+#: src/language/data-io/data-reader.c:149
+#, c-format
+msgid "Could not open \"%s\" for reading as a data file: %s."
+msgstr "No s'ha pogut obrir \"%s\" per a la lectura com un arxiu de dades: %s."
+
+#: src/language/data-io/data-reader.c:191
+msgid "Unexpected end-of-file while reading data in BEGIN DATA.  This probably indicates a missing or misformatted END DATA command.  END DATA must appear by itself on a single line with exactly one space between words."
+msgstr "Final d'arxiu inesperat durant la lectura de dades en BEGIN DATA.  Això probablement indica una pérdua o format erroni del comando END DATA.  END DATA ha d'aparèixer per si mateix en una sola línia amb exactament un espai entre les paraules."
+
+#: src/language/data-io/data-reader.c:216
+#, c-format
+msgid "Error reading file %s: %s."
+msgstr "S'ha produït un error en llegir l'arxiu %s: %s."
+
+#: src/language/data-io/data-reader.c:219
+#, c-format
+msgid "Unexpected end of file reading %s."
+msgstr "Final inesperat en la lectura d'arxiu %s."
+
+#: src/language/data-io/data-reader.c:228
+#, c-format
+msgid "Unexpected end of file in partial record reading %s."
+msgstr "Fi d'arxiu inesperat en la lectura del registre parcial %s."
+
+#: src/language/data-io/data-reader.c:288
+#, c-format
+msgid "Corrupt block descriptor word at offset 0x%lx in %s."
+msgstr "Paraula descriptora de bloc malmesa en localització 0x%lx en %s."
+
+#: src/language/data-io/data-reader.c:289
+#, c-format
+msgid "Corrupt record descriptor word at offset 0x%lx in %s."
+msgstr "Paraula descriptora de registre malmesa en localització 0x%lx en %s."
+
+#: src/language/data-io/data-reader.c:302
+#, c-format
+msgid "Corrupt record size at offset 0x%lx in %s."
+msgstr "Longitud de registre malmesa en localització 0x%lx en %s."
+
+#: src/language/data-io/data-reader.c:444
+msgid "Record exceeds remaining block length."
+msgstr "El registre excedeix la longitud de blocs restants."
+
+#: src/language/data-io/data-reader.c:518
+#, c-format
+msgid "Attempt to read beyond end-of-file on file %s."
+msgstr "Intent llegir més enllà de la fi de l'arxiu a %s."
+
+#: src/language/data-io/data-reader.c:521
+msgid "Attempt to read beyond END DATA."
+msgstr "Intent de llegir més enllà de END DATA."
+
+#: src/language/data-io/data-reader.c:707
+msgid "This command is not valid here since the current input program does not access the inline file."
+msgstr "Aquesta ordre no es vàlida ja que el programa d'entrada actual no té accés a l'arxiu en línia."
+
+#: src/language/data-io/data-writer.c:74
+#, c-format
+msgid "An error occurred while opening \"%s\" for writing as a data file: %s."
+msgstr "S'ha produït un error en obrir \"%s\" per a escriure'l com un arxiu de dades: %s."
+
+#: src/language/data-io/data-writer.c:191
+#, c-format
+msgid "I/O error occurred writing data file \"%s\"."
+msgstr "I/O error en escriure les dades del fitxer \"%s\"."
+
+#: src/language/data-io/get-data.c:64
+#, c-format
+msgid "Unsupported TYPE %s"
+msgstr "TYPE %s no admès"
+
+#: src/language/data-io/get-data.c:260
+#, c-format
+msgid "%s is allowed only with %s arrangement, but %s arrangement was stated or implied earlier in this command."
+msgstr "%s només es permet amb configuració %s, però prèviament en aquest comando s'ha establit la configuració %s."
+
+#: src/language/data-io/get-data.c:315
+msgid "expecting FIXED or DELIMITED"
+msgstr "esperant FIXED o DELIMITED"
+
+#: src/language/data-io/get-data.c:328
+msgid "Value of FIRSTCASE must be 1 or greater."
+msgstr "Valor de FIRSTCASE ha de ser major o igual a 1."
+
+#: src/language/data-io/get-data.c:353
+msgid "expecting LINE or VARIABLES"
+msgstr "esperant LINE o VARIABLES"
+
+#: src/language/data-io/get-data.c:366
+msgid "Value of FIXCASE must be at least 1."
+msgstr "Valor de FIXCASE ha de ser com a mínim 1."
+
+#: src/language/data-io/get-data.c:386
+msgid "Value of FIRST must be at least 1."
+msgstr "Valor de FIRST ha de ser com a mínim 1."
+
+#: src/language/data-io/get-data.c:398
+msgid "Value of PERCENT must be between 1 and 100."
+msgstr "Valor de PERCENT ha de ser entre 1 i 100."
+
+#: src/language/data-io/get-data.c:447
+msgid "In compatible syntax mode, the QUALIFIER string must contain exactly one character."
+msgstr "En el mode de sintaxi compatible, la cadena QUALIFIER ha de contenir exactament un caràcter."
+
+#: src/language/data-io/get-data.c:462
+msgid "expecting VARIABLES"
+msgstr "esperant VARIABLES"
+
+#: src/language/data-io/get-data.c:484
+#: src/language/data-io/placement-parser.c:378
+#, c-format
+msgid "The record number specified, %ld, is at or before the previous record, %d.  Data fields must be listed in order of increasing record number."
+msgstr "El nombre de registre especificat, %ld, és a o abans del registre anterior, %d.  Els camps de dades han de ser llistats en ordre incremental del número de registre."
+
+#: src/language/data-io/get-data.c:493
+#, c-format
+msgid "The record number specified, %ld, exceeds the number of records per case specified on FIXCASE, %d."
+msgstr "El nombre de registre especificat , %ld, excedeix el nombre de registres per cas especificats a FIXCASE, %d."
+
+#: src/language/data-io/get.c:99
+msgid "expecting COMM or TAPE"
+msgstr "esperant COMM o TAPE"
+
+#: src/language/data-io/inpt-pgm.c:130
+msgid "Unexpected end-of-file within INPUT PROGRAM."
+msgstr "Final d'arxiu inesperat dins INPUT PROGRAM."
+
+#: src/language/data-io/inpt-pgm.c:143
+msgid "Input program did not create any variables."
+msgstr "El programa d'entrada no va crear cap variable."
+
+#: src/language/data-io/inpt-pgm.c:288
+msgid "COLUMN subcommand multiply specified."
+msgstr "subcomando COLUMN especificat múltiples vegades."
+
+#: src/language/data-io/inpt-pgm.c:338
+msgid "REREAD: Column numbers must be positive finite numbers.  Column set to 1."
+msgstr "REREAD: Els nombres de columna han de ser nombres positius finits. La columna s'estableix en 1."
+
+#: src/language/data-io/placement-parser.c:87
+#, c-format
+msgid "Number of variables specified (%zu) differs from number of variable formats (%zu)."
+msgstr "Nombre de variables especificades (%zu) difereix del nombre de formats de la variable (%zu)."
+
+#: src/language/data-io/placement-parser.c:97
+msgid "SPSS-like or Fortran-like format specification expected after variable names."
+msgstr "Després del nom de les variables s'esperen especificacions en format tipus-SPSS o tipus-Fortran."
+
+#: src/language/data-io/placement-parser.c:119
+#, c-format
+msgid "The %d columns %d-%d can't be evenly divided into %zu fields."
+msgstr "Les %d columnes %d-%d no poden ser uniformement dividides entre els camps %zu."
+
+#: src/language/data-io/placement-parser.c:305
+msgid "Column positions for fields must be positive."
+msgstr "Les posicions de columna pels camps han de ser positives."
+
+#: src/language/data-io/placement-parser.c:307
+msgid "Column positions for fields must not be negative."
+msgstr "Les posicions de columnes pels camps no poden ser negatives."
+
+#: src/language/data-io/placement-parser.c:344
+msgid "The ending column for a field must be greater than the starting column."
+msgstr "La columna final d'un camp ha de ser major que la columna d'inici."
+
+#: src/language/data-io/print-space.c:116
+msgid "The expression on PRINT SPACE evaluated to the system-missing value."
+msgstr "L'expressió a PRINT SPACE s'avalua pel sistema de valors perduts."
+
+#: src/language/data-io/print-space.c:119
+#, c-format
+msgid "The expression on PRINT SPACE evaluated to %g."
+msgstr "L'expressió a PRINT SPACE s'avalua a %g."
+
+#: src/language/data-io/print.c:179 src/language/data-io/trim.c:54
+msgid "expecting a valid subcommand"
+msgstr "esperant un subcomando vàlid"
+
+#: src/language/data-io/print.c:267
+#, c-format
+msgid "Output calls for %d records but %zu specified on RECORDS subcommand."
+msgstr "Resultats obtinguts per a %d registres, però %zu especificats al subcomando RECORDS."
+
+#: src/language/data-io/print.c:438
+#, c-format
+msgid "Writing %d record to %s."
+msgid_plural "Writing %d records to %s."
+msgstr[0] "Escribint %d registre a %s."
+msgstr[1] "Escribint %d registres a %s."
+
+#: src/language/data-io/print.c:442
+#, c-format
+msgid "Writing %d record."
+msgid_plural "Writing %d records."
+msgstr[0] "Escribint %d registre."
+msgstr[1] "Escrivint %d registres."
+
+#: src/language/data-io/save.c:223 src/language/data-io/save.c:238
+#: src/language/data-io/save.c:266
+#, c-format
+msgid "expecting %s or %s"
+msgstr "esperant %s o %s"
+
+#: src/language/data-io/trim.c:88
+#, c-format
+msgid "Cannot rename %s as %s because there already exists a variable named %s.  To rename variables with overlapping names, use a single RENAME subcommand such as \"/RENAME (A=B)(B=C)(C=A)\", or equivalently, \"/RENAME (A B C=B C A)\"."
+msgstr "No es pot canviar el nom %s per %s perquè ja hi ha una variable anomenada %s.  Per canviar el nom de les variables amb noms superposats, utilitzeu el subcomando RENAME només com a \"/RENAME (A=B)(B=C)(C=A)\", o equivalentment, \"/RENAME (A B C=B C A)\"."
+
+#: src/language/data-io/trim.c:114
+msgid "`=' expected after variable list."
+msgstr "`=' esperat després de llista de variables."
+
+#: src/language/data-io/trim.c:121
+#, c-format
+msgid "Number of variables on left side of `=' (%zu) does not match number of variables on right side (%zu), in parenthesized group %d of RENAME subcommand."
+msgstr "El nombre de variables en el costat esquerre de `=' (%zu) no coincideix amb el nombre de variables al costat dret (%zu), en el grup entre parèntesi %d del subcomando RENAME."
+
+#: src/language/data-io/trim.c:134
+#, c-format
+msgid "Requested renaming duplicates variable name %s."
+msgstr "El reanomenament demanat duplica el nom de la variable %s."
+
+#: src/language/data-io/trim.c:165
+msgid "Cannot DROP all variables from dictionary."
+msgstr "Impossible DROP totes les variables del diccionari."
+
+#: src/language/expressions/evaluate.c:155
+msgid "expecting number or string"
+msgstr "esperant nombre o cadena"
+
+#: src/language/expressions/evaluate.c:169
+#, c-format
+msgid "Duplicate variable name %s."
+msgstr "Nom de la variable %s duplicat."
+
+#: src/language/expressions/helpers.c:51
+msgid "One of the arguments to a DATE function is not an integer.  The result will be system-missing."
+msgstr "Un dels arguments per a funció DATE no és un enter. El resultat serà perdut del sistema."
+
+#: src/language/expressions/helpers.c:73
+msgid "The week argument to DATE.WKYR is not an integer.  The result will be system-missing."
+msgstr "L'argument de setmana per DATE.WKYR no és un enter. El resultat serà perdut pel sistema."
+
+#: src/language/expressions/helpers.c:79
+msgid "The week argument to DATE.WKYR is outside the acceptable range of 1 to 53.  The result will be system-missing."
+msgstr "L'argument de setmana per DATE.WKYR és fora de l'interval acceptable entre 1 i 53.  El resultat serà perdut pel sistema."
+
+#: src/language/expressions/helpers.c:101
+msgid "The day argument to DATE.YRDAY is not an integer.  The result will be system-missing."
+msgstr "L'argument de dia per DATE.YRDAY no és un enter.  El resultat serà perdut pel sistema."
+
+#: src/language/expressions/helpers.c:107
+msgid "The day argument to DATE.YRDAY is outside the acceptable range of 1 to 366.  The result will be system-missing."
+msgstr "L'argument de dia per DATE.YRDAY és fora de l'interval acceptable entre 1 i 366. El resultat serà perdut al sistema."
+
+#: src/language/expressions/helpers.c:129
+msgid "The year argument to YRMODA is greater than 47516.  The result will be system-missing."
+msgstr "L'argument d'any per YRMODA és més gran que 47516. El resultat será  perdut al sistema."
+
+#: src/language/expressions/helpers.c:182
+#, c-format
+msgid "Unrecognized date unit \"%.*s\".  Valid date units are \"years\", \"quarters\", \"months\", \"weeks\", \"days\", \"hours\", \"minutes\", and \"seconds\"."
+msgstr "Unitat de dates  \"%.*s\" no reconeguda. Les unitats de data vàlides són \"anys\", \"trimestres\", \"mesos\", \"setmanes\", \"dies\", \"hores\", \"minuts\", i \"segons\"."
+
+#: src/language/expressions/helpers.c:332
+msgid "Invalid DATESUM method.  Valid choices are \"closest\" and \"rollover\"."
+msgstr "Mètode DATESUM invàlid. Les opcions vàlides són \"propera\" i  \"acomplida\"."
+
+#: src/language/expressions/parse.c:259
+#, c-format
+msgid "Type mismatch: expression has %s type, but a numeric value is required here."
+msgstr "Incompatibilitat de tipus: l'expressió té tipus %s, però aquí es demana un valor numèric."
+
+#: src/language/expressions/parse.c:271
+#, c-format
+msgid "Type mismatch: expression has %s type, but a string value is required here."
+msgstr "Incompatibilitat de tipus: l'expressió té tipus %s, però aquí es demana un valor de cadena."
+
+#: src/language/expressions/parse.c:427
+#, c-format
+msgid "Type mismatch while applying %s operator: cannot convert %s to %s."
+msgstr "Incompatibilitat dels tipus mentre que s'aplica l'operador %s: no es pot convertir %s a %s."
+
+#: src/language/expressions/parse.c:643
+msgid "Chaining relational operators (e.g. \"a < b < c\") will not produce the mathematically expected result.  Use the AND logical operator to fix the problem (e.g. \"a < b AND b < c\").  If chaining is really intended, parentheses will disable this warning (e.g. \"(a < b) < c\".)"
+msgstr "L'encadenament d'operadors relacionals (p.e. \"a < b < c\") no produirà el resultat esperat matemàticament. Utilitzar l'operador lògic AND per solucionar el problema (p.e. \"a < b AND b < c\"). Si l'encadenament és realment intencionat, els parèntesis desactivaran aquesta alerta (p.e. \"(a < b) < c\".)"
+
+#: src/language/expressions/parse.c:744
+msgid "The exponentiation operator (\"**\") is left-associative, even though right-associative semantics are more useful.  That is, \"a**b**c\" equals \"(a**b)**c\", not as \"a**(b**c)\".  To disable this warning, insert parentheses."
+msgstr "L'operador d'exponenciació (\"**\") apareix a l'esquerra, tot i que si apareix a la dreta és més útil.  És a dir, \"a**b**c\" és igual a \"(a**b)**c\", no a \"a**(b**c)\". Per desactivar aquesta alerta, insereix parèntesis."
+
+#: src/language/expressions/parse.c:809
+#, c-format
+msgid "Unknown system variable %s."
+msgstr "Variable de sistema desconeguda %s."
+
+#: src/language/expressions/parse.c:857
+#, c-format
+msgid "Unknown identifier %s."
+msgstr "Identificador desconegut %s."
+
+#: src/language/expressions/parse.c:892
+msgid "in expression"
+msgstr "en l'expressió"
+
+#: src/language/expressions/parse.c:1073
+#, c-format
+msgid "%s must have at least %d arguments in list."
+msgstr "%s ha de tenir com a mínim %d arguments a la llista."
+
+#: src/language/expressions/parse.c:1082
+#, c-format
+msgid "%s must have even number of arguments in list."
+msgstr "%s han de tenir un nombre parell d'arguments a la llista."
+
+#: src/language/expressions/parse.c:1085
+#, c-format
+msgid "%s must have multiple of %d arguments in list."
+msgstr "%s ha de tenir un múltiple de %d arguments a la llista."
+
+#: src/language/expressions/parse.c:1095
+#, c-format
+msgid "%s function does not accept a minimum valid argument count."
+msgstr "la funció %s no accepta un mínim recompte d'arguments vàlids."
+
+#: src/language/expressions/parse.c:1104
+#, c-format
+msgid "%s requires at least %d valid arguments in list."
+msgstr "%s requereix com a mínim %d arguments vàlids en la llista."
+
+#: src/language/expressions/parse.c:1110
+#, c-format
+msgid "With %s, using minimum valid argument count of %d does not make sense when passing only %d arguments in list."
+msgstr "Amb %s, utilitzar el mínim recompte d'argument vàlid %d no té sentit quan es passen només %d arguments en la llista."
+
+#: src/language/expressions/parse.c:1164
+#, c-format
+msgid "Type mismatch invoking %s as "
+msgstr "Incompatibilitats de tipus invocant %s com a"
+
+#: src/language/expressions/parse.c:1169
+msgid "Function invocation "
+msgstr "Invocació de funció"
+
+#: src/language/expressions/parse.c:1171
+msgid " does not match any known function.  Candidates are:"
+msgstr "no coincideix amb cap funció coneguda. Els candidats són:"
+
+#: src/language/expressions/parse.c:1201
+#, c-format
+msgid "No function or vector named %s."
+msgstr "Cap funció o vector anomenat %s."
+
+#: src/language/expressions/parse.c:1244
+#, c-format
+msgid "expecting `,' or `)' invoking %s function"
+msgstr "esperant `,' o `)' invocant la funció %s"
+
+#: src/language/expressions/parse.c:1264
+#, c-format
+msgid "%s is a PSPP extension."
+msgstr "%s és una extensió de PSPP."
+
+#: src/language/expressions/parse.c:1273
+#, c-format
+msgid "%s may not appear after TEMPORARY."
+msgstr "%s no pot aparèixer desprès de TEMPORARY."
+
+#: src/libpspp/hash.c:545
+#, c-format
+msgid "hash table:"
+msgstr "taula hash:"
+
+#: src/libpspp/tmpfile.c:55
+msgid "failed to create temporary file"
+msgstr "error en crear l'arxiu temporal"
+
+#: src/libpspp/tmpfile.c:96
+msgid "seeking in temporary file"
+msgstr "cercant en l'arxiu temporal"
+
+#: src/libpspp/tmpfile.c:115
+msgid "reading temporary file"
+msgstr "llegint arxiu temporal"
+
+#: src/libpspp/tmpfile.c:117
+msgid "unexpected end of file reading temporary file"
+msgstr "final de fitxer inesperat en llegir l'arxiu temporal"
+
+#: src/libpspp/tmpfile.c:136
+msgid "writing to temporary file"
+msgstr "escrivint a un arxiu temporal"
+
+#: src/math/percentiles.c:35
+msgid "HAverage"
+msgstr "HAverage"
+
+#: src/math/percentiles.c:36
+msgid "Weighted Average"
+msgstr "Mitjana Ponderada"
+
+#: src/math/percentiles.c:37
+msgid "Rounded"
+msgstr "Arrodonit"
+
+#: src/math/percentiles.c:38
+msgid "Empirical"
+msgstr "Empíric"
+
+#: src/math/percentiles.c:39
+msgid "Empirical with averaging"
+msgstr "Empíric amb mitjanes"
+
+#: src/output/charts/plot-hist.c:138
+msgid "HISTOGRAM"
+msgstr "HISTOGRAM"
+
+#: src/output/charts/plot-hist.c:140 src/language/stats/frequencies.q:1052
+msgid "Frequency"
+msgstr "Freqüència"
+
+#: src/output/afm.c:149
+#, c-format
+msgid "opening font metrics file \"%s\""
+msgstr "obrint arxiu de mètriques d'origen \"%s\""
+
+#: src/output/afm.c:239
+msgid "first line must be StartFontMetrics"
+msgstr "la primera línia ha de ser StarFontMetrics"
+
+#: src/output/afm.c:266
+#, c-format
+msgid "unsupported MappingScheme %d"
+msgstr "MappingScheme %d no suportat"
+
+#: src/output/afm.c:287
+msgid "required FontName is missing"
+msgstr "Manca el FontName requerit"
+
+#: src/output/afm.c:394
+msgid "CharMetrics line must start with C or CH"
+msgstr "La línia CharMetrics ha de començar amb C o H"
+
+#: src/output/afm.c:535
+#, c-format
+msgid "reference to unknown character \"%s\""
+msgstr "referència al caràcter desconegut \"%s\""
+
+#: src/output/afm.c:593
+msgid "expected end of file"
+msgstr "fi d'arxiu esperat"
+
+#: src/output/afm.c:605
+msgid "syntax error expecting end of line"
+msgstr "error de sintaxi en esperar el final de línia"
+
+#: src/output/afm.c:623 src/output/afm.c:660
+msgid "number out of valid range"
+msgstr "número fora de l'interval vàlid"
+
+#: src/output/afm.c:625 src/output/afm.c:662
+msgid "invalid numeric syntax"
+msgstr "sintaxi numèrica invàlida"
+
+#: src/output/afm.c:641
+msgid "syntax error expecting integer"
+msgstr "error de sintaxi tot esperant un sencer"
+
+#: src/output/afm.c:679
+msgid "syntax error expecting number"
+msgstr "error de sintaxi tot esperant un número"
+
+#: src/output/afm.c:692
+msgid "syntax error in hex constant"
+msgstr "error de sintaxi en constant hexadecimal"
+
+#: src/output/afm.c:707
+msgid "syntax error expecting hex constant"
+msgstr "error de sintaxi quan s'esperava un hexadecimal"
+
+#: src/output/afm.c:745
+msgid "unexpected end of line"
+msgstr "final de línia inesperat"
+
+#: src/output/afm.c:795
+msgid "unexpected end of line expecting string"
+msgstr "final de línia inesperat quan s'esperava una cadena"
+
+#: src/output/ascii.c:251
+#, c-format
+msgid "ascii: page excluding margins and headers must be at least 59 characters wide by 15 lines long, but as configured is only %d characters by %d lines"
+msgstr "ascii: la pàgina excloent els marges i encapçalaments ha de ser com a mínim de 59 caràcters d'ample per 15 línies de llarg, però tal com està configurada la pàgina només hi ha %d caràcters i %d línies"
+
+#: src/output/ascii.c:329
+#, c-format
+msgid "ascii: bad index value for `box' key: syntax is box[INDEX], 0 <= INDEX < %d decimal, with INDEX expressed in base 4"
+msgstr "ascii: índex de valor defectuós per a la clau `box' : la sintaxi és la box[INDEX], 0 <= INDEX < %d decimal, amb INDEX expressat en base 4"
+
+#: src/output/ascii.c:336
+#, c-format
+msgid "ascii: multiple values for %s"
+msgstr "ascii: valors múltiples per a %s"
+
+#: src/output/ascii.c:344
+#, c-format
+msgid "ascii: unknown parameter `%s'"
+msgstr "ascii: paràmetre desconegut `%s'"
+
+#: src/output/ascii.c:360
+msgid "ascii: only screen devices may have `auto' length or width"
+msgstr "ascii: només els dispositius de pantalla poden tenir longitud o amplada `auto'"
+
+#: src/output/ascii.c:374
+#, c-format
+msgid "ascii: positive integer required as `%s' value"
+msgstr "ascii: enter positiu requerit com a valor `%s'"
+
+#: src/output/ascii.c:402
+msgid "ascii: `emphasis' value must be `bold', `underline', or `none'"
+msgstr "ascii: el valor d' `emphasis' ha de ser `bold', `underline', o `none'"
+
+#: src/output/ascii.c:415
+#, c-format
+msgid "ascii: zero or positive integer required as `%s' value"
+msgstr "ascii: zero o enter positiu requerit com a valor `%s'"
+
+#: src/output/ascii.c:446
+#, c-format
+msgid "ascii: boolean value expected for `%s'"
+msgstr "ascii: valor booleà esperat per a `%s'"
+
+#: src/output/ascii.c:478 src/output/html.c:187
+msgid "`chart-files' value must contain `#'"
+msgstr "`chart-files' ha de contenir el valor `#'"
+
+#: src/output/ascii.c:524
+#, c-format
+msgid "ascii: opening output file \"%s\""
+msgstr "ascii: obrint l'arxiu de resultats \"%s\""
+
+#: src/output/ascii.c:587
+#, c-format
+msgid "ascii: bad line (%d,%d)-(%d,%d) out of (%d,%d)\n"
+msgstr "ascii: línia defectuosa (%d,%d)-(%d,%d) de (%d,%d)\n"
+
+#: src/output/ascii.c:809 src/output/postscript.c:826
+#, c-format
+msgid "%s - Page %d"
+msgstr "%s - Pàgina %d"
+
+#: src/output/ascii.c:861
+#, c-format
+msgid "ascii: closing output file \"%s\""
+msgstr "ascii: tancant l'arxiu de sortida \"%s\""
+
+#: src/output/html.c:71
+#, c-format
+msgid "opening HTML output file: %s"
+msgstr "obrint arxiu de resultat HTML: %s"
+
+#: src/output/html.c:82
+msgid "PSPP Output"
+msgstr "Resultat de PSPP"
+
+#: src/output/html.c:170
+#, c-format
+msgid "unknown configuration parameter `%s' for HTML device driver"
+msgstr "paràmetre de configuració `%s' desconegut per al dispositiu controlador HTML"
+
+#: src/output/journal.c:69
+#, c-format
+msgid "error writing \"%s\""
+msgstr "error en escriure \"%s\""
+
+#: src/output/journal.c:94
+#, c-format
+msgid "error creating \"%s\""
+msgstr "error en crear \"%s\""
+
+#: src/output/output.c:168
+#, c-format
+msgid "unknown output driver `%s'"
+msgstr " controlador de sortida desconegut `%s'"
+
+#: src/output/output.c:170
+#, c-format
+msgid "output driver `%s' referenced but never defined"
+msgstr "controlador de sortida `%s' referenciat però mai definit"
+
+#: src/output/output.c:261
+msgid "using default output driver configuration"
+msgstr "utilitzant controlador de configuració de resultats per defecte"
+
+#: src/output/output.c:290
+msgid "cannot find output initialization file (use `-vv' to view search path)"
+msgstr "no es pot trobar l'arxiu d'inicialització de resultats (utilitzar `-vv' per a veure la ruta de cerca)"
+
+#: src/output/output.c:298
+#, c-format
+msgid "cannot open \"%s\""
+msgstr "no es pot obrir \"%s\""
+
+#: src/output/output.c:310
+#, c-format
+msgid "reading \"%s\""
+msgstr "llegint \"%s\""
+
+#: src/output/output.c:332 src/ui/gui/message-dialog.c:99
+msgid "syntax error"
+msgstr "error de sintaxi"
+
+#: src/output/output.c:341
+#, c-format
+msgid "error closing \"%s\""
+msgstr "error en tancar \"%s\""
+
+#: src/output/output.c:349
+msgid "no active output drivers"
+msgstr "no hi ha controladors de sortida actius"
+
+#: src/output/output.c:352
+msgid "error reading device definition file"
+msgstr "error llegint l'arxiu de definició del dispositiu"
+
+#: src/output/output.c:470
+#, c-format
+msgid ""
+"Driver classes:\n"
+"\t"
+msgstr ""
+"Clases de controlador:\n"
+"\t"
+
+#: src/output/output.c:502
+#, c-format
+msgid "syntax error parsing options for \"%s\" driver"
+msgstr "error de sintaxi analitzant opcions pel controlador \"%s\""
+
+#: src/output/output.c:518
+#, c-format
+msgid "reached end of options inside quoted string parsing options for \"%s\" driver"
+msgstr "Arribat al final d'opcions dins de la cadena entre cometes tot analitzant opcions pel controlador \"%s\""
+
+#: src/output/output.c:588
+#, c-format
+msgid "syntax error in string constant parsing options for \"%s\" driver"
+msgstr "error de sintaxi en una constant de cadena analitzant opcions pel controlador \"%s\""
+
+#: src/output/output.c:636
+#, c-format
+msgid "syntax error expecting `=' parsing options for driver \"%s\""
+msgstr "error de sintaxi quan s'esperava `=' analitzant les opcions pel controlador \"%s\""
+
+#: src/output/output.c:687
+#, c-format
+msgid "unknown output driver class `%.*s'"
+msgstr "controlador de sortida de classe desconeguda `%.*s'"
+
+#: src/output/output.c:702
+#, c-format
+msgid "unknown device type `%.*s'"
+msgstr "tipus de dispositiu desconegut `%.*s'"
+
+#: src/output/output.c:719
+#, c-format
+msgid "cannot initialize output driver `%s' of class `%s'"
+msgstr "no pot inicialitzar el controlador de sortida `%s' de la classe `%s'"
+
+#: src/output/output.c:765
+msgid "driver definition line missing driver name or class name"
+msgstr "línia de definició del controlador sense nom del controlador o nom de la classe"
+
+#: src/output/output.c:868
+#, c-format
+msgid "`%s' is not a valid length."
+msgstr "`%s' no és una longitud vàlida."
+
+#: src/output/output.c:960
+#, c-format
+msgid "unknown paper type `%.*s'"
+msgstr "tipus de paper desconegut `%.*s'"
+
+#: src/output/output.c:978
+#, c-format
+msgid "error opening \"%s\""
+msgstr "error en obrir \"%s\""
+
+#: src/output/output.c:989
+#, c-format
+msgid "error reading \"%s\""
+msgstr "error de lectura \"%s\""
+
+#: src/output/output.c:1006
+#, c-format
+msgid "paper size file \"%s\" does not state a paper size"
+msgstr "l'arxiu de mida de paper \"%s\" no indica una mida de paper"
+
+#: src/output/output.c:1066
+#, c-format
+msgid "syntax error in paper size `%s'"
+msgstr "error de sintaxi en la mida de paper `%s'"
+
+#: src/output/postscript.c:158
+#, c-format
+msgid "opening PostScript output file \"%s\""
+msgstr "obrir l'arxiu de sortida PostScript \"%s\""
+
+#: src/output/postscript.c:196
+#, c-format
+msgid "The defined PostScript page is not long enough to hold margins and headers, plus least 15 lines of the default fonts.  In fact, there's only room for %d lines of each font at the default size of %d.%03d points."
+msgstr "La pàgina PostScript definida no és prou extensa com per contenir marges i capçaleres, a més d'almenys 15 línies amb les fonts per defecte. De fet, només hi ha espai per %d línies de cada font en la mida per defecte de %d.%03d punts."
+
+#: src/output/postscript.c:246
+#, c-format
+msgid "closing PostScript output file \"%s\""
+msgstr "tanqui l'arxiu de sortida PostScript \"%s\""
+
+#: src/output/postscript.c:309
+#, c-format
+msgid "unknown configuration parameter `%s' for PostScript device driver"
+msgstr "paràmetre de configuració desconegut`%s' pel controlador del dispositiu PostScript"
+
+#: src/output/postscript.c:325
+#, c-format
+msgid "unknown orientation `%s' (valid orientations are `portrait' and `landscape')"
+msgstr "orientació desconeguda `%s' (les orientacions vàlides són `retrat' i `paisatge')"
+
+#: src/output/postscript.c:337
+#, c-format
+msgid "boolean value expected for %s"
+msgstr "valor booleà esperat per a %s"
+
+#: src/output/postscript.c:350
+#, c-format
+msgid "positive integer value required for `%s'"
+msgstr "valor enter positiu necessari per a `%s'"
+
+#: src/output/postscript.c:355
+#, c-format
+msgid "default font size must be at least 1 point (value of 1000 for key `%s')"
+msgstr "la mida de caràcter per defecte ha de ser com a mínim 1 punt (valor de 1000 per la clau `%s')"
+
+#: src/output/postscript.c:1176
+#, c-format
+msgid "\"%s\": bad font specification"
+msgstr "\"%s\": especificació de caràcter no vàlida"
+
+#: src/output/postscript.c:1184
+#, c-format
+msgid "could not find AFM file \"%s\""
+msgstr "no es pot trobar l'arxiu AFM \"%s\""
+
+#: src/output/postscript.c:1198
+#, c-format
+msgid "could not find font \"%s\""
+msgstr "no es pot trobar el caràcter \"%s\""
+
+#: src/output/postscript.c:1207
+#, c-format
+msgid "could not find encoding \"%s\""
+msgstr "no es pot trobar la codificació \"%s\""
+
+#: src/output/postscript.c:1307
+#, c-format
+msgid "cannot open font file \"%s\""
+msgstr "no es pot obrir l'arxiu de caràcter \"%s\""
+
+#: src/output/postscript.c:1348
+#, c-format
+msgid "reading font file \"%s\""
+msgstr "llegint l'arxiu de caràcter \"%s\""
+
+#: src/output/postscript.c:1370
+#, c-format
+msgid "cannot open font encoding file \"%s\""
+msgstr "no es pot obrir el fitxer de codificació del caràcter \"%s\""
+
+#: src/output/postscript.c:1399
+msgid "invalid numeric format"
+msgstr "format numèric no vàlid"
+
+#: src/output/postscript.c:1421
+#, c-format
+msgid "closing Postscript encoding \"%s\""
+msgstr "tancament de codificació Postscript \"%s\""
+
+#: src/output/table.c:237
+#, c-format
+msgid "bad vline: x=%d+%d=%d y=(%d+%d=%d,%d+%d=%d) in table size (%d,%d)\n"
+msgstr "bad vline: x=%d+%d=%d y=(%d+%d=%d,%d+%d=%d) a taula de mida (%d,%d)\n"
+
+#: src/output/table.c:308
+#, c-format
+msgid "bad box: (%d+%d=%d,%d+%d=%d)-(%d+%d=%d,%d+%d=%d) in table size (%d,%d)\n"
+msgstr "bad box: (%d+%d=%d,%d+%d=%d)-(%d+%d=%d,%d+%d=%d) en taula amb mida (%d,%d)\n"
+
+#: src/output/chart.c:154
+#, c-format
+msgid "creating \"%s\""
+msgstr "creant \"%s\""
+
+#: src/ui/source-init-opts.c:42
+msgid "set to `compatible' if you want output calculated from broken algorithms"
+msgstr "activeu `compatible' si voleu obtenir resultats calculat a partir d'algorismes trencats"
+
+#: src/ui/source-init-opts.c:43
+msgid "Append DIR to include path"
+msgstr "Adjuntar DIR a la ruta d'inclusió"
+
+#: src/ui/source-init-opts.c:44
+msgid "Clear include path"
+msgstr "Esborrar la ruta d'inclusió"
+
+#: src/ui/source-init-opts.c:45
+msgid "Disable execution of .pspp/rc at startup"
+msgstr "Deshabilitar l'execució de .pspp/rc a l'inici"
+
+#: src/ui/source-init-opts.c:46
+msgid "Set configuration directory to DIR"
+msgstr "Establir DIR com a directori de configuració"
+
+#: src/ui/source-init-opts.c:47
+msgid "Don't allow some unsafe operations"
+msgstr "No permet algunes operacions insegures"
+
+#: src/ui/source-init-opts.c:48
+msgid "Set to `compatible' if you want only to accept SPSS compatible syntax"
+msgstr "Activeu `compatible' si només voleu acceptar la sintaxi compatible de l'SPSS"
+
+#: src/ui/source-init-opts.c:83
+msgid "Algorithm must be either \"compatible\" or \"enhanced\"."
+msgstr "Algorisme ha de ser o \"compatible\" o \"ampliat\"."
+
+#: src/ui/source-init-opts.c:124
+msgid "Syntax must be either \"compatible\" or \"enhanced\"."
+msgstr "La sintaxi ha de ser o \"compatible\" o \"ampliada\"."
+
+#: src/ui/terminal/main.c:115
+msgid "PSPP --- A program for statistical analysis"
+msgstr "PSPP ---Un programa d'anàlisi estadística"
+
+#: src/ui/terminal/main.c:116
+msgid "FILE1, FILE2 ... FILEn"
+msgstr "FILE1, FILE2 ... FILEn"
+
+#: src/ui/terminal/main.c:119 src/ui/terminal/terminal-opts.c:177
+msgid "Options affecting input and output locations:"
+msgstr "Opcions que afecten a ubicacions d'entrada i sortida:"
+
+#: src/ui/terminal/main.c:122 src/ui/terminal/terminal-opts.c:178
+msgid "Diagnostic options:"
+msgstr "Opcions de diagnòstic:"
+
+#: src/ui/terminal/main.c:125 src/ui/gui/main.c:177
+msgid "Options affecting syntax and behavior:"
+msgstr "Opcions que afecten a la sintaxi i al comportament:"
+
+#: src/ui/terminal/main.c:156
+msgid "Stopping syntax file processing here to avoid a cascade of dependent command failures."
+msgstr "Aturant el processament de l'arxiu de sintaxi aquí per evitar una cascada d'errors derivats."
+
+#: src/ui/terminal/msg-ui.c:67
+#, c-format
+msgid "Cannot open %s (%s). Writing errors to stdout instead.\n"
+msgstr "No es pot obrir %s (%s). Alternativament, escrivint errors a stdout.\n"
+
+#: src/ui/terminal/msg-ui.c:94
+msgid "Terminating execution of syntax file due to error."
+msgstr "Finalitzant l'execució de l'arxiu de sintaxi degut a un error."
+
+#: src/ui/terminal/msg-ui.c:96
+#, c-format
+msgid "Errors (%d) exceeds limit (%d)."
+msgstr "Errors (%d) excedeixen el límit (%d)."
+
+#: src/ui/terminal/msg-ui.c:99
+#, c-format
+msgid "Warnings (%d) exceed limit (%d)."
+msgstr "Avisos (%d) excedeixen el límit (%d)."
+
+#: src/ui/terminal/msg-ui.c:150
+msgid "error"
+msgstr "error"
+
+#: src/ui/terminal/msg-ui.c:151
+msgid "warning"
+msgstr "avís"
+
+#: src/ui/terminal/terminal.c:72
+#, c-format
+msgid "could not access definition for terminal `%s'"
+msgstr "no es pot accedir a la definició per a terminal `%s'"
+
+#: src/ui/terminal/terminal-opts.c:41
+msgid "Increase diagnostic verbosity level"
+msgstr "Augmentar el nivell de verbositat del diagnòstic"
+
+#: src/ui/terminal/terminal-opts.c:68
+msgid "Send error messages to FILE (appended)"
+msgstr "Enviar missatges d'error a FILE (annexa)"
+
+#: src/ui/terminal/terminal-opts.c:71
+msgid "Select output driver DEVICE and disable defaults"
+msgstr "Seleccionar el controlador de sortida DEVICE i desactivar els valors per defecte"
+
+#: src/ui/terminal/terminal-opts.c:74
+msgid "Print a list of known driver classes, then exit"
+msgstr "Imprimir una llista de classes de controladors coneguts, després sortir"
+
+#: src/ui/terminal/terminal-opts.c:76
+msgid "Start an interactive session"
+msgstr "Inici d'una sessió interactiva"
+
+#: src/ui/gui/about.c:64
+msgid "A program for the analysis of sampled data"
+msgstr "Un programa per a l'anàlisi de dades de mostreig"
+
+#. TRANSLATORS: Use this string to list the people who have helped with
+#. translation to your language.
+#: src/ui/gui/about.c:74
+msgid "translator-credits"
+msgstr "F.J. Miguel, J. Gómez, P. Payà"
+
+#: src/ui/gui/checkbox-treeview.c:92 src/language/stats/crosstabs.q:1234
+#: src/language/stats/crosstabs.q:1261 src/language/stats/crosstabs.q:1285
+#: src/language/stats/crosstabs.q:1309 src/language/stats/examine.q:1753
+msgid "Statistic"
+msgstr "Estatístic"
+
+#: src/ui/gui/comments-dialog.c:58
+#, c-format
+msgid "Column Number: %d"
+msgstr "Número de columna: %d"
+
+#: src/ui/gui/crosstabs-dialog.c:40
+msgid "Chisq"
+msgstr "Chisq"
+
+#: src/ui/gui/crosstabs-dialog.c:41 src/language/stats/crosstabs.q:1842
+msgid "Phi"
+msgstr "Phi"
+
+#: src/ui/gui/crosstabs-dialog.c:42
+msgid "CC"
+msgstr "CC"
+
+#: src/ui/gui/crosstabs-dialog.c:43 src/language/stats/crosstabs.q:1980
+msgid "Lambda"
+msgstr "Lambda"
+
+#: src/ui/gui/crosstabs-dialog.c:44
+msgid "UC"
+msgstr "UC"
+
+#: src/ui/gui/crosstabs-dialog.c:45
+msgid "BTau"
+msgstr "BTau"
+
+#: src/ui/gui/crosstabs-dialog.c:46
+msgid "CTau"
+msgstr "CTau"
+
+#: src/ui/gui/crosstabs-dialog.c:47
+msgid "Risk"
+msgstr "Risc"
+
+#: src/ui/gui/crosstabs-dialog.c:48 src/language/stats/crosstabs.q:1847
+msgid "Gamma"
+msgstr "Gamma"
+
+#: src/ui/gui/crosstabs-dialog.c:49
+msgid "D"
+msgstr "D"
+
+#: src/ui/gui/crosstabs-dialog.c:50 src/language/stats/crosstabs.q:1850
+msgid "Kappa"
+msgstr "Kappa"
+
+#: src/ui/gui/crosstabs-dialog.c:51 src/language/stats/crosstabs.q:1984
+msgid "Eta"
+msgstr "Eta"
+
+#: src/ui/gui/crosstabs-dialog.c:52
+msgid "Corr"
+msgstr "Corr."
+
+#: src/ui/gui/crosstabs-dialog.c:53 src/ui/gui/crosstabs-dialog.c:64
+#: src/ui/gui/crosstabs-dialog.c:99 src/ui/gui/crosstabs-dialog.c:107
+#: src/ui/gui/psppire-var-store.c:612 src/ui/gui/var-display.c:16
+#: src/ui/gui/variable-info-dialog.c:40
+msgid "None"
+msgstr "Cap"
+
+#: src/ui/gui/crosstabs-dialog.c:56
+msgid "Count"
+msgstr "Recompte"
+
+#: src/ui/gui/crosstabs-dialog.c:57
+msgid "Row"
+msgstr "Fila"
+
+#: src/ui/gui/crosstabs-dialog.c:58
+msgid "Column"
+msgstr "Columna"
+
+#: src/ui/gui/crosstabs-dialog.c:60
+msgid "Expected"
+msgstr "Esperat"
+
+#: src/ui/gui/crosstabs-dialog.c:62
+msgid "Std. Residual"
+msgstr "Residu Tipificat"
+
+#: src/ui/gui/crosstabs-dialog.c:63
+msgid "Adjusted Std. Residual"
+msgstr "Residu Tipificat Ajustat"
+
+#: src/ui/gui/customentry.c:334
+msgid "Style of bevel around the custom entry button"
+msgstr "Estil de bisell al voltant del botó d'entrada personalitzada"
+
+#: src/ui/gui/descriptives-dialog.c:40 src/ui/gui/frequencies-dialog.c:41
+msgid "Standard deviation"
+msgstr "Desviació Estàndard"
+
+#: src/ui/gui/descriptives-dialog.c:45
+msgid "Standard error"
+msgstr "Error Estàndard"
+
+#: src/ui/gui/find-dialog.c:652
+#, c-format
+msgid "Bad regular expression: %s"
+msgstr "Expressió regular incorrecta: %s"
+
+#: src/ui/gui/frequencies-dialog.c:44
+msgid "Standard error of the mean"
+msgstr "Error estàndard en la mitjana"
+
+#: src/ui/gui/frequencies-dialog.c:47
+msgid "Standard error of the skewness"
+msgstr "Error estàndard de l'asimetria"
+
+#: src/ui/gui/frequencies-dialog.c:49 src/language/stats/frequencies.q:126
+msgid "Mode"
+msgstr "Mode"
+
+#: src/ui/gui/frequencies-dialog.c:51
+msgid "Standard error of the kurtosis"
+msgstr "Error estàndard en la curtosi"
+
+#: src/ui/gui/frequencies-dialog.c:52 src/language/stats/examine.q:1584
+#: src/language/stats/frequencies.q:125
+msgid "Median"
+msgstr "Mediana"
+
+#: src/ui/gui/helper.c:197
+msgid "Sorry. The help system hasn't yet been implemented."
+msgstr "Disculpeu. El sistema d'ajuda encara no ha estat implementat."
+
+#: src/ui/gui/helper.c:242
+#, c-format
+msgid "Cannot open reference manual: %s"
+msgstr "No es pot obrir el manual de referència: %s"
+
+#: src/ui/gui/main.c:43
+msgid "Don't show the splash screen"
+msgstr "No tornar a mostrar la pantalla de benvinguda"
+
+#: src/ui/gui/main.c:173
+msgid "PSPPIRE --- A user interface for PSPP"
+msgstr "PSPPIRE --- Una interfície d'usuari per a PSPP"
+
+#: src/ui/gui/main.c:175
+msgid "Miscellaneous options:"
+msgstr "Diverses opcions:"
+
+#: src/ui/gui/message-dialog.c:103
+msgid "data file error"
+msgstr "Error en l'arxiu de dades"
+
+#: src/ui/gui/message-dialog.c:108
+msgid "PSPP error"
+msgstr "Error de PSPP"
+
+#: src/ui/gui/message-dialog.c:116
+msgid "syntax warning"
+msgstr "avís de sintaxi"
+
+#: src/ui/gui/message-dialog.c:120
+msgid "data file warning"
+msgstr "avís de l'arxiu de dades"
+
+#: src/ui/gui/message-dialog.c:125
+msgid "PSPP warning"
+msgstr "avís de PSPP"
+
+#: src/ui/gui/message-dialog.c:134
+msgid "syntax information"
+msgstr "informació de sintaxi"
+
+#: src/ui/gui/message-dialog.c:138
+msgid "data file information"
+msgstr "informació de l'arxiu de dades"
+
+#: src/ui/gui/message-dialog.c:143
+msgid "PSPP information"
+msgstr "Informació del PSPP"
+
+#: src/ui/gui/message-dialog.c:222
+msgid "The PSPP processing engine reported the following message:"
+msgid_plural "The PSPP processing engine reported the following messages:"
+msgstr[0] ""
+msgstr[1] ""
+
+#: src/ui/gui/message-dialog.c:229
+#, c-format
+msgid "The PSPP processing engine reported %d message."
+msgid_plural "The PSPP processing engine reported %d messages."
+msgstr[0] ""
+msgstr[1] ""
+
+#: src/ui/gui/message-dialog.c:236
+#, c-format
+msgid "%d of these messages are displayed below."
+msgid_plural "%d of these messages are displayed below."
+msgstr[0] ""
+msgstr[1] ""
+
+#: src/ui/gui/missing-val-dialog.c:113 src/ui/gui/missing-val-dialog.c:167
+msgid "Incorrect value for variable type"
+msgstr ""
+
+#: src/ui/gui/missing-val-dialog.c:134 src/ui/gui/missing-val-dialog.c:143
+msgid "Incorrect range specification"
+msgstr ""
+
+#: src/ui/gui/oneway-anova-dialog.c:331
+#, c-format
+msgid "Contrast %d of %d"
+msgstr ""
+
+#: src/ui/gui/psppire.c:247
+#, fuzzy
+msgid "_Reset"
+msgstr "Reiniciar"
+
+#: src/ui/gui/psppire.c:248
+msgid "_Select"
+msgstr ""
+
+#: src/ui/gui/psppire-data-editor.c:951
+#, fuzzy
+msgid "Data View"
+msgstr "arxiu de dades"
+
+#: src/ui/gui/psppire-data-editor.c:954
+#, fuzzy
+msgid "Variable View"
+msgstr "Variable"
+
+#: src/ui/gui/psppire-data-store.c:744
+msgid "var"
+msgstr ""
+
+#: src/ui/gui/psppire-data-store.c:755 src/ui/gui/psppire-var-store.c:699
+#: src/ui/gui/psppire-var-store.c:709 src/ui/gui/psppire-var-store.c:719
+#: src/ui/gui/psppire-var-store.c:825
+#, c-format
+msgid "%d"
+msgstr ""
+
+#: src/ui/gui/psppire-data-window.c:213
+msgid "Transformations Pending"
+msgstr ""
+
+#: src/ui/gui/psppire-data-window.c:229
+msgid "Filter off"
+msgstr ""
+
+#: src/ui/gui/psppire-data-window.c:243
+#, c-format
+msgid "Filter by %s"
+msgstr ""
+
+#: src/ui/gui/psppire-data-window.c:264
+msgid "No Split"
+msgstr ""
+
+#: src/ui/gui/psppire-data-window.c:273
+msgid "Split by "
+msgstr ""
+
+#: src/ui/gui/psppire-data-window.c:301
+#, fuzzy
+msgid "Weights off"
+msgstr "Pes:"
+
+#: src/ui/gui/psppire-data-window.c:315
+#, fuzzy, c-format
+msgid "Weight by %s"
+msgstr "Pes:"
+
+#: src/ui/gui/psppire-data-window.c:383 src/ui/gui/data-editor.glade:702
+msgid "Open"
+msgstr ""
+
+#: src/ui/gui/psppire-data-window.c:391 src/ui/gui/psppire-data-window.c:593
+#, fuzzy
+msgid "System Files (*.sav)"
+msgstr "Arxiu de Sistema."
+
+#: src/ui/gui/psppire-data-window.c:397 src/ui/gui/psppire-data-window.c:599
+#, fuzzy
+msgid "Portable Files (*.por) "
+msgstr "arxiu portàtil"
+
+#: src/ui/gui/psppire-data-window.c:403 src/ui/gui/psppire-data-window.c:605
+#: src/ui/gui/psppire-syntax-window.c:298
+#: src/ui/gui/psppire-syntax-window.c:385
+msgid "All Files"
+msgstr ""
+
+#: src/ui/gui/psppire-data-window.c:585 src/ui/gui/data-editor.glade:712
+#, fuzzy
+msgid "Save"
+msgstr "Escala"
+
+#: src/ui/gui/psppire-data-window.c:613
+#, fuzzy
+msgid "System File"
+msgstr "Arxiu de Sistema."
+
+#: src/ui/gui/psppire-data-window.c:618
+#, fuzzy
+msgid "Portable File"
+msgstr "arxiu portàtil"
+
+#: src/ui/gui/psppire-data-window.c:768
+msgid "Font Selection"
+msgstr ""
+
+#: src/ui/gui/psppire-data-window.c:836
+msgid "Sort Ascending"
+msgstr ""
+
+#: src/ui/gui/psppire-data-window.c:842
+msgid "Sort Descending"
+msgstr ""
+
+#: src/ui/gui/psppire-data-window.c:847 src/ui/gui/psppire-data-window.c:937
+#: src/ui/gui/data-editor.glade:174 src/ui/gui/data-editor.glade:843
+#, fuzzy
+msgid "Insert Variable"
+msgstr "Variable de prova"
+
+#: src/ui/gui/psppire-data-window.c:850 src/ui/gui/psppire-data-window.c:904
+#: src/ui/gui/psppire-data-window.c:940 src/ui/gui/psppire-data-window.c:1307
+#: src/ui/gui/psppire-data-window.c:1325
+msgid "Clear"
+msgstr ""
+
+#: src/ui/gui/psppire-data-window.c:901 src/ui/gui/data-editor.glade:831
+msgid "Insert Case"
+msgstr ""
+
+#: src/ui/gui/psppire-data-window.c:1185
+#, fuzzy
+msgid "Open a data file"
+msgstr "arxiu de dades"
+
+#: src/ui/gui/psppire-data-window.c:1203
+#, fuzzy
+msgid "New data file"
+msgstr "arxiu de dades"
+
+#: src/ui/gui/psppire-data-window.c:1218
+#, fuzzy
+msgid "Import text data file"
+msgstr "arxiu de dades"
+
+#: src/ui/gui/psppire-data-window.c:1234 src/ui/gui/psppire-data-window.c:1250
+#, fuzzy
+msgid "Save data to file"
+msgstr "arxiu de dades"
+
+#: src/ui/gui/psppire-data-window.c:1288
+msgid "Show/hide value labels"
+msgstr ""
+
+#: src/ui/gui/psppire-data-window.c:1308
+msgid "Delete the cases at the selected position(s)"
+msgstr ""
+
+#: src/ui/gui/psppire-data-window.c:1326
+#, fuzzy
+msgid "Delete the variables at the selected position(s)"
+msgstr "Nom de la variable %s duplicat en la posició %d."
+
+#: src/ui/gui/psppire-data-window.c:1344
+msgid "Create a new variable at the current position"
+msgstr ""
+
+#: src/ui/gui/psppire-data-window.c:1359
+msgid "Create a new case at the current position"
+msgstr ""
+
+#: src/ui/gui/psppire-data-window.c:1375
+msgid "Jump to a Case in the Data Sheet"
+msgstr ""
+
+#: src/ui/gui/psppire-data-window.c:1391
+#, fuzzy
+msgid "Weight cases by variable"
+msgstr "Mitjana Ponderada"
+
+#: src/ui/gui/psppire-data-window.c:1405
+#, fuzzy
+msgid "Transpose the cases with the variables"
+msgstr "THRU no es permet amb variables de cadena."
+
+#: src/ui/gui/psppire-data-window.c:1419
+#, fuzzy
+msgid "Split the active file"
+msgstr "Documents a l'arxiu actiu:"
+
+#: src/ui/gui/psppire-data-window.c:1434
+#, fuzzy
+msgid "Sort cases in the active file"
+msgstr "Documents a l'arxiu actiu:"
+
+#: src/ui/gui/psppire-data-window.c:1448
+#, fuzzy
+msgid "Select cases from the active file"
+msgstr "Documents a l'arxiu actiu:"
+
+#: src/ui/gui/psppire-data-window.c:1462
+msgid "Compute new values for a variable"
+msgstr ""
+
+#: src/ui/gui/psppire-data-window.c:1476
+msgid "Perform one way analysis of variance"
+msgstr ""
+
+#: src/ui/gui/psppire-data-window.c:1491
+msgid "Calculate T Test for samples from independent groups"
+msgstr ""
+
+#: src/ui/gui/psppire-data-window.c:1505
+msgid "Calculate T Test for paired samples"
+msgstr ""
+
+#: src/ui/gui/psppire-data-window.c:1519
+msgid "Calculate T Test for sample from a single distribution"
+msgstr ""
+
+#: src/ui/gui/psppire-data-window.c:1534
+msgid "Commentary text for the data file"
+msgstr ""
+
+#: src/ui/gui/psppire-data-window.c:1560
+#, fuzzy
+msgid "Rank Cases"
+msgstr "Rangs"
+
+#: src/ui/gui/psppire-data-window.c:1574
+msgid "Recode values into the same variables"
+msgstr ""
+
+#: src/ui/gui/psppire-data-window.c:1588
+msgid "Recode values into different variables"
+msgstr ""
+
+#: src/ui/gui/psppire-data-window.c:1602
+#, fuzzy
+msgid "Jump to variable"
+msgstr "Variable de prova"
+
+#: src/ui/gui/psppire-data-window.c:1615
+msgid "Calculate descriptive statistics (mean, variance, ...)"
+msgstr ""
+
+#: src/ui/gui/psppire-data-window.c:1629
+msgid "Generate frequency statistics"
+msgstr ""
+
+#: src/ui/gui/psppire-data-window.c:1643
+msgid "Generate crosstabulations"
+msgstr ""
+
+#: src/ui/gui/psppire-data-window.c:1658
+msgid "Examine Data by Factors"
+msgstr ""
+
+#: src/ui/gui/psppire-data-window.c:1672
+msgid "Estimate parameters of the linear model"
+msgstr ""
+
+#: src/ui/gui/psppire-data-window.c:1686 src/ui/gui/reliability.glade:7
+msgid "Reliability Analysis"
+msgstr ""
+
+#: src/ui/gui/psppire-data-window.c:1849
+msgid "Split the window vertically and horizontally"
+msgstr ""
+
+#: src/ui/gui/psppire-data-window.c:1891
+msgid "Data Editor"
+msgstr ""
+
+#: src/ui/gui/psppire-output-window.c:269
+#, fuzzy
+msgid "Output Viewer"
+msgstr "Format de sortida"
+
+#: src/ui/gui/psppire-syntax-window.c:265
+#, fuzzy, c-format
+msgid "Saved file \"%s\""
+msgstr "llegint l'arxiu de caràcter \"%s\""
+
+#: src/ui/gui/psppire-syntax-window.c:284
+msgid "Save Syntax"
+msgstr ""
+
+#: src/ui/gui/psppire-syntax-window.c:292
+#: src/ui/gui/psppire-syntax-window.c:379
+msgid "Syntax Files (*.sps) "
+msgstr ""
+
+#: src/ui/gui/psppire-syntax-window.c:371
+msgid "Open Syntax"
+msgstr ""
+
+#: src/ui/gui/psppire-syntax-window.c:551
+#, fuzzy
+msgid "Syntax Editor"
+msgstr "error de sintaxi"
+
+#: src/ui/gui/psppire-syntax-window.c:565
+#, fuzzy, c-format
+msgid "Cannot load syntax file '%s'"
+msgstr "no es pot obrir l'arxiu de caràcter \"%s\""
+
+#: src/ui/gui/psppire-var-sheet.c:533 src/ui/gui/psppire-var-store.c:832
+msgid "Name"
+msgstr ""
+
+#: src/ui/gui/psppire-var-sheet.c:534 src/ui/gui/psppire-var-store.c:833
+#: src/ui/gui/psppire.glade:2099 src/language/stats/crosstabs.q:1310
+#, fuzzy
+msgid "Type"
+msgstr "Tipus:"
+
+#: src/ui/gui/psppire-var-sheet.c:535 src/ui/gui/psppire-var-store.c:834
+#: src/ui/gui/psppire.glade:2020
+msgid "Width"
+msgstr ""
+
+#: src/ui/gui/psppire-var-sheet.c:536 src/ui/gui/psppire-var-store.c:835
+msgid "Decimals"
+msgstr ""
+
+#: src/ui/gui/psppire-var-sheet.c:538 src/ui/gui/psppire-var-store.c:837
+#, fuzzy
+msgid "Values"
+msgstr "Valor"
+
+#: src/ui/gui/psppire-var-sheet.c:539 src/ui/gui/psppire-var-store.c:838
+#: src/language/stats/crosstabs.q:844 src/language/stats/examine.q:1215
+#: src/language/stats/frequencies.q:1119 src/language/stats/frequencies.q:1401
+#, fuzzy
+msgid "Missing"
+msgstr "Perduts N"
+
+#: src/ui/gui/psppire-var-sheet.c:541 src/ui/gui/psppire-var-store.c:840
+msgid "Align"
+msgstr ""
+
+#: src/ui/gui/psppire-var-sheet.c:542 src/ui/gui/psppire-var-store.c:841
+#, fuzzy
+msgid "Measure"
+msgstr "Mesura: %s"
+
+#: src/ui/gui/psppire-var-store.c:622 src/ui/gui/var-sheet-dialogs.glade:43
+#, fuzzy
+msgid "Comma"
+msgstr "Gamma"
+
+#: src/ui/gui/psppire-var-store.c:623 src/ui/gui/var-sheet-dialogs.glade:59
+msgid "Dot"
+msgstr ""
+
+#: src/ui/gui/psppire-var-store.c:624
+msgid "Scientific"
+msgstr ""
+
+#: src/ui/gui/psppire-var-store.c:625 src/ui/gui/var-sheet-dialogs.glade:91
+#, fuzzy
+msgid "Date"
+msgstr "Enganxa"
+
+#: src/ui/gui/psppire-var-store.c:626 src/ui/gui/var-sheet-dialogs.glade:107
+msgid "Dollar"
+msgstr ""
+
+#: src/ui/gui/psppire-var-store.c:627
+msgid "Custom"
+msgstr ""
+
+#: src/ui/gui/psppire-window.c:97
+#, c-format
+msgid "%s %s PSPPIRE %s"
+msgstr ""
+
+#: src/ui/gui/psppire-window.c:480
+#, c-format
+msgid "Save the changes to \"%s\" before closing?"
+msgstr ""
+
+#: src/ui/gui/psppire-window.c:487
+#, c-format
+msgid "If you don't save, changes from the last %ld seconds will be permanently lost."
+msgstr ""
+
+#: src/ui/gui/psppire-window.c:491
+#, fuzzy
+msgid "Close _without saving"
+msgstr "%s sense %s."
+
+#: src/ui/gui/recode-dialog.c:881
+msgid "Recode into Different Variables"
+msgstr ""
+
+#: src/ui/gui/recode-dialog.c:884
+msgid "Recode into Same Variables"
+msgstr ""
+
+#: src/ui/gui/recode-dialog.c:912 src/ui/gui/recode-dialog.c:1014
+msgid "Old"
+msgstr ""
+
+#: src/ui/gui/recode-dialog.c:927 src/ui/gui/recode-dialog.c:1022
+msgid "New"
+msgstr ""
+
+#: src/ui/gui/recode-dialog.c:1270
+msgid "Recode into Different Variables: Old and New Values "
+msgstr ""
+
+#: src/ui/gui/recode-dialog.c:1271
+msgid "Recode into Same Variables: Old and New Values"
+msgstr ""
+
+#: src/ui/gui/regression-dialog.c:41
+#, fuzzy
+msgid "Coeff"
+msgstr "desactivat"
+
+#: src/ui/gui/regression-dialog.c:42 src/language/stats/regression.q:159
+msgid "R"
+msgstr ""
+
+#: src/ui/gui/regression-dialog.c:43
+msgid "Anova"
+msgstr ""
+
+#: src/ui/gui/regression-dialog.c:44
+msgid "Bcov"
+msgstr ""
+
+#: src/ui/gui/select-cases-dialog.c:82
+#, c-format
+msgid "Approximately %3d%% of all cases."
+msgstr ""
+
+#: src/ui/gui/select-cases-dialog.c:83
+#, c-format
+msgid "Exactly %3d cases from the first %3d cases."
+msgstr ""
+
+#: src/ui/gui/select-cases-dialog.c:223
+#, c-format
+msgid "%d thru %d"
+msgstr ""
+
+#: src/ui/gui/text-data-import-dialog.c:461
+#, fuzzy, c-format
+msgid "Could not open \"%s\": %s"
+msgstr "no es pot trobar el caràcter \"%s\""
+
+#: src/ui/gui/text-data-import-dialog.c:477
+#, fuzzy, c-format
+msgid "Error reading \"%s\": %s"
+msgstr "error de lectura \"%s\""
+
+#: src/ui/gui/text-data-import-dialog.c:480
+#, c-format
+msgid "Failed to read \"%s\", because it contains a line over %d bytes long and therefore appears not to be a text file."
+msgstr ""
+
+#: src/ui/gui/text-data-import-dialog.c:494
+#, c-format
+msgid "\"%s\" is empty."
+msgstr ""
+
+#: src/ui/gui/text-data-import-dialog.c:539
+msgid "Import Delimited Text Data"
+msgstr ""
+
+#: src/ui/gui/text-data-import-dialog.c:590
+msgid "Importing Delimited Text Data"
+msgstr ""
+
+#: src/ui/gui/text-data-import-dialog.c:749
+msgid ""
+"This assistant will guide you through the process of importing data into PSPP from a text file with one line per case,  in which fields are separated by tabs, commas, or other delimiters.\n"
+"\n"
+msgstr ""
+
+#: src/ui/gui/text-data-import-dialog.c:755
+#, c-format
+msgid "The selected file contains %zu line of text.  "
+msgid_plural "The selected file contains %zu lines of text.  "
+msgstr[0] ""
+msgstr[1] ""
+
+#: src/ui/gui/text-data-import-dialog.c:763
+#, c-format
+msgid "The selected file contains approximately %lu line of text.  "
+msgid_plural "The selected file contains approximately %lu lines of text.  "
+msgstr[0] ""
+msgstr[1] ""
+
+#: src/ui/gui/text-data-import-dialog.c:769
+#, c-format
+msgid "Only the first %zu line of the file will be shown for preview purposes in the following screens.  "
+msgid_plural "Only the first %zu lines of the file will be shown for preview purposes in the following screens.  "
+msgstr[0] ""
+msgstr[1] ""
+
+#: src/ui/gui/text-data-import-dialog.c:776
+msgid "You may choose below how much of the file should actually be imported."
+msgstr ""
+
+#: src/ui/gui/text-data-import-dialog.c:1523
+#: src/ui/gui/text-data-import-dialog.c:1768
+msgid "This input line has too few separators to fill in this field."
+msgstr ""
+
+#: src/ui/gui/text-data-import-dialog.c:1759
+#, c-format
+msgid "Field content \"%.*s\" cannot be parsed in format %s."
+msgstr ""
+
+#: src/ui/gui/t-test-options.c:60
+#, fuzzy, c-format
+msgid "Confidence Interval: %2d %%"
+msgstr " Interval de Confiança Asimp. %g%%"
+
+#: src/ui/gui/t-test-paired-samples.c:226
+msgid "Var 1"
+msgstr ""
+
+#: src/ui/gui/t-test-paired-samples.c:227
+msgid "Var 2"
+msgstr ""
+
+#: src/ui/gui/variable-info-dialog.c:76
+#, fuzzy, c-format
+msgid "Label: %s\n"
+msgstr "Etiqueta:"
+
+#: src/ui/gui/variable-info-dialog.c:83
+#, fuzzy, c-format
+msgid "Type: %s\n"
+msgstr "Tipus:"
+
+#: src/ui/gui/variable-info-dialog.c:87
+#, fuzzy, c-format
+msgid "Missing Values: %s\n"
+msgstr "Valors perduts:"
+
+#: src/ui/gui/variable-info-dialog.c:92
+#, fuzzy, c-format
+msgid "Measurement Level: %s\n"
+msgstr "Mesura: %s"
+
+#: src/ui/gui/variable-info-dialog.c:107
+#, fuzzy
+msgid "Value Labels:\n"
+msgstr "Etiqueta d'arxiu:"
+
+#: src/ui/gui/variable-info-dialog.c:117
+#, c-format
+msgid "%s %s\n"
+msgstr ""
+
+#: src/ui/gui/weight-cases-dialog.c:79 src/ui/gui/psppire.glade:47
+#: src/ui/gui/psppire.glade:130
+#, fuzzy
+msgid "Do not weight cases"
+msgstr "No ponderat."
+
+#: src/ui/gui/weight-cases-dialog.c:85
+#, c-format
+msgid "Weight cases by %s"
+msgstr ""
+
+#: src/ui/gui/crosstabs.glade:50
+#, fuzzy
+msgid "Rows"
+msgstr "Fila"
+
+#: src/ui/gui/crosstabs.glade:131 src/ui/gui/frequencies.glade:185
+#, fuzzy
+msgid "Format..."
+msgstr "Format"
+
+#: src/ui/gui/crosstabs.glade:138 src/ui/gui/examine.glade:247
+#: src/ui/gui/regression.glade:31
+#, fuzzy
+msgid "Statistics..."
+msgstr "Estatístic"
+
+#: src/ui/gui/crosstabs.glade:148
+msgid "Cells..."
+msgstr ""
+
+#: src/ui/gui/crosstabs.glade:230
+#, fuzzy
+msgid "Print tables"
+msgstr "Variables:"
+
+#: src/ui/gui/crosstabs.glade:240
+msgid "Pivot"
+msgstr ""
+
+#: src/ui/gui/crosstabs.glade:253 src/ui/gui/psppire.glade:756
+msgid "Ascending"
+msgstr ""
+
+#: src/ui/gui/crosstabs.glade:283
+#, fuzzy
+msgid "No label"
+msgstr "Sense etiqueta."
+
+#: src/ui/gui/crosstabs.glade:295
+#, fuzzy
+msgid "Suppress value labels"
+msgstr "Prefereixo les etiquetes de variable"
+
+#: src/ui/gui/crosstabs.glade:311
+#, fuzzy
+msgid "Labeling"
+msgstr "Etiqueta"
+
+#: src/ui/gui/crosstabs.glade:378
+msgid "Cell Display"
+msgstr ""
+
+#: src/ui/gui/crosstabs.glade:439 src/ui/gui/oneway.glade:207
+#: src/ui/gui/regression.glade:322
+#, fuzzy
+msgid "Statistics"
+msgstr "Estatístic"
+
+#: src/ui/gui/descriptives-dialog.glade:122 src/ui/gui/frequencies.glade:139
+#, fuzzy
+msgid "Statistics:"
+msgstr "Estatístic"
+
+#: src/ui/gui/descriptives-dialog.glade:184
+msgid "Exclude entire case if any selected variable is missing"
+msgstr ""
+
+#: src/ui/gui/descriptives-dialog.glade:194
+msgid "Include user-missing data in analysis"
+msgstr ""
+
+#: src/ui/gui/descriptives-dialog.glade:207
+msgid "Save Z-scores of selected variables as new variables"
+msgstr ""
+
+#: src/ui/gui/descriptives-dialog.glade:223
+msgid "Options:"
+msgstr ""
+
+#: src/ui/gui/data-editor.glade:10 src/ui/gui/output-viewer.glade:22
+#: src/ui/gui/syntax-editor.glade:14
+#, fuzzy
+msgid "_File"
+msgstr "Arxiu:"
+
+#: src/ui/gui/data-editor.glade:25 src/ui/gui/data-editor.glade:51
+#: src/ui/gui/syntax-editor.glade:32 src/ui/gui/syntax-editor.glade:62
+msgid "_Syntax"
+msgstr ""
+
+#: src/ui/gui/data-editor.glade:32 src/ui/gui/data-editor.glade:58
+#: src/ui/gui/data-editor.glade:311 src/ui/gui/data-editor.glade:329
+#: src/ui/gui/syntax-editor.glade:41 src/ui/gui/syntax-editor.glade:71
+msgid "_Data"
+msgstr ""
+
+#: src/ui/gui/data-editor.glade:70
+msgid "_Import Delimited Text Data"
+msgstr ""
+
+#: src/ui/gui/data-editor.glade:103
+#, fuzzy
+msgid "D_isplay Data File Information"
+msgstr "informació de l'arxiu de dades"
+
+#: src/ui/gui/data-editor.glade:112
+msgid "Working File"
+msgstr ""
+
+#: src/ui/gui/data-editor.glade:119
+msgid "External File"
+msgstr ""
+
+#: src/ui/gui/data-editor.glade:135
+msgid "Recently Used Da_ta"
+msgstr ""
+
+#: src/ui/gui/data-editor.glade:142
+msgid "Recently Used _Files"
+msgstr ""
+
+#: src/ui/gui/data-editor.glade:166 src/ui/gui/output-viewer.glade:55
+#: src/ui/gui/syntax-editor.glade:118
+msgid "_Edit"
+msgstr ""
+
+#: src/ui/gui/data-editor.glade:182
+msgid "Insert Cases"
+msgstr ""
+
+#: src/ui/gui/data-editor.glade:190 src/ui/gui/data-editor.glade:780
+#, fuzzy
+msgid "Go To Case"
+msgstr "Anar a"
+
+#: src/ui/gui/data-editor.glade:231
+#, fuzzy
+msgid "Cl_ear Variables"
+msgstr "Variables:"
+
+#: src/ui/gui/data-editor.glade:239
+msgid "_Clear Cases"
+msgstr ""
+
+#: src/ui/gui/data-editor.glade:252
+msgid "gtk-find"
+msgstr ""
+
+#: src/ui/gui/data-editor.glade:264
+msgid "_View"
+msgstr ""
+
+#: src/ui/gui/data-editor.glade:271
+msgid "_Status Bar"
+msgstr ""
+
+#: src/ui/gui/data-editor.glade:284
+msgid "_Fonts"
+msgstr ""
+
+#: src/ui/gui/data-editor.glade:291
+msgid "_Grid Lines"
+msgstr ""
+
+#: src/ui/gui/data-editor.glade:299
+msgid "Value _Labels"
+msgstr ""
+
+#: src/ui/gui/data-editor.glade:318 src/ui/gui/data-editor.glade:613
+#, fuzzy
+msgid "_Variables"
+msgstr "Variables:"
+
+#: src/ui/gui/data-editor.glade:336
+msgid "_Sort Cases"
+msgstr ""
+
+#: src/ui/gui/data-editor.glade:350
+msgid "_Transpose"
+msgstr ""
+
+#: src/ui/gui/data-editor.glade:363
+#, fuzzy
+msgid "S_plit File"
+msgstr "Arxiu de Sistema."
+
+#: src/ui/gui/data-editor.glade:371
+msgid "Select _Cases"
+msgstr ""
+
+#: src/ui/gui/data-editor.glade:378
+#, fuzzy
+msgid "_Weight Cases"
+msgstr "Ponderat"
+
+#: src/ui/gui/data-editor.glade:390
+msgid "_Transform"
+msgstr ""
+
+#: src/ui/gui/data-editor.glade:400
+#, fuzzy
+msgid "_Compute"
+msgstr "Recompte"
+
+#: src/ui/gui/data-editor.glade:408
+#, fuzzy
+msgid "Ran_k Cases"
+msgstr "Rangs"
+
+#: src/ui/gui/data-editor.glade:420
+msgid "Recode into _Same Variables"
+msgstr ""
+
+#: src/ui/gui/data-editor.glade:427
+msgid "Recode into _Different Variables"
+msgstr ""
+
+#: src/ui/gui/data-editor.glade:440
+msgid "_Run Pending Transforms"
+msgstr ""
+
+#: src/ui/gui/data-editor.glade:453
+msgid "_Analyze"
+msgstr ""
+
+#: src/ui/gui/data-editor.glade:463
+#, fuzzy
+msgid "_Descriptive Statistics"
+msgstr "Estadístiques Descriptives"
+
+#: src/ui/gui/data-editor.glade:473
+#, fuzzy
+msgid "_Frequencies"
+msgstr "Freqüències"
+
+#: src/ui/gui/data-editor.glade:481 src/ui/gui/oneway.glade:179
+#, fuzzy
+msgid "_Descriptives"
+msgstr "Descripció"
+
+#: src/ui/gui/data-editor.glade:489
+msgid "_Explore"
+msgstr ""
+
+#: src/ui/gui/data-editor.glade:497
+msgid "_Crosstabs"
+msgstr ""
+
+#: src/ui/gui/data-editor.glade:509
+msgid "Compare _Means"
+msgstr ""
+
+#: src/ui/gui/data-editor.glade:519
+msgid "_One Sample T Test"
+msgstr ""
+
+#: src/ui/gui/data-editor.glade:527
+msgid "_Independent Samples T Test"
+msgstr ""
+
+#: src/ui/gui/data-editor.glade:535
+msgid "_Paired Samples T Test"
+msgstr ""
+
+#: src/ui/gui/data-editor.glade:543
+msgid "One Way _ANOVA"
+msgstr ""
+
+#: src/ui/gui/data-editor.glade:554
+msgid "Re_liability"
+msgstr ""
+
+#: src/ui/gui/data-editor.glade:562
+#, fuzzy
+msgid "Linear _Regression"
+msgstr "en l'expressió"
+
+#: src/ui/gui/data-editor.glade:569
+#, fuzzy
+msgid "_Non-Parametric Statistics"
+msgstr "Proves Estad."
+
+#: src/ui/gui/data-editor.glade:579
+#, fuzzy
+msgid "_Chi-Square"
+msgstr "Chi-quadrat"
+
+#: src/ui/gui/data-editor.glade:587
+#, fuzzy
+msgid "_Binomial"
+msgstr "Prova Binomial"
+
+#: src/ui/gui/data-editor.glade:603
+msgid "_Utilities"
+msgstr ""
+
+#: src/ui/gui/data-editor.glade:622
+msgid "Data File _Comments"
+msgstr ""
+
+#: src/ui/gui/data-editor.glade:633 src/ui/gui/output-viewer.glade:78
+#: src/ui/gui/syntax-editor.glade:209
+msgid "_Windows"
+msgstr ""
+
+#: src/ui/gui/data-editor.glade:640 src/ui/gui/output-viewer.glade:88
+#: src/ui/gui/syntax-editor.glade:218
+msgid "_Minimize All Windows"
+msgstr ""
+
+#: src/ui/gui/data-editor.glade:647
+msgid "_Split"
+msgstr ""
+
+#: src/ui/gui/data-editor.glade:658 src/ui/gui/output-viewer.glade:99
+#: src/ui/gui/syntax-editor.glade:229
+#, fuzzy
+msgid "_Help"
+msgstr "Ajuda"
+
+#: src/ui/gui/data-editor.glade:665 src/ui/gui/output-viewer.glade:106
+#: src/ui/gui/syntax-editor.glade:237
+msgid "_Reference Manual"
+msgstr ""
+
+#: src/ui/gui/data-editor.glade:678 src/ui/gui/output-viewer.glade:113
+#: src/ui/gui/syntax-editor.glade:244
+msgid "_About"
+msgstr ""
+
+#: src/ui/gui/data-editor.glade:722
+#, fuzzy
+msgid "Print"
+msgstr "imprimir"
+
+#: src/ui/gui/data-editor.glade:732
+msgid "Recall"
+msgstr ""
+
+#: src/ui/gui/data-editor.glade:750
+msgid "Undo"
+msgstr ""
+
+#: src/ui/gui/data-editor.glade:760
+#, fuzzy
+msgid "Redo"
+msgstr "Registre"
+
+#: src/ui/gui/data-editor.glade:790
+#, fuzzy
+msgid "Variables"
+msgstr "Variables:"
+
+#: src/ui/gui/data-editor.glade:811
+msgid "Find"
+msgstr ""
+
+#: src/ui/gui/data-editor.glade:863
+#, fuzzy
+msgid "Split File"
+msgstr "Arxiu de Sistema."
+
+#: src/ui/gui/data-editor.glade:874
+#, fuzzy
+msgid "Weight Cases"
+msgstr "Ponderat"
+
+#: src/ui/gui/data-editor.glade:886
+msgid "Select Cases"
+msgstr ""
+
+#: src/ui/gui/data-editor.glade:906 src/ui/gui/var-sheet-dialogs.glade:401
+#: src/ui/gui/var-sheet-dialogs.glade:582
+#, fuzzy
+msgid "Value Labels"
+msgstr "Etiqueta d'arxiu:"
+
+#: src/ui/gui/data-editor.glade:917
+msgid "Use Sets"
+msgstr ""
+
+#: src/ui/gui/data-editor.glade:938
+#, fuzzy
+msgid "Information Area"
+msgstr "Informació del PSPP"
+
+#: src/ui/gui/data-editor.glade:957
+msgid "Processor Area"
+msgstr ""
+
+#: src/ui/gui/data-editor.glade:982
+msgid "Case Counter Area"
+msgstr ""
+
+#: src/ui/gui/data-editor.glade:1007
+msgid "Filter Use Status Area"
+msgstr ""
+
+#: src/ui/gui/data-editor.glade:1033
+msgid "Weight Status Area"
+msgstr ""
+
+#: src/ui/gui/data-editor.glade:1059
+msgid "Split File Status Area"
+msgstr ""
+
+#: src/ui/gui/examine.glade:49
+msgid "Label Cases by:"
+msgstr ""
+
+#: src/ui/gui/examine.glade:100
+msgid "Factor List:"
+msgstr ""
+
+#: src/ui/gui/examine.glade:150
+msgid "Dependent List:"
+msgstr ""
+
+#: src/ui/gui/examine.glade:257 src/ui/gui/t-test.glade:69
+#: src/ui/gui/t-test.glade:629 src/ui/gui/t-test.glade:780
+msgid "Options..."
+msgstr ""
+
+#: src/ui/gui/examine.glade:310 src/language/stats/examine.q:1750
+#: src/language/stats/oneway.q:408
+#, fuzzy
+msgid "Descriptives"
+msgstr "Descripció"
+
+#: src/ui/gui/examine.glade:320
+msgid "Extremes"
+msgstr ""
+
+#: src/ui/gui/examine.glade:388
+#, fuzzy
+msgid "Exclude cases listwise"
+msgstr "N Valid (listwise)"
+
+#: src/ui/gui/examine.glade:399
+msgid "Exclude cases pairwise"
+msgstr ""
+
+#: src/ui/gui/examine.glade:414
+msgid "Repeat values"
+msgstr ""
+
+#: src/ui/gui/examine.glade:432 src/ui/gui/t-test.glade:460
+#: src/ui/gui/var-sheet-dialogs.glade:649
+#, fuzzy
+msgid "Missing Values"
+msgstr "Valors perduts:"
+
+#: src/ui/gui/find.glade:80
+#, fuzzy
+msgid "Variable:"
+msgstr "Variables:"
+
+#: src/ui/gui/find.glade:111 src/ui/gui/recode.glade:185
+#: src/ui/gui/var-sheet-dialogs.glade:512
+#, fuzzy
+msgid "Value:"
+msgstr "Valor"
+
+#: src/ui/gui/find.glade:137
+#, fuzzy
+msgid "Search value labels"
+msgstr "Prefereixo les etiquetes de variable"
+
+#: src/ui/gui/find.glade:161
+#, fuzzy
+msgid "Regular expression Match"
+msgstr "Expressió regular incorrecta: %s"
+
+#: src/ui/gui/find.glade:172
+msgid "Search substrings"
+msgstr ""
+
+#: src/ui/gui/find.glade:185
+msgid "Wrap around"
+msgstr ""
+
+#: src/ui/gui/find.glade:198
+msgid "Search backward"
+msgstr ""
+
+#: src/ui/gui/frequencies.glade:98 src/ui/gui/psppire.glade:252
+#: src/ui/gui/rank.glade:103
+#, fuzzy
+msgid "Variable(s):"
+msgstr "Variables:"
+
+#: src/ui/gui/frequencies.glade:168
+msgid "Display Frequency Table"
+msgstr ""
+
+#: src/ui/gui/frequencies.glade:264
+msgid "Ascending Order"
+msgstr ""
+
+#: src/ui/gui/frequencies.glade:275
+msgid "Descending Order"
+msgstr ""
+
+#: src/ui/gui/frequencies.glade:290
+msgid "Ascending Counts"
+msgstr ""
+
+#: src/ui/gui/frequencies.glade:305
+msgid "Descending Counts"
+msgstr ""
+
+#: src/ui/gui/frequencies.glade:323
+msgid "Order by"
+msgstr ""
+
+#: src/ui/gui/frequencies.glade:355
+msgid "Supress tables with more than N categories"
+msgstr ""
+
+#: src/ui/gui/frequencies.glade:371
+msgid "Maximum no of categories"
+msgstr ""
+
+#: src/ui/gui/message-dialog.glade:10
+msgid "Messages Reported"
+msgstr ""
+
+#: src/ui/gui/message-dialog.glade:47
+msgid "The PSPP processor reported # errors.  The first # and last # are shown below:"
+msgstr ""
+
+#: src/ui/gui/message-dialog.glade:101
+msgid "gtk-close"
+msgstr ""
+
+#: src/ui/gui/psppire.glade:58
+#, fuzzy
+msgid "Weight cases by"
+msgstr "Ponderat"
+
+#: src/ui/gui/psppire.glade:83
+#, fuzzy
+msgid "Frequency Variable"
+msgstr "Freqüències"
+
+#: src/ui/gui/psppire.glade:123
+msgid "Current Status: "
+msgstr ""
+
+#: src/ui/gui/psppire.glade:219
+#, fuzzy
+msgid "Name Variable:"
+msgstr "Variables:"
+
+#: src/ui/gui/psppire.glade:404
+msgid "Analyze all cases.  Do not create groups."
+msgstr ""
+
+#: src/ui/gui/psppire.glade:415
+#, fuzzy
+msgid "Compare groups."
+msgstr "Compressió %s."
+
+#: src/ui/gui/psppire.glade:429
+msgid "Organize output by groups."
+msgstr ""
+
+#: src/ui/gui/psppire.glade:477
+msgid "Groups based on:"
+msgstr ""
+
+#: src/ui/gui/psppire.glade:540
+msgid "Sort the file by grouping variables."
+msgstr ""
+
+#: src/ui/gui/psppire.glade:552
+msgid "File is already sorted."
+msgstr ""
+
+#: src/ui/gui/psppire.glade:597
+msgid "Current Status : "
+msgstr ""
+
+#: src/ui/gui/psppire.glade:605
+msgid "Analysis by groups is off"
+msgstr ""
+
+#: src/ui/gui/psppire.glade:704
+msgid "Sort by:"
+msgstr ""
+
+#: src/ui/gui/psppire.glade:767
+msgid "Descending"
+msgstr ""
+
+#: src/ui/gui/psppire.glade:784
+msgid "Sort Order"
+msgstr ""
+
+#: src/ui/gui/psppire.glade:853
+#, fuzzy
+msgid "Target Variable:"
+msgstr "Variable de prova"
+
+#: src/ui/gui/psppire.glade:884
+msgid "Type & Label"
+msgstr ""
+
+#: src/ui/gui/psppire.glade:924
+msgid "="
+msgstr ""
+
+#: src/ui/gui/psppire.glade:970
+#, fuzzy
+msgid "Numeric Expressions:"
+msgstr "en l'expressió"
+
+#: src/ui/gui/psppire.glade:1024
+msgid "Functions:"
+msgstr ""
+
+#: src/ui/gui/psppire.glade:1087 src/ui/gui/psppire.glade:1491
+#: src/ui/gui/recode.glade:731
+msgid "If..."
+msgstr ""
+
+#: src/ui/gui/psppire.glade:1320
+#, fuzzy
+msgid "Use filter variable"
+msgstr "Variable de prova"
+
+#: src/ui/gui/psppire.glade:1373
+msgid "Based on time or case range"
+msgstr ""
+
+#: src/ui/gui/psppire.glade:1386
+#, fuzzy
+msgid "Range..."
+msgstr "Interval"
+
+#: src/ui/gui/psppire.glade:1425
+msgid "Random sample of cases"
+msgstr ""
+
+#: src/ui/gui/psppire.glade:1439
+msgid "Sample..."
+msgstr ""
+
+#: src/ui/gui/psppire.glade:1477
+msgid "If condition is satisfied"
+msgstr ""
+
+#: src/ui/gui/psppire.glade:1526
+#, fuzzy
+msgid "All Cases"
+msgstr "Casos:"
+
+#: src/ui/gui/psppire.glade:1541
+msgid "Select"
+msgstr ""
+
+#: src/ui/gui/psppire.glade:1570
+#, fuzzy
+msgid "Filtered"
+msgstr "Arxiu:"
+
+#: src/ui/gui/psppire.glade:1581
+msgid "Deleted"
+msgstr ""
+
+#: src/ui/gui/psppire.glade:1599
+msgid "Unselected Cases Are"
+msgstr ""
+
+#: src/ui/gui/psppire.glade:1664
+#, fuzzy
+msgid "Comments:"
+msgstr "Columnes"
+
+#: src/ui/gui/psppire.glade:1706
+msgid "Display comments in output"
+msgstr ""
+
+#: src/ui/gui/psppire.glade:1721
+#, fuzzy
+msgid "Column Number: 0"
+msgstr "Número de columna: %d"
+
+#: src/ui/gui/psppire.glade:1804
+msgid "First case"
+msgstr ""
+
+#: src/ui/gui/psppire.glade:1817
+msgid "Last case"
+msgstr ""
+
+#: src/ui/gui/psppire.glade:1830
+msgid "Observation"
+msgstr ""
+
+#: src/ui/gui/psppire.glade:1894
+#, fuzzy
+msgid "Use expression as label"
+msgstr "en l'expressió"
+
+#: src/ui/gui/psppire.glade:2150
+msgid "Goto Case Number:"
+msgstr ""
+
+#: src/ui/gui/psppire.glade:2287
+msgid "Sample Size"
+msgstr ""
+
+#: src/ui/gui/oneway.glade:30
+msgid "_Factor:"
+msgstr ""
+
+#: src/ui/gui/oneway.glade:66
+#, fuzzy
+msgid "Dependent _Variable(s):"
+msgstr "Variables:"
+
+#: src/ui/gui/oneway.glade:190
+msgid "_Homogeneity"
+msgstr ""
+
+#: src/ui/gui/oneway.glade:226
+msgid "_Contrasts..."
+msgstr ""
+
+#: src/ui/gui/oneway.glade:309
+msgid "gtk-go-back"
+msgstr ""
+
+#: src/ui/gui/oneway.glade:320
+msgid "gtk-go-forward"
+msgstr ""
+
+#: src/ui/gui/oneway.glade:343
+msgid "_Coefficients:"
+msgstr ""
+
+#: src/ui/gui/oneway.glade:389
+msgid "Coefficient Total: "
+msgstr ""
+
+#: src/ui/gui/oneway.glade:422
+msgid "Contrast 1 of 1"
+msgstr ""
+
+#: src/ui/gui/output-viewer.glade:32
+msgid "gtk-save"
+msgstr ""
+
+#: src/ui/gui/output-viewer.glade:41
+msgid "gtk-save-as"
+msgstr ""
+
+#: src/ui/gui/output-viewer.glade:65
+msgid "gtk-copy"
+msgstr ""
+
+#: src/ui/gui/rank.glade:57
+msgid "By:"
+msgstr ""
+
+#: src/ui/gui/rank.glade:196
+msgid "_Smallest Value"
+msgstr ""
+
+#: src/ui/gui/rank.glade:208
+msgid "_Largest Value"
+msgstr ""
+
+#: src/ui/gui/rank.glade:227
+msgid "Assign rank 1 to:"
+msgstr ""
+
+#: src/ui/gui/rank.glade:245
+msgid "_Display summary tables"
+msgstr ""
+
+#: src/ui/gui/rank.glade:261
+#, fuzzy
+msgid "Rank T_ypes"
+msgstr "Rangs"
+
+#: src/ui/gui/rank.glade:272
+#, fuzzy
+msgid "_Ties..."
+msgstr "Lligams"
+
+#: src/ui/gui/rank.glade:339
+msgid "Sum of case weights"
+msgstr ""
+
+#: src/ui/gui/rank.glade:355
+msgid "Fractional rank as %"
+msgstr ""
+
+#: src/ui/gui/rank.glade:369
+msgid "Fractional rank"
+msgstr ""
+
+#: src/ui/gui/rank.glade:383
+msgid "Savage score"
+msgstr ""
+
+#: src/ui/gui/rank.glade:397
+#, fuzzy
+msgid "Rank"
+msgstr "Rangs"
+
+#: src/ui/gui/rank.glade:411
+#, fuzzy
+msgid "Ntiles"
+msgstr "Lligams"
+
+#: src/ui/gui/rank.glade:450
+msgid "Proportion Estimates"
+msgstr ""
+
+#: src/ui/gui/rank.glade:460
+msgid "Normal Scores"
+msgstr ""
+
+#: src/ui/gui/rank.glade:494
+msgid "Blom"
+msgstr ""
+
+#: src/ui/gui/rank.glade:505
+msgid "Tukey"
+msgstr ""
+
+#: src/ui/gui/rank.glade:519
+#, fuzzy
+msgid "Rankit"
+msgstr "Rangs"
+
+#: src/ui/gui/rank.glade:533
+msgid "Van der Wärden"
+msgstr ""
+
+#: src/ui/gui/rank.glade:550
+msgid "Proportion Estimation Formula"
+msgstr ""
+
+#: src/ui/gui/rank.glade:612
+#, fuzzy
+msgid "_Mean"
+msgstr "Mitjana"
+
+#: src/ui/gui/rank.glade:624
+msgid "_Low"
+msgstr ""
+
+#: src/ui/gui/rank.glade:640
+#, fuzzy
+msgid "_High"
+msgstr "Dreta"
+
+#: src/ui/gui/rank.glade:658
+msgid "_Sequential ranks to unique values"
+msgstr ""
+
+#: src/ui/gui/rank.glade:678
+msgid "Rank Assigned to Ties"
+msgstr ""
+
+#: src/ui/gui/recode.glade:197
+#, fuzzy
+msgid "System-Missing"
+msgstr "Perduts N"
+
+#: src/ui/gui/recode.glade:211
+msgid "System-or user-missing"
+msgstr ""
+
+#: src/ui/gui/recode.glade:245
+msgid "through"
+msgstr ""
+
+#: src/ui/gui/recode.glade:283
+msgid "Range, LOWEST thru value"
+msgstr ""
+
+#: src/ui/gui/recode.glade:297
+msgid "Range, value thru HIGHEST"
+msgstr ""
+
+#: src/ui/gui/recode.glade:327
+msgid "All other values"
+msgstr ""
+
+#: src/ui/gui/recode.glade:363
+#, fuzzy
+msgid "Range:"
+msgstr "Interval"
+
+#: src/ui/gui/recode.glade:380
+#, fuzzy
+msgid "Old Value"
+msgstr "Valor"
+
+#: src/ui/gui/recode.glade:462
+#, fuzzy
+msgid "System Missing"
+msgstr "Arxiu de Sistema."
+
+#: src/ui/gui/recode.glade:476
+msgid "Copy old values"
+msgstr ""
+
+#: src/ui/gui/recode.glade:500
+#, fuzzy
+msgid "Value: "
+msgstr "Valor"
+
+#: src/ui/gui/recode.glade:530
+#, fuzzy
+msgid "New Value"
+msgstr "Valor"
+
+#: src/ui/gui/recode.glade:590
+msgid "Convert numeric strings to numbers ('5' -> 5)"
+msgstr ""
+
+#: src/ui/gui/recode.glade:608
+#, fuzzy
+msgid "Output variables are strings"
+msgstr "Nom de la variable %s duplicat."
+
+#: src/ui/gui/recode.glade:620
+msgid "Width: "
+msgstr ""
+
+#: src/ui/gui/recode.glade:743
+msgid "(optional case selection condition)"
+msgstr ""
+
+#: src/ui/gui/recode.glade:823
+msgid "Name:"
+msgstr ""
+
+#: src/ui/gui/recode.glade:867
+#, fuzzy
+msgid "Change"
+msgstr "Interval"
+
+#: src/ui/gui/recode.glade:885
+#, fuzzy
+msgid "Output Variable"
+msgstr "Variable"
+
+#: src/ui/gui/recode.glade:965
+msgid "Old and New Values"
+msgstr ""
+
+#: src/ui/gui/regression.glade:40
+msgid "Save..."
+msgstr ""
+
+#: src/ui/gui/regression.glade:145
+msgid "Dependent"
+msgstr ""
+
+#: src/ui/gui/regression.glade:193
+msgid "Independent"
+msgstr ""
+
+#: src/ui/gui/regression.glade:243
+msgid "Predicted values"
+msgstr ""
+
+#: src/ui/gui/regression.glade:252
+#, fuzzy
+msgid "Residuals"
+msgstr "Residual"
+
+#: src/ui/gui/reliability.glade:89
+msgid "_Items:"
+msgstr ""
+
+#: src/ui/gui/reliability.glade:111
+#, fuzzy
+msgid "Model:\t"
+msgstr "Mode:"
+
+#: src/ui/gui/reliability.glade:122
+msgid ""
+"Alpha\n"
+"Split"
+msgstr ""
+
+#: src/ui/gui/reliability.glade:144
+#, fuzzy
+msgid "Variables in first split:"
+msgstr "Variable sota prova"
+
+#: src/ui/gui/syntax-editor.glade:163
+msgid "_Run"
+msgstr ""
+
+#: src/ui/gui/syntax-editor.glade:172
+msgid "All"
+msgstr ""
+
+#: src/ui/gui/syntax-editor.glade:180
+#, fuzzy
+msgid "Selection"
+msgstr "Descripció"
+
+#: src/ui/gui/syntax-editor.glade:188
+#, fuzzy
+msgid "Current Line"
+msgstr "Continuar"
+
+#: src/ui/gui/syntax-editor.glade:197
+msgid "To End"
+msgstr ""
+
+#: src/ui/gui/text-data-import.glade:8
+msgid "Importing Textual Data"
+msgstr ""
+
+#: src/ui/gui/text-data-import.glade:18
+msgid ""
+"This assistant will guide you through the process of importing data into PSPP from a text file with one line per case,  in which fields are separated by tabs, commas, or other delimiters.\n"
+"\n"
+"The selected file contains N lines of text.  Only the first M of these will be shown for preview purposes in the following screens.  You may choose below how much of the file should actually be imported."
+msgstr ""
+
+#: src/ui/gui/text-data-import.glade:50
+msgid "All cases"
+msgstr ""
+
+#: src/ui/gui/text-data-import.glade:66 src/ui/gui/text-data-import.glade:122
+msgid "Only first "
+msgstr ""
+
+#: src/ui/gui/text-data-import.glade:97
+#, fuzzy
+msgid " cases"
+msgstr "Casos:"
+
+#: src/ui/gui/text-data-import.glade:152
+msgid "% of file (approximately)"
+msgstr ""
+
+#: src/ui/gui/text-data-import.glade:173
+msgid "<b>Amount to Import</b>"
+msgstr ""
+
+#: src/ui/gui/text-data-import.glade:195
+msgid "Select Data to Import"
+msgstr ""
+
+#: src/ui/gui/text-data-import.glade:205
+msgid "Select the first line of the data file that contains data."
+msgstr ""
+
+#: src/ui/gui/text-data-import.glade:236
+msgid "Line above selected line contains variable names"
+msgstr ""
+
+#: src/ui/gui/text-data-import.glade:251
+msgid "Choose Separators"
+msgstr ""
+
+#: src/ui/gui/text-data-import.glade:299
+msgid "C_ustom"
+msgstr ""
+
+#: src/ui/gui/text-data-import.glade:314
+msgid "Slas_h (/)"
+msgstr ""
+
+#: src/ui/gui/text-data-import.glade:331
+msgid "Semicolo_n (;)"
+msgstr ""
+
+#: src/ui/gui/text-data-import.glade:348
+msgid "P_ipe (|)"
+msgstr ""
+
+#: src/ui/gui/text-data-import.glade:363
+msgid "H_yphen (-)"
+msgstr ""
+
+#: src/ui/gui/text-data-import.glade:380
+msgid "Co_mma (,)"
+msgstr ""
+
+#: src/ui/gui/text-data-import.glade:397
+msgid "_Colon (:)"
+msgstr ""
+
+#: src/ui/gui/text-data-import.glade:412
+msgid "Ban_g (!)"
+msgstr ""
+
+#: src/ui/gui/text-data-import.glade:427
+msgid "Ta_b"
+msgstr ""
+
+#: src/ui/gui/text-data-import.glade:442
+msgid "_Space"
+msgstr ""
+
+#: src/ui/gui/text-data-import.glade:456
+msgid "<b>Separators</b>"
+msgstr ""
+
+#: src/ui/gui/text-data-import.glade:489
+msgid "Doubled quote mark treated as escape"
+msgstr ""
+
+#: src/ui/gui/text-data-import.glade:526
+msgid "Quote separator characters with"
+msgstr ""
+
+#: src/ui/gui/text-data-import.glade:543
+msgid "<b>Quoting</b>"
+msgstr ""
+
+#: src/ui/gui/text-data-import.glade:594
+msgid "<b>Fields Preview</b>"
+msgstr ""
+
+#: src/ui/gui/text-data-import.glade:612
+msgid "Adjust Variable Formats"
+msgstr ""
+
+#: src/ui/gui/text-data-import.glade:622
+msgid "Check the data formats displayed below and fix any that are incorrect.  You may set other variable properties now or later."
+msgstr ""
+
+#: src/ui/gui/text-data-import.glade:665
+#, fuzzy
+msgid "<b>Variables</b>"
+msgstr "Variables:"
+
+#: src/ui/gui/text-data-import.glade:712
+msgid "<b>Data Preview</b>"
+msgstr ""
+
+#: src/ui/gui/t-test.glade:56 src/ui/gui/t-test.glade:165
+msgid "Define Groups"
+msgstr ""
+
+#: src/ui/gui/t-test.glade:123 src/ui/gui/t-test.glade:549
+#: src/ui/gui/t-test.glade:761
+#, fuzzy
+msgid "Test Variable(s):"
+msgstr "Variable de prova"
+
+#: src/ui/gui/t-test.glade:258
+#, fuzzy
+msgid "Group_2 value:"
+msgstr "Grup 2"
+
+#: src/ui/gui/t-test.glade:271
+#, fuzzy
+msgid "Group_1 value:"
+msgstr "Grup 1"
+
+#: src/ui/gui/t-test.glade:320
+msgid "_Cut point:"
+msgstr ""
+
+#: src/ui/gui/t-test.glade:349
+msgid "_Use specified values:"
+msgstr ""
+
+#: src/ui/gui/t-test.glade:431
+msgid "Exclude cases _analysis by analysis"
+msgstr ""
+
+#: src/ui/gui/t-test.glade:442
+msgid "Exclude cases _listwise"
+msgstr ""
+
+#: src/ui/gui/t-test.glade:594
+#, fuzzy
+msgid "Test Value: "
+msgstr "Valors perduts:"
+
+#: src/ui/gui/var-sheet-dialogs.glade:7
+#, fuzzy
+msgid "Variable Type"
+msgstr "Variable"
+
+#: src/ui/gui/var-sheet-dialogs.glade:75
+msgid "Scientific notation"
+msgstr ""
+
+#: src/ui/gui/var-sheet-dialogs.glade:123
+msgid "Custom currency"
+msgstr ""
+
+#: src/ui/gui/var-sheet-dialogs.glade:217
+#, fuzzy
+msgid "positive"
+msgstr "Positiu"
+
+#: src/ui/gui/var-sheet-dialogs.glade:223
+#, fuzzy
+msgid "negative"
+msgstr "Negatiu"
+
+#: src/ui/gui/var-sheet-dialogs.glade:236
+#, fuzzy
+msgid "Sample"
+msgstr "Escala"
+
+#: src/ui/gui/var-sheet-dialogs.glade:286
+#, fuzzy
+msgid "Width:"
+msgstr "Pes:"
+
+#: src/ui/gui/var-sheet-dialogs.glade:330
+msgid "Decimal Places:"
+msgstr ""
+
+#: src/ui/gui/var-sheet-dialogs.glade:499
+#, fuzzy
+msgid "Value Label:"
+msgstr "Etiqueta d'arxiu:"
+
+#: src/ui/gui/var-sheet-dialogs.glade:677
+#, fuzzy
+msgid "_No missing values"
+msgstr "Valors perduts:"
+
+#: src/ui/gui/var-sheet-dialogs.glade:747
+#, fuzzy
+msgid "_Discrete missing values"
+msgstr "Valors perduts:"
+
+#: src/ui/gui/var-sheet-dialogs.glade:782
+msgid "_Low:"
+msgstr ""
+
+#: src/ui/gui/var-sheet-dialogs.glade:801
+#, fuzzy
+msgid "_High:"
+msgstr "Pes:"
+
+#: src/ui/gui/var-sheet-dialogs.glade:826
+msgid "Di_screte value:"
+msgstr ""
+
+#: src/ui/gui/var-sheet-dialogs.glade:856
+msgid "_Range plus one optional discrete missing value"
+msgstr ""
+
+#: src/ui/gui/variable-info-dialog.glade:49
+#, fuzzy
+msgid "Variable Information:"
+msgstr "informació de l'arxiu de dades"
+
+#: tests/dissect-sysfile.c:528
+#, fuzzy, c-format
+msgid "Unrecognized record type 7, subtype %d."
+msgstr "Tipus de registre %d no reconegut."
+
+#: tests/dissect-sysfile.c:701
+#, fuzzy, c-format
+msgid "%s: Error parsing attribute value %s[%d]"
+msgstr "Error en analitzar el valor de l'atribut %s[%d]"
+
+#: tests/dissect-sysfile.c:707
+#, fuzzy, c-format
+msgid "%s: Attribute value %s[%d] is not quoted: %s"
+msgstr "El valor de l'atribut %s[%d] no esta entre cometes: %s"
+
+#: src/language/utilities/set.q:202
+#, fuzzy
+msgid "WORKSPACE must be at least 1MB"
+msgstr "Valor de FIRST ha de ser com a mínim 1."
+
+#: src/language/utilities/set.q:208 src/language/utilities/set.q:210
+#: src/language/utilities/set.q:212 src/language/utilities/set.q:214
+#: src/language/utilities/set.q:216 src/language/utilities/set.q:218
+#: src/language/utilities/set.q:220 src/language/utilities/set.q:222
+#: src/language/utilities/set.q:224
+#, c-format
+msgid "%s is obsolete."
+msgstr ""
+
+#: src/language/utilities/set.q:227
+#, fuzzy, c-format
+msgid "%s is not implemented."
+msgstr "%s encara no està implementat."
+
+#: src/language/utilities/set.q:230
+#, fuzzy
+msgid "Active file compression is not implemented."
+msgstr "%s encara no està implementat."
+
+#: src/language/utilities/set.q:325
+msgid "EPOCH must be 1500 or later."
+msgstr ""
+
+#: src/language/utilities/set.q:332
+#, fuzzy
+msgid "expecting AUTOMATIC or year"
+msgstr "esperant COMM o TAPE"
+
+#: src/language/utilities/set.q:353
+#, fuzzy
+msgid "LENGTH must be at least 1."
+msgstr "Valor de FIRST ha de ser com a mínim 1."
+
+#: src/language/utilities/set.q:389
+#, fuzzy, c-format
+msgid "%s is not a recognised encoding or locale name"
+msgstr "%s és un nom de variable existent."
+
+#: src/language/utilities/set.q:432
+#, fuzzy
+msgid "WIDTH must be at least 40."
+msgstr "Valor de FIRST ha de ser com a mínim 1."
+
+#: src/language/utilities/set.q:455
+#, c-format
+msgid "FORMAT requires numeric output format as an argument.  Specified format %s is of type string."
+msgstr ""
+
+#: src/language/utilities/set.q:668
+msgid "ISL (32-bit IEEE 754 single, little-endian)"
+msgstr ""
+
+#: src/language/utilities/set.q:671
+msgid "ISB (32-bit IEEE 754 single, big-endian)"
+msgstr ""
+
+#: src/language/utilities/set.q:674
+msgid "IDL (64-bit IEEE 754 double, little-endian)"
+msgstr ""
+
+#: src/language/utilities/set.q:677
+msgid "IDB (64-bit IEEE 754 double, big-endian)"
+msgstr ""
+
+#: src/language/utilities/set.q:681
+msgid "VF (32-bit VAX F, VAX-endian)"
+msgstr ""
+
+#: src/language/utilities/set.q:684
+msgid "VD (64-bit VAX D, VAX-endian)"
+msgstr ""
+
+#: src/language/utilities/set.q:687
+msgid "VG (64-bit VAX G, VAX-endian)"
+msgstr ""
+
+#: src/language/utilities/set.q:691
+msgid "ZS (32-bit IBM Z hexadecimal short, big-endian)"
+msgstr ""
+
+#: src/language/utilities/set.q:694
+msgid "ZL (64-bit IBM Z hexadecimal long, big-endian)"
+msgstr ""
+
+#: src/language/utilities/set.q:793
+#, fuzzy, c-format
+msgid "%s is %s."
+msgstr "%s sense %s."
+
+#: src/language/stats/crosstabs.q:327
+msgid "Missing mode REPORT not allowed in general mode.  Assuming MISSING=TABLE."
+msgstr ""
+
+#: src/language/stats/crosstabs.q:416
+msgid "Too many cross-tabulation variables or dimensions."
+msgstr ""
+
+#: src/language/stats/crosstabs.q:426
+#, fuzzy
+msgid "expecting BY"
+msgstr "esperant BREAK"
+
+#: src/language/stats/crosstabs.q:486
+msgid "VARIABLES must be specified before TABLES."
+msgstr ""
+
+#: src/language/stats/crosstabs.q:524
+#, c-format
+msgid "Maximum value (%ld) less than minimum value (%ld)."
+msgstr ""
+
+#: src/language/stats/crosstabs.q:840
+#, fuzzy
+msgid "Summary."
+msgstr "Resum del Cas"
+
+#: src/language/stats/crosstabs.q:842 src/language/stats/examine.q:1277
+#: src/language/stats/reliability.q:709
+#, fuzzy
+msgid "Cases"
+msgstr "Casos:"
+
+#: src/language/stats/crosstabs.q:843 src/language/stats/examine.q:1214
+#: src/language/stats/frequencies.q:1049 src/language/stats/frequencies.q:1400
+#: src/language/stats/reliability.q:712
+#, fuzzy
+msgid "Valid"
+msgstr "N vàlids"
+
+#: src/language/stats/crosstabs.q:853 src/language/stats/examine.q:1292
+#: src/language/stats/frequencies.q:1053 src/language/stats/frequencies.q:1054
+#: src/language/stats/frequencies.q:1055
+#, fuzzy
+msgid "Percent"
+msgstr "Percentils"
+
+#: src/language/stats/crosstabs.q:1133
+#, fuzzy
+msgid "count"
+msgstr "Recompte"
+
+#: src/language/stats/crosstabs.q:1134
+msgid "row %"
+msgstr ""
+
+#: src/language/stats/crosstabs.q:1135
+#, fuzzy
+msgid "column %"
+msgstr "columna %d"
+
+#: src/language/stats/crosstabs.q:1136
+#, fuzzy
+msgid "total %"
+msgstr "octal"
+
+#: src/language/stats/crosstabs.q:1137
+#, fuzzy
+msgid "expected"
+msgstr "Esperat"
+
+#: src/language/stats/crosstabs.q:1138
+#, fuzzy
+msgid "residual"
+msgstr "Residual"
+
+#: src/language/stats/crosstabs.q:1139
+#, fuzzy
+msgid "std. resid."
+msgstr "Residu Tipificat"
+
+#: src/language/stats/crosstabs.q:1140
+msgid "adj. resid."
+msgstr ""
+
+#: src/language/stats/crosstabs.q:1231
+#, fuzzy
+msgid "Chi-square tests."
+msgstr "Chi-quadrat"
+
+#: src/language/stats/crosstabs.q:1238
+#, fuzzy
+msgid "Asymp. Sig. (2-sided)"
+msgstr "Sig. Asimp. (2-cues)"
+
+#: src/language/stats/crosstabs.q:1240
+#, fuzzy
+msgid "Exact Sig. (2-sided)"
+msgstr "Sig. Exacta (2-cues)"
+
+#: src/language/stats/crosstabs.q:1242
+#, fuzzy
+msgid "Exact Sig. (1-sided)"
+msgstr "Sig. Exacta (1-cua)"
+
+#: src/language/stats/crosstabs.q:1257
+msgid "Symmetric measures."
+msgstr ""
+
+#: src/language/stats/crosstabs.q:1263 src/language/stats/crosstabs.q:1312
+#, fuzzy
+msgid "Asymp. Std. Error"
+msgstr "Error Est."
+
+#: src/language/stats/crosstabs.q:1264 src/language/stats/crosstabs.q:1313
+msgid "Approx. T"
+msgstr ""
+
+#: src/language/stats/crosstabs.q:1265 src/language/stats/crosstabs.q:1314
+#, fuzzy
+msgid "Approx. Sig."
+msgstr "Sig. Asimpt."
+
+#: src/language/stats/crosstabs.q:1280
+msgid "Risk estimate."
+msgstr ""
+
+#: src/language/stats/crosstabs.q:1284
+#, fuzzy, c-format
+msgid "95%% Confidence Interval"
+msgstr " Interval de Confiança Asimp. %g%%"
+
+#: src/language/stats/crosstabs.q:1287 src/language/stats/t-test.q:757
+#: src/language/stats/t-test.q:921 src/language/stats/t-test.q:1014
+#, fuzzy
+msgid "Lower"
+msgstr "Límit Inferior"
+
+#: src/language/stats/crosstabs.q:1288 src/language/stats/t-test.q:758
+#: src/language/stats/t-test.q:922 src/language/stats/t-test.q:1015
+#, fuzzy
+msgid "Upper"
+msgstr "Límit Superior"
+
+#: src/language/stats/crosstabs.q:1305
+msgid "Directional measures."
+msgstr ""
+
+#: src/language/stats/crosstabs.q:1776
+#, fuzzy
+msgid "Pearson Chi-Square"
+msgstr "Chi-quadrat"
+
+#: src/language/stats/crosstabs.q:1777
+msgid "Likelihood Ratio"
+msgstr ""
+
+#: src/language/stats/crosstabs.q:1778
+msgid "Fisher's Exact Test"
+msgstr ""
+
+#: src/language/stats/crosstabs.q:1779
+msgid "Continuity Correction"
+msgstr ""
+
+#: src/language/stats/crosstabs.q:1780
+msgid "Linear-by-Linear Association"
+msgstr ""
+
+#: src/language/stats/crosstabs.q:1815 src/language/stats/crosstabs.q:1890
+#: src/language/stats/crosstabs.q:1955
+msgid "N of Valid Cases"
+msgstr ""
+
+#: src/language/stats/crosstabs.q:1834 src/language/stats/crosstabs.q:1973
+msgid "Nominal by Nominal"
+msgstr ""
+
+#: src/language/stats/crosstabs.q:1835 src/language/stats/crosstabs.q:1974
+msgid "Ordinal by Ordinal"
+msgstr ""
+
+#: src/language/stats/crosstabs.q:1836
+msgid "Interval by Interval"
+msgstr ""
+
+#: src/language/stats/crosstabs.q:1837
+msgid "Measure of Agreement"
+msgstr ""
+
+#: src/language/stats/crosstabs.q:1843
+msgid "Cramer's V"
+msgstr ""
+
+#: src/language/stats/crosstabs.q:1844
+msgid "Contingency Coefficient"
+msgstr ""
+
+#: src/language/stats/crosstabs.q:1845
+msgid "Kendall's tau-b"
+msgstr ""
+
+#: src/language/stats/crosstabs.q:1846
+msgid "Kendall's tau-c"
+msgstr ""
+
+#: src/language/stats/crosstabs.q:1848
+msgid "Spearman Correlation"
+msgstr ""
+
+#: src/language/stats/crosstabs.q:1849
+msgid "Pearson's R"
+msgstr ""
+
+#: src/language/stats/crosstabs.q:1928
+#, c-format
+msgid "Odds Ratio for %s (%g / %g)"
+msgstr ""
+
+#: src/language/stats/crosstabs.q:1931
+#, c-format
+msgid "Odds Ratio for %s (%.*s / %.*s)"
+msgstr ""
+
+#: src/language/stats/crosstabs.q:1939
+#, c-format
+msgid "For cohort %s = %g"
+msgstr ""
+
+#: src/language/stats/crosstabs.q:1942
+#, c-format
+msgid "For cohort %s = %.*s"
+msgstr ""
+
+#: src/language/stats/crosstabs.q:1975
+msgid "Nominal by Interval"
+msgstr ""
+
+#: src/language/stats/crosstabs.q:1981
+msgid "Goodman and Kruskal tau"
+msgstr ""
+
+#: src/language/stats/crosstabs.q:1982
+msgid "Uncertainty Coefficient"
+msgstr ""
+
+#: src/language/stats/crosstabs.q:1983
+msgid "Somers' d"
+msgstr ""
+
+#: src/language/stats/crosstabs.q:1989
+#, fuzzy
+msgid "Symmetric"
+msgstr "Numèric"
+
+#: src/language/stats/crosstabs.q:1990 src/language/stats/crosstabs.q:1991
+#, c-format
+msgid "%s Dependent"
+msgstr ""
+
+#: src/language/stats/examine.q:346 src/language/stats/examine.q:499
+#: src/language/stats/examine.q:1060
+msgid "Not creating plot because data set is empty."
+msgstr ""
+
+#: src/language/stats/examine.q:356
+#, c-format
+msgid "Normal Q-Q Plot of %s"
+msgstr ""
+
+#: src/language/stats/examine.q:357 src/language/stats/examine.q:362
+#, fuzzy
+msgid "Observed Value"
+msgstr "N observat"
+
+#: src/language/stats/examine.q:358
+#, fuzzy
+msgid "Expected Normal"
+msgstr "N esperat"
+
+#: src/language/stats/examine.q:360
+#, c-format
+msgid "Detrended Normal Q-Q Plot of %s"
+msgstr ""
+
+#: src/language/stats/examine.q:363
+msgid "Dev from Normal"
+msgstr ""
+
+#: src/language/stats/examine.q:516
+#, c-format
+msgid "Boxplot of %s vs. %s"
+msgstr ""
+
+#: src/language/stats/examine.q:520
+#, c-format
+msgid "Boxplot of %s"
+msgstr ""
+
+#: src/language/stats/examine.q:756 src/language/stats/examine.q:769
+#, c-format
+msgid "%s and %s are mutually exclusive"
+msgstr ""
+
+#: src/language/stats/examine.q:1272 src/language/stats/reliability.q:686
+#, fuzzy
+msgid "Case Processing Summary"
+msgstr "Resum del Cas"
+
+#: src/language/stats/examine.q:1564 src/language/stats/oneway.q:398
+#, fuzzy, c-format
+msgid "%g%% Confidence Interval for Mean"
+msgstr " Interval de Confiança Asimp. %g%%"
+
+#: src/language/stats/examine.q:1579
+msgid "5% Trimmed Mean"
+msgstr ""
+
+#: src/language/stats/examine.q:1614
+msgid "Interquartile Range"
+msgstr ""
+
+#: src/language/stats/examine.q:1939
+#, fuzzy
+msgid "Highest"
+msgstr "Dreta"
+
+#: src/language/stats/examine.q:1944
+#, fuzzy
+msgid "Lowest"
+msgstr "Esquerra"
+
+#: src/language/stats/examine.q:1951
+msgid "Extreme Values"
+msgstr ""
+
+#: src/language/stats/examine.q:1955
+#, fuzzy
+msgid "Case Number"
+msgstr "Resum del Cas"
+
+#: src/language/stats/examine.q:2077
+msgid "Tukey's Hinges"
+msgstr ""
+
+#: src/language/stats/examine.q:2124
+#, c-format
+msgid "%g"
+msgstr ""
+
+#: src/language/stats/frequencies.q:124
+#, fuzzy
+msgid "S.E. Mean"
+msgstr "Mitj. E.E."
+
+#: src/language/stats/frequencies.q:130
+#, fuzzy
+msgid "S.E. Kurt"
+msgstr "Curt.E.E."
+
+#: src/language/stats/frequencies.q:132
+#, fuzzy
+msgid "S.E. Skew"
+msgstr "Asim.E.E."
+
+#: src/language/stats/frequencies.q:407
+msgid "At most one of BARCHART, HISTOGRAM, or HBAR should be given.  HBAR will be assumed.  Argument values will be given precedence increasing along the order given."
+msgstr ""
+
+#: src/language/stats/frequencies.q:490
+#, c-format
+msgid "MAX must be greater than or equal to MIN, if both are specified.  However, MIN was specified as %g and MAX as %g.  MIN and MAX will be ignored."
+msgstr ""
+
+#: src/language/stats/frequencies.q:754
+#, fuzzy, c-format
+msgid "Variable %s specified multiple times on VARIABLES subcommand."
+msgstr "La variable %s s'especifica dues vegades als criteris d'ordenació."
+
+#: src/language/stats/frequencies.q:812
+#, fuzzy
+msgid "`)' expected after GROUPED interval list."
+msgstr "`(' esperat després de la llista de variables."
+
+#: src/language/stats/frequencies.q:824
+#, c-format
+msgid "Variables %s specified on GROUPED but not on VARIABLES."
+msgstr ""
+
+#: src/language/stats/frequencies.q:831
+#, fuzzy, c-format
+msgid "Variables %s specified multiple times on GROUPED subcommand."
+msgstr "La variable %s s'especifica dues vegades als criteris d'ordenació."
+
+#: src/language/stats/frequencies.q:1050 src/language/stats/frequencies.q:1143
+#: src/language/stats/frequencies.q:1144 src/language/stats/frequencies.q:1179
+#, fuzzy
+msgid "Cum"
+msgstr "Suma"
+
+#: src/language/stats/frequencies.q:1073
+#, fuzzy
+msgid "Value Label"
+msgstr "Etiqueta d'arxiu:"
+
+#: src/language/stats/frequencies.q:1177
+#, fuzzy
+msgid "Freq"
+msgstr "Freqüència"
+
+#: src/language/stats/frequencies.q:1178 src/language/stats/frequencies.q:1180
+msgid "Pct"
+msgstr ""
+
+#: src/language/stats/frequencies.q:1373
+#, fuzzy, c-format
+msgid "No valid data for variable %s; statistics not displayed."
+msgstr "Cap variable per mostrar."
+
+#: src/language/stats/frequencies.q:1414
+#, fuzzy
+msgid "50 (Median)"
+msgstr "50è (Mediana)"
+
+#: src/language/stats/glm.q:196
+#, fuzzy
+msgid "Multivariate GLM not yet supported"
+msgstr "Macros no disponibles."
+
+#: src/language/stats/glm.q:320 src/language/stats/regression.q:1000
+msgid "No valid data found. This command was skipped."
+msgstr ""
+
+#: src/language/stats/means.q:100
+#, fuzzy
+msgid "Missing required subcommand TABLES."
+msgstr "subordre requerida %s absent"
+
+#: src/language/stats/means.q:134
+#, fuzzy
+msgid "TABLES subcommand may not appear more than once."
+msgstr "El subcomando RENAME pot ser utilitzat només una vegada."
+
+#: src/language/stats/npar.q:109
+#, fuzzy
+msgid "NPAR subcommand not currently implemented."
+msgstr "Només USE ALL s'està aplicant actualment."
+
+#: src/language/stats/npar.q:252
+#, c-format
+msgid "The specified value of HI (%d) is lower than the specified value of LO (%d)"
+msgstr ""
+
+#: src/language/stats/npar.q:307
+#, c-format
+msgid "%d expected values were given, but the specified range (%d-%d) requires exactly %d values."
+msgstr ""
+
+#: src/language/stats/npar.q:441 src/language/stats/t-test.q:379
+#, c-format
+msgid "PAIRED was specified but the number of variables preceding WITH (%zu) did not match the number following (%zu)."
+msgstr ""
+
+#: src/language/stats/oneway.q:171
+msgid "Number of contrast coefficients must equal the number of groups"
+msgstr ""
+
+#: src/language/stats/oneway.q:180
+#, c-format
+msgid "Coefficients for contrast %zu do not total zero"
+msgstr ""
+
+#: src/language/stats/oneway.q:243
+#, fuzzy, c-format
+msgid "`%s' is not a variable name"
+msgstr "%s no és un nom de variable."
+
+#: src/language/stats/oneway.q:277 src/language/stats/regression.q:301
+#, fuzzy
+msgid "Sum of Squares"
+msgstr "Suma de Rangs"
+
+#: src/language/stats/oneway.q:279 src/language/stats/regression.q:303
+#, fuzzy
+msgid "Mean Square"
+msgstr "Rang mitjà"
+
+#: src/language/stats/oneway.q:280 src/language/stats/regression.q:304
+#: src/language/stats/t-test.q:750
+msgid "F"
+msgstr ""
+
+#: src/language/stats/oneway.q:281 src/language/stats/oneway.q:539
+#: src/language/stats/regression.q:206 src/language/stats/regression.q:305
+msgid "Significance"
+msgstr ""
+
+#: src/language/stats/oneway.q:303
+msgid "Between Groups"
+msgstr ""
+
+#: src/language/stats/oneway.q:304
+msgid "Within Groups"
+msgstr ""
+
+#: src/language/stats/oneway.q:348 src/language/stats/regression.q:330
+msgid "ANOVA"
+msgstr ""
+
+#: src/language/stats/oneway.q:536
+#, fuzzy
+msgid "Levene Statistic"
+msgstr "Estatístic"
+
+#: src/language/stats/oneway.q:537
+#, fuzzy
+msgid "df1"
+msgstr "df"
+
+#: src/language/stats/oneway.q:538
+#, fuzzy
+msgid "df2"
+msgstr "df"
+
+#: src/language/stats/oneway.q:541
+msgid "Test of Homogeneity of Variances"
+msgstr ""
+
+#: src/language/stats/oneway.q:608
+msgid "Contrast Coefficients"
+msgstr ""
+
+#: src/language/stats/oneway.q:610 src/language/stats/oneway.q:687
+#, fuzzy
+msgid "Contrast"
+msgstr "Recompte"
+
+#: src/language/stats/oneway.q:685
+msgid "Contrast Tests"
+msgstr ""
+
+#: src/language/stats/oneway.q:688
+msgid "Value of Contrast"
+msgstr ""
+
+#: src/language/stats/oneway.q:690 src/language/stats/regression.q:205
+#: src/language/stats/t-test.q:752 src/language/stats/t-test.q:923
+#: src/language/stats/t-test.q:1010
+msgid "t"
+msgstr ""
+
+#: src/language/stats/oneway.q:692 src/language/stats/t-test.q:754
+#: src/language/stats/t-test.q:925 src/language/stats/t-test.q:1012
+#, fuzzy
+msgid "Sig. (2-tailed)"
+msgstr "Sig. Exacta (2-cues)"
+
+#: src/language/stats/oneway.q:736
+msgid "Assume equal variances"
+msgstr ""
+
+#: src/language/stats/oneway.q:740
+msgid "Does not assume equal"
+msgstr ""
+
+#: src/language/stats/rank.q:221
+#, c-format
+msgid "%s of %s by %s"
+msgstr ""
+
+#: src/language/stats/rank.q:226
+#, fuzzy, c-format
+msgid "%s of %s"
+msgstr "puntuació-Z de %s"
+
+#: src/language/stats/rank.q:601
+#, fuzzy
+msgid "Cannot create new rank variable.  All candidates in use."
+msgstr "No es pot crear el nom de la variable des de %s"
+
+#: src/language/stats/rank.q:694
+msgid "Variables Created By RANK"
+msgstr ""
+
+#: src/language/stats/rank.q:718
+#, c-format
+msgid "%s into %s(%s of %s using %s BY %s)"
+msgstr ""
+
+#: src/language/stats/rank.q:728
+#, c-format
+msgid "%s into %s(%s of %s BY %s)"
+msgstr ""
+
+#: src/language/stats/rank.q:741
+#, c-format
+msgid "%s into %s(%s of %s using %s)"
+msgstr ""
+
+#: src/language/stats/rank.q:750
+#, c-format
+msgid "%s into %s(%s of %s)"
+msgstr ""
+
+#: src/language/stats/rank.q:762
+msgid "FRACTION has been specified, but NORMAL and PROPORTION rank functions have not been requested.  The FRACTION subcommand will be ignored."
+msgstr ""
+
+#: src/language/stats/rank.q:853
+#, fuzzy, c-format
+msgid "Variable %s already exists."
+msgstr "Un vector anomenat %s ja existeix."
+
+#: src/language/stats/rank.q:858
+#, fuzzy
+msgid "Too many variables in INTO clause."
+msgstr "Massa valors en el comandament únic."
+
+#: src/language/stats/regression.q:160
+#, fuzzy
+msgid "R Square"
+msgstr "Chi-quadrat"
+
+#: src/language/stats/regression.q:161
+#, fuzzy
+msgid "Adjusted R Square"
+msgstr "Residu Tipificat Ajustat"
+
+#: src/language/stats/regression.q:162
+#, fuzzy
+msgid "Std. Error of the Estimate"
+msgstr "Error estàndard en la mitjana"
+
+#: src/language/stats/regression.q:167
+#, fuzzy
+msgid "Model Summary"
+msgstr "Resum del Cas"
+
+#: src/language/stats/regression.q:202
+msgid "B"
+msgstr ""
+
+#: src/language/stats/regression.q:204
+msgid "Beta"
+msgstr ""
+
+#: src/language/stats/regression.q:207
+msgid "(Constant)"
+msgstr ""
+
+#: src/language/stats/regression.q:271
+msgid "Coefficients"
+msgstr ""
+
+#: src/language/stats/regression.q:307
+#, fuzzy
+msgid "Regression"
+msgstr "en l'expressió"
+
+#: src/language/stats/regression.q:389
+#, fuzzy
+msgid "Model"
+msgstr "Mode"
+
+#: src/language/stats/regression.q:390
+#, fuzzy
+msgid "Covariances"
+msgstr "Variància"
+
+#: src/language/stats/regression.q:405
+msgid "Coefficient Correlations"
+msgstr ""
+
+#: src/language/stats/regression.q:812
+msgid "The dependent variable is equal to the independent variable.The least squares line is therefore Y=X.Standard errors and related statistics may be meaningless."
+msgstr ""
+
+#: src/language/stats/regression.q:904
+#, fuzzy
+msgid "Dependent variable must be numeric."
+msgstr "Variable de ponderació ha de ser numèrica."
+
+#: src/language/stats/reliability.q:433
+#, fuzzy
+msgid "Reliability Statistics"
+msgstr "Proves Estad."
+
+#: src/language/stats/reliability.q:476
+#, fuzzy
+msgid "Item-Total Statistics"
+msgstr "Proves Estad."
+
+#: src/language/stats/reliability.q:498
+msgid "Scale Mean if Item Deleted"
+msgstr ""
+
+#: src/language/stats/reliability.q:501
+msgid "Scale Variance if Item Deleted"
+msgstr ""
+
+#: src/language/stats/reliability.q:504
+msgid "Corrected Item-Total Correlation"
+msgstr ""
+
+#: src/language/stats/reliability.q:507
+msgid "Cronbach's Alpha if Item Deleted"
+msgstr ""
+
+#: src/language/stats/reliability.q:557 src/language/stats/reliability.q:576
+msgid "Cronbach's Alpha"
+msgstr ""
+
+#: src/language/stats/reliability.q:560
+msgid "N of items"
+msgstr ""
+
+#: src/language/stats/reliability.q:579
+msgid "Part 1"
+msgstr ""
+
+#: src/language/stats/reliability.q:585 src/language/stats/reliability.q:596
+msgid "N of Items"
+msgstr ""
+
+#: src/language/stats/reliability.q:590
+msgid "Part 2"
+msgstr ""
+
+#: src/language/stats/reliability.q:601
+msgid "Total N of Items"
+msgstr ""
+
+#: src/language/stats/reliability.q:604
+msgid "Correlation Between Forms"
+msgstr ""
+
+#: src/language/stats/reliability.q:608
+msgid "Spearman-Brown Coefficient"
+msgstr ""
+
+#: src/language/stats/reliability.q:611
+msgid "Equal Length"
+msgstr ""
+
+#: src/language/stats/reliability.q:614
+msgid "Unequal Length"
+msgstr ""
+
+#: src/language/stats/reliability.q:618
+msgid "Guttman Split-Half Coefficient"
+msgstr ""
+
+#: src/language/stats/reliability.q:715
+#, fuzzy
+msgid "Excluded"
+msgstr "Esperat"
+
+#: src/language/stats/reliability.q:723
+msgid "%"
+msgstr ""
+
+#: src/language/stats/t-test.q:189
+msgid "Exactly one of TESTVAL, GROUPS and PAIRS subcommands must be specified."
+msgstr ""
+
+#: src/language/stats/t-test.q:210
+#, fuzzy
+msgid "VARIABLES subcommand may not be used with PAIRS."
+msgstr "El subcomando END només pot ser utilitzat dins de INPUT PROGRAM."
+
+#: src/language/stats/t-test.q:229
+#, fuzzy
+msgid "One or more VARIABLES must be specified."
+msgstr "Al menys una variable ha de ser especificada."
+
+#: src/language/stats/t-test.q:323
+#, fuzzy
+msgid "When applying GROUPS to a string variable, two values must be specified."
+msgstr "Al menys una variable ha de ser especificada."
+
+#: src/language/stats/t-test.q:394
+#, fuzzy
+msgid "At least two variables must be specified on PAIRS."
+msgstr "Al menys una variable ha de ser especificada."
+
+#: src/language/stats/t-test.q:504
+#, fuzzy
+msgid "One-Sample Statistics"
+msgstr "Proves Estad."
+
+#: src/language/stats/t-test.q:509 src/language/stats/t-test.q:529
+#: src/language/stats/t-test.q:628
+#, fuzzy
+msgid "SE. Mean"
+msgstr "Mitj. E.E."
+
+#: src/language/stats/t-test.q:523
+#, fuzzy
+msgid "Group Statistics"
+msgstr "Estatístic"
+
+#: src/language/stats/t-test.q:622
+#, fuzzy
+msgid "Paired Sample Statistics"
+msgstr "Proves Estad."
+
+#: src/language/stats/t-test.q:642 src/language/stats/t-test.q:945
+#: src/language/stats/t-test.q:1119
+#, c-format
+msgid "Pair %d"
+msgstr ""
+
+#: src/language/stats/t-test.q:738
+msgid "Independent Samples Test"
+msgstr ""
+
+#: src/language/stats/t-test.q:746
+msgid "Levene's Test for Equality of Variances"
+msgstr ""
+
+#: src/language/stats/t-test.q:748
+msgid "t-test for Equality of Means"
+msgstr ""
+
+#: src/language/stats/t-test.q:751 src/language/stats/t-test.q:1107
+#, fuzzy
+msgid "Sig."
+msgstr "Cadena"
+
+#: src/language/stats/t-test.q:755 src/language/stats/t-test.q:1013
+#, fuzzy
+msgid "Mean Difference"
+msgstr "Diferències Negatives"
+
+#: src/language/stats/t-test.q:756
+#, fuzzy
+msgid "Std. Error Difference"
+msgstr "Error Est."
+
+#: src/language/stats/t-test.q:761 src/language/stats/t-test.q:915
+#: src/language/stats/t-test.q:1005
+#, fuzzy, c-format
+msgid "%g%% Confidence Interval of the Difference"
+msgstr " Interval de Confiança Asimp. %g%%"
+
+#: src/language/stats/t-test.q:815
+msgid "Equal variances assumed"
+msgstr ""
+
+#: src/language/stats/t-test.q:861
+msgid "Equal variances not assumed"
+msgstr ""
+
+#: src/language/stats/t-test.q:905
+msgid "Paired Samples Test"
+msgstr ""
+
+#: src/language/stats/t-test.q:908
+#, fuzzy
+msgid "Paired Differences"
+msgstr "Diferències Negatives"
+
+#: src/language/stats/t-test.q:920
+#, fuzzy
+msgid "Std. Error Mean"
+msgstr "Error Est."
+
+#: src/language/stats/t-test.q:994
+msgid "One-Sample Test"
+msgstr ""
+
+#: src/language/stats/t-test.q:999
+#, c-format
+msgid "Test Value = %f"
+msgstr ""
+
+#: src/language/stats/t-test.q:1102
+msgid "Paired Samples Correlations"
+msgstr ""
+
+#: src/language/stats/t-test.q:1106
+msgid "Correlation"
+msgstr ""
+
+#: src/language/stats/t-test.q:1121
+#, c-format
+msgid "%s & %s"
+msgstr ""
+
+#: src/language/data-io/file-handle.q:65
+#, c-format
+msgid "File handle %s is already defined.  Use CLOSE FILE HANDLE before redefining a file handle."
+msgstr ""
+
+#: src/language/data-io/file-handle.q:120
+msgid "RECFORM must be specified with MODE=360."
+msgstr ""
+
+#: src/language/data-io/file-handle.q:131
+#, c-format
+msgid "The specified file mode requires LRECL.  Assuming %d-character records."
+msgstr ""
+
+#: src/language/data-io/file-handle.q:135
+#, c-format
+msgid "Record length (%ld) must be between 1 and %lu bytes.  Assuming %d-character records."
+msgstr ""
+
+#: src/language/data-io/file-handle.q:177
+#, fuzzy
+msgid "file"
+msgstr "Arxiu:"
+
+#: src/language/data-io/file-handle.q:179
+msgid "inline file"
+msgstr ""
+
+#: src/language/data-io/file-handle.q:205
+#, fuzzy
+msgid "expecting a file name or handle name"
+msgstr "esperant nom d'arxiu"
+
+#: src/language/data-io/file-handle.q:225
+#, fuzzy, c-format
+msgid "Handle for %s not allowed here."
+msgstr "L'arxiu en línia no està permès aquí."
+
+#: src/language/data-io/list.q:165
+#, c-format
+msgid "The first case (%ld) specified precedes the last case (%ld) specified.  The values will be swapped."
+msgstr ""
+
+#: src/language/data-io/list.q:173
+#, c-format
+msgid "The first case (%ld) to list is less than 1.  The value is being reset to 1."
+msgstr ""
+
+#: src/language/data-io/list.q:179
+#, c-format
+msgid "The last case (%ld) to list is less than 1.  The value is being reset to 1."
+msgstr ""
+
+#: src/language/data-io/list.q:185
+#, c-format
+msgid "The step value %ld is less than 1.  The value is being reset to 1."
+msgstr ""
+
+#: src/language/data-io/list.q:211
+msgid "`/FORMAT WEIGHT' specified, but weighting is not on."
+msgstr ""
+
+#: src/language/data-io/list.q:468
+msgid "Line"
+msgstr ""
index bd1972812962668069cf39d9ee0554e0825ae8c6..0f838d8fb03a1e683306de548070d30756d66fb6 100644 (file)
--- a/po/nl.po
+++ b/po/nl.po
@@ -1,9 +1,6 @@
-# translation of nl.po to Dutch
-# Dutch translations for PSPP
+# translation of pspp-0.7.2-pre1.po to Dutch
 # Copyright (C) 2007, 2008, 2009 Free Software Foundation, Inc.
-# This file is distributed under the same licence as the PSPP package.
-#
-#
+# This file is distributed under the same licence as the PSPP package.#
 #
 # Vertaalde woorden:
 #  Bad        = Foutief
 #  Required   = vereist
 #  Ranking    = Ordenen
 #  Rename     = Hernoemd
-#  Range      = Range
+#  Range      = Bereik
 #  Rank       = Rang/Rangschik
 #  Specififed = Opgegeven
 #  Stream     = Stream
-#  String     = String
+#  String     = Tekenreeks
 #  Ties       = ??
 #  View       = Beeld/Weergave
 #  Window     = venster
 #  Weighting  = Weging
 #
-# pspp <pspp@sjpaes.nl>, 2009.
+# Harry Thijssen <pspp@sjpaes.nl>, 2009.
 msgid ""
 msgstr ""
-"Project-Id-Version: nl\n"
+"Project-Id-Version: pspp-0.7.2-pre1\n"
 "Report-Msgid-Bugs-To: pspp-dev@gnu.org\n"
-"POT-Creation-Date: 2009-08-30 17:52+0200\n"
-"PO-Revision-Date: 2009-05-15 18:24+0200\n"
-"Last-Translator:  <pspp@sjpaes.nl>\n"
-"Language-Team: Dutch\n"
+"POT-Creation-Date: 2009-09-08 21:57-0700\n"
+"PO-Revision-Date: 2009-11-16 18:38+0100\n"
+"Last-Translator: Harry Thijssen <pspp@sjpaes.nl>\n"
+"Language-Team: Dutch <vertaling@vrijschrift.org>\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
 "Plural-Forms: nplurals=2; plural=n != 1;\n"
-"X-Generator: KBabel 1.11.4\n"
+"X-Generator: Lokalize 1.0\n"
 
 #: src/ui/gui/psppire-buttonbox.c:143
 msgid "Buttons"
@@ -56,7 +53,7 @@ msgstr "Verder"
 
 #: src/ui/gui/psppire-buttonbox.c:433
 msgid "OK"
-msgstr ""
+msgstr "OK"
 
 #: src/ui/gui/psppire-buttonbox.c:434
 msgid "Go To"
@@ -68,11 +65,11 @@ msgstr "Afbreken"
 
 #: src/ui/gui/psppire-buttonbox.c:437
 msgid "Help"
-msgstr ""
+msgstr "Help"
 
 #: src/ui/gui/psppire-buttonbox.c:438
 msgid "Reset"
-msgstr "Standaard"
+msgstr "Herstel"
 
 #: src/ui/gui/psppire-buttonbox.c:439
 msgid "Paste"
@@ -84,11 +81,11 @@ msgstr ""
 
 #: src/ui/gui/psppire-dictview.c:214
 msgid "A predicate function"
-msgstr ""
+msgstr "Een predicaat functie"
 
 #: src/ui/gui/psppire-dictview.c:221
 msgid "How many things can be selected"
-msgstr "Hoeveel dingen kunnen worden geselecteerd"
+msgstr "Hoeveel dingen kunnen geselecteerd worden"
 
 #: src/ui/gui/psppire-dictview.c:491 src/language/dictionary/split-file.c:84
 #: src/language/dictionary/sys-file-info.c:169
@@ -102,48 +99,44 @@ msgstr "Variabele"
 
 #: src/ui/gui/psppire-dictview.c:528
 msgid "Prefer variable labels"
-msgstr "Prefereer variabele labels"
+msgstr "Prefereer variable labels"
 
 #: src/data/any-reader.c:57
 #, c-format
 msgid "An error occurred while opening \"%s\": %s."
-msgstr "Er is een fout opgetreden tijdens het openen van \"%s\": %s."
+msgstr "Fout opgetreden bij openen van \"%s\": %s."
 
 #: src/data/any-reader.c:93
 #, c-format
 msgid "\"%s\" is not a system or portable file."
-msgstr "\"%s\" is geen systeem of overdraagbaar (portable) bestand."
+msgstr "\"%s\" is geen systeem of overdraagbaar bestand."
 
 #: src/data/any-reader.c:99 src/data/any-writer.c:63
 msgid "The inline file is not allowed here."
-msgstr "Het 'inline' bestand is hier niet toegestaan."
+msgstr "Het inline-bestand is hier niet toegestaan."
 
 #: src/data/calendar.c:81
 #, c-format
 msgid "Month %d is not in acceptable range of 0 to 13."
-msgstr "Maand %d valt niet in de acceptabele range van 0 tot 13."
+msgstr "Maand %d valt niet in het acceptabele bereik van 0 tot 13."
 
 #: src/data/calendar.c:89
 #, c-format
 msgid "Day %d is not in acceptable range of 0 to 31."
-msgstr "Dag %d valt niet in de acceptabele range van 0 tot 31."
+msgstr "Dag %d valt niet in het acceptabele bereik van 0 tot 31."
 
 #: src/data/calendar.c:96
 #, c-format
 msgid "Date %04d-%d-%d is before the earliest acceptable date of 1582-10-15."
-msgstr "Datum %04d-%d-%d is voor de eerste acceptabele datum van 1582-10-15."
+msgstr "Datum %04d-%d-%d ligt voor de eerste acceptabele datum van 1582-10-15."
 
 #: src/data/casereader-filter.c:221
-msgid ""
-"At least one case in the data read had a weight value that was user-missing, "
-"system-missing, zero, or negative.  These case(s) were ignored."
-msgstr ""
-"Ten minste een case in de gelezen data heeft een gewicht waarde 'user-"
-"missing, system-missing, zero, of negatief.  Deze case(s) zijn genegeerd."
+msgid "At least one case in the data read had a weight value that was user-missing, system-missing, zero, or negative.  These case(s) were ignored."
+msgstr "Tenminste een case in de gelezen gegevens heeft een gewichtwaarde 'user-missing, system-missing, zero, of negatief.  Deze case(s) zijn genegeerd."
 
 #: src/data/data-in.c:274 src/data/data-in.c:464
 msgid "Field contents are not numeric."
-msgstr "Veld inhoud is niet numeriek."
+msgstr "Veldinhoud is niet numeriek."
 
 #: src/data/data-in.c:276 src/data/data-in.c:466
 msgid "Number followed by garbage."
@@ -175,34 +168,29 @@ msgstr "Veld moet een even lengte hebben."
 
 #: src/data/data-in.c:379 src/data/data-in.c:661
 msgid "Field must contain only hex digits."
-msgstr "Veld mag alleen hex cijfers bevatten."
+msgstr "Veld mag alleen hexadecimale cijfers bevatten."
 
 #: src/data/data-in.c:700 src/data/data-in.c:747
 msgid "Syntax error in date field."
-msgstr "Syntax fout in datum veld."
+msgstr "Syntaxfout in datumveld."
 
 #: src/data/data-in.c:716
 #, c-format
 msgid "Day (%ld) must be between 1 and 31."
-msgstr "Dag (%ld) moet tussen 1 en 31 zijn."
+msgstr "Dag (%ld) moet tussen 1 en 31 liggen."
 
 #: src/data/data-in.c:763
 msgid "Delimiter expected between fields in date."
 msgstr "Veldscheider verwacht tussen velden in datum."
 
 #: src/data/data-in.c:837
-msgid ""
-"Unrecognized month format.  Months may be specified as Arabic or Roman "
-"numerals or as at least 3 letters of their English names."
-msgstr ""
-"Niet herkend maand formaat.  Maanden mogen gespecificeerd zijn als Arabisch "
-"of Romeins numeriek of als tenminste de eerste 3 letters van hun Engelse "
-"naam."
+msgid "Unrecognized month format.  Months may be specified as Arabic or Roman numerals or as at least 3 letters of their English names."
+msgstr "Niet-herkend maand format.  Maanden mogen gespecificeerd zijn als Arabisch of Romeins numeriek of als tenminste de eerste 3 letters van hun Engelse naam."
 
 #: src/data/data-in.c:864
 #, c-format
 msgid "Year (%ld) must be between 1582 and 19999."
-msgstr "Jaar (%ld) moet tussen 1582 en 19999 zijn."
+msgstr "Jaar (%ld) moet tussen 1582 en 19999 liggen."
 
 #: src/data/data-in.c:876
 #, c-format
@@ -238,17 +226,13 @@ msgid "Minute (%ld) must be between 0 and 59."
 msgstr "Minuut (%ld) moet tussen 0 en 59 zijn."
 
 #: src/data/data-in.c:1014
-msgid ""
-"Unrecognized weekday name.  At least the first two letters of an English "
-"weekday name must be specified."
-msgstr ""
-"Niet herkende weekdag naam.  Tenminste de eerste 2 letters van een Engelse "
-"weekdag naam moeten opgegeven worden."
+msgid "Unrecognized weekday name.  At least the first two letters of an English weekday name must be specified."
+msgstr "Niet-herkende weekdagnaam.  Tenminste de eerste 2 letters van een Engelse weekdagnaam moeten opgegeven worden."
 
 #: src/data/data-in.c:1152
 #, c-format
 msgid "`%c' expected in date field."
-msgstr "`%c' verwacht in datum veld."
+msgstr "`%c' verwacht in datumveld."
 
 #: src/data/data-in.c:1193
 #, c-format
@@ -268,12 +252,12 @@ msgstr "%s veld) "
 #: src/data/data-out.c:481
 #, c-format
 msgid "Weekday number %f is not between 1 and 7."
-msgstr "Weekdag nummer %f is niet tussen 1 en 7."
+msgstr "Weekdagnummer %f ligt niet tussen 1 en 7."
 
 #: src/data/data-out.c:502
 #, c-format
 msgid "Month number %f is not between 1 and 12."
-msgstr "Maand nummer %f is niet tussen 1 en 12."
+msgstr "Maandnummer %f is niet tussen 1 en 12."
 
 #: src/data/dict-class.c:52
 msgid "ordinary"
@@ -285,33 +269,26 @@ msgstr "systeem"
 
 #: src/data/dict-class.c:56
 msgid "scratch"
-msgstr ""
+msgstr "scratch"
 
 #: src/data/dictionary.c:940
-msgid ""
-"At least one case in the data file had a weight value that was user-missing, "
-"system-missing, zero, or negative.  These case(s) were ignored."
-msgstr ""
-"Op zijn minst een case in het data bestand heeft een gewicht waarde user-"
-"missing, system-missing, nul, of negatief.  Deze case(s) zijn genegeerd."
+msgid "At least one case in the data file had a weight value that was user-missing, system-missing, zero, or negative.  These case(s) were ignored."
+msgstr "Op zijn minst een case in het gegevensbestand heeft een gewichtwaarde user-missing, system-missing, nul, of negatief.  Deze case(s) zijn genegeerd."
 
 #: src/data/dictionary.c:1263
 #, c-format
 msgid "Truncating document line to %d bytes."
-msgstr "Document regel afgekapt tot %d bytes."
+msgstr "Documentregel afgekapt tot %d bytes."
 
 #: src/data/file-handle-def.c:462
 #, c-format
 msgid "Can't read from %s as a %s because it is already being read as a %s."
-msgstr ""
-"Kan niet lezen van %s als een %s omdat het al gelezen wordt als een %s."
+msgstr "Kan niet lezen van %s als een %s omdat het al gelezen wordt als een %s."
 
 #: src/data/file-handle-def.c:466
 #, c-format
 msgid "Can't write to %s as a %s because it is already being written as a %s."
-msgstr ""
-"Kan niet schrijven naar %s als een %s omdat het al geschreven wordt als een %"
-"s."
+msgstr "Kan niet schrijven naar %s als een %s omdat het al geschreven wordt als een %s."
 
 #: src/data/file-handle-def.c:473
 #, c-format
@@ -335,20 +312,20 @@ msgstr "...niet gevonden"
 #: src/data/file-name.c:243
 #, c-format
 msgid "Not opening pipe file `%s' because SAFER option set."
-msgstr ""
+msgstr "Pijpbestand `%s' wordt niet geopend omdat de SAFER optie is gezet."
 
 #: src/data/format.c:235
 msgid "Input format"
-msgstr "Invoer formaat"
+msgstr "Invoer-format"
 
 #: src/data/format.c:235
 msgid "Output format"
-msgstr "Uitvoer formaat"
+msgstr "Uitvoer-format"
 
 #: src/data/format.c:244
 #, c-format
 msgid "Format %s may not be used for input."
-msgstr "Formaat %s mag niet gebruikt worden voor invoer."
+msgstr "Format %s mag niet gebruikt worden voor invoer."
 
 #: src/data/format.c:251
 #, c-format
@@ -358,58 +335,39 @@ msgstr "%s specificeert breedte %d, maar %s vereist een even breedte."
 #: src/data/format.c:260
 #, c-format
 msgid "%s %s specifies width %d, but %s requires a width between %d and %d."
-msgstr ""
-"%s %s specificeert breedte %d, maar %s vereist een breedte tussen %d en %d."
+msgstr "%s %s specificeert breedte %d, maar %s vereist een breedte tussen %d en %d."
 
 #: src/data/format.c:269
 #, c-format
 msgid "%s %s specifies %d decimal place, but %s does not allow any decimals."
-msgid_plural ""
-"%s %s specifies %d decimal places, but %s does not allow any decimals."
-msgstr[0] ""
-"%s %s specificeert %d decima(a)l(en), maar %s staat geen decimalen toe."
+msgid_plural "%s %s specifies %d decimal places, but %s does not allow any decimals."
+msgstr[0] "%s %s specificeert %d decimaal, maar %s staat geen decimalen toe."
 msgstr[1] "%s %s specificeert %d decimalen, maar %s staat geen decimalen toe."
 
 #: src/data/format.c:280
 #, c-format
-msgid ""
-"%s %s specifies %d decimal place, but the given width allows at most %d "
-"decimals."
-msgid_plural ""
-"%s %s specifies %d decimal places, but the given width allows at most %d "
-"decimals."
-msgstr[0] ""
-"%s %s specificeert %d decimalen, maar de opgegeven breedte staat maximaal %d "
-"decimalentoe."
-msgstr[1] ""
-"%s %s specificeert %d decimalen, maar de opgegeven breedte staat maximaal %d "
-"toe."
+msgid "%s %s specifies %d decimal place, but the given width allows at most %d decimals."
+msgid_plural "%s %s specifies %d decimal places, but the given width allows at most %d decimals."
+msgstr[0] "%s %s specificeert %d decimaal, maar de opgegeven breedte staat maximaal %d decimalen toe."
+msgstr[1] "%s %s specificeert %d decimalen, maar de opgegeven breedte staat maximaal %d decimalen toe."
 
 #: src/data/format.c:287
 #, c-format
-msgid ""
-"%s %s specifies %d decimal place, but the given width does not allow for any "
-"decimals."
-msgid_plural ""
-"%s %s specifies %d decimal places, but the given width does not allow for "
-"any decimals."
-msgstr[0] ""
-"%s %s specificeert %d decima(a)l(en), maar de opgegeven breedte staat geen "
-"decimalen toe."
-msgstr[1] ""
-"%s %s specificeert %d decimalen, maar de opgegeven breedte staat geen "
-"decimalen toe."
+msgid "%s %s specifies %d decimal place, but the given width does not allow for any decimals."
+msgid_plural "%s %s specifies %d decimal places, but the given width does not allow for any decimals."
+msgstr[0] "%s %s specificeert %d decimaal, maar de opgegeven breedte staat geen decimalen toe."
+msgstr[1] "%s %s specificeert %d decimalen, maar de opgegeven breedte staat geen decimalen toe."
 
 #: src/data/format.c:326
 #, c-format
 msgid "%s variables are not compatible with %s format %s."
-msgstr "%s variabelen zijn niet compatibel met %s formaat %s."
+msgstr "%s variabelen zijn niet overeenkomstig met %s format %s."
 
 #: src/data/format.c:327 src/data/sys-file-reader.c:734
 #: src/ui/gui/psppire-var-store.c:628 src/ui/gui/psppire.glade:2009
 #: src/ui/gui/var-sheet-dialogs.glade:139
 msgid "String"
-msgstr ""
+msgstr "Tekenreeks"
 
 #: src/data/format.c:327 src/data/sys-file-reader.c:734
 #: src/ui/gui/psppire-var-store.c:621 src/ui/gui/psppire.glade:2084
@@ -433,40 +391,36 @@ msgstr "numeriek"
 #: src/language/dictionary/apply-dictionary.c:78
 #: src/language/dictionary/apply-dictionary.c:79
 msgid "string"
-msgstr ""
+msgstr "tekenreeks"
 
 #: src/data/format.c:346
 #, c-format
 msgid "String variable with width %d is not compatible with format %s."
-msgstr "String variabele met breedte %d is niet compatibel met formaat %s."
+msgstr "Tekenreeksvariabele met breedte %d is niet overeenkomstig met format %s."
 
 #: src/data/gnumeric-reader.c:36
-msgid ""
-"Support for Gnumeric files was not compiled into this installation of PSPP"
-msgstr ""
-"Ondersteuning voor Gnumeric bestanden is niet gecompileerd in deze "
-"installatie van PSPP"
+msgid "Support for Gnumeric files was not compiled into this installation of PSPP"
+msgstr "Ondersteuning voor Gnumeric-bestanden is niet gecompileerd in deze installatie van PSPP"
 
 #: src/data/gnumeric-reader.c:368
-#, fuzzy, c-format
+#, c-format
 msgid "Error opening \"%s\" for reading as a Gnumeric file: %s."
-msgstr ""
-"Fout bij het openen van \"%s\" voor het lezen als een gnumeric bestand: %s."
+msgstr "Fout bij het openen van \"%s\" voor het lezen als een Gnumeric-bestand: %s."
 
 #: src/data/gnumeric-reader.c:388
 #, c-format
 msgid "Invalid cell range \"%s\""
-msgstr "Ongeldige cel range \"%s\""
+msgstr "Ongeldig celbereik \"%s\""
 
 #: src/data/gnumeric-reader.c:520 src/data/psql-reader.c:187
 #, c-format
 msgid "Cannot create variable name from %s"
-msgstr "Kan geen variabele naam creëren van %s"
+msgstr "Kan geen variabelennaam creëren van %s"
 
 #: src/data/gnumeric-reader.c:532
 #, c-format
 msgid "Selected sheet or range of spreadsheet \"%s\" is empty."
-msgstr "Geselecteerd blad of range van werkblad \"%s\" is leeg."
+msgstr "Geselecteerd blad of bereik van werkblad \"%s\" is leeg."
 
 #: src/data/make-file.c:64
 #, c-format
@@ -516,40 +470,36 @@ msgstr "Verwijderen %s: %s."
 #: src/data/por-file-reader.c:99
 #, c-format
 msgid "portable file %s corrupt at offset 0x%lx: "
-msgstr "overdraagbaar (portable) bestand %s corrupt op offset 0x%lx: "
+msgstr "overdraagbaar bestand %s beschadigd op positie 0x%lx: "
 
 #: src/data/por-file-reader.c:128
 #, c-format
 msgid "reading portable file %s at offset 0x%lx: "
-msgstr "lezen overdraagbaar (portable) bestand %s op offset 0x%lx: "
+msgstr "lezen overdraagbaar bestand %s op positie 0x%lx: "
 
 #: src/data/por-file-reader.c:156
 #, c-format
 msgid "Error closing portable file \"%s\": %s."
-msgstr ""
-"Fout bij het afsluiten van overdraagbaar (portable) bestand \"%s\": %s."
+msgstr "Fout bij het afsluiten van overdraagbaar bestand \"%s\": %s."
 
 #: src/data/por-file-reader.c:208
 msgid "unexpected end of file"
-msgstr "onverwacht einde bestand"
+msgstr "onverwacht einde-bestand"
 
 #. TRANSLATORS: this fragment will be interpolated into
 #. messages in fh_lock() that identify types of files.
 #: src/data/por-file-reader.c:267 src/data/por-file-writer.c:149
 msgid "portable file"
-msgstr "overdraagbaar (portable) bestand"
+msgstr "overdraagbaar bestand"
 
 #: src/data/por-file-reader.c:275
 #, c-format
-msgid ""
-"An error occurred while opening \"%s\" for reading as a portable file: %s."
-msgstr ""
-"Er is een fout opgetreden tijdens het openen van \"%s\" voor het lezen als "
-"overdraagbaar (portable) bestand: %s."
+msgid "An error occurred while opening \"%s\" for reading as a portable file: %s."
+msgstr "Fout opgetreden tijdens het openen van \"%s\" voor het lezen als overdraagbaar bestand: %s."
 
 #: src/data/por-file-reader.c:296
 msgid "Data record expected."
-msgstr "Data record verwacht."
+msgstr "Gegevensrecord verwacht."
 
 #: src/data/por-file-reader.c:378
 msgid "Number expected."
@@ -566,51 +516,46 @@ msgstr "Ongeldige integer."
 #: src/data/por-file-reader.c:440 src/data/por-file-reader.c:460
 #, c-format
 msgid "Bad string length %d."
-msgstr "Foutieve string lengte %d."
+msgstr "Onjuiste tekenreekslengte %d."
 
 #: src/data/por-file-reader.c:523
 #, c-format
 msgid "%s: Not a portable file."
-msgstr "%s: Geen overdraagbaar (portable) bestand."
+msgstr "%s: Geen overdraagbaar bestand."
 
 #: src/data/por-file-reader.c:540
 #, c-format
 msgid "Unrecognized version code `%c'."
-msgstr "Niet herkende versie code `%c'."
+msgstr "Niet-herkende versiecode `%c'."
 
 #: src/data/por-file-reader.c:549
 #, c-format
 msgid "Bad date string length %zu."
-msgstr "Foutieve datum string lengte %zu."
+msgstr "Onjuiste datum-tekenreekslengte %zu."
 
 #: src/data/por-file-reader.c:551
 #, c-format
 msgid "Bad time string length %zu."
-msgstr "Foutieve tijd string lengte %zu."
+msgstr "Onjuiste tijd-tekenreekslengte %zu."
 
 #: src/data/por-file-reader.c:593
 #, c-format
-msgid ""
-"%s: Bad format specifier byte (%d).  Variable will be assigned a default "
-"format."
-msgstr ""
-"%s: Foutief formaat specificatie byte (%d). Variabele krijgt een default "
-"formaat."
+msgid "%s: Bad format specifier byte (%d).  Variable will be assigned a default format."
+msgstr "%s: Onjuist format-specificatie byte (%d). Variabele krijgt een verstek format."
 
 #: src/data/por-file-reader.c:614
 #, c-format
 msgid "Numeric variable %s has invalid format specifier %s."
-msgstr "Numerieke variabele %s heeft een ongeldige formaat specificatie %s."
+msgstr "Numerieke variabele %s heeft een ongeldig format-specificatie %s."
 
 #: src/data/por-file-reader.c:618
 #, c-format
 msgid "String variable %s with width %d has invalid format specifier %s."
-msgstr ""
-"String variabele %s met breedte %d heeft ongeldige formaat specificatie %s."
+msgstr "Tekenreeksvariabele %s met breedte %d heeft ongeldig format-specificatie %s."
 
 #: src/data/por-file-reader.c:642
 msgid "Expected variable count record."
-msgstr "Variabele teller record verwacht."
+msgstr "Variabelenteller record verwacht."
 
 #: src/data/por-file-reader.c:646
 #, c-format
@@ -620,54 +565,51 @@ msgstr "Ongeldig aantal variabelen %d."
 #: src/data/por-file-reader.c:655
 #, c-format
 msgid "Weight variable name (%s) truncated."
-msgstr "Weging variabele naam (%s) afgekapt."
+msgstr "Wegingvariabelennaam (%s) afgekapt."
 
 #: src/data/por-file-reader.c:670
 msgid "Expected variable record."
-msgstr "Variabel record verwacht."
+msgstr "Variabelenrecord verwacht."
 
 #: src/data/por-file-reader.c:674
 #, c-format
 msgid "Invalid variable width %d."
-msgstr "Ongeldige variabele breedte %d."
+msgstr "Ongeldige variabelenbreedte %d."
 
 #: src/data/por-file-reader.c:681
 #, c-format
 msgid "Invalid variable name `%s' in position %d."
-msgstr "Ongeldige variabele naam '%s' in positie %d."
+msgstr "Ongeldige variabelennaam '%s' in positie %d."
 
 #: src/data/por-file-reader.c:685 src/data/sys-file-reader.c:592
 #, c-format
 msgid "Bad width %d for variable %s."
-msgstr "Foutieve breedte %d voor variabele %s."
+msgstr "Onjuiste breedte %d voor variabele %s."
 
 #: src/data/por-file-reader.c:700
 #, c-format
 msgid "Duplicate variable name %s in position %d."
-msgstr "Dubbele variabele naam %s in positie %d."
+msgstr "Dubbele variabelennaam %s in positie %d."
 
 #: src/data/por-file-reader.c:701
 #, c-format
 msgid "Duplicate variable name %s in position %d renamed to %s."
-msgstr "Dubbele variabele naam %s in positie %d hernoemd naar %s."
+msgstr "Dubbele variabelennaam %s in positie %d hernoemd naar %s."
 
 #: src/data/por-file-reader.c:750
 #, c-format
 msgid "Weighting variable %s not present in dictionary."
-msgstr "Weging variabele %s niet aanwezig in woordenboek."
+msgstr "Wegingvariabele %s niet aanwezig in woordenboek."
 
 #: src/data/por-file-reader.c:794
 #, c-format
 msgid "Unknown variable %s while parsing value labels."
-msgstr "Onbekende variabele %s tijdens het ontleden van waarde labels."
+msgstr "Onbekende variabele %s tijdens het ontleden van waardelabels."
 
 #: src/data/por-file-reader.c:797
 #, c-format
-msgid ""
-"Cannot assign value labels to %s and %s, which have different variable types."
-msgstr ""
-"Kan geen waarde labels toekennen aan %s en %s, die verschillende variabele "
-"types hebben."
+msgid "Cannot assign value labels to %s and %s, which have different variable types."
+msgstr "Kan geen waardelabels toekennen aan %s en %s, die verschillende variabelentypes hebben."
 
 #: src/data/por-file-writer.c:141
 #, c-format
@@ -677,28 +619,20 @@ msgstr "Ongeldige decimaal cijfers teller %d. Behandeld als %d."
 #: src/data/por-file-writer.c:161
 #, c-format
 msgid "Error opening \"%s\" for writing as a portable file: %s."
-msgstr ""
-"Fout tijdens openen \"%s\" voor het schrijven als een overdraagbaar "
-"(portable) bestand: %s."
+msgstr "Fout tijdens openen \"%s\" voor het schrijven als een overdraagbaar bestand: %s."
 
 #: src/data/por-file-writer.c:506
 #, c-format
 msgid "An I/O error occurred writing portable file \"%s\"."
-msgstr ""
-"Een I/O fout opgetreden tijdens het schrijven van overdraagbaar (portable) "
-"bestand \"%s\"."
+msgstr "Een I/O fout opgetreden tijdens het schrijven van overdraagbaar bestand \"%s\"."
 
 #: src/data/psql-reader.c:46
-msgid ""
-"Support for reading postgres databases was not compiled into this "
-"installation of PSPP"
-msgstr ""
-"Ondersteuning voor het lezen van postgres databases was niet gecompileerd in "
-"deze installatie van PSPP"
+msgid "Support for reading postgres databases was not compiled into this installation of PSPP"
+msgstr "Ondersteuning voor het lezen van postgres databases was niet gecompileerd in deze installatie van PSPP"
 
 #: src/data/psql-reader.c:242
 msgid "Memory error whilst opening psql source"
-msgstr "Geheugen fout tijdens het openen van psql source"
+msgstr "Geheugenfout tijdens het openen van psql source"
 
 #: src/data/psql-reader.c:248
 #, c-format
@@ -707,20 +641,12 @@ msgstr "Fout tijdens openen psql source: %s."
 
 #: src/data/psql-reader.c:263
 #, c-format
-msgid ""
-"Postgres server is version %s. Reading from versions earlier than 8.0 is not "
-"supported."
-msgstr ""
-"Postgres server is versie %s. Lezen van versies ouder dan 8.0 wordt niet "
-"ondersteund."
+msgid "Postgres server is version %s. Reading from versions earlier than 8.0 is not supported."
+msgstr "Postgres server is versie %s. Lezen van versies ouder dan 8.0 wordt niet ondersteund."
 
 #: src/data/psql-reader.c:283
-msgid ""
-"Connection is unencrypted, but unencrypted connections have not been "
-"permitted."
-msgstr ""
-"Connectie is niet geëncrypt, maar niet geëncrypte connecties zijn niet "
-"toegestaan."
+msgid "Connection is unencrypted, but unencrypted connections have not been permitted."
+msgstr "Connectie is niet geëncrypt, maar niet geëncrypte connecties zijn niet toegestaan."
 
 #: src/data/psql-reader.c:322 src/data/psql-reader.c:347
 #: src/data/psql-reader.c:357
@@ -735,92 +661,81 @@ msgstr "Niet ondersteunde OID %d. SYSMIS waarde wordt ingevoegd."
 
 #: src/data/scratch-reader.c:54
 #, c-format
-msgid ""
-"Scratch file handle %s has not yet been written, using SAVE or another "
-"procedure, so it cannot yet be used for reading."
+msgid "Scratch file handle %s has not yet been written, using SAVE or another procedure, so it cannot yet be used for reading."
 msgstr ""
 
 #. TRANSLATORS: this fragment will be interpolated into
 #. messages in fh_lock() that identify types of files.
-#: src/data/scratch-writer.c:66
+#: src/data/scratch-writer.c:66 src/language/data-io/file-handle.q:181
 msgid "scratch file"
-msgstr "scratch bestand"
+msgstr "scratchbestand"
 
 #: src/data/settings.c:686
 #, c-format
-msgid ""
-"%s: Custom currency string `%s' does not contain exactly three periods or "
-"commas (or it contains both)."
-msgstr ""
-"%s: Aangepaste waarde string `%s' bevat niet exact drie punten of komma's "
-"(of het bevat beiden). "
+msgid "%s: Custom currency string `%s' does not contain exactly three periods or commas (or it contains both)."
+msgstr "%s: Aangepaste munt-tekenreeks `%s' bevat niet exact drie punten of komma's (of het bevat beiden)."
 
 #: src/data/short-names.c:66
 msgid "Variable suffix too large."
-msgstr "Variabele achtervoegsel te lang."
+msgstr "Variabelen-achtervoegsel te lang."
 
 #: src/data/sys-file-reader.c:213
-#, fuzzy, c-format
+#, c-format
 msgid "Recoded variable name duplicates an existing `%s' within system file."
-msgstr "Dubbele variabele naam '%s' binnen system file."
+msgstr "Recoded variabelennaam dupliceert een bestaande '%s' binnen systeembestand."
 
 #. TRANSLATORS: this fragment will be interpolated into
 #. messages in fh_lock() that identify types of files.
 #: src/data/sys-file-reader.c:276 src/data/sys-file-writer.c:203
 msgid "system file"
-msgstr "systeem bestand"
+msgstr "systeembestand"
 
 #: src/data/sys-file-reader.c:283
 #, c-format
 msgid "Error opening \"%s\" for reading as a system file: %s."
-msgstr ""
-"Fout bij het openen van \"%s\" voor het lezen als een systeem file: %s."
+msgstr "Fout bij het openen van \"%s\" voor het lezen als een systeembestand: %s."
 
 #: src/data/sys-file-reader.c:322 tests/dissect-sysfile.c:136
 msgid "Misplaced type 4 record."
-msgstr "Verkeerd geplaatst type 4 record. "
+msgstr "Verkeerd geplaatst type 4 record."
 
 #: src/data/sys-file-reader.c:333 tests/dissect-sysfile.c:147
 #, c-format
 msgid "Unrecognized record type %d."
-msgstr "Niet herkend record type %d."
+msgstr "Niet-herkend recordtype %d."
 
 #: src/data/sys-file-reader.c:374
 #, c-format
 msgid "File header claims %d variable positions but %d were read from file."
-msgstr ""
-"Bestand kop claimt %d variabele posities maar er zijn er %d gelezen van het "
-"bestand."
+msgstr "Bestandskop claimt %d variabelenposities maar er zijn er %d gelezen van het bestand."
 
 #: src/data/sys-file-reader.c:414
 #, c-format
 msgid "Error closing system file \"%s\": %s."
-msgstr "Fout bij het sluiten van system file \"%s\": %s."
+msgstr "Fout bij het sluiten van systeembestand \"%s\": %s."
 
 #: src/data/sys-file-reader.c:479 src/data/sys-file-reader.c:489
 #: tests/dissect-sysfile.c:181 tests/dissect-sysfile.c:191
 msgid "This is not an SPSS system file."
-msgstr "Dit is geen SPSS systeem bestand."
+msgstr "Dit is geen SPSS-systeembestand."
 
 #: src/data/sys-file-reader.c:511 tests/dissect-sysfile.c:204
-msgid ""
-"Compression bias is not the usual value of 100, or system file uses "
-"unrecognized floating-point format."
+msgid "Compression bias is not the usual value of 100, or system file uses unrecognized floating-point format."
 msgstr ""
 
 #: src/data/sys-file-reader.c:588
 #, c-format
 msgid "Invalid variable name `%s'."
-msgstr "Ongeldige variabele naam '%s'."
+msgstr "Ongeldige variabelennaam '%s'."
 
 #: src/data/sys-file-reader.c:596
 #, c-format
 msgid "Duplicate variable name `%s' within system file."
-msgstr "Dubbele variabele naam '%s' binnen system file."
+msgstr "Dubbele variabelennaam '%s' binnen systeembestand."
 
 #: src/data/sys-file-reader.c:604 tests/dissect-sysfile.c:328
 msgid "Variable label indicator field is not 0 or 1."
-msgstr "Variabel label indicator veld is niet 0 of 1."
+msgstr "Variabelen-labelindicatorveld is niet 0 of 1."
 
 #: src/data/sys-file-reader.c:612 tests/dissect-sysfile.c:337
 #, c-format
@@ -829,26 +744,25 @@ msgstr "Variabele %s heeft label van ongeldige lengte %zu."
 
 #: src/data/sys-file-reader.c:631 tests/dissect-sysfile.c:355
 msgid "Numeric missing value indicator field is not -3, -2, 0, 1, 2, or 3."
-msgstr ""
-"Numeriek ontbrekende waarde indicator veld is niet -3, -2, 0, 1, 2, of 3."
+msgstr "Numeriek ontbrekende-waarde indicatorveld is niet -3, -2, 0, 1, 2, of 3."
 
 #: src/data/sys-file-reader.c:649 tests/dissect-sysfile.c:370
 msgid "String missing value indicator field is not 0, 1, 2, or 3."
-msgstr "String missing waarde indicator veld is niet 0, 1, 2, of 3."
+msgstr "Tekenreeks ontbrekende-waarde indicatorveld is niet 0, 1, 2, of 3."
 
 #: src/data/sys-file-reader.c:681
 msgid "Missing string continuation record."
-msgstr "Mis string continuering record."
+msgstr "Mis tekenreeks continuering record."
 
 #: src/data/sys-file-reader.c:715
 #, c-format
 msgid "Unknown variable format %<PRIu8>."
-msgstr "Onbekend variabele formaat %<PRIu8>."
+msgstr "Onbekend variabelen-format %<PRIu8>."
 
 #: src/data/sys-file-reader.c:733
 #, c-format
 msgid "%s variable %s has invalid %s format %s."
-msgstr "%s variabele %s heeft ongeldig %s formaat %s."
+msgstr "%s variabele %s heeft ongeldig %s format %s."
 
 #: src/data/sys-file-reader.c:736
 msgid "print"
@@ -860,11 +774,11 @@ msgstr "schrijf"
 
 #: src/data/sys-file-reader.c:740
 msgid "Suppressing further invalid format warnings."
-msgstr "Onderdrukt verdere ongeldige formaat waarschuwingen."
+msgstr "Onderdrukt verdere ongeldig format waarschuwingen."
 
 #: src/data/sys-file-reader.c:758
 msgid "Weighting variable must be numeric."
-msgstr "Weging variabele moet numeriek zijn."
+msgstr "Wegingvariabele moet numeriek zijn."
 
 #: src/data/sys-file-reader.c:772
 msgid "Multiple type 6 (document) records."
@@ -873,68 +787,56 @@ msgstr "Meerdere type 6 (document) records."
 #: src/data/sys-file-reader.c:776
 #, c-format
 msgid "Number of document lines (%d) must be greater than 0."
-msgstr "Aantal document regels (%d) moet groter dan 0 zijn."
+msgstr "Aantal documentregels (%d) moet groter dan 0 zijn."
 
 #: src/data/sys-file-reader.c:784
 msgid "Document line contains null byte."
-msgstr "Document regel bevat null byte."
+msgstr "Documentregel bevat null byte."
 
 #: src/data/sys-file-reader.c:874
 #, c-format
-msgid ""
-"Unrecognized record type 7, subtype %d.  Please send a copy of this file, "
-"and the syntax which created it to %s"
-msgstr ""
-"Niet herkend type 7, subtype %d.  Stuur s.v.p. een kopie van dit bestand en "
-"de syntax waarmee het is aangemaakt naar %s "
+msgid "Unrecognized record type 7, subtype %d.  Please send a copy of this file, and the syntax which created it to %s"
+msgstr "Niet-herkend type 7, subtype %d.  Stuur s.v.p. een kopie van dit bestand en de syntax waarmee het is aangemaakt naar %s "
 
 #: src/data/sys-file-reader.c:901 tests/dissect-sysfile.c:550
 #, c-format
 msgid "Bad size (%zu) or count (%zu) field on record type 7, subtype 3."
-msgstr ""
-"Foutieve lengte (%zu) of aantal (%zu) veld in record type 7, subtype 3."
+msgstr "Onjuiste lengte (%zu) of aantal (%zu) veld in recordtype 7, subtype 3."
 
 #: src/data/sys-file-reader.c:921
 #, c-format
-msgid ""
-"Floating-point representation indicated by system file (%d) differs from "
-"expected (%d)."
-msgstr ""
-"Drijvende komma representatie aangegeven door systeem bestand %d verschilt "
-"van verwachting (%d)."
+msgid "Floating-point representation indicated by system file (%d) differs from expected (%d)."
+msgstr "Drijvende komma representatie aangegeven door systeembestand %d verschilt van verwachting (%d)."
 
 #: src/data/sys-file-reader.c:934
 msgid "little-endian"
-msgstr ""
+msgstr "little-endian"
 
 #: src/data/sys-file-reader.c:934
 msgid "big-endian"
-msgstr ""
+msgstr "big-endian"
 
 #: src/data/sys-file-reader.c:935
 #, c-format
-msgid ""
-"Integer format indicated by system file (%s) differs from expected (%s)."
-msgstr ""
-"Integer formaat aangegeven door systeem bestand (%s) verschilt van verwacht "
-"(%s). "
+msgid "Integer format indicated by system file (%s) differs from expected (%s)."
+msgstr "Integer format aangegeven door systeembestand (%s) verschilt van verwacht (%s)."
 
 #: src/data/sys-file-reader.c:992 tests/dissect-sysfile.c:581
 #, c-format
 msgid "Bad size (%zu) or count (%zu) on extension 4."
-msgstr "Foutieve lengte (%zu) of aantal (%zu) bij extensie 4."
+msgstr "Onjuiste lengte (%zu) of aantal (%zu) bij extensie 4."
 
 #: src/data/sys-file-reader.c:996 src/data/sys-file-reader.c:1000
 #: src/data/sys-file-reader.c:1004 tests/dissect-sysfile.c:586
 #: tests/dissect-sysfile.c:591 tests/dissect-sysfile.c:596
-#, fuzzy, c-format
+#, c-format
 msgid "File specifies unexpected value %g as %s."
-msgstr "Bestand specificeert onverwachte waarde %g als SYSMIS."
+msgstr "Bestand specificeert onverwachte waarde %g als %s."
 
 #: src/data/sys-file-reader.c:1021 tests/dissect-sysfile.c:611
 #, c-format
 msgid "Bad size %zu on extension 11."
-msgstr "Foutieve lengte %zu voor extensie 11."
+msgstr "Onjuiste lengte %zu voor extensie 11."
 
 #: src/data/sys-file-reader.c:1033 tests/dissect-sysfile.c:623
 #, c-format
@@ -943,22 +845,18 @@ msgstr "Extensie 11 heeft een foutief aantal %zu (voor %zu variabelen)."
 
 #: src/data/sys-file-reader.c:1054
 #, c-format
-msgid ""
-"Invalid variable display parameters for variable %zu (%s).  Default "
-"parameters substituted."
-msgstr ""
-"Ongeldige variabele toon parameters voor variabele %zu (%s).  Default "
-"parameters ingevuld."
+msgid "Invalid variable display parameters for variable %zu (%s).  Default parameters substituted."
+msgstr "Ongeldige variabelen-toon-parameters voor variabele %zu (%s).  Verstek parameters ingevuld."
 
 #: src/data/sys-file-reader.c:1098
 #, c-format
 msgid "Long variable mapping from %s to invalid variable name `%s'."
-msgstr "Lange variabele afbeelding van %s tot ongeldige naam '%s'. "
+msgstr "Lange variabele afbeelding van %s tot ongeldige naam '%s'."
 
 #: src/data/sys-file-reader.c:1108
 #, c-format
 msgid "Duplicate long variable name `%s' within system file."
-msgstr "Dubbele lange variabele naam `%s' binnen systeem bestand."
+msgstr "Dubbele lange variabelennaam `%s' binnen systeembestand."
 
 #: src/data/sys-file-reader.c:1161
 #, c-format
@@ -967,25 +865,18 @@ msgstr ""
 
 #: src/data/sys-file-reader.c:1171
 #, c-format
-msgid ""
-"%s listed in very long string record with width %s, which requires only one "
-"segment."
-msgstr ""
-"%s vermeld in erg lang string record met breedte %s, dat slechts een segment "
-"vereist."
+msgid "%s listed in very long string record with width %s, which requires only one segment."
+msgstr "%s vermeld in erg lang tekenreeks-record met breedte %s, dat slechts een segment vereist."
 
 #: src/data/sys-file-reader.c:1177
 #, c-format
 msgid "Very long string %s overflows dictionary."
-msgstr "Erg lange string %s is te groot voor woordenboek."
+msgstr "Erg lange-tekenreeks %s is te groot voor woordenboek."
 
 #: src/data/sys-file-reader.c:1191
 #, c-format
-msgid ""
-"Very long string with width %ld has segment %d of width %d (expected %d)"
-msgstr ""
-"Erg lange string met breedte %ld heeft segment %d van breedte %d (verwacht %"
-"d)"
+msgid "Very long string with width %ld has segment %d of width %d (expected %d)"
+msgstr "Erg lange-tekenreeks met breedte %ld heeft segment %d van breedte %d (verwacht %d)"
 
 #: src/data/sys-file-reader.c:1237
 #, c-format
@@ -993,52 +884,38 @@ msgid "Invalid number of labels: %d.  Ignoring labels."
 msgstr "Ongeldig aantal labels: %d. Labels worden genegeerd."
 
 #: src/data/sys-file-reader.c:1268 tests/dissect-sysfile.c:426
-msgid ""
-"Variable index record (type 4) does not immediately follow value label "
-"record (type 3) as it should."
-msgstr ""
-"Variabele index record (type 4) volgt niet onmiddellijk waarde label record "
-"(type 3) zoals het moet."
+msgid "Variable index record (type 4) does not immediately follow value label record (type 3) as it should."
+msgstr "Variabele index record (type 4) volgt niet onmiddellijk waardelabel record (type 3) zoals het moet."
 
 #: src/data/sys-file-reader.c:1275
 #, c-format
-msgid ""
-"Number of variables associated with a value label (%d) is not between 1 and "
-"the number of variables (%zu)."
-msgstr ""
-"Aantal variabelen geassocieerd aan waarde label (%d) is niet tussen 1 en het "
-"aantal variabelen (%zu)."
+msgid "Number of variables associated with a value label (%d) is not between 1 and the number of variables (%zu)."
+msgstr "Aantal variabelen geassocieerd aan waardelabel (%d) is niet tussen 1 en het aantal variabelen (%zu)."
 
 #: src/data/sys-file-reader.c:1286
-#, fuzzy, c-format
-msgid ""
-"Value labels may not be added to long string variables (e.g. %s) using "
-"records types 3 and 4."
-msgstr "Waarde labels zijn niet toegestaan bij lange string variabelen (%s)."
+#, c-format
+msgid "Value labels may not be added to long string variables (e.g. %s) using records types 3 and 4."
+msgstr "Waardelabels mogen niet toegevoegd aan lange tekenreeks-variabelen (bv %s) bij het gebruik van records types 3 en 4."
 
 #: src/data/sys-file-reader.c:1295
 #, c-format
-msgid ""
-"Variables associated with value label are not all of identical type.  "
-"Variable %s is %s, but variable %s is %s."
-msgstr ""
-"Variabelen geassocieerd met waarde label zijn niet allemaal van het "
-"identieke type.  Variabele %s is %s, maar variabele %s is %s."
+msgid "Variables associated with value label are not all of identical type.  Variable %s is %s, but variable %s is %s."
+msgstr "Variabelen geassocieerd met waardelabel zijn niet allemaal van het identieke type.  Variabele %s is %s, maar variabele %s is %s."
 
 #: src/data/sys-file-reader.c:1329
 #, c-format
 msgid "Duplicate value label for %g on %s."
-msgstr "Dubbel waarde label voor %g op %s."
+msgstr "Dubbel waardelabel voor %g op %s."
 
 #: src/data/sys-file-reader.c:1332 src/data/sys-file-reader.c:1513
 #, c-format
 msgid "Duplicate value label for \"%.*s\" on %s."
-msgstr "Dubbel waarde label voor \"%.*s\" on %s."
+msgstr "Dubbel waardelabel voor \"%.*s\" on %s."
 
 #: src/data/sys-file-reader.c:1370
 #, c-format
 msgid "Error parsing attribute value %s[%d]"
-msgstr "Fout bij het ontleden van attribuut waarde %s[%d]"
+msgstr "Fout tijdens ontleden attribuut waarde %s[%d]"
 
 #: src/data/sys-file-reader.c:1384
 #, c-format
@@ -1047,35 +924,27 @@ msgstr "Attribuut waarde %s[%d] is niet geciteerd: %s"
 
 #: src/data/sys-file-reader.c:1447 tests/dissect-sysfile.c:762
 #, c-format
-msgid ""
-"Variable name length in long string value label record (%d) exceeds %d-byte "
-"limit."
+msgid "Variable name length in long string value label record (%d) exceeds %d-byte limit."
 msgstr ""
 
 #: src/data/sys-file-reader.c:1457
-#, fuzzy, c-format
+#, c-format
 msgid "Ignoring long string value record for unknown variable %s."
-msgstr "Variabele afbeelding refereert aan onbekende variabele %s."
+msgstr "Negeren lange tekenreeks waarde record voor onbekende variabele %s."
 
 #: src/data/sys-file-reader.c:1464
-#, fuzzy, c-format
+#, c-format
 msgid "Ignoring long string value record for numeric variable %s."
-msgstr ""
-"Kan missing values uit bron bestand niet toepassen op lange string variabele "
-"%s."
+msgstr "Negeren lange tekenreeks waarde record voor numerieke variabele %s."
 
 #: src/data/sys-file-reader.c:1471
 #, c-format
-msgid ""
-"Ignoring long string value record for variable %s because the record's width "
-"(%d) does not match the variable's width (%d)"
+msgid "Ignoring long string value record for variable %s because the record's width (%d) does not match the variable's width (%d)"
 msgstr ""
 
 #: src/data/sys-file-reader.c:1493
 #, c-format
-msgid ""
-"Ignoring long string value %zu for variable %s, with width %d, that has bad "
-"value width %zu."
+msgid "Ignoring long string value %zu for variable %s, with width %d, that has bad value width %zu."
 msgstr ""
 
 #: src/data/sys-file-reader.c:1608
@@ -1089,17 +958,17 @@ msgstr "Fout tijdens lezen case van bestand %s."
 
 #: src/data/sys-file-reader.c:1713 src/data/sys-file-reader.c:1749
 msgid "Compressed data is corrupt."
-msgstr "Gecomprimeerde data is corrupt."
+msgstr "Gecomprimeerde gegevens zijn beschadigd."
 
 #: src/data/sys-file-reader.c:1836
 #, c-format
 msgid "Variable index %d not in valid range 1...%d."
-msgstr "Variabele index %d niet in geldige range 1...%d."
+msgstr "Variabele index %d niet in geldig bereik 1...%d."
 
 #: src/data/sys-file-reader.c:1841
 #, c-format
 msgid "Variable index %d refers to long string continuation."
-msgstr "Variabele index %d verwijst naar lange string voortzetting."
+msgstr "Variabele index %d verwijst naar lange-tekenreeks voortzetting."
 
 #: src/data/sys-file-reader.c:1909
 #, c-format
@@ -1114,64 +983,55 @@ msgstr "Variabele afbeelding refereert aan onbekende variabele %s."
 #: src/data/sys-file-reader.c:2058 tests/dissect-sysfile.c:959
 #, c-format
 msgid "System error: %s."
-msgstr "Systeem fout: %s."
+msgstr "Systeemfout: %s."
 
 #: src/data/sys-file-reader.c:2060 tests/dissect-sysfile.c:961
 msgid "Unexpected end of file."
-msgstr "Onverwacht bestand einde."
+msgstr "Onverwacht einde-bestand."
 
 #: src/data/sys-file-writer.c:176
 #, c-format
 msgid "Unknown system file version %d. Treating as version %d."
-msgstr "Onbekende systeem bestand versie %d. Behandeld als versie %d."
+msgstr "Onbekende systeembestand versie %d. Behandeld als versie %d."
 
 #: src/data/sys-file-writer.c:215
 #, c-format
 msgid "Error opening \"%s\" for writing as a system file: %s."
-msgstr ""
-"Fout bij het openen van \"%s\" voor het schrijven als een systeem bestand: %"
-"s."
+msgstr "Fout bij het openen van \"%s\" voor het schrijven als een systeembestand: %s."
 
 #: src/data/sys-file-writer.c:923
 #, c-format
 msgid "An I/O error occurred writing system file \"%s\"."
-msgstr ""
-"Een I/O fout is opgetreden tijdens het schrijven van systeem bestand \"%s\"."
+msgstr "Een I/O fout is opgetreden tijdens het schrijven van systeembestand \"%s\"."
 
 #: src/data/variable.c:242
 #, c-format
-msgid ""
-"Character `%c' (in %s) may not appear as the first character in a variable "
-"name."
-msgstr ""
-"Karakter '%c' (in %s) mag niet als eerste karakter in een variabele naam "
-"voorkomen. "
+msgid "Character `%c' (in %s) may not appear as the first character in a variable name."
+msgstr "Karakter '%c' (in %s) mag niet als eerste karakter in een variabelennaam voorkomen."
 
 #: src/data/variable.c:254
 #, c-format
 msgid "Character `%c' (in %s) may not appear in a variable name."
-msgstr "Karakter '%c' (in %s) mag niet in een variabele naam voorkomen."
+msgstr "Karakter '%c' (in %s) mag niet in een variabelennaam voorkomen."
 
 #: src/data/variable.c:282
 msgid "Variable name cannot be empty string."
-msgstr "Variabele naam kan geen lege string zijn."
+msgstr "Variabelennaam kan geen lege tekenreeks zijn."
 
 #: src/data/variable.c:288
 #, c-format
 msgid "Variable name %s exceeds %d-character limit."
-msgstr "Variabele naam %s overschrijdt de limiet van %d-karakters."
+msgstr "Variabelennaam %s overschrijdt de limiet van %d-karakters."
 
 #: src/data/variable.c:296
 #, c-format
 msgid "`%s' may not be used as a variable name because it is a reserved word."
-msgstr ""
-"'%s' mag niet gebruikt worden als variabele naam omdat het een gereserveerd "
-"woord is."
+msgstr "'%s' mag niet gebruikt worden als variabelennaam omdat het een gereserveerd woord is."
 
 #: src/language/syntax-file.c:88
 #, c-format
 msgid "opening \"%s\" as syntax file"
-msgstr "openen \"%s\" als syntax bestand"
+msgstr "openen \"%s\" als syntaxbestand"
 
 #: src/language/syntax-file.c:93
 #, c-format
@@ -1196,12 +1056,12 @@ msgstr "%s is nog niet geïmplementeerd."
 #: src/language/command.c:214
 #, c-format
 msgid "%s may be used only in testing mode."
-msgstr "%s mag alleen in test modus gebruikt worden."
+msgstr "%s mag alleen in testmodus gebruikt worden."
 
 #: src/language/command.c:220
 #, c-format
 msgid "%s may be used only in enhanced syntax mode."
-msgstr "%s mag alleen in uitgebreide syntax modus gebruikt worden."
+msgstr "%s mag alleen in uitgebreide syntaxmodus gebruikt worden."
 
 #: src/language/command.c:248
 msgid "Error encountered while ERROR=STOP is effective."
@@ -1209,7 +1069,7 @@ msgstr "Fout tegengekomen terwijl ERROR=STOP is actief."
 
 #: src/language/command.c:489
 msgid "expecting command name"
-msgstr "opdracht naam verwacht"
+msgstr "opdrachtnaam verwacht"
 
 #: src/language/command.c:503
 #, c-format
@@ -1238,39 +1098,23 @@ msgstr "%s is alleen toegestaan binnen FILE TYPE."
 
 #: src/language/command.c:647
 #, c-format
-msgid ""
-"%s is allowed only before the active file has been defined or inside INPUT "
-"PROGRAM."
-msgstr ""
-"%s is alleen toegestaan voordat het actieve bestand is gedefinieerd of "
-"binnen INPUT PROGRAMMA."
+msgid "%s is allowed only before the active file has been defined or inside INPUT PROGRAM."
+msgstr "%s is alleen toegestaan voordat het actieve bestand is gedefinieerd of binnen INPUT PROGRAMMA."
 
 #: src/language/command.c:651
 #, c-format
-msgid ""
-"%s is allowed only before the active file has been defined or inside FILE "
-"TYPE."
-msgstr ""
-"%s is alleen toegestaan voordat het actieve bestand is gedefinieerd of "
-"binnen FILE TYPE."
+msgid "%s is allowed only before the active file has been defined or inside FILE TYPE."
+msgstr "%s is alleen toegestaan voordat het actieve bestand is gedefinieerd of binnen FILE TYPE."
 
 #: src/language/command.c:655
 #, c-format
-msgid ""
-"%s is allowed only after the active file has been defined or inside INPUT "
-"PROGRAM."
-msgstr ""
-"%s is alleen toegestaan nadat het actieve bestand is gedefinieerd of binnen "
-"INPUT PROGRAMMA."
+msgid "%s is allowed only after the active file has been defined or inside INPUT PROGRAM."
+msgstr "%s is alleen toegestaan nadat het actieve bestand is gedefinieerd of binnen INPUT PROGRAMMA."
 
 #: src/language/command.c:659
 #, c-format
-msgid ""
-"%s is allowed only after the active file has been defined or inside FILE "
-"TYPE."
-msgstr ""
-"%s is alleen toegestaan nadat het actieve bestand is gedefinieerd of binnen "
-"FILE TYPE."
+msgid "%s is allowed only after the active file has been defined or inside FILE TYPE."
+msgstr "%s is alleen toegestaan nadat het actieve bestand is gedefinieerd of binnen FILE TYPE."
 
 #: src/language/command.c:663
 #, c-format
@@ -1279,31 +1123,23 @@ msgstr "%s is alleen toegestaan binnen INPUT PROGRAM of binnen FILE TYPE."
 
 #: src/language/command.c:669
 #, c-format
-msgid ""
-"%s is allowed only after the active file has been defined, inside INPUT "
-"PROGRAM, or inside FILE TYPE."
-msgstr ""
-"%s is alleen toegestaan nadat het actieve bestand is gedefinieerd, binnen "
-"INPUT PROGRAM of binnen FILE TYPE."
+msgid "%s is allowed only after the active file has been defined, inside INPUT PROGRAM, or inside FILE TYPE."
+msgstr "%s is alleen toegestaan nadat het actieve bestand is gedefinieerd, binnen INPUT PROGRAM of binnen FILE TYPE."
 
 #: src/language/command.c:674
 #, c-format
-msgid ""
-"%s is allowed only before the active file has been defined, inside INPUT "
-"PROGRAM, or inside FILE TYPE."
-msgstr ""
-"%s is alleen toegestaan voordat het actieve bestand is gedefinieerd, binnen "
-"INPUT PROGRAM of binnen FILE TYPE."
+msgid "%s is allowed only before the active file has been defined, inside INPUT PROGRAM, or inside FILE TYPE."
+msgstr "%s is alleen toegestaan voordat het actieve bestand is gedefinieerd, binnen INPUT PROGRAM of binnen FILE TYPE."
 
 #: src/language/command.c:692
-#, c-format
+#, fuzzy, c-format
 msgid "%s is not allowed inside INPUT PROGRAM."
-msgstr "%s is niet toegestaan binnen INPUT PROGRAM."
+msgstr "%s is alleen toegestaan binnen INPUT PROGRAM."
 
 #: src/language/command.c:694
-#, c-format
+#, fuzzy, c-format
 msgid "%s is not allowed inside FILE TYPE."
-msgstr "%s is niet toegestaan binnen FILE TYPE."
+msgstr "%s is alleen toegestaan binnen FILE TYPE."
 
 #: src/language/command.c:773 src/language/command.c:881
 #: src/language/utilities/permissions.c:98
@@ -1322,11 +1158,11 @@ msgstr ""
 
 #: src/language/command.c:850
 msgid "Interactive shell not supported on this platform."
-msgstr "Interactieve shell niet ondersteunt op dit platform."
+msgstr "Interactieve-shell niet ondersteund op dit platform."
 
 #: src/language/command.c:862
 msgid "Command shell not supported on this platform."
-msgstr "Opdracht shell niet ondersteunt op dit platform."
+msgstr "Opdracht-shell niet ondersteund op dit platform."
 
 #: src/language/command.c:868
 #, c-format
@@ -1339,9 +1175,9 @@ msgid "%s does not form a valid number."
 msgstr "%s vormt geen geldig nummer."
 
 #: src/language/lexer/lexer.c:389
-#, fuzzy, c-format
+#, c-format
 msgid "Bad character in input: `%s'."
-msgstr "Fout karakter in input: '%c'."
+msgstr "Fout karakter in invoer: '%s'."
 
 #: src/language/lexer/lexer.c:426
 #, c-format
@@ -1351,22 +1187,22 @@ msgstr "Subopdracht %s mag slechts een keer gespecificeerd worden."
 #: src/language/lexer/lexer.c:434
 #, c-format
 msgid "missing required subcommand %s"
-msgstr "mis verplichte subopdracht %s"
+msgstr "mis vereiste subopdracht %s"
 
 #: src/language/lexer/lexer.c:463
 #, c-format
 msgid "Syntax error %s at %s."
-msgstr "Syntax fout %s op %s."
+msgstr "Syntaxfout %s op %s."
 
 #: src/language/lexer/lexer.c:466
 #, c-format
 msgid "Syntax error at %s."
-msgstr "Syntax fout op %s."
+msgstr "Syntaxfout op %s."
 
 #: src/language/lexer/lexer.c:478 src/language/xforms/select-if.c:60
 #: src/language/stats/autorecode.c:154 src/language/data-io/print-space.c:73
 msgid "expecting end of command"
-msgstr "verwacht einde van opdracht "
+msgstr "verwacht einde-van-opdracht "
 
 #: src/language/lexer/lexer.c:600 src/language/lexer/lexer.c:617
 #, c-format
@@ -1375,7 +1211,7 @@ msgstr "verwacht '%s'"
 
 #: src/language/lexer/lexer.c:631
 msgid "expecting string"
-msgstr "string verwacht"
+msgstr "tekenreeks verwacht"
 
 #: src/language/lexer/lexer.c:645
 msgid "expecting integer"
@@ -1399,13 +1235,12 @@ msgstr "octaal"
 
 #: src/language/lexer/lexer.c:1074
 msgid "hex"
-msgstr ""
+msgstr "hexadecimaal"
 
 #: src/language/lexer/lexer.c:1084
 #, c-format
 msgid "String of %s digits has %zu characters, which is not a multiple of %d."
-msgstr ""
-"String van %s cijfers heeft %zu karakters, wat geen meervoud van %d is."
+msgstr "Tekenreeks van %s cijfers heeft %zu karakters, dat geen meervoud van %d is."
 
 #: src/language/lexer/lexer.c:1113
 #, c-format
@@ -1414,53 +1249,49 @@ msgstr "'%c' is geen geldig %s cijfer."
 
 #: src/language/lexer/lexer.c:1147
 msgid "Unterminated string constant."
-msgstr "Geen einde aan string constante."
+msgstr "Geen einde aan tekenreeksconstante."
 
 #: src/language/lexer/lexer.c:1201
 msgid "Unexpected end of file in string concatenation."
-msgstr "Onverwacht bestandseinde in string samenvoeging."
+msgstr "Onverwacht bestandseinde in tekenreeks samenvoeging."
 
 #: src/language/lexer/lexer.c:1209
 msgid "String expected following `+'."
-msgstr "String verwacht achter '+'."
+msgstr "Tekenreeks verwacht achter '+'."
 
 #: src/language/lexer/lexer.c:1222
 #, c-format
 msgid "String exceeds 255 characters in length (%zu characters)."
-msgstr "String overschrijdt de lengte van 255 karakters (%zu karakters)."
+msgstr "Tekenreeks overschrijdt de lengte van 255 karakters (%zu karakters)."
 
 #: src/language/lexer/format-parser.c:88
 msgid "expecting valid format specifier"
-msgstr "verwacht geldige formaat specificator"
+msgstr "verwacht geldige format-specificator"
 
 #: src/language/lexer/format-parser.c:107
 #: src/language/lexer/format-parser.c:126
 #: src/language/data-io/placement-parser.c:226
 #, c-format
 msgid "Unknown format type \"%s\"."
-msgstr "Onbekend formaat type \"%s\"."
+msgstr "Onbekend format-type \"%s\"."
 
 #: src/language/lexer/format-parser.c:121
 msgid "expecting format type"
-msgstr "verwacht formaat type"
+msgstr "verwacht format-type"
 
 #: src/language/lexer/value-parser.c:60
 #, c-format
-msgid ""
-"Low end of range (%g) is below high end (%g).  The range will be treated as "
-"reversed."
-msgstr ""
-"Ondergrens van range (%g) is lager dan bovengrens (%g). De range wordt "
-"behandeld als omgekeerd."
+msgid "Low end of range (%g) is below high end (%g).  The range will be treated as reversed."
+msgstr "Ondergrens van bereik (%g) is lager dan bovengrens (%g). Het bereik wordt behandeld als omgekeerd."
 
 #: src/language/lexer/value-parser.c:68
 #, c-format
 msgid "Ends of range are equal (%g)."
-msgstr "Eindes van range zijn gelijk (%g)."
+msgstr "Eindes van bereik zijn gelijk (%g)."
 
 #: src/language/lexer/value-parser.c:76
 msgid "LO or LOWEST must be part of a range."
-msgstr "LO of LOWEST moet een onderdeel van een range zijn."
+msgstr "LO of LOWEST moet een onderdeel van een bereik zijn."
 
 #: src/language/lexer/value-parser.c:109
 msgid "System-missing value is not valid here."
@@ -1468,31 +1299,26 @@ msgstr "System-missing waarde is hier niet geldig."
 
 #: src/language/lexer/value-parser.c:117
 msgid "expecting number or data string"
-msgstr "nummer of data string verwacht"
+msgstr "nummer of gegevenstekenreeks verwacht"
 
 #: src/language/lexer/variable-parser.c:63
 msgid "expecting variable name"
-msgstr "variabele naam verwacht"
+msgstr "variabelennaam verwacht"
 
 #: src/language/lexer/variable-parser.c:73
 #, c-format
 msgid "%s is not a variable name."
-msgstr "%s is geen variabele naam."
+msgstr "%s is geen variabelennaam."
 
 #: src/language/lexer/variable-parser.c:176
 #, c-format
-msgid ""
-"%s is not a numeric variable.  It will not be included in the variable list."
-msgstr ""
-"%s is geen numerieke variabele. Het wordt niet opgenomen in de variabele "
-"lijst."
+msgid "%s is not a numeric variable.  It will not be included in the variable list."
+msgstr "%s is geen numerieke variabele. Het wordt niet opgenomen in de variabelenlijst."
 
 #: src/language/lexer/variable-parser.c:179
 #, c-format
-msgid ""
-"%s is not a string variable.  It will not be included in the variable list."
-msgstr ""
-"%s is geen string variabele. Het wordt niet opgenomen in de variabele lijst."
+msgid "%s is not a string variable.  It will not be included in the variable list."
+msgstr "%s is geen tekenreeksvariabele. Het wordt niet opgenomen in de variabelenlijst."
 
 #: src/language/lexer/variable-parser.c:183
 #, c-format
@@ -1501,46 +1327,28 @@ msgstr "Scratch variabelen (zoals %s) zijn hier niet toegestaan."
 
 #: src/language/lexer/variable-parser.c:187
 #, c-format
-msgid ""
-"%s and %s are not the same type.  All variables in this variable list must "
-"be of the same type.  %s will be omitted from the list."
-msgstr ""
-"%s en %s zijn niet van hetzelfde type. Alle variabelen in deze variabele "
-"lijst dienen van hetzelfde type te zijn.  %s wordt overgeslagen voor de "
-"lijst."
+msgid "%s and %s are not the same type.  All variables in this variable list must be of the same type.  %s will be omitted from the list."
+msgstr "%s en %s zijn niet van hetzelfde type. Alle variabelen in deze variabelenlijst dienen van hetzelfde type te zijn.  %s wordt overgeslagen voor de lijst."
 
 #: src/language/lexer/variable-parser.c:193
 #, c-format
-msgid ""
-"%s and %s are string variables with different widths.  All variables in this "
-"variable list must have the same width.  %s will be omitted from the list."
-msgstr ""
-"%s en %s hebben verschillende breedtes. Alle variabelen in deze variabele "
-"lijst dienen dezelfde breedte te hebben.  %s wordt overgeslagen voor de "
-"lijst."
+msgid "%s and %s are string variables with different widths.  All variables in this variable list must have the same width.  %s will be omitted from the list."
+msgstr "%s en %s hebben verschillende breedtes. Alle variabelen in deze variabelenlijst dienen dezelfde breedte te hebben.  %s wordt overgeslagen voor de lijst."
 
 #: src/language/lexer/variable-parser.c:198
 #, c-format
 msgid "Variable %s appears twice in variable list."
-msgstr "Variabele %s komt 2 keer in de variabele lijst voor."
+msgstr "Variabele %s komt 2 keer in de variabelenlijst voor."
 
 #: src/language/lexer/variable-parser.c:311
 #, c-format
 msgid "%s TO %s is not valid syntax since %s precedes %s in the dictionary."
-msgstr ""
-"%s TO %s is geen geldige syntax omdat %s voor %s in het woordenboek staat."
+msgstr "%s TO %s is geen geldige syntax omdat %s voor %s in het woordenboek staat."
 
 #: src/language/lexer/variable-parser.c:319
 #, c-format
-msgid ""
-"When using the TO keyword to specify several variables, both variables must "
-"be from the same variable dictionaries, of either ordinary, scratch, or "
-"system variables.  %s is a %s variable, whereas %s is %s."
-msgstr ""
-"Wanneer het sleutelwoord TO wordt gebruikt om verscheidene variabelen te "
-"specificeren, moeten beide variabelen van het zelfde variabele "
-"woordenboeken, of gewone, scratch, of systeem variabelen zijn. %s is een %s "
-"variabele, terwijl %s %s. is. "
+msgid "When using the TO keyword to specify several variables, both variables must be from the same variable dictionaries, of either ordinary, scratch, or system variables.  %s is a %s variable, whereas %s is %s."
+msgstr "Wanneer het sleutelwoord TO wordt gebruikt om verscheidene variabelen te specificeren, moeten beide variabelen van het zelfde variabelenwoordenboeken, of gewone- scratch- of systeemvariabelen zijn. %s is een %s variabele, terwijl %s %s. is."
 
 #: src/language/lexer/variable-parser.c:393
 msgid "incorrect use of TO convention"
@@ -1552,7 +1360,7 @@ msgstr "Scratch variabelen niet toegestaan hier."
 
 #: src/language/lexer/variable-parser.c:458
 msgid "Prefixes don't match in use of TO convention."
-msgstr "Prefixen komen niet overeen in het gebruik van TO conventie. "
+msgstr "Prefixen komen niet overeen in het gebruik van TO conventie."
 
 #: src/language/lexer/variable-parser.c:463
 msgid "Bad bounds in use of TO convention."
@@ -1560,20 +1368,13 @@ msgstr "Slechte grenzen in het gebruik van TO conventie."
 
 #: src/language/xforms/compute.c:149 src/language/xforms/compute.c:203
 #, c-format
-msgid ""
-"When executing COMPUTE: SYSMIS is not a valid value as an index into vector %"
-"s."
-msgstr ""
-"Tijdens uitvoeren van COMPUTE: SYSMIS is geen geldige waarde als een index "
-"in vector %s."
+msgid "When executing COMPUTE: SYSMIS is not a valid value as an index into vector %s."
+msgstr "Tijdens uitvoeren van COMPUTE: SYSMIS is geen geldige waarde als een index in vector %s."
 
 #: src/language/xforms/compute.c:153 src/language/xforms/compute.c:210
 #, c-format
-msgid ""
-"When executing COMPUTE: %g is not a valid value as an index into vector %s."
-msgstr ""
-"Tijdens uitvoeren van COMPUTE: %g is geen geldige waarde als een index in "
-"vector %s."
+msgid "When executing COMPUTE: %g is not a valid value as an index into vector %s."
+msgstr "Tijdens uitvoeren van COMPUTE: %g is geen geldige waarde als een index in vector %s."
 
 #: src/language/xforms/compute.c:353
 #, c-format
@@ -1582,7 +1383,7 @@ msgstr "Er is geen vector genaamd %s."
 
 #: src/language/xforms/count.c:123
 msgid "Destination cannot be a string variable."
-msgstr "Bestemming kan geen string variabele zijn."
+msgstr "Bestemming kan geen tekenreeksvariabele zijn."
 
 #: src/language/xforms/sample.c:76
 msgid "The sampling factor must be between 0 and 1 exclusive."
@@ -1594,65 +1395,52 @@ msgid "Cannot sample %d observations from a population of %d."
 msgstr "Kan niet %d observaties bemonsteren van een populatie van %d."
 
 #: src/language/xforms/recode.c:248
-msgid ""
-"Inconsistent target variable types.  Target variables must be all numeric or "
-"all string."
-msgstr ""
-"Inconsistent doel variabele types.  Doel variabelen moeten allemaal numeriek "
-"of allemaal string zijn. "
+msgid "Inconsistent target variable types.  Target variables must be all numeric or all string."
+msgstr "Inconsistent doelvariabelen-types.  Doelvariabelen moeten allemaal numeriek of allemaal tekenreeks zijn."
 
 #: src/language/xforms/recode.c:269
 msgid "CONVERT requires string input values and numeric output values."
-msgstr "CONVERT vereist string invoer waardes en numerieke uitvoer waardes."
+msgstr "CONVERT vereist tekenreeks invoerwaardes en numerieke uitvoerwaardes."
 
 #: src/language/xforms/recode.c:324
 msgid "THRU is not allowed with string variables."
-msgstr "THRU is niet toegestaan met string variabelen."
+msgstr "THRU is niet toegestaan met tekenreeksvariabelen."
 
 #: src/language/xforms/recode.c:403
 msgid "expecting output value"
-msgstr "verwacht uitvoer waarde"
+msgstr "verwacht uitvoerwaarde"
 
 #: src/language/xforms/recode.c:460
 #, c-format
-msgid ""
-"%zu variable(s) cannot be recoded into %zu variable(s).  Specify the same "
-"number of variables as source and target variables."
-msgstr ""
-"%zu variabel(en) kunnen niet gehercodeerd worden in %zu variabel(en).  "
-"Specificeer hetzelfde aantal variabelen als bron en als doel variabelen."
+msgid "%zu variable(s) cannot be recoded into %zu variable(s).  Specify the same number of variables as source and target variables."
+msgstr "%zu variabel(en) kunnen niet gehercodeerd worden in %zu variabel(en).  Specificeer hetzelfde aantal variabelen als bron- en als doelvariabelen."
 
 #: src/language/xforms/recode.c:475
 #, c-format
-msgid ""
-"There is no variable named %s.  (All string variables specified on INTO must "
-"already exist.  Use the STRING command to create a string variable.)"
-msgstr ""
-"Er is geen variabele genaamd %s.  (Alle string variabelen gespecificeerd bij "
-"INTO dienen al te bestaan.  Gebruik de STRING opdracht om een string "
-"variabele aan te maken.)"
+msgid "There is no variable named %s.  (All string variables specified on INTO must already exist.  Use the STRING command to create a string variable.)"
+msgstr "Er is geen variabele genaamd %s.  (Alle tekenreeksvariabelen gespecificeerd bij INTO dienen al te bestaan.  Gebruik de STRING opdracht om een tekenreeks variabele aan te maken.)"
 
 #: src/language/xforms/recode.c:491
 #, c-format
 msgid "INTO is required with %s input values and %s output values."
-msgstr "INTO is vereist met %s invoer waardes en %s uitvoer waardes."
+msgstr "INTO is vereist met %s invoerwaardes en %s uitvoerwaardes."
 
 #: src/language/xforms/recode.c:504
 #, c-format
 msgid "Type mismatch.  Cannot store %s data in %s variable %s."
-msgstr "Type fout. Kan %s data niet in %s variabele %s opslaan. "
+msgstr "Type fout. Kan %s gegevens niet in %s variabele %s opslaan."
 
 #: src/language/xforms/select-if.c:100
 msgid "Syntax error expecting OFF or BY.  Turning off case filtering."
-msgstr "Syntax fout verwacht OFF of BY. Schakelt case filtering uit. "
+msgstr "Syntaxfout verwacht OFF of BY. Schakelt case filtering uit."
 
 #: src/language/xforms/select-if.c:115
 msgid "The filter variable must be numeric."
-msgstr "De filter variabele moet numeriek zijn."
+msgstr "De filtervariabele moet numeriek zijn."
 
 #: src/language/xforms/select-if.c:121
 msgid "The filter variable may not be scratch."
-msgstr "De filter variabele mag niet scratch zijn."
+msgstr "De filtervariabele mag niet scratch zijn."
 
 #: src/language/control/control-stack.c:27
 #, c-format
@@ -1662,8 +1450,7 @@ msgstr "%s zonder %s."
 #: src/language/control/control-stack.c:55
 #, c-format
 msgid "This command must appear inside %s...%s, without intermediate %s...%s."
-msgstr ""
-"Deze opdracht moet binnen %s...%s voorkomen, zonder tussenliggende %s...%s."
+msgstr "Deze opdracht moet binnen %s...%s voorkomen, zonder tussenliggende %s...%s."
 
 #: src/language/control/control-stack.c:72
 #, c-format
@@ -1679,48 +1466,40 @@ msgid "Only one index clause may be specified."
 msgstr "Slechts een index clausule mag gespecificeerd worden."
 
 #: src/language/control/temporary.c:46
-msgid ""
-"This command may only appear once between procedures and procedure-like "
-"commands."
-msgstr ""
-"Deze opdracht mag slechts 1 keer voorkomen tussen procedures en procedure-"
-"achtige opdrachten."
+msgid "This command may only appear once between procedures and procedure-like commands."
+msgstr "Deze opdracht mag slechts 1 keer voorkomen tussen procedures en procedure-achtige opdrachten."
 
 #: src/language/control/repeat.c:171
 #, c-format
 msgid "Dummy variable name \"%s\" hides dictionary variable \"%s\"."
-msgstr "Dummy variabele naam \"%s\" verbergt woordenboek variabele \"%s\"."
+msgstr "Dummy variabelennaam \"%s\" verbergt woordenboek variabele \"%s\"."
 
 #: src/language/control/repeat.c:176
 #, c-format
 msgid "Dummy variable name \"%s\" is given twice."
-msgstr "Dummy variabele naam \"%s\"is 2 keer opgegeven."
+msgstr "Dummy variabelennaam \"%s\"is 2 keer opgegeven."
 
 #: src/language/control/repeat.c:222
 #, c-format
-msgid ""
-"Dummy variable \"%.*s\" had %d substitutions, so \"%.*s\" must also, but %d "
-"were specified."
-msgstr ""
-"Dummy variabele \"%.*s\" heeft %d substituties, dus \"%.*s\" moet dat ook, "
-"maar %d zijn er gespecificeerd."
+msgid "Dummy variable \"%.*s\" had %d substitutions, so \"%.*s\" must also, but %d were specified."
+msgstr "Dummy variabele \"%.*s\" heeft %d vervangingen, dus \"%.*s\" moet dat ook, maar %d zijn er gespecificeerd."
 
 #: src/language/control/repeat.c:334
 msgid "DO REPEAT may not nest in compatibility mode."
-msgstr "DO REPEAT mag niet nesten in compatibiliteit mode."
+msgstr "DO REPEAT mag niet nesten in compatibiliteitsmodus."
 
 #: src/language/control/repeat.c:436
 msgid "Ranges may only have integer bounds"
-msgstr "Ranges mogen alleen integer grenzen hebben"
+msgstr "Bereiken mogen alleen integer grenzen hebben"
 
 #: src/language/control/repeat.c:445
 #, c-format
 msgid "%g TO %g is an invalid range."
-msgstr "%g TO %g is een ongeldige range."
+msgstr "%g TO %g is een ongeldig bereik."
 
 #: src/language/control/repeat.c:480
 msgid "String expected."
-msgstr "String verwacht."
+msgstr "Tekenreeks verwacht."
 
 #: src/language/control/repeat.c:499
 msgid "No matching DO REPEAT."
@@ -1728,45 +1507,36 @@ msgstr "Geen overeenkomende DO REPEAT."
 
 #: src/language/dictionary/attributes.c:108
 msgid "Attribute array index must be between 1 and 65535."
-msgstr "Attribuut array index moet tussen 1 en 65535 liggen."
+msgstr "Attribuut tabel index moet minimaal 1 en maximaal 65535 zijn."
 
 #: src/language/dictionary/attributes.c:189
 msgid "expecting ATTRIBUTE= or DELETE="
-msgstr "ATTRIBUTE= of DELETE= verwacht"
+msgstr "verwacht ATTRIBUTE= of DELETE="
 
 #: src/language/dictionary/apply-dictionary.c:75
 #, c-format
 msgid "Variable %s is %s in target file, but %s in source file."
-msgstr "Variabele %s is %s in doel bestand, maar %s in bron bestand."
+msgstr "Variabele %s is %s in doelbestand, maar %s in bronbestand."
 
 #: src/language/dictionary/apply-dictionary.c:115
 msgid "No matching variables found between the source and target files."
-msgstr ""
-"Geen overeenkomende variabelen gevonden tussen het bron en het doel bestand."
+msgstr "Geen overeenkomende variabelen gevonden tussen het bron- en het doelbestand."
 
 #: src/language/dictionary/delete-variables.c:40
-msgid ""
-"DELETE VARIABLES may not be used after TEMPORARY.  Temporary transformations "
-"will be made permanent."
-msgstr ""
-"DELETE VARIABLES mag niet gebruikt worden na TEMPORARY. Tijdelijke "
-"transformaties worden permanent gemaakt."
+msgid "DELETE VARIABLES may not be used after TEMPORARY.  Temporary transformations will be made permanent."
+msgstr "DELETE VARIABLES mag niet gebruikt worden na TEMPORARY. Tijdelijke transformaties worden permanent gemaakt."
 
 #: src/language/dictionary/delete-variables.c:48
-msgid ""
-"DELETE VARIABLES may not be used to delete all variables from the active "
-"file dictionary.  Use NEW FILE instead."
-msgstr ""
-"DELETE VARIABLES mag niet gebruikt om alle variabelen van het actieve "
-"bestand woordenboek te verwijderen. Gebruik NEW FILE in de plaats."
+msgid "DELETE VARIABLES may not be used to delete all variables from the active file dictionary.  Use NEW FILE instead."
+msgstr "DELETE VARIABLES mag niet gebruikt om alle variabelen van het actieve bestandwoordenboek te verwijderen. Gebruik NEW FILE in de plaats."
 
 #: src/language/dictionary/formats.c:90
 msgid "`(' expected after variable list."
-msgstr "'(' verwacht na variabele lijst."
+msgstr "'(' verwacht na variabelenlijst."
 
 #: src/language/dictionary/formats.c:100 src/language/dictionary/numeric.c:74
 msgid "`)' expected after output format."
-msgstr "')' verwacht na output formaat."
+msgstr "')' verwacht na uitvoer-format."
 
 #: src/language/dictionary/missing-values.c:56
 #: src/language/stats/aggregate.c:458
@@ -1775,103 +1545,81 @@ msgstr "'(' verwacht"
 
 #: src/language/dictionary/missing-values.c:72
 #, c-format
-msgid ""
-"Cannot mix numeric variables (e.g. %s) and string variables (e.g. %s) within "
-"a single list."
-msgstr ""
-"Kan numerieke variabelen (b.v. %s) en string variabelen (b.v. %s) niet mixen "
-"binnen een enkele lijst."
+msgid "Cannot mix numeric variables (e.g. %s) and string variables (e.g. %s) within a single list."
+msgstr "Kan numerieke variabelen (b.v. %s) en tekenreeksvariabelen (b.v. %s) niet mixen binnen een enkele lijst."
 
 #: src/language/dictionary/missing-values.c:116
-#, fuzzy, c-format
+#, c-format
 msgid "Truncating missing value to maximum acceptable length (%d bytes)."
-msgstr "Afkappen missing value naar short string lengte (%d karakters)."
+msgstr "Afkappen ontbrekende-waarde naar maximale acceptabele lengte (%d bytes)."
 
 #: src/language/dictionary/missing-values.c:138
 #, c-format
 msgid "Missing values provided are too long to assign to variable of width %d."
-msgstr ""
-"De opgegeven missing values zijn te lang om toe te kennen aan een variabele "
-"van breedte %d."
+msgstr "De opgegeven ontbrekende-waarde zijn te lang om toe te kennen aan een variabele van breedte %d."
 
 #: src/language/dictionary/modify-variables.c:92
-msgid ""
-"MODIFY VARS may not be used after TEMPORARY.  Temporary transformations will "
-"be made permanent."
-msgstr ""
-"MODIFY VARS mag niet gebruikt worden na TEMPORARY. Tijdelijke transformaties "
-"zullen permanent gemaakt worden."
+msgid "MODIFY VARS may not be used after TEMPORARY.  Temporary transformations will be made permanent."
+msgstr "MODIFY VARS mag niet gebruikt worden na TEMPORARY. Tijdelijke transformaties zullen permanent gemaakt worden."
 
 #: src/language/dictionary/modify-variables.c:114
+#, fuzzy
 msgid "REORDER subcommand may be given at most once."
-msgstr "REORDER subopdracht mag maximaal 1 keer gegeven worden."
+msgstr "%s subopdracht mag maximaal 1 keer gegeven worden."
 
 #: src/language/dictionary/modify-variables.c:137
 msgid "Cannot specify ALL after specifying a set of variables."
 msgstr "Kan niet ALL opgeven na het specificeren van een set van variabelen."
 
 #: src/language/dictionary/modify-variables.c:147
+#, fuzzy
 msgid "`(' expected on REORDER subcommand."
-msgstr "'(' verwacht bij REORDER subopdracht."
+msgstr "'(' verwacht bij %s subopdracht."
 
 #: src/language/dictionary/modify-variables.c:159
 msgid "`)' expected following variable names on REORDER subcommand."
-msgstr "')' verwacht achter variabele namen bij REORDER subopdracht."
+msgstr "')' verwacht achter variabelennamen bij REORDER subopdracht."
 
 #: src/language/dictionary/modify-variables.c:177
+#, fuzzy
 msgid "RENAME subcommand may be given at most once."
-msgstr "RENAME subopdracht mag maximaal 1 keer gegeven worden."
+msgstr "%s subopdracht mag maximaal 1 keer gegeven worden."
 
 #: src/language/dictionary/modify-variables.c:190
+#, fuzzy
 msgid "`(' expected on RENAME subcommand."
-msgstr "'(' verwacht bij RENAME subopdracht."
+msgstr "'(' verwacht bij %s subopdracht."
 
 #: src/language/dictionary/modify-variables.c:199
-msgid ""
-"`=' expected between lists of new and old variable names on RENAME "
-"subcommand."
-msgstr ""
-"'=' verwacht tussen lijst van nieuwe en oude variabele namen bij RENAME "
-"subopdracht. "
+msgid "`=' expected between lists of new and old variable names on RENAME subcommand."
+msgstr "'=' verwacht tussen lijst van nieuwe en oude variabelennamen bij RENAME subopdracht."
 
 #: src/language/dictionary/modify-variables.c:208
 #: src/language/dictionary/rename-variables.c:76
 #, c-format
-msgid ""
-"Differing number of variables in old name list (%zu) and in new name list (%"
-"zu)."
-msgstr ""
-"Verschillend aantal variabelen in oude naam lijst (%zu) en in de nieuwe naam "
-"lijst (%zu)."
+msgid "Differing number of variables in old name list (%zu) and in new name list (%zu)."
+msgstr "Verschillend aantal variabelen in oude naamlijst (%zu) en in de nieuwe naamlijst (%zu)."
 
 #: src/language/dictionary/modify-variables.c:219
 msgid "`)' expected after variable lists on RENAME subcommand."
-msgstr "')' verwacht na variabele lijst bij RENAME subopdracht."
+msgstr "')' verwacht na variabelenlijst bij RENAME subopdracht."
 
 #: src/language/dictionary/modify-variables.c:233
-msgid ""
-"KEEP subcommand may be given at most once.  It may not be given in "
-"conjunction with the DROP subcommand."
-msgstr ""
-"KEEP subopdracht mag slechts eenmaal gegeven worden. Het mag niet gegeven "
-"worden in combinatie met de DROP subopdracht."
+msgid "KEEP subcommand may be given at most once.  It may not be given in conjunction with the DROP subcommand."
+msgstr "KEEP subopdracht mag slechts eenmaal gegeven worden. Het mag niet gegeven worden in combinatie met de DROP subopdracht."
 
 #: src/language/dictionary/modify-variables.c:276
-msgid ""
-"DROP subcommand may be given at most once.  It may not be given in "
-"conjunction with the KEEP subcommand."
-msgstr ""
-"DROP subopdracht mag slechts eenmaal gegeven worden. Het mag niet gegeven "
-"worden in combinatie met de KEEP subopdracht."
+msgid "DROP subcommand may be given at most once.  It may not be given in conjunction with the KEEP subcommand."
+msgstr "DROP subopdracht mag slechts eenmaal gegeven worden. Het mag niet gegeven worden in combinatie met de KEEP subopdracht."
 
 #: src/language/dictionary/modify-variables.c:302
 #, c-format
 msgid "Unrecognized subcommand name `%s'."
-msgstr "Niet herkende subopdracht naam `%s'."
+msgstr "Niet-herkende subopdrachtnaam `%s'."
 
 #: src/language/dictionary/modify-variables.c:304
 msgid "Subcommand name expected."
-msgstr "Subopdracht naam verwacht."
+msgstr "Subopdrachtnaam verwacht."
 
 #: src/language/dictionary/modify-variables.c:312
 msgid "`/' or `.' expected."
@@ -1880,7 +1628,7 @@ msgstr "'/' of '.' verwacht."
 #: src/language/dictionary/numeric.c:67
 #, c-format
 msgid "Format type %s may not be used with a numeric variable."
-msgstr "Formaat type %s mag niet gebruikt worden met een numerieke variabele."
+msgstr "Format-type %s mag niet gebruikt worden met een numerieke variabele."
 
 #: src/language/dictionary/numeric.c:86 src/language/dictionary/numeric.c:155
 #, c-format
@@ -1890,15 +1638,11 @@ msgstr "Er bestaat al een variabele genaamd %s."
 #: src/language/dictionary/numeric.c:140
 #, c-format
 msgid "Format type %s may not be used with a string variable."
-msgstr "Formaat type %s mag niet gebruikt worden met een string variabele."
+msgstr "Format-type %s mag niet gebruikt worden met een tekenreeksvariabele."
 
 #: src/language/dictionary/rename-variables.c:49
-msgid ""
-"RENAME VARS may not be used after TEMPORARY.  Temporary transformations will "
-"be made permanent."
-msgstr ""
-"RENAME VARS mag niet gebruikt worden na TEMPORARY. Tijdelijke transformaties "
-"zullen permanent gemaakt worden."
+msgid "RENAME VARS may not be used after TEMPORARY.  Temporary transformations will be made permanent."
+msgstr "RENAME VARS mag niet gebruikt worden na TEMPORARY. Tijdelijke transformaties zullen permanent gemaakt worden."
 
 #: src/language/dictionary/rename-variables.c:59
 msgid "`(' expected."
@@ -1906,20 +1650,25 @@ msgstr "'(' verwacht."
 
 #: src/language/dictionary/rename-variables.c:67
 msgid "`=' expected between lists of new and old variable names."
-msgstr "'=' verwacht tussen lijst met nieuwe en oude variabele namen."
+msgstr "'=' verwacht tussen lijst met nieuwe en oude variabelennamen."
 
 #: src/language/dictionary/rename-variables.c:87
 msgid "`)' expected after variable names."
-msgstr "')' verwacht achter variabele namen."
+msgstr "')' verwacht achter variabelennamen."
 
 #: src/language/dictionary/rename-variables.c:97
 #, c-format
 msgid "Renaming would duplicate variable name %s."
-msgstr "Hernoemen zou variabele naam %s dupliceren."
+msgstr "Hernoemen zou variabelennaam %s dupliceren."
 
 #: src/language/dictionary/split-file.c:85
 #: src/language/dictionary/sys-file-info.c:486
 #: src/language/dictionary/sys-file-info.c:641
+#: src/language/stats/crosstabs.q:1235 src/language/stats/crosstabs.q:1262
+#: src/language/stats/crosstabs.q:1286 src/language/stats/crosstabs.q:1311
+#: src/language/stats/examine.q:1959 src/language/stats/frequencies.q:1051
+#: src/language/stats/frequencies.q:1176 src/language/stats/reliability.q:582
+#: src/language/stats/reliability.q:593
 msgid "Value"
 msgstr "Waarde"
 
@@ -1929,7 +1678,7 @@ msgstr "Waarde"
 #: src/ui/gui/psppire-var-sheet.c:537 src/ui/gui/psppire-var-store.c:836
 #: src/ui/gui/crosstabs.glade:275 src/ui/gui/psppire.glade:1974
 msgid "Label"
-msgstr ""
+msgstr "Label"
 
 #: src/language/dictionary/sys-file-info.c:113
 msgid "File:"
@@ -1938,7 +1687,7 @@ msgstr "Bestand:"
 #: src/language/dictionary/sys-file-info.c:115 src/ui/gui/psppire.glade:1913
 #: src/ui/gui/recode.glade:841
 msgid "Label:"
-msgstr ""
+msgstr "Label:"
 
 #: src/language/dictionary/sys-file-info.c:119
 msgid "No label."
@@ -1950,20 +1699,23 @@ msgstr "Aangemaakt:"
 
 #: src/language/dictionary/sys-file-info.c:125
 msgid "Integer Format:"
-msgstr "Integer Formaat:"
+msgstr ""
 
 #: src/language/dictionary/sys-file-info.c:127
+#, fuzzy
 msgid "Big Endian."
-msgstr ""
+msgstr "Big Endian"
 
 #: src/language/dictionary/sys-file-info.c:128
+#, fuzzy
 msgid "Little Endian."
-msgstr ""
+msgstr "Little Endian"
 
 #: src/language/dictionary/sys-file-info.c:129
 #: src/language/dictionary/sys-file-info.c:137
+#, fuzzy
 msgid "Unknown."
-msgstr "Onbekend."
+msgstr "Onbekend"
 
 #: src/language/dictionary/sys-file-info.c:130
 msgid "Real Format:"
@@ -1971,23 +1723,23 @@ msgstr ""
 
 #: src/language/dictionary/sys-file-info.c:132
 msgid "IEEE 754 LE."
-msgstr ""
+msgstr "IEEE 754 LE."
 
 #: src/language/dictionary/sys-file-info.c:133
 msgid "IEEE 754 BE."
-msgstr ""
+msgstr "IEEE 754 BE."
 
 #: src/language/dictionary/sys-file-info.c:134
 msgid "VAX D."
-msgstr ""
+msgstr "VAX D."
 
 #: src/language/dictionary/sys-file-info.c:135
 msgid "VAX G."
-msgstr ""
+msgstr "VAX G."
 
 #: src/language/dictionary/sys-file-info.c:136
 msgid "IBM 390 Hex Long."
-msgstr ""
+msgstr "IBM 390 Hex Long."
 
 #: src/language/dictionary/sys-file-info.c:138
 #: src/ui/gui/descriptives-dialog.glade:79 src/ui/gui/recode.glade:940
@@ -1996,7 +1748,7 @@ msgstr "Variabelen:"
 
 #: src/language/dictionary/sys-file-info.c:140
 msgid "Cases:"
-msgstr ""
+msgstr "Cases:"
 
 #: src/language/dictionary/sys-file-info.c:142
 #: src/language/dictionary/sys-file-info.c:160
@@ -2005,11 +1757,12 @@ msgstr "Onbekend"
 
 #: src/language/dictionary/sys-file-info.c:144
 msgid "Type:"
-msgstr ""
+msgstr "Type:"
 
 #: src/language/dictionary/sys-file-info.c:145
+#, fuzzy
 msgid "System File."
-msgstr "Systeem Bestand."
+msgstr "Systeembestand"
 
 #: src/language/dictionary/sys-file-info.c:146
 msgid "Weight:"
@@ -2053,11 +1806,11 @@ msgstr "Positie"
 
 #: src/language/dictionary/sys-file-info.c:220
 msgid "The active file does not have a file label."
-msgstr "Het actieve bestand heeft geen bestand label."
+msgstr "Het actieve bestand heeft geen bestandlabel."
 
 #: src/language/dictionary/sys-file-info.c:223
 msgid "File label:"
-msgstr "Bestand label:"
+msgstr "Bestandlabel:"
 
 #: src/language/dictionary/sys-file-info.c:298
 msgid "No variables to display."
@@ -2065,11 +1818,11 @@ msgstr "Geen variabelen om te tonen."
 
 #: src/language/dictionary/sys-file-info.c:313
 msgid "Macros not supported."
-msgstr "Macros worden niet ondersteunt."
+msgstr "Macro's worden niet ondersteund."
 
 #: src/language/dictionary/sys-file-info.c:323
 msgid "The active file dictionary does not contain any documents."
-msgstr "Het actieve bestand woordenboek bevat geen documenten."
+msgstr "Het actieve bestandwoordenboek bevat geen documenten."
 
 #: src/language/dictionary/sys-file-info.c:331
 msgid "Documents in the active file:"
@@ -2082,17 +1835,17 @@ msgstr "Attribuut"
 #: src/language/dictionary/sys-file-info.c:543
 #, c-format
 msgid "Format: %s"
-msgstr "Formaat: %s"
+msgstr ""
 
 #: src/language/dictionary/sys-file-info.c:550
 #, c-format
 msgid "Print Format: %s"
-msgstr "Print Formaat: %s"
+msgstr "Afdruk-format: %s"
 
 #: src/language/dictionary/sys-file-info.c:554
 #, c-format
 msgid "Write Format: %s"
-msgstr "Schrijf Formaat: %s"
+msgstr "Schrijf-format: %s"
 
 #: src/language/dictionary/sys-file-info.c:567
 #, c-format
@@ -2117,7 +1870,7 @@ msgstr "Schaal"
 #: src/language/dictionary/sys-file-info.c:573
 #, c-format
 msgid "Display Alignment: %s"
-msgstr "Toon Groepering: %s"
+msgstr "Toongroepering: %s"
 
 #: src/language/dictionary/sys-file-info.c:574
 #: src/ui/gui/psppire-var-sheet.c:104
@@ -2141,7 +1894,7 @@ msgstr "Toonbreedte: %d"
 
 #: src/language/dictionary/sys-file-info.c:593
 msgid "Missing Values: "
-msgstr "Ontbrekende Waardes:"
+msgstr "Ontbrekende Waardes: "
 
 #: src/language/dictionary/sys-file-info.c:702
 msgid "No vectors defined."
@@ -2149,23 +1902,23 @@ msgstr "Geen vectoren gedefinieerd."
 
 #: src/language/dictionary/sys-file-info.c:723
 msgid "Vector"
-msgstr ""
+msgstr "Vector"
 
 #: src/language/dictionary/sys-file-info.c:726
 msgid "Print Format"
-msgstr "Print Formaat"
+msgstr "Afdruk-Format"
 
 #: src/language/dictionary/value-labels.c:150
 msgid "Truncating value label to 60 characters."
-msgstr "Afkappen waarde label tot 60 karakters."
+msgstr "Afkappen waardelabel tot 60 karakters."
 
 #: src/language/dictionary/variable-label.c:51
 msgid "String expected for variable label."
-msgstr "String verwacht voor variabele label."
+msgstr "Tekenreeks verwacht voor variabelenlabel."
 
 #: src/language/dictionary/variable-label.c:59
 msgid "Truncating variable label to 255 characters."
-msgstr "Afkappen variabele label tot 255 karakters."
+msgstr "Afkappen variabelenlabel tot 255 karakters."
 
 #: src/language/dictionary/vector.c:64
 #, c-format
@@ -2183,51 +1936,47 @@ msgstr "Een '/' moet elke vector specificatie scheiden in VECTOR's lange vorm."
 
 #: src/language/dictionary/vector.c:129
 msgid "Vectors must have at least one element."
-msgstr "Vectoren moeten ten minste 1 element bevatten."
+msgstr "Vectoren moeten tenminste 1 element bevatten."
 
 #: src/language/dictionary/vector.c:150
 msgid "expecting vector length"
-msgstr "vector lengte verwacht"
+msgstr "vectorlengte verwacht"
 
 #: src/language/dictionary/vector.c:166
 #, c-format
 msgid "%s is too long for a variable name."
-msgstr "%s is te lang voor een variabele naam."
+msgstr "%s is te lang voor een variabelennaam."
 
 #: src/language/dictionary/vector.c:171
 #, c-format
 msgid "%s is an existing variable name."
-msgstr "%s is een bestaande variabele naam."
+msgstr "%s is een bestaande variabelennaam."
 
 #: src/language/dictionary/variable-display.c:120
 msgid "Variable display width must be a positive integer."
-msgstr "Variabele toonbreedte moet een positieve integer zijn."
+msgstr "Variabelen-toonbreedte moet een positieve integer zijn."
 
 #: src/language/dictionary/weight.c:49
 msgid "The weighting variable must be numeric."
-msgstr "De weging variabele moet numeriek zijn."
+msgstr "De wegingvariabele moet numeriek zijn."
 
 #: src/language/dictionary/weight.c:54
 msgid "The weighting variable may not be scratch."
-msgstr "De weging variabele mag geen scratch zijn."
+msgstr "De wegingvariabele mag geen scratch zijn."
 
 #: src/language/tests/float-format.c:124
 #, c-format
 msgid "%zu-byte string needed but %zu-byte string supplied."
-msgstr "%zu-byte string nodig maar %zu-byte string gegeven."
+msgstr "%zu-byte tekenreeks nodig maar %zu-byte tekenreeks gegeven."
 
 #: src/language/tests/float-format.c:136
 msgid "Hexadecimal floating constant too long."
-msgstr ""
+msgstr "Hexadecimale drijvende constante te lang."
 
 #: src/language/tests/float-format.c:201
 #, c-format
-msgid ""
-"%s conversion of %s from %s to %s should have produced %s but actually "
-"produced %s."
-msgstr ""
-"%s conversie van %s van %s naar %s zou %s moeten produceren maar produceerde "
-"in werkelijkheid %s."
+msgid "%s conversion of %s from %s to %s should have produced %s but actually produced %s."
+msgstr "%s conversie van %s van %s naar %s zou %s moeten produceren maar produceerde in werkelijkheid %s."
 
 #: src/language/tests/float-format.c:247
 msgid "Too many values in single command."
@@ -2235,7 +1984,7 @@ msgstr "Te veel waardes in enkele opdracht."
 
 #: src/language/tests/moments-test.c:47
 msgid "expecting weight value"
-msgstr "verwacht weging waarde"
+msgstr "verwacht wegingwaarde"
 
 #: src/language/utilities/cd.c:41
 #, c-format
@@ -2249,7 +1998,7 @@ msgstr "Alleen USE ALL is op dit moment geïmplementeerd."
 #: src/language/utilities/title.c:68
 #, c-format
 msgid "%s: `.' expected after string."
-msgstr "%s: `.' verwacht na string."
+msgstr "%s: `.' verwacht na tekenreeks."
 
 #: src/language/utilities/title.c:108
 #, c-format
@@ -2280,7 +2029,7 @@ msgstr "bestandsnaam verwacht"
 #: src/language/utilities/include.c:190
 #, c-format
 msgid "Can't find `%s' in include file search path."
-msgstr "Kan '%s' niet vinden in include bestand zoek pad."
+msgstr "Kan '%s' niet vinden in include-bestand zoekpad."
 
 #: src/language/utilities/include.c:198
 #, c-format
@@ -2300,7 +2049,7 @@ msgstr ""
 #: src/language/utilities/permissions.c:119
 #, c-format
 msgid "Cannot change mode of %s: %s"
-msgstr "Kan mode van %s niet veranderen: %s"
+msgstr "Kan modus van %s niet veranderen: %s"
 
 #: src/language/stats/aggregate.c:219
 msgid "while expecting COLUMNWISE"
@@ -2311,17 +2060,12 @@ msgid "expecting BREAK"
 msgstr "BREAK verwacht"
 
 #: src/language/stats/aggregate.c:252
-msgid ""
-"When PRESORTED is specified, specifying sorting directions with (A) or (D) "
-"has no effect.  Output data will be sorted the same way as the input data."
-msgstr ""
-"Als PRESORTED is gespecificeerd, heeft specificeren van sorteer volgorde met "
-"(A) of (D) geen effect. Uitvoer data is hetzelfde gesorteerd als de invoer "
-"data."
+msgid "When PRESORTED is specified, specifying sorting directions with (A) or (D) has no effect.  Output data will be sorted the same way as the input data."
+msgstr "Als PRESORTED is gespecificeerd, heeft specificeren van sorteervolgorde met (A) of (D) geen effect. Uitvoergegevens zullen hetzelfde gesorteerd zijn als de invoergegevens."
 
 #: src/language/stats/aggregate.c:423
 msgid "expecting aggregation function"
-msgstr "aggregatie functie verwacht"
+msgstr "aggregatie-functie verwacht"
 
 #: src/language/stats/aggregate.c:441
 #, c-format
@@ -2331,12 +2075,12 @@ msgstr "Onbekende aggregatie functie %s."
 #: src/language/stats/aggregate.c:497
 #, c-format
 msgid "Missing argument %zu to %s."
-msgstr "Missend argument %zu naar %s."
+msgstr "Mis argument %zu naar %s."
 
 #: src/language/stats/aggregate.c:506
 #, c-format
 msgid "Arguments to %s must be of same type as source variables."
-msgstr "Argumenten naar %s moeten van hetzelfde type zijn als bron variabelen."
+msgstr "Argumenten naar %s moeten van hetzelfde type zijn als bronvariabelen."
 
 #: src/language/stats/aggregate.c:516 src/language/expressions/parse.c:885
 msgid "expecting `)'"
@@ -2344,47 +2088,33 @@ msgstr "')' verwacht"
 
 #: src/language/stats/aggregate.c:528
 #, c-format
-msgid ""
-"Number of source variables (%zu) does not match number of target variables (%"
-"zu)."
-msgstr ""
-"Aantal bron variabelen (%zu) komt niet overeen met aantal doel variabelen (%"
-"zu)."
+msgid "Number of source variables (%zu) does not match number of target variables (%zu)."
+msgstr "Aantal bronvariabelen (%zu) komt niet overeen met aantal doelvariabelen (%zu)."
 
 #: src/language/stats/aggregate.c:544
 #, c-format
-msgid ""
-"The value arguments passed to the %s function are out-of-order.  They will "
-"be treated as if they had been specified in the correct order."
-msgstr ""
-"De volgorde van de geldige argumenten doorgegeven aan de %s functie klopt "
-"niet. Ze worden behandeld alsof ze in de correcte volgorde waren opgegeven."
+msgid "The value arguments passed to the %s function are out-of-order.  They will be treated as if they had been specified in the correct order."
+msgstr "De volgorde van de geldige argumenten doorgegeven aan de %s functie klopt niet. Ze worden behandeld alsof ze in de correcte volgorde waren opgegeven."
 
 #: src/language/stats/aggregate.c:614
 #, c-format
-msgid ""
-"Variable name %s is not unique within the aggregate file dictionary, which "
-"contains the aggregate variables and the break variables."
-msgstr ""
-"Variabele naam %s is niet uniek binnen het aggregate bestand woordenboek, "
-"dat de aggregate variabelen en de break variabelen bevat."
+msgid "Variable name %s is not unique within the aggregate file dictionary, which contains the aggregate variables and the break variables."
+msgstr "Variabelennaam %s is niet uniek binnen het aggregate-bestandwoordenboek, dat de aggregate- en break-variabelen bevat."
 
 #: src/language/stats/autorecode.c:136
 #, c-format
 msgid "Source variable count (%zu) does not match target variable count (%zu)."
-msgstr ""
-"Bron variabele teller (%zu) komt niet overeen met doel variabele teller (%"
-"zu)."
+msgstr "Bron-variabelenteller (%zu) komt niet overeen met doel-variabelenteller (%zu)."
 
 #: src/language/stats/autorecode.c:164
 #, c-format
 msgid "Target variable %s duplicates existing variable %s."
-msgstr "Doel variabele %s dupliceert bestaande variabele %s."
+msgstr "Doelvariabele %s dupliceert bestaande variabele %s."
 
 #: src/language/stats/autorecode.c:171
 #, c-format
 msgid "Duplicate variable name %s among target variables."
-msgstr "Dubbele variabele naam %s tussen doel variabelen."
+msgstr "Dubbele variabelennaam %s tussen doelvariabelen."
 
 #: src/language/stats/binomial.c:141
 #, c-format
@@ -2393,7 +2123,7 @@ msgstr "Variabele %s is niet dichotomisch "
 
 #: src/language/stats/binomial.c:194
 msgid "Binomial Test"
-msgstr ""
+msgstr "Binomiaal Test"
 
 #: src/language/stats/binomial.c:224
 msgid "Group1"
@@ -2406,17 +2136,28 @@ msgstr "Groep2"
 #: src/language/stats/binomial.c:226 src/language/stats/chisquare.c:202
 #: src/language/stats/chisquare.c:262 src/language/stats/sign.c:94
 #: src/language/stats/wilcoxon.c:262 src/ui/gui/crosstabs-dialog.c:59
+#: src/language/stats/crosstabs.q:845 src/language/stats/crosstabs.q:1172
+#: src/language/stats/crosstabs.q:1596 src/language/stats/examine.q:1216
+#: src/language/stats/frequencies.q:1128 src/language/stats/oneway.q:305
+#: src/language/stats/oneway.q:476 src/language/stats/regression.q:309
+#: src/language/stats/reliability.q:718
 msgid "Total"
 msgstr "Totaal"
 
 #: src/language/stats/binomial.c:259 src/language/stats/chisquare.c:225
+#: src/language/stats/crosstabs.q:1260 src/language/stats/crosstabs.q:1308
 msgid "Category"
 msgstr "Categorie"
 
 #: src/language/stats/binomial.c:260 src/language/stats/npar-summary.c:123
 #: src/language/stats/sign.c:74 src/language/stats/wilcoxon.c:245
+#: src/language/stats/crosstabs.q:852 src/language/stats/examine.q:1289
+#: src/language/stats/frequencies.q:1399 src/language/stats/oneway.q:389
+#: src/language/stats/reliability.q:721 src/language/stats/t-test.q:506
+#: src/language/stats/t-test.q:526 src/language/stats/t-test.q:626
+#: src/language/stats/t-test.q:1105
 msgid "N"
-msgstr ""
+msgstr "N"
 
 #: src/language/stats/binomial.c:261
 msgid "Observed Prop."
@@ -2433,12 +2174,8 @@ msgstr ""
 
 #: src/language/stats/chisquare.c:172
 #, c-format
-msgid ""
-"CHISQUARE test specified %d expected values, but %d distinct values were "
-"encountered in variable %s."
-msgstr ""
-"CHISQUARE test specificeert %d verwachte waardes, maar %d verschillende "
-"waardes werden gevonden in variabele %s."
+msgid "CHISQUARE test specified %d expected values, but %d distinct values were encountered in variable %s."
+msgstr "CHISQUARE test specificeert %d verwachte waardes, maar %d verschillende waardes werden gevonden in variabele %s."
 
 #: src/language/stats/chisquare.c:186 src/language/stats/chisquare.c:226
 msgid "Observed N"
@@ -2449,7 +2186,7 @@ msgid "Expected N"
 msgstr "Verwacht N"
 
 #: src/language/stats/chisquare.c:188 src/language/stats/chisquare.c:228
-#: src/ui/gui/crosstabs-dialog.c:61
+#: src/ui/gui/crosstabs-dialog.c:61 src/language/stats/regression.q:308
 msgid "Residual"
 msgstr "Overblijvend"
 
@@ -2460,15 +2197,18 @@ msgstr "Frequenties"
 #: src/language/stats/chisquare.c:276 src/language/stats/sign.c:115
 #: src/language/stats/wilcoxon.c:313
 msgid "Test Statistics"
-msgstr ""
+msgstr "Test Statistieken"
 
 #: src/language/stats/chisquare.c:290
 msgid "Chi-Square"
-msgstr ""
+msgstr "Chi-Square"
 
-#: src/language/stats/chisquare.c:291
+#: src/language/stats/chisquare.c:291 src/language/stats/crosstabs.q:1236
+#: src/language/stats/oneway.q:278 src/language/stats/oneway.q:691
+#: src/language/stats/regression.q:302 src/language/stats/t-test.q:753
+#: src/language/stats/t-test.q:924 src/language/stats/t-test.q:1011
 msgid "df"
-msgstr ""
+msgstr "df"
 
 #: src/language/stats/chisquare.c:292
 msgid "Asymp. Sig."
@@ -2476,84 +2216,95 @@ msgstr ""
 
 #: src/language/stats/descriptives.c:102 src/language/stats/npar-summary.c:126
 #: src/ui/gui/descriptives-dialog.c:39 src/ui/gui/frequencies-dialog.c:40
+#: src/language/stats/examine.q:1559 src/language/stats/frequencies.q:123
+#: src/language/stats/oneway.q:390 src/language/stats/t-test.q:507
+#: src/language/stats/t-test.q:527 src/language/stats/t-test.q:625
+#: src/language/stats/t-test.q:918
 msgid "Mean"
-msgstr "Gemiddeld"
+msgstr ""
 
 #: src/language/stats/descriptives.c:103
+#, fuzzy
 msgid "S E Mean"
-msgstr ""
+msgstr "_Gemiddeld"
 
-#: src/language/stats/descriptives.c:104
+#: src/language/stats/descriptives.c:104 src/language/stats/frequencies.q:127
 msgid "Std Dev"
-msgstr ""
+msgstr "Std Dev"
 
 #: src/language/stats/descriptives.c:105 src/ui/gui/descriptives-dialog.c:46
-#: src/ui/gui/frequencies-dialog.c:45
+#: src/ui/gui/frequencies-dialog.c:45 src/language/stats/examine.q:1589
+#: src/language/stats/frequencies.q:128
 msgid "Variance"
-msgstr ""
+msgstr "Variatie"
 
 #: src/language/stats/descriptives.c:106 src/ui/gui/descriptives-dialog.c:47
-#: src/ui/gui/frequencies-dialog.c:50
+#: src/ui/gui/frequencies-dialog.c:50 src/language/stats/examine.q:1625
+#: src/language/stats/frequencies.q:129
 msgid "Kurtosis"
-msgstr ""
+msgstr "Kurtosis"
 
 #: src/language/stats/descriptives.c:107
+#, fuzzy
 msgid "S E Kurt"
-msgstr ""
+msgstr "S.E. Kurt"
 
 #: src/language/stats/descriptives.c:108 src/ui/gui/descriptives-dialog.c:48
-#: src/ui/gui/frequencies-dialog.c:46
+#: src/ui/gui/frequencies-dialog.c:46 src/language/stats/examine.q:1620
+#: src/language/stats/frequencies.q:131
 msgid "Skewness"
-msgstr ""
+msgstr "Skewness"
 
 #: src/language/stats/descriptives.c:109
+#, fuzzy
 msgid "S E Skew"
-msgstr ""
+msgstr "S.E. Skew"
 
 #: src/language/stats/descriptives.c:110 src/ui/gui/descriptives-dialog.c:43
-#: src/ui/gui/frequencies-dialog.c:48
+#: src/ui/gui/frequencies-dialog.c:48 src/language/stats/examine.q:1609
+#: src/language/stats/frequencies.q:133
 msgid "Range"
-msgstr ""
+msgstr "Bereik"
 
 #: src/language/stats/descriptives.c:111 src/language/stats/npar-summary.c:132
 #: src/ui/gui/descriptives-dialog.c:41 src/ui/gui/frequencies-dialog.c:42
+#: src/language/stats/examine.q:1599 src/language/stats/frequencies.q:134
+#: src/language/stats/oneway.q:404
 msgid "Minimum"
-msgstr ""
+msgstr "Minimum"
 
 #: src/language/stats/descriptives.c:112 src/language/stats/npar-summary.c:135
 #: src/ui/gui/descriptives-dialog.c:42 src/ui/gui/frequencies-dialog.c:43
+#: src/language/stats/examine.q:1604 src/language/stats/frequencies.q:135
+#: src/language/stats/oneway.q:405
 msgid "Maximum"
-msgstr ""
+msgstr "Maximum"
 
 #: src/language/stats/descriptives.c:113 src/ui/gui/descriptives-dialog.c:44
-#: src/ui/gui/frequencies-dialog.c:53
+#: src/ui/gui/frequencies-dialog.c:53 src/language/stats/frequencies.q:136
 msgid "Sum"
 msgstr "Som"
 
 #: src/language/stats/descriptives.c:344
 #, c-format
 msgid "Z-score variable name %s would be a duplicate variable name."
-msgstr "Z-score variabele naam %s zou een dubbele variabele naam zijn."
+msgstr "Z-score-variabelennaam %s zou een dubbele variabelennaam zijn."
 
-#: src/language/stats/descriptives.c:362
+#: src/language/stats/descriptives.c:362 src/language/data-io/list.q:157
 msgid "No variables specified."
 msgstr "Geen variabelen gespecificeerd."
 
 #: src/language/stats/descriptives.c:451
 msgid "expecting statistic name: reverting to default"
-msgstr "statistische naam verwacht: teruggezet op default"
+msgstr "statistische naam verwacht: teruggezet op verstek"
 
 #: src/language/stats/descriptives.c:524
-msgid ""
-"Ran out of generic names for Z-score variables.  There are only 126 generic "
-"names: ZSC001-ZSC0999, STDZ01-STDZ09, ZZZZ01-ZZZZ09, ZQZQ01-ZQZQ09."
-msgstr ""
-"Generieke namen voor Z-score variabelen zijn uitgeput.  Er zijn slechts 126 "
-"generieke namen: ZSC001-ZSC0999, STDZ01-STDZ09, ZZZZ01-ZZZZ09, ZQZQ01-ZQZQ09."
+msgid "Ran out of generic names for Z-score variables.  There are only 126 generic names: ZSC001-ZSC0999, STDZ01-STDZ09, ZZZZ01-ZZZZ09, ZQZQ01-ZQZQ09."
+msgstr "Generieke namen voor Z-score-variabelen zijn uitgeput.  Er zijn slechts 126 generieke namen: ZSC001-ZSC0999, STDZ01-STDZ09, ZZZZ01-ZZZZ09, ZQZQ01-ZQZQ09."
 
 #: src/language/stats/descriptives.c:556
 msgid "Mapping of variables to corresponding Z-scores."
-msgstr "Mappen van variabelen naar corresponderen Z-scores."
+msgstr "Mappen van variabelen naar corresponderende Z-scores."
 
 #: src/language/stats/descriptives.c:561
 msgid "Source"
@@ -2570,20 +2321,20 @@ msgstr "Z-score van %s"
 
 #: src/language/stats/descriptives.c:888
 msgid "Valid N"
-msgstr ""
+msgstr "Geldige N"
 
 #: src/language/stats/descriptives.c:889
 msgid "Missing N"
-msgstr ""
+msgstr "Missende N"
 
 #: src/language/stats/descriptives.c:917
 #, c-format
 msgid "Valid cases = %g; cases with missing value(s) = %g."
-msgstr "Geldige cases = %g; cases met missing value(s) = %g."
+msgstr "Geldige cases = %g; cases met ontbrekende-waarde(s) = %g."
 
 #: src/language/stats/sort-cases.c:64
 msgid "Buffer limit must be at least 2."
-msgstr "Buffer limiet moet tenminste 2 zijn."
+msgstr "Bufferlimiet moet tenminste 2 zijn."
 
 #: src/language/stats/sort-criteria.c:74
 msgid "`A' or `D' expected inside parentheses."
@@ -2596,13 +2347,11 @@ msgstr "')' verwacht."
 #: src/language/stats/sort-criteria.c:92
 #, c-format
 msgid "Variable %s specified twice in sort criteria."
-msgstr "Variabele %s 2 keer opgegeven in sort criteria."
+msgstr "Variabele %s 2 keer opgegeven in sorteer criteria."
 
 #: src/language/stats/flip.c:98
-msgid ""
-"FLIP ignores TEMPORARY.  Temporary transformations will be made permanent."
-msgstr ""
-"FLIP negeert TEMPORARY. Tijdelijke transformaties worden permanent gemaakt."
+msgid "FLIP ignores TEMPORARY.  Temporary transformations will be made permanent."
+msgstr "FLIP negeert TEMPORARY. Tijdelijke transformaties worden permanent gemaakt."
 
 #: src/language/stats/flip.c:150
 msgid "Could not create temporary file for FLIP."
@@ -2615,7 +2364,7 @@ msgstr "Fout tijdens terugdraaien FLIP bestand: %s."
 
 #: src/language/stats/flip.c:334
 msgid "Error creating FLIP source file."
-msgstr "Fout tijdens het creëren van FLIP bron bestand."
+msgstr "Fout tijdens het creëren van FLIP bronbestand."
 
 #: src/language/stats/flip.c:347
 #, c-format
@@ -2624,27 +2373,27 @@ msgstr "Fout tijdens lezen FLIP bestand: %s."
 
 #: src/language/stats/flip.c:349
 msgid "Unexpected end of file reading FLIP file."
-msgstr "Onverwacht einde bestand tijdens lezen FLIP bestand."
+msgstr "Onverwacht einde-bestand tijdens lezen FLIP bestand."
 
 #: src/language/stats/flip.c:365
 #, c-format
 msgid "Error seeking FLIP source file: %s."
-msgstr "Fout tijdens zoeken FLIP bron bestand: %s."
+msgstr "Fout tijdens zoeken FLIP bronbestand: %s."
 
 #: src/language/stats/flip.c:373
 #, c-format
 msgid "Error writing FLIP source file: %s."
-msgstr "Fout tijdens schrijven FLIP bron bestand: %s."
+msgstr "Fout tijdens schrijven FLIP bronbestand: %s."
 
 #: src/language/stats/flip.c:384
 #, c-format
 msgid "Error closing FLIP source file: %s."
-msgstr "Fout tijdens sluiten FLIP bron bestand: %s."
+msgstr "Fout tijdens sluiten FLIP bronbestand: %s."
 
 #: src/language/stats/flip.c:392
 #, c-format
 msgid "Error rewinding FLIP source file: %s."
-msgstr "Fout tijdens terugdraaien FLIP bron bestand: %s."
+msgstr "Fout tijdens terugdraaien FLIP bronbestand: %s."
 
 #: src/language/stats/flip.c:426
 #, c-format
@@ -2653,31 +2402,36 @@ msgstr "Fout tijdens lezen FLIP tijdelijk bestand: %s."
 
 #: src/language/stats/flip.c:429
 msgid "Unexpected end of file reading FLIP temporary file."
-msgstr "Onverwacht einde bestand tijdens lezen FLIP tijdelijk bestand."
+msgstr "Onverwacht einde-bestand tijdens lezen FLIP tijdelijk bestand."
 
 #: src/language/stats/npar-summary.c:109
 msgid "Descriptive Statistics"
-msgstr "Descriptive Statistieken"
+msgstr "Descriptieve Statistieken"
 
-#: src/language/stats/npar-summary.c:129
+#: src/language/stats/npar-summary.c:129 src/language/stats/examine.q:1594
+#: src/language/stats/oneway.q:391 src/language/stats/t-test.q:508
+#: src/language/stats/t-test.q:528 src/language/stats/t-test.q:627
+#: src/language/stats/t-test.q:919
 msgid "Std. Deviation"
-msgstr ""
+msgstr "Std. Deviatie"
 
 #: src/language/stats/npar-summary.c:142 src/ui/gui/examine.glade:333
+#: src/language/stats/examine.q:2117 src/language/stats/examine.q:2134
+#: src/language/stats/frequencies.q:1410
 msgid "Percentiles"
-msgstr ""
+msgstr "Percentiles"
 
 #: src/language/stats/npar-summary.c:146
 msgid "25th"
-msgstr ""
+msgstr "25ste"
 
 #: src/language/stats/npar-summary.c:149
 msgid "50th (Median)"
-msgstr ""
+msgstr "50ste (Mediaan)"
 
 #: src/language/stats/npar-summary.c:152
 msgid "75th"
-msgstr ""
+msgstr "75ste"
 
 #: src/language/stats/roc.c:938
 msgid "Area Under the Curve"
@@ -2692,60 +2446,58 @@ msgstr ""
 msgid "Area"
 msgstr ""
 
-#: src/language/stats/roc.c:959
+#: src/language/stats/roc.c:959 src/language/stats/examine.q:1756
+#: src/language/stats/oneway.q:392 src/language/stats/oneway.q:689
+#: src/language/stats/regression.q:203
 msgid "Std. Error"
-msgstr ""
+msgstr "Std. Fout"
 
 #: src/language/stats/roc.c:960
 msgid "Asymptotic Sig."
 msgstr ""
 
-#: src/language/stats/roc.c:962
+#: src/language/stats/roc.c:962 src/language/stats/examine.q:1570
+#: src/language/stats/oneway.q:401
 msgid "Lower Bound"
-msgstr "Beneden Grens"
+msgstr "Benedengrens"
 
-#: src/language/stats/roc.c:963
+#: src/language/stats/roc.c:963 src/language/stats/examine.q:1575
+#: src/language/stats/oneway.q:402
 msgid "Upper Bound"
-msgstr "Boven Grens"
+msgstr "Bovengrens"
 
 #: src/language/stats/roc.c:967
 #, c-format
 msgid "Asymp. %g%% Confidence Interval"
-msgstr ""
+msgstr "Asymp. %g%% Betrouwbaarheidsinterval"
 
 #: src/language/stats/roc.c:973
-#, fuzzy
 msgid "Variable under test"
-msgstr "Variabelen"
+msgstr ""
 
 #: src/language/stats/roc.c:1032
-#, fuzzy
 msgid "Case Summary"
-msgstr "Overzicht."
+msgstr "Case Overzicht"
 
 #: src/language/stats/roc.c:1054
-#, fuzzy
 msgid "Unweighted"
-msgstr "Niet gewogen."
+msgstr "Niet gewogen"
 
 #: src/language/stats/roc.c:1055
-#, fuzzy
 msgid "Weighted"
-msgstr "Gewicht:"
+msgstr "Gewicht"
 
 #: src/language/stats/roc.c:1059
 msgid "Valid N (listwise)"
 msgstr ""
 
 #: src/language/stats/roc.c:1062
-#, fuzzy
 msgid "Positive"
-msgstr "positief"
+msgstr "Positief"
 
 #: src/language/stats/roc.c:1063
-#, fuzzy
 msgid "Negative"
-msgstr "negatief"
+msgstr "Negatief"
 
 #: src/language/stats/roc.c:1091
 msgid "Coordinates of the Curve"
@@ -2757,17 +2509,16 @@ msgid "Coordinates of the Curve (%s)"
 msgstr ""
 
 #: src/language/stats/roc.c:1103
-#, fuzzy
 msgid "Test variable"
-msgstr "Test Variabel(en):"
+msgstr "Testvariabele(n)"
 
 #: src/language/stats/roc.c:1105
 msgid "Positive if greater than or equal to"
-msgstr ""
+msgstr "Positief als grote dan of gelijk aan"
 
 #: src/language/stats/roc.c:1106 src/language/stats/roc.c:1171
 msgid "Sensitivity"
-msgstr ""
+msgstr "Gevoeligheid"
 
 #: src/language/stats/roc.c:1107 src/language/stats/roc.c:1170
 msgid "1 - Specificity"
@@ -2775,7 +2526,7 @@ msgstr ""
 
 #: src/language/stats/roc.c:1169
 msgid "ROC Curve"
-msgstr ""
+msgstr "ROC Curve"
 
 #: src/language/stats/sign.c:91
 msgid "Negative Differences"
@@ -2803,15 +2554,15 @@ msgstr ""
 
 #: src/language/stats/wilcoxon.c:232
 msgid "Ranks"
-msgstr "Rangen"
+msgstr "Rangschikking"
 
 #: src/language/stats/wilcoxon.c:246
 msgid "Mean Rank"
-msgstr "Gemiddelde Rang"
+msgstr ""
 
 #: src/language/stats/wilcoxon.c:247
 msgid "Sum of Ranks"
-msgstr "Totaal van de Rangen"
+msgstr "Som van Rangen"
 
 #: src/language/stats/wilcoxon.c:259
 msgid "Negative Ranks"
@@ -2823,7 +2574,7 @@ msgstr "Positieve Rangen"
 
 #: src/language/stats/wilcoxon.c:326
 msgid "Z"
-msgstr ""
+msgstr "Z"
 
 #: src/language/stats/wilcoxon.c:327
 msgid "Asymp. Sig. (2-tailed)"
@@ -2831,17 +2582,11 @@ msgstr ""
 
 #: src/language/data-io/combine-files.c:210
 msgid "Cannot specify the active file since no active file has been defined."
-msgstr ""
-"Kan het actieve bestand niet specificeren omdat er geen actief bestand is "
-"gedefinieerd."
+msgstr "Kan het actieve bestand niet specificeren omdat er geen actief bestand is gedefinieerd."
 
 #: src/language/data-io/combine-files.c:216
-msgid ""
-"This command may not be used after TEMPORARY when the active file is an "
-"input source.  Temporary transformations will be made permanent."
-msgstr ""
-"Deze opdracht mag niet gebruikt worden na TEMPORARY als het actieve bestand "
-"een invoer bron is. Tijdelijke transformaties zullen permanent worden."
+msgid "This command may not be used after TEMPORARY when the active file is an input source.  Temporary transformations will be made permanent."
+msgstr "Deze opdracht mag niet gebruikt worden na TEMPORARY als het actieve bestand een invoer bron is. Tijdelijke transformaties zullen permanent worden."
 
 #: src/language/data-io/combine-files.c:250
 msgid "Multiple IN subcommands for a single FILE or TABLE."
@@ -2859,32 +2604,26 @@ msgstr "Actief bestand mist BY variabele %s."
 
 #: src/language/data-io/combine-files.c:376
 msgid "The BY subcommand is required."
-msgstr "De BY subopdracht is nodig."
+msgstr "De BY subopdracht is verplicht."
 
 #: src/language/data-io/combine-files.c:381
+#, fuzzy
 msgid "BY is required when TABLE is specified."
-msgstr "BY is noodzakelijk als TABLE is gespecificeerd."
+msgstr "BY is noodzakelijk als %s is gespecificeerd."
 
 #: src/language/data-io/combine-files.c:386
+#, fuzzy
 msgid "BY is required when SORT is specified."
-msgstr "BY is noodzakelijk als SORT is gespecificeerd."
+msgstr "BY is noodzakelijk als %s is gespecificeerd."
 
 #: src/language/data-io/combine-files.c:513
-msgid ""
-"Combining files with incompatible encodings. String data may not be "
-"represented correctly."
-msgstr ""
-"Combineren bestanden met incompatibele codering. String data wordt misschien "
-"niet correct weergegeven."
+msgid "Combining files with incompatible encodings. String data may not be represented correctly."
+msgstr "Combineren van bestanden met incompatibele codering. Tekenreeks gegevens worden mogelijk niet correct weergegeven."
 
 #: src/language/data-io/combine-files.c:545
 #, c-format
-msgid ""
-"Variable %s in file %s has different type or width from the same variable in "
-"earlier file."
-msgstr ""
-"Variabele %s in bestand %s heeft een ander type of de breedte dan dezelfde "
-"variabele in eerder bestand."
+msgid "Variable %s in file %s has different type or width from the same variable in earlier file."
+msgstr "Variabele %s in bestand %s heeft een ander type of breedte dan dezelfde variabele in eerder bestand."
 
 #: src/language/data-io/combine-files.c:551
 #, c-format
@@ -2894,31 +2633,27 @@ msgstr "In bestand %s, %s is numeriek."
 #: src/language/data-io/combine-files.c:554
 #, c-format
 msgid "In file %s, %s is a string variable with width %d."
-msgstr "In bestand %s, %s is een string variabele met breedte %d."
+msgstr "In bestand %s, %s is een tekenreeksvariabele met breedte %d."
 
 #: src/language/data-io/combine-files.c:559
 #, c-format
 msgid "In an earlier file, %s was numeric."
-msgstr "In eerder bestand, %s was numeriek."
+msgstr "In een eerder bestand, %s was numeriek."
 
 #: src/language/data-io/combine-files.c:562
 #, c-format
 msgid "In an earlier file, %s was a string variable with width %d."
-msgstr "In een eerder bestand, %s was een string variabele met breedte %d."
+msgstr "In een eerder bestand, %s was een tekenreeks met breedte %d."
 
 #: src/language/data-io/combine-files.c:601
 #, c-format
-msgid ""
-"Variable name %s specified on %s subcommand duplicates an existing variable "
-"name."
-msgstr ""
-"Variabele naam %s gespecificeerd op %s subopdracht dupliceert een bestaande "
-"variabele naam."
+msgid "Variable name %s specified on %s subcommand duplicates an existing variable name."
+msgstr "Variabelennaam %s gespecificeerd op %s subopdracht dupliceert een bestaande variabelennaam."
 
 #: src/language/data-io/combine-files.c:762
 #, c-format
 msgid "Encountered %zu sets of duplicate cases in the master file."
-msgstr "Ontmoet %zu sets van dubbele cases in het master bestand. "
+msgstr "Gevonden% zu sets van dubbele cases in het master-bestand."
 
 #: src/language/data-io/data-list.c:137
 msgid "The END subcommand may only be used within INPUT PROGRAM."
@@ -2934,12 +2669,11 @@ msgstr "Slechts 1 van FIXED, FREE of LIST mag gespecificeerd worden."
 
 #: src/language/data-io/data-list.c:243
 msgid "Encoding should not be specified for inline data. It will be ignored."
-msgstr ""
-"Coderen dient niet opgegeven te worden voor inline date. Het wordt genegeerd."
+msgstr "Codering dient niet opgegeven te worden voor inline-gegevens. Het wordt genegeerd."
 
 #: src/language/data-io/data-list.c:254
 msgid "The END subcommand may be used only with DATA LIST FIXED."
-msgstr "De END subopdracht mag allen gebruikt worden met DATA LIST FIXED."
+msgstr "De END subopdracht mag alleen gebruikt worden met DATA LIST FIXED."
 
 #: src/language/data-io/data-list.c:269
 msgid "At least one variable must be specified."
@@ -2949,7 +2683,7 @@ msgstr "Tenminste 1 variabele moet gespecificeerd worden."
 #: src/language/data-io/get-data.c:530
 #, c-format
 msgid "%s is a duplicate variable name."
-msgstr "%s is een dubbele variabele naam."
+msgstr "%s is een dubbele variabelennaam."
 
 #: src/language/data-io/data-list.c:375
 #, c-format
@@ -2959,18 +2693,17 @@ msgstr "Er is al een variabele %s van een ander type."
 #: src/language/data-io/data-list.c:382
 #, c-format
 msgid "There is already a string variable %s of a different width."
-msgstr "Er is al een string variabele %s van een andere breedte."
+msgstr "Er is al een tekenreeksvariabele %s van een andere breedte."
 
 #: src/language/data-io/data-list.c:390
 #, c-format
 msgid "Cannot place variable %s on record %d when RECORDS=%d is specified."
-msgstr ""
-"Kan variabele %s niet plaatsen in record %d als RECORDS=%d is gespecificeerd."
+msgstr "Kan variabele %s niet plaatsen in record %d als RECORDS=%d is gespecificeerd."
 
 #: src/language/data-io/data-parser.c:460
 #: src/language/data-io/data-parser.c:469
 msgid "Quoted string extends beyond end of line."
-msgstr "Geciteerde string loopt door na regeleinde."
+msgstr "Geciteerde tekenreeks loopt door na regeleinde."
 
 #: src/language/data-io/data-parser.c:525
 #, c-format
@@ -2984,20 +2717,16 @@ msgstr "Gedeeltelijke case overgeslagen. De eerste gemiste variabele was %s."
 
 #: src/language/data-io/data-parser.c:610
 #, c-format
-msgid ""
-"Missing value(s) for all variables from %s onward.  These will be filled "
-"with the system-missing value or blanks, as appropriate."
-msgstr ""
-"Missing value(s) voor alle variabelen vanaf %s. Deze worden gevuld met de "
-"geschikte system-missing waarde of spatie."
+msgid "Missing value(s) for all variables from %s onward.  These will be filled with the system-missing value or blanks, as appropriate."
+msgstr "Ontbrekende-waarde(s) voor alle variabelen vanaf %s. Deze worden gevuld met de geschikte system-missing waarde of spatie."
 
 #: src/language/data-io/data-parser.c:630
 msgid "Record ends in data not part of any field."
-msgstr "Record eindigd in data die geen onderdeel is van een veld."
+msgstr "Record eindigt in gegeven dat geen onderdeel is van een veld."
 
 #: src/language/data-io/data-parser.c:651 src/language/data-io/print.c:405
 msgid "Record"
-msgstr ""
+msgstr "Record"
 
 #: src/language/data-io/data-parser.c:652 src/language/data-io/print.c:406
 #: src/ui/gui/psppire-var-sheet.c:540 src/ui/gui/psppire-var-store.c:839
@@ -3008,7 +2737,7 @@ msgstr "Kolommen"
 #: src/language/data-io/data-parser.c:653
 #: src/language/data-io/data-parser.c:692 src/language/data-io/print.c:407
 msgid "Format"
-msgstr "Formaat"
+msgstr ""
 
 #: src/language/data-io/data-parser.c:672
 #, c-format
@@ -3020,30 +2749,23 @@ msgstr[1] "Lezen %d records van %s."
 #: src/language/data-io/data-parser.c:708
 #, c-format
 msgid "Reading free-form data from %s."
-msgstr "Lezen vrij-formaat data van %s."
+msgstr "Lezen vrije-vorm gegeven van %s."
 
 #. TRANSLATORS: this fragment will be interpolated into
 #. messages in fh_lock() that identify types of files.
 #: src/language/data-io/data-reader.c:122
 #: src/language/data-io/data-writer.c:58
 msgid "data file"
-msgstr "data bestand"
+msgstr "gegevensbestand"
 
 #: src/language/data-io/data-reader.c:149
 #, c-format
 msgid "Could not open \"%s\" for reading as a data file: %s."
-msgstr "Kon \"%s\"niet openen voor het lezen als data bestand: %s."
+msgstr "Kon \"%s\" niet openen voor het lezen als gegevensbestand: %s."
 
 #: src/language/data-io/data-reader.c:191
-msgid ""
-"Unexpected end-of-file while reading data in BEGIN DATA.  This probably "
-"indicates a missing or misformatted END DATA command.  END DATA must appear "
-"by itself on a single line with exactly one space between words."
-msgstr ""
-"Onverwacht einde-bestand tijdens het lezen van data in BEGIN DATA. Dit geeft "
-"waarschijnlijk aan dat de END DATA opdracht ontbreekt of verkeerd geschreven "
-"is. END DATA dient alleen op 1 regel met precies 1 spatie tussen de woorden "
-"voor te komen."
+msgid "Unexpected end-of-file while reading data in BEGIN DATA.  This probably indicates a missing or misformatted END DATA command.  END DATA must appear by itself on a single line with exactly one space between words."
+msgstr "Onverwacht einde-bestand tijdens het lezen van gegevens in BEGIN DATA. Dit geeft waarschijnlijk aan dat de END DATA opdracht ontbreekt of verkeerd geschreven is. END DATA dient alleen op 1 regel met precies 1 spatie tussen de woorden voor te komen."
 
 #: src/language/data-io/data-reader.c:216
 #, c-format
@@ -3089,38 +2811,28 @@ msgid "Attempt to read beyond END DATA."
 msgstr "Poging om te lezen na END DATA."
 
 #: src/language/data-io/data-reader.c:707
-msgid ""
-"This command is not valid here since the current input program does not "
-"access the inline file."
-msgstr ""
-"Deze opdracht is hier niet geldig omdat het huidige invoer programma het "
-"inline bestand niet benaderd."
+msgid "This command is not valid here since the current input program does not access the inline file."
+msgstr "Deze opdracht is hier niet geldig omdat het huidige invoerprogramma het inline-bestand niet benaderd."
 
 #: src/language/data-io/data-writer.c:74
 #, c-format
 msgid "An error occurred while opening \"%s\" for writing as a data file: %s."
-msgstr ""
-"Een fout is opgetreden tijdens het openen van \"%s\" voor schrijven als data "
-"bestand: %s."
+msgstr "Een fout is opgetreden tijdens het openen van \"%s\" voor schrijven als gegevensbestand: %s."
 
 #: src/language/data-io/data-writer.c:191
 #, c-format
 msgid "I/O error occurred writing data file \"%s\"."
-msgstr "I/O fout opgetreden tijdens schrijven data bestand \"%s\"."
+msgstr "I/O fout opgetreden tijdens schrijven gegevensbestand \"%s\"."
 
 #: src/language/data-io/get-data.c:64
 #, c-format
 msgid "Unsupported TYPE %s"
-msgstr "Niet ondersteunt TYPE %s"
+msgstr "Niet ondersteund TYPE %s"
 
 #: src/language/data-io/get-data.c:260
 #, c-format
-msgid ""
-"%s is allowed only with %s arrangement, but %s arrangement was stated or "
-"implied earlier in this command."
-msgstr ""
-"%s is alleen toegestaan met %s regeling, maar %s regeling was eerder "
-"opgegeven of geïmpliceerd in deze opdracht."
+msgid "%s is allowed only with %s arrangement, but %s arrangement was stated or implied earlier in this command."
+msgstr "%s is alleen toegestaan met %s regeling, maar %s regeling was eerder opgegeven of geïmpliceerd in deze opdracht."
 
 #: src/language/data-io/get-data.c:315
 msgid "expecting FIXED or DELIMITED"
@@ -3147,12 +2859,8 @@ msgid "Value of PERCENT must be between 1 and 100."
 msgstr "Waarde van PERCENT moet tussen 1 en 100 zijn."
 
 #: src/language/data-io/get-data.c:447
-msgid ""
-"In compatible syntax mode, the QUALIFIER string must contain exactly one "
-"character."
-msgstr ""
-"In compatibele syntax modus, the QUALIFIER string moet precies 1 karakter "
-"bevatten."
+msgid "In compatible syntax mode, the QUALIFIER string must contain exactly one character."
+msgstr "In compatible syntaxmodus, dient de QUALIFIER tekenreeks precies 1 karakter te bevatten."
 
 #: src/language/data-io/get-data.c:462
 msgid "expecting VARIABLES"
@@ -3161,21 +2869,13 @@ msgstr "VARIABLES verwacht"
 #: src/language/data-io/get-data.c:484
 #: src/language/data-io/placement-parser.c:378
 #, c-format
-msgid ""
-"The record number specified, %ld, is at or before the previous record, %d.  "
-"Data fields must be listed in order of increasing record number."
-msgstr ""
-"Het opgegeven record nummer, %ld, is op of voor het huidige record, %d. Data "
-"velden dienen opgegeven te worden in oplopende recordnummer volgorde."
+msgid "The record number specified, %ld, is at or before the previous record, %d.  Data fields must be listed in order of increasing record number."
+msgstr "Het opgegeven recordnummer, %ld, is op of voor het huidige record, %d. Gegevensvelden dienen opgegeven te worden in oplopende recordnummer volgorde."
 
 #: src/language/data-io/get-data.c:493
 #, c-format
-msgid ""
-"The record number specified, %ld, exceeds the number of records per case "
-"specified on FIXCASE, %d."
-msgstr ""
-"Het gespecificeerde record nummer, %ld, overschrijdt het aantal records per "
-"case zoals gespecificeerd in FIXCASE, %d."
+msgid "The record number specified, %ld, exceeds the number of records per case specified on FIXCASE, %d."
+msgstr "Het gespecificeerde recordnummer, %ld, overschrijdt het aantal records per case zoals gespecificeerd in FIXCASE, %d."
 
 #: src/language/data-io/get.c:99
 msgid "expecting COMM or TAPE"
@@ -3187,34 +2887,24 @@ msgstr "Onverwacht einde-bestand binnen INPUT PROGRAM."
 
 #: src/language/data-io/inpt-pgm.c:143
 msgid "Input program did not create any variables."
-msgstr "Input program heeft geen variabelen gecreëerd."
+msgstr "Invoerprogramma heeft geen variabelen gecreëerd."
 
 #: src/language/data-io/inpt-pgm.c:288
 msgid "COLUMN subcommand multiply specified."
 msgstr "COLUMN subopdracht meerdere keren gespecificeerd."
 
 #: src/language/data-io/inpt-pgm.c:338
-msgid ""
-"REREAD: Column numbers must be positive finite numbers.  Column set to 1."
-msgstr ""
-"REREAD: Kolom nummers moeten positieve eindige nummers zijn. Kolom is op 1 "
-"gezet."
+msgid "REREAD: Column numbers must be positive finite numbers.  Column set to 1."
+msgstr "REREAD: Kolomnummers moeten positieve eindige nummers zijn. Kolom is op 1 gezet."
 
 #: src/language/data-io/placement-parser.c:87
 #, c-format
-msgid ""
-"Number of variables specified (%zu) differs from number of variable formats "
-"(%zu)."
-msgstr ""
-"Aantal gespecificeerde variabelen (%zu) verschilt van aantal variabele "
-"formaten (%zu)."
+msgid "Number of variables specified (%zu) differs from number of variable formats (%zu)."
+msgstr "Aantal gespecificeerde variabelen (%zu) verschilt van aantal variabele formats (%zu)."
 
 #: src/language/data-io/placement-parser.c:97
-msgid ""
-"SPSS-like or Fortran-like format specification expected after variable names."
-msgstr ""
-"SPSS-achtig of Fortran-achtig formaat specificatie verwacht na variabele "
-"naam."
+msgid "SPSS-like or Fortran-like format specification expected after variable names."
+msgstr "SPSS-achtig of Fortran-achtig format-specificatie verwacht na variabele naam."
 
 #: src/language/data-io/placement-parser.c:119
 #, c-format
@@ -3223,15 +2913,15 @@ msgstr "De %d kolommen %d-%d kunnen niet gelijk verdeeld worden in %zu velden."
 
 #: src/language/data-io/placement-parser.c:305
 msgid "Column positions for fields must be positive."
-msgstr "Kolom posities voor velden moet positief zijn."
+msgstr "Kolomposities voor velden moeten positief zijn."
 
 #: src/language/data-io/placement-parser.c:307
 msgid "Column positions for fields must not be negative."
-msgstr "Kolom posities voor velden mogen niet negatief zijn."
+msgstr "Kolomposities voor velden mogen niet negatief zijn."
 
 #: src/language/data-io/placement-parser.c:344
 msgid "The ending column for a field must be greater than the starting column."
-msgstr "De eind kolom van een veld moet groter zijn dan de start kolom."
+msgstr "De eindkolom van een veld moet groter zijn dan de startkolom."
 
 #: src/language/data-io/print-space.c:116
 msgid "The expression on PRINT SPACE evaluated to the system-missing value."
@@ -3249,22 +2939,21 @@ msgstr "een geldig subopdracht verwacht"
 #: src/language/data-io/print.c:267
 #, c-format
 msgid "Output calls for %d records but %zu specified on RECORDS subcommand."
-msgstr ""
-"De output vraagt %d records maar %zu gespecificeerd bij RECORDS subopdracht. "
+msgstr "De uitvoer vraagt %d records maar %zu gespecificeerd bij RECORDS subopdracht."
 
 #: src/language/data-io/print.c:438
-#, c-format
+#, fuzzy, c-format
 msgid "Writing %d record to %s."
 msgid_plural "Writing %d records to %s."
-msgstr[0] "Schrijven van %d record naar %s."
-msgstr[1] "Schrijven van %d records naar %s."
+msgstr[0] "Schrijven van %zu record naar %s."
+msgstr[1] "Schrijven van %zu records naar %s."
 
 #: src/language/data-io/print.c:442
-#, c-format
+#, fuzzy, c-format
 msgid "Writing %d record."
 msgid_plural "Writing %d records."
-msgstr[0] "Schrijven van %d record."
-msgstr[1] "Schrijven van %d records."
+msgstr[0] "Schrijven van %zu record."
+msgstr[1] "Schrijven van %zu records."
 
 #: src/language/data-io/save.c:223 src/language/data-io/save.c:238
 #: src/language/data-io/save.c:266
@@ -3274,35 +2963,22 @@ msgstr "%s of %s verwacht"
 
 #: src/language/data-io/trim.c:88
 #, c-format
-msgid ""
-"Cannot rename %s as %s because there already exists a variable named %s.  To "
-"rename variables with overlapping names, use a single RENAME subcommand such "
-"as \"/RENAME (A=B)(B=C)(C=A)\", or equivalently, \"/RENAME (A B C=B C A)\"."
-msgstr ""
-"Kan %s niet hernoemen naar  %s omdat er al een variabele met de naam %s "
-"bestaat.  Om variabelen met overlappende naam te hernoemen gebruik een enkel "
-"RENAME subopdracht zoals \"/RENAME (A=B)(B=C)(C=A)\", of equivalent achtig, "
-"\"/RENAME (A B C=B C A)\"."
+msgid "Cannot rename %s as %s because there already exists a variable named %s.  To rename variables with overlapping names, use a single RENAME subcommand such as \"/RENAME (A=B)(B=C)(C=A)\", or equivalently, \"/RENAME (A B C=B C A)\"."
+msgstr "Kan %s niet hernoemen naar  %s omdat er al een variabele met de naam %s bestaat.  Om variabelen met overlappende naam te hernoemen gebruik een enkel RENAME subopdracht zoals \"/RENAME (A=B)(B=C)(C=A)\", of equivalent achtig, \"/RENAME (A B C=B C A)\"."
 
 #: src/language/data-io/trim.c:114
 msgid "`=' expected after variable list."
-msgstr "'=' verwacht na variabele lijst."
+msgstr "'=' verwacht na variabelenlijst."
 
 #: src/language/data-io/trim.c:121
 #, c-format
-msgid ""
-"Number of variables on left side of `=' (%zu) does not match number of "
-"variables on right side (%zu), in parenthesized group %d of RENAME "
-"subcommand."
-msgstr ""
-"Aantal variabelen aan linker zijde van `=' (%zu) komt niet overeen met het "
-"aantal variabelen aan rechter zijde (%zu), in tussengevoegde groep %d van "
-"RENAME subopdracht."
+msgid "Number of variables on left side of `=' (%zu) does not match number of variables on right side (%zu), in parenthesized group %d of RENAME subcommand."
+msgstr "Aantal variabelen aan linker zijde van `=' (%zu) komt niet overeen met het aantal variabelen aan rechter zijde (%zu), in tussengevoegde groep %d van RENAME subopdracht."
 
 #: src/language/data-io/trim.c:134
 #, c-format
 msgid "Requested renaming duplicates variable name %s."
-msgstr "Gevraagde hernoeming dupliceert variabele naam %s."
+msgstr "Gevraagde hernoeming dupliceert variabelennaam %s."
 
 #: src/language/data-io/trim.c:165
 msgid "Cannot DROP all variables from dictionary."
@@ -3310,119 +2986,73 @@ msgstr "Kan niet alle variabelen DROP-en uit woordenboek."
 
 #: src/language/expressions/evaluate.c:155
 msgid "expecting number or string"
-msgstr "verwacht nummer of string"
+msgstr "verwacht nummer of tekenreeks"
 
 #: src/language/expressions/evaluate.c:169
 #, c-format
 msgid "Duplicate variable name %s."
-msgstr "Dubbele variabele naam %s."
+msgstr "Dubbele variabelennaam %s."
 
 #: src/language/expressions/helpers.c:51
-msgid ""
-"One of the arguments to a DATE function is not an integer.  The result will "
-"be system-missing."
-msgstr ""
-"Een van de variabelen voor een DATE functie is geen integer. Het resultaat "
-"zal system-missing zijn."
+msgid "One of the arguments to a DATE function is not an integer.  The result will be system-missing."
+msgstr "Een van de variabelen voor een DATE functie is geen integer. Het resultaat zal system-missing zijn."
 
 #: src/language/expressions/helpers.c:73
-msgid ""
-"The week argument to DATE.WKYR is not an integer.  The result will be system-"
-"missing."
-msgstr ""
-"Het week argument voor DATE.WKYR is geen integer.  Het resultaat zal system-"
-"missing zijn."
+msgid "The week argument to DATE.WKYR is not an integer.  The result will be system-missing."
+msgstr "Het week argument voor DATE.WKYR is geen integer.  Het resultaat zal system-missing zijn."
 
 #: src/language/expressions/helpers.c:79
-msgid ""
-"The week argument to DATE.WKYR is outside the acceptable range of 1 to 53.  "
-"The result will be system-missing."
-msgstr ""
-"Het week argument voor DATE.WKYR is buiten de acceptabele range van 1 tot "
-"53.  Het resultaat zal system-missing zijn."
+msgid "The week argument to DATE.WKYR is outside the acceptable range of 1 to 53.  The result will be system-missing."
+msgstr "Het week argument voor DATE.WKYR is buiten het acceptabele bereik van 1 tot 53.  Het resultaat zal system-missing zijn."
 
 #: src/language/expressions/helpers.c:101
-msgid ""
-"The day argument to DATE.YRDAY is not an integer.  The result will be system-"
-"missing."
-msgstr ""
-"Het dag argument voor DATE.WKYR is geen integer.  Het resultaat zal system-"
-"missing zijn."
+msgid "The day argument to DATE.YRDAY is not an integer.  The result will be system-missing."
+msgstr "Het dag argument voor DATE.WKYR is geen integer.  Het resultaat zal system-missing zijn."
 
 #: src/language/expressions/helpers.c:107
-msgid ""
-"The day argument to DATE.YRDAY is outside the acceptable range of 1 to 366.  "
-"The result will be system-missing."
-msgstr ""
-"Het dag argument voor DATE.WKYR is buiten de acceptabele range van 1 tot "
-"366.  Het resultaat zal system-missing zijn."
+msgid "The day argument to DATE.YRDAY is outside the acceptable range of 1 to 366.  The result will be system-missing."
+msgstr "Het dag argument voor DATE.WKYR is buiten het acceptabele bereik van 1 tot 366.  Het resultaat zal system-missing zijn."
 
 #: src/language/expressions/helpers.c:129
-msgid ""
-"The year argument to YRMODA is greater than 47516.  The result will be "
-"system-missing."
-msgstr ""
-"Het jaar argument voor YRMODA is groter dan 47516.  Het resultaat zal system-"
-"missing zijn."
+msgid "The year argument to YRMODA is greater than 47516.  The result will be system-missing."
+msgstr "Het jaar argument voor YRMODA is groter dan 47516.  Het resultaat zal system-missing zijn."
 
 #: src/language/expressions/helpers.c:182
 #, c-format
-msgid ""
-"Unrecognized date unit \"%.*s\".  Valid date units are \"years\", \"quarters"
-"\", \"months\", \"weeks\", \"days\", \"hours\", \"minutes\", and \"seconds\"."
-msgstr ""
-"Niet herkende datum eenheid \"%.*s\".  Geldige datum eenheden zijn \"years"
-"\", \"quarters\", \"months\", \"weeks\", \"days\", \"hours\", \"minutes\", "
-"en \"seconds\"."
+msgid "Unrecognized date unit \"%.*s\".  Valid date units are \"years\", \"quarters\", \"months\", \"weeks\", \"days\", \"hours\", \"minutes\", and \"seconds\"."
+msgstr "Niet-herkende datum eenheid \"%.*s\".  Geldige datum eenheden zijn \"years\", \"quarters\", \"months\", \"weeks\", \"days\", \"hours\", \"minutes\", en \"seconds\"."
 
 #: src/language/expressions/helpers.c:332
-msgid ""
-"Invalid DATESUM method.  Valid choices are \"closest\" and \"rollover\"."
-msgstr ""
-"Ongeldige DATESUM methode. Geldige keuzes zijn \"closest\" en \"rollover\"."
+msgid "Invalid DATESUM method.  Valid choices are \"closest\" and \"rollover\"."
+msgstr "Ongeldige DATESUM methode. Geldige keuzes zijn \"closest\" en \"rollover\"."
 
 #: src/language/expressions/parse.c:259
 #, c-format
-msgid ""
-"Type mismatch: expression has %s type, but a numeric value is required here."
-msgstr ""
-"Type ongelijk: expressie heeft type %s, maar een numerieke waarde is hier "
-"noodzakelijk."
+msgid "Type mismatch: expression has %s type, but a numeric value is required here."
+msgstr "Type ongelijk: expressie heeft type %s, maar een numerieke waarde is hier vereist."
 
 #: src/language/expressions/parse.c:271
 #, c-format
-msgid ""
-"Type mismatch: expression has %s type, but a string value is required here."
-msgstr ""
-"Type ongelijk: expressie heeft type %s, maar een string waarde is hier "
-"noodzakelijk."
+msgid "Type mismatch: expression has %s type, but a string value is required here."
+msgstr "Type ongelijk: expressie heeft type %s, maar een tekenreeks waarde is hier vereist."
 
 #: src/language/expressions/parse.c:427
 #, c-format
 msgid "Type mismatch while applying %s operator: cannot convert %s to %s."
-msgstr ""
-"Type ongelijk tijdens het uitvoeren van %s operator: kan %s niet naar %s "
-"converteren."
+msgstr "Type ongelijk tijdens het uitvoeren van %s operator: kan %s niet naar %s converteren."
 
 #: src/language/expressions/parse.c:643
-msgid ""
-"Chaining relational operators (e.g. \"a < b < c\") will not produce the "
-"mathematically expected result.  Use the AND logical operator to fix the "
-"problem (e.g. \"a < b AND b < c\").  If chaining is really intended, "
-"parentheses will disable this warning (e.g. \"(a < b) < c\".)"
+msgid "Chaining relational operators (e.g. \"a < b < c\") will not produce the mathematically expected result.  Use the AND logical operator to fix the problem (e.g. \"a < b AND b < c\").  If chaining is really intended, parentheses will disable this warning (e.g. \"(a < b) < c\".)"
 msgstr ""
 
 #: src/language/expressions/parse.c:744
-msgid ""
-"The exponentiation operator (\"**\") is left-associative, even though right-"
-"associative semantics are more useful.  That is, \"a**b**c\" equals \"(a**b)"
-"**c\", not as \"a**(b**c)\".  To disable this warning, insert parentheses."
+msgid "The exponentiation operator (\"**\") is left-associative, even though right-associative semantics are more useful.  That is, \"a**b**c\" equals \"(a**b)**c\", not as \"a**(b**c)\".  To disable this warning, insert parentheses."
 msgstr ""
 
 #: src/language/expressions/parse.c:809
 #, c-format
 msgid "Unknown system variable %s."
-msgstr "Onbekende systeem variabele %s."
+msgstr "Onbekende systeemvariabele %s."
 
 #: src/language/expressions/parse.c:857
 #, c-format
@@ -3460,12 +3090,8 @@ msgstr "%s vereist tenminste %d geldige argumenten in lijst."
 
 #: src/language/expressions/parse.c:1110
 #, c-format
-msgid ""
-"With %s, using minimum valid argument count of %d does not make sense when "
-"passing only %d arguments in list."
-msgstr ""
-"Met %s, heeft het gebruik van de minimum geldige argumenttelling van %d geen "
-"zin wanneer een lijst van slechts %d wordt doorgegeven. "
+msgid "With %s, using minimum valid argument count of %d does not make sense when passing only %d arguments in list."
+msgstr "Met %s, heeft het gebruik van de minimum geldige argumenttelling van %d geen zin wanneer een lijst van slechts %d wordt doorgegeven."
 
 #: src/language/expressions/parse.c:1164
 #, c-format
@@ -3474,7 +3100,7 @@ msgstr "Type ongelijk bij aanroep %s als "
 
 #: src/language/expressions/parse.c:1169
 msgid "Function invocation "
-msgstr "Functie aanroep "
+msgstr "Functieaanroep "
 
 #: src/language/expressions/parse.c:1171
 msgid " does not match any known function.  Candidates are:"
@@ -3507,7 +3133,7 @@ msgstr "hash tabel:"
 
 #: src/libpspp/tmpfile.c:55
 msgid "failed to create temporary file"
-msgstr "aanmaken van een tijdelijk bestand is mislukt"
+msgstr "aanmaken van tijdelijk bestand is mislukt"
 
 #: src/libpspp/tmpfile.c:96
 msgid "seeking in temporary file"
@@ -3519,7 +3145,7 @@ msgstr "lezen tijdelijk bestand"
 
 #: src/libpspp/tmpfile.c:117
 msgid "unexpected end of file reading temporary file"
-msgstr "onverwacht einde bestand bij het lezen van tijdelijk bestand"
+msgstr "onverwacht einde-bestand bij het lezen van tijdelijk bestand"
 
 #: src/libpspp/tmpfile.c:136
 msgid "writing to temporary file"
@@ -3531,7 +3157,7 @@ msgstr ""
 
 #: src/math/percentiles.c:36
 msgid "Weighted Average"
-msgstr "Gewogen Gemiddelde"
+msgstr "Gewogengemiddelde"
 
 #: src/math/percentiles.c:37
 msgid "Rounded"
@@ -3539,17 +3165,17 @@ msgstr "Afgerond"
 
 #: src/math/percentiles.c:38
 msgid "Empirical"
-msgstr ""
+msgstr "Empirisch"
 
 #: src/math/percentiles.c:39
 msgid "Empirical with averaging"
-msgstr ""
+msgstr "Empirisch met gemiddelde"
 
 #: src/output/charts/plot-hist.c:138
 msgid "HISTOGRAM"
-msgstr ""
+msgstr "HISTOGRAM"
 
-#: src/output/charts/plot-hist.c:140
+#: src/output/charts/plot-hist.c:140 src/language/stats/frequencies.q:1052
 msgid "Frequency"
 msgstr "Frequenties"
 
@@ -3565,7 +3191,7 @@ msgstr "eerste regel moet zijn StartFontMetrics"
 #: src/output/afm.c:266
 #, c-format
 msgid "unsupported MappingScheme %d"
-msgstr "niet ondersteunt MappingSchema %d"
+msgstr "niet ondersteund MappingSchema %d"
 
 #: src/output/afm.c:287
 msgid "required FontName is missing"
@@ -3582,15 +3208,15 @@ msgstr "referentie naar onbekend karakter \"%s\""
 
 #: src/output/afm.c:593
 msgid "expected end of file"
-msgstr "einde bestand verwacht"
+msgstr "einde-bestand verwacht"
 
 #: src/output/afm.c:605
 msgid "syntax error expecting end of line"
-msgstr "syntax fout einde regel verwacht"
+msgstr "syntaxfout regeleinde verwacht"
 
 #: src/output/afm.c:623 src/output/afm.c:660
 msgid "number out of valid range"
-msgstr "nummer buiten geldige range"
+msgstr "nummer buiten geldig bereik"
 
 #: src/output/afm.c:625 src/output/afm.c:662
 msgid "invalid numeric syntax"
@@ -3598,43 +3224,36 @@ msgstr "ongeldige numerieke syntax"
 
 #: src/output/afm.c:641
 msgid "syntax error expecting integer"
-msgstr "syntax fout integer verwacht"
+msgstr "syntaxfout integer verwacht"
 
 #: src/output/afm.c:679
 msgid "syntax error expecting number"
-msgstr "syntax fout nummer verwacht"
+msgstr "syntaxfout nummer verwacht"
 
 #: src/output/afm.c:692
 msgid "syntax error in hex constant"
-msgstr "syntax fout in hex constante"
+msgstr "syntaxfout in hexadecimale constante"
 
 #: src/output/afm.c:707
 msgid "syntax error expecting hex constant"
-msgstr "syntax fout hex constante verwacht"
+msgstr "syntaxfout hexadecimale constante verwacht"
 
 #: src/output/afm.c:745
 msgid "unexpected end of line"
-msgstr "onverwacht regel einde"
+msgstr "onverwacht regeleinde"
 
 #: src/output/afm.c:795
 msgid "unexpected end of line expecting string"
-msgstr "onverwacht regeleinde string verwacht"
+msgstr "onverwacht regeleinde, tekenreeks verwacht"
 
 #: src/output/ascii.c:251
 #, c-format
-msgid ""
-"ascii: page excluding margins and headers must be at least 59 characters "
-"wide by 15 lines long, but as configured is only %d characters by %d lines"
-msgstr ""
-"ascii: pagina exclusief marges en koppen moet tenminste 59 karakters breed "
-"en 15 regels lang zijn, maar geconfigureerd is slechts %d karakters bij %d "
-"regels"
+msgid "ascii: page excluding margins and headers must be at least 59 characters wide by 15 lines long, but as configured is only %d characters by %d lines"
+msgstr "ascii: pagina exclusief marges en koppen moet tenminste 59 karakters breed en 15 regels lang zijn, maar geconfigureerd is slechts %d karakters bij %d regels"
 
 #: src/output/ascii.c:329
 #, c-format
-msgid ""
-"ascii: bad index value for `box' key: syntax is box[INDEX], 0 <= INDEX < %d "
-"decimal, with INDEX expressed in base 4"
+msgid "ascii: bad index value for `box' key: syntax is box[INDEX], 0 <= INDEX < %d decimal, with INDEX expressed in base 4"
 msgstr ""
 
 #: src/output/ascii.c:336
@@ -3649,7 +3268,7 @@ msgstr "ascii: onbekende parameter `%s'"
 
 #: src/output/ascii.c:360
 msgid "ascii: only screen devices may have `auto' length or width"
-msgstr "ascii: alleen scherm apparaten mogen 'auto' lengte of breedte hebben"
+msgstr "ascii: alleen schermapparaten mogen 'auto' lengte of breedte hebben"
 
 #: src/output/ascii.c:374
 #, c-format
@@ -3677,7 +3296,7 @@ msgstr "`chart-files' waarde moet `#' bevatten"
 #: src/output/ascii.c:524
 #, c-format
 msgid "ascii: opening output file \"%s\""
-msgstr "ascii: openen uitvoer bestand \"%s\""
+msgstr "ascii: openen uitvoerbestand \"%s\""
 
 #: src/output/ascii.c:587
 #, c-format
@@ -3692,12 +3311,12 @@ msgstr "%s - Pagina %d"
 #: src/output/ascii.c:861
 #, c-format
 msgid "ascii: closing output file \"%s\""
-msgstr "ascii: sluiten uitvoer bestand \"%s\""
+msgstr "ascii: sluiten uitvoerbestand \"%s\""
 
 #: src/output/html.c:71
 #, c-format
 msgid "opening HTML output file: %s"
-msgstr "openen HTML uitvoer bestand: %s"
+msgstr "openen HTML uitvoerbestand: %s"
 
 #: src/output/html.c:82
 msgid "PSPP Output"
@@ -3706,7 +3325,7 @@ msgstr "PSPP Uitvoer"
 #: src/output/html.c:170
 #, c-format
 msgid "unknown configuration parameter `%s' for HTML device driver"
-msgstr "onbekende configuratie parameter '%s' voor HTML device driver"
+msgstr "onbekende configuratieparameter '%s' voor HTML apparaat-stuurprogramma"
 
 #: src/output/journal.c:69
 #, c-format
@@ -3721,22 +3340,20 @@ msgstr "fout bij aanmaken \"%s\""
 #: src/output/output.c:168
 #, c-format
 msgid "unknown output driver `%s'"
-msgstr "onbekende uitvoer driver %s"
+msgstr "onbekend uitvoerstuurprogramma %s"
 
 #: src/output/output.c:170
 #, c-format
 msgid "output driver `%s' referenced but never defined"
-msgstr "uitvoer driver '%s' gerefereerd maar nooit gedefinieerd"
+msgstr "uitvoerstuurprogramma '%s' gerefereerd maar nooit gedefinieerd"
 
 #: src/output/output.c:261
 msgid "using default output driver configuration"
-msgstr "gebruik default uitvoer driver configuratie"
+msgstr "gebruik verstek uitvoerstuurprogramma-configuratie"
 
 #: src/output/output.c:290
 msgid "cannot find output initialization file (use `-vv' to view search path)"
-msgstr ""
-"kan uitvoer initialisatie bestand niet vinden (gebruik -vv om zoekpad te "
-"zien)"
+msgstr "kan uitvoer-initialisatiebestand niet vinden (gebruik -vv om zoekpad te zien)"
 
 #: src/output/output.c:298
 #, c-format
@@ -3750,7 +3367,7 @@ msgstr "lezen \"%s\""
 
 #: src/output/output.c:332 src/ui/gui/message-dialog.c:99
 msgid "syntax error"
-msgstr "syntax fout"
+msgstr "syntaxfout"
 
 #: src/output/output.c:341
 #, c-format
@@ -3759,11 +3376,11 @@ msgstr "fout bij sluiten \"%s\""
 
 #: src/output/output.c:349
 msgid "no active output drivers"
-msgstr "geen actieve uitvoer drivers"
+msgstr "geen actieve uitvoerstuurprogramma's"
 
 #: src/output/output.c:352
 msgid "error reading device definition file"
-msgstr "fout tijdens lezen device definitie bestand"
+msgstr "fout tijdens lezen apparaat-definitiebestand"
 
 #: src/output/output.c:470
 #, c-format
@@ -3771,40 +3388,38 @@ msgid ""
 "Driver classes:\n"
 "\t"
 msgstr ""
+"Stuurprogramma-klassen:\n"
+"\t"
 
 #: src/output/output.c:502
 #, c-format
 msgid "syntax error parsing options for \"%s\" driver"
-msgstr "syntax fout bij het ontleden van opties voor \"%s\" driver"
+msgstr "syntaxfout bij het ontleden van opties voor \"%s\" stuurprogramma"
 
 #: src/output/output.c:518
 #, c-format
-msgid ""
-"reached end of options inside quoted string parsing options for \"%s\" driver"
-msgstr ""
-"einde opties bereikt binnen geciteerde string tijdens ontleden van opties "
-"voor \"%s\" driver"
+msgid "reached end of options inside quoted string parsing options for \"%s\" driver"
+msgstr "einde opties bereikt binnen geciteerde tekenreeks tijdens ontleden van opties voor \"%s\" stuurprogramma"
 
 #: src/output/output.c:588
 #, c-format
 msgid "syntax error in string constant parsing options for \"%s\" driver"
-msgstr ""
-"syntax fout in string constante tijdens ontleden opties voor \"%s\" driver"
+msgstr "syntaxfout in tekenreeksconstante tijdens ontleden opties voor \"%s\" stuurprogramma"
 
 #: src/output/output.c:636
 #, c-format
 msgid "syntax error expecting `=' parsing options for driver \"%s\""
-msgstr "syntax fout verwacht `=' tijdens ontleden opties voor driver \"%s\""
+msgstr "syntaxfout verwacht `=' tijdens ontleden opties voor stuurprogramma \"%s\""
 
 #: src/output/output.c:687
 #, c-format
 msgid "unknown output driver class `%.*s'"
-msgstr "onbekende uitvoer driver class `%.*s'"
+msgstr "onbekende uitvoerstuurprogramma-klasse `%.*s'"
 
 #: src/output/output.c:702
 #, c-format
 msgid "unknown device type `%.*s'"
-msgstr "onbekend apparaat type `%.*s'"
+msgstr "onbekend apparaattype `%.*s'"
 
 #: src/output/output.c:719
 #, c-format
@@ -3813,7 +3428,7 @@ msgstr ""
 
 #: src/output/output.c:765
 msgid "driver definition line missing driver name or class name"
-msgstr "driver definitie regel mist driver naam of class naam"
+msgstr "stuurprogramma definitieregel mist stuurprogramma- of klasse-naam"
 
 #: src/output/output.c:868
 #, c-format
@@ -3843,41 +3458,32 @@ msgstr "papier grootte bestand \"%s\" geeft geen papier grootte aan"
 #: src/output/output.c:1066
 #, c-format
 msgid "syntax error in paper size `%s'"
-msgstr "syntax fout in papier grootte '%s' "
+msgstr "syntaxfout in papier grootte '%s' "
 
 #: src/output/postscript.c:158
 #, c-format
 msgid "opening PostScript output file \"%s\""
-msgstr "Openen PostScript uitvoer bestand \"%s\""
+msgstr "Openen PostScript-uitvoerbestand \"%s\""
 
 #: src/output/postscript.c:196
 #, c-format
-msgid ""
-"The defined PostScript page is not long enough to hold margins and headers, "
-"plus least 15 lines of the default fonts.  In fact, there's only room for %d "
-"lines of each font at the default size of %d.%03d points."
-msgstr ""
-"De gedefinieerde PostScript pagina is niet lang genoeg om marges en koppen, "
-"plus tenminste 15 regels van het default font te bevatten.  In feite is er "
-"slechts plaats voor %d regels van elk font bij de default grootte van %d.%"
-"03d punten."
+msgid "The defined PostScript page is not long enough to hold margins and headers, plus least 15 lines of the default fonts.  In fact, there's only room for %d lines of each font at the default size of %d.%03d points."
+msgstr "De gedefinieerde PostScript-pagina is niet lang genoeg om marges en koppen, plus tenminste 15 regels van het verstek font te bevatten.  In feite is er slechts plaats voor %d regels van elk font bij de verstek grootte van %d.%03d punten."
 
 #: src/output/postscript.c:246
 #, c-format
 msgid "closing PostScript output file \"%s\""
-msgstr "sluiten PostScript uitvoer bestand \"%s\""
+msgstr "sluiten PostScript-uitvoerbestand \"%s\""
 
 #: src/output/postscript.c:309
 #, c-format
 msgid "unknown configuration parameter `%s' for PostScript device driver"
-msgstr "onbekende configuratie parameter `%s' voor PostScript device driver"
+msgstr "onbekende configuratieparameter `%s' voor PostScript-apparaatstuurprogramma"
 
 #: src/output/postscript.c:325
 #, c-format
-msgid ""
-"unknown orientation `%s' (valid orientations are `portrait' and `landscape')"
-msgstr ""
-"onbekende oriëntatie '%s' (geldige oriëntaties zijn 'portrait'en 'landscape')"
+msgid "unknown orientation `%s' (valid orientations are `portrait' and `landscape')"
+msgstr "onbekende oriëntatie '%s' (geldige oriëntaties zijn 'portrait' en 'landscape')"
 
 #: src/output/postscript.c:337
 #, c-format
@@ -3892,14 +3498,12 @@ msgstr "positieve integer waarde vereist voor '%s'"
 #: src/output/postscript.c:355
 #, c-format
 msgid "default font size must be at least 1 point (value of 1000 for key `%s')"
-msgstr ""
-"default font grootte moet tenminste 1 punt zijn (waarde 1000 voor sleutel '%"
-"s')"
+msgstr "verstek fontgrootte moet tenminste 1 punt zijn (waarde 1000 voor sleutel '%s')"
 
 #: src/output/postscript.c:1176
 #, c-format
 msgid "\"%s\": bad font specification"
-msgstr "\"%s\": slechte font specificatie"
+msgstr "\"%s\": slechte fontspecificatie"
 
 #: src/output/postscript.c:1184
 #, c-format
@@ -3919,21 +3523,21 @@ msgstr "kon codering \"%s\" niet vinden"
 #: src/output/postscript.c:1307
 #, c-format
 msgid "cannot open font file \"%s\""
-msgstr "kan font bestand \"%s\" niet openen"
+msgstr "kan fontbestand \"%s\" niet openen"
 
 #: src/output/postscript.c:1348
 #, c-format
 msgid "reading font file \"%s\""
-msgstr "lezen font bestand \"%s\""
+msgstr "lezen fontbestand \"%s\""
 
 #: src/output/postscript.c:1370
 #, c-format
 msgid "cannot open font encoding file \"%s\""
-msgstr "kan font codering bestand \"%s\" niet openen"
+msgstr "kan fontcodering-bestand \"%s\" niet openen"
 
 #: src/output/postscript.c:1399
 msgid "invalid numeric format"
-msgstr "ongeldig numeriek formaat"
+msgstr "ongeldig numeriek-format"
 
 #: src/output/postscript.c:1421
 #, c-format
@@ -3947,8 +3551,7 @@ msgstr ""
 
 #: src/output/table.c:308
 #, c-format
-msgid ""
-"bad box: (%d+%d=%d,%d+%d=%d)-(%d+%d=%d,%d+%d=%d) in table size (%d,%d)\n"
+msgid "bad box: (%d+%d=%d,%d+%d=%d)-(%d+%d=%d,%d+%d=%d) in table size (%d,%d)\n"
 msgstr ""
 
 #: src/output/chart.c:154
@@ -3957,72 +3560,64 @@ msgid "creating \"%s\""
 msgstr "aanmaken \"%s\""
 
 #: src/ui/source-init-opts.c:42
-msgid ""
-"set to `compatible' if you want output calculated from broken algorithms"
-msgstr ""
-"zet op 'compatible' als je uitvoer wilt die door 'broken algorithms' wordt "
-"berekend"
+msgid "set to `compatible' if you want output calculated from broken algorithms"
+msgstr "zet op 'compatible' als u wilt dat de output door defecte algoritmes wordt berekend "
 
 #: src/ui/source-init-opts.c:43
 msgid "Append DIR to include path"
-msgstr "Voeg DIR toe aan include pad"
+msgstr ""
 
 #: src/ui/source-init-opts.c:44
 msgid "Clear include path"
-msgstr "Maak include pad leeg"
+msgstr ""
 
 #: src/ui/source-init-opts.c:45
 msgid "Disable execution of .pspp/rc at startup"
-msgstr "Schakel uitvoeren van .pspp/rc bij het opstarten uit"
+msgstr "Schakel executie van .pspp/rc tijdens opstarten uit"
 
 #: src/ui/source-init-opts.c:46
 msgid "Set configuration directory to DIR"
-msgstr "Zet configuratie directory op DIR"
+msgstr "Zet configuratie folder op DIR"
 
 #: src/ui/source-init-opts.c:47
 msgid "Don't allow some unsafe operations"
-msgstr "Sta sommige onveilige operaties niet toe"
+msgstr "Sta geen onveilige operaties toe"
 
 #: src/ui/source-init-opts.c:48
 msgid "Set to `compatible' if you want only to accept SPSS compatible syntax"
-msgstr ""
-"Zet op 'compatible' als je alleen SPSS compatible syntax wilt accepteren"
+msgstr "Zet op 'compatible' als u alleen SPSS compatibele syntax wilt accepteren"
 
 #: src/ui/source-init-opts.c:83
 msgid "Algorithm must be either \"compatible\" or \"enhanced\"."
-msgstr "Algoritme moet zijn \"compatible\" of \"enhanced\"."
+msgstr "Algoritme moet of \"compatible\" of \"enhanced\" zijn."
 
 #: src/ui/source-init-opts.c:124
 msgid "Syntax must be either \"compatible\" or \"enhanced\"."
-msgstr "Syntax moet zijn \"compatible\" of \"enhanced\"."
+msgstr "Syntax moet of \"compatible\" of \"enhanced\" zijn."
 
 #: src/ui/terminal/main.c:115
 msgid "PSPP --- A program for statistical analysis"
-msgstr "PSPP -- Een programma voor statistische analyse"
+msgstr "PSPP --- Een programma voor statistische analyse"
 
 #: src/ui/terminal/main.c:116
 msgid "FILE1, FILE2 ... FILEn"
-msgstr ""
+msgstr "BESTAND1, BESTAND2 ... BESTANDn"
 
 #: src/ui/terminal/main.c:119 src/ui/terminal/terminal-opts.c:177
 msgid "Options affecting input and output locations:"
-msgstr "Opties die invoer en uitvoer locaties beinvloeden:"
+msgstr ""
 
 #: src/ui/terminal/main.c:122 src/ui/terminal/terminal-opts.c:178
 msgid "Diagnostic options:"
-msgstr "Diagnose opties:"
+msgstr "Diagnostische opties:"
 
 #: src/ui/terminal/main.c:125 src/ui/gui/main.c:177
 msgid "Options affecting syntax and behavior:"
-msgstr "Opties die de syntax en het gedrag beinvloeden:"
+msgstr "Opties die syntax en gedrag beïnvloeden:"
 
 #: src/ui/terminal/main.c:156
-msgid ""
-"Stopping syntax file processing here to avoid a cascade of dependent command "
-"failures."
-msgstr ""
-"Stop syntax bestand uitvoering hier om een cascade van afhankelijke opdracht "
-"fouten te voorkomen."
+msgid "Stopping syntax file processing here to avoid a cascade of dependent command failures."
+msgstr "Stop syntaxbestand uitvoering hier om een cascade van afhankelijke opdrachtfouten te voorkomen."
 
 #: src/ui/terminal/msg-ui.c:67
 #, c-format
@@ -4031,17 +3626,17 @@ msgstr "Kan %s (%s) niet openen. Schrijf fouten naar stdout inplaats.\n"
 
 #: src/ui/terminal/msg-ui.c:94
 msgid "Terminating execution of syntax file due to error."
-msgstr "Breek uitvoering van syntax bestand af vanwege fout."
+msgstr "Breek uitvoering van syntaxbestand af vanwege fout."
 
 #: src/ui/terminal/msg-ui.c:96
 #, c-format
 msgid "Errors (%d) exceeds limit (%d)."
-msgstr "Fouten (%d) overschrijdt limiet (%d)."
+msgstr "Fouten (%d) overschrijden limiet (%d)."
 
 #: src/ui/terminal/msg-ui.c:99
 #, c-format
 msgid "Warnings (%d) exceed limit (%d)."
-msgstr "Waarschuwings (%d) overschrijdt limiet (%d)."
+msgstr "Waarschuwingen (%d) overschrijden limiet (%d)."
 
 #: src/ui/terminal/msg-ui.c:150
 msgid "error"
@@ -4058,19 +3653,19 @@ msgstr "kon definitie voor terminal '%s' niet benaderen"
 
 #: src/ui/terminal/terminal-opts.c:41
 msgid "Increase diagnostic verbosity level"
-msgstr "Verhoog diagnose zichtbaarheids niveau"
+msgstr "Verhoog diagnostische breedsprakigheid niveau"
 
 #: src/ui/terminal/terminal-opts.c:68
 msgid "Send error messages to FILE (appended)"
-msgstr "Stuur fout meldingen naar FILE (aanvullend)"
+msgstr "Zend foutmeldingen naar BESTAND (toevoegen)"
 
 #: src/ui/terminal/terminal-opts.c:71
 msgid "Select output driver DEVICE and disable defaults"
-msgstr "Selecteer uitvoer driver DEVICE en schakel defaults uit"
+msgstr ""
 
 #: src/ui/terminal/terminal-opts.c:74
 msgid "Print a list of known driver classes, then exit"
-msgstr "Print een lijst van bekende driver classes en eindig daarna"
+msgstr ""
 
 #: src/ui/terminal/terminal-opts.c:76
 msgid "Start an interactive session"
@@ -4078,74 +3673,76 @@ msgstr "Start een interactieve sessie"
 
 #: src/ui/gui/about.c:64
 msgid "A program for the analysis of sampled data"
-msgstr ""
+msgstr "Een programma voor de analyse van bemonsterde gegevens."
 
 #. TRANSLATORS: Use this string to list the people who have helped with
 #. translation to your language.
 #: src/ui/gui/about.c:74
 msgid "translator-credits"
-msgstr ""
+msgstr "vertaler-credits"
 
-#: src/ui/gui/checkbox-treeview.c:92
+#: src/ui/gui/checkbox-treeview.c:92 src/language/stats/crosstabs.q:1234
+#: src/language/stats/crosstabs.q:1261 src/language/stats/crosstabs.q:1285
+#: src/language/stats/crosstabs.q:1309 src/language/stats/examine.q:1753
 msgid "Statistic"
-msgstr ""
+msgstr "Statistiek"
 
 #: src/ui/gui/comments-dialog.c:58
 #, c-format
 msgid "Column Number: %d"
-msgstr "Kolom Nummer: %d"
+msgstr "Kolomnummer: %d"
 
 #: src/ui/gui/crosstabs-dialog.c:40
 msgid "Chisq"
-msgstr ""
+msgstr "Chisq"
 
-#: src/ui/gui/crosstabs-dialog.c:41
+#: src/ui/gui/crosstabs-dialog.c:41 src/language/stats/crosstabs.q:1842
 msgid "Phi"
-msgstr ""
+msgstr "Phi"
 
 #: src/ui/gui/crosstabs-dialog.c:42
 msgid "CC"
-msgstr ""
+msgstr "CC"
 
-#: src/ui/gui/crosstabs-dialog.c:43
+#: src/ui/gui/crosstabs-dialog.c:43 src/language/stats/crosstabs.q:1980
 msgid "Lambda"
-msgstr ""
+msgstr "Lambda"
 
 #: src/ui/gui/crosstabs-dialog.c:44
 msgid "UC"
-msgstr ""
+msgstr "UC"
 
 #: src/ui/gui/crosstabs-dialog.c:45
 msgid "BTau"
-msgstr ""
+msgstr "BTau"
 
 #: src/ui/gui/crosstabs-dialog.c:46
 msgid "CTau"
-msgstr ""
+msgstr "CTau"
 
 #: src/ui/gui/crosstabs-dialog.c:47
 msgid "Risk"
 msgstr ""
 
-#: src/ui/gui/crosstabs-dialog.c:48
+#: src/ui/gui/crosstabs-dialog.c:48 src/language/stats/crosstabs.q:1847
 msgid "Gamma"
-msgstr ""
+msgstr "Gamma"
 
 #: src/ui/gui/crosstabs-dialog.c:49
 msgid "D"
-msgstr ""
+msgstr "D"
 
-#: src/ui/gui/crosstabs-dialog.c:50
+#: src/ui/gui/crosstabs-dialog.c:50 src/language/stats/crosstabs.q:1850
 msgid "Kappa"
-msgstr ""
+msgstr "Kappa"
 
-#: src/ui/gui/crosstabs-dialog.c:51
+#: src/ui/gui/crosstabs-dialog.c:51 src/language/stats/crosstabs.q:1984
 msgid "Eta"
-msgstr ""
+msgstr "Eta"
 
 #: src/ui/gui/crosstabs-dialog.c:52
 msgid "Corr"
-msgstr ""
+msgstr "Corr"
 
 #: src/ui/gui/crosstabs-dialog.c:53 src/ui/gui/crosstabs-dialog.c:64
 #: src/ui/gui/crosstabs-dialog.c:99 src/ui/gui/crosstabs-dialog.c:107
@@ -4184,16 +3781,16 @@ msgstr ""
 
 #: src/ui/gui/descriptives-dialog.c:40 src/ui/gui/frequencies-dialog.c:41
 msgid "Standard deviation"
-msgstr "Standaard deviatie"
+msgstr "Standaarddeviatie"
 
 #: src/ui/gui/descriptives-dialog.c:45
 msgid "Standard error"
-msgstr "Standaard fout"
+msgstr "Standaardfout"
 
 #: src/ui/gui/find-dialog.c:652
 #, c-format
 msgid "Bad regular expression: %s"
-msgstr "Foutieve regulaire expressie: %s"
+msgstr "Onjuiste regulaire expressie: %s"
 
 #: src/ui/gui/frequencies-dialog.c:44
 msgid "Standard error of the mean"
@@ -4203,17 +3800,18 @@ msgstr ""
 msgid "Standard error of the skewness"
 msgstr ""
 
-#: src/ui/gui/frequencies-dialog.c:49
+#: src/ui/gui/frequencies-dialog.c:49 src/language/stats/frequencies.q:126
 msgid "Mode"
-msgstr ""
+msgstr "Modus"
 
 #: src/ui/gui/frequencies-dialog.c:51
 msgid "Standard error of the kurtosis"
 msgstr ""
 
-#: src/ui/gui/frequencies-dialog.c:52
+#: src/ui/gui/frequencies-dialog.c:52 src/language/stats/examine.q:1584
+#: src/language/stats/frequencies.q:125
 msgid "Median"
-msgstr ""
+msgstr "Mediaan"
 
 #: src/ui/gui/helper.c:197
 msgid "Sorry. The help system hasn't yet been implemented."
@@ -4238,7 +3836,7 @@ msgstr "Diverse opties:"
 
 #: src/ui/gui/message-dialog.c:103
 msgid "data file error"
-msgstr "data bestand fout"
+msgstr "gegevensbestand fout"
 
 #: src/ui/gui/message-dialog.c:108
 msgid "PSPP error"
@@ -4250,7 +3848,7 @@ msgstr "syntax waarschuwing"
 
 #: src/ui/gui/message-dialog.c:120
 msgid "data file warning"
-msgstr "data bestand waarschuwing"
+msgstr "gegevensbestand waarschuwing"
 
 #: src/ui/gui/message-dialog.c:125
 msgid "PSPP warning"
@@ -4262,7 +3860,7 @@ msgstr "syntax informatie"
 
 #: src/ui/gui/message-dialog.c:138
 msgid "data file information"
-msgstr "data bestand informatie"
+msgstr "gegevensbestand-informatie"
 
 #: src/ui/gui/message-dialog.c:143
 msgid "PSPP information"
@@ -4285,16 +3883,16 @@ msgstr[1] "De PSPP processor rapporteert %d meldingen."
 #, c-format
 msgid "%d of these messages are displayed below."
 msgid_plural "%d of these messages are displayed below."
-msgstr[0] "%d van deze meldingen worden hier onder getoond."
-msgstr[1] "%d van deze meldingen worden hier onder getoond."
+msgstr[0] "%d van deze meldingen worden hieronder getoond."
+msgstr[1] "%d van deze meldingen worden hieronder getoond."
 
 #: src/ui/gui/missing-val-dialog.c:113 src/ui/gui/missing-val-dialog.c:167
 msgid "Incorrect value for variable type"
-msgstr "Foutieve waarde voor variabele type"
+msgstr "Onjuiste waarde voor variabelentype"
 
 #: src/ui/gui/missing-val-dialog.c:134 src/ui/gui/missing-val-dialog.c:143
 msgid "Incorrect range specification"
-msgstr "Foutieve range specificatie"
+msgstr "Onjuiste bereikspecificatie"
 
 #: src/ui/gui/oneway-anova-dialog.c:331
 #, c-format
@@ -4303,7 +3901,7 @@ msgstr ""
 
 #: src/ui/gui/psppire.c:247
 msgid "_Reset"
-msgstr "_Standaard"
+msgstr "_Herstel"
 
 #: src/ui/gui/psppire.c:248
 msgid "_Select"
@@ -4311,22 +3909,22 @@ msgstr "_Selecteer"
 
 #: src/ui/gui/psppire-data-editor.c:951
 msgid "Data View"
-msgstr "Data Weergave"
+msgstr "Gegevensweergave"
 
 #: src/ui/gui/psppire-data-editor.c:954
 msgid "Variable View"
-msgstr "Variabele Weergave"
+msgstr "Variabelenweergave"
 
 #: src/ui/gui/psppire-data-store.c:744
 msgid "var"
-msgstr ""
+msgstr "var"
 
 #: src/ui/gui/psppire-data-store.c:755 src/ui/gui/psppire-var-store.c:699
 #: src/ui/gui/psppire-var-store.c:709 src/ui/gui/psppire-var-store.c:719
 #: src/ui/gui/psppire-var-store.c:825
 #, c-format
 msgid "%d"
-msgstr ""
+msgstr "%d"
 
 #: src/ui/gui/psppire-data-window.c:213
 msgid "Transformations Pending"
@@ -4360,11 +3958,11 @@ msgstr "Weeg op %s"
 
 #: src/ui/gui/psppire-data-window.c:383 src/ui/gui/data-editor.glade:702
 msgid "Open"
-msgstr ""
+msgstr "Open"
 
 #: src/ui/gui/psppire-data-window.c:391 src/ui/gui/psppire-data-window.c:593
 msgid "System Files (*.sav)"
-msgstr "Systeem Bestand (*.sav)"
+msgstr "Systeembestand (*.sav)"
 
 #: src/ui/gui/psppire-data-window.c:397 src/ui/gui/psppire-data-window.c:599
 msgid "Portable Files (*.por) "
@@ -4382,11 +3980,11 @@ msgstr "Opslaan"
 
 #: src/ui/gui/psppire-data-window.c:613
 msgid "System File"
-msgstr "Systeem Bestand"
+msgstr "Systeembestand"
 
 #: src/ui/gui/psppire-data-window.c:618
 msgid "Portable File"
-msgstr "Overdraagbaar (Portable) Bestand"
+msgstr "Overdraagbaar Bestand"
 
 #: src/ui/gui/psppire-data-window.c:768
 msgid "Font Selection"
@@ -4417,23 +4015,23 @@ msgstr "Invoegen Case"
 
 #: src/ui/gui/psppire-data-window.c:1185
 msgid "Open a data file"
-msgstr "Open een data bestand"
+msgstr "Open een gegevensbestand"
 
 #: src/ui/gui/psppire-data-window.c:1203
 msgid "New data file"
-msgstr "Nieuw data bestand"
+msgstr "Nieuw gegevensbestand"
 
 #: src/ui/gui/psppire-data-window.c:1218
 msgid "Import text data file"
-msgstr "Importeer text data bestand"
+msgstr "Importeer tekstgegevensbestand"
 
 #: src/ui/gui/psppire-data-window.c:1234 src/ui/gui/psppire-data-window.c:1250
 msgid "Save data to file"
-msgstr "Data opslaan als bestand"
+msgstr "Gegevens opslaan als bestand"
 
 #: src/ui/gui/psppire-data-window.c:1288
 msgid "Show/hide value labels"
-msgstr "Show/verberg waarde labels"
+msgstr "Toon/verberg waardelabels"
 
 #: src/ui/gui/psppire-data-window.c:1308
 msgid "Delete the cases at the selected position(s)"
@@ -4453,7 +4051,7 @@ msgstr "Creëer een nieuwe case op de huidige positie"
 
 #: src/ui/gui/psppire-data-window.c:1375
 msgid "Jump to a Case in the Data Sheet"
-msgstr "Spring naar een Case in het Data Blad"
+msgstr "Spring naar een Case in het Gegevensblad"
 
 #: src/ui/gui/psppire-data-window.c:1391
 msgid "Weight cases by variable"
@@ -4497,7 +4095,7 @@ msgstr ""
 
 #: src/ui/gui/psppire-data-window.c:1534
 msgid "Commentary text for the data file"
-msgstr "Commentaar tekst voor het data bestand"
+msgstr "Commentaar tekst voor het gegevensbestand"
 
 #: src/ui/gui/psppire-data-window.c:1560
 msgid "Rank Cases"
@@ -4505,27 +4103,27 @@ msgstr "Rangschik Cases"
 
 #: src/ui/gui/psppire-data-window.c:1574
 msgid "Recode values into the same variables"
-msgstr "Hercodeer waardes in dezelfde Variabelen"
+msgstr "Hercodeer waardes in dezelfde variabelen"
 
 #: src/ui/gui/psppire-data-window.c:1588
 msgid "Recode values into different variables"
-msgstr "Hercodeer waardes in andere Variabelen"
+msgstr "Hercodeer waardes in andere variabelen"
 
 #: src/ui/gui/psppire-data-window.c:1602
 msgid "Jump to variable"
-msgstr "Spring naar Variabele"
+msgstr "Spring naar variabele"
 
 #: src/ui/gui/psppire-data-window.c:1615
 msgid "Calculate descriptive statistics (mean, variance, ...)"
-msgstr "Bereken descriptive statistieken (mean, variance, ...)"
+msgstr "Bereken descriptieve statistieken (mean, variance, ...)"
 
 #: src/ui/gui/psppire-data-window.c:1629
 msgid "Generate frequency statistics"
-msgstr "Genereer frequentie statistieken"
+msgstr "Genereer frequentiestatistieken"
 
 #: src/ui/gui/psppire-data-window.c:1643
 msgid "Generate crosstabulations"
-msgstr ""
+msgstr "Genereer kruistabellen"
 
 #: src/ui/gui/psppire-data-window.c:1658
 msgid "Examine Data by Factors"
@@ -4537,15 +4135,15 @@ msgstr ""
 
 #: src/ui/gui/psppire-data-window.c:1686 src/ui/gui/reliability.glade:7
 msgid "Reliability Analysis"
-msgstr ""
+msgstr "Betrouwbaarheids Analyses"
 
 #: src/ui/gui/psppire-data-window.c:1849
 msgid "Split the window vertically and horizontally"
-msgstr "Splits het venster verticaal en horizontaal"
+msgstr "Splits het scherm verticaal en horizontaal"
 
 #: src/ui/gui/psppire-data-window.c:1891
 msgid "Data Editor"
-msgstr ""
+msgstr "PSPP Gegevensbewerker"
 
 #: src/ui/gui/psppire-output-window.c:269
 msgid "Output Viewer"
@@ -4554,7 +4152,7 @@ msgstr "Uitvoer Viewer"
 #: src/ui/gui/psppire-syntax-window.c:265
 #, c-format
 msgid "Saved file \"%s\""
-msgstr "Opgeslagen bestand \"%s\""
+msgstr "Opslaan bestand \"%s\""
 
 #: src/ui/gui/psppire-syntax-window.c:284
 msgid "Save Syntax"
@@ -4563,29 +4161,29 @@ msgstr "Sla Syntax op"
 #: src/ui/gui/psppire-syntax-window.c:292
 #: src/ui/gui/psppire-syntax-window.c:379
 msgid "Syntax Files (*.sps) "
-msgstr "Syntax Bestand (*.sps)"
+msgstr "Syntaxbestand (*.sps)"
 
 #: src/ui/gui/psppire-syntax-window.c:371
 msgid "Open Syntax"
-msgstr ""
+msgstr "Open Syntax"
 
 #: src/ui/gui/psppire-syntax-window.c:551
 msgid "Syntax Editor"
-msgstr ""
+msgstr "Syntaxbewerker"
 
 #: src/ui/gui/psppire-syntax-window.c:565
 #, c-format
 msgid "Cannot load syntax file '%s'"
-msgstr "Kan syntax bestand \"%s\" niet laden"
+msgstr "Kan syntaxbestand '%s' niet laden"
 
 #: src/ui/gui/psppire-var-sheet.c:533 src/ui/gui/psppire-var-store.c:832
 msgid "Name"
 msgstr "Naam"
 
 #: src/ui/gui/psppire-var-sheet.c:534 src/ui/gui/psppire-var-store.c:833
-#: src/ui/gui/psppire.glade:2099
+#: src/ui/gui/psppire.glade:2099 src/language/stats/crosstabs.q:1310
 msgid "Type"
-msgstr ""
+msgstr "Type"
 
 #: src/ui/gui/psppire-var-sheet.c:535 src/ui/gui/psppire-var-store.c:834
 #: src/ui/gui/psppire.glade:2020
@@ -4601,6 +4199,8 @@ msgid "Values"
 msgstr "Waardes"
 
 #: src/ui/gui/psppire-var-sheet.c:539 src/ui/gui/psppire-var-store.c:838
+#: src/language/stats/crosstabs.q:844 src/language/stats/examine.q:1215
+#: src/language/stats/frequencies.q:1119 src/language/stats/frequencies.q:1401
 msgid "Missing"
 msgstr "Ontbrekend"
 
@@ -4639,25 +4239,21 @@ msgstr "Aangepast"
 #: src/ui/gui/psppire-window.c:97
 #, c-format
 msgid "%s %s PSPPIRE %s"
-msgstr ""
+msgstr "%s %s PSPPIRE %s"
 
 #: src/ui/gui/psppire-window.c:480
 #, c-format
 msgid "Save the changes to \"%s\" before closing?"
-msgstr "De veranderingen van \"%s\" opslaan voor afsluiten?"
+msgstr "Opslaan van de aanpassingen in \"%s\" voor het afsluiten?"
 
 #: src/ui/gui/psppire-window.c:487
 #, c-format
-msgid ""
-"If you don't save, changes from the last %ld seconds will be permanently "
-"lost."
-msgstr ""
-"Als je niet opslaat gaan de aanpassingen van de laatste %ld seconden "
-"definitief verloren."
+msgid "If you don't save, changes from the last %ld seconds will be permanently lost."
+msgstr "Als u niet opslaat zullen de aanpassingen van de laatste %ld seconden permanent verloren gaan."
 
 #: src/ui/gui/psppire-window.c:491
 msgid "Close _without saving"
-msgstr "Sluit _zonder opslaan"
+msgstr "%s zonder %s"
 
 #: src/ui/gui/recode-dialog.c:881
 msgid "Recode into Different Variables"
@@ -4685,19 +4281,19 @@ msgstr "Hercodeer in Zelfde Variabelen: Oude en Nieuwe Waardes "
 
 #: src/ui/gui/regression-dialog.c:41
 msgid "Coeff"
-msgstr ""
+msgstr "Coeff"
 
-#: src/ui/gui/regression-dialog.c:42
+#: src/ui/gui/regression-dialog.c:42 src/language/stats/regression.q:159
 msgid "R"
-msgstr ""
+msgstr "R"
 
 #: src/ui/gui/regression-dialog.c:43
 msgid "Anova"
-msgstr ""
+msgstr "Anova"
 
 #: src/ui/gui/regression-dialog.c:44
 msgid "Bcov"
-msgstr ""
+msgstr "Bcov"
 
 #: src/ui/gui/select-cases-dialog.c:82
 #, c-format
@@ -4726,12 +4322,8 @@ msgstr "Fout bij lezen \"%s\": %s"
 
 #: src/ui/gui/text-data-import-dialog.c:480
 #, c-format
-msgid ""
-"Failed to read \"%s\", because it contains a line over %d bytes long and "
-"therefore appears not to be a text file."
-msgstr ""
-"Lezen van \"%s\" mislukt omdat het een regel bevat die meer dan %d bytes "
-"lang is en daarom is het geen tekst bestand."
+msgid "Failed to read \"%s\", because it contains a line over %d bytes long and therefore appears not to be a text file."
+msgstr "Lezen van \"%s\" mislukt omdat het een regel bevat die meer dan %d bytes lang is en daarom is het geen tekstbestand."
 
 #: src/ui/gui/text-data-import-dialog.c:494
 #, c-format
@@ -4740,96 +4332,80 @@ msgstr "\"%s\" is leeg."
 
 #: src/ui/gui/text-data-import-dialog.c:539
 msgid "Import Delimited Text Data"
-msgstr "Importeer Delimited Text Data"
+msgstr "Importeer Gescheiden Tekstgegevens"
 
 #: src/ui/gui/text-data-import-dialog.c:590
 msgid "Importing Delimited Text Data"
-msgstr "Importeren Delimited Text Data"
+msgstr "Importeren Gescheiden Tekstgegevens"
 
 #: src/ui/gui/text-data-import-dialog.c:749
 msgid ""
-"This assistant will guide you through the process of importing data into "
-"PSPP from a text file with one line per case,  in which fields are separated "
-"by tabs, commas, or other delimiters.\n"
+"This assistant will guide you through the process of importing data into PSPP from a text file with one line per case,  in which fields are separated by tabs, commas, or other delimiters.\n"
 "\n"
-msgstr ""
-"De assistent zal je begeleiden door het proces van het importeren van data "
-"in PSPP van een tekst bestand met 1 regel per case, waarin velden zijn "
-"gescheiden door tabs, kommas of andere scheidingstekens.\n"
+msgstr "De assistent zal je begeleiden door het proces van het importeren van gegevens in PSPP van een tekstbestand met 1 regel per case, waarin velden zijn gescheiden door tabs, komma's of andere scheidingstekens.\n"
 
 #: src/ui/gui/text-data-import-dialog.c:755
 #, c-format
 msgid "The selected file contains %zu line of text.  "
 msgid_plural "The selected file contains %zu lines of text.  "
-msgstr[0] "Het geselecteerde bestand bevat %zu regel text.  "
-msgstr[1] "Het geselecteerde bestand bevat %zu regels text. "
+msgstr[0] "Het geselecteerde bestand bevat %zu regel tekst.  "
+msgstr[1] "Het geselecteerde bestand bevat %zu regels tekst. "
 
 #: src/ui/gui/text-data-import-dialog.c:763
 #, c-format
 msgid "The selected file contains approximately %lu line of text.  "
 msgid_plural "The selected file contains approximately %lu lines of text.  "
-msgstr[0] "Het geselecteerde bestand bevat ongeveer %lu regel text. "
-msgstr[1] "Het geselecteerde bestand bevat ongeveer %lu regels text. "
+msgstr[0] "Het geselecteerde bestand bevat ongeveer %lu regel tekst. "
+msgstr[1] "Het geselecteerde bestand bevat ongeveer %lu regels tekst. "
 
 #: src/ui/gui/text-data-import-dialog.c:769
 #, c-format
-msgid ""
-"Only the first %zu line of the file will be shown for preview purposes in "
-"the following screens.  "
-msgid_plural ""
-"Only the first %zu lines of the file will be shown for preview purposes in "
-"the following screens.  "
-msgstr[0] ""
-"Alleen de eerste %zu regel van het bestand worden getoond voor preview "
-"doeleinden in de volgende schermen."
-msgstr[1] ""
-"Alleen de eerste %zu regels van het bestand worden getoond voor preview "
-"doeleinden in de volgende schermen."
+msgid "Only the first %zu line of the file will be shown for preview purposes in the following screens.  "
+msgid_plural "Only the first %zu lines of the file will be shown for preview purposes in the following screens.  "
+msgstr[0] "Alleen de eerste %zu regel van het bestand worden getoond voor voorbeeld doeleinden in de volgende schermen.  "
+msgstr[1] "Alleen de eerste %zu regels van het bestand worden getoond voor voorbeeld doeleinden in de volgende schermen.  "
 
 #: src/ui/gui/text-data-import-dialog.c:776
 msgid "You may choose below how much of the file should actually be imported."
-msgstr ""
-"Hieronder kunt u kiezen hoeveel van het bestand daadwerkelijk geïmporteerd "
-"moet worden."
+msgstr "Hieronder kunt u kiezen hoeveel van het bestand daadwerkelijk geïmporteerd moet worden."
 
 #: src/ui/gui/text-data-import-dialog.c:1523
 #: src/ui/gui/text-data-import-dialog.c:1768
 msgid "This input line has too few separators to fill in this field."
-msgstr ""
-"Deze invoer regel heeft te weinig scheidingstekens om dit veld te vullen."
+msgstr "Deze invoerregel heeft te weinig scheidingstekens om dit veld te vullen."
 
 #: src/ui/gui/text-data-import-dialog.c:1759
 #, c-format
 msgid "Field content \"%.*s\" cannot be parsed in format %s."
-msgstr "Veld inhoud \"%.*s\" kan niet ontleed worden in formaat %s."
+msgstr "Veldinhoud \"%.*s\" kan niet ontleed worden in format %s."
 
 #: src/ui/gui/t-test-options.c:60
 #, c-format
 msgid "Confidence Interval: %2d %%"
-msgstr ""
+msgstr "Betrouwbaarheidsinterval: %2d %%"
 
 #: src/ui/gui/t-test-paired-samples.c:226
 msgid "Var 1"
-msgstr ""
+msgstr "Var 1"
 
 #: src/ui/gui/t-test-paired-samples.c:227
 msgid "Var 2"
-msgstr ""
+msgstr "Var 2"
 
 #: src/ui/gui/variable-info-dialog.c:76
 #, c-format
 msgid "Label: %s\n"
-msgstr ""
+msgstr "Label: %s\n"
 
 #: src/ui/gui/variable-info-dialog.c:83
 #, c-format
 msgid "Type: %s\n"
-msgstr ""
+msgstr "Type: %s\n"
 
 #: src/ui/gui/variable-info-dialog.c:87
 #, c-format
 msgid "Missing Values: %s\n"
-msgstr "Ontbrekende Waardes: %s\n"
+msgstr "Ontbrekende-Waardes: %s\n"
 
 #: src/ui/gui/variable-info-dialog.c:92
 #, c-format
@@ -4838,12 +4414,12 @@ msgstr "Meetniveau: %s\n"
 
 #: src/ui/gui/variable-info-dialog.c:107
 msgid "Value Labels:\n"
-msgstr "Waarde Labels:\n"
+msgstr "Waardelabels:\n"
 
 #: src/ui/gui/variable-info-dialog.c:117
 #, c-format
 msgid "%s %s\n"
-msgstr ""
+msgstr "%s %s\n"
 
 #: src/ui/gui/weight-cases-dialog.c:79 src/ui/gui/psppire.glade:47
 #: src/ui/gui/psppire.glade:130
@@ -4853,7 +4429,7 @@ msgstr "Weeg cases niet"
 #: src/ui/gui/weight-cases-dialog.c:85
 #, c-format
 msgid "Weight cases by %s"
-msgstr "Weeg cases by %s"
+msgstr "Weeg cases per %s"
 
 #: src/ui/gui/crosstabs.glade:50
 msgid "Rows"
@@ -4861,7 +4437,7 @@ msgstr "Rijen"
 
 #: src/ui/gui/crosstabs.glade:131 src/ui/gui/frequencies.glade:185
 msgid "Format..."
-msgstr "Formaat..."
+msgstr ""
 
 #: src/ui/gui/crosstabs.glade:138 src/ui/gui/examine.glade:247
 #: src/ui/gui/regression.glade:31
@@ -4890,11 +4466,11 @@ msgstr "Geen label"
 
 #: src/ui/gui/crosstabs.glade:295
 msgid "Suppress value labels"
-msgstr "Onderdruk waarde labels"
+msgstr "Onderdruk waardelabels"
 
 #: src/ui/gui/crosstabs.glade:311
 msgid "Labeling"
-msgstr ""
+msgstr "labellen"
 
 #: src/ui/gui/crosstabs.glade:378
 msgid "Cell Display"
@@ -4915,11 +4491,11 @@ msgstr "Sluit gehele case uit indien een geselecteerde variabele ontbreekt"
 
 #: src/ui/gui/descriptives-dialog.glade:194
 msgid "Include user-missing data in analysis"
-msgstr "Inclusief user-missing data in analyse"
+msgstr "Inclusief user-missing gegevens in analyse"
 
 #: src/ui/gui/descriptives-dialog.glade:207
 msgid "Save Z-scores of selected variables as new variables"
-msgstr "Sla Z_Scores van geselecteerde variabelen op als nieuwe variabelen"
+msgstr "Sla Z-Scores van geselecteerde variabelen op als nieuwe variabelen"
 
 #: src/ui/gui/descriptives-dialog.glade:223
 msgid "Options:"
@@ -4933,25 +4509,25 @@ msgstr "_Bestand"
 #: src/ui/gui/data-editor.glade:25 src/ui/gui/data-editor.glade:51
 #: src/ui/gui/syntax-editor.glade:32 src/ui/gui/syntax-editor.glade:62
 msgid "_Syntax"
-msgstr ""
+msgstr "_Syntax"
 
 #: src/ui/gui/data-editor.glade:32 src/ui/gui/data-editor.glade:58
 #: src/ui/gui/data-editor.glade:311 src/ui/gui/data-editor.glade:329
 #: src/ui/gui/syntax-editor.glade:41 src/ui/gui/syntax-editor.glade:71
 msgid "_Data"
-msgstr ""
+msgstr "_Gegevens"
 
 #: src/ui/gui/data-editor.glade:70
 msgid "_Import Delimited Text Data"
-msgstr "_Importeer Delimited Text Data"
+msgstr "_Importeer Gescheiden Tekstgegevens"
 
 #: src/ui/gui/data-editor.glade:103
 msgid "D_isplay Data File Information"
-msgstr "_Toon Data Bestand Informatie"
+msgstr "Toon Gegevensbestand _Informatie"
 
 #: src/ui/gui/data-editor.glade:112
 msgid "Working File"
-msgstr "Werk Bestand"
+msgstr "Werkbestand"
 
 #: src/ui/gui/data-editor.glade:119
 msgid "External File"
@@ -4959,7 +4535,7 @@ msgstr "Extern Bestand"
 
 #: src/ui/gui/data-editor.glade:135
 msgid "Recently Used Da_ta"
-msgstr "Recent Gebruikte Da_ta"
+msgstr "Recent Gebruikte Ge_gevens"
 
 #: src/ui/gui/data-editor.glade:142
 msgid "Recently Used _Files"
@@ -4968,7 +4544,7 @@ msgstr "Recent Gebruikte _Bestanden"
 #: src/ui/gui/data-editor.glade:166 src/ui/gui/output-viewer.glade:55
 #: src/ui/gui/syntax-editor.glade:118
 msgid "_Edit"
-msgstr ""
+msgstr "B_ewerk"
 
 #: src/ui/gui/data-editor.glade:182
 msgid "Insert Cases"
@@ -4984,11 +4560,11 @@ msgstr "V_erwijder Variabelen"
 
 #: src/ui/gui/data-editor.glade:239
 msgid "_Clear Cases"
-msgstr "_Verwijder Cases"
+msgstr "Verwijder _Cases"
 
 #: src/ui/gui/data-editor.glade:252
 msgid "gtk-find"
-msgstr ""
+msgstr "gtk-find"
 
 #: src/ui/gui/data-editor.glade:264
 msgid "_View"
@@ -5000,7 +4576,7 @@ msgstr "_Status Balk"
 
 #: src/ui/gui/data-editor.glade:284
 msgid "_Fonts"
-msgstr ""
+msgstr "_Fonts"
 
 #: src/ui/gui/data-editor.glade:291
 msgid "_Grid Lines"
@@ -5008,11 +4584,11 @@ msgstr "_Grid Lijnen"
 
 #: src/ui/gui/data-editor.glade:299
 msgid "Value _Labels"
-msgstr "Waarde _Labels"
+msgstr "Waarde_labels"
 
 #: src/ui/gui/data-editor.glade:318 src/ui/gui/data-editor.glade:613
 msgid "_Variables"
-msgstr "_Variabele"
+msgstr "_Variabelen"
 
 #: src/ui/gui/data-editor.glade:336
 msgid "_Sort Cases"
@@ -5056,7 +4632,7 @@ msgstr "Hercodeer in _Andere Variabelen"
 
 #: src/ui/gui/data-editor.glade:440
 msgid "_Run Pending Transforms"
-msgstr "_Run uitstaande Transformaties"
+msgstr "_uitvoeren uitstaande Transformaties"
 
 #: src/ui/gui/data-editor.glade:453
 msgid "_Analyze"
@@ -5072,7 +4648,7 @@ msgstr "_Frequenties"
 
 #: src/ui/gui/data-editor.glade:481 src/ui/gui/oneway.glade:179
 msgid "_Descriptives"
-msgstr ""
+msgstr "_Descriptieven"
 
 #: src/ui/gui/data-editor.glade:489
 msgid "_Explore"
@@ -5080,23 +4656,27 @@ msgstr "_Exploreer"
 
 #: src/ui/gui/data-editor.glade:497
 msgid "_Crosstabs"
-msgstr ""
+msgstr "_Kruistabellen"
 
 #: src/ui/gui/data-editor.glade:509
+#, fuzzy
 msgid "Compare _Means"
-msgstr "_Vergelijk Gemiddelde"
+msgstr "Vergelijk groepen."
 
 #: src/ui/gui/data-editor.glade:519
+#, fuzzy
 msgid "_One Sample T Test"
-msgstr ""
+msgstr "One-Sample Test"
 
 #: src/ui/gui/data-editor.glade:527
+#, fuzzy
 msgid "_Independent Samples T Test"
-msgstr ""
+msgstr "One-Sample Test"
 
 #: src/ui/gui/data-editor.glade:535
+#, fuzzy
 msgid "_Paired Samples T Test"
-msgstr ""
+msgstr "One-Sample Test"
 
 #: src/ui/gui/data-editor.glade:543
 msgid "One Way _ANOVA"
@@ -5104,23 +4684,24 @@ msgstr ""
 
 #: src/ui/gui/data-editor.glade:554
 msgid "Re_liability"
-msgstr ""
+msgstr "Betrouwbaarheid"
 
 #: src/ui/gui/data-editor.glade:562
 msgid "Linear _Regression"
-msgstr ""
+msgstr "Lineare _Regressie"
 
 #: src/ui/gui/data-editor.glade:569
+#, fuzzy
 msgid "_Non-Parametric Statistics"
-msgstr ""
+msgstr "Test Statistieken"
 
 #: src/ui/gui/data-editor.glade:579
 msgid "_Chi-Square"
-msgstr ""
+msgstr "_Chi-Square"
 
 #: src/ui/gui/data-editor.glade:587
 msgid "_Binomial"
-msgstr ""
+msgstr "_Binomiaal"
 
 #: src/ui/gui/data-editor.glade:603
 msgid "_Utilities"
@@ -5128,7 +4709,7 @@ msgstr "E_xtra"
 
 #: src/ui/gui/data-editor.glade:622
 msgid "Data File _Comments"
-msgstr "Data Bestand _Commentaren"
+msgstr "Gegevensbestand _Commentaren"
 
 #: src/ui/gui/data-editor.glade:633 src/ui/gui/output-viewer.glade:78
 #: src/ui/gui/syntax-editor.glade:209
@@ -5138,7 +4719,7 @@ msgstr "_Vensters"
 #: src/ui/gui/data-editor.glade:640 src/ui/gui/output-viewer.glade:88
 #: src/ui/gui/syntax-editor.glade:218
 msgid "_Minimize All Windows"
-msgstr "_Minimalizeer Alle Vensters"
+msgstr "_Minimaliseer Alle Vensters"
 
 #: src/ui/gui/data-editor.glade:647
 msgid "_Split"
@@ -5147,7 +4728,7 @@ msgstr "_Splits"
 #: src/ui/gui/data-editor.glade:658 src/ui/gui/output-viewer.glade:99
 #: src/ui/gui/syntax-editor.glade:229
 msgid "_Help"
-msgstr ""
+msgstr "_Help"
 
 #: src/ui/gui/data-editor.glade:665 src/ui/gui/output-viewer.glade:106
 #: src/ui/gui/syntax-editor.glade:237
@@ -5181,7 +4762,7 @@ msgstr "Variabelen"
 
 #: src/ui/gui/data-editor.glade:811
 msgid "Find"
-msgstr "Vind"
+msgstr "V_ind"
 
 #: src/ui/gui/data-editor.glade:863
 msgid "Split File"
@@ -5198,7 +4779,7 @@ msgstr "Selecteer Cases"
 #: src/ui/gui/data-editor.glade:906 src/ui/gui/var-sheet-dialogs.glade:401
 #: src/ui/gui/var-sheet-dialogs.glade:582
 msgid "Value Labels"
-msgstr "Waarde Labels"
+msgstr "Waardelabels"
 
 #: src/ui/gui/data-editor.glade:917
 msgid "Use Sets"
@@ -5206,52 +4787,53 @@ msgstr "Gebruik Sets"
 
 #: src/ui/gui/data-editor.glade:938
 msgid "Information Area"
-msgstr "Informatie Gebied"
+msgstr "Informatiegebied"
 
 #: src/ui/gui/data-editor.glade:957
 msgid "Processor Area"
-msgstr "Processor Gebied"
+msgstr "Processorgebied"
 
 #: src/ui/gui/data-editor.glade:982
 msgid "Case Counter Area"
-msgstr "Case Teller Gebied"
+msgstr "Case-Tellergebied"
 
 #: src/ui/gui/data-editor.glade:1007
 msgid "Filter Use Status Area"
-msgstr "Filter Gebruik Status Gebied"
+msgstr "Filtergebruik Statusgebied"
 
 #: src/ui/gui/data-editor.glade:1033
 msgid "Weight Status Area"
-msgstr "Weging Status Gebied"
+msgstr "Weging Statusgebied"
 
 #: src/ui/gui/data-editor.glade:1059
 msgid "Split File Status Area"
-msgstr "Splits Bestand Status Gebied"
+msgstr "Splitsbestand Statusgebied"
 
 #: src/ui/gui/examine.glade:49
 msgid "Label Cases by:"
-msgstr ""
+msgstr "Label Cases per:"
 
 #: src/ui/gui/examine.glade:100
 msgid "Factor List:"
-msgstr ""
+msgstr "Factor Lijst:"
 
 #: src/ui/gui/examine.glade:150
 msgid "Dependent List:"
-msgstr ""
+msgstr "Afhankelijkenlijst:"
 
 #: src/ui/gui/examine.glade:257 src/ui/gui/t-test.glade:69
 #: src/ui/gui/t-test.glade:629 src/ui/gui/t-test.glade:780
 msgid "Options..."
 msgstr "Opties..."
 
-#: src/ui/gui/examine.glade:310
+#: src/ui/gui/examine.glade:310 src/language/stats/examine.q:1750
+#: src/language/stats/oneway.q:408
 msgid "Descriptives"
-msgstr ""
+msgstr "Descriptieve"
 
 #: src/ui/gui/examine.glade:320
 msgid "Extremes"
-msgstr ""
+msgstr "Extremen"
 
 #: src/ui/gui/examine.glade:388
 msgid "Exclude cases listwise"
@@ -5268,7 +4850,7 @@ msgstr "Herhaal waardes"
 #: src/ui/gui/examine.glade:432 src/ui/gui/t-test.glade:460
 #: src/ui/gui/var-sheet-dialogs.glade:649
 msgid "Missing Values"
-msgstr "Ontbrekende Waardes"
+msgstr "Ontbrekende-Waardes"
 
 #: src/ui/gui/find.glade:80
 msgid "Variable:"
@@ -5281,7 +4863,7 @@ msgstr "Waarde:"
 
 #: src/ui/gui/find.glade:137
 msgid "Search value labels"
-msgstr "Zoek waarde labels"
+msgstr "Zoek waardelabels"
 
 #: src/ui/gui/find.glade:161
 msgid "Regular expression Match"
@@ -5289,7 +4871,7 @@ msgstr ""
 
 #: src/ui/gui/find.glade:172
 msgid "Search substrings"
-msgstr "Zoek substrings"
+msgstr "Zoek subtekenreeksen"
 
 #: src/ui/gui/find.glade:185
 msgid "Wrap around"
@@ -5306,7 +4888,7 @@ msgstr "Variabele(n):"
 
 #: src/ui/gui/frequencies.glade:168
 msgid "Display Frequency Table"
-msgstr "Toon Frequentie Tabel"
+msgstr "Toon Frequentietabel"
 
 #: src/ui/gui/frequencies.glade:264
 msgid "Ascending Order"
@@ -5341,16 +4923,12 @@ msgid "Messages Reported"
 msgstr "Meldingen Gerapporteerd"
 
 #: src/ui/gui/message-dialog.glade:47
-msgid ""
-"The PSPP processor reported # errors.  The first # and last # are shown "
-"below:"
-msgstr ""
-"De PSPP processor rapporteerde # fouten.  De eerste # en de laatste # worden "
-"hier onder getoond:"
+msgid "The PSPP processor reported # errors.  The first # and last # are shown below:"
+msgstr "De PSPP processor rapporteerde # fouten.  De eerste # en de laatste # worden hieronder getoond:"
 
 #: src/ui/gui/message-dialog.glade:101
 msgid "gtk-close"
-msgstr ""
+msgstr "gtk-sluit"
 
 #: src/ui/gui/psppire.glade:58
 msgid "Weight cases by"
@@ -5358,11 +4936,11 @@ msgstr "Weeg cases op"
 
 #: src/ui/gui/psppire.glade:83
 msgid "Frequency Variable"
-msgstr "Frequencie Variabele"
+msgstr "Frequentievariabele"
 
 #: src/ui/gui/psppire.glade:123
 msgid "Current Status: "
-msgstr "Huidige Status:"
+msgstr "Huidige Status: "
 
 #: src/ui/gui/psppire.glade:219
 msgid "Name Variable:"
@@ -5386,7 +4964,7 @@ msgstr "Groepen gebaseerd op:"
 
 #: src/ui/gui/psppire.glade:540
 msgid "Sort the file by grouping variables."
-msgstr "Sorteer bestand op groepering variabelen."
+msgstr "Sorteer bestand op groeperingsvariabelen."
 
 #: src/ui/gui/psppire.glade:552
 msgid "File is already sorted."
@@ -5410,19 +4988,19 @@ msgstr "Aflopend"
 
 #: src/ui/gui/psppire.glade:784
 msgid "Sort Order"
-msgstr "Sorteer Volgorde"
+msgstr "Sorteervolgorde"
 
 #: src/ui/gui/psppire.glade:853
 msgid "Target Variable:"
-msgstr "Doel Variabele:"
+msgstr "Doelvariabele:"
 
 #: src/ui/gui/psppire.glade:884
 msgid "Type & Label"
-msgstr ""
+msgstr "Type & Label"
 
 #: src/ui/gui/psppire.glade:924
 msgid "="
-msgstr ""
+msgstr "="
 
 #: src/ui/gui/psppire.glade:970
 msgid "Numeric Expressions:"
@@ -5439,19 +5017,19 @@ msgstr "Als..."
 
 #: src/ui/gui/psppire.glade:1320
 msgid "Use filter variable"
-msgstr "Gebruik filter variabele"
+msgstr "Gebruik filtervariabele"
 
 #: src/ui/gui/psppire.glade:1373
 msgid "Based on time or case range"
-msgstr "Gebaseerd op tijd of case volgorde"
+msgstr "Gebaseerd op tijd of case bereik"
 
 #: src/ui/gui/psppire.glade:1386
 msgid "Range..."
-msgstr ""
+msgstr "Bereik..."
 
 #: src/ui/gui/psppire.glade:1425
 msgid "Random sample of cases"
-msgstr "Random steekproef van cases"
+msgstr "Willekeurige steekproef van cases"
 
 #: src/ui/gui/psppire.glade:1439
 msgid "Sample..."
@@ -5491,7 +5069,7 @@ msgstr "Toon commentaren in uitvoer"
 
 #: src/ui/gui/psppire.glade:1721
 msgid "Column Number: 0"
-msgstr "Kolom Nummer: 0"
+msgstr "Kolomnummer: 0"
 
 #: src/ui/gui/psppire.glade:1804
 msgid "First case"
@@ -5519,15 +5097,15 @@ msgstr "Steekproef Grootte"
 
 #: src/ui/gui/oneway.glade:30
 msgid "_Factor:"
-msgstr ""
+msgstr "_Factor:"
 
 #: src/ui/gui/oneway.glade:66
 msgid "Dependent _Variable(s):"
-msgstr ""
+msgstr "Afhankelijke _Variabel(en):"
 
 #: src/ui/gui/oneway.glade:190
 msgid "_Homogeneity"
-msgstr ""
+msgstr "_Homogeniteit"
 
 #: src/ui/gui/oneway.glade:226
 msgid "_Contrasts..."
@@ -5535,19 +5113,19 @@ msgstr ""
 
 #: src/ui/gui/oneway.glade:309
 msgid "gtk-go-back"
-msgstr ""
+msgstr "gtk-ga-terug"
 
 #: src/ui/gui/oneway.glade:320
 msgid "gtk-go-forward"
-msgstr ""
+msgstr "gtk-ga-vooruit"
 
 #: src/ui/gui/oneway.glade:343
 msgid "_Coefficients:"
-msgstr ""
+msgstr "_Coëfficiënten:"
 
 #: src/ui/gui/oneway.glade:389
 msgid "Coefficient Total: "
-msgstr ""
+msgstr "Coëfficiënt Totaal: "
 
 #: src/ui/gui/oneway.glade:422
 msgid "Contrast 1 of 1"
@@ -5555,15 +5133,15 @@ msgstr ""
 
 #: src/ui/gui/output-viewer.glade:32
 msgid "gtk-save"
-msgstr ""
+msgstr "gtk-opslaan"
 
 #: src/ui/gui/output-viewer.glade:41
 msgid "gtk-save-as"
-msgstr ""
+msgstr "gtk-opslaan-als"
 
 #: src/ui/gui/output-viewer.glade:65
 msgid "gtk-copy"
-msgstr ""
+msgstr "gtk-kopie"
 
 #: src/ui/gui/rank.glade:57
 msgid "By:"
@@ -5615,7 +5193,7 @@ msgstr ""
 
 #: src/ui/gui/rank.glade:411
 msgid "Ntiles"
-msgstr ""
+msgstr "Ntiles"
 
 #: src/ui/gui/rank.glade:450
 msgid "Proportion Estimates"
@@ -5627,19 +5205,19 @@ msgstr ""
 
 #: src/ui/gui/rank.glade:494
 msgid "Blom"
-msgstr ""
+msgstr "Blom"
 
 #: src/ui/gui/rank.glade:505
 msgid "Tukey"
-msgstr ""
+msgstr "Tukey"
 
 #: src/ui/gui/rank.glade:519
 msgid "Rankit"
-msgstr ""
+msgstr "Rankit"
 
 #: src/ui/gui/rank.glade:533
 msgid "Van der Wärden"
-msgstr ""
+msgstr "Van der Wärden"
 
 #: src/ui/gui/rank.glade:550
 msgid "Proportion Estimation Formula"
@@ -5659,15 +5237,16 @@ msgstr "_Hoog"
 
 #: src/ui/gui/rank.glade:658
 msgid "_Sequential ranks to unique values"
-msgstr "_Sequentiele rangen naar unieke waardes"
+msgstr "_Sequentiële rangen naar unieke waardes"
 
 #: src/ui/gui/rank.glade:678
 msgid "Rank Assigned to Ties"
 msgstr ""
 
 #: src/ui/gui/recode.glade:197
+#, fuzzy
 msgid "System-Missing"
-msgstr ""
+msgstr "Ontbrekend"
 
 #: src/ui/gui/recode.glade:211
 msgid "System-or user-missing"
@@ -5679,11 +5258,11 @@ msgstr "tot"
 
 #: src/ui/gui/recode.glade:283
 msgid "Range, LOWEST thru value"
-msgstr "Range, LAAGSTE tot waarde"
+msgstr "Bereik, LAAGSTE tot waarde"
 
 #: src/ui/gui/recode.glade:297
 msgid "Range, value thru HIGHEST"
-msgstr "Range, waarde tot HOOGSTE"
+msgstr "Bereik, waarde tot HOOGSTE"
 
 #: src/ui/gui/recode.glade:327
 msgid "All other values"
@@ -5691,7 +5270,7 @@ msgstr "Alle andere waardes"
 
 #: src/ui/gui/recode.glade:363
 msgid "Range:"
-msgstr ""
+msgstr "Bereik:"
 
 #: src/ui/gui/recode.glade:380
 msgid "Old Value"
@@ -5715,11 +5294,11 @@ msgstr "Nieuwe Waarde"
 
 #: src/ui/gui/recode.glade:590
 msgid "Convert numeric strings to numbers ('5' -> 5)"
-msgstr "Converteer numerieke strings naar nummers ('5' -> 5)"
+msgstr "Converteer numerieke tekenreeksen naar nummers ('5' -> 5)"
 
 #: src/ui/gui/recode.glade:608
 msgid "Output variables are strings"
-msgstr "Uitvoer variabelen zijn strings"
+msgstr "Uitvoervariabelen zijn tekenreeksen"
 
 #: src/ui/gui/recode.glade:620
 msgid "Width: "
@@ -5739,7 +5318,7 @@ msgstr "Wijzig"
 
 #: src/ui/gui/recode.glade:885
 msgid "Output Variable"
-msgstr "Uitvoer Variabele"
+msgstr "Uitvoervariabele"
 
 #: src/ui/gui/recode.glade:965
 msgid "Old and New Values"
@@ -5771,7 +5350,7 @@ msgstr ""
 
 #: src/ui/gui/reliability.glade:111
 msgid "Model:\t"
-msgstr ""
+msgstr "Model:\t"
 
 #: src/ui/gui/reliability.glade:122
 msgid ""
@@ -5783,11 +5362,11 @@ msgstr ""
 
 #: src/ui/gui/reliability.glade:144
 msgid "Variables in first split:"
-msgstr "Variabelen in eerste splits:"
+msgstr "Variabelen in eerste splitsing:"
 
 #: src/ui/gui/syntax-editor.glade:163
 msgid "_Run"
-msgstr ""
+msgstr "Uitvoe_ren"
 
 #: src/ui/gui/syntax-editor.glade:172
 msgid "All"
@@ -5807,26 +5386,17 @@ msgstr "Naar Einde"
 
 #: src/ui/gui/text-data-import.glade:8
 msgid "Importing Textual Data"
-msgstr ""
+msgstr "Importeren Textuele Gegevens"
 
 #: src/ui/gui/text-data-import.glade:18
 msgid ""
-"This assistant will guide you through the process of importing data into "
-"PSPP from a text file with one line per case,  in which fields are separated "
-"by tabs, commas, or other delimiters.\n"
+"This assistant will guide you through the process of importing data into PSPP from a text file with one line per case,  in which fields are separated by tabs, commas, or other delimiters.\n"
 "\n"
-"The selected file contains N lines of text.  Only the first M of these will "
-"be shown for preview purposes in the following screens.  You may choose "
-"below how much of the file should actually be imported."
+"The selected file contains N lines of text.  Only the first M of these will be shown for preview purposes in the following screens.  You may choose below how much of the file should actually be imported."
 msgstr ""
-"Deze assistant zal je assisteren bij het proces van het importeren van data "
-"in PSPP vanuit een text bestand met een regel per case en velden gescheiden "
-"met tabs, kommas of andere scheiders.\n"
+"Deze assistent zal je assisteren bij het proces van het importeren van gegevens in PSPP vanuit een tekstbestand met een regel per case en velden gescheiden met tabs, komma's of andere scheiders.\n"
 " \n"
-"Het geselecteerde bestand bevat N regels text.  Alleen de eerste  M hiervan "
-"zullen getoond worden voor voorbeeld doeleinden in de volgende schermen.  Je "
-"kunt hieronder kiezen hoeveel van het bestand daadwerkelijk geïmporteerd "
-"moet worden."
+"Het geselecteerde bestand bevat N regels tekst.  Alleen de eerste  M hiervan zullen getoond worden voor voorbeeld doeleinden in de volgende schermen.  Je kunt hieronder kiezen hoeveel van het bestand daadwerkelijk geïmporteerd moet worden."
 
 #: src/ui/gui/text-data-import.glade:50
 msgid "All cases"
@@ -5838,7 +5408,7 @@ msgstr "Alleen eerste "
 
 #: src/ui/gui/text-data-import.glade:97
 msgid " cases"
-msgstr ""
+msgstr " cases"
 
 #: src/ui/gui/text-data-import.glade:152
 msgid "% of file (approximately)"
@@ -5850,15 +5420,15 @@ msgstr "<b>Aantal te Importeren</b>"
 
 #: src/ui/gui/text-data-import.glade:195
 msgid "Select Data to Import"
-msgstr "Selecteer Data om te Importeren"
+msgstr "Selecteer Gegevens om te Importeren"
 
 #: src/ui/gui/text-data-import.glade:205
 msgid "Select the first line of the data file that contains data."
-msgstr "Selecteer de eerste regel van het data bestand die data bevat."
+msgstr "Selecteer de eerste regel van het gegevensbestand die gegevens bevat."
 
 #: src/ui/gui/text-data-import.glade:236
 msgid "Line above selected line contains variable names"
-msgstr "De regel boven de geselecteerde data regel bevat de variabele namen"
+msgstr "De regel boven de geselecteerde gegevensregel bevat de variabelennamen"
 
 #: src/ui/gui/text-data-import.glade:251
 msgid "Choose Separators"
@@ -5870,7 +5440,7 @@ msgstr ""
 
 #: src/ui/gui/text-data-import.glade:314
 msgid "Slas_h (/)"
-msgstr ""
+msgstr "Sc_huine streep (/)"
 
 #: src/ui/gui/text-data-import.glade:331
 msgid "Semicolo_n (;)"
@@ -5878,11 +5448,11 @@ msgstr "Pu_ntkomma(;)"
 
 #: src/ui/gui/text-data-import.glade:348
 msgid "P_ipe (|)"
-msgstr ""
+msgstr "P_ijp (|)"
 
 #: src/ui/gui/text-data-import.glade:363
 msgid "H_yphen (-)"
-msgstr ""
+msgstr "Streep (-)"
 
 #: src/ui/gui/text-data-import.glade:380
 msgid "Co_mma (,)"
@@ -5890,7 +5460,7 @@ msgstr "Ko_mma (,)"
 
 #: src/ui/gui/text-data-import.glade:397
 msgid "_Colon (:)"
-msgstr "_Dubbele punt (:)"
+msgstr "_Dubbelepunt (:)"
 
 #: src/ui/gui/text-data-import.glade:412
 msgid "Ban_g (!)"
@@ -5898,7 +5468,7 @@ msgstr "Uitroepteken(!)"
 
 #: src/ui/gui/text-data-import.glade:427
 msgid "Ta_b"
-msgstr ""
+msgstr "Ta_b"
 
 #: src/ui/gui/text-data-import.glade:442
 msgid "_Space"
@@ -5922,19 +5492,15 @@ msgstr "<b>Citeren</b>"
 
 #: src/ui/gui/text-data-import.glade:594
 msgid "<b>Fields Preview</b>"
-msgstr "<b>Velden Voorbeeld</b>"
+msgstr "<b>Veldenvoorbeeld</b>"
 
 #: src/ui/gui/text-data-import.glade:612
 msgid "Adjust Variable Formats"
-msgstr "Pas Variabele Formaat aan"
+msgstr "Pas Variabelen-formats aan"
 
 #: src/ui/gui/text-data-import.glade:622
-msgid ""
-"Check the data formats displayed below and fix any that are incorrect.  You "
-"may set other variable properties now or later."
-msgstr ""
-"Controleer de data formaten hieronder en verbeter degene die foutief zijn. "
-"Je mag andere variabele opties nu of later zetten."
+msgid "Check the data formats displayed below and fix any that are incorrect.  You may set other variable properties now or later."
+msgstr "Controleer de gegevens-formats hieronder en verbeter degene die foutief zijn. Je mag andere variabelenopties nu of later zetten."
 
 #: src/ui/gui/text-data-import.glade:665
 msgid "<b>Variables</b>"
@@ -5942,7 +5508,7 @@ msgstr "<b>Variabelen</b>"
 
 #: src/ui/gui/text-data-import.glade:712
 msgid "<b>Data Preview</b>"
-msgstr "<b>Data Voorbeeld</b>"
+msgstr "<b>Gegevensvoorbeeld</b>"
 
 #: src/ui/gui/t-test.glade:56 src/ui/gui/t-test.glade:165
 msgid "Define Groups"
@@ -5951,7 +5517,7 @@ msgstr "Definieer Groepen"
 #: src/ui/gui/t-test.glade:123 src/ui/gui/t-test.glade:549
 #: src/ui/gui/t-test.glade:761
 msgid "Test Variable(s):"
-msgstr "Test Variabel(en):"
+msgstr "Testvariabele(n):"
 
 #: src/ui/gui/t-test.glade:258
 msgid "Group_2 value:"
@@ -5963,7 +5529,7 @@ msgstr "Groep_1 waarde:"
 
 #: src/ui/gui/t-test.glade:320
 msgid "_Cut point:"
-msgstr "_Knip punt:"
+msgstr "_Knippunt:"
 
 #: src/ui/gui/t-test.glade:349
 msgid "_Use specified values:"
@@ -5979,11 +5545,11 @@ msgstr "Sluit cases _listwise uit"
 
 #: src/ui/gui/t-test.glade:594
 msgid "Test Value: "
-msgstr "Test Waarde:"
+msgstr "Testwaarde: "
 
 #: src/ui/gui/var-sheet-dialogs.glade:7
 msgid "Variable Type"
-msgstr "Variabele Type"
+msgstr "Variabelentype"
 
 #: src/ui/gui/var-sheet-dialogs.glade:75
 msgid "Scientific notation"
@@ -6015,15 +5581,15 @@ msgstr "Decimalen:"
 
 #: src/ui/gui/var-sheet-dialogs.glade:499
 msgid "Value Label:"
-msgstr "Waarde Label:"
+msgstr "Waardelabel:"
 
 #: src/ui/gui/var-sheet-dialogs.glade:677
 msgid "_No missing values"
-msgstr ""
+msgstr "Geen missende waardes"
 
 #: src/ui/gui/var-sheet-dialogs.glade:747
 msgid "_Discrete missing values"
-msgstr ""
+msgstr "_Discrete missende waardes"
 
 #: src/ui/gui/var-sheet-dialogs.glade:782
 msgid "_Low:"
@@ -6035,7 +5601,7 @@ msgstr "_Hoog:"
 
 #: src/ui/gui/var-sheet-dialogs.glade:826
 msgid "Di_screte value:"
-msgstr ""
+msgstr "Di_screte waarde:"
 
 #: src/ui/gui/var-sheet-dialogs.glade:856
 msgid "_Range plus one optional discrete missing value"
@@ -6043,877 +5609,1008 @@ msgstr ""
 
 #: src/ui/gui/variable-info-dialog.glade:49
 msgid "Variable Information:"
-msgstr "Variabele Informatie:"
+msgstr "Variabeleninformatie:"
 
 #: tests/dissect-sysfile.c:528
-#, fuzzy, c-format
+#, c-format
 msgid "Unrecognized record type 7, subtype %d."
-msgstr "Niet herkend record type %d."
+msgstr "Niet-herkend recordtype 7, subtype %d."
 
 #: tests/dissect-sysfile.c:701
-#, fuzzy, c-format
+#, c-format
 msgid "%s: Error parsing attribute value %s[%d]"
-msgstr "Fout bij het ontleden van attribuut waarde %s[%d]"
+msgstr "%s: Fout bij het ontleden van attribuut waarde %s[%d]"
 
 #: tests/dissect-sysfile.c:707
-#, fuzzy, c-format
+#, c-format
 msgid "%s: Attribute value %s[%d] is not quoted: %s"
-msgstr "Attribuut waarde %s[%d] is niet geciteerd: %s"
+msgstr "%s: Attribuut waarde %s[%d] is niet geciteerd: %s"
 
-#, fuzzy
-#~ msgid "NAME subcommand may be given only once."
-#~ msgstr "RENAME subopdracht mag maximaal 1 keer gegeven worden."
+#: src/language/utilities/set.q:202
+msgid "WORKSPACE must be at least 1MB"
+msgstr "WORKSPACE moet minstens 1MB zijn"
 
-#, fuzzy
-#~ msgid "LRECL subcommand may be given only once."
-#~ msgstr "RENAME subopdracht mag maximaal 1 keer gegeven worden."
+#: src/language/utilities/set.q:208 src/language/utilities/set.q:210
+#: src/language/utilities/set.q:212 src/language/utilities/set.q:214
+#: src/language/utilities/set.q:216 src/language/utilities/set.q:218
+#: src/language/utilities/set.q:220 src/language/utilities/set.q:222
+#: src/language/utilities/set.q:224
+#, c-format
+msgid "%s is obsolete."
+msgstr "%s is verouderd."
 
-#, fuzzy
-#~ msgid "TABWIDTH subcommand may be given only once."
-#~ msgstr "RENAME subopdracht mag maximaal 1 keer gegeven worden."
+#: src/language/utilities/set.q:227
+#, fuzzy, c-format
+msgid "%s is not implemented."
+msgstr "%s is nog niet geïmplementeerd."
 
-#, fuzzy
-#~ msgid "MODE subcommand may be given only once."
-#~ msgstr "REORDER subopdracht mag maximaal 1 keer gegeven worden."
+#: src/language/utilities/set.q:230
+msgid "Active file compression is not implemented."
+msgstr "Actief bestand compressie is niet geïmplementeerd."
 
-#, fuzzy
-#~ msgid "RECFORM subcommand may be given only once."
-#~ msgstr "REORDER subopdracht mag maximaal 1 keer gegeven worden."
+#: src/language/utilities/set.q:325
+msgid "EPOCH must be 1500 or later."
+msgstr "EPOCH moet 1500 of later zijn."
 
-#~ msgid ""
-#~ "File handle %s is already defined.  Use CLOSE FILE HANDLE before "
-#~ "redefining a file handle."
-#~ msgstr ""
-#~ "Bestand 'handle' %s is al gedefinieerd. Gebruik CLOSE FILE HANDLE voor "
-#~ "het opnieuw definiëren van een bestand 'handle'."
+#: src/language/utilities/set.q:332
+msgid "expecting AUTOMATIC or year"
+msgstr "AUTOMATIC of jaar verwacht"
 
-#~ msgid "RECFORM must be specified with MODE=360."
-#~ msgstr "RECFORM moet opgegeven worden met MODE=360."
+#: src/language/utilities/set.q:353
+msgid "LENGTH must be at least 1."
+msgstr "LENGTH moet tenminste 1 zijn."
 
-#~ msgid ""
-#~ "The specified file mode requires LRECL.  Assuming %d-character records."
-#~ msgstr ""
-#~ "De gespecificeerd bestandsmodus vereist LRECL. %d-karakter records "
-#~ "veronderstelt."
+#: src/language/utilities/set.q:389
+#, c-format
+msgid "%s is not a recognised encoding or locale name"
+msgstr "%s is geen herkende codering of lokale naam"
 
-#~ msgid ""
-#~ "Record length (%ld) must be between 1 and %lu bytes.  Assuming %d-"
-#~ "character records."
-#~ msgstr ""
-#~ "Record lengte (%ld) moet tussen 1 en %lu bytes zijn. Veronderstel %d-"
-#~ "karakters records."
+#: src/language/utilities/set.q:432
+msgid "WIDTH must be at least 40."
+msgstr "WIDTH moet tenminste 40 zijn."
 
-#~ msgid "file"
-#~ msgstr "bestand"
+#: src/language/utilities/set.q:455
+#, c-format
+msgid "FORMAT requires numeric output format as an argument.  Specified format %s is of type string."
+msgstr "FORMAT vereist numeriek uitvoer-format als een argument. Opgegeven format %s is van het type tekenreeks."
 
-#~ msgid "inline file"
-#~ msgstr "inline bestand"
+#: src/language/utilities/set.q:668
+msgid "ISL (32-bit IEEE 754 single, little-endian)"
+msgstr "ISL (32-bit IEEE 754 single, little-endian)"
 
-#~ msgid "expecting a file name or handle name"
-#~ msgstr "file naam of 'handle' naam verwacht"
+#: src/language/utilities/set.q:671
+msgid "ISB (32-bit IEEE 754 single, big-endian)"
+msgstr "ISB (32-bit IEEE 754 single, big-endian)"
 
-#~ msgid "Handle for %s not allowed here."
-#~ msgstr "'Handle' voor %s is hier niet toegestaan."
+#: src/language/utilities/set.q:674
+msgid "IDL (64-bit IEEE 754 double, little-endian)"
+msgstr "IDL (64-bit IEEE 754 double, little-endian)"
 
-#, fuzzy
-#~ msgid "VARIABLES subcommand may be given only once."
-#~ msgstr "RENAME subopdracht mag maximaal 1 keer gegeven worden."
+#: src/language/utilities/set.q:677
+msgid "IDB (64-bit IEEE 754 double, big-endian)"
+msgstr "IDB (64-bit IEEE 754 double, big-endian)"
 
-#, fuzzy
-#~ msgid "CASES subcommand may be given only once."
-#~ msgstr "RENAME subopdracht mag maximaal 1 keer gegeven worden."
-
-#~ msgid ""
-#~ "The first case (%ld) specified precedes the last case (%ld) specified.  "
-#~ "The values will be swapped."
-#~ msgstr ""
-#~ "De eerste gespecificeerde case (%ld) gaat vooraf aan de laatste "
-#~ "gespecificeerde case (%ld). De waardes worden verwisseld."
-
-#~ msgid ""
-#~ "The first case (%ld) to list is less than 1.  The value is being reset to "
-#~ "1."
-#~ msgstr ""
-#~ "De eerste case (%ld) om weer te geven is kleiner dan 1. De waarde is "
-#~ "teruggezet op 1."
-
-#~ msgid ""
-#~ "The last case (%ld) to list is less than 1.  The value is being reset to "
-#~ "1."
-#~ msgstr ""
-#~ "De laatste case (%ld) om weer te geven is kleiner dan 1. De waarde is "
-#~ "teruggezet op 1."
-
-#~ msgid "The step value %ld is less than 1.  The value is being reset to 1."
-#~ msgstr "De stap waarde %ld is kleiner dan 1. De waarde is teruggezet op 1."
-
-#~ msgid "`/FORMAT WEIGHT' specified, but weighting is not on."
-#~ msgstr "'/FORMAT WEIGHT' gespecificeerd, maar weging is niet aan."
-
-#~ msgid "Line"
-#~ msgstr "Regel"
+#: src/language/utilities/set.q:681
+msgid "VF (32-bit VAX F, VAX-endian)"
+msgstr "VF (32-bit VAX F, VAX-endian)"
 
-#, fuzzy
-#~ msgid "BLANKS subcommand may be given only once."
-#~ msgstr "RENAME subopdracht mag maximaal 1 keer gegeven worden."
+#: src/language/utilities/set.q:684
+msgid "VD (64-bit VAX D, VAX-endian)"
+msgstr "VD (64-bit VAX D, VAX-endian)"
 
-#, fuzzy
-#~ msgid "BLOCK subcommand may be given only once."
-#~ msgstr "REORDER subopdracht mag maximaal 1 keer gegeven worden."
+#: src/language/utilities/set.q:687
+msgid "VG (64-bit VAX G, VAX-endian)"
+msgstr "VG (64-bit VAX G, VAX-endian)"
 
-#, fuzzy
-#~ msgid "BOXSTRING subcommand may be given only once."
-#~ msgstr "RENAME subopdracht mag maximaal 1 keer gegeven worden."
+#: src/language/utilities/set.q:691
+msgid "ZS (32-bit IBM Z hexadecimal short, big-endian)"
+msgstr "ZS (32-bit IBM Z hexadecimal short, big-endian)"
 
-#, fuzzy
-#~ msgid "CASE subcommand may be given only once."
-#~ msgstr "RENAME subopdracht mag maximaal 1 keer gegeven worden."
+#: src/language/utilities/set.q:694
+msgid "ZL (64-bit IBM Z hexadecimal long, big-endian)"
+msgstr "ZL (64-bit IBM Z hexadecimal long, big-endian)"
 
-#, fuzzy
-#~ msgid "CCA subcommand may be given only once."
-#~ msgstr "RENAME subopdracht mag maximaal 1 keer gegeven worden."
+#: src/language/utilities/set.q:793
+#, c-format
+msgid "%s is %s."
+msgstr "%s van %s."
 
-#, fuzzy
-#~ msgid "CCB subcommand may be given only once."
-#~ msgstr "RENAME subopdracht mag maximaal 1 keer gegeven worden."
+#: src/language/stats/crosstabs.q:327
+msgid "Missing mode REPORT not allowed in general mode.  Assuming MISSING=TABLE."
+msgstr "Missing modus REPORT niet toegestaan in algemene modus.  MISSING=TABLE aangenomen."
 
-#, fuzzy
-#~ msgid "CCC subcommand may be given only once."
-#~ msgstr "RENAME subopdracht mag maximaal 1 keer gegeven worden."
+#: src/language/stats/crosstabs.q:416
+msgid "Too many cross-tabulation variables or dimensions."
+msgstr "Te veel cross-tabulation variabelen of dimensies."
 
-#, fuzzy
-#~ msgid "CCD subcommand may be given only once."
-#~ msgstr "REORDER subopdracht mag maximaal 1 keer gegeven worden."
+#: src/language/stats/crosstabs.q:426
+msgid "expecting BY"
+msgstr "BY verwacht"
 
-#, fuzzy
-#~ msgid "CCE subcommand may be given only once."
-#~ msgstr "RENAME subopdracht mag maximaal 1 keer gegeven worden."
+#: src/language/stats/crosstabs.q:486
+msgid "VARIABLES must be specified before TABLES."
+msgstr "VARIABLES dient voor TABLES gespecificeerd te worden."
 
-#, fuzzy
-#~ msgid "COMPRESSION subcommand may be given only once."
-#~ msgstr "RENAME subopdracht mag maximaal 1 keer gegeven worden."
+#: src/language/stats/crosstabs.q:524
+#, c-format
+msgid "Maximum value (%ld) less than minimum value (%ld)."
+msgstr "Maximumwaarde (%ld) is kleiner dan minimumwaarde (%ld)."
 
-#, fuzzy
-#~ msgid "CPI subcommand may be given only once."
-#~ msgstr "RENAME subopdracht mag maximaal 1 keer gegeven worden."
+#: src/language/stats/crosstabs.q:840
+msgid "Summary."
+msgstr "Overzicht."
 
-#, fuzzy
-#~ msgid "CPROMPT subcommand may be given only once."
-#~ msgstr "RENAME subopdracht mag maximaal 1 keer gegeven worden."
+#: src/language/stats/crosstabs.q:842 src/language/stats/examine.q:1277
+#: src/language/stats/reliability.q:709
+msgid "Cases"
+msgstr "Cases"
 
-#, fuzzy
-#~ msgid "DECIMAL subcommand may be given only once."
-#~ msgstr "RENAME subopdracht mag maximaal 1 keer gegeven worden."
+#: src/language/stats/crosstabs.q:843 src/language/stats/examine.q:1214
+#: src/language/stats/frequencies.q:1049 src/language/stats/frequencies.q:1400
+#: src/language/stats/reliability.q:712
+msgid "Valid"
+msgstr "Geldig"
 
-#, fuzzy
-#~ msgid "DISK subcommand may be given only once."
-#~ msgstr "REORDER subopdracht mag maximaal 1 keer gegeven worden."
+#: src/language/stats/crosstabs.q:853 src/language/stats/examine.q:1292
+#: src/language/stats/frequencies.q:1053 src/language/stats/frequencies.q:1054
+#: src/language/stats/frequencies.q:1055
+msgid "Percent"
+msgstr "Percentage"
 
-#, fuzzy
-#~ msgid "DPROMPT subcommand may be given only once."
-#~ msgstr "RENAME subopdracht mag maximaal 1 keer gegeven worden."
+#: src/language/stats/crosstabs.q:1133
+msgid "count"
+msgstr "aantal"
 
-#, fuzzy
-#~ msgid "ECHO subcommand may be given only once."
-#~ msgstr "REORDER subopdracht mag maximaal 1 keer gegeven worden."
+#: src/language/stats/crosstabs.q:1134
+msgid "row %"
+msgstr "rij %"
 
-#, fuzzy
-#~ msgid "ENDCMD subcommand may be given only once."
-#~ msgstr "RENAME subopdracht mag maximaal 1 keer gegeven worden."
+#: src/language/stats/crosstabs.q:1135
+msgid "column %"
+msgstr "kolom %"
 
-#, fuzzy
-#~ msgid "EPOCH subcommand may be given only once."
-#~ msgstr "REORDER subopdracht mag maximaal 1 keer gegeven worden."
+#: src/language/stats/crosstabs.q:1136
+msgid "total %"
+msgstr "totaal %"
 
-#, fuzzy
-#~ msgid "ERRORBREAK subcommand may be given only once."
-#~ msgstr "REORDER subopdracht mag maximaal 1 keer gegeven worden."
+#: src/language/stats/crosstabs.q:1137
+msgid "expected"
+msgstr "verwacht"
 
-#, fuzzy
-#~ msgid "ERRORS subcommand may be given only once."
-#~ msgstr "REORDER subopdracht mag maximaal 1 keer gegeven worden."
+#: src/language/stats/crosstabs.q:1138
+msgid "residual"
+msgstr "overblijvend"
 
-#, fuzzy
-#~ msgid "FORMAT subcommand may be given only once."
-#~ msgstr "RENAME subopdracht mag maximaal 1 keer gegeven worden."
+#: src/language/stats/crosstabs.q:1139
+msgid "std. resid."
+msgstr ""
 
-#, fuzzy
-#~ msgid "HEADERS subcommand may be given only once."
-#~ msgstr "REORDER subopdracht mag maximaal 1 keer gegeven worden."
+#: src/language/stats/crosstabs.q:1140
+msgid "adj. resid."
+msgstr ""
 
-#, fuzzy
-#~ msgid "HIGHRES subcommand may be given only once."
-#~ msgstr "RENAME subopdracht mag maximaal 1 keer gegeven worden."
+#: src/language/stats/crosstabs.q:1231
+msgid "Chi-square tests."
+msgstr "Chi-square tests."
 
-#, fuzzy
-#~ msgid "HISTOGRAM subcommand may be given only once."
-#~ msgstr "RENAME subopdracht mag maximaal 1 keer gegeven worden."
+#: src/language/stats/crosstabs.q:1238
+msgid "Asymp. Sig. (2-sided)"
+msgstr ""
 
-#, fuzzy
-#~ msgid "INCLUDE subcommand may be given only once."
-#~ msgstr "RENAME subopdracht mag maximaal 1 keer gegeven worden."
+#: src/language/stats/crosstabs.q:1240
+msgid "Exact Sig. (2-sided)"
+msgstr ""
 
-#, fuzzy
-#~ msgid "JOURNAL subcommand may be given only once."
-#~ msgstr "RENAME subopdracht mag maximaal 1 keer gegeven worden."
+#: src/language/stats/crosstabs.q:1242
+msgid "Exact Sig. (1-sided)"
+msgstr ""
 
-#, fuzzy
-#~ msgid "LOG subcommand may be given only once."
-#~ msgstr "REORDER subopdracht mag maximaal 1 keer gegeven worden."
+#: src/language/stats/crosstabs.q:1257
+msgid "Symmetric measures."
+msgstr "Symmetrische metingen."
 
-#, fuzzy
-#~ msgid "LENGTH subcommand may be given only once."
-#~ msgstr "RENAME subopdracht mag maximaal 1 keer gegeven worden."
+#: src/language/stats/crosstabs.q:1263 src/language/stats/crosstabs.q:1312
+msgid "Asymp. Std. Error"
+msgstr ""
 
-#, fuzzy
-#~ msgid "LOCALE subcommand may be given only once."
-#~ msgstr "RENAME subopdracht mag maximaal 1 keer gegeven worden."
+#: src/language/stats/crosstabs.q:1264 src/language/stats/crosstabs.q:1313
+msgid "Approx. T"
+msgstr ""
 
-#, fuzzy
-#~ msgid "LISTING subcommand may be given only once."
-#~ msgstr "RENAME subopdracht mag maximaal 1 keer gegeven worden."
+#: src/language/stats/crosstabs.q:1265 src/language/stats/crosstabs.q:1314
+msgid "Approx. Sig."
+msgstr ""
 
-#, fuzzy
-#~ msgid "LOWRES subcommand may be given only once."
-#~ msgstr "REORDER subopdracht mag maximaal 1 keer gegeven worden."
+#: src/language/stats/crosstabs.q:1280
+msgid "Risk estimate."
+msgstr ""
 
-#, fuzzy
-#~ msgid "LPI subcommand may be given only once."
-#~ msgstr "RENAME subopdracht mag maximaal 1 keer gegeven worden."
+#: src/language/stats/crosstabs.q:1284
+#, c-format
+msgid "95%% Confidence Interval"
+msgstr "95%% Betrouwbaarheidsinterval"
 
-#, fuzzy
-#~ msgid "MENUS subcommand may be given only once."
-#~ msgstr "RENAME subopdracht mag maximaal 1 keer gegeven worden."
+#: src/language/stats/crosstabs.q:1287 src/language/stats/t-test.q:757
+#: src/language/stats/t-test.q:921 src/language/stats/t-test.q:1014
+msgid "Lower"
+msgstr "Lager"
 
-#, fuzzy
-#~ msgid "MESSAGES subcommand may be given only once."
-#~ msgstr "RENAME subopdracht mag maximaal 1 keer gegeven worden."
+#: src/language/stats/crosstabs.q:1288 src/language/stats/t-test.q:758
+#: src/language/stats/t-test.q:922 src/language/stats/t-test.q:1015
+msgid "Upper"
+msgstr "Hoger"
 
-#, fuzzy
-#~ msgid "MEXPAND subcommand may be given only once."
-#~ msgstr "RENAME subopdracht mag maximaal 1 keer gegeven worden."
+#: src/language/stats/crosstabs.q:1305
+msgid "Directional measures."
+msgstr "Directionele metingen."
 
-#, fuzzy
-#~ msgid "MITERATE subcommand may be given only once."
-#~ msgstr "RENAME subopdracht mag maximaal 1 keer gegeven worden."
+#: src/language/stats/crosstabs.q:1776
+msgid "Pearson Chi-Square"
+msgstr "Pearson Chi-Square"
 
-#, fuzzy
-#~ msgid "MNEST subcommand may be given only once."
-#~ msgstr "RENAME subopdracht mag maximaal 1 keer gegeven worden."
+#: src/language/stats/crosstabs.q:1777
+msgid "Likelihood Ratio"
+msgstr "Waarschijnlijkheidsratio"
 
-#, fuzzy
-#~ msgid "MPRINT subcommand may be given only once."
-#~ msgstr "RENAME subopdracht mag maximaal 1 keer gegeven worden."
+#: src/language/stats/crosstabs.q:1778
+msgid "Fisher's Exact Test"
+msgstr "Fisher's Exact Test"
 
-#, fuzzy
-#~ msgid "MXERRS subcommand may be given only once."
-#~ msgstr "REORDER subopdracht mag maximaal 1 keer gegeven worden."
+#: src/language/stats/crosstabs.q:1779
+msgid "Continuity Correction"
+msgstr "Continuïteitscorrectie"
 
-#, fuzzy
-#~ msgid "MXLOOPS subcommand may be given only once."
-#~ msgstr "RENAME subopdracht mag maximaal 1 keer gegeven worden."
+#: src/language/stats/crosstabs.q:1780
+msgid "Linear-by-Linear Association"
+msgstr ""
 
-#, fuzzy
-#~ msgid "MXMEMORY subcommand may be given only once."
-#~ msgstr "REORDER subopdracht mag maximaal 1 keer gegeven worden."
+#: src/language/stats/crosstabs.q:1815 src/language/stats/crosstabs.q:1890
+#: src/language/stats/crosstabs.q:1955
+msgid "N of Valid Cases"
+msgstr ""
 
-#, fuzzy
-#~ msgid "MXWARNS subcommand may be given only once."
-#~ msgstr "RENAME subopdracht mag maximaal 1 keer gegeven worden."
+#: src/language/stats/crosstabs.q:1834 src/language/stats/crosstabs.q:1973
+msgid "Nominal by Nominal"
+msgstr ""
 
-#, fuzzy
-#~ msgid "NULLINE subcommand may be given only once."
-#~ msgstr "RENAME subopdracht mag maximaal 1 keer gegeven worden."
+#: src/language/stats/crosstabs.q:1835 src/language/stats/crosstabs.q:1974
+msgid "Ordinal by Ordinal"
+msgstr ""
 
-#, fuzzy
-#~ msgid "PRINTBACK subcommand may be given only once."
-#~ msgstr "RENAME subopdracht mag maximaal 1 keer gegeven worden."
+#: src/language/stats/crosstabs.q:1836
+msgid "Interval by Interval"
+msgstr ""
 
-#, fuzzy
-#~ msgid "PROMPT subcommand may be given only once."
-#~ msgstr "RENAME subopdracht mag maximaal 1 keer gegeven worden."
+#: src/language/stats/crosstabs.q:1837
+msgid "Measure of Agreement"
+msgstr ""
 
-#, fuzzy
-#~ msgid "RESULTS subcommand may be given only once."
-#~ msgstr "RENAME subopdracht mag maximaal 1 keer gegeven worden."
+#: src/language/stats/crosstabs.q:1843
+msgid "Cramer's V"
+msgstr "Cramer's V"
 
-#, fuzzy
-#~ msgid "RIB subcommand may be given only once."
-#~ msgstr "RENAME subopdracht mag maximaal 1 keer gegeven worden."
+#: src/language/stats/crosstabs.q:1844
+msgid "Contingency Coefficient"
+msgstr ""
 
-#, fuzzy
-#~ msgid "RRB subcommand may be given only once."
-#~ msgstr "REORDER subopdracht mag maximaal 1 keer gegeven worden."
+#: src/language/stats/crosstabs.q:1845
+msgid "Kendall's tau-b"
+msgstr "Kendall's tau-b"
 
-#, fuzzy
-#~ msgid "SAFER subcommand may be given only once."
-#~ msgstr "RENAME subopdracht mag maximaal 1 keer gegeven worden."
+#: src/language/stats/crosstabs.q:1846
+msgid "Kendall's tau-c"
+msgstr "Kendall's tau-c"
 
-#, fuzzy
-#~ msgid "SCOMPRESSION subcommand may be given only once."
-#~ msgstr "RENAME subopdracht mag maximaal 1 keer gegeven worden."
+#: src/language/stats/crosstabs.q:1848
+msgid "Spearman Correlation"
+msgstr "Spearman Correlatie"
 
-#, fuzzy
-#~ msgid "SCRIPTTAB subcommand may be given only once."
-#~ msgstr "RENAME subopdracht mag maximaal 1 keer gegeven worden."
+#: src/language/stats/crosstabs.q:1849
+msgid "Pearson's R"
+msgstr "Pearson's R"
 
-#, fuzzy
-#~ msgid "SEED subcommand may be given only once."
-#~ msgstr "RENAME subopdracht mag maximaal 1 keer gegeven worden."
+#: src/language/stats/crosstabs.q:1928
+#, c-format
+msgid "Odds Ratio for %s (%g / %g)"
+msgstr ""
 
-#, fuzzy
-#~ msgid "TB1 subcommand may be given only once."
-#~ msgstr "RENAME subopdracht mag maximaal 1 keer gegeven worden."
+#: src/language/stats/crosstabs.q:1931
+#, c-format
+msgid "Odds Ratio for %s (%.*s / %.*s)"
+msgstr ""
 
-#, fuzzy
-#~ msgid "TBFONTS subcommand may be given only once."
-#~ msgstr "RENAME subopdracht mag maximaal 1 keer gegeven worden."
+#: src/language/stats/crosstabs.q:1939
+#, c-format
+msgid "For cohort %s = %g"
+msgstr "Voor cohort %s = %g"
 
-#, fuzzy
-#~ msgid "UNDEFINED subcommand may be given only once."
-#~ msgstr "RENAME subopdracht mag maximaal 1 keer gegeven worden."
+#: src/language/stats/crosstabs.q:1942
+#, c-format
+msgid "For cohort %s = %.*s"
+msgstr "Voor cohort %s = %.*s"
 
-#, fuzzy
-#~ msgid "WIB subcommand may be given only once."
-#~ msgstr "RENAME subopdracht mag maximaal 1 keer gegeven worden."
+#: src/language/stats/crosstabs.q:1975
+msgid "Nominal by Interval"
+msgstr ""
 
-#, fuzzy
-#~ msgid "WRB subcommand may be given only once."
-#~ msgstr "RENAME subopdracht mag maximaal 1 keer gegeven worden."
+#: src/language/stats/crosstabs.q:1981
+msgid "Goodman and Kruskal tau"
+msgstr "Goodman and Kruskal tau"
 
-#, fuzzy
-#~ msgid "WIDTH subcommand may be given only once."
-#~ msgstr "REORDER subopdracht mag maximaal 1 keer gegeven worden."
+#: src/language/stats/crosstabs.q:1982
+msgid "Uncertainty Coefficient"
+msgstr "Onzekerheidscoëfficiënt"
 
-#, fuzzy
-#~ msgid "WORKSPACE subcommand may be given only once."
-#~ msgstr "RENAME subopdracht mag maximaal 1 keer gegeven worden."
+#: src/language/stats/crosstabs.q:1983
+msgid "Somers' d"
+msgstr "Somers' d"
 
-#, fuzzy
-#~ msgid "XSORT subcommand may be given only once."
-#~ msgstr "REORDER subopdracht mag maximaal 1 keer gegeven worden."
+#: src/language/stats/crosstabs.q:1989
+msgid "Symmetric"
+msgstr ""
 
-#~ msgid "WORKSPACE must be at least 1MB"
-#~ msgstr "WORKSPACE moet minstens 1MB zijn"
+#: src/language/stats/crosstabs.q:1990 src/language/stats/crosstabs.q:1991
+#, c-format
+msgid "%s Dependent"
+msgstr "%s Afhankelijk"
 
-#~ msgid "%s is obsolete."
-#~ msgstr "%s is verouderd."
+#: src/language/stats/examine.q:346 src/language/stats/examine.q:499
+#: src/language/stats/examine.q:1060
+msgid "Not creating plot because data set is empty."
+msgstr "Niet aanmaken van plot omdat gegevens set leeg is."
 
-#~ msgid "%s is not implemented."
-#~ msgstr "%s is niet geïmplementeerd."
+#: src/language/stats/examine.q:356
+#, c-format
+msgid "Normal Q-Q Plot of %s"
+msgstr "Normal Q-Q Plot van %s"
 
-#~ msgid "Active file compression is not implemented."
-#~ msgstr "Actief bestand compressie is niet geïmplementeerd."
+#: src/language/stats/examine.q:357 src/language/stats/examine.q:362
+msgid "Observed Value"
+msgstr "Waargenomen Waarde"
 
-#~ msgid "EPOCH must be 1500 or later."
-#~ msgstr "EPOCH moet 1500 of later zijn."
+#: src/language/stats/examine.q:358
+msgid "Expected Normal"
+msgstr ""
 
-#~ msgid "expecting AUTOMATIC or year"
-#~ msgstr "AUTOMATIC of jaar verwacht"
+#: src/language/stats/examine.q:360
+#, c-format
+msgid "Detrended Normal Q-Q Plot of %s"
+msgstr "Detrended Normal Q-Q Plot van %s"
 
-#~ msgid "LENGTH must be at least 1."
-#~ msgstr "LENGTH moet tenminste 1 zijn."
+#: src/language/stats/examine.q:363
+msgid "Dev from Normal"
+msgstr ""
 
-#~ msgid "%s is not a recognised encoding or locale name"
-#~ msgstr "%s is geen herkende codering of lokale naam"
+#: src/language/stats/examine.q:516
+#, c-format
+msgid "Boxplot of %s vs. %s"
+msgstr ""
 
-#~ msgid "WIDTH must be at least 40."
-#~ msgstr "WIDTH moet tenminste 40 zijn."
+#: src/language/stats/examine.q:520
+#, c-format
+msgid "Boxplot of %s"
+msgstr ""
 
-#~ msgid ""
-#~ "FORMAT requires numeric output format as an argument.  Specified format %"
-#~ "s is of type string."
-#~ msgstr ""
-#~ "FORMAT vereist numeriek uitvoer formaat als een argument. Opgegeven "
-#~ "formaat %s is van het type string."
+#: src/language/stats/examine.q:756 src/language/stats/examine.q:769
+#, c-format
+msgid "%s and %s are mutually exclusive"
+msgstr "%s en %s zijn wederzijds exclusief"
 
-#, fuzzy
-#~ msgid "%s is %s."
-#~ msgstr "%s van %s"
+#: src/language/stats/examine.q:1272 src/language/stats/reliability.q:686
+msgid "Case Processing Summary"
+msgstr "Case Bewerkingsoverzicht"
 
-#, fuzzy
-#~ msgid "TABLES subcommand may be given only once."
-#~ msgstr "RENAME subopdracht mag maximaal 1 keer gegeven worden."
+#: src/language/stats/examine.q:1564 src/language/stats/oneway.q:398
+#, c-format
+msgid "%g%% Confidence Interval for Mean"
+msgstr ""
 
-#, fuzzy
-#~ msgid "MISSING subcommand may be given only once."
-#~ msgstr "RENAME subopdracht mag maximaal 1 keer gegeven worden."
+#: src/language/stats/examine.q:1579
+msgid "5% Trimmed Mean"
+msgstr ""
 
-#, fuzzy
-#~ msgid "TABLES subcommand must be given."
-#~ msgstr "RENAME subopdracht mag maximaal 1 keer gegeven worden."
+#: src/language/stats/examine.q:1614
+msgid "Interquartile Range"
+msgstr ""
 
-#~ msgid ""
-#~ "Missing mode REPORT not allowed in general mode.  Assuming MISSING=TABLE."
-#~ msgstr ""
-#~ "Missing modus REPORT niet toegestaan in algemene modus.  MISSING=TABLE "
-#~ "aangenomen."
+#: src/language/stats/examine.q:1939
+msgid "Highest"
+msgstr "Hoogste"
 
-#~ msgid "Too many cross-tabulation variables or dimensions."
-#~ msgstr "Te veel cross-tabulation variabelen of dimensies."
+#: src/language/stats/examine.q:1944
+msgid "Lowest"
+msgstr "Laagste"
 
-#~ msgid "expecting BY"
-#~ msgstr "BY verwacht"
+#: src/language/stats/examine.q:1951
+msgid "Extreme Values"
+msgstr "Extreme Waardes"
 
-#~ msgid "VARIABLES must be specified before TABLES."
-#~ msgstr "VARIABLES dient voor TABLES gespecificeerd te worden."
+#: src/language/stats/examine.q:1955
+msgid "Case Number"
+msgstr "Case Nummer"
 
-#~ msgid "Maximum value (%ld) less than minimum value (%ld)."
-#~ msgstr "Maximum waarde (%ld) is kleiner dan minimum waarde (%ld)."
+#: src/language/stats/examine.q:2077
+msgid "Tukey's Hinges"
+msgstr "Tukey's Hinges"
 
-#~ msgid "Summary."
-#~ msgstr "Overzicht."
+#: src/language/stats/examine.q:2124
+#, c-format
+msgid "%g"
+msgstr "%g"
+
+#: src/language/stats/frequencies.q:124
+msgid "S.E. Mean"
+msgstr ""
+
+#: src/language/stats/frequencies.q:130
+msgid "S.E. Kurt"
+msgstr "S.E. Kurt"
+
+#: src/language/stats/frequencies.q:132
+msgid "S.E. Skew"
+msgstr "S.E. Skew"
+
+#: src/language/stats/frequencies.q:407
+msgid "At most one of BARCHART, HISTOGRAM, or HBAR should be given.  HBAR will be assumed.  Argument values will be given precedence increasing along the order given."
+msgstr "Maximaal een van BARCHART, HISTOGRAM, of HBAR mag opgegeven worden. HBAR wordt aangenomen.  Argument waardes zullen gebruikt worden in opgegeven volgorde."
+
+#: src/language/stats/frequencies.q:490
+#, c-format
+msgid "MAX must be greater than or equal to MIN, if both are specified.  However, MIN was specified as %g and MAX as %g.  MIN and MAX will be ignored."
+msgstr "MAX moet groter of gelijk zijn aan MIN, als beiden zijn opgegeven. Maar, MIN was opgegeven als %g en MAX als %g. MIN en MAX worden genegeerd."
 
-#~ msgid "Valid"
-#~ msgstr "Geldig"
+#: src/language/stats/frequencies.q:754
+#, c-format
+msgid "Variable %s specified multiple times on VARIABLES subcommand."
+msgstr "Variabele %s is meerdere keren opgegeven bij VARIABLES subopdracht."
 
-#~ msgid "Percent"
-#~ msgstr "Procent"
+#: src/language/stats/frequencies.q:812
+msgid "`)' expected after GROUPED interval list."
+msgstr "')' verwacht na GROUPED interval lijst."
 
-#~ msgid "count"
-#~ msgstr "aantal"
+#: src/language/stats/frequencies.q:824
+#, c-format
+msgid "Variables %s specified on GROUPED but not on VARIABLES."
+msgstr "Variabele %s gespecificeerd bij GROUPED maar niet bij VARIABLES."
 
-#~ msgid "row %"
-#~ msgstr "rij %"
+#: src/language/stats/frequencies.q:831
+#, c-format
+msgid "Variables %s specified multiple times on GROUPED subcommand."
+msgstr "Variabele %s is meerdere keren gespecificeerd bij GROUPED subopdracht."
 
-#~ msgid "column %"
-#~ msgstr "kolom %"
+#: src/language/stats/frequencies.q:1050 src/language/stats/frequencies.q:1143
+#: src/language/stats/frequencies.q:1144 src/language/stats/frequencies.q:1179
+msgid "Cum"
+msgstr "Cum"
 
-#~ msgid "total %"
-#~ msgstr "totaal %"
+#: src/language/stats/frequencies.q:1073
+msgid "Value Label"
+msgstr "Waardelabel"
 
-#~ msgid "expected"
-#~ msgstr "verwacht"
+#: src/language/stats/frequencies.q:1177
+msgid "Freq"
+msgstr "Freq"
 
-#~ msgid "residual"
-#~ msgstr "overblijvend"
+#: src/language/stats/frequencies.q:1178 src/language/stats/frequencies.q:1180
+msgid "Pct"
+msgstr "Pct"
 
-#~ msgid "Symmetric measures."
-#~ msgstr "Symmetrische metingen."
+#: src/language/stats/frequencies.q:1373
+#, c-format
+msgid "No valid data for variable %s; statistics not displayed."
+msgstr "Geen geldige gegevens voor variabele %s; statistieken worden niet getoond."
 
-#~ msgid "Lower"
-#~ msgstr "Lager"
+#: src/language/stats/frequencies.q:1414
+msgid "50 (Median)"
+msgstr "50 (Mediaan)"
 
-#~ msgid "Upper"
-#~ msgstr "Hoger"
+#: src/language/stats/glm.q:196
+msgid "Multivariate GLM not yet supported"
+msgstr "Mutivariatie GLm nog niet gesupport"
 
-#~ msgid "Directional measures."
-#~ msgstr "Directioneel metingen."
+#: src/language/stats/glm.q:320 src/language/stats/regression.q:1000
+msgid "No valid data found. This command was skipped."
+msgstr "Geen geldige gegevens gevonden. Deze opdracht is overgeslagen."
 
-#~ msgid "For cohort %s = %g"
-#~ msgstr "Voor cohort %s = %g"
+#: src/language/stats/means.q:100
+msgid "Missing required subcommand TABLES."
+msgstr "Mis vereiste subopdracht TABLES."
 
-#~ msgid "For cohort %s = %.*s"
-#~ msgstr "Voor cohort %s = %.*s"
+#: src/language/stats/means.q:134
+msgid "TABLES subcommand may not appear more than once."
+msgstr "TABLES subopdracht mag niet meer dan 1 keer voorkomen."
 
-#, fuzzy
-#~ msgid "VARIABLES subcommand must be given."
-#~ msgstr "VARIABLES subprogramma is niet het juiste met PAIRS"
+#: src/language/stats/npar.q:109
+msgid "NPAR subcommand not currently implemented."
+msgstr ""
 
-#~ msgid "Not creating plot because data set is empty."
-#~ msgstr "Er wordt geen plot aangemaakt omdat de data set leeg is."
+#: src/language/stats/npar.q:252
+#, c-format
+msgid "The specified value of HI (%d) is lower than the specified value of LO (%d)"
+msgstr "De opgegeven waarde van HI (%d) is lager dan de opgegeven waarde van LO (%d)"
 
-#~ msgid "Normal Q-Q Plot of %s"
-#~ msgstr "Normal Q-Q Plot van %s"
+#: src/language/stats/npar.q:307
+#, c-format
+msgid "%d expected values were given, but the specified range (%d-%d) requires exactly %d values."
+msgstr "%d verwachte waardes waren opgegeven, maar het opgegeven bereik (%d-%d) vereist precies %d waardes."
 
-#~ msgid "Observed Value"
-#~ msgstr "Waargenomen Waarde"
+#: src/language/stats/npar.q:441 src/language/stats/t-test.q:379
+#, c-format
+msgid "PAIRED was specified but the number of variables preceding WITH (%zu) did not match the number following (%zu)."
+msgstr "PAIRED was opgegeven maar het aantal variabelen voor WITH (%zu) komt niet overeen met het aantal er achter (%zu)."
 
-#~ msgid "Detrended Normal Q-Q Plot of %s"
-#~ msgstr "Detrended Normal Q-Q Plot van %s"
+#: src/language/stats/oneway.q:171
+msgid "Number of contrast coefficients must equal the number of groups"
+msgstr ""
 
-#~ msgid "%s and %s are mutually exclusive"
-#~ msgstr "%s en %s zijn wederzijds exclusief"
+#: src/language/stats/oneway.q:180
+#, c-format
+msgid "Coefficients for contrast %zu do not total zero"
+msgstr ""
 
-#~ msgid "Case Processing Summary"
-#~ msgstr "Case Bewerkings Overzicht"
+#: src/language/stats/oneway.q:243
+#, c-format
+msgid "`%s' is not a variable name"
+msgstr "'%s' is geen variabelennaam"
 
-#~ msgid "Highest"
-#~ msgstr "Hoogste"
+#: src/language/stats/oneway.q:277 src/language/stats/regression.q:301
+msgid "Sum of Squares"
+msgstr ""
 
-#~ msgid "Lowest"
-#~ msgstr "Laagste"
+#: src/language/stats/oneway.q:279 src/language/stats/regression.q:303
+msgid "Mean Square"
+msgstr ""
 
-#~ msgid "Extreme Values"
-#~ msgstr "Extreme Waardes"
+#: src/language/stats/oneway.q:280 src/language/stats/regression.q:304
+#: src/language/stats/t-test.q:750
+msgid "F"
+msgstr "F"
 
-#~ msgid "Case Number"
-#~ msgstr "Case Nummer"
+#: src/language/stats/oneway.q:281 src/language/stats/oneway.q:539
+#: src/language/stats/regression.q:206 src/language/stats/regression.q:305
+msgid "Significance"
+msgstr "Significantie "
 
-#, fuzzy
-#~ msgid "`(' expected after LIMIT specifier of FORMAT subcommand."
-#~ msgstr "')' verwacht na variabele lijst bij RENAME subopdracht."
+#: src/language/stats/oneway.q:303
+msgid "Between Groups"
+msgstr "Tussen Groepen"
 
-#, fuzzy
-#~ msgid "BARCHART subcommand may be given only once."
-#~ msgstr "RENAME subopdracht mag maximaal 1 keer gegeven worden."
+#: src/language/stats/oneway.q:304
+msgid "Within Groups"
+msgstr "Binnen Groepen"
 
-#, fuzzy
-#~ msgid "`(' expected after MINIMUM specifier of BARCHART subcommand."
-#~ msgstr "')' verwacht na variabele lijst bij RENAME subopdracht."
+#: src/language/stats/oneway.q:348 src/language/stats/regression.q:330
+msgid "ANOVA"
+msgstr "ANOVA"
 
-#, fuzzy
-#~ msgid "`(' expected after MAXIMUM specifier of BARCHART subcommand."
-#~ msgstr "')' verwacht na variabele lijst bij RENAME subopdracht."
+#: src/language/stats/oneway.q:536
+msgid "Levene Statistic"
+msgstr ""
 
-#, fuzzy
-#~ msgid "PIECHART subcommand may be given only once."
-#~ msgstr "RENAME subopdracht mag maximaal 1 keer gegeven worden."
+#: src/language/stats/oneway.q:537
+msgid "df1"
+msgstr "df1"
 
-#, fuzzy
-#~ msgid "`(' expected after MINIMUM specifier of PIECHART subcommand."
-#~ msgstr "')' verwacht na variabele lijst bij RENAME subopdracht."
+#: src/language/stats/oneway.q:538
+msgid "df2"
+msgstr "df2"
 
-#, fuzzy
-#~ msgid "`(' expected after MAXIMUM specifier of PIECHART subcommand."
-#~ msgstr "')' verwacht na variabele lijst bij RENAME subopdracht."
+#: src/language/stats/oneway.q:541
+msgid "Test of Homogeneity of Variances"
+msgstr ""
 
-#, fuzzy
-#~ msgid "`(' expected after MINIMUM specifier of HISTOGRAM subcommand."
-#~ msgstr "')' verwacht na variabele lijst bij RENAME subopdracht."
+#: src/language/stats/oneway.q:608
+msgid "Contrast Coefficients"
+msgstr ""
 
-#, fuzzy
-#~ msgid "Number expected after MINIMUM specifier of HISTOGRAM subcommand."
-#~ msgstr "')' verwacht na variabele lijst bij RENAME subopdracht."
+#: src/language/stats/oneway.q:610 src/language/stats/oneway.q:687
+msgid "Contrast"
+msgstr ""
 
-#, fuzzy
-#~ msgid "`(' expected after MAXIMUM specifier of HISTOGRAM subcommand."
-#~ msgstr "')' verwacht na variabele lijst bij RENAME subopdracht."
+#: src/language/stats/oneway.q:685
+msgid "Contrast Tests"
+msgstr ""
 
-#, fuzzy
-#~ msgid "Number expected after MAXIMUM specifier of HISTOGRAM subcommand."
-#~ msgstr "')' verwacht na variabele lijst bij RENAME subopdracht."
+#: src/language/stats/oneway.q:688
+msgid "Value of Contrast"
+msgstr ""
 
-#, fuzzy
-#~ msgid "`(' expected after INCREMENT specifier of HISTOGRAM subcommand."
-#~ msgstr "')' verwacht na variabele lijst bij RENAME subopdracht."
+#: src/language/stats/oneway.q:690 src/language/stats/regression.q:205
+#: src/language/stats/t-test.q:752 src/language/stats/t-test.q:923
+#: src/language/stats/t-test.q:1010
+msgid "t"
+msgstr "t"
 
-#, fuzzy
-#~ msgid "HBAR subcommand may be given only once."
-#~ msgstr "RENAME subopdracht mag maximaal 1 keer gegeven worden."
+#: src/language/stats/oneway.q:692 src/language/stats/t-test.q:754
+#: src/language/stats/t-test.q:925 src/language/stats/t-test.q:1012
+msgid "Sig. (2-tailed)"
+msgstr ""
 
-#, fuzzy
-#~ msgid "`(' expected after MINIMUM specifier of HBAR subcommand."
-#~ msgstr "')' verwacht na variabele lijst bij RENAME subopdracht."
+#: src/language/stats/oneway.q:736
+msgid "Assume equal variances"
+msgstr "Veronderstelt gelijke variantie"
 
-#, fuzzy
-#~ msgid "`(' expected after MAXIMUM specifier of HBAR subcommand."
-#~ msgstr "')' verwacht na variabele lijst bij RENAME subopdracht."
+#: src/language/stats/oneway.q:740
+msgid "Does not assume equal"
+msgstr "Veronderstelt niet gelijk"
 
-#, fuzzy
-#~ msgid "`)' expected after argument for FREQ specifier of HBAR."
-#~ msgstr "')' verwacht na variabele lijst bij RENAME subopdracht."
+#: src/language/stats/rank.q:221
+#, c-format
+msgid "%s of %s by %s"
+msgstr "%s van %s per %s"
 
-#, fuzzy
-#~ msgid "`)' expected after argument for PERCENT specifier of HBAR."
-#~ msgstr "')' verwacht na variabele lijst bij RENAME subopdracht."
+#: src/language/stats/rank.q:226
+#, c-format
+msgid "%s of %s"
+msgstr "%s van %s"
 
-#, fuzzy
-#~ msgid "`(' expected after INCREMENT specifier of HBAR subcommand."
-#~ msgstr "'(' verwacht bij RENAME subopdracht."
+#: src/language/stats/rank.q:601
+msgid "Cannot create new rank variable.  All candidates in use."
+msgstr "Kan geen rang variabele creëren. Alle kandidaten zijn in gebruik."
 
-#, fuzzy
-#~ msgid "`)' expected after argument for INCREMENT specifier of HBAR."
-#~ msgstr "')' verwacht na variabele lijst bij RENAME subopdracht."
-
-#~ msgid ""
-#~ "At most one of BARCHART, HISTOGRAM, or HBAR should be given.  HBAR will "
-#~ "be assumed.  Argument values will be given precedence increasing along "
-#~ "the order given."
-#~ msgstr ""
-#~ "Op zijn meest een van BARCHART, HISTOGRAM, of HBAR moet opgegeven "
-#~ "worden.  HBAR wordt aangenomen.  Argument waardes zullen gebruikt worden "
-#~ "in opgegeven volgorde."
-
-#~ msgid ""
-#~ "MAX must be greater than or equal to MIN, if both are specified.  "
-#~ "However, MIN was specified as %g and MAX as %g.  MIN and MAX will be "
-#~ "ignored."
-#~ msgstr ""
-#~ "MAX moet groter of gelijk zijn aan MIN, als beiden zijn opgegeven. Maar, "
-#~ "MIN was opgegeven als %g en MAX als %g. MIN en MAX worden genegeerd."
-
-#~ msgid "Variable %s specified multiple times on VARIABLES subcommand."
-#~ msgstr "Variabele %s is meerdere keren opgegeven bij VARIABLES subopdracht."
-
-#~ msgid "`)' expected after GROUPED interval list."
-#~ msgstr "')' verwacht na GROUPED interval lijst."
-
-#~ msgid "Variables %s specified on GROUPED but not on VARIABLES."
-#~ msgstr "Variabele %s gespecificeerd bij GROUPED maar niet bij VARIABLES."
-
-#~ msgid "Variables %s specified multiple times on GROUPED subcommand."
-#~ msgstr ""
-#~ "Variabele %s is meerdere keren gespecificeerd bij GROUPED subopdracht."
-
-#~ msgid "Value Label"
-#~ msgstr "Waarde Label"
-
-#~ msgid "No valid data for variable %s; statistics not displayed."
-#~ msgstr ""
-#~ "Geen geldige data voor variabele %s; statistieken worden niet getoond."
+#: src/language/stats/rank.q:694
+msgid "Variables Created By RANK"
+msgstr "Variabelen gecreëerd door RANK"
 
-#, fuzzy
-#~ msgid "DEPENDENT subcommand may be given only once."
-#~ msgstr "RENAME subopdracht mag maximaal 1 keer gegeven worden."
+#: src/language/stats/rank.q:718
+#, c-format
+msgid "%s into %s(%s of %s using %s BY %s)"
+msgstr "%s in %s(%s van %s gebruikt %s PER %s)"
 
-#, fuzzy
-#~ msgid "BY subcommand may be given only once."
-#~ msgstr "RENAME subopdracht mag maximaal 1 keer gegeven worden."
+#: src/language/stats/rank.q:728
+#, c-format
+msgid "%s into %s(%s of %s BY %s)"
+msgstr "%s in %s(%s van %s PER %s)"
 
-#, fuzzy
-#~ msgid "WITH subcommand may be given only once."
-#~ msgstr "RENAME subopdracht mag maximaal 1 keer gegeven worden."
+#: src/language/stats/rank.q:741
+#, c-format
+msgid "%s into %s(%s of %s using %s)"
+msgstr "%s in %s(%s van %s gebruikt %s"
 
-#~ msgid "No valid data found. This command was skipped."
-#~ msgstr "Geen geldige data gevonden. Deze opdracht is overgeslagen."
+#: src/language/stats/rank.q:750
+#, c-format
+msgid "%s into %s(%s of %s)"
+msgstr "%s in %s(%s van %s)"
 
-#~ msgid "Missing required subcommand TABLES."
-#~ msgstr "Missing vereist subopdracht TABLES."
+#: src/language/stats/rank.q:762
+msgid "FRACTION has been specified, but NORMAL and PROPORTION rank functions have not been requested.  The FRACTION subcommand will be ignored."
+msgstr "FRACTION is gespecificeerd maar NORMAL en PROPORTION rangschik functies zijn niet gevraagd. De FRACTION subopdracht wordt genegeerd."
 
-#~ msgid "TABLES subcommand may not appear more than once."
-#~ msgstr "TABLES subopdracht mag niet meer dan 1 keer voorkomen."
+#: src/language/stats/rank.q:853
+#, c-format
+msgid "Variable %s already exists."
+msgstr "Variabele %s bestaat al."
 
-#, fuzzy
-#~ msgid "METHOD subcommand may be given only once."
-#~ msgstr "REORDER subopdracht mag maximaal 1 keer gegeven worden."
+#: src/language/stats/rank.q:858
+msgid "Too many variables in INTO clause."
+msgstr "Te veel variabelen in INTO clausule."
 
-#~ msgid ""
-#~ "The specified value of HI (%d) is lower than the specified value of LO (%"
-#~ "d)"
-#~ msgstr ""
-#~ "De opgegeven waarde van HI (%d) is lager dan de opgegeven waarde van LO (%"
-#~ "d)"
+#: src/language/stats/regression.q:160
+msgid "R Square"
+msgstr ""
 
-#~ msgid ""
-#~ "%d expected values were given, but the specified range (%d-%d) requires "
-#~ "exactly %d values."
-#~ msgstr ""
-#~ "%d verwachte waardes waren opgegeven, maar de opgegeven range (%d-%d) "
-#~ "vereist precies %d waardes."
+#: src/language/stats/regression.q:161
+msgid "Adjusted R Square"
+msgstr ""
 
-#~ msgid ""
-#~ "PAIRED was specified but the number of variables preceding WITH (%zu) did "
-#~ "not match the number following (%zu)."
-#~ msgstr ""
-#~ "PAIRED was opgegeven maar het aantal variabelen voor WITH (%zu) komt niet "
-#~ "overeen met het aantal er achter (%zu)."
+#: src/language/stats/regression.q:162
+msgid "Std. Error of the Estimate"
+msgstr ""
 
-#~ msgid "`%s' is not a variable name"
-#~ msgstr "'%s' is geen variabele naam"
+#: src/language/stats/regression.q:167
+msgid "Model Summary"
+msgstr ""
 
-#~ msgid "Significance"
-#~ msgstr "Significantie "
+#: src/language/stats/regression.q:202
+msgid "B"
+msgstr "B"
 
-#~ msgid "Between Groups"
-#~ msgstr "Tussen Groepen"
+#: src/language/stats/regression.q:204
+msgid "Beta"
+msgstr "Beta"
 
-#~ msgid "Within Groups"
-#~ msgstr "Binnen Groepen"
+#: src/language/stats/regression.q:207
+msgid "(Constant)"
+msgstr "(Constante)"
 
-#~ msgid "Assume equal variances"
-#~ msgstr "Veronderstelt gelijke variantie"
+#: src/language/stats/regression.q:271
+msgid "Coefficients"
+msgstr "Coëfficiënten"
 
-#~ msgid "Does not assume equal"
-#~ msgstr "Veronderstelt niet gelijk"
+#: src/language/stats/regression.q:307
+msgid "Regression"
+msgstr "Regressie"
 
-#~ msgid "%s of %s by %s"
-#~ msgstr "%s van %s per %s"
+#: src/language/stats/regression.q:389
+msgid "Model"
+msgstr "Model"
 
-#~ msgid "%s of %s"
-#~ msgstr "%s van %s"
+#: src/language/stats/regression.q:390
+msgid "Covariances"
+msgstr "Covarianties"
 
-#~ msgid "Cannot create new rank variable.  All candidates in use."
-#~ msgstr "Kan geen rang variabele creëren. Alle kandidaten zijn in gebruik."
+#: src/language/stats/regression.q:405
+msgid "Coefficient Correlations"
+msgstr ""
 
-#~ msgid "Variables Created By RANK"
-#~ msgstr "Variabelen gecreëerd door RANK"
+#: src/language/stats/regression.q:812
+msgid "The dependent variable is equal to the independent variable.The least squares line is therefore Y=X.Standard errors and related statistics may be meaningless."
+msgstr ""
 
-#~ msgid "%s into %s(%s of %s using %s BY %s)"
-#~ msgstr "%s in %s(%s van %s gebruikt %s PER %s)"
+#: src/language/stats/regression.q:904
+msgid "Dependent variable must be numeric."
+msgstr "Afhankelijke variabele moet numeriek zijn."
 
-#~ msgid "%s into %s(%s of %s BY %s)"
-#~ msgstr "%s in %s(%s van %s PER %s)"
+#: src/language/stats/reliability.q:433
+msgid "Reliability Statistics"
+msgstr "Betrouwbaarheids Statistieken"
 
-#~ msgid "%s into %s(%s of %s using %s)"
-#~ msgstr "%s in %s(%s van %s gebruikt %s"
+#: src/language/stats/reliability.q:476
+msgid "Item-Total Statistics"
+msgstr "Item-Totaal Statistieken"
 
-#~ msgid "%s into %s(%s of %s)"
-#~ msgstr "%s in %s(%s van %s)"
+#: src/language/stats/reliability.q:498
+msgid "Scale Mean if Item Deleted"
+msgstr ""
 
-#~ msgid ""
-#~ "FRACTION has been specified, but NORMAL and PROPORTION rank functions "
-#~ "have not been requested.  The FRACTION subcommand will be ignored."
-#~ msgstr ""
-#~ "FRACTION is gespecificeerd maar NORMAL en PROPORTION rangschik functies "
-#~ "ziin niet gevraagd. De FRACTION subopdracht wordt genegeerd."
+#: src/language/stats/reliability.q:501
+msgid "Scale Variance if Item Deleted"
+msgstr ""
 
-#~ msgid "Variable %s already exists."
-#~ msgstr "Variabele %s bestaat al."
+#: src/language/stats/reliability.q:504
+msgid "Corrected Item-Total Correlation"
+msgstr ""
 
-#~ msgid "Too many variables in INTO clause."
-#~ msgstr "Te veel variabelen in INTO clause."
+#: src/language/stats/reliability.q:507
+msgid "Cronbach's Alpha if Item Deleted"
+msgstr ""
 
-#, fuzzy
-#~ msgid "DEPENDENT subcommand must be given."
-#~ msgstr "RENAME subopdracht mag maximaal 1 keer gegeven worden."
+#: src/language/stats/reliability.q:557 src/language/stats/reliability.q:576
+msgid "Cronbach's Alpha"
+msgstr "Cronbach's Alpha"
 
-#~ msgid "Dependent variable must be numeric."
-#~ msgstr "Afhankelijke variabele moet numeriek zijn."
+#: src/language/stats/reliability.q:560
+msgid "N of items"
+msgstr ""
 
-#, fuzzy
-#~ msgid "SCALE subcommand may be given only once."
-#~ msgstr "RENAME subopdracht mag maximaal 1 keer gegeven worden."
+#: src/language/stats/reliability.q:579
+msgid "Part 1"
+msgstr "Deel 1"
 
-#, fuzzy
-#~ msgid "MODEL subcommand may be given only once."
-#~ msgstr "REORDER subopdracht mag maximaal 1 keer gegeven worden."
+#: src/language/stats/reliability.q:585 src/language/stats/reliability.q:596
+msgid "N of Items"
+msgstr ""
 
-#~ msgid "Part 1"
-#~ msgstr "Deel 1"
+#: src/language/stats/reliability.q:590
+msgid "Part 2"
+msgstr "Deel 2"
 
-#~ msgid "Part 2"
-#~ msgstr "Deel 2"
+#: src/language/stats/reliability.q:601
+msgid "Total N of Items"
+msgstr ""
 
-#~ msgid "Equal Length"
-#~ msgstr "Gelijke Lengte"
+#: src/language/stats/reliability.q:604
+msgid "Correlation Between Forms"
+msgstr "Correlatie Tussen Formulieren"
 
-#~ msgid "Unequal Length"
-#~ msgstr "Ongelijke Lengte"
+#: src/language/stats/reliability.q:608
+msgid "Spearman-Brown Coefficient"
+msgstr "Spearman-Brown Coefficient"
 
-#~ msgid "Excluded"
-#~ msgstr "Uitgesloten"
+#: src/language/stats/reliability.q:611
+msgid "Equal Length"
+msgstr "Gelijke Lengte"
 
-#, fuzzy
-#~ msgid "TESTVAL subcommand may be given only once."
-#~ msgstr "RENAME subopdracht mag maximaal 1 keer gegeven worden."
+#: src/language/stats/reliability.q:614
+msgid "Unequal Length"
+msgstr "Ongelijke Lengte"
 
-#, fuzzy
-#~ msgid "CRITERIA subcommand may be given only once."
-#~ msgstr "RENAME subopdracht mag maximaal 1 keer gegeven worden."
+#: src/language/stats/reliability.q:618
+msgid "Guttman Split-Half Coefficient"
+msgstr "Guttman Split-Half Coëfficiënt"
 
-#, fuzzy
-#~ msgid "`(' expected after CIN specifier of CRITERIA subcommand."
-#~ msgstr "')' verwacht na variabele lijst bij RENAME subopdracht."
+#: src/language/stats/reliability.q:715
+msgid "Excluded"
+msgstr "Uitgesloten"
 
-#, fuzzy
-#~ msgid "Number expected after CIN specifier of CRITERIA subcommand."
-#~ msgstr "')' verwacht na variabele lijst bij RENAME subopdracht."
+#: src/language/stats/reliability.q:723
+msgid "%"
+msgstr "%"
 
-#, fuzzy
-#~ msgid ""
-#~ "Exactly one of TESTVAL, GROUPS and PAIRS subcommands must be specified."
-#~ msgstr "TESTVAL, GROUPS en PAIRS subopdracht zijn wederzijds uitsluitend."
+#: src/language/stats/t-test.q:189
+msgid "Exactly one of TESTVAL, GROUPS and PAIRS subcommands must be specified."
+msgstr "Precies 1 van de TESTVAL, GROUPS en PAIRS subopdrachten moet zijn gespecificeerd."
+
+#: src/language/stats/t-test.q:210
+msgid "VARIABLES subcommand may not be used with PAIRS."
+msgstr "VARIABLES subcommando mag niet gebruikt worden met PAIRS."
+
+#: src/language/stats/t-test.q:229
+msgid "One or more VARIABLES must be specified."
+msgstr "Een of meer VARIABLES moeten gespecificeerd zijn."
+
+#: src/language/stats/t-test.q:323
+msgid "When applying GROUPS to a string variable, two values must be specified."
+msgstr "Bij het toepassen van GROUPS op een tekenreeksvariabele moeten twee waardes opgegeven zijn."
+
+#: src/language/stats/t-test.q:394
+msgid "At least two variables must be specified on PAIRS."
+msgstr "Tenminste 2 variabelen moeten opgegeven worden bij PAIRS."
+
+#: src/language/stats/t-test.q:504
+msgid "One-Sample Statistics"
+msgstr ""
 
+#: src/language/stats/t-test.q:509 src/language/stats/t-test.q:529
+#: src/language/stats/t-test.q:628
 #, fuzzy
-#~ msgid "VARIABLES subcommand may not be used with PAIRS."
-#~ msgstr "VARIABLES subprogramma is niet het juiste met PAIRS"
+msgid "SE. Mean"
+msgstr "_Gemiddeld"
 
-#~ msgid "One or more VARIABLES must be specified."
-#~ msgstr "Een of meer VARIABLES moeten gespecificeerd zijn."
+#: src/language/stats/t-test.q:523
+msgid "Group Statistics"
+msgstr ""
 
-#~ msgid ""
-#~ "When applying GROUPS to a string variable, two values must be specified."
-#~ msgstr ""
-#~ "By het toepassen van GROUPS op een string variabele moeten twee waardes "
-#~ "opgegeven zijn."
+#: src/language/stats/t-test.q:622
+msgid "Paired Sample Statistics"
+msgstr ""
 
-#~ msgid "At least two variables must be specified on PAIRS."
-#~ msgstr "Ten minste 2 variabelen moeten opgegeven worden bij PAIRS."
+#: src/language/stats/t-test.q:642 src/language/stats/t-test.q:945
+#: src/language/stats/t-test.q:1119
+#, c-format
+msgid "Pair %d"
+msgstr ""
 
-#~ msgid "Mean Difference"
-#~ msgstr "Gemiddelde Verschil"
+#: src/language/stats/t-test.q:738
+msgid "Independent Samples Test"
+msgstr ""
 
-#~ msgid "Correlation"
-#~ msgstr "Correlatie"
+#: src/language/stats/t-test.q:746
+msgid "Levene's Test for Equality of Variances"
+msgstr ""
 
-#~ msgid "Save As"
-#~ msgstr "Opslaan Als"
+#: src/language/stats/t-test.q:748
+msgid "t-test for Equality of Means"
+msgstr ""
 
-#~ msgid "Bad variable width %d."
-#~ msgstr "Foutieve variabele breedte %d."
+#: src/language/stats/t-test.q:751 src/language/stats/t-test.q:1107
+msgid "Sig."
+msgstr ""
 
-#~ msgid "File specifies unexpected value %g as HIGHEST."
-#~ msgstr "Bestand specificeert onverwachte waarde %g als HIGHEST."
+#: src/language/stats/t-test.q:755 src/language/stats/t-test.q:1013
+msgid "Mean Difference"
+msgstr ""
 
-#~ msgid "File specifies unexpected value %g as LOWEST."
-#~ msgstr "Bestand specificeert onverwachte waarde %g als LOWEST."
+#: src/language/stats/t-test.q:756
+msgid "Std. Error Difference"
+msgstr ""
 
-#~ msgid "%s is unimplemented."
-#~ msgstr "%s is niet geïmplementeerd."
+#: src/language/stats/t-test.q:761 src/language/stats/t-test.q:915
+#: src/language/stats/t-test.q:1005
+#, c-format
+msgid "%g%% Confidence Interval of the Difference"
+msgstr ""
 
-#~ msgid "Bad character in input: `\\%o'."
-#~ msgstr "Fout karakter in input: '\\%o'."
+#: src/language/stats/t-test.q:815
+msgid "Equal variances assumed"
+msgstr ""
+
+#: src/language/stats/t-test.q:861
+msgid "Equal variances not assumed"
+msgstr ""
+
+#: src/language/stats/t-test.q:905
+msgid "Paired Samples Test"
+msgstr ""
+
+#: src/language/stats/t-test.q:908
+msgid "Paired Differences"
+msgstr ""
+
+#: src/language/stats/t-test.q:920
+msgid "Std. Error Mean"
+msgstr ""
+
+#: src/language/stats/t-test.q:994
+msgid "One-Sample Test"
+msgstr "One-Sample Test"
+
+#: src/language/stats/t-test.q:999
+#, c-format
+msgid "Test Value = %f"
+msgstr "Testwaarde = %f"
+
+#: src/language/stats/t-test.q:1102
+msgid "Paired Samples Correlations"
+msgstr ""
 
-#~ msgid "WEIGHT is off."
-#~ msgstr "WEGING is uit."
+#: src/language/stats/t-test.q:1106
+msgid "Correlation"
+msgstr "Correlatie"
 
-#~ msgid "WEIGHT is variable %s."
-#~ msgstr "WEGING is variabele %s."
+#: src/language/stats/t-test.q:1121
+#, c-format
+msgid "%s & %s"
+msgstr "%s & %s"
+
+#: src/language/data-io/file-handle.q:65
+#, c-format
+msgid "File handle %s is already defined.  Use CLOSE FILE HANDLE before redefining a file handle."
+msgstr "Bestands-handle %s is al gedefinieerd. Gebruik CLOSE FILE HANDLE voor het opnieuw definiëren van een bestands-handle."
+
+#: src/language/data-io/file-handle.q:120
+msgid "RECFORM must be specified with MODE=360."
+msgstr "RECFORM moet opgegeven worden met MODE=360."
+
+#: src/language/data-io/file-handle.q:131
+#, fuzzy, c-format
+msgid "The specified file mode requires LRECL.  Assuming %d-character records."
+msgstr "De gespecificeerd bestandsmodus vereist LRECL. %zu-karakter records veronderstelt."
+
+#: src/language/data-io/file-handle.q:135
+#, c-format
+msgid "Record length (%ld) must be between 1 and %lu bytes.  Assuming %d-character records."
+msgstr "Record lengte (%ld) moet tussen 1 en %lu bytes zijn. Veronderstel %d-karakters records."
 
-#~ msgid "WIDTH is %d."
-#~ msgstr "BREEDTE is %d."
+#: src/language/data-io/file-handle.q:177
+msgid "file"
+msgstr "bestand"
 
-#~ msgid ""
-#~ "Ignoring missing values on long string variable %s, which PSPP does not "
-#~ "yet support."
-#~ msgstr ""
-#~ "Negeren van missing values voor lange string variabele %s, wat PSPP nog "
-#~ "niet ondersteunt."
+#: src/language/data-io/file-handle.q:179
+msgid "inline file"
+msgstr "inline-bestand"
 
-#~ msgid ""
-#~ "Ignoring value labels for long string variables, which PSPP does not yet "
-#~ "support."
-#~ msgstr ""
-#~ "Negeer waarde labels voor lange string variabelen, die door PSPP nog niet "
-#~ "ondersteund worden."
+#: src/language/data-io/file-handle.q:205
+msgid "expecting a file name or handle name"
+msgstr "bestands- of handle-naam verwacht"
 
-#~ msgid "Cannot add value labels from source file to long string variable %s."
-#~ msgstr ""
-#~ "Kan geen value labels van bron bestand toevoegen aan lange string "
-#~ "variabele %s."
+#: src/language/data-io/file-handle.q:225
+#, c-format
+msgid "Handle for %s not allowed here."
+msgstr "Handle voor %s is hier niet toegestaan."
 
-#~ msgid ""
-#~ "It is not possible to assign value labels to long string variables such "
-#~ "as %s."
-#~ msgstr ""
-#~ "Het is niet mogelijk om waarde labels aan lange string variabelen als %s "
-#~ "toe te kennen."
+#: src/language/data-io/list.q:165
+#, c-format
+msgid "The first case (%ld) specified precedes the last case (%ld) specified.  The values will be swapped."
+msgstr "De eerste gespecificeerde case (%ld) gaat vooraf aan de laatste gespecificeerde case (%ld). De waardes worden verwisseld."
 
-#~ msgid "Write mode ALL not allowed in general mode.  Assuming WRITE=CELLS."
-#~ msgstr ""
-#~ "Write modus ALL niet toegestaan in algemen modus.  WRITE=CELLS aangenomen."
+#: src/language/data-io/list.q:173
+#, c-format
+msgid "The first case (%ld) to list is less than 1.  The value is being reset to 1."
+msgstr "De eerste case (%ld) om weer te geven is kleiner dan 1. De waarde is op 1 gezet."
 
-#~ msgid "Error writing FLIP file: %s."
-#~ msgstr "Fout tijdens het schrijven van FLIP bestand: %s."
+#: src/language/data-io/list.q:179
+#, c-format
+msgid "The last case (%ld) to list is less than 1.  The value is being reset to 1."
+msgstr "De laatste case (%ld) om weer te geven is kleiner dan 1. De waarde is op 1 gezet."
 
-#~ msgid "Could not create acceptable variant for variable %s."
-#~ msgstr "Kon geen acceptabele variant voor variabele %s creëren."
+#: src/language/data-io/list.q:185
+#, c-format
+msgid "The step value %ld is less than 1.  The value is being reset to 1."
+msgstr "De stap waarde %ld is kleiner dan 1. De waarde is op 1 gezet."
 
-#~ msgid "Cannot create more than 99999 variable names."
-#~ msgstr "Kan niet meer dan 99999 variabele namen creëren."
+#: src/language/data-io/list.q:211
+msgid "`/FORMAT WEIGHT' specified, but weighting is not on."
+msgstr "'/FORMAT WEIGHT' gespecificeerd, maar weging staat niet aan."
 
-#~ msgid "Long string variable %s is not valid here."
-#~ msgstr "Lange string variabele %s is niet geldig hier."
+#: src/language/data-io/list.q:468
+msgid "Line"
+msgstr "Regel"
 
-#~ msgid "PATH and SEARCH subcommands are mutually exclusive.  Ignoring PATH."
-#~ msgstr ""
-#~ "PATH en SEARCH subopdrachten zijn wederzijds uitsluitend. PATH genegeerd. "
+#~ msgid "%s is not allowed inside %s."
+#~ msgstr "%s is niet toegestaan binnen %s."
 
-#~ msgid "At least one value must be specified on PATH."
-#~ msgstr "Tenminste 1 waarde dient bij PATH opgegeven te zijn."
+#~ msgid "Correlations"
+#~ msgstr "Correlatie"
 
-#~ msgid "Hash bits adjusted to %d."
-#~ msgstr "Hash bits aangepast naar %d."
+#~ msgid "Pearson Correlation"
+#~ msgstr "Pearson Correlatie"
 
-#~ msgid "error opening \"%s\" for writing"
-#~ msgstr "fout bij openen \"%s\" voor schrijven"
+#~ msgid "Covariance"
+#~ msgstr "Covariantie"
 
-#~ msgid ""
-#~ "This is beta status software.  Please report bugs to bug-gnu-pspp@gnu.org"
-#~ msgstr ""
-#~ "Dit is beta status software. Rapporteer bugs s.v.p. bij bug-gnu-pspp@gnu."
-#~ "org"
+#~ msgid "Valid Percent"
+#~ msgstr "Geldig Percentage"
 
-#~ msgid "Diagnositic options:"
-#~ msgstr "Diagnostische opties:"
+#~ msgid "Cum Percent"
+#~ msgstr "Cum Percentage"
index f5cda498a89358662965a01c2b5e44a39c5a707b..e4c9234044a687a078d198c2ec85f5385cd4f7dd 100644 (file)
@@ -177,7 +177,7 @@ replace_file_start (const char *file_name, const char *mode,
     {
       /* Generate unique temporary file name. */
       rf->tmp_name = xasprintf ("%s.tmpXXXXXX", file_name);
-      if (gen_tempname (rf->tmp_name, 0600, GT_NOCREATE) < 0)
+      if (gen_tempname (rf->tmp_name, 0, 0600, GT_NOCREATE) < 0)
         {
           msg (ME, _("Creating temporary file to replace %s: %s."),
                rf->file_name, strerror (errno));
index b024e4f0ef81532d51f7024a9b2ea352efba84f6..f63a122fe83b96776b632cef57b51e49c83c4bd1 100644 (file)
@@ -88,6 +88,7 @@ struct sfm_reader
     double bias;               /* Compression bias, usually 100.0. */
     uint8_t opcodes[8];         /* Current block of opcodes. */
     size_t opcode_idx;          /* Next opcode to interpret, 8 if none left. */
+    bool corruption_warning;    /* Warned about possible corruption? */
   };
 
 static const struct casereader_class sys_file_casereader_class;
@@ -270,6 +271,7 @@ sfm_open_reader (struct file_handle *fh, struct dictionary **dict,
   r->oct_cnt = 0;
   r->has_long_var_names = false;
   r->opcode_idx = sizeof r->opcodes;
+  r->corruption_warning = false;
 
   /* TRANSLATORS: this fragment will be interpolated into
      messages in fh_lock() that identify types of files. */
@@ -1710,7 +1712,14 @@ read_compressed_number (struct sfm_reader *r, double *d)
       break;
 
     case 254:
-      sys_error (r, _("Compressed data is corrupt."));
+      float_convert (r->float_format, "        ", FLOAT_NATIVE_DOUBLE, d);
+      if (!r->corruption_warning)
+        {
+          r->corruption_warning = true;
+          sys_warn (r, _("Possible compressed data corruption: "
+                         "compressed spaces appear in numeric field."));
+        }
+      break;
 
     case 255:
       *d = SYSMIS;
@@ -1731,7 +1740,8 @@ read_compressed_number (struct sfm_reader *r, double *d)
 static bool
 read_compressed_string (struct sfm_reader *r, uint8_t *dst)
 {
-  switch (read_opcode (r))
+  int opcode = read_opcode (r);
+  switch (opcode)
     {
     case -1:
     case 252:
@@ -1746,7 +1756,25 @@ read_compressed_string (struct sfm_reader *r, uint8_t *dst)
       break;
 
     default:
-      sys_error (r, _("Compressed data is corrupt."));
+      {
+        double value = opcode - r->bias;
+        float_convert (FLOAT_NATIVE_DOUBLE, &value, r->float_format, dst);
+        if (value == 0.0)
+          {
+            /* This has actually been seen "in the wild".  The submitter of the
+               file that showed that the contents decoded as spaces, but they
+               were at the end of the field so it's possible that the null
+               bytes just acted as null terminators. */
+          }
+        else if (!r->corruption_warning)
+          {
+            r->corruption_warning = true;
+            sys_warn (r, _("Possible compressed data corruption: "
+                           "string contains compressed integer (opcode %d)"),
+                      opcode);
+          }
+      }
+      break;
     }
 
   return true;
index ad90ef409051f47d12d8fcc2e48f5280fadf75aa..c575205ccf2e8b8858e06383854e13f340baaf98 100644 (file)
@@ -18,6 +18,7 @@
 
 #include <libpspp/assertion.h>
 #include <math/covariance.h>
+#include <math/correlation.h>
 #include <math/design-matrix.h>
 #include <gsl/gsl_matrix.h>
 #include <data/casegrouper.h>
 #define N_(msgid) msgid
 
 
-static double
-significance_of_correlation (double rho, double w)
-{
-  double t = w - 2;
-  t /= 1 - MIN (1, pow2 (rho));
-  t = sqrt (t);
-  t *= rho;
-  
-  if (t > 0)
-    return  gsl_cdf_tdist_Q (t, w - 2);
-  else
-    return  gsl_cdf_tdist_P (t, w - 2);
-}
-
-
 struct corr
 {
   size_t n_vars_total;
@@ -291,32 +277,6 @@ output_correlation (const struct corr *corr, const struct corr_opts *opts,
 }
 
 
-static gsl_matrix *
-correlation_from_covariance (const gsl_matrix *cv, const gsl_matrix *v)
-{
-  size_t i, j;
-  gsl_matrix *corr = gsl_matrix_calloc (cv->size1, cv->size2);
-  
-  for (i = 0 ; i < cv->size1; ++i)
-    {
-      for (j = 0 ; j < cv->size2; ++j)
-       {
-         double rho = gsl_matrix_get (cv, i, j);
-         
-         rho /= sqrt (gsl_matrix_get (v, i, j))
-           * 
-           sqrt (gsl_matrix_get (v, j, i));
-         
-         gsl_matrix_set (corr, i, j, rho);
-       }
-    }
-  
-  return corr;
-}
-
-
-
-
 static void
 run_corr (struct casereader *r, const struct corr_opts *opts, const struct corr *corr)
 {
index 1d21a4f6a1221ed6b83f3c2bbb8d4e25c457c95a..1f2691d8919e01eac157688d053f218c426581af 100644 (file)
@@ -114,6 +114,7 @@ cmd_roc (struct lexer *lexer, struct dataset *ds)
       goto error;
     }
 
+  value_init (&roc.state_value, var_get_width (roc.state_var));
   parse_value (lexer, &roc.state_value, var_get_width (roc.state_var));
 
 
@@ -273,10 +274,12 @@ cmd_roc (struct lexer *lexer, struct dataset *ds)
   if ( ! run_roc (ds, &roc)) 
     goto error;
 
+  value_destroy (&roc.state_value, var_get_width (roc.state_var));
   free (roc.vars);
   return CMD_SUCCESS;
 
  error:
+  value_destroy (&roc.state_value, var_get_width (roc.state_var));
   free (roc.vars);
   return CMD_FAILURE;
 }
index d417d31c0d26e944b9548756e05e2baf1ea178ad..a483bd9e35f2dea56afd12eb16ab6905725120aa 100644 (file)
@@ -43,6 +43,7 @@
 #include <libpspp/taint.h>
 #include <math/group-proc.h>
 #include <math/levene.h>
+#include <math/correlation.h>
 #include <output/manager.h>
 #include <output/table.h>
 #include <data/format.h>
@@ -1110,14 +1111,6 @@ pscbox (struct t_test_proc *proc)
   for (i = 0; i < proc->n_pairs; i++)
     {
       struct pair *pair = &proc->pairs[i];
-      double df = pair->n - 2;
-      double p, q;
-
-      /* corr2 will mathematically always be in the range [0, 1.0].  Inaccurate
-         calculations sometimes cause it to be slightly greater than 1.0, so
-         force it into the correct range to avoid NaN from sqrt(). */
-      double corr2 = MIN (1.0, pow2 (pair->correlation));
-      double correlation_t = pair->correlation * sqrt (df) / sqrt (1 - corr2);
 
       /* row headings */
       tab_text_format (table, 0, i + 1, TAB_LEFT | TAT_TITLE,
@@ -1131,10 +1124,8 @@ pscbox (struct t_test_proc *proc)
       tab_double (table, 2, i + 1, TAB_RIGHT, pair->n, &proc->weight_format);
       tab_double (table, 3, i + 1, TAB_RIGHT, pair->correlation, NULL);
 
-      p = gsl_cdf_tdist_P (correlation_t, df);
-      q = gsl_cdf_tdist_Q (correlation_t, df);
-      tab_double (table, 4, i + 1, TAB_RIGHT,
-                 2.0 * (correlation_t > 0 ? q : p), NULL);
+      tab_double (table, 4, i + 1, TAB_RIGHT, 
+                 2.0 * significance_of_correlation (pair->correlation, pair->n), NULL);
     }
 
   tab_submit (table);
index 9fc15aaf10a35088095399764f85a910178e9816..a17919e405a92e81c56cd3828f4f5987c7af5082 100644 (file)
@@ -17,6 +17,8 @@ src_math_libpspp_math_la_SOURCES = \
        src/math/covariance.h \
        src/math/covariance-matrix.c \
        src/math/covariance-matrix.h \
+       src/math/correlation.c \
+       src/math/correlation.h \
        src/math/design-matrix.c src/math/design-matrix.h \
        src/math/extrema.c src/math/extrema.h \
        src/math/group.c  src/math/group.h \
diff --git a/src/math/correlation.c b/src/math/correlation.c
new file mode 100644 (file)
index 0000000..4776274
--- /dev/null
@@ -0,0 +1,68 @@
+/* PSPP - a program for statistical analysis.
+   Copyright (C) 2009 Free Software Foundation, Inc.
+
+   This program is free software: you can redistribute it and/or modify
+   it under the terms of the GNU General Public License as published by
+   the Free Software Foundation, either version 3 of the License, or
+   (at your option) any later version.
+
+   This program is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+   GNU General Public License for more details.
+
+   You should have received a copy of the GNU General Public License
+   along with this program.  If not, see <http://www.gnu.org/licenses/>. */
+
+#include <config.h>
+
+#include "correlation.h"
+
+#include <gsl/gsl_matrix.h>
+#include <gsl/gsl_cdf.h>
+#include <math.h>
+#include <libpspp/misc.h>
+#include "minmax.h"
+
+
+double
+significance_of_correlation (double rho, double w)
+{
+  double t = w - 2;
+
+  /* |rho| will mathematically always be in the range [0, 1.0].  Inaccurate
+     calculations sometimes cause it to be slightly greater than 1.0, so
+     force it into the correct range to avoid NaN from sqrt(). */
+  t /= 1 - MIN (1, pow2 (rho));
+
+  t = sqrt (t);
+  t *= rho;
+  
+  if (t > 0)
+    return  gsl_cdf_tdist_Q (t, w - 2);
+  else
+    return  gsl_cdf_tdist_P (t, w - 2);
+}
+
+gsl_matrix *
+correlation_from_covariance (const gsl_matrix *cv, const gsl_matrix *v)
+{
+  size_t i, j;
+  gsl_matrix *corr = gsl_matrix_calloc (cv->size1, cv->size2);
+  
+  for (i = 0 ; i < cv->size1; ++i)
+    {
+      for (j = 0 ; j < cv->size2; ++j)
+       {
+         double rho = gsl_matrix_get (cv, i, j);
+         
+         rho /= sqrt (gsl_matrix_get (v, i, j))
+           * 
+           sqrt (gsl_matrix_get (v, j, i));
+         
+         gsl_matrix_set (corr, i, j, rho);
+       }
+    }
+  
+  return corr;
+}
diff --git a/src/math/correlation.h b/src/math/correlation.h
new file mode 100644 (file)
index 0000000..27621c4
--- /dev/null
@@ -0,0 +1,27 @@
+/* PSPP - a program for statistical analysis.
+   Copyright (C) 2009 Free Software Foundation, Inc.
+
+   This program is free software: you can redistribute it and/or modify
+   it under the terms of the GNU General Public License as published by
+   the Free Software Foundation, either version 3 of the License, or
+   (at your option) any later version.
+
+   This program is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+   GNU General Public License for more details.
+
+   You should have received a copy of the GNU General Public License
+   along with this program.  If not, see <http://www.gnu.org/licenses/>. */
+
+
+#ifndef SRC_MATH_CORRELATION_H
+#define SRC_MATH_CORRELATION_H
+
+#include <gsl/gsl_matrix.h>
+
+gsl_matrix * correlation_from_covariance (const gsl_matrix *cv, const gsl_matrix *v);
+
+double significance_of_correlation (double rho, double w);
+
+#endif
index f520762fc1f090647b2af3d446aeae3808a6e575..85185b3931f47633c7d943b3731d5db30df95f49 100644 (file)
@@ -78,8 +78,6 @@ about_new (GtkMenuItem *m, GtkWindow *parent)
 
   gtk_window_set_modal (GTK_WINDOW (about), TRUE);
 
-  gtk_window_set_keep_above (GTK_WINDOW (about), TRUE);
-
   gtk_dialog_run (GTK_DIALOG (about));
 
   gtk_widget_hide (about);
index 05f362194cc207442d902d3b63fcd6d18adeb4f6..3fbf46520d2137e18d934c86f16e0ce4b1f553c4 100644 (file)
@@ -55,6 +55,7 @@ UNINSTALL_DATA_HOOKS += uninstall-icons
 
 
 UI_FILES = \
+       src/ui/gui/correlation.ui \
        src/ui/gui/crosstabs.ui \
        src/ui/gui/descriptives.ui \
        src/ui/gui/examine.ui \
@@ -64,9 +65,11 @@ UI_FILES = \
        src/ui/gui/oneway.ui \
        src/ui/gui/psppire.ui \
        src/ui/gui/rank.ui \
+       src/ui/gui/sort.ui \
        src/ui/gui/recode.ui \
        src/ui/gui/regression.ui \
        src/ui/gui/reliability.ui \
+       src/ui/gui/roc.ui \
        src/ui/gui/t-test.ui \
        src/ui/gui/text-data-import.ui \
        src/ui/gui/var-sheet-dialogs.ui \
@@ -113,6 +116,8 @@ src_ui_gui_psppire_SOURCES = \
        src/ui/gui/comments-dialog.h \
        src/ui/gui/compute-dialog.c \
        src/ui/gui/compute-dialog.h \
+       src/ui/gui/correlation-dialog.c \
+       src/ui/gui/correlation-dialog.h \
        src/ui/gui/crosstabs-dialog.c \
        src/ui/gui/crosstabs-dialog.h \
        src/ui/gui/customentry.c \
@@ -163,7 +168,11 @@ src_ui_gui_psppire_SOURCES = \
        src/ui/gui/psppire-keypad.h \
        src/ui/gui/psppire-output-window.c \
        src/ui/gui/psppire-output-window.h \
+       src/ui/gui/psppire-var-view.c \
+       src/ui/gui/psppire-var-view.h \
        src/ui/gui/psppire-selector.h \
+       src/ui/gui/psppire-select-dest.c \
+       src/ui/gui/psppire-select-dest.h \
        src/ui/gui/psppire-syntax-window.c \
        src/ui/gui/psppire-syntax-window.h \
        src/ui/gui/psppire-var-ptr.c \
@@ -185,6 +194,8 @@ src_ui_gui_psppire_SOURCES = \
        src/ui/gui/regression-dialog.h \
        src/ui/gui/reliability-dialog.c \
        src/ui/gui/reliability-dialog.h \
+       src/ui/gui/roc-dialog.c \
+       src/ui/gui/roc-dialog.h \
        src/ui/gui/select-cases-dialog.c \
        src/ui/gui/select-cases-dialog.h \
        src/ui/gui/sort-cases-dialog.c \
index c09c7571936fa4e4ca493bd0647b2586629caa6d..8a98bb3dcac48d8158812d5f9b96bb7c4df6b687 100644 (file)
@@ -379,7 +379,6 @@ compute_dialog (GObject *o, gpointer data)
   GtkWidget *functions = get_widget_assert (xml, "compute-treeview2");
   GtkWidget *keypad    = get_widget_assert (xml, "psppire-keypad1");
   GtkWidget *target    = get_widget_assert (xml, "compute-entry1");
-  GtkWidget *syntax_area = get_widget_assert (xml, "compute-textview1");
   GtkWidget *var_selector = get_widget_assert (xml, "compute-selector1");
   GtkWidget *func_selector = get_widget_assert (xml, "compute-selector2");
   GtkWidget *type_and_label = get_widget_assert (xml, "compute-button1");
@@ -398,25 +397,17 @@ compute_dialog (GObject *o, gpointer data)
   gtk_window_set_transient_for (GTK_WINDOW (dialog), GTK_WINDOW (de));
 
   
-  g_object_set (dict_view, "dictionary", scd.dict,
+  g_object_set (dict_view, "model", scd.dict,
                "selection-mode", GTK_SELECTION_SINGLE,
                NULL);
 
-  psppire_selector_set_subjects (PSPPIRE_SELECTOR (var_selector),
-                                dict_view, syntax_area,
-                                insert_source_row_into_text_view,
-                                NULL,
-                                NULL);
-
+  psppire_selector_set_select_func (PSPPIRE_SELECTOR (var_selector),
+                                   insert_source_row_into_text_view, NULL);
 
   function_list_populate (GTK_TREE_VIEW (functions));
 
-  psppire_selector_set_subjects (PSPPIRE_SELECTOR (func_selector),
-                                functions, syntax_area,
-                                insert_function_into_syntax_area,
-                                NULL,
-                                NULL);
-
+  psppire_selector_set_select_func (PSPPIRE_SELECTOR (func_selector),
+                                   insert_function_into_syntax_area, NULL);
 
   scd.xml = xml;
 
diff --git a/src/ui/gui/correlation-dialog.c b/src/ui/gui/correlation-dialog.c
new file mode 100644 (file)
index 0000000..ff6a254
--- /dev/null
@@ -0,0 +1,180 @@
+/* PSPPIRE - a graphical user interface for PSPP.
+   Copyright (C) 2009  Free Software Foundation
+
+   This program is free software: you can redistribute it and/or modify
+   it under the terms of the GNU General Public License as published by
+   the Free Software Foundation, either version 3 of the License, or
+   (at your option) any later version.
+
+   This program is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+   GNU General Public License for more details.
+
+   You should have received a copy of the GNU General Public License
+   along with this program.  If not, see <http://www.gnu.org/licenses/>. */
+
+#include <config.h>
+
+#include "dialog-common.h"
+#include <language/syntax-string-source.h>
+#include <ui/syntax-gen.h>
+#include <libpspp/str.h>
+
+#include "correlation-dialog.h"
+#include "psppire-selector.h"
+#include "psppire-dictview.h"
+#include "psppire-dialog.h"
+
+#include "psppire-data-window.h"
+#include "psppire-var-view.h"
+
+#include "executor.h"
+#include "helper.h"
+
+#include <gtk/gtk.h>
+
+#include "gettext.h"
+#define _(msgid) gettext (msgid)
+#define N_(msgid) msgid
+
+
+struct correlation
+{
+  PsppireDict *dict;
+
+  GtkWidget *variables ;
+
+  GtkWidget *significant;
+  GtkWidget *two_tailed;
+};
+
+
+static char * generate_syntax (const struct correlation *rd);
+
+
+static void
+refresh (struct correlation *rd)
+{
+  GtkTreeModel *liststore =
+    gtk_tree_view_get_model (GTK_TREE_VIEW (rd->variables));
+  gtk_list_store_clear (GTK_LIST_STORE (liststore));
+
+  gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (rd->significant), FALSE);
+
+  gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (rd->two_tailed), TRUE);
+}
+
+
+static gboolean
+dialog_state_valid (gpointer data)
+{
+  struct correlation *corr = data;
+
+  GtkTreeModel *liststore =
+    gtk_tree_view_get_model (GTK_TREE_VIEW (corr->variables));
+
+  if  (gtk_tree_model_iter_n_children (liststore, NULL) >= 1)
+    return TRUE;
+
+  return FALSE;
+}
+
+
+/* Pops up the Correlation dialog box */
+void
+correlation_dialog (GObject *o, gpointer data)
+{
+  struct correlation rd;
+  gint response;
+
+  GtkBuilder *xml = builder_new ("correlation.ui");
+  PsppireDataWindow *de = PSPPIRE_DATA_WINDOW (data);
+  PsppireVarStore *vs;
+
+  GtkWidget *dialog = get_widget_assert   (xml, "correlation-dialog");
+  GtkWidget *source = get_widget_assert   (xml, "dict-view");
+
+  g_object_get (de->data_editor, "var-store", &vs, NULL);
+
+  gtk_window_set_transient_for (GTK_WINDOW (dialog), GTK_WINDOW (de));
+
+  g_object_get (vs, "dictionary", &rd.dict, NULL);
+  g_object_set (source,
+               "model", rd.dict, 
+               "predicate", var_is_numeric,
+               NULL);
+
+  rd.variables = get_widget_assert (xml, "psppire-var-view1");
+  rd.significant = get_widget_assert (xml, "button-flag-significants");
+  rd.two_tailed = get_widget_assert (xml, "button-two-tailed");
+
+  g_signal_connect_swapped (dialog, "refresh", G_CALLBACK (refresh),  &rd);
+
+  psppire_dialog_set_valid_predicate (PSPPIRE_DIALOG (dialog),
+                                     dialog_state_valid, &rd);
+
+  response = psppire_dialog_run (PSPPIRE_DIALOG (dialog));
+
+  switch (response)
+    {
+    case GTK_RESPONSE_OK:
+      {
+       gchar *syntax = generate_syntax (&rd);
+
+       struct getl_interface *sss = create_syntax_string_source (syntax);
+       execute_syntax (sss);
+
+       g_free (syntax);
+      }
+      break;
+    case PSPPIRE_RESPONSE_PASTE:
+      {
+       gchar *syntax = generate_syntax (&rd);
+        paste_syntax_in_new_window (syntax);
+
+       g_free (syntax);
+      }
+      break;
+    default:
+      break;
+    }
+
+  g_object_unref (xml);
+}
+
+
+\f
+
+static char *
+generate_syntax (const struct correlation *rd)
+{
+  gchar *text;
+  GString *string = g_string_new ("CORRELATION");
+  g_string_append (string, "\n\t/VARIABLES = ");
+
+  psppire_var_view_append_names (PSPPIRE_VAR_VIEW (rd->variables), 0, string);
+
+
+  g_string_append (string, "\n\t/PRINT =");
+
+  if (gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (rd->two_tailed)))
+    g_string_append (string, " TWOTAIL");
+  else
+    g_string_append (string, " ONETAIL");
+
+
+  if (gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (rd->significant)))
+    g_string_append (string, " NOSIG");
+  else
+    g_string_append (string, " SIG");
+
+
+  g_string_append (string, ".\n");
+
+  text = string->str;
+
+  g_string_free (string, FALSE);
+
+  return text;
+}
diff --git a/src/ui/gui/correlation-dialog.h b/src/ui/gui/correlation-dialog.h
new file mode 100644 (file)
index 0000000..532970f
--- /dev/null
@@ -0,0 +1,24 @@
+/* PSPPIRE - a graphical user interface for PSPP.
+   Copyright (C) 2009  Free Software Foundation
+
+   This program is free software: you can redistribute it and/or modify
+   it under the terms of the GNU General Public License as published by
+   the Free Software Foundation, either version 3 of the License, or
+   (at your option) any later version.
+
+   This program is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+   GNU General Public License for more details.
+
+   You should have received a copy of the GNU General Public License
+   along with this program.  If not, see <http://www.gnu.org/licenses/>. */
+
+#ifndef __CORRELATION_DIALOG_H
+#define __CORRELATION_DIALOG_H
+
+#include <gtk/gtk.h>
+
+void correlation_dialog (GObject *o, gpointer data);
+
+#endif
diff --git a/src/ui/gui/correlation.ui b/src/ui/gui/correlation.ui
new file mode 100644 (file)
index 0000000..1fad344
--- /dev/null
@@ -0,0 +1,265 @@
+<?xml version="1.0"?>
+<interface>
+  <!-- interface-requires psppire 0.0 -->
+  <requires lib="gtk+" version="2.16"/>
+  <!-- interface-naming-policy project-wide -->
+  <object class="PsppireDialog" id="correlation-dialog">
+    <property name="title" translatable="yes">Bivariate Correlations</property>
+    <property name="modal">True</property>
+    <child internal-child="hbox">
+      <object class="GtkHBox" id="dialog-hbox1">
+        <property name="visible">True</property>
+        <property name="spacing">2</property>
+        <child>
+          <object class="GtkVBox" id="vbox1">
+            <property name="visible">True</property>
+            <property name="orientation">vertical</property>
+            <property name="spacing">5</property>
+            <child>
+              <object class="GtkHBox" id="hbox1">
+                <property name="visible">True</property>
+                <child>
+                  <object class="GtkScrolledWindow" id="scrolledwindow1">
+                    <property name="visible">True</property>
+                    <property name="can_focus">True</property>
+                    <property name="hscrollbar_policy">automatic</property>
+                    <property name="vscrollbar_policy">automatic</property>
+                    <property name="shadow_type">in</property>
+                    <child>
+                      <object class="PsppireDictView" id="dict-view">
+                        <property name="visible">True</property>
+                        <property name="can_focus">True</property>
+                        <property name="border_width">5</property>
+                        <property name="headers_visible">False</property>
+                        <property name="headers_clickable">False</property>
+                      </object>
+                    </child>
+                  </object>
+                  <packing>
+                    <property name="position">0</property>
+                  </packing>
+                </child>
+                <child>
+                  <object class="GtkVBox" id="vbox2">
+                    <property name="visible">True</property>
+                    <property name="orientation">vertical</property>
+                    <child>
+                      <object class="PsppireSelector" id="psppire-selector1">
+                        <property name="visible">True</property>
+                        <property name="can_focus">True</property>
+                        <property name="receives_default">True</property>
+                        <property name="border_width">5</property>
+                        <property name="source_widget">dict-view</property>
+                        <property name="dest_widget">psppire-var-view1</property>
+                      </object>
+                      <packing>
+                        <property name="expand">False</property>
+                        <property name="fill">False</property>
+                        <property name="position">0</property>
+                      </packing>
+                    </child>
+                  </object>
+                  <packing>
+                    <property name="expand">False</property>
+                    <property name="fill">False</property>
+                    <property name="padding">5</property>
+                    <property name="position">1</property>
+                  </packing>
+                </child>
+                <child>
+                  <object class="GtkScrolledWindow" id="scrolledwindow2">
+                    <property name="visible">True</property>
+                    <property name="can_focus">True</property>
+                    <property name="hscrollbar_policy">automatic</property>
+                    <property name="vscrollbar_policy">automatic</property>
+                    <property name="shadow_type">in</property>
+                    <child>
+                      <object class="PsppireVarView" id="psppire-var-view1">
+                        <property name="visible">True</property>
+                        <property name="can_focus">True</property>
+                        <property name="border_width">5</property>
+                        <property name="headers_visible">False</property>
+                        <property name="headers_clickable">False</property>
+                      </object>
+                    </child>
+                  </object>
+                  <packing>
+                    <property name="position">2</property>
+                  </packing>
+                </child>
+              </object>
+              <packing>
+                <property name="position">0</property>
+              </packing>
+            </child>
+            <child>
+              <object class="GtkFrame" id="frame2">
+                <property name="label_xalign">0</property>
+                <child>
+                  <object class="GtkAlignment" id="alignment2">
+                    <property name="visible">True</property>
+                    <property name="left_padding">12</property>
+                    <child>
+                      <object class="GtkHButtonBox" id="hbuttonbox2">
+                        <property name="visible">True</property>
+                        <property name="layout_style">start</property>
+                        <child>
+                          <object class="GtkCheckButton" id="button-pearson">
+                            <property name="label" translatable="yes">Pearso_n</property>
+                            <property name="visible">True</property>
+                            <property name="can_focus">True</property>
+                            <property name="receives_default">False</property>
+                            <property name="use_underline">True</property>
+                            <property name="draw_indicator">True</property>
+                          </object>
+                          <packing>
+                            <property name="expand">False</property>
+                            <property name="fill">False</property>
+                            <property name="position">0</property>
+                          </packing>
+                        </child>
+                        <child>
+                          <object class="GtkCheckButton" id="button-kendall">
+                            <property name="label" translatable="yes">_Kendall's tau-b</property>
+                            <property name="visible">True</property>
+                            <property name="can_focus">True</property>
+                            <property name="receives_default">False</property>
+                            <property name="use_underline">True</property>
+                            <property name="draw_indicator">True</property>
+                          </object>
+                          <packing>
+                            <property name="expand">False</property>
+                            <property name="fill">False</property>
+                            <property name="position">1</property>
+                          </packing>
+                        </child>
+                        <child>
+                          <object class="GtkCheckButton" id="button-spearman">
+                            <property name="label" translatable="yes">_Spearman</property>
+                            <property name="visible">True</property>
+                            <property name="can_focus">True</property>
+                            <property name="receives_default">False</property>
+                            <property name="use_underline">True</property>
+                            <property name="draw_indicator">True</property>
+                          </object>
+                          <packing>
+                            <property name="expand">False</property>
+                            <property name="fill">False</property>
+                            <property name="position">2</property>
+                          </packing>
+                        </child>
+                      </object>
+                    </child>
+                  </object>
+                </child>
+                <child type="label">
+                  <object class="GtkLabel" id="label2">
+                    <property name="visible">True</property>
+                    <property name="label" translatable="yes">Correlation Coefficients</property>
+                    <property name="use_markup">True</property>
+                  </object>
+                </child>
+              </object>
+              <packing>
+                <property name="expand">False</property>
+                <property name="position">1</property>
+              </packing>
+            </child>
+            <child>
+              <object class="GtkFrame" id="frame1">
+                <property name="visible">True</property>
+                <property name="label_xalign">0</property>
+                <child>
+                  <object class="GtkAlignment" id="alignment1">
+                    <property name="visible">True</property>
+                    <property name="left_padding">12</property>
+                    <child>
+                      <object class="GtkHButtonBox" id="hbuttonbox1">
+                        <property name="visible">True</property>
+                        <property name="layout_style">start</property>
+                        <child>
+                          <object class="GtkRadioButton" id="button-two-tailed">
+                            <property name="label" translatable="yes">_Two-tailed</property>
+                            <property name="visible">True</property>
+                            <property name="can_focus">True</property>
+                            <property name="receives_default">False</property>
+                            <property name="use_underline">True</property>
+                            <property name="active">True</property>
+                            <property name="draw_indicator">True</property>
+                          </object>
+                          <packing>
+                            <property name="expand">False</property>
+                            <property name="fill">False</property>
+                            <property name="position">0</property>
+                          </packing>
+                        </child>
+                        <child>
+                          <object class="GtkRadioButton" id="button-one-tailed">
+                            <property name="label" translatable="yes">One-tai_led</property>
+                            <property name="visible">True</property>
+                            <property name="can_focus">True</property>
+                            <property name="receives_default">False</property>
+                            <property name="use_underline">True</property>
+                            <property name="active">True</property>
+                            <property name="draw_indicator">True</property>
+                            <property name="group">button-two-tailed</property>
+                          </object>
+                          <packing>
+                            <property name="expand">False</property>
+                            <property name="fill">False</property>
+                            <property name="position">1</property>
+                          </packing>
+                        </child>
+                      </object>
+                    </child>
+                  </object>
+                </child>
+                <child type="label">
+                  <object class="GtkLabel" id="label1">
+                    <property name="visible">True</property>
+                    <property name="label" translatable="yes">Test of Significance</property>
+                    <property name="use_markup">True</property>
+                  </object>
+                </child>
+              </object>
+              <packing>
+                <property name="expand">False</property>
+                <property name="position">2</property>
+              </packing>
+            </child>
+            <child>
+              <object class="GtkCheckButton" id="button-flag-significants">
+                <property name="label" translatable="yes">_Flag significant correlations</property>
+                <property name="visible">True</property>
+                <property name="can_focus">True</property>
+                <property name="receives_default">False</property>
+                <property name="use_underline">True</property>
+                <property name="draw_indicator">True</property>
+              </object>
+              <packing>
+                <property name="expand">False</property>
+                <property name="position">3</property>
+              </packing>
+            </child>
+          </object>
+          <packing>
+            <property name="padding">2</property>
+            <property name="position">0</property>
+          </packing>
+        </child>
+        <child>
+          <object class="PsppireVButtonBox" id="psppire-vbuttonbox1">
+            <property name="visible">True</property>
+            <property name="border_width">5</property>
+          </object>
+          <packing>
+            <property name="expand">False</property>
+            <property name="fill">False</property>
+            <property name="pack_type">end</property>
+            <property name="position">1</property>
+          </packing>
+        </child>
+      </object>
+    </child>
+  </object>
+</interface>
index 019d8c361dffe49c35b58b2f2799f701abd392b8..2b93a77b657afdfd2cdbb78657669c56ae11bb7b 100644 (file)
@@ -18,6 +18,7 @@
 
 #include "checkbox-treeview.h"
 #include "crosstabs-dialog.h"
+#include "psppire-var-view.h"
 
 #include <gtk/gtk.h>
 #include <stdlib.h>
@@ -259,9 +260,9 @@ generate_syntax (const struct crosstabs_dialog *cd)
   GString *string = g_string_new ("CROSSTABS");
 
   g_string_append (string, "\n\t/TABLES=");
-  append_variable_names (string, cd->dict, GTK_TREE_VIEW (cd->row_vars), 0);
+  psppire_var_view_append_names (PSPPIRE_VAR_VIEW (cd->row_vars), 0, string);
   g_string_append (string, "\tBY\t");
-  append_variable_names (string, cd->dict, GTK_TREE_VIEW (cd->col_vars), 0);
+  psppire_var_view_append_names (PSPPIRE_VAR_VIEW (cd->col_vars), 0, string);
 
   g_string_append (string, "\n\t/FORMAT=");
 
@@ -398,8 +399,6 @@ crosstabs_dialog (GObject *o, gpointer data)
   GtkWidget *source = get_widget_assert   (xml, "dict-treeview");
   GtkWidget *dest_rows =   get_widget_assert   (xml, "rows");
   GtkWidget *dest_cols =   get_widget_assert   (xml, "cols");
-  GtkWidget *row_selector = get_widget_assert (xml, "row-selector");
-  GtkWidget *col_selector = get_widget_assert (xml, "col-selector");
   GtkWidget *format_button = get_widget_assert (xml, "format-button");
   GtkWidget *stat_button = get_widget_assert (xml, "stats-button");
   GtkWidget *cell_button = get_widget_assert (xml, "cell-button");
@@ -424,24 +423,7 @@ crosstabs_dialog (GObject *o, gpointer data)
   gtk_window_set_transient_for (GTK_WINDOW (dialog), GTK_WINDOW (de));
 
   g_object_get (vs, "dictionary", &dict, NULL);
-  g_object_set (source, "dictionary", dict, NULL);
-
-  set_dest_model (GTK_TREE_VIEW (dest_rows), dict);
-  set_dest_model (GTK_TREE_VIEW (dest_cols), dict);
-
-  psppire_selector_set_subjects (PSPPIRE_SELECTOR (row_selector),
-                                source,
-                                dest_rows,
-                                insert_source_row_into_tree_view,
-                                NULL,
-                                NULL);
-
-  psppire_selector_set_subjects (PSPPIRE_SELECTOR (col_selector),
-                                source,
-                                dest_cols,
-                                insert_source_row_into_tree_view,
-                                NULL,
-                                NULL);
+  g_object_set (source, "model", dict, NULL);
 
   cd.row_vars = GTK_TREE_VIEW (dest_rows);
   cd.col_vars = GTK_TREE_VIEW (dest_cols);
index c556c47816b147dc4de5c062a24add6676a7f01f..e21ae808e102e1b6917be548718afec3a3408d4d 100644 (file)
@@ -34,7 +34,7 @@
                         <property name="vscrollbar_policy">automatic</property>
                         <property name="shadow_type">etched-in</property>
                         <child>
-                          <object class="GtkTreeView" id="rows">
+                          <object class="PsppireVarView" id="rows">
                             <property name="visible">True</property>
                             <property name="headers_visible">False</property>
                           </object>
@@ -73,7 +73,7 @@
                         <property name="vscrollbar_policy">automatic</property>
                         <property name="shadow_type">etched-in</property>
                         <child>
-                          <object class="GtkTreeView" id="cols">
+                          <object class="PsppireVarView" id="cols">
                             <property name="visible">True</property>
                             <property name="headers_visible">False</property>
                           </object>
                 <property name="receives_default">True</property>
                 <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
                 <property name="border_width">5</property>
+                <property name="source_widget">dict-treeview</property>
+                <property name="dest_widget">rows</property>
               </object>
               <packing>
                 <property name="left_attach">1</property>
                 <property name="receives_default">True</property>
                 <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
                 <property name="border_width">5</property>
+                <property name="source_widget">dict-treeview</property>
+                <property name="dest_widget">cols</property>
               </object>
               <packing>
                 <property name="left_attach">1</property>
index b40c11cd0301588c14309485e348a86723e19764..7b3104693589d95d28aa03745d8811baa9b8e176 100644 (file)
@@ -54,9 +54,6 @@
  */
 
 #include <config.h>
-#include <gettext.h>
-#define _(msgid) gettext (msgid)
-
 
 #include <gtk/gtksignal.h>
 #include <gtk/gtkentry.h>
@@ -331,7 +328,7 @@ psppire_custom_entry_class_init (PsppireCustomEntryClass *klass)
     (widget_class,
      g_param_spec_enum ("shadow_type",
                        "Shadow Type",
-                       _("Style of bevel around the custom entry button"),
+                       "Style of bevel around the custom entry button",
                        GTK_TYPE_SHADOW_TYPE,
                        GTK_SHADOW_ETCHED_IN,
                        G_PARAM_READABLE),
index 06776248738df3cbea663edeca39e2934b910037..8efdc12b31ab4dd3d021c00e0835785701e37337 100644 (file)
@@ -1,7 +1,7 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<!DOCTYPE glade-interface SYSTEM "glade-2.0.dtd">
-<!--*- mode: xml -*-->
+<?xml version="1.0"?>
 <glade-interface>
+  <!-- interface-requires gtk+ 2.6 -->
+  <!-- interface-naming-policy toplevel-contextual -->
   <widget class="GtkMenuBar" id="menubar">
     <property name="visible">True</property>
     <child>
@@ -13,8 +13,8 @@
           <widget class="GtkMenu" id="menuitem1_menu">
             <child>
               <widget class="GtkImageMenuItem" id="new1">
-                <property name="visible">True</property>
                 <property name="label">gtk-new</property>
+                <property name="visible">True</property>
                 <property name="use_underline">True</property>
                 <property name="use_stock">True</property>
                 <child>
@@ -39,8 +39,8 @@
             </child>
             <child>
               <widget class="GtkImageMenuItem" id="open1">
-                <property name="visible">True</property>
                 <property name="label">gtk-open</property>
+                <property name="visible">True</property>
                 <property name="use_underline">True</property>
                 <property name="use_stock">True</property>
                 <child>
             </child>
             <child>
               <widget class="GtkImageMenuItem" id="file_save">
-                <property name="visible">True</property>
                 <property name="label">gtk-save</property>
+                <property name="visible">True</property>
                 <property name="use_underline">True</property>
                 <property name="use_stock">True</property>
               </widget>
             </child>
             <child>
               <widget class="GtkImageMenuItem" id="file_save_as">
-                <property name="visible">True</property>
                 <property name="label">gtk-save-as</property>
+                <property name="visible">True</property>
                 <property name="use_underline">True</property>
                 <property name="use_stock">True</property>
               </widget>
             </child>
             <child>
               <widget class="GtkImageMenuItem" id="file_quit">
-                <property name="visible">True</property>
                 <property name="label">gtk-quit</property>
+                <property name="visible">True</property>
                 <property name="use_underline">True</property>
                 <property name="use_stock">True</property>
               </widget>
             </child>
             <child>
               <widget class="GtkImageMenuItem" id="edit_goto-case">
+                <property name="label">Go To Case</property>
                 <property name="visible">True</property>
                 <property name="sensitive">False</property>
-                <property name="label" translatable="yes">Go To Case</property>
                 <property name="use_underline">True</property>
+                <property name="use_stock">True</property>
               </widget>
             </child>
             <child>
             </child>
             <child>
               <widget class="GtkImageMenuItem" id="edit_cut">
+                <property name="label">gtk-cut</property>
                 <property name="visible">True</property>
                 <property name="sensitive">False</property>
-                <property name="label">gtk-cut</property>
                 <property name="use_underline">True</property>
                 <property name="use_stock">True</property>
               </widget>
             </child>
             <child>
               <widget class="GtkImageMenuItem" id="edit_copy">
+                <property name="label">gtk-copy</property>
                 <property name="visible">True</property>
                 <property name="sensitive">False</property>
-                <property name="label">gtk-copy</property>
                 <property name="use_underline">True</property>
                 <property name="use_stock">True</property>
               </widget>
             </child>
             <child>
               <widget class="GtkImageMenuItem" id="edit_paste">
+                <property name="label">gtk-paste</property>
                 <property name="visible">True</property>
                 <property name="sensitive">False</property>
-                <property name="label">gtk-paste</property>
                 <property name="use_underline">True</property>
                 <property name="use_stock">True</property>
               </widget>
             </child>
             <child>
               <widget class="GtkImageMenuItem" id="edit_find">
+                <property name="label">gtk-find</property>
                 <property name="visible">True</property>
                 <property name="sensitive">False</property>
-                <property name="label" translatable="yes">gtk-find</property>
                 <property name="use_underline">True</property>
                 <property name="use_stock">True</property>
               </widget>
           <widget class="GtkMenu" id="data_menu">
             <child>
               <widget class="GtkImageMenuItem" id="data_sort-cases">
+                <property name="label">_Sort Cases</property>
                 <property name="visible">True</property>
-                <property name="label" translatable="yes">_Sort Cases</property>
                 <property name="use_underline">True</property>
-                <child internal-child="image">
-                  <widget class="GtkImage" id="menu-item-image1">
-                    <property name="visible">True</property>
-                    <property name="stock">gtk-sort-ascending</property>
-                  </widget>
-                </child>
+                <property name="use_stock">True</property>
               </widget>
             </child>
             <child>
                 <property name="sensitive">False</property>
                 <property name="label" translatable="yes">_Run Pending Transforms</property>
                 <property name="use_underline">True</property>
-                <accelerator key="G" modifiers="GDK_CONTROL_MASK" signal="activate"/>
+                <accelerator key="G" signal="activate" modifiers="GDK_CONTROL_MASK"/>
               </widget>
             </child>
           </widget>
                 </child>
               </widget>
             </child>
+            <child>
+              <widget class="GtkMenuItem" id="correlation">
+                <property name="visible">True</property>
+                <property name="label" translatable="yes">Bivariate _Correlation...</property>
+                <property name="use_underline">True</property>
+              </widget>
+            </child>
             <child>
               <widget class="GtkMenuItem" id="reliability">
                 <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
                 </child>
               </widget>
             </child>
+            <child>
+              <widget class="GtkMenuItem" id="roc-curve">
+                <property name="visible">True</property>
+                <property name="label" translatable="yes">ROC Cur_ve...</property>
+                <property name="use_underline">True</property>
+              </widget>
+            </child>
           </widget>
         </child>
       </widget>
           <widget class="GtkMenu" id="menuitem5_menu">
             <child>
               <widget class="GtkImageMenuItem" id="help_reference">
+                <property name="label">_Reference Manual</property>
                 <property name="visible">True</property>
-                <property name="label" translatable="yes">_Reference Manual</property>
                 <property name="use_underline">True</property>
-                <child internal-child="image">
-                  <widget class="GtkImage" id="menu-item-image2">
-                    <property name="visible">True</property>
-                    <property name="stock">gtk-help</property>
-                  </widget>
-                </child>
               </widget>
             </child>
             <child>
               <widget class="GtkImageMenuItem" id="help_about">
+                <property name="label">_About</property>
                 <property name="visible">True</property>
-                <property name="label" translatable="yes">_About</property>
                 <property name="use_underline">True</property>
-                <child internal-child="image">
-                  <widget class="GtkImage" id="menu-item-image3">
-                    <property name="visible">True</property>
-                    <property name="stock">gtk-about</property>
-                  </widget>
-                </child>
+                <property name="use_stock">True</property>
               </widget>
             </child>
           </widget>
   </widget>
   <widget class="GtkHandleBox" id="handlebox1">
     <property name="visible">True</property>
-    <property name="shadow_type">GTK_SHADOW_OUT</property>
     <child>
       <widget class="GtkToolbar" id="toolbar1">
         <property name="visible">True</property>
           </widget>
           <packing>
             <property name="expand">False</property>
+            <property name="homogeneous">True</property>
           </packing>
         </child>
         <child>
           </widget>
           <packing>
             <property name="expand">False</property>
+            <property name="homogeneous">True</property>
           </packing>
         </child>
         <child>
           </widget>
           <packing>
             <property name="expand">False</property>
+            <property name="homogeneous">True</property>
           </packing>
         </child>
         <child>
           </widget>
           <packing>
             <property name="expand">False</property>
+            <property name="homogeneous">True</property>
           </packing>
         </child>
         <child>
-          <widget class="GtkSeparatorToolItem" id="separatortoolitem1">
-          </widget>
+          <widget class="GtkSeparatorToolItem" id="separatortoolitem1"/>
           <packing>
             <property name="expand">False</property>
-            <property name="homogeneous">False</property>
           </packing>
         </child>
         <child>
           </widget>
           <packing>
             <property name="expand">False</property>
+            <property name="homogeneous">True</property>
           </packing>
         </child>
         <child>
           </widget>
           <packing>
             <property name="expand">False</property>
+            <property name="homogeneous">True</property>
           </packing>
         </child>
         <child>
           </widget>
           <packing>
             <property name="expand">False</property>
-            <property name="homogeneous">False</property>
           </packing>
         </child>
         <child>
           </widget>
           <packing>
             <property name="expand">False</property>
+            <property name="homogeneous">True</property>
           </packing>
         </child>
         <child>
           </widget>
           <packing>
             <property name="expand">False</property>
+            <property name="homogeneous">True</property>
           </packing>
         </child>
         <child>
           </widget>
           <packing>
             <property name="expand">False</property>
-            <property name="homogeneous">False</property>
           </packing>
         </child>
         <child>
           </widget>
           <packing>
             <property name="expand">False</property>
+            <property name="homogeneous">True</property>
           </packing>
         </child>
         <child>
           </widget>
           <packing>
             <property name="expand">False</property>
-            <property name="homogeneous">False</property>
           </packing>
         </child>
         <child>
           </widget>
           <packing>
             <property name="expand">False</property>
+            <property name="homogeneous">True</property>
           </packing>
         </child>
         <child>
           </widget>
           <packing>
             <property name="expand">False</property>
+            <property name="homogeneous">True</property>
           </packing>
         </child>
         <child>
           </widget>
           <packing>
             <property name="expand">False</property>
-            <property name="homogeneous">False</property>
           </packing>
         </child>
         <child>
           </widget>
           <packing>
             <property name="expand">False</property>
+            <property name="homogeneous">True</property>
           </packing>
         </child>
         <child>
           </widget>
           <packing>
             <property name="expand">False</property>
+            <property name="homogeneous">True</property>
           </packing>
         </child>
         <child>
           </widget>
           <packing>
             <property name="expand">False</property>
+            <property name="homogeneous">True</property>
           </packing>
         </child>
         <child>
           </widget>
           <packing>
             <property name="expand">False</property>
-            <property name="homogeneous">False</property>
           </packing>
         </child>
         <child>
           </widget>
           <packing>
             <property name="expand">False</property>
+            <property name="homogeneous">True</property>
           </packing>
         </child>
         <child>
           </widget>
           <packing>
             <property name="expand">False</property>
+            <property name="homogeneous">True</property>
           </packing>
         </child>
       </widget>
       <widget class="GtkFrame" id="frame2">
         <property name="visible">True</property>
         <property name="label_xalign">0</property>
-        <property name="shadow_type">GTK_SHADOW_IN</property>
+        <property name="shadow_type">in</property>
         <child>
           <widget class="GtkEventBox" id="eventbox1">
             <property name="visible">True</property>
           </widget>
         </child>
       </widget>
+      <packing>
+        <property name="position">0</property>
+      </packing>
     </child>
     <child>
       <widget class="GtkFrame" id="frame3">
         <property name="visible">True</property>
         <property name="label_xalign">0</property>
-        <property name="shadow_type">GTK_SHADOW_IN</property>
+        <property name="shadow_type">in</property>
         <child>
           <widget class="GtkEventBox" id="eventbox2">
             <property name="visible">True</property>
       <widget class="GtkFrame" id="frame5">
         <property name="visible">True</property>
         <property name="label_xalign">0</property>
-        <property name="shadow_type">GTK_SHADOW_IN</property>
+        <property name="shadow_type">in</property>
         <child>
           <widget class="GtkEventBox" id="eventbox4">
             <property name="visible">True</property>
       <widget class="GtkFrame" id="frame6">
         <property name="visible">True</property>
         <property name="label_xalign">0</property>
-        <property name="shadow_type">GTK_SHADOW_IN</property>
+        <property name="shadow_type">in</property>
         <child>
           <widget class="GtkEventBox" id="eventbox5">
             <property name="visible">True</property>
             <child>
               <widget class="GtkLabel" id="filter-use-status-area">
                 <property name="visible">True</property>
-                <property name="ellipsize">PANGO_ELLIPSIZE_START</property>
+                <property name="ellipsize">start</property>
                 <property name="width_chars">10</property>
                 <property name="single_line_mode">True</property>
               </widget>
       <widget class="GtkFrame" id="frame7">
         <property name="visible">True</property>
         <property name="label_xalign">0</property>
-        <property name="shadow_type">GTK_SHADOW_IN</property>
+        <property name="shadow_type">in</property>
         <child>
           <widget class="GtkEventBox" id="eventbox6">
             <property name="visible">True</property>
             <child>
               <widget class="GtkLabel" id="weight-status-area">
                 <property name="visible">True</property>
-                <property name="ellipsize">PANGO_ELLIPSIZE_START</property>
+                <property name="ellipsize">start</property>
                 <property name="width_chars">15</property>
                 <property name="single_line_mode">True</property>
               </widget>
       <widget class="GtkFrame" id="frame8">
         <property name="visible">True</property>
         <property name="label_xalign">0</property>
-        <property name="shadow_type">GTK_SHADOW_IN</property>
+        <property name="shadow_type">in</property>
         <child>
           <widget class="GtkEventBox" id="eventbox7">
             <property name="visible">True</property>
             <child>
               <widget class="GtkLabel" id="split-file-status-area">
                 <property name="visible">True</property>
-                <property name="ellipsize">PANGO_ELLIPSIZE_START</property>
+                <property name="ellipsize">start</property>
                 <property name="width_chars">15</property>
                 <property name="single_line_mode">True</property>
               </widget>
index 318646f8ef87a4eff2002a092f7d6a111a6e70f1..9d8502de058b34b2cfa301338978ccc69267f4e2 100644 (file)
@@ -18,6 +18,7 @@
 
 #include "checkbox-treeview.h"
 #include "descriptives-dialog.h"
+#include "psppire-var-view.h"
 
 #include <gtk/gtk.h>
 #include <stdlib.h>
@@ -117,7 +118,7 @@ generate_syntax (const struct descriptives_dialog *scd)
 
   string = g_string_new ("DESCRIPTIVES");
   g_string_append (string, "\n    /VARIABLES=");
-  append_variable_names (string, scd->dict, GTK_TREE_VIEW (scd->stat_vars), 0);
+  psppire_var_view_append_names (PSPPIRE_VAR_VIEW (scd->stat_vars), 0, string);
 
   listwise = gtk_toggle_button_get_active (scd->exclude_missing_listwise);
   include = gtk_toggle_button_get_active (scd->include_user_missing);
@@ -212,7 +213,6 @@ descriptives_dialog (GObject *o, gpointer data)
 
 
   GtkWidget *source = get_widget_assert   (xml, "all-variables");
-  GtkWidget *selector = get_widget_assert (xml, "stat-var-selector");
   GtkWidget *dest =   get_widget_assert   (xml, "stat-variables");
 
   GtkWidget *stats_treeview = get_widget_assert    (xml, "statistics");
@@ -226,18 +226,9 @@ descriptives_dialog (GObject *o, gpointer data)
   gtk_window_set_transient_for (GTK_WINDOW (dialog), GTK_WINDOW (de));
 
 
-  g_object_set (source, "dictionary", dict,
+  g_object_set (source, "model", dict,
        "predicate", var_is_numeric, NULL);
 
-  set_dest_model (GTK_TREE_VIEW (dest), dict);
-
-  psppire_selector_set_subjects (PSPPIRE_SELECTOR (selector),
-                                source,
-                                dest,
-                                insert_source_row_into_tree_view,
-                                NULL,
-                                NULL);
-
   put_checkbox_items_in_treeview (GTK_TREE_VIEW (stats_treeview),
                                  B_DS_DEFAULT,
                                  N_DESCRIPTIVE_STATS, stats);
index f5dc93f2423719539725a27d19984f157a1e8c75..62e601f91d617fae16b5bdf768b7c23c4a909a8c 100644 (file)
@@ -56,6 +56,8 @@
                         <property name="receives_default">True</property>
                         <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
                         <property name="border_width">5</property>
+                        <property name="source_widget">all-variables</property>
+                        <property name="dest_widget">stat-variables</property>
                       </object>
                     </child>
                   </object>
@@ -97,7 +99,7 @@
                             <property name="vscrollbar_policy">automatic</property>
                             <property name="shadow_type">etched-in</property>
                             <child>
-                              <object class="GtkTreeView" id="stat-variables">
+                              <object class="PsppireVarView" id="stat-variables">
                                 <property name="visible">True</property>
                                 <property name="can_focus">True</property>
                                 <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
index 5d52204ce566ad89cdb1807adda7be338bf846e5..c61cb14a64a88ef4b3dba174f194277c5c552216 100644 (file)
 #include "helper.h"
 
 
-/* Append the names of selected variables to STRING.
-   TREEVIEW is the treeview containing the variables.
-   COLUMN is the column in the treeview containing the variables.
-   DICT is the dictionary for those variables.
-*/
-gint
-append_variable_names (GString *string,
-                      PsppireDict *dict, GtkTreeView *treeview, gint column)
-{
-  gint n_vars = 0;
-  GtkTreeIter iter;
-
-  GtkTreeModel *list_store =
-    gtk_tree_view_get_model (treeview);
-
-  if ( gtk_tree_model_get_iter_first (list_store, &iter) )
-    {
-      do
-       {
-         GValue value = {0};
-         struct variable *var = NULL;
-         GtkTreePath *path = gtk_tree_model_get_path (list_store, &iter);
-
-         gtk_tree_model_get_value (list_store, &iter, column, &value);
-
-         /* FIXME:  G_TYPE_INT should be deprecated.
-            As well as being simpler, it'd be unecessary to pass dict */
-         if ( G_VALUE_TYPE (&value) == G_TYPE_INT )
-         var = psppire_dict_get_variable (dict, g_value_get_int (&value));
-
-         else if ( G_VALUE_TYPE (&value) == PSPPIRE_VAR_PTR_TYPE)
-           var = g_value_get_boxed (&value);
-
-         else
-           g_critical ("Unsupported type \"%s\", in variable name treeview.",
-                       G_VALUE_TYPE_NAME (&value));
-
-         g_value_unset (&value);
-
-         g_string_append (string, " ");
-         g_string_append (string, var_get_name (var));
-
-         gtk_tree_path_free (path);
-         n_vars++;
-       }
-      while (gtk_tree_model_iter_next (list_store, &iter));
-    }
-
-  return n_vars;
-}
-
-
-
-struct variable *
-get_selected_variable (GtkTreeModel *treemodel,
-                      GtkTreeIter *iter,
-                      PsppireDict *dict)
-{
-  struct variable *var;
-  GValue value = {0};
-
-  GtkTreePath *path = gtk_tree_model_get_path (treemodel, iter);
-
-  gtk_tree_model_get_value (treemodel, iter, 0, &value);
-
-  gtk_tree_path_free (path);
-
-  var =  psppire_dict_get_variable (dict, g_value_get_int (&value));
-
-  g_value_unset (&value);
-
-  return var;
-}
-
-
-
-
-/* A (*GtkTreeCellDataFunc) function.
-   This function expects TREEMODEL to hold G_TYPE_INT.  The ints it holds
-   are the indices of the variables in the dictionary, which DATA points to.
-   It renders the name of the variable into CELL.
-*/
-void
-cell_var_name (GtkTreeViewColumn *tree_column,
-              GtkCellRenderer *cell,
-              GtkTreeModel *tree_model,
-              GtkTreeIter *iter,
-              gpointer data)
-{
-  PsppireDict *dict = data;
-  const struct variable *var = get_selected_variable (tree_model, iter, dict);
-
-  g_object_set (cell, "text", var_get_name (var), NULL);
-}
-
-
-
-/* Set a model for DEST, which is an GtkListStore of g_int's
-   whose values are the indices into DICT */
-void
-set_dest_model (GtkTreeView *dest, PsppireDict *dict)
-{
-  GtkTreeViewColumn *col;
-  GtkListStore *dest_list = gtk_list_store_new (1, G_TYPE_INT);
-  GtkCellRenderer *renderer = gtk_cell_renderer_text_new ();
-
-  gtk_tree_view_set_model (GTK_TREE_VIEW (dest), GTK_TREE_MODEL (dest_list));
-
-  col = gtk_tree_view_column_new_with_attributes ("Var",
-                                                 renderer,
-                                                 "text",
-                                                 0,
-                                                 NULL);
-
-  gtk_tree_view_column_set_cell_data_func (col, renderer,
-                                          cell_var_name,
-                                          dict, 0);
-
-  /* FIXME: make this a value in terms of character widths */
-  g_object_set (col, "min-width",  100, NULL);
-
-  gtk_tree_view_column_set_sizing (col, GTK_TREE_VIEW_COLUMN_FIXED);
-
-  gtk_tree_view_append_column (GTK_TREE_VIEW (dest), col);
-}
-
-
-
 /* Returns FALSE if the variables represented by the union of the rows
    currently selected by SOURCE widget, and contents of the DEST
    widget, are of different types.
@@ -224,11 +96,8 @@ homogeneous_types (GtkWidget *source, GtkWidget *dest)
        ok;
        ok = gtk_tree_model_iter_next (model, &iter))
     {
-      gint idx;
       const struct variable *v;
-      gtk_tree_model_get (model, &iter, 0, &idx, -1);
-
-      v = psppire_dict_get_variable (dict, idx);
+      gtk_tree_model_get (model, &iter, 0, &v, -1);
 
       if ( type != -1 )
        {
@@ -242,7 +111,6 @@ homogeneous_types (GtkWidget *source, GtkWidget *dest)
       type = var_get_type (v);
     }
 
-
   return retval;
 }
 
index 9a003f35a20e84941b6ec83cc92870295ac38e0d..328904acfc9643fbf669cf6cd0f2f3451166d9c1 100644 (file)
 #include <gtk/gtk.h>
 #include "psppire-dict.h"
 
-/* Append the names of selected variables to STRING.
-   TREEVIEW is the treeview containing the variables.
-   COLUMN is column in treeview containing the variables.
-   DICT is the dictionary for those variables.
-*/
-gint append_variable_names (GString *string, PsppireDict *dict,
-                           GtkTreeView *treeview, gint column);
-
-
-/* Returns the variable currently selected by the iterator
-   pointing to TREEMODEL */
-struct variable * get_selected_variable (GtkTreeModel *treemodel,
-                                        GtkTreeIter *iter,
-                                        PsppireDict *dict);
-
-
-
 /* A (*GtkTreeCellDataFunc) function.
    This function expects TREEMODEL to hold G_TYPE_INT.  The ints it holds
    are the indices of the variables in the dictionary, which DATA points to.
    It renders the name of the variable into CELL.
 */
-void cell_var_name (GtkTreeViewColumn *tree_column,
+void XXX_cell_var_name (GtkTreeViewColumn *tree_column,
                    GtkCellRenderer *cell,
                    GtkTreeModel *tree_model,
                    GtkTreeIter *iter,
                    gpointer data);
 
 
-/* Set a model for DEST, which is an GtkListStore of g_int's
-   whose values are the indices into DICT */
-void set_dest_model (GtkTreeView *dest, PsppireDict *dict);
-
-
 /* Returns FALSE if the variables represented by the union of the rows
    currently selected by SOURCE widget, and contents of the DEST
    widget, are of different types.
index 1665d7ff3f7a3c0a4bc8e1b4ebeb12b99cc8cfb9..160cdb2a1b8e635c4ad72a08892ca11edbddef9d 100644 (file)
@@ -54,7 +54,6 @@ get_base_model (GtkTreeModel *top_model, GtkTreeIter *top_iter,
 }
 
 
-
 void
 insert_source_row_into_entry (GtkTreeIter iter,
                              GtkWidget *dest,
@@ -84,7 +83,6 @@ insert_source_row_into_entry (GtkTreeIter iter,
 }
 
 
-
 void
 insert_source_row_into_tree_view (GtkTreeIter iter,
                                  GtkWidget *dest,
@@ -96,24 +94,28 @@ insert_source_row_into_tree_view (GtkTreeIter iter,
   GtkTreeIter dest_iter;
   GtkTreeIter dict_iter;
   gint *row ;
-  GtkTreeModel *destmodel = gtk_tree_view_get_model ( GTK_TREE_VIEW (dest));
+  GtkTreeModel *destmodel = gtk_tree_view_get_model (GTK_TREE_VIEW (dest));
 
+  const struct variable *var;
   GtkTreeModel *dict;
 
-
   get_base_model (model, &iter, &dict, &dict_iter);
 
   path = gtk_tree_model_get_path (dict, &dict_iter);
 
   row = gtk_tree_path_get_indices (path);
 
+  var = psppire_dict_get_variable (PSPPIRE_DICT (dict), *row);
+
   gtk_list_store_append (GTK_LIST_STORE (destmodel),  &dest_iter);
-  gtk_list_store_set (GTK_LIST_STORE (destmodel), &dest_iter, 0, *row, -1);
+
+  gtk_list_store_set (GTK_LIST_STORE (destmodel), &dest_iter, 0, var, -1);
 
   gtk_tree_path_free (path);
 }
 
 
+
 gboolean
 is_currently_in_entry (GtkTreeModel *model, GtkTreeIter *iter,
                       PsppireSelector *selector)
@@ -125,7 +127,12 @@ is_currently_in_entry (GtkTreeModel *model, GtkTreeIter *iter,
   gint dict_index;
   gint *indeces;
   GtkTreePath *path;
-  const gchar *text =  gtk_entry_get_text (GTK_ENTRY (selector->dest));
+  GtkWidget *entry = NULL;
+  const gchar *text = NULL;
+
+  g_object_get (selector, "dest-widget", &entry, NULL);
+
+  text = gtk_entry_get_text (GTK_ENTRY (entry));
 
   get_base_model (model, iter, &dict, &dict_iter);
 
index 2c8df4407655e7d48cd4aedca7bd880d3130227a..f1a8a0016f9aa2c9920cc9b6424f9b0c34b251ca 100644 (file)
@@ -31,7 +31,6 @@ void insert_source_row_into_tree_view (GtkTreeIter source_iter,
                                       gpointer data
                                       );
 
-
 /* A SelectItemsFunc function for GtkEntry widgets */
 void insert_source_row_into_entry (GtkTreeIter source_iter,
                                   GtkWidget *dest,
index 470c4dbbe37797ac23e23d3430741c56da0aa94b..67523143fc48ea09eedcae8c5acfe67f8979ce5a 100644 (file)
@@ -1,5 +1,5 @@
 /* PSPPIRE - a graphical user interface for PSPP.
-   Copyright (C) 2007, 2008  Free Software Foundation
+   Copyright (C) 2007, 2008, 2009  Free Software Foundation
 
    This program is free software: you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
@@ -17,6 +17,7 @@
 #include <config.h>
 
 #include "examine-dialog.h"
+#include "psppire-var-view.h"
 
 #include <gtk/gtk.h>
 #include <stdlib.h>
@@ -96,13 +97,13 @@ generate_syntax (const struct examine_dialog *ed)
   GString *str = g_string_new ("EXAMINE ");
 
   g_string_append (str, "\n\t/VARIABLES=");
-  append_variable_names (str, ed->dict, GTK_TREE_VIEW (ed->dep_list), 0);
+  psppire_var_view_append_names (PSPPIRE_VAR_VIEW (ed->dep_list), 0, str);
 
   if ( 0  < gtk_tree_model_iter_n_children
        (gtk_tree_view_get_model (GTK_TREE_VIEW (ed->fct_list)), NULL))
     {
       g_string_append (str, "\n\tBY ");
-      append_variable_names (str, ed->dict, GTK_TREE_VIEW (ed->fct_list), 0);
+      psppire_var_view_append_names (PSPPIRE_VAR_VIEW (ed->fct_list), 0, str);
     }
 
   label = gtk_entry_get_text (GTK_ENTRY (ed->id_entry));
@@ -250,8 +251,6 @@ examine_dialog (GObject *o, gpointer data)
 
 
   GtkWidget *dep_selector = get_widget_assert (xml, "psppire-selector1");
-  GtkWidget *fct_selector = get_widget_assert (xml, "psppire-selector2");
-  GtkWidget *id_selector = get_widget_assert (xml, "psppire-selector3");
 
   PsppireVarStore *vs = NULL;
 
@@ -280,36 +279,11 @@ examine_dialog (GObject *o, gpointer data)
   gtk_window_set_transient_for (GTK_WINDOW (ex_d.opts_dialog), GTK_WINDOW (de));
 
   g_object_get (vs, "dictionary", &ex_d.dict, NULL);
-  g_object_set (source, "dictionary", ex_d.dict, NULL);
-
-  set_dest_model (GTK_TREE_VIEW (ex_d.dep_list), ex_d.dict);
-
-
-  psppire_selector_set_subjects (PSPPIRE_SELECTOR (dep_selector),
-                                source,
-                                ex_d.dep_list,
-                                insert_source_row_into_tree_view,
-                                NULL, NULL);
+  g_object_set (source, "model", ex_d.dict, NULL);
 
   psppire_selector_set_allow (PSPPIRE_SELECTOR (dep_selector),
                              numeric_only);
 
-  set_dest_model (GTK_TREE_VIEW (ex_d.fct_list), ex_d.dict);
-
-
-  psppire_selector_set_subjects (PSPPIRE_SELECTOR (fct_selector),
-                                source,
-                                ex_d.fct_list,
-                                insert_source_row_into_tree_view,
-                                NULL, NULL);
-
-
-  psppire_selector_set_subjects (PSPPIRE_SELECTOR (id_selector),
-                                source,
-                                ex_d.id_entry,
-                                insert_source_row_into_entry,
-                                NULL, NULL);
-
   g_signal_connect (dialog, "refresh", G_CALLBACK (refresh),  &ex_d);
 
   psppire_dialog_set_valid_predicate (PSPPIRE_DIALOG (dialog),
index 273c19bc8d054409a4668863e02d13494fcd8e13..316f10439b6c2891e729a4a91b5184a1a8c1ce84 100644 (file)
@@ -81,7 +81,7 @@
                             <property name="vscrollbar_policy">automatic</property>
                             <property name="shadow_type">etched-in</property>
                             <child>
-                              <object class="GtkTreeView" id="treeview3">
+                              <object class="PsppireVarView" id="treeview3">
                                 <property name="visible">True</property>
                                 <property name="can_focus">True</property>
                                 <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
                             <property name="vscrollbar_policy">automatic</property>
                             <property name="shadow_type">etched-in</property>
                             <child>
-                              <object class="GtkTreeView" id="treeview2">
+                              <object class="PsppireVarView" id="treeview2">
                                 <property name="visible">True</property>
                                 <property name="can_focus">True</property>
                                 <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
                     <property name="receives_default">True</property>
                     <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
                     <property name="border_width">5</property>
+                    <property name="source_widget">treeview1</property>
+                    <property name="dest_widget">entry1</property>
                   </object>
                   <packing>
                     <property name="left_attach">1</property>
                     <property name="receives_default">True</property>
                     <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
                     <property name="border_width">5</property>
+                    <property name="source_widget">treeview1</property>
+                    <property name="dest_widget">treeview3</property>
                   </object>
                   <packing>
                     <property name="left_attach">1</property>
                     <property name="receives_default">True</property>
                     <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
                     <property name="border_width">5</property>
+                    <property name="primary">True</property>
+                    <property name="source_widget">treeview1</property>
+                    <property name="dest_widget">treeview2</property>
                   </object>
                   <packing>
                     <property name="left_attach">1</property>
index 0c16bfa8140c0a78f4036c2c2ef2e3eeadb5023a..2319fb9f50fac2231169692fe837e395186af8a7 100644 (file)
@@ -243,17 +243,13 @@ find_dialog (GObject *o, gpointer data)
   gtk_window_set_transient_for (GTK_WINDOW (dialog), GTK_WINDOW (de));
 
 
-  g_object_set (source, "dictionary", fd.dict,
+  g_object_set (source, "model", fd.dict,
        "selection-mode", GTK_SELECTION_SINGLE,
        NULL);
 
-  psppire_selector_set_subjects (PSPPIRE_SELECTOR (selector),
-                                source,
-                                fd.variable_entry,
-                                insert_source_row_into_entry,
-                                is_currently_in_entry,
-                                NULL
-                                );
+
+  psppire_selector_set_filter_func (PSPPIRE_SELECTOR (selector),
+                                   is_currently_in_entry);
 
   g_signal_connect (dialog, "refresh", G_CALLBACK (refresh),  &fd);
 
index 8dae0c99584dcdc2c54896460d3a460cf9abbad8..d1cb203c8020c041640d43885ed5ccd0e6d2a579 100644 (file)
@@ -52,6 +52,8 @@
                     <property name="receives_default">True</property>
                     <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
                     <property name="border_width">5</property>
+                    <property name="source_widget">find-variable-treeview</property>
+                    <property name="dest_widget">find-variable-entry</property>
                   </object>
                   <packing>
                     <property name="expand">False</property>
index 8706f3a4e63ac105e0caee6a46e597cee048fc40..2d5fcbb48d9f23485ab3b093c0bfe80fa273b80c 100644 (file)
@@ -18,6 +18,7 @@
 
 #include "checkbox-treeview.h"
 #include "frequencies-dialog.h"
+#include "psppire-var-view.h"
 
 #include <gtk/gtk.h>
 #include <stdlib.h>
@@ -147,7 +148,7 @@ generate_syntax (const struct frequencies_dialog *fd)
   GString *string = g_string_new ("FREQUENCIES");
 
   g_string_append (string, "\n\t/VARIABLES=");
-  append_variable_names (string, fd->dict, GTK_TREE_VIEW (fd->stat_vars), 0);
+  psppire_var_view_append_names (PSPPIRE_VAR_VIEW (fd->stat_vars), 0, string);
 
   g_string_append (string, "\n\t/FORMAT=");
 
@@ -316,7 +317,6 @@ frequencies_dialog (GObject *o, gpointer data)
   GtkWidget *dialog = get_widget_assert   (xml, "frequencies-dialog");
   GtkWidget *source = get_widget_assert   (xml, "dict-treeview");
   GtkWidget *dest =   get_widget_assert   (xml, "var-treeview");
-  GtkWidget *selector = get_widget_assert (xml, "selector1");
   GtkWidget *format_button = get_widget_assert (xml, "button1");
   GtkWidget *stats_treeview = get_widget_assert (xml, "stats-treeview");
 
@@ -334,19 +334,7 @@ frequencies_dialog (GObject *o, gpointer data)
   gtk_window_set_transient_for (GTK_WINDOW (dialog), GTK_WINDOW (de));
 
   g_object_get (vs, "dictionary", &fd.dict, NULL);
-  g_object_set (source, "dictionary", fd.dict, NULL);
-
-
-  set_dest_model (GTK_TREE_VIEW (dest), fd.dict);
-
-
-  psppire_selector_set_subjects (PSPPIRE_SELECTOR (selector),
-                                source,
-                                dest,
-                                insert_source_row_into_tree_view,
-                                NULL,
-                                NULL);
-
+  g_object_set (source, "model", fd.dict, NULL);
 
   fd.stat_vars = GTK_TREE_VIEW (dest);
   fd.table_button = get_widget_assert (xml, "checkbutton1");
index 47e25d49f3ddcd6e3bd69942e3e1940e95c0d10e..0ab2f29f3d7140ab4789b66b0c5225dcdf99c7f1 100644 (file)
@@ -56,6 +56,8 @@
                         <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
                         <property name="no_show_all">True</property>
                         <property name="border_width">5</property>
+                        <property name="source_widget">dict-treeview</property>
+                        <property name="dest_widget">var-treeview</property>
                       </object>
                     </child>
                   </object>
@@ -85,7 +87,7 @@
                             <property name="vscrollbar_policy">automatic</property>
                             <property name="shadow_type">etched-in</property>
                             <child>
-                              <object class="GtkTreeView" id="var-treeview">
+                              <object class="PsppireVarView" id="var-treeview">
                                 <property name="visible">True</property>
                                 <property name="can_focus">True</property>
                                 <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
index 1814dd6737562a1d922722141d9e6c6f3c2b0a63..57428667a2480a63b5a2956ab7e1a927169594d8 100644 (file)
    along with this program.  If not, see <http://www.gnu.org/licenses/>.
 */
 
-
 #include <config.h>
 #include <gtk/gtk.h>
 #include "oneway-anova-dialog.h"
 #include "psppire-dict.h"
 #include "psppire-var-store.h"
+#include "psppire-var-view.h"
 #include "helper.h"
 #include "psppire-data-window.h"
 #include "psppire-dialog.h"
@@ -29,7 +29,6 @@
 #include "psppire-selector.h"
 #include "dict-display.h"
 
-
 #include <language/syntax-string-source.h>
 #include "executor.h"
 
@@ -141,9 +140,6 @@ oneway_anova_dialog (GObject *o, gpointer data)
   GtkWidget *selector2 =
     get_widget_assert (builder, "oneway-anova-selector2");
 
-  GtkWidget *selector1 =
-    get_widget_assert (builder, "oneway-anova-selector1");
-
   GtkWidget *contrasts_button =
     get_widget_assert (builder, "contrasts-button");
 
@@ -171,24 +167,11 @@ oneway_anova_dialog (GObject *o, gpointer data)
 
   gtk_window_set_transient_for (ow.dialog, GTK_WINDOW (de));
 
-  g_object_set (dict_view, "dictionary", ow.dict, NULL);
-
-  set_dest_model (GTK_TREE_VIEW (ow.vars_treeview), ow.dict);
-
-
-  psppire_selector_set_subjects (PSPPIRE_SELECTOR (selector1),
-                                dict_view, ow.vars_treeview,
-                                insert_source_row_into_tree_view,
-                                NULL,
-                                NULL);
-
+  g_object_set (dict_view, "model", ow.dict, NULL);
 
-  psppire_selector_set_subjects (PSPPIRE_SELECTOR (selector2),
-                                dict_view, ow.factor_entry,
-                                insert_source_row_into_entry,
-                                is_currently_in_entry,
-                                NULL);
 
+  psppire_selector_set_filter_func (PSPPIRE_SELECTOR (selector2),
+                                   is_currently_in_entry);
 
 
   g_signal_connect_swapped (ow.dialog, "refresh", G_CALLBACK (refresh),  &ow);
@@ -265,7 +248,7 @@ static gchar * generate_syntax (const struct oneway_anova_dialog *ow)
 
   GString *str = g_string_new ("ONEWAY /VARIABLES=");
 
-  append_variable_names (str, ow->dict, GTK_TREE_VIEW (ow->vars_treeview), 0);
+  psppire_var_view_append_names (PSPPIRE_VAR_VIEW (ow->vars_treeview), 0, str);
 
   g_string_append (str, " BY ");
 
index 6ec3120fa608a9fa8e721c0bf1a117fc1ebdab6e..7381932b04872682ae2ddb92f09ab6e19ecfaea3 100644 (file)
@@ -84,7 +84,7 @@
                     <property name="vscrollbar_policy">automatic</property>
                     <property name="shadow_type">etched-in</property>
                     <child>
-                      <object class="GtkTreeView" id="oneway-anova-treeview2">
+                      <object class="PsppireVarView" id="oneway-anova-treeview2">
                         <property name="visible">True</property>
                         <property name="can_focus">True</property>
                         <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
                 <property name="receives_default">True</property>
                 <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
                 <property name="border_width">5</property>
+                <property name="source_widget">oneway-anova-treeview1</property>
+                <property name="dest_widget">oneway-anova-entry</property>
               </object>
               <packing>
                 <property name="left_attach">1</property>
                 <property name="receives_default">True</property>
                 <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
                 <property name="border_width">5</property>
+                <property name="primary">True</property>
+                <property name="source_widget">oneway-anova-treeview1</property>
+                <property name="dest_widget">oneway-anova-treeview2</property>
               </object>
               <packing>
                 <property name="left_attach">1</property>
index 071751ad6fdeb6372cdd590c1ea8dcf47a347a5e..282116548e2e1091b49766663de5046125ff611e 100644 (file)
@@ -140,8 +140,8 @@ psppire_button_box_class_init (PsppireButtonBoxClass *class)
 
   button_flags =
     g_param_spec_flags ("buttons",
-                       _("Buttons"),
-                       _("The mask that decides what buttons appear in the button box"),
+                       "Buttons",
+                       "The mask that decides what buttons appear in the button box",
                        PSPPIRE_TYPE_BUTTON_MASK,
                        PSPPIRE_BUTTON_OK_MASK |
                        PSPPIRE_BUTTON_CANCEL_MASK |
index 2707498c7929038cafc9d55f1e85f0ad93ad0272..e9a89465b4cf1c17cda74bd5356e9547cf5b296d 100644 (file)
@@ -56,6 +56,8 @@
 #include "examine-dialog.h"
 #include "regression-dialog.h"
 #include "reliability-dialog.h"
+#include "roc-dialog.h"
+#include "correlation-dialog.h"
 #include "oneway-anova-dialog.h"
 #include "t-test-independent-samples-dialog.h"
 #include "t-test-one-sample.h"
@@ -1692,6 +1694,34 @@ psppire_data_window_init (PsppireDataWindow *de)
                      G_CALLBACK (reliability_dialog), de);
   }
 
+  {
+    GtkAction *invoke_roc_dialog =
+      resolve_action (de->builder, "roc-curve", NULL);
+
+    g_object_set (invoke_roc_dialog,
+                 "tooltip", _("ROC Curve"),
+                 "stock-id", "pspp-roc",
+                 NULL
+                 );
+
+    g_signal_connect (invoke_roc_dialog, "activate",
+                     G_CALLBACK (roc_dialog), de);
+  }
+
+  {
+    GtkAction *invoke_correlation_dialog =
+      resolve_action (de->builder, "correlation", NULL);
+
+    g_object_set (invoke_correlation_dialog,
+                 "tooltip", _("Bivariate Correlation"),
+                 "stock-id", "pspp-correlation",
+                 NULL
+                 );
+
+    g_signal_connect (invoke_correlation_dialog, "activate",
+                     G_CALLBACK (correlation_dialog), de);
+  }
+
 
   {
     GtkUIManager *uim = GTK_UI_MANAGER (get_object_assert (de->builder, "uimanager1", GTK_TYPE_UI_MANAGER));
index c82395f2ebdc047e1f8678b9e9d6873df2452207..9e2190b2909e181475309ed1c58e10b3ce304872 100644 (file)
@@ -21,6 +21,7 @@
 #include <gtk/gtk.h>
 #include <ui/gui/psppire-marshal.h>
 
+#include "psppire-var-ptr.h"
 #include "psppire-dict.h"
 #include <data/dictionary.h>
 #include <data/missing-values.h>
@@ -648,7 +649,7 @@ tree_model_column_type (GtkTreeModel *model, gint index)
       return G_TYPE_STRING;
       break;
     case DICT_TVM_COL_VAR:
-      return G_TYPE_POINTER;
+      return PSPPIRE_VAR_PTR_TYPE;
       break;
     default:
       g_return_val_if_reached ((GType)0);
@@ -765,8 +766,8 @@ tree_model_get_value (GtkTreeModel *model, GtkTreeIter *iter,
       }
       break;
     case DICT_TVM_COL_VAR:
-      g_value_init (value, G_TYPE_POINTER);
-      g_value_set_pointer (value, var);
+      g_value_init (value, PSPPIRE_VAR_PTR_TYPE);
+      g_value_set_boxed (value, var);
       break;
     default:
       g_return_if_reached ();
index 243d907826f909a933f1fe8a73478b888da83c5c..4d56eda9052318128e2b6575edfe296b6226dbd8 100644 (file)
@@ -75,7 +75,6 @@ psppire_dict_view_finalize (GObject *object)
 enum
 {
   PROP_0,
-  PROP_MODEL,
   PROP_DICTIONARY,
   PROP_PREDICATE,
   PROP_SELECTION_MODE
@@ -137,11 +136,6 @@ psppire_dict_view_set_property (GObject         *object,
     case PROP_DICTIONARY:
       dict_view->dict = g_value_get_object (value);
       break;
-    case PROP_MODEL:
-      g_critical ("Don't set the \"model\" property on %s. "
-                 "Use the \"dictionary\" property instead.",
-                 G_OBJECT_TYPE_NAME (dict_view));
-      break;
     case PROP_PREDICATE:
       dict_view->predicate = g_value_get_pointer (value);
       break;
@@ -201,45 +195,27 @@ psppire_dict_view_class_init (PsppireDictViewClass *class)
 {
   GObjectClass *object_class = G_OBJECT_CLASS (class);
 
-  GParamSpec *dictionary_spec =
-    g_param_spec_object ("dictionary",
-                        "Dictionary",
-                        _("The dictionary to be displayed by this widget"),
-                        PSPPIRE_TYPE_DICT,
-                        G_PARAM_READABLE | G_PARAM_WRITABLE);
-
   GParamSpec *predicate_spec =
     g_param_spec_pointer ("predicate",
                          "Predicate",
-                         _("A predicate function"),
+                         "A predicate function",
                          G_PARAM_READABLE | G_PARAM_WRITABLE);
 
 
   GParamSpec *selection_mode_spec =
     g_param_spec_enum ("selection-mode",
                       "Selection Mode",
-                      _("How many things can be selected"),
+                      "How many things can be selected",
                       GTK_TYPE_SELECTION_MODE,
                       GTK_SELECTION_MULTIPLE,
                       G_PARAM_CONSTRUCT | G_PARAM_READABLE | G_PARAM_WRITABLE);
 
-
-  GParamSpec *dummy_spec =
-    g_param_spec_pointer ("model",
-                         "Model",
-                         "Don't set the property",
-                         G_PARAM_WRITABLE);
-
   object_class->set_property = psppire_dict_view_set_property;
   object_class->get_property = psppire_dict_view_get_property;
 
-  g_object_class_install_property (object_class,
-                                   PROP_MODEL,
-                                   dummy_spec);
-
-  g_object_class_install_property (object_class,
-                                   PROP_DICTIONARY,
-                                   dictionary_spec);
+  g_object_class_override_property (object_class,
+                                   PROP_DICTIONARY,
+                                   "model");
 
   g_object_class_install_property (object_class,
                                    PROP_PREDICATE,
@@ -271,8 +247,7 @@ psppire_dict_view_base_finalize (PsppireDictViewClass *class,
 
 static void
 dv_get_base_model (GtkTreeModel *top_model, GtkTreeIter *top_iter,
-               GtkTreeModel **model, GtkTreeIter *iter
-               )
+               GtkTreeModel **model, GtkTreeIter *iter)
 {
   *model = top_model;
 
@@ -336,7 +311,7 @@ var_description_cell_data_func (GtkTreeViewColumn *col,
 
   if ( var_has_label (var) && dv->prefer_labels)
     {
-      gchar *text = g_strdup_printf (
+      gchar *text = g_markup_printf_escaped (
                                     "<span stretch=\"condensed\">%s</span>",
                                     var_get_label (var));
 
diff --git a/src/ui/gui/psppire-select-dest.c b/src/ui/gui/psppire-select-dest.c
new file mode 100644 (file)
index 0000000..c46abce
--- /dev/null
@@ -0,0 +1,57 @@
+/* PSPPIRE - a graphical user interface for PSPP.
+   Copyright (C) 2009  Free Software Foundation
+
+   This program is free software: you can redistribute it and/or modify
+   it under the terms of the GNU General Public License as published by
+   the Free Software Foundation, either version 3 of the License, or
+   (at your option) any later version.
+
+   This program is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+   GNU General Public License for more details.
+
+   You should have received a copy of the GNU General Public License
+   along with this program.  If not, see <http://www.gnu.org/licenses/>.
+*/
+
+#include <config.h>
+#include "psppire-select-dest.h"
+#include <gtk/gtkwidget.h>
+
+GType
+psppire_select_dest_widget_get_type (void)
+{
+  static GType dest_widget_type = 0;
+
+  if (! dest_widget_type)
+    {
+      const GTypeInfo dest_widget_info =
+      {
+        sizeof (PsppireSelectDestWidgetIface), /* class_size */
+       NULL,           /* base_init */
+       NULL,           /* base_finalize */
+       NULL,
+       NULL,           /* class_finalize */
+       NULL,           /* class_data */
+       0,
+       0,              /* n_preallocs */
+       NULL
+      };
+
+      dest_widget_type =
+       g_type_register_static (G_TYPE_INTERFACE, "PsppireSelectDestWidget",
+                               &dest_widget_info, 0);
+
+      g_type_interface_add_prerequisite (dest_widget_type, GTK_TYPE_WIDGET);
+    }
+
+  return dest_widget_type;
+}
+
+
+gboolean
+psppire_select_dest_widget_contains_var (PsppireSelectDestWidget *sdm, const GValue *value)
+{
+  return PSPPIRE_SELECT_DEST_GET_IFACE (sdm)->contains_var (sdm, value);
+}
diff --git a/src/ui/gui/psppire-select-dest.h b/src/ui/gui/psppire-select-dest.h
new file mode 100644 (file)
index 0000000..74f0165
--- /dev/null
@@ -0,0 +1,49 @@
+/* PSPPIRE - a graphical user interface for PSPP.
+   Copyright (C) 2009  Free Software Foundation
+
+   This program is free software: you can redistribute it and/or modify
+   it under the terms of the GNU General Public License as published by
+   the Free Software Foundation, either version 3 of the License, or
+   (at your option) any later version.
+
+   This program is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+   GNU General Public License for more details.
+
+   You should have received a copy of the GNU General Public License
+   along with this program.  If not, see <http://www.gnu.org/licenses/>.
+*/
+
+#ifndef __PSPPIRE_SELECT_DEST_H__
+#define __PSPPIRE_SELECT_DEST_H__
+
+#include <glib-object.h>
+
+GType              psppire_select_dest_widget_get_type   (void) G_GNUC_CONST;
+
+#define PSPPIRE_TYPE_SELECT_DEST_WIDGET      (psppire_select_dest_widget_get_type ())
+#define PSPPIRE_SELECT_DEST_WIDGET(obj)      (G_TYPE_CHECK_INSTANCE_CAST ((obj), PSPPIRE_TYPE_SELECT_DEST_WIDGET, PsppireSelectDestWidget))
+#define PSPPIRE_IS_SELECT_DEST_WIDGET(obj)   (G_TYPE_CHECK_INSTANCE_TYPE ((obj), PSPPIRE_TYPE_SELECT_DEST_WIDGET))
+
+
+#define PSPPIRE_SELECT_DEST_GET_IFACE(obj) \
+   (G_TYPE_INSTANCE_GET_INTERFACE ((obj), PSPPIRE_TYPE_SELECT_DEST_WIDGET, PsppireSelectDestWidgetIface))
+
+typedef struct _PsppireSelectDestWidgetIface  PsppireSelectDestWidgetIface;
+
+
+typedef struct _PsppireSelectDestWidget  PsppireSelectDestWidget;  /* Dummy typedef */
+
+struct _PsppireSelectDestWidgetIface
+{
+  GTypeInterface g_iface;
+
+  /* Return TRUE iff DEST contains V */
+  gboolean (*contains_var) (PsppireSelectDestWidget *dest, const GValue *v);
+};
+
+
+gboolean psppire_select_dest_widget_contains_var (PsppireSelectDestWidget *m, const GValue *v);
+
+#endif
index d6ea3375257186d0566aa8a7706da717030db17c..83fe2d82792a04fb34425b3f0f5a221dde2238fb 100644 (file)
@@ -1,5 +1,5 @@
 /* PSPPIRE - a graphical user interface for PSPP.
-   Copyright (C) 2007  Free Software Foundation
+   Copyright (C) 2007, 2009 Free Software Foundation
 
    This program is free software: you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
@@ -12,7 +12,8 @@
    GNU General Public License for more details.
 
    You should have received a copy of the GNU General Public License
-   along with this program.  If not, see <http://www.gnu.org/licenses/>. */
+   along with this program.  If not, see <http://www.gnu.org/licenses/>.
+*/
 
 /*
   This module provides a widget, PsppireSelector derived from
 
 #include <config.h>
 
+#include "psppire-dictview.h"
+#include "psppire-var-view.h"
+#include "psppire-dict.h"
+#include "psppire-select-dest.h"
+
 #include <gtk/gtksignal.h>
 #include <gtk/gtkbutton.h>
 #include <gtk/gtkentry.h>
@@ -112,22 +118,50 @@ psppire_selector_get_type (void)
   return psppire_selector_type;
 }
 
+static GObjectClass * parent_class = NULL;
 
 static void
-psppire_selector_finalize (GObject *object)
+psppire_selector_finalize (GObject *obj)
 {
+   /* Chain up to the parent class */
+   G_OBJECT_CLASS (parent_class)->finalize (obj);
 }
 
+
+static void
+psppire_selector_dispose (GObject *obj)
+{
+  PsppireSelector *sel = PSPPIRE_SELECTOR (obj);
+
+  if (sel->dispose_has_run)
+    return;
+
+  /* Make sure dispose does not run twice. */
+  sel->dispose_has_run = TRUE;
+
+  g_object_unref (sel->dest);
+  g_object_unref (sel->source);
+
+  /* Chain up to the parent class */
+  G_OBJECT_CLASS (parent_class)->dispose (obj);
+}
+
+
 /* Properties */
 enum
 {
   PROP_0,
-  PROP_ORIENTATION
+  PROP_ORIENTATION,
+  PROP_PRIMARY,
+  PROP_SOURCE_WIDGET,
+  PROP_DEST_WIDGET
 };
 
 
 static void on_activate (PsppireSelector *selector, gpointer data);
 
+static void update_subjects (PsppireSelector *selector);
+
 
 static void
 psppire_selector_set_property (GObject         *object,
@@ -143,6 +177,18 @@ psppire_selector_set_property (GObject         *object,
       selector->orientation = g_value_get_enum (value);
       set_direction (selector, selector->direction);
       break;
+    case PROP_PRIMARY:
+      selector->primary_requested = TRUE;
+      update_subjects (selector);
+      break;
+    case PROP_SOURCE_WIDGET:
+      selector->source = g_value_dup_object (value);
+      update_subjects (selector);
+      break;
+    case PROP_DEST_WIDGET:
+      selector->dest = g_value_dup_object (value);
+      update_subjects (selector);
+      break;
     default:
       G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
       break;
@@ -163,14 +209,18 @@ psppire_selector_get_property (GObject         *object,
     case PROP_ORIENTATION:
       g_value_set_enum (value, selector->orientation);
       break;
+    case PROP_SOURCE_WIDGET:
+      g_value_take_object (value, selector->source);
+      break;
+    case PROP_DEST_WIDGET:
+      g_value_take_object (value, selector->dest);
+      break;
     default:
       G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
       break;
     };
 }
 
-
-
 static void
 psppire_selector_class_init (PsppireSelectorClass *class)
 {
@@ -184,6 +234,29 @@ psppire_selector_class_init (PsppireSelectorClass *class)
                       G_PARAM_CONSTRUCT_ONLY |G_PARAM_READWRITE);
 
 
+ /* Meaningfull only if more than one selector shares this selectors source */
+  GParamSpec *primary_spec =
+    g_param_spec_boolean ("primary",
+                         "Primary",
+                         "Whether this selector should be the primary selector for the source",
+                         FALSE,
+                         G_PARAM_READWRITE);
+
+  GParamSpec *source_widget_spec = 
+    g_param_spec_object ("source-widget",
+                        "Source Widget",
+                        "The widget to be used as the source for this selector",
+                        GTK_TYPE_WIDGET,
+                        G_PARAM_READWRITE);
+
+  GParamSpec *dest_widget_spec = 
+    g_param_spec_object ("dest-widget",
+                        "Destination Widget",
+                        "The widget to be used as the destination for this selector",
+                        GTK_TYPE_WIDGET,
+                        G_PARAM_READWRITE);
+
+
   object_class->set_property = psppire_selector_set_property;
   object_class->get_property = psppire_selector_get_property;
 
@@ -191,6 +264,20 @@ psppire_selector_class_init (PsppireSelectorClass *class)
                                    PROP_ORIENTATION,
                                    orientation_spec);
 
+  g_object_class_install_property (object_class,
+                                   PROP_PRIMARY,
+                                   primary_spec);
+
+  g_object_class_install_property (object_class,
+                                   PROP_SOURCE_WIDGET,
+                                   source_widget_spec);
+
+  g_object_class_install_property (object_class,
+                                   PROP_DEST_WIDGET,
+                                   dest_widget_spec);
+
+  parent_class = g_type_class_peek_parent (class);
+
   signals [SELECTED] =
     g_signal_new ("selected",
                  G_TYPE_FROM_CLASS (class),
@@ -210,6 +297,8 @@ psppire_selector_class_init (PsppireSelectorClass *class)
                  g_cclosure_marshal_VOID__VOID,
                  G_TYPE_NONE,
                  0);
+
+  class->default_selection_funcs = g_hash_table_new (g_direct_hash, g_direct_equal);
 }
 
 
@@ -219,6 +308,7 @@ psppire_selector_base_init (PsppireSelectorClass *class)
   GObjectClass *object_class = G_OBJECT_CLASS (class);
 
   object_class->finalize = psppire_selector_finalize;
+  object_class->dispose = psppire_selector_dispose;
 
   class->source_hash = g_hash_table_new (g_direct_hash, g_direct_equal);
 }
@@ -230,13 +320,82 @@ psppire_selector_base_finalize(PsppireSelectorClass *class,
                                gpointer class_data)
 {
   g_hash_table_destroy (class->source_hash);
+  g_hash_table_destroy (class->default_selection_funcs);
+}
+
+/* Callback for when the source treeview is activated (double clicked) */
+static void
+on_row_activate (GtkTreeView       *tree_view,
+                GtkTreePath       *path,
+                GtkTreeViewColumn *column,
+                gpointer           data)
+{
+  PsppireSelector *selector  = data;
+
+  gtk_action_activate (selector->action);
+}
+
+/* Callback for when the source selection changes */
+static void
+on_source_select (GtkTreeSelection *treeselection, gpointer data)
+{
+  PsppireSelector *selector = data;
+
+  set_direction (selector, PSPPIRE_SELECTOR_SOURCE_TO_DEST);
+
+  if ( selector->allow_selection )
+    {
+      gtk_action_set_sensitive (selector->action,
+                               selector->allow_selection (selector->source, selector->dest));
+    }
+  else if ( GTK_IS_ENTRY (selector->dest) )
+    {
+      gtk_action_set_sensitive (selector->action,
+                               gtk_tree_selection_count_selected_rows
+                               (treeselection) <= 1 );
+    }
 }
 
 
+static void
+on_realize (PsppireSelector *selector)
+{
+  PsppireSelectorClass *class = g_type_class_peek (PSPPIRE_SELECTOR_TYPE);
+  GtkTreeSelection* selection ;
+
+  GList *list = g_hash_table_lookup (class->source_hash, selector->source);
+
+  if ( NULL == list)
+    return;
+
+  if ( g_list_first (list)->data == selector)
+    {
+      if ( selector->row_activate_id )
+       g_signal_handler_disconnect (selector->source, selector->row_activate_id);
+
+      selector->row_activate_id =  
+       g_signal_connect (selector->source, "row-activated", G_CALLBACK (on_row_activate), selector);
+    }
+
+  selection = gtk_tree_view_get_selection (GTK_TREE_VIEW (selector->source));
+
+  if ( selector->source_select_id )
+    g_signal_handler_disconnect (selection, selector->source_select_id);
+
+  selector->source_select_id = 
+    g_signal_connect (selection, "changed", G_CALLBACK (on_source_select), selector);
+}
+
 
 static void
 psppire_selector_init (PsppireSelector *selector)
 {
+  selector->primary_requested = FALSE;
+  selector->select_user_data = NULL;
+  selector->select_items = NULL;
+  selector->allow_selection = NULL;
+  selector->filter = NULL;
+
   selector->arrow = gtk_arrow_new (GTK_ARROW_LEFT, GTK_SHADOW_NONE);
   selector->filtered_source = NULL;
 
@@ -251,6 +410,18 @@ psppire_selector_init (PsppireSelector *selector)
   g_signal_connect_swapped (selector->action, "activate", G_CALLBACK (on_activate), selector);
 
   selector->selecting = FALSE;
+
+  selector->source = NULL;
+  selector->dest = NULL;
+  selector->dispose_has_run = FALSE;
+
+
+  selector->row_activate_id = 0;
+  selector->source_select_id  = 0;
+
+  g_signal_connect (selector, "realize",
+                   G_CALLBACK (on_realize), NULL);
+
 }
 
 
@@ -313,27 +484,6 @@ set_direction (PsppireSelector *selector, enum psppire_selector_dir d)
     }
 }
 
-/* Callback for when the source selection changes */
-static void
-on_source_select (GtkTreeSelection *treeselection, gpointer data)
-{
-  PsppireSelector *selector = data;
-
-  set_direction (selector, PSPPIRE_SELECTOR_SOURCE_TO_DEST);
-
-  if ( selector->allow_selection )
-    {
-      gtk_action_set_sensitive (selector->action,
-                               selector->allow_selection (selector->source, selector->dest));
-    }
-  else if ( GTK_IS_ENTRY (selector->dest) )
-    {
-      gtk_action_set_sensitive (selector->action,
-                               gtk_tree_selection_count_selected_rows
-                               (treeselection) <= 1 );
-    }
-}
-
 /* Callback for when the destination treeview selection changes */
 static void
 on_dest_treeview_select (GtkTreeSelection *treeselection, gpointer data)
@@ -480,18 +630,6 @@ select_selection (PsppireSelector *selector)
   selector->selecting = FALSE;
 }
 
-/* Callback for when the source treeview is activated (double clicked) */
-static void
-on_row_activate (GtkTreeView       *tree_view,
-                GtkTreePath       *path,
-                GtkTreeViewColumn *column,
-                gpointer           data)
-{
-  PsppireSelector *selector  = data;
-
-  gtk_action_activate (selector->action);
-}
-
 /* Callback for when the selector button is clicked,
    or other event which causes the selector's action to occur.
  */
@@ -512,25 +650,21 @@ on_activate (PsppireSelector *selector, gpointer data)
     }
 }
 
-/* Default visibility filter for GtkTreeView DEST widget */
 static gboolean
-is_item_in_dest (GtkTreeModel *model, GtkTreeIter *iter,
-                PsppireSelector *selector)
+is_item_in_dest (GtkTreeModel *model, GtkTreeIter *iter, PsppireSelector *selector)
 {
-  GtkTreeModel *dest_model;
-  GtkTreeIter dest_iter;
+  gboolean result = FALSE;
   GtkTreeIter source_iter;
-  gint index;
-  GtkTreePath *path ;
   GtkTreeModel *source_model;
+  GValue value = {0};
 
-  if ( GTK_IS_TREE_MODEL_FILTER (model) )
+  if (GTK_IS_TREE_MODEL_FILTER (model))
     {
       source_model = gtk_tree_model_filter_get_model
        (GTK_TREE_MODEL_FILTER (model));
 
       gtk_tree_model_filter_convert_iter_to_child_iter
-       ( GTK_TREE_MODEL_FILTER (model),  &source_iter,  iter  );
+       (GTK_TREE_MODEL_FILTER (model),  &source_iter, iter);
     }
   else
     {
@@ -538,40 +672,17 @@ is_item_in_dest (GtkTreeModel *model, GtkTreeIter *iter,
       source_iter = *iter;
     }
 
-  dest_model = gtk_tree_view_get_model (GTK_TREE_VIEW (selector->dest));
-
-  path = gtk_tree_model_get_path (source_model, &source_iter);
-
-  index = *gtk_tree_path_get_indices (path);
+  gtk_tree_model_get_value (source_model, &source_iter, DICT_TVM_COL_VAR, &value);
 
-  gtk_tree_path_free (path);
-
-  if ( ! gtk_tree_model_get_iter_first (dest_model, &dest_iter) )
-    return FALSE;
-
-  do
-    {
-      int x;
-      GValue value = {0};
-      GValue int_value = {0};
-      gtk_tree_model_get_value (dest_model, &dest_iter, 0, &value);
+  result = psppire_select_dest_widget_contains_var (PSPPIRE_SELECT_DEST_WIDGET (selector->dest),
+                                                   &value);
 
-      g_value_init (&int_value, G_TYPE_INT);
+  g_value_unset (&value);
 
-      g_value_transform (&value, &int_value);
-
-      x = g_value_get_int (&int_value);
-
-      g_value_unset (&int_value);
-      g_value_unset (&value);
+  return result;
+}
 
-      if ( x == index )
-       return TRUE;
-    }
-  while (gtk_tree_model_iter_next (dest_model, &dest_iter));
 
-  return FALSE;
-}
 
 /* Visibility function for items in the SOURCE widget.
    Returns TRUE iff *all* the selectors for which SOURCE is associated
@@ -606,18 +717,16 @@ static void
 set_tree_view_source (PsppireSelector *selector,
                      GtkTreeView *source)
 {
-  GtkTreeSelection* selection ;
   GList *list = NULL;
 
   PsppireSelectorClass *class = g_type_class_peek (PSPPIRE_SELECTOR_TYPE);
+  
+  GtkTreeModel *model = gtk_tree_view_get_model (source);
 
   if ( ! (list = g_hash_table_lookup (class->source_hash, source)))
     {
       selector->filtered_source =
-       GTK_TREE_MODEL_FILTER (gtk_tree_model_filter_new
-                              (gtk_tree_view_get_model (source),  NULL));
-
-      gtk_tree_view_set_model (source, NULL);
+       GTK_TREE_MODEL_FILTER (gtk_tree_model_filter_new (model, NULL));
 
       gtk_tree_view_set_model (source,
                               GTK_TREE_MODEL (selector->filtered_source));
@@ -635,20 +744,17 @@ set_tree_view_source (PsppireSelector *selector,
     {  /* Append this selector to the list and push the <source,list>
          pair onto the hash table */
 
-      selector->filtered_source = GTK_TREE_MODEL_FILTER (
-       gtk_tree_view_get_model (source));
+      selector->filtered_source = GTK_TREE_MODEL_FILTER (model);
 
-      list = g_list_append (list, selector);
-      g_hash_table_replace (class->source_hash, source, list);
+      if ( NULL == g_list_find (list, selector) )
+       {
+         if ( selector->primary_requested )
+           list = g_list_prepend (list, selector);
+         else
+           list = g_list_append (list, selector);
+         g_hash_table_replace (class->source_hash, source, list);
+       }
     }
-
-  selection = gtk_tree_view_get_selection (source);
-
-  g_signal_connect (source, "row-activated", G_CALLBACK (on_row_activate),
-                   selector);
-
-  g_signal_connect (selection, "changed", G_CALLBACK (on_source_select),
-                   selector);
 }
 
 
@@ -682,7 +788,17 @@ on_dest_data_delete (GtkTreeModel *tree_model,
 }
 
 
+static void
+on_dest_model_changed (PsppireSelector *selector)
+{
+  GtkTreeModel *model = gtk_tree_view_get_model (GTK_TREE_VIEW (selector->dest));
+
+  g_signal_connect (model, "row-changed", G_CALLBACK (on_dest_data_change),
+                   selector);
 
+  g_signal_connect (model, "row-deleted", G_CALLBACK (on_dest_data_delete),
+                   selector);
+}
 
 /* Set the destination widget to DEST */
 static void
@@ -690,21 +806,19 @@ set_tree_view_dest (PsppireSelector *selector,
                    GtkTreeView *dest)
 {
   GtkTreeSelection* selection = gtk_tree_view_get_selection (dest);
-  GtkTreeModel *model = gtk_tree_view_get_model (dest);
+
 
   gtk_tree_selection_set_mode (selection, GTK_SELECTION_MULTIPLE);
 
   g_signal_connect (selection, "changed", G_CALLBACK (on_dest_treeview_select),
                    selector);
 
-  g_signal_connect (model, "row-changed", G_CALLBACK (on_dest_data_change),
-                     selector);
-
-  g_signal_connect (model, "row-deleted", G_CALLBACK (on_dest_data_delete),
-                     selector);
-
+  on_dest_model_changed (selector);
+  g_signal_connect_swapped (dest, "notify::model",
+                           G_CALLBACK (on_dest_model_changed), selector);
 }
 
+
 /* Callback which causes the filter to be refiltered.
    Called when the DEST GtkEntry is activated (Enter is pressed), or when it
    looses focus.
@@ -716,6 +830,7 @@ refilter (PsppireSelector *selector)
   return FALSE;
 }
 
+
 /* Callback for when the DEST GtkEntry is selected (clicked) */
 static gboolean
 on_entry_dest_select (GtkWidget *widget, GdkEventFocus *event, gpointer data)
@@ -729,7 +844,6 @@ on_entry_dest_select (GtkWidget *widget, GdkEventFocus *event, gpointer data)
 }
 
 
-
 /* Callback for when an item disappears from the source list.
    By implication, this means that the item has been inserted into the
    destination.
@@ -777,67 +891,120 @@ set_entry_dest (PsppireSelector *selector,
                    G_CALLBACK (on_row_inserted), selector);
 }
 
+static void
+set_default_filter (PsppireSelector *selector)
+{
+  if ( selector->filter == NULL)
+    {
+      if  (GTK_IS_TREE_VIEW (selector->dest))
+       selector->filter = is_item_in_dest;
+    }
+}
 
-/* Set SOURCE and DEST for this selector, and
-   set SELECT_FUNC and FILTER_FUNC */
-void
-psppire_selector_set_subjects (PsppireSelector *selector,
-                              GtkWidget *source,
-                              GtkWidget *dest,
-                              SelectItemsFunc *select_func,
-                              FilterItemsFunc *filter_func,
-                              gpointer user_data)
+static void
+update_subjects (PsppireSelector *selector)
 {
-  g_assert(selector);
+  GtkTreeModel *model = NULL;
 
-  selector->filter = filter_func ;
+  if ( NULL == selector->dest )
+    return;
 
-  selector->source = source;
-  selector->dest = dest;
-  selector->select_user_data = user_data;
+  set_default_filter (selector);
 
-  if ( filter_func == NULL)
-    {
-      if  (GTK_IS_TREE_VIEW (dest))
-       selector->filter = is_item_in_dest;
-    }
+  if ( NULL == selector->source )
+    return;
 
-  if ( GTK_IS_TREE_VIEW (source))
-    set_tree_view_source (selector, GTK_TREE_VIEW (source) );
-  else
-    g_error ("Unsupported source widget: %s", G_OBJECT_TYPE_NAME (source));
+  g_signal_connect_swapped (selector->source, "notify::model",
+                           G_CALLBACK (update_subjects), selector);
+
+  model = gtk_tree_view_get_model (GTK_TREE_VIEW (selector->source));
+
+  if ( NULL == model)
+    return;
 
-  g_assert ( GTK_IS_TREE_MODEL_FILTER (selector->filtered_source));
 
-  if ( NULL == dest)
+  if ( GTK_IS_TREE_VIEW (selector->source))
+    set_tree_view_source (selector, GTK_TREE_VIEW (selector->source) );
+  else
+    g_error ("Unsupported source widget: %s", G_OBJECT_TYPE_NAME (selector->source));
+
+  if ( NULL == selector->dest)
     ;
-  else if  ( GTK_IS_TREE_VIEW (dest))
-    set_tree_view_dest (selector, GTK_TREE_VIEW (dest));
+  else if  ( GTK_IS_TREE_VIEW (selector->dest))
+    {
+      set_tree_view_dest (selector, GTK_TREE_VIEW (selector->dest));
+    }
 
-  else if ( GTK_IS_ENTRY (dest))
-    set_entry_dest (selector, GTK_ENTRY (dest));
+  else if ( GTK_IS_ENTRY (selector->dest))
+    set_entry_dest (selector, GTK_ENTRY (selector->dest));
 
-  else if (GTK_IS_TEXT_VIEW (dest))
+  else if (GTK_IS_TEXT_VIEW (selector->dest))
     {
       /* Nothing to be done */
     }
-
   else
-    g_error ("Unsupported destination widget: %s", G_OBJECT_TYPE_NAME (dest));
+    g_error ("Unsupported destination widget: %s", G_OBJECT_TYPE_NAME (selector->dest));
+
+
+  /* FIXME: Remove this dependency */
+  if ( PSPPIRE_IS_DICT_VIEW (selector->source) )
+    {
+      GObjectClass *class = G_OBJECT_GET_CLASS (selector);
+      GType type = G_OBJECT_TYPE (selector->dest);
 
+      SelectItemsFunc *func  = 
+       g_hash_table_lookup (PSPPIRE_SELECTOR_CLASS (class)->default_selection_funcs, (gpointer) type);
+
+      if ( func )
+       psppire_selector_set_select_func (PSPPIRE_SELECTOR (selector),
+                                         func, NULL);
+    }
+}
+
+
+void
+psppire_selector_set_default_selection_func (GType type, SelectItemsFunc *func)
+{
+  GObjectClass *class = g_type_class_ref (PSPPIRE_SELECTOR_TYPE);
+
+  g_hash_table_insert (PSPPIRE_SELECTOR_CLASS (class)->default_selection_funcs, (gpointer) type, func);
+
+  g_type_class_unref (class);
+}
+
+
+
+
+/* Set FILTER_FUNC for this selector */
+void
+psppire_selector_set_filter_func (PsppireSelector *selector,
+                                 FilterItemsFunc *filter_func)
+{
+  selector->filter = filter_func ;
+  
+  set_default_filter (selector);
+}
+
+
+/* Set SELECT_FUNC for this selector */
+void
+psppire_selector_set_select_func (PsppireSelector *selector,
+                              SelectItemsFunc *select_func,
+                              gpointer user_data)
+{
+  selector->select_user_data = user_data;
   selector->select_items = select_func;
 }
 
 
 
 void
-psppire_selector_set_allow        (PsppireSelector *selector , AllowSelectionFunc *allow)
+psppire_selector_set_allow (PsppireSelector *selector, AllowSelectionFunc *allow)
 {
   selector->allow_selection = allow;
 }
 
 
-
 GType
 psppire_selector_orientation_get_type (void)
 {
index 6fff5d4269da20286062e0f8c36def77374f1fa5..bb267cd49cf08631a02e5cfd07e19cf54f31df4a 100644 (file)
@@ -77,7 +77,10 @@ struct _PsppireSelector
   GtkWidget *arrow;
   GtkAction *action;
 
+  gboolean dispose_has_run;
+
   enum psppire_selector_dir direction;
+
   GtkWidget *source;
   GtkWidget *dest;
 
@@ -97,6 +100,12 @@ struct _PsppireSelector
   FilterItemsFunc *filter;
 
   AllowSelectionFunc *allow_selection;
+
+  gulong row_activate_id ;
+
+  gulong source_select_id ;
+
+  gboolean primary_requested;
 };
 
 struct _PsppireSelectorClass
@@ -106,18 +115,26 @@ struct _PsppireSelectorClass
   /* This is a hash of Lists of FilterItemsFunc pointers, keyed by address of
      the source widget */
   GHashTable *source_hash;
+
+  /* A hash of SelectItemFuncs indexed by GType */
+  GHashTable *default_selection_funcs;
 };
 
 GType      psppire_selector_get_type        (void);
 GtkWidget* psppire_selector_new             (void);
-void       psppire_selector_set_subjects    (PsppireSelector *,
-                                            GtkWidget *,
-                                            GtkWidget *,
-                                            SelectItemsFunc *,
-                                            FilterItemsFunc *,
-                                            gpointer );
 
-void      psppire_selector_set_allow        (PsppireSelector *, AllowSelectionFunc *);
+
+/* Set FILTER_FUNC for this selector */
+void psppire_selector_set_filter_func (PsppireSelector *selector,
+                                      FilterItemsFunc *filter_func);
+
+/* Set SELECT_FUNC for this selector */
+void psppire_selector_set_select_func (PsppireSelector *selector,
+                                      SelectItemsFunc *select_func,
+                                      gpointer user_data);
+
+
+void psppire_selector_set_allow (PsppireSelector *, AllowSelectionFunc *);
 
 
 GType psppire_selector_orientation_get_type (void) G_GNUC_CONST;
@@ -134,6 +151,8 @@ typedef enum {
   (psppire_selector_orientation_get_type())
 
 
+void psppire_selector_set_default_selection_func (GType type, SelectItemsFunc *);
+
 
 G_END_DECLS
 
diff --git a/src/ui/gui/psppire-var-view.c b/src/ui/gui/psppire-var-view.c
new file mode 100644 (file)
index 0000000..f7a017b
--- /dev/null
@@ -0,0 +1,332 @@
+/* PSPPIRE - a graphical user interface for PSPP.
+   Copyright (C) 2009  Free Software Foundation
+
+   This program is free software: you can redistribute it and/or modify
+   it under the terms of the GNU General Public License as published by
+   the Free Software Foundation, either version 3 of the License, or
+   (at your option) any later version.
+
+   This program is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+   GNU General Public License for more details.
+
+   You should have received a copy of the GNU General Public License
+   along with this program.  If not, see <http://www.gnu.org/licenses/>. */
+
+#include <config.h>
+
+#include <gtk/gtktreeview.h>
+#include <gtk/gtkcellrenderertext.h>
+#include "psppire-var-view.h"
+#include "psppire-var-ptr.h"
+#include "psppire-select-dest.h"
+
+#include <data/variable.h>
+
+#include <gettext.h>
+#define _(msgid) gettext (msgid)
+#define N_(msgid) msgid
+
+static void psppire_var_view_base_finalize (PsppireVarViewClass *, gpointer);
+static void psppire_var_view_base_init     (PsppireVarViewClass *class);
+static void psppire_var_view_class_init    (PsppireVarViewClass *class);
+static void psppire_var_view_init          (PsppireVarView      *var_view);
+
+/* Returns TRUE iff VV contains the item V.
+   V must be an initialised value containing a
+   PSPPIRE_VAR_PTR_TYPE.
+*/
+static gboolean
+var_view_contains_var (PsppireSelectDestWidget *sdm, const GValue *v)
+{
+  gboolean ok;
+  GtkTreeIter iter;
+  PsppireVarView *vv = PSPPIRE_VAR_VIEW (sdm);
+  g_return_val_if_fail (G_VALUE_HOLDS (v, PSPPIRE_VAR_PTR_TYPE), FALSE);
+
+  for (ok = psppire_var_view_get_iter_first (vv, &iter);
+       ok;
+       ok = psppire_var_view_get_iter_next (vv, &iter))
+    {
+      const struct variable *var = psppire_var_view_get_variable (vv, 0, &iter);
+      if (var == g_value_get_boxed (v))
+       return TRUE;
+    }
+
+  return FALSE;
+}
+
+static void
+model_init (PsppireSelectDestWidgetIface *iface)
+{
+  iface->contains_var = var_view_contains_var;
+}
+
+GType
+psppire_var_view_get_type (void)
+{
+  static GType psppire_var_view_type = 0;
+
+  if (!psppire_var_view_type)
+    {
+      static const GTypeInfo psppire_var_view_info =
+      {
+       sizeof (PsppireVarViewClass),
+       (GBaseInitFunc) psppire_var_view_base_init,
+        (GBaseFinalizeFunc) psppire_var_view_base_finalize,
+       (GClassInitFunc)psppire_var_view_class_init,
+       (GClassFinalizeFunc) NULL,
+       NULL,
+        sizeof (PsppireVarView),
+       0,
+       (GInstanceInitFunc) psppire_var_view_init,
+      };
+
+      static const GInterfaceInfo var_view_model_info = {
+       (GInterfaceInitFunc) model_init, /* Fill this in */
+       NULL,
+       NULL
+      };
+
+      psppire_var_view_type =
+       g_type_register_static (GTK_TYPE_TREE_VIEW, "PsppireVarView",
+                               &psppire_var_view_info, 0);
+
+      g_type_add_interface_static (psppire_var_view_type,
+                                  PSPPIRE_TYPE_SELECT_DEST_WIDGET,
+                                  &var_view_model_info);
+    }
+
+  return psppire_var_view_type;
+}
+
+
+static void
+psppire_var_view_finalize (GObject *object)
+{
+  PsppireVarView *var_view = PSPPIRE_VAR_VIEW (object);
+  g_free (var_view->nums);
+}
+
+/* Properties */
+enum
+{
+  PROP_0,
+  PROP_N_COLS
+};
+
+/* A (*GtkTreeCellDataFunc) function.
+   This function expects TREEMODEL to hold PSPPIRE_VAR_PTR_TYPE.
+   It renders the name of the variable into CELL.
+*/
+static void
+display_cell_var_name (GtkTreeViewColumn *tree_column,
+                      GtkCellRenderer *cell,
+                      GtkTreeModel *treemodel,
+                      GtkTreeIter *iter,
+                      gpointer data)
+{
+  struct variable *var;
+  GValue value = {0};
+  gint *col = data;
+
+  GtkTreePath *path = gtk_tree_model_get_path (treemodel, iter);
+
+  gtk_tree_model_get_value (treemodel, iter, *col, &value);
+
+  gtk_tree_path_free (path);
+
+  var = g_value_get_boxed (&value);
+
+  g_value_unset (&value);
+
+  g_object_set (cell, "text", var_get_name (var), NULL);
+}
+
+
+static void
+psppire_var_view_get_property (GObject         *object,
+                              guint            prop_id,
+                              GValue          *value,
+                              GParamSpec      *pspec)
+{
+  PsppireVarView *var_view = PSPPIRE_VAR_VIEW (object);
+
+  switch (prop_id)
+    {
+    case PROP_N_COLS:
+      g_value_set_int (value,  gtk_tree_model_iter_n_children (GTK_TREE_MODEL (var_view->list), NULL));
+      break;
+    default:
+      G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
+      break;
+    };
+}
+
+
+static void
+psppire_var_view_set_property (GObject         *object,
+                              guint            prop_id,
+                              const GValue    *value,
+                              GParamSpec      *pspec)
+{
+  PsppireVarView *var_view = PSPPIRE_VAR_VIEW (object);
+
+  switch (prop_id)
+    {
+    case PROP_N_COLS:
+      {
+       gint n_cols = g_value_get_int (value);
+       gint c;
+
+
+       GType *array = g_alloca (sizeof (GType) *  n_cols);
+
+       var_view->nums = g_malloc (sizeof *var_view->nums * n_cols);
+
+       for (c = 0 ; c < n_cols; ++c)
+       {
+         GtkCellRenderer *renderer = gtk_cell_renderer_text_new ();
+         GtkTreeViewColumn *col = gtk_tree_view_column_new ();
+
+         gchar *label = g_strdup_printf (_("Var%d"), c + 1);
+
+         gtk_tree_view_column_set_min_width (col, 100);
+         gtk_tree_view_column_set_sizing (col, GTK_TREE_VIEW_COLUMN_FIXED);
+         gtk_tree_view_column_set_resizable (col, TRUE);
+         gtk_tree_view_column_set_title (col, label);
+
+         g_free (label);
+
+         var_view->nums[c] = c;
+
+         gtk_tree_view_column_pack_start (col, renderer, TRUE);
+         gtk_tree_view_column_set_cell_data_func (col, renderer,
+                                                  display_cell_var_name,
+                                                  &var_view->nums[c], 0);
+
+         gtk_tree_view_append_column (GTK_TREE_VIEW (var_view), col);
+         array[c] = PSPPIRE_VAR_PTR_TYPE;
+       }
+
+       /* Set a model, which is an GtkListStore of gpointers which point to a variable */
+       var_view->list = gtk_list_store_newv  (n_cols, array);
+       gtk_tree_view_set_model (GTK_TREE_VIEW (var_view), GTK_TREE_MODEL (var_view->list));
+      }
+      break;
+    default:
+      G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
+      break;
+    };
+}
+
+static void
+psppire_var_view_class_init (PsppireVarViewClass *class)
+{
+  GObjectClass *object_class = G_OBJECT_CLASS (class);
+
+  GParamSpec *n_cols_spec =
+    g_param_spec_int ("n-cols",
+                     "Number of columns",
+                     "The Number of Columns in the Variable View",
+                     1, 20,
+                     1,
+                     G_PARAM_CONSTRUCT_ONLY | G_PARAM_READABLE | G_PARAM_WRITABLE);
+
+
+  object_class->set_property = psppire_var_view_set_property;
+  object_class->get_property = psppire_var_view_get_property;
+
+  g_object_class_install_property (object_class,
+                                   PROP_N_COLS,
+                                   n_cols_spec);
+}
+
+
+static void
+psppire_var_view_base_init (PsppireVarViewClass *class)
+{
+  GObjectClass *object_class = G_OBJECT_CLASS (class);
+
+  object_class->finalize = psppire_var_view_finalize;
+}
+
+
+
+static void
+psppire_var_view_base_finalize (PsppireVarViewClass *class,
+                                gpointer class_data)
+{
+}
+
+
+
+static void
+psppire_var_view_init (PsppireVarView *var_view)
+{
+}
+
+
+GtkWidget*
+psppire_var_view_new (void)
+{
+  return GTK_WIDGET (g_object_new (psppire_var_view_get_type (), NULL));
+}
+
+
+gboolean
+psppire_var_view_get_iter_first (PsppireVarView *vv, GtkTreeIter *iter)
+{
+  return gtk_tree_model_get_iter_first (GTK_TREE_MODEL (vv->list), iter);
+}
+
+gboolean
+psppire_var_view_get_iter_next (PsppireVarView *vv, GtkTreeIter *iter)
+{
+  return gtk_tree_model_iter_next (GTK_TREE_MODEL (vv->list), iter);
+}
+
+const struct variable *
+psppire_var_view_get_variable (PsppireVarView *vv, gint column, GtkTreeIter *iter)
+{
+  const struct variable *var = NULL;
+  GValue value = {0};
+  gtk_tree_model_get_value (GTK_TREE_MODEL (vv->list), iter, column, &value);
+
+  if ( G_VALUE_TYPE (&value) == PSPPIRE_VAR_PTR_TYPE)
+    var = g_value_get_boxed (&value);
+  else
+    g_critical ("Unsupported type \"%s\", in variable name treeview.",
+               G_VALUE_TYPE_NAME (&value));
+
+  g_value_unset (&value);
+
+  return var;
+}
+
+/*
+  Append the names of selected variables to STRING.
+  Returns the number of variables appended.
+*/
+gint
+psppire_var_view_append_names (PsppireVarView *vv, gint column, GString *string)
+{
+  gint n_vars = 0;
+  GtkTreeIter iter;
+
+  if ( psppire_var_view_get_iter_first (vv, &iter) )
+    {
+      do
+       {
+         const struct variable *var = psppire_var_view_get_variable (vv, column, &iter);
+         g_string_append (string, " ");
+         g_string_append (string, var_get_name (var));
+
+         n_vars++;
+       }
+      while (psppire_var_view_get_iter_next (vv, &iter));
+    }
+
+  return n_vars;
+}
diff --git a/src/ui/gui/psppire-var-view.h b/src/ui/gui/psppire-var-view.h
new file mode 100644 (file)
index 0000000..35dc91d
--- /dev/null
@@ -0,0 +1,72 @@
+/* PSPPIRE - a graphical user interface for PSPP.
+   Copyright (C) 2009  Free Software Foundation
+
+   This program is free software: you can redistribute it and/or modify
+   it under the terms of the GNU General Public License as published by
+   the Free Software Foundation, either version 3 of the License, or
+   (at your option) any later version.
+
+   This program is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+   GNU General Public License for more details.
+
+   You should have received a copy of the GNU General Public License
+   along with this program.  If not, see <http://www.gnu.org/licenses/>. */
+
+
+#ifndef __PSPPIRE_VAR_VIEW_H__
+#define __PSPPIRE_VAR_VIEW_H__
+
+
+#include <glib.h>
+#include <glib-object.h>
+#include <gtk/gtktreeview.h>
+
+G_BEGIN_DECLS
+
+#define PSPPIRE_VAR_VIEW_TYPE            (psppire_var_view_get_type ())
+#define PSPPIRE_VAR_VIEW(obj)            (G_TYPE_CHECK_INSTANCE_CAST ((obj), PSPPIRE_VAR_VIEW_TYPE, PsppireVarView))
+#define PSPPIRE_VAR_VIEW_CLASS(class)    (G_TYPE_CHECK_CLASS_CAST ((class), \
+    PSPPIRE_VAR_VIEW_TYPE, PsppireVarViewClass))
+#define PSPPIRE_IS_VAR_VIEW(obj)         (G_TYPE_CHECK_INSTANCE_TYPE ((obj), \
+    PSPPIRE_VAR_VIEW_TYPE))
+#define PSPPIRE_IS_VAR_VIEW_CLASS(class) (G_TYPE_CHECK_CLASS_TYPE ((class), \
+    PSPPIRE_VAR_VIEW_TYPE))
+
+
+typedef struct _PsppireVarView       PsppireVarView;
+typedef struct _PsppireVarViewClass  PsppireVarViewClass;
+
+struct variable;
+
+struct _PsppireVarView
+{
+  GtkTreeView parent;
+
+  GtkListStore *list;
+  
+  gint *nums;
+};
+
+struct _PsppireVarViewClass
+{
+  GtkTreeViewClass parent_class;
+
+};
+
+GType      psppire_var_view_get_type        (void);
+
+gint psppire_var_view_append_names (PsppireVarView *vv, gint column, GString *string);
+
+gboolean psppire_var_view_get_iter_first (PsppireVarView *vv, GtkTreeIter *iter);
+
+gboolean psppire_var_view_get_iter_next (PsppireVarView *vv, GtkTreeIter *iter);
+
+const struct variable * psppire_var_view_get_variable (PsppireVarView *vv, gint column, GtkTreeIter *iter);
+
+
+
+G_END_DECLS
+
+#endif /* __PSPPIRE_VAR_VIEW_H__ */
index 961998d9266a8ab4da61fd4f102109606c46cc6d..3f6d49a65db2aec01fdef067d502954707484d8a 100644 (file)
@@ -47,6 +47,9 @@
 
 #include <gtk/gtk.h>
 #include "psppire-dict.h"
+#include "dict-display.h"
+#include "psppire-selector.h"
+#include "psppire-var-view.h"
 #include "psppire-var-store.h"
 #include "psppire-data-store.h"
 #include "executor.h"
@@ -128,6 +131,10 @@ initialize (struct command_line_processor *clp, int argc, char **argv)
 
   the_recent_mgr = gtk_recent_manager_get_default ();
 
+  psppire_selector_set_default_selection_func (GTK_TYPE_ENTRY, insert_source_row_into_entry);
+  psppire_selector_set_default_selection_func (PSPPIRE_VAR_VIEW_TYPE, insert_source_row_into_tree_view);
+  psppire_selector_set_default_selection_func (GTK_TYPE_TREE_VIEW, insert_source_row_into_tree_view);
+
   the_data_window = psppire_data_window_new ();
 
   command_line_processor_replace_aux (clp, &post_init_argp, the_source_stream);
index baff30fb6548c84bbcd7d9423fa89bc8ac29367f..2c7c34195a5bbbdbaa82f428c5cc66252cbdfce3 100644 (file)
@@ -85,6 +85,8 @@
                                 <property name="can_focus">False</property>
                                 <property name="receives_default">False</property>
                                 <property name="border_width">5</property>
+                                <property name="source_widget">weight-cases-treeview</property>
+                                <property name="dest_widget">weight-cases-entry</property>
                               </object>
                               <packing>
                                 <property name="position">0</property>
                             <property name="hscrollbar_policy">never</property>
                             <property name="vscrollbar_policy">automatic</property>
                             <child>
-                              <object class="GtkTreeView" id="variables-treeview">
+                              <object class="PsppireVarView" id="variables-treeview">
                                 <property name="visible">True</property>
                                 <property name="headers_visible">False</property>
                               </object>
                     <property name="can_focus">False</property>
                     <property name="receives_default">False</property>
                     <property name="border_width">5</property>
+                    <property name="source_widget">source-treeview</property>
+                    <property name="dest_widget">new-name-entry</property>
                   </object>
                   <packing>
                     <property name="top_attach">1</property>
                     <property name="can_focus">False</property>
                     <property name="receives_default">False</property>
                     <property name="border_width">5</property>
+                    <property name="primary">True</property>
+                    <property name="source_widget">source-treeview</property>
+                    <property name="dest_widget">variables-treeview</property>
                   </object>
                   <packing>
                     <property name="x_options"></property>
                                 <property name="receives_default">True</property>
                                 <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
                                 <property name="border_width">5</property>
+                                <property name="source_widget">split-file-dict-treeview</property>
+                                <property name="dest_widget">split-file-grouping-vars</property>
                               </object>
                             </child>
                           </object>
                                     <property name="hscrollbar_policy">never</property>
                                     <property name="vscrollbar_policy">automatic</property>
                                     <child>
-                                      <object class="GtkTreeView" id="split-file-grouping-vars">
+                                      <object class="PsppireVarView" id="split-file-grouping-vars">
                                         <property name="visible">True</property>
                                         <property name="can_focus">True</property>
                                         <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
       </object>
     </child>
   </object>
-  <object class="PsppireDialog" id="sort-cases-dialog">
-    <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
-    <property name="title">Sort Cases</property>
-    <property name="modal">True</property>
-    <child internal-child="hbox">
-      <object class="GtkHBox" id="dialog-hbox4">
-        <property name="visible">True</property>
-        <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
-        <property name="spacing">2</property>
-        <child>
-          <object class="GtkHBox" id="hbox14">
-            <property name="visible">True</property>
-            <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
-            <child>
-              <object class="GtkScrolledWindow" id="scrolledwindow6">
-                <property name="visible">True</property>
-                <property name="can_focus">True</property>
-                <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
-                <property name="hscrollbar_policy">never</property>
-                <property name="vscrollbar_policy">automatic</property>
-                <property name="shadow_type">etched-in</property>
-                <child>
-                  <object class="PsppireDictView" id="sort-cases-treeview1">
-                    <property name="visible">True</property>
-                    <property name="can_focus">True</property>
-                    <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
-                    <property name="headers_visible">False</property>
-                  </object>
-                </child>
-              </object>
-              <packing>
-                <property name="position">0</property>
-              </packing>
-            </child>
-            <child>
-              <object class="GtkAlignment" id="alignment6">
-                <property name="visible">True</property>
-                <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
-                <property name="yalign">0.25</property>
-                <property name="xscale">0</property>
-                <property name="yscale">0</property>
-                <child>
-                  <object class="PsppireSelector" id="sort-cases-selector">
-                    <property name="visible">True</property>
-                    <property name="can_focus">True</property>
-                    <property name="receives_default">True</property>
-                    <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
-                    <property name="border_width">5</property>
-                  </object>
-                </child>
-              </object>
-              <packing>
-                <property name="expand">False</property>
-                <property name="fill">False</property>
-                <property name="position">1</property>
-              </packing>
-            </child>
-            <child>
-              <object class="GtkVBox" id="vbox12">
-                <property name="visible">True</property>
-                <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
-                <child>
-                  <object class="GtkVBox" id="vbox16">
-                    <property name="visible">True</property>
-                    <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
-                    <property name="orientation">vertical</property>
-                    <child>
-                      <object class="GtkLabel" id="label18">
-                        <property name="visible">True</property>
-                        <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
-                        <property name="xalign">0</property>
-                        <property name="label" translatable="yes">Sort by:</property>
-                      </object>
-                      <packing>
-                        <property name="expand">False</property>
-                        <property name="position">0</property>
-                      </packing>
-                    </child>
-                    <child>
-                      <object class="GtkScrolledWindow" id="scrolledwindow7">
-                        <property name="visible">True</property>
-                        <property name="can_focus">True</property>
-                        <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
-                        <property name="hscrollbar_policy">never</property>
-                        <property name="vscrollbar_policy">automatic</property>
-                        <property name="shadow_type">etched-in</property>
-                        <child>
-                          <object class="GtkTreeView" id="sort-cases-treeview2">
-                            <property name="visible">True</property>
-                            <property name="can_focus">True</property>
-                            <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
-                            <property name="headers_visible">False</property>
-                          </object>
-                        </child>
-                      </object>
-                      <packing>
-                        <property name="position">1</property>
-                      </packing>
-                    </child>
-                  </object>
-                  <packing>
-                    <property name="padding">5</property>
-                    <property name="position">0</property>
-                  </packing>
-                </child>
-                <child>
-                  <object class="GtkFrame" id="frame9">
-                    <property name="visible">True</property>
-                    <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
-                    <property name="label_xalign">0</property>
-                    <child>
-                      <object class="GtkAlignment" id="alignment5">
-                        <property name="visible">True</property>
-                        <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
-                        <property name="left_padding">12</property>
-                        <child>
-                          <object class="GtkVButtonBox" id="vbuttonbox4">
-                            <property name="visible">True</property>
-                            <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
-                            <property name="layout_style">spread</property>
-                            <child>
-                              <object class="GtkRadioButton" id="sort-cases-radiobutton0">
-                                <property name="label" translatable="yes">Ascending</property>
-                                <property name="visible">True</property>
-                                <property name="can_focus">True</property>
-                                <property name="receives_default">False</property>
-                                <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
-                                <property name="active">True</property>
-                                <property name="draw_indicator">True</property>
-                              </object>
-                              <packing>
-                                <property name="expand">False</property>
-                                <property name="fill">False</property>
-                                <property name="position">0</property>
-                              </packing>
-                            </child>
-                            <child>
-                              <object class="GtkRadioButton" id="sort-cases-radiobutton1">
-                                <property name="label" translatable="yes">Descending</property>
-                                <property name="visible">True</property>
-                                <property name="can_focus">True</property>
-                                <property name="receives_default">False</property>
-                                <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
-                                <property name="draw_indicator">True</property>
-                                <property name="group">sort-cases-radiobutton0</property>
-                              </object>
-                              <packing>
-                                <property name="expand">False</property>
-                                <property name="fill">False</property>
-                                <property name="position">1</property>
-                              </packing>
-                            </child>
-                          </object>
-                        </child>
-                      </object>
-                    </child>
-                    <child type="label">
-                      <object class="GtkLabel" id="label17">
-                        <property name="visible">True</property>
-                        <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
-                        <property name="label" translatable="yes">Sort Order</property>
-                        <property name="use_markup">True</property>
-                      </object>
-                    </child>
-                  </object>
-                  <packing>
-                    <property name="padding">5</property>
-                    <property name="position">1</property>
-                  </packing>
-                </child>
-              </object>
-              <packing>
-                <property name="position">2</property>
-              </packing>
-            </child>
-          </object>
-          <packing>
-            <property name="position">0</property>
-          </packing>
-        </child>
-        <child>
-          <object class="PsppireVButtonBox" id="psppire-buttonbox4">
-            <property name="visible">True</property>
-            <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
-            <property name="border_width">5</property>
-          </object>
-          <packing>
-            <property name="expand">False</property>
-            <property name="fill">False</property>
-            <property name="pack_type">end</property>
-            <property name="position">1</property>
-          </packing>
-        </child>
-      </object>
-    </child>
-  </object>
   <object class="PsppireDialog" id="compute-variable-dialog">
     <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
     <property name="title">Compute Variable</property>
                         <property name="receives_default">True</property>
                         <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
                         <property name="border_width">5</property>
+                        <property name="source_widget">compute-treeview1</property>
+                        <property name="dest_widget">compute-textview1</property>
                       </object>
                       <packing>
                         <property name="expand">False</property>
                             <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
                             <property name="border_width">5</property>
                             <property name="orientation">source below destination</property>
+                            <property name="source_widget">compute-treeview2</property>
+                            <property name="dest_widget">compute-textview1</property>
                           </object>
                           <packing>
                             <property name="fill">False</property>
                                             <property name="receives_default">True</property>
                                             <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
                                             <property name="border_width">5</property>
+                                            <property name="source_widget">select-cases-treeview</property>
+                                            <property name="dest_widget">filter-variable-entry</property>
                                           </object>
                                           <packing>
                                             <property name="expand">False</property>
                 <property name="can_focus">True</property>
                 <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
                 <property name="truncate_multiline">True</property>
-                <property name="adjustment">adjustment4</property>
               </object>
               <packing>
                 <property name="left_attach">2</property>
                 <property name="can_focus">True</property>
                 <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
                 <property name="truncate_multiline">True</property>
-                <property name="adjustment">adjustment3</property>
               </object>
               <packing>
                 <property name="left_attach">1</property>
                                     <property name="visible">True</property>
                                     <property name="can_focus">True</property>
                                     <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
-                                    <property name="adjustment">adjustment2</property>
                                   </object>
                                   <packing>
                                     <property name="position">1</property>
                 <property name="visible">True</property>
                 <property name="can_focus">True</property>
                 <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
-                <property name="adjustment">adjustment1</property>
               </object>
               <packing>
                 <property name="position">1</property>
       </object>
     </child>
   </object>
-  <object class="GtkAdjustment" id="adjustment1">
-    <property name="value">1</property>
-    <property name="lower">1</property>
-    <property name="upper">100</property>
-    <property name="step_increment">1</property>
-    <property name="page_increment">10</property>
-    <property name="page_size">10</property>
-  </object>
-  <object class="GtkAdjustment" id="adjustment2">
-    <property name="value">8</property>
-    <property name="lower">1</property>
-    <property name="upper">32767</property>
-    <property name="step_increment">1</property>
-    <property name="page_increment">10</property>
-    <property name="page_size">10</property>
-  </object>
-  <object class="GtkAdjustment" id="adjustment3">
-    <property name="lower">1</property>
-    <property name="step_increment">1</property>
-    <property name="page_increment">10</property>
-    <property name="page_size">10</property>
-  </object>
-  <object class="GtkAdjustment" id="adjustment4">
-    <property name="value">1</property>
-    <property name="lower">1</property>
-    <property name="upper">100</property>
-    <property name="step_increment">1</property>
-    <property name="page_increment">10</property>
-    <property name="page_size">10</property>
-  </object>
 </interface>
index b2894095b76c69335e6b3f73d3276305967b5787..aa81e23bbe71fd77fb2e5997f53c3bd93045643a 100644 (file)
@@ -28,6 +28,7 @@
 #include <ui/gui/helper.h>
 #include <ui/gui/psppire-dialog.h>
 #include <ui/gui/psppire-var-store.h>
+#include <ui/gui/psppire-var-view.h>
 #include "executor.h"
 
 #include "gettext.h"
@@ -110,7 +111,7 @@ generate_syntax (const struct rank_dialog *rd)
 
   GString *str = g_string_new ("RANK VARIABLES=");
 
-  append_variable_names (str, rd->dict, GTK_TREE_VIEW (rd->rank_vars), 0);
+  psppire_var_view_append_names (PSPPIRE_VAR_VIEW (rd->rank_vars), 0, str);
 
   g_string_append_printf (str, " (%c)",
                   gtk_toggle_button_get_active (rd->ascending_togglebutton)
@@ -120,7 +121,7 @@ generate_syntax (const struct rank_dialog *rd)
     {
       g_string_append (str, "\n\tBY ");
 
-      append_variable_names (str, rd->dict, GTK_TREE_VIEW (rd->group_vars), 0);
+      psppire_var_view_append_names (PSPPIRE_VAR_VIEW (rd->group_vars),  0, str);
     }
 
   g_string_append (str, "\n\t/PRINT = ");
@@ -227,9 +228,6 @@ rank_dialog (GObject *o, gpointer data)
   GtkBuilder * builder = builder_new ("rank.ui");
 
   GtkWidget *vars = get_widget_assert   (builder, "dict-treeview");
-  GtkWidget *selector1 = get_widget_assert (builder, "psppire-selector1");
-  GtkWidget *selector2 = get_widget_assert (builder, "psppire-selector2");
-
 
   GtkWidget *types_button = get_widget_assert (builder, "button1");
   GtkWidget *ties_button = get_widget_assert (builder, "button2");
@@ -306,26 +304,7 @@ rank_dialog (GObject *o, gpointer data)
 
   gtk_window_set_transient_for (GTK_WINDOW (rd.dialog), GTK_WINDOW (de));
 
-  g_object_set (vars, "dictionary", rd.dict, NULL);
-
-  set_dest_model (GTK_TREE_VIEW (rd.rank_vars), rd.dict);
-
-  psppire_selector_set_subjects (PSPPIRE_SELECTOR (selector1),
-                                vars,
-                                rd.rank_vars,
-                                insert_source_row_into_tree_view,
-                                NULL,
-                                NULL);
-
-  set_dest_model (GTK_TREE_VIEW (rd.group_vars), rd.dict);
-
-  psppire_selector_set_subjects (PSPPIRE_SELECTOR (selector2),
-                                vars,
-                                rd.group_vars,
-                                insert_source_row_into_tree_view,
-                                NULL,
-                                NULL);
-
+  g_object_set (vars, "model", rd.dict, NULL);
 
   g_signal_connect (types_button, "clicked",
                    G_CALLBACK (run_types_dialog),  &rd);
index 5b7d6f4b27f471ef1735b5c1e17b3767687ccd2d..b05ab4501c7902a0cc84358805a174c4503a2558 100644 (file)
@@ -72,7 +72,7 @@
                         <property name="vscrollbar_policy">automatic</property>
                         <property name="shadow_type">etched-in</property>
                         <child>
-                          <object class="GtkTreeView" id="group-vars-treeview">
+                          <object class="PsppireVarView" id="group-vars-treeview">
                             <property name="visible">True</property>
                             <property name="can_focus">True</property>
                             <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
                         <property name="vscrollbar_policy">automatic</property>
                         <property name="shadow_type">etched-in</property>
                         <child>
-                          <object class="GtkTreeView" id="variables-treeview">
+                          <object class="PsppireVarView" id="variables-treeview">
                             <property name="visible">True</property>
                             <property name="can_focus">True</property>
                             <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
                     <property name="receives_default">True</property>
                     <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
                     <property name="border_width">5</property>
+                    <property name="source_widget">dict-treeview</property>
+                    <property name="dest_widget">group-vars-treeview</property>
                   </object>
                   <packing>
                     <property name="left_attach">1</property>
                     <property name="receives_default">True</property>
                     <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
                     <property name="border_width">5</property>
+                    <property name="primary">True</property>
+                    <property name="source_widget">dict-treeview</property>
+                    <property name="dest_widget">variables-treeview</property>
                   </object>
                   <packing>
                     <property name="left_attach">1</property>
index 0bb82eb335a9a6d3c75a13f6c1cf34e47863c8a3..9a1af8d5d7a582a69119fb835b084c86b0ad5cad 100644 (file)
@@ -26,6 +26,8 @@
 
 #include "executor.h"
 
+#include "psppire-var-view.h"
+
 #include <gtk/gtk.h>
 
 #include <xalloc.h>
@@ -337,13 +339,15 @@ struct recode_dialog
 
   gboolean input_var_is_string;
 
-  GtkListStore *var_map;
   GtkWidget *new_name_entry;
   GtkWidget *new_label_entry;
   GtkWidget *change_button;
 
   GtkWidget *string_button;
   GtkWidget *width_entry;
+
+  /* A hash table of struct nlp's indexed by variable */
+  GHashTable *varmap;
 };
 
 
@@ -352,33 +356,23 @@ static void run_old_and_new_dialog (struct recode_dialog *rd);
 static void
 refresh (PsppireDialog *dialog, struct recode_dialog *rd)
 {
+  GtkTreeModel *vars =
+    gtk_tree_view_get_model (GTK_TREE_VIEW (rd->variable_treeview));
+
+  gtk_list_store_clear (GTK_LIST_STORE (vars));
+
   gtk_widget_set_sensitive (rd->change_button, FALSE);
   gtk_widget_set_sensitive (rd->new_name_entry, FALSE);
   gtk_widget_set_sensitive (rd->new_label_entry, FALSE);
 
-
   if ( rd->different )
-    gtk_list_store_clear (GTK_LIST_STORE (rd->var_map));
-  else
-    {
-      GtkTreeModel *vars =
-       gtk_tree_view_get_model (GTK_TREE_VIEW (rd->variable_treeview));
-
-      gtk_list_store_clear (GTK_LIST_STORE (vars));
-    }
+    g_hash_table_remove_all (rd->varmap);
 
   gtk_list_store_clear (GTK_LIST_STORE (rd->value_map));
 }
 
 static char * generate_syntax (const struct recode_dialog *rd);
 
-enum {
-  COL_OLD,
-  COL_NEW_NAME,
-  COL_NEW_LABEL,
-  n_COL_VARS
-};
-
 enum {
   COL_VALUE_OLD,
   COL_VALUE_NEW,
@@ -403,26 +397,10 @@ dialog_state_valid (gpointer data)
 
   if ( rd->different )
     {
-      GtkTreeIter iter;
-
-      gboolean ok;
+      GtkTreeModel *model = GTK_TREE_MODEL (PSPPIRE_VAR_VIEW (rd->variable_treeview)->list);
 
-      for (ok = gtk_tree_model_get_iter_first (GTK_TREE_MODEL (rd->var_map),
-                                              &iter);
-          ok;
-          ok = gtk_tree_model_iter_next (GTK_TREE_MODEL (rd->var_map),
-                                         &iter))
-       {
-         gchar *name = NULL;
-
-         gtk_tree_model_get (GTK_TREE_MODEL (rd->var_map), &iter,
-                             COL_NEW_NAME, &name, -1);
-
-         if ( name == NULL )
-           return FALSE;
-
-         g_free (name);
-       }
+      if (g_hash_table_size (rd->varmap) != gtk_tree_model_iter_n_children (model, NULL) )
+       return FALSE;
     }
   else
     {
@@ -431,7 +409,6 @@ dialog_state_valid (gpointer data)
 
       if ( !gtk_tree_model_get_iter_first (vars, &not_used))
        return FALSE;
-
     }
 
   return TRUE;
@@ -494,22 +471,6 @@ recode_different_dialog (GObject *o, gpointer data)
   recode_dialog (de, TRUE);
 }
 
-static void
-render_new_var_name (GtkTreeViewColumn *tree_column,
-                    GtkCellRenderer *cell,
-                    GtkTreeModel *tree_model,
-                    GtkTreeIter *iter,
-                    gpointer data)
-{
-  gchar *new_var_name = NULL;
-
-  gtk_tree_model_get (tree_model, iter, COL_NEW_NAME, &new_var_name, -1);
-
-  g_object_set (cell, "text", new_var_name, NULL);
-
-  g_free (new_var_name);
-}
-
 
 /* This might need to be changed to something less naive.
    In particular, what happends with dates, etc?
@@ -686,6 +647,41 @@ on_acr_selection_change (GtkTreeSelection *selection, gpointer data)
     }
 }
 
+/* Name-Label pair */
+struct nlp
+{
+  char *name;
+  char *label;
+};
+
+static struct nlp *
+nlp_create (const char *name, const char *label)
+{
+  struct nlp *nlp = xmalloc (sizeof *nlp);
+
+  nlp->name = g_strdup (name);
+
+  nlp->label = NULL;
+
+  if ( 0 != strcmp ("", label))
+    nlp->label = g_strdup (label);
+
+  return nlp;
+}
+
+static void
+nlp_destroy (gpointer data)
+{
+  struct nlp *nlp = data ;
+  if ( ! nlp )
+    return;
+
+  g_free (nlp->name);
+  g_free (nlp->label);
+  g_free (nlp);
+}
+
+
 /* Callback which gets called when a new row is selected
    in the variable treeview.
    It sets the name and label entry widgets to reflect the
@@ -695,18 +691,18 @@ static void
 on_selection_change (GtkTreeSelection *selection, gpointer data)
 {
   struct recode_dialog *rd = data;
-  GtkTreeModel *model = GTK_TREE_MODEL (rd->var_map);
+
+  GtkTreeModel *model = GTK_TREE_MODEL (PSPPIRE_VAR_VIEW (rd->variable_treeview)->list);
 
   GList *rows = gtk_tree_selection_get_selected_rows (selection, &model);
 
   if ( rows && !rows->next)
     {
       /* Exactly one row is selected */
-
+      struct nlp *nlp;
+      struct variable *var;
       gboolean ok;
       GtkTreeIter iter;
-      gchar *name = NULL;
-      gchar *label = NULL;
 
       gtk_widget_set_sensitive  (rd->change_button, TRUE);
       gtk_widget_set_sensitive  (rd->new_name_entry, TRUE);
@@ -714,16 +710,22 @@ on_selection_change (GtkTreeSelection *selection, gpointer data)
 
       ok = gtk_tree_model_get_iter (model, &iter, (GtkTreePath*) rows->data);
 
-      gtk_tree_model_get (GTK_TREE_MODEL (rd->var_map), &iter,
-                         COL_NEW_NAME, &name,
-                         COL_NEW_LABEL, &label,
+      gtk_tree_model_get (model, &iter,
+                         0, &var, 
                          -1);
 
-      gtk_entry_set_text (GTK_ENTRY (rd->new_name_entry), name ? name : "");
-      gtk_entry_set_text (GTK_ENTRY (rd->new_label_entry), label ? label : "");
+      nlp = g_hash_table_lookup (rd->varmap, var);
 
-      g_free (name);
-      g_free (label);
+      if (nlp)
+       {
+         gtk_entry_set_text (GTK_ENTRY (rd->new_name_entry), nlp->name ? nlp->name : "");
+         gtk_entry_set_text (GTK_ENTRY (rd->new_label_entry), nlp->label ? nlp->label : "");
+       }
+      else
+       {
+         gtk_entry_set_text (GTK_ENTRY (rd->new_name_entry), "");
+         gtk_entry_set_text (GTK_ENTRY (rd->new_label_entry), "");
+       }
     }
   else
     {
@@ -735,6 +737,7 @@ on_selection_change (GtkTreeSelection *selection, gpointer data)
       gtk_entry_set_text (GTK_ENTRY (rd->new_label_entry), "");
     }
 
+
   g_list_foreach (rows, (GFunc) gtk_tree_path_free, NULL);
   g_list_free (rows);
 }
@@ -762,12 +765,13 @@ on_convert_toggled (GtkToggleButton *b, struct recode_dialog *rd)
   gtk_widget_set_sensitive (rd->string_button, !active);
 }
 
-
 static void
 on_change_clicked (GObject *obj, gpointer data)
 {
   struct recode_dialog *rd = data;
-  GtkTreeModel *model = GTK_TREE_MODEL (rd->var_map);
+  struct variable *var = NULL;
+  struct nlp *nlp;
+  GtkTreeModel *model = GTK_TREE_MODEL (PSPPIRE_VAR_VIEW (rd->variable_treeview)->list);
   GtkTreeIter iter;
   GtkTreeSelection *selection =
     gtk_tree_view_get_selection (GTK_TREE_VIEW (rd->variable_treeview));
@@ -780,16 +784,22 @@ on_change_clicked (GObject *obj, gpointer data)
   const gchar *dest_var_label =
     gtk_entry_get_text (GTK_ENTRY (rd->new_label_entry));
 
-  if ( NULL == rows )
-    return;
+  if ( NULL == rows || rows->next != NULL)
+    goto finish;
 
   gtk_tree_model_get_iter (model, &iter, rows->data);
 
-  gtk_list_store_set (rd->var_map, &iter,
-                     COL_NEW_NAME, dest_var_name,
-                     COL_NEW_LABEL, dest_var_label,
-                     -1);
+  gtk_tree_model_get (model, &iter, 0, &var, -1);
+
+  g_hash_table_remove (rd->varmap, var);
+
+  nlp = nlp_create (dest_var_name, dest_var_label);
+
+  g_hash_table_insert (rd->varmap, var, nlp);
 
+  gtk_tree_model_row_changed (model, rows->data, &iter);
+
+ finish:
   g_list_foreach (rows, (GFunc) gtk_tree_path_free, NULL);
   g_list_free (rows);
 }
@@ -838,6 +848,32 @@ set_acr (struct recode_dialog *rd)
   psppire_acr_set_enabled (rd->acr, !g_str_equal (text, ""));
 }
 
+static void
+render_new_var_name (GtkTreeViewColumn *tree_column,
+                    GtkCellRenderer *cell,
+                    GtkTreeModel *tree_model,
+                    GtkTreeIter *iter,
+                    gpointer data)
+{
+  struct nlp *nlp = NULL;
+  struct recode_dialog *rd = data;
+
+  struct variable *var = NULL;
+
+  gtk_tree_model_get (tree_model, iter, 
+                     0, &var,
+                     -1);
+
+  nlp = g_hash_table_lookup (rd->varmap, var);
+
+  if ( nlp )
+    g_object_set (cell, "text", nlp->name, NULL);
+  else
+    g_object_set (cell, "text", "", NULL);
+}
+
+
+
 static void
 recode_dialog (PsppireDataWindow *de, gboolean diff)
 {
@@ -854,13 +890,11 @@ recode_dialog (PsppireDataWindow *de, gboolean diff)
 
   GtkWidget *output_variable_box = get_widget_assert (builder,"frame4");
 
-
   PsppireVarStore *vs = NULL;
-
   g_object_get (de->data_editor, "var-store", &vs, NULL);
 
   rd.change_button = get_widget_assert (builder, "change-button");
-
+  rd.varmap = NULL;
   rd.dialog = get_widget_assert   (builder, "recode-dialog");
   rd.dict_treeview = get_widget_assert (builder, "treeview1");
   rd.variable_treeview =   get_widget_assert (builder, "treeview2");
@@ -887,77 +921,50 @@ recode_dialog (PsppireDataWindow *de, gboolean diff)
 
   gtk_window_set_transient_for (GTK_WINDOW (rd.dialog), GTK_WINDOW (de));
 
+  g_object_set (rd.dict_treeview, "model", rd.dict, NULL);
 
-  g_object_set (rd.dict_treeview, "dictionary", rd.dict, NULL);
-
-  if ( ! rd.different )
-    {
-      set_dest_model (GTK_TREE_VIEW (rd.variable_treeview), rd.dict);
-    }
-  else
+  if (rd.different)
     {
+      GtkTreeModel *model = GTK_TREE_MODEL (PSPPIRE_VAR_VIEW (rd.variable_treeview)->list);
       GtkTreeSelection *sel;
-      GtkTreeViewColumn *col;
-      GtkCellRenderer *renderer = gtk_cell_renderer_text_new ();
-
-      rd.var_map = gtk_list_store_new (n_COL_VARS, G_TYPE_INT,
-                                                   G_TYPE_STRING,
-                                                   G_TYPE_STRING);
-
-
 
-      gtk_tree_view_set_model (GTK_TREE_VIEW (rd.variable_treeview),
-                              GTK_TREE_MODEL (rd.var_map));
+      GtkCellRenderer *renderer = gtk_cell_renderer_text_new ();
 
-      col = gtk_tree_view_column_new_with_attributes (_("Old"),
-                                                 renderer,
-                                                 "text", NULL,
-                                                 NULL);
+      GtkTreeViewColumn *col = gtk_tree_view_column_new_with_attributes (_("New"),
+                                                                        renderer,
+                                                                        "text", NULL,
+                                                                        NULL);
 
       gtk_tree_view_column_set_cell_data_func (col, renderer,
-                                              cell_var_name,
-                                              rd.dict, 0);
+                                              render_new_var_name,
+                                              &rd, NULL);
 
 
       gtk_tree_view_append_column (GTK_TREE_VIEW (rd.variable_treeview), col);
 
 
-      renderer = gtk_cell_renderer_text_new ();
+      col = gtk_tree_view_get_column (GTK_TREE_VIEW (rd.variable_treeview), 0);
 
-      col = gtk_tree_view_column_new_with_attributes (_("New"),
-                                                 renderer,
-                                                 "text", NULL,
-                                                 NULL);
-
-      gtk_tree_view_column_set_cell_data_func (col, renderer,
-                                              render_new_var_name,
-                                              NULL, NULL);
-
-
-      gtk_tree_view_append_column (GTK_TREE_VIEW (rd.variable_treeview), col);
+      g_object_set (col, "title", _("Old"), NULL);
 
       g_object_set (rd.variable_treeview, "headers-visible", TRUE, NULL);
 
-      g_signal_connect (rd.change_button, "clicked",
-                       G_CALLBACK (on_change_clicked),  &rd);
+      rd.varmap = g_hash_table_new_full (g_direct_hash, g_direct_equal, NULL, nlp_destroy);
 
       sel = gtk_tree_view_get_selection (GTK_TREE_VIEW (rd.variable_treeview));
+
       g_signal_connect (sel, "changed",
                        G_CALLBACK (on_selection_change), &rd);
 
-      g_signal_connect (rd.var_map, "row-inserted",
+      g_signal_connect (rd.change_button, "clicked",
+                       G_CALLBACK (on_change_clicked),  &rd);
+
+#if 0
+      g_signal_connect (model, "row-inserted",
                        G_CALLBACK (select_something), &rd);
+#endif
     }
 
-
-
-  psppire_selector_set_subjects (PSPPIRE_SELECTOR (selector),
-                                rd.dict_treeview,
-                                rd.variable_treeview,
-                                insert_source_row_into_tree_view,
-                                NULL,
-                                NULL);
-
   psppire_selector_set_allow (PSPPIRE_SELECTOR (selector), homogeneous_types);
 
   /* Set up the Old & New Values subdialog */
@@ -1103,6 +1110,7 @@ recode_dialog (PsppireDataWindow *de, gboolean diff)
       break;
     }
 
+  g_hash_table_destroy (rd.varmap);
 
   gtk_list_store_clear (GTK_LIST_STORE (rd.value_map));
   g_object_unref (rd.value_map);
@@ -1276,7 +1284,6 @@ run_old_and_new_dialog (struct recode_dialog *rd)
     /* Find the type of the first variable (it's invariant that
        all variables are of the same type) */
     const struct variable *v;
-    gint idx;
     GtkTreeIter iter;
     GtkTreeModel *model =
       gtk_tree_view_get_model (GTK_TREE_VIEW (rd->variable_treeview));
@@ -1285,9 +1292,7 @@ run_old_and_new_dialog (struct recode_dialog *rd)
 
     g_return_if_fail (not_empty);
 
-    gtk_tree_model_get (model, &iter, 0, &idx, -1);
-
-    v = psppire_dict_get_variable (rd->dict, idx);
+    gtk_tree_model_get (model, &iter, 0, &v, -1);
 
     rd->input_var_is_string = var_is_alpha (v);
 
@@ -1416,33 +1421,26 @@ generate_syntax (const struct recode_dialog *rd)
   if ( rd->different &&
        gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (rd->string_button)))
     {
-      GtkTreeIter iter;
+      GHashTableIter iter;
 
+      struct variable *var = NULL;
+      struct nlp *nlp = NULL;
 
-      for (ok = gtk_tree_model_get_iter_first (GTK_TREE_MODEL (rd->var_map),
-                                              &iter);
-          ok;
-          ok = gtk_tree_model_iter_next (GTK_TREE_MODEL (rd->var_map), &iter))
+      g_hash_table_iter_init (&iter, rd->varmap);
+      while (g_hash_table_iter_next (&iter, (void**) &var, (void**) &nlp))
        {
-         gchar *name = NULL;
-
-         gtk_tree_model_get (GTK_TREE_MODEL (rd->var_map), &iter,
-                             COL_NEW_NAME, &name, -1);
-
          g_string_append (str, "\nSTRING ");
-         g_string_append (str, name);
+         g_string_append (str, nlp->name);
          g_string_append_printf (str, " (A%d).",
                                  (int)
                                  gtk_spin_button_get_value (GTK_SPIN_BUTTON (rd->width_entry) )
                                  );
-
-         g_free (name);
        }
     }
 
   g_string_append (str, "\nRECODE ");
 
-  append_variable_names (str, rd->dict, GTK_TREE_VIEW (rd->variable_treeview), 0);
+  psppire_var_view_append_names (PSPPIRE_VAR_VIEW (rd->variable_treeview), 0, str);
 
   g_string_append (str, "\n\t");
 
@@ -1483,67 +1481,43 @@ generate_syntax (const struct recode_dialog *rd)
 
   if ( rd->different )
     {
+
       GtkTreeIter iter;
       g_string_append (str, "\n\tINTO ");
 
-      for (ok = gtk_tree_model_get_iter_first (GTK_TREE_MODEL (rd->var_map),
-                                              &iter);
+      for (ok = psppire_var_view_get_iter_first (PSPPIRE_VAR_VIEW (rd->variable_treeview), &iter);
           ok;
-          ok = gtk_tree_model_iter_next (GTK_TREE_MODEL (rd->var_map), &iter))
-       {
-         gchar *name = NULL;
-
-         gtk_tree_model_get (GTK_TREE_MODEL (rd->var_map), &iter,
-                             COL_NEW_NAME, &name, -1);
-
-         g_string_append (str, name);
-         g_string_append (str, " ");
+          ok = psppire_var_view_get_iter_next (PSPPIRE_VAR_VIEW (rd->variable_treeview), &iter))
+         {
+           struct nlp *nlp = NULL;
+           const struct variable *var = psppire_var_view_get_variable (PSPPIRE_VAR_VIEW (rd->variable_treeview), 0, &iter);
 
-         g_free (name);
-       }
+           nlp = g_hash_table_lookup (rd->varmap, var);
+           
+           g_string_append (str, nlp->name);
+           g_string_append (str, " ");
+         }
     }
 
   g_string_append (str, ".");
 
-
   /* If applicable, set labels for the new variables. */
   if ( rd->different )
     {
-      GtkTreeIter iter;
+      GHashTableIter iter;
 
-      for (ok = gtk_tree_model_get_iter_first (GTK_TREE_MODEL (rd->var_map),
-                                              &iter);
-          ok;
-          ok = gtk_tree_model_iter_next (GTK_TREE_MODEL (rd->var_map), &iter))
+      struct variable *var = NULL;
+      struct nlp *nlp = NULL;
+
+      g_hash_table_iter_init (&iter, rd->varmap);
+      while (g_hash_table_iter_next (&iter, (void**) &var, (void**) &nlp))
        {
-         struct string ls;
-         gchar *label = NULL;
-         gchar *name = NULL;
-
-         gtk_tree_model_get (GTK_TREE_MODEL (rd->var_map), &iter,
-                             COL_NEW_NAME, &name,
-                             COL_NEW_LABEL, &label, -1);
-
-         if ( 0 == strcmp (label, "") )
-           {
-             g_free (name);
-             g_free (label);
-             continue;
-           }
-
-         ds_init_empty (&ls);
-         syntax_gen_string (&ls, ss_cstr (label));
-         g_free (label);
-
-         g_string_append_printf (str, "\nVARIABLE LABELS %s %s.",
-                                 name, ds_cstr (&ls));
-
-         g_free (name);
-         ds_destroy (&ls);
+         if (nlp->label)
+           g_string_append_printf (str, "\nVARIABLE LABELS %s %s.",
+                                   nlp->name, nlp->label);
        }
     }
 
-
   g_string_append (str, "\nEXECUTE.\n");
 
 
index 4acd7fc4c44be92ec4f828f19cca6757db8deda4..c573dba0607f7f85c45394330ede2946e0e7b283 100644 (file)
             <property name="receives_default">True</property>
             <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
             <property name="border_width">5</property>
+            <property name="source_widget">treeview1</property>
+            <property name="dest_widget">treeview2</property>
           </object>
           <packing>
             <property name="left_attach">1</property>
                         <property name="vscrollbar_policy">automatic</property>
                         <property name="shadow_type">etched-in</property>
                         <child>
-                          <object class="GtkTreeView" id="treeview2">
+                          <object class="PsppireVarView" id="treeview2">
                             <property name="visible">True</property>
                             <property name="can_focus">True</property>
                             <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
index eaca17e074e49aef32c5cbbb7447ef3c012b94b8..53010c3ffdc47d342afb5adfc0e2cf025a349103 100644 (file)
@@ -30,6 +30,7 @@
 #include <ui/gui/helper.h>
 #include <ui/gui/psppire-dialog.h>
 #include <ui/gui/psppire-var-store.h>
+#include <ui/gui/psppire-var-view.h>
 
 
 #include "gettext.h"
@@ -157,9 +158,9 @@ generate_syntax (const struct regression_dialog *rd)
   GString *string = g_string_new ("REGRESSION");
 
   g_string_append (string, "\n\t/VARIABLES=");
-  append_variable_names (string, rd->dict, GTK_TREE_VIEW (rd->indep_vars), 0);
+  psppire_var_view_append_names (PSPPIRE_VAR_VIEW (rd->indep_vars), 0, string);
   g_string_append (string, "\n\t/DEPENDENT=\t");
-  append_variable_names (string, rd->dict, GTK_TREE_VIEW (rd->dep_vars), 0);
+  psppire_var_view_append_names (PSPPIRE_VAR_VIEW (rd->dep_vars), 0, string);
 
   selected = 0;
   for (i = 0, ok = gtk_tree_model_get_iter_first (rd->stat, &iter); ok; 
@@ -234,11 +235,10 @@ regression_dialog (GObject *o, gpointer data)
   GtkWidget *source = get_widget_assert   (xml, "dict-view");
   GtkWidget *dest_dep =   get_widget_assert   (xml, "dep-view");
   GtkWidget *dest_indep =   get_widget_assert   (xml, "indep-view");
-  GtkWidget *dep_selector = get_widget_assert (xml, "dep-selector");
-  GtkWidget *indep_selector = get_widget_assert (xml, "indep-selector");
   GtkWidget *stat_button = get_widget_assert (xml, "stat-button");
   GtkWidget *save_button = get_widget_assert (xml, "save-button");
 
+  GtkWidget *dep_selector = get_widget_assert (xml, "dep-selector");
 
   rd.stat_view = get_widget_assert (xml, "stat-view");
 
@@ -254,28 +254,12 @@ regression_dialog (GObject *o, gpointer data)
   gtk_window_set_transient_for (GTK_WINDOW (dialog), GTK_WINDOW (de));
 
   g_object_get (vs, "dictionary", &rd.dict, NULL);
-  g_object_set (source, "dictionary", rd.dict, NULL);
-
-  set_dest_model (GTK_TREE_VIEW (dest_dep), rd.dict);
-  set_dest_model (GTK_TREE_VIEW (dest_indep), rd.dict);
-
-  psppire_selector_set_subjects (PSPPIRE_SELECTOR (dep_selector),
-                                source,
-                                dest_dep,
-                                insert_source_row_into_tree_view,
-                                NULL,
-                                NULL);
-
-  psppire_selector_set_subjects (PSPPIRE_SELECTOR (indep_selector),
-                                source,
-                                dest_indep,
-                                insert_source_row_into_tree_view,
-                                NULL,
-                                NULL);
+  g_object_set (source, "model", rd.dict, NULL);
 
   rd.dep_vars = GTK_TREE_VIEW (dest_dep);
   rd.indep_vars = GTK_TREE_VIEW (dest_indep);
 
+  psppire_selector_set_allow (PSPPIRE_SELECTOR (dep_selector), numeric_only);
 
   rd.save_dialog = get_widget_assert (xml, "save-dialog");
   rd.pred_button = GTK_TOGGLE_BUTTON (get_widget_assert (xml, "pred-button"));
index 190e686671fd38378a78de0f94f8a10ed284d9f1..61561f354a19d28de3c306c0299323d39d742a73 100644 (file)
@@ -67,6 +67,8 @@
                 <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
                 <property name="no_show_all">True</property>
                 <property name="border_width">5</property>
+                <property name="source_widget">dict-view</property>
+                <property name="dest_widget">dep-view</property>
               </object>
               <packing>
                 <property name="left_attach">1</property>
@@ -83,6 +85,8 @@
                 <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
                 <property name="no_show_all">True</property>
                 <property name="border_width">5</property>
+                <property name="source_widget">dict-view</property>
+                <property name="dest_widget">indep-view</property>
               </object>
               <packing>
                 <property name="left_attach">1</property>
                         <property name="vscrollbar_policy">automatic</property>
                         <property name="shadow_type">etched-in</property>
                         <child>
-                          <object class="GtkTreeView" id="dep-view">
+                          <object class="PsppireVarView" id="dep-view">
                             <property name="visible">True</property>
                             <property name="can_focus">True</property>
                             <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
                         <property name="vscrollbar_policy">automatic</property>
                         <property name="shadow_type">etched-in</property>
                         <child>
-                          <object class="GtkTreeView" id="indep-view">
+                          <object class="PsppireVarView" id="indep-view">
                             <property name="visible">True</property>
                             <property name="can_focus">True</property>
                             <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
index 66c8bf5ce4b3eed41425643db8bd3eb5ec043790..9831ab7f66ce7ae20c974cdcdc1593b31a459763 100644 (file)
@@ -24,6 +24,7 @@
 #include "psppire-dialog.h"
 
 #include "psppire-data-window.h"
+#include "psppire-var-view.h"
 
 #include "executor.h"
 #include "helper.h"
@@ -121,8 +122,6 @@ reliability_dialog (GObject *o, gpointer data)
   GtkWidget *dialog = get_widget_assert   (xml, "reliability-dialog");
   GtkWidget *source = get_widget_assert   (xml, "dict-view");
 
-  GtkWidget *selector = get_widget_assert (xml, "psppire-selector1");
-
   rd.split_point_hbox = get_widget_assert (xml, "split-point-hbox");
 
   rd.variables = get_widget_assert   (xml, "treeview2");
@@ -138,16 +137,7 @@ reliability_dialog (GObject *o, gpointer data)
   gtk_window_set_transient_for (GTK_WINDOW (dialog), GTK_WINDOW (de));
 
   g_object_get (vs, "dictionary", &rd.dict, NULL);
-  g_object_set (source, "dictionary", rd.dict, NULL);
-
-  set_dest_model (GTK_TREE_VIEW (rd.variables), rd.dict);
-
-  psppire_selector_set_subjects (PSPPIRE_SELECTOR (selector),
-                                source,
-                                rd.variables,
-                                insert_source_row_into_tree_view,
-                                NULL,
-                                NULL);
+  g_object_set (source, "model", rd.dict, NULL);
 
   {
     GtkTreeModel *tm =
@@ -206,7 +196,7 @@ generate_syntax (const struct reliability *rd)
   GString *string = g_string_new ("RELIABILITY");
 
   g_string_append (string, "\n\t/VARIABLES=");
-  append_variable_names (string, rd->dict, GTK_TREE_VIEW (rd->variables), 0);
+  psppire_var_view_append_names (PSPPIRE_VAR_VIEW (rd->variables), 0, string);
 
 
   g_string_append (string, "\n\t/MODEL=");
index c63cb5cf58dc5f786c88bcd417a82a6d7d852cfa..25af6ca1d63595111890f6461ad1da0b2b073a82 100644 (file)
@@ -27,7 +27,7 @@
     <property name="title" translatable="yes">Reliability Analysis</property>
     <property name="modal">True</property>
     <child internal-child="hbox">
-      <object class="GtkHBox" id="dialog-hbox1">
+      <object class="GtkHBox" id="dialog-hbox5">
         <property name="visible">True</property>
         <child>
           <object class="GtkVBox" id="vbox1">
@@ -41,7 +41,7 @@
                   <object class="GtkScrolledWindow" id="scrolledwindow1">
                     <property name="visible">True</property>
                     <property name="can_focus">True</property>
-                    <property name="hscrollbar_policy">automatic</property>
+                    <property name="hscrollbar_policy">never</property>
                     <property name="vscrollbar_policy">automatic</property>
                     <property name="shadow_type">etched-in</property>
                     <child>
@@ -70,6 +70,8 @@
                         <property name="receives_default">True</property>
                         <property name="no_show_all">True</property>
                         <property name="border_width">5</property>
+                        <property name="source_widget">dict-view</property>
+                        <property name="dest_widget">treeview2</property>
                       </object>
                     </child>
                   </object>
                           <object class="GtkScrolledWindow" id="scrolledwindow2">
                             <property name="visible">True</property>
                             <property name="can_focus">True</property>
-                            <property name="hscrollbar_policy">automatic</property>
+                            <property name="hscrollbar_policy">never</property>
                             <property name="vscrollbar_policy">automatic</property>
                             <property name="shadow_type">etched-in</property>
                             <child>
-                              <object class="GtkTreeView" id="treeview2">
+                              <object class="PsppireVarView" id="treeview2">
                                 <property name="visible">True</property>
                                 <property name="can_focus">True</property>
                                 <property name="headers_visible">False</property>
               <object class="GtkHBox" id="hbox2">
                 <property name="visible">True</property>
                 <child>
-                  <object class="GtkLabel">
+                  <object class="GtkLabel" id="label3">
                     <property name="visible">True</property>
                     <property name="xalign">1</property>
                     <property name="label" translatable="yes">Model:   </property>
diff --git a/src/ui/gui/roc-dialog.c b/src/ui/gui/roc-dialog.c
new file mode 100644 (file)
index 0000000..cf0a831
--- /dev/null
@@ -0,0 +1,260 @@
+/* PSPPIRE - a graphical user interface for PSPP.
+   Copyright (C) 2009  Free Software Foundation
+
+   This program is free software: you can redistribute it and/or modify
+   it under the terms of the GNU General Public License as published by
+   the Free Software Foundation, either version 3 of the License, or
+   (at your option) any later version.
+
+   This program is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+   GNU General Public License for more details.
+
+   You should have received a copy of the GNU General Public License
+   along with this program.  If not, see <http://www.gnu.org/licenses/>. */
+
+#include <config.h>
+
+#include "dialog-common.h"
+#include <language/syntax-string-source.h>
+#include <ui/syntax-gen.h>
+#include <libpspp/str.h>
+
+#include "roc-dialog.h"
+#include "psppire-selector.h"
+#include "psppire-dictview.h"
+#include "psppire-dialog.h"
+
+#include "psppire-data-window.h"
+#include "psppire-var-view.h"
+
+#include "executor.h"
+#include "helper.h"
+
+#include <gtk/gtk.h>
+
+#include "gettext.h"
+#define _(msgid) gettext (msgid)
+#define N_(msgid) msgid
+
+
+struct roc
+{
+  PsppireDict *dict;
+
+  GtkWidget *test_variables;
+  GtkWidget *state_variable;
+  GtkWidget *state_value;
+
+  GtkWidget *curve;
+  GtkWidget *reference;
+  GtkWidget *standard_error;
+  GtkWidget *coordinates;
+};
+
+
+static char * generate_syntax (const struct roc *rd);
+
+
+static void
+refresh (struct roc *rd)
+{
+  GtkTreeModel *liststore =
+    gtk_tree_view_get_model (GTK_TREE_VIEW (rd->test_variables));
+  gtk_list_store_clear (GTK_LIST_STORE (liststore));
+
+  gtk_entry_set_text (GTK_ENTRY (rd->state_variable), "");
+  gtk_entry_set_text (GTK_ENTRY (rd->state_value), "");
+
+  gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (rd->curve),          TRUE);
+  gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (rd->reference),      FALSE);
+  gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (rd->standard_error), FALSE);
+  gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (rd->coordinates),    FALSE);
+}
+
+
+static gboolean
+dialog_state_valid (gpointer data)
+{
+  struct roc *rd = data;
+  const gchar *text;
+
+  GtkTreeModel *liststore =
+    gtk_tree_view_get_model (GTK_TREE_VIEW (rd->test_variables));
+
+  if  (gtk_tree_model_iter_n_children (liststore, NULL) < 1)
+    return FALSE;
+
+  
+  text = gtk_entry_get_text (GTK_ENTRY (rd->state_variable));
+  if ( 0 == strcmp ("", text))
+    return FALSE;
+
+
+  text = gtk_entry_get_text (GTK_ENTRY (rd->state_value));
+  if ( 0 == strcmp ("", text))
+    return FALSE;
+
+
+  return TRUE;
+}
+
+static void
+on_curve_button_toggle  (GtkCheckButton *curve, struct roc *rd)
+{
+  if ( !gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (curve)))
+    {
+      if ( gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (rd->reference)))
+       g_object_set (rd->reference, "inconsistent", TRUE, NULL);
+      g_object_set (rd->reference, "sensitive", FALSE, NULL);
+    }
+  else 
+    {
+      g_object_set (rd->reference, "inconsistent", FALSE, NULL);
+      g_object_set (rd->reference, "sensitive", TRUE, NULL);
+    }
+}
+
+
+/* Pops up the Roc dialog box */
+void
+roc_dialog (GObject *o, gpointer data)
+{
+  struct roc rd;
+  gint response;
+
+  GtkBuilder *xml = builder_new ("roc.ui");
+  PsppireDataWindow *de = PSPPIRE_DATA_WINDOW (data);
+  PsppireVarStore *vs;
+
+  GtkWidget *dialog = get_widget_assert   (xml, "roc-dialog");
+  GtkWidget *source = get_widget_assert   (xml, "dict-view");
+
+  rd.test_variables    = get_widget_assert   (xml, "psppire-var-view1");
+  rd.state_variable    = get_widget_assert   (xml, "entry1");
+  rd.state_value       = get_widget_assert   (xml, "entry2");
+
+  rd.curve          = get_widget_assert   (xml, "curve");
+  rd.reference      = get_widget_assert   (xml, "reference-line");
+  rd.standard_error = get_widget_assert   (xml, "standard-error");
+  rd.coordinates    = get_widget_assert   (xml, "co-ordinates");
+
+
+  g_object_get (de->data_editor, "var-store", &vs, NULL);
+
+  gtk_window_set_transient_for (GTK_WINDOW (dialog), GTK_WINDOW (de));
+
+  g_object_get (vs, "dictionary", &rd.dict, NULL);
+  g_object_set (source, "model", rd.dict, NULL);
+
+  g_signal_connect (rd.curve, "toggled", G_CALLBACK (on_curve_button_toggle), &rd);
+
+  g_signal_connect_swapped (dialog, "refresh", G_CALLBACK (refresh),  &rd);
+
+  psppire_dialog_set_valid_predicate (PSPPIRE_DIALOG (dialog),
+                                     dialog_state_valid, &rd);
+
+  psppire_selector_set_allow (PSPPIRE_SELECTOR (get_widget_assert (xml, "dep-selector")),
+                             numeric_only);
+
+  response = psppire_dialog_run (PSPPIRE_DIALOG (dialog));
+
+  switch (response)
+    {
+    case GTK_RESPONSE_OK:
+      {
+       gchar *syntax = generate_syntax (&rd);
+
+       struct getl_interface *sss = create_syntax_string_source (syntax);
+       execute_syntax (sss);
+
+       g_free (syntax);
+      }
+      break;
+    case PSPPIRE_RESPONSE_PASTE:
+      {
+       gchar *syntax = generate_syntax (&rd);
+        paste_syntax_in_new_window (syntax);
+
+       g_free (syntax);
+      }
+      break;
+    default:
+      break;
+    }
+
+  g_object_unref (xml);
+}
+
+
+\f
+
+static char *
+generate_syntax (const struct roc *rd)
+{
+  gchar *text;
+  const gchar *var_name = gtk_entry_get_text (GTK_ENTRY (rd->state_variable));
+  GString *string = g_string_new ("ROC");
+
+  psppire_var_view_append_names (PSPPIRE_VAR_VIEW (rd->test_variables), 0, string);
+
+  g_string_append (string, " BY ");
+
+  g_string_append (string, var_name);
+
+  g_string_append (string, " (");
+  {
+    const gchar *value = gtk_entry_get_text (GTK_ENTRY (rd->state_value));
+
+    const struct variable *var = psppire_dict_lookup_var (rd->dict, var_name);
+
+    g_return_val_if_fail (var, NULL);
+
+    if ( var_is_alpha (var))
+      {
+       struct string xx;
+       ds_init_empty (&xx);
+       syntax_gen_string (&xx, ss_cstr (value));
+       g_string_append (string, ds_cstr (&xx));
+       ds_destroy (&xx);
+      }
+    else
+      g_string_append (string, value);
+  }
+  g_string_append (string, ")");
+
+
+  /* The /PLOT subcommand */
+  g_string_append (string, "\n\t/PLOT ");
+  if ( gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (rd->curve)))
+    {
+      g_string_append (string, "CURVE");
+      if ( gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (rd->reference)))
+       g_string_append (string, " (REFERENCE)");
+    }
+  else
+    g_string_append (string, "NONE");
+
+
+  /* The /PRINT subcommand */
+  if ( gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (rd->standard_error)) ||
+       gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (rd->coordinates)) )
+    {
+      g_string_append (string, "\n\t/PRINT");
+
+      if ( gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (rd->standard_error)))
+       g_string_append (string, " SE");
+
+      if ( gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (rd->coordinates)))
+       g_string_append (string, " COORDINATES");
+    }
+
+  g_string_append (string, ".\n");
+
+  text = string->str;
+
+  g_string_free (string, FALSE);
+
+  return text;
+}
diff --git a/src/ui/gui/roc-dialog.h b/src/ui/gui/roc-dialog.h
new file mode 100644 (file)
index 0000000..0244980
--- /dev/null
@@ -0,0 +1,25 @@
+/* PSPPIRE - a graphical user interface for PSPP.
+   Copyright (C) 2009  Free Software Foundation
+
+   This program is free software: you can redistribute it and/or modify
+   it under the terms of the GNU General Public License as published by
+   the Free Software Foundation, either version 3 of the License, or
+   (at your option) any later version.
+
+   This program is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+   GNU General Public License for more details.
+
+   You should have received a copy of the GNU General Public License
+   along with this program.  If not, see <http://www.gnu.org/licenses/>. */
+
+#ifndef __ROC_DIALOG_H
+#define __ROC_DIALOG_H
+
+
+#include <gtk/gtk.h>
+
+void roc_dialog (GObject *o, gpointer data);
+
+#endif
diff --git a/src/ui/gui/roc.ui b/src/ui/gui/roc.ui
new file mode 100644 (file)
index 0000000..a3aee25
--- /dev/null
@@ -0,0 +1,327 @@
+<?xml version="1.0"?>
+<interface>
+  <requires lib="psppire" version="2054.17080"/>
+  <!-- interface-requires gtk+ 2.12 -->
+  <!-- interface-naming-policy project-wide -->
+  <object class="PsppireDialog" id="roc-dialog">
+    <property name="title">ROC Curve</property>
+    <property name="modal">True</property>
+    <child internal-child="hbox">
+      <object class="GtkHBox" id="dialog-hbox1">
+        <property name="visible">True</property>
+        <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
+        <property name="spacing">2</property>
+        <child>
+          <object class="GtkTable" id="table1">
+            <property name="visible">True</property>
+            <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
+            <property name="n_rows">3</property>
+            <property name="n_columns">3</property>
+            <child>
+              <object class="PsppireSelector" id="dep-selector">
+                <property name="visible">True</property>
+                <property name="can_focus">True</property>
+                <property name="receives_default">True</property>
+                <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
+                <property name="no_show_all">True</property>
+                <property name="border_width">5</property>
+                <property name="source_widget">dict-view</property>
+                <property name="dest_widget">psppire-var-view1</property>
+              </object>
+              <packing>
+                <property name="left_attach">1</property>
+                <property name="right_attach">2</property>
+                <property name="x_options"></property>
+                <property name="y_options"></property>
+              </packing>
+            </child>
+            <child>
+              <object class="PsppireSelector" id="indep-selector">
+                <property name="visible">True</property>
+                <property name="can_focus">True</property>
+                <property name="receives_default">True</property>
+                <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
+                <property name="no_show_all">True</property>
+                <property name="border_width">5</property>
+                <property name="source_widget">dict-view</property>
+                <property name="dest_widget">entry1</property>
+              </object>
+              <packing>
+                <property name="left_attach">1</property>
+                <property name="right_attach">2</property>
+                <property name="top_attach">1</property>
+                <property name="bottom_attach">2</property>
+                <property name="x_options"></property>
+                <property name="y_options"></property>
+              </packing>
+            </child>
+            <child>
+              <object class="GtkScrolledWindow" id="variables">
+                <property name="visible">True</property>
+                <property name="can_focus">True</property>
+                <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
+                <property name="hscrollbar_policy">never</property>
+                <property name="vscrollbar_policy">automatic</property>
+                <property name="shadow_type">etched-in</property>
+                <child>
+                  <object class="PsppireDictView" id="dict-view">
+                    <property name="visible">True</property>
+                    <property name="can_focus">True</property>
+                    <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
+                    <property name="headers_visible">False</property>
+                  </object>
+                </child>
+              </object>
+              <packing>
+                <property name="bottom_attach">3</property>
+              </packing>
+            </child>
+            <child>
+              <object class="GtkFrame" id="frame2">
+                <property name="visible">True</property>
+                <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
+                <property name="label_xalign">0</property>
+                <property name="shadow_type">none</property>
+                <child>
+                  <object class="GtkAlignment" id="alignment1">
+                    <property name="visible">True</property>
+                    <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
+                    <property name="left_padding">12</property>
+                    <child>
+                      <object class="GtkScrolledWindow" id="scrolledwindow1">
+                        <property name="visible">True</property>
+                        <property name="can_focus">True</property>
+                        <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
+                        <property name="hscrollbar_policy">never</property>
+                        <property name="vscrollbar_policy">automatic</property>
+                        <property name="shadow_type">etched-in</property>
+                        <child>
+                          <object class="PsppireVarView" id="psppire-var-view1">
+                            <property name="visible">True</property>
+                            <property name="can_focus">True</property>
+                            <property name="border_width">5</property>
+                            <property name="headers_visible">False</property>
+                            <property name="headers_clickable">False</property>
+                          </object>
+                        </child>
+                      </object>
+                    </child>
+                  </object>
+                </child>
+                <child type="label">
+                  <object class="GtkLabel" id="label1">
+                    <property name="visible">True</property>
+                    <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
+                    <property name="label" translatable="yes">_Test Variable:</property>
+                    <property name="use_markup">True</property>
+                    <property name="use_underline">True</property>
+                  </object>
+                </child>
+              </object>
+              <packing>
+                <property name="left_attach">2</property>
+                <property name="right_attach">3</property>
+              </packing>
+            </child>
+            <child>
+              <object class="GtkFrame" id="frame1">
+                <property name="visible">True</property>
+                <property name="label_xalign">0</property>
+                <property name="shadow_type">none</property>
+                <child>
+                  <object class="GtkAlignment" id="alignment2">
+                    <property name="visible">True</property>
+                    <property name="left_padding">12</property>
+                    <child>
+                      <object class="GtkEntry" id="entry1">
+                        <property name="visible">True</property>
+                        <property name="can_focus">True</property>
+                        <property name="invisible_char">&#x2022;</property>
+                      </object>
+                    </child>
+                  </object>
+                </child>
+                <child type="label">
+                  <object class="GtkLabel" id="label2">
+                    <property name="visible">True</property>
+                    <property name="label" translatable="yes">_State Variable:</property>
+                    <property name="use_markup">True</property>
+                    <property name="use_underline">True</property>
+                  </object>
+                </child>
+              </object>
+              <packing>
+                <property name="left_attach">2</property>
+                <property name="right_attach">3</property>
+                <property name="top_attach">1</property>
+                <property name="bottom_attach">2</property>
+                <property name="y_options">GTK_FILL</property>
+              </packing>
+            </child>
+            <child>
+              <object class="GtkVBox" id="vbox1">
+                <property name="visible">True</property>
+                <property name="orientation">vertical</property>
+                <child>
+                  <object class="GtkHBox" id="hbox1">
+                    <property name="visible">True</property>
+                    <child>
+                      <object class="GtkLabel" id="label4">
+                        <property name="visible">True</property>
+                        <property name="xalign">1</property>
+                        <property name="label" translatable="yes">_Value of state variable:</property>
+                        <property name="use_underline">True</property>
+                        <property name="mnemonic_widget">entry2</property>
+                      </object>
+                      <packing>
+                        <property name="position">0</property>
+                      </packing>
+                    </child>
+                    <child>
+                      <object class="GtkEntry" id="entry2">
+                        <property name="visible">True</property>
+                        <property name="can_focus">True</property>
+                        <property name="invisible_char">&#x2022;</property>
+                      </object>
+                      <packing>
+                        <property name="position">1</property>
+                      </packing>
+                    </child>
+                  </object>
+                  <packing>
+                    <property name="position">0</property>
+                  </packing>
+                </child>
+                <child>
+                  <object class="GtkFrame" id="frame3">
+                    <property name="visible">True</property>
+                    <property name="label_xalign">0</property>
+                    <child>
+                      <object class="GtkAlignment" id="alignment3">
+                        <property name="visible">True</property>
+                        <property name="left_padding">12</property>
+                        <child>
+                          <object class="GtkVButtonBox" id="vbuttonbox1">
+                            <property name="visible">True</property>
+                            <property name="orientation">vertical</property>
+                            <child>
+                              <object class="GtkCheckButton" id="curve">
+                                <property name="label" translatable="yes">ROC C_urve</property>
+                                <property name="visible">True</property>
+                                <property name="can_focus">True</property>
+                                <property name="receives_default">False</property>
+                                <property name="use_underline">True</property>
+                                <property name="draw_indicator">True</property>
+                              </object>
+                              <packing>
+                                <property name="expand">False</property>
+                                <property name="fill">False</property>
+                                <property name="position">0</property>
+                              </packing>
+                            </child>
+                            <child>
+                              <object class="GtkHBox" id="hbox2">
+                                <property name="visible">True</property>
+                                <child>
+                                  <object class="GtkCheckButton" id="reference-line">
+                                    <property name="label" translatable="yes">_With diagonal reference line</property>
+                                    <property name="visible">True</property>
+                                    <property name="can_focus">True</property>
+                                    <property name="receives_default">False</property>
+                                    <property name="use_underline">True</property>
+                                    <property name="xalign">0</property>
+                                    <property name="draw_indicator">True</property>
+                                  </object>
+                                  <packing>
+                                    <property name="expand">False</property>
+                                    <property name="fill">False</property>
+                                    <property name="padding">12</property>
+                                    <property name="position">0</property>
+                                  </packing>
+                                </child>
+                              </object>
+                              <packing>
+                                <property name="expand">False</property>
+                                <property name="fill">False</property>
+                                <property name="position">1</property>
+                              </packing>
+                            </child>
+                            <child>
+                              <object class="GtkCheckButton" id="standard-error">
+                                <property name="label" translatable="yes">Standard _Error and Confidence Interval</property>
+                                <property name="visible">True</property>
+                                <property name="can_focus">True</property>
+                                <property name="receives_default">False</property>
+                                <property name="use_underline">True</property>
+                                <property name="draw_indicator">True</property>
+                              </object>
+                              <packing>
+                                <property name="expand">False</property>
+                                <property name="fill">False</property>
+                                <property name="position">2</property>
+                              </packing>
+                            </child>
+                            <child>
+                              <object class="GtkCheckButton" id="co-ordinates">
+                                <property name="label" translatable="yes">_Coordinate points of the ROC Curve</property>
+                                <property name="visible">True</property>
+                                <property name="can_focus">True</property>
+                                <property name="receives_default">False</property>
+                                <property name="use_underline">True</property>
+                                <property name="draw_indicator">True</property>
+                              </object>
+                              <packing>
+                                <property name="expand">False</property>
+                                <property name="fill">False</property>
+                                <property name="position">3</property>
+                              </packing>
+                            </child>
+                          </object>
+                        </child>
+                      </object>
+                    </child>
+                    <child type="label">
+                      <object class="GtkLabel" id="label3">
+                        <property name="visible">True</property>
+                        <property name="label" translatable="yes">Display</property>
+                        <property name="use_markup">True</property>
+                      </object>
+                    </child>
+                  </object>
+                  <packing>
+                    <property name="position">1</property>
+                  </packing>
+                </child>
+              </object>
+              <packing>
+                <property name="left_attach">1</property>
+                <property name="right_attach">3</property>
+                <property name="top_attach">2</property>
+                <property name="bottom_attach">3</property>
+                <property name="y_options">GTK_FILL</property>
+                <property name="x_padding">5</property>
+                <property name="y_padding">2</property>
+              </packing>
+            </child>
+          </object>
+          <packing>
+            <property name="position">0</property>
+          </packing>
+        </child>
+        <child>
+          <object class="PsppireVButtonBox" id="psppire-vbuttonbox1">
+            <property name="visible">True</property>
+            <property name="border_width">5</property>
+            <property name="orientation">vertical</property>
+          </object>
+          <packing>
+            <property name="expand">False</property>
+            <property name="fill">False</property>
+            <property name="pack_type">end</property>
+            <property name="position">1</property>
+          </packing>
+        </child>
+      </object>
+    </child>
+  </object>
+</interface>
index 56b10d2c5482e382da1b8b2df32f5646bb8fe127..5b027825bc6e62ccec66116837e7f085015a9dc7 100644 (file)
@@ -326,17 +326,13 @@ select_cases_dialog (GObject *o, gpointer data)
   {
     GtkWidget *source = get_widget_assert   (scd.xml, "select-cases-treeview");
 
-    g_object_set (source, "dictionary",
+    g_object_set (source, "model",
                  scd.data_store->dict,
                  "selection-mode",
                  GTK_SELECTION_SINGLE, NULL);
 
-    psppire_selector_set_subjects (PSPPIRE_SELECTOR (selector),
-                                  source,
-                                  entry,
-                                  insert_source_row_into_entry,
-                                  is_currently_in_entry,
-                                  NULL);
+    psppire_selector_set_filter_func (PSPPIRE_SELECTOR (selector),
+                                  is_currently_in_entry);
   }
 
 
index 4e7ac61f5ca94ddd2670ccd8baadfeb65c0529e7..22c537812311eb232837062c384b5a91dc22db70 100644 (file)
@@ -24,6 +24,7 @@
 #include "dialog-common.h"
 #include "psppire-selector.h"
 #include "dict-display.h"
+#include "psppire-var-view.h"
 
 #include <language/syntax-string-source.h>
 #include "helper.h"
@@ -40,7 +41,7 @@ refresh (PsppireDialog *dialog, GtkTreeView *dest)
 
 struct sort_cases_dialog
 {
-  GtkTreeView *tv;
+  PsppireVarView *tv;
   PsppireDict *dict;
   GtkToggleButton *ascending;
 };
@@ -50,7 +51,7 @@ static gboolean
 dialog_state_valid (gpointer data)
 {
   struct sort_cases_dialog *scd = data;
-  GtkTreeModel *model = gtk_tree_view_get_model (scd->tv);
+  GtkTreeModel *model = gtk_tree_view_get_model (GTK_TREE_VIEW (scd->tv));
 
   gint n_rows = gtk_tree_model_iter_n_children  (model, NULL);
 
@@ -65,8 +66,8 @@ generate_syntax (const struct sort_cases_dialog *scd)
 {
   gchar *text;
   GString *string = g_string_new ("SORT CASES BY ");
-  gint n_vars = append_variable_names (string,
-                                      scd->dict, GTK_TREE_VIEW (scd->tv), 0);
+
+  gint n_vars = psppire_var_view_append_names (scd->tv, 0, string);
 
   if ( n_vars == 0 )
     g_string_assign (string, "");
@@ -96,15 +97,13 @@ sort_cases_dialog (GObject *o, gpointer data)
 
   struct sort_cases_dialog scd;
 
-  GtkBuilder *xml = builder_new ("psppire.ui");
+  GtkBuilder *xml = builder_new ("sort.ui");
 
   GtkWidget *dialog = get_widget_assert   (xml, "sort-cases-dialog");
 
 
   GtkWidget *source = get_widget_assert   (xml, "sort-cases-treeview1");
-  GtkWidget *selector = get_widget_assert (xml, "sort-cases-selector");
   GtkWidget *dest =   get_widget_assert   (xml, "sort-cases-treeview2");
-
   PsppireVarStore *vs = NULL;
 
   g_object_get (de->data_editor, "var-store", &vs, NULL);
@@ -112,20 +111,11 @@ sort_cases_dialog (GObject *o, gpointer data)
   gtk_window_set_transient_for (GTK_WINDOW (dialog), GTK_WINDOW (de));
 
   g_object_get (vs, "dictionary", &scd.dict, NULL);
-  g_object_set (source, "dictionary", scd.dict, NULL);
-
-  set_dest_model (GTK_TREE_VIEW (dest), scd.dict);
-
-  psppire_selector_set_subjects (PSPPIRE_SELECTOR (selector),
-                                source,
-                                dest,
-                                insert_source_row_into_tree_view,
-                                NULL,
-                                NULL);
+  g_object_set (source, "model", scd.dict, NULL);
 
   g_signal_connect (dialog, "refresh", G_CALLBACK (refresh),  dest);
 
-  scd.tv = GTK_TREE_VIEW (dest);
+  scd.tv = PSPPIRE_VAR_VIEW (dest);
   scd.ascending =
     GTK_TOGGLE_BUTTON (get_widget_assert (xml, "sort-cases-radiobutton0"));
 
diff --git a/src/ui/gui/sort.ui b/src/ui/gui/sort.ui
new file mode 100644 (file)
index 0000000..19f8b71
--- /dev/null
@@ -0,0 +1,204 @@
+<?xml version="1.0"?>
+<interface>
+  <requires lib="psppire" version="2054.17080"/>
+  <!-- interface-requires gtk+ 2.12 -->
+  <!-- interface-naming-policy project-wide -->
+  <object class="PsppireDialog" id="sort-cases-dialog">
+    <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
+    <property name="title">Sort Cases</property>
+    <property name="modal">True</property>
+    <child internal-child="hbox">
+      <object class="GtkHBox" id="dialog-hbox4">
+        <property name="visible">True</property>
+        <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
+        <property name="spacing">2</property>
+        <child>
+          <object class="GtkHBox" id="hbox14">
+            <property name="visible">True</property>
+            <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
+            <child>
+              <object class="GtkScrolledWindow" id="scrolledwindow6">
+                <property name="visible">True</property>
+                <property name="can_focus">True</property>
+                <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
+                <property name="hscrollbar_policy">never</property>
+                <property name="vscrollbar_policy">automatic</property>
+                <property name="shadow_type">etched-in</property>
+                <child>
+                  <object class="PsppireDictView" id="sort-cases-treeview1">
+                    <property name="visible">True</property>
+                    <property name="can_focus">True</property>
+                    <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
+                    <property name="headers_visible">False</property>
+                  </object>
+                </child>
+              </object>
+              <packing>
+                <property name="position">0</property>
+              </packing>
+            </child>
+            <child>
+              <object class="GtkAlignment" id="alignment6">
+                <property name="visible">True</property>
+                <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
+                <property name="yalign">0.25</property>
+                <property name="xscale">0</property>
+                <property name="yscale">0</property>
+                <child>
+                  <object class="PsppireSelector" id="sort-cases-selector">
+                    <property name="visible">True</property>
+                    <property name="can_focus">True</property>
+                    <property name="receives_default">True</property>
+                    <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
+                    <property name="border_width">5</property>
+                    <property name="source_widget">sort-cases-treeview1</property>
+                    <property name="dest_widget">sort-cases-treeview2</property>
+                  </object>
+                </child>
+              </object>
+              <packing>
+                <property name="expand">False</property>
+                <property name="fill">False</property>
+                <property name="position">1</property>
+              </packing>
+            </child>
+            <child>
+              <object class="GtkVBox" id="vbox12">
+                <property name="visible">True</property>
+                <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
+                <child>
+                  <object class="GtkVBox" id="vbox16">
+                    <property name="visible">True</property>
+                    <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
+                    <property name="orientation">vertical</property>
+                    <child>
+                      <object class="GtkLabel" id="label18">
+                        <property name="visible">True</property>
+                        <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
+                        <property name="xalign">0</property>
+                        <property name="label" translatable="yes">Sort by:</property>
+                      </object>
+                      <packing>
+                        <property name="expand">False</property>
+                        <property name="position">0</property>
+                      </packing>
+                    </child>
+                    <child>
+                      <object class="GtkScrolledWindow" id="scrolledwindow7">
+                        <property name="visible">True</property>
+                        <property name="can_focus">True</property>
+                        <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
+                        <property name="hscrollbar_policy">never</property>
+                        <property name="vscrollbar_policy">automatic</property>
+                        <property name="shadow_type">etched-in</property>
+                        <child>
+                          <object class="PsppireVarView" id="sort-cases-treeview2">
+                            <property name="visible">True</property>
+                            <property name="can_focus">True</property>
+                            <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
+                            <property name="headers_visible">False</property>
+                          </object>
+                        </child>
+                      </object>
+                      <packing>
+                        <property name="position">1</property>
+                      </packing>
+                    </child>
+                  </object>
+                  <packing>
+                    <property name="padding">5</property>
+                    <property name="position">0</property>
+                  </packing>
+                </child>
+                <child>
+                  <object class="GtkFrame" id="frame9">
+                    <property name="visible">True</property>
+                    <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
+                    <property name="label_xalign">0</property>
+                    <child>
+                      <object class="GtkAlignment" id="alignment5">
+                        <property name="visible">True</property>
+                        <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
+                        <property name="left_padding">12</property>
+                        <child>
+                          <object class="GtkVButtonBox" id="vbuttonbox4">
+                            <property name="visible">True</property>
+                            <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
+                            <property name="layout_style">spread</property>
+                            <child>
+                              <object class="GtkRadioButton" id="sort-cases-radiobutton0">
+                                <property name="label" translatable="yes">Ascending</property>
+                                <property name="visible">True</property>
+                                <property name="can_focus">True</property>
+                                <property name="receives_default">False</property>
+                                <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
+                                <property name="active">True</property>
+                                <property name="draw_indicator">True</property>
+                              </object>
+                              <packing>
+                                <property name="expand">False</property>
+                                <property name="fill">False</property>
+                                <property name="position">0</property>
+                              </packing>
+                            </child>
+                            <child>
+                              <object class="GtkRadioButton" id="sort-cases-radiobutton1">
+                                <property name="label" translatable="yes">Descending</property>
+                                <property name="visible">True</property>
+                                <property name="can_focus">True</property>
+                                <property name="receives_default">False</property>
+                                <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
+                                <property name="draw_indicator">True</property>
+                                <property name="group">sort-cases-radiobutton0</property>
+                              </object>
+                              <packing>
+                                <property name="expand">False</property>
+                                <property name="fill">False</property>
+                                <property name="position">1</property>
+                              </packing>
+                            </child>
+                          </object>
+                        </child>
+                      </object>
+                    </child>
+                    <child type="label">
+                      <object class="GtkLabel" id="label17">
+                        <property name="visible">True</property>
+                        <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
+                        <property name="label" translatable="yes">Sort Order</property>
+                        <property name="use_markup">True</property>
+                      </object>
+                    </child>
+                  </object>
+                  <packing>
+                    <property name="padding">5</property>
+                    <property name="position">1</property>
+                  </packing>
+                </child>
+              </object>
+              <packing>
+                <property name="position">2</property>
+              </packing>
+            </child>
+          </object>
+          <packing>
+            <property name="position">0</property>
+          </packing>
+        </child>
+        <child>
+          <object class="PsppireVButtonBox" id="psppire-buttonbox4">
+            <property name="visible">True</property>
+            <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
+            <property name="border_width">5</property>
+          </object>
+          <packing>
+            <property name="expand">False</property>
+            <property name="fill">False</property>
+            <property name="pack_type">end</property>
+            <property name="position">1</property>
+          </packing>
+        </child>
+      </object>
+    </child>
+  </object>
+</interface>
index 613f8e91fe601cf544f32bb62933c00211c3869a..cb226d9fffc095a1f23e7bf668efdca6015ac1bb 100644 (file)
@@ -26,6 +26,8 @@
 #include "helper.h"
 #include <data/dictionary.h>
 
+#include "psppire-var-view.h"
+
 #include <gtk/gtk.h>
 
 
@@ -68,8 +70,7 @@ generate_syntax (const struct split_file_dialog *sfd)
       GString * varlist = g_string_sized_new (80);
       GtkWidget *sort = get_widget_assert (sfd->xml, "split-radiobutton3");
       GtkWidget *layered = get_widget_assert (sfd->xml, "split-radiobutton1");
-      gint n_vars = append_variable_names (varlist,
-                                          sfd->dict, GTK_TREE_VIEW (vars), 0);
+      gint n_vars = psppire_var_view_append_names (PSPPIRE_VAR_VIEW (vars), 0, varlist);
 
       if ( n_vars > 0 )
        {
@@ -191,19 +192,10 @@ split_file_dialog (GObject *o, gpointer data)
   sfd.selector  = PSPPIRE_SELECTOR (
                                    get_widget_assert   (sfd.xml, "split-file-selector"));
 
-  g_object_set (source, "dictionary", sfd.dict, NULL);
+  g_object_set (source, "model", sfd.dict, NULL);
 
   g_signal_connect (on_off, "toggled", G_CALLBACK(on_off_toggled),  sfd.xml);
 
-  set_dest_model (GTK_TREE_VIEW (dest), sfd.dict);
-
-  psppire_selector_set_subjects (PSPPIRE_SELECTOR (selector),
-                                source,
-                                dest,
-                                insert_source_row_into_tree_view,
-                                NULL,
-                                NULL);
-
   g_signal_connect (dialog, "refresh", G_CALLBACK (refresh),  &sfd);
 
   gtk_window_set_transient_for (GTK_WINDOW (dialog), GTK_WINDOW (de));
index 5d77ce43031ea7e46b37c3f0de57e9f9a22e67eb..90c5ab54870b9439548d61ff0fc5efed2d4cedc9 100644 (file)
@@ -21,6 +21,7 @@
 #include "t-test-independent-samples-dialog.h"
 #include "psppire-dict.h"
 #include "psppire-var-store.h"
+#include "psppire-var-view.h"
 #include "executor.h"
 #include "psppire-data-window.h"
 #include "psppire-dialog.h"
@@ -160,7 +161,7 @@ generate_syntax (const struct tt_indep_samples_dialog *d)
 
   GString *str = g_string_new ("T-TEST /VARIABLES=");
 
-  append_variable_names (str, d->dict, GTK_TREE_VIEW (tv), 0);
+  psppire_var_view_append_names (PSPPIRE_VAR_VIEW (tv), 0, str);
 
   g_string_append (str, "\n\t/GROUPS=");
 
@@ -400,9 +401,6 @@ t_test_independent_samples_dialog (GObject *o, gpointer data)
   GtkWidget *dict_view =
     get_widget_assert (xml, "indep-samples-t-test-treeview1");
 
-  GtkWidget *test_variables_treeview =
-    get_widget_assert (xml, "indep-samples-t-test-treeview2");
-
   GtkWidget *selector2 =
     get_widget_assert (xml, "indep-samples-t-test-selector2");
 
@@ -426,26 +424,14 @@ t_test_independent_samples_dialog (GObject *o, gpointer data)
 
   gtk_window_set_transient_for (GTK_WINDOW (tt_d.dialog), GTK_WINDOW (de));
 
-  g_object_set (dict_view, "dictionary", tt_d.dict, NULL);
-
-  set_dest_model (GTK_TREE_VIEW (test_variables_treeview), tt_d.dict);
-
-
-  psppire_selector_set_subjects (PSPPIRE_SELECTOR (selector1),
-                                dict_view, test_variables_treeview,
-                                insert_source_row_into_tree_view,
-                                NULL,
-                                NULL);
+  g_object_set (dict_view, "model", tt_d.dict, NULL);
 
   psppire_selector_set_allow (PSPPIRE_SELECTOR (selector1),
                              numeric_only);
 
 
-  psppire_selector_set_subjects (PSPPIRE_SELECTOR (selector2),
-                                dict_view, tt_d.groups_entry,
-                                insert_source_row_into_entry,
-                                is_currently_in_entry,
-                                NULL);
+  psppire_selector_set_filter_func (PSPPIRE_SELECTOR (selector2),
+                                is_currently_in_entry);
 
   g_signal_connect_swapped (tt_d.define_groups_button, "clicked",
                            G_CALLBACK (run_define_groups), &tt_d);
index 8b2d8af795e055552e3cec44981e1e6b5f2ed4f9..9301b2c316893566b5f891bf1f081d5e3de613e1 100644 (file)
@@ -21,6 +21,7 @@
 #include "t-test-one-sample.h"
 #include "psppire-dict.h"
 #include "psppire-var-store.h"
+#include "psppire-var-view.h"
 #include "helper.h"
 #include "psppire-data-window.h"
 #include "psppire-dialog.h"
@@ -58,7 +59,7 @@ generate_syntax (const struct tt_one_sample_dialog *d)
 
   g_string_append (str, "\n\t/VARIABLES=");
 
-  append_variable_names (str, d->dict, GTK_TREE_VIEW (d->vars_treeview), 0);
+  psppire_var_view_append_names (PSPPIRE_VAR_VIEW (d->vars_treeview), 0, str);
 
   tt_options_dialog_append_syntax (d->opt, str);
 
@@ -135,8 +136,6 @@ t_test_one_sample_dialog (GObject *o, gpointer data)
   GtkWidget *options_button =
     get_widget_assert (xml, "button1");
 
-  GtkWidget *selector = get_widget_assert (xml, "psppire-selector1");
-
   GtkWidget *dialog = get_widget_assert (xml, "t-test-one-sample-dialog");
 
   g_object_get (de->data_editor, "var-store", &vs, NULL);
@@ -148,21 +147,11 @@ t_test_one_sample_dialog (GObject *o, gpointer data)
 
   gtk_window_set_transient_for (GTK_WINDOW (dialog), GTK_WINDOW (de));
 
-  g_object_set (dict_view, "dictionary",
+  g_object_set (dict_view, "model",
                tt_d.dict,
                "predicate",
                var_is_numeric, NULL);
 
-  set_dest_model (GTK_TREE_VIEW (tt_d.vars_treeview), tt_d.dict);
-
-
-  psppire_selector_set_subjects (PSPPIRE_SELECTOR (selector),
-                                dict_view, tt_d.vars_treeview,
-                                insert_source_row_into_tree_view,
-                                NULL,
-                                NULL);
-
-
   g_signal_connect_swapped (dialog, "refresh",
                            G_CALLBACK (refresh),  &tt_d);
 
index 15b99ad21914c6e3b119b5ab810dc54e6941dc48..95e212aff7e21e12e95912a9ab46f9fd3824b9a0 100644 (file)
@@ -21,6 +21,7 @@
 
 #include "psppire-data-window.h"
 #include "psppire-selector.h"
+#include "psppire-var-view.h"
 
 #include "psppire-dict.h"
 #include "psppire-var-store.h"
@@ -56,11 +57,11 @@ generate_syntax (const struct tt_paired_samples_dialog *d)
   gchar *text = NULL;
   GString *str =   g_string_new ("T-TEST \n\tPAIRS = ");
 
-  append_variable_names (str, d->dict, GTK_TREE_VIEW (d->pairs_treeview), 0);
+  psppire_var_view_append_names (PSPPIRE_VAR_VIEW (d->pairs_treeview), 0, str);
 
   g_string_append (str, " WITH ");
 
-  append_variable_names (str, d->dict, GTK_TREE_VIEW (d->pairs_treeview), 1);
+  psppire_var_view_append_names (PSPPIRE_VAR_VIEW (d->pairs_treeview), 1, str);
 
   g_string_append (str, " (PAIRED)");
   g_string_append (str, "\n");
@@ -151,31 +152,6 @@ select_as_pair_member (GtkTreeIter source_iter,
     }
 }
 
-
-/* Append a new column to TV at position C, and heading TITLE */
-static void
-add_new_column (GtkTreeView *tv, const gchar *title, gint c)
-{
-  GtkTreeViewColumn *col = gtk_tree_view_column_new ();
-  GtkCellRenderer *renderer = gtk_cell_renderer_text_new ();
-
-  gtk_tree_view_column_set_min_width (col, 100);
-  gtk_tree_view_column_set_sizing (col, GTK_TREE_VIEW_COLUMN_AUTOSIZE);
-  gtk_tree_view_column_set_resizable (col, TRUE);
-
-
-  gtk_tree_view_column_set_title (col, title);
-
-  gtk_tree_view_column_pack_start (col, renderer, TRUE);
-
-  gtk_tree_view_column_set_sizing (col, GTK_TREE_VIEW_COLUMN_FIXED);
-
-  gtk_tree_view_append_column (tv, col);
-
-  gtk_tree_view_column_add_attribute  (col, renderer, "text", c);
-}
-
-
 /* Pops up the dialog box */
 void
 t_test_paired_samples_dialog (GObject *o, gpointer data)
@@ -207,34 +183,16 @@ t_test_paired_samples_dialog (GObject *o, gpointer data)
   gtk_window_set_transient_for (GTK_WINDOW (dialog), GTK_WINDOW (de));
 
 
-  g_object_set (dict_view, "dictionary", tt_d.dict,
+  g_object_set (dict_view, "model", tt_d.dict,
                "predicate",
                var_is_numeric, NULL);
 
-  {
-    tt_d.list_store =
-      GTK_TREE_MODEL (
-                     gtk_list_store_new (2,
-                                         PSPPIRE_VAR_PTR_TYPE,
-                                         PSPPIRE_VAR_PTR_TYPE));
-
-
-    gtk_tree_view_set_model (GTK_TREE_VIEW (tt_d.pairs_treeview),
-                            GTK_TREE_MODEL (tt_d.list_store));
-
-
-    add_new_column (GTK_TREE_VIEW (tt_d.pairs_treeview), _("Var 1"), 0);
-    add_new_column (GTK_TREE_VIEW (tt_d.pairs_treeview), _("Var 2"), 1);
-  }
-
-
-  psppire_selector_set_subjects (PSPPIRE_SELECTOR (selector),
-                                dict_view,
-                                tt_d.pairs_treeview,
-                                select_as_pair_member,
-                                NULL,
-                                &tt_d);
+  
+  tt_d.list_store = gtk_tree_view_get_model (GTK_TREE_VIEW (tt_d.pairs_treeview));
 
+  psppire_selector_set_select_func (PSPPIRE_SELECTOR (selector),
+                                   select_as_pair_member,
+                                   &tt_d);
 
   g_signal_connect_swapped (dialog, "refresh",
                            G_CALLBACK (refresh),  &tt_d);
index 74d8d0682d1f2b56afb5f5e1d12a44ef81473705..d8c2511315f2b265c33a97b30beba01681c61dfe 100644 (file)
@@ -93,6 +93,8 @@
                     <property name="receives_default">True</property>
                     <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
                     <property name="border_width">5</property>
+                    <property name="source_widget">indep-samples-t-test-treeview1</property>
+                    <property name="dest_widget">indep-samples-t-test-treeview2</property>
                   </object>
                   <packing>
                     <property name="x_options"></property>
                     <property name="receives_default">True</property>
                     <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
                     <property name="border_width">5</property>
+                    <property name="source_widget">indep-samples-t-test-treeview1</property>
+                    <property name="dest_widget">indep-samples-t-test-entry</property>
                   </object>
                   <packing>
                     <property name="top_attach">1</property>
                         <property name="vscrollbar_policy">automatic</property>
                         <property name="shadow_type">etched-in</property>
                         <child>
-                          <object class="GtkTreeView" id="indep-samples-t-test-treeview2">
+                          <object class="PsppireVarView" id="indep-samples-t-test-treeview2">
                             <property name="visible">True</property>
                             <property name="can_focus">True</property>
                             <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
                     <property name="vscrollbar_policy">automatic</property>
                     <property name="shadow_type">etched-in</property>
                     <child>
-                      <object class="GtkTreeView" id="one-sample-t-test-treeview1">
+                      <object class="PsppireVarView" id="one-sample-t-test-treeview1">
                         <property name="visible">True</property>
                         <property name="can_focus">True</property>
                         <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
                 <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
                 <property name="no_show_all">True</property>
                 <property name="border_width">5</property>
+                <property name="source_widget">one-sample-t-test-treeview2</property>
+                <property name="dest_widget">one-sample-t-test-treeview1</property>
               </object>
             </child>
           </object>
                     <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
                     <property name="no_show_all">True</property>
                     <property name="border_width">5</property>
+                    <property name="source_widget">paired-samples-t-test-treeview1</property>
+                    <property name="dest_widget">paired-samples-t-test-treeview2</property>
                   </object>
                 </child>
               </object>
                             <property name="visible">True</property>
                             <property name="can_focus">True</property>
                             <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
-                            <property name="hscrollbar_policy">never</property>
+                            <property name="hscrollbar_policy">always</property>
                             <property name="vscrollbar_policy">automatic</property>
                             <property name="shadow_type">etched-in</property>
                             <child>
-                              <object class="GtkTreeView" id="paired-samples-t-test-treeview2">
+                              <object class="PsppireVarView" id="paired-samples-t-test-treeview2">
                                 <property name="visible">True</property>
                                 <property name="can_focus">True</property>
                                 <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
                                 <property name="enable_search">False</property>
+                                <property name="n-cols">2</property>
                               </object>
                             </child>
                           </object>
index 36640f6f752a71829b391c1310a243d97de8eb17..0061193e16b1b86f1d9dfa6c7c26d336e04cfb6b 100644 (file)
@@ -18,6 +18,7 @@
 
 #include "transpose-dialog.h"
 #include "psppire-selector.h"
+#include "psppire-var-view.h"
 #include "psppire-dialog.h"
 #include "executor.h"
 #include "psppire-data-window.h"
@@ -88,30 +89,15 @@ transpose_dialog (GObject *o, gpointer data)
 
   GtkWidget *dialog = get_widget_assert (xml, "transpose-dialog");
   GtkWidget *source = get_widget_assert (xml, "source-treeview");
-  GtkWidget *dest = get_widget_assert (xml, "variables-treeview");
-  GtkWidget *selector1 = get_widget_assert (xml, "psppire-selector2");
   GtkWidget *selector2 = get_widget_assert (xml, "psppire-selector3");
-  GtkWidget *new_name_entry = get_widget_assert (xml, "new-name-entry");
 
   g_object_get (de->data_editor, "var-store", &vs, NULL);
 
   g_object_get (vs, "dictionary", &dict, NULL);
-  g_object_set (source, "dictionary", dict, NULL);
-
-  set_dest_model (GTK_TREE_VIEW (dest), dict);
-
-  psppire_selector_set_subjects (PSPPIRE_SELECTOR (selector1),
-                                source, dest,
-                                insert_source_row_into_tree_view,
-                                NULL,
-                                NULL);
-
+  g_object_set (source, "model", dict, NULL);
 
-  psppire_selector_set_subjects (PSPPIRE_SELECTOR (selector2),
-                                source, new_name_entry,
-                                insert_source_row_into_entry,
-                                is_currently_in_entry,
-                                NULL);
+  psppire_selector_set_filter_func (PSPPIRE_SELECTOR (selector2),
+                                is_currently_in_entry);
 
 
   g_signal_connect (dialog, "refresh", G_CALLBACK (refresh),  xml);
@@ -166,7 +152,7 @@ generate_syntax (PsppireDict *dict, GtkBuilder *xml)
 
   g_string_append (string, " /VARIABLES = ");
 
-  append_variable_names (string, dict, GTK_TREE_VIEW (dest), 0);
+  psppire_var_view_append_names (PSPPIRE_VAR_VIEW (dest), 0, string);
 
   text = gtk_entry_get_text (GTK_ENTRY (entry));
 
index 11cee3e5d78a84b73d4e6ff63f5e85d9eed89cf3..cbc4d5cadb97eedc10b929e4532da9e820d7df3d 100644 (file)
@@ -65,7 +65,7 @@ populate_text (PsppireDictView *treeview, gpointer data)
   if ( var == NULL)
     return;
 
-  g_object_get (treeview, "dictionary", &dict,
+  g_object_get (treeview, "model", &dict,
                NULL);
 
   gstring = g_string_sized_new (200);
@@ -165,7 +165,7 @@ variable_info_dialog (GObject *o, gpointer data)
   gtk_window_set_transient_for (GTK_WINDOW (dialog), GTK_WINDOW (de));
 
   g_object_get (vs, "dictionary", &dict, NULL);
-  g_object_set (treeview, "dictionary", dict,
+  g_object_set (treeview, "model", dict,
                "selection-mode", GTK_SELECTION_SINGLE,
                NULL);
 
index b3087159f941adf7d16b7d2dc1d66f7165ee38d5..40951360d70186658642ec2a99c701ed8e9e042c 100644 (file)
@@ -132,19 +132,13 @@ weight_cases_dialog (GObject *o, gpointer data)
                    radiobutton1);
 
   
-  g_object_set (source, "dictionary", wcd.dict,
+  g_object_set (source, "model", wcd.dict,
                                 "selection-mode", GTK_SELECTION_SINGLE,
                                 "predicate", var_is_numeric,
                                 NULL);
 
-  psppire_selector_set_subjects (PSPPIRE_SELECTOR (selector),
-                                source,
-                                entry,
-                                insert_source_row_into_entry,
-                                is_currently_in_entry,
-                                NULL
-                                );
-
+  psppire_selector_set_filter_func (PSPPIRE_SELECTOR (selector),
+                                   is_currently_in_entry);
 
 
   wcd.entry = GTK_ENTRY (entry);
index 979224fe4152331227d6597cf3259e08fb996cb5..a1a55d1453a3816bd1a3bdf68c7b0b833bf3bccc 100644 (file)
@@ -10,6 +10,7 @@
 #include "psppire-keypad.h"
 #include "psppire-acr.h"
 #include "psppire-dictview.h"
+#include "psppire-var-view.h"
 
 
 /* Any custom widgets which are to be used in GtkBuilder ui files
@@ -25,4 +26,5 @@ preregister_widgets (void)
   psppire_keypad_get_type ();
   psppire_acr_get_type ();
   psppire_dict_view_get_type ();
+  psppire_var_view_get_type ();
 }