Fix typo in po/automake.mk
[pspp] / po / fr.po
index 09e8891e37c22aa1aaabafd1c32d1e0cfeea731a..a0e2e760380d3b6e0cc573193ec1c3cadf607955 100644 (file)
--- a/po/fr.po
+++ b/po/fr.po
@@ -5,14 +5,14 @@
 # John Darrington <john@darrington.wattle.id.au>, 2007.
 # Jean-Alain Meunier <ja.meunier@gmail.com>, 2012.
 # Eric Thivant <eric.thivant@wanadoo.fr>, 2016.
-# Stéphane Aulery <lkppo@free.fr>, 2016, 2017.
+# Stéphane Aulery <lkppo@free.fr>, 2016, 2017, 2019.
 #
 msgid ""
 msgstr ""
-"Project-Id-Version: pspp 0.10.5-pre3\n"
+"Project-Id-Version: pspp 1.2.0\n"
 "Report-Msgid-Bugs-To: pspp-dev@gnu.org\n"
 "POT-Creation-Date: 2015-06-19 20:56-0700\n"
-"PO-Revision-Date: 2017-08-21 23:21+0200\n"
+"PO-Revision-Date: 2019-05-01 11:51+0200\n"
 "Last-Translator: Stéphane Aulery <lkppo@free.fr>\n"
 "Language-Team: French <traduc@traduc.org>\n"
 "Language: fr\n"
@@ -27,67 +27,67 @@ msgstr ""
 msgid "Sorry. The help system hasn't yet been implemented."
 msgstr "Désolé. Le système d’aide n’a pas été installé."
 
-#: src/data/format.c:329
+#: src/data/format.c:339
 msgid "Input format"
 msgstr "format d’entrée"
 
-#: src/data/format.c:329
+#: src/data/format.c:339
 msgid "Output format"
 msgstr "format de sortie"
 
-#: src/data/format.c:332
+#: src/data/format.c:342
 #, c-format
 msgid "Format %s may not be used for input."
 msgstr "Le format %s peut ne pas être utilisé pour la saisie des données."
 
-#: src/data/format.c:339
+#: src/data/format.c:349
 #, c-format
 msgid "%s specifies width %d, but %s requires an even width."
 msgstr "%s spécifie la largeur %d, mais %s nécessite une même largeur."
 
-#: src/data/format.c:348
+#: src/data/format.c:358
 #, c-format
 msgid "%s %s specifies width %d, but %s requires a width between %d and %d."
 msgstr "%s %s précise une largeur %d, mais %s nécessite une largeur entre %d et %d."
 
-#: src/data/format.c:357
+#: src/data/format.c:367
 #, 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 spécifie %d position décimale, mais %s ne permet aucune décimale."
 msgstr[1] "%s %s spécifie %d positions décimales, mais %s ne permet aucune décimale."
 
-#: src/data/format.c:368
+#: src/data/format.c:378
 #, 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 spécifie %d position décimale, mais la largeur donnée permet au plus %d décimales."
 msgstr[1] "%s %s spécifie %d positions décimales, mais la largeur donnée permet au plus %d décimales."
 
-#: src/data/format.c:375
+#: src/data/format.c:385
 #, 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 spécifie %d position décimale,  mais la largeur mentionnée ne permet aucune décimale."
 msgstr[1] "%s %s spécifie %d positions décimales, mais la largeur mentionnée ne permet aucune décimale."
 
-#: src/data/format.c:414
+#: src/data/format.c:424
 #, c-format
 msgid "%s variables are not compatible with %s format %s."
 msgstr "%s variables ne sont pas compatible avec %s format %s."
 
-#: src/data/format.c:415 src/data/format.c:1010
+#: src/data/format.c:425 src/data/format.c:1040
 #: src/ui/gui/var-type-dialog.ui:167
 msgid "String"
 msgstr "Chaîne"
 
-#: src/data/format.c:415 src/data/format.c:973
+#: src/data/format.c:425 src/data/format.c:1001
 #: src/ui/gui/var-type-dialog.ui:48
 msgid "Numeric"
 msgstr "Numérique"
 
-#: src/data/format.c:416 src/data/sys-file-reader.c:2199
-#: src/data/sys-file-reader.c:2201 src/language/xforms/recode.c:512
+#: src/data/format.c:426 src/data/sys-file-reader.c:2198
+#: src/data/sys-file-reader.c:2200 src/language/xforms/recode.c:512
 #: src/language/xforms/recode.c:513 src/language/xforms/recode.c:525
 #: src/language/xforms/recode.c:526
 #: src/language/dictionary/apply-dictionary.c:77
@@ -95,8 +95,8 @@ msgstr "Numérique"
 msgid "numeric"
 msgstr "numérique"
 
-#: src/data/format.c:416 src/data/sys-file-reader.c:2199
-#: src/data/sys-file-reader.c:2201 src/language/xforms/recode.c:512
+#: src/data/format.c:426 src/data/sys-file-reader.c:2198
+#: src/data/sys-file-reader.c:2200 src/language/xforms/recode.c:512
 #: src/language/xforms/recode.c:513 src/language/xforms/recode.c:525
 #: src/language/xforms/recode.c:526
 #: src/language/dictionary/apply-dictionary.c:77
@@ -104,32 +104,32 @@ msgstr "numérique"
 msgid "string"
 msgstr "chaîne"
 
-#: src/data/format.c:434
+#: src/data/format.c:444
 #, c-format
 msgid "String variable with width %d is not compatible with format %s."
 msgstr "La variable chaîne avec la largeur %d n’est pas compatible avec le format %s."
 
-#: src/data/format.c:976 src/ui/gui/var-type-dialog.ui:65
+#: src/data/format.c:1004 src/ui/gui/var-type-dialog.ui:65
 msgid "Comma"
 msgstr "Virgule"
 
-#: src/data/format.c:979 src/ui/gui/var-type-dialog.ui:82
+#: src/data/format.c:1007 src/ui/gui/var-type-dialog.ui:82
 msgid "Dot"
 msgstr "Point"
 
-#: src/data/format.c:982
+#: src/data/format.c:1010
 msgid "Scientific"
 msgstr "Scientifique"
 
-#: src/data/format.c:997 src/ui/gui/var-type-dialog.ui:116
+#: src/data/format.c:1027 src/ui/gui/var-type-dialog.ui:116
 msgid "Date"
 msgstr "Date"
 
-#: src/data/format.c:1000 src/ui/gui/var-type-dialog.ui:133
+#: src/data/format.c:1030 src/ui/gui/var-type-dialog.ui:133
 msgid "Dollar"
 msgstr "Dollar"
 
-#: src/data/format.c:1007
+#: src/data/format.c:1037
 msgid "Custom"
 msgstr "Personnalisé"
 
@@ -158,12 +158,12 @@ msgid "Continue"
 msgstr "Continuer"
 
 #: src/ui/gui/psppire-buttonbox.c:368
-#: src/ui/gui/psppire-import-assistant.c:938
+#: src/ui/gui/psppire-import-assistant.c:739
 msgid "Paste"
 msgstr "Coller"
 
-#: src/ui/gui/psppire-buttonbox.c:374 src/ui/gui/psppire-data-window.c:533
-#: src/ui/gui/psppire-data-window.c:661
+#: src/ui/gui/psppire-buttonbox.c:374 src/ui/gui/psppire-data-window.c:535
+#: src/ui/gui/psppire-data-window.c:663
 #: src/ui/gui/psppire-dialog-action-aggregate.c:216
 #: src/ui/gui/psppire-output-window.c:381
 #: src/ui/gui/psppire-syntax-window.c:559 src/ui/gui/psppire-window.c:472
@@ -176,7 +176,7 @@ msgid "Close"
 msgstr "Fermer"
 
 #: src/ui/gui/psppire-buttonbox.c:387
-#: src/ui/gui/psppire-import-assistant.c:939
+#: src/ui/gui/psppire-import-assistant.c:740
 msgid "Reset"
 msgstr "Effacer"
 
@@ -184,34 +184,34 @@ msgstr "Effacer"
 msgid "Help"
 msgstr "Aide"
 
-#: src/ui/gui/psppire-dictview.c:603 src/language/dictionary/split-file.c:82
+#: src/ui/gui/psppire-dictview.c:602 src/language/dictionary/split-file.c:82
 #: src/language/dictionary/sys-file-info.c:240
 #: src/language/dictionary/sys-file-info.c:440
 #: src/language/dictionary/sys-file-info.c:738
 #: src/language/stats/descriptives.c:1027
 #: src/language/data-io/data-parser.c:672
-#: src/language/data-io/data-parser.c:711 src/language/data-io/print.c:446
-#: src/ui/gui/psppire-var-sheet.c:1243
+#: src/language/data-io/data-parser.c:711 src/language/data-io/print.c:440
+#: src/ui/gui/psppire-data-editor.c:527
 msgid "Variable"
 msgstr "Variable"
 
-#: src/ui/gui/psppire-dictview.c:640
+#: src/ui/gui/psppire-dictview.c:639
 msgid "Prefer variable labels"
 msgstr "Choisir les étiquettes de variable"
 
-#: src/ui/gui/psppire-dictview.c:654
+#: src/ui/gui/psppire-dictview.c:653
 msgid "Default sort order"
 msgstr "Ordre de tri pas défaut"
 
-#: src/ui/gui/psppire-dictview.c:660
+#: src/ui/gui/psppire-dictview.c:659
 msgid "Unsorted (dictionary order)"
 msgstr "Trier par"
 
-#: src/ui/gui/psppire-dictview.c:665
+#: src/ui/gui/psppire-dictview.c:664
 msgid "Sort by name"
 msgstr "Tri par noms"
 
-#: src/ui/gui/psppire-dictview.c:670
+#: src/ui/gui/psppire-dictview.c:669
 msgid "Sort by label"
 msgstr "Trier par étiquette"
 
@@ -263,7 +263,7 @@ msgstr "_Toutes les autres valeurs"
 msgid "An error occurred while opening `%s': %s."
 msgstr "Une erreur est survenue en ouvrant « %s » : %s."
 
-#: src/data/any-reader.c:93 src/language/lexer/lexer.c:1638
+#: src/data/any-reader.c:93 src/language/lexer/lexer.c:1629
 #, c-format
 msgid "Error reading `%s': %s."
 msgstr "Erreur de lecture « %s » : %s."
@@ -316,7 +316,7 @@ msgstr "fichier au format CSV"
 msgid "Error opening `%s' for writing as a system file: %s."
 msgstr "Erreur d’ouverture « %s » lors de l’écriture en tant que fichier système : %s."
 
-#: src/data/csv-file-writer.c:464
+#: src/data/csv-file-writer.c:466
 #, c-format
 msgid "An I/O error occurred writing CSV file `%s'."
 msgstr "Une erreur d’entrée-sortie (I/O) est survenue lors de l’écriture d’un fichier CSV « %s »."
@@ -370,7 +370,7 @@ msgstr "Syntaxe décimale de zone invalide."
 msgid "Invalid syntax for P field."
 msgstr "Syntaxe invalide pour le champ P. "
 
-#: src/data/data-in.c:768 src/data/data-in.c:814
+#: src/data/data-in.c:768 src/data/data-in.c:818
 msgid "Syntax error in date field."
 msgstr "Erreur de syntaxe dans le champ date."
 
@@ -379,68 +379,68 @@ msgstr "Erreur de syntaxe dans le champ date."
 msgid "Day (%ld) must be between 1 and 31."
 msgstr "La date du jour (%ld) doit être comprise entre 1 et 31."
 
-#: src/data/data-in.c:828
+#: src/data/data-in.c:832
 msgid "Delimiter expected between fields in date."
 msgstr "Des limites sont attendues entre les champs pour la date."
 
-#: src/data/data-in.c:902
+#: src/data/data-in.c:906
 msgid "Unrecognized month format.  Months may be specified as Arabic or Roman numerals or as at least 3 letters of their English names."
 msgstr "Le Format du mois n’est pas reconnu. Les mois peuvent être spécifiés en chiffres arabes ou romains ou au moins les trois premières lettres de leurs noms en anglais. "
 
-#: src/data/data-in.c:929
+#: src/data/data-in.c:933
 #, c-format
 msgid "Year (%ld) must be between 1582 and 19999."
 msgstr "L’année (%ld) doit être comprise entre 1582 et 19999."
 
 # ??? trailing
-#: src/data/data-in.c:940
+#: src/data/data-in.c:944
 #, c-format
 msgid "Trailing garbage `%.*s' following date."
 msgstr "Supprimer la partie « %.*s » da la date suivante."
 
-#: src/data/data-in.c:954
+#: src/data/data-in.c:958
 msgid "Julian day must have exactly three digits."
 msgstr "Les jours du calendrier Julien doit avoir exactement trois chiffres."
 
-#: src/data/data-in.c:956
+#: src/data/data-in.c:960
 #, c-format
 msgid "Julian day (%ld) must be between 1 and 366."
 msgstr "Les jours du calendrier Julien (%ld) doit être compris entre 1 et 366 jours."
 
-#: src/data/data-in.c:980
+#: src/data/data-in.c:984
 #, c-format
 msgid "Quarter (%ld) must be between 1 and 4."
 msgstr "Les trimestres (%ld) doivent être compris entre 1 et 4."
 
-#: src/data/data-in.c:1001
+#: src/data/data-in.c:1005
 #, c-format
 msgid "Week (%ld) must be between 1 and 53."
 msgstr "Les semaines (%ld) doivent être comprises entre 1 et 53."
 
-#: src/data/data-in.c:1013
+#: src/data/data-in.c:1017
 msgid "Delimiter expected between fields in time."
 msgstr "Des limites sont attendues concernant les champs \"temps\""
 
-#: src/data/data-in.c:1033
+#: src/data/data-in.c:1037
 #, c-format
 msgid "Minute (%ld) must be between 0 and 59."
 msgstr "Les minutes (%ld) doivent être comprises entre 0 et 59."
 
