Hello again,

Teemu Ikonen wrote:
> reopen 380210
> thanks
> 
> Hi,
> 
> It seems that the patch did not fix this bug. At least I'm
> experiencing something similar with the Debian version 0.6-2. When I
> click File->Export (or press CTRL-E), easychem freezes and hogs the
> CPU (the gui is still updated though).
> 
> Teemu

In my last mail, I made some mistake: the bug that I encountered is
probably not the one Temmu has.

Indeed, his symptoms seem rather related to another bug I found: when
you also have pstoedit installed, easychem freezes just as Teemu said.

It seems to come from the function detect_pstoedit in detect.c, which
does things I do not understand. (Does stdout has an end ?)

After correcting this bug, it appeared that the exporting function
fig_pstoedit_export in export.c itself was buggy.

So here is some patch, replacing the one in my last mail, which does the
following changes:

- Down bonds for exporting in eps/pdf modified (were not
  distinguishable from up bonds when too small).

- French translation extended.

- When drawing an arrow, the ending head is now set by default.

- The locale is now set to "C" for the numerics only when exporting
  to eps/pdf (otherwise freezes in French because writes floats using
  commas instead of dots). Revert back to current locale after
  exporting.

- Bug with the pstoedit detection corrected.

- Bug with fig_pstoedit_export corrected.

Regards,

Guillaume
#! /bin/sh /usr/share/dpatch/dpatch-run
## 03_exporting_bugs.dpatch by  <[EMAIL PROTECTED]>
##
## All lines beginning with `## DP:' are a description of the patch.
## DP: This patch corrects at least two bugs
## DP: regarding freezing when exporting

@DPATCH@

diff -aur easychem-0.6-2/bonds.c easychem-0.6/bonds.c
--- easychem-0.6-2/bonds.c      2005-05-04 10:10:07.000000000 +0200
+++ easychem-0.6/bonds.c        2006-10-09 11:35:43.000000000 +0200
@@ -676,7 +676,12 @@
   new->y2 = y2;
   new->x3 = 0;
   new->y3 = 0;
-  new->x4 = 0;
+  switch (type) 
+    {
+    case BOND_ARROW: new->x4 = 1; break;
+      
+    default:  new->x4 = 0;
+    };
   new->y4 = 0;
   new->width = 1.0;
   new->color = black;
Seulement dans easychem-0.6: CHANGES
Seulement dans easychem-0.6-2: debian
diff -aur easychem-0.6-2/detect.c easychem-0.6/detect.c
--- easychem-0.6-2/detect.c     2005-05-04 10:10:07.000000000 +0200
+++ easychem-0.6/detect.c       2006-10-09 11:35:43.000000000 +0200
@@ -53,7 +53,7 @@
   if (pid == 0)
     {
       close (f[0]);
-      dup2 (f[1], 1);
+      dup2 (f[1], STDOUT_FILENO);
       close (f[1]);
       argv[3] = temp;
       if (prop.path_gs != NULL)
@@ -130,32 +130,26 @@
   if (pid == 0)
     {
       close (f[0]);
-      dup2 (f[1], 1);
+
       fd = open ("/dev/null", O_APPEND);
-      dup2 (fd, 2);
-      close (fd);
-      close (f[1]);
-      if (prop.path_gs != NULL)
+      dup2 (fd, STDOUT_FILENO);
+      dup2 (fd, STDERR_FILENO);
+
+      if (prop.path_pstoedit != NULL)
        execv(prop.path_pstoedit, argv);
-      puts ("42");
-      fflush (stdout);
+      write (f[1],"42 ",3);
 #ifdef PSTOEDIT_PATH
-      execv (PSTOEDIT_PATH "/pstoedit", argv);
+      execv (PSTOEDIT_PATH "/gs", argv);
 #endif
-      puts ("42");
-      fflush (stdout);
+      write (f[1],"42 ",3);
       execvp ("pstoedit", argv);
-      puts ("42");
-      fflush (stdout);
+      write (f[1],"42 ",3);
       execv ("/usr/bin/pstoedit", argv);
-      puts ("42");
-      fflush (stdout);
+      write (f[1],"42 ",3);
       execv ("/usr/local/bin/pstoedit", argv);
-      puts ("42");
-      fflush (stdout);
+      write (f[1],"42 ",3);
       execv ("/sw/bin/pstoedit", argv);
-      puts ("42");
-      fflush (stdout);
+      write (f[1],"42 ",3);
       _exit (0);
     }
   close (f[1]);
@@ -164,10 +158,12 @@
   file = fdopen (f[0], "r");
   while (!feof (file))
     {
-      dum = 0;
       fscanf (file, "%d", &dum);
       if (dum == 42)
+      {
+       dum = 0;
        count++;
+      }
     }
   fclose (file);
   if (count == 0)
diff -aur easychem-0.6-2/dialogs.c easychem-0.6/dialogs.c
--- easychem-0.6-2/dialogs.c    2005-05-04 10:10:07.000000000 +0200
+++ easychem-0.6/dialogs.c      2006-10-09 11:35:43.000000000 +0200
@@ -155,7 +155,7 @@
   gtk_text_buffer_insert_with_tags_by_name (txt, &iter, "2", -1,
                                            "subscript", NULL);
   gtk_text_buffer_insert (txt, &iter, "H", -1);
-  gtk_text_buffer_insert (txt, &iter, _("(subscript).\n"), -1);
+  gtk_text_buffer_insert (txt, &iter, _(" (subscript).\n"), -1);
   gtk_text_buffer_insert_with_tags_by_name (txt, &iter, "H_{text}", -1,
                                            "tt", NULL);
   gtk_text_buffer_insert (txt, &iter, _(" produces "), -1);
@@ -180,11 +180,15 @@
   gtk_text_buffer_insert_with_tags_by_name (txt, &iter, "\\alpha", -1,
                                            "tt", NULL);
   gtk_text_buffer_insert (txt, &iter,
-_(" produces α (greek letter) and the same is true for all greek letters. "), 
-1);
+                         _(" produces "), -1);
+  gtk_text_buffer_insert (txt, &iter,"α", -1);
+  gtk_text_buffer_insert (txt, &iter, _(" (greek letter) and the same is true 
for all greek letters. "), -1);
   gtk_text_buffer_insert_with_tags_by_name (txt, &iter, "\\Omega", -1,
                                            "tt", NULL);
   gtk_text_buffer_insert (txt, &iter,
-_(" produces Ω (capital greek letter)."), -1);
+                         _(" produces "),-1);
+  gtk_text_buffer_insert (txt, &iter,"Ω",-1);
+  gtk_text_buffer_insert (txt, &iter,_(" (capital greek letter)."), -1);
 /* End of the help message */
 
   gtk_text_buffer_get_iter_at_offset (txt, &iter, 0);
@@ -227,7 +231,7 @@
 
 /* Size controller */
   hbox = gtk_hbox_new (FALSE, 0);
-  label = gtk_label_new ("Relative size:");
+  label = gtk_label_new (_("Relative size:"));
   SPIN_BUTTON_WITH_DEFAULT (size_spin, 0.1, 5.0, 0.05, *size, 2);
   gtk_box_pack_start (GTK_BOX (hbox), label, TRUE, TRUE, 0);
   gtk_box_pack_start (GTK_BOX (hbox), size_spin, TRUE, TRUE, 0);
@@ -528,8 +532,8 @@
 
 #undef ADD_MENU_ITEM
 
-  ADD_ROW (_("Beginning arrowhead:"), p.head1_l, p.head1);
-  ADD_ROW (_("Ending arrowhead:"), p.head2_l, p.head2);
+  ADD_ROW (_("Beginning arrowhead:"), p.head2_l, p.head2);
+  ADD_ROW (_("Ending arrowhead:"), p.head1_l, p.head1);
 
   if (bond->type == BOND_ARROW || bond->type == BOND_ARC)
     gtk_option_menu_set_history (GTK_OPTION_MENU (p.head1), bond->x4);
@@ -928,12 +932,12 @@
   entry_gs = gtk_entry_new ();
   if (prop.path_gs != NULL)
     gtk_entry_set_text (GTK_ENTRY (entry_gs), prop.path_gs);
-  ADD_ROW ("Path to gs:", entry_gs);
+  ADD_ROW (_("Path to gs:"), entry_gs);
 
   entry_pstoedit = gtk_entry_new ();
   if (prop.path_pstoedit != NULL)
     gtk_entry_set_text (GTK_ENTRY (entry_pstoedit), prop.path_pstoedit);
-  ADD_ROW ("Path to pstoedit:", entry_pstoedit);
+  ADD_ROW (_("Path to pstoedit:"), entry_pstoedit);
 
   adjust = gtk_adjustment_new (prop.global_width / UNITS_CM, 10000 / UNITS_CM,
                                1000000 / UNITS_CM, 10000 / UNITS_CM,
@@ -942,7 +946,7 @@
   gtk_spin_button_set_update_policy (GTK_SPIN_BUTTON (spin_width),
                                      GTK_UPDATE_IF_VALID);
   gtk_spin_button_set_numeric (GTK_SPIN_BUTTON (spin_width), TRUE);
-  ADD_ROW ("Width of the drawing:", spin_width);
+  ADD_ROW (_("Width of the drawing:"), spin_width);
 
   adjust = gtk_adjustment_new (prop.global_height / UNITS_CM, 50000 / UNITS_CM,
                                1000000 / UNITS_CM, 50000 / UNITS_CM,
@@ -951,7 +955,7 @@
   gtk_spin_button_set_update_policy (GTK_SPIN_BUTTON (spin_height),
                                      GTK_UPDATE_IF_VALID);
   gtk_spin_button_set_numeric (GTK_SPIN_BUTTON (spin_height), TRUE);
-  ADD_ROW ("Height of the drawing:", spin_height);
+  ADD_ROW (_("Height of the drawing:"), spin_height);
 
 #undef ADD_ROW
   
diff -aur easychem-0.6-2/easychem.c easychem-0.6/easychem.c
--- easychem-0.6-2/easychem.c   2006-10-09 11:52:42.000000000 +0200
+++ easychem-0.6/easychem.c     2006-10-09 11:35:43.000000000 +0200
@@ -283,23 +283,23 @@
   label = gtk_bin_get_child (GTK_BIN (menu_undo_widget));
   if (pos_undo >= NUM_UNDO - 1)
   {
-    gtk_label_set_text_with_mnemonic (GTK_LABEL (label), "_Undo");
+    gtk_label_set_text_with_mnemonic (GTK_LABEL (label), _("_Undo"));
     gtk_widget_set_sensitive (menu_undo_widget, FALSE);
   }
   else
   {
     if (undo_list[pos_undo + 1] == NULL)
     {
-      gtk_label_set_text_with_mnemonic (GTK_LABEL (label), "_Undo");
+      gtk_label_set_text_with_mnemonic (GTK_LABEL (label), _("_Undo"));
       gtk_widget_set_sensitive (menu_undo_widget, FALSE);
     }
     else
     {
       if (undo_list_txt[pos_undo] != NULL)
         gtk_label_set_text_with_mnemonic (GTK_LABEL (label),
-         g_strconcat ("_Undo ", undo_list_txt[pos_undo], NULL));
+               g_strconcat (_("_Undo"), " ", undo_list_txt[pos_undo], NULL));
       else
-        gtk_label_set_text_with_mnemonic (GTK_LABEL (label), "_Undo");
+        gtk_label_set_text_with_mnemonic (GTK_LABEL (label), _("_Undo"));
       gtk_widget_set_sensitive (menu_undo_widget, TRUE);
     }
   }
@@ -307,7 +307,7 @@
   label = gtk_bin_get_child (GTK_BIN (menu_redo_widget));
   if (pos_undo == 0)
   {
-    gtk_label_set_text_with_mnemonic (GTK_LABEL (label), "_Redo");
+    gtk_label_set_text_with_mnemonic (GTK_LABEL (label), _("_Redo"));
     gtk_widget_set_sensitive (menu_redo_widget, FALSE);
   }
   else
@@ -317,9 +317,9 @@
 
     if (undo_list_txt[pos_undo - 1] != NULL)
       gtk_label_set_text_with_mnemonic (GTK_LABEL (label),
-       g_strconcat ("_Redo ", undo_list_txt[pos_undo - 1], NULL));
+          g_strconcat (_("_Redo"), " ", undo_list_txt[pos_undo - 1], NULL));
     else
-      gtk_label_set_text_with_mnemonic (GTK_LABEL (label), "_Redo");
+      gtk_label_set_text_with_mnemonic (GTK_LABEL (label), _("_Redo"));
 
     gtk_widget_set_sensitive (menu_redo_widget, TRUE);
   }
