add localization in toolboxes 63/12063/8
Antoine ELIAS [Thu, 18 Jul 2013 19:53:00 +0000 (21:53 +0200)]
Change-Id: I7f38dca2420273d24e1adb6f2198bd656694b925

35 files changed:
scilab/CHANGES_5.5.X
scilab/contrib/Makefile.am
scilab/contrib/Makefile.in
scilab/contrib/toolbox_skeleton.iss
scilab/contrib/toolbox_skeleton/DESCRIPTION
scilab/contrib/toolbox_skeleton/builder.sce
scilab/contrib/toolbox_skeleton/etc/toolbox_skeleton.start
scilab/contrib/toolbox_skeleton/etc/toolbox_skeleton_preferences.xml
scilab/contrib/toolbox_skeleton/locales/en_US.po [new file with mode: 0644]
scilab/contrib/toolbox_skeleton/locales/fr_FR.po [new file with mode: 0644]
scilab/contrib/toolbox_skeleton/macros/scilab_error.sci [new file with mode: 0644]
scilab/contrib/toolbox_skeleton/sci_gateway/c/builder_gateway_c.sce
scilab/contrib/toolbox_skeleton/sci_gateway/c/sci_cerror.c [new file with mode: 0644]
scilab/contrib/toolbox_skeleton/sci_gateway/c/sci_csub.c
scilab/contrib/toolbox_skeleton/sci_gateway/c/sci_csum.c
scilab/contrib/toolbox_skeleton/sci_gateway/c/sci_foo.c
scilab/contrib/toolbox_skeleton/sci_gateway/c/sci_multiplybypi.c
scilab/contrib/toolbox_skeleton/sci_gateway/cpp/sci_cpp_find.cxx
scilab/contrib/toolbox_skeleton/sci_gateway/fortran/sci_fsum.c
scilab/modules/dynamic_link/macros/windows/dlwGetScilabLibraries.sci
scilab/modules/localization/includes/localization.h
scilab/modules/localization/includes/localizationJava.h
scilab/modules/localization/sci_gateway/localization_gateway.xml
scilab/modules/localization/src/java/org/scilab/modules/localization/Messages.java
scilab/modules/localization/src/java/org/scilab/modules/localization/MessagesJNI.java
scilab/modules/localization/src/jni/Messages.i
scilab/modules/localization/src/jni/Messages_wrap.c
scilab/modules/modules_manager/help/en_US/tbx_build_localization.xml [new file with mode: 0644]
scilab/modules/modules_manager/help/en_US/tbx_generate_pofile.xml [new file with mode: 0644]
scilab/modules/modules_manager/macros/tbx_build_localization.sci [new file with mode: 0644]
scilab/modules/modules_manager/macros/tbx_generate_pofile.sci [new file with mode: 0644]
scilab/modules/modules_manager/tests/unit_tests/toolbox_skeleton.unix.dia.ref
scilab/modules/modules_manager/tests/unit_tests/toolbox_skeleton.win.dia.ref
scilab/modules/preferences/src/java/org/scilab/modules/preferences/XCommonManager.java
scilab/tools/tools.iss

index 3f247f0..22e4257 100644 (file)
@@ -50,8 +50,9 @@ BDF methods with direct and preconditioned Krylov linear solvers, based on ODEPA
 
 * Localization:
  - Multiple domains in localization managed.
- - Function addlocalizationdomain added.
+ - Function addlocalizationdomain added to add a new domain.
  - Optional parameter added to gettext to manage domains.
+ - tbx_generate_pofile and tbx_build_localization added to create localization files for toolboxes.
 
 * Windows Solution updated to Visual Studio 2012.
 
index a4a2b32..ca4cff5 100644 (file)
@@ -53,13 +53,17 @@ toolbox_skeleton/sci_gateway/fortran/sci_fsum.c \
 toolbox_skeleton/sci_gateway/c/sci_csub.c \
 toolbox_skeleton/sci_gateway/c/sci_multiplybypi.c \
 toolbox_skeleton/sci_gateway/c/sci_foo.c \
+toolbox_skeleton/sci_gateway/c/sci_cerror.c \
 toolbox_skeleton/sci_gateway/c/sci_csum.c \
 toolbox_skeleton/sci_gateway/c/builder_gateway_c.sce \
 toolbox_skeleton/sci_gateway/cpp/builder_gateway_cpp.sce \
 toolbox_skeleton/sci_gateway/cpp/sci_cpp_find.cxx \
 toolbox_skeleton/sci_gateway/builder_gateway.sce \
 toolbox_skeleton/builder.sce \
+toolbox_skeleton/locales/en_US.po \
+toolbox_skeleton/locales/fr_FR.po \
 toolbox_skeleton/macros/scilab_sum.sci \
+toolbox_skeleton/macros/scilab_error.sci \
 toolbox_skeleton/macros/buildmacros.sce \
 toolbox_skeleton/macros/cleanmacros.sce \
 toolbox_skeleton/toolbox_skeleton_redist.iss \
index 118f5cf..f216e1b 100644 (file)
@@ -447,13 +447,17 @@ toolbox_skeleton/sci_gateway/fortran/sci_fsum.c \
 toolbox_skeleton/sci_gateway/c/sci_csub.c \
 toolbox_skeleton/sci_gateway/c/sci_multiplybypi.c \
 toolbox_skeleton/sci_gateway/c/sci_foo.c \
+toolbox_skeleton/sci_gateway/c/sci_cerror.c \
 toolbox_skeleton/sci_gateway/c/sci_csum.c \
 toolbox_skeleton/sci_gateway/c/builder_gateway_c.sce \
 toolbox_skeleton/sci_gateway/cpp/builder_gateway_cpp.sce \
 toolbox_skeleton/sci_gateway/cpp/sci_cpp_find.cxx \
 toolbox_skeleton/sci_gateway/builder_gateway.sce \
 toolbox_skeleton/builder.sce \
+toolbox_skeleton/locales/en_US.po \
+toolbox_skeleton/locales/fr_FR.po \
 toolbox_skeleton/macros/scilab_sum.sci \
+toolbox_skeleton/macros/scilab_error.sci \
 toolbox_skeleton/macros/buildmacros.sce \
 toolbox_skeleton/macros/cleanmacros.sce \
 toolbox_skeleton/toolbox_skeleton_redist.iss \