-#: src/data/data-in.c:1071
+#: src/data/data-in.c:1075
 msgid "Unrecognized weekday name.  At least the first two letters of an English weekday name must be specified."
 msgstr "Le nom de la semaine est non reconnue. il faut au moins spécifier les deux premières lettres du nom de la semaine en anglais."
 
-#: src/data/data-in.c:1201
+#: src/data/data-in.c:1210
 #, c-format
 msgid "`%c' expected in date field."
 msgstr "« %c » attendus dans le champ date."
 
-#: src/data/data-out.c:574
+#: src/data/data-out.c:579
 #, c-format
 msgid "Weekday number %f is not between 1 and 7."
 msgstr "Le nombre de semaine %f n’est pas entre 1 et 7."
 
-#: src/data/data-out.c:599
+#: src/data/data-out.c:604
 #, c-format
 msgid "Month number %f is not between 1 and 12."
 msgstr "Le nombre de mois %f n’est pas entre 1 et 12"
@@ -463,7 +463,7 @@ msgstr "système"
 msgid "scratch"
 msgstr "effacer"
 
-#: src/data/dictionary.c:1336
+#: src/data/dictionary.c:1396
 #, c-format
 msgid "Truncating document line to %d bytes."
 msgstr "Reduction des lignes du document à %d bytes."
@@ -497,33 +497,28 @@ msgstr "Ne peut pas réouvrir %s comme %s."
 msgid "Not opening pipe file `%s' because %s option set."
 msgstr "Ouverture impossible du fichier « %s » car l’option « %s » est active."
 
-#: src/data/gnumeric-reader.c:37 src/data/ods-reader.c:41
-#, c-format
-msgid "Support for %s files was not compiled into this installation of PSPP"
-msgstr "Le support des fichiers %s n’a pas été compilé dans cette version de PSPP "
-
-#: src/data/gnumeric-reader.c:520 src/data/ods-reader.c:544
+#: src/data/gnumeric-reader.c:478 src/data/ods-reader.c:501
 #, c-format
 msgid "Cannot convert the value in the spreadsheet cell %s to format (%s): %s"
 msgstr "Ne peut pas convertir la valeur dans la cellule %s au format (%s): %s"
 
-#: src/data/gnumeric-reader.c:543 src/data/ods-reader.c:599
+#: src/data/gnumeric-reader.c:501 src/data/ods-reader.c:556
 #, c-format
 msgid "There was a problem whilst reading the %s file `%s' (near line %d): `%s'"
 msgstr "Il y avait un problème en lisant le dossier %s de « %s » (près de la ligne %d) : « %s »"
 
-#: src/data/gnumeric-reader.c:638
+#: src/data/gnumeric-reader.c:596
 #, c-format
 msgid "The gnumeric file `%s' is encoded as %s instead of the usual UTF-8 encoding. Any non-ascii characters will be incorrectly imported."
 msgstr "Le fichier gnumeric « %s » est codé en %s au lieu de l’habituel encodage UTF-8. Tous les caractères non-ASCII seront pas correctement importés."
 
-#: src/data/gnumeric-reader.c:682 src/data/ods-reader.c:730
+#: src/data/gnumeric-reader.c:640 src/data/ods-reader.c:687
 #, c-format
 msgid "Invalid cell range `%s'"
 msgstr "Plage de cellule invalide « %s »"
 
-#: src/data/gnumeric-reader.c:854 src/data/ods-reader.c:758
-#: src/data/ods-reader.c:891
+#: src/data/gnumeric-reader.c:812 src/data/ods-reader.c:715
+#: src/data/ods-reader.c:848
 #, c-format
 msgid "Selected sheet or range of spreadsheet `%s' is empty."
 msgstr "La feuille sélectionnée ou l’ensemble des feuilles sélectionnées « %s » sont vides. "
@@ -557,6 +552,26 @@ msgstr "Le caractère %s (en « %s ») ne peut être utilisé comme le premier
 msgid "Character %s (in `%s') may not appear in an identifier."
 msgstr "Le caractère %s (en « %s ») ne peut être utilisé dans un identifiant."
 
+#: src/data/mdd-writer.c:87
+#, c-format
+msgid "An I/O error occurred writing metadata file `%s'."
+msgstr "Erreur d’entrée-sortie (I/O) survenue à l’écriture du fichier de métadonnées %s."
+
+#. TRANSLATORS: this fragment will be interpolated into
+#. messages in fh_lock() that identify types of files.
+#: src/data/mdd-writer.c:205
+msgid "metadata file"
+msgstr "fichier de métadonnées"
+
+#: src/data/mdd-writer.c:213
+#, c-format
+msgid "Error opening `%s' for writing as a metadata file: %s."
+msgstr "Erreur d’ouverture « %s » pour la lecture du fichier de métadonnées : %s."
+
+#: src/data/mdd-writer.c:221
+msgid "Internal error creating xmlTextWriter."
+msgstr "Erreur interne lors de la création xmlTextWriter"
+
 #: src/data/make-file.c:218
 #, c-format
 msgid "Opening %s for writing: %s."
@@ -597,7 +612,7 @@ msgstr "Suppression %s:%s."
 msgid "%s is not a valid name for a multiple response set.  Multiple response set names must begin with `$'."
 msgstr "%s n’est pas un nom valide pour un jeu de réponses multiples Le jeu de réponses multiples doit commencer par « $ »."
 
-#: src/data/ods-reader.c:651
+#: src/data/ods-reader.c:608
 #, c-format
 msgid "Cannot open %s as a OpenDocument file: %s"
 msgstr "Impossible d&#39;ouvrir%s en tant que fichier OpenDocument:%s"
@@ -613,7 +628,7 @@ msgstr "fichier système SPSS/PC+"
 msgid "Error opening `%s' for reading as an SPSS/PC+ system file: %s."
 msgstr "Erreur d’ouverture de « %s » pour la lecture du fichier système SPSS/PC+ : %s."
 
-#: src/data/pc+-file-reader.c:224 src/data/sys-file-reader.c:3506
+#: src/data/pc+-file-reader.c:224 src/data/sys-file-reader.c:3512
 #, c-format
 msgid "%s: stat failed (%s)."
 msgstr "%s : échec de l’opération stat (%s)."
@@ -768,7 +783,7 @@ msgstr "Renommage d’une variable en doublon de « %s » vers « %s »."
 msgid "Cannot weight by string variable `%s'."
 msgstr "Impossible de pondérer à partir de la variable chaîne de caractères « %s »."
 
-#: src/data/pc+-file-reader.c:975 src/data/sys-file-reader.c:2726
+#: src/data/pc+-file-reader.c:975 src/data/sys-file-reader.c:2732
 msgid "File ends in partial case."
 msgstr "Le fichier se termine sur une observation incomplète."
 
@@ -777,36 +792,36 @@ msgstr "Le fichier se termine sur une observation incomplète."
 msgid "Case beginning at offset 0x%08x extends past end of data record at offset 0x%08x."
 msgstr "Le cas commençant à l’offset 0x%08x s’étend après la fin de l’enregistrement de données à l’offset 0x%08x."
 
-#: src/data/pc+-file-reader.c:1000 src/data/sys-file-reader.c:2734
+#: src/data/pc+-file-reader.c:1000 src/data/sys-file-reader.c:2740
 #, c-format
 msgid "Error reading case from file %s."
 msgstr "Erreur de lecture d’une observation à partir du fichier %s."
 
-#: src/data/pc+-file-reader.c:1116 src/data/sys-file-reader.c:2897
+#: src/data/pc+-file-reader.c:1116 src/data/sys-file-reader.c:2903
 #, c-format
 msgid "Possible compressed data corruption: string contains compressed integer (opcode %d)."
 msgstr "Possible corruption de données compressées : des chaînes contiennent  un entier compressé (opcode %d)."
 
-#: src/data/pc+-file-reader.c:1160 src/data/sys-file-reader.c:3195
+#: src/data/pc+-file-reader.c:1160 src/data/sys-file-reader.c:3201
 #, c-format
 msgid "`%s' near offset 0x%llx: "
 msgstr "« %s » près du segment 0x%llx : "
 
-#: src/data/pc+-file-reader.c:1163 src/data/sys-file-reader.c:3198
+#: src/data/pc+-file-reader.c:1163 src/data/sys-file-reader.c:3204
 #, c-format
 msgid "`%s': "
 msgstr "« %s » : "
 
-#: src/data/pc+-file-reader.c:1219 src/data/sys-file-reader.c:3253
+#: src/data/pc+-file-reader.c:1219 src/data/sys-file-reader.c:3259
 #, c-format
 msgid "System error: %s."
 msgstr "Erreur système : %s."
 
-#: src/data/pc+-file-reader.c:1224 src/data/sys-file-reader.c:3258
+#: src/data/pc+-file-reader.c:1224 src/data/sys-file-reader.c:3264
 msgid "Unexpected end of file."
 msgstr "Fin inattendue du fichier."
 
-#: src/data/pc+-file-reader.c:1309 src/data/sys-file-reader.c:3483
+#: src/data/pc+-file-reader.c:1309 src/data/sys-file-reader.c:3489
 #, c-format
 msgid "%s: seek failed (%s)."
 msgstr "%s : opération seek échouée (%s)."
@@ -1147,353 +1162,363 @@ msgstr "L’enregistrement de type 7 et sous-type %d a une longueur impropre %u
 msgid "Record type 7, subtype %d has bad count %u (expected %d)."
 msgstr "L’enregistrement de type 7 et sous-type %d a une valeur calculée %u (valeur attendue %d)."
 
-#: src/data/sys-file-reader.c:1528
+#: src/data/sys-file-reader.c:1530
 msgid "Missing string continuation record."
 msgstr "Enregistrement de la suite de la chaîne manquante."
 
-#: src/data/sys-file-reader.c:1574
+#: src/data/sys-file-reader.c:1576
 #, c-format
 msgid "Variable %s with width %d has invalid print format 0x%x."
 msgstr "La variable %s de largeur %d présente un format d’impression invalide 0x%x."
 
-#: src/data/sys-file-reader.c:1578
+#: src/data/sys-file-reader.c:1580
 #, c-format
 msgid "Variable %s with width %d has invalid write format 0x%x."
 msgstr "La variable %s de largeur %d présente un format d’écriture invalide 0x%x."
 
-#: src/data/sys-file-reader.c:1583
+#: src/data/sys-file-reader.c:1585
 msgid "Suppressing further invalid format warnings."
 msgstr "Supprimer les avertissements de formats invalides "
 
-#: src/data/sys-file-reader.c:1637
+#: src/data/sys-file-reader.c:1639
 #, c-format
 msgid "Floating-point representation indicated by system file (%d) differs from expected (%d)."
 msgstr "Le format de nombre flottant indiqué par le fichier système (%d) diffère de la valeur attendue (%d)."
 
-#: src/data/sys-file-reader.c:1653
+#: src/data/sys-file-reader.c:1655
 #, c-format
 msgid "Integer format indicated by system file (%d) differs from expected (%d)."
 msgstr "Le format de nombre entier indiqué par le fichier système (%d) diffère de la valeur attendue (%d)."
 
-#: src/data/sys-file-reader.c:1671 src/data/sys-file-reader.c:1677
+#: src/data/sys-file-reader.c:1673 src/data/sys-file-reader.c:1679
 #, c-format
 msgid "File specifies unexpected value %g (%a) as %s, instead of %g (%a)."
 msgstr "Le fichier indique une valeur inattendue %g (%a) comme %s, au lieu de %g (%a)."
 
-#: src/data/sys-file-reader.c:1686
+#: src/data/sys-file-reader.c:1688
 #, c-format
 msgid "File specifies unexpected value %g (%a) as %s, instead of %g (%a) or %g (%a)."
 msgstr "Le fichier indique une valeur inattendue %g (%a) comme %s, au lieu de %g (%a) ou %g (%a)."
 
-#: src/data/sys-file-reader.c:1738 src/data/sys-file-reader.c:1757
+#: src/data/sys-file-reader.c:1740 src/data/sys-file-reader.c:1759
 #, c-format
 msgid "Missing space following `%c' at offset %zu in MRSETS record."
 msgstr "Espace manquant suivant « %c » au décalage %zu dans l’enregistrement MRSETS."
 
 #: src/data/sys-file-reader.c:1767
 #, c-format
+msgid "Missing label source value following `E' at offset %zu in MRSETS record."
+msgstr "Étiquette manquante de la valeur source suivante « E » au segment %zu dans l’enregistrement MRSETS."
+
+#: src/data/sys-file-reader.c:1774
+#, c-format
 msgid "Unexpected label source value following `E' at offset %zu in MRSETS record."
 msgstr "Étiquette inattendue de la valeur source suivante « E » au segment %zu dans l’enregistrement MRSETS."
 
-#: src/data/sys-file-reader.c:1774
+#: src/data/sys-file-reader.c:1781
 #, c-format
 msgid "Missing `C', `D', or `E' at offset %zu in MRSETS record."
 msgstr "Lettres « C », « D » ou « E » manquantes au segment %zu dans l’enregistrement MRSETS."
 
-#: src/data/sys-file-reader.c:1801
+#: src/data/sys-file-reader.c:1808
 #, c-format
 msgid "Missing new-line parsing variable names at offset %zu in MRSETS record."
 msgstr "Nom de variable manquante lors de l’analyse syntaxique d’une nouvelle ligne au segment %zu dans l’enregistrement MRSETS."
 
-#: src/data/sys-file-reader.c:1836
+#: src/data/sys-file-reader.c:1843
 #, c-format
-msgid "Multiple response set name `%s' does not begin with `$'."
-msgstr "Aucun ensemble de réponses multiples nommé « %s » ne commence avec un « $ »."
+msgid "Invalid multiple response set name `%s'."
+msgstr "Ensemble de réponses multiples invalides nommées %s."
 