@@ -390,8 +390,7 @@
 }
 
 
-static void
-init_everything (void)
+static void init_everything (void)
 {
   int i;
 
@@ -672,8 +671,8 @@
   dialog = gtk_dialog_new_with_buttons (_("Choice for exporting format"),
                                        GTK_WINDOW (window),
                                        GTK_DIALOG_MODAL |
-                                       GTK_DIALOG_NO_SEPARATOR, _("OK"), 1,
-                                       _("Cancel"), 0, NULL);
+                                       GTK_DIALOG_NO_SEPARATOR, _("Cancel"), 0,
+                                       _("OK"), 1, NULL);
   gtk_container_set_border_width (GTK_CONTAINER (dialog), 20);
   label = gtk_label_new (_("What kind of file do you want to produce?"));
   gtk_box_pack_start (GTK_BOX (GTK_DIALOG (dialog)->vbox),
@@ -753,7 +752,7 @@
   if (old_bonds != NULL)
     free_bond_list (old_bonds);
   old_bonds = NULL;
-  advance_undo ("grouping");
+  advance_undo (_("grouping"));
   return;
 }
 
@@ -770,7 +769,7 @@
   if (old_bonds != NULL)
     free_bond_list (old_bonds);
   old_bonds = NULL;
-  advance_undo ("ungrouping");
+  advance_undo (_("ungrouping"));
   return;
 }
 
@@ -861,7 +860,7 @@
        return;
 
       align_selection (bonds, horizontal, vertical);
-      advance_undo ("aligning");
+      advance_undo (_("aligning"));
       REDRAW;
     }
 
@@ -1347,7 +1346,7 @@
       old_bonds = NULL;
       L_MSG ("");
       is_drawing = DRAW_NO;
-      advance_undo ("drawing arc");
+      advance_undo (_("drawing arc"));
       REDRAW;
       return TRUE;
     }
@@ -1403,7 +1402,7 @@
                  free_bond_list (old_bonds);
                  old_bonds = NULL;
                  adjust_atom (new_bond, drawing_area, mode, zoom);
-                 advance_undo ("adding text");
+                 advance_undo (_("adding text"));
                }
 
              is_drawing = DRAW_NO;
@@ -1471,7 +1470,7 @@
                  delete_bond (&bonds, new, &num_sel);
                  L_MSG (_("You used the right button to delete an object."));
                }
-             advance_undo ("delete");
+             advance_undo (_("delete"));
              REDRAW;
            }
          break;
@@ -1526,7 +1525,7 @@
                adjust_atom (new, drawing_area, mode, zoom);
            }
 
-         advance_undo ("editing");
+         advance_undo (_("editing"));
          REDRAW;
        }
 
@@ -1774,7 +1773,7 @@
            {
              new = add_bond (x_begin, y_begin, x, y, type, &bonds, 1);
              if (is_drawing == DRAW_NORMAL)
-               advance_undo ("drawing");
+               advance_undo (_("drawing"));
            }
          if (new != NULL)
            {
@@ -1825,7 +1824,7 @@
              y_old = y;
            }
          remove_duplicate_in_list (&bonds, &num_sel);
-         advance_undo ("drawing ring");
+         advance_undo (_("drawing ring"));
          break;
 
        case DRAW_SEL:
@@ -1854,7 +1853,7 @@
              num_points = 0;
            }
          remove_duplicate_in_list (&bonds, &num_sel);
-         advance_undo (is_drawing == DRAW_COPY ? "copy" : "move");
+         advance_undo (is_drawing == DRAW_COPY ? _("copy") : _("move"));
          break;
 
        case DRAW_ROTATE:
@@ -1864,7 +1863,7 @@
              old_bonds = NULL;
            }
          remove_duplicate_in_list (&bonds, &num_sel);
-         advance_undo ("rotation");
+         advance_undo (_("rotation"));
          break;
        }
 
@@ -1932,7 +1931,7 @@
          if (old_bonds != NULL)
            free_bond_list (old_bonds);
          old_bonds = NULL;
-         advance_undo ("delete");
+         advance_undo (_("delete"));
          REDRAW;
        }
       break;
@@ -2401,7 +2400,7 @@
 {
   menu_copy ();
   menu_del ();
-  advance_undo ("cutting");
+  advance_undo (_("cutting"));
 }
 
 
@@ -2426,7 +2425,7 @@
     concat_bond_lists (bonds, copy_buffer, &num_sel);
 
   copy_buffer = tmp;
-  advance_undo ("paste");
+  advance_undo (_("paste"));
   REDRAW;
 }
 
@@ -2465,7 +2464,7 @@
     }
   while ((current = current->next) != NULL);
 
-  advance_undo ("horizontal flip");
+  advance_undo (_("horizontal flip"));
   REDRAW;
 }
 