index c7e3226..da6b23c 100644 (file)
@@ -39,6 +39,7 @@ Source: contrib\{#TOOLBOX_SKELETON}\sci_gateway\c\sci_csum.c; DestDir: {app}\con
 Source: contrib\{#TOOLBOX_SKELETON}\sci_gateway\c\sci_csub.c; DestDir: {app}\contrib\{#TOOLBOX_SKELETON}\sci_gateway\c; Components: {#COMPN_TOOLBOX_SKELETON}
 Source: contrib\{#TOOLBOX_SKELETON}\sci_gateway\c\sci_multiplybypi.c; DestDir: {app}\contrib\{#TOOLBOX_SKELETON}\sci_gateway\c; Components: {#COMPN_TOOLBOX_SKELETON}
 Source: contrib\{#TOOLBOX_SKELETON}\sci_gateway\c\sci_foo.c; DestDir: {app}\contrib\{#TOOLBOX_SKELETON}\sci_gateway\c; Components: {#COMPN_TOOLBOX_SKELETON}
+Source: contrib\{#TOOLBOX_SKELETON}\sci_gateway\c\sci_cerror.c; DestDir: {app}\contrib\{#TOOLBOX_SKELETON}\sci_gateway\c; Components: {#COMPN_TOOLBOX_SKELETON}
 Source: contrib\{#TOOLBOX_SKELETON}\sci_gateway\cpp\sci_cpp_find.cxx; DestDir: {app}\contrib\{#TOOLBOX_SKELETON}\sci_gateway\cpp; Components: {#COMPN_TOOLBOX_SKELETON}
 Source: contrib\{#TOOLBOX_SKELETON}\sci_gateway\cpp\builder_gateway_cpp.sce; DestDir: {app}\contrib\{#TOOLBOX_SKELETON}\sci_gateway\cpp; Components: {#COMPN_TOOLBOX_SKELETON}
 Source: contrib\{#TOOLBOX_SKELETON}\sci_gateway\fortran\builder_gateway_fortran.sce; DestDir: {app}\contrib\{#TOOLBOX_SKELETON}\sci_gateway\fortran; Components: {#COMPN_TOOLBOX_SKELETON}
@@ -52,6 +53,8 @@ Source: contrib\{#TOOLBOX_SKELETON}\src\c\multiplybypi.c; DestDir: {app}\contrib
 Source: contrib\{#TOOLBOX_SKELETON}\src\fortran\builder_fortran.sce; DestDir: {app}\contrib\{#TOOLBOX_SKELETON}\src\fortran; Components: {#COMPN_TOOLBOX_SKELETON}
 Source: contrib\{#TOOLBOX_SKELETON}\src\fortran\fsum.f; DestDir: {app}\contrib\{#TOOLBOX_SKELETON}\src\fortran; Components: {#COMPN_TOOLBOX_SKELETON}
 Source: contrib\{#TOOLBOX_SKELETON}\tests\*.*; DestDir: {app}\contrib\{#TOOLBOX_SKELETON}\tests; Flags: recursesubdirs; Components: {#COMPN_TOOLBOX_SKELETON}
+Source: contrib\{#TOOLBOX_SKELETON}\locales\*.*; DestDir: {app}\contrib\{#TOOLBOX_SKELETON}\locales; Flags: recursesubdirs; Components: {#COMPN_TOOLBOX_SKELETON}
+
 ;--------------------------------------------------------------------------------------------------------------
 #define XCOS_TOOLBOX_SKELETON "xcos_toolbox_skeleton"
 Source: contrib\{#XCOS_TOOLBOX_SKELETON}\DESCRIPTION; DestDir: {app}\contrib\{#XCOS_TOOLBOX_SKELETON}; Flags: recursesubdirs; Components: {#COMPN_TOOLBOX_SKELETON} and {#COMPN_XCOS}
index 8f38c16..63edfe8 100644 (file)
@@ -6,16 +6,15 @@ Summary: Skeleton of a valid atoms package
 
 Version: 1.3
 
-Author: Allan CORNET <allan.cornet@scilab.org>
+Author: Scilab Enterprises
 
-Maintainer: Allan CORNET <allan.cornet@scilab.org>
- Pierre MARECHAL <pierre.marechal@scilab.org>
+Maintainer: Scilab Enterprises
 
 Category: biology - Robotic_2
  CatB - SScat2
  biology - modelisation_III
 
-Entity: Digiteo
+Entity: Scilab Enterprises
 
 WebSite: http://www.scilab.org
 
@@ -25,7 +24,7 @@ ScilabVersion: >= 5.4
 
 Depends: 
 
-Date: 2009-03-26
+Date: 2013-07-18
 
 Description: files to the new Docbook based format.
  
index 1ff233a..8aed84e 100644 (file)
@@ -39,6 +39,7 @@ function main_builder()
     tbx_builder_macros(toolbox_dir);
     tbx_builder_src(toolbox_dir);
     tbx_builder_gateway(toolbox_dir);
+    tbx_build_localization(TOOLBOX_NAME, toolbox_dir);
     tbx_builder_help(toolbox_dir);
     tbx_build_loader(TOOLBOX_NAME, toolbox_dir);
     tbx_build_cleaner(TOOLBOX_NAME, toolbox_dir);
index 7d17bb6..4500b70 100644 (file)
@@ -5,9 +5,10 @@
 
 function toolbox_skeletonlib = startModule()
    
-  toolbox_name = "Toolbox skeleton"
+    TOOLBOX_NAME  = "toolbox_skeleton";
+    TOOLBOX_TITLE = "Toolbox Skeleton";
 
-  mprintf("Start " + toolbox_name + "\n");
+  mprintf("Start " + TOOLBOX_TITLE + "\n");
 
   if isdef("toolbox_skeletonlib") then
     warning("Toolbox skeleton library is already loaded");
@@ -32,13 +33,16 @@ function toolbox_skeletonlib = startModule()
   exec(pathconvert(root_tlbx+"/sci_gateway/loader_gateway.sce",%f));
   ilib_verbose(verboseMode);
 
+// load localization
+    addlocalizationdomain(TOOLBOX_NAME, root_tlbx + "/locales");
+
 // Load and add help chapter
 // =============================================================================
   if or(getscilabmode() == ["NW";"STD"]) then
     mprintf("\tLoad help\n");
     path_addchapter = pathconvert(root_tlbx+"/jar");
     if ( isdir(path_addchapter) <> [] ) then
-      add_help_chapter(toolbox_name, path_addchapter, %F);
+      add_help_chapter(TOOLBOX_NAME, path_addchapter, %F);
     end
   end
 
@@ -47,13 +51,13 @@ function toolbox_skeletonlib = startModule()
   if or(getscilabmode() == ["NW";"STD"]) then
     mprintf("\tLoad demos\n");
     pathdemos = pathconvert(root_tlbx+"/demos/toolbox_skeleton.dem.gateway.sce", %F, %T);
-    add_demo(toolbox_name, pathdemos);
+    add_demo(TOOLBOX_TITLE, pathdemos);
   end
 
 // Load Preferences GUI
 // =============================================================================
   if getscilabmode() == "STD" then
-    addModulePreferences(toolbox_name, root_tlbx, etc_tlbx + "toolbox_skeleton_preferences.xml");
+    addModulePreferences(TOOLBOX_TITLE, root_tlbx, etc_tlbx + "toolbox_skeleton_preferences.xml");
   end
 
 endfunction
index 6054184..f4f08c0 100644 (file)
@@ -1,18 +1,18 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <body>
-    <Form text="Rectangle">
-        <Entry text="intitulé" value="exemple"/>
-        <Select text="Hauteur" value="18">
+    <Form text="_d(toolbox_skeleton, Rectangle)">
+        <Entry text="_d(toolbox_skeleton, My Title)" value="exemple"/>
+        <Select text="_d(toolbox_skeleton, Height)" value="18">
             <Option value="12"/>
             <Option value="18"/>
             <Option value="24"/>
         </Select>
-        <Select text="Largeur" value="18">
+        <Select text="_d(toolbox_skeleton, Width)" value="18">
             <Option value="12"/>
             <Option value="18"/>
             <Option value="24"/>
         </Select>
-        <Color text="Couleur" value="#0000ff"/>
-        <Checkbox text="Contour" value="yes"/>
+        <Color text="_d(toolbox_skeleton, Color)" value="#0000ff"/>
+        <Checkbox text="_d(toolbox_skeleton, Outline)" value="yes"/>
     </Form>
 </body>
diff --git a/scilab/contrib/toolbox_skeleton/locales/en_US.po b/scilab/contrib/toolbox_skeleton/locales/en_US.po
new file mode 100644 (file)
index 0000000..7ba878b
--- /dev/null
@@ -0,0 +1,35 @@
+msgid ""
+msgstr ""
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: sci_gateway\c\sci_cerror.c:17
+msgid "%s: I'm waiting only one argument.\n"
+msgstr ""
+
+#: sci_gateway\c\sci_cerror.c:22
+#: macros\scilab_error.sci:17
+msgid "%s: Yeah! %d is a good number of arguments but I prefer fail, sorry.\n"
+msgstr ""
+
+#: macros\scilab_error.sci:13
+msgid "%s: I''m waiting for only one argument.\n"
+msgstr ""
+
+msgid "Rectangle"
+msgstr ""
+
+msgid "My Title"
+msgstr ""
+
+msgid "Height"
+msgstr ""
+
+msgid "Width"
+msgstr ""
+
+msgid "Color"
+msgstr ""
+
+msgid "Outline"
+msgstr ""
diff --git a/scilab/contrib/toolbox_skeleton/locales/fr_FR.po b/scilab/contrib/toolbox_skeleton/locales/fr_FR.po
new file mode 100644 (file)
index 0000000..e585710
--- /dev/null
@@ -0,0 +1,32 @@
+msgid ""
+msgstr ""
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: sci_gateway\c\sci_cerror.c:17
+#: macros\scilab_error.sci:13
+msgid "%s: I'm waiting for only one argument.\n"
+msgstr "%s : Je n'attends qu'un seul argument.\n"
+
+#: sci_gateway\c\sci_cerror.c:22
+#: macros\scilab_error.sci:17
+msgid "%s: Yeah! %d is a good number of arguments but I prefer fail, sorry.\n"
+msgstr "%s : Oui ! %d est un bon nombre d'arguments mais je préfère échouer, désolé.\n"
+
+msgid "Rectangle"
+msgstr "Rectangle"
+
+msgid "My Title"
+msgstr "Mon Titre"
+
+msgid "Height"
+msgstr "Hauteur"
+
+msgid "Width"
+msgstr "Largeur"
+
+msgid "Color"
+msgstr "Couleur"
+
+msgid "Outline"
+msgstr "Contour"
diff --git a/scilab/contrib/toolbox_skeleton/macros/scilab_error.sci b/scilab/contrib/toolbox_skeleton/macros/scilab_error.sci
new file mode 100644 (file)
index 0000000..9eadde0
--- /dev/null
@@ -0,0 +1,20 @@
+// ====================================================================
+// Template toolbox_skeleton
+// This file is released under the 3-clause BSD license. See COPYING-BSD.
+// ====================================================================
+//
+//
+function scilab_error(varargin)
+
+    argSize = size(varargin);
+
+    //in toolboxes, use "_d" or "dgettext" to your localized messages
+    if argSize <> 1 then
+        error(999, msprintf(_d("toolbox_skeleton", "%s: I''m waiting for only one argument.\n"), "scilab_error"));
+    end
+
+    if argSize == 1 then
+        error(999, msprintf(dgettext("toolbox_skeleton", "%s: Yeah! %d is a good number of arguments but I prefer fail, sorry.\n"), "scilab_error", 1));
+    end
+endfunction
+// ====================================================================
index c5cfdc5..31121fe 100644 (file)
@@ -10,8 +10,8 @@ function builder_gw_c()
     WITHOUT_AUTO_PUTLHSVAR = %t;
 
     tbx_build_gateway("skeleton_c", ..
-    ["c_sum","sci_csum";"c_sub","sci_csub";"c_multiplybypi","sci_multiplybypi";"foo","sci_foo"], ..
-    ["sci_csum.c","sci_csub.c","sci_multiplybypi.c","sci_foo.c"], ..
+    ["c_sum","sci_csum";"c_sub","sci_csub";"c_multiplybypi","sci_multiplybypi";"foo","sci_foo";"c_error","sci_cerror"], ..
+    ["sci_csum.c","sci_csub.c","sci_multiplybypi.c","sci_foo.c","sci_cerror.c"], ..
     get_absolute_file_path("builder_gateway_c.sce"), ..
     ["../../src/c/libcsum"], ..
     "", ..
diff --git a/scilab/contrib/toolbox_skeleton/sci_gateway/c/sci_cerror.c b/scilab/contrib/toolbox_skeleton/sci_gateway/c/sci_cerror.c
new file mode 100644 (file)
index 0000000..c6071a8
--- /dev/null
@@ -0,0 +1,26 @@
+/* ==================================================================== */
+/* Template toolbox_skeleton */
+/* This file is released under the 3-clause BSD license. See COPYING-BSD. */
+/* ==================================================================== */
+#include "api_scilab.h"
+#include "Scierror.h"
+#include "MALLOC.h"
+#include <localization.h>
+
+/* ==================================================================== */
+int sci_cerror(char *fname)
+{
+    int iRhs = nbInputArgument(pvApiCtx);
+
+    if (iRhs != 1)
+    {
+        Scierror(999, _d("toolbox_skeleton", "%s: I'm waiting for only one argument.\n"), fname);
+        return 0;
+    }
+    else
+    {
+        Scierror(999, _d("toolbox_skeleton", "%s: Yeah! %d is a good number of arguments but I prefer fail, sorry.\n"), fname, 1);
+        return 0;
+    }
+}
+/* ==================================================================== */
index ab74fa0..a510be8 100644 (file)
@@ -6,6 +6,8 @@
 #include "Scierror.h"
 #include "MALLOC.h"
 #include "csub.h"
+#include <localization.h>
+
 /* ==================================================================== */
 int sci_csub(char *fname)
 {
@@ -55,7 +57,7 @@ int sci_csub(char *fname)
 
     if ( iType1 != sci_matrix )
     {
-        Scierror(999, "%s: Wrong type for input argument #%d: A scalar expected.\n", fname, 1);
+        Scierror(999, _("%s: Wrong type for input argument #%d: A scalar expected.\n"), fname, 1);
         return 0;
     }
 
@@ -68,7 +70,7 @@ int sci_csub(char *fname)
 
     if ( iType2 != sci_matrix )
     {
-        Scierror(999, "%s: Wrong type for input argument #%d: A scalar expected.\n", fname, 2);
+        Scierror(999, _("%s: Wrong type for input argument #%d: A scalar expected.\n"), fname, 2);
         return 0;
     }
 
@@ -90,12 +92,12 @@ int sci_csub(char *fname)
     /* check size */
     if ( (m1 != n1) && (n1 != 1) )
     {
-        Scierror(999, "%s: Wrong size for input argument #%d: A scalar expected.\n", fname, 1);
+        Scierror(999, _("%s: Wrong size for input argument #%d: A scalar expected.\n"), fname, 1);
         return 0;
     }
     if ( (m2 != n2) && (n2 != 1) )
     {
-        Scierror(999, "%s: Wrong size for input argument #%d: A scalar expected.\n", fname, 2);
+        Scierror(999, _("%s: Wrong size for input argument #%d: A scalar expected.\n"), fname, 2);
         return 0;
     }
 
index 2f8f563..a4729c5 100644 (file)
@@ -6,6 +6,8 @@
 #include "Scierror.h"
 #include "MALLOC.h"
 #include "csum.h"
+#include <localization.h>
+
 /* ==================================================================== */
 int sci_csum(char *fname)
 {
@@ -43,25 +45,25 @@ int sci_csum(char *fname)
     /* check input type */
     if ( !isDoubleType(pvApiCtx, piAddressVarOne) )
     {
-        Scierror(999, "%s: Wrong type for input argument #%d: A scalar expected.\n", fname, 1);
+        Scierror(999, _("%s: Wrong type for input argument #%d: A scalar expected.\n"), fname, 1);
         return 0;
     }
 
     if ( !isDoubleType(pvApiCtx, piAddressVarTwo) )
     {
-        Scierror(999, "%s: Wrong type for input argument #%d: A scalar expected.\n", fname, 2);
+        Scierror(999, _("%s: Wrong type for input argument #%d: A scalar expected.\n"), fname, 2);
         return 0;
     }
 
     if ( getScalarDouble(pvApiCtx, piAddressVarOne, &dVarOne) )
     {
-        Scierror(999, "%s: Wrong size for input argument #%d: A scalar expected.\n", fname, 1);
+        Scierror(999, _("%s: Wrong size for input argument #%d: A scalar expected.\n"), fname, 1);
         return 0;
     }
 
     if ( getScalarDouble(pvApiCtx, piAddressVarTwo, &dVarTwo) )
     {
-        Scierror(999, "%s: Wrong size for input argument #%d: A scalar expected.\n", fname, 2);
+        Scierror(999, _("%s: Wrong size for input argument #%d: A scalar expected.\n"), fname, 2);
         return 0;
     }
 
index 716f641..976a9f7 100644 (file)
@@ -5,6 +5,8 @@
 /* ==================================================================== */
 #include "api_scilab.h"
 #include "BOOL.h"
+#include <localization.h>
+
 /* ==================================================================== */
 int sci_foo(char *fname, unsigned long fname_len)
 {
@@ -44,7 +46,7 @@ int sci_foo(char *fname, unsigned long fname_len)
     /* Check that the first input argument is a real matrix (and not complex) */
     if ( !isDoubleType(pvApiCtx, piAddressVarOne) ||  isVarComplex(pvApiCtx, piAddressVarOne) )
     {
-        Scierror(999, "%s: Wrong type for input argument #%d: A real matrix expected.\n", fname, 1);
+        Scierror(999, _("%s: Wrong type for input argument #%d: A real matrix expected.\n"), fname, 1);
         return 0;
     }
 
@@ -68,7 +70,7 @@ int sci_foo(char *fname, unsigned long fname_len)
 
     if ( !isBooleanType(pvApiCtx, piAddressVarTwo) )
     {
-        Scierror(999, "%s: Wrong type for input argument #%d: A boolean matrix expected.\n", fname, 2);
+        Scierror(999, _("%s: Wrong type for input argument #%d: A boolean matrix expected.\n"), fname, 2);
         return 0;
     }
 
@@ -84,7 +86,7 @@ int sci_foo(char *fname, unsigned long fname_len)
 
     if ((m1 != m2) | - (n1 != n2))
     {
-        Scierror(999, "%s: Wrong size for input arguments: Same size expected.\n", fname, 1);
+        Scierror(999, _("%s: Wrong size for input arguments: Same size expected.\n"), fname, 1);
         return 0;
     }
 
index 71591ef..edd5b70 100644 (file)
@@ -6,6 +6,8 @@
 #include "Scierror.h"
 #include "MALLOC.h"
 #include "multiplybypi.h"
+#include <localization.h>
+
 /* ==================================================================== */
 int sci_multiplybypi(char *fname)
 {
index cdcaa0d..b0e7179 100644 (file)
@@ -10,6 +10,8 @@ extern "C"
   #include "api_scilab.h"
   #include "Scierror.h"
   #include "MALLOC.h"
+  #include <localization.h>
+
 /* ==================================================================== */
   int sci_cpp_find(char *fname) 
   {
@@ -57,7 +59,7 @@ extern "C"
     
     if ( iType1 != sci_strings )
     {
-      Scierror(999,"%s: Wrong type for input argument #%d: A string expected.\n",fname,1);
+      Scierror(999,_("%s: Wrong type for input argument #%d: A string expected.\n"),fname,1);
       return 0;
     }
   
@@ -70,7 +72,7 @@ extern "C"
     
     if ( iType2 != sci_strings )
     {
-      Scierror(999,"%s: Wrong type for input argument #%d: A string expected.\n",fname,2);
+      Scierror(999,_("%s: Wrong type for input argument #%d: A string expected.\n"),fname,2);
       return 0;
     }
     
@@ -86,7 +88,7 @@ extern "C"
     /* check size */
     if ( (m1 != n1) && (n1 != 1) ) 
     {
-      Scierror(999,"%s: Wrong size for input argument #%d: A string expected.\n",fname,1);
+      Scierror(999,_("%s: Wrong size for input argument #%d: A string expected.\n"),fname,1);
       return 0;
     }
     /* alloc string */
@@ -108,7 +110,7 @@ extern "C"
     
     if ( (m2 != n2) && (n2 != 1) ) 
     {
-      Scierror(999,"%s: Wrong size for input argument #%d: A string expected.\n",fname,2);
+      Scierror(999,_("%s: Wrong size for input argument #%d: A string expected.\n"),fname,2);
       return 0;
     }
     /* alloc string */
index 026abd1..afcbea0 100644 (file)
@@ -5,6 +5,8 @@
 #include "api_scilab.h"
 #include "Scierror.h"
 #include "MALLOC.h"
+#include <localization.h>
+
 /* ==================================================================== */
 extern int F2C(fsum)(double *a, double *b, double *c);
 /* ==================================================================== */
@@ -56,7 +58,7 @@ int sci_fsum(char *fname)
 
     if ( iType1 != sci_matrix )
     {
-        Scierror(999, "%s: Wrong type for input argument #%d: A scalar expected.\n", fname, 1);
+        Scierror(999, _("%s: Wrong type for input argument #%d: A scalar expected.\n"), fname, 1);
         return 0;
     }
 
@@ -69,7 +71,7 @@ int sci_fsum(char *fname)
 
     if ( iType2 != sci_matrix )
     {
-        Scierror(999, "%s: Wrong type for input argument #%d: A scalar expected.\n", fname, 2);
+        Scierror(999, _("%s: Wrong type for input argument #%d: A scalar expected.\n"), fname, 2);
         return 0;
     }
 
@@ -91,12 +93,12 @@ int sci_fsum(char *fname)
     /* check size */
     if ( (m1 != n1) && (n1 != 1) )
     {
-        Scierror(999, "%s: Wrong size for input argument #%d: A scalar expected.\n", fname, 1);
+        Scierror(999, _("%s: Wrong size for input argument #%d: A scalar expected.\n"), fname, 1);
         return 0;
     }
     if ( (m2 != n2) && (n2 != 1) )
     {
-        Scierror(999, "%s: Wrong size for input argument #%d: A scalar expected.\n", fname, 2);
+        Scierror(999, _("%s: Wrong size for input argument #%d: A scalar expected.\n"), fname, 2);
         return 0;
     }
 
index e2ca9a1..910df00 100644 (file)
@@ -26,6 +26,7 @@ function scilablibrarieslist = dlwGetScilabLibraries()
     "call_scilab.lib"; ..
     "time.lib"; ..
     "api_scilab.lib"; ..
+    "libintl.lib"; ..
     "scilab_windows.lib"];
 
 endfunction
index 43ac189..b9c5c58 100644 (file)
@@ -28,7 +28,7 @@ extern "C" {
 
 
 #define _(String)  gettext(String)/** for console message*/
-#define _d(Domain, String)  dgettext(Domain, String)/** for console message*/
+#define _d(Domain, String)  dgettext(Domain, String)
 #define _t(String1,String2,n) ngettext (String1,String2,n)
 
 #else
@@ -36,6 +36,8 @@ extern "C" {
 
 #define _(String) ((const char *) (String))
 #define gettext(String) ((const char *) (String))
+#define dgettext(Domain, String) ((const char *) (String))
+#define _d(Domain, String)  ((const char *) (String))
 #define _t(String1,String2,n) ngettext (String1,String2,n)
 #define ngettext(String1, String2, n) ((n) == 1 ? (const char *) (String1) : (const char *) (String2))
 
index a62b37a..ac8d5c2 100644 (file)
  * However, for an unknown reason, gettext() is not working. Only
  * dgettext is */
 #define scigettext(String1) dgettext(NAMELOCALIZATIONDOMAIN,String1)
+#define scidgettext(String1, String2) dgettext(String1, String2)
 
 #else
 /* Restore the normal behaviour ... all the string will be in english */
 
 #define scigettext(String) ((const char *) (String))
+#define scidgettext(String1, String2) ((const char *) (String2))
 
 #endif
 
index 51e9c00..91772f4 100644 (file)
@@ -35,6 +35,7 @@
     <PRIMITIVE gatewayId="50" primitiveId="4" primitiveName="gettext" />
     <PRIMITIVE gatewayId="50" primitiveId="4" primitiveName="_" />
     <PRIMITIVE gatewayId="50" primitiveId="5" primitiveName="dgettext" />
+    <PRIMITIVE gatewayId="50" primitiveId="5" primitiveName="_d" />
     <PRIMITIVE gatewayId="50" primitiveId="6" primitiveName="setdefaultlanguage" />
     <PRIMITIVE gatewayId="50" primitiveId="7" primitiveName="addlocalizationdomain" />
 </GATEWAY>
index e1ac3fe..9730338 100644 (file)
@@ -1,6 +1,6 @@
 /* ----------------------------------------------------------------------------
  * This file was automatically generated by SWIG (http://www.swig.org).
- * Version 2.0.7
+ * Version 2.0.4
  *
  * Do not make changes to this file unless you know what you are doing--modify
  * the SWIG interface file instead.
@@ -25,4 +25,8 @@ public class Messages {
         return MessagesJNI.gettext(key);
     }
 
+    public static String dgettext(String domain, String key) {
+        return MessagesJNI.dgettext(domain, key);
+    }
+
 }
index 65bcf42..1fc611a 100644 (file)
@@ -1,6 +1,6 @@
 /* ----------------------------------------------------------------------------
  * This file was automatically generated by SWIG (http://www.swig.org).
- * Version 2.0.7
+ * Version 2.0.4
  *
  * Do not make changes to this file unless you know what you are doing--modify
  * the SWIG interface file instead.
@@ -45,4 +45,5 @@ public class MessagesJNI {
     }
 
     public final static native String gettext(String jarg1);
+    public final static native String dgettext(String jarg1, String jarg2);
 }
index d4c3d20..366cbe0 100644 (file)
@@ -94,3 +94,6 @@ public";
 we are calling the C function scigettext */
 %rename(gettext) scigettext;
 char *scigettext(char *key);
+
+%rename(dgettext) scidgettext;
+char *scidgettext(char *domain, char *key);
index 7981bbf..3e322f0 100644 (file)
@@ -214,6 +214,32 @@ SWIGEXPORT jstring JNICALL Java_org_scilab_modules_localization_MessagesJNI_gett
 }
 
 
+SWIGEXPORT jstring JNICALL Java_org_scilab_modules_localization_MessagesJNI_dgettext(JNIEnv *jenv, jclass jcls, jstring jarg1, jstring jarg2) {
+  jstring jresult = 0 ;
+  char *arg1 = (char *) 0 ;
+  char *arg2 = (char *) 0 ;
+  char *result = 0 ;
+  
+  (void)jenv;
+  (void)jcls;
+  arg1 = 0;
+  if (jarg1) {
+    arg1 = (char *)(*jenv)->GetStringUTFChars(jenv, jarg1, 0);
+    if (!arg1) return 0;
+  }
+  arg2 = 0;
+  if (jarg2) {
+    arg2 = (char *)(*jenv)->GetStringUTFChars(jenv, jarg2, 0);
+    if (!arg2) return 0;
+  }
+  result = (char *)scidgettext(arg1,arg2);
+  if (result) jresult = (*jenv)->NewStringUTF(jenv, (const char *)result);
+  if (arg1) (*jenv)->ReleaseStringUTFChars(jenv, jarg1, (const char *)arg1);
+  if (arg2) (*jenv)->ReleaseStringUTFChars(jenv, jarg2, (const char *)arg2);
+  return jresult;
+}
+
+
 #ifdef __cplusplus
 }
 #endif
diff --git a/scilab/modules/modules_manager/help/en_US/tbx_build_localization.xml b/scilab/modules/modules_manager/help/en_US/tbx_build_localization.xml
new file mode 100644 (file)
index 0000000..210bcee
--- /dev/null
@@ -0,0 +1,64 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ * Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+ * Copyright (C) INRIA
+ *
+ * This file must be used under the terms of the CeCILL.
+ * This source file is licensed as described in the file COPYING, which
+ * you should have received as part of this distribution.  The terms
+ * are also available at
+ * http://www.cecill.info/licences/Licence_CeCILL_V2-en.txt
+ *
+ -->
+<refentry xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:svg="http://www.w3.org/2000/svg" xmlns:ns5="http://www.w3.org/1999/xhtml" xmlns:mml="http://www.w3.org/1998/Math/MathML" xmlns:db="http://docbook.org/ns/docbook" xmlns:scilab="http://www.scilab.org" xml:id="tbx_build_localization" xml:lang="en">
+    <refnamediv>
+        <refname>tbx_build_localization</refname>
+        <refpurpose>Build localization "mo" file from "po" files (toolbox compilation process)</refpurpose>
+    </refnamediv>
+    <refsynopsisdiv>
+        <title>Calling Sequence</title>
+        <synopsis>
+            tbx_build_localization(tbx_name, tbx_path)
+        </synopsis>
+    </refsynopsisdiv>
+    <refsection>
+        <title>Arguments</title>
+        <variablelist>
+            <varlistentry>
+                <term>tbx_name</term>
+                <listitem>
+                    <para>name of the toolbox, use to name localization files and domain.</para>
+                </listitem>
+            </varlistentry>
+            <varlistentry>
+                <term>tbx_path</term>
+                <listitem>
+                    <para>path of the toolbox, use to locate files to compile.</para>
+                </listitem>
+            </varlistentry>
+        </variablelist>
+    </refsection>
+    <refsection>
+        <title>Examples</title>
+        <programlisting role="example"><![CDATA[
+    tbx_build_localization("toolbox_skeleton", "SCI/contrib/toolbox_skeleton")
+ ]]></programlisting>
+    </refsection>
+    <refsection role="see also">
+        <title>See Also</title>
+        <simplelist type="inline">
+            <member>
+                <link linkend="tbx_generate_pofile">tbx_generate_pofile</link>
+            </member>
+        </simplelist>
+    </refsection>
+    <refsection>
+        <title>History</title>
+        <revhistory>
+            <revision>
+                <revnumber>5.5.0</revnumber>
+                <revdescription>Function tbx_build_localization added.</revdescription>
+            </revision>
+        </revhistory>
+    </refsection>
+</refentry>
diff --git a/scilab/modules/modules_manager/help/en_US/tbx_generate_pofile.xml b/scilab/modules/modules_manager/help/en_US/tbx_generate_pofile.xml
new file mode 100644 (file)
index 0000000..aeba994
--- /dev/null
@@ -0,0 +1,70 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ * Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+ * Copyright (C) INRIA
+ *
+ * This file must be used under the terms of the CeCILL.
+ * This source file is licensed as described in the file COPYING, which
+ * you should have received as part of this distribution.  The terms
+ * are also available at
+ * http://www.cecill.info/licences/Licence_CeCILL_V2-en.txt
+ *
+ -->
+<refentry xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:svg="http://www.w3.org/2000/svg" xmlns:ns5="http://www.w3.org/1999/xhtml" xmlns:mml="http://www.w3.org/1998/Math/MathML" xmlns:db="http://docbook.org/ns/docbook" xmlns:scilab="http://www.scilab.org" xml:id="tbx_generate_pofile" xml:lang="en">
+    <refnamediv>
+        <refname>tbx_generate_pofile</refname>
+        <refpurpose>Extract localized strings from toolbox sources (toolbox compilation process)</refpurpose>
+    </refnamediv>
+    <refsynopsisdiv>
+        <title>Calling Sequence</title>
+        <synopsis>
+            pofile = tbx_generate_pofile(tbx_name, tbx_path)
+        </synopsis>
+    </refsynopsisdiv>
+    <refsection>
+        <title>Arguments</title>
+        <variablelist>
+            <varlistentry>
+                <term>tbx_name</term>
+                <listitem>
+                    <para>name of the toolbox, use to name localization files and domain.</para>
+                </listitem>
+            </varlistentry>
+            <varlistentry>
+                <term>tbx_path</term>
+                <listitem>
+                    <para>path of the toolbox, use to locate files to compile.</para>
+                </listitem>
+            </varlistentry>
+            <varlistentry>
+                <term>pofile</term>
+                <listitem>
+                    <para>return the generated po file path.</para>
+                </listitem>
+            </varlistentry>
+        </variablelist>
+    </refsection>
+    <refsection>
+        <title>Examples</title>
+        <programlisting role="example"><![CDATA[
+    tbx_generate_pofile("toolbox_skeleton", "SCI/contrib/toolbox_skeleton")
+ ]]></programlisting>
+    </refsection>
+    <refsection role="see also">
+        <title>See Also</title>
+        <simplelist type="inline">
+            <member>
+                <link linkend="tbx_build_localization">tbx_build_localization</link>
+            </member>
+        </simplelist>
+    </refsection>
+    <refsection>
+        <title>History</title>
+        <revhistory>
+            <revision>
+                <revnumber>5.5.0</revnumber>
+                <revdescription>Function tbx_generate_pofile added.</revdescription>
+            </revision>
+        </revhistory>
+    </refsection>
+</refentry>
diff --git a/scilab/modules/modules_manager/macros/tbx_build_localization.sci b/scilab/modules/modules_manager/macros/tbx_build_localization.sci
new file mode 100644 (file)
index 0000000..d648c24
--- /dev/null
@@ -0,0 +1,72 @@
+// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+// Copyright (C) 2013 - Scilab Enterprises - Antoine ELIAS
+//
+// This file must be used under the terms of the CeCILL.
+// This source file is licensed as described in the file COPYING, which
+// you should have received as part of this distribution.  The terms
+// are also available at
+// http://www.cecill.info/licences/Licence_CeCILL_V2-en.txt
+
+function tbx_build_localization(tbx_name, tbx_path)
+
+    rhs = argn(2);
+
+    if and(rhs <> [1 2]) then
+        error(msprintf(gettext("%s: Wrong number of input arguments: %d to %d expected.\n"),"tbx_build_localization",1,2));
+    end
+
+    if type(tbx_name) <> 10 then
+        error(tbx_name(gettext("%s: Wrong type for input argument #%d: A string array expected.\n"),"tbx_build_localization",1));
+    end
+
+    if rhs < 2 then
+        tbx_path = pwd();
+    else
+        if type(tbx_path) <> 10 then
+            error(msprintf(gettext("%s: Wrong type for input argument #%d: A string expected.\n"),"tbx_build_localization",2));
+        end
+
+        if size(tbx_path,"*") <> 1 then
+            error(msprintf(gettext("%s: Wrong size for input argument #%d: A string expected.\n"),"tbx_build_localization",2));
+        end
+
+        if ~isdir(tbx_path) then
+            error(msprintf(gettext("%s: The directory ''%s'' doesn''t exist or is not read accessible.\n"),"tbx_build_localization", tbx_path));
+        end
+    end
+
+    //forge command
+    localePath = tbx_path + "locales/";
+
+    if isdir(localePath) == %f then
+        error(msprintf(gettext("%s: The directory ''%s'' doesn''t exist or is not read accessible.\n"),"tbx_build_localization",localePath));
+    end
+
+    //find list of .po files
+    poFiles = findfiles(localePath, "*.po");
+
+    if getos() == "Windows" then
+        cmd = SCI + filesep() + "tools/gettext/msgfmt";
+    else
+        cmd = "msgfmt";
+    end
+
+    mprintf(gettext("Generating localization\n"));
+    for i=1:size(poFiles, "*")
+        //generate moFile name and path
+        lang = fileparts(poFiles(i), "fname");
+        printf("-- Building for ""%s"" --\n", lang);
+        moFile = localePath + lang + "/LC_MESSAGES/";
+        mkdir(moFile); //to be sure path exists
+        poFile = moFile + tbx_name + ".po";
+        moFile = moFile + tbx_name + ".mo";
+
+
+        //check mo file is newest po, don't need to generate it
+        if newest(poFiles(i), moFile) == 1 then
+            copyfile(localePath + poFiles(i), poFile);
+            cmd1 = cmd + " -o " + moFile + " " + poFile;
+            host(cmd1)
+        end
+    end
+endfunction
diff --git a/scilab/modules/modules_manager/macros/tbx_generate_pofile.sci b/scilab/modules/modules_manager/macros/tbx_generate_pofile.sci
new file mode 100644 (file)
index 0000000..1682b36
--- /dev/null
@@ -0,0 +1,168 @@
+// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+// Copyright (C) 2013 - Scilab Enterprises - Antoine ELIAS
+//
+// This file must be used under the terms of the CeCILL.
+// This source file is licensed as described in the file COPYING, which
+// you should have received as part of this distribution.  The terms
+// are also available at
+// http://www.cecill.info/licences/Licence_CeCILL_V2-en.txt
+
+function ret=tbx_generate_pofile(tbx_name, tbx_path)
+
+    rhs = argn(2);
+
+    if ~or(rhs == [1,2]) then
+        error(msprintf(gettext("%s: Wrong number of input arguments: %d or %d expected.\n"),"tbx_generate_pofile", 1, 2));
+    end
+
+    if rhs == 1 then
+        tbx_path = pwd();
+    end
+
+    if type(tbx_name) <> 10 then
+        error(msprintf(_("%s: Wrong type for input argument #%d: A string expected.\n"), "tbx_generate_pofile", 1));
+    end
+
+    if type(tbx_path) <> 10 then
+        error(msprintf(_("%s: Wrong type for input argument #%d: A string expected.\n"), "tbx_generate_pofile", 1));
+    end
+
+    if ~isdir(tbx_path) then
+        error(msprintf(gettext("%s: The directory ''%s'' doesn''t exist or is not read accessible.\n"), "tbx_generate_pofile", tbx_path));
+    end
+
+    old = pwd();
+    cd(tbx_path);
+    if getos() == "Windows" then
+        XGETTEXT= WSCI + "\tools\gettext\xgettext";
+    else
+        XGETTEXT="xgettext";
+    end
+    XGETTEXT_OPTIONS=" --omit-header -k --keyword=dgettext:2 --keyword=xmlgettext:2 --keyword=_d:2 --language=python ";
+
+    EXTENSIONS=["c" "h" "cpp" "cxx" "hxx" "hpp" "java"];
+    EXTENSIONS_MACROS=["sci" "sce" "start" "quit"];
+    EXTENSIONS_XML=["xml" "xsl"];
+    TARGETDIR="locales";
+
+    mkdir(TARGETDIR);
+    srcFiles = getFilesList("src", EXTENSIONS);
+    srcFiles = [srcFiles ; getFilesList("sci_gateway", EXTENSIONS)];
+    srcFiles = [srcFiles ; getFilesList("macros", EXTENSIONS_MACROS)];
+    srcFiles = [srcFiles ; getFilesList("etc", EXTENSIONS_MACROS)];
+
+    //manage xml preferences files
+    xmlFiles = getFilesList("etc", EXTENSIONS_XML);
+
+    if size(xmlFiles, "*") > 0 then
+        xmlTmpFile = TMPDIR + "/tmpLoc.xml";
+        srcFiles = [srcFiles; xmlTmpFile];
+        xmlFake = mopen(xmlTmpFile, "w");
+        for i = 1:size(xmlFiles, "*")
+            content = mgetl(xmlFiles(i));
+            newLine = sedLoc(content, "/\""_d\(\s*(.*)\s*,\s*(.*)\s*\)\""/", "xmlgettext(""\1"", ""\2"")");// "_d(xxx,xxx)"
+            newLine = sedLoc(newLine, "/\""dgettext\(\s*(.*)\s*,\s*(.*)\s*\)\""/", "xmlgettext(""\1"", ""\2"")");
+            mputl(newLine, xmlFake);
+        end
+        mclose(xmlFake);
+    end
+
+    //parse all files
+    srcFiles = strcat(srcFiles, " ");
+    cmd = XGETTEXT + XGETTEXT_OPTIONS + " -d " + tbx_name + " " + srcFiles + " -p " + TARGETDIR + " -o " + "en_US.po.tmp";
+    host(cmd);
+
+    if exists("xmlTmpFile") then
+        deletefile(xmlTmpFile);
+    end
+
+    fi = fileinfo(TARGETDIR + "/en_US.po.tmp");
+    if fi == [] | fi(1) == 0 then
+        //nothing to extract
+        deletefile(TARGETDIR + "/en_US.po.tmp");
+        rmdir(TARGETDIR);
+        cd(old);
+        ret = [];
+        return;
+    end
+
+    //add header
+    header = ["msgid """"";
+        "msgstr """"";
+        """Content-Type: text/plain; charset=UTF-8\n""";
+        """Content-Transfer-Encoding: 8bit\n""";""];
+
+    poFile = mgetl(TARGETDIR + "/en_US.po.tmp");
+    poFile = [header ; poFile];
+    mputl(poFile, TARGETDIR + "/en_US.po");
+    deletefile(TARGETDIR + "/en_US.po.tmp");
+
+    cd(old);
+    ret = tbx_path + filesep() + TARGETDIR + filesep() + "en_US.po";
+endfunction
+
+function result = sedLoc(str, findExp, replaceExp)
+    result = str;
+    index = grep(result, findExp, "r");
+    while index <> []
+        idx = index(1);
+        [startPos, endPos, match, captured] = regexp(result(idx), findExp);
+
+        if captured <> [] then
+            //multiple matches on the same line, YOUHOU !
+            for i=1:size(captured, "r")
+                replace = replaceExp;
+                for j = 1:size(captured, "c")
+                    replace = strsubst(replace, "\" + string(j), captured(i,j));
+                end
+
+                if size(replace, "*") > 1 & (startPos <> 1 | endPos <> length(result(idx))) then
+                    //replace partial line by multiline expression
+                    replace(1) = part(result(idx), 1:startPos) + " " + replace(1);
+                    replace($) = replace($) + " " + part(result(idx), (endPos+1):length(result(idx)));
+
+                    result = [result(1:(idx-1)); replace; result((idx+1):$)];
+                elseif size(replace, "*") > 1 then
+                    //replace entire line by multiline expression
+                    result = [result(1:(idx-1)); replace; result((idx+1):$)];
+                else
+                    //replace partial line by 1-line expression
+                    result(idx) = strsubst(result(idx), match(i), replace);
+                end
+            end
+        end
+
+        //update index with new "file"
+        index = grep(result, findExp, "r");
+    end
+endfunction
+
+function ret = getFilesList(folder, mask)
+    if ~isdir(folder) then
+        ret = [];
+        return;
+    end
+
+    old = pwd();
+    cd(folder)
+
+    ret = [];
+
+    files = ls();
+
+    for j = 1:size(files, "*")
+        if isdir(files(j)) then
+            ret = [ret ; getFilesList(files(j), mask)];
+        end
+    end
+
+    for i = 1:size(mask, "*")
+        srcFiles = findfiles(pwd(), "*." + mask(i));
+        if srcFiles <> [] then
+            ret = [ret ; pwd() + filesep() + srcFiles];
+        end
+    end
+
+    cd(old);
+endfunction
+
index 73f200d..5e397d8 100644 (file)
@@ -16,6 +16,7 @@ assert_checkequal(status, 1);
 exec("TMPDIR/toolbox_skeleton/builder.sce");
 Building macros...
 -- Creation of [toolbox_skeletonlib] (Macros) --
+genlib: Processing file: scilab_error.sci
 genlib: Processing file: scilab_sum.sci
 genlib: Regenerate names and lib
 Building sources...
@@ -51,6 +52,7 @@ Building gateway...
    Generate a Makefile
    ilib_gen_Make: Copy compilation files (Makefile*, libtool...) to TMPDIR
    ilib_gen_Make: Copy libskeleton_c.c to TMPDIR
+   ilib_gen_Make: Copy sci_cerror.c to TMPDIR
    ilib_gen_Make: Copy sci_csub.c to TMPDIR
    ilib_gen_Make: Copy sci_csum.c to TMPDIR
    ilib_gen_Make: Copy sci_foo.c to TMPDIR
@@ -70,6 +72,9 @@ Building gateway...
    Generate a cleaner file
 Generating loader_gateway.sce...
 Generating cleaner_gateway.sce...
+Generating localization
+-- Building for "en_US" --
+-- Building for "fr_FR" --
 Building help...
 
 Building the master document:
@@ -95,7 +100,7 @@ Generating loader.sce...
 Generating unloader.sce...
 Generating cleaner.sce...
 exec("TMPDIR/toolbox_skeleton/loader.sce");
-Start Toolbox skeleton
+Start Toolbox Skeleton
        Load macros
        Load gateways
        Load help
index ff41793..6080d56 100644 (file)
@@ -16,6 +16,7 @@ assert_checkequal(status, 1);
 exec("TMPDIR/toolbox_skeleton/builder.sce");
 Building macros...
 -- Creation of [toolbox_skeletonlib] (Macros) --
+genlib: Processing file: scilab_error.sci
 genlib: Processing file: scilab_sum.sci
 genlib: Regenerate names and lib
 Building sources...
@@ -46,6 +47,7 @@ Building gateway...
    Generate a loader file
    Generate a Makefile
    Running the makefile
+   Compilation of sci_cerror.c
    Compilation of sci_csub.c
    Compilation of sci_csum.c
    Compilation of sci_foo.c
@@ -63,6 +65,9 @@ Building gateway...
    Generate a cleaner file
 Generating loader_gateway.sce...
 Generating cleaner_gateway.sce...
+Generating localization
+-- Building for "en_US" --
+-- Building for "fr_FR" --
 Building help...
 
 Building the master document:
@@ -88,7 +93,7 @@ Generating loader.sce...
 Generating unloader.sce...
 Generating cleaner.sce...
 exec("TMPDIR/toolbox_skeleton/loader.sce");
-Start Toolbox skeleton
+Start Toolbox Skeleton
        Load macros
        Load gateways
        Load help
index bff14eb..f2ccfd3 100644 (file)
@@ -58,12 +58,9 @@ import org.w3c.dom.Element;
 import org.w3c.dom.NamedNodeMap;
 import org.w3c.dom.Node;
 import org.w3c.dom.NodeList;
-import org.xml.sax.InputSource;
 import org.xml.sax.SAXException;
 
-import org.scilab.modules.localization.Messages;
 import org.scilab.modules.commons.OS;
-import org.scilab.modules.commons.ScilabCommons;
 import org.scilab.modules.commons.xml.ScilabDocumentBuilderFactory;
 import org.scilab.modules.commons.xml.ScilabTransformerFactory;
 import org.scilab.modules.commons.xml.XConfiguration;
@@ -720,6 +717,13 @@ public abstract class XCommonManager {
             response = Messages.gettext(response.substring(2, response.length() - 1));
         }
 
+        if (response.startsWith("_d(") && response.endsWith(")")) {
+            int iPos = response.indexOf(",");
+            String domain = response.substring(3, iPos).trim();
+            String text = response.substring(iPos + 2, response.length() - 1).trim();
+            System.out.println("domain : !" + domain + "! text : !" + text + "!");
+            response = Messages.dgettext(domain, text);
+        }
         return response;
     }
 
index b41c7d9..9b80fdc 100644 (file)
@@ -11,4 +11,5 @@ Source: tools\curl\*.*; DestDir: {app}\tools\curl; Flags: recursesubdirs; Compon
 Source: tools\zip\*.*; DestDir: {app}\tools\zip; Flags: recursesubdirs; Components: {#COMPN_SCILAB}
 Source: tools\gzip\*.*; DestDir: {app}\tools\gzip; Flags: recursesubdirs; Components: {#COMPN_SCILAB}
 Source: tools\diff\*.*; DestDir: {app}\tools\diff; Flags: recursesubdirs; Components: {#COMPN_SCILAB}
+Source: tools\gettext\*.*; DestDir: {app}\tools\gettext; Flags: recursesubdirs; Components: {#COMPN_SCILAB}
 ;