-#: src/data/sys-file-reader.c:1870
+#: src/data/sys-file-reader.c:1876
 #, c-format
 msgid "MRSET %s contains duplicate variable name %s."
 msgstr "MRSET %s contient un nom de variable déjà utilisé %s."
 
-#: src/data/sys-file-reader.c:1885
+#: src/data/sys-file-reader.c:1891
 #, c-format
 msgid "MRSET %s contains both string and numeric variables."
 msgstr "MRSET %s contient à la fois chaînes et variables numériques."
 
-#: src/data/sys-file-reader.c:1897
+#: src/data/sys-file-reader.c:1903
 #, c-format
 msgid "MRSET %s has no variables."
 msgstr "MRSET %s ne contient pas de variable."
 
-#: src/data/sys-file-reader.c:1899
+#: src/data/sys-file-reader.c:1905
 #, c-format
 msgid "MRSET %s has only one variable."
 msgstr "MRSET %s contient seulement une variable."
 
-#: src/data/sys-file-reader.c:1943
+#: src/data/sys-file-reader.c:1949
 #, c-format
 msgid "Extension 11 has bad count %u (for %zu variables)."
 msgstr "L’extension 11 contient une mauvaise valeur calculée %u (pour %zu variables)."
 
-#: src/data/sys-file-reader.c:1976
+#: src/data/sys-file-reader.c:1982
 #, c-format
 msgid "Invalid variable display parameters for variable %zu (%s).  Default parameters substituted."
 msgstr "Paramètres d’affichage de variable invalides pour la variable %zu (%s). Remplacé par les paramètres par défaut."
 
+#: src/data/sys-file-reader.c:2026
+#, c-format
+msgid "Duplicate long variable name `%s'."
+msgstr "Nom de variable longue invalide « %s »."
+
 # ??? mapping
-#: src/data/sys-file-reader.c:2071
+#: src/data/sys-file-reader.c:2079
 #, c-format
 msgid "Long variable mapping from %s to invalid variable name `%s'."
 msgstr "Application de variable longue de %s au nom de variable invalide « %s »."
 
-#: src/data/sys-file-reader.c:2082
-#, c-format
-msgid "Duplicate long variable name `%s'."
-msgstr "Nom de variable longue invalide « %s »."
-
-#: src/data/sys-file-reader.c:2115
+#: src/data/sys-file-reader.c:2114
 #, c-format
 msgid "%s listed as string of invalid length %s in very long string record."
 msgstr "%s affiché comme chaîne de longueur invalide %s dans un enregistrement d’une chaîne de grande longueur."
 
-#: src/data/sys-file-reader.c:2126
+#: src/data/sys-file-reader.c:2125
 #, c-format
 msgid "%s listed in very long string record with width %s, which requires only one segment."
 msgstr "%s affiché avec une longueur %s dans un enregistrement d’une chaîne de grande longueur qui ne nécessite qu’un seul segment."
 
-#: src/data/sys-file-reader.c:2134
+#: src/data/sys-file-reader.c:2133
 #, c-format
 msgid "Very long string %s overflows dictionary."
 msgstr "La chaîne de grande longueur %s outrepasse le dictionnaire."
 
-#: src/data/sys-file-reader.c:2152
+#: src/data/sys-file-reader.c:2151
 #, c-format
 msgid "Very long string with width %ld has segment %d of width %d (expected %d)."
 msgstr "La chaîne de grande longueur de taille %ld présente un segment %d de taille %d (%d attendu)."
 
-#: src/data/sys-file-reader.c:2195
+#: src/data/sys-file-reader.c:2194
 #, 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 associées aux étiquettes de valeur ne sont pas toutes de type identique. La variable %s is %s, mais la variable %s est %s."
 
-#: src/data/sys-file-reader.c:2215
+#: src/data/sys-file-reader.c:2214
 #, c-format
 msgid "Value labels may not be added to long string variables (e.g. %s) using records types 3 and 4."
 msgstr "Les étiquettes de valeur ne peuvent être ajoutées à des variables de chaîne longues (par exemple %s) utilisant des enregistrements de type 3 et 4."
 
-#: src/data/sys-file-reader.c:2244
+#: src/data/sys-file-reader.c:2243
 #, c-format
 msgid "Duplicate value label for %g on %s."
 msgstr "Étiquette de valeur dupliquée pour %g dans %s."
 
-#: src/data/sys-file-reader.c:2248 src/data/sys-file-reader.c:2562
+#: src/data/sys-file-reader.c:2247 src/data/sys-file-reader.c:2568
 #, c-format
 msgid "Duplicate value label for `%.*s' on %s."
 msgstr " Étiquette de valeur dupliquée pour « %.*s » sur %s."
 
-#: src/data/sys-file-reader.c:2275
+#: src/data/sys-file-reader.c:2274
 #, c-format
 msgid "Variable index %d not in valid range 1...%zu."
 msgstr "L’index de la variable %d n’est pas dans l’intervalle entre 1 et %zu. "
 
-#: src/data/sys-file-reader.c:2284
+#: src/data/sys-file-reader.c:2283
 #, c-format
 msgid "Variable index %d refers to long string continuation."
 msgstr "L’index de la variable %d se réfère à la suite d’une longue chaîne."
 
-#: src/data/sys-file-reader.c:2320
+#: src/data/sys-file-reader.c:2319
 #, c-format
 msgid "Error parsing attribute value %s[%d]."
 msgstr "Erreur d’évaluation de la valeur attribuée %s[%d]."
 
-#: src/data/sys-file-reader.c:2334
+#: src/data/sys-file-reader.c:2333
 #, c-format
 msgid "Attribute value %s[%d] is not quoted: %s."
 msgstr "La valeur attribuée %s[%d] n’est pas indexée : %s."
 
-#: src/data/sys-file-reader.c:2424
+#: src/data/sys-file-reader.c:2346
+#, c-format
+msgid "Duplicate attribute %s."
+msgstr "Nom l'attribut %s dupliqué."
+
+#: src/data/sys-file-reader.c:2430
 #, c-format
 msgid "Invalid role for variable %s."
 msgstr "Rôle de variables %s invalide."
 
-#: src/data/sys-file-reader.c:2433
+#: src/data/sys-file-reader.c:2439
 #, c-format
 msgid "%zu other variables had invalid roles."
 msgstr "Les autres variables %zu ont des rôles invalides."
 
-#: src/data/sys-file-reader.c:2446
+#: src/data/sys-file-reader.c:2452
 #, c-format
 msgid "Extension record subtype %d ends unexpectedly."
 msgstr "Le sous-type d’enregistrement d’extension %d se termine par de manière innattendu."
 
-#: src/data/sys-file-reader.c:2492
+#: src/data/sys-file-reader.c:2498
 #, c-format
 msgid "Ignoring long string value label record for unknown variable %s."
 msgstr "Ignore la valeur de l’enregistrement d’une chaîne longue pour la variable inconnue %s."
 
-#: src/data/sys-file-reader.c:2497
+#: src/data/sys-file-reader.c:2503
 #, c-format
 msgid "Ignoring long string value label record for numeric variable %s."
 msgstr "Ignore la valeur de l’enregistrement d’une chaîne longue pour la variable numérique %s."
 
-#: src/data/sys-file-reader.c:2504
+#: src/data/sys-file-reader.c:2510
 #, c-format
 msgid "Ignoring long string value label record for variable %s because the record's width (%d) does not match the variable's width (%d)."
 msgstr "Ignore la valeur de l’enregistrement d’une chaîne longue pour la variable %s car la longueur de l’enregistrement (%d) ne correspond pas à la longueur de la variable (%d)."
 
-#: src/data/sys-file-reader.c:2535
+#: src/data/sys-file-reader.c:2541
 #, c-format
 msgid "Ignoring long string value label %zu for variable %s, with width %d, that has bad value width %zu."
 msgstr "Ignore la valeur de l’enregistrement d’une chaîne longue %zu pour la variable %s de longueur %d, qui comporte une longueur erronée %zu."
 
-#: src/data/sys-file-reader.c:2609
+#: src/data/sys-file-reader.c:2615
 #, c-format
 msgid "Long string missing values record says variable %s has %d missing values, but only 1 to 3 missing values are allowed."
 msgstr "Des valeurs de l’enregistrement d’une chaîne longue manquantes signifie que la variable %s a %d valeurs manquantes, mais il ne peut en manquer que 1 à 3."
 
-#: src/data/sys-file-reader.c:2619
+#: src/data/sys-file-reader.c:2625
 #, c-format
 msgid "Ignoring long string missing value record for unknown variable %s."
 msgstr "Ignore la valeur de l’enregistrement d’une chaîne longue manquante pour la variable inconnue %s."
 
-#: src/data/sys-file-reader.c:2624
+#: src/data/sys-file-reader.c:2630
 #, c-format
 msgid "Ignoring long string missing value record for numeric variable %s."
 msgstr "Ignore la valeur de l’enregistrement d’une chaîne longue manquante pour la variable numérique %s."
 
-#: src/data/sys-file-reader.c:2649
+#: src/data/sys-file-reader.c:2655
 #, c-format
 msgid "Ignoring long string missing value %zu for variable %s, with width %d, that has bad value width %zu."
 msgstr "Ignore la valeur de l’enregistrement d’une chaîne longue manquante %zu pour la variable %s de longueur %d, qui comporte une longueur erronée %zu."
 
-#: src/data/sys-file-reader.c:2704
+#: src/data/sys-file-reader.c:2710
 msgid "File ends in partial string value."
 msgstr "Le fichier se termine sur une chaîne tronquée."
 
-#: src/data/sys-file-reader.c:2843
+#: src/data/sys-file-reader.c:2849
 msgid "Possible compressed data corruption: compressed spaces appear in numeric field."
 msgstr "Possible corruption de données compressées : des espaces figurent dans un champ numérique."
 
-#: src/data/sys-file-reader.c:2994
+#: src/data/sys-file-reader.c:3000
 #, c-format
 msgid "Suppressed %d additional related warnings."
 msgstr "Suppression %d des avertissements connexes additionnels."
 
-#: src/data/sys-file-reader.c:3040 src/data/sys-file-reader.c:3057
+#: src/data/sys-file-reader.c:3046 src/data/sys-file-reader.c:3063
 #, c-format
 msgid "Dictionary record refers to unknown variable %s."
 msgstr "Un enregistrement de dictionnaire se réfère à une variable inconnue %s."
 
-#: src/data/sys-file-reader.c:3119
+#: src/data/sys-file-reader.c:3125
 #, c-format
 msgid "Expecting digit at offset %zu in MRSETS record."
 msgstr "Chiffre attendu au segment %zu dans l’enregistrement MRSETS."
 
-#: src/data/sys-file-reader.c:3127
+#: src/data/sys-file-reader.c:3133
 #, c-format
 msgid "Expecting space at offset %zu in MRSETS record."
 msgstr "Espace attendu au segment %zu dans l’enregistrement MRSETS."
 
-#: src/data/sys-file-reader.c:3135
+#: src/data/sys-file-reader.c:3141
 #, c-format
 msgid "%zu-byte string starting at offset %zu exceeds record length %zu."
 msgstr "La chaîne de %zu-caractères commençant au segment %zu dépasse la longueur d’enregistrement %zu."
 
-#: src/data/sys-file-reader.c:3145
+#: src/data/sys-file-reader.c:3151
 #, c-format
 msgid "Expecting space at offset %zu following %zu-byte string."
 msgstr "Espace attendu au segment %zu suivant une chaîne de %zu-caractères."
 
-#: src/data/sys-file-reader.c:3441
+#: src/data/sys-file-reader.c:3447
 #, c-format
 msgid "Wrong ZLIB data header offset %#llx (expected %#llx)."
 msgstr "Offset %#llx de l’entête ZLIB incorrect (attendu %#llx)."
 
-#: src/data/sys-file-reader.c:3449
+#: src/data/sys-file-reader.c:3455
 #, c-format
 msgid "Impossible ZLIB trailer offset 0x%llx."
 msgstr "Offset 0x%llx. de la zone de remplissage ZLIB impossible."
 
-#: src/data/sys-file-reader.c:3456
+#: src/data/sys-file-reader.c:3462
 #, c-format
 msgid "Invalid ZLIB trailer length %lld."
 msgstr "Longueur de la zone de remplissage ZLIB invalide %lld."
 
-#: src/data/sys-file-reader.c:3520
+#: src/data/sys-file-reader.c:3526
 #, c-format
 msgid "End of ZLIB trailer (0x%llx) is not file size (0x%llx)."
 msgstr "La fin de l’enregistrement ZLIB (0x%llx) n’est pas une taille de fichier (0x%llx)."
 
-#: src/data/sys-file-reader.c:3530
+#: src/data/sys-file-reader.c:3536
 #, c-format
 msgid "ZLIB trailer bias (%lld) differs from file header bias (%.2f)."
 msgstr "L’enregistrement ZLIB bias (%lld) diffère de l’entête bias du fichier (%.2f)."
 
-#: src/data/sys-file-reader.c:3540
+#: src/data/sys-file-reader.c:3546
 #, c-format
 msgid "ZLIB trailer \"zero\" field has nonzero value %lld."
 msgstr "L’enregistrement ZLIB « zéro » a la valeur non nulle %lld."
 
-#: src/data/sys-file-reader.c:3546
+#: src/data/sys-file-reader.c:3552
 #, c-format
 msgid "ZLIB trailer specifies unexpected %u-byte block size."
 msgstr "L’enregistrement ZLIB indique une taille de bloc inattendue : %u octets."
 
-#: src/data/sys-file-reader.c:3554
+#: src/data/sys-file-reader.c:3560
 #, c-format
 msgid "%lld-byte ZLIB trailer specifies %u data blocks (expected %lld)."
 msgstr "L’enregistrement ZLIB de %lld-octet spécifie %u blocs de données (%lld attendu)."
 