@@ -2503,7 +2502,7 @@
     }
   while ((current = current->next) != NULL);
 
-  advance_undo ("vertical flip");
+  advance_undo (_("vertical flip"));
   REDRAW;
 }
 
@@ -2547,7 +2546,7 @@
     }
   while ((current = current->next) != NULL);
 
-  advance_undo ("inversion");
+  advance_undo (_("inversion"));
   REDRAW;
 }
 
@@ -2614,7 +2613,7 @@
   mode = MODE_ADJUST;
   gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (radio_adjust), TRUE);
   gtk_object_destroy (GTK_OBJECT (filew));
-  advance_undo ("merge file");
+  advance_undo (_("merge file"));
   REDRAW;
 }
 
@@ -2690,7 +2689,7 @@
 
   gtk_widget_destroy (dialog);
 
-  advance_undo ("rotation");
+  advance_undo (_("rotation"));
   REDRAW;
 }
 
@@ -2700,7 +2699,7 @@
 {
   remove_duplicate_in_list (&bonds, &num_sel);
   remove_empty_groups (&bonds, &num_sel);
-  advance_undo ("clean-up");
+  advance_undo (_("clean-up"));
   REDRAW;
 }
 
@@ -2966,6 +2965,10 @@
   bind_textdomain_codeset("easychem", "UTF-8");
   textdomain ("easychem");
 #endif
+  /* Seems to have no effect, probably reinitialised by gtk_init
+     setlocale (LC_NUMERIC, "C");
+   * Temporaly set during exportation instead (see export.c)
+   */
   gtk_init (&argc, &argv);
 
   signal (SIGINT, handle_signal);
