* Bug 15827 fixed: bode('rad') wrong french xLabel & datatips unit 78/20578/4
Samuel GOUGEON [Mon, 22 Oct 2018 22:16:18 +0000 (00:16 +0200)]
  http://bugzilla.scilab.org/15827

Change-Id: I2e341c282f1d1f85c8a40d64cfc07dda30d98aa8

scilab/CHANGES.md
scilab/modules/cacsd/locales/fr_FR.po
scilab/modules/cacsd/macros/formatBodeMagTip.sci
scilab/modules/cacsd/macros/formatBodePhaseTip.sci
scilab/modules/cacsd/tests/nonreg_tests/bug_15827.tst [new file with mode: 0644]

index 4849e41..1993b1f 100644 (file)
@@ -633,6 +633,7 @@ Known issues
 * [#15816](http://bugzilla.scilab.org/show_bug.cgi?id=15816): `polarplot()`, `pie()`, `mesh()` and  `contourf()` ignored / canceled any upstream `drawlater`.
 * [#15817](http://bugzilla.scilab.org/show_bug.cgi?id=15817): `ascii(c)` with c>=128 crashed on OSX.
 * [#15818](http://bugzilla.scilab.org/show_bug.cgi?id=15818): `polarplot()` example could not be subplotted. `polarplot`'s demo did not display 'View code' and too often prompted the user.
+* [#15827](http://bugzilla.scilab.org/show_bug.cgi?id=15828): After `bode(..'rad')`, abscissae were titled 'Fréquence' instead of 'Pulsation' in french, and datatips still shew 'Hz' instead of 'rad/s'.
 * [#15847](http://bugzilla.scilab.org/show_bug.cgi?id=15847): Scilab crashed at startup.
 * [#15854](http://bugzilla.scilab.org/show_bug.cgi?id=15854): `horner(1:$,4)` yielded an error. Extractions from `cblock` tables were impacted.
 
index 30fb0d6..91a73d3 100644 (file)
@@ -847,7 +847,7 @@ msgid "Phase (degree)"
 msgstr "Phase (degré)"
 
 msgid "Frequency (rad/s)"
-msgstr "Fréquence (rad/s)"
+msgstr "Pulsation (rad/s)"
 
 #, c-format
 msgid "%s: Wrong value for input argument #%d: Evaluation failed.\n"
index a435a95..e5bdf2b 100644 (file)
@@ -1,6 +1,7 @@
 // Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
-// Copyright (C)  1985-2010 - INRIA - Serge Steer
+// Copyright (C) 1985 - 2010 - INRIA - Serge Steer
 // Copyright (C) 2012 - 2016 - Scilab Enterprises
+// Copyright (C) 2018 - Samuel GOUGEON
 //
 // This file is hereby licensed under the terms of the GNU GPL v2.0,
 // pursuant to article 5.3.4 of the CeCILL v.2.1.
 function str = formatBodeMagTip(datatipHandle)
     // This function is called by the datatips mechanism to format the tip
     // string for the magnitude bode curves
+
+    unit = gettext("Hz")
+    a = datatipHandle.parent.parent;
+    while a.type~="Axes", a = a.parent, end
+    if grep(a.x_label.text,"rad/s")~=[] then
+        unit = gettext("rad/s")
+    end
+
     pt = datatipHandle.data(1:2);
-    str = msprintf("%.4g"+_("Hz")+"\n%.4g"+_("dB"), pt(1), pt(2));
+    str = msprintf("%.4g "+unit+"\n%.4g"+gettext(" dB"), pt(1), pt(2));
 endfunction
index 7ca5a57..928f017 100644 (file)
@@ -1,6 +1,7 @@
 // Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
-// Copyright (C)  1985-2010 - INRIA - Serge Steer
+// Copyright (C) 1985 - 2010 - INRIA - Serge Steer
 // Copyright (C) 2012 - 2016 - Scilab Enterprises
+// Copyright (C) 2018 - Samuel GOUGEON
 //
 // This file is hereby licensed under the terms of the GNU GPL v2.0,
 // pursuant to article 5.3.4 of the CeCILL v.2.1.
 // along with this program.
 
 function str = formatBodePhaseTip(datatipHandle)
-    // This function is called by the datatip mechanism to format the tip
-    // string for the bode phase curves
+    // This function is called by the datatip mechanism to format
+    // the tip string for the bode phase curves
+
+    unit = gettext("Hz")
+    a = datatipHandle.parent.parent;
+    while a.type~="Axes", a = a.parent, end
+    if grep(a.x_label.text,"rad/s")~=[] then
+        unit = gettext("rad/s")
+    end
+
     pt = datatipHandle.data(1:2)
-    str = msprintf("%.4g"+_("Hz")+"\n %.4g"+"°", pt(1), pt(2));
+    str = msprintf("%.4g "+unit+"\n%.4g"+" °", pt(1), pt(2));
 endfunction
diff --git a/scilab/modules/cacsd/tests/nonreg_tests/bug_15827.tst b/scilab/modules/cacsd/tests/nonreg_tests/bug_15827.tst
new file mode 100644 (file)
index 0000000..8633987
--- /dev/null
@@ -0,0 +1,37 @@
+// =============================================================================
+// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+// Copyright (C) 2018 - Samuel GOUGEON
+//
+//  This file is distributed under the same license as the Scilab package.
+// =============================================================================
+//
+// <-- TEST WITH GRAPHIC -->
+// <-- NO CHECK REF -->
+//
+// <-- Non-regression test for bug 15827 -->
+//
+// <-- Bugzilla URL -->
+// http://bugzilla.scilab.org/15827
+//
+// <-- Short Description -->
+// After bode(..,"rad")
+//  - datatips were still in "Hz" instead of "rad/s"
+//  - In french, X axes were labelled "Fréquence" instead of "Pulsation"
+
+s = %s;
+G = (10*(s+3))/(s*(s+2)*(s^2+s+2));
+sys = syslin('c', G);
+f_min = .0001; f_max = 16; // Frequencies in Hz
+
+setlanguage("fr")
+clf
+bode(sys, f_min, f_max, "rad");
+c = gcf().children(1).children.children;
+d = datatipCreate(c, 100);
+assert_checktrue(grep(d.text(1), "rad/s")~=[]);
+assert_checktrue(grep(gcf().children(1).x_label.text, "Pulsation")~=[]);
+
+c = gcf().children(2).children.children;
+d = datatipCreate(c, 100);
+assert_checktrue(grep(d.text(1), "rad/s")~=[]);
+assert_checktrue(grep(gcf().children(2).x_label.text, "Pulsation")~=[]);