-#: src/data/sys-file-reader.c:3579
+#: src/data/sys-file-reader.c:3585
 #, c-format
 msgid "ZLIB block descriptor %u reported uncompressed data offset %#llx, when %#llx was expected."
 msgstr "Le descripteur de bloc ZLIB %u rapporte l’offset %#llx de données non-compressées, lorsque %#llx était attendu."
 
-#: src/data/sys-file-reader.c:3588
+#: src/data/sys-file-reader.c:3594
 #, c-format
 msgid "ZLIB block descriptor %u reported compressed data offset %#llx, when %#llx was expected."
 msgstr "Le descripteur de bloc ZLIB %u rapporte l’offset %#llx de données compressées, lorsque %#llx était attendu."
 
-#: src/data/sys-file-reader.c:3598
+#: src/data/sys-file-reader.c:3604
 #, c-format
 msgid "ZLIB block descriptor %u reported block size %#x, when %#x was expected."
 msgstr "Le descripteur de bloc ZLIB %u rapporte une taille %#x, lorsque %#x était attendu."
 
-#: src/data/sys-file-reader.c:3606
+#: src/data/sys-file-reader.c:3612
 #, c-format
 msgid "ZLIB block descriptor %u reported block size %#x, when at most %#x was expected."
 msgstr "Le descripteur de bloc ZLIB %u rapporte une taille %#x, lorsque au moins %#x était attendu."
 
-#: src/data/sys-file-reader.c:3618
+#: src/data/sys-file-reader.c:3624
 #, c-format
 msgid "ZLIB block descriptor %u reports compressed size %u and uncompressed size %u."
 msgstr "Le descripteur de bloc ZLIB %u rapporte une taille compressée %u et non compressée %u."
 
-#: src/data/sys-file-reader.c:3630
+#: src/data/sys-file-reader.c:3636
 #, c-format
 msgid "ZLIB trailer is at offset %#llx but %#llx would be expected from block descriptors."
 msgstr "L’enregistrement ZLIB est à l’offset %#llx mais %#llx serait attendu pour des descripteurs de blocs."
 
-#: src/data/sys-file-reader.c:3649
+#: src/data/sys-file-reader.c:3655
 #, c-format
 msgid "ZLIB initialization failed (%s)."
 msgstr "Echec de l’initialisation de ZLIB (%s)."
 
-#: src/data/sys-file-reader.c:3664
+#: src/data/sys-file-reader.c:3670
 #, c-format
 msgid "Inconsistency at end of ZLIB stream (%s)."
 msgstr "Incohérence à la fin du flux ZLIB (%s)."
 
-#: src/data/sys-file-reader.c:3723
+#: src/data/sys-file-reader.c:3729
 #, c-format
 msgid "ZLIB stream inconsistency (%s)."
 msgstr "Flux ZLIB incohérent (%s)."
 
-#: src/data/sys-file-reader.c:3747
+#: src/data/sys-file-reader.c:3753
 msgid "Unexpected end of ZLIB compressed data."
 msgstr "Fin des données compressées ZLIB incorrecte."
 
-#: src/data/sys-file-reader.c:3785
+#: src/data/sys-file-reader.c:3791
 msgid "SPSS System File"
 msgstr "Fichier système SPSS"
 
@@ -1527,66 +1552,66 @@ msgstr "Flux de compression ZLIB échoué (%s)"
 msgid "%s: Seek failed (%s)."
 msgstr "%s : opération seek échouée (%s)."
 
-#: src/data/variable.c:675
-#, c-format
-msgid "%s (%s)"
-msgstr "%s (%s)"
+#: src/data/variable.c:57
+msgid "Left"
+msgstr "Gauche"
+
+#: src/data/variable.c:58
+msgid "Right"
+msgstr "Droite"
+
+#: src/data/variable.c:59
+msgid "Center"
+msgstr "Centre"
 
-#: src/data/variable.c:777
+#: src/data/variable.c:65
 msgid "Nominal"
 msgstr "Nominale"
 
-#: src/data/variable.c:780
+#: src/data/variable.c:66
 msgid "Ordinal"
 msgstr "Ordinale"
 
-#: src/data/variable.c:783 src/language/stats/ks-one-sample.c:327
+#: src/data/variable.c:67 src/language/stats/ks-one-sample.c:327
 msgid "Scale"
 msgstr "Échelle"
 
-#: src/data/variable.c:874
+#: src/data/variable.c:73
 msgid "Input"
 msgstr "format d’entrée"
 
 #. TRANSLATORS: This will be part of a filename.  Please avoid whitespace.
-#: src/data/variable.c:877 src/ui/gui/psppire-output-window.c:581
+#: src/data/variable.c:74 src/ui/gui/psppire-output-window.c:581
 msgid "Output"
 msgstr "Sortie"
 
-#: src/data/variable.c:880
+#: src/data/variable.c:75
 msgid "Both"
 msgstr "Tous les deux"
 
-#: src/data/variable.c:883 src/language/dictionary/sys-file-info.c:229
+#: src/data/variable.c:76 src/language/dictionary/sys-file-info.c:229
 #: src/ui/gui/psppire-dialog-action-crosstabs.c:84
 #: src/ui/gui/psppire-dialog-action-crosstabs.c:96
 #: src/ui/gui/psppire-dialog-action-crosstabs.c:131
 #: src/ui/gui/psppire-dialog-action-crosstabs.c:139
-#: src/ui/gui/psppire-var-sheet.c:438 src/ui/gui/var-display.c:34
+#: src/ui/gui/psppire-variable-sheet.c:397 src/ui/gui/var-display.c:34
 msgid "None"
 msgstr "Aucun(e)"
 
-#: src/data/variable.c:886
+#: src/data/variable.c:77
 msgid "Partition"
 msgstr "Partition"
 
-#: src/data/variable.c:889 src/ui/gui/reliability.ui:37
+#: src/data/variable.c:78 src/ui/gui/reliability.ui:37
 msgid "Split"
 msgstr "_Diviser"
 
-#: src/data/variable.c:1002
-msgid "Left"
-msgstr "Gauche"
-
-#: src/data/variable.c:1005
-msgid "Right"
-msgstr "Droite"
-
-#: src/data/variable.c:1008
-msgid "Center"
-msgstr "Centre"
+#: src/data/variable.c:710
+#, c-format
+msgid "%s (%s)"
+msgstr "%s (%s)"
 
-#: src/data/variable.c:1334
+#: src/data/variable.c:1322
 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 "Au moins un cas dans le fichier de données contient une valeur pondérée erronée (valeur utilisateur ou système manquante, nulle ou négative). Ces cas ont été ignorés."
 
@@ -1676,149 +1701,149 @@ msgstr "Cette commande n’est pas permise quand l’option %s est active."
 msgid "Error removing `%s': %s."
 msgstr "Erreur d’effacement de « %s » : %s."
 
-#: src/language/lexer/lexer.c:295
+#: src/language/lexer/lexer.c:296
 #, c-format
 msgid "expecting %s"
 msgstr "%s attendu"
 
-#: src/language/lexer/lexer.c:299
+#: src/language/lexer/lexer.c:300
 #, c-format
 msgid "expecting %s or %s"
 msgstr "Attend  %s ou %s"
 
-#: src/language/lexer/lexer.c:303
+#: src/language/lexer/lexer.c:304
 #, c-format
 msgid "expecting %s, %s, or %s"
 msgstr "en attente de  %s, %s ou %s"
 
-#: src/language/lexer/lexer.c:308
+#: src/language/lexer/lexer.c:309
 #, c-format
 msgid "expecting %s, %s, %s, or %s"
 msgstr "en attente de  %s, %s, %s ou %s"
 
-#: src/language/lexer/lexer.c:313
+#: src/language/lexer/lexer.c:314
 #, c-format
 msgid "expecting %s, %s, %s, %s, or %s"
 msgstr "en attente de  %s, %s, %s, %s ou %s"
 
-#: src/language/lexer/lexer.c:318
+#: src/language/lexer/lexer.c:319
 #, c-format
 msgid "expecting %s, %s, %s, %s, %s, or %s"
 msgstr "en attente de  %s, %s, %s, %s, %s ou %s"
 
-#: src/language/lexer/lexer.c:324
+#: src/language/lexer/lexer.c:325
 #, c-format
 msgid "expecting %s, %s, %s, %s, %s, %s, or %s"
 msgstr "en attente de  %s, %s, %s, %s, %s, %s ou %s"
 
-#: src/language/lexer/lexer.c:330
+#: src/language/lexer/lexer.c:331
 #, c-format
 msgid "expecting %s, %s, %s, %s, %s, %s, %s, or %s"
 msgstr "en attente de  %s, %s, %s, %s, %s, %s, %s ou %s"
 
-#: src/language/lexer/lexer.c:350
+#: src/language/lexer/lexer.c:351
 #, c-format
 msgid "Subcommand %s may only be specified once."
 msgstr "La sous-commande %s ne peut être spécifiée qu’une fois."
 
-#: src/language/lexer/lexer.c:362
+#: src/language/lexer/lexer.c:363
 #, c-format
 msgid "Required subcommand %s was not specified."
 msgstr "La sous-commande demandée %s n’est pas spécifiée."
 
-#: src/language/lexer/lexer.c:370
+#: src/language/lexer/lexer.c:371
 #, c-format
 msgid "%s may only be specified once within subcommand %s"
 msgstr "L’option %s ne peut être spécifiée qu’une fois dans la sous-commande %s."
 
-#: src/language/lexer/lexer.c:379
+#: src/language/lexer/lexer.c:380
 #, c-format
 msgid "Required %s specification missing from %s subcommand"
 msgstr "La spécification %s demandée manque dans la sous-commande %s"
 
-#: src/language/lexer/lexer.c:398
+#: src/language/lexer/lexer.c:399
 msgid "Syntax error at end of input"
 msgstr "Erreur de syntaxe à la fin d’une entrée"
 
-#: src/language/lexer/lexer.c:419 src/language/xforms/select-if.c:60
+#: src/language/lexer/lexer.c:420 src/language/xforms/select-if.c:60
 #: src/language/stats/autorecode.c:218 src/language/stats/npar.c:503
 #: src/language/data-io/print-space.c:83
 msgid "expecting end of command"
 msgstr "Fin de commande attendu"
 
-#: src/language/lexer/lexer.c:630
+#: src/language/lexer/lexer.c:631
 msgid "expecting string"
 msgstr "Chaîne de caractères attendue"
 
-#: src/language/lexer/lexer.c:659
+#: src/language/lexer/lexer.c:660
 msgid "expecting integer"
 msgstr "Nombre entier attendu"
 
-#: src/language/lexer/lexer.c:672
+#: src/language/lexer/lexer.c:673
 msgid "expecting number"
 msgstr "attend un nombre"
 
-#: src/language/lexer/lexer.c:684
+#: src/language/lexer/lexer.c:685
 msgid "expecting identifier"
 msgstr "en attente de l’identifiant"
 
-#: src/language/lexer/lexer.c:1291
+#: src/language/lexer/lexer.c:1266
 msgid "Syntax error at end of command"
 msgstr "Erreur de syntaxe à la fin de la commande"
 
-#: src/language/lexer/lexer.c:1300
+#: src/language/lexer/lexer.c:1275
 #, c-format
 msgid "Syntax error at `%s'"
 msgstr "Erreur de syntaxe dans « %s »"
 
-#: src/language/lexer/lexer.c:1303
+#: src/language/lexer/lexer.c:1278
 msgid "Syntax error"
 msgstr "Erreur de syntaxe"
 
-#: src/language/lexer/lexer.c:1475
+#: src/language/lexer/lexer.c:1466
 #, c-format
 msgid "String of hex digits has %d characters, which is not a multiple of 2"
 msgstr "La chaîne de caractères hexadécimaux comprend %d caractères, ce qui n’est pas un multiple de deux"
 
-#: src/language/lexer/lexer.c:1482
+#: src/language/lexer/lexer.c:1473
 #, c-format
 msgid "`%c' is not a valid hex digit"
 msgstr "« %c » n’est pas un caractère hexadécimal valide"
 
-#: src/language/lexer/lexer.c:1487
+#: src/language/lexer/lexer.c:1478
 #, c-format
 msgid "Unicode string contains %d bytes, which is not in the valid range of 1 to 8 bytes"
 msgstr "La chaîne Unicode contient %d caractères, ce qui ne figure pas dans l’intervalle autorisé de 1 à 8 caractères."
 
-#: src/language/lexer/lexer.c:1493
+#: src/language/lexer/lexer.c:1484
 #, c-format
 msgid "U+%04X is not a valid Unicode code point"
 msgstr "U+%04X n’est pas un caractère Unicode valide."
 
-#: src/language/lexer/lexer.c:1498
+#: src/language/lexer/lexer.c:1489
 msgid "Unterminated string constant"
 msgstr "Constante de chaîne incomplète"
 
-#: src/language/lexer/lexer.c:1502
+#: src/language/lexer/lexer.c:1493
 #, c-format
 msgid "Missing exponent following `%s'"
 msgstr "Exposant manquant suivant « %s »"
 
-#: src/language/lexer/lexer.c:1507
+#: src/language/lexer/lexer.c:1498
 msgid "Unexpected `.' in middle of command"
 msgstr "Point « . » inattendu au milieu de la commande"
 
-#: src/language/lexer/lexer.c:1513
+#: src/language/lexer/lexer.c:1504
 #, c-format
 msgid "Bad character %s in input"
 msgstr "Caractères erroné %s en entrée"
 
-#: src/language/lexer/lexer.c:1608
+#: src/language/lexer/lexer.c:1599
 #, c-format
 msgid "Opening `%s': %s."
 msgstr "Ouverture « %s » : %s."
 
-#: src/language/lexer/lexer.c:1652
+#: src/language/lexer/lexer.c:1643
 #, c-format
 msgid "Error closing `%s': %s."
 msgstr "Erreur de fermeture de « %s » : %s."