@@ -3182,9 +3185,10 @@
   }
 
   menu_undo_widget = gtk_item_factory_get_widget (item_factory,
-                                                 _("/Edit/Undo"));
+                                                 "/Edit/Undo");
   menu_redo_widget = gtk_item_factory_get_widget (item_factory,
-                                                 _("/Edit/Redo"));
+                                                 "/Edit/Redo");
+  if (! menu_undo_widget) bug_in("main");
   menu_undo_update ();
   gtk_check_menu_item_set_active
     (GTK_CHECK_MENU_ITEM (gtk_item_factory_get_widget
diff -aur easychem-0.6-2/export.c easychem-0.6/export.c
--- easychem-0.6-2/export.c     2006-10-09 11:52:31.000000000 +0200
+++ easychem-0.6/export.c       2006-10-09 11:35:43.000000000 +0200
@@ -994,13 +994,17 @@
   if (heading > 1)
     fprintf (file, "%%!PS-Adobe-2.0 EPSF-2.0\n");
   if (heading != 0)
-  {
-    fprintf (file, "%%%%Title: \n");
-    fprintf (file, "%%%%Creator: EasyChem " VERSION "\n");
-    t = time (NULL);
-    fprintf (file, "%%%%CreationDate: %s", ctime (&t));
-    str = (gchar *) g_get_user_name ();
-    fprintf (file, "%%%%For: %s", str);
+    {
+      /* Using locales may write the float with commas, so we revert to "C" */
+      setlocale(LC_NUMERIC, "C");
+      gettext(""); /* to initialize */
+      
+      fprintf (file, "%%%%Title: \n");
+      fprintf (file, "%%%%Creator: EasyChem " VERSION "\n");
+      t = time (NULL);
+      fprintf (file, "%%%%CreationDate: %s", ctime (&t));
+      str = (gchar *) g_get_user_name ();
+      fprintf (file, "%%%%For: %s", str);
 
 #ifdef UNIX
     gethostname (buff, SIZE - 1);
@@ -1282,7 +1286,11 @@
   while ((current = current->next) != NULL);
 
   if (heading != 0)
-    fprintf (file, "\n\nshowpage\n");
+    {fprintf (file, "\n\nshowpage\n");
+      /* Back to user's locale. */
+      setlocale(LC_NUMERIC, "");
+      gettext(""); /* to initialize */
+    }
   fflush (file);
 
 }
@@ -1991,8 +1999,17 @@
 
   fprintf (file,
           "#FIG 
3.2\nLandscape\nCenter\nMetric\nLetter\n100.00\nSingle\n-2\n1200 2\n");
-
+  
+  /* Using locales may write the float with commas, so we revert to "C" */
+  setlocale(LC_NUMERIC, "C");
+  gettext(""); /* to initialize */
+      
   fig_write (list, file);
+
+  /* and back */
+  setlocale(LC_NUMERIC, "");
+  gettext(""); /* to initialize */
+
   fclose (file);
 
 }
@@ -2143,8 +2161,7 @@
   file = fdopen (fd, "w");
   eps_write (list, file, 2, 1);
-  fclose (file);
-  eps_bbox (list, filename, parent, &i, &j, &k, &l);
-
+  eps_bbox (list, epsfile, parent, &i, &j, &k, &l);
+
 /* Now we modify the file to add the bounding box. */
     fputs ("%%Trailer\n", file);
     fprintf (file, "%%%%BoundingBox: %d %d %d %d\n", i, j, k, l);
diff -aur easychem-0.6-2/po/fr.po easychem-0.6/po/fr.po
--- easychem-0.6-2/po/fr.po     2005-05-04 10:10:07.000000000 +0200
+++ easychem-0.6/po/fr.po       2006-10-09 11:35:43.000000000 +0200
@@ -5,8 +5,8 @@
 # 
 msgid ""
 msgstr ""
-"Project-Id-Version: EasyChem pre-0.6\n"
-"Last-Translator: François-Xavier Coudert <[EMAIL PROTECTED]>\n"
+"Project-Id-Version: EasyChem 0.6-ch\n"
+"Last-Translator: Céline Houriez <[EMAIL PROTECTED]>\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
@@ -29,13 +29,13 @@
 "set), and can include \\commands. There are 2 kinds of commands, with "
 "argument and without argument. Arguments are specified between brackets ("
 msgstr ""
-"Bienvenue dans l'aide du texte enrichi. Je vais vous aider à utiliser "
-"les possibilités offertes par EasyChem en matière de text enrichi. La "
-"syntaxe offerte est très similaire à celle de TeX (et LaTeX).\n"
+"Bienvenue dans l'aide du texte enrichi. Je vais vous aider à utiliser les "
+"possibilités offertes par EasyChem en matière de texte enrichi. La syntaxe "
+"offerte est très similaire à celle de TeX (et LaTeX).\n"
 "\n"
 "Le texte doit être composé de caractères du jeu de code latin1, et peut "
-"inclure des \\commandes. Il existe deux types de commandes, avec ou "
-"sans paramètre. Les paramètres sont spécifiés entre accolades ("
+"inclure des \\commandes. Il existe deux types de commandes, avec ou sans "
+"paramètre. Les paramètres sont spécifiés entre accolades ("
 
 #: dialogs.c:129
 msgid ""
@@ -50,10 +50,13 @@
 " being a command producing a non-latin1 character). Just like in LaTeX, if "
 "you want a space just after a command, you have to protect it ("
 msgstr ""
+" étant une commande qui produit un caractère qui n'est pas latin1). Tout "
+"comme en LaTeX, si vous voulez un espace juste après une commande, vous "
+"devez le protéger ("
 
 #: dialogs.c:136
 msgid "it costs 10 \\euro\\ per unit"
-msgstr ""
+msgstr "cela coûte 10 \\euro\\ l'unité"
 
 #: dialogs.c:138
 msgid ""
@@ -63,31 +66,36 @@
 "Enough small talk, what are the commands available?\n"
 "\n"
 msgstr ""
+", par exemple).\n"
+"\n"
+"\n"
+"Assez bavardé, quelles sont les commandes disponibles ?\n"
+"\n"
 
 #: dialogs.c:141 dialogs.c:147 dialogs.c:153 dialogs.c:161 dialogs.c:168
 #: dialogs.c:175
 msgid " produces "
-msgstr ""
+msgstr " produit "
 
 #: dialogs.c:144
 msgid " (bold).\n"
-msgstr ""
+msgstr " (gras).\n"
 
 #: dialogs.c:150
 msgid " (italic).\n"
-msgstr ""
+msgstr " (italique).\n"
 
 #: dialogs.c:158
 msgid "(subscript).\n"
-msgstr ""
+msgstr "(indice).\n"
 
 #: dialogs.c:165
 msgid " (subscript).\n"
-msgstr ""
+msgstr " (indice).\n"
 
 #: dialogs.c:172
 msgid " (superscript).\n"
-msgstr ""
+msgstr " (exposant).\n"
 
 #: dialogs.c:179
 msgid ""
@@ -95,645 +103,709 @@
 "\n"
 "\n"
 msgstr ""
+" (exposant).\n"
+"\n"
+"\n"
 
 #: dialogs.c:183
-msgid " produces α (greek letter) and the same is true for all greek letters. 
"
-msgstr ""
+msgid " (greek letter) and the same is true for all greek letters. "
+msgstr " (lettre grecque) et de même pour toutes les lettres grecques. "
 
 #: dialogs.c:187
-msgid " produces Ω (capital greek letter)."
-msgstr ""
+msgid " (capital greek letter)."
+msgstr " (lettre grecque capitale)."
 
 #: dialogs.c:210
 msgid "Edit atom or group"
-msgstr ""
+msgstr "Éditer un atome ou un groupe"
 
 #: dialogs.c:216
 msgid "Enter the text here:"
-msgstr ""
+msgstr "Entrez le texte ici :"
 
-#: dialogs.c:243
+#: dialogs.c:243 dialogs.c:255
 msgid "Type of atom or group:"
-msgstr ""
+msgstr "Type d'atome ou de groupe :"
 
-#: dialogs.c:395
+#: dialogs.c:395 dialogs.c:408
 msgid ""
 "You cannot edit a group. You need to ungroup its components and edit them."
 msgstr ""
+"Vous ne pouvez pas éditer un groupe. Vous devez dégrouper ses composants "
+"puis les éditer."
 
-#: dialogs.c:401
+#: dialogs.c:401 dialogs.c:414
 msgid "Edit a bond"
-msgstr ""
+msgstr "Éditer une liaison"
 
-#: dialogs.c:437 easychem.c:3529
+#: dialogs.c:437 easychem.c:3529 dialogs.c:450 easychem.c:3112 easychem.c:3111
 msgid "Simple"
-msgstr ""
+msgstr "Simple"
 
-#: dialogs.c:438 easychem.c:3530
+#: dialogs.c:438 easychem.c:3530 dialogs.c:451 easychem.c:3113 easychem.c:3112
 msgid "Double"
-msgstr ""
+msgstr "Double"
 
-#: dialogs.c:439 easychem.c:3531
+#: dialogs.c:439 easychem.c:3531 dialogs.c:452 easychem.c:3114 easychem.c:3113
 msgid "Triple"
-msgstr ""
+msgstr "Triple"
 
-#: dialogs.c:440 easychem.c:3532
+#: dialogs.c:440 easychem.c:3532 dialogs.c:453 easychem.c:3115 easychem.c:3114
 msgid "Going up"
-msgstr ""
+msgstr "Vers soi"
 
-#: dialogs.c:441 easychem.c:3533
+#: dialogs.c:441 easychem.c:3533 dialogs.c:454 easychem.c:3116 easychem.c:3115
 msgid "Going down"
-msgstr ""
+msgstr "Vers le fond"
 
-#: dialogs.c:442 easychem.c:3534
+#: dialogs.c:442 easychem.c:3534 dialogs.c:455 easychem.c:3117 easychem.c:3116
 msgid "Dashed"
-msgstr ""
+msgstr "Pointillée"
 
-#: dialogs.c:443 easychem.c:3535
+#: dialogs.c:443 easychem.c:3535 dialogs.c:456 easychem.c:3118 easychem.c:3117
 msgid "Arrow"
-msgstr ""
+msgstr "Flèche"
 
-#: dialogs.c:449 easychem.c:3536
+#: dialogs.c:449 easychem.c:3536 dialogs.c:462 easychem.c:3119 easychem.c:3118
 msgid "Arc"
-msgstr ""
+msgstr "Arc"
 
-#: dialogs.c:455 easychem.c:3537
+#: dialogs.c:455 easychem.c:3537 dialogs.c:468 easychem.c:3120 easychem.c:3119
 msgid "Circle"
-msgstr ""
+msgstr "Cercle"
 
-#: dialogs.c:462 easychem.c:3538
+#: dialogs.c:462 easychem.c:3538 dialogs.c:475 easychem.c:3121 easychem.c:3120
 msgid "Atom/Group"
-msgstr ""
+msgstr "Atome/Groupe"
 
-#: dialogs.c:471
+#: dialogs.c:471 dialogs.c:484
 msgid "Type of the bond:"
-msgstr ""
+msgstr "Type de la liaison :"
 
-#: dialogs.c:484
+#: dialogs.c:484 dialogs.c:497
 msgid "Color:"
-msgstr ""
+msgstr "Couleur :"
 
-#: dialogs.c:487
+#: dialogs.c:234
+msgid "Relative size:"
+msgstr "Taille relative :"
+
+#: dialogs.c:487 dialogs.c:500
 msgid "Relative width:"
-msgstr ""
+msgstr "Largeur relative :"
 
-#: dialogs.c:491
+#: dialogs.c:491 dialogs.c:504
 msgid "Arrow size:"
-msgstr ""
+msgstr "Taille de la flèche :"
 
-#: dialogs.c:518
+#: dialogs.c:518 dialogs.c:531
 msgid "Beginning arrowhead:"
-msgstr ""
+msgstr "Tête de la flèche au début :"
 
-#: dialogs.c:519
+#: dialogs.c:519 dialogs.c:532
 msgid "Ending arrowhead:"
-msgstr ""
+msgstr "Tête de la flèche à la fin :"
 
-#: dialogs.c:743
+#: dialogs.c:743 dialogs.c:767
 msgid "Edit ornaments"
-msgstr ""
+msgstr "Éditer des ornements"
 
-#: dialogs.c:781
+#: dialogs.c:781 dialogs.c:805
 msgid "Non-bonding pair"
-msgstr ""
+msgstr "Paire non-liante"
 
-#: dialogs.c:782
+#: dialogs.c:782 dialogs.c:806
 msgid "Electronic gap"
 msgstr ""
 
-#: dialogs.c:783
+#: dialogs.c:783 dialogs.c:807
 msgid "Radical"
-msgstr ""
+msgstr "Radical"
 
-#: dialogs.c:784
+#: dialogs.c:784 dialogs.c:808
 msgid "Electronic gap 2"
 msgstr ""
 
-#: dialogs.c:789
+#: dialogs.c:789 dialogs.c:815
 msgid "Type:"
-msgstr ""
+msgstr "Type :"
 
-#: dialogs.c:794
+#: dialogs.c:794 dialogs.c:820
 msgid "Size:"
-msgstr ""
+msgstr "Taille :"
 
-#: dialogs.c:797
+#: dialogs.c:797 dialogs.c:823
 msgid "Distance:"
-msgstr ""
+msgstr "Distance :"
 
-#: dialogs.c:800
+#: dialogs.c:800 dialogs.c:826
 msgid "Number:"
-msgstr ""
+msgstr "Nombre :"
 
-#: dialogs.c:803
+#: dialogs.c:803 dialogs.c:829
 msgid "Spacing:"
-msgstr ""
+msgstr "Espacement :"
 
-#: dialogs.c:806
+#: dialogs.c:806 dialogs.c:832
 msgid ""
 "Angle\n"
 "(from 12 AM,\n"
 "clockwise):"
 msgstr ""
+"Angle\n"
+"(depuis 12h,\n"
+"sens horaire) :"
 
-#: dialogs.c:832
+#: dialogs.c:832 dialogs.c:857
 msgid "Add one"
-msgstr ""
+msgstr "Ajouter"
 
-#: dialogs.c:836
+#: dialogs.c:836 dialogs.c:861
 msgid "Remove current"
-msgstr ""
+msgstr "Supprimer"
 
-#: easychem.c:170
+#: easychem.c:170 easychem.c:190
 #, c-format
 msgid ""
 "Received signal %d.\n"
 "Whoops. Things are going a little crazy.\n"
 msgstr ""
+"Reçu le signal %d.\n"
+"Oula, ça me dépasse un peu là.\n"
 
-#: easychem.c:177
+#: easychem.c:177 easychem.c:197
 msgid "Trying to save the current contents into '/tmp/save.ech'.\n"
-msgstr ""
+msgstr "Tentative de sauvegarde du contenu actuel dans '/tmp/save.ech'.\n"
 
-#: easychem.c:181
+#: easychem.c:181 easychem.c:201
 msgid "Trying to save the current contents into a '.save.ech' file.\n"
 msgstr ""
+"Tentative de sauvegarde du contenu actuel dans un fichier '.save.ech'.\n"
 
-#: easychem.c:249
+#: easychem.c:249 easychem.c:244
 msgid "About EasyChem"
-msgstr ""
+msgstr "À propos d'EasyChem"
 
 #: easychem.c:250 easychem.c:1030 easychem.c:1146 easychem.c:3103
-#: easychem.c:3204
+#: easychem.c:3204 easychem.c:245 easychem.c:675 easychem.c:793
+#: easychem.c:2658 easychem.c:2759 easychem.c:674 easychem.c:792
+#: easychem.c:2657 easychem.c:2758
 msgid "OK"
-msgstr ""
+msgstr "Valider"
 
-#: easychem.c:260
+#: easychem.c:260 easychem.c:255
 msgid "This program is free software. See COPYING file for details."
 msgstr ""
+"Ce programme est un logiciel libre. Voir le fichier COPYING pour plus de "
+"détails."
 
-#: easychem.c:263
+#: easychem.c:263 easychem.c:258
 msgid "Bug-reports, ideas and suggestions welcome!"
-msgstr ""
+msgstr "Rapports de bugs, idées et suggestions bienvenues !"
 
-#: easychem.c:266
+#: easychem.c:266 easychem.c:261
 msgid "Please send a mail to:"
-msgstr ""
-
-#: easychem.c:326 easychem.c:785 easychem.c:2771 easychem.c:2800
-#: easychem.c:3603
-msgid "/Edit/Undo"
-msgstr ""
+msgstr "Envoyez un mail à :"
 
-#: easychem.c:328 easychem.c:787 easychem.c:2775 easychem.c:2804
-#: easychem.c:3605
-msgid "/Edit/Redo"
-msgstr ""
-
-#: easychem.c:790 easychem.c:3608
+#: easychem.c:790 easychem.c:3608 easychem.c:425 easychem.c:3195
+#: easychem.c:424
 msgid "/Options/Attraction"
-msgstr ""
+msgstr "/Options/Attraction"
 
-#: easychem.c:849 easychem.c:947
+#: easychem.c:849 easychem.c:947 easychem.c:484 easychem.c:588 easychem.c:483
+#: easychem.c:587
 msgid "This file already exists!"
-msgstr ""
+msgstr "Ce fichier existe déjà !"
 
 #: easychem.c:850 easychem.c:948 easychem.c:2614 easychem.c:2735
+#: easychem.c:485 easychem.c:589 easychem.c:2174 easychem.c:2299
+#: easychem.c:484 easychem.c:588 easychem.c:2173 easychem.c:2298
 msgid "No"
-msgstr ""
+msgstr "Non"
 
 #: easychem.c:850 easychem.c:948 easychem.c:2614 easychem.c:2735
+#: easychem.c:485 easychem.c:589 easychem.c:2174 easychem.c:2299
+#: easychem.c:484 easychem.c:588 easychem.c:2173 easychem.c:2298
 msgid "Yes"
-msgstr ""
+msgstr "Oui"
 
-#: easychem.c:851 easychem.c:949
+#: easychem.c:851 easychem.c:949 easychem.c:486 easychem.c:590 easychem.c:485
+#: easychem.c:589
 msgid "Overwrite the existing file?"
-msgstr ""
+msgstr "Écraser le fichier existant ?"
 
 #: easychem.c:867 easychem.c:923 easychem.c:2526 easychem.c:2650
 #: easychem.c:2662 easychem.c:3017 easychem.c:3029 export.c:1022 export.c:1610
+#: easychem.c:503 easychem.c:564 easychem.c:2086 easychem.c:2210
+#: easychem.c:2222 easychem.c:2568 easychem.c:2580 export.c:1406 export.c:1994
+#: easychem.c:502 easychem.c:563 easychem.c:2085 easychem.c:2209
+#: easychem.c:2221 easychem.c:2567 easychem.c:2579
 #, c-format
 msgid "Cannot open file '%s'"
-msgstr ""
+msgstr "Impossible d'ouvrir le fichier '%s'"
 
-#: easychem.c:892
+#: easychem.c:892 easychem.c:530 easychem.c:529
 msgid "Save file in EasyChem format"
-msgstr ""
+msgstr "Enregistrer dans le format EasyChem"
 
-#: easychem.c:1000
+#: easychem.c:1000 easychem.c:642 easychem.c:641
 msgid "Export file"
-msgstr ""
+msgstr "Exporter le fichier"
 
-#: easychem.c:1027
+#: easychem.c:1027 easychem.c:672 easychem.c:671
 msgid "Choice for exporting format"
-msgstr ""
+msgstr "Choix du format d'exportation"
 
 #: easychem.c:1031 easychem.c:1146 easychem.c:3103 easychem.c:3203
+#: easychem.c:676 easychem.c:793 easychem.c:2658 easychem.c:2758
+#: easychem.c:675 easychem.c:792 easychem.c:2657 easychem.c:2757
 msgid "Cancel"
-msgstr ""
+msgstr "Annuler"
 
-#: easychem.c:1033
+#: easychem.c:1033 easychem.c:678 easychem.c:677
 msgid "What kind of file do you want to produce?"
-msgstr ""
+msgstr "Quel type de fichier voulez-vous produire ?"
 
-#: easychem.c:1039
+#: easychem.c:1039 easychem.c:684 easychem.c:683
 msgid "Encapsulated postscript (.eps)"
-msgstr ""
+msgstr "Postscript encapsulé (.eps)"
 
-#: easychem.c:1041
+#: easychem.c:1041 easychem.c:686 easychem.c:685
 msgid "EPS, optimized for size (.eps)"
-msgstr ""
+msgstr "EPS, optimisé pour la taille (.eps)"
 
-#: easychem.c:1044
-msgid "Encapsulated postscript without bouding box (.eps)"
-msgstr ""
+#: easychem.c:1044 easychem.c:689 easychem.c:688
+msgid "Encapsulated postscript with poor bounding box (.eps)"
+msgstr "Postscript encapsulé avec une boîte de bordure approximative (.eps)"
 
-#: easychem.c:1046
+#: easychem.c:1046 easychem.c:691 easychem.c:690
 msgid "Portable document file (.pdf)"
-msgstr ""
+msgstr "Format de document portable (.pdf)"
 
-#: easychem.c:1048
+#: easychem.c:1048 easychem.c:693 easychem.c:692
 msgid "Xfig document (.fig)"
-msgstr ""
+msgstr "Document Xfig (.fig)"
 
-#: easychem.c:1051
+#: easychem.c:1051 easychem.c:696 easychem.c:695
 msgid "Enhanced xfig document (.fig) using pstoedit"
-msgstr ""
+msgstr "Document Xfig amélorié (.fig) en utilisant pstoedit"
 
-#: easychem.c:1069
+#: easychem.c:1069 easychem.c:716 easychem.c:715
 msgid "Use LaTeX fonts"
-msgstr ""
+msgstr "Utiliser des polices LaTeX"
 
-#: easychem.c:1145
+#: easychem.c:1145 easychem.c:792 easychem.c:791
 msgid "Align objects"
-msgstr ""
+msgstr "Aligner les objets"
 
-#: easychem.c:1147
+#: easychem.c:1147 easychem.c:794 easychem.c:793
 msgid "Horizontal alignment:"
-msgstr ""
+msgstr "Alignement horizontal :"
 
-#: easychem.c:1153 easychem.c:1173
+#: easychem.c:1153 easychem.c:1173 easychem.c:800 easychem.c:820
+#: easychem.c:799 easychem.c:819
 msgid "No alignment"
-msgstr ""
+msgstr "Pas d'alignement"
 
-#: easychem.c:1155
+#: easychem.c:1155 easychem.c:802 easychem.c:801
 msgid "Left"
-msgstr ""
+msgstr "À gauche"
 
-#: easychem.c:1157 easychem.c:1177
+#: easychem.c:1157 easychem.c:1177 easychem.c:804 easychem.c:824
+#: easychem.c:803 easychem.c:823
 msgid "Center"
-msgstr ""
+msgstr "Centré"
 
-#: easychem.c:1159
+#: easychem.c:1159 easychem.c:806 easychem.c:805
 msgid "Right"
-msgstr ""
+msgstr "À droite"
 
-#: easychem.c:1167
+#: easychem.c:1167 easychem.c:814 easychem.c:813
 msgid "Vertical alignment:"
-msgstr ""
+msgstr "Alignement vertical :"
 
-#: easychem.c:1175
+#: easychem.c:1175 easychem.c:822 easychem.c:821
 msgid "Top"
-msgstr ""
+msgstr "En haut"
 
-#: easychem.c:1179
+#: easychem.c:1179 easychem.c:826 easychem.c:825
 msgid "Bottom"
-msgstr ""
+msgstr "En bas"
 
-#: easychem.c:1838 easychem.c:1953
+#: easychem.c:1838 easychem.c:1953 easychem.c:1398 easychem.c:1513
+#: easychem.c:1397 easychem.c:1512
 #, c-format
 msgid ""
 "There seems to be a syntax problem in your text : '%s'. Until you change it, "
 "it will be represented by a '(null)' block of text."
 msgstr ""
+"Il semble qu'il y ait un problème de syntaxe dans votre texte : '%s'. "
+"Jusqu'à ce que vous le modifiez, il sera représenté par un bloc de text "
+"'(null)'."
 
-#: easychem.c:1872
+#: easychem.c:1872 easychem.c:1432 easychem.c:1431
 msgid ""
 "Control-clicking enables you to draw a n-membered ring (n is set by the "
 "'ring size' value)."
 msgstr ""
+"Contrôle-clic vous permet de dessiner un cycle à n côtés. (n est défini 
en "
+"utilisant la valeur 'taille des cycles'.)"
 
-#: easychem.c:1877
+#: easychem.c:1877 easychem.c:1437 easychem.c:1436
 msgid "Release the mouse button to draw the bond."
-msgstr ""
+msgstr "Relâchez le bouton de la souris pour dessiner la liaison."
 
-#: easychem.c:1895
+#: easychem.c:1895 easychem.c:1455 easychem.c:1454
 msgid "You clicked with the right button. Drawing canceled."
-msgstr ""
+msgstr "Vous avez cliqué avec le bouton droit. Dessin annulé."
 
-#: easychem.c:1907
+#: easychem.c:1907 easychem.c:1467 easychem.c:1466
 msgid ""
 "You used the Control key and the right button to delete an entire molecule."
 msgstr ""
+"Vous avez utilisés la touche Contrôle et le bouton droit pour supprimer une 
"
+"molécule entièrement."
 
-#: easychem.c:1912
+#: easychem.c:1912 easychem.c:1472 easychem.c:1471
 msgid "You used the right button to delete an object."
 msgstr ""
+"Vous avez utilisé le bouton droit pour supprimer un objet. (Oui, je suis "
+"omniscient.)"
 
-#: easychem.c:2170
+#: easychem.c:2170 easychem.c:1730 easychem.c:1729
 msgid ""
 "You made a short click in a blank area. If you wanted to draw a bond, you "
 "need to key the mouse button pressed."
 msgstr ""
+"Vous avez cliqué rapidement dans une zone vide. Si vous voulez dessiner une "
+"liaison, vous devez laisser le bouton de la souris appuyé."
 
-#: easychem.c:2231
+#: easychem.c:2231 easychem.c:1791 easychem.c:1790
 msgid ""
 "To set the third point of the arc, you now need to click where you want it "
 "to be."
 msgstr ""
+"Pour définir le troisième point de l'arc, vous devez maintenant cliquer où 
"
+"vous voulez qu'il soit."
 
-#: easychem.c:2361
+#: easychem.c:2361 easychem.c:1921 easychem.c:1920
 msgid "Hitting the Escape key aborts the current operation."
 msgstr "Appuyer sur [Échap] annule l'opération en court."
 
-#: easychem.c:2371
+#: easychem.c:2371 easychem.c:1931 easychem.c:1930
 msgid "You used the Backspace and Delete keys to delete the selection."
 msgstr "Vous avez utilisé la touche Suppr pour effacer la sélection."
 
-#: easychem.c:2567
+#: easychem.c:2567 easychem.c:2127 easychem.c:2126
 msgid "Quit"
 msgstr "Quitter"
 
-#: easychem.c:2568
+#: easychem.c:2568 easychem.c:2128 easychem.c:2127
 msgid "Save"
 msgstr "Enregistrer"
 
-#: easychem.c:2568
+#: easychem.c:2568 easychem.c:2128 easychem.c:2127
 msgid "Discard"
 msgstr "Annuler"
 
-#: easychem.c:2569 easychem.c:2615 easychem.c:2736
+#: easychem.c:2569 easychem.c:2615 easychem.c:2736 easychem.c:2129
+#: easychem.c:2175 easychem.c:2300 easychem.c:2128 easychem.c:2174
+#: easychem.c:2299
 msgid "Do you want to save your work first?"
 msgstr "Voulez-vous enregistrer votre travail ?"
 
-#: easychem.c:2613
+#: easychem.c:2613 easychem.c:2173 easychem.c:2172
 msgid "New file"
 msgstr "Nouveau fichier"
 
-#: easychem.c:2678 easychem.c:3042
+#: easychem.c:2678 easychem.c:3042 easychem.c:2238 easychem.c:2594
+#: easychem.c:2237 easychem.c:2593
 #, c-format
 msgid "File '%s' has incorrect format"
 msgstr "Le fichier '%s' a un format incorrect"
 
-#: easychem.c:2701
+#: easychem.c:2701 easychem.c:2262 easychem.c:2261
 msgid "Open file in EasyChem format"
 msgstr "Ouvrir un fichier au format EasyChem"
 
-#: easychem.c:2734
+#: easychem.c:2734 easychem.c:2298 easychem.c:2297
 msgid "Open file"
 msgstr "Ouvrir un fichier"
 
-#: easychem.c:2778
+#: easychem.c:2778 easychem.c:2335 easychem.c:2334
 msgid "Yeah! Undone, boss!"
-msgstr ""
+msgstr "Ouais ! Annulé, chef !"
 
-#: easychem.c:3077
+#: easychem.c:3077 easychem.c:2629 easychem.c:2628
 msgid "Open file for merging"
 msgstr "Ouvrir pour fusion"
 
-#: easychem.c:3102
+#: easychem.c:3102 easychem.c:2657 easychem.c:2656
 msgid "Rotate the selection"
 msgstr "Faire tourner la sélection"
 
-#: easychem.c:3108
+#: easychem.c:3108 easychem.c:2663 easychem.c:2662
 msgid "Angle of the rotation:"
 msgstr "Angle de la rotation :"
 
-#: easychem.c:3115
+#: easychem.c:3115 easychem.c:2670 easychem.c:2669
 msgid "(positive is clockwise)"
 msgstr "(positif: dans le sens horaire)"
 
-#: easychem.c:3202
+#: easychem.c:3202 easychem.c:2757 easychem.c:2756
 msgid "Set the zoom factor"
 msgstr "Changer le facteur de zoom"
 
-#: easychem.c:3208
+#: easychem.c:3208 easychem.c:2763 easychem.c:2762
 msgid "New zoom factor:"
 msgstr "Nouveau facteur de zoom :"
 
-#: easychem.c:3247
+#: easychem.c:3247 easychem.c:2802
 msgid "/_File"
 msgstr "/_Fichier"
 
-#: easychem.c:3248
+#: easychem.c:3248 easychem.c:2803
 msgid "/_File/_New"
 msgstr "/_Fichier/_Nouveau"
 
-#: easychem.c:3249
+#: easychem.c:3249 easychem.c:2804
 msgid "/_File/_Open"
 msgstr "/_Fichier/_Ouvrir"
 
-#: easychem.c:3250
+#: easychem.c:3250 easychem.c:2805
 msgid "/_File/_Save"
 msgstr "/_Fichier/_Enregistrer"
 
-#: easychem.c:3251
+#: easychem.c:3251 easychem.c:2806
 msgid "/_File/_Save as"
 msgstr "/_Fichier/Enregistrer _sous"
 
-#: easychem.c:3253
+#: easychem.c:3253 easychem.c:2808
 msgid "/_File/_Merge"
 msgstr "/_Fichier/_Fusionner"
 
-#: easychem.c:3254
+#: easychem.c:3254 easychem.c:2809
 msgid "/_File/_Export"
 msgstr "/_Fichier/E_xporter"
 
-#: easychem.c:3256
+#: easychem.c:3256 easychem.c:2812
 msgid "/_File/_Debug"
 msgstr "/_Fichier/_Debugguer"
 
-#: easychem.c:3258
+#: easychem.c:3258 easychem.c:2815
 msgid "/_File/_Quit"
 msgstr "/_Fichier/_Quitter"
 
-#: easychem.c:3259
+#: easychem.c:3259 easychem.c:2816
 msgid "/_Edit"
 msgstr "/_Édition"
 
-#: easychem.c:3260
+#: easychem.c:3260 easychem.c:2817
 msgid "/_Edit/_Undo"
 msgstr "/_Édition/_Annuler"
 
-#: easychem.c:3261
+#: easychem.c:3189
+msgid "/Edit/Undo"
+msgstr "/Édition/Annuler"
+
+#: easychem.c:286 easychem.c:293 easychem.c:300 easychem.c:302
+msgid "_Undo"
+msgstr "_Annuler"
+
+#: easychem.c:3261 easychem.c:2818
 msgid "/_Edit/_Redo"
-msgstr "/_Édition/_Refaire"
+msgstr "/_Édition/_Rétablir"
 
-#: easychem.c:3263
+#: easychem.c:3191
+msgid "/Edit/Redo"
+msgstr "/Édition/Rétablir"
+
+#: easychem.c:310 easychem.c:320 easychem.c:322
+msgid "_Redo"
+msgstr "_Rétablir"
+
+#: easychem.c:3263 easychem.c:2820
 msgid "/_Edit/_Cut"
 msgstr "/_Édition/_Couper"
 
-#: easychem.c:3264
+#: easychem.c:3264 easychem.c:2821
 msgid "/_Edit/_Copy"
 msgstr "/_Édition/_Copier"
 
-#: easychem.c:3265
+#: easychem.c:3265 easychem.c:2822
 msgid "/_Edit/_Paste"
 msgstr "/_Édition/_Coller"
 
-#: easychem.c:3266
+#: easychem.c:3266 easychem.c:2823
 msgid "/_Edit/_Delete"
 msgstr "/_Édition/_Supprimer"
 
-#: easychem.c:3268
+#: easychem.c:3268 easychem.c:2825
 msgid "/_Edit/Select _all"
 msgstr "/_Édition/_Tout sélectionner"
 
-#: easychem.c:3269
+#: easychem.c:3269 easychem.c:2826
 msgid "/_Transformations"
 msgstr "/_Transformations"
 
-#: easychem.c:3270
+#: easychem.c:3270 easychem.c:2827
 msgid "/_Transformations/Flip _horizontally"
 msgstr "/_Transformations/Miroir _horizontal"
 
-#: easychem.c:3271
+#: easychem.c:3271 easychem.c:2828
 msgid "/_Transformations/Flip _vertically"
 msgstr "/_Transformations/Miroir _vertical"
 
-#: easychem.c:3272
+#: easychem.c:3272 easychem.c:2829
 msgid "/_Transformations/_Invert"
 msgstr "/_Transformations/_Inversion"
 
-#: easychem.c:3273
+#: easychem.c:3273 easychem.c:2830
 msgid "/_Transformations/_Rotate x degrees"
 msgstr "/_Transformations/_Rotation"
 
-#: easychem.c:3275
+#: easychem.c:3275 easychem.c:2832
 msgid "/_Transformations/_Clean-up buffer"
 msgstr "/_Transformations/_Nettoyer le dessin"
 
-#: easychem.c:3277
+#: easychem.c:3277 easychem.c:2834
 msgid "/_Transformations/_Group"
 msgstr "/_Transformations/_Grouper"
 
-#: easychem.c:3278
+#: easychem.c:3278 easychem.c:2835
 msgid "/_Transformations/_Ungroup"
 msgstr "/_Transformations/_Dégrouper"
 
-#: easychem.c:3279
+#: easychem.c:3279 easychem.c:2836
 msgid "/_Transformations/_Align"
 msgstr "/_Transformations/_Aligner"
 
-#: easychem.c:3280
+#: easychem.c:3280 easychem.c:2837
 msgid "/_Options"
 msgstr "/_Options"
 
-#: easychem.c:3281
+#: easychem.c:3281 easychem.c:2838
 msgid "/_Options/_Attraction"
 msgstr "/_Options/_Attraction"
 
-#: easychem.c:3282
+#: easychem.c:3282 easychem.c:2839
 msgid "/_Options/_Learning messages"
 msgstr "/_Options/_Messages d'apprentissage"
 
-#: easychem.c:3284
+#: easychem.c:3283 easychem.c:2842
+msgid "/_Options/_Preferences"
+msgstr "/_Options/_Préférences"
+
+#: easychem.c:3284 easychem.c:2843
 msgid "/_View"
 msgstr "/Afficha_ge"
 
-#: easychem.c:3285
+#: easychem.c:3285 easychem.c:2844
 msgid "/_View/Zoom _1:1"
 msgstr "/Afficha_ge/Zoom _1:1"
 
-#: easychem.c:3286
+#: easychem.c:3286 easychem.c:2845
 msgid "/_View/Zoom _in"
-msgstr "/Afficha_ge/Zoom a_rrière"
+msgstr "/Afficha_ge/Zoom a_vant"
 
-#: easychem.c:3287
+#: easychem.c:3287 easychem.c:2846
 msgid "/_View/Zoom _out"
-msgstr "/Afficha_ge/Zoom a_vant"
+msgstr "/Afficha_ge/Zoom a_rrière"
 
-#: easychem.c:3288
+#: easychem.c:3288 easychem.c:2847
 msgid "/_View/Precise _zoom"
 msgstr "/Afficha_ge/_Zoom contrôlé"
 
-#: easychem.c:3289
+#: easychem.c:3289 easychem.c:2848
 msgid "/_Help"
 msgstr "/_Aide"
 
-#: easychem.c:3290
+#: easychem.c:3290 easychem.c:2849
 msgid "/_Help/_About EasyChem"
 msgstr "/_Aide/À _propos d'EasyChem"
 
-#: easychem.c:3327
+#: easychem.c:3327 easychem.c:2886 easychem.c:2885
 msgid ""
 "Press the left button to add a bond, and release it when you're done. Use "
 "CONTROL to add a ring."
-msgstr "Cliquez pour ajouter un liaison, en relâchant le bouton au point"
-" final. [Ctrl] permet de dessiner un cycle."
+msgstr ""
+"Cliquez pour ajouter un liaison, en relâchant le bouton au point final. "
+"[Ctrl] permet de dessiner un cycle."
 
-#: easychem.c:3335
+#: easychem.c:3335 easychem.c:2894 easychem.c:2893
 msgid "You can change the selection, and move things around!"
 msgstr "Vous pouvez changer la sélection, et la déplacer !"
 
-#: easychem.c:3343
+#: easychem.c:3343 easychem.c:2902 easychem.c:2901
 msgid "You can change the selection, and rotate it."
-msgstr "Vous pouvez changer la sélection, et lui faire subir des "
-"rotations."
+msgstr "Vous pouvez changer la sélection, et lui faire subir des rotations."
 
-#: easychem.c:3351
+#: easychem.c:3351 easychem.c:2910 easychem.c:2909
 msgid ""
 "Click on a bond to edit its properties. Middle-click to change its type "
 "immediatly."
-msgstr "Cliquez sur une liaison pour la modifier. Un clic du bouton du"
-" milieu prend effet immédiatement."
+msgstr ""
+"Cliquez sur une liaison pour la modifier. Un clic du bouton du milieu prend "
+"effet immédiatement."
 
-#: easychem.c:3359
+#: easychem.c:3359 easychem.c:2918 easychem.c:2917
 msgid ""
 "Click on the end of a bond or an atom to add an ornament or edit existing "
 "ones."
-msgstr "Cliquez sur l'extrêmité d'une liaison ou sur un atome pour "
-" modifier les ornements."
+msgstr ""
+"Cliquez sur l'extrêmité d'une liaison ou sur un atome pour  modifier les "
+"ornements."
 
-#: easychem.c:3428
+#: easychem.c:3428 easychem.c:3011 easychem.c:3010
 msgid "Welcome to EasyChem!"
 msgstr "Bienvenue dans EasyChem !"
 
-#: easychem.c:3471
+#: easychem.c:3471 easychem.c:3054 easychem.c:3053
 msgid "Adjust"
 msgstr "Ajustements"
 
-#: easychem.c:3474
+#: easychem.c:3474 easychem.c:3057 easychem.c:3056
 msgid "Add bonds"
 msgstr "Ajouts"
 
-#: easychem.c:3477
+#: easychem.c:3477 easychem.c:3060 easychem.c:3059
 msgid "Rotate"
 msgstr "Rotations"
 
-#: easychem.c:3480
+#: easychem.c:3480 easychem.c:3063 easychem.c:3062
 msgid "Edit"
 msgstr "Modifications"
 
-#: easychem.c:3482
+#: easychem.c:3482 easychem.c:3065 easychem.c:3064
 msgid "Ornaments"
 msgstr "Ornements"
 
-#: easychem.c:3505
+#: easychem.c:3505 easychem.c:3088 easychem.c:3087
 msgid "Ring size:"
 msgstr "Taille des cycles :"
 
-#: easychem.c:3520
+#: easychem.c:3520 easychem.c:3103 easychem.c:3102
 msgid "Bond type:"
 msgstr "Type de liaison :"
 
-#: easychem.c:3552
+#: easychem.c:3552 easychem.c:3135 easychem.c:3134
 msgid "Bond size:"
 msgstr "Taille de liaison :"
 
-#: easychem.c:3582
+#: easychem.c:3582 easychem.c:3165 easychem.c:3164
 #, c-format
 msgid "Warning: cannot load file '%s'.\n"
 msgstr "Attention: je ne peux pas charger le fichier '%s'.\n"
 
-#: export.c:449 export.c:482 export.c:508 export.c:532
+#: export.c:449 export.c:482 export.c:508 export.c:532 export.c:773
+#: export.c:806 export.c:832 export.c:856
 msgid "richtext_to_eps (syntax error)"
 msgstr "richtext_to_eps (erreur de syntaxe)"
 
-#: export.c:999
+#: export.c:999 export.c:1384
 msgid "Cannot find 'gs'. Will do poor man's bouding box determination."
-msgstr "Je n'arrive pas à trouver 'gs'. "
-"Je vais déterminer la bounding box à la main."
+msgstr ""
+"Je n'arrive pas à trouver 'gs'. Je vais déterminer la bounding box à la 
main."
 
 #: common.h:11
 #, c-format
@@ -753,5 +825,109 @@
 "Please send a mail to <[EMAIL PROTECTED]>\n"
 msgstr ""
 "Erreur fatale pour le moins bizarre dans '%s'.\n"
-"Ceci ne devrait pas arriver. Vosu venez de découvrir un bug.\n"
+"Ceci ne devrait pas arriver. Vous venez de découvrir un bug.\n"
 "Merci de m'envoyer un mail : [EMAIL PROTECTED]"
+
+#: dialogs.c:809
+msgid "Non-bonding pair (dots)"
+msgstr "Paire non-liante (points)"
+
+#: dialogs.c:810
+msgid "Non-bonding electron"
+msgstr "Electron non-liant"
+
+#: dialogs.c:912
+msgid "Preferences"
+msgstr "Préférences"
+
+#: dialogs.c:931
+msgid "Path to gs:"
+msgstr "Chemin vers gs :"
+
+#: dialogs.c:936
+msgid "Path to pstoedit:"
+msgstr "Chemin vers pstoedit :"
+
+#: dialogs.c:945
+msgid "Width of the drawing:"
+msgstr "Largeur du dessin :"
+
+#: dialogs.c:954
+msgid "Height of the drawing:"
+msgstr "Hauteur du dessin :"
+
+#: easychem.c:755
+msgid "grouping"
+msgstr "le groupement"
+
+#: easychem.c:772
+msgid "ungrouping"
+msgstr "le dégroupement"
+
+#: easychem.c:863
+msgid "aligning"
+msgstr "l'alignement"
+
+#: easychem.c:1349
+msgid "drawing arc"
+msgstr "l'arc"
+
+#: easychem.c:1405
+msgid "adding text"
+msgstr "l'ajout de texte"
+
+#: easychem.c:1473 easychem.c:1934
+msgid "delete"
+msgstr "la suppression"
+
+#: easychem.c:1528
+msgid "editing"
+msgstr "l'édition"
+
+#: easychem.c:1776
+msgid "drawing"
+msgstr "le dessin"
+
+#: easychem.c:1827
+msgid "drawing ring"
+msgstr "le cycle"
+
+#: easychem.c:1856
+msgid "copy"
+msgstr "la copie"
+
+#: easychem.c:1856
+msgid "move"
+msgstr "le déplacement"
+
+#: easychem.c:1866 easychem.c:2692
+msgid "rotation"
+msgstr "la rotation"
+
+#: easychem.c:2403
+msgid "cutting"
+msgstr "la coupure"
+
+#: easychem.c:2428
+msgid "paste"
+msgstr "le collage"
+
+#: easychem.c:2467
+msgid "horizontal flip"
+msgstr "le miroir horizontal"
+
+#: easychem.c:2505
+msgid "vertical flip"
+msgstr "le miroir vertical"
+
+#: easychem.c:2549
+msgid "inversion"
+msgstr "l'inversion"
+
+#: easychem.c:2616
+msgid "merge file"
+msgstr "la fusion"
+
+#: easychem.c:2702
+msgid "clean-up"
+msgstr "le nettoyage"
diff -aur easychem-0.6-2/postscript/cm_common.ps 
easychem-0.6/postscript/cm_common.ps
--- easychem-0.6-2/postscript/cm_common.ps      2005-05-04 10:10:07.000000000 
+0200
+++ easychem-0.6/postscript/cm_common.ps        2006-01-19 11:56:19.000000000 
+0100
@@ -1,6 +1,7 @@
 % This is used to set the font to the current fs/ft values
 /sf{ft 0 eq{/CMFX findfont}{ft 1 eq{/CMFXi findfont}{ft 2 eq{/CMFXb
-  findfont}{/CMFXbi findfont}ifelse}ifelse}ifelse fs scalefont setfont}bd
+  findfont}{/CMFXbi findfont}ifelse}ifelse}ifelse
+  fs relfs mul scalefont setfont}bd
 
 % We set the font
 sf