@@ -1868,75 +1893,75 @@ msgstr "%s ou %s doivent faire partie de l’intervalle."
 msgid "System-missing value is not valid here."
 msgstr "La valeur système manquante n’est pas valide ci."
 
-#: src/language/lexer/variable-parser.c:70
+#: src/language/lexer/variable-parser.c:86
 msgid "expecting variable name"
 msgstr "attend le nom de la variable"
 
-#: src/language/lexer/variable-parser.c:80
+#: src/language/lexer/variable-parser.c:96
 #, c-format
 msgid "%s is not a variable name."
 msgstr "%s n’est pas un nom de variable"
 
-#: src/language/lexer/variable-parser.c:183
+#: src/language/lexer/variable-parser.c:199
 #, c-format
 msgid "%s is not a numeric variable.  It will not be included in the variable list."
 msgstr "%s n’est pas une variable numérique. Il ne sera pas inclus dans la liste des variables"
 
-#: src/language/lexer/variable-parser.c:186
+#: src/language/lexer/variable-parser.c:202
 #, c-format
 msgid "%s is not a string variable.  It will not be included in the variable list."
 msgstr "%s n’est pas une chaine de caractères. Il ne sera pas inclus dans la liste des variables "
 
-#: src/language/lexer/variable-parser.c:190
+#: src/language/lexer/variable-parser.c:206
 #, c-format
 msgid "Scratch variables (such as %s) are not allowed here."
 msgstr "Les variables nulles (comme %s) ne sont pas permises ici."
 
-#: src/language/lexer/variable-parser.c:194
+#: src/language/lexer/variable-parser.c:210
 #, 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 et %s ne sont pas de même type. Toutes les variables dans cette liste doivent être de même type.  %s seront enlevés de la liste."
 
-#: src/language/lexer/variable-parser.c:200
+#: src/language/lexer/variable-parser.c:216
 #, 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 et %s sont des variables chaînes de longueur différentes. Toutes les variables dans cette liste doivent être de même largeur.  %s seront enlevés de la liste."
 
-#: src/language/lexer/variable-parser.c:205
-#: src/language/lexer/variable-parser.c:407
+#: src/language/lexer/variable-parser.c:221
+#: src/language/lexer/variable-parser.c:440
 #, c-format
 msgid "Variable %s appears twice in variable list."
 msgstr "La variable %s apparait deux fois dans la liste de variables."
 
-#: src/language/lexer/variable-parser.c:318
+#: src/language/lexer/variable-parser.c:334
 #, c-format
 msgid "%s TO %s is not valid syntax since %s precedes %s in the dictionary."
 msgstr "%s TO %s n’est pas une syntaxe valide car %s précède %s dans le dictionnaire."
 
-#: src/language/lexer/variable-parser.c:326
+#: src/language/lexer/variable-parser.c:342
 #, 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 "Lors de l’utilisation du mot-clé TO pour spécifier plusieurs variables, les deux variables doivent faire partie d’un même dictionnaire de variables qu’elles soient ordinaire, nulle ou système. %s est une variable %s, alors que %s est %s."
 
-#: src/language/lexer/variable-parser.c:384
+#: src/language/lexer/variable-parser.c:417
 #, c-format
 msgid "`%s' cannot be used with TO because it does not end in a digit."
 msgstr "« %s » ne peut pas être utilisé avec TO car elle ne se termine pas par un chiffre."
 
-#: src/language/lexer/variable-parser.c:392
+#: src/language/lexer/variable-parser.c:425
 #, c-format
 msgid "Numeric suffix on `%s' is larger than supported with TO."
 msgstr "Le suffixe numérique en « %s » is supérieur à la valeur autorisée avec TO."
 
-#: src/language/lexer/variable-parser.c:468
+#: src/language/lexer/variable-parser.c:498
 msgid "Scratch variables not allowed here."
 msgstr "Les variables nulles ne sont pas permises ici."
 
-#: src/language/lexer/variable-parser.c:501
+#: src/language/lexer/variable-parser.c:522
 msgid "Prefixes don't match in use of TO convention."
 msgstr "Les préfixes ne sont pas conformes à l’utilisation de la convention TO. "
 
-#: src/language/lexer/variable-parser.c:506
+#: src/language/lexer/variable-parser.c:527
 msgid "Bad bounds in use of TO convention."
 msgstr "Limites incorrectes dans l’utilisation de la convention TO. "
 
@@ -2046,31 +2071,31 @@ msgstr "Cette commande ne peut suivre %s dans %s … %s."
 msgid "Only one index clause may be specified."
 msgstr "Une seule clause d’index peut être spécifiée."
 
-#: src/language/control/repeat.c:118
+#: src/language/control/repeat.c:120
 #, c-format
 msgid "Dummy variable name `%s' hides dictionary variable `%s'."
 msgstr "Le nom de variable erroné « %s » masque la variable du dictionnaire « %s »."
 
-#: src/language/control/repeat.c:122
+#: src/language/control/repeat.c:126
 #, c-format
 msgid "Dummy variable name `%s' is given twice."
 msgstr "Le nom de variable erroné « %s » est utilisé deux fois."
 
-#: src/language/control/repeat.c:165
+#: src/language/control/repeat.c:170
 #, c-format
 msgid "Dummy variable `%s' had %zu substitutions, so `%s' must also, but %zu were specified."
 msgstr "La variable nominale « %s » a subi %zu substitutions, donc « %s » le devrait aussi, mais %zu a été spécifié."
 
-#: src/language/control/repeat.c:377
+#: src/language/control/repeat.c:379
 msgid "Ranges may only have integer bounds."
 msgstr "Les intervalles ne peuvent avoir que des entiers comme limites."
 
-#: src/language/control/repeat.c:391
+#: src/language/control/repeat.c:393
 #, c-format
 msgid "%ld TO %ld is an invalid range."
 msgstr "%ld TO %ld est un intervalle invalide."
 
-#: src/language/control/repeat.c:441
+#: src/language/control/repeat.c:443
 #, c-format
 msgid "No matching %s."
 msgstr "Pas de correspondance avec %s."
@@ -2214,7 +2239,8 @@ msgstr "Le dictionnaire du jeu de données actif ne contient pas d’ensembles d
 msgid "Multiple Response Sets"
 msgstr "Ensembles de réponses multiple"
 
-#: src/language/dictionary/mrsets.c:548 src/ui/gui/psppire-var-sheet.c:1359
+#: src/language/dictionary/mrsets.c:548
+#: src/ui/gui/psppire-var-sheet-header.c:55
 msgid "Name"
 msgstr "Nom"
 
@@ -2239,7 +2265,7 @@ msgstr "Ensemble de catégories multiples"
 #: src/language/dictionary/split-file.c:84
 #: src/language/dictionary/sys-file-info.c:444
 #: src/language/dictionary/sys-file-info.c:543
-#: src/ui/gui/psppire-var-sheet.c:1372 src/ui/gui/compute.ui:157
+#: src/ui/gui/psppire-var-sheet-header.c:67 src/ui/gui/compute.ui:157
 msgid "Label"
 msgstr "Étiquette"
 
@@ -2525,7 +2551,7 @@ msgid "Purpose"
 msgstr "Objectif"
 
 #: src/language/dictionary/sys-file-info.c:1052
-#: src/ui/gui/psppire-import-assistant.c:1038
+#: src/ui/gui/psppire-import-assistant.c:865
 msgid "Text"
 msgstr "Texte"
 
@@ -4749,7 +4775,7 @@ msgstr "L’encodage ne devrait pas être spécifié pour les données en ligne.
 msgid "The %s subcommand may be used only with %s."
 msgstr "La sous-commande %s ne peut être utilisée qu’avec %s."
 
-#: src/language/data-io/data-list.c:284 src/language/data-io/matrix-data.c:540
+#: src/language/data-io/data-list.c:284 src/language/data-io/matrix-data.c:542
 msgid "At least one variable must be specified."
 msgstr "Au moins une variable doit être spécifiée"
 
@@ -4807,17 +4833,17 @@ msgstr "Les valeurs sont manquantes pour toutes les variables à partir de %s. E
 msgid "Record ends in data not part of any field."
 msgstr "L’enregistrement se termine dans une données n’appartenant à aucun champ."
 
-#: src/language/data-io/data-parser.c:673 src/language/data-io/print.c:447
+#: src/language/data-io/data-parser.c:673 src/language/data-io/print.c:441
 msgid "Record"
 msgstr "Enregistrement"
 
-#: src/language/data-io/data-parser.c:674 src/language/data-io/print.c:448
-#: src/ui/gui/psppire-var-sheet.c:1380
+#: src/language/data-io/data-parser.c:674 src/language/data-io/print.c:442
+#: src/ui/gui/psppire-var-sheet-header.c:76
 msgid "Columns"
 msgstr "Colonnes"
 
 #: src/language/data-io/data-parser.c:675
-#: src/language/data-io/data-parser.c:712 src/language/data-io/print.c:449
+#: src/language/data-io/data-parser.c:712 src/language/data-io/print.c:443
 msgid "Format"
 msgstr "Format"
 
@@ -5087,49 +5113,49 @@ msgstr "L’expression dans %s a été évalué à la valeur système manquante.
 msgid "The expression on %s evaluated to %g."
 msgstr "L’expression dans %s a été évalué à %g."
 
-#: src/language/data-io/print.c:193 src/language/data-io/trim.c:54
+#: src/language/data-io/print.c:187 src/language/data-io/trim.c:54
 msgid "expecting a valid subcommand"
 msgstr "Attend une sous-commande valide"
 
-#: src/language/data-io/print.c:223
+#: src/language/data-io/print.c:217
 #, c-format
 msgid "%s is required when binary formats are specified."
 msgstr "%s est nécessaire lorsque des formats binaires sons spécifiés."
 
-#: src/language/data-io/print.c:306
+#: src/language/data-io/print.c:300
 #, c-format
 msgid "Output calls for %d records but %zu specified on RECORDS subcommand."
 msgstr "Appels en sortie pour %d enregistrements en dépit de %zu spécifiées par la sous-commande RECORDS."
 
-#: src/language/data-io/print.c:479
+#: src/language/data-io/print.c:473
 #, c-format
 msgid "Writing %zu record to %s."
 msgid_plural "Writing %zu records to %s."
 msgstr[0] "Écriture de %zu enregistrement dans %s."
 msgstr[1] "Écriture de %zu enregistrements dans %s."
 
-#: src/language/data-io/print.c:483
+#: src/language/data-io/print.c:477
 #, c-format
 msgid "Writing %zu record."
 msgid_plural "Writing %zu records."
 msgstr[0] "Écriture de %zu enregistrement."
 msgstr[1] "Écriture de %zu enregistrements."
 
-#: src/language/data-io/matrix-data.c:177
+#: src/language/data-io/matrix-data.c:176
 #, c-format
 msgid "There are %d variable declared but the data has at least %d matrix rows."
 msgstr "%d variables sont déclarées mais les données ont au moins %d lignes de matrice."
 
-#: src/language/data-io/matrix-data.c:256
+#: src/language/data-io/matrix-data.c:257
 msgid "The N subcommand was specified, but a N record was also found in the data.  The N record will be ignored."
 msgstr "La sous-commande N a été spécifiée, mais aucun enregistremnent N n’a été trouvé dans les données. Cette enregistrement sera ignoré."
 
-#: src/language/data-io/matrix-data.c:450 src/language/utilities/set.q:186
+#: src/language/data-io/matrix-data.c:452 src/language/utilities/set.q:186
 #, c-format
 msgid "%s must not be negative."
 msgstr "%s ne doit pas être négatif."
 
-#: src/language/data-io/matrix-data.c:530
+#: src/language/data-io/matrix-data.c:532
 msgid "FORMAT = FULL and FORMAT = NODIAGONAL are mutually exclusive."
 msgstr "FORMAT = FULL et FORMAT = NODIAGONAL s’excluent mutuellement."
 
@@ -5145,33 +5171,33 @@ msgstr "Il manque une variable appelée %s dans le jeu de données matriciel."
 msgid "Matrix dataset variable %s should be of string type."
 msgstr "La variable de jeu de données matriciel %s devrait être de type chaîne."
 
-#: src/language/data-io/save-translate.c:170
-#: src/language/data-io/save-translate.c:185
+#: src/language/data-io/save-translate.c:171
+#: src/language/data-io/save-translate.c:186
 #, c-format
 msgid "The %s string must contain exactly one character."
 msgstr "La chaîne %s ne doit comporter qu’un seul caractère."
 
-#: src/language/data-io/save-translate.c:253
+#: src/language/data-io/save-translate.c:254
 #, c-format
 msgid "Output file `%s' exists but %s was not specified."
 msgstr "Le fichier de sortie « %s » existe mais %s n’a pas été indiqué."
 
-#: src/language/data-io/trim.c:89
+#: src/language/data-io/trim.c:87
 #, 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 "Impossible de renommer %sen tant que %s car il existe déjà une variable nommée %s. Pour renommer des variables avec des noms redondants, utiliser une simple sous-commande RENAME telle que ’/RENAME (A=B)(B=C)(C=A)’ ou sous une forme équivalente ’/RENAME (A B C=B C A)’."
 
-#: src/language/data-io/trim.c:123
+#: src/language/data-io/trim.c:122
 #, 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 "Le nombre de variables à la gauche de « = » (%zu) ne correspond pas au nombre de variables figurant à la droite (%zu) dans le groupe entre parenthèses %d de la sous-commande RENAME."
 
-#: src/language/data-io/trim.c:136
+#: src/language/data-io/trim.c:135
 #, c-format
 msgid "Requested renaming duplicates variable name %s."
 msgstr "Le renommage demandé dupliques le nom de variable %s."
 
-#: src/language/data-io/trim.c:167
+#: src/language/data-io/trim.c:166
 msgid "Cannot DROP all variables from dictionary."
 msgstr "Impossible de supprimer toutes les variables du dictionnaire avec l’option DROP."
 
@@ -5519,7 +5545,7 @@ msgstr "Impossible de chercher à lancer %s de membre : %s"
 msgid "Name mismatch in zip archive. Central directory says `%s'; local file header says `%s'"
 msgstr "Erreur de nom dans une archive zip. Le répertoire central indique « %s »; l’en-tête de fichier local indique « %s »"
 
-#: src/libpspp/zip-writer.c:96
+#: src/libpspp/zip-writer.c:96 utilities/pspp-convert.c:207
 #, c-format
 msgid "%s: error opening output file"
 msgstr "%s : erreur d’ouverture du fichier de sortie"
@@ -5624,12 +5650,12 @@ msgstr "MANQUANT*"
 msgid "error opening output file `%s'"
 msgstr "erreur d’ouverture du fichier de sortie « %s »"
 
-#: src/output/driver.c:377
+#: src/output/driver.c:373
 #, c-format
 msgid "%s is not a valid device type (the choices are `%s' and `%s')"
 msgstr "%s n’est pas un type de périphérique valide (les choix sont « %s » et « %s »)"
 
-#: src/output/driver.c:391
+#: src/output/driver.c:387
 #, c-format
 msgid "%s: unknown option `%s'"
 msgstr "%s : option « %s » inconnue"
@@ -5672,6 +5698,10 @@ msgstr "erreur d’ouverture du fichier d’entrée « %s »"
 msgid "file `%s' does not state a paper size"
 msgstr "fichier « %s » ne définit pas de taille de papier"
 
+#: src/output/odt.c:98
+msgid "error creating temporary file"
+msgstr "erreur de création d’un fichier temporaire"
+
 #: src/output/options.c:112
 #, c-format
 msgid "%s: `%s' is `%s' but a Boolean value is required"
@@ -5840,10 +5870,6 @@ msgstr "Propagation"
 msgid "Scatterplot %s"
 msgstr "Nuage de points %s"
 
-#: src/output/odt.c:98
-msgid "error creating temporary file"
-msgstr "erreur de création d’un fichier temporaire"
-
 #: src/ui/source-init-opts.c:72
 #, c-format
 msgid "Algorithm must be either `%s' or `%s'."
@@ -5945,85 +5971,73 @@ msgstr ""
 "\n"
 "Les arguments sans options sont interprétés comme fichiers de syntaxe à exécuter.\n"
 
-#: src/ui/gui/psppire-import-assistant.c:535
-#, c-format
-msgid "Could not open `%s'"
-msgstr "Impossible d’ouvrir « %s »"
-
-#: src/ui/gui/psppire-import-assistant.c:550
-#, c-format
-msgid "Error reading `%s': %s"
-msgstr "Erreur de lecture de « %s » : %s"
-
-#: src/ui/gui/psppire-import-assistant.c:553
-#, 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 "Impossible de lire « %s », car il contient une ligne dépassant %d caractères et semble donc ne pas être un fichier texte."
-
-#: src/ui/gui/psppire-import-assistant.c:570
-#, c-format
-msgid "`%s' is empty."
-msgstr "%s est vide."
+#: src/ui/gui/psppire-import-assistant.c:329
+msgid "line"
+msgstr "ligne"
 
-#: src/ui/gui/psppire-import-assistant.c:652
-msgid "Line"
-msgstr "Ligne"
+#: src/ui/gui/psppire-import-assistant.c:339
+msgid "var"
+msgstr "var"
 
-#: src/ui/gui/psppire-import-assistant.c:746
+#: src/ui/gui/psppire-import-assistant.c:549
 msgid "Importing Spreadsheet Data"
 msgstr "Importation de données de tableur"
 
-#: src/ui/gui/psppire-import-assistant.c:853
-#: src/ui/gui/psppire-data-window.c:555 src/ui/gui/psppire-syntax-window.c:572
+#: src/ui/gui/psppire-import-assistant.c:663
+#: src/ui/gui/psppire-data-window.c:557 src/ui/gui/psppire-syntax-window.c:572
 #: src/ui/gui/psppire-window.c:683
 msgid "All Files"
 msgstr "Tous les fichiers"
 
-#: src/ui/gui/psppire-import-assistant.c:858
+#: src/ui/gui/psppire-import-assistant.c:668
 msgid "Text Files"
 msgstr "Fichiers texte"
 
-#: src/ui/gui/psppire-import-assistant.c:863
+#: src/ui/gui/psppire-import-assistant.c:673
 msgid "Text (*.txt) Files"
 msgstr "Fichiers texte (*.txt)"
 
-#: src/ui/gui/psppire-import-assistant.c:869
+#: src/ui/gui/psppire-import-assistant.c:679
 msgid "Plain Text (ASCII) Files"
 msgstr "Fichiers texte (ASCII)"
 
-#: src/ui/gui/psppire-import-assistant.c:874
+#: src/ui/gui/psppire-import-assistant.c:684
 msgid "Comma Separated Value Files"
 msgstr "Fichiers de valeurs séparées par une virgule (*.csv)"
 
-#: src/ui/gui/psppire-import-assistant.c:881
+#: src/ui/gui/psppire-import-assistant.c:691
 msgid "Tab Separated Value Files"
 msgstr "Fichiers de valeurs séparées par une tabulation (*.csv)"
 
-#: src/ui/gui/psppire-import-assistant.c:886
+#: src/ui/gui/psppire-import-assistant.c:696
 msgid "Gnumeric Spreadsheet Files"
 msgstr "Fichiers de tableur Gnumeric"
 
-#: src/ui/gui/psppire-import-assistant.c:891
+#: src/ui/gui/psppire-import-assistant.c:701
 msgid "OpenDocument Spreadsheet Files"
 msgstr "Fichiers de tableur OpenDocument"
 
-#: src/ui/gui/psppire-import-assistant.c:896
+#: src/ui/gui/psppire-import-assistant.c:706
 msgid "All Spreadsheet Files"
 msgstr "Tous les fichiers de tableur"
 
-#: src/ui/gui/psppire-import-assistant.c:905
+#: src/ui/gui/psppire-import-assistant.c:715
 msgid "Select File to Import"
 msgstr "Sélection un fichier à importer"
 
-#: src/ui/gui/psppire-import-assistant.c:949
+#: src/ui/gui/psppire-import-assistant.c:750
 msgid "Importing Delimited Text Data"
 msgstr "Importation des données en texte délimité"
 
-#: src/ui/gui/psppire-import-assistant.c:1116
+#: src/ui/gui/psppire-import-assistant.c:845
 msgid "Select the First Line"
 msgstr "Sélection la première ligne"
 
-#: src/ui/gui/psppire-import-assistant.c:1150
+#: src/ui/gui/psppire-import-assistant.c:857
+msgid "Line"
+msgstr "Ligne"
+
+#: src/ui/gui/psppire-import-assistant.c:911
 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"
@@ -6031,72 +6045,58 @@ msgstr ""
 "Cet assistant vous guidera au long du processus d’importation de données dans PSPP à partir d’un fichier texte contenant une ligne par observation. Les champs sont séparés par des tabulations, des virgules ou d’autres délimiteurs.\n"
 "\n"
 
-#: src/ui/gui/psppire-import-assistant.c:1158
+#: src/ui/gui/psppire-import-assistant.c:921
 #, c-format
 msgid "The selected file contains %'lu line of text.  "
 msgid_plural "The selected file contains %'lu lines of text.  "
 msgstr[0] "Le fichier sélectionné contient %'lu ligne de texte."
 msgstr[1] "Le fichier sélectionné contient %'lu lignes de texte."
 
-#: src/ui/gui/psppire-import-assistant.c:1167
+#: src/ui/gui/psppire-import-assistant.c:930
 #, 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] "Le fichier sélectionné contient environ %'lu ligne de texte."
 msgstr[1] "Le fichier sélectionné contient environ %'lu lignes de texte."
 
-#: src/ui/gui/psppire-import-assistant.c:1173
+#: src/ui/gui/psppire-import-assistant.c:936
 #, 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] "Seule la %zu première ligne du fichier sera affichée à des fins de prévisualisation dans les écrans suivants. "
 msgstr[1] "Seules les %zu premières lignes du fichier seront affichées à des fins de prévisualisation dans les écrans suivants. "
 
-#: src/ui/gui/psppire-import-assistant.c:1181
+#: src/ui/gui/psppire-import-assistant.c:945
 msgid "You may choose below how much of the file should actually be imported."
 msgstr "Vous pouvez choisir ci-dessous quelle partie du fichier peut être importée maintenant."
 
-#: src/ui/gui/psppire-import-assistant.c:1198
+#: src/ui/gui/psppire-import-assistant.c:954
 #, c-format
 msgid "Only the first %4d cases"
 msgstr "Seules les %4d premières observations"
 
-#: src/ui/gui/psppire-import-assistant.c:1214
+#: src/ui/gui/psppire-import-assistant.c:965
 #, c-format
 msgid "Only the first %3d %% of file (approximately)"
 msgstr "Seulement le premier %3d %% de fichier (approximativement)"
 
-#: src/ui/gui/psppire-import-assistant.c:1237
+#: src/ui/gui/psppire-import-assistant.c:989
 msgid "Select the Lines to Import"
 msgstr "Sélection des lignes à importer"
 
-#: src/ui/gui/psppire-import-assistant.c:1371
-#, c-format
-msgid "Cannot parse field content `%.*s' as format %s: %s"
-msgstr "Impossible d’évaluer le contenu du champ « %.*s » en tant que format %s : %s"
-
-#: src/ui/gui/psppire-import-assistant.c:1380
-#: src/ui/gui/psppire-import-assistant.c:1487
-msgid "This input line has too few separators to fill in this field."
-msgstr "Cette ligne de saisie a trop peu de séparateurs pour remplir ce champs."
-
-#: src/ui/gui/psppire-import-assistant.c:1887
+#: src/ui/gui/psppire-import-assistant.c:1157
 msgid "Choose Separators"
 msgstr "Choix des séparateurs"
 
-#: src/ui/gui/psppire-import-assistant.c:2112
-msgid "An error occurred reading the spreadsheet file."
-msgstr "Une erreur est apparue lors de la lecture du fichier de tableur."
-
-#: src/ui/gui/psppire-import-assistant.c:2167
+#: src/ui/gui/psppire-import-assistant.c:1398
 msgid "Adjust Variable Formats"
 msgstr "Ajuster le format des variables"
 
-#: src/ui/gui/find-dialog.c:197
+#: src/ui/gui/find-dialog.c:193
 msgid "Find"
 msgstr "Rechercher"
 
-#: src/ui/gui/find-dialog.c:649
+#: src/ui/gui/find-dialog.c:645
 #, c-format
 msgid "Bad regular expression: %s"
 msgstr "Expression régulière incorrecte: %s"
@@ -6109,7 +6109,11 @@ msgstr "Un logiciel pour l’analyse d’échantillons de données"
 #. who have helped in the translation.
 #: src/ui/gui/help-menu.c:80
 msgid "translator-credits"
-msgstr "Crédits des traducteurs"
+msgstr ""
+"John Darrington <john@darrington.wattle.id.au>, 2007\n"
+"Jean-Alain Meunier <ja.meunier@gmail.com>, 2012\n"
+"Eric Thivant <eric.thivant@wanadoo.fr>, 2016\n"
+"Stéphane Aulery <lkppo@free.fr>, 2016, 2017, 2019"
 
 #: src/ui/gui/help-menu.c:174
 #, c-format
@@ -6145,108 +6149,80 @@ msgstr "Ne pas afficher l’écran de démarrage"
 msgid "Do not attempt single instance negotiation"
 msgstr "Ne pas négocier une instance unique"
 
-#: src/ui/gui/missing-val-dialog.c:214
+#: src/ui/gui/missing-val-dialog.c:216
 msgid "The maximum length of a missing value for a string variable is 8 in UTF-8."
 msgstr "La longueur maximale d’une valeur manquante pour une de chaîne caractères est de 8 en UTF-8."
 
-#: src/ui/gui/missing-val-dialog.c:265
+#: src/ui/gui/missing-val-dialog.c:267
 msgid "At least one value must be specified"
 msgstr "Au moins une valeur doit être spécifiée"
 
-#: src/ui/gui/missing-val-dialog.c:295
+#: src/ui/gui/missing-val-dialog.c:297
 msgid "Incorrect range specification"
 msgstr "Spécification d’intervalle incorrecte"
 
-#: src/ui/gui/psppire-data-editor.c:417
+#: src/ui/gui/psppire-data-editor.c:404
+#, c-format
+msgid "%d : %s"
+msgstr "%d : %s"
+
+#: src/ui/gui/psppire-data-editor.c:415
 #, c-format
 msgid "%'d case"
 msgid_plural "%'d cases"
 msgstr[0] "%'d cas"
 msgstr[1] "%'d cas"
 
-#: src/ui/gui/psppire-data-editor.c:422
+#: src/ui/gui/psppire-data-editor.c:420
 #, c-format
 msgid "%'d variable"
 msgid_plural "%'d variables"
 msgstr[0] "%'d variable"
 msgstr[1] "%'d variables"
 
-#: src/ui/gui/psppire-data-editor.c:715
+#: src/ui/gui/psppire-data-editor.c:510
+msgid "Case"
+msgstr "Cas"
+
+#: src/ui/gui/psppire-data-editor.c:520
 msgid "Data View"
 msgstr "Affichage des données"
 
-#: src/ui/gui/psppire-data-editor.c:728
+#: src/ui/gui/psppire-data-editor.c:530
 msgid "Variable View"
 msgstr "Affichage des variables"
 