diff -aur easychem-0.6-2/postscript/preamble.ps 
easychem-0.6/postscript/preamble.ps
--- easychem-0.6-2/postscript/preamble.ps       2005-05-04 10:10:07.000000000 
+0200
+++ easychem-0.6/postscript/preamble.ps 2006-10-09 11:35:43.000000000 +0200
@@ -179,12 +179,19 @@
 /b-down{
   /sh ste-sh 3 -1 r m def
   /y2 ed /x2 ed /y1 ed /x1 ed /px x2 x1 s def /py y2 y1 s def
-  px px m py py m a sqrt dup px e d /px ed py e d /py ed
-  0 1 8{/j ed /cx 2 j m 1 a x2 x1 s m 18 d x1 a def
-    /cy 2 j m 1 a y2 y1 s m 18 d y1 a def
-    cx sh py m j 1 a m 9 d s cy sh px m j 1 a m 9 d a
-    cx sh py m j 1 a m 9 d a cy sh px m j 1 a m 9 d s
-    np mv l stroke}for
+  /len px px m py py m a sqrt def /rpx px len d def /rpy py len d def
+  /n len 5 d cvi 2 m 1 a def
+  3 n gt{/n 3 def}if 
+  0 1 n 1 s{/j ed
+    /cx1 2 j m .7 a px m 2 n m d x1 a def
+    /cy1 2 j m .7 a py m 2 n m d y1 a def
+    /cx2 2 j m 1.3 a px m 2 n m d x1 a def
+    /cy2 2 j m 1.3 a py m 2 n m d y1 a def
+    cx1 sh rpy m j .35 a m n d s cy1 sh rpx m j .35 a m n d a
+    cx1 sh rpy m j .35 a m n d a cy1 sh rpx m j .35 a m n d s
+    cx2 sh rpy m j .65 a m n d a cy2 sh rpx m j .65 a m n d s
+    cx2 sh rpy m j .65 a m n d s cy2 sh rpx m j .65 a m n d a
+    np mv l l l fill}for
 }bd
 
 % Expects 'type width x y px py'