-#: src/ui/gui/psppire-data-sheet.c:139
-msgid "Enter a number to add a new variable."
-msgstr "Entrer un nombre à ajouter à une nouvelle variable."
-
-#: src/ui/gui/psppire-data-sheet.c:144
-msgid "Enter a number to add a new case."
-msgstr "Entrer un nombre à ajouter à un nouveau cas."
-
-#: src/ui/gui/psppire-data-sheet.c:230
-msgid "Case"
-msgstr "Cas"
-
-#: src/ui/gui/psppire-data-sheet.c:1662 src/ui/gui/psppire-data-window.c:1303
-msgid "_Insert Case"
-msgstr "Insérer un _cas"
-
-#: src/ui/gui/psppire-data-sheet.c:1663 src/ui/gui/psppire-data-window.c:1351
-msgid "Cl_ear Cases"
-msgstr "_Supprimer les Observations"
-
-#: src/ui/gui/psppire-data-sheet.c:1678 src/ui/gui/psppire-data-window.c:1302
-#: src/ui/gui/psppire-var-sheet.c:944
-msgid "_Insert Variable"
-msgstr "Insérer une _variable"
-
-#: src/ui/gui/psppire-data-sheet.c:1679 src/ui/gui/psppire-var-sheet.c:945
-msgid "Cl_ear Variables"
-msgstr "_Effacer des variables"
-
-#: src/ui/gui/psppire-data-sheet.c:1680
-msgid "Sort _Ascending"
-msgstr "Tri _croissante"
-
-#: src/ui/gui/psppire-data-sheet.c:1681
-msgid "Sort _Descending"
-msgstr "Tri _décroissante"
-
-#: src/ui/gui/psppire-data-window.c:212
+#: src/ui/gui/psppire-data-window.c:214
 msgid "Transformations Pending"
 msgstr "Transformations en cours"
 
-#: src/ui/gui/psppire-data-window.c:228
+#: src/ui/gui/psppire-data-window.c:230
 msgid "Filter off"
 msgstr "Filtre désactivé"
 
-#: src/ui/gui/psppire-data-window.c:240
+#: src/ui/gui/psppire-data-window.c:242
 #, c-format
 msgid "Filter by %s"
 msgstr "Filtré par %s"
 
-#: src/ui/gui/psppire-data-window.c:261
+#: src/ui/gui/psppire-data-window.c:263
 msgid "No Split"
 msgstr "Aucune scission"
 
-#: src/ui/gui/psppire-data-window.c:270
+#: src/ui/gui/psppire-data-window.c:272
 msgid "Split by "
 msgstr "Scission par "
 
-#: src/ui/gui/psppire-data-window.c:298
+#: src/ui/gui/psppire-data-window.c:300
 msgid "Weights off"
 msgstr "Pondération désactivée"
 
-#: src/ui/gui/psppire-data-window.c:310
+#: src/ui/gui/psppire-data-window.c:312
 #, c-format
 msgid "Weight by %s"
 msgstr "Pondéré par %s"
 
-#: src/ui/gui/psppire-data-window.c:530 src/ui/gui/psppire-data-window.c:534
+#: src/ui/gui/psppire-data-window.c:532 src/ui/gui/psppire-data-window.c:536
 #: src/ui/gui/psppire-dialog-action-aggregate.c:217
 #: src/ui/gui/psppire-output-window.c:382
 #: src/ui/gui/psppire-syntax-window.c:560 src/ui/gui/psppire-window.c:476
@@ -6254,196 +6230,209 @@ msgstr "Pondéré par %s"
 msgid "Save"
 msgstr "Enregistrer"
 
-#: src/ui/gui/psppire-data-window.c:540
+#: src/ui/gui/psppire-data-window.c:542
 #: src/ui/gui/psppire-dialog-action-aggregate.c:226
 msgid "System Files (*.sav)"
 msgstr "Fichier système (*.sav)"
 
-#: src/ui/gui/psppire-data-window.c:545
+#: src/ui/gui/psppire-data-window.c:547
 #: src/ui/gui/psppire-dialog-action-aggregate.c:231
 msgid "Compressed System Files (*.zsav)"
 msgstr "Fichiers système compressés (*.zsav)"
 
-#: src/ui/gui/psppire-data-window.c:550
+#: src/ui/gui/psppire-data-window.c:552
 #: src/ui/gui/psppire-dialog-action-aggregate.c:236
 #: src/ui/gui/psppire-window.c:672
 msgid "Portable Files (*.por) "
 msgstr "Fichier portable (*.por)"
 
-#: src/ui/gui/psppire-data-window.c:572
+#: src/ui/gui/psppire-data-window.c:574
 msgid "System File"
 msgstr "Fichier système"
 
-#: src/ui/gui/psppire-data-window.c:579
+#: src/ui/gui/psppire-data-window.c:581
 msgid "Compressed System File"
 msgstr "Fichier système compressé"
 
-#: src/ui/gui/psppire-data-window.c:585
+#: src/ui/gui/psppire-data-window.c:587
 msgid "Portable File"
 msgstr "Fichier portable"
 
-#: src/ui/gui/psppire-data-window.c:588
+#: src/ui/gui/psppire-data-window.c:590
 msgid "Format:"
 msgstr "Format :"
 
-#: src/ui/gui/psppire-data-window.c:652
+#: src/ui/gui/psppire-data-window.c:654
 msgid "Delete Existing Dataset?"
 msgstr "Effacer le jeu de données existant ?"
 
-#: src/ui/gui/psppire-data-window.c:656
+#: src/ui/gui/psppire-data-window.c:658
 #, c-format
 msgid "Renaming \"%s\" to \"%s\" will destroy the existing dataset named \"%s\".  Are you sure that you want to do this?"
 msgstr "Renommer « %s » en « %s » supprimera le jeu de données existant nommé « %s ». Êtes-vous sûr de vouloir le faire ?"
 
-#: src/ui/gui/psppire-data-window.c:662
+#: src/ui/gui/psppire-data-window.c:664
 msgid "Delete"
 msgstr "Effacé"
 
-#: src/ui/gui/psppire-data-window.c:684
+#: src/ui/gui/psppire-data-window.c:686
 #, c-format
 msgid "Please enter a new name for dataset \"%s\":"
 msgstr "Veuillez entrer un nouveau nom pour le jeu de données « %s » :"
 
-#: src/ui/gui/psppire-data-window.c:686
+#: src/ui/gui/psppire-data-window.c:688
 msgid "Rename Dataset"
 msgstr "Renommer le jeu de données"
 
-#: src/ui/gui/psppire-data-window.c:1165 src/ui/gui/output-window.ui:68
+#: src/ui/gui/psppire-data-window.c:1209 src/ui/gui/output-window.ui:68
 #: src/ui/gui/syntax-editor.ui:22
 msgid "_File"
 msgstr "_Fichier"
 
-#: src/ui/gui/psppire-data-window.c:1169 src/ui/gui/syntax-editor.ui:25
+#: src/ui/gui/psppire-data-window.c:1213 src/ui/gui/syntax-editor.ui:25
 msgid "_New"
 msgstr "_Nouveau"
 
-#: src/ui/gui/psppire-data-window.c:1176
+#: src/ui/gui/psppire-data-window.c:1220
 msgid "_Syntax"
 msgstr "_Syntaxe"
 
-#: src/ui/gui/psppire-data-window.c:1179 src/ui/gui/data-editor.ui:177
+#: src/ui/gui/psppire-data-window.c:1223 src/ui/gui/data-editor.ui:177
 #: src/ui/gui/data-editor.ui:189
 msgid "_Data"
 msgstr "_Données"
 
-#: src/ui/gui/psppire-data-window.c:1186 src/ui/gui/syntax-editor.ui:36
+#: src/ui/gui/psppire-data-window.c:1230 src/ui/gui/syntax-editor.ui:36
 msgid "_Open"
 msgstr "_Ouvrir"
 
-#: src/ui/gui/psppire-data-window.c:1189
+#: src/ui/gui/psppire-data-window.c:1233
 msgid "_Import Data..."
 msgstr "_Importer des données textuelles…"
 
-#: src/ui/gui/psppire-data-window.c:1197 src/ui/gui/logistic.ui:260
+#: src/ui/gui/psppire-data-window.c:1241 src/ui/gui/logistic.ui:260
 #: src/ui/gui/regression.ui:66
 msgid "_Save..."
 msgstr "Enregi_strer…"
 
-#: src/ui/gui/psppire-data-window.c:1200
+#: src/ui/gui/psppire-data-window.c:1244
 msgid "Save _As..."
 msgstr "Enregistrer _sous…"
 
-#: src/ui/gui/psppire-data-window.c:1203
+#: src/ui/gui/psppire-data-window.c:1247
 msgid "_Rename Dataset..."
 msgstr "_Renommer le jeu de données…"
 
-#: src/ui/gui/psppire-data-window.c:1214
+#: src/ui/gui/psppire-data-window.c:1258
 msgid "_Display Data File Information"
 msgstr "Affichage des _informations du fichier de données "
 
-#: src/ui/gui/psppire-data-window.c:1221
+#: src/ui/gui/psppire-data-window.c:1265
 msgid "Working File"
 msgstr "Fichier de _travail"
 
-#: src/ui/gui/psppire-data-window.c:1223
+#: src/ui/gui/psppire-data-window.c:1267
 msgid "_External File..."
 msgstr "Fichier e_xterne…"
 
-#: src/ui/gui/psppire-data-window.c:1233
+#: src/ui/gui/psppire-data-window.c:1277
 msgid "_Recently Used Data"
 msgstr "_Données récemment utilisées"
 
-#: src/ui/gui/psppire-data-window.c:1234
+#: src/ui/gui/psppire-data-window.c:1278
 msgid "Recently Used _Files"
 msgstr "_Fichiers récemment utilisés"
 
-#: src/ui/gui/psppire-data-window.c:1281 src/ui/gui/output-window.ui:82
+#: src/ui/gui/psppire-data-window.c:1325 src/ui/gui/output-window.ui:82
 #: src/ui/gui/syntax-editor.ui:59
 msgid "_Quit"
 msgstr "_Quitter"
 
-#: src/ui/gui/psppire-data-window.c:1298 src/ui/gui/output-window.ui:89
+#: src/ui/gui/psppire-data-window.c:1343 src/ui/gui/output-window.ui:89
 #: src/ui/gui/syntax-editor.ui:66
 msgid "_Edit"
 msgstr "_Edition"
 
-#: src/ui/gui/psppire-data-window.c:1304
+#: src/ui/gui/psppire-data-window.c:1347 src/ui/gui/psppire-data-sheet.c:276
+#: src/ui/gui/psppire-variable-sheet.c:263
+msgid "_Insert Variable"
+msgstr "Insérer une _variable"
+
+#: src/ui/gui/psppire-data-window.c:1348 src/ui/gui/psppire-data-sheet.c:167
+msgid "_Insert Case"
+msgstr "Insérer un _cas"
+
+#: src/ui/gui/psppire-data-window.c:1349
 msgid "_Go To Variable..."
 msgstr "A_ller à la variable…"
 
-#: src/ui/gui/psppire-data-window.c:1305
+#: src/ui/gui/psppire-data-window.c:1350
 msgid "_Go To Case..."
 msgstr "_Aller à l’observation…"
 
-#: src/ui/gui/psppire-data-window.c:1327 src/ui/gui/syntax-editor.ui:69
+#: src/ui/gui/psppire-data-window.c:1372 src/ui/gui/syntax-editor.ui:69
 msgid "Cu_t"
 msgstr "Co_uper"
 
 # _Copier
-#: src/ui/gui/psppire-data-window.c:1335 src/ui/gui/output-window.ui:96
+#: src/ui/gui/psppire-data-window.c:1380 src/ui/gui/output-window.ui:96
 #: src/ui/gui/syntax-editor.ui:74
 msgid "_Copy"
 msgstr "Co_pier"
 
-#: src/ui/gui/psppire-data-window.c:1341 src/ui/gui/syntax-editor.ui:79
+#: src/ui/gui/psppire-data-window.c:1386 src/ui/gui/syntax-editor.ui:79
 msgid "_Paste"
 msgstr "Co_ller"
 
-#: src/ui/gui/psppire-data-window.c:1347
+#: src/ui/gui/psppire-data-window.c:1392
 msgid "Clear _Variables"
 msgstr "_Effacer des variables"
 
-#: src/ui/gui/psppire-data-window.c:1360
+#: src/ui/gui/psppire-data-window.c:1396 src/ui/gui/psppire-data-sheet.c:175
+msgid "Cl_ear Cases"
+msgstr "_Supprimer les Observations"
+
+#: src/ui/gui/psppire-data-window.c:1405
 msgid "_Find..."
 msgstr "_Rechercher…"
 
-#: src/ui/gui/psppire-data-window.c:1366 src/ui/gui/logistic.ui:245
+#: src/ui/gui/psppire-data-window.c:1411 src/ui/gui/logistic.ui:245
 msgid "_Options..."
 msgstr "_Options…"
 
-#: src/ui/gui/psppire-data-window.c:1644
+#: src/ui/gui/psppire-data-window.c:1682
 msgid "Jump to variable"
 msgstr "Aller à la variable "
 
-#: src/ui/gui/psppire-data-window.c:1657
+#: src/ui/gui/psppire-data-window.c:1695
 msgid "Jump to a case in the data sheet"
 msgstr "Aller à une observation de la feuille de données "
 
-#: src/ui/gui/psppire-data-window.c:1671
+#: src/ui/gui/psppire-data-window.c:1709
 msgid "Search for values in the data"
 msgstr "Rechercher les valeurs dans le jeu de données actif"
 
-#: src/ui/gui/psppire-data-window.c:1683
+#: src/ui/gui/psppire-data-window.c:1721
 msgid "Create a new case at the current position"
 msgstr "Création d’une nouvelle observation à la position actuelle"
 
-#: src/ui/gui/psppire-data-window.c:1695
+#: src/ui/gui/psppire-data-window.c:1733
 msgid "Create a new variable at the current position"
 msgstr "Création d’une nouvelle variable à la position actuelle"
 
-#: src/ui/gui/psppire-data-window.c:1709
+#: src/ui/gui/psppire-data-window.c:1747
 msgid "Split the active dataset"
 msgstr "Scinder le jeu de données actif"
 
-#: src/ui/gui/psppire-data-window.c:1721
+#: src/ui/gui/psppire-data-window.c:1759
 msgid "Weight cases by variable"
 msgstr "Pondération des observations par variable"
 
-#: src/ui/gui/psppire-data-window.c:1732
+#: src/ui/gui/psppire-data-window.c:1770
 msgid "Show/hide value labels"
 msgstr "Montrer/Cacher les étiquettes des valeurs"
 
-#: src/ui/gui/psppire-data-window.c:1875
+#: src/ui/gui/psppire-data-window.c:1915
 msgid "Data Editor"
 msgstr "Éditeur de données"
 
@@ -6674,19 +6663,23 @@ msgstr "Ne pas pondérer les observations"
 msgid "Weight cases by %s"
 msgstr "Pondération des observations par %s"
 
+#: src/ui/gui/psppire-dict.c:97
+msgid "Var"
+msgstr "Var"
+
 #. TRANSLATORS: This string must be a valid variable name.  That means:
 #. - The string must be at most 64 bytes (not characters) long.
 #. - The string may not contain whitespace.
 #. - The first character may not be '$'
 #. - The first character may not be a digit
-#. - The final charactor may not be '.' or '_'
+#. - The final character may not be '.' or '_'
 #.
-#: src/ui/gui/psppire-dict.c:332
+#: src/ui/gui/psppire-dict.c:423
 #, c-format
 msgid "Var%04d"
 msgstr "Var%04d"
 
-#: src/ui/gui/psppire-dict.c:516
+#: src/ui/gui/psppire-dict.c:608
 msgid "Duplicate variable name."
 msgstr "Nom de variable dupliqué."
 
@@ -6715,11 +6708,11 @@ msgstr "Avant"
 msgid "Back"
 msgstr "Arrière"
 
-#: src/ui/gui/psppire-output-view.c:366
+#: src/ui/gui/psppire-output-view.c:367
 msgid "Message"
 msgstr "Message"
 
-#: src/ui/gui/psppire-output-view.c:488
+#: src/ui/gui/psppire-output-view.c:489
 msgid "failed to create temporary directory during clipboard operation"
 msgstr "erreur de création de répertoire temporaire pendant le coiper-coller"
 
@@ -6763,7 +6756,7 @@ msgstr "Exportation"
 msgid "Output Viewer"
 msgstr "Visualisation en sortie"
 
-#: src/ui/gui/psppire-spreadsheet-model.c:279
+#: src/ui/gui/psppire-spreadsheet-model.c:276
 msgid "(empty)"
 msgstr "(vide)"
 
@@ -6789,69 +6782,74 @@ msgstr "Éditeur de syntaxe"
 msgid "Cannot load syntax file `%s'"
 msgstr "Impossible de charger le fichier de syntaxe « %s »"
 
-#: src/ui/gui/psppire-var-sheet.c:182 src/ui/gui/psppire-var-sheet.c:187
-msgid "Cannot create variable."
-msgstr "Impossible de créer la variable."
-
-#: src/ui/gui/psppire-var-sheet.c:183 src/ui/gui/psppire-var-sheet.c:212
+#: src/ui/gui/psppire-text-file.c:56
 #, c-format
-msgid "\"%s\" is not a valid variable name."
-msgstr "« %s » n’est pas un nom de variable valide."
+msgid "Could not open `%s'"
+msgstr "Impossible d’ouvrir « %s »"
 
-#: src/ui/gui/psppire-var-sheet.c:188 src/ui/gui/psppire-var-sheet.c:218
+#: src/ui/gui/psppire-text-file.c:72
 #, c-format
-msgid "This dictionary already contains a variable named \"%s\"."
-msgstr "ce dictionnaire contient déjà une variable nommée « %s »."
+msgid "Error reading `%s': %s"
+msgstr "Erreur de lecture de « %s » : %s"
 
-#: src/ui/gui/psppire-var-sheet.c:211 src/ui/gui/psppire-var-sheet.c:217
-msgid "Cannot rename variable."
-msgstr "Impossible de renommer la variable."
+#: src/ui/gui/psppire-text-file.c:75
+#, 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 "Impossible de lire « %s », car il contient une ligne dépassant %d caractères et semble donc ne pas être un fichier texte."
 
-#: src/ui/gui/psppire-var-sheet.c:445
+#: src/ui/gui/psppire-text-file.c:97
 #, c-format
-msgid "{%s, %s}..."
-msgstr "{%s, %s}…"
+msgid "`%s' is empty."
+msgstr "%s est vide."
+
+#: src/ui/gui/psppire-data-sheet.c:285 src/ui/gui/psppire-variable-sheet.c:272
+msgid "Cl_ear Variables"
+msgstr "_Effacer des variables"
 
-#: src/ui/gui/psppire-var-sheet.c:878
-msgid "Enter a variable name to add a new variable."
-msgstr "Entrer un nom de variable nommée pour ajouter une nouvelle variable."
+#: src/ui/gui/psppire-data-sheet.c:297
+msgid "Sort _Ascending"
+msgstr "Tri _croissante"
+
+#: src/ui/gui/psppire-data-sheet.c:304
+msgid "Sort _Descending"
+msgstr "Tri _décroissante"
 
-#: src/ui/gui/psppire-var-sheet.c:918
+#: src/ui/gui/psppire-variable-sheet.c:401
 #, c-format
-msgid "{%s, %s}\n"
-msgstr "{%s, %s}\n"
+msgid "{%s, %s}..."
+msgstr "{%s, %s}"
 
-#: src/ui/gui/psppire-var-sheet.c:1365 src/language/stats/crosstabs.q:1390
-#: src/ui/gui/compute.ui:303
+#: src/ui/gui/psppire-var-sheet-header.c:58
+#: src/language/stats/crosstabs.q:1390 src/ui/gui/compute.ui:303
 msgid "Type"
 msgstr "Type"
 
-#: src/ui/gui/psppire-var-sheet.c:1368 src/ui/gui/compute.ui:215
+#: src/ui/gui/psppire-var-sheet-header.c:61 src/ui/gui/compute.ui:215
 msgid "Width"
 msgstr "Largeur"
 
-#: src/ui/gui/psppire-var-sheet.c:1370
-msgid "Decimals"
-msgstr "Décimales"
+#: src/ui/gui/psppire-var-sheet-header.c:64
+msgid "Decimal"
+msgstr "Décimal"
 
-#: src/ui/gui/psppire-var-sheet.c:1374 src/ui/gui/val-labs-dialog.ui:194
+#: src/ui/gui/psppire-var-sheet-header.c:70 src/ui/gui/val-labs-dialog.ui:194
 msgid "Value Labels"
 msgstr "Étiquettes de valeur"
 
-#: src/ui/gui/psppire-var-sheet.c:1377 src/ui/gui/examine.ui:415
+#: src/ui/gui/psppire-var-sheet-header.c:73 src/ui/gui/examine.ui:415
 #: src/ui/gui/t-test.ui:105
 msgid "Missing Values"
 msgstr "Valeurs manquantes"
 
-#: src/ui/gui/psppire-var-sheet.c:1382
+#: src/ui/gui/psppire-var-sheet-header.c:79
 msgid "Align"
 msgstr "Alignement"
 
-#: src/ui/gui/psppire-var-sheet.c:1388
+#: src/ui/gui/psppire-var-sheet-header.c:82
 msgid "Measure"
 msgstr "Mesure"
 
-#: src/ui/gui/psppire-var-sheet.c:1394
+#: src/ui/gui/psppire-var-sheet-header.c:85
 msgid "Role"
 msgstr "Rôle"
 
@@ -6925,17 +6923,17 @@ msgstr "conversion du fichier de syntaxe crypté possible seulement au format sp
 msgid "%s: unknown output format (use -O option)"
 msgstr "%s : format de sortie inconnu (utiliser l’option -O)"
 
-#: utilities/pspp-convert.c:219
+#: utilities/pspp-convert.c:221
 #, c-format
 msgid "%s: error reading input file"
 msgstr "%s : erreur de lecture du fichier d’entrée"
 
-#: utilities/pspp-convert.c:221
+#: utilities/pspp-convert.c:223
 #, c-format
 msgid "%s: error writing output file"
 msgstr "%s : erreur d’écriture du fichier de sortie"
 
-#: utilities/pspp-convert.c:261
+#: utilities/pspp-convert.c:263
 msgid "sorry, wrong password"
 msgstr "Désolé, mot de passe erroné"
 
@@ -8660,15 +8658,15 @@ msgstr "La première ligne sélectionnée contient les noms des variables."
 msgid "Check the data formats displayed below and fix any that are incorrect.  You may set other variable properties now or later."
 msgstr "Vérifiez le format des données affiché au-dessous et régler le s’il est incorrect. Vous pouvez fixer d’autres propriétés de variables maintenant ou plus tard."
 
-#: src/ui/gui/text-data-import.ui:119
+#: src/ui/gui/text-data-import.ui:121
 msgid "<b>Variables</b>"
 msgstr "<b>Variable</b>"
 
-#: src/ui/gui/text-data-import.ui:149
+#: src/ui/gui/text-data-import.ui:152
 msgid "<b>Data Preview</b>"
 msgstr "<b>Prévisualisation des données</b>"
 
-#: src/ui/gui/text-data-import.ui:178
+#: src/ui/gui/text-data-import.ui:181
 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"
@@ -8678,87 +8676,87 @@ msgstr ""
 "\n"
 "Le fichier sélectionné contient N lignes de texte. Seule les M premières lignes seront affichées à des fins de prévisualisation dans les écrans suivants. "
 
-#: src/ui/gui/text-data-import.ui:249
+#: src/ui/gui/text-data-import.ui:252
 msgid "All cases"
 msgstr "Toutes les cas"
 
-#: src/ui/gui/text-data-import.ui:269
+#: src/ui/gui/text-data-import.ui:272
 msgid "<b>Amount to Import</b>"
 msgstr "<b>Somme à importer</b>"
 
-#: src/ui/gui/text-data-import.ui:322
+#: src/ui/gui/text-data-import.ui:325
 msgid "C_ustom"
 msgstr "C_ustom"
 
-#: src/ui/gui/text-data-import.ui:338
+#: src/ui/gui/text-data-import.ui:341
 msgid "Slas_h (/)"
 msgstr "Slas_h (/)"
 
-#: src/ui/gui/text-data-import.ui:354
+#: src/ui/gui/text-data-import.ui:357
 msgid "Semicolo_n (;)"
 msgstr "Point_virgule(;)"
 
-#: src/ui/gui/text-data-import.ui:370
+#: src/ui/gui/text-data-import.ui:373
 msgid "P_ipe (|)"
 msgstr "P_ipe (|)"
 
-#: src/ui/gui/text-data-import.ui:386
+#: src/ui/gui/text-data-import.ui:389
 msgid "H_yphen (-)"
 msgstr "H_yphen (-)"
 
-#: src/ui/gui/text-data-import.ui:402
+#: src/ui/gui/text-data-import.ui:405
 msgid "Co_mma (,)"
 msgstr "Vi_rgule(,)"
 
-#: src/ui/gui/text-data-import.ui:418
+#: src/ui/gui/text-data-import.ui:421
 msgid "_Colon (:)"
 msgstr "_Colonne (:)"
 
-#: src/ui/gui/text-data-import.ui:434
+#: src/ui/gui/text-data-import.ui:437
 msgid "Ban_g (!)"
 msgstr "Ban_g (!)"
 
-#: src/ui/gui/text-data-import.ui:450
+#: src/ui/gui/text-data-import.ui:453
 msgid "Ta_b"
 msgstr "Ta_b"
 
-#: src/ui/gui/text-data-import.ui:466
+#: src/ui/gui/text-data-import.ui:469
 msgid "_Space"
 msgstr "_Espace"
 
-#: src/ui/gui/text-data-import.ui:487
+#: src/ui/gui/text-data-import.ui:490
 msgid "<b>Separators</b>"
 msgstr "<b>Séparateurs</b>"
 
-#: src/ui/gui/text-data-import.ui:533
+#: src/ui/gui/text-data-import.ui:536
 msgid "Quote separator characters with"
 msgstr "Les guillemets sont des caractères de séparation avec "
 
-#: src/ui/gui/text-data-import.ui:553
+#: src/ui/gui/text-data-import.ui:556
 msgid "<b>Quoting</b>"
 msgstr "<b>Échappement</b>"
 
-#: src/ui/gui/text-data-import.ui:591
+#: src/ui/gui/text-data-import.ui:594
 msgid "<b>Fields Preview</b>"
 msgstr "<b>Prévisualisaton des champs</b>"
 
-#: src/ui/gui/text-data-import.ui:614
+#: src/ui/gui/text-data-import.ui:617
 msgid "Enter below the sheet number and the cell range which you wish to import."
 msgstr "Entrez ci-dessous le numéro de feuille et la plage de cellules que vous souhaitez importer."
 
-#: src/ui/gui/text-data-import.ui:662
+#: src/ui/gui/text-data-import.ui:665
 msgid "_Cells: "
 msgstr "_cellules : "
 
-#: src/ui/gui/text-data-import.ui:676
+#: src/ui/gui/text-data-import.ui:679
 msgid "_Sheet Index: "
 msgstr "Index de la _feuille : "
 
-#: src/ui/gui/text-data-import.ui:687
+#: src/ui/gui/text-data-import.ui:690
 msgid "Use first row as _variable names"
 msgstr "Utiliser la première ligne pour les noms de variable"
 
-#: src/ui/gui/text-data-import.ui:709
+#: src/ui/gui/text-data-import.ui:712
 msgid "<b>Cells to Import</b>"
 msgstr "<b>celludes à importer</b>"