@@ -243,8 +250,10 @@
 1 setlinejoin
 0.6 setlinewidth
 1 setlinecap
-% Current size of the font
+% Current size of the font (10 for normal, 7 for sub- or superscript)
 /fs{10}bd
+% User relative font-size
+/relfs{1.0}bd
 % Current type of the font (0: regular, 1: italic, 2: bold)
 /ft{0}bd
 
diff -aur easychem-0.6-2/postscript/times.ps easychem-0.6/postscript/times.ps
--- easychem-0.6-2/postscript/times.ps  2005-05-04 10:10:07.000000000 +0200
+++ easychem-0.6/postscript/times.ps    2006-01-19 11:56:19.000000000 +0100
@@ -39,11 +39,11 @@
 /TRb/Times-Bold latin1
 /TRbi/Times-BoldItalic latin1
 
-% This is used to set the font to the current fs/ft values
+% This is used to set the font to the current fs/relfs/ft values
 /sf{ft 0 eq{/TR findfont}{ft 1 eq{/TRi findfont}{ft 2 eq{/TRb findfont}{/TRbi
-    findfont}ifelse}ifelse}ifelse fs scalefont setfont}bd
-% This is used to set the font to Symbol, ignoring ft and using fs
-/g{/Symbol findfont fs scalefont setfont}bd
+    findfont}ifelse}ifelse}ifelse fs relfs mul scalefont setfont}bd
+% This is used to set the font to Symbol, ignoring ft and using relfs/fs
+/g{/Symbol findfont fs relfs mul scalefont setfont}bd
 
 % We set the font
 sf
diff -aur easychem-0.6-2/TODO easychem-0.6/TODO
--- easychem-0.6-2/TODO 2005-05-04 10:10:07.000000000 +0200
+++ easychem-0.6/TODO   2006-01-19 11:56:19.000000000 +0100
@@ -3,6 +3,8 @@
 
 BUGS À CORRIGER
   - centre de la rotation / atome
+  - bug centrage CH_3-CH-CH
+  - utilisation de "\{"
 
 AJOUTS EN COURS
   - Support for accents and all latin scripts
@@ -25,6 +27,8 @@
   - export LaTeX
   - lasso
 
+  - MacOS X: regarder comment EquationService se démerde
+
 REMARQUES H&K
 
 Pourrais-tu modifier la distance par défaut des ornements. J'ai fait des

Reply